mirror of
https://github.com/XRPLF/xrpl-dev-portal.git
synced 2025-11-22 04:35:49 +00:00
Update internal types in tables, etc.
- Improve consistency of amendment notices in transaction reference - Clarify availability of tokens in payment channels - Other minor fixes
This commit is contained in:
@@ -27,7 +27,7 @@ Unlike full-fledged [ledger entries](../ledger-data/ledger-entry-types/index.md)
|
||||
## NFTokenID
|
||||
<!-- SPELLING_IGNORE: nftokenid -->
|
||||
|
||||
`NFTokenID`, optional, string, Hash256
|
||||
`NFTokenID`, optional, string, UInt256
|
||||
|
||||
This composite field uniquely identifies a token, and consists of the following sections.
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ Every entry in a [ledger](../../../concepts/ledgers/index.md)'s state data has t
|
||||
|
||||
| Field | JSON Type | [Internal Type][] | Required? | Description |
|
||||
|:-------------------------|:----------|:------------------|:----------|:------------|
|
||||
| `index` or `LedgerIndex` | String | Hash256 | No | The unique ID for this ledger entry. In JSON, this field is represented with different names depending on the context and API method. (Note, even though this is specified as "optional" in the code, every ledger entry should have one unless it's legacy data from very early in the XRP Ledger's history.) |
|
||||
| `index` or `LedgerIndex` | String | UInt256 | No | The unique ID for this ledger entry. In JSON, this field is represented with different names depending on the context and API method. (Note, even though this is specified as "optional" in the code, every ledger entry should have one unless it's legacy data from very early in the XRP Ledger's history.) |
|
||||
| `LedgerEntryType` | String | UInt16 | Yes | The type of ledger entry. Valid [ledger entry types](ledger-entry-types/index.md) include `AccountRoot`, `Offer`, `RippleState`, and others. |
|
||||
| `Flags` | Number | UInt32 | Yes | Set of bit-flags for this ledger entry. |
|
||||
|
||||
|
||||
@@ -38,26 +38,26 @@ In addition to the [common fields](../common-fields.md), {% code-page-name /%} e
|
||||
| Field | JSON Type | [Internal Type][] | Required? | Description |
|
||||
|:------------------------------|:----------|:------------------|:----------|:-------------|
|
||||
| `Account` | String | AccountID | Yes | The identifying (classic) address of this [account](../../../../concepts/accounts/index.md). |
|
||||
| `AccountTxnID` | String | Hash256 | No | The identifying hash of the transaction most recently sent by this account. This field must be enabled to use the [`AccountTxnID` transaction field](../../transactions/common-fields.md#accounttxnid). To enable it, send an [AccountSet transaction with the `asfAccountTxnID` flag enabled](../../transactions/types/accountset.md#accountset-flags). |
|
||||
| `AMMID` | String | Hash256 | No | _(Added by the [AMM amendment][])_ The ledger entry ID of the corresponding AMM ledger entry. Set during account creation; cannot be modified. If present, indicates that this is a special AMM AccountRoot; always omitted on non-AMM accounts. |
|
||||
| `AccountTxnID` | String | UInt256 | No | The identifying hash of the transaction most recently sent by this account. This field must be enabled to use the [`AccountTxnID` transaction field](../../transactions/common-fields.md#accounttxnid). To enable it, send an [AccountSet transaction with the `asfAccountTxnID` flag enabled](../../transactions/types/accountset.md#accountset-flags). |
|
||||
| `AMMID` | String | UInt256 | No | _(Added by the [AMM amendment][])_ The ledger entry ID of the corresponding AMM ledger entry. Set during account creation; cannot be modified. If present, indicates that this is a special AMM AccountRoot; always omitted on non-AMM accounts. |
|
||||
| `Balance` | String | Amount | No | The account's current [XRP balance in drops][XRP, in drops], represented as a string. |
|
||||
| `BurnedNFTokens` | Number | UInt32 | No | How many total of this account's issued [non-fungible tokens](../../../../concepts/tokens/nfts/index.md) have been burned. This number is always equal or less than `MintedNFTokens`. |
|
||||
| `Domain` | String | Blob | No | A domain associated with this account. In JSON, this is the hexadecimal for the ASCII representation of the domain. [Cannot be more than 256 bytes in length.](https://github.com/xrplf/rippled/blob/55dc7a252e08a0b02cd5aa39e9b4777af3eafe77/src/ripple/app/tx/impl/SetAccount.h#L34) |
|
||||
| `EmailHash` | String | Hash128 | No | The md5 hash of an email address. Clients can use this to look up an avatar through services such as [Gravatar](https://en.gravatar.com/). |
|
||||
| `EmailHash` | String | UInt128 | No | The md5 hash of an email address. Clients can use this to look up an avatar through services such as [Gravatar](https://en.gravatar.com/). |
|
||||
| `FirstNFTokenSequence` | Number | UInt32 | No | The account's [Sequence Number][] at the time it minted its first [non-fungible-token](../../../../concepts/tokens/nfts/index.md). _(Added by the [fixNFTokenRemint amendment][])_ |
|
||||
| `LedgerEntryType` | String | UInt16 | Yes | The value `0x0061`, mapped to the string `AccountRoot`, indicates that this is an AccountRoot object. |
|
||||
| `MessageKey` | String | Blob | No | A public key that may be used to send encrypted messages to this account. In JSON, uses hexadecimal. Must be exactly 33 bytes, with the first byte indicating the key type: `0x02` or `0x03` for secp256k1 keys, `0xED` for Ed25519 keys. |
|
||||
| `MintedNFTokens` | Number | UInt32 | No | How many total [non-fungible tokens](../../../../concepts/tokens/nfts/index.md) have been minted by and on behalf of this account. _(Added by the [NonFungibleTokensV1_1 amendment][])_ |
|
||||
| `NFTokenMinter` | String | AccountID | No | Another account that can mint [non-fungible tokens](../../../../concepts/tokens/nfts/index.md) on behalf of this account. _(Added by the [NonFungibleTokensV1_1 amendment][])_ |
|
||||
| `OwnerCount` | Number | UInt32 | Yes | The number of objects this account owns in the ledger, which contributes to its owner reserve. |
|
||||
| `PreviousTxnID` | String | Hash256 | Yes | The identifying hash of the transaction that most recently modified this object. |
|
||||
| `PreviousTxnID` | String | UInt256 | Yes | The identifying hash of the transaction that most recently modified this object. |
|
||||
| `PreviousTxnLgrSeq` | Number | UInt32 | Yes |The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this object. |
|
||||
| `RegularKey` | String | AccountID | No | The address of a [key pair](../../../../concepts/accounts/cryptographic-keys.md) that can be used to sign transactions for this account instead of the master key. Use a [SetRegularKey transaction][] to change this value. |
|
||||
| `Sequence` | Number | UInt32 | Yes | The [sequence number](../../data-types/basic-data-types.md#account-sequence) of the next valid transaction for this account. |
|
||||
| `TicketCount` | Number | UInt32 | No | How many [Tickets](../../../../concepts/accounts/tickets.md) this account owns in the ledger. This is updated automatically to ensure that the account stays within the hard limit of 250 Tickets at a time. This field is omitted if the account has zero Tickets. _(Added by the [TicketBatch amendment][].)_ |
|
||||
| `TickSize` | Number | UInt8 | No | How many significant digits to use for exchange rates of Offers involving currencies issued by this address. Valid values are `3` to `15`, inclusive. _(Added by the [TickSize amendment][].)_ |
|
||||
| `TransferRate` | Number | UInt32 | No | A [transfer fee](../../../../concepts/tokens/transfer-fees.md) to charge other users for sending currency issued by this account to each other. |
|
||||
| `WalletLocator` | String | Hash256 | No | An arbitrary 256-bit value that users can set. |
|
||||
| `WalletLocator` | String | UInt256 | No | An arbitrary 256-bit value that users can set. |
|
||||
| `WalletSize` | Number | UInt32 | No | Unused. (The code supports this field but there is no way to set it.) |
|
||||
|
||||
## Special AMM AccountRoot Entries
|
||||
|
||||
@@ -51,15 +51,15 @@ In addition to the [common fields](../common-fields.md), the {% code-page-name /
|
||||
| `Amendments` | Array | Vector256 | No | Array of 256-bit [amendment IDs](../../../../concepts/networks-and-servers/amendments.md) for all currently enabled amendments. If omitted, there are no enabled amendments. |
|
||||
| `Flags` | Number | UInt32 | Yes | A bit-map of boolean flags enabled for this object. Currently, the protocol defines no flags for `Amendments` objects. The value is always `0`. |
|
||||
| `LedgerEntryType` | String | UInt16 | Yes | The value `0x0066`, mapped to the string `Amendments`, indicates that this object describes the status of amendments to the XRP Ledger. |
|
||||
| `Majorities` | Array | STArray | No | Array of objects describing the status of amendments that have majority support but are not yet enabled. If omitted, there are no pending amendments with majority support. |
|
||||
| `PreviousTxnID` | String | Hash256 | No | The identifying hash of the transaction that most recently modified this entry. _(Added by the [fixPreviousTxnID amendment][].)_ |
|
||||
| `Majorities` | Array | Array | No | Array of objects describing the status of amendments that have majority support but are not yet enabled. If omitted, there are no pending amendments with majority support. |
|
||||
| `PreviousTxnID` | String | UInt256 | No | The identifying hash of the transaction that most recently modified this entry. _(Added by the [fixPreviousTxnID amendment][].)_ |
|
||||
| `PreviousTxnLgrSeq` | Number | UInt32 | No | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this entry. _(Added by the [fixPreviousTxnID amendment][].)_ |
|
||||
|
||||
Each member of the `Majorities` field, if it is present, is an object with one field, `Majority`, whose contents are a nested object with the following fields:
|
||||
|
||||
| Name | JSON Type | [Internal Type][] | Description |
|
||||
|-------------------|-----------|-------------------|-------------|
|
||||
| `Amendment` | String | Hash256 | The Amendment ID of the pending amendment. |
|
||||
| `Amendment` | String | UInt256 | The Amendment ID of the pending amendment. |
|
||||
| `CloseTime` | Number | UInt32 | The [`close_time` field](../ledger-header.md) of the ledger version where this amendment most recently gained a majority. |
|
||||
|
||||
In the [amendment process](../../../../concepts/networks-and-servers/amendments.md#amendment-process), a consensus of validators adds a new amendment to the `Majorities` field using an [EnableAmendment][] pseudo-transaction with the `tfGotMajority` flag when 80% or more of validators support it. If support for a pending amendment goes below 80%, an [EnableAmendment][] pseudo-transaction with the `tfLostMajority` flag removes the amendment from the `Majorities` array. If an amendment remains in the `Majorities` field for at least 2 weeks, an [EnableAmendment][] pseudo-transaction with no flags removes it from `Majorities` and permanently adds it to the `Amendments` field.
|
||||
|
||||
@@ -63,15 +63,15 @@ In addition to the [common fields](../common-fields.md), {% code-page-name /%} e
|
||||
|
||||
| Field | JSON Type | [Internal Type][] | Required? | Description |
|
||||
|:-----------------|:--------------------|:------------------|:----------|--------------|
|
||||
| `Asset` | Object | STIssue | Yes | The definition for one of the two assets this AMM holds. In JSON, this is an object with `currency` and `issuer` fields. |
|
||||
| `Asset2` | Object | STIssue | Yes | The definition for the other asset this AMM holds. In JSON, this is an object with `currency` and `issuer` fields. |
|
||||
| `Account` | String | AccountID | Yes | The address of the [special account](accountroot.md#special-amm-accountroot-entries) that holds this AMM's assets. |
|
||||
| `AuctionSlot` | Object | STObject | No | Details of the current owner of the auction slot, as an [Auction Slot object](#auction-slot-object). |
|
||||
| `Asset` | Object | Issue | Yes | The definition for one of the two assets this AMM holds. In JSON, this is an object with `currency` and `issuer` fields. |
|
||||
| `Asset2` | Object | Issue | Yes | The definition for the other asset this AMM holds. In JSON, this is an object with `currency` and `issuer` fields. |
|
||||
| `Account` | String - [Address][] | AccountID | Yes | The address of the [special account](accountroot.md#special-amm-accountroot-entries) that holds this AMM's assets. |
|
||||
| `AuctionSlot` | Object | Object | No | Details of the current owner of the auction slot, as an [Auction Slot object](#auction-slot-object). |
|
||||
| `LPTokenBalance` | [Currency Amount][] | Amount | Yes | The total outstanding balance of liquidity provider tokens from this AMM instance. The holders of these tokens can vote on the AMM's trading fee in proportion to their holdings, or redeem the tokens for a share of the AMM's assets which grows with the trading fees collected. |
|
||||
| `PreviousTxnID` | String | Hash256 | No | The identifying hash of the transaction that most recently modified this entry. _(Added by the [fixPreviousTxnID amendment][].)_ |
|
||||
| `PreviousTxnLgrSeq` | Number | UInt32 | No | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this entry. _(Added by the [fixPreviousTxnID amendment][].)_ |
|
||||
| `PreviousTxnID` | String - [Hash][] | UInt256 | No | The identifying hash of the transaction that most recently modified this entry. _(Added by the [fixPreviousTxnID amendment][].)_ |
|
||||
| `PreviousTxnLgrSeq` | Number | UInt32 | No | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this entry. _(Added by the [fixPreviousTxnID amendment][].)_ |
|
||||
| `TradingFee` | Number | UInt16 | Yes | The percentage fee to be charged for trades against this AMM instance, in units of 1/100,000. The maximum value is 1000, for a 1% fee. |
|
||||
| `VoteSlots` | Array | STArray | No | A list of vote objects, representing votes on the pool's trading fee. |
|
||||
| `VoteSlots` | Array | Array | No | A list of vote objects, representing votes on the pool's trading fee. |
|
||||
|
||||
|
||||
### Auction Slot Object
|
||||
@@ -81,7 +81,7 @@ The `AuctionSlot` field contains an object with the following nested fields:
|
||||
| Field | JSON Type | [Internal Type][] | Required? | Description |
|
||||
|:----------------|:--------------------|:------------------|:----------|:--|
|
||||
| `Account` | String - Address | AccountID | Yes | The current owner of this auction slot. |
|
||||
| `AuthAccounts` | Array | STArray | No | A list of at most 4 additional accounts that are authorized to trade at the discounted fee for this AMM instance. |
|
||||
| `AuthAccounts` | Array | Array | No | A list of at most 4 additional accounts that are authorized to trade at the discounted fee for this AMM instance. |
|
||||
| `DiscountedFee` | String | UInt32 | Yes | The trading fee to be charged to the auction owner, in the same format as `TradingFee`. Normally, this is 1/10 of the normal fee for this AMM. |
|
||||
| `Price` | [Currency Amount][] | Amount | Yes | The amount the auction owner paid to win this slot, in LP Tokens. |
|
||||
| `Expiration` | String | UInt32 | Yes | The time when this slot expires, in [seconds since the Ripple Epoch][]. |
|
||||
|
||||
@@ -43,10 +43,10 @@ In addition to the [common fields](../common-fields.md), {% code-page-name /%} e
|
||||
| `DestinationNode` | String | UInt64 | No | A hint indicating which page of the destination's owner directory links to this object, in case the directory consists of multiple pages. |
|
||||
| `DestinationTag` | Number | UInt32 | No | An arbitrary tag to further specify the destination for this Check, such as a hosted recipient at the destination address. |
|
||||
| `Expiration` | Number | UInt32 | No | Indicates the time after which this Check is considered expired. See [Specifying Time][] for details. |
|
||||
| `InvoiceID` | String | Hash256 | No | Arbitrary 256-bit hash provided by the sender as a specific reason or identifier for this Check. |
|
||||
| `InvoiceID` | String | UInt256 | No | Arbitrary 256-bit hash provided by the sender as a specific reason or identifier for this Check. |
|
||||
| `LedgerEntryType` | String | UInt16 | Yes | The value `0x0043`, mapped to the string `Check`, indicates that this object is a Check object. |
|
||||
| `OwnerNode` | String | UInt64 | Yes | A hint indicating which page of the sender's owner directory links to this object, in case the directory consists of multiple pages. |
|
||||
| `PreviousTxnID` | String | Hash256 | Yes | The identifying hash of the transaction that most recently modified this object. |
|
||||
| `PreviousTxnID` | String | UInt256 | Yes | The identifying hash of the transaction that most recently modified this object. |
|
||||
| `PreviousTxnLgrSeq` | Number | UInt32 | Yes |The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this object. |
|
||||
| `SendMax` | String or Object | Amount | Yes | The maximum amount of currency this Check can debit the sender. If the Check is successfully cashed, the destination is credited in the same currency for up to this amount. |
|
||||
| `Sequence` | Number | UInt32 | Yes | The sequence number of the [CheckCreate transaction][] that created this check. |
|
||||
|
||||
@@ -38,11 +38,11 @@ In addition to the [common fields](../common-fields.md), {% code-page-name /%} e
|
||||
| `Expiration` | Number | UInt32 | No | Time after which the credential is expired, in [seconds since the Ripple Epoch][].
|
||||
| `Issuer` | String - [Address][] | AccountID | Yes | The account that issued this credential. |
|
||||
| `IssuerNode` | String | UInt64 | Yes | A hint indicating which page of the issuer's directory links to this entry, in case the directory consists of multiple pages. |
|
||||
| `PreviousTxnID` | String - [Hash][] | Hash256 | Yes | The identifying hash of the transaction that most recently modified this entry. |
|
||||
| `PreviousTxnID` | String - [Hash][] | UInt256 | Yes | The identifying hash of the transaction that most recently modified this entry. |
|
||||
| `PreviousTxnLgrSeq` | Number | UInt32 | Yes | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this entry. |
|
||||
| `Subject` | String - [Address][] | AccountID | Yes | The account that this credential is for. |
|
||||
| `SubjectNode` | String | UInt64 | Yes | A hint indicating which page of the subject's owner directory links to this entry, in case the directory consists of multiple pages. |
|
||||
| `URI` | String - Hexadecimal | Blob | No | Arbitrary additional data about the credential, for example a URL where a W3C-formatted Verifiable Credential can be retrieved. |
|
||||
| `URI` | String - Hexadecimal | Blob | No | Arbitrary additional data about the credential, for example a URL where a W3C-formatted Verifiable Credential can be retrieved. |
|
||||
|
||||
## Credential Flags
|
||||
|
||||
|
||||
@@ -64,7 +64,7 @@ In addition to the [common fields](../common-fields.md), {% code-page-name /%} e
|
||||
| `AuthorizeCredentials` | Array | Array | No | The set of credentials that received preauthorization. (Any account with these credentials is preauthorized.) This array has a minimum length of 1 and a maximum length of 8 credentials. |
|
||||
| `LedgerEntryType` | String | UInt16 | Yes | The value `0x0070`, mapped to the string `DepositPreauth`, indicates that this is a DepositPreauth object. |
|
||||
| `OwnerNode` | String | UInt64 | Yes | A hint indicating which page of the sender's owner directory links to this object, in case the directory consists of multiple pages. **Note:** The object does not contain a direct link to the owner directory containing it, since that value can be derived from the `Account`. |
|
||||
| `PreviousTxnID` | String - [Hash][] | Hash256 | Yes | The identifying hash of the transaction that most recently modified this object. |
|
||||
| `PreviousTxnID` | String - [Hash][] | UInt256 | Yes | The identifying hash of the transaction that most recently modified this object. |
|
||||
| `PreviousTxnLgrSeq` | Number | UInt32 | Yes | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this object. |
|
||||
|
||||
Each entry must have _either_ the `Authorize` field or the `AuthorizeCredentials` field, but not both.
|
||||
|
||||
@@ -39,7 +39,7 @@ In addition to the [common fields](../common-fields.md), {% code-page-name /%} e
|
||||
| `Data` | String | Blob | No | The public attestations of identity credentials associated with the DID. The `Data` field isn't checked for validity and is limited to a maximum length of 256 bytes. |
|
||||
| `LedgerEntryType` | String | UInt16 | Yes | The value `0x0049`, mapped to the string `DID`, indicates that this object is a DID object. |
|
||||
| `OwnerNode` | String | UInt64 | Yes | A hint indicating which page of the sender's owner directory links to this entry, in case the directory consists of multiple pages. |
|
||||
| `PreviousTxnID` | String | Hash256 | Yes | The identifying hash of the transaction that most recently modified this object. |
|
||||
| `PreviousTxnID` | String | UInt256 | Yes | The identifying hash of the transaction that most recently modified this object. |
|
||||
| `PreviousTxnLgrSeq` | Number | UInt32 | Yes | The index of the ledger that contains the transaction that most recently modified this object. |
|
||||
| `URI` | String | Blob | No | The Universal Resource Identifier that points to the corresponding DID document or the data associated with the DID. This field can be an HTTP(S) URL or IPFS URI. This field isn't checked for validity and is limited to a maximum length of 256 bytes. |
|
||||
|
||||
|
||||
@@ -97,22 +97,22 @@ All types of directories are automatically updated by the protocol as necessary.
|
||||
|
||||
| Name | JSON Type | [Internal Type][] | Required? | Description |
|
||||
|:--------------------|:----------|:------------------|:----------|:------------|
|
||||
| `DomainID` | String | Hash256 | No | (Offer directories only) The ledger entry ID of a permissioned domain. If present, this order book belongs to the corresponding [Permissioned DEX](../../../../concepts/tokens/decentralized-exchange/permissioned-dexes.md). Otherwise, this order book is part of the open DEX. _(Requires the [PermissionedDEX amendment][] {% not-enabled /%})_ |
|
||||
| `DomainID` | String | UInt256 | No | (Offer directories only) The ledger entry ID of a permissioned domain. If present, this order book belongs to the corresponding [Permissioned DEX](../../../../concepts/tokens/decentralized-exchange/permissioned-dexes.md). Otherwise, this order book is part of the open DEX. _(Requires the [PermissionedDEX amendment][] {% not-enabled /%})_ |
|
||||
| `ExchangeRate` | String | UInt64 | No | (Offer directories only) **DEPRECATED**. Do not use. |
|
||||
| `Flags` | Number | UInt32 | Yes | A bit-map of boolean flags enabled for this object. Currently, the protocol defines no flags for `DirectoryNode` objects. The value is always `0`. |
|
||||
| `Indexes` | Array | Vector256 | Yes | The contents of this directory: an array of IDs of other objects. |
|
||||
| `IndexNext` | Number | UInt64 | No | If this directory consists of multiple pages, this ID links to the next object in the chain, wrapping around at the end. |
|
||||
| `IndexPrevious` | Number | UInt64 | No | If this directory consists of multiple pages, this ID links to the previous object in the chain, wrapping around at the beginning. |
|
||||
| `LedgerEntryType` | String | UInt16 | Yes | The value `0x0064`, mapped to the string `DirectoryNode`, indicates that this object is part of a directory. |
|
||||
| `NFTokenID` | String | Hash256 | No | (NFT offer directories only) ID of the NFT in a buy or sell offer. |
|
||||
| `NFTokenID` | String | UInt256 | No | (NFT offer directories only) ID of the NFT in a buy or sell offer. |
|
||||
| `Owner` | String | AccountID | No | (Owner directories only) The address of the account that owns the objects in this directory. |
|
||||
| `PreviousTxnID` | String | Hash256 | No | The identifying hash of the transaction that most recently modified this entry. _(Added by the [fixPreviousTxnID amendment][].)_ |
|
||||
| `PreviousTxnID` | String | UInt256 | No | The identifying hash of the transaction that most recently modified this entry. _(Added by the [fixPreviousTxnID amendment][].)_ |
|
||||
| `PreviousTxnLgrSeq` | Number | UInt32 | No | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this entry. _(Added by the [fixPreviousTxnID amendment][].)_ |
|
||||
| `RootIndex` | String | Hash256 | Yes | The ID of root object for this directory. |
|
||||
| `TakerGetsCurrency` | String | Hash160 | No | (Offer directories only) The currency code of the `TakerGets` amount from the offers in this directory. |
|
||||
| `TakerGetsIssuer` | String | Hash160 | No | (Offer directories only) The issuer of the `TakerGets` amount from the offers in this directory. |
|
||||
| `TakerPaysCurrency` | String | Hash160 | No | (Offer directories only) The currency code of the `TakerPays` amount from the offers in this directory. |
|
||||
| `TakerPaysIssuer` | String | Hash160 | No | (Offer directories only) The issuer of the `TakerPays` amount from the offers in this directory. |
|
||||
| `RootIndex` | String | UInt256 | Yes | The ID of root object for this directory. |
|
||||
| `TakerGetsCurrency` | String | UInt160 | No | (Offer directories only) The currency code of the `TakerGets` amount from the offers in this directory. |
|
||||
| `TakerGetsIssuer` | String | UInt160 | No | (Offer directories only) The issuer of the `TakerGets` amount from the offers in this directory. |
|
||||
| `TakerPaysCurrency` | String | UInt160 | No | (Offer directories only) The currency code of the `TakerPays` amount from the offers in this directory. |
|
||||
| `TakerPaysIssuer` | String | UInt160 | No | (Offer directories only) The issuer of the `TakerPays` amount from the offers in this directory. |
|
||||
|
||||
|
||||
## {% $frontmatter.seo.title %} Flags
|
||||
|
||||
@@ -49,7 +49,7 @@ In addition to the [common fields](../common-fields.md), {% code-page-name /%} e
|
||||
| `FinishAfter` | Number | UInt32 | No | The time, in [seconds since the Ripple Epoch][], after which this escrow can be finished. Any [EscrowFinish transaction][] before this time fails. (Specifically, this is compared with the close time of the previous validated ledger.) |
|
||||
| `LedgerEntryType` | String | UInt16 | Yes | The value `0x0075`, mapped to the string `Escrow`, indicates that this is an `Escrow` entry. |
|
||||
| `OwnerNode` | String | UInt64 | Yes | A hint indicating which page of the sender's owner directory links to this entry, in case the directory consists of multiple pages. |
|
||||
| `PreviousTxnID` | String | Hash256 | Yes | The identifying hash of the transaction that most recently modified this entry. |
|
||||
| `PreviousTxnID` | String | UInt256 | Yes | The identifying hash of the transaction that most recently modified this entry. |
|
||||
| `PreviousTxnLgrSeq` | Number | UInt32 | Yes | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this entry. |
|
||||
| `SourceTag` | Number | UInt32 | No | An arbitrary tag to further specify the source for this escrow, such as a hosted recipient at the owner's address. |
|
||||
| `TransferRate` | Number | UInt32 | No | The fee to charge when users finish an escrow, initially set on the creation of an escrow contract and updated on subsequent finish transactions. |
|
||||
|
||||
@@ -35,7 +35,7 @@ In addition to the [common fields](../common-fields.md), the {% code-page-name /
|
||||
| `ReferenceFeeUnits` | Number | UInt32 | Yes | The `BaseFee` translated into "fee units". |
|
||||
| `ReserveBase` | Number | UInt32 | Yes | The [base reserve](../../../../concepts/accounts/reserves.md#base-reserve-and-owner-reserve) for an account in the XRP Ledger, as drops of XRP. |
|
||||
| `ReserveIncrement` | Number | UInt32 | Yes | The incremental [owner reserve](../../../../concepts/accounts/reserves.md#base-reserve-and-owner-reserve) for owning objects, as drops of XRP. |
|
||||
| `PreviousTxnID` | String | Hash256 | No | The identifying hash of the transaction that most recently modified this entry. _(Added by the [fixPreviousTxnID amendment][].)_ |
|
||||
| `PreviousTxnID` | String | UInt256 | No | The identifying hash of the transaction that most recently modified this entry. _(Added by the [fixPreviousTxnID amendment][].)_ |
|
||||
| `PreviousTxnLgrSeq` | Number | UInt32 | No | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this entry. _(Added by the [fixPreviousTxnID amendment][].)_ |
|
||||
|
||||
{% admonition type="danger" name="Warning" %}The JSON format for this ledger entry type is unusual. The `BaseFee`, `ReserveBase`, and `ReserveIncrement` indicate drops of XRP but ***not*** in the usual format for [specifying XRP][Currency Amount].{% /admonition %}
|
||||
|
||||
@@ -43,7 +43,7 @@ The `MPTokenID` is the result of SHA512-Half of the following values, concatenat
|
||||
| `MPTokenIssuanceID` | string | UInt192 | The `MPTokenIssuance` identifier. |
|
||||
| `MPTAmount` | string | UInt64 | This value specifies a positive amount of tokens currently held by the owner. Valid values for this field are between 0x0 and 0x7FFFFFFFFFFFFFFF. |
|
||||
| `Flags` | number | UInt32 | (Default) See [MPToken Flags](#mptoken-flags) |
|
||||
| `PreviousTxnID` | string | Hash256 | Transaction ID of the transaction that most recently modified this object. |
|
||||
| `PreviousTxnID` | string | UInt256 | Transaction ID of the transaction that most recently modified this object. |
|
||||
| `PreviousTxnLgrSeq` | number | UInt32 | The sequence of the ledger that contains the transaction that most recently modified this object. |
|
||||
| `OwnerNode` | string | UInt64 | (Default) The page in the owner's directory where this item is referenced. |
|
||||
|
||||
|
||||
@@ -70,7 +70,7 @@ The `MPTokenIssuanceID` is a 192-bit integer, concatenated in order:
|
||||
| `OutstandingAmount` | string | UInt64 | Specifies the sum of all token amounts that have been minted to all token holders. This value can be stored on ledger as a default type so that when its value is 0 it takes up less space on ledger. This value is increased whenever an issuer pays MPTs to a non-issuer account, and decreased whenever a non-issuer pays MPTs into the issuing account. |
|
||||
| `TransferFee` | number | UInt16 | This value specifies the fee, in tenths of a basis point, charged by the issuer for secondary sales of the token, if such sales are allowed at all. Valid values for this field are between 0 and 50,000 inclusive. A value of 1 is equivalent to 1/10 of a basis point or 0.001%, allowing transfer rates between 0% and 50%. A `TransferFee` of 50,000 corresponds to 50%. The default value for this field is 0. Any decimals in the transfer fee are rounded down. The fee can be rounded down to zero if the payment is small. Issuers should make sure that their MPT's `AssetScale` is large enough. |
|
||||
| `MPTokenMetadata` | string | Blob | Arbitrary metadata about this issuance, in hex format. The limit for this field is 1024 bytes. |
|
||||
| `PreviousTxnID` | string | Hash256 | Transaction ID of the transaction that most recently modified this object. |
|
||||
| `PreviousTxnID` | string | UInt256 | Transaction ID of the transaction that most recently modified this object. |
|
||||
| `PreviousTxnLgrSeq` | number | UInt32 | The sequence of the ledger that contains the transaction that most recently modified this object. |
|
||||
| `OwnerNode` | string | UInt64 | The page in the owner's directory where this item is referenced. |
|
||||
| `Sequence` | number | UInt32 | A 32-bit unsigned integer that is used to ensure issuances from a given sender can only ever exist once, even if an issuance is later deleted. Whenever a new issuance is created, this value must match the account's current `Sequence` number. `Tickets` make some exceptions from these rules so that it is possible to send transactions out of the normal order. `Tickets` represent sequence numbers reserved for later use; a transaction can use a `Ticket` instead of a normal account Sequence number. Whenever a transaction to create an MPT is included in a ledger, it uses up a sequence number (or Ticket), regardless of whether the transaction executed successfully or failed with a tec-class error code. Other transaction failures don't get included in ledgers, so they don't change the sender's sequence number (or have any other effects). It is possible for multiple unconfirmed MPT-creation transactions to have the same Issuer and sequence number. Such transactions are mutually exclusive, and at most one of them can be included in a validated ledger. (Any others ultimately have no effect.) |
|
||||
|
||||
@@ -41,7 +41,7 @@ In addition to the [common fields](../common-fields.md), the {% code-page-name /
|
||||
|:----------------------|:----------|:------------------|:----------|:---------------------|
|
||||
| `DisabledValidators` | Array | Array | No | A list of `DisabledValidator` objects (see below), each representing a trusted validator that is currently disabled. |
|
||||
| `LedgerEntryType` | String | UInt16 | Yes | The value `0x004E`, mapped to the string `NegativeUNL`, indicates that this entry is the Negative UNL. |
|
||||
| `PreviousTxnID` | String | Hash256 | No | The identifying hash of the transaction that most recently modified this entry. _(Added by the [fixPreviousTxnID amendment][].)_ |
|
||||
| `PreviousTxnID` | String | UInt256 | No | The identifying hash of the transaction that most recently modified this entry. _(Added by the [fixPreviousTxnID amendment][].)_ |
|
||||
| `PreviousTxnLgrSeq` | Number | UInt32 | No | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this entry. _(Added by the [fixPreviousTxnID amendment][].)_ |
|
||||
| `ValidatorToDisable` | String | Blob | No | The public key of a trusted validator that is scheduled to be disabled in the next flag ledger. |
|
||||
| `ValidatorToReEnable` | String | Blob | No | The public key of a trusted validator in the Negative UNL that is scheduled to be re-enabled in the next flag ledger. |
|
||||
|
||||
@@ -31,18 +31,18 @@ _(Added by the [NonFungibleTokensV1_1 amendment][].)_
|
||||
|
||||
### {% $frontmatter.seo.title %} Fields
|
||||
|
||||
| Name |JSON Type | [Internal Type][] | Required? | Description |
|
||||
|:--------------------|:-----------------|:------------------|:------------|:-----------|
|
||||
| `Amount` | [Currency Amount][] | AMOUNT | Yes | Amount expected or offered for the NFToken. If the token has the `lsfOnlyXRP` flag set, the amount must be specified in XRP. Sell offers that specify assets other than XRP must specify a non-zero amount. Sell offers that specify XRP can be 'free' (that is, the Amount field can be equal to `"0"`). |
|
||||
| `Destination` | string | AccountID | No | The AccountID for which this offer is intended. If present, only that account can accept the offer. |
|
||||
| `Expiration` | number | UInt32 | No | The time after which the offer is no longer active. The value is the number of seconds since the Ripple Epoch. |
|
||||
| `LedgerEntryType` | string | UInt16 | Yes | The value `0x0037`, mapped to the string `NFTokenOffer`, indicates that this is an offer to trade a `NFToken`. |
|
||||
| `NFTokenID` | string | Hash256 | Yes | The `NFTokenID` of the NFToken object referenced by this offer. |
|
||||
| `NFTokenOfferNode` | string | UInt64 | No | Internal bookkeeping, indicating the page inside the token buy or sell offer directory, as appropriate, where this token is being tracked. This field allows the efficient deletion of offers. |
|
||||
| `Owner` | string | AccountID | Yes | Owner of the account that is creating and owns the offer. Only the current Owner of an NFToken can create an offer to sell an NFToken, but any account can create an offer to buy an NFToken. |
|
||||
| `OwnerNode` | string | UInt64 | No | Internal bookkeeping, indicating the page inside the owner directory where this token is being tracked. This field allows the efficient deletion of offers. |
|
||||
| `PreviousTxnID` | string | Hash256 | Yes | Identifying hash of the transaction that most recently modified this object. |
|
||||
| `PreviousTxnLgrSeq` | number | UInt32 | Yes | Index of the ledger that contains the transaction that most recently modified this object. |
|
||||
| Name |JSON Type | [Internal Type][] | Required? | Description |
|
||||
|:--------------------|:---------------------|:------------------|:------------|:-----------|
|
||||
| `Amount` | [Currency Amount][] | Amount | Yes | Amount expected or offered for the NFToken. If the token has the `lsfOnlyXRP` flag set, the amount must be specified in XRP. Sell offers that specify assets other than XRP must specify a non-zero amount. Sell offers that specify XRP can be 'free' (that is, the Amount field can be equal to `"0"`). |
|
||||
| `Destination` | String - [Address][] | | AccountID | No | The AccountID for which this offer is intended. If present, only that account can accept the offer. |
|
||||
| `Expiration` | Number | UInt32 | No | The time after which the offer is no longer active. The value is the number of seconds since the Ripple Epoch. |
|
||||
| `LedgerEntryType` | String | UInt16 | Yes | The value `0x0037`, mapped to the string `NFTokenOffer`, indicates that this is an offer to trade a `NFToken`. |
|
||||
| `NFTokenID` | String - Hexadecimal | UInt256 | Yes | The `NFTokenID` of the NFToken object referenced by this offer. |
|
||||
| `NFTokenOfferNode` | String - Hexadecimal | UInt64 | No | Internal bookkeeping, indicating the page inside the token buy or sell offer directory, as appropriate, where this token is being tracked. This field allows the efficient deletion of offers. |
|
||||
| `Owner` | String - [Address][] | AccountID | Yes | Owner of the account that is creating and owns the offer. Only the current Owner of an NFToken can create an offer to sell an NFToken, but any account can create an offer to buy an NFToken. |
|
||||
| `OwnerNode` | String - Hexadecimal | UInt64 | No | Internal bookkeeping, indicating the page inside the owner directory where this token is being tracked. This field allows the efficient deletion of offers. |
|
||||
| `PreviousTxnID` | String - [Hash][] | UInt256 | Yes | Identifying hash of the transaction that most recently modified this object. |
|
||||
| `PreviousTxnLgrSeq` | Number | UInt32 | Yes | Index of the ledger that contains the transaction that most recently modified this object. |
|
||||
|
||||
|
||||
## {% $frontmatter.seo.title %} Flags
|
||||
|
||||
@@ -46,10 +46,10 @@ In addition to the [common fields](../common-fields.md), {% code-page-name /%} e
|
||||
| Field Name | JSON Type | [Internal Type][] | Required? | Description |
|
||||
|:--------------------|:----------|:------------------|:----------|:------------|
|
||||
| `LedgerEntryType` | String | UInt16 | Yes | The value `0x0050`, mapped to the string `NFTokenPage`, indicates that this is a page containing `NFToken` objects.|
|
||||
| `NextPageMin` | String | Hash256 | No | The locator of the next page, if any. Details about this field and how it should be used are outlined below. |
|
||||
| `NextPageMin` | String | UInt256 | No | The locator of the next page, if any. Details about this field and how it should be used are outlined below. |
|
||||
| `NFTokens` | Array | Array | Yes | The collection of `NFToken` objects contained in this NFTokenPage object. This specification places an upper bound of 32 NFToken objects per page. Objects are sorted from low to high with the `NFTokenID` used as the sorting parameter.|
|
||||
| `PreviousPageMin` | String | Hash256 | No | The locator of the previous page, if any. Details about this field and how it should be used are outlined below. |
|
||||
| `PreviousTxnID` | String | Hash256 | No | Identifies the transaction ID of the transaction that most recently modified this NFTokenPage object. |
|
||||
| `PreviousPageMin` | String | UInt256 | No | The locator of the previous page, if any. Details about this field and how it should be used are outlined below. |
|
||||
| `PreviousTxnID` | String | UInt256 | No | Identifies the transaction ID of the transaction that most recently modified this NFTokenPage object. |
|
||||
| `PreviousTxnLgrSeq` | Number | UInt32 | No | The sequence of the ledger that contains the transaction that most recently modified this NFTokenPage object.|
|
||||
|
||||
|
||||
|
||||
@@ -43,13 +43,13 @@ In addition to the [common fields](../common-fields.md), {% code-page-name /%} e
|
||||
|:--------------------|:---------------------|:------------------|:----------|:------------|
|
||||
| `Account` | String - [Address][] | AccountID | Yes | The account that owns this offer. |
|
||||
| `AdditionalBooks` | Array | Array | No | A list of additional offer directories that link to this offer. This field is only present if this is a hybrid offer in a [permissioned DEX](../../../../concepts/tokens/decentralized-exchange/permissioned-dexes.md). The array always contains exactly 1 entry. _(Requires the [PermissionedDEX amendment][] {% not-enabled /%})_ |
|
||||
| `BookDirectory` | String - [Hash][] | Hash256 | Yes | The ID of the [offer directory](directorynode.md) that links to this offer. |
|
||||
| `BookDirectory` | String - [Hash][] | UInt256 | Yes | The ID of the [offer directory](directorynode.md) that links to this offer. |
|
||||
| `BookNode` | String | UInt64 | Yes | A hint indicating which page of the offer directory links to this entry, in case the directory consists of multiple pages. |
|
||||
| `DomainID` | String - [Hash][] | Hash256 | No | The ledger entry ID of a permissioned domain. If present, this offer belongs to the corresponding [Permissioned DEX](../../../../concepts/tokens/decentralized-exchange/permissioned-dexes.md). _(Requires the [PermissionedDEX amendment][] {% not-enabled /%})_ |
|
||||
| `DomainID` | String - [Hash][] | UInt256 | No | The ledger entry ID of a permissioned domain. If present, this offer belongs to the corresponding [Permissioned DEX](../../../../concepts/tokens/decentralized-exchange/permissioned-dexes.md). _(Requires the [PermissionedDEX amendment][] {% not-enabled /%})_ |
|
||||
| `Expiration` | Number | UInt32 | No | Indicates the time after which this offer is considered unfunded. See [Specifying Time][] for details. |
|
||||
| `LedgerEntryType` | String | UInt16 | Yes | The value `0x006F`, mapped to the string `Offer`, indicates that this is an offer entry. |
|
||||
| `OwnerNode` | String | UInt64 | Yes | A hint indicating which page of the owner directory links to this entry, in case the directory consists of multiple pages. |
|
||||
| `PreviousTxnID` | String - [Hash][] | Hash256 | Yes | The identifying hash of the transaction that most recently modified this entry. |
|
||||
| `PreviousTxnID` | String - [Hash][] | UInt256 | Yes | The identifying hash of the transaction that most recently modified this entry. |
|
||||
| `PreviousTxnLgrSeq` | Number | UInt32 | Yes | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this object. |
|
||||
| `Sequence` | Number | UInt32 | Yes | The `Sequence` value of the [OfferCreate][] transaction that created this offer. Used in combination with the `Account` to identify this offer. |
|
||||
| `TakerPays` | [Currency Amount][] | Amount | Yes | The remaining amount and type of currency requested by the offer creator. |
|
||||
|
||||
@@ -51,7 +51,7 @@ In addition to the [common fields](../common-fields.md), {% code-page-name /%} e
|
||||
| `Expiration` | Number | UInt32 | No | The mutable expiration time for this payment channel, in [seconds since the Ripple Epoch][]. The channel is expired if this value is present and smaller than the previous ledger's [`close_time` field](../ledger-header.md). See [Channel Expiration](#channel-expiration) for more details. |
|
||||
| `LedgerEntryType` | String | UInt16 | Yes | The value `0x0078`, mapped to the string `PayChannel`, indicates that this is a payment channel entry. |
|
||||
| `OwnerNode` | String | UInt64 | Yes | A hint indicating which page of the source address's owner directory links to this entry, in case the directory consists of multiple pages. |
|
||||
| `PreviousTxnID` | String | Hash256 | Yes | The identifying hash of the transaction that most recently modified this entry. |
|
||||
| `PreviousTxnID` | String | UInt256 | Yes | The identifying hash of the transaction that most recently modified this entry. |
|
||||
| `PreviousTxnLgrSeq` | Number | UInt32 | Yes | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this entry. |
|
||||
| `PublicKey` | String | Blob | Yes | Public key, in hexadecimal, of the key pair that can be used to sign claims against this channel. This can be any valid secp256k1 or Ed25519 public key. This is set by the transaction that created the channel and must match the public key used in claims against the channel. The channel source address can also send XRP from this channel to the destination without signed claims. |
|
||||
| `SettleDelay` | Number | UInt32 | Yes | Number of seconds the source address must wait to close the channel if it still has any XRP in it. Smaller values mean that the destination address has less time to redeem any outstanding claims after the source address requests to close the channel. Can be any value that fits in a 32-bit unsigned integer (0 to 2^32-1). This is set by the transaction that creates the channel. |
|
||||
|
||||
@@ -44,11 +44,11 @@ _(Requires the [PermissionedDomains amendment][] {% not-enabled /%})_
|
||||
In addition to the [common fields](../common-fields.md), {% code-page-name /%} entries have the following fields:
|
||||
|
||||
| Field | JSON Type | [Internal Type][] | Required? | Description |
|
||||
|:----------------------|:----------|:------------------|:----------|--------------|
|
||||
|:----------------------|:---------------------|:------------------|:----------|--------------|
|
||||
| `AcceptedCredentials` | Array | Array | Yes | A list of 1 to 10 [Credential](#acceptedcredentials-objects) objects that grant access to this domain. The array is stored sorted by issuer. |
|
||||
| `Owner` | String - [Address][] | AccountID | Yes | The address of the account that owns this domain. |
|
||||
| `OwnerNode` | String | UInt64 | Yes | A hint indicating which page of the owner directory links to this entry, in case the directory consists of multiple pages. |
|
||||
| `PreviousTxnID` | String - [Hash][] | Hash256 | Yes | The identifying hash of the transaction that most recently modified this entry. |
|
||||
| `PreviousTxnID` | String - [Hash][] | UInt256 | Yes | The identifying hash of the transaction that most recently modified this entry. |
|
||||
| `PreviousTxnLgrSeq` | Number | UInt32 | Yes | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this object. |
|
||||
| `Sequence` | Number | UInt32 | Yes | The `Sequence` value of the transaction that created this entry. |
|
||||
|
||||
|
||||
@@ -64,7 +64,7 @@ In addition to the [common fields](../common-fields.md), {% code-page-name /%} e
|
||||
| `LowNode` | String | UInt64 | Yes | (Omitted in some historical ledgers) A hint indicating which page of the low account's owner directory links to this entry, in case the directory consists of multiple pages. |
|
||||
| `LowQualityIn` | Number | UInt32 | No | The inbound quality set by the low account, as an integer in the implied ratio `LowQualityIn`:1,000,000,000. As a special case, the value 0 is equivalent to 1 billion, or face value. |
|
||||
| `LowQualityOut` | Number | UInt32 | No | The outbound quality set by the low account, as an integer in the implied ratio `LowQualityOut`:1,000,000,000. As a special case, the value 0 is equivalent to 1 billion, or face value. |
|
||||
| `PreviousTxnID` | String | Hash256 | Yes | The identifying hash of the transaction that most recently modified this entry. |
|
||||
| `PreviousTxnID` | String | UInt256 | Yes | The identifying hash of the transaction that most recently modified this entry. |
|
||||
| `PreviousTxnLgrSeq` | Number | UInt32 | Yes | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this entry. |
|
||||
|
||||
## RippleState Flags
|
||||
|
||||
@@ -54,7 +54,7 @@ In addition to the [common fields](../common-fields.md), {% code-page-name /%} e
|
||||
|:--------------------|:----------|:--------------|:----------|:---------------------------|
|
||||
| `LedgerEntryType` | String | UInt16 | Yes | The value `0x0053`, mapped to the string `SignerList`, indicates that this is a SignerList ledger entry. |
|
||||
| `OwnerNode` | String | UInt64 | Yes | A hint indicating which page of the owner directory links to this object, in case the directory consists of multiple pages. |
|
||||
| `PreviousTxnID` | String | Hash256 | Yes | The identifying hash of the transaction that most recently modified this object. |
|
||||
| `PreviousTxnID` | String | UInt256 | Yes | The identifying hash of the transaction that most recently modified this object. |
|
||||
| `PreviousTxnLgrSeq` | Number | UInt32 | Yes | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this object. |
|
||||
| `SignerEntries` | Array | Array | Yes | An array of Signer Entry objects representing the parties who are part of this signer list. |
|
||||
| `SignerListID` | Number | UInt32 | Yes | An ID for this signer list. Currently always set to `0`. If a future [amendment](../../../../concepts/networks-and-servers/amendments.md) allows multiple signer lists for an account, this may change. |
|
||||
@@ -70,7 +70,7 @@ Each member of the `SignerEntries` field is an object that describes that signer
|
||||
|:----------------|:----------|:--------------|:-------------------------------|
|
||||
| `Account` | String | AccountID | An XRP Ledger address whose signature contributes to the multi-signature. It does not need to be a funded address in the ledger. |
|
||||
| `SignerWeight` | Number | UInt16 | The weight of a signature from this signer. A multi-signature is only valid if the sum weight of the signatures provided meets or exceeds the signer list's `SignerQuorum` value. |
|
||||
| `WalletLocator` | String | Hash256 | _(Optional)_ Arbitrary hexadecimal data. This can be used to identify the signer or for other, related purposes. _(Added by the [ExpandedSignerList amendment][].)_ |
|
||||
| `WalletLocator` | String | UInt256 | _(Optional)_ Arbitrary hexadecimal data. This can be used to identify the signer or for other, related purposes. _(Added by the [ExpandedSignerList amendment][].)_ |
|
||||
|
||||
When processing a multi-signed transaction, the server looks up the `Account` values with respect to the ledger at the time of transaction execution. If the address _does not_ correspond to a funded [AccountRoot ledger entry](accountroot.md), then only the [master private key](../../../../concepts/accounts/cryptographic-keys.md) associated with that address can be used to produce a valid signature. If the account _does_ exist in the ledger, then it depends on the state of that account. If the account has a Regular Key configured, the Regular Key can be used. The account's master key can only be used if it is not disabled. A multi-signature cannot be used as part of another multi-signature.
|
||||
|
||||
|
||||
@@ -32,14 +32,14 @@ _(Added by the [TicketBatch amendment][].)_
|
||||
|
||||
In addition to the [common fields](../common-fields.md), {% code-page-name /%} entries have the following fields:
|
||||
|
||||
| Name | JSON Type | [Internal Type][] | Required? | Description |
|
||||
|:--------------------|:----------|:--------------|:----------|:---------------------------|
|
||||
| `Account` | String | AccountID | Yes | The [account](../../../../concepts/accounts/index.md) that owns this Ticket. |
|
||||
| `LedgerEntryType` | String | UInt16 | Yes | The value `0x0054`, mapped to the string `Ticket`, indicates that this is a {% $frontmatter.seo.title %} entry. |
|
||||
| `OwnerNode` | String | UInt64 | Yes | A hint indicating which page of the owner directory links to this entry, in case the directory consists of multiple pages. |
|
||||
| `PreviousTxnID` | String | Hash256 | Yes | The identifying hash of the [transaction](../../../../concepts/transactions/index.md) that most recently modified this entry. |
|
||||
| `PreviousTxnLgrSeq` | Number | UInt32 | Yes | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this entry. |
|
||||
| `TicketSequence` | Number | UInt32 | Yes | The [Sequence Number][] this Ticket sets aside. |
|
||||
| Name | JSON Type | [Internal Type][] | Required? | Description |
|
||||
|:--------------------|:---------------------|:------------------|:----------|:---------------------------|
|
||||
| `Account` | String - [Address][] | AccountID | Yes | The [account](../../../../concepts/accounts/index.md) that owns this Ticket. |
|
||||
| `LedgerEntryType` | String | UInt16 | Yes | The value `0x0054`, mapped to the string `Ticket`, indicates that this is a {% $frontmatter.seo.title %} entry. |
|
||||
| `OwnerNode` | String - Hexadecimal | UInt64 | Yes | A hint indicating which page of the owner directory links to this entry, in case the directory consists of multiple pages. |
|
||||
| `PreviousTxnID` | String - [Hash][] | UInt256 | Yes | The identifying hash of the [transaction](../../../../concepts/transactions/index.md) that most recently modified this entry. |
|
||||
| `PreviousTxnLgrSeq` | Number | UInt32 | Yes | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this entry. |
|
||||
| `TicketSequence` | Number | UInt32 | Yes | The [Sequence Number][] this Ticket sets aside. |
|
||||
|
||||
|
||||
## {% $frontmatter.seo.title %} Reserve
|
||||
|
||||
@@ -71,11 +71,11 @@ _(Requires the [XChainBridge amendment][] {% not-enabled /%})_
|
||||
|
||||
| Field | JSON Type | [Internal Type][] | Required? | Description |
|
||||
|:--------------------------|:--------------------|:------------------|:----------|:----------------|
|
||||
| `Account` | String | Account | Yes | The account that owns this object. |
|
||||
| `LedgerIndex` | String | Hash256 | Yes | The ledger index is a hash of a unique prefix for `XChainOwnedClaimID`s, the actual `XChainClaimID` value, and the fields in `XChainBridge`. |
|
||||
| `OtherChainSource` | String | Account | Yes | The account that must send the corresponding `XChainCommit` on the source chain. The destination may be specified in the `XChainCommit` transaction, which means that if the `OtherChainSource` isn't specified, another account can try to specify a different destination and steal the funds. This also allows tracking only a single set of signatures, since we know which account will send the `XChainCommit` transaction. |
|
||||
| `Account` | String - [Address][]| AccountID | Yes | The account that owns this object. |
|
||||
| `LedgerIndex` | String | UInt256 | Yes | The ledger index is a hash of a unique prefix for `XChainOwnedClaimID`s, the actual `XChainClaimID` value, and the fields in `XChainBridge`. |
|
||||
| `OtherChainSource` | String | AccountID | Yes | The account that must send the corresponding `XChainCommit` on the source chain. The destination may be specified in the `XChainCommit` transaction, which means that if the `OtherChainSource` isn't specified, another account can try to specify a different destination and steal the funds. This also allows tracking only a single set of signatures, since we know which account will send the `XChainCommit` transaction. |
|
||||
| `SignatureReward` | [Currency Amount][] | Amount | Yes | The total amount to pay the witness servers for their signatures. It must be at least the value of `SignatureReward` in the `Bridge` ledger object. |
|
||||
| `XChainBridge` | XChainBridge | XChain_Bridge | Yes | The door accounts and assets of the bridge this object correlates to. |
|
||||
| `XChainBridge` | XChainBridge | XChainBridge | Yes | The door accounts and assets of the bridge this object correlates to. |
|
||||
| `XChainClaimAttestations` | Array | Array | Yes | Attestations collected from the witness servers. This includes the parameters needed to recreate the message that was signed, including the amount, which chain (locking or issuing), optional destination, and reward account for that signature. |
|
||||
| `XChainClaimID` | String | UInt64 | Yes | The unique sequence number for a cross-chain transfer. |
|
||||
|
||||
@@ -86,9 +86,9 @@ _(Requires the [XChainBridge amendment][] {% not-enabled /%})_
|
||||
|-------------------------------|---------------------|-------------------|----------|-------------|
|
||||
| `XChainClaimProofSig` | Array | Object | Yes | An attestation from one witness server. |
|
||||
| `Amount` | [Currency Amount][] | Amount | Yes | The amount to claim in the `XChainCommit` transaction on the destination chain. |
|
||||
| `AttestationRewardAccount` | String | Account | Yes | The account that should receive this signer's share of the `SignatureReward`. |
|
||||
| `AttestationSignerAccount` | String | Account | Yes | The account on the door account's signer list that is signing the transaction. |
|
||||
| `Destination` | String | Account | No | The destination account for the funds on the destination chain. |
|
||||
| `AttestationRewardAccount` | String | AccountID | Yes | The account that should receive this signer's share of the `SignatureReward`. |
|
||||
| `AttestationSignerAccount` | String | AccountID | Yes | The account on the door account's signer list that is signing the transaction. |
|
||||
| `Destination` | String | AccountID | No | The destination account for the funds on the destination chain. |
|
||||
| `PublicKey` | String | Blob | Yes | The public key used to verify the signature. |
|
||||
| `WasLockingChainSend` | Number | UInt8 | Yes | A boolean representing the chain where the event occurred. |
|
||||
|
||||
@@ -97,9 +97,9 @@ _(Requires the [XChainBridge amendment][] {% not-enabled /%})_
|
||||
|
||||
| Field | JSON Type | [Internal Type][] | Required? | Description |
|
||||
|:--------------------|:----------|:------------------|:----------|:----------------|
|
||||
| `IssuingChainDoor` | String | Account | Yes | The door account on the issuing chain. For an XRP-XRP bridge, this must be the genesis account (the account that is created when the network is first started, which contains all of the XRP). |
|
||||
| `IssuingChainDoor` | String | AccountID | Yes | The door account on the issuing chain. For an XRP-XRP bridge, this must be the genesis account (the account that is created when the network is first started, which contains all of the XRP). |
|
||||
| `IssuingChainIssue` | Issue | Issue | Yes | The asset that is minted and burned on the issuing chain. For an IOU-IOU bridge, the issuer of the asset must be the door account on the issuing chain, to avoid supply issues. |
|
||||
| `LockingChainDoor` | String | Account | Yes | The door account on the locking chain. |
|
||||
| `LockingChainDoor` | String | AccountID | Yes | The door account on the locking chain. |
|
||||
| `LockingChainIssue` | Issue | Issue | Yes | The asset that is locked and unlocked on the locking chain. |
|
||||
|
||||
{% raw-partial file="/docs/_snippets/common-links.md" /%}
|
||||
|
||||
@@ -56,10 +56,10 @@ _(Requires the [XChainBridge amendment][] {% not-enabled /%})_
|
||||
|
||||
| Field | JSON Type | [Internal Type][] | Required? | Description |
|
||||
|:----------------------------------|:-------------|:------------------|:----------|:------------|
|
||||
| `Account` | String | Account | Yes | The account that owns this object. |
|
||||
| `LedgerIndex` | String | Hash256 | Yes | The ledger index is a hash of a unique prefix for `XChainOwnedCreateAccountClaimID`s, the actual `XChainAccountClaimCount` value, and the fields in `XChainBridge`. |
|
||||
| `Account` | String | AccountID | Yes | The account that owns this object. |
|
||||
| `LedgerIndex` | String | UInt256 | Yes | The ledger index is a hash of a unique prefix for `XChainOwnedCreateAccountClaimID`s, the actual `XChainAccountClaimCount` value, and the fields in `XChainBridge`. |
|
||||
| `XChainAccountCreateCount` | Number | UInt64 | Yes | An integer that determines the order that accounts created through cross-chain transfers must be performed. Smaller numbers must execute before larger numbers. |
|
||||
| `XChainBridge` | XChainBridge | XChain_Bridge | Yes | The door accounts and assets of the bridge this object correlates to. |
|
||||
| `XChainBridge` | XChainBridge | XChainBridge | Yes | The door accounts and assets of the bridge this object correlates to. |
|
||||
| `XChainCreateAccountAttestations` | Array | Array | Yes | Attestations collected from the witness servers. This includes the parameters needed to recreate the message that was signed, including the amount, destination, signature reward amount, and reward account for that signature. With the exception of the reward account, all signatures must sign the message created with common parameters. |
|
||||
|
||||
|
||||
@@ -69,9 +69,9 @@ _(Requires the [XChainBridge amendment][] {% not-enabled /%})_
|
||||
|-------------------------------|---------------------|-------------------|----------|-------------|
|
||||
| `XChainCreateAccountProofSig` | Array | Object | Yes | An attestation from one witness server. |
|
||||
| `Amount` | [Currency Amount][] | Amount | Yes | The amount committed by the `XChainAccountCreateCommit` transaction on the source chain. |
|
||||
| `AttestationRewardAccount` | String | Account | Yes | The account that should receive this signer's share of the `SignatureReward`. |
|
||||
| `AttestationSignerAccount` | String | Account | Yes | The account on the door account's signer list that is signing the transaction. |
|
||||
| `Destination` | String | Account | Yes | The destination account for the funds on the destination chain. |
|
||||
| `AttestationRewardAccount` | String | AccountID | Yes | The account that should receive this signer's share of the `SignatureReward`. |
|
||||
| `AttestationSignerAccount` | String | AccountID | Yes | The account on the door account's signer list that is signing the transaction. |
|
||||
| `Destination` | String | AccountID | Yes | The destination account for the funds on the destination chain. |
|
||||
| `PublicKey` | String | Blob | Yes | The public key used to verify the signature. |
|
||||
| `WasLockingChainSend` | Number | UInt8 | Yes | A boolean representing the chain where the event occurred. |
|
||||
|
||||
@@ -80,9 +80,9 @@ _(Requires the [XChainBridge amendment][] {% not-enabled /%})_
|
||||
|
||||
| Field | JSON Type | [Internal Type][] | Required? | Description |
|
||||
|:--------------------|:----------|:------------------|:----------|:----------------|
|
||||
| `IssuingChainDoor` | String | Account | Yes | The door account on the issuing chain. For an XRP-XRP bridge, this must be the genesis account (the account that is created when the network is first started, which contains all of the XRP). |
|
||||
| `IssuingChainIssue` | Issue | Issue | Yes | The asset that is minted and burned on the issuing chain. For an IOU-IOU bridge, the issuer of the asset must be the door account on the issuing chain, to avoid supply issues. |
|
||||
| `LockingChainDoor` | String | Account | Yes | The door account on the locking chain. |
|
||||
| `LockingChainIssue` | Issue | Issue | Yes | The asset that is locked and unlocked on the locking chain. |
|
||||
| `IssuingChainDoor` | String | AccountID | Yes | The door account on the issuing chain. For an XRP-XRP bridge, this must be the genesis account (the account that is created when the network is first started, which contains all of the XRP). |
|
||||
| `IssuingChainIssue` | Issue | Issue | Yes | The asset that is minted and burned on the issuing chain. For an IOU-IOU bridge, the issuer of the asset must be the door account on the issuing chain, to avoid supply issues. |
|
||||
| `LockingChainDoor` | String | AccountID | Yes | The door account on the locking chain. |
|
||||
| `LockingChainIssue` | Issue | Issue | Yes | The asset that is locked and unlocked on the locking chain. |
|
||||
|
||||
{% raw-partial file="/docs/_snippets/common-links.md" /%}
|
||||
|
||||
@@ -15,15 +15,15 @@ Every [ledger version](../../../concepts/ledgers/index.md) has a unique header t
|
||||
| Field | JSON Type | [Internal Type][] | Description |
|
||||
|:------------------------------|:----------|:------------------|:--------------|
|
||||
| `ledger_index` | String | UInt32 | The [ledger index][Ledger Index] of the ledger. Some API methods display this as a quoted integer; some display it as a native JSON number. |
|
||||
| `ledger_hash` | String | Hash256 | The [SHA-512Half][] of this ledger version. This serves as a unique identifier for this ledger and all its contents. |
|
||||
| `account_hash` | String | Hash256 | The [SHA-512Half][] of this ledger's state tree information. |
|
||||
| `ledger_hash` | String | UInt256 | The [SHA-512Half][] of this ledger version. This serves as a unique identifier for this ledger and all its contents. |
|
||||
| `account_hash` | String | UInt256 | The [SHA-512Half][] of this ledger's state tree information. |
|
||||
| [`close_flags`](#close-flags) | Number | UInt8 | A bit-map of flags relating to the closing of this ledger. |
|
||||
| `close_time` | Number | UInt32 | The [approximate time this ledger version closed](../../../concepts/ledgers/ledger-close-times.md), as the number of seconds since the Ripple Epoch of 2000-01-01 00:00:00 UTC. This value is rounded based on the `close_time_resolution`. |
|
||||
| `close_time_resolution` | Number | Uint8 | An integer in the range \[2,120\] indicating the maximum number of seconds by which the `close_time` could be rounded. |
|
||||
| `closed` | Boolean | Boolean | If `true`, this ledger version is no longer accepting new transactions. (However, unless this ledger version is validated, it might be replaced by a different ledger version with a different set of transactions.) |
|
||||
| `parent_hash` | String | Hash256 | The `ledger_hash` value of the previous ledger version that is the direct predecessor of this one. If there are different versions of the previous ledger index, this indicates from which one the ledger was derived. |
|
||||
| `parent_hash` | String | UInt256 | The `ledger_hash` value of the previous ledger version that is the direct predecessor of this one. If there are different versions of the previous ledger index, this indicates from which one the ledger was derived. |
|
||||
| `total_coins` | String | UInt64 | The total number of [drops of XRP][] owned by accounts in the ledger. This omits XRP that has been destroyed by transaction fees. The actual amount of XRP in circulation is lower because some accounts are "black holes" whose keys are not known by anyone. |
|
||||
| `transaction_hash` | String | Hash256 | The [SHA-512Half][] of the transactions included in this ledger. |
|
||||
| `transaction_hash` | String | UInt256 | The [SHA-512Half][] of the transactions included in this ledger. |
|
||||
|
||||
|
||||
## Ledger Index
|
||||
|
||||
@@ -10,27 +10,27 @@ labels:
|
||||
|
||||
Every transaction has the same set of common fields, plus additional fields based on the [transaction type](types/index.md). Field names are case-sensitive. The common fields for all transactions are:
|
||||
|
||||
| Field | JSON Type | [Internal Type][] | Description |
|
||||
|:---------------------|:-----------------|:------------------|:-----------------|
|
||||
| `Account` | String | AccountID | _(Required)_ The unique address of the [account](../../../concepts/accounts/index.md) that initiated the transaction. |
|
||||
| `TransactionType` | String | UInt16 | _(Required)_ The type of transaction. Valid [transaction types](types/index.md) include: `Payment`, `OfferCreate`, `TrustSet`, and many others. |
|
||||
| `Fee` | String | Amount | _(Required; [auto-fillable][])_ Integer amount of XRP, in drops, to be destroyed as a cost for distributing this transaction to the network. Some transaction types have different minimum requirements. See [Transaction Cost][] for details. |
|
||||
| `Sequence` | Number | UInt32 | _(Required; [auto-fillable][])_ The [sequence number](../data-types/basic-data-types.md#account-sequence) of the account sending the transaction. A transaction is only valid if the `Sequence` number is exactly 1 greater than the previous transaction from the same account. The special case `0` means the transaction is using a [Ticket](../../../concepts/accounts/tickets.md) instead _(Added by the [TicketBatch amendment][].)_. |
|
||||
| [`AccountTxnID`](#accounttxnid) | String | Hash256 | _(Optional)_ Hash value identifying another transaction. If provided, this transaction is only valid if the sending account's previously-sent transaction matches the provided hash. |
|
||||
| [`Delegate`](#delegate) | Object | Object | _(Optional)_ Stores a set of permissions that an XRPL account has delegated to another account. |
|
||||
| [`Flags`](#flags-field) | Number | UInt32 | _(Optional)_ Set of bit-flags for this transaction. |
|
||||
| `LastLedgerSequence` | Number | UInt32 | _(Optional; strongly recommended)_ Highest ledger index this transaction can appear in. Specifying this field places a strict upper limit on how long the transaction can wait to be validated or rejected. See [Reliable Transaction Submission](../../../concepts/transactions/reliable-transaction-submission.md) for more details. |
|
||||
| [`Memos`](#memos-field) | Array of Objects | Array | _(Optional)_ Additional arbitrary information used to identify this transaction. |
|
||||
| [`NetworkID`](#networkid-field) | Number | UInt32 | _(Network-specific)_ The network ID of the chain this transaction is intended for. **MUST BE OMITTED** for Mainnet and some test networks. **REQUIRED** on chains whose network ID is 1025 or higher. |
|
||||
| [`Signers`](#signers-field) | Array | Array | _(Optional)_ Array of objects that represent a [multi-signature](../../../concepts/accounts/multi-signing.md) which authorizes this transaction. |
|
||||
| `SourceTag` | Number | UInt32 | _(Optional)_ Arbitrary integer used to identify the reason for this payment, or a sender on whose behalf this transaction is made. Conventionally, a refund should specify the initial payment's `SourceTag` as the refund payment's `DestinationTag`. |
|
||||
| `SigningPubKey` | String | Blob | _(Automatically added when signing)_ Hex representation of the public key that corresponds to the private key used to sign this transaction. If an empty string, indicates a multi-signature is present in the `Signers` field instead. |
|
||||
| `TicketSequence` | Number | UInt32 | _(Optional)_ The sequence number of the [ticket](../../../concepts/accounts/tickets.md) to use in place of a `Sequence` number. If this is provided, `Sequence` must be `0`. Cannot be used with `AccountTxnID`. |
|
||||
| `TxnSignature` | String | Blob | _(Automatically added when signing)_ The signature that verifies this transaction as originating from the account it says it is from. |
|
||||
| Field | JSON Type | [Internal Type][] | Required? | Description |
|
||||
|:---------------------|:---------------------|:------------------|:----------|:------------|
|
||||
| `Account` | String - [Address][] | AccountID | Yes | The [account](../../../concepts/accounts/index.md) that initiated the transaction. |
|
||||
| `TransactionType` | String | UInt16 | Yes | The type of transaction. Valid [transaction types](types/index.md) include: `Payment`, `OfferCreate`, `TrustSet`, and many others. |
|
||||
| `Fee` | String - Number | Amount | Yes; [auto-fillable][] | Integer amount of XRP, in drops, to be destroyed as a cost for sending this transaction. Some transaction types have different minimum requirements. See [Transaction Cost][] for details. |
|
||||
| `Sequence` | Number | UInt32 | Yes; [auto-fillable][] | The [sequence number](../data-types/basic-data-types.md#account-sequence) of the account sending the transaction. A transaction is only valid if the `Sequence` number is exactly 1 greater than the previous transaction from the same account. The special case `0` means the transaction is using a [Ticket](../../../concepts/accounts/tickets.md) instead _(Added by the [TicketBatch amendment][].)_. |
|
||||
| [`AccountTxnID`](#accounttxnid) | String - [Hash][] | UInt256 | No | Hash value identifying another transaction. If provided, this transaction is only valid if the sending account's previously-sent transaction matches the provided hash. |
|
||||
| [`Delegate`](#delegate) | String - [Address][] | AccountID | No | A delegate account that is sending the transaction on behalf of the `Account`. _(Requires the [PermissionDelegation amendment][] {% not-enabled /%})_ |
|
||||
| [`Flags`](#flags-field) | Number | UInt32 | No | Set of bit-flags for this transaction. |
|
||||
| `LastLedgerSequence` | Number | UInt32 | No; [auto-fillable][] | Highest ledger index this transaction can appear in. Specifying this field places a strict upper limit on how long the transaction can wait to be validated or rejected. See [Reliable Transaction Submission](../../../concepts/transactions/reliable-transaction-submission.md) for more details. |
|
||||
| [`Memos`](#memos-field) | Array of Objects | Array | No | Additional arbitrary information attached to this transaction. |
|
||||
| [`NetworkID`](#networkid-field) | Number | UInt32 | _Network-specific_ | The network ID of the chain this transaction is intended for. **MUST BE OMITTED** for Mainnet and some test networks. **REQUIRED** on chains whose network ID is 1025 or higher. |
|
||||
| [`Signers`](#signers-field) | Array | Array | No | Array of objects that represent a [multi-signature](../../../concepts/accounts/multi-signing.md) which authorizes this transaction. |
|
||||
| `SourceTag` | Number | UInt32 | No | Arbitrary integer used to identify the reason for this payment, or a sender on whose behalf this transaction is made. Conventionally, a refund should specify the initial payment's `SourceTag` as the refund payment's `DestinationTag`. |
|
||||
| `SigningPubKey` | String - Hexadecimal | Blob | _Automatically added when signing_ | The public key that corresponds to the private key used to sign this transaction. If an empty string, indicates a multi-signature is present in the `Signers` field instead. |
|
||||
| `TicketSequence` | Number | UInt32 | No | The sequence number of the [ticket](../../../concepts/accounts/tickets.md) to use in place of a `Sequence` number. If this is provided, `Sequence` must be `0`. Cannot be used with `AccountTxnID`. |
|
||||
| `TxnSignature` | String - Hexadecimal | Blob | _Automatically added when signing_ | The signature that verifies this transaction as originating from the account it says it is from. |
|
||||
|
||||
[auto-fillable]: #auto-fillable-fields
|
||||
|
||||
{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.28.0" %}Removed in: rippled 0.28.0{% /badge %}: The `PreviousTxnID` field of transactions was replaced by the [`AccountTxnID`](#accounttxnid) field. This String / Hash256 field is present in some historical transactions. This is unrelated to the field also named `PreviousTxnID` in some [ledger objects](../ledger-data/index.md).
|
||||
{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.28.0" %}Removed in: rippled 0.28.0{% /badge %}: The `PreviousTxnID` field of transactions was replaced by the [`AccountTxnID`](#accounttxnid) field. This String / UInt256 field is present in some historical transactions. This is unrelated to the field also named `PreviousTxnID` in some [ledger objects](../ledger-data/index.md).
|
||||
|
||||
|
||||
## AccountTxnID
|
||||
|
||||
@@ -34,8 +34,8 @@ An `EnableAmendment` pseudo-transaction marks a change in the status of a propos
|
||||
|
||||
| Field | JSON Type | [Internal Type][] | Description |
|
||||
|:-----------------|:----------|:------------------|:--------------------------|
|
||||
| `Amendment` | String | Hash256 | A unique identifier for the amendment. This is not intended to be a human-readable name. See [Amendments](../../../../concepts/networks-and-servers/amendments.md) for a list of known amendments. |
|
||||
| `LedgerSequence` | Number | UInt32 | The [ledger index][] where this pseudo-transaction appears. This distinguishes the pseudo-transaction from other occurrences of the same change. |
|
||||
| `Amendment` | String | UInt256 | A unique identifier for the amendment. This is not intended to be a human-readable name. See [Amendments](../../../../concepts/networks-and-servers/amendments.md) for a list of known amendments. |
|
||||
| `LedgerSequence` | Number | UInt32 | The [ledger index][] where this pseudo-transaction appears. This distinguishes the pseudo-transaction from other occurrences of the same change. |
|
||||
|
||||
## EnableAmendment Flags
|
||||
|
||||
|
||||
@@ -8,10 +8,10 @@ labels:
|
||||
|
||||
[[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/DeleteAccount.cpp "Source")
|
||||
|
||||
_Added by the [DeletableAccounts amendment][]_
|
||||
|
||||
An AccountDelete transaction deletes an [account](../../ledger-data/ledger-entry-types/accountroot.md) and any objects it owns in the XRP Ledger, if possible, sending the account's remaining XRP to a specified destination account. See [Deleting Accounts](../../../../concepts/accounts/deleting-accounts.md) for the requirements to delete an account.
|
||||
|
||||
_(Added by the [DeletableAccounts amendment][].)_
|
||||
|
||||
## Example {% $frontmatter.seo.title %} JSON
|
||||
|
||||
```json
|
||||
|
||||
@@ -30,16 +30,18 @@ An AccountSet transaction modifies the properties of an [account in the XRP Ledg
|
||||
|
||||
| Field | JSON Type | [Internal Type][] | Description |
|
||||
|:-----------------|:-----------------|:------------------|:-------------------|
|
||||
| [`ClearFlag`](#accountset-flags) | Number | UInt32 | _(Optional)_ Unique identifier of a flag to disable for this account. |
|
||||
| [`Domain`](#domain) | String | Blob | _(Optional)_ The domain that owns this account, as a string of hex representing the ASCII for the domain in lowercase. [Cannot be more than 256 bytes in length.](https://github.com/XRPLF/rippled/blob/55dc7a252e08a0b02cd5aa39e9b4777af3eafe77/src/ripple/app/tx/impl/SetAccount.h#L34) |
|
||||
| `EmailHash` | String | Hash128 | _(Optional)_ An arbitrary 128-bit value. Conventionally, clients treat this as the md5 hash of an email address to use for displaying a [Gravatar](http://en.gravatar.com/site/implement/hash/) image. |
|
||||
| `MessageKey` | String | Blob | _(Optional)_ Public key for sending encrypted messages to this account. To set the key, it must be exactly 33 bytes, with the first byte indicating the key type: `0x02` or `0x03` for secp256k1 keys, `0xED` for Ed25519 keys. To remove the key, use an empty value. |
|
||||
| `NFTokenMinter` | String | Blob | _(Optional)_ Another account that can [mint NFTokens for you](../../../../tutorials/javascript/nfts/assign-an-authorized-minter.md). _(Added by the [NonFungibleTokensV1_1 amendment][].)_ |
|
||||
| [`SetFlag`](#accountset-flags) | Number | UInt32 | _(Optional)_ Integer flag to enable for this account. |
|
||||
| [`TransferRate`](#transferrate) | Number | UInt32 | _(Optional)_ The fee to charge when users transfer this account's tokens, represented as billionths of a unit. Cannot be more than `2000000000` or less than `1000000000`, except for the special case `0` meaning no fee. |
|
||||
| [`ClearFlag`](#accountset-flags) | Number | UInt32 | Unique identifier of a flag to disable for this account. |
|
||||
| [`Domain`](#domain) | String | Blob | The domain that owns this account, as a string of hex representing the ASCII for the domain in lowercase. [Cannot be more than 256 bytes in length.](https://github.com/XRPLF/rippled/blob/55dc7a252e08a0b02cd5aa39e9b4777af3eafe77/src/ripple/app/tx/impl/SetAccount.h#L34) |
|
||||
| `EmailHash` | String | UInt128 | An arbitrary 128-bit value. Conventionally, clients treat this as the md5 hash of an email address to use for displaying a [Gravatar](http://en.gravatar.com/site/implement/hash/) image. |
|
||||
| `MessageKey` | String | Blob | Public key for sending encrypted messages to this account. To set the key, it must be exactly 33 bytes, with the first byte indicating the key type: `0x02` or `0x03` for secp256k1 keys, `0xED` for Ed25519 keys. To remove the key, use an empty value. |
|
||||
| `NFTokenMinter` | String - [Address][] | AccountID | Another account that can [mint NFTokens for you](../../../../tutorials/javascript/nfts/assign-an-authorized-minter.md). _(Added by the [NonFungibleTokensV1_1 amendment][].)_ |
|
||||
| [`SetFlag`](#accountset-flags) | Number | UInt32 | Integer flag to enable for this account. |
|
||||
| [`TransferRate`](#transferrate) | Number | UInt32 | The fee to charge when users transfer this account's tokens, represented as billionths of a unit. Cannot be more than `2000000000` or less than `1000000000`, except for the special case `0` meaning no fee. |
|
||||
| [`TickSize`](../../../../concepts/tokens/decentralized-exchange/ticksize.md) | Number | UInt8 | _(Optional)_ Tick size to use for offers involving a currency issued by this address. The exchange rates of those offers is rounded to this many significant digits. Valid values are `3` to `15` inclusive, or `0` to disable. _(Added by the [TickSize amendment][])_ |
|
||||
| `WalletLocator` | String | Hash256 | _(Optional)_ An arbitrary 256-bit value. If specified, the value is stored as part of the account but has no inherent meaning or requirements. |
|
||||
| `WalletSize` | Number | UInt32 | _(Optional)_ Not used. This field is valid in AccountSet transactions but does nothing. |
|
||||
| `WalletLocator` | String | UInt256 | An arbitrary 256-bit value. If specified, the value is stored as part of the account but has no inherent meaning or requirements. |
|
||||
| `WalletSize` | Number | UInt32 | Not used. This field is valid in AccountSet transactions but does nothing. |
|
||||
|
||||
(All fields are optional.)
|
||||
|
||||
If none of these options are provided, then the AccountSet transaction has no effect (beyond destroying the transaction cost). See [Cancel or Skip a Transaction](../../../../concepts/transactions/finality-of-results/canceling-a-transaction.md) for more details.
|
||||
|
||||
|
||||
@@ -9,12 +9,12 @@ labels:
|
||||
# AMMBid
|
||||
[[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/AMMBid.cpp "Source")
|
||||
|
||||
_(Added by the [AMM amendment][])_
|
||||
|
||||
Bid on an [Automated Market Maker](../../../../concepts/tokens/decentralized-exchange/automated-market-makers.md)'s (AMM's) auction slot. If you win, you can trade against the AMM at a discounted fee until you are outbid or 24 hours have passed. If you are outbid before 24 hours have passed, you are refunded part of the cost of your bid based on how much time remains. If the AMM's trading fee is zero, you can still bid, but the auction slot provides no benefit unless the trading fee changes.
|
||||
|
||||
You bid using the AMM's LP Tokens; the amount of a winning bid is returned to the AMM, decreasing the outstanding balance of LP Tokens.
|
||||
|
||||
_(Added by the [AMM amendment][].)_
|
||||
|
||||
|
||||
## Example {% $frontmatter.seo.title %} JSON
|
||||
|
||||
@@ -56,11 +56,11 @@ You bid using the AMM's LP Tokens; the amount of a winning bid is returned to th
|
||||
|
||||
| Field | JSON Type | [Internal Type][] | Required? | Description |
|
||||
|:---------------|:--------------------|:------------------|:----------|:------------|
|
||||
| `Asset` | Object | STIssue | Yes | The definition for one of the assets in the AMM's pool. The asset can be XRP, a token, or an MPT (see: [Specifying Without Amounts][]). |
|
||||
| `Asset2` | Object | STIssue | Yes | The definition for the other asset in the AMM's pool. The asset can be XRP, a token, or an MPT (see: [Specifying Without Amounts][]). |
|
||||
| `Asset` | Object | Issue | Yes | The definition for one of the assets in the AMM's pool. The asset can be XRP, a token, or an MPT (see: [Specifying Without Amounts][]). |
|
||||
| `Asset2` | Object | Issue | Yes | The definition for the other asset in the AMM's pool. The asset can be XRP, a token, or an MPT (see: [Specifying Without Amounts][]). |
|
||||
| `BidMin` | [Currency Amount][] | Amount | No | Pay at least this amount for the slot. Setting this value higher makes it harder for others to outbid you. If omitted, pay the minimum necessary to win the bid. |
|
||||
| `BidMax` | [Currency Amount][] | Amount | No | Pay at most this amount for the slot. If the cost to win the bid is higher than this amount, the transaction fails. If omitted, pay as much as necessary to win the bid. |
|
||||
| `AuthAccounts` | Array | STArray | No | A list of up to 4 additional accounts that you allow to trade at the discounted fee. This cannot include the address of the transaction sender. Each of these objects should be an [Auth Account object](#auth-account-objects). |
|
||||
| `AuthAccounts` | Array | Array | No | A list of up to 4 additional accounts that you allow to trade at the discounted fee. This cannot include the address of the transaction sender. Each of these objects should be an [Auth Account object](#auth-account-objects). |
|
||||
|
||||
### Auth Account Objects
|
||||
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
|
||||
[[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/AMMClawback.cpp "Source")
|
||||
|
||||
_(Added by the [AMMClawback amendment][])_
|
||||
|
||||
Claw back tokens from a holder who has deposited your issued tokens into an AMM pool.
|
||||
|
||||
Clawback is disabled by default. To use clawback, you must send an [AccountSet transaction](https://xrpl.org/docs/references/protocol/transactions/types/accountset) to enable the **Allow Trust Line Clawback** setting. An issuer with any existing tokens cannot enable clawback. You can only enable **Allow Trust Line Clawback** if you have a completely empty owner directory, meaning you must do so before you set up any trust lines, offers, escrows, payment channels, checks, or signer lists. After you enable clawback, it cannot reverted: the account permanently gains the ability to claw back issued assets on trust lines.
|
||||
|
||||
_(Added by the [AMMClawback amendment][].)_
|
||||
|
||||
|
||||
## Example {% $frontmatter.seo.title %} JSON
|
||||
|
||||
@@ -36,20 +36,20 @@ Clawback is disabled by default. To use clawback, you must send an [AccountSet t
|
||||
{% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%}
|
||||
|
||||
|
||||
| Field | JSON Type | [Internal Type][] | Required | Description |
|
||||
|:-------------------|:----------|:------------------|:---------|:------------------|
|
||||
| `Account` | String | AccountID | Yes | The issuer of the asset being clawed back. Only the issuer can submit this transaction. |
|
||||
| `Asset` | Object | STIssue | Yes | Specifies the asset that the issuer wants to claw back from the AMM pool. The asset can be XRP, a token, or an MPT (see: [Specifying Without Amounts][]). The `issuer` field must match with `Account`. |
|
||||
| `Asset2` | Object | STIssue | Yes | Specifies the other asset in the AMM's pool. The asset can be XRP, a token, or an MPT (see: [Specifying Without Amounts][]). |
|
||||
| `Amount` | [Currency Amount](https://xrpl.org/docs/references/protocol/data-types/basic-data-types#specifying-currency-amounts) | Amount | No | The maximum amount to claw back from the AMM account. The `currency` and `issuer` subfields should match the `Asset` subfields. If this field isn't specified, or the `value` subfield exceeds the holder's available tokens in the AMM, all of the holder's tokens are clawed back. |
|
||||
| `Holder` | String | AccountID | Yes | The account holding the asset to be clawed back. |
|
||||
| Field | JSON Type | [Internal Type][] | Required | Description |
|
||||
|:----------|:---------------------|:------------------|:---------|:------------------|
|
||||
| `Account` | String - [Address][] | AccountID | Yes | The issuer of the asset being clawed back. Only the issuer can submit this transaction. |
|
||||
| `Asset` | Object | Issue | Yes | Specifies the asset that the issuer wants to claw back from the AMM pool. The asset can be XRP, a token, or an MPT (see: [Specifying Without Amounts][]). The `issuer` field must match with `Account`. |
|
||||
| `Asset2` | Object | Issue | Yes | Specifies the other asset in the AMM's pool. The asset can be XRP, a token, or an MPT (see: [Specifying Without Amounts][]). |
|
||||
| `Amount` | [Currency Amount][] | Amount | No | The maximum amount to claw back from the AMM account. The `currency` and `issuer` subfields should match the `Asset` subfields. If this field isn't specified, or the `value` subfield exceeds the holder's available tokens in the AMM, all of the holder's tokens are clawed back. |
|
||||
| `Holder` | String | AccountID | Yes | The account holding the asset to be clawed back. |
|
||||
|
||||
|
||||
## AMMClawback Flags
|
||||
|
||||
| Flag Name | Hex Value | Decimal Value | Description |
|
||||
|----------|------------|---------------|-------------|
|
||||
| `tfClawTwoAssets` | `0x00000001` | 1 | Claw back the specified amount of `Asset`, and a corresponding amount of `Asset2` based on the AMM pool's asset proportion; both assets must be issued by the issuer in the `Account` field. If this flag isn't enabled, the issuer claws back the specified amount of `Asset`, while a corresponding proportion of `Asset2` goes back to the `Holder`. |
|
||||
| Flag Name | Hex Value | Decimal Value | Description |
|
||||
|-------------------|--------------|---------------|-------------|
|
||||
| `tfClawTwoAssets` | `0x00000001` | 1 | Claw back the specified amount of `Asset`, and a corresponding amount of `Asset2` based on the AMM pool's asset proportion; both assets must be issued by the issuer in the `Account` field. If this flag isn't enabled, the issuer claws back the specified amount of `Asset`, while a corresponding proportion of `Asset2` goes back to the `Holder`. |
|
||||
|
||||
|
||||
## Error Cases
|
||||
@@ -66,4 +66,4 @@ Besides errors that can occur for all transactions, `AMMClawback` transactions c
|
||||
| `temMALFORMED` | Occurs if the `issuer` subfield doesn't match between `Asset` and `Account`, `Account` is the same as the `Holder`, or `Asset` is XRP. |
|
||||
| `terNO_AMM` | Occurs if the AMM pool specified by `Asset` and `Asset2` doesn't exist. |
|
||||
|
||||
{% raw-partial file="/docs/_snippets/common-links.md" /%}
|
||||
{% raw-partial file="/docs/_snippets/common-links.md" /%}
|
||||
|
||||
@@ -9,14 +9,14 @@ labels:
|
||||
# AMMCreate
|
||||
[[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/AMMCreate.cpp "Source")
|
||||
|
||||
_(Added by the [AMM amendment][])_
|
||||
|
||||
Create a new [Automated Market Maker](../../../../concepts/tokens/decentralized-exchange/automated-market-makers.md) (AMM) instance for trading a pair of assets ([fungible tokens](../../../../concepts/tokens/index.md) or [XRP](../../../../introduction/what-is-xrp.md)).
|
||||
|
||||
Creates both an [AMM entry][] and a [special AccountRoot entry](../../ledger-data/ledger-entry-types/accountroot.md#special-amm-accountroot-entries) to represent the AMM. Also transfers ownership of the starting balance of both assets from the sender to the created `AccountRoot` and issues an initial balance of liquidity provider tokens (LP Tokens) from the AMM account to the sender.
|
||||
|
||||
{% admonition type="warning" name="Caution" %}When you create the AMM, you should fund it with (approximately) equal-value amounts of each asset. Otherwise, other users can profit at your expense by trading with this AMM ([performing arbitrage](https://www.machow.ski/posts/an_introduction_to_automated_market_makers/#price-arbitrage)). The currency risk that liquidity providers take on increases with the volatility (potential for imbalance) of the asset pair. The higher the trading fee, the more it offsets this risk, so it's best to set the trading fee based on the volatility of the asset pair.{% /admonition %}
|
||||
|
||||
_(Added by the [AMM amendment][].)_
|
||||
|
||||
## Example {% $frontmatter.seo.title %} JSON
|
||||
|
||||
```json
|
||||
|
||||
@@ -9,12 +9,12 @@ labels:
|
||||
# AMMDelete
|
||||
[[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/AMMDelete.cpp "Source")
|
||||
|
||||
_(Added by the [AMM amendment][])_
|
||||
|
||||
Delete an empty [Automated Market Maker](../../../../concepts/tokens/decentralized-exchange/automated-market-makers.md) (AMM) instance that could not be fully deleted automatically.
|
||||
|
||||
Normally, an [AMMWithdraw transaction][] automatically deletes an AMM and all associated ledger entries when it withdraws all the assets from the AMM's pool. However, if there are too many trust lines to the AMM account to remove in one transaction, it may stop before fully removing the AMM. Similarly, an AMMDelete transaction removes up to a maximum of 512 trust lines; it may take several AMMDelete transactions to delete all the trust lines and the associated AMM. In all cases, only the last such transaction deletes the AMM and AccountRoot ledger entries.
|
||||
|
||||
_(Added by the [AMM amendment][].)_
|
||||
|
||||
|
||||
## Example {% $frontmatter.seo.title %} JSON
|
||||
|
||||
@@ -39,8 +39,8 @@ Normally, an [AMMWithdraw transaction][] automatically deletes an AMM and all as
|
||||
|
||||
| Field | JSON Type | [Internal Type][] | Required? | Description |
|
||||
|:---------------|:--------------------|:------------------|:----------|:------------|
|
||||
| `Asset` | Object | STIssue | Yes | The definition for one of the assets in the AMM's pool. The asset can be XRP, a token, or an MPT (see: [Specifying Without Amounts][]). |
|
||||
| `Asset2` | Object | STIssue | Yes | The definition for the other asset in the AMM's pool. The asset can be XRP, a token, or an MPT (see: [Specifying Without Amounts][]). |
|
||||
| `Asset` | Object | Issue | Yes | The definition for one of the assets in the AMM's pool. The asset can be XRP, a token, or an MPT (see: [Specifying Without Amounts][]). |
|
||||
| `Asset2` | Object | Issue | Yes | The definition for the other asset in the AMM's pool. The asset can be XRP, a token, or an MPT (see: [Specifying Without Amounts][]). |
|
||||
|
||||
|
||||
## Error Cases
|
||||
|
||||
@@ -9,8 +9,6 @@ labels:
|
||||
# AMMDeposit
|
||||
[[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/AMMDeposit.cpp "Source")
|
||||
|
||||
_(Added by the [AMM amendment][])_
|
||||
|
||||
Deposit funds into an [Automated Market Maker](../../../../concepts/tokens/decentralized-exchange/automated-market-makers.md) (AMM) instance and receive the AMM's liquidity provider tokens (_LP Tokens_) in exchange. You can deposit one or both of the assets in the AMM's pool.
|
||||
|
||||
If successful, this transaction creates a [trust line](../../../../concepts/tokens/fungible-tokens/index.md) to the AMM Account (limit 0) to hold the LP Tokens.
|
||||
@@ -21,6 +19,8 @@ You can't deposit either asset into an AMM if:
|
||||
- You aren't authorized to hold at least one of the pooled assets.
|
||||
{% /admonition %}
|
||||
|
||||
_(Added by the [AMM amendment][].)_
|
||||
|
||||
## Example {% $frontmatter.seo.title %} JSON
|
||||
|
||||
```json
|
||||
@@ -52,8 +52,8 @@ You can't deposit either asset into an AMM if:
|
||||
|
||||
| Field | JSON Type | [Internal Type][] | Required? | Description |
|
||||
|:--------------|:--------------------|:------------------|:----------|:------------|
|
||||
| `Asset` | Object | STIssue | Yes | The definition for one of the assets in the AMM's pool. The asset can be XRP, a token, or an MPT (see: [Specifying Without Amounts][]). |
|
||||
| `Asset2` | Object | STIssue | Yes | The definition for the other asset in the AMM's pool. The asset can be XRP, a token, or an MPT (see: [Specifying Without Amounts][]). |
|
||||
| `Asset` | Object | Issue | Yes | The definition for one of the assets in the AMM's pool. The asset can be XRP, a token, or an MPT (see: [Specifying Without Amounts][]). |
|
||||
| `Asset2` | Object | Issue | Yes | The definition for the other asset in the AMM's pool. The asset can be XRP, a token, or an MPT (see: [Specifying Without Amounts][]). |
|
||||
| `Amount` | [Currency Amount][] | Amount | No | The amount of one asset to deposit to the AMM. If present, this must match the type of one of the assets (tokens or XRP) in the AMM's pool. |
|
||||
| `Amount2` | [Currency Amount][] | Amount | No | The amount of another asset to add to the AMM. If present, this must match the type of the other asset in the AMM's pool and cannot be the same asset as `Amount`. |
|
||||
| `EPrice` | [Currency Amount][] | Amount | No | The maximum effective price, in the deposit asset, to pay for each LP Token received. |
|
||||
|
||||
@@ -9,10 +9,10 @@ labels:
|
||||
# AMMVote
|
||||
[[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/AMMVote.cpp "Source")
|
||||
|
||||
_(Added by the [AMM amendment][])_
|
||||
|
||||
Vote on the trading fee for an [Automated Market Maker](../../../../concepts/tokens/decentralized-exchange/automated-market-makers.md) instance. Up to 8 accounts can vote in proportion to the amount of the AMM's LP Tokens they hold. Each new vote re-calculates the AMM's trading fee based on a weighted average of the votes.
|
||||
|
||||
_(Added by the [AMM amendment][].)_
|
||||
|
||||
## Example {% $frontmatter.seo.title %} JSON
|
||||
|
||||
```json
|
||||
@@ -39,8 +39,8 @@ Vote on the trading fee for an [Automated Market Maker](../../../../concepts/tok
|
||||
|
||||
| Field | JSON Type | [Internal Type][] | Required? | Description |
|
||||
|:-------------|:----------|:------------------|:----------|:------------|
|
||||
| `Asset` | Object | STIssue | Yes | The definition for one of the assets in the AMM's pool. The asset can be XRP, a token, or an MPT (see: [Specifying Without Amounts][]). |
|
||||
| `Asset2` | Object | STIssue | Yes | The definition for the other asset in the AMM's pool. The asset can be XRP, a token, or an MPT (see: [Specifying Without Amounts][]). |
|
||||
| `Asset` | Object | Issue | Yes | The definition for one of the assets in the AMM's pool. The asset can be XRP, a token, or an MPT (see: [Specifying Without Amounts][]). |
|
||||
| `Asset2` | Object | Issue | Yes | The definition for the other asset in the AMM's pool. The asset can be XRP, a token, or an MPT (see: [Specifying Without Amounts][]). |
|
||||
| `TradingFee` | Number | UInt16 | Yes | The proposed fee to vote for, in units of 1/100,000; a value of 1 is equivalent to 0.001%. The maximum value is 1000, indicating a 1% fee. |
|
||||
|
||||
## Error Cases
|
||||
|
||||
@@ -9,10 +9,10 @@ labels:
|
||||
# AMMWithdraw
|
||||
[[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/AMMWithdraw.cpp "Source")
|
||||
|
||||
_(Added by the [AMM amendment][])_
|
||||
|
||||
Withdraw assets from an [Automated Market Maker](../../../../concepts/tokens/decentralized-exchange/automated-market-makers.md) (AMM) instance by returning the AMM's liquidity provider tokens (LP Tokens).
|
||||
|
||||
_(Added by the [AMM amendment][].)_
|
||||
|
||||
## Example {% $frontmatter.seo.title %} JSON
|
||||
|
||||
```json
|
||||
@@ -44,8 +44,8 @@ Withdraw assets from an [Automated Market Maker](../../../../concepts/tokens/dec
|
||||
|
||||
| Field | JSON Type | [Internal Type][] | Required? | Description |
|
||||
|:-------------|:--------------------|:------------------|:----------|:------------|
|
||||
| `Asset` | Object | STIssue | Yes | The definition for one of the assets in the AMM's pool. The asset can be XRP, a token, or an MPT (see: [Specifying Without Amounts][]). |
|
||||
| `Asset2` | Object | STIssue | Yes | The definition for the other asset in the AMM's pool. The asset can be XRP, a token, or an MPT (see: [Specifying Without Amounts][]). |
|
||||
| `Asset` | Object | Issue | Yes | The definition for one of the assets in the AMM's pool. The asset can be XRP, a token, or an MPT (see: [Specifying Without Amounts][]). |
|
||||
| `Asset2` | Object | Issue | Yes | The definition for the other asset in the AMM's pool. The asset can be XRP, a token, or an MPT (see: [Specifying Without Amounts][]). |
|
||||
| `Amount` | [Currency Amount][] | Amount | No | The amount of one asset to withdraw from the AMM. This must match the type of one of the assets (tokens or XRP) in the AMM's pool. |
|
||||
| `Amount2` | [Currency Amount][] | Amount | No | The amount of another asset to withdraw from the AMM. If present, this must match the type of the other asset in the AMM's pool and cannot be the same type as `Amount`. |
|
||||
| `EPrice` | [Currency Amount][] | Amount | No | The minimum effective price, in LP Token returned, to pay per unit of the asset to withdraw. |
|
||||
|
||||
@@ -10,6 +10,8 @@ status: not_enabled
|
||||
|
||||
The `Batch` transaction submits up to eight transactions as a single unit. `Batch` transactions are executed atomically in one of four modes: All or Nothing, Only One, Until Failure, and Independent.
|
||||
|
||||
_(Requires the [Batch amendment][] {% not-enabled %}.)_
|
||||
|
||||
|
||||
## Example {% $frontmatter.seo.title %} JSON
|
||||
|
||||
|
||||
@@ -9,10 +9,10 @@ labels:
|
||||
# CheckCancel
|
||||
[[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/CancelCheck.cpp "Source")
|
||||
|
||||
_(Added by the [Checks amendment][].)_
|
||||
|
||||
Cancels an unredeemed Check, removing it from the ledger without sending any money. The source or the destination of the check can cancel a Check at any time using this transaction type. If the Check has expired, any address can cancel it.
|
||||
|
||||
_(Added by the [Checks amendment][].)_
|
||||
|
||||
## Example {% $frontmatter.seo.title %} JSON
|
||||
|
||||
```json
|
||||
@@ -31,7 +31,7 @@ Cancels an unredeemed Check, removing it from the ledger without sending any mon
|
||||
|
||||
| Field | JSON Type | [Internal Type][] | Description |
|
||||
|:------------|:----------|:------------------|:-------------------------------|
|
||||
| `CheckID` | String | Hash256 | The ID of the [Check ledger object](../../ledger-data/ledger-entry-types/check.md) to cancel, as a 64-character hexadecimal string. |
|
||||
| `CheckID` | String | UInt256 | The ID of the [Check ledger object](../../ledger-data/ledger-entry-types/check.md) to cancel, as a 64-character hexadecimal string. |
|
||||
|
||||
## Error Cases
|
||||
|
||||
|
||||
@@ -9,12 +9,12 @@ labels:
|
||||
# CheckCash
|
||||
[[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/CashCheck.cpp "Source")
|
||||
|
||||
_(Added by the [Checks amendment][].)_
|
||||
|
||||
Attempts to redeem a Check object in the ledger to receive up to the amount authorized by the corresponding [CheckCreate transaction][]. Only the `Destination` address of a Check can cash it with a CheckCash transaction. Cashing a check this way is similar to executing a [Payment][] initiated by the destination.
|
||||
|
||||
Since the funds for a check are not guaranteed, redeeming a Check can fail because the sender does not have a high enough balance or because there is not enough liquidity to deliver the funds. If this happens, the Check remains in the ledger and the destination can try to cash it again later, or for a different amount.
|
||||
|
||||
_(Added by the [Checks amendment][].)_
|
||||
|
||||
## Example {% $frontmatter.seo.title %} JSON
|
||||
|
||||
```json
|
||||
@@ -34,7 +34,7 @@ Since the funds for a check are not guaranteed, redeeming a Check can fail becau
|
||||
|
||||
| Field | JSON Type | [Internal Type][] | Description |
|
||||
|:-------------|:--------------------|:------------------|:--------------------|
|
||||
| `CheckID` | String | Hash256 | The ID of the [Check ledger object](../../ledger-data/ledger-entry-types/check.md) to cash, as a 64-character hexadecimal string. |
|
||||
| `CheckID` | String | UInt256 | The ID of the [Check ledger object](../../ledger-data/ledger-entry-types/check.md) to cash, as a 64-character hexadecimal string. |
|
||||
| `Amount` | [Currency Amount][] | Amount | _(Optional)_ Redeem the Check for exactly this amount, if possible. The currency must match that of the `SendMax` of the corresponding CheckCreate transaction. You must provide either this field or `DeliverMin`. |
|
||||
| `DeliverMin` | [Currency Amount][] | Amount | _(Optional)_ Redeem the Check for at least this amount and for as much as possible. The currency must match that of the `SendMax` of the corresponding CheckCreate transaction. You must provide either this field or `Amount`. |
|
||||
|
||||
|
||||
@@ -9,10 +9,10 @@ labels:
|
||||
# CheckCreate
|
||||
[[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/CreateCheck.cpp "Source")
|
||||
|
||||
_(Added by the [Checks amendment][].)_
|
||||
|
||||
Create a Check object in the ledger, which is a deferred payment that can be cashed by its intended destination. The sender of this transaction is the sender of the Check.
|
||||
|
||||
_(Added by the [Checks amendment][].)_
|
||||
|
||||
## Example {% $frontmatter.seo.title %} JSON
|
||||
|
||||
```json
|
||||
@@ -38,7 +38,7 @@ Create a Check object in the ledger, which is a deferred payment that can be cas
|
||||
| `SendMax` | [Currency Amount][] | Amount | Maximum amount of source currency the Check is allowed to debit the sender, including [transfer fees](../../../../concepts/tokens/transfer-fees.md) on non-XRP currencies. The Check can only credit the destination with the same currency (from the same issuer, for non-XRP currencies). For non-XRP amounts, the nested field names MUST be lower-case. |
|
||||
| `DestinationTag` | Number | UInt32 | _(Optional)_ Arbitrary tag that identifies the reason for the Check, or a hosted recipient to pay. |
|
||||
| `Expiration` | Number | UInt32 | _(Optional)_ Time after which the Check is no longer valid, in [seconds since the Ripple Epoch][]. |
|
||||
| `InvoiceID` | String | Hash256 | _(Optional)_ Arbitrary 256-bit hash representing a specific reason or identifier for this Check. |
|
||||
| `InvoiceID` | String | UInt256 | _(Optional)_ Arbitrary 256-bit hash representing a specific reason or identifier for this Check. |
|
||||
|
||||
## Error Cases
|
||||
|
||||
|
||||
@@ -7,12 +7,12 @@ labels:
|
||||
# Clawback
|
||||
[[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/Clawback.cpp "Source")
|
||||
|
||||
_(Added by the [Clawback amendment][].)_
|
||||
|
||||
Claw back tokens issued by your account.
|
||||
|
||||
Clawback is disabled by default. To use clawback, you must send an [AccountSet transaction][] to enable the **Allow Trust Line Clawback** setting. An issuer with any existing tokens cannot enable Clawback. You can only enable **Allow Trust Line Clawback** if you have a completely empty owner directory, meaning you must do so before you set up any trust lines, offers, escrows, payment channels, checks, or signer lists. After you enable Clawback, it cannot reverted: the account permanently gains the ability to claw back issued assets on trust lines.
|
||||
|
||||
_(Added by the [Clawback amendment][].)_
|
||||
|
||||
## Example {% $frontmatter.seo.title %} JSON
|
||||
|
||||
```json
|
||||
@@ -31,8 +31,8 @@ Clawback is disabled by default. To use clawback, you must send an [AccountSet t
|
||||
|
||||
| Field | JSON Type | [Internal Type][] | Description |
|
||||
|:-------------------|:----------|:------------------|:------------------|
|
||||
| `Amount` | [Currency Amount][] | Amount |Indicates the amount being clawed back, as well as the counterparty from which the amount is being clawed back. The quantity to claw back, in the `value` sub-field, must not be zero. If this is more than the current balance, the transaction claws back the entire balance. The sub-field `issuer` within `Amount` represents the token holder's account ID, rather than the issuer's.|
|
||||
| `Holder` | string | AccountID | (Optional) Specifies the holder's address from which to claw back. The holder must already own an `MPToken` object with a non-zero balance. _(Requires the [MPTokensV1 amendment][] {% not-enabled /%})_ |
|
||||
| `Amount` | [Currency Amount][] | Amount | The amount being clawed back, as well as the counterparty from which the amount is being clawed back. The quantity to claw back, in the `value` sub-field, must not be zero. If this is more than the current balance, the transaction claws back the entire balance. The sub-field `issuer` within `Amount` represents the token holder's account ID, rather than the issuer's.|
|
||||
| `Holder` | String | AccountID | (Optional) Specifies the holder's address from which to claw back. The holder must already own an `MPToken` object with a non-zero balance. _(Requires the [MPTokensV1 amendment][] {% not-enabled /%})_ |
|
||||
|
||||
{% admonition type="info" name="Note" %}For an IOU (trust line) in the XRP Ledger, the party that created a token is called the _issuer_, but trust lines are bidirectional and, under some configurations, both sides can be seen as the issuer. In this transaction, the token issuer's address is in the `Account` field, and the token holder's address is in the `Amount` field's `issuer` sub-field.{% /admonition %}
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ status: not_enabled
|
||||
|
||||
A CredentialAccept transaction accepts a credential, which makes the credential valid. Only the subject of the credential can do this.
|
||||
|
||||
_(Requires the [Credentials amendment][] {% not-enabled /%})_
|
||||
_(Requires the [Credentials amendment][] {% not-enabled /%}.)_
|
||||
|
||||
## Example CredentialAccept JSON
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ status: not_enabled
|
||||
|
||||
A CredentialCreate transaction creates a credential in the ledger. The issuer of the credential uses this transaction to provisionally issue a credential. The credential is not valid until the subject of the credential accepts it with a [CredentialAccept transaction][].
|
||||
|
||||
_(Requires the [Credentials amendment][] {% not-enabled /%})_
|
||||
_(Requires the [Credentials amendment][] {% not-enabled /%}.)_
|
||||
|
||||
## Example CredentialCreate JSON
|
||||
|
||||
@@ -28,12 +28,12 @@ _(Requires the [Credentials amendment][] {% not-enabled /%})_
|
||||
|
||||
In addition to the [common fields][], CredentialCreate transactions use the following fields:
|
||||
|
||||
| Field | JSON Type | [Internal Type][] | Required? | Description |
|
||||
|:-----------------|:-----------------|:------------------|:----------|:------------|
|
||||
| `Subject` | String - [Address][] | AccountID | Yes | The subject of the credential. |
|
||||
| `CredentialType` | String - Hexadecimal | Blob | Yes | Arbitrary data defining the type of credential this entry represents. The minimum length is 1 byte and the maximum length is 64 bytes. |
|
||||
| `Expiration` | Number | UInt32 | No | Time after which this credential expires, in [seconds since the Ripple Epoch][]. |
|
||||
| `URI` | String | Blob | No | Arbitrary additional data about the credential, such as the URL where users can look up an associated Verifiable Credential document. If present, the minimum length is 1 byte and the maximum is 256 bytes. |
|
||||
| Field | JSON Type | [Internal Type][] | Required? | Description |
|
||||
|:-----------------|:---------------------|:------------------|:----------|:------------|
|
||||
| `Subject` | String - [Address][] | AccountID | Yes | The subject of the credential. |
|
||||
| `CredentialType` | String - Hexadecimal | Blob | Yes | Arbitrary data defining the type of credential this entry represents. The minimum length is 1 byte and the maximum length is 64 bytes. |
|
||||
| `Expiration` | Number | UInt32 | No | Time after which this credential expires, in [seconds since the Ripple Epoch][]. |
|
||||
| `URI` | String - Hexadecimal | Blob | No | Arbitrary additional data about the credential, such as the URL where users can look up an associated Verifiable Credential document. If present, the minimum length is 1 byte and the maximum is 256 bytes. |
|
||||
|
||||
The `Account` field (the sender) of the transaction is the issuer of the credential. It is possible for the issuer and the subject to be the same account.
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ status: not_enabled
|
||||
|
||||
A CredentialDelete transaction removes a credential from the ledger, effectively revoking it. Users may also want to delete an unwanted credential to reduce their [reserve requirement](../../../../concepts/accounts/reserves.md).
|
||||
|
||||
_(Requires the [Credentials amendment][] {% not-enabled /%})_
|
||||
_(Requires the [Credentials amendment][] {% not-enabled /%}.)_
|
||||
|
||||
## Example CredentialDelete JSON
|
||||
|
||||
@@ -28,11 +28,11 @@ _(Requires the [Credentials amendment][] {% not-enabled /%})_
|
||||
|
||||
In addition to the [common fields][], CredentialDelete transactions use the following fields:
|
||||
|
||||
| Field | JSON Type | [Internal Type][] | Required? | Description |
|
||||
|:-----------------|:-----------------|:------------------|:----------|:------------|
|
||||
| `CredentialType` | String - Hexadecimal | Blob | Yes | Arbitrary data defining the type of credential to delete. The minimum length is 1 byte and the maximum length is 256 bytes. |
|
||||
| `Subject` | String - [Address][] | AccountID | No | The subject of the credential to delete. If omitted, use the `Account` (sender of the transaction) as the subject of the credential. |
|
||||
| `Issuer` | String - [Address][] | AccountID | No | The issuer of the credential to delete. If omitted, use the `Account` (sender of the transaction) as the issuer of the credential. |
|
||||
| Field | JSON Type | [Internal Type][] | Required? | Description |
|
||||
|:-----------------|:---------------------|:------------------|:----------|:------------|
|
||||
| `CredentialType` | String - Hexadecimal | Blob | Yes | Arbitrary data defining the type of credential to delete. The minimum length is 1 byte and the maximum length is 256 bytes. |
|
||||
| `Subject` | String - [Address][] | AccountID | No | The subject of the credential to delete. If omitted, use the `Account` (sender of the transaction) as the subject of the credential. |
|
||||
| `Issuer` | String - [Address][] | AccountID | No | The issuer of the credential to delete. If omitted, use the `Account` (sender of the transaction) as the issuer of the credential. |
|
||||
|
||||
You must provide the `Subject` field, `Issuer` field, or both.
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ status: not_enabled
|
||||
# DelegateSet
|
||||
The `DelegateSet` transaction creates, modifies, or deletes a `Delegate` ledger object, thereby granting, changing, or revoking delegated permissions between accounts.
|
||||
|
||||
_(Requires the [PermissionDelegation amendment][] {% not-enabled /%})_
|
||||
_(Requires the [PermissionDelegation amendment][] {% not-enabled /%}.)_
|
||||
|
||||
## Example `DelegateSet` JSON
|
||||
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
---
|
||||
html: depositpreauth.html
|
||||
parent: transaction-types.html
|
||||
seo:
|
||||
description: Preauthorizes an account to send payments to this one.
|
||||
labels:
|
||||
@@ -9,12 +7,12 @@ labels:
|
||||
# DepositPreauth
|
||||
[[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/DepositPreauth.cpp "Source")
|
||||
|
||||
_Added by the [DepositPreauth amendment][]._
|
||||
|
||||
A DepositPreauth transaction grants preauthorization to deliver payments to your account. This is only useful if you are using (or plan to use) [Deposit Authorization](../../../../concepts/accounts/depositauth.md).
|
||||
|
||||
{% admonition type="success" name="Tip" %}You can use this transaction before you enable Deposit Authorization. This may be useful to ensure a smooth transition from not requiring deposit authorization to requiring it.{% /admonition %}
|
||||
|
||||
_(Added by the [DepositPreauth amendment][].)_
|
||||
|
||||
## Example {% $frontmatter.seo.title %} JSON
|
||||
|
||||
{% tabs %}
|
||||
@@ -59,9 +57,9 @@ A DepositPreauth transaction grants preauthorization to deliver payments to your
|
||||
| Field | JSON Type | [Internal Type][] | Required? | Description |
|
||||
|:-------------------------|:---------------------|:------------------|:----------|:------------|
|
||||
| `Authorize` | String - [Address][] | AccountID | No | An account to preauthorize. |
|
||||
| `AuthorizeCredentials` | Array | STArray | No | A set of credentials to authorize. _(Requires the [Credentials amendment][]. {% not-enabled /%})_ |
|
||||
| `AuthorizeCredentials` | Array | Array | No | A set of credentials to authorize. _(Requires the [Credentials amendment][]. {% not-enabled /%})_ |
|
||||
| `Unauthorize` | String | AccountID | No | An account whose preauthorization should be revoked. |
|
||||
| `UnauthorizeCredentials` | Array | STArray | No | A set of credentials whose preauthorization should be revoked. _(Requires the [Credentials amendment][]. {% not-enabled /%})_ |
|
||||
| `UnauthorizeCredentials` | Array | Array | No | A set of credentials whose preauthorization should be revoked. _(Requires the [Credentials amendment][]. {% not-enabled /%})_ |
|
||||
|
||||
You must provide **exactly one** of `Authorize`, `AuthorizeCredentials`, `Unauthorize`, or `UnauthorizeCredentials`.
|
||||
|
||||
|
||||
@@ -10,12 +10,12 @@ labels:
|
||||
|
||||
[[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/DID.cpp "Source")
|
||||
|
||||
_(Requires the [DID amendment][])_
|
||||
|
||||
Delete the [DID ledger entry](../../ledger-data/ledger-entry-types/did.md) associated with the specified `Account` field.
|
||||
|
||||
{% admonition type="info" name="Note" %}This transaction only uses the [common fields][].{% /admonition %}
|
||||
|
||||
_(Added by the [DID amendment][].)_
|
||||
|
||||
|
||||
## Example {% $frontmatter.seo.title %} JSON
|
||||
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
---
|
||||
html: didset.html
|
||||
parent: transaction-types.html
|
||||
seo:
|
||||
description: Create or update a DID.
|
||||
labels:
|
||||
@@ -10,10 +8,9 @@ labels:
|
||||
|
||||
[[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/DID.cpp "Source")
|
||||
|
||||
_(Requires the [DID amendment][])_
|
||||
|
||||
Creates a new [DID ledger entry](../../ledger-data/ledger-entry-types/did.md) or updates the fields of an existing one.
|
||||
|
||||
_(Added by the [DID amendment][].)_
|
||||
|
||||
## Example {% $frontmatter.seo.title %} JSON
|
||||
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
---
|
||||
html: escrowcancel.html
|
||||
parent: transaction-types.html
|
||||
seo:
|
||||
description: Reclaim escrowed XRP.
|
||||
labels:
|
||||
@@ -10,10 +8,10 @@ labels:
|
||||
|
||||
[[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/Escrow.cpp "Source")
|
||||
|
||||
_Added by the [Escrow amendment][]._
|
||||
|
||||
Return escrowed XRP to the sender.
|
||||
|
||||
_(Added by the [Escrow amendment][].)_
|
||||
|
||||
## Example {% $frontmatter.seo.title %} JSON
|
||||
|
||||
```json
|
||||
@@ -30,10 +28,10 @@ Return escrowed XRP to the sender.
|
||||
|
||||
{% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%}
|
||||
|
||||
| Field | JSON Type | [Internal Type][] | Description |
|
||||
|:----------------|:----------|:------------------|:---------------------------|
|
||||
| `Owner` | String | AccountID | Address of the source account that funded the escrow payment. |
|
||||
| `OfferSequence` | Number | UInt32 | Transaction sequence (or [Ticket](../../../../concepts/accounts/tickets.md) number) of [EscrowCreate transaction][] that created the escrow to cancel. |
|
||||
| Field | JSON Type | [Internal Type][] | Description |
|
||||
|:----------------|:---------------------|:------------------|:---------------------------|
|
||||
| `Owner` | String - [Address][] | AccountID | The account that funded the escrow payment. |
|
||||
| `OfferSequence` | Number | UInt32 | Transaction sequence (or [Ticket](../../../../concepts/accounts/tickets.md) number) of [EscrowCreate transaction][] that created the escrow to cancel. |
|
||||
|
||||
Any account may submit an EscrowCancel transaction.
|
||||
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
---
|
||||
html: escrowcreate.html
|
||||
parent: transaction-types.html
|
||||
seo:
|
||||
description: Create an escrowed XRP payment.
|
||||
labels:
|
||||
@@ -10,10 +8,10 @@ labels:
|
||||
|
||||
[[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/Escrow.cpp "Source")
|
||||
|
||||
_Added by the [Escrow amendment][]._
|
||||
|
||||
Sequester XRP until the escrow process either finishes or is canceled.
|
||||
|
||||
_(Added by the [Escrow amendment][].)_
|
||||
|
||||
## Example {% $frontmatter.seo.title %} JSON
|
||||
|
||||
```json
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
---
|
||||
html: escrowfinish.html
|
||||
parent: transaction-types.html
|
||||
seo:
|
||||
description: Deliver escrowed XRP to recipient.
|
||||
labels:
|
||||
@@ -12,7 +10,7 @@ labels:
|
||||
|
||||
Deliver XRP from an escrow (held payment) to the recipient.
|
||||
|
||||
_Added by the [Escrow amendment][]._
|
||||
_(Added by the [Escrow amendment][].)_
|
||||
|
||||
|
||||
## Example {% $frontmatter.seo.title %} JSON
|
||||
@@ -33,13 +31,13 @@ _Added by the [Escrow amendment][]._
|
||||
|
||||
{% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%}
|
||||
|
||||
| Field | JSON Type | [Internal Type][] | Required? | Description |
|
||||
|:----------------|:----------|:------------------|:----------|:------------|
|
||||
| `Owner` | String | AccountID | Yes | Address of the source account that funded the escrow. |
|
||||
| `OfferSequence` | Number | UInt32 | Yes | Transaction sequence of [EscrowCreate transaction][] that created the escrow to finish. |
|
||||
| `Condition` | String | Blob | No | Hex value matching the previously-supplied [PREIMAGE-SHA-256 crypto-condition](https://tools.ietf.org/html/draft-thomas-crypto-conditions-02#section-8.1) of the escrow. |
|
||||
| `CredentialIDs` | Array of Strings | Vector256 | No | Set of Credentials to authorize a deposit made by this transaction. Each member of the array must be the ledger entry ID of a Credential entry in the ledger. For details, see [Credential IDs](./payment.md#credential-ids). |
|
||||
| `Fulfillment` | String | Blob | No | Hex value of the [PREIMAGE-SHA-256 crypto-condition fulfillment](https://tools.ietf.org/html/draft-thomas-crypto-conditions-02#section-8.1.4) matching the escrow's `Condition`. |
|
||||
| Field | JSON Type | [Internal Type][] | Required? | Description |
|
||||
|:----------------|:---------------------|:------------------|:----------|:------------|
|
||||
| `Owner` | String - [Address][] | AccountID | Yes | The source account that funded the escrow. |
|
||||
| `OfferSequence` | Number | UInt32 | Yes | Transaction sequence of [EscrowCreate transaction][] that created the escrow to finish. |
|
||||
| `Condition` | String - Hexadecimal | Blob | No | The (previously-supplied) [PREIMAGE-SHA-256 crypto-condition](https://tools.ietf.org/html/draft-thomas-crypto-conditions-02#section-8.1) of the escrow. |
|
||||
| `CredentialIDs` | Array of Strings | Vector256 | No | Set of Credentials to authorize a deposit made by this transaction. Each member of the array must be the ledger entry ID of a Credential entry in the ledger. For details, see [Credential IDs](./payment.md#credential-ids). |
|
||||
| `Fulfillment` | String - Hexadecmial | Blob | No | The [PREIMAGE-SHA-256 crypto-condition fulfillment](https://tools.ietf.org/html/draft-thomas-crypto-conditions-02#section-8.1.4) matching the escrow's `Condition`. |
|
||||
|
||||
Any account may submit an EscrowFinish transaction.
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ labels:
|
||||
|
||||
`LedgerStateFix` is a general purpose transaction used to fix specific issues affecting the XRP ledger. You submit the transaction with the `LedgerFixType` value set to indicate the particular error state to correct.
|
||||
|
||||
_(Added by the [fixNFTokenPageLinks amendment][])_
|
||||
_(Added by the [fixNFTokenPageLinks amendment][].)_
|
||||
|
||||
|
||||
## Example {% $frontmatter.seo.title %} JSON
|
||||
@@ -31,7 +31,7 @@ _(Added by the [fixNFTokenPageLinks amendment][])_
|
||||
| Field | JSON Type | [Internal Type][] | Required? | Description |
|
||||
|:----------------|:---------------------|:------------------|:----------|:------------|
|
||||
| `LedgerFixType` | Number | UInt16 | Yes | The type of fix to apply. See [LedgerFixType](#ledgerfixtype) for possible values. Currently the only type is `1`, which fixes the NFToken directory for a single account. |
|
||||
| `Owner` | String - [Address][] | Account | No | _(Required if `LedgerFixType` is `1`.)_ The account that owns the NFToken directory to fix. Does not need any relationship to the sender of the transaction. |
|
||||
| `Owner` | String - [Address][] | AccountID | No | _(Required if `LedgerFixType` is `1`.)_ The account that owns the NFToken directory to fix. Does not need any relationship to the sender of the transaction. |
|
||||
|
||||
|
||||
## LedgerFixType
|
||||
@@ -69,4 +69,4 @@ Besides errors that can occur for all transactions, {% $frontmatter.seo.title %}
|
||||
| `tecOBJECT_NOT_FOUND` | A ledger entry specified in the transaction does not exist. For example, the transaction tried to repair the NFT directory of an account that does not hold any NFTs. |
|
||||
| `tefINVALID_LEDGER_FIX_TYPE` | The [`LedgerFixType`](#ledgerfixtype) value specified in the transaction is not valid. Currently, the only valid type is `1`. |
|
||||
|
||||
{% raw-partial file="/docs/_snippets/common-links.md" /%}
|
||||
{% raw-partial file="/docs/_snippets/common-links.md" /%}
|
||||
|
||||
@@ -7,14 +7,14 @@ labels:
|
||||
# MPTokenAuthorize
|
||||
[[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/MPTokenAuthorize.cpp "Source")
|
||||
|
||||
_(Requires the [MPTokensV1 amendment][] {% not-enabled /%})_
|
||||
|
||||
An MPTokenAuthorize transaction controls whether an account can hold a given [Multi-purpose Token (MPT)](../../../../concepts/tokens/fungible-tokens/multi-purpose-tokens.md). It has several uses:
|
||||
|
||||
- An account indicates their willingness to hold an MPT. This creates a new [MPToken entry][] with an initial zero balance owned by that account. This is a prerequisite to receive that type of MPT in a payment.
|
||||
- An account revokes their willingness to hold an MPT, deleting the [MPToken entry][]. This can only be done if their balance of the given MPT is zero.
|
||||
- For an MPT that uses allow-listing, an issuer grants or revokes permission for another account to hold the given MPT.
|
||||
|
||||
_(Requires the [MPTokensV1 amendment][] {% not-enabled /%}.)_
|
||||
|
||||
{% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%}
|
||||
|
||||
| Field | JSON Type | [Internal Type][] | Required? | Description |
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
---
|
||||
html: mptokenissuancecreate.html
|
||||
parent: transaction-types.html
|
||||
blurb: Issue a new Multi-purpose Token.
|
||||
labels:
|
||||
- Multi-purpose Tokens, MPTs
|
||||
@@ -9,14 +7,14 @@ labels:
|
||||
# MPTokenIssuanceCreate
|
||||
[[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/MPTokenIssuanceCreate.cpp "Source")
|
||||
|
||||
_(Requires the [MPTokensV1 amendment][] {% not-enabled /%})_
|
||||
|
||||
The `MPTokenIssuanceCreate` transaction creates an [MPTokenIssuance](../../ledger-data/ledger-entry-types/mptokenissuance.md) object and adds it to the relevant directory node of the creator account. This transaction is the only opportunity an issuer has to specify any token fields that are defined as immutable (for example, MPT Flags).
|
||||
|
||||
If the transaction is successful, the newly created token is owned by the account (the creator account) that executed the transaction.
|
||||
|
||||
Whenever your query returns an `MPTokenIssuance` transaction response, there will always be an `mpt_issuance_id` field on the Transaction Metadata page.
|
||||
|
||||
_(Requires the [MPTokensV1 amendment][] {% not-enabled /%}.)_
|
||||
|
||||
## Example MPTokenIssuanceCreate JSON
|
||||
|
||||
This example assumes that the issuer of the token is the signer of the transaction.
|
||||
@@ -34,18 +32,14 @@ This example assumes that the issuer of the token is the signer of the transacti
|
||||
}
|
||||
```
|
||||
|
||||
<!-- ## MPTokenIssuanceCreate Fields -->
|
||||
|
||||
{% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%}
|
||||
|
||||
| Field | JSON Type | [Internal Type][] | Description |
|
||||
|:----------------|:--------------------|:------------------|:-------------------|
|
||||
| `TransactionType` | string | UInt16 | Indicates the new transaction type MPTokenIssuanceCreate. |
|
||||
| `AssetScale` | number | UInt8 | (Optional) An asset scale is the difference, in orders of magnitude, between a standard unit and a corresponding fractional unit. More formally, the asset scale is a non-negative integer (0, 1, 2, …) such that one standard unit equals 10^(-scale) of a corresponding fractional unit. For example, a US Dollar Stablecoin will likely have an asset scale of _2_, representing 2 decimal places; 1 unit of this MPToken would equal 0.01 US Dollars. If the fractional unit equals the standard unit, then the asset scale is 0. Note that this value is optional, and will default to 0 if not supplied. |
|
||||
| `Flags` | number | UInt16 | Specifies the flags for this transaction. See [MPTokenIssuanceCreate Flags](#mptokenissuancecreate-flags). |
|
||||
| `TransferFee` | number | UInt16 | (Optional) The value specifies the fee to charged by the issuer for secondary sales of the Token, if such sales are allowed. Valid values for this field are between 0 and 50,000 inclusive, allowing transfer rates of between 0.000% and 50.000% in increments of 0.001. The field _must not_ be present if the tfMPTCanTransfer flag is not set. If it is, the transaction should fail and a fee should be claimed. |
|
||||
| `MaximumAmount` | string | UInt64 | (Optional) The maximum asset amount of this token that can ever be issued, as a base-10 number encoded as a string. The current default maximum limit is 9,223,372,036,854,775,807 (2^63-1). _This limit may increase in the future. If an upper limit is required, you must specify this field._ |
|
||||
| `MPTokenMetadata` | string | Blob | Arbitrary metadata about this issuance, in hex format. The limit for this field is 1024 bytes. |
|
||||
| Field | JSON Type | [Internal Type][] | Required? | Description |
|
||||
|:------------------|:--------------------|:------------------|:----------|:------------|
|
||||
| `AssetScale` | number | UInt8 | No | An asset scale is the difference, in orders of magnitude, between a standard unit and a corresponding fractional unit. More formally, the asset scale is a non-negative integer (0, 1, 2, …) such that one standard unit equals 10^(-scale) of a corresponding fractional unit. For example, a US Dollar Stablecoin will likely have an asset scale of _2_, representing 2 decimal places; 1 unit of this MPToken would equal 0.01 US Dollars. If the fractional unit equals the standard unit, then the asset scale is 0. Note that this value is optional, and will default to 0 if not supplied. |
|
||||
| `TransferFee` | number | UInt16 | No | The value specifies the fee to charged by the issuer for secondary sales of the Token, if such sales are allowed. Valid values for this field are between 0 and 50,000 inclusive, allowing transfer rates of between 0.000% and 50.000% in increments of 0.001. The field _must not_ be present if the tfMPTCanTransfer flag is not set. If it is, the transaction should fail and a fee should be claimed. |
|
||||
| `MaximumAmount` | string | UInt64 | No | The maximum asset amount of this token that can ever be issued, as a base-10 number encoded as a string. The current default maximum limit is 9,223,372,036,854,775,807 (2^63-1). _This limit may increase in the future. If an upper limit is required, you must specify this field._ |
|
||||
| `MPTokenMetadata` | string | Blob | No | Arbitrary metadata about this issuance, in hex format. The limit for this field is 1024 bytes. |
|
||||
|
||||
## MPTokenIssuanceCreate Flags
|
||||
|
||||
@@ -53,11 +47,11 @@ Transactions of the MPTokenIssuanceCreate type support additional values in the
|
||||
|
||||
| Flag Name | Hex Value | Decimal Value | Description |
|
||||
|:-------------------|:-------------|:--------------|:------------------------------|
|
||||
| `tfMPTCanLock` | `0x00000002` | `2` | If set, indicates that the MPT can be locked both individually and globally. If not set, the MPT cannot be locked in any way. |
|
||||
| `tfMPTRequireAuth` | `0x00000004` | `4` | If set, indicates that individual holders must be authorized. This enables issuers to limit who can hold their assets. |
|
||||
| `tfMPTCanEscrow` | `0x00000008` | `8` | If set, indicates that individual holders can place their balances into an escrow. |
|
||||
| `tfMPTCanTrade` | `0x00000010` | `16` | If set, indicates that individual holders can trade their balances using the XRP Ledger DEX. |
|
||||
| `tfMPTCanTransfer` | `0x00000020` | `32` | If set, indicates that tokens can be transferred to other accounts that are not the issuer. |
|
||||
| `tfMPTCanClawback` | `0x00000040` | `64` | If set, indicates that the issuer can use the `Clawback` transaction to claw back value from individual holders. |
|
||||
| `tfMPTCanLock` | `0x00000002` | `2` | If set, indicates that the MPT can be locked both individually and globally. If not set, the MPT cannot be locked in any way. |
|
||||
| `tfMPTRequireAuth` | `0x00000004` | `4` | If set, indicates that individual holders must be authorized. This enables issuers to limit who can hold their assets. |
|
||||
| `tfMPTCanEscrow` | `0x00000008` | `8` | If set, indicates that individual holders can place their balances into an escrow. |
|
||||
| `tfMPTCanTrade` | `0x00000010` | `16` | If set, indicates that individual holders can trade their balances using the XRP Ledger DEX. |
|
||||
| `tfMPTCanTransfer` | `0x00000020` | `32` | If set, indicates that tokens can be transferred to other accounts that are not the issuer. |
|
||||
| `tfMPTCanClawback` | `0x00000040` | `64` | If set, indicates that the issuer can use the `Clawback` transaction to claw back value from individual holders. |
|
||||
|
||||
{% raw-partial file="/docs/_snippets/common-links.md" /%}
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
---
|
||||
html: mptokenissuancedestroy.html
|
||||
parent: transaction-types.html
|
||||
blurb: Remove a Multi-purpose Token from the ledger.
|
||||
labels:
|
||||
- Multi-purpose Tokens, MPTs
|
||||
@@ -8,12 +6,12 @@ labels:
|
||||
# MPTokenIssuanceDestroy
|
||||
[[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/MPTokenIssuanceDestroy.cpp "Source")
|
||||
|
||||
_(Requires the [MPTokensV1 amendment][] {% not-enabled /%})_
|
||||
|
||||
The `MPTokenIssuanceDestroy` transaction is used to remove an `MPTokenIssuance` object from the directory node in which it is being held, effectively removing the token from the ledger ("destroying" it).
|
||||
|
||||
If this operation succeeds, the corresponding `MPTokenIssuance` is removed and the owner’s reserve requirement is reduced by one. This operation must fail if there are any holders of the MPT in question.
|
||||
|
||||
_(Requires the [MPTokensV1 amendment][] {% not-enabled /%}.)_
|
||||
|
||||
## Example MPTokenIssuanceDestroy JSON
|
||||
|
||||
```json
|
||||
@@ -30,7 +28,6 @@ If this operation succeeds, the corresponding `MPTokenIssuance` is removed and t
|
||||
|
||||
| Field | JSON Type | [Internal Type][] | Description |
|
||||
|:--------------------|:--------------------|:------------------|:-------------------|
|
||||
| `TransactionType` | string | UInt16 | Indicates the new transaction type MPTokenIssuanceDestroy. |
|
||||
| `MPTokenIssuanceID` | string | UInt192 | Identifies the `MPTokenIssuance` object to be removed by the transaction. |
|
||||
| `MPTokenIssuanceID` | String | UInt192 | Identifies the `MPTokenIssuance` object to be removed by the transaction. |
|
||||
|
||||
{% raw-partial file="/docs/_snippets/common-links.md" /%}
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
---
|
||||
html: mptokenissuanceset.html
|
||||
parent: transaction-types.html
|
||||
blurb: Set mutable properties for an MPT.
|
||||
labels:
|
||||
- Multi-purpose Tokens, MPTs
|
||||
@@ -8,9 +6,9 @@ labels:
|
||||
# MPTokenIssuanceSet
|
||||
[[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/MPTokenIssuanceSet.cpp "Source")
|
||||
|
||||
_(Requires the [MPTokensV1 amendment][] {% not-enabled /%})_
|
||||
Use this transaction to update a mutable property for a Multi-purpose Token. The transaction flags determine which change(s) to apply.
|
||||
|
||||
Use this transaction to update a mutable property for a Multi-purpose Token.
|
||||
_(Requires the [MPTokensV1 amendment][] {% not-enabled /%}.)_
|
||||
|
||||
## Example
|
||||
|
||||
@@ -27,12 +25,10 @@ Use this transaction to update a mutable property for a Multi-purpose Token.
|
||||
|
||||
{% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%}
|
||||
|
||||
| Field | JSON Type | [Internal Type][] | Description |
|
||||
|:-------------------|:--------------------|:------------------|:-------------------|
|
||||
| `TransactionType` | string | UInt16 | Indicates the new transaction type `MPTokenIssuanceSet`. |
|
||||
| `MPTokenIssuanceID`| string | UInt192 | The `MPTokenIssuance` identifier. |
|
||||
| `Holder` | string | AccountID | (Optional) XRPL Address of an individual token holder balance to lock/unlock. If omitted, this transaction applies to all any accounts holding MPTs. |
|
||||
| `Flag` | number | UInt64 | Specifies flags for this transaction. See [MPTokenIssuanceSet Flags](#mptokenissuanceset-flags). |
|
||||
| Field | JSON Type | [Internal Type][] | Required? | Description |
|
||||
|:--------------------|:---------------------|:------------------|:----------|-------------|
|
||||
| `MPTokenIssuanceID` | String - Hexadecimal | UInt192 | Yes | The identifier of the `MPTokenIssuance` to update. |
|
||||
| `Holder` | String - [Address][] | AccountID | No | An individual token holder. If provided, apply changes to the given holder's balance of the given MPT issuance. If omitted, apply to all accounts holding the given MPT issuance. |
|
||||
|
||||
### MPTokenIssuanceSet Flags
|
||||
|
||||
@@ -40,7 +36,7 @@ Transactions of the `MPTokenIssuanceSet` type support additional values in the `
|
||||
|
||||
| Flag Name | Hex Value | Decimal Value | Description |
|
||||
|:-------------------|:-------------|:--------------|:------------------------------|
|
||||
| `tfMPTLock` | `0x00000001` | 1 | If set, indicates that all MPT balances for this asset should be locked. |
|
||||
| `tfMPTUnlock` | `0x00000002` | 2 | If set, indicates that all MPT balances for this asset should be unlocked. |
|
||||
| `tfMPTLock` | `0x00000001` | 1 | Enable to lock balances of this MPT issuance. |
|
||||
| `tfMPTUnlock` | `0x00000002` | 2 | Enable to unlock balances of this MPT issuance. |
|
||||
|
||||
{% raw-partial file="/docs/_snippets/common-links.md" /%}
|
||||
|
||||
@@ -76,8 +76,8 @@ The transaction fails with a [`tec`-class code](../transaction-results/tec-codes
|
||||
|
||||
| Field | JSON Type | [Internal Type][] | Description |
|
||||
|:-------------------|:--------------------|:------------------|:--------------|
|
||||
| `NFTokenSellOffer` | String | Hash256 | _(Optional)_ Identifies the `NFTokenOffer` that offers to sell the `NFToken`. |
|
||||
| `NFTokenBuyOffer` | String | Hash256 | _(Optional)_ Identifies the `NFTokenOffer` that offers to buy the `NFToken`. |
|
||||
| `NFTokenSellOffer` | String | UInt256 | _(Optional)_ Identifies the `NFTokenOffer` that offers to sell the `NFToken`. |
|
||||
| `NFTokenBuyOffer` | String | UInt256 | _(Optional)_ Identifies the `NFTokenOffer` that offers to buy the `NFToken`. |
|
||||
| `NFTokenBrokerFee` | [Currency Amount][] | Amount | _(Optional)_ This field is only valid in brokered mode, and specifies the amount that the broker keeps as part of their fee for bringing the two offers together; the remaining amount is sent to the seller of the `NFToken` being bought. If specified, the fee must be such that, before applying the transfer fee, the amount that the seller would receive is at least as much as the amount indicated in the sell offer. |
|
||||
|
||||
In direct mode, you must specify **either** the `NFTokenSellOffer` or the `NFTokenBuyOffer` field. In brokered mode, you must specify **both** fields.
|
||||
|
||||
@@ -36,7 +36,7 @@ _(Added by the [NonFungibleTokensV1_1 amendment][].)_
|
||||
|
||||
| Field | JSON Type | [Internal Type][] | Description |
|
||||
|:------------------|:----------|:------------------|:-------------------------|
|
||||
| `NFTokenID` | String | Hash256 | The `NFToken` to be removed by this transaction. |
|
||||
| `NFTokenID` | String | UInt256 | The `NFToken` to be removed by this transaction. |
|
||||
| `Owner` | String | AccountID | _(Optional)_ The owner of the `NFToken` to burn. Only used if that owner is different than the account sending this transaction. The issuer or authorized minter can use this field to burn NFTs that have the `lsfBurnable` flag enabled. |
|
||||
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ This transaction removes the listed `NFTokenOffer` object from the ledger, if pr
|
||||
|
||||
| Field | JSON Type | [Internal Type][] | Description |
|
||||
|:------------------|:----------|:------------------|:-------------------------|
|
||||
| `NFTokenOffers` | Array | VECTOR256 | An array of IDs of the `NFTokenOffer` objects to cancel (not the IDs of `NFToken` objects, but the IDs of the `NFTokenOffer` objects). Each entry must be a different [object ID](../../ledger-data/common-fields.md) of an [NFTokenOffer](../../ledger-data/ledger-entry-types/nftokenoffer.md) object; the transaction is invalid if the array contains duplicate entries. |
|
||||
| `NFTokenOffers` | Array | Vector256 | An array of IDs of the `NFTokenOffer` objects to cancel (not the IDs of `NFToken` objects, but the IDs of the `NFTokenOffer` objects). Each entry must be a different [object ID](../../ledger-data/common-fields.md) of an [NFTokenOffer](../../ledger-data/ledger-entry-types/nftokenoffer.md) object; the transaction is invalid if the array contains duplicate entries. |
|
||||
|
||||
The transaction can succeed even if one or more of the IDs in the `NFTokenOffers` field do not refer to objects that currently exist in the ledger. (For example, those token offers might already have been deleted.) The transaction fails with an error if one of the IDs points to an object that does exist, but is not a [NFTokenOffer](../../ledger-data/ledger-entry-types/nftokenoffer.md) object.
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ _(Added by the [NonFungibleTokensV1_1 amendment][].)_
|
||||
| Field | JSON Type | [Internal Type][] | Description |
|
||||
|:--------------|:--------------------|:------------------|:-------------------|
|
||||
| `Owner` | String | AccountID | _(Optional)_ Who owns the corresponding `NFToken`. If the offer is to buy a token, this field must be present and it must be different than the `Account` field (since an offer to buy a token one already holds is meaningless). If the offer is to sell a token, this field must not be present, as the owner is, implicitly, the same as the `Account` (since an offer to sell a token one doesn't already hold is meaningless). |
|
||||
| `NFTokenID` | String | Hash256 | Identifies the `NFToken` object that the offer references. |
|
||||
| `NFTokenID` | String | UInt256 | Identifies the `NFToken` object that the offer references. |
|
||||
| `Amount` | [Currency Amount][] | Amount | Indicates the amount expected or offered for the corresponding `NFToken`. The amount must be non-zero, except where this is an offer to sell and the asset is XRP; then, it is legal to specify an amount of zero, which means that the current owner of the token is giving it away, gratis, either to anyone at all, or to the account identified by the `Destination` field. |
|
||||
| `Expiration` | Number | UInt32 | _(Optional)_ Time after which the offer is no longer active, in [seconds since the Ripple Epoch][]. |
|
||||
| `Destination` | String | AccountID | _(Optional)_ If present, indicates that this offer may only be accepted by the specified account. Attempts by other accounts to accept this offer MUST fail. |
|
||||
|
||||
@@ -40,15 +40,15 @@ _(Added by the [NonFungibleTokensV1_1 amendment][].)_
|
||||
|
||||
{% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%}
|
||||
|
||||
| Field | JSON Type | [Internal Type][] | Description |
|
||||
|:--------------|:--------------------|:------------------|:-------------------|
|
||||
| `NFTokenTaxon` | Number | UInt32 | An arbitrary _taxon_, or shared identifier, for a series or collection of related NFTs. To mint a series of NFTs, give them all the same taxon. |
|
||||
| `Issuer` | String | AccountID | _(Optional)_ The issuer of the token, if the sender of the account is issuing it on behalf of another account. This field must be omitted if the account sending the transaction is the issuer of the `NFToken`. If provided, the issuer's [AccountRoot object][] must have the `NFTokenMinter` field set to the sender of this transaction (this transaction's `Account` field). |
|
||||
| `TransferFee` | Number | UInt16 | _(Optional)_ The value specifies the fee charged by the issuer for secondary sales of the `NFToken`, if such sales are allowed. Valid values for this field are between 0 and 50000 inclusive, allowing transfer rates of between 0.00% and 50.00% in increments of 0.001. If this field is provided, the transaction MUST have the [`tfTransferable` flag](#nftokenmint-flags) enabled. |
|
||||
| `URI` | String | Blob | _(Optional)_ Up to 256 bytes of arbitrary data. In JSON, this should be encoded as a string of hexadecimal. You can use the [`xrpl.convertStringToHex`](https://js.xrpl.org/modules.html#convertStringToHex) utility to convert a URI to its hexadecimal equivalent. This is intended to be a URI that points to the data or metadata associated with the NFT. The contents could decode to an HTTP or HTTPS URL, an IPFS URI, a magnet link, immediate data encoded as an [RFC 2379 "data" URL](https://datatracker.ietf.org/doc/html/rfc2397), or even an issuer-specific encoding. The URI is NOT checked for validity. |
|
||||
| `Amount` | [Currency Amount][] | Amount | _(Optional)_ Indicates the amount expected or offered for the corresponding `NFToken`. The amount must be non-zero, except where the asset is XRP; then, it is legal to specify an amount of zero, which means that the current owner of the token is giving it away, gratis, either to anyone at all, or to the account identified by the `Destination` field. |
|
||||
| `Expiration` | Number | UInt32 | _(Optional)_ Time after which the offer is no longer active, in [seconds since the Ripple Epoch][]. Results in an error if the `Amount` field is not specified. |
|
||||
| `Destination` | String | AccountID | _(Optional)_ If present, indicates that this offer may only be accepted by the specified account. Attempts by other accounts to accept this offer MUST fail. Results in an error if the `Amount` field is not specified. |
|
||||
| Field | JSON Type | [Internal Type][] | Required? | Description |
|
||||
|:---------------|:---------------------|:------------------|:----------|-------------|
|
||||
| `NFTokenTaxon` | Number | UInt32 | Yes | An arbitrary _taxon_, or shared identifier, for a series or collection of related NFTs. To mint a series of NFTs, give them all the same taxon. |
|
||||
| `Issuer` | String - [Address][] | AccountID | No | The issuer of the token, if the sender of the account is issuing it on behalf of another account. This field must be omitted if the account sending the transaction is the issuer of the `NFToken`. If provided, the issuer's [AccountRoot object][] must have the `NFTokenMinter` field set to the sender of this transaction (this transaction's `Account` field). |
|
||||
| `TransferFee` | Number | UInt16 | No | The value specifies the fee charged by the issuer for secondary sales of the `NFToken`, if such sales are allowed. Valid values for this field are between 0 and 50000 inclusive, allowing transfer rates of between 0.00% and 50.00% in increments of 0.001. If this field is provided, the transaction MUST have the [`tfTransferable` flag](#nftokenmint-flags) enabled. |
|
||||
| `URI` | String - Hexadecimal | Blob | No | Up to 256 bytes of arbitrary data. In JSON, this should be encoded as a string of hexadecimal. You can use the [`xrpl.convertStringToHex`](https://js.xrpl.org/modules.html#convertStringToHex) utility to convert a URI to its hexadecimal equivalent. This is intended to be a URI that points to the data or metadata associated with the NFT. The contents could decode to an HTTP or HTTPS URL, an IPFS URI, a magnet link, immediate data encoded as an [RFC 2379 "data" URL](https://datatracker.ietf.org/doc/html/rfc2397), or even an issuer-specific encoding. The URI is NOT checked for validity. |
|
||||
| `Amount` | [Currency Amount][] | Amount | No | Indicates the amount expected or offered for the corresponding `NFToken`. The amount must be non-zero, except where the asset is XRP; then, it is legal to specify an amount of zero, which means that the current owner of the token is giving it away, gratis, either to anyone at all, or to the account identified by the `Destination` field. |
|
||||
| `Expiration` | Number | UInt32 | No | Time after which the offer is no longer active, in [seconds since the Ripple Epoch][]. Results in an error if the `Amount` field is not specified. |
|
||||
| `Destination` | String - [Address][] | AccountID | No | If present, indicates that this offer may only be accepted by the specified account. Attempts by other accounts to accept this offer MUST fail. Results in an error if the `Amount` field is not specified. |
|
||||
|
||||
## NFTokenMint Flags
|
||||
|
||||
|
||||
@@ -11,6 +11,8 @@ title:
|
||||
|
||||
`NFTokenModify` is used to change the `URI` field of an NFT to point to a different URI in order to update the supporting data for the NFT. The NFT must have been minted with the `tfMutable` flag set. See [Dynamic Non-Fungible Tokens](../../../../concepts/tokens/nfts/dynamic-nfts.md).
|
||||
|
||||
_(Requires the [DynamicNFT amendment][] {% not-enabled /%}.)_
|
||||
|
||||
## Example {% $frontmatter.seo.title %} JSON
|
||||
|
||||
|
||||
@@ -28,13 +30,11 @@ title:
|
||||
|
||||
{% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%}
|
||||
|
||||
| Field | JSON Type | [Internal Type][] | Description |
|
||||
|:------------------|:--------------------|:------------------|:-------------------|
|
||||
| `TransactionType` | String | UINT16 | Type is `NFTokenModify`. |
|
||||
| `Account` | String | AccountID | The unique address of either the issuer or an authorized minter of the NFT. |
|
||||
| `Owner` | String | AccountID | _(Optional)_ Address of the owner of the NFT. If the `Account` and `Owner` are the same address, omit this field. |
|
||||
| `NFTokenID` | String | Hash256 | Composite field that uniquely identifies the token. |
|
||||
| `URI` | String | Blob | _(Optional)_ Up to 256 bytes of arbitrary data. In JSON, this should be encoded as a string of hexadecimal. You can use the [`xrpl.convertStringToHex`](https://js.xrpl.org/modules.html#convertStringToHex) utility to convert a URI to its hexadecimal equivalent. This is intended to be a URI that points to the data or metadata associated with the NFT. The contents could decode to an HTTP or HTTPS URL, an IPFS URI, a magnet link, immediate data encoded as an [RFC 2379 "data" URL](https://datatracker.ietf.org/doc/html/rfc2397), or even an issuer-specific encoding. The URI is not checked for validity. If you do not specify a URI, the existing URI is deleted. |
|
||||
| Field | JSON Type | [Internal Type][] | Required? | Description |
|
||||
|:------------------|:---------------------|:------------------|:----------|:------------|
|
||||
| `Owner` | String - [Address][] | AccountID | No | Address of the owner of the NFT. If the `Account` and `Owner` are the same address, omit this field. |
|
||||
| `NFTokenID` | String - Hexadecimal | UInt256 | Yes | The unique identfier of the NFT to modify. |
|
||||
| `URI` | String - Hexadecimal | Blob | No | Up to 256 bytes of arbitrary data. In JSON, this should be encoded as a string of hexadecimal. You can use the [`xrpl.convertStringToHex`](https://js.xrpl.org/modules.html#convertStringToHex) utility to convert a URI to its hexadecimal equivalent. This is intended to be a URI that points to the data or metadata associated with the NFT. The contents could decode to an HTTP or HTTPS URL, an IPFS URI, a magnet link, immediate data encoded as an [RFC 2379 "data" URL](https://datatracker.ietf.org/doc/html/rfc2397), or even an issuer-specific encoding. The URI is not checked for validity. If you do not specify a URI, the existing URI is deleted. |
|
||||
|
||||
## Error Cases
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@ An OfferCreate transaction places an [Offer](../../../../concepts/tokens/decentr
|
||||
|
||||
| Field | JSON Type | [Internal Type][] | Required? | Description |
|
||||
|:-----------------|:--------------------|:------------------|:----------|-------------|
|
||||
| `DomainID` | String - [Hash][] | Hash256 | No | The ledger entry ID of a permissioned domain. If provided, restrict this offer to the [permissioned DEX](../../../../concepts/tokens/decentralized-exchange/permissioned-dexes.md) of that domain. _(Requires the [PermissionedDEX amendment][] {% not-enabled /%})_ |
|
||||
| `DomainID` | String - [Hash][] | UInt256 | No | The ledger entry ID of a permissioned domain. If provided, restrict this offer to the [permissioned DEX](../../../../concepts/tokens/decentralized-exchange/permissioned-dexes.md) of that domain. _(Requires the [PermissionedDEX amendment][] {% not-enabled /%})_ |
|
||||
| [`Expiration`](../../../../concepts/tokens/decentralized-exchange/offers.md#offer-expiration) | Number | UInt32 | No | Time after which the Offer is no longer active, in [seconds since the Ripple Epoch][]. |
|
||||
| `OfferSequence` | Number | UInt32 | No | An Offer to delete first, specified in the same way as [OfferCancel][]. |
|
||||
| `TakerGets` | [Currency Amount][] | Amount | Yes | The amount and type of currency being sold. |
|
||||
|
||||
@@ -12,6 +12,8 @@ _(Requires the [PriceOracle amendment][])_
|
||||
|
||||
Delete an `Oracle` ledger entry.
|
||||
|
||||
_(Added by the [PriceOracle amendment][].)_
|
||||
|
||||
|
||||
## Example OracleDelete JSON
|
||||
|
||||
|
||||
@@ -6,12 +6,12 @@ labels:
|
||||
- Oracle
|
||||
---
|
||||
# OracleSet
|
||||
_(Requires the [PriceOracle amendment][])_
|
||||
|
||||
[[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/SetOracle.cpp "Source")
|
||||
|
||||
Creates a new `Oracle` ledger entry or updates the fields of an existing one, using the Oracle Document ID.
|
||||
|
||||
_(Added by the [PriceOracle amendment][].)_
|
||||
|
||||
|
||||
## Example OracleSet JSON
|
||||
|
||||
|
||||
@@ -45,8 +45,8 @@ Payments are also the only way to [create accounts](#creating-accounts).
|
||||
| `DeliverMin` | [Currency Amount][] | Amount | No | Minimum amount of destination currency this transaction should deliver. Only valid if this is a [partial payment](#partial-payments). |
|
||||
| `Destination` | String - [Address][] | AccountID | Yes | The account receiving the payment. |
|
||||
| `DestinationTag` | Number | UInt32 | No | Arbitrary tag that identifies the reason for the payment to the destination, or a hosted recipient to pay. |
|
||||
| `DomainID` | String - [Hash][] | Hash256 | No | The ledger entry ID of a permissioned domain. If this is a cross-currency payment, only use the corresponding [permissioned DEX](../../../../concepts/tokens/decentralized-exchange/permissioned-dexes.md) to convert currency. Both the sender and the recipient must have valid credentials that grant access to the specified domain. This field has no effect if the payment is not cross-currency. _(Requires the [PermissionedDEX amendment][] {% not-enabled /%})_ |
|
||||
| `InvoiceID` | String - Hexadecimal | Hash256 | No | Arbitrary 256-bit value representing a specific reason or identifier for this payment. |
|
||||
| `DomainID` | String - [Hash][] | UInt256 | No | The ledger entry ID of a permissioned domain. If this is a cross-currency payment, only use the corresponding [permissioned DEX](../../../../concepts/tokens/decentralized-exchange/permissioned-dexes.md) to convert currency. Both the sender and the recipient must have valid credentials that grant access to the specified domain. This field has no effect if the payment is not cross-currency. _(Requires the [PermissionedDEX amendment][] {% not-enabled /%})_ |
|
||||
| `InvoiceID` | String - Hexadecimal | UInt256 | No | Arbitrary 256-bit value representing a specific reason or identifier for this payment. |
|
||||
| `Paths` | Array of path arrays | PathSet | No | _(Auto-fillable)_ Array of [payment paths](../../../../concepts/tokens/fungible-tokens/paths.md) to be used for this transaction. Must be omitted for XRP-to-XRP transactions. |
|
||||
| `SendMax` | [Currency Amount][] | Amount | No | Highest amount of source currency this transaction is allowed to cost, including [transfer fees](../../../../concepts/tokens/transfer-fees.md), exchange rates, and [slippage](http://en.wikipedia.org/wiki/Slippage_%28finance%29). Does not include the [XRP destroyed as a cost for submitting the transaction](../../../../concepts/transactions/transaction-cost.md). Must be supplied for cross-currency/cross-issue payments. Must be omitted for XRP-to-XRP payments. |
|
||||
|
||||
|
||||
@@ -9,53 +9,56 @@ labels:
|
||||
# PaymentChannelClaim
|
||||
[[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/PayChan.cpp "Source")
|
||||
|
||||
_Added by the [PayChan amendment][]._
|
||||
|
||||
Claim XRP or fungible tokens from a payment channel, adjust the payment channel's expiration, or both. This transaction can be used differently depending on the transaction sender's role in the specified channel:
|
||||
Claim funds from a payment channel, adjust the payment channel's expiration, or both. This transaction can be used differently depending on the transaction sender's role in the specified channel:
|
||||
|
||||
The **source address** of a channel can:
|
||||
|
||||
- Send XRP or fungible tokens from the channel to the destination with _or without_ a signed Claim.
|
||||
- Send funds from the channel to the destination with _or without_ a signed Claim.
|
||||
- Set the channel to expire as soon as the channel's `SettleDelay` has passed.
|
||||
- Clear a pending `Expiration` time.
|
||||
- Close a channel immediately, with or without processing a claim first. The source address cannot close the channel immediately if the channel has any amount remaining.
|
||||
|
||||
The **destination address** of a channel can:
|
||||
|
||||
- Receive XRP or fungible tokens from the channel using a signed Claim.
|
||||
- Receive funds from the channel using a signed Claim.
|
||||
- Close the channel immediately after processing a Claim, refunding any unclaimed amount to the channel's source.
|
||||
|
||||
**Any address** sending this transaction can:
|
||||
|
||||
- Cause a channel to be closed if its `Expiration` or `CancelAfter` time is older than the previous ledger's close time. Any validly formed `PaymentChannelClaim` transaction has this effect, regardless of the contents of the transaction.
|
||||
|
||||
_(Added by the [PayChan amendment][].)_
|
||||
|
||||
|
||||
## Example {% $frontmatter.seo.title %} JSON
|
||||
|
||||
```json
|
||||
{
|
||||
"Channel": "C1AE6DDDEEC05CF2978C0BAD6FE302948E9533691DC749DCDD3B9E5992CA6198",
|
||||
"Balance": "1000000",
|
||||
"Amount": "1000000",
|
||||
"Signature": "30440220718D264EF05CAED7C781FF6DE298DCAC68D002562C9BF3A07C1E721B420C0DAB02203A5A4779EF4D2CCC7BC3EF886676D803A9981B928D3B8ACA483B80ECA3CD7B9B",
|
||||
"PublicKey": "32D2471DB72B27E3310F355BB33E339BF26F8392D5A93D3BC0FC3B566612DA0F0A"
|
||||
"Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
|
||||
"Amount": "1000000",
|
||||
"Balance": "1000000",
|
||||
"Channel": "5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3",
|
||||
"Fee": "10",
|
||||
"Flags": 2147483648,
|
||||
"PublicKey": "023693F15967AE357D0327974AD46FE3C127113B1110D6044FD41E723689F81CC6",
|
||||
"Sequence": 372,
|
||||
"TransactionType": "PaymentChannelClaim"
|
||||
}
|
||||
```
|
||||
|
||||
{% tx-example txid="9C0CAAC3DD1A74461132DA4451F9E53BDF4C93DFDBEFCE1B10021EC569013B33" /%}
|
||||
|
||||
<!--{# TODO: replace the above example with one where the channel, public key, signature, and balance match #}-->
|
||||
{% tx-example txid="C9FE08FC88CF76C3B06622ADAA47AE99CABB3380E4D195E7751274CFD87910EB" /%}
|
||||
|
||||
{% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%}
|
||||
|
||||
|
||||
| Field | JSON Type | [Internal Type][] | Required? | Description |
|
||||
|:------------|:----------|:------------------|:----------|:------------|
|
||||
| `Amount` | Object or String | Amount | No | The amount of [XRP, in drops][Currency Amount], or fungible tokens authorized by the `Signature`. This must match the amount in the signed message. This is the cumulative amount of XRP and fungible tokens that can be dispensed by the channel, including funds previously redeemed. |
|
||||
| `Balance` | String | Amount | No | Total amount of [XRP, in drops][Currency Amount], or fungible tokens delivered by this channel after processing this claim. Required to deliver XRP or fungible tokens. Must be more than the total amount delivered by the channel so far, but not greater than the `Amount` of the signed claim. Must be provided except when closing the channel. |
|
||||
| `Channel` | String | Hash256 | Yes | The unique ID of the channel, as a 64-character hexadecimal string. |
|
||||
| `CredentialIDs` | Array of Strings | Vector256 | No | Set of Credentials to authorize a deposit made by this transaction. Each member of the array must be the ledger entry ID of a Credential entry in the ledger. For details, see [Credential IDs](./payment.md#credential-ids). |
|
||||
| `PublicKey` | String | Blob | No | The public key used for the signature, as hexadecimal. This must match the `PublicKey` stored in the ledger for the channel. Required unless the sender of the transaction is the source address of the channel and the `Signature` field is omitted. (The transaction includes the public key so that `rippled` can check the validity of the signature before trying to apply the transaction to the ledger.) |
|
||||
| `Signature` | String | Blob | No | The signature of this claim, as hexadecimal. The signed message contains the channel ID and the amount of the claim. Required unless the sender of the transaction is the source address of the channel. |
|
||||
| Field | JSON Type | [Internal Type][] | Required? | Description |
|
||||
|:----------------|:---------------------|:------------------|:----------|:------------|
|
||||
| `Amount` | [Currency Amount][] | Amount | No | The amount of [XRP, in drops][Currency Amount], or fungible tokens authorized by the `Signature`. This must match the amount in the signed message. This is the cumulative amount that can be dispensed by the channel, including funds previously redeemed. Non-XRP tokens can only be used if the [TokenEscrow amendment][] {% not-enabled %} is enabled. |
|
||||
| `Balance` | [Currency Amount][] | Amount | No | Total amount of [XRP, in drops][Currency Amount], or fungible tokens delivered by this channel after processing this claim. Required to deliver XRP or fungible tokens. Must be more than the total amount delivered by the channel so far, but not greater than the `Amount` of the signed claim. Must be provided except when closing the channel. Non-XRP tokens can only be used if the [TokenEscrow amendment][] {% not-enabled %} is enabled. |
|
||||
| `Channel` | String - Hexadecimal | UInt256 | Yes | The unique ID of the channel. |
|
||||
| `CredentialIDs` | Array of Strings | Vector256 | No | Set of credentials to authorize a deposit made by this transaction. Each member of the array must be the ledger entry ID of a Credential entry in the ledger. For details, see [Credential IDs](./payment.md#credential-ids). |
|
||||
| `PublicKey` | String - Hexadecimal | Blob | No | The public key used for the signature. This must match the `PublicKey` stored in the ledger for the channel. Required unless the sender of the transaction is the source address of the channel and the `Signature` field is omitted. (The transaction includes the public key so that `rippled` can check the validity of the signature before trying to apply the transaction to the ledger.) |
|
||||
| `Signature` | String - Hexadecimal | Blob | No | The signature of this claim. The signed message contains the channel ID and the amount of the claim. Required unless the sender of the transaction is the source address of the channel. |
|
||||
|
||||
If the payment channel was created before the [fixPayChanRecipientOwnerDir amendment](/resources/known-amendments.md#fixpaychanrecipientownerdir) became enabled (on 2020-05-01), it is possible that the destination account has been [deleted](../../../../concepts/accounts/deleting-accounts.md) and does not currently exist in the ledger. If the destination has been deleted, the source account cannot send XRP from the channel to the destination; instead, the transaction fails with `tecNO_DST`. Other uses of this transaction type are unaffected when the destination account has been deleted, including adjusting the channel expiration, closing a channel with no XRP, or removing a channel that has passed its expiration time.
|
||||
|
||||
|
||||
@@ -7,9 +7,9 @@ labels:
|
||||
# PaymentChannelCreate
|
||||
[[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/PayChan.cpp "Source")
|
||||
|
||||
_Added by the [PayChan amendment][]._
|
||||
Create a [payment channel](../../../../concepts/payment-types/payment-channels.md) and fund it. The address sending this transaction becomes the "source address" of the payment channel.
|
||||
|
||||
Create a [payment channel](../../../../concepts/payment-types/payment-channels.md) and fund it with XRP. The address sending this transaction becomes the "source address" of the payment channel.
|
||||
_(Added by the [PayChan amendment][].)_
|
||||
|
||||
## Example {% $frontmatter.seo.title %} JSON
|
||||
|
||||
@@ -32,14 +32,14 @@ Create a [payment channel](../../../../concepts/payment-types/payment-channels.m
|
||||
{% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%}
|
||||
|
||||
|
||||
| Field | JSON Type | [Internal Type][] | Description |
|
||||
|:-----------------|:----------|:------------------|:--------------------------|
|
||||
| `Amount` | Object or String | Amount | Amount to deduct from the sender's balance and set aside in this channel. While the channel is open, the amount can only go to the `Destination` address. When the channel closes, any unclaimed amount is returned to the source account's balance.|
|
||||
| `Destination` | String | AccountID | Address to receive XRP claims against this channel. This is also known as the "destination address" for the channel. Cannot be the same as the sender (`Account`). |
|
||||
| `SettleDelay` | Number | UInt32 | Amount of time the source address must wait before closing the channel if it has unclaimed XRP. |
|
||||
| `PublicKey` | String | Blob | The 33-byte public key of the key pair the source will use to sign claims against this channel, in hexadecimal. This can be any secp256k1 or Ed25519 public key. For more information on key pairs, see [Key Derivation](../../../../concepts/accounts/cryptographic-keys.md#key-derivation) <!-- STYLE_OVERRIDE: will --> |
|
||||
| `CancelAfter` | Number | UInt32 | _(Optional)_ The time, in [seconds since the Ripple Epoch][], when this channel expires. Any transaction that would modify the channel after this time closes the channel without otherwise affecting it. This value is immutable; the channel can be closed earlier than this time but cannot remain open after this time. |
|
||||
| `DestinationTag` | Number | UInt32 | _(Optional)_ Arbitrary tag to further specify the destination for this payment channel, such as a hosted recipient at the destination address. |
|
||||
| Field | JSON Type | [Internal Type][] | Required? | Description |
|
||||
|:-----------------|:---------------------|:------------------|:----------|:------------|
|
||||
| `Amount` | [Currency Amount][] | Amount | Yes | Amount to deduct from the sender's balance and set aside in this channel. While the channel is open, the amount can only go to the `Destination` address. When the channel closes, any unclaimed amount is returned to the source account's balance. Non-XRP tokens can only be used if the [TokenEscrow amendment][] {% not-enabled %} is enabled. |
|
||||
| `Destination` | String - [Address][] | AccountID | Yes | The account that can receive money from this channel. This is also known as the "destination address" for the channel. Cannot be the same as the sender (`Account`). |
|
||||
| `SettleDelay` | Number | UInt32 | Yes | Amount of time, in seconds, the source address must wait before closing the channel if it has unclaimed funds. |
|
||||
| `PublicKey` | String - Hexadecimal | Blob | Yes | The 33-byte public key of the key pair the source will use to sign claims against this channel. This can be any secp256k1 or Ed25519 public key. For more information on key pairs, see [Key Derivation](../../../../concepts/accounts/cryptographic-keys.md#key-derivation) <!-- STYLE_OVERRIDE: will --> |
|
||||
| `CancelAfter` | Number | UInt32 | No | The time, in [seconds since the Ripple Epoch][], when this channel expires. Any transaction that would modify the channel after this time closes the channel without otherwise affecting it. This value is immutable; the channel can be closed earlier than this time but cannot remain open after this time. |
|
||||
| `DestinationTag` | Number | UInt32 | No | Arbitrary tag to further specify the destination for this payment channel, such as a hosted recipient at the destination address. |
|
||||
|
||||
If the `Destination` account is blocking incoming payment channels, the transaction fails with result code `tecNO_PERMISSION`. _(Requires the [DisallowIncoming amendment][] )_
|
||||
|
||||
|
||||
@@ -9,10 +9,10 @@ labels:
|
||||
# PaymentChannelFund
|
||||
[[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/PayChan.cpp "Source")
|
||||
|
||||
_Added by the [PayChan amendment][]._
|
||||
|
||||
Add an additional amount to an open [payment channel](../../../../concepts/payment-types/payment-channels.md), and optionally update the expiration time of the channel. Only the source account of the channel can use this transaction.
|
||||
|
||||
_(Added by the [PayChan amendment][].)_
|
||||
|
||||
Example PaymentChannelFund:
|
||||
|
||||
```json
|
||||
@@ -28,13 +28,12 @@ Example PaymentChannelFund:
|
||||
{% tx-example txid="877FA6E2FF8E08597D1F24E30BE8E52D0C9C06F0D620C5721E55622B6A632DFF" /%}
|
||||
|
||||
{% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%}
|
||||
<!--{# fix md highlighting_ #}-->
|
||||
|
||||
| Field | JSON Type | [Internal Type][] | Description |
|
||||
|:-------------|:----------|:------------------|:------------------------------|
|
||||
| `Channel` | String | Hash256 | The unique ID of the channel to fund, as a 64-character hexadecimal string. |
|
||||
| `Amount` | Object or String | Amount | Amount to add to the channel. Must be a positive amount. |
|
||||
| `Expiration` | Number | UInt32 | _(Optional)_ New `Expiration` time to set for the channel, in [seconds since the Ripple Epoch][]. This must be later than either the current time plus the `SettleDelay` of the channel, or the existing `Expiration` of the channel. After the `Expiration` time, any transaction that would access the channel closes the channel without taking its normal action. Any unspent XRP is returned to the source address when the channel closes. (`Expiration` is separate from the channel's immutable `CancelAfter` time.) For more information, see the [PayChannel ledger object type](../../ledger-data/ledger-entry-types/paychannel.md). |
|
||||
| Field | JSON Type | [Internal Type][] | Required? | Description |
|
||||
|:-------------|:---------------------|:------------------|:----------|:------------|
|
||||
| `Channel` | String - Hexadecimal | UInt256 | Yes | The unique ID of the channel to fund. |
|
||||
| `Amount` | [Currency Amount][] | Amount | Yes | Amount to add to the channel. Must be a positive amount. Non-XRP tokens can only be used if the [TokenEscrow amendment][] {% not-enabled %} is enabled. |
|
||||
| `Expiration` | Number | UInt32 | No | New expiration time to set for the channel, in [seconds since the Ripple Epoch][]. This must be later than either the current time plus the `SettleDelay` of the channel, or the existing `Expiration` of the channel. After the `Expiration` time, any transaction that would access the channel closes the channel without taking its normal action. (`Expiration` is separate from the channel's immutable `CancelAfter` time.) For more information, see the [PayChannel ledger entry type](../../ledger-data/ledger-entry-types/paychannel.md). |
|
||||
|
||||
## Error Cases
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ _(Requires the [PermissionedDomains amendment][] {% not-enabled /%})_
|
||||
|
||||
| Field | JSON Type | [Internal Type][] | Required? | Description |
|
||||
|:-----------|:------------------|:------------------|:----------|:------------|
|
||||
| `DomainID` | String - [Hash][] | Hash256 | Yes | The ledger entry ID of the Permissioned Domain entry to delete. |
|
||||
| `DomainID` | String - [Hash][] | UInt256 | Yes | The ledger entry ID of the Permissioned Domain entry to delete. |
|
||||
|
||||
## {% $frontmatter.seo.title %} Flags
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ _(Requires the [PermissionedDomains amendment][] {% not-enabled /%})_
|
||||
|
||||
| Field | JSON Type | [Internal Type][] | Required? | Description |
|
||||
|:----------------------|:------------------|:------------------|:----------|:------------|
|
||||
| `DomainID` | String - [Hash][] | Hash256 | No | The ledger entry ID of an existing permissioned domain to modify. If omitted, creates a new permissioned domain. |
|
||||
| `DomainID` | String - [Hash][] | UInt256 | No | The ledger entry ID of an existing permissioned domain to modify. If omitted, creates a new permissioned domain. |
|
||||
| `AcceptedCredentials` | Array | Array | Yes | A list of 1 to 10 [**Accepted Credentials objects**](#accepted-credentials-objects) that grant access to this domain. The list does not need to be sorted, but it cannot contain duplicates. When modifying an existing domain, this list replaces the existing list. |
|
||||
|
||||
{% raw-partial file="/docs/_snippets/accepted-credentials-objects.md" /%}
|
||||
|
||||
@@ -49,8 +49,8 @@ The SignerListSet transaction creates, replaces, or removes a list of signers th
|
||||
{% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%}
|
||||
<!--{# fix md highlighting_ #}-->
|
||||
|
||||
| Field | JSON Type | [Internal Type][] | Description |
|
||||
|:--------------|:----------|:------------------|:-----------------------------|
|
||||
| Field | JSON Type | [Internal Type][] | Description |
|
||||
|:----------------|:----------|:------------------|:-----------------------------|
|
||||
| `SignerQuorum` | Number | UInt32 | A target number for the signer weights. A multi-signature from this list is valid only if the sum weights of the signatures provided is greater than or equal to this value. To delete a signer list, use the value `0`. |
|
||||
| `SignerEntries` | Array | Array | _(Omitted when deleting)_ Array of [`SignerEntry` objects](../../ledger-data/ledger-entry-types/signerlist.md#signer-entry-object), indicating the addresses and weights of signers in this list. This signer list must have at least 1 member and no more than 32 members. No address may appear more than once in the list, nor may the `Account` submitting the transaction appear in the list. _(Updated by the [ExpandedSignerList amendment][].)_ |
|
||||
|
||||
|
||||
@@ -47,7 +47,7 @@ The `XChainAccountCreateCommit` transaction creates a new account for a witness
|
||||
| Field | JSON Type | [Internal Type][] | Required? | Description |
|
||||
|:------------------|:--------------------|:------------------|:----------| :-----------|
|
||||
| `Amount` | [Currency Amount][] | Amount | Yes | The amount, in XRP, to use for account creation. This must be greater than or equal to the `MinAccountCreateAmount` specified in the `Bridge` ledger object. |
|
||||
| `Destination` | String | Account | Yes | The destination account on the destination chain. |
|
||||
| `Destination` | String | AccountID | Yes | The destination account on the destination chain. |
|
||||
| `SignatureReward` | [Currency Amount][] | Amount | No | The amount, in XRP, to be used to reward the witness servers for providing signatures. This must match the amount on the `Bridge` ledger object. |
|
||||
| `XChainBridge` | XChainBridge | XChain_Bridge | Yes | The bridge to create accounts for. |
|
||||
|
||||
@@ -56,9 +56,9 @@ The `XChainAccountCreateCommit` transaction creates a new account for a witness
|
||||
|
||||
| Field | JSON Type | [Internal Type][] | Required? | Description |
|
||||
|:--------------------|:----------|:------------------|:----------|:----------------|
|
||||
| `IssuingChainDoor` | String | Account | Yes | The door account on the issuing chain. For an XRP-XRP bridge, this must be the genesis account (the account that is created when the network is first started, which contains all of the XRP). |
|
||||
| `IssuingChainDoor` | String | AccountID | Yes | The door account on the issuing chain. For an XRP-XRP bridge, this must be the genesis account (the account that is created when the network is first started, which contains all of the XRP). |
|
||||
| `IssuingChainIssue` | Issue | Issue | Yes | The asset that is minted and burned on the issuing chain. For an IOU-IOU bridge, the issuer of the asset must be the door account on the issuing chain, to avoid supply issues. |
|
||||
| `LockingChainDoor` | String | Account | Yes | The door account on the locking chain. |
|
||||
| `LockingChainDoor` | String | AccountID | Yes | The door account on the locking chain. |
|
||||
| `LockingChainIssue` | Issue | Issue | Yes | The asset that is locked and unlocked on the locking chain. |
|
||||
|
||||
{% raw-partial file="/docs/_snippets/common-links.md" /%}
|
||||
|
||||
@@ -57,25 +57,25 @@ Any account can submit signatures.
|
||||
| Field | JSON Type | [Internal Type][] | Required? | Description |
|
||||
|:---------------------------|:--------------------|:------------------|:----------|:------------|
|
||||
| `Amount` | [Currency Amount][] | Amount | Yes | The amount committed by the `XChainAccountCreateCommit` transaction on the source chain. |
|
||||
| `AttestationRewardAccount` | String | Account | Yes | The account that should receive this signer's share of the `SignatureReward`. |
|
||||
| `AttestationSignerAccount` | String | Account | Yes | The account on the door account's signer list that is signing the transaction. |
|
||||
| `Destination` | String | Account | Yes | The destination account for the funds on the destination chain. |
|
||||
| `OtherChainSource` | String | Account | Yes | The account on the source chain that submitted the `XChainAccountCreateCommit` transaction that triggered the event associated with the attestation. |
|
||||
| `AttestationRewardAccount` | String | AccountID | Yes | The account that should receive this signer's share of the `SignatureReward`. |
|
||||
| `AttestationSignerAccount` | String | AccountID | Yes | The account on the door account's signer list that is signing the transaction. |
|
||||
| `Destination` | String | AccountID | Yes | The destination account for the funds on the destination chain. |
|
||||
| `OtherChainSource` | String | AccountID | Yes | The account on the source chain that submitted the `XChainAccountCreateCommit` transaction that triggered the event associated with the attestation. |
|
||||
| `PublicKey` | String | Blob | Yes | The public key used to verify the signature. |
|
||||
| `Signature` | String | Blob | Yes | The signature attesting to the event on the other chain. |
|
||||
| `SignatureReward` | [Currency Amount][] | Amount | Yes | The signature reward paid in the `XChainAccountCreateCommit` transaction. |
|
||||
| `WasLockingChainSend` | Number | UInt8 | Yes | A boolean representing the chain where the event occurred. |
|
||||
| `XChainAccountCreateCount` | String | UInt64 | Yes | The counter that represents the order that the claims must be processed in. |
|
||||
| `XChainBridge` | XChainBridge | XChain_Bridge | Yes | The bridge associated with the attestation. |
|
||||
| `XChainBridge` | XChainBridge | XChainBridge | Yes | The bridge associated with the attestation. |
|
||||
|
||||
|
||||
### XChainBridge Fields
|
||||
|
||||
| Field | JSON Type | [Internal Type][] | Required? | Description |
|
||||
|:--------------------|:----------|:------------------|:----------|:----------------|
|
||||
| `IssuingChainDoor` | String | Account | Yes | The door account on the issuing chain. For an XRP-XRP bridge, this must be the genesis account (the account that is created when the network is first started, which contains all of the XRP). |
|
||||
| `IssuingChainDoor` | String | AccountID | Yes | The door account on the issuing chain. For an XRP-XRP bridge, this must be the genesis account (the account that is created when the network is first started, which contains all of the XRP). |
|
||||
| `IssuingChainIssue` | Issue | Issue | Yes | The asset that is minted and burned on the issuing chain. For an IOU-IOU bridge, the issuer of the asset must be the door account on the issuing chain, to avoid supply issues. |
|
||||
| `LockingChainDoor` | String | Account | Yes | The door account on the locking chain. |
|
||||
| `LockingChainDoor` | String | AccountID | Yes | The door account on the locking chain. |
|
||||
| `LockingChainIssue` | Issue | Issue | Yes | The asset that is locked and unlocked on the locking chain. |
|
||||
|
||||
{% raw-partial file="/docs/_snippets/common-links.md" /%}
|
||||
|
||||
@@ -77,14 +77,14 @@ Any account can submit signatures.
|
||||
| Field | JSON Type | [Internal Type][] | Required? | Description |
|
||||
|:---------------------------|:--------------------|:------------------|:----------|-------------|
|
||||
| `Amount` | [Currency Amount][] | Amount | Yes | The amount committed by the `XChainCommit` transaction on the source chain. |
|
||||
| `AttestationRewardAccount` | String | Account | Yes | The account that should receive this signer's share of the `SignatureReward`. |
|
||||
| `AttestationSignerAccount` | String | Account | Yes | The account on the door account's signer list that is signing the transaction. |
|
||||
| `Destination` | String | Account | No | The destination account for the funds on the destination chain (taken from the `XChainCommit` transaction). |
|
||||
| `OtherChainSource` | String | Account | Yes | The account on the source chain that submitted the `XChainCommit` transaction that triggered the event associated with the attestation. |
|
||||
| `AttestationRewardAccount` | String | AccountID | Yes | The account that should receive this signer's share of the `SignatureReward`. |
|
||||
| `AttestationSignerAccount` | String | AccountID | Yes | The account on the door account's signer list that is signing the transaction. |
|
||||
| `Destination` | String | AccountID | No | The destination account for the funds on the destination chain (taken from the `XChainCommit` transaction). |
|
||||
| `OtherChainSource` | String | AccountID | Yes | The account on the source chain that submitted the `XChainCommit` transaction that triggered the event associated with the attestation. |
|
||||
| `PublicKey` | String | Blob | Yes | The public key used to verify the attestation signature. |
|
||||
| `Signature` | String | Blob | Yes | The signature attesting to the event on the other chain. |
|
||||
| `WasLockingChainSend` | Number | UInt8 | Yes | A boolean representing the chain where the event occurred. |
|
||||
| `XChainBridge` | XChainBridge | XChain_Bridge | Yes | The bridge to use to transfer funds. |
|
||||
| `XChainBridge` | XChainBridge | XChainBridge | Yes | The bridge to use to transfer funds. |
|
||||
| `XChainClaimID` | String | UInt64 | Yes | The `XChainClaimID` associated with the transfer, which was included in the `XChainCommit` transaction. |
|
||||
|
||||
|
||||
@@ -92,9 +92,9 @@ Any account can submit signatures.
|
||||
|
||||
| Field | JSON Type | [Internal Type][] | Required? | Description |
|
||||
|:--------------------|:----------|:------------------|:----------|:----------------|
|
||||
| `IssuingChainDoor` | String | Account | Yes | The door account on the issuing chain. For an XRP-XRP bridge, this must be the genesis account (the account that is created when the network is first started, which contains all of the XRP). |
|
||||
| `IssuingChainDoor` | String | AccountID | Yes | The door account on the issuing chain. For an XRP-XRP bridge, this must be the genesis account (the account that is created when the network is first started, which contains all of the XRP). |
|
||||
| `IssuingChainIssue` | Issue | Issue | Yes | The asset that is minted and burned on the issuing chain. For an IOU-IOU bridge, the issuer of the asset must be the door account on the issuing chain, to avoid supply issues. |
|
||||
| `LockingChainDoor` | String | Account | Yes | The door account on the locking chain. |
|
||||
| `LockingChainDoor` | String | AccountID | Yes | The door account on the locking chain. |
|
||||
| `LockingChainIssue` | Issue | Issue | Yes | The asset that is locked and unlocked on the locking chain. |
|
||||
|
||||
{% raw-partial file="/docs/_snippets/common-links.md" /%}
|
||||
|
||||
@@ -45,9 +45,9 @@ If the transaction succeeds in moving funds, the referenced `XChainOwnedClaimID`
|
||||
| Field | JSON Type | [Internal Type][] | Required? | Description |
|
||||
|:------------------------|:--------------------|:------------------|:----------|-------------|
|
||||
| `Amount` | [Currency Amount][] | Amount | Yes | The amount to claim on the destination chain. This must match the amount attested to on the attestations associated with this `XChainClaimID`. |
|
||||
| `Destination` | String | Account | Yes | The destination account on the destination chain. It must exist or the transaction will fail. However, if the transaction fails in this case, the sequence number and collected signatures won't be destroyed, and the transaction can be rerun with a different destination. |
|
||||
| `Destination` | String | AccountID | Yes | The destination account on the destination chain. It must exist or the transaction will fail. However, if the transaction fails in this case, the sequence number and collected signatures won't be destroyed, and the transaction can be rerun with a different destination. |
|
||||
| `DestinationTag` | Number | UInt32 | No | An integer destination tag. |
|
||||
| `XChainBridge` | XChainBridge | XChain_Bridge | Yes | The bridge to use for the transfer. |
|
||||
| `XChainBridge` | XChainBridge | XChainBridge | Yes | The bridge to use for the transfer. |
|
||||
| `XChainClaimID` | String | UInt64 | Yes | The unique integer ID for the cross-chain transfer that was referenced in the corresponding `XChainCommit` transaction. |
|
||||
|
||||
|
||||
@@ -55,9 +55,9 @@ If the transaction succeeds in moving funds, the referenced `XChainOwnedClaimID`
|
||||
|
||||
| Field | JSON Type | [Internal Type][] | Required? | Description |
|
||||
|:--------------------|:----------|:------------------|:----------|:----------------|
|
||||
| `IssuingChainDoor` | String | Account | Yes | The door account on the issuing chain. For an XRP-XRP bridge, this must be the genesis account (the account that is created when the network is first started, which contains all of the XRP). |
|
||||
| `IssuingChainDoor` | String | AccountID | Yes | The door account on the issuing chain. For an XRP-XRP bridge, this must be the genesis account (the account that is created when the network is first started, which contains all of the XRP). |
|
||||
| `IssuingChainIssue` | Issue | Issue | Yes | The asset that is minted and burned on the issuing chain. For an IOU-IOU bridge, the issuer of the asset must be the door account on the issuing chain, to avoid supply issues. |
|
||||
| `LockingChainDoor` | String | Account | Yes | The door account on the locking chain. |
|
||||
| `LockingChainDoor` | String | AccountID | Yes | The door account on the locking chain. |
|
||||
| `LockingChainIssue` | Issue | Issue | Yes | The asset that is locked and unlocked on the locking chain. |
|
||||
|
||||
{% raw-partial file="/docs/_snippets/common-links.md" /%}
|
||||
|
||||
@@ -42,8 +42,8 @@ The `XChainCommit` is the second step in a cross-chain transfer. It puts assets
|
||||
| Field | JSON Type | [Internal Type][] | Required? | Description |
|
||||
|:------------------------|:--------------------|:------------------|:----------|-------------|
|
||||
| `Amount` | [Currency Amount][] | Amount | Yes | The asset to commit, and the quantity. This must match the door account's `LockingChainIssue` (if on the locking chain) or the door account's `IssuingChainIssue` (if on the issuing chain). |
|
||||
| `OtherChainDestination` | String | Account | No | The destination account on the destination chain. If this is not specified, the account that submitted the `XChainCreateClaimID` transaction on the destination chain will need to submit a `XChainClaim` transaction to claim the funds. |
|
||||
| `XChainBridge` | XChainBridge | XChain_Bridge | Yes | The bridge to use to transfer funds. |
|
||||
| `OtherChainDestination` | String | AccountID | No | The destination account on the destination chain. If this is not specified, the account that submitted the `XChainCreateClaimID` transaction on the destination chain will need to submit a `XChainClaim` transaction to claim the funds. |
|
||||
| `XChainBridge` | XChainBridge | XChainBridge | Yes | The bridge to use to transfer funds. |
|
||||
| `XChainClaimID` | String | UInt64 | Yes | The unique integer ID for a cross-chain transfer. This must be acquired on the destination chain (via a `XChainCreateClaimID` transaction) and checked from a validated ledger before submitting this transaction. If an incorrect sequence number is specified, the funds will be lost. |
|
||||
|
||||
|
||||
@@ -51,9 +51,9 @@ The `XChainCommit` is the second step in a cross-chain transfer. It puts assets
|
||||
|
||||
| Field | JSON Type | [Internal Type][] | Required? | Description |
|
||||
|:--------------------|:----------|:------------------|:----------|:----------------|
|
||||
| `IssuingChainDoor` | String | Account | Yes | The door account on the issuing chain. For an XRP-XRP bridge, this must be the genesis account (the account that is created when the network is first started, which contains all of the XRP). |
|
||||
| `IssuingChainDoor` | String | AccountID | Yes | The door account on the issuing chain. For an XRP-XRP bridge, this must be the genesis account (the account that is created when the network is first started, which contains all of the XRP). |
|
||||
| `IssuingChainIssue` | Issue | Issue | Yes | The asset that is minted and burned on the issuing chain. For an IOU-IOU bridge, the issuer of the asset must be the door account on the issuing chain, to avoid supply issues. |
|
||||
| `LockingChainDoor` | String | Account | Yes | The door account on the locking chain. |
|
||||
| `LockingChainDoor` | String | AccountID | Yes | The door account on the locking chain. |
|
||||
| `LockingChainIssue` | Issue | Issue | Yes | The asset that is locked and unlocked on the locking chain. |
|
||||
|
||||
{% raw-partial file="/docs/_snippets/common-links.md" /%}
|
||||
|
||||
@@ -49,16 +49,16 @@ The complete production-grade setup would also include a `SignerListSet` transac
|
||||
|:-------------------------|:--------------------|:------------------|:----------|:------------|
|
||||
| `MinAccountCreateAmount` | [Currency Amount][] | Amount | No | The minimum amount, in XRP, required for a `XChainAccountCreateCommit` transaction. If this isn't present, the `XChainAccountCreateCommit` transaction will fail. This field can only be present on XRP-XRP bridges. |
|
||||
| `SignatureReward` | [Currency Amount][] | Amount | Yes | The total amount to pay the witness servers for their signatures. This amount will be split among the signers. |
|
||||
| `XChainBridge` | XChainBridge | XChain_Bridge | Yes | The bridge (door accounts and assets) to create. |
|
||||
| `XChainBridge` | XChainBridge | XChainBridge | Yes | The bridge (door accounts and assets) to create. |
|
||||
|
||||
|
||||
### XChainBridge Fields
|
||||
|
||||
| Field | JSON Type | [Internal Type][] | Required? | Description |
|
||||
|:--------------------|:----------|:------------------|:----------|:----------------|
|
||||
| `IssuingChainDoor` | String | Account | Yes | The door account on the issuing chain. For an XRP-XRP bridge, this must be the genesis account (the account that is created when the network is first started, which contains all of the XRP). |
|
||||
| `IssuingChainDoor` | String | AccountID | Yes | The door account on the issuing chain. For an XRP-XRP bridge, this must be the genesis account (the account that is created when the network is first started, which contains all of the XRP). |
|
||||
| `IssuingChainIssue` | Issue | Issue | Yes | The asset that is minted and burned on the issuing chain. For an IOU-IOU bridge, the issuer of the asset must be the door account on the issuing chain, to avoid supply issues. |
|
||||
| `LockingChainDoor` | String | Account | Yes | The door account on the locking chain. |
|
||||
| `LockingChainDoor` | String | AccountID | Yes | The door account on the locking chain. |
|
||||
| `LockingChainIssue` | Issue | Issue | Yes | The asset that is locked and unlocked on the locking chain. |
|
||||
|
||||
{% raw-partial file="/docs/_snippets/common-links.md" /%}
|
||||
|
||||
@@ -43,11 +43,11 @@ It also includes the account on the source chain that locks or burns the funds o
|
||||
|
||||
## XChainCreateClaimID Fields
|
||||
|
||||
| Field | JSON Type | [Internal Type][] | Required? | Description |
|
||||
|:-------------------|:------------------|:------------------|:----------|-------------|
|
||||
| `OtherChainSource` | String | Account | Yes | The account that must send the `XChainCommit` transaction on the source chain. |
|
||||
| `SignatureReward` | [Currency Amount][] | Amount | Yes | The amount, in XRP, to reward the witness servers for providing signatures. This must match the amount on the `Bridge` ledger object. |
|
||||
| `XChainBridge` | XChainBridge | XChain_Bridge | Yes | The bridge to create the claim ID for. |
|
||||
| Field | JSON Type | [Internal Type][] | Required? | Description |
|
||||
|:-------------------|:---------------------|:------------------|:----------|-------------|
|
||||
| `OtherChainSource` | String - [Address][] | AccountID | Yes | The account that must send the `XChainCommit` transaction on the source chain. |
|
||||
| `SignatureReward` | [Currency Amount][] | Amount | Yes | The amount, in XRP, to reward the witness servers for providing signatures. This must match the amount on the `Bridge` ledger object. |
|
||||
| `XChainBridge` | XChainBridge | XChainBridge | Yes | The bridge to create the claim ID for. |
|
||||
|
||||
|
||||
### XChainBridge Fields
|
||||
|
||||
@@ -48,16 +48,16 @@ This transaction must be sent by the door account and requires the entities that
|
||||
| `Flags` | Number | UInt32 | Yes | Specifies the flags for this transaction. |
|
||||
| `MinAccountCreateAmount` | [Currency Amount][] | Amount | No | The minimum amount, in XRP, required for a `XChainAccountCreateCommit` transaction. If this is not present, the `XChainAccountCreateCommit` transaction will fail. This field can only be present on XRP-XRP bridges. |
|
||||
| `SignatureReward` | [Currency Amount][] | Amount | No | The signature reward split between the witnesses for submitting attestations. |
|
||||
| `XChainBridge` | XChainBridge | XChain_Bridge | Yes | The bridge to modify. |
|
||||
| `XChainBridge` | XChainBridge | XChainBridge | Yes | The bridge to modify. |
|
||||
|
||||
|
||||
### XChainBridge Fields
|
||||
|
||||
| Field | JSON Type | [Internal Type][] | Required? | Description |
|
||||
|:--------------------|:----------|:------------------|:----------|:----------------|
|
||||
| `IssuingChainDoor` | String | Account | Yes | The door account on the issuing chain. For an XRP-XRP bridge, this must be the genesis account (the account that is created when the network is first started, which contains all of the XRP). |
|
||||
| `IssuingChainDoor` | String | AccountID | Yes | The door account on the issuing chain. For an XRP-XRP bridge, this must be the genesis account (the account that is created when the network is first started, which contains all of the XRP). |
|
||||
| `IssuingChainIssue` | Issue | Issue | Yes | The asset that is minted and burned on the issuing chain. For an IOU-IOU bridge, the issuer of the asset must be the door account on the issuing chain, to avoid supply issues. |
|
||||
| `LockingChainDoor` | String | Account | Yes | The door account on the locking chain. |
|
||||
| `LockingChainDoor` | String | AccountID | Yes | The door account on the locking chain. |
|
||||
| `LockingChainIssue` | Issue | Issue | Yes | The asset that is locked and unlocked on the locking chain. |
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user