GReputation
The contract extends Reputation contract with delegation and cross blockchain merkle states.
To be noticed: the contract breaks DAOStack nativeReputation usage, since it is not possiible to upgrade the original nativeReputation token. it means you can no longer rely on avatar.nativeReputation()
or controller.nativeReputation()
to return the current reputation token.
The DAO avatar will be the owner of this reputation token and not the Controller. Minting by the DAO will be done using controller.genericCall
and not via controller.mintReputation
.
Events
DelegateVotesChanged
Emitted when a delegate account's vote balance changes.
Parameter name | Annotation |
---|---|
delgate | The address of delegate account. |
delegator | The address of delegator account. |
previousBalance | The previous amount of vote power balance. |
newBalance | The new amount of vote power balance. |
StateHash
Emitted when a state hash of a blockhain is set.
Parameter name | Annotation |
---|---|
blockchain | The blockchain name. |
merkleRoot | The state hash. |
totalSupply | The total supply of reputation on the specific blockchain. |
StateHashProof
Emitted when user balance in a specific blockchain state hash is proved.
Parameter name | Annotation |
---|---|
blockchain | The name of the blockchain. |
user | The user whose balance if proved. |
repBalance | The balance in reputation of the user that is being proved. |
setBlockchainStateHash
Sets the state hash of a blockchain.
Parameter name | Annotation |
---|---|
_id | The string name of the blockchain (will be hashed to produce byte32 id). |
_hash | The state hash. |
_totalSupply | Total supply of reputation on the specific blockchain. |
Can only be called by the admin.
getVotesAt
Get the number of active votes a user holds after delegation (vs the basic balance of reputation he holds).
Parameter name | Annotation |
---|---|
_user | The user to get active votes for. |
_global | Flag whether to include reputation from other blockchains. |
_blockNumber | Get votes state at specific block. |
Returns: the number of votes.
totalSupplyLocal
Parameter name | Annotation |
---|---|
_blockNumber | Specific block. |
Returns: total supply in current blockchain.
totalSupplyAt
Parameter name | Annotation |
---|---|
_blockNumber | Specific block. |
Returns: total supply in all blockchain aggregated.
getVotesAtBlockchain
The function that gets the number of active votes a user holds after delegation in specific blockchain.
Parameter name | Annotation |
---|---|
_id | The keccak256 hash of the blockchain string ID. |
_user | The user to get active votes for. |
_blockNumber | Specific block. |
Returns: the number of votes.
proveBalanceOfAtBlockchain
The function that proves user balance in a specific blockchain state hash
Parameter name | Annotation |
---|---|
_id | The string ID of the blockchain we supply proof for. |
_user | The user to prove his balance. |
_balance | The balance we are proving. |
_proof | Array of byte32 with proof data (currently merkle tree path). |
_nodeIndex | Index of node in the tree (for unsorted merkle tree proof). |
Returns: true
if proof is valid.
delegateTo
The function that delegate votes to another user.
Parameter name | Annotation |
---|---|
_delegate | The to whom to delegate address. |
undelegate
The function that cancels user delegation.
Last updated