Skip to content

Commit

Permalink
Nfts: Documentation Update (#53)
Browse files Browse the repository at this point in the history
* Sync to main in preparation for 0.15.0 tag (#39)

* Reference node properties controlling HTS behavior

Signed-off-by: tinker-michaelj <[email protected]>

* Again clarify use of master

Signed-off-by: tinker-michaelj <[email protected]>

* Update from head of schedule-develop in hashgraph/hedera-services (#2)

Signed-off-by: tinker-michaelj <[email protected]>

* Standardize memos for non-schedule entities (#3)

* Standardize memos for non-schedule entities

Signed-off-by: tinker-michaelj <[email protected]>

* Fix typo in field number

Signed-off-by: tinker-michaelj <[email protected]>

* Use google.protobuf.StringValue for new memo fields

Signed-off-by: tinker-michaelj <[email protected]>

* Comment on deprecated memoField choice

Signed-off-by: tinker-michaelj <[email protected]>

* Port schedule txn comments (#5)

* Port schedule txn comments

Signed-off-by: tinker-michaelj <[email protected]>

* Add further comments

Signed-off-by: tinker-michaelj <[email protected]>

* Apply the same changes to hedera-protobufs repo. (#4)

Signed-off-by: ljianghedera <[email protected]>

Co-authored-by: ljianghedera <[email protected]>

* Separate messages used for balances proto under hedera/streams (#6)

* Separate messages used for balances proto under hedera/streams

Signed-off-by: tinker-michaelj <[email protected]>

* Restructure proto directories

Signed-off-by: tinker-michaelj <[email protected]>

* Change java_package for AccountBalanceFile.proto messages

Signed-off-by: tinker-michaelj <[email protected]>

* Extract TokenBalance(s) to BasicTypes

Signed-off-by: tinker-michaelj <[email protected]>

* Include decimals in queries of token/account balances and relationships (#8)

Signed-off-by: tinker-michaelj <[email protected]>

* Include Leemon's edits from Services issue #974 (#10)

Signed-off-by: tinker-michaelj <[email protected]>

* Add scheduled transaction id to TransactionReceipt + ScheduleGetInfo types (#12)

* Prepare to tag 0.12.0 release (#11)

* Reference node properties controlling HTS behavior

Signed-off-by: tinker-michaelj <[email protected]>

* Again clarify use of master

Signed-off-by: tinker-michaelj <[email protected]>

* Update from head of schedule-develop in hashgraph/hedera-services (#2)

Signed-off-by: tinker-michaelj <[email protected]>

* Standardize memos for non-schedule entities (#3)

* Standardize memos for non-schedule entities

Signed-off-by: tinker-michaelj <[email protected]>

* Fix typo in field number

Signed-off-by: tinker-michaelj <[email protected]>

* Use google.protobuf.StringValue for new memo fields

Signed-off-by: tinker-michaelj <[email protected]>

* Comment on deprecated memoField choice

Signed-off-by: tinker-michaelj <[email protected]>

* Port schedule txn comments (#5)

* Port schedule txn comments

Signed-off-by: tinker-michaelj <[email protected]>

* Add further comments

Signed-off-by: tinker-michaelj <[email protected]>

* Apply the same changes to hedera-protobufs repo. (#4)

Signed-off-by: ljianghedera <[email protected]>

Co-authored-by: ljianghedera <[email protected]>

* Separate messages used for balances proto under hedera/streams (#6)

* Separate messages used for balances proto under hedera/streams

Signed-off-by: tinker-michaelj <[email protected]>

* Restructure proto directories

Signed-off-by: tinker-michaelj <[email protected]>

* Change java_package for AccountBalanceFile.proto messages

Signed-off-by: tinker-michaelj <[email protected]>

* Extract TokenBalance(s) to BasicTypes

Signed-off-by: tinker-michaelj <[email protected]>

* Include decimals in queries of token/account balances and relationships (#8)

Signed-off-by: tinker-michaelj <[email protected]>

* Include Leemon's edits from Services issue #974 (#10)

Signed-off-by: tinker-michaelj <[email protected]>

Co-authored-by: ljianghedera <[email protected]>

* Update README.md

* Add scheduledTransactionID fields to TransactionReceipt and ScheduleGetInfo

Signed-off-by: tinker-michaelj <[email protected]>

* Update README

Signed-off-by: tinker-michaelj <[email protected]>

Co-authored-by: ljianghedera <[email protected]>

* 00017 d hcs message size (#19)

* Add response code for Hcs message size limit.

Signed-off-by: ljianghedera <[email protected]>

* Add the response code for HCS message too large.

Signed-off-by: ljianghedera <[email protected]>

* Update protobufs to satisfy revised scheduled txns spec (#15)

* Update protobufs to satisfy revised scheduled txns spec

Signed-off-by: tinker-michaelj <[email protected]>

* Improve comment readability

Signed-off-by: tinker-michaelj <[email protected]>

* Make explicit mention of scheduling.whitelist

Signed-off-by: tinker-michaelj <[email protected]>

* Incorporate reviewer feedback

Signed-off-by: tinker-michaelj <[email protected]>

* Standardize on payerAccountID

Signed-off-by: tinker-michaelj <[email protected]>

* Add scheduledTransactionID to ScheduleInfo

Signed-off-by: tinker-michaelj <[email protected]>

* Clarify effects of schedule deletion

Signed-off-by: tinker-michaelj <[email protected]>

* Include expiration time in getScheduleInfo response

Signed-off-by: tinker-michaelj <[email protected]>

* Change now-obsolete UNPARSEABLE_SCHEDULED_TRANSACTION response code to SCHEDULED_TRANSACTION_NOT_IN_WHITELIST; remove UNSCHEDULABLE_TRANSACTION

Signed-off-by: tinker-michaelj <[email protected]>

* Remove unneeded imports

Signed-off-by: tinker-michaelj <[email protected]>

* Replace deleted/executed flags with consensus timestamps

Signed-off-by: tinker-michaelj <[email protected]>

* Update info on ScheduleCreate receipt on duplicate creation

Signed-off-by: tinker-michaelj <[email protected]>

* Incorporate reviewer feedback

Signed-off-by: tinker-michaelj <[email protected]>

* Use oneof to enforce mutual exclusion of schedule deletion and execution

Signed-off-by: tinker-michaelj <[email protected]>

* Use lower_snake_case for field names in oneof to ease transition to standard naming convention

Signed-off-by: tinker-michaelj <[email protected]>

* Redirect to ResponseCode doc section from Schedule* ops

Signed-off-by: tinker-michaelj <[email protected]>

* Add ThrottleDefinitions types (#23)

* Create ThrottleDefinitions message

Signed-off-by: tinker-michaelj <[email protected]>

* Add throttle-specific response codes

Signed-off-by: tinker-michaelj <[email protected]>

* Add more general response codes for throttle defs

Signed-off-by: tinker-michaelj <[email protected]>

* Add comments to the throttle types

Signed-off-by: tinker-michaelj <[email protected]>

* Clarify some comments

Signed-off-by: tinker-michaelj <[email protected]>

* Update to milliOpsPerSec/burstPeriodMs

Signed-off-by: tinker-michaelj <[email protected]>

* Fix typo

Signed-off-by: tinker-michaelj <[email protected]>

* Be more concise

Signed-off-by: tinker-michaelj <[email protected]>

* Be explicit about milli-ops

Signed-off-by: tinker-michaelj <[email protected]>

* Emphasize only ed25519 keys are supported (#26)

Signed-off-by: tinker-michaelj <[email protected]>

* Revise address book types to 0.13.0 standard (#27)

* Update to final version of address book messages

Signed-off-by: tinker-michaelj <[email protected]>

* Align with issue 750 consensus format

Signed-off-by: tinker-michaelj <[email protected]>

* Change ServiceEndpoint types

Signed-off-by: tinker-michaelj <[email protected]>

* Match comments from issue

Signed-off-by: tinker-michaelj <[email protected]>

* Update comment

Signed-off-by: tinker-michaelj <[email protected]>

* Add details

Signed-off-by: tinker-michaelj <[email protected]>

* Specify fallback use of deprecated fields

Signed-off-by: tinker-michaelj <[email protected]>

* Minor revision

Signed-off-by: tinker-michaelj <[email protected]>

* Add full semver meta to SemanticVersion (#33)

* Add full semver meta to SemanticVersion

Signed-off-by: tinker-michaelj <[email protected]>

* Add top-level comment on SemanticVersion

Signed-off-by: tinker-michaelj <[email protected]>

* Abbreviate SemanticVersion optional fields

Signed-off-by: tinker-michaelj <[email protected]>

* Add ACCOUNT_EXPIRED_AND_PENDING_REMOVAL response code (#35)

Signed-off-by: tinker-michaelj <[email protected]>

* Feature: NFT Tokens (#37)

* feat(tokens): nfts

Signed-off-by: failfmi <[email protected]>

* feat: multiple fee data per hedera functionality; sub type distinguishing different fee data

Signed-off-by: failfmi <[email protected]>

* deprecate feedata property

Signed-off-by: Daniel Ivanov <[email protected]>

* style: rename repeated fee data field

Signed-off-by: failfmi <[email protected]>

* Error ResponseCodes

Signed-off-by: Georgi Yazovaliyski <[email protected]>

Co-authored-by: Daniel Ivanov <[email protected]>
Co-authored-by: Georgi Yazovaliyski <[email protected]>

* Sync develop with main (#38)

* Prepare for 0.13.0 tag (#28)

* Reference node properties controlling HTS behavior

Signed-off-by: tinker-michaelj <[email protected]>

* Again clarify use of master

Signed-off-by: tinker-michaelj <[email protected]>

* Update from head of schedule-develop in hashgraph/hedera-services (#2)

Signed-off-by: tinker-michaelj <[email protected]>

* Standardize memos for non-schedule entities (#3)

* Standardize memos for non-schedule entities

Signed-off-by: tinker-michaelj <[email protected]>

* Fix typo in field number

Signed-off-by: tinker-michaelj <[email protected]>

* Use google.protobuf.StringValue for new memo fields

Signed-off-by: tinker-michaelj <[email protected]>

* Comment on deprecated memoField choice

Signed-off-by: tinker-michaelj <[email protected]>

* Port schedule txn comments (#5)

* Port schedule txn comments

Signed-off-by: tinker-michaelj <[email protected]>

* Add further comments

Signed-off-by: tinker-michaelj <[email protected]>

* Apply the same changes to hedera-protobufs repo. (#4)

Signed-off-by: ljianghedera <[email protected]>

Co-authored-by: ljianghedera <[email protected]>

* Separate messages used for balances proto under hedera/streams (#6)

* Separate messages used for balances proto under hedera/streams

Signed-off-by: tinker-michaelj <[email protected]>

* Restructure proto directories

Signed-off-by: tinker-michaelj <[email protected]>

* Change java_package for AccountBalanceFile.proto messages

Signed-off-by: tinker-michaelj <[email protected]>

* Extract TokenBalance(s) to BasicTypes

Signed-off-by: tinker-michaelj <[email protected]>

* Include decimals in queries of token/account balances and relationships (#8)

Signed-off-by: tinker-michaelj <[email protected]>

* Include Leemon's edits from Services issue #974 (#10)

Signed-off-by: tinker-michaelj <[email protected]>

* Add scheduled transaction id to TransactionReceipt + ScheduleGetInfo types (#12)

* Prepare to tag 0.12.0 release (#11)

* Reference node properties controlling HTS behavior

Signed-off-by: tinker-michaelj <[email protected]>

* Again clarify use of master

Signed-off-by: tinker-michaelj <[email protected]>

* Update from head of schedule-develop in hashgraph/hedera-services (#2)

Signed-off-by: tinker-michaelj <[email protected]>

* Standardize memos for non-schedule entities (#3)

* Standardize memos for non-schedule entities

Signed-off-by: tinker-michaelj <[email protected]>

* Fix typo in field number

Signed-off-by: tinker-michaelj <[email protected]>

* Use google.protobuf.StringValue for new memo fields

Signed-off-by: tinker-michaelj <[email protected]>

* Comment on deprecated memoField choice

Signed-off-by: tinker-michaelj <[email protected]>

* Port schedule txn comments (#5)

* Port schedule txn comments

Signed-off-by: tinker-michaelj <[email protected]>

* Add further comments

Signed-off-by: tinker-michaelj <[email protected]>

* Apply the same changes to hedera-protobufs repo. (#4)

Signed-off-by: ljianghedera <[email protected]>

Co-authored-by: ljianghedera <[email protected]>

* Separate messages used for balances proto under hedera/streams (#6)

* Separate messages used for balances proto under hedera/streams

Signed-off-by: tinker-michaelj <[email protected]>

* Restructure proto directories

Signed-off-by: tinker-michaelj <[email protected]>

* Change java_package for AccountBalanceFile.proto messages

Signed-off-by: tinker-michaelj <[email protected]>

* Extract TokenBalance(s) to BasicTypes

Signed-off-by: tinker-michaelj <[email protected]>

* Include decimals in queries of token/account balances and relationships (#8)

Signed-off-by: tinker-michaelj <[email protected]>

* Include Leemon's edits from Services issue #974 (#10)

Signed-off-by: tinker-michaelj <[email protected]>

Co-authored-by: ljianghedera <[email protected]>

* Update README.md

* Add scheduledTransactionID fields to TransactionReceipt and ScheduleGetInfo

Signed-off-by: tinker-michaelj <[email protected]>

* Update README

Signed-off-by: tinker-michaelj <[email protected]>

Co-authored-by: ljianghedera <[email protected]>

* 00017 d hcs message size (#19)

* Add response code for Hcs message size limit.

Signed-off-by: ljianghedera <[email protected]>

* Add the response code for HCS message too large.

Signed-off-by: ljianghedera <[email protected]>

* Update protobufs to satisfy revised scheduled txns spec (#15)

* Update protobufs to satisfy revised scheduled txns spec

Signed-off-by: tinker-michaelj <[email protected]>

* Improve comment readability

Signed-off-by: tinker-michaelj <[email protected]>

* Make explicit mention of scheduling.whitelist

Signed-off-by: tinker-michaelj <[email protected]>

* Incorporate reviewer feedback

Signed-off-by: tinker-michaelj <[email protected]>

* Standardize on payerAccountID

Signed-off-by: tinker-michaelj <[email protected]>

* Add scheduledTransactionID to ScheduleInfo

Signed-off-by: tinker-michaelj <[email protected]>

* Clarify effects of schedule deletion

Signed-off-by: tinker-michaelj <[email protected]>

* Include expiration time in getScheduleInfo response

Signed-off-by: tinker-michaelj <[email protected]>

* Change now-obsolete UNPARSEABLE_SCHEDULED_TRANSACTION response code to SCHEDULED_TRANSACTION_NOT_IN_WHITELIST; remove UNSCHEDULABLE_TRANSACTION

Signed-off-by: tinker-michaelj <[email protected]>

* Remove unneeded imports

Signed-off-by: tinker-michaelj <[email protected]>

* Replace deleted/executed flags with consensus timestamps

Signed-off-by: tinker-michaelj <[email protected]>

* Update info on ScheduleCreate receipt on duplicate creation

Signed-off-by: tinker-michaelj <[email protected]>

* Incorporate reviewer feedback

Signed-off-by: tinker-michaelj <[email protected]>

* Use oneof to enforce mutual exclusion of schedule deletion and execution

Signed-off-by: tinker-michaelj <[email protected]>

* Use lower_snake_case for field names in oneof to ease transition to standard naming convention

Signed-off-by: tinker-michaelj <[email protected]>

* Redirect to ResponseCode doc section from Schedule* ops

Signed-off-by: tinker-michaelj <[email protected]>

* Add ThrottleDefinitions types (#23)

* Create ThrottleDefinitions message

Signed-off-by: tinker-michaelj <[email protected]>

* Add throttle-specific response codes

Signed-off-by: tinker-michaelj <[email protected]>

* Add more general response codes for throttle defs

Signed-off-by: tinker-michaelj <[email protected]>

* Add comments to the throttle types

Signed-off-by: tinker-michaelj <[email protected]>

* Clarify some comments

Signed-off-by: tinker-michaelj <[email protected]>

* Update to milliOpsPerSec/burstPeriodMs

Signed-off-by: tinker-michaelj <[email protected]>

* Fix typo

Signed-off-by: tinker-michaelj <[email protected]>

* Be more concise

Signed-off-by: tinker-michaelj <[email protected]>

* Be explicit about milli-ops

Signed-off-by: tinker-michaelj <[email protected]>

* Emphasize only ed25519 keys are supported (#26)

Signed-off-by: tinker-michaelj <[email protected]>

* Revise address book types to 0.13.0 standard (#27)

* Update to final version of address book messages

Signed-off-by: tinker-michaelj <[email protected]>

* Align with issue 750 consensus format

Signed-off-by: tinker-michaelj <[email protected]>

* Change ServiceEndpoint types

Signed-off-by: tinker-michaelj <[email protected]>

* Match comments from issue

Signed-off-by: tinker-michaelj <[email protected]>

* Update comment

Signed-off-by: tinker-michaelj <[email protected]>

* Add details

Signed-off-by: tinker-michaelj <[email protected]>

* Specify fallback use of deprecated fields

Signed-off-by: tinker-michaelj <[email protected]>

* Minor revision

Signed-off-by: tinker-michaelj <[email protected]>

Co-authored-by: ljianghedera <[email protected]>
Co-authored-by: ljianghedera <[email protected]>

* Key list (#34)

* Update BasicTypes.proto

* Update BasicTypes.proto

* Update FileDelete.proto

* Update FileCreate.proto

* Update FileAppend.proto

* Update FileUpdate.proto

* Update BasicTypes.proto

* Update FileCreate.proto

* Update BasicTypes.proto

* Update FileCreate.proto

* Update FileUpdate.proto

* Update FileAppend.proto

* Update FileDelete.proto

* Update BasicTypes.proto

* Update BasicTypes.proto

* Update BasicTypes.proto

* Update BasicTypes.proto

* Update BasicTypes.proto

* Update FileAppend.proto

* Update FileCreate.proto

* Update FileDelete.proto

* Update FileUpdate.proto

* Update FileUpdate.proto

* Update FileUpdate.proto

* Update BasicTypes.proto

* Update BasicTypes.proto

* Update BasicTypes.proto

* Update FileCreate.proto

Co-authored-by: ljianghedera <[email protected]>
Co-authored-by: ljianghedera <[email protected]>
Co-authored-by: SimiHunjan <[email protected]>

Co-authored-by: ljianghedera <[email protected]>
Co-authored-by: ljianghedera <[email protected]>
Co-authored-by: failfmi <[email protected]>
Co-authored-by: Daniel Ivanov <[email protected]>
Co-authored-by: Georgi Yazovaliyski <[email protected]>
Co-authored-by: SimiHunjan <[email protected]>

* Nft Documentation Update

Signed-off-by: Georgi Yazovaliyski <[email protected]>

* GetAccountNftInfo removal and infoS modification

Signed-off-by: Georgi Yazovaliyski <[email protected]>

* nits

Signed-off-by: Georgi Yazovaliyski <[email protected]>

Co-authored-by: Michael Tinker <[email protected]>
Co-authored-by: ljianghedera <[email protected]>
Co-authored-by: ljianghedera <[email protected]>
Co-authored-by: failfmi <[email protected]>
Co-authored-by: Daniel Ivanov <[email protected]>
Co-authored-by: SimiHunjan <[email protected]>
  • Loading branch information
7 people authored Jul 13, 2021
1 parent 002c9aa commit f2c2057
Show file tree
Hide file tree
Showing 8 changed files with 60 additions and 5 deletions.
10 changes: 8 additions & 2 deletions services/TokenBurn.proto
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,15 @@ Burns tokens from the Token's treasury Account. If no Supply Key is defined, the
The operation decreases the Total Supply of the Token. Total supply cannot go below zero.
The amount provided must be in the lowest denomination possible. Example:
Token A has 2 decimals. In order to burn 100 tokens, one must provide amount of 10000. In order to burn 100.55 tokens, one must provide amount of 10055.
*/
For non fungible tokens the transaction body accepts serialNumbers list of integers as a parameter.
If neither the amount nor the serialNumbers get filled, a INVALID_TOKEN_BURN_AMOUNT response code will be returned.
If both amount and serialNumbers get filled, a INVALID_TRANSACTION_BODY response code will be returned.
If the serialNumbers' list count is greater than the batch size limit global dynamic property, a BATCH_SIZE_LIMIT_EXCEEDED response code will be returned.
If the serialNumbers list contains a non-positive integer as a serial number, a INVALID_NFT_ID response code will be returned.
*/
message TokenBurnTransactionBody {
TokenID token = 1; // The token for which to burn tokens. If token does not exist, transaction results in INVALID_TOKEN_ID
uint64 amount = 2; // Applicable to tokens of type FUNGIBLE_COMMON. The amount to burn from the Treasury Account. Amount must be a positive non-zero number, not bigger than the token balance of the treasury account (0; balance], represented in the lowest denomination.
repeated int64 serialNumbers = 3; // Applicable to tokens of type NON_FUNGIBLE_UNIQUE. The list of serial numbers to be burned.
}
}
14 changes: 13 additions & 1 deletion services/TokenCreate.proto
Original file line number Diff line number Diff line change
Expand Up @@ -34,13 +34,25 @@ import "Timestamp.proto";
Create a new token. After the token is created, the Token ID for it is in the receipt.
The specified Treasury Account is receiving the initial supply of tokens as-well as the tokens from the Token Mint operation once executed. The balance of the treasury account is decreased when the Token Burn operation is executed.
The <tt>initialSupply</tt> is the initial supply of the smallest parts of a token (like a tinybar, not an hbar). These are the smallest units of the token which may be transferred.
The <tt>initialSupply</tt> is the initial supply of the smallest parts of a token (like a tinybar, not an hbar). These are the smallest units of the token which may be transferred.
The supply can change over time. If the total supply at some moment is <i>S</i> parts of tokens, and the token is using <i>D</i> decimals, then <i>S</i> must be less than or equal to 2<sup>63</sup>-1, which is 9,223,372,036,854,775,807. The number of whole tokens (not parts) will be <i>S / 10<sup>D</sup></i>.
If decimals is 8 or 11, then the number of whole tokens can be at most a few billions or millions, respectively. For example, it could match Bitcoin (21 million whole tokens with 8 decimals) or hbars (50 billion whole tokens with 8 decimals). It could even match Bitcoin with milli-satoshis (21 million whole tokens with 11 decimals).
Note that a created token is <i>immutable</i> if the <tt>adminKey</tt> is omitted. No property of an immutable token can ever change, with the sole exception of its expiry. Anyone can pay to extend the expiry time of an immutable token.
A token can be either <i>FUNGIBLE_COMMON</i> or <i>NON_FUNGIBLE_UNIQUE</i>, based on its <i>TokenType</i>. If it has been omitted, <i>FUNGIBLE_COMMON</i> type is used.
A token can have either <i>INFINITE</i> or <i>FINITE</i> supply type, based on its <i>TokenType</i>. If it has been omitted, <i>INFINITE</i> type is used.
If a <i>FUNGIBLE</i> TokenType is used, <i>initialSupply</i> should explicitly be set to a non-negative. If not, the transaction will resolve to INVALID_TOKEN_INITIAL_SUPPLY.
If a <i>NON_FUNGIBLE_UNIQUE</i> TokenType is used, <i>initialSupply</i> should explicitly be set to 0. If not, the transaction will resolve to INVALID_TOKEN_INITIAL_SUPPLY.
If an <i>INFINITE</i> TokenSupplyType is used, <i>maxSupply</i> should explicitly be set to 0. If it is not 0, the transaction will resolve to INVALID_TOKEN_MAX_SUPPLY.
If a <i>FINITE</i> TokenSupplyType is used, <i>maxSupply</i> should be explicitly set to a non-negative value. If it is not, the transaction will resolve to INVALID_TOKEN_MAX_SUPPLY.
*/
message TokenCreateTransactionBody {
string name = 1; // The publicly visible name of the token, limited to a UTF-8 encoding of length <tt>tokens.maxSymbolUtf8Bytes</tt>.
Expand Down
4 changes: 3 additions & 1 deletion services/TokenDissociate.proto
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,9 @@ import "BasicTypes.proto";
If any of the provided tokens is not found, the transaction will resolve to INVALID_TOKEN_REF.
If any of the provided tokens has been deleted, the transaction will resolve to TOKEN_WAS_DELETED.
If an association between the provided account and any of the tokens does not exist, the transaction will resolve to TOKEN_NOT_ASSOCIATED_TO_ACCOUNT.
If the provided account has a nonzero balance with any of the provided tokens, the transaction will resolve to TRANSACTION_REQUIRES_ZERO_TOKEN_BALANCES.
If a token has not been deleted and has not expired, and the user has a nonzero balance, the transaction will resolve to TRANSACTION_REQUIRES_ZERO_TOKEN_BALANCES.
If a <b>fungible token</b> has expired, the user can disassociate even if their token balance is not zero.
If a <b>non fungible token</b> has expired, the user can <b>not</b> disassociate if their token balance is not zero. The transaction will resolve to TRANSACTION_REQUIRED_ZERO_TOKEN_BALANCES.
On success, associations between the provided account and tokens are removed.
*/
message TokenDissociateTransactionBody {
Expand Down
12 changes: 12 additions & 0 deletions services/TokenGetAccountNftInfos.proto
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,18 @@ import "ResponseHeader.proto";

/* Applicable only to tokens of type NON_FUNGIBLE_UNIQUE. Gets info on NFTs N through M owned by the specified accountId.
* Example: If Account A owns 5 NFTs (might be of different Token Entity), having start=0 and end=5 will return all of the NFTs
*
* INVALID_QUERY_RANGE response code will be returned if:
* 1) Start > End
* 2) Start and End indices are non-positive
* 3) Start and End indices are out of boundaries for the retrieved nft list
* 4) The range between Start and End is bigger than the global dynamic property for maximum query range
*
* NOT_SUPPORTED response code will be returned if the queried token is of type FUNGIBLE_COMMON
*
* INVALID_ACCOUNT_ID response code will be returned if the queried account does not exist
*
* ACCOUNT_DELETED response code will be returned if the queried account has been deleted
*/
message TokenGetAccountNftInfosQuery {
QueryHeader header = 1; // Standard info sent from client to node, including the signed payment, and what kind of response is requested (cost, state proof, both, or neither).
Expand Down
10 changes: 10 additions & 0 deletions services/TokenGetNftInfos.proto
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,16 @@ import "ResponseHeader.proto";

/* Applicable only to tokens of type NON_FUNGIBLE_UNIQUE. Gets info on NFTs N through M on the list of NFTs associated with a given NON_FUNGIBLE_UNIQUE Token.
* Example: If there are 10 NFTs issued, having start=0 and end=5 will query for the first 5 NFTs. Querying +all 10 NFTs will require start=0 and end=10
*
* INVALID_QUERY_RANGE response code will be returned if:
* 1) Start > End
* 2) Start and End indices are non-positive
* 3) Start and End indices are out of boundaries for the retrieved nft list
* 4) The range between Start and End is bigger than the global dynamic property for maximum query range
*
* NOT_SUPPORTED response code will be returned if the queried token is of type FUNGIBLE_COMMON
*
* INVALID_TOKEN_ID response code will be returned if the queried token does not exist
*/
message TokenGetNftInfosQuery {
QueryHeader header = 1; // Standard info sent from client to node, including the signed payment, and what kind of response is requested (cost, state proof, both, or neither).
Expand Down
4 changes: 4 additions & 0 deletions services/TokenMint.proto
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,10 @@ Mints tokens to the Token's treasury Account. If no Supply Key is defined, the t
The operation increases the Total Supply of the Token. The maximum total supply a token can have is 2^63-1.
The amount provided must be in the lowest denomination possible. Example:
Token A has 2 decimals. In order to mint 100 tokens, one must provide amount of 10000. In order to mint 100.55 tokens, one must provide amount of 10055.
If both amount and metadata list get filled, a INVALID_TRANSACTION_BODY response code will be returned.
If the metadata list contains metadata which is too large, a METADATA_TOO_LONG response code will be returned.
If neither the amount nor the metadata list get filled, a INVALID_TOKEN_MINT_AMOUNT response code will be returned.
If the metadata list count is greater than the batch size limit global dynamic property, a BATCH_SIZE_LIMIT_EXCEEDED response code will be returned.
*/
message TokenMintTransactionBody {
TokenID token = 1; // The token for which to mint tokens. If token does not exist, transaction results in INVALID_TOKEN_ID
Expand Down
6 changes: 5 additions & 1 deletion services/TokenUpdate.proto
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,11 @@ If no value is given for a field, that field is left unchanged. For an immutable
1. Whether or not a token has an admin key, its expiry can be extended with only the transaction payer's signature.
2. Updating any other field of a mutable token requires the admin key's signature.
3. If a new admin key is set, this new key must sign <b>unless</b> it is exactly an empty <tt>KeyList</tt>. This special sentinel key removes the existing admin key and causes the token to become immutable. (Other <tt>Key</tt> structures without a constituent <tt>Ed25519</tt> key will be rejected with <tt>INVALID_ADMIN_KEY</tt>.)
4. If a new treasury is set, the new treasury account's key must sign the transaction. */
4. If a new treasury is set, the new treasury account's key must sign the transaction.
--- Nft Requirements ---
1. If a non fungible token has a positive treasury balance, the operation will abort with CURRENT_TREASURY_STILL_OWNS_NFTS.
*/
message TokenUpdateTransactionBody {
TokenID token = 1; // The Token to be updated
string symbol = 2; // The new publicly visible Token symbol, limited to a UTF-8 encoding of length <tt>tokens.maxTokenNameUtf8Bytes</tt>.
Expand Down
5 changes: 5 additions & 0 deletions services/TokenWipeAccount.proto
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,11 @@ import "BasicTypes.proto";
If the provided account is the Token's Treasury Account, transaction results in CANNOT_WIPE_TOKEN_TREASURY_ACCOUNT
On success, tokens are removed from the account and the total supply of the token is decreased by the wiped amount.
If both amount and serialNumbers get filled, a INVALID_TRANSACTION_BODY response code will be returned.
If neither the amount nor the serialNumbers get filled, a INVALID_WIPING_AMOUNT response code will be returned.
If the serialNumbers list contains a non-positive integer as a serial number, a INVALID_NFT_ID response code will be returned.
If the serialNumbers' list count is greater than the batch size limit global dynamic property, a BATCH_SIZE_LIMIT_EXCEEDED response code will be returned.
The amount provided is in the lowest denomination possible. Example:
Token A has 2 decimals. In order to wipe 100 tokens from account, one must provide amount of 10000. In order to wipe 100.55 tokens, one must provide amount of 10055.
*/
Expand Down

0 comments on commit f2c2057

Please sign in to comment.