Merge branch 'master' of github.com:status-im/payment-network-apps

This commit is contained in:
Michele Balistreri 2020-10-26 14:30:33 +01:00
commit 35a2671ab0
No known key found for this signature in database
GPG Key ID: E9567DA33A4F791A
1 changed files with 2 additions and 2 deletions

View File

@ -27,7 +27,7 @@ Using an associated Keycard it is possible to spend funds on balance. Since for
The owner of the wallet can additionally call methods to add/removes keycards, transfer ownership, withdraw, change settings, etc. It can also perform payments using the same mechanism as described above.
Accounts with a redeem code instead have no associated owner. They can be used normally for payments and be topped up. They cannot however perform any owner action (listed above). These accounts are created when activating a prepaid card using the `StatusPayBucket` contract. The idea is that you can activate the card for payment using any booth/3rd-party facility without compromising security of the account. This simplifies on-boarding and makes the card immediately useful. You can the later, using a secret code you received with the card, redeem the ownership of the account to an EOA you own. After doing this step the account will be become a regular account with all admin functions unlocked.
Accounts with a redeem code instead have no associated owner. They can be used normally for payments and be topped up. They cannot however perform any owner action (listed above). These accounts are created when activating a prepaid card using the `StatusPayBucket` contract. The idea is that you can activate the card for payment using any booth/3rd-party facility without compromising security of the account. This simplifies on-boarding and makes the card immediately useful. You can then later, using a secret code you received with the card, redeem the ownership of the account to an EOA you own. After doing this step the account will become a regular account with all admin functions unlocked.
Topping up an account is a two step procedure. First an `approve` transaction for the amount to be topped-up must be sent by the topper to the backing ERC-20 token. Then a topup transaction must be sent to the StatusPay contract. This can be done either by the owner of the wallet or, by knowning the associated Keycard address, by anybody owning the used ERC-20 token (even if they don't have a StatusPay account). During the topup tx the ERC-20 tokens will be transferred to the StatusPay contract and an equivalent credit will be added to the topped account.
@ -45,4 +45,4 @@ This contract is used for scenario where Keycards are sold/distributed with an a
The bucket creator setups a list of redeemables, each associated to a Keycard. Each redeemable has an amount of redeemable assets, activation code and redeem code. The activation code is used to actually create the account on StatusPay and transfer the associated assets to the StatusPay's account balance. The created account will not be associated to any externally owned account but will instead be associated to the redeem code. This redeem code can than be later used to associate this account to an EOA. Consequently, the card can be bought and activated immediately in store, without revealing the redeem code to the merchant and without needing to have an EOA at hand. Indeed the card could be the user's very first approach to Ethereum and cryptocurrency in general.
At the moment the redeemables are stored completely on chain. While very secure, this presents some scalability issues. A rewrite storing on chain only a MerkleRoot with the actual data being stored off-chain is in progress.
At the moment the redeemables are stored completely on chain. While very secure, this presents some scalability issues. A rewrite storing on chain only a MerkleRoot with the actual data being stored off-chain is in progress.