AElf.Contracts.Vote

Vote contract.

The Vote contract is an abstract layer for voting. Developers implement concrete voting activities by calling this contract.

Implement AElf Standards ACS1.

Contract Methods

Method Name Request Type Response Type Description
Register Vote.VotingRegisterInput google.protobuf.Empty Create a voting activity.
Vote Vote.VoteInput google.protobuf.Empty After successfully creating a voting activity, others are able to vote.
Withdraw Vote.WithdrawInput google.protobuf.Empty A voter can withdraw the token after the lock time.
TakeSnapshot Vote.TakeSnapshotInput google.protobuf.Empty Save the result of the specified number of votes and generates a new round votes.
AddOption Vote.AddOptionInput google.protobuf.Empty Add an option to a voting activity.
RemoveOption Vote.RemoveOptionInput google.protobuf.Empty Remove an option from a voting activity.
AddOptions Vote.AddOptionsInput google.protobuf.Empty Add multiple options to a voting activity.
RemoveOptions Vote.RemoveOptionsInput google.protobuf.Empty Remove multiple options from a voting activity.
GetVotingItem Vote.GetVotingItemInput Vote.VotingItem Get a voting activity information.
GetVotingResult Vote.GetVotingResultInput Vote.VotingResult Get a voting result according to the provided voting activity id and snapshot number.
GetLatestVotingResult aelf.Hash Vote.VotingResult Gets the latest result according to the voting activity id.
GetVotingRecord aelf.Hash Vote.VotingRecord Get the voting record according to vote id.
GetVotingRecords Vote.GetVotingRecordsInput Vote.VotingRecords Get the voting record according to vote ids.
GetVotedItems aelf.Address Vote.VotedItems Get all voted information according to voter address.
GetVotingIds Vote.GetVotingIdsInput Vote.VotedIds Get the vote ids according to voting activity id.

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.

Contract Types

AElf.Contracts.Vote

Vote.AddOptionInput

Field Type Description Label
voting_item_id aelf.Hash The voting activity id.  
option string The new option to add.  

Vote.AddOptionsInput

Field Type Description Label
voting_item_id aelf.Hash The voting activity id.  
options string The new options to add. repeated

Vote.GetVotingIdsInput

Field Type Description Label
voter aelf.Address The address of voter.  
voting_item_id aelf.Hash The voting activity id.  

Vote.GetVotingItemInput

Field Type Description Label
voting_item_id aelf.Hash The voting activity id.  

Vote.GetVotingRecordsInput

Field Type Description Label
ids aelf.Hash The vote ids. repeated

Vote.GetVotingResultInput

Field Type Description Label
voting_item_id aelf.Hash The voting activity id.  
snapshot_number int64 The snapshot number.  

Vote.RemoveOptionInput

Field Type Description Label
voting_item_id aelf.Hash The voting activity id.  
option string The option to remove.  

Vote.RemoveOptionsInput

Field Type Description Label
voting_item_id aelf.Hash The voting activity id.  
options string The options to remove. repeated

Vote.TakeSnapshotInput

Field Type Description Label
voting_item_id aelf.Hash The voting activity id.  
snapshot_number int64 The snapshot number to take.  

Vote.VoteInput

Field Type Description Label
voting_item_id aelf.Hash The voting activity id.  
voter aelf.Address The address of voter.  
amount int64 The amount of vote.  
option string The option to vote.  
vote_id aelf.Hash The vote id.  
is_change_target bool Whether vote others.  

Vote.Voted

Field Type Description Label
voting_item_id aelf.Hash The voting activity id.  
voter aelf.Address The address of voter.  
snapshot_number int64 The snapshot number.  
amount int64 The amount of vote.  
vote_timestamp google.protobuf.Timestamp The time of vote.  
option string The option voted.  
vote_id aelf.Hash The vote id.  

Vote.VotedIds

Field Type Description Label
active_votes aelf.Hash The active vote ids. repeated
withdrawn_votes aelf.Hash The withdrawn vote ids. repeated

Vote.VotedItems

Field Type Description Label
voted_item_vote_ids VotedItems.VotedItemVoteIdsEntry The voted ids. repeated

Vote.VotedItems.VotedItemVoteIdsEntry

Field Type Description Label
key string    
value VotedIds    

Vote.VotingItem

Field Type Description Label
voting_item_id aelf.Hash The voting activity id.  
accepted_currency string The token symbol which will be accepted.  
is_lock_token bool Whether the vote will lock token.  
current_snapshot_number int64 The current snapshot number.  
total_snapshot_number int64 The total snapshot number.  
options string The list of options. repeated
register_timestamp google.protobuf.Timestamp The register time of the voting activity.  
start_timestamp google.protobuf.Timestamp The start time of the voting.  
end_timestamp google.protobuf.Timestamp The end time of the voting.  
current_snapshot_start_timestamp google.protobuf.Timestamp The start time of current round of the voting.  
sponsor aelf.Address The sponsor address of the voting activity.  

Vote.VotingItemRegistered

Field Type Description Label
voting_item_id aelf.Hash The voting activity id.  
accepted_currency string The token symbol which will be accepted.  
is_lock_token bool Whether the vote will lock token.  
current_snapshot_number int64 The current snapshot number.  
total_snapshot_number int64 The total number of snapshots of the vote.  
register_timestamp google.protobuf.Timestamp The register time of the voting activity.  
start_timestamp google.protobuf.Timestamp The start time of the voting.  
end_timestamp google.protobuf.Timestamp The end time of the voting.  
current_snapshot_start_timestamp google.protobuf.Timestamp The start time of current round of the voting.  
sponsor aelf.Address The sponsor address of the voting activity.  

Vote.VotingRecord

Field Type Description Label
voting_item_id aelf.Hash The voting activity id.  
voter aelf.Address The address of voter.  
snapshot_number int64 The snapshot number.  
amount int64 The amount of vote.  
withdraw_timestamp google.protobuf.Timestamp The time of withdraw.  
vote_timestamp google.protobuf.Timestamp The time of vote.  
is_withdrawn bool Whether the vote had been withdrawn.  
option string The option voted.  
is_change_target bool Whether vote others.  

Vote.VotingRecords

Field Type Description Label
records VotingRecord The voting records. repeated

Vote.VotingRegisterInput

Field Type Description Label
start_timestamp google.protobuf.Timestamp The start time of the voting.  
end_timestamp google.protobuf.Timestamp The end time of the voting.  
accepted_currency string The token symbol which will be accepted.  
is_lock_token bool Whether the vote will lock token.  
total_snapshot_number int64 The total number of snapshots of the vote.  
options string The list of options. repeated

Vote.VotingResult

Field Type Description Label
voting_item_id aelf.Hash The voting activity id.  
results VotingResult.ResultsEntry The voting result, option -> amount of votes, repeated
snapshot_number int64 The snapshot number.  
voters_count int64 The total number of voters.  
snapshot_start_timestamp google.protobuf.Timestamp The start time of this snapshot.  
snapshot_end_timestamp google.protobuf.Timestamp The end time of this snapshot.  
votes_amount int64 Total votes received during the process of this snapshot.  

Vote.VotingResult.ResultsEntry

Field Type Description Label
key string    
value int64    

Vote.WithdrawInput

Field Type Description Label
vote_id aelf.Hash The vote id.  

Vote.Withdrawn

Field Type Description Label
vote_id aelf.Hash The vote id.  

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.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.