Merge pull request #1931 from XRPLF/nftReferenceUpdates

Update NFT ref info
This commit is contained in:
Dennis Dawson
2023-06-29 08:57:53 -07:00
committed by GitHub
2 changed files with 30 additions and 1 deletions

View File

@@ -1,7 +1,7 @@
---
html: invariant-checking.html
parent: consensus-network.html
blurb: Understand what Invariant Checking is, why it exists, how it works, and what invariant checks are active.
blurb: Understand what invariant checking is, why it exists, how it works, and what invariant checks are active.
labels:
- Blockchain
- Security
@@ -130,6 +130,26 @@ The XRP Ledger checks all the following invariants on each transaction:
- A new account root must have the right starting [sequence](basic-data-types.html#account-sequence).
- A transaction must not create more than one new [account](accounts.html).
### ValidNFTokenPage
- **Invariant Condition(s):**
- The number of minted or burned NFTs can only be changed by `NFTokenMint` or `NFTokenBurn` transactions.
- A successful NFTokenMint transaction must increase the number of NFTs.
- A failed NFTokenMint transaction must not change the number of minted NFTs.
- A NFTokenMint transaction cannot change the number of burned NFTs.
- A successful NFTokenBurn transaction must increase the number of burned NFTs.
- A failed NFTokenBurn transaction must not change the number of burned NFTs.
- A NFTokenBurn transaction cannot change the number of minted NFTs.
### NFTokenCountTracking
- **Invariant Condition(s):**
- The page is correctly associated with the owner.
- The page is correctly ordered between the next and previous links.
- The page contains a valid number of NFTs.
- The NFTs on this page do not belong on a lower or higher page.
- The NFTs are correctly sorted on the page.
- Each URI, if present, is not empty.
## See Also

View File

@@ -68,6 +68,15 @@ A `ModifiedNode` object contains the following fields:
**Note:** If the modified ledger object has `PreviousTxnID` and `PreviousTxnLgrSeq` fields, the transaction always updates them with the transaction's own identifying hash and the index of the ledger version that included the transaction, but these fields' new value is not listed in the `FinalFields` of the `ModifiedNode` object, and their previous values are listed at the top level of the `ModifiedNode` object rather than in the nested `PreviousFields` object.
## NFT Fields
Transactions (`tx` and `account_tx`) involving NFTs can contain the following fields in the metadata. These values are added by the Clio server at request time and are not stored in the hashed binary metadata:
| Field | Value | Description |
|:--------------------|:--------------------------|:---------------------------|
| `nftoken_id` | String | Shows the `NFTokenID` for the `NFToken` that changed on the ledger as a result of the transaction. Only present if the transaction is `NFTokenMint` or `NFTokenAcceptOffer`. See [NFTokenID](nftoken.html#nftokenid). |
| `nftoken_ids` | Array | Shows all the `NFTokenIDs` for the `NFTokens` that changed on the ledger as a result of the transaction. Only present if the transaction is `NFTokenCancelOffer`. |
| `offer_id` | String | Shows the `OfferID`of a new `NFTokenOffer` in a response from a `NFTokenCreateOffer` transaction.
## delivered_amount