nonce对于在Elrond Network上发行的NFT起到什么作用?

What role does a nonce serve for an NFT issued on Elrond Network?

以下是在 Elrond 文档中转移 NFT 的示例:

TransferTransaction {
    Sender: <account address of the sender>
    Receiver: <same as sender>
    Value: 0
    GasLimit: 1000000 + length of Data field in bytes * 1500
    Data: "ESDTNFTTransfer" +
          "@" + <token identifier in hexadecimal encoding> +
          "@" + <the NFT nonce in hexadecimal encoding> + 
          "@" + <quantity to transfer in hexadecimal encoding> +
          "@" + <destination address in hexadecimal encoding>
}

来源:https://docs.elrond.com/developers/nft-tokens/#transfers

上面的nonce有什么作用?它是如何检索的?

在 Elrond 上,单个 NFT 由 (token id, nonce) 对定义,其中 token id 对应于与发行相关联的 ID class(例如,NFT-TICKER-123456 ) 并且 nonce 对应于在该代码下发行的一个特定 NFT(具有各种属性和 url 数据等)。

您可以使用 Elrond 网关 API 检索与帐户持有的 NFT 关联的随机数。例如,在 Devnet 上:

https://devnet-gateway.elrond.com/address/ACCOUNT_ADDRESS/esdt

返回的数据如下所示:

{
   "data":{
      "esdts":{
         "ABA-eea2e8-01":{
            "attributes":"AAAAA09rIQ==",
            "balance":"1",
            "creator":"erd1qqqqqqqqqqqqqpgq7t2u...",
            "hash":"YSBoYXNo",
            "name":"NFT",
            "nonce":1,
            "royalties":"0",
            "tokenIdentifier":"ABA-eea2e8-01",
            "uris":[
               "aHR0cDo6Ly9ldGhhbmZhc3QuY29t"
            ]
         }
      }
   },
   "error":"",
   "code":"successful"
}

每个键值对对应一个ESDT余额或一个特定的NFT。例如这里的key"ABA-eea2e8-01"由一个NFT token id和nonce以“-”拼接而成,其值包括NFT的关联属性。