arc_dx
Version:
A platform for building DAOs
545 lines (278 loc) • 9.85 kB
Markdown
# ContributionReward
[see the source](https://github.com/daostack/arc/tree/master/contracts/universalSchemes/ContributionReward.sol)
> A scheme for proposing and rewarding contributions to an organization
**Execution cost**: less than 21923 gas
**Deployment cost**: less than 1485400 gas
**Combined cost**: less than 1507323 gas
## Constructor
## Events
### NewContributionProposal(address,bytes32,address,bytes32,int256,uint256[5],address,address)
**Execution cost**: No bound available
Params:
1. **_avatar** *of type `address`*
2. **_proposalId** *of type `bytes32`*
3. **_intVoteInterface** *of type `address`*
4. **_contributionDescription** *of type `bytes32`*
5. **_reputationChange** *of type `int256`*
6. **_rewards** *of type `uint256[5]`*
7. **_externalToken** *of type `address`*
8. **_beneficiary** *of type `address`*
### OwnershipTransferred(address,address)
**Execution cost**: No bound available
Params:
1. **previousOwner** *of type `address`*
2. **newOwner** *of type `address`*
### ProposalExecuted(address,bytes32,int256)
**Execution cost**: No bound available
Params:
1. **_avatar** *of type `address`*
2. **_proposalId** *of type `bytes32`*
3. **_param** *of type `int256`*
### RedeemEther(address,bytes32,address,uint256)
**Execution cost**: No bound available
Params:
1. **_avatar** *of type `address`*
2. **_proposalId** *of type `bytes32`*
3. **_beneficiary** *of type `address`*
4. **_amount** *of type `uint256`*
### RedeemExternalToken(address,bytes32,address,uint256)
**Execution cost**: No bound available
Params:
1. **_avatar** *of type `address`*
2. **_proposalId** *of type `bytes32`*
3. **_beneficiary** *of type `address`*
4. **_amount** *of type `uint256`*
### RedeemNativeToken(address,bytes32,address,uint256)
**Execution cost**: No bound available
Params:
1. **_avatar** *of type `address`*
2. **_proposalId** *of type `bytes32`*
3. **_beneficiary** *of type `address`*
4. **_amount** *of type `uint256`*
### RedeemReputation(address,bytes32,address,int256)
**Execution cost**: No bound available
Params:
1. **_avatar** *of type `address`*
2. **_proposalId** *of type `bytes32`*
3. **_beneficiary** *of type `address`*
4. **_amount** *of type `int256`*
## Methods
### getParametersHash(uint256,bytes32,address)
>
> return a hash of the given parameters
**Execution cost**: less than 755 gas
**Attributes**: constant
Params:
1. **_orgNativeTokenFee** *of type `uint256`*
> the fee for submitting a contribution in organizations native token
2. **_voteApproveParams** *of type `bytes32`*
> parameters for the voting machine used to approve a contribution
3. **_intVote** *of type `address`*
> the voting machine used to approve a contribution
Returns:
> a hash of the parameters
1. **output_0** *of type `bytes32`*
### hashedParameters()
**Execution cost**: less than 788 gas
**Attributes**: constant
Returns:
1. **output_0** *of type `bytes32`*
### getPeriodsToPay(bytes32,address,uint256)
>
> getPeriodsToPay return the periods left to be paid for reputation,nativeToken,ether or externalToken. The function ignore the reward amount to be paid (which can be zero).
**Execution cost**: No bound available
**Attributes**: constant
Params:
1. **_proposalId** *of type `bytes32`*
> the ID of the voting in the voting machine
2. **_avatar** *of type `address`*
> address of the controller
3. **_redeemType** *of type `uint256`*
> - the type of the reward : 0 - reputation 1 - nativeTokenReward 2 - Ether 3 - ExternalToken
Returns:
> periods left to be paid.
1. **output_0** *of type `uint256`*
### getRedeemedPeriods(bytes32,address,uint256)
>
> getRedeemedPeriods return the already redeemed periods for reputation, nativeToken, ether or externalToken.
**Execution cost**: less than 989 gas
**Attributes**: constant
Params:
1. **_proposalId** *of type `bytes32`*
> the ID of the voting in the voting machine
2. **_avatar** *of type `address`*
> address of the controller
3. **_redeemType** *of type `uint256`*
> - the type of the reward : 0 - reputation 1 - nativeTokenReward 2 - Ether 3 - ExternalToken
Returns:
> redeemed period.
1. **output_0** *of type `uint256`*
### execute(bytes32,address,int256)
>
> execution of proposals, can only be called by the voting machine in which the vote is held.
**Execution cost**: No bound available
Params:
1. **_proposalId** *of type `bytes32`*
> the ID of the voting in the voting machine
2. **_avatar** *of type `address`*
> address of the controller
3. **_param** *of type `int256`*
> a parameter of the voting result, 1 yes and 2 is no.
Returns:
1. **output_0** *of type `bool`*
### redeemEther(bytes32,address)
>
> RedeemEther reward for proposal
**Execution cost**: No bound available
Params:
1. **_proposalId** *of type `bytes32`*
> the ID of the voting in the voting machine
2. **_avatar** *of type `address`*
> address of the controller
Returns:
> result boolean for success indication.
1. **output_0** *of type `bool`*
### parameters(bytes32)
**Execution cost**: less than 1148 gas
**Attributes**: constant
Params:
1. **param_0** *of type `bytes32`*
Returns:
1. **orgNativeTokenFee** *of type `uint256`*
2. **voteApproveParams** *of type `bytes32`*
3. **intVote** *of type `address`*
### owner()
**Execution cost**: less than 721 gas
**Attributes**: constant
Returns:
1. **output_0** *of type `address`*
### organizationsProposals(address,bytes32)
**Execution cost**: less than 2981 gas
**Attributes**: constant
Params:
1. **param_0** *of type `address`*
2. **param_1** *of type `bytes32`*
Returns:
1. **contributionDescriptionHash** *of type `bytes32`*
2. **nativeTokenReward** *of type `uint256`*
3. **reputationChange** *of type `int256`*
4. **ethReward** *of type `uint256`*
5. **externalToken** *of type `address`*
6. **externalTokenReward** *of type `uint256`*
7. **beneficiary** *of type `address`*
8. **periodLength** *of type `uint256`*
9. **numberOfPeriods** *of type `uint256`*
10. **executionTime** *of type `uint256`*
### proposeContributionReward(address,bytes32,int256,uint256[5],address,address)
>
> Submit a proposal for a reward for a contribution:
**Execution cost**: No bound available
Params:
1. **_avatar** *of type `address`*
> Avatar of the organization that the contribution was made for
2. **_contributionDescriptionHash** *of type `bytes32`*
> A hash of the contribution's description
3. **_reputationChange** *of type `int256`*
> - Amount of reputation change requested .Can be negative.
4. **_rewards** *of type `uint256[5]`*
> rewards array: rewards[0] - Amount of tokens requested per period rewards[1] - Amount of ETH requested per period rewards[2] - Amount of external tokens requested per period rewards[3] - Period length rewards[4] - Number of periods
5. **_externalToken** *of type `address`*
> Address of external token, if reward is requested there
6. **_beneficiary** *of type `address`*
> Who gets the rewards
Returns:
1. **output_0** *of type `bytes32`*
### redeem(bytes32,address,bool[4])
>
> redeem rewards for proposal
**Execution cost**: No bound available
Params:
1. **_proposalId** *of type `bytes32`*
> the ID of the voting in the voting machine
2. **_avatar** *of type `address`*
> address of the controller
3. **_whatToRedeem** *of type `bool[4]`*
> whatToRedeem array: whatToRedeem[0] - reputation whatToRedeem[1] - nativeTokenReward whatToRedeem[2] - Ether whatToRedeem[3] - ExternalToken
Returns:
> result boolean array for each redeem type.
1. **result** *of type `bool[4]`*
### redeemExternalToken(bytes32,address)
>
> RedeemNativeToken reward for proposal
**Execution cost**: No bound available
Params:
1. **_proposalId** *of type `bytes32`*
> the ID of the voting in the voting machine
2. **_avatar** *of type `address`*
> address of the controller
Returns:
> result boolean for success indication.
1. **output_0** *of type `bool`*
### redeemNativeToken(bytes32,address)
>
> RedeemNativeToken reward for proposal
**Execution cost**: No bound available
Params:
1. **_proposalId** *of type `bytes32`*
> the ID of the voting in the voting machine
2. **_avatar** *of type `address`*
> address of the controller
Returns:
> result boolean for success indication.
1. **output_0** *of type `bool`*
### redeemReputation(bytes32,address)
>
> RedeemReputation reward for proposal
**Execution cost**: No bound available
Params:
1. **_proposalId** *of type `bytes32`*
> the ID of the voting in the voting machine
2. **_avatar** *of type `address`*
> address of the controller
Returns:
> result boolean for success indication.
1. **output_0** *of type `bool`*
### setParameters(uint256,bytes32,address)
>
> hash the parameters, save them if necessary, and return the hash value
**Execution cost**: less than 61154 gas
Params:
1. **_orgNativeTokenFee** *of type `uint256`*
2. **_voteApproveParams** *of type `bytes32`*
3. **_intVote** *of type `address`*
Returns:
1. **output_0** *of type `bytes32`*
### transferOwnership(address)
>
> Allows the current owner to transfer control of the contract to a newOwner.
**Execution cost**: less than 23137 gas
Params:
1. **newOwner** *of type `address`*
> The address to transfer ownership to.
### updateParameters(bytes32)
**Execution cost**: less than 20572 gas
Params:
1. **_hashedParameters** *of type `bytes32`*
[Back to the top ↑](#contributionreward)