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.

event DelegateVotesChanged(
    address indexed delegate,
    address indexed delegator,
    uint256 previousBalance,
    uint256 newBalance
);

StateHash

Emitted when a state hash of a blockhain is set.

event StateHash(string blockchain, bytes32 merkleRoot, uint256 totalSupply);

StateHashProof

Emitted when user balance in a specific blockchain state hash is proved.

event StateHashProof(string blockchain, address user, uint256 repBalance);

setBlockchainStateHash

Sets the state hash of a blockchain.

Can only be called by the admin.

function setBlockchainStateHash(
    string memory _id,
    bytes32 _hash,
    uint256 _totalSupply
) public;

getVotesAt

Get the number of active votes a user holds after delegation (vs the basic balance of reputation he holds).

Returns: the number of votes.

function getVotesAt(
    address _user,
    bool _global,
    uint256 _blockNumber
) public view returns (uint256);

totalSupplyLocal

Returns: total supply in current blockchain.

function totalSupplyLocal(uint256 _blockNumber) public view returns (uint256);

totalSupplyAt

Returns: total supply in all blockchain aggregated.

function totalSupplyAt(uint256 _blockNumber) public view returns (uint256);

getVotesAtBlockchain

The function that gets the number of active votes a user holds after delegation in specific blockchain.

Returns: the number of votes.

function getVotesAtBlockchain(
    bytes32 _id,
    address _user,
    uint256 _blockNumber
) public view returns (uint256);

proveBalanceOfAtBlockchain

The function that proves user balance in a specific blockchain state hash

Returns: true if proof is valid.

function proveBalanceOfAtBlockchain(
    string memory _id,
    address _user,
    uint256 _balance,
    bytes32[] memory _proof,
    uint256 _nodeIndex
) public returns (bool)

delegateTo

The function that delegate votes to another user.

function delegateTo(address _delegate) public;

undelegate

The function that cancels user delegation.

function undelegate() public;

Last updated