From fd98e6e6a6db51fbdf2d32dc4757f37164e83650 Mon Sep 17 00:00:00 2001 From: mDuo13 Date: Wed, 18 Nov 2020 17:55:00 -0800 Subject: [PATCH] Start TicketBatch docs --- content/_snippets/rippled-api-links.md | 1 + .../amendments/known-amendments.md | 21 +++++++++++----- .../payment-system-basics/accounts/tickets.md | 25 +++++++++++++++++++ .../transaction-common-fields.md | 3 ++- dactyl-config.yml | 5 ++++ 5 files changed, 48 insertions(+), 7 deletions(-) create mode 100644 content/concepts/payment-system-basics/accounts/tickets.md diff --git a/content/_snippets/rippled-api-links.md b/content/_snippets/rippled-api-links.md index ff7f57c202..508554e6db 100644 --- a/content/_snippets/rippled-api-links.md +++ b/content/_snippets/rippled-api-links.md @@ -180,6 +180,7 @@ "SHAMapV2", "SortedDirectories", "SusPay", + "TicketBatch", "Tickets", "TickSize", "TrustSetAuth" diff --git a/content/concepts/consensus-network/amendments/known-amendments.md b/content/concepts/consensus-network/amendments/known-amendments.md index 1d8d9dfab2..0486d3fb3a 100644 --- a/content/concepts/consensus-network/amendments/known-amendments.md +++ b/content/concepts/consensus-network/amendments/known-amendments.md @@ -10,7 +10,7 @@ The following is a comprehensive list of all known amendments and their status o | [NegativeUNL][] | TBD | [In Development: TBD]( "BADGE_LIGHTGREY") | | [CryptoConditionsSuite][] | TBD | [In Development: TBD]( "BADGE_LIGHTGREY") | | [OwnerPaysFee][] | TBD | [In Development: TBD]( "BADGE_LIGHTGREY") | -| [Tickets][] | TBD | [In Development: TBD]( "BADGE_LIGHTGREY") | +| [TicketBatch][] | TBD | [In Development: TBD]( "BADGE_LIGHTGREY") | | [fixAmendmentMajorityCalc][] | v1.6.0 | [Open for Voting: TBD](https://xrpl.org/blog/2020/rippled-1.6.0.html "BADGE_80d0e0") | | [HardenedValidations][] | v1.6.0 | [Open for Voting: TBD](https://xrpl.org/blog/2020/rippled-1.6.0.html "BADGE_80d0e0") | | [fix1781][] | v1.6.0 | [Open for Voting: TBD](https://xrpl.org/blog/2020/rippled-1.6.0.html "BADGE_80d0e0") | @@ -48,6 +48,7 @@ The following is a comprehensive list of all known amendments and their status o | [TrustSetAuth][] | v0.30.0 | [Enabled: 2016-07-19](https://xrpcharts.ripple.com/#/transactions/0E589DE43C38AED63B64FF3DA87D349A038F1821212D370E403EB304C76D70DF "BADGE_GREEN") | | [MultiSign][] | v0.31.0 | [Enabled: 2016-06-27](https://xrpcharts.ripple.com/#/transactions/168F8B15F643395E59B9977FC99D6310E8708111C85659A9BAF8B9222EEAC5A7 "BADGE_GREEN") | | [FeeEscalation][] | v0.31.0 | [Enabled: 2016-05-19](https://xrpcharts.ripple.com/#/transactions/5B1F1E8E791A9C243DD728680F108FEF1F28F21BA3B202B8F66E7833CA71D3C3 "BADGE_GREEN") | +| [Tickets][] | v0.30.1 | [Vetoed: Removed in v0.90.0]( "BADGE_RED") | | [SHAMapV2][] | v0.32.1 | [Vetoed: Removed in v1.4.0](https://xrpl.org/blog/2019/rippled-1.4.0.html "BADGE_RED") | | [FlowV2][] | v0.32.1 | [Vetoed: Removed in v0.33.0](https://xrpl.org/blog/2016/flowv2-vetoed.html "BADGE_RED") | | [SusPay][] | v0.31.0 | [Vetoed: Removed in v0.60.0](https://xrpl.org/blog/2017/ticksize-voting.html#upcoming-features "BADGE_RED") | @@ -608,17 +609,25 @@ Sorts the entries in [DirectoryNode ledger objects](directorynode.html) and fixe This amendment was replaced by the [Escrow](escrow-object.html) amendment. +## TicketBatch +[TicketBatch]: #ticketbatch + +| Amendment ID | Status | +|:-----------------------------------------------------------------|:----------| +| 955DF3FA5891195A9DAEFA1DDC6BB244B545DDE1BAA84CBB25D5F12A8DA68A0C | Open for Voting | + +This amendment adds Tickets as a way of sending transactions out of the typical sequence number order. + +Standards Draft: [XLS-13d](https://github.com/xrp-community/standards-drafts/issues/16). + ## Tickets [Tickets]: #tickets | Amendment ID | Status | |:-----------------------------------------------------------------|:----------| -| C1B8D934087225F509BEB5A8EC24447854713EE447D277F69545ABFA0E0FD490 | In Development | - -Introduces Tickets as a way to reserve a transaction sequence number for later execution. Creates the `Ticket` ledger object type and the transaction types `TicketCreate` and `TicketCancel`. - -**Caution:** This amendment is still in development. +| C1B8D934087225F509BEB5A8EC24447854713EE447D277F69545ABFA0E0FD490 | Vetoed | +This amendment was replaced by the [TicketBatch][] amendment. ## TickSize [TickSize]: #ticksize diff --git a/content/concepts/payment-system-basics/accounts/tickets.md b/content/concepts/payment-system-basics/accounts/tickets.md new file mode 100644 index 0000000000..5770f9433c --- /dev/null +++ b/content/concepts/payment-system-basics/accounts/tickets.md @@ -0,0 +1,25 @@ +--- +html: reserves.html +funnel: Build +doc_type: Concepts +category: Payment System Basics +subcategory: Accounts +blurb: Send transactions in non-sequential order. +status: not_enabled +--- +# Tickets + +_(Requires the [TicketBatch amendment][] :not_enabled:)_ + +A Ticket in the XRP Ledger is a way of setting aside a [Sequence Number][] for a transaction without sending it right away. Tickets allow transactions to be sent outside of the normal sequence order. One use case for this is to allow for [multi-signed transactions](multi-signing.html) where it may take a while to collect the necessary signatures: while collecting signatures for one transaction that uses a ticket, you can still send and confirm other transactions, including other multi-signed transactions using other tickets. + +## Background + +The reason accounts have Sequence Numbers in the first place is to be sure that, for any given transaction, it can execute no more than once. + +***TODO*** + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/transaction-formats/transaction-common-fields.md b/content/references/rippled-api/transaction-formats/transaction-common-fields.md index 2bab8701a3..6ef0cabed5 100644 --- a/content/references/rippled-api/transaction-formats/transaction-common-fields.md +++ b/content/references/rippled-api/transaction-formats/transaction-common-fields.md @@ -7,7 +7,7 @@ Every transaction has the same set of common fields, plus additional fields base | `Account` | String | AccountID | _(Required)_ The unique address of the [account](accounts.html) that initiated the transaction. | | `TransactionType` | String | UInt16 | _(Required)_ The type of transaction. Valid types include: `Payment`, `OfferCreate`, `OfferCancel`, `TrustSet`, `AccountSet`, `AccountDelete`, `SetRegularKey`, `SignerListSet`, `EscrowCreate`, `EscrowFinish`, `EscrowCancel`, `PaymentChannelCreate`, `PaymentChannelFund`, `PaymentChannelClaim`, and `DepositPreauth`. | | `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](basic-data-types.html#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. | +| `Sequence` | Number | UInt32 | _(Required; [auto-fillable][])_ The [sequence number](basic-data-types.html#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](tickets.html) instead. _(Requires the [TicketBatch amendment][] :not_enabled:)_ | | [`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. | | [`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](reliable-transaction-submission.html) for more details. | @@ -15,6 +15,7 @@ Every transaction has the same set of common fields, plus additional fields base | [`Signers`](#signers-field) | Array | Array | _(Optional)_ Array of objects that represent a [multi-signature](multi-signing.html) 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](tickets.html) to use in place of a `Sequence` number. If this is provided, `Sequence` must be `0`. | | `TxnSignature` | String | 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 diff --git a/dactyl-config.yml b/dactyl-config.yml index c150fea2ce..cd89729ee7 100644 --- a/dactyl-config.yml +++ b/dactyl-config.yml @@ -608,6 +608,11 @@ pages: targets: - ja + - md: concepts/payment-system-basics/accounts/tickets.md + targets: + - en + - ja + - md: concepts/payment-system-basics/accounts/depositauth.md html: depositauth.html funnel: Build