aelf 백서

bitpro가 원문에서 글자만 모은 내용이에요. 표·그림·수식은 빠지거나 깨질 수 있어요. 전체 41쪽 중 25쪽

// and only the issuer (creator) of the token can issue tokens. // Issuing tokens effectively increases the circulating supply. rpc Issue ( IssueInput ) returns ( google . protobuf . Empty ) { } // Transferring tokens simply is the action of transferring a given amount of tokens from one address to another. // The origin or source address is the signer of the transaction. // The balance of the sender must be higher than the amount that is transferred. rpc Transfer ( TransferInput ) returns ( google . protobuf . Empty ) { } // The TransferFrom action will transfer a specified amount of tokens from one address to another. // For this operation to succeed the from address needs to have approved (see allowances) enough tokens // to Sender of this transaction. If successful the amount will be removed from the allowance. rpc TransferFrom ( TransferFromInput ) returns ( google . protobuf . Empty ) { } // The approve action increases the allowance from the Sender to the Spender address, // enabling the Spender to call TransferFrom. rpc Approve ( ApproveInput ) returns ( google . protobuf . Empty ) { } rpc BatchApprove ( BatchApproveInput ) returns ( google . protobuf . Empty ) { } // This is the reverse operation for Approve, it will decrease the allowance. rpc UnApprove ( UnApproveInput ) returns ( google . protobuf . Empty ) { } // This method can be used to lock tokens. rpc Lock ( LockInput ) returns ( google . protobuf . Empty ) { } // This is the reverse operation of locking, it un-locks some previously locked tokens. rpc Unlock ( UnlockInput ) returns ( google . protobuf . Empty ) { } // This action will burn the specified amount of tokens, removing them from the token’s Supply. rpc Burn ( BurnInput ) returns ( google . protobuf . Empty ) { } // Set the primary token of side chain. rpc SetPrimaryTokenSymbol ( SetPrimaryTokenSymbolInput ) returns ( google . protobuf . Empty ) { } // This interface is used for cross-chain transfer. rpc CrossChainTransfer ( CrossChainTransferInput ) returns ( google . protobuf . Empty ) { } // This method is used to receive cross-chain transfers. rpc CrossChainReceiveToken ( CrossChainReceiveTokenInput ) returns ( google . protobuf . Empty ) { } // The side chain creates tokens. rpc CrossChainCreateToken ( CrossChainCreateTokenInput ) returns ( google . protobuf . Empty ) { } // When the side chain is started, the side chain is initialized with the parent chain information. rpc InitializeFromParentChain ( InitializeFromParentChainInput ) returns ( google . protobuf . Empty ) { } // Handle the transaction fees charged by ChargeTransactionFees. rpc ClaimTransactionFees ( TotalTransactionFeesMap ) returns ( google . protobuf . Empty ) { } // Used to collect transaction fees. rpc ChargeTransactionFees ( ChargeTransactionFeesInput ) returns ( ChargeTransactionFeesOutput ) { } rpc ChargeUserContractTransactionFees ( ChargeTransactionFeesInput ) returns ( ChargeTransactionFeesOutput ) { } // Check the token threshold. rpc CheckThreshold ( CheckThresholdInput ) returns ( google . protobuf . Empty ) { } // Initialize coefficients of every type of tokens supporting charging fee. rpc InitialCoefficients ( google . protobuf . Empty ) returns ( google . protobuf . Empty ) { } // Processing resource token received. rpc DonateResourceToken ( TotalResourceTokensMaps ) returns ( google . protobuf . Empty ) { } // A transaction resource fee is charged to implement the ACS8 standards. rpc ChargeResourceToken ( ChargeResourceTokenInput ) returns ( google . protobuf . Empty ) { } // Verify that the resource token are sufficient. rpc CheckResourceToken ( google . protobuf . Empty ) returns ( google . protobuf . Empty ) { } // Set the list of tokens to pay transaction fees. rpc SetSymbolsToPayTxSizeFee ( SymbolListToPayTxSizeFee ) returns ( google . protobuf . Empty ) { } // Update the coefficient of the transaction fee calculation formula. rpc UpdateCoefficientsForSender ( UpdateCoefficientsInput ) returns ( google . protobuf . Empty ) { } // Update the coefficient of the transaction fee calculation formula. rpc UpdateCoefficientsForContract ( UpdateCoefficientsInput ) returns ( google . protobuf . Empty ) { } // This method is used to initialize the governance organization for some functions, // including: the coefficient of the user transaction fee calculation formula, // the coefficient of the contract developer resource fee calculation formula, and the side chain rental fee. rpc InitializeAuthorizedController ( google . protobuf . Empty ) returns ( google . protobuf . Empty ) { } rpc AddAddressToCreateTokenWhiteList ( aelf . Address ) returns ( google . protobuf . Empty ) { } rpc RemoveAddressFromCreateTokenWhiteList ( aelf . Address ) returns ( google . protobuf . Empty ) { } rpc SetTransactionFeeDelegations ( SetTransactionFeeDelegationsInput ) returns ( SetTransactionFeeDelegationsOutput ) { } rpc RemoveTransactionFeeDelegator ( RemoveTransactionFeeDelegatorInput ) returns ( google . protobuf . Empty ) { } rpc RemoveTransactionFeeDelegatee ( RemoveTransactionFeeDelegateeInput ) returns ( google . protobuf . Empty ) { } rpc SetSymbolAlias ( SetSymbolAliasInput ) returns ( google . protobuf . Empty ) { } // Get all delegatees' address of delegator from input rpc GetTransactionFeeDelegatees ( GetTransactionFeeDelegateesInput ) returns ( GetTransactionFeeDelegateesOutput ) { option ( aelf . is_view ) = true ; } // Query token information. rpc GetTokenInfo ( GetTokenInfoInput ) returns ( TokenInfo ) { option ( aelf . is_view ) = true ; } // Query native token information. rpc GetNativeTokenInfo ( google . protobuf . Empty ) returns ( TokenInfo ) { option ( aelf . is_view ) = true ; } // Query resource token information. rpc GetResourceTokenInfo ( google . protobuf . Empty ) returns ( TokenInfoList ) { option ( aelf . is_view ) = true ; } // Query the balance at the specified address. rpc GetBalance ( GetBalanceInput ) returns ( GetBalanceOutput ) { option ( aelf . is_view ) = true ; } // Query the account's allowance for other addresses rpc GetAllowance ( GetAllowanceInput ) returns ( GetAllowanceOutput ) { option ( aelf . is_view ) = true ; } // Query the account's available allowance for other addresses rpc GetAvailableAllowance ( GetAllowanceInput ) returns ( GetAllowanceOutput ) { option ( aelf . is_view ) = true ; } // Check whether the token is in the whitelist of an address, // which can be called TransferFrom to transfer the token under the condition of not being credited. rpc IsInWhiteList ( IsInWhiteListInput ) returns ( google . protobuf . BoolValue ) { option ( aelf . is_view ) = true ; } // Query the information for a lock. rpc GetLockedAmount ( GetLockedAmountInput ) returns ( GetLockedAmountOutput ) { option ( aelf . is_view ) = true ; } // Query the address of receiving token in cross-chain transfer. rpc GetCrossChainTransferTokenContractAddress ( GetCrossChainTransferTokenContractAddressInput ) returns ( aelf . Address ) { option ( aelf . is_view ) = true ; } // Query the name of the primary Token. rpc GetPrimaryTokenSymbol ( google . protobuf . Empty ) returns ( google . protobuf . StringValue ) { option ( aelf . is_view ) = true ; } // Query the coefficient of the transaction fee calculation formula. rpc GetCalculateFeeCoefficientsForContract ( google . protobuf . Int32Value ) returns ( CalculateFeeCoefficients ) { option ( aelf . is_view ) = true ; } // Query the coefficient of the transaction fee calculation formula. rpc GetCalculateFeeCoefficientsForSender ( google . protobuf . Empty ) returns ( CalculateFeeCoefficients ) { option ( aelf . is_view ) = true ; } // Query tokens that can pay transaction fees. rpc GetSymbolsToPayTxSizeFee ( google . protobuf . Empty ) returns ( SymbolListToPayTxSizeFee ) { option ( aelf . is_view ) = true ; } // Query the hash of the last input of ClaimTransactionFees. rpc GetLatestTotalTransactionFeesMapHash ( google . protobuf . Empty ) returns ( aelf . Hash ) { option ( aelf . is_view ) = true ; } // Query the hash of the last input of DonateResourceToken. rpc GetLatestTotalResourceTokensMapsHash ( google . protobuf . Empty ) returns ( aelf . Hash ) { option ( aelf . is_view ) = true ; } rpc IsTokenAvailableForMethodFee ( google . protobuf . StringValue ) returns ( google . protobuf . BoolValue ) { option ( aelf . is_view ) = true ; } rpc GetReservedExternalInfoKeyList ( google . protobuf . Empty ) returns ( StringList ) { option ( aelf . is_view ) = true ; } rpc GetTransactionFeeDelegationsOfADelegatee ( GetTransactionFeeDelegationsOfADelegateeInput ) returns ( TransactionFeeDelegations ) { option ( aelf . is_view ) = true ; } rpc GetTokenAlias ( google . protobuf . StringValue ) returns ( google . protobuf . StringValue ) { option ( aelf . is_view ) = true ; } rpc GetSymbolByAlias ( google . protobuf . StringValue ) returns ( google . protobuf . StringValue ) { option ( aelf . is_view ) = true ; } } message TokenInfo { // The symbol of the token.f string symbol = 1 ; // The full name of the token. string token_name = 2 ; // The current supply of the token. int64 supply = 3 ; // The total supply of the token. int64 total_supply = 4 ; // The precision of the token. int32 decimals = 5 ; // The address that has permission to issue the token. aelf . Address issuer = 6 ; // A flag indicating if this token is burnable. bool is_burnable = 7 ; // The chain id of the token. int32 issue_chain_id = 8 ; // The amount of issued tokens. int64 issued = 9 ; // The external information of the token. ExternalInfo external_info = 10 ; // The address that owns the token. aelf . Address owner = 11 ; } message ExternalInfo { map < string , string > value = 1 ; } message CreateInput { // The symbol of the token. string symbol = 1 ; // The full name of the token. string token_name = 2 ; // The total supply of the token. int64 total_supply = 3 ; // The precision of the token int32 decimals = 4 ; // The address that has permission to issue the token. aelf . Address issuer = 5 ; // A flag indicating if this token is burnable. bool is_burnable = 6 ; // A whitelist address list used to lock tokens. repeated aelf . Address lock_white_list = 7 ; // The chain id of the token. int32 issue_chain_id = 8 ; // The external information of the token. ExternalInfo external_info = 9 ; // The address that owns the token. aelf . Address owner = 10 ; } message SetPrimaryTokenSymbolInput { // The symbol of the token. string symbol = 1 ; } message IssueInput { // The token symbol to issue. string symbol = 1 ; // The token amount to issue. int64 amount = 2 ; // The memo. string memo = 3 ; // The target address to issue. aelf . Address to = 4 ; } message TransferInput { // The receiver of the token. aelf . Address to = 1 ; // The token symbol to transfer. string symbol = 2 ; // The amount to to transfer. int64 amount = 3 ; // The memo. string memo = 4 ; } message LockInput { // The one want to lock his token. aelf . Address address = 1 ; // Id of the lock. aelf . Hash lock_id = 2 ; // The symbol of the token to lock. string symbol = 3 ; // a memo. string usage = 4 ; // The amount of tokens to lock. int64 amount = 5 ; } message UnlockInput { // The one want to un-lock his token. aelf . Address address = 1 ; // Id of the lock. aelf . Hash lock_id = 2 ; // The symbol of the token to un-lock. string symbol = 3 ; // a memo. string usage = 4 ; // The amount of tokens to un-lock. int64 amount = 5 ; } message TransferFromInput { // The source address of the token. aelf . Address from = 1 ; // The destination address of the token. aelf . Address to = 2 ; // The symbol of the token to transfer. string symbol = 3 ; // The amount to transfer. int64 amount = 4 ; // The memo. string memo = 5 ; } message ApproveInput { // The address that allowance will be increased. aelf . Address spender = 1 ; // The symbol of token to approve. string symbol = 2 ; // The amount of token to approve. int64 amount = 3 ; } message BatchApproveInput { repeated ApproveInput value = 1 ; } message UnApproveInput { // The address that allowance will be decreased. aelf . Address spender = 1 ; // The symbol of token to un-approve. string symbol = 2 ; // The amount of token to un-approve. int64 amount = 3 ; } message BurnInput { // The symbol of token to burn. string symbol = 1 ; // The amount of token to burn. int64 amount = 2 ; } message ChargeResourceTokenInput { // Collection of charge resource token, Symbol->Amount. map < string , int64 > cost_dic = 1 ; // The sender of the transaction. aelf . Address caller = 2 ; } message TransactionFeeBill { // The transaction fee dictionary, Symbol->fee. map < string , int64 > fees_map = 1 ; } message TransactionFreeFeeAllowanceBill { // The transaction free fee allowance dictionary, Symbol->fee. map < string , int64 > free_fee_allowances_map = 1 ; } message CheckThresholdInput { // The sender of the transaction. aelf . Address sender = 1 ; // The threshold to set, Symbol->Threshold. map < string , int64 > symbol_to_threshold = 2 ; // Whether to check the allowance. bool is_check_allowance = 3 ; } message GetTokenInfoInput { // The symbol of token. string symbol = 1 ; } message GetBalanceInput { // The symbol of token. string symbol = 1 ; // The target address of the query. aelf . Address owner = 2 ; } message GetBalanceOutput { // The symbol of token. string symbol = 1 ; // The target address of the query. aelf . Address owner = 2 ; // The balance of the owner. int64 balance = 3 ; } message GetAllowanceInput { // The symbol of token. string symbol = 1 ; // The address of the token owner. aelf . Address owner = 2 ; // The address of the spender. aelf . Address spender = 3 ; } message GetAllowanceOutput { // The symbol of token. string symbol = 1 ; // The address of the token owner. aelf . Address owner = 2 ; // The address of the spender. aelf . Address spender = 3 ; // The amount of allowance. int64 allowance = 4 ; } message CrossChainTransferInput { // The receiver of transfer. aelf . Address to = 1 ; // The symbol of token. string symbol = 2 ; // The amount of token to transfer. int64 amount = 3 ; // The memo. string memo = 4 ; // The destination chain id. int32 to_chain_id = 5 ; // The chain id of the token. int32 issue_chain_id = 6 ; } message CrossChainReceiveTokenInput { // The source chain id. int32 from_chain_id = 1 ; // The height of the transfer transaction. int64 parent_chain_height = 2 ; // The raw bytes of the transfer transaction. bytes transfer_transaction_bytes = 3 ; // The merkle path created from the transfer transaction. aelf . MerklePath merkle_path = 4 ; } message IsInWhiteListInput { // The symbol of token. string symbol = 1 ; // The address to check. aelf . Address address = 2 ; } message SymbolToPayTxSizeFee { // The symbol of token. string token_symbol = 1 ; // The charge weight of primary token. int32 base_token_weight = 2 ; // The new added token charge weight. For example, the charge weight of primary Token is set to 1. // The newly added token charge weight is set to 10. If the transaction requires 1 unit of primary token, // the user can also pay for 10 newly added tokens. int32 added_token_weight = 3 ; } message SymbolListToPayTxSizeFee { // Transaction fee token information. repeated SymbolToPayTxSizeFee symbols_to_pay_tx_size_fee = 1 ; } message ChargeTransactionFeesInput { // The method name of transaction. string method_name = 1 ; // The contract address of transaction. aelf . Address contract_address = 2 ; // The amount of transaction size fee. int64 transaction_size_fee = 3 ; // Transaction fee token information. repeated SymbolToPayTxSizeFee symbols_to_pay_tx_size_fee = 4 ; } message ChargeTransactionFeesOutput { // Whether the charge was successful. bool success = 1 ; // The charging information. string charging_information = 2 ; } message CallbackInfo { aelf . Address contract_address = 1 ; string method_name = 2 ; } message ExtraTokenListModified { option ( aelf . is_event ) = true ; // Transaction fee token information. SymbolListToPayTxSizeFee symbol_list_to_pay_tx_size_fee = 1 ; } message GetLockedAmountInput { // The address of the lock. aelf . Address address = 1 ; // The token symbol. string symbol = 2 ; // The id of the lock. aelf . Hash lock_id = 3 ; } message GetLockedAmountOutput { // The address of the lock. aelf . Address address = 1 ; // The token symbol. string symbol = 2 ; // The id of the lock. aelf . Hash lock_id = 3 ; // The locked amount. int64 amount = 4 ; } message TokenInfoList { // List of token information. repeated TokenInfo value = 1 ; } message GetCrossChainTransferTokenContractAddressInput { // The chain id. int32 chainId = 1 ; } message CrossChainCreateTokenInput { // The chain id of the chain on which the token was created. int32 from_chain_id = 1 ; // The height of the transaction that created the token. int64 parent_chain_height = 2 ; // The transaction that created the token. bytes transaction_bytes = 3 ; // The merkle path created from the transaction that created the transaction. aelf . MerklePath merkle_path = 4 ; } message InitializeFromParentChainInput { // The amount of resource. map < string , int32 > resource_amount = 1 ; // The token contract addresses. map < int32 , aelf . Address > registered_other_token_contract_addresses = 2 ; // The creator the side chain. aelf . Address creator = 3 ; } message UpdateCoefficientsInput { // The specify pieces gonna update. repeated int32 piece_numbers = 1 ; // Coefficients of one single type. CalculateFeeCoefficients coefficients = 2 ; } enum FeeTypeEnum { READ = 0 ; STORAGE = 1 ; WRITE = 2 ; TRAFFIC = 3 ; TX = 4 ; } message CalculateFeePieceCoefficients { // Coefficients of one single piece. // The first char is its type: liner / power. // The second char is its piece upper bound. repeated int32 value = 1 ; } message CalculateFeeCoefficients { // The resource fee type, like READ, WRITE, etc. int32 fee_token_type = 1 ; // Coefficients of one single piece. repeated CalculateFeePieceCoefficients piece_coefficients_list = 2 ; } message AllCalculateFeeCoefficients { // The coefficients of fee Calculation. repeated CalculateFeeCoefficients value = 1 ; } message TotalTransactionFeesMap { // Token dictionary that charge transaction fee, Symbol->Amount. map < string , int64 > value = 1 ; // The hash of the block processing the transaction. aelf . Hash block_hash = 2 ; // The height of the block processing the transaction. int64 block_height = 3 ; } message TotalResourceTokensMaps { // Resource tokens to charge. repeated ContractTotalResourceTokens value = 1 ; // The hash of the block processing the transaction. aelf . Hash block_hash = 2 ; // The height of the block processing the transaction. int64 block_height = 3 ; } message ContractTotalResourceTokens {
프로젝트로 돌아가기