This is a Work In Progress.
...
Term | Descriptoon |
---|---|
Purse | holds REV. Purses holding REV can only be sent to other purses capable of holding REV minted by the must only accept (in their methods) other purses produced by the (same) REV Mint |
Vault | Adds the guard guard around a Purse. The "guard" can be a simple public key or a more complicated multisig smart-contract. It also adds auditing to all REV transfers and enforces that a Purse is only sent to another REV Vault (to ensure all REV transfers are audited and conserved.)
|
REV Address | A REV Address is a human-readable representation of where REV can be sent. It is used by off-chain it exchanges and wallets as part of the user experience.
|
REV Mint | The REV Mint issues Purses and ultimately ensures the total supply of REV is conserved. (The Rev Mint is part of the REV Vault contract.) |
Lockbox | The Lockbox is required to transfer REV out of the Purse locked by the Vault. There are two types:
|
...
The Rev Vault Contract is where most of the logic lives for on-chain REV movement.
It must support:
Function | Params | Desription |
---|---|---|
findOrCreate | REV Address | Looks up the Vault via the REV Address. If it finds one, it sends it back on the return channel. If a Vault does not exist at this REV address. a new empty Vault is created with this address. The Vault sent back is suitable to be the recipient of a REV Purse via "deposit" lookup the public key in REV-Address-Registry => Some(Vault)
|
create | REV Address | Creates a new Vault with address REV Address, and registers it in the REV-Address-Registry. This will typically be called by a rholang contract the creates a Valut intended to be used by a multisig smart contract. Note: This approach could also be used to create a wallet that could be spent using an Ethereum address, and thus be used to |
transfer | DestVault REV Address, Amount, Lockbox | Transfer REV from this Vault to another Vault. Lockbox proves ownership over the Vault sending the REV. transfer means:
|
deposit | Purse | Deposits Purse into the Vault. (Combing it with existing Purse in Vault.) |
...
Ad 3.
The Create contract seems to be:
...