AElf.Contracts.Treasury

Treasury contract.

Used for distributing bonus’ to voters and candidates during the election process.

Implement AElf Standards ACS1 and ACS10.

Contract Methods

Method Name Request Type Response Type Description
InitialTreasuryContract google.protobuf.Empty google.protobuf.Empty Initialize treasury contract.
InitialMiningRewardProfitItem google.protobuf.Empty google.protobuf.Empty Initialize the sub-item of the bonus scheme.
DonateAll Treasury.DonateAllInput google.protobuf.Empty Donate all tokens owned by the sender.
SetDividendPoolWeightSetting Treasury.DividendPoolWeightSetting google.protobuf.Empty Set the dividend weight of the sub-item of the dividend item.
SetMinerRewardWeightSetting Treasury.MinerRewardWeightSetting google.protobuf.Empty Set the miner reward weight.
UpdateMiningReward google.protobuf.Int64Value google.protobuf.Empty Set the reward for mining.
ChangeTreasuryController AuthorityInfo google.protobuf.Empty Change the governance authority information for treasury contract.
RecordMinerReplacement Treasury.RecordMinerReplacementInput google.protobuf.Empty AEDPoS Contract can notify Treasury Contract to aware miner replacement happened.
GetWelfareRewardAmountSample Treasury.GetWelfareRewardAmountSampleInput Treasury.GetWelfareRewardAmountSampleOutput Used to estimate the revenue weight of 10000 tokens voted by users.
GetTreasurySchemeId google.protobuf.Empty aelf.Hash Get the scheme id of treasury.
GetDividendPoolWeightProportion google.protobuf.Empty Treasury.DividendPoolWeightProportion Query the weight percentage of dividend pool items.
GetMinerRewardWeightProportion google.protobuf.Empty Treasury.MinerRewardWeightProportion Query the weight percentage of the dividend item for miner.
GetTreasuryController google.protobuf.Empty AuthorityInfo Query the governance authority information.

AElf.Standards.ACS1

Method Name Request Type Response Type Description
SetMethodFee acs1.MethodFees google.protobuf.Empty Set the method fees for the specified method. Note that this will override all fees of the method.
ChangeMethodFeeController AuthorityInfo google.protobuf.Empty Change the method fee controller, the default is parliament and default organization.
GetMethodFee google.protobuf.StringValue acs1.MethodFees Query method fee information by method name.
GetMethodFeeController google.protobuf.Empty AuthorityInfo Query the method fee controller.

AElf.Standards.ACS10

Method Name Request Type Response Type Description
Donate acs10.DonateInput google.protobuf.Empty Donates tokens from the caller to the treasury. If the tokens are not native tokens in the current chain, they will be first converted to the native token.
Release acs10.ReleaseInput google.protobuf.Empty Release dividend pool according the period number.
SetSymbolList acs10.SymbolList google.protobuf.Empty Set the token symbols dividend pool supports.
GetSymbolList google.protobuf.Empty acs10.SymbolList Query the token symbols dividend pool supports.
GetUndistributedDividends google.protobuf.Empty acs10.Dividends Query the balance of undistributed tokens whose symbols are included in the symbol list.
GetDividends google.protobuf.Int64Value acs10.Dividends Query the dividend information according to the height.

Contract Types

AElf.Contracts.Treasury

Treasury.DividendPoolWeightProportion

Field Type Description Label
citizen_welfare_proportion_info SchemeProportionInfo The proportion of citizen welfare.  
backup_subsidy_proportion_info SchemeProportionInfo The proportion of candidate nodes.  
miner_reward_proportion_info SchemeProportionInfo The proportion of miner  

Treasury.DividendPoolWeightSetting

Field Type Description Label
citizen_welfare_weight int32 The dividend weight of citizen welfare.  
backup_subsidy_weight int32 The dividend weight of candidate nodes.  
miner_reward_weight int32 The dividend weight of miner.  

Treasury.DonateAllInput

Field Type Description Label
symbol string The token symbol to donate.  

Treasury.GetWelfareRewardAmountSampleInput

Field Type Description Label
value int64 Token lock time. repeated

Treasury.GetWelfareRewardAmountSampleOutput

Field Type Description Label
value int64 The weight calculated. repeated

Treasury.MinerReElectionInformation

Field Type Description Label
continual_appointment_times MinerReElectionInformation.ContinualAppointmentTimesEntry The reappointment information for miner. repeated

Treasury.MinerReElectionInformation.ContinualAppointmentTimesEntry

Field Type Description Label
key string    
value int64    

Treasury.MinerRewardWeightProportion

Field Type Description Label
basic_miner_reward_proportion_info SchemeProportionInfo The proportion of the basic income of the miner.  
votes_weight_reward_proportion_info SchemeProportionInfo The proportion of the vote of the miner.  
re_election_reward_proportion_info SchemeProportionInfo The proportion of the reappointment of the miner.  

Treasury.MinerRewardWeightSetting

Field Type Description Label
basic_miner_reward_weight int32 The dividend weight of the basic income of the miner.  
votes_weight_reward_weight int32 The dividend weight of the vote of the miner.  
re_election_reward_weight int32 The dividend weight of the reappointment of the miner.  

Treasury.RecordMinerReplacementInput

Field Type Description Label
old_pubkey string    
new_pubkey string    
current_term_number int64    

Treasury.SchemeProportionInfo

Field Type Description Label
scheme_id aelf.Hash The scheme id.  
proportion int32 Dividend weight percentage.  

AElf.Standards.ACS1

acs1.MethodFee

Field Type Description Label
symbol string The token symbol of the method fee.  
basic_fee int64 The amount of fees to be charged.  

acs1.MethodFees

Field Type Description Label
method_name string The name of the method to be charged.  
fees MethodFee List of fees to be charged. repeated
is_size_fee_free bool Optional based on the implementation of SetMethodFee method.  

AElf.Standards.ACS10

acs10.Dividends

Field Type Description Label
value Dividends.ValueEntry The dividends, symbol -> amount. repeated

acs10.Dividends.ValueEntry

Field Type Description Label
key string    
value int64    

acs10.DonateInput

Field Type Description Label
symbol string The token symbol to donate.  
amount int64 The amount to donate.  

acs10.DonationReceived

Field Type Description Label
from aelf.Address The address of donors.  
pool_contract aelf.Address The address of dividend pool.  
symbol string The token symbol Donated.  
amount int64 The amount Donated.  

acs10.ReleaseInput

Field Type Description Label
period_number int64 The period number to release.  

acs10.SymbolList

Field Type Description Label
value string The token symbol list. repeated

AElf.Types

aelf.Address

Field Type Description Label
value bytes    

aelf.BinaryMerkleTree

Field Type Description Label
nodes Hash The leaf nodes. repeated
root Hash The root node hash.  
leaf_count int32 The count of leaf node.  

aelf.Hash

Field Type Description Label
value bytes    

aelf.LogEvent

Field Type Description Label
address Address The contract address.  
name string The name of the log event.  
indexed bytes The indexed data, used to calculate bloom. repeated
non_indexed bytes The non indexed data.  

aelf.MerklePath

Field Type Description Label
merkle_path_nodes MerklePathNode The merkle path nodes. repeated

aelf.MerklePathNode

Field Type Description Label
hash Hash The node hash.  
is_left_child_node bool Whether it is a left child node.  

aelf.SInt32Value

Field Type Description Label
value sint32    

aelf.SInt64Value

Field Type Description Label
value sint64    

aelf.ScopedStatePath

Field Type Description Label
address Address The scope address, which will be the contract address.  
path StatePath The path of contract state.  

aelf.SmartContractRegistration

Field Type Description Label
category sint32 The category of contract code(0: C#).  
code bytes The byte array of the contract code.  
code_hash Hash The hash of the contract code.  
is_system_contract bool Whether it is a system contract.  
version int32 The version of the current contract.  

aelf.StatePath

Field Type Description Label
parts string The partial path of the state path. repeated

aelf.Transaction

Field Type Description Label
from Address The address of the sender of the transaction.  
to Address The address of the contract when calling a contract.  
ref_block_number int64 The height of the referenced block hash.  
ref_block_prefix bytes The first four bytes of the referenced block hash.  
method_name string The name of a method in the smart contract at the To address.  
params bytes The parameters to pass to the smart contract method.  
signature bytes When signing a transaction it’s actually a subset of the fields: from/to and the target method as well as the parameter that were given. It also contains the reference block number and prefix.  

aelf.TransactionExecutingStateSet

Field Type Description Label
writes TransactionExecutingStateSet.WritesEntry The changed states. repeated
reads TransactionExecutingStateSet.ReadsEntry The read states. repeated
deletes TransactionExecutingStateSet.DeletesEntry The deleted states. repeated

aelf.TransactionExecutingStateSet.DeletesEntry

Field Type Description Label
key string    
value bool    

aelf.TransactionExecutingStateSet.ReadsEntry

Field Type Description Label
key string    
value bool    

aelf.TransactionExecutingStateSet.WritesEntry

Field Type Description Label
key string    
value bytes    

aelf.TransactionResult

Field Type Description Label
transaction_id Hash The transaction id.  
status TransactionResultStatus The transaction result status.  
logs LogEvent The log events. repeated
bloom bytes Bloom filter for transaction logs. A transaction log event can be defined in the contract and stored in the bloom filter after the transaction is executed. Through this filter, we can quickly search for and determine whether a log exists in the transaction result.  
return_value bytes The return value of the transaction execution.  
block_number int64 The height of the block hat packages the transaction.  
block_hash Hash The hash of the block hat packages the transaction.  
error string Failed execution error message.  

aelf.TransactionResultStatus

Name Number Description
NOT_EXISTED 0 The execution result of the transaction does not exist.
PENDING 1 The transaction is in the transaction pool waiting to be packaged.
FAILED 2 Transaction execution failed.
MINED 3 The transaction was successfully executed and successfully packaged into a block.
CONFLICT 4 When executed in parallel, there are conflicts with other transactions.
PENDING_VALIDATION 5 The transaction is waiting for validation.
NODE_VALIDATION_FAILED 6 Transaction validation failed.

AuthorityInfo

Field Type Description Label
contract_address aelf.Address The contract address of the controller.  
owner_address aelf.Address The address of the owner of the contract.