AElf.Contracts.Profit¶
Profit contract.
The Profit contract is an abstract layer for creating scheme to share bonus. Developers can build a system to distribute bonus by call this contract.
Implement AElf Standards ACS1.
Contract Methods¶
Method Name | Request Type | Response Type | Description |
---|---|---|---|
CreateScheme | Profit.CreateSchemeInput | aelf.Hash | Create a scheme for profit distribution, and return the created scheme id. |
AddBeneficiary | Profit.AddBeneficiaryInput | google.protobuf.Empty | Add beneficiary to scheme. |
RemoveBeneficiary | Profit.RemoveBeneficiaryInput | google.protobuf.Empty | Remove beneficiary from scheme. |
AddBeneficiaries | Profit.AddBeneficiariesInput | google.protobuf.Empty | Batch add beneficiary to scheme. |
RemoveBeneficiaries | Profit.RemoveBeneficiariesInput | google.protobuf.Empty | Batch remove beneficiary from scheme. |
ContributeProfits | Profit.ContributeProfitsInput | google.protobuf.Empty | Contribute profit to a scheme. |
ClaimProfits | Profit.ClaimProfitsInput | google.protobuf.Empty | The beneficiary draws tokens from the scheme. |
DistributeProfits | Profit.DistributeProfitsInput | google.protobuf.Empty | Distribute profits to schemes, including its sub scheme according to period and token symbol, should be called by the manager. |
AddSubScheme | Profit.AddSubSchemeInput | google.protobuf.Empty | Add sub scheme to a scheme. This will effectively add the specified sub-scheme as a beneficiary of the parent scheme. |
RemoveSubScheme | Profit.RemoveSubSchemeInput | google.protobuf.Empty | Remove sub scheme from a scheme. |
ResetManager | Profit.ResetManagerInput | google.protobuf.Empty | Reset the manager of a scheme. |
GetManagingSchemeIds | Profit.GetManagingSchemeIdsInput | Profit.CreatedSchemeIds | Get all schemes managed by the specified manager. |
GetScheme | aelf.Hash | Profit.Scheme | Get scheme according to scheme id. |
GetSchemeAddress | Profit.SchemePeriod | aelf.Address | Get the virtual address of the number of period of the scheme. |
GetDistributedProfitsInfo | Profit.SchemePeriod | Profit.DistributedProfitsInfo | Query the distributed profit information for the specified period. |
GetProfitDetails | Profit.GetProfitDetailsInput | Profit.ProfitDetails | Query the beneficiary’s profit information on the scheme. |
GetProfitAmount | Profit.GetProfitAmountInput | google.protobuf.Int64Value | Query the amount of profit according to token symbol. (up to 10 periods). |
GetProfitsMap | Profit.ClaimProfitsInput | Profit.ReceivedProfitsMap | Query all profit (up to 10 periods). |
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.Profit¶
Profit.AddBeneficiariesInput¶
Field | Type | Description | Label |
---|---|---|---|
scheme_id | aelf.Hash | The scheme id. | |
beneficiary_shares | BeneficiaryShare | The beneficiary information. | repeated |
end_period | int64 | The end period which the beneficiary receives the profit. |
Profit.AddBeneficiaryInput¶
Field | Type | Description | Label |
---|---|---|---|
scheme_id | aelf.Hash | The scheme id. | |
beneficiary_share | BeneficiaryShare | The beneficiary information. | |
end_period | int64 | The end period which the beneficiary receives the profit. |
Profit.AddSubSchemeInput¶
Field | Type | Description | Label |
---|---|---|---|
scheme_id | aelf.Hash | The parent scheme id. | |
sub_scheme_id | aelf.Hash | The sub scheme id. | |
sub_scheme_shares | int64 | The profit weight of sub scheme. |
Profit.ClaimProfitsInput¶
Field | Type | Description | Label |
---|---|---|---|
scheme_id | aelf.Hash | The scheme id. | |
beneficiary | aelf.Address | The address of beneficiary. |
Profit.ContributeProfitsInput¶
Field | Type | Description | Label |
---|---|---|---|
scheme_id | aelf.Hash | The scheme id to contribute. | |
amount | int64 | The amount to contribute. | |
period | int64 | The number of periods in which the income is used for dividends. | |
symbol | string | The token symbol to contribute. |
Profit.CreateSchemeInput¶
Field | Type | Description | Label |
---|---|---|---|
profit_receiving_due_period_count | int64 | Period of profit distribution. | |
is_release_all_balance_every_time_by_default | bool | Whether all the schemes balance will be distributed during distribution each period. | |
delay_distribute_period_count | int32 | Delay distribute period. | |
manager | aelf.Address | The manager of this scheme, the default is the creator. | |
can_remove_beneficiary_directly | bool | Whether you can directly remove the beneficiary. | |
token | aelf.Hash | Use to generate scheme id. |
Profit.DistributeProfitsInput¶
Field | Type | Description | Label |
---|---|---|---|
scheme_id | aelf.Hash | The scheme id to distribute. | |
period | int64 | The period number to distribute, should be the current period. | |
amounts_map | DistributeProfitsInput.AmountsMapEntry | The amount to distribute, symbol -> amount. | repeated |
Profit.DistributedProfitsInfo¶
Field | Type | Description | Label |
---|---|---|---|
total_shares | int64 | The total amount of shares in this scheme at the current period. | |
amounts_map | DistributedProfitsInfo.AmountsMapEntry | The contributed amount in this scheme at the current period. | repeated |
is_released | bool | Whether released. |
Profit.GetManagingSchemeIdsInput¶
Field | Type | Description | Label |
---|---|---|---|
manager | aelf.Address | The manager address. |
Profit.GetProfitAmountInput¶
Field | Type | Description | Label |
---|---|---|---|
scheme_id | aelf.Hash | The scheme id. | |
symbol | string | The token symbol. | |
beneficiary | aelf.Address | The beneficiary’s address. |
Profit.GetProfitDetailsInput¶
Field | Type | Description | Label |
---|---|---|---|
scheme_id | aelf.Hash | The scheme id. | |
beneficiary | aelf.Address | The address of beneficiary. |
Profit.ProfitDetail¶
Field | Type | Description | Label |
---|---|---|---|
start_period | int64 | The start period number. | |
end_period | int64 | The end period number. | |
shares | int64 | The weight of the proceeds on the current period of the scheme. | |
last_profit_period | int64 | The last period number that the beneficiary received the profit. | |
is_weight_removed | bool | Whether the weight has been removed. |
Profit.ProfitDetails¶
Field | Type | Description | Label |
---|---|---|---|
details | ProfitDetail | The profit information. | repeated |
Profit.ProfitsClaimed¶
Field | Type | Description | Label |
---|---|---|---|
beneficiary | aelf.Address | The beneficiary’s address claimed. | |
symbol | string | The token symbol claimed. | |
amount | int64 | The amount claimed. | |
period | int64 | The period number claimed. | |
claimer_shares | int64 | The shares of the claimer. | |
total_shares | int64 | The total shares at the current period. |
Profit.ReceivedProfitsMap¶
Field | Type | Description | Label |
---|---|---|---|
value | ReceivedProfitsMap.ValueEntry | The collection of profits received, token symbol -> amount. | repeated |
Profit.RemoveBeneficiariesInput¶
Field | Type | Description | Label |
---|---|---|---|
beneficiaries | aelf.Address | The addresses of beneficiary. | repeated |
scheme_id | aelf.Hash | The scheme id. |
Profit.RemoveBeneficiaryInput¶
Field | Type | Description | Label |
---|---|---|---|
beneficiary | aelf.Address | The address of beneficiary. | |
scheme_id | aelf.Hash | The scheme id. |
Profit.RemoveSubSchemeInput¶
Field | Type | Description | Label |
---|---|---|---|
scheme_id | aelf.Hash | The parent scheme id. | |
sub_scheme_id | aelf.Hash | The sub scheme id. |
Profit.ResetManagerInput¶
Field | Type | Description | Label |
---|---|---|---|
scheme_id | aelf.Hash | The scheme id. | |
new_manager | aelf.Address | The address of new manager. |
Profit.Scheme¶
Field | Type | Description | Label |
---|---|---|---|
virtual_address | aelf.Address | The virtual address of the scheme. | |
total_shares | int64 | The total weight of the scheme. | |
manager | aelf.Address | The manager of the scheme. | |
current_period | int64 | The current period. | |
sub_schemes | SchemeBeneficiaryShare | Sub schemes information. | repeated |
can_remove_beneficiary_directly | bool | Whether you can directly remove the beneficiary. | |
profit_receiving_due_period_count | int64 | Period of profit distribution. | |
is_release_all_balance_every_time_by_default | bool | Whether all the schemes balance will be distributed during distribution each period. | |
scheme_id | aelf.Hash | The is of the scheme. | |
delay_distribute_period_count | int32 | Delay distribute period. | |
cached_delay_total_shares | Scheme.CachedDelayTotalSharesEntry | Record the scheme’s current total share for deferred distribution of benefits, period -> total shares. | repeated |
received_token_symbols | string | The received token symbols. | repeated |
Profit.SchemeCreated¶
Field | Type | Description | Label |
---|---|---|---|
virtual_address | aelf.Address | The virtual address of the created scheme. | |
manager | aelf.Address | The manager of the created scheme. | |
profit_receiving_due_period_count | int64 | Period of profit distribution. | |
is_release_all_balance_every_time_by_default | bool | Whether all the schemes balance will be distributed during distribution each period. | |
scheme_id | aelf.Hash | The id of the created scheme. |
AElf.Standards.ACS1¶
AElf.Types¶
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.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.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.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. |