Merge commit '80ef0d625069a509839cd7ca81662fc7bcbbfff9' into ja-token

This commit is contained in:
tequ
2023-10-23 11:28:28 +09:00
41 changed files with 785 additions and 336 deletions

View File

@@ -25,7 +25,7 @@ Deposit Authorizationフラグにより、XRP Ledgerを使用するユーザー
Deposit Authorizationを有効にすると、[Checks](known-amendments.html#checks)、[Escrow](escrow.html)、および[Payment Channel](known-amendments.html#paychan)から資金を受領できます。このような「二段階」トランザクションモデルでは、最初に送金元は資金の送金を承認するトランザクションを送信し、次に送金先は資金受領を承認するトランザクションを送信します。
Deposit Authorizationが有効になっている場合に[Paymentトランザクション][]から資金を受領するには、このような支払の送金元を[事前承認](#事前承認)する必要があります。_[DepositPreauth Amendment][]が必要です_
Deposit Authorizationが有効になっている場合に[Paymentトランザクション][]から資金を受領するには、このような支払の送金元を[事前承認](#事前承認)する必要があります。_[DepositPreauth Amendment][]により追加されました_
## 推奨される使い方
@@ -40,15 +40,15 @@ Deposit Authorizationを最大限に活用するため、以下の実施を推
Deposit Authorizationが有効化されているアカウントの特徴は次のとおりです。
- [Paymentトランザクション][]の送信先には**できません**。ただし**以下の例外**は除きます。
- 送金先により、支払の送金元が[事前承認](#事前承認)されている場合。_[DepositPreauth Amendment][]が必要です_
- 送金先により、支払の送金元が[事前承認](#事前承認)されている場合。_[DepositPreauth Amendment][]により追加されました。_
- アカウントのXRP残高がアカウントの最低[必要準備金](reserves.html)以下で、XRP PaymentのAmountがアカウントの最低準備金現時点では10XRP以下である場合は、このアカウントを送金先に指定できます。これにより、アカウントがトランザクションを送信することも、XRPを受領することもできずに操作不可能な状態になるのを防ぎます。この場合、アカウントの所有者の準備金は関係ありません。
- **以下に該当する場合にのみ**[PaymentChannelClaimトランザクション][]からXRPを受領できます。
- PaymentChannelClaimトランザクションの送金元がPayment Channelの送金先である場合。
- PaymentChannelClaimトランザクションの送金先がPaymentChannelClaimの送金元を[事前承認している](#事前承認)場合。_[DepositPreauth Amendment][]が必要です_
- PaymentChannelClaimトランザクションの送金先がPaymentChannelClaimの送金元を[事前承認している](#事前承認)場合。_[DepositPreauth Amendment][]により追加されました。_
- **以下に該当する場合にのみ**[EscrowFinishトランザクション][]からXRPを受領できます。
- EscrowFinishトランザクションの送金元がEscrowの送金先である場合。
- EscrowFinishトランザクションの送金先がEscrowFinishの送金元を[事前承認している](#事前承認)場合。_[DepositPreauth Amendment][]が必要です_
- [CheckCash][]トランザクションを送信してXRPまたはトークンを受領**できます**。 _[Checks Amendment][]が必要です:有効ではありません:_
- EscrowFinishトランザクションの送金先がEscrowFinishの送金元を[事前承認している](#事前承認)場合。_[DepositPreauth Amendment][]により追加されました。_
- [CheckCash][]トランザクションを送信してXRPまたはトークンを受領**できます**。 _[Checks Amendment][]により追加されました。_
- [OfferCreateトランザクション][]を送信してXRPまたはトークンを受領**できます**。
- 即時には完全に実行されないOfferCreateトランザクションがアカウントから送信される場合、このアカウントは、後でオファーが他のアカウントの[Payment][]トランザクションと[OfferCreate][]トランザクションによって消費される時点で、注文済みXRPとトークンのリマインダーを受信する**ことがあります**。
- アカウントが[NoRippleフラグ](rippling.html)を有効にせずにトラストラインを作成している場合、またはDefaultRippleフラグを有効にして通貨を発行した場合は、アカウントはRipplingの結果として、[Paymentトランザクション][]でそれらのトラストラインのトークンを受領**できます**。このようなトランザクションの送金先にすることはできません。
@@ -75,7 +75,7 @@ Deposit Authorizationが有効化されているアカウントの特徴は次
## 事前承認
_[DepositPreauth Amendment][]が必要です_
_[DepositPreauth Amendment][]により追加されました_
DepositAuthが有効なアカウントは、特定の送金元を _事前承認_ することにより、DepositAuthが有効になっていても、これらの送金元からの支払を受領することができます。これにより、特定の送金元からの資金の直接送金が可能となり、受取人はトランザクションごとに個別にアクションを実行する必要がなくなります。事前承認はDepositAuthの使用にあたり必須の要件ではありませんが、事前承認により特定の操作を実行しやすくなります。

View File

@@ -63,6 +63,11 @@ AmendmentブロックはXRP Ledgerデータの正確性を守るためのセキ
最新バージョンの`rippled`にアップグレードすることで、Amendmentブロックされたサーバーのブロックを解除することができます。
### AmendmentブロックされたClioサーバ
<a id="amendment-blocked-clio-servers"></a>
Clioサーバが台帳データのロード中に未知のフィールドに遭遇した場合、Amendmentブロックが発生することがあります。これは、Clioのビルド時に使用された`libxrpl`の依存ファイルにそれらのフィールドが存在しない場合に発生します。Amendmentブロックを解除するには、互換性のある`libxrpl`でビルドされた新しいClioリリースにアップグレードしてください。
## Amendmentの削除
Amendmentを有効にすると、修正前の動作のソースコードは`rippled`に残ります。検証のためにレジャーの結果を再構築するなど、古いコードを保持するユースケースはありますが、Amendmentとレガシーコードの追跡は時間の経過とともに複雑さを増していきます。

View File

@@ -8,7 +8,7 @@ labels:
---
# ティックサイズ
_[TickSize Amendment][]が必要です_
_[TickSize Amendment][]により追加されました_
オファーがオーダーブックに対して発行されると、そのオファーに関係する通貨の発行者によって設定された`TickSize`の値に基づいて、為替レートが切り捨てられます。トレーダーがXRPとトークンを交換するオファーを出した場合は、そのトークンの発行者からの`TickSize`が適用されます。トレーダーが2種類のトークンを交換するオファーを出した場合は、小さい方の`TickSize`の値(有効数字の桁数が少ない値)がこのオファーに適用されます。いずれの通貨にも`TickSize`が設定されていない場合、デフォルトが適用されます。

View File

@@ -31,7 +31,7 @@ labels:
1. [トレード](decentralized-exchange.html)によって、限度額以上のトークンを取得した場合
2. プラスの残高があるトラストラインの限度額を減らした場合
3. [チェックの現金化](checks.html)によって、トークンを限度額以上取得する場合 (_[CheckCashMakesTrustLine amendment][]が必要です。_)
3. [チェックの現金化](checks.html)によって、トークンを限度額以上取得する場合 (_[CheckCashMakesTrustLine amendment][]により追加されました。_)
## トラストラインの設定

View File

@@ -8,7 +8,7 @@ labels:
---
# Ticket
_([TicketBatch amendment][]が必要です。)_
_([TicketBatch amendment][]により追加されました。)_
XRP Ledgerのチケットは、取引をすぐに送信せずに、その取引のために[シーケンス番号][Sequence Number]を確保する方法です。チケットを使うことで、通常の順序以外で取引を送信することができます。この使用例としては、必要な署名を集めるのに時間がかかるような[マルチサイン取引](multi-signing.html)などが挙げられます。

View File

@@ -172,7 +172,7 @@ rippled ledger current
| `ledger.transactions` | 配列 | (要求されていない場合は省略)このレジャーバージョンで適用されたトランザクション。デフォルトでは、メンバーはトランザクションの識別用[ハッシュ][]文字列です。要求で`expand`がtrueとして指定されている場合は、メンバーはJSONフォーマットまたはバイナリフォーマットでのトランザクションの完全な表現です。フォーマットは、要求で`binary`がtrueとして指定されていたかどうかに応じて決まります。 |
| `ledger_hash` | 文字列 | レジャー全体の一意の識別用ハッシュ。 |
| `ledger_index` | 数値 | このレジャーの[レジャーインデックス][]。 |
| `queue_data` | 配列 | `queue`パラメーターで要求されている場合を除いて省略)キューに入れられたトランザクションをキューと同じ順序で記述するオブジェクトの配列。要求で`expand`がtrueに指定されている場合は、メンバーにはJSONフォーマットまたはバイナリフォーマットでのトランザクションの完全な表現が含まれています。フォーマットは、要求で`binary`がtrueとして指定されていたかどうかによって決まります。[FeeEscalation Amendment][]が必要です。[新規: rippled 0.70.0][] |
| `queue_data` | 配列 | `queue`パラメーターで要求されている場合を除いて省略)キューに入れられたトランザクションをキューと同じ順序で記述するオブジェクトの配列。要求で`expand`がtrueに指定されている場合は、メンバーにはJSONフォーマットまたはバイナリフォーマットでのトランザクションの完全な表現が含まれています。フォーマットは、要求で`binary`がtrueとして指定されていたかどうかによって決まります。[FeeEscalation Amendment][]により追加されました。[新規: rippled 0.70.0][] |
以下のフィールドは廃止予定であり、今後予告なしに削除される可能性があります。`accepted``hash`(代わりに`ledger_hash`を使用)、`seqNum`(代わりに`ledger_index`を使用)、`totalCoins`(代わりに`total_coins`を使用)。

View File

@@ -56,7 +56,7 @@ labels:
| `RegularKey` | 文字列 | AccountID | いいえ | このアカウントのトランザクションに署名するときにマスターキーの代わりに使用できる[キーペア](cryptographic-keys.html)のアドレス。この値を変更するには[SetRegularKeyトランザクション][]を使用してください。 |
| `Sequence` | 数値 | UInt32 | はい | このアカウントの有効な次のトランザクションの[シーケンス番号](basic-data-types.html#アカウントシーケンス) を表します。 |
| `TicketCount` | 数値 | UInt32 | いいえ | このアカウントが台帳に保有する[チケット](tickets.html)の数です。これは、アカウントが一度に250 チケットという上限以内に留まることを保証するために自動的に更新されます。このフィールドは、チケットの数がゼロの場合は省略されます。 _([TicketBatch amendment][]により追加されました)_ |
| `TickSize` | 数値 | UInt8 | いいえ | このアドレスが発行した通貨が関わるオファーの為替レートに使用する有効桁数。有効な値は`3`以上`15`以下です。_[TickSize Amendment][]が必要です_ |
| `TickSize` | 数値 | UInt8 | いいえ | このアドレスが発行した通貨が関わるオファーの為替レートに使用する有効桁数。有効な値は`3`以上`15`以下です。_[TickSize Amendment][]により追加されました_ |
| `TransferRate` | 数値 | UInt32 | いいえ | このアカウントが発行した通貨を他のユーザーが相互に送金する際に、これらのユーザーに請求する[送金手数料](transfer-fees.html)。 |
| `WalletLocator` | 文字列 | Hash256 | いいえ | ユーザーが設定できる任意の256bit値。 |
| `WalletSize` | 数値 | UInt32 | いいえ | 未使用。(コード上ではこのフィールドをサポートしていますが、設定する方法はありません)。 |

View File

@@ -8,7 +8,7 @@ labels:
# Escrow
[[ソース]](https://github.com/XRPLF/rippled/blob/c6b6d82a754fe449cc533e18659df483c10a5c98/src/ripple/protocol/impl/LedgerFormats.cpp#L90-L101 "Source")
_[Escrow Amendment][]が必要です_
_[Escrow Amendment][]により追加されました_
`Escrow`オブジェクトタイプは、実行または取り消しを待機している保留中のXRP支払を表します。[EscrowCreateトランザクション][]はレジャーに`Escrow`オブジェクトを作成します。[EscrowFinish][]トランザクションまたは[EscrowCancel][]トランザクションが正常に完了すると、オブジェクトが削除されます。``Escrow``オブジェクトに [_Crypto-condition_](https://tools.ietf.org/html/draft-thomas-crypto-conditions-02)が指定されている場合、支払が成功するのは、EscrowFinishトランザクションに指定された対応する _フルフィルメント_ がその条件を満たす場合だけです。サポートされている唯一のCrypto-conditionタイプは[PREIMAGE-SHA-256](https://tools.ietf.org/html/draft-thomas-crypto-conditions-02#section-8.1)です。)`Escrow`オブジェクトに`FinishAfter`時刻が指定されている場合、保留中の支払はその時刻の経過後にのみ実行されます。

View File

@@ -8,7 +8,7 @@ labels:
# PayChannel
[[ソース]](https://github.com/XRPLF/rippled/blob/c0a0b79d2d483b318ce1d82e526bd53df83a4a2c/src/ripple/protocol/impl/LedgerFormats.cpp#L180-L198 "Source")
_[PayChan Amendment][]が必要です_
_[PayChan Amendment][]により追加されました_
`PayChannel`オブジェクトタイプは、Payment Channelを表します。Payment Channelにより、レジャー外で少額のXRPを迅速に支払うことができます。このような支払は、コンセンサスレジャーにより後日調整できます。Payment Channelは、このChannelが閉鎖されるまでは、特定の宛先アドレスに対してのみ支払可能なXRPの残高を保有します。Channelの閉鎖時に、未使用のXRPはChannelの所有者Channelを作成し、資金を供給した支払元アドレスに返金されます。

View File

@@ -8,7 +8,7 @@ labels:
# SignerList
[[ソース]](https://github.com/XRPLF/rippled/blob/6d2e3da30696bd10e3bb11a5ff6d45d2c4dae90f/src/ripple/protocol/impl/LedgerFormats.cpp#L127 "Source")
_[MultiSign Amendment][]が必要です_
_[MultiSign Amendment][]により追加されました_
`SignerList`オブジェクトタイプは、個別アカウントの代わりにグループとしてトランザクション署名をすることが承認されている署名者のリストです。[SignerListSetトランザクション][]を使用して、SignerListを作成、置き換え、または削除できます。

View File

@@ -29,8 +29,8 @@ labels:
| `tecINSUFF_FEE` | 136 | 指定された[トランザクションコスト](transaction-cost.html)を支払うのに十分なXRPが送金元アカウントにないため、トランザクションが失敗しました。この場合、送金元のXRPが指定されたトランザクションコストよりも低い場合でも、トランザクション処理によってすべて消却されます。この結果は、このトランザクションがコンセンサスセットに含まれるのに十分なネットワークに配布された*後に*アカウントの残高が減少した場合にのみ発生します。そうでない場合、トランザクションは配布される前に[`terINSUF_FEE_B`](ter-codes.html)で失敗します。 |
| `tecINSUFFICIENT_RESERVE` | 141 | トランザクションによって[必要準備金](reserves.html)が増加し、送信側アカウントの残高を超える可能性があります。[SignerListSet][]、[PaymentChannelCreate][]、[PaymentChannelFund][]、および[EscrowCreate][]からこのエラーコードが返されることがあります。詳細は、[SignerListと準備金](signerlist.html#signerlistと準備金)を参照してください。 |
| `tecINTERNAL` | 144 | 不明な内部エラーが発生し、トランザクションコストは適用されました。通常はこのエラーは返されません。このエラーを再現できる場合は、[問題を報告](https://github.com/XRPLF/rippled/issues)してください。 |
| `tecINVARIANT_FAILED` | 147 | このトランザクションを実行しようとしたところ、不変性チェックが失敗しました。[EnforceInvariants Amendment][]が必要です。このエラーを再現できる場合は、[問題を報告](https://github.com/XRPLF/rippled/issues)してください。 |
| `tecKILLED` | 150 | [OfferCreateトランザクション][]がtfFillOrKillフラグを指定しましたが、トランザクションを確定できなかったため、このトランザクションは取り消されました。_[fix1578 Amendment][]が必要です_ |
| `tecINVARIANT_FAILED` | 147 | このトランザクションを実行しようとしたところ、不変性チェックが失敗しました。[EnforceInvariants Amendment][]により追加されました。このエラーを再現できる場合は、[問題を報告](https://github.com/XRPLF/rippled/issues)してください。 |
| `tecKILLED` | 150 | [OfferCreateトランザクション][]がtfFillOrKillフラグを指定しましたが、トランザクションを確定できなかったため、このトランザクションは取り消されました。_[fix1578 Amendment][]により追加されました_ |
| `tecNEED_MASTER_KEY` | 142 | このトランザクションはマスターキーを必要とする変更([マスターキーの無効化または残高凍結能力の放棄](accountset.html#accountsetのフラグ)など)を試みました。[新規: rippled 0.28.0][] |
| `tecNO_ALTERNATIVE_KEY` | 130 | トランザクションが唯一の[トランザクション承認](transactions.html#トランザクションの承認)メソッドを削除しようとしました。これは、レギュラーキーを削除する[SetRegularKeyトランザクション][]、SignerListを削除する[SignerListSetトランザクション][]、またはマスターキーを無効にする[AccountSetトランザクション][]である可能性があります。(`rippled` 0.30.0より前のバージョンでは、このトランザクションは`tecMASTER_DISABLED`と呼ばれていました。) |
| `tecNO_AUTH` | 134 | トランザクションはトラストラインの残高を、`lsfRequireAuth`フラグが有効になっているアカウントに追加する必要がありましたが、そのトラストラインが承認されていなかったため、失敗しました。トラストラインが存在しない場合は、代わりに`tecNO_LINE`が発生します。 |

View File

@@ -24,7 +24,7 @@ labels:
| `tefEXCEPTION` | トランザクションの処理中に、サーバーが予期しない状態になりました。この状態は、予期しない入力(トランザクションのバイナリーデータの形式が大幅に誤っている場合など)が原因となった可能性があります。このエラーを再現できる場合は、修正のため[問題を報告](https://github.com/XRPLF/rippled/issues)してください。 |
| `tefFAILURE` | トランザクション適用中の不明な障害。 |
| `tefINTERNAL` | トランザクションの適用を試みた際に、サーバーが予期しない状態になりました。このエラーを再現できる場合は、修正のため[問題を報告](https://github.com/XRPLF/rippled/issues)してください。 |
| `tefINVARIANT_FAILED` | [トランザクションコスト](transaction-cost.html)を請求しようとしたところ、不変性チェックが失敗しました。[EnforceInvariants Amendment][]が必要です。このエラーを再現できる場合は、[問題を報告](https://github.com/XRPLF/rippled/issues)してください。 |
| `tefINVARIANT_FAILED` | [トランザクションコスト](transaction-cost.html)を請求しようとしたところ、不変性チェックが失敗しました。[EnforceInvariants Amendment][]により追加されました。このエラーを再現できる場合は、[問題を報告](https://github.com/XRPLF/rippled/issues)してください。 |
| `tefMASTER_DISABLED` | トランザクションはアカウントのマスターキーで署名されていましたが、アカウントに`lsfDisableMaster`フィールドが設定されていました。 |
| `tefMAX_LEDGER` | トランザクションには[`LastLedgerSequence`](reliable-transaction-submission.html#lastledgersequence)パラメーターが指定されていましたが、現在のレジャーのシーケンス番号はすでに指定値を上回っています。 |
| `tefNO_AUTH_REQUIRED` | [TrustSetトランザクション][]がトラストラインを承認済みとしてマークしようとしましたが、対応するアカウントに対して`lsfRequireAuth`フラグが有効になっていないため、承認は不要です。 |

View File

@@ -8,7 +8,7 @@ labels:
# DepositPreauth
[[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/tx/impl/DepositPreauth.cpp "Source")
_[DepositPreauth Amendment][]が必要です。_
_[DepositPreauth Amendment][]により追加されました。_
DepositPreauthトランザクションは別のアカウントに対し、このトランザクションの送信者に支払いを送金することを事前承認します。これは、このトランザクションの送信者が[Deposit Authorization](depositauth.html)を使用している(または使用する予定がある)場合にのみ有用です。

View File

@@ -9,7 +9,7 @@ labels:
[[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/tx/impl/Escrow.cpp "Source")
_[Escrow Amendment][]が必要です。_
_[Escrow Amendment][]により追加されました。_
Escrowに留保されているXRPを送金元に返金します。

View File

@@ -9,7 +9,7 @@ labels:
[[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/tx/impl/Escrow.cpp "Source")
_[Escrow Amendment][]が必要です。_
_[Escrow Amendment][]により追加されました。_
Escrowプロセスが終了または取り消されるまでXRPを隔離します。

View File

@@ -9,7 +9,7 @@ labels:
[[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/tx/impl/Escrow.cpp "Source")
_[Escrow Amendment][]が必要です。_
_[Escrow Amendment][]により追加されました。_
保留中の支払いから受取人へXRPを送金します。

View File

@@ -86,7 +86,7 @@ _([NonFungibleTokensV1_1 amendment][]により追加されました)_
| エラーコード | 説明 |
|:-----------------------------------|:----------------------------------------|
| `temDISABLED` | [NonFungibleTokensV1の修正][]は有効ではありません。 |
| `temDISABLED` | [NonFungibleTokensV1 Amendment][]は有効ではありません。 |
| `temMALFORMED` | トランザクションのフォーマットが正しくありません。たとえば、`NFTokenSellOffer``NFTokenBuyOffer`のどちらも指定されていないか、`NFTokenBrokerFee`に負の値が指定されています。|
| `tecCANT_ACCEPT_OWN_NFTOKEN_OFFER` | 購入者と販売者が同じアカウントになっています。 |
| `tecEXPIRED` | トランザクションで指定されたオファーの有効期限が既に切れています。 |

View File

@@ -42,7 +42,7 @@ _([NonFungibleTokensV1_1 amendment][]により追加されました)_
| エラーコード | 説明 |
|:-------------------|:--------------------------------------------------------|
| `temDISABLED` | [NonFungibleTokensV1の修正][]は有効ではありません。 |
| `temDISABLED` | [NonFungibleTokensV1 Amendment][]は有効ではありません。 |
| `tecNO_ENTRY` | 指定された `TokenID` が見つかりませんでした。 |
| `tecNO_PERMISSION` | このアカウントにはトークンをBurnする権限がありません。 |

View File

@@ -52,7 +52,7 @@ IDが[NFTokenOffer](nftokenoffer.html)オブジェクトでないオブジェク
| エラーコード | 説明 |
|:-------------------|:--------------------------------------------------------|
| `temDISABLED` | [NonFungibleTokensV1の修正][]は有効ではありません。 |
| `temDISABLED` | [NonFungibleTokensV1 Amendment][]は有効ではありません。 |
| `temMALFORMED` | トランザクションが有効なフォーマットではありませんでした。たとえば、`NFTokenOffers`配列が空であるか、一度にキャンセルできるオファーの最大数を超える数を含んでいた場合です。 |
| `tecNO_PERMISSION` | `NFTokenOffers`フィールドのIDのうち少なくとも1つが、キャンセルできないオブジェクトを参照しています。例えば、このトランザクションの送信者がオファーの所有者や`Destination`ではない場合や、オブジェクトが`NFTokenOffer`タイプのオブジェクトではなかった場合などです。 |

View File

@@ -53,7 +53,7 @@ NFTokenCreateOfferタイプのトランザクションは、以下のように[`
| エラーコード | 説明 |
|:---------------------------------|:------------------------------------------|
| `temDISABLED` | [NonFungibleTokensV1の修正][]は有効ではありません。 |
| `temDISABLED` | [NonFungibleTokensV1 Amendment][]は有効ではありません。 |
| `temBAD_AMOUNT` | `Amount`フィールドが有効ではありません。例えば、購入オファーで金額がゼロであったり、金額はトークンであるが`NFToken`で[`lsfOnlyXRP`フラグ](nftoken.html#nftoken-フラグ)が有効になっている場合などです。 |
| `temBAD_EXPIRATION` | 指定された`Expiration`は無効です(例:`0`)。 |
| `tecDIR_FULL` | 送信者がレジャーにすでにあまりにも多くのオブジェクトを所有しているか、またはこのトークンの売買のオファーがあまりにも多く存在しています。 |

View File

@@ -58,7 +58,7 @@ NFTokenMint型のトランザクションでは、以下のように[`Flags`フ
|:--------------|:-------------|:--------------|:------------------------------|
| `tfBurnable` | `0x00000001` | 1 | 発行者(または発行者が許可した者)が`NFToken`を破棄できるようにします。(`NFToken`の所有者は常に破棄することができます)。 |
| `tfOnlyXRP` | `0x00000002` | 2 | 発行された`NFToken`はXRPでのみ売買が可能です。これは、トークンに送金手数料がかかり、発行者がXRP以外のトークンで手数料を受け取りたくない場合に望ましいでしょう。 |
| `tfTrustLine` | `0x00000004` | 4 | **非推奨** 発行者が、発行した`NFToken`を転送する際に受け取る手数料を保有するために、自動的に[トラストライン](trust-lines-and-issuing.html) を作成します。[fixRemoveNFTokenAutoTrustLineの修正][]により、このフラグの設定は無効となります。 |
| `tfTrustLine` | `0x00000004` | 4 | **非推奨** 発行者が、発行した`NFToken`を転送する際に受け取る手数料を保有するために、自動的に[トラストライン](trust-lines-and-issuing.html) を作成します。[fixRemoveNFTokenAutoTrustLine Amendment][]により、このフラグの設定は無効となります。 |
| `tfTransferable` | `0x00000008` | 8 | 発行された`NFToken`は他の人に譲渡することができます。このフラグが _有効でない_ 場合、トークンは _発行者から_ 、または _発行者へ_ のみ転送することができます。 |
@@ -106,7 +106,7 @@ NFTokenMint型のトランザクションでは、以下のように[`Flags`フ
| エラーコード | 説明 |
|:------------------------------|:---------------------------------------------|
| `temDISABLED` | [NonFungibleTokensV1の修正][]は有効ではありません。 |
| `temDISABLED` | [NonFungibleTokensV1 Amendment][]は有効ではありません。 |
| `temBAD_NFTOKEN_TRANSFER_FEE` | `TransferFee`が許容範囲外です。 |
| `temINVALID_FLAG` | `Flags`値には、許可されていない、または有効なフラグでないビットが有効になっています。[fixRemoveNFTokenAutoTrustLine amendment][]が有効になっている場合、`tfTrustLine`フラグはこのエラーを発生させます。|
| `temMALFORMED` | トランザクションが正しく指定されていません。例えば、`URI`フィールドが256バイトより長い場合です。 |

View File

@@ -8,7 +8,7 @@ labels:
# PaymentChannelClaim
[[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/tx/impl/PayChan.cpp "Source")
_[PayChan Amendment][]が必要です。_
_[PayChan Amendment][]により追加されました。_
Payment Channelに対しXRPを請求するか、Payment Channelの有効期限を調整するか、またはこの両方の操作を行います。このトランザクションは、指定されたChannelでのトランザクション送信者の役割に応じてさまざまに利用できます。

View File

@@ -8,7 +8,7 @@ labels:
# PaymentChannelCreate
[[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/tx/impl/PayChan.cpp "ソース")
_[PayChan Amendment][]が必要です。_
_[PayChan Amendment][]により追加されました。_
[ペイメントチャンネル](payment-channels.html)を作成し、XRPで資金を供給します。このトランザクションを送信するアドレスが、ペイメントチャネルの「送信元アドレス」となります。

View File

@@ -8,7 +8,7 @@ labels:
# PaymentChannelFund
[[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/tx/impl/PayChan.cpp "Source")
_[PayChan Amendment][]が必要です。_
_[PayChan Amendment][]により追加されました。_
Payment ChannelにXRPを追加する、有効期限の更新も可能。このトランザクションは、Channelの支払元アドレスだけが使用できます。

View File

@@ -7,7 +7,7 @@ labels:
---
# Checkの取消し
_[Checks Amendment][]が必要です。_
_[Checks Amendment][]により追加されました。_
このチュートリアルでは、[Check](checks.html)を取り消す手順を説明します。この手順を実行すると、送金を行わずに[レジャーのCheckオブジェクト](check.html)が削除されます。

View File

@@ -7,7 +7,7 @@ labels:
---
# Checkの変動金額での換金
_[Checks Amendment][]が必要です。_
_[Checks Amendment][]により追加されました。_
Checkがレジャーに記録されており有効期限切れではない場合は、指定受取人は`DeliverMin`フィールドを指定した[CheckCashトランザクション][]を送信することで、Checkを変動金額で換金して受領できます。この方法でCheckを換金すると、受取人は送金を最大限受領でき、Checkの送金元からは、Checkの`SendMax`の全額が引き落とされるか、または可能な限りの額が引き落とされます。Checkの受取人に`DeliverMin`以上の額を送金できない場合は換金が失敗します。

View File

@@ -7,7 +7,7 @@ labels:
---
# Checkの正確な金額での換金
_[Checks Amendment][]が必要です。_
_[Checks Amendment][]により追加されました。_
Checkがレジャーに含まれており有効期限切れではない場合は、指定の受取人は`Amount`フィールドを指定した[CheckCashトランザクション][]を送信することで、Checkを換金し、Checkに指定されている額までの正確な額を受領できます。請求書の額面通りの金額を回収したい場合など、特定の金額の受領を希望する際には、この方法でCheckを換金できます。

View File

@@ -7,7 +7,7 @@ labels:
---
# 受取人に基づくCheckの検索
_[Checks Amendment][]が必要です。_
_[Checks Amendment][]により追加されました。_
このチュートリアルでは、[Check](checks.html)をその受取人で検索する方法を説明します。[Checkを送金元で検索する](look-up-checks-by-sender.html)こともできます。

View File

@@ -7,7 +7,7 @@ labels:
---
# 送金元に基づくCheckの検索
_[Checks Amendment][]が必要です。_
_[Checks Amendment][]により追加されました。_
このチュートリアルでは、[Check](checks.html)をその送金元で検索する方法を説明します。[Checkを受取人で検索する](look-up-checks-by-recipient.html)こともできます。

View File

@@ -7,7 +7,7 @@ labels:
---
# Checkの送信
_[Checks Amendment][]が必要です。_
_[Checks Amendment][]により追加されました。_
Checkの送信は、指定受取人にあなたからの支払いを引き出す許可を与えることに似ています。このプロセスの結果、受取人が後で現金化できる[レジャーのCheckオブジェクト](check.html)が作成されます。

View File

@@ -0,0 +1,120 @@
{
"result": {
"Account": "r3PDtZSa5LiYp1Ysn1vMuMzB59RzV3W9QH",
"Amount": {
"currency": "USD",
"issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59",
"value": "1"
},
"Destination": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59",
"Fee": "10",
"Flags": 0,
"Paths": [
[
{
"account": "r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV",
"currency": "USD",
"issuer": "r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV",
"type": 49
}
],
[
{
"account": "rD1jovjQeEpvaDwn9wKaYokkXXrqo4D23x",
"currency": "USD",
"issuer": "rD1jovjQeEpvaDwn9wKaYokkXXrqo4D23x",
"type": 49
},
{
"account": "rB5TihdPbKgMrkFqrqUC3yLdE8hhv4BdeY",
"currency": "USD",
"issuer": "rB5TihdPbKgMrkFqrqUC3yLdE8hhv4BdeY",
"type": 49
},
{
"account": "r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV",
"currency": "USD",
"issuer": "r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV",
"type": 49
}
]
],
"SendMax": {
"currency": "USD",
"issuer": "r3PDtZSa5LiYp1Ysn1vMuMzB59RzV3W9QH",
"value": "1.01"
},
"Sequence": 88,
"SigningPubKey": "02EAE5DAB54DD8E1C49641D848D5B97D1B29149106174322EDF98A1B2CCE5D7F8E",
"TransactionType": "Payment",
"TxnSignature": "30440220791B6A3E036ECEFFE99E8D4957564E8C84D1548C8C3E80A87ED1AA646ECCFB16022037C5CAC97E34E3021EBB426479F2ACF3ACA75DB91DCC48D1BCFB4CF547CFEAA0",
"ctid": "C005523E00000000",
"date": 416445410,
"hash": "E08D6E9754025BA2534A78707605E0601F03ACE063687A0CA1BDDACFCD1698C7",
"inLedger": 348734,
"ledger_index": 348734,
"meta": {
"AffectedNodes": [
{
"ModifiedNode": {
"FinalFields": {
"Account": "r3PDtZSa5LiYp1Ysn1vMuMzB59RzV3W9QH",
"Balance": "59328999119",
"Flags": 0,
"OwnerCount": 11,
"Sequence": 89
},
"LedgerEntryType": "AccountRoot",
"LedgerIndex": "E0D7BDE68B468FF0B8D948FD865576517DA987569833A05374ADB9A72E870A06",
"PreviousFields": {
"Balance": "59328999129",
"Sequence": 88
},
"PreviousTxnID": "C26AA6B4F7C3B9F55E17CD0D11F12032A1C7AD2757229FFD277C9447A8815E6E",
"PreviousTxnLgrSeq": 348700
}
},
{
"ModifiedNode": {
"FinalFields": {
"Balance": {
"currency": "USD",
"issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji",
"value": "-1"
},
"Flags": 131072,
"HighLimit": {
"currency": "USD",
"issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59",
"value": "100"
},
"HighNode": "0",
"LowLimit": {
"currency": "USD",
"issuer": "r3PDtZSa5LiYp1Ysn1vMuMzB59RzV3W9QH",
"value": "0"
},
"LowNode": "0"
},
"LedgerEntryType": "RippleState",
"LedgerIndex": "EA4BF03B4700123CDFFB6EB09DC1D6E28D5CEB7F680FB00FC24BC1C3BB2DB959",
"PreviousFields": {
"Balance": {
"currency": "USD",
"issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji",
"value": "0"
}
},
"PreviousTxnID": "53354D84BAE8FDFC3F4DA879D984D24B929E7FEB9100D2AD9EFCD2E126BCCDC8",
"PreviousTxnLgrSeq": 343570
}
}
],
"TransactionIndex": 0,
"TransactionResult": "tesSUCCESS",
"delivered_amount": "unavailable"
},
"status": "success",
"validated": true
}
}

View File

@@ -0,0 +1,118 @@
{
"result": {
"Account": "rhhh49pFH96roGyuC4E5P4CHaNjS1k8gzM",
"Fee": "12",
"Flags": 0,
"LastLedgerSequence": 56865248,
"OfferSequence": 5037708,
"Sequence": 5037710,
"SigningPubKey": "03B51A3EDF70E4098DA7FB053A01C5A6A0A163A30ED1445F14F87C7C3295FCB3BE",
"TakerGets": "15000000000",
"TakerPays": {
"currency": "CNY",
"issuer": "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y",
"value": "20160.75"
},
"TransactionType": "OfferCreate",
"TxnSignature": "3045022100A5023A0E64923616FCDB6D664F569644C7C9D1895772F986CD6B981B515B02A00220530C973E9A8395BC6FE2484948D2751F6B030FC7FB8575D1BFB406368AD554D9",
"ctid": "C363B1DD00000000",
"date": 648248020,
"hash": "C53ECF838647FA5A4C780377025FEC7999AB4182590510CA461444B207AB74A9",
"inLedger": 56865245,
"ledger_index": 56865245,
"meta": {
"AffectedNodes": [
{
"ModifiedNode": {
"FinalFields": {
"ExchangeRate": "4f04c66806cf7400",
"Flags": 0,
"RootIndex": "02BAAC1E67C1CE0E96F0FA2E8061020536CEDD043FEB0FF54F04C66806CF7400",
"TakerGetsCurrency": "0000000000000000000000000000000000000000",
"TakerGetsIssuer": "0000000000000000000000000000000000000000",
"TakerPaysCurrency": "000000000000000000000000434E590000000000",
"TakerPaysIssuer": "CED6E99370D5C00EF4EBF72567DA99F5661BFB3A"
},
"LedgerEntryType": "DirectoryNode",
"LedgerIndex": "02BAAC1E67C1CE0E96F0FA2E8061020536CEDD043FEB0FF54F04C66806CF7400"
}
},
{
"ModifiedNode": {
"FinalFields": {
"Account": "rhhh49pFH96roGyuC4E5P4CHaNjS1k8gzM",
"Balance": "10404767991",
"Flags": 0,
"OwnerCount": 3,
"Sequence": 5037711
},
"LedgerEntryType": "AccountRoot",
"LedgerIndex": "1DECD9844E95FFBA273F1B94BA0BF2564DDF69F2804497A6D7837B52050174A2",
"PreviousFields": {
"Balance": "10404768003",
"Sequence": 5037710
},
"PreviousTxnID": "4DC47B246B5EB9CCE92ABA8C482479E3BF1F946CABBEF74CA4DE36521D5F9008",
"PreviousTxnLgrSeq": 56865244
}
},
{
"DeletedNode": {
"FinalFields": {
"Account": "rhhh49pFH96roGyuC4E5P4CHaNjS1k8gzM",
"BookDirectory": "02BAAC1E67C1CE0E96F0FA2E8061020536CEDD043FEB0FF54F04C66806CF7400",
"BookNode": "0",
"Flags": 0,
"OwnerNode": "0",
"PreviousTxnID": "8F5FF57B404827F12BDA7561876A13C3E3B3095CBF75334DBFB5F227391A660C",
"PreviousTxnLgrSeq": 56865244,
"Sequence": 5037708,
"TakerGets": "15000000000",
"TakerPays": {
"currency": "CNY",
"issuer": "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y",
"value": "20160.75"
}
},
"LedgerEntryType": "Offer",
"LedgerIndex": "26AAE6CA8D29E28A47C92ADF22D5D96A0216F0551E16936856DDC8CB1AAEE93B"
}
},
{
"ModifiedNode": {
"FinalFields": {
"Flags": 0,
"IndexNext": "0",
"IndexPrevious": "0",
"Owner": "rhhh49pFH96roGyuC4E5P4CHaNjS1k8gzM",
"RootIndex": "47FAF5D102D8CE655574F440CDB97AC67C5A11068BB3759E87C2B9745EE94548"
},
"LedgerEntryType": "DirectoryNode",
"LedgerIndex": "47FAF5D102D8CE655574F440CDB97AC67C5A11068BB3759E87C2B9745EE94548"
}
},
{
"CreatedNode": {
"LedgerEntryType": "Offer",
"LedgerIndex": "8BAEE3C7DE04A568E96007420FA11ABD0BC9AE44D35932BB5640E9C3FB46BC9B",
"NewFields": {
"Account": "rhhh49pFH96roGyuC4E5P4CHaNjS1k8gzM",
"BookDirectory": "02BAAC1E67C1CE0E96F0FA2E8061020536CEDD043FEB0FF54F04C66806CF7400",
"Sequence": 5037710,
"TakerGets": "15000000000",
"TakerPays": {
"currency": "CNY",
"issuer": "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y",
"value": "20160.75"
}
}
}
}
],
"TransactionIndex": 0,
"TransactionResult": "tesSUCCESS"
},
"status": "success",
"validated": true
}
}

View File

@@ -0,0 +1,122 @@
{
"id": "CTID example",
"result": {
"Account": "r3PDtZSa5LiYp1Ysn1vMuMzB59RzV3W9QH",
"Amount": {
"currency": "USD",
"issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59",
"value": "1"
},
"Destination": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59",
"Fee": "10",
"Flags": 0,
"Paths": [
[
{
"account": "r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV",
"currency": "USD",
"issuer": "r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV",
"type": 49
}
],
[
{
"account": "rD1jovjQeEpvaDwn9wKaYokkXXrqo4D23x",
"currency": "USD",
"issuer": "rD1jovjQeEpvaDwn9wKaYokkXXrqo4D23x",
"type": 49
},
{
"account": "rB5TihdPbKgMrkFqrqUC3yLdE8hhv4BdeY",
"currency": "USD",
"issuer": "rB5TihdPbKgMrkFqrqUC3yLdE8hhv4BdeY",
"type": 49
},
{
"account": "r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV",
"currency": "USD",
"issuer": "r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV",
"type": 49
}
]
],
"SendMax": {
"currency": "USD",
"issuer": "r3PDtZSa5LiYp1Ysn1vMuMzB59RzV3W9QH",
"value": "1.01"
},
"Sequence": 88,
"SigningPubKey": "02EAE5DAB54DD8E1C49641D848D5B97D1B29149106174322EDF98A1B2CCE5D7F8E",
"TransactionType": "Payment",
"TxnSignature": "30440220791B6A3E036ECEFFE99E8D4957564E8C84D1548C8C3E80A87ED1AA646ECCFB16022037C5CAC97E34E3021EBB426479F2ACF3ACA75DB91DCC48D1BCFB4CF547CFEAA0",
"ctid": "C005523E00000000",
"date": 416445410,
"hash": "E08D6E9754025BA2534A78707605E0601F03ACE063687A0CA1BDDACFCD1698C7",
"inLedger": 348734,
"ledger_index": 348734,
"meta": {
"AffectedNodes": [
{
"ModifiedNode": {
"FinalFields": {
"Account": "r3PDtZSa5LiYp1Ysn1vMuMzB59RzV3W9QH",
"Balance": "59328999119",
"Flags": 0,
"OwnerCount": 11,
"Sequence": 89
},
"LedgerEntryType": "AccountRoot",
"LedgerIndex": "E0D7BDE68B468FF0B8D948FD865576517DA987569833A05374ADB9A72E870A06",
"PreviousFields": {
"Balance": "59328999129",
"Sequence": 88
},
"PreviousTxnID": "C26AA6B4F7C3B9F55E17CD0D11F12032A1C7AD2757229FFD277C9447A8815E6E",
"PreviousTxnLgrSeq": 348700
}
},
{
"ModifiedNode": {
"FinalFields": {
"Balance": {
"currency": "USD",
"issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji",
"value": "-1"
},
"Flags": 131072,
"HighLimit": {
"currency": "USD",
"issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59",
"value": "100"
},
"HighNode": "0",
"LowLimit": {
"currency": "USD",
"issuer": "r3PDtZSa5LiYp1Ysn1vMuMzB59RzV3W9QH",
"value": "0"
},
"LowNode": "0"
},
"LedgerEntryType": "RippleState",
"LedgerIndex": "EA4BF03B4700123CDFFB6EB09DC1D6E28D5CEB7F680FB00FC24BC1C3BB2DB959",
"PreviousFields": {
"Balance": {
"currency": "USD",
"issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji",
"value": "0"
}
},
"PreviousTxnID": "53354D84BAE8FDFC3F4DA879D984D24B929E7FEB9100D2AD9EFCD2E126BCCDC8",
"PreviousTxnLgrSeq": 343570
}
}
],
"TransactionIndex": 0,
"TransactionResult": "tesSUCCESS",
"delivered_amount": "unavailable"
},
"validated": true
},
"status": "success",
"type": "response"
}

View File

@@ -0,0 +1,120 @@
{
"id": 1,
"result": {
"Account": "rhhh49pFH96roGyuC4E5P4CHaNjS1k8gzM",
"Fee": "12",
"Flags": 0,
"LastLedgerSequence": 56865248,
"OfferSequence": 5037708,
"Sequence": 5037710,
"SigningPubKey": "03B51A3EDF70E4098DA7FB053A01C5A6A0A163A30ED1445F14F87C7C3295FCB3BE",
"TakerGets": "15000000000",
"TakerPays": {
"currency": "CNY",
"issuer": "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y",
"value": "20160.75"
},
"TransactionType": "OfferCreate",
"TxnSignature": "3045022100A5023A0E64923616FCDB6D664F569644C7C9D1895772F986CD6B981B515B02A00220530C973E9A8395BC6FE2484948D2751F6B030FC7FB8575D1BFB406368AD554D9",
"ctid": "C363B1DD00000000",
"date": 648248020,
"hash": "C53ECF838647FA5A4C780377025FEC7999AB4182590510CA461444B207AB74A9",
"inLedger": 56865245,
"ledger_index": 56865245,
"meta": {
"AffectedNodes": [
{
"ModifiedNode": {
"FinalFields": {
"ExchangeRate": "4f04c66806cf7400",
"Flags": 0,
"RootIndex": "02BAAC1E67C1CE0E96F0FA2E8061020536CEDD043FEB0FF54F04C66806CF7400",
"TakerGetsCurrency": "0000000000000000000000000000000000000000",
"TakerGetsIssuer": "0000000000000000000000000000000000000000",
"TakerPaysCurrency": "000000000000000000000000434E590000000000",
"TakerPaysIssuer": "CED6E99370D5C00EF4EBF72567DA99F5661BFB3A"
},
"LedgerEntryType": "DirectoryNode",
"LedgerIndex": "02BAAC1E67C1CE0E96F0FA2E8061020536CEDD043FEB0FF54F04C66806CF7400"
}
},
{
"ModifiedNode": {
"FinalFields": {
"Account": "rhhh49pFH96roGyuC4E5P4CHaNjS1k8gzM",
"Balance": "10404767991",
"Flags": 0,
"OwnerCount": 3,
"Sequence": 5037711
},
"LedgerEntryType": "AccountRoot",
"LedgerIndex": "1DECD9844E95FFBA273F1B94BA0BF2564DDF69F2804497A6D7837B52050174A2",
"PreviousFields": {
"Balance": "10404768003",
"Sequence": 5037710
},
"PreviousTxnID": "4DC47B246B5EB9CCE92ABA8C482479E3BF1F946CABBEF74CA4DE36521D5F9008",
"PreviousTxnLgrSeq": 56865244
}
},
{
"DeletedNode": {
"FinalFields": {
"Account": "rhhh49pFH96roGyuC4E5P4CHaNjS1k8gzM",
"BookDirectory": "02BAAC1E67C1CE0E96F0FA2E8061020536CEDD043FEB0FF54F04C66806CF7400",
"BookNode": "0",
"Flags": 0,
"OwnerNode": "0",
"PreviousTxnID": "8F5FF57B404827F12BDA7561876A13C3E3B3095CBF75334DBFB5F227391A660C",
"PreviousTxnLgrSeq": 56865244,
"Sequence": 5037708,
"TakerGets": "15000000000",
"TakerPays": {
"currency": "CNY",
"issuer": "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y",
"value": "20160.75"
}
},
"LedgerEntryType": "Offer",
"LedgerIndex": "26AAE6CA8D29E28A47C92ADF22D5D96A0216F0551E16936856DDC8CB1AAEE93B"
}
},
{
"ModifiedNode": {
"FinalFields": {
"Flags": 0,
"IndexNext": "0",
"IndexPrevious": "0",
"Owner": "rhhh49pFH96roGyuC4E5P4CHaNjS1k8gzM",
"RootIndex": "47FAF5D102D8CE655574F440CDB97AC67C5A11068BB3759E87C2B9745EE94548"
},
"LedgerEntryType": "DirectoryNode",
"LedgerIndex": "47FAF5D102D8CE655574F440CDB97AC67C5A11068BB3759E87C2B9745EE94548"
}
},
{
"CreatedNode": {
"LedgerEntryType": "Offer",
"LedgerIndex": "8BAEE3C7DE04A568E96007420FA11ABD0BC9AE44D35932BB5640E9C3FB46BC9B",
"NewFields": {
"Account": "rhhh49pFH96roGyuC4E5P4CHaNjS1k8gzM",
"BookDirectory": "02BAAC1E67C1CE0E96F0FA2E8061020536CEDD043FEB0FF54F04C66806CF7400",
"Sequence": 5037710,
"TakerGets": "15000000000",
"TakerPays": {
"currency": "CNY",
"issuer": "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y",
"value": "20160.75"
}
}
}
}
],
"TransactionIndex": 0,
"TransactionResult": "tesSUCCESS"
},
"validated": true
},
"status": "success",
"type": "response"
}

View File

@@ -0,0 +1,127 @@
import tkinter as tk
import xrpl
import json
from mod1 import get_account, get_account_info
from mod7 import batch_mint, get_batch
#############################################
## Handlers #################################
#############################################
# Module 7 Handlers
def standby_batch_mint():
results = batch_mint(
ent_standby_seed.get(),
ent_standby_uri.get(),
ent_standby_flags.get(),
ent_standby_transfer_fee.get(),
ent_standby_taxon.get(),
ent_standby_nft_count.get()
)
text_standby_results.delete("1.0", tk.END)
text_standby_results.insert("1.0", json.dumps(results, indent=4))
def standby_get_batch_nfts():
results = get_batch(
ent_standby_seed.get(),
ent_standby_account.get()
)
text_standby_results.delete("1.0", tk.END)
text_standby_results.insert("1.0", json.dumps(results, indent=4))
# Module 1 Handlers
def get_standby_account():
new_wallet = get_account(ent_standby_seed.get())
ent_standby_account.delete(0, tk.END)
ent_standby_seed.delete(0, tk.END)
ent_standby_account.insert(0, new_wallet.classic_address)
ent_standby_seed.insert(0, new_wallet.seed)
def get_standby_account_info():
accountInfo = get_account_info(ent_standby_account.get())
ent_standby_balance.delete(0, tk.END)
ent_standby_balance.insert(0,accountInfo['Balance'])
text_standby_results.delete("1.0", tk.END)
text_standby_results.insert("1.0",json.dumps(accountInfo, indent=4))
# Create a new window with the title "Quickstart - Batch Minting"
window = tk.Tk()
window.title("Quickstart - Batch Minting")
# Form frame
frm_form = tk.Frame(relief=tk.SUNKEN, borderwidth=3)
frm_form.pack()
# Create the Label and Entry widgets for "Standby Account"
lbl_standy_seed = tk.Label(master=frm_form, text="Standby Seed")
ent_standby_seed = tk.Entry(master=frm_form, width=50)
lbl_standby_account = tk.Label(master=frm_form, text="Standby Account")
ent_standby_account = tk.Entry(master=frm_form, width=50)
lbl_standby_balance = tk.Label(master=frm_form, text="XRP Balance")
ent_standby_balance = tk.Entry(master=frm_form, width=50)
lbl_standby_uri = tk.Label(master=frm_form, text="NFT URI")
ent_standby_uri = tk.Entry(master=frm_form, width=50)
lbl_standby_flags = tk.Label(master=frm_form, text="Flags")
ent_standby_flags = tk.Entry(master=frm_form, width=50)
lbl_standby_transfer_fee = tk.Label(master=frm_form, text="Transfer Fee")
ent_standby_transfer_fee = tk.Entry(master=frm_form, width="50")
lbl_standby_taxon = tk.Label(master=frm_form, text="Taxon")
ent_standby_taxon = tk.Entry(master=frm_form, width="50")
lbl_standby_nft_id = tk.Label(master=frm_form, text="NFT ID")
ent_standby_nft_id = tk.Entry(master=frm_form, width="50")
lbl_standby_nft_offer_index = tk.Label(master=frm_form, text="NFT Offer Index")
ent_standby_nft_offer_index = tk.Entry(master=frm_form, width="50")
lbl_standby_nft_count = tk.Label(master=frm_form, text="NFT Count")
ent_standby_nft_count = tk.Entry(master=frm_form, width="50")
lbl_standby_results = tk.Label(master=frm_form,text="Results")
text_standby_results = tk.Text(master=frm_form, height = 20, width = 65)
# Place field in a grid.
lbl_standy_seed.grid(row=0, column=0, sticky="w")
ent_standby_seed.grid(row=0, column=1)
lbl_standby_account.grid(row=2, column=0, sticky="e")
ent_standby_account.grid(row=2, column=1)
lbl_standby_balance.grid(row=5, column=0, sticky="e")
ent_standby_balance.grid(row=5, column=1)
lbl_standby_uri.grid(row=8, column=0, sticky="e")
ent_standby_uri.grid(row=8, column=1, sticky="w")
lbl_standby_flags.grid(row=9, column=0, sticky="e")
ent_standby_flags.grid(row=9, column=1, sticky="w")
lbl_standby_transfer_fee.grid(row=10, column=0, sticky="e")
ent_standby_transfer_fee.grid(row=10, column=1, sticky="w")
lbl_standby_taxon.grid(row=11, column=0, sticky="e")
ent_standby_taxon.grid(row=11, column=1, sticky="w")
lbl_standby_nft_count.grid(row=12, column=0, sticky="e")
ent_standby_nft_count.grid(row=12, column=1, sticky="w")
lbl_standby_results.grid(row=13, column=1, sticky="ne")
text_standby_results.grid(row=13, column=2, sticky="nw")
#############################################
## Buttons ##################################
#############################################
# Create the Standby Account Buttons
btn_get_standby_account = tk.Button(master=frm_form, text="Get Standby Account",
command = get_standby_account)
btn_get_standby_account.grid(row=0, column=2, sticky = "nsew")
btn_get_standby_account_info = tk.Button(master=frm_form,
text="Get Standby Account Info",
command = get_standby_account_info)
btn_get_standby_account_info.grid(row=1, column=2, sticky = "nsew")
btn_standby_batch_mint = tk.Button(master=frm_form,
text="Batch Mint",
command = standby_batch_mint)
btn_standby_batch_mint.grid(row=5, column=2, sticky = "nsew")
btn_standby_get_batch_nfts = tk.Button(master=frm_form,
text="Get Batch NFTs",
command = standby_get_batch_nfts)
btn_standby_get_batch_nfts.grid(row=8, column=2, sticky = "nsew")
# Start the application
window.mainloop()

View File

@@ -0,0 +1,32 @@
---
html: ctid.html
parent: api-conventions.html
blurb: A Compact Transaction Identifier (CTID) is a short string that uniquely identifies a validated transaction across any chain.
labels:
- Development
---
# Compact Transaction Identifier
A Compact Transaction Identifier (CTID) is a unique identifier for a validated transaction that applies across any [network](parallel-networks.html), not just the XRP Ledger Mainnet.
The differences between a CTID and a transaction's [identifying hash](transactions.html#identifying-hash) are as follows:
- A CTID identifies a validated transaction based on its network ID, ledger index, and position within the ledger. Since it specifies which network a transaction has been validated on, it can be used in contexts where you are interacting with more than one network, such as connecting to sidechains. A CTID is 64 bits, typically written as 16 characters of uppercase hexadecimal starting with `C`, for example `C005523E00000000`.
- An transaction's identifying hash identifies a signed transaction based on its contents, regardless of if that transaction has been validated on any chains. Since it's a cryptographic hash, it can also be used to prove that the transaction contents are intact. A transaction hash is 256 bits, typically written as 64 characters of hexadecimal, for example `E08D6E9754025BA2534A78707605E0601F03ACE063687A0CA1BDDACFCD1698C7`.
**Caution:** Do not try to use a CTID for a transaction that has not yet been validated. The canonical order of the transaction can change between when the transaction is initially applied and when it is validated by the consensus process, resulting in a CTID that identifies a different transaction or no transaction at all.
## Structure
A CTID contains the following parts, in order (big-endian):
1. 4 bits: The hex nibble `C` indicating that this is a CTID.
2. 28 bits: The ledger index of the ledger where the transaction was validated.
3. 16 bits: The transaction index, its place within the ledger's canonical order. This is provided as the field `TransactionIndex` in [transaction metadata](transaction-metadata.html).
4. 16 bits: The [network ID](transaction-common-fields.html#networkid-field) of the network that validated this transaction.
**Note:** The ledger index is normally stored as a 32-bit unsigned integer which increases by 1 each time a new ledger is created. If a network's ledger index is greater than 268,435,455, it won't fit in 28 bits, so the leading `C` should be incremented to `D`, `E`, or `F` as necessary. This is not expected to be necessary until at least the year 2043.
## See Also
For more information including sample code and background, see the [XLS-37d Standard](https://github.com/XRPLF/XRPL-Standards/tree/master/XLS-0037d-concise-transaction-identifier-ctid).

View File

@@ -10,7 +10,7 @@ labels:
[[Source]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/Tx.cpp "Source")
The `tx` method retrieves information on a single [transaction](transaction-formats.html), by its [identifying hash][].
The `tx` method retrieves information on a single [transaction](transaction-formats.html), by its [identifying hash][] or its [CTID](ctid.html).
## Request Format
@@ -18,7 +18,7 @@ An example of the request format:
<!-- MULTICODE_BLOCK_START -->
*WebSocket*
*WebSocket (Hash)*
```json
{
@@ -28,7 +28,21 @@ An example of the request format:
"binary": false
}
```
*JSON-RPC*
*WebSocket (CTID)*
```json
{
"id": "CTID example",
"command": "tx",
"ctid": "C005523E00000000",
"binary": false
}
```
*JSON-RPC (Hash)*
```json
{
@@ -41,6 +55,21 @@ An example of the request format:
]
}
```
*JSON-RPC (CTID)*
```json
{
"method": "tx",
"params": [
{
"ctid": "C005523E00000000",
"binary": false
}
]
}
```
*Commandline*
```sh
@@ -54,12 +83,15 @@ rippled tx C53ECF838647FA5A4C780377025FEC7999AB4182590510CA461444B207AB74A9 fals
The request includes the following parameters:
| `Field` | Type | Description |
|:--------------|:--------|:---------------------------------------------------|
| `transaction` | String | The 256-bit hash of the transaction, as hex. |
| `binary` | Boolean | _(Optional)_ If `true`, return transaction data and metadata as binary [serialized](serialization.html) to hexadecimal strings. If `false`, return transaction data and metadata as JSON. The default is `false`. |
| `min_ledger` | Number | _(Optional)_ Use this with `max_ledger` to specify a range of up to 1000 [ledger indexes][ledger index], starting with this ledger (inclusive). If the server [cannot find the transaction](#not-found-response), it confirms whether it was able to search all the ledgers in this range. [New in: rippled 1.5.0][] |
| `max_ledger` | Number | _(Optional)_ Use this with `min_ledger` to specify a range of up to 1000 [ledger indexes][ledger index], ending with this ledger (inclusive). If the server [cannot find the transaction](#not-found-response), it confirms whether it was able to search all the ledgers in the requested range. [New in: rippled 1.5.0][] |
| Field | Type | Required? | Description |
|:--------------|:--------|:----------|----------------------------------------|
| `ctid` | String | No | The [compact transaction identifier](ctid.html) of the transaction to look up. Must use uppercase hexadecimal only. [New in: rippled 1.12.0][] _(Not supported in Clio v2.0 and earlier)_ |
| `transaction` | String | No | The 256-bit hash of the transaction to look up, as hexadecimal. |
| `binary` | Boolean | No | If `true`, return transaction data and metadata as binary [serialized](serialization.html) to hexadecimal strings. If `false`, return transaction data and metadata as JSON. The default is `false`. |
| `min_ledger` | Number | No | Use this with `max_ledger` to specify a range of up to 1000 [ledger indexes][ledger index], starting with this ledger (inclusive). If the server [cannot find the transaction](#not-found-response), it confirms whether it was able to search all the ledgers in this range. |
| `max_ledger` | Number | No | Use this with `min_ledger` to specify a range of up to 1000 [ledger indexes][ledger index], ending with this ledger (inclusive). If the server [cannot find the transaction](#not-found-response), it confirms whether it was able to search all the ledgers in the requested range. |
You must provide _either_ `ctid` or `transaction`, but not both.
**Caution:** This command may successfully find the transaction even if it is included in a ledger _outside_ the range of `min_ledger` to `max_ledger`.
@@ -69,250 +101,28 @@ An example of a successful response:
<!-- MULTICODE_BLOCK_START -->
*WebSocket*
*WebSocket (Hash)*
```json
{
"id": 1,
"result": {
"Account": "rhhh49pFH96roGyuC4E5P4CHaNjS1k8gzM",
"Fee": "12",
"Flags": 0,
"LastLedgerSequence": 56865248,
"OfferSequence": 5037708,
"Sequence": 5037710,
"SigningPubKey": "03B51A3EDF70E4098DA7FB053A01C5A6A0A163A30ED1445F14F87C7C3295FCB3BE",
"TakerGets": "15000000000",
"TakerPays": {
"currency": "CNY",
"issuer": "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y",
"value": "20160.75"
},
"TransactionType": "OfferCreate",
"TxnSignature": "3045022100A5023A0E64923616FCDB6D664F569644C7C9D1895772F986CD6B981B515B02A00220530C973E9A8395BC6FE2484948D2751F6B030FC7FB8575D1BFB406368AD554D9",
"date": 648248020,
"hash": "C53ECF838647FA5A4C780377025FEC7999AB4182590510CA461444B207AB74A9",
"inLedger": 56865245,
"ledger_index": 56865245,
"meta": {
"AffectedNodes": [
{
"ModifiedNode": {
"FinalFields": {
"ExchangeRate": "4F04C66806CF7400",
"Flags": 0,
"RootIndex": "02BAAC1E67C1CE0E96F0FA2E8061020536CEDD043FEB0FF54F04C66806CF7400",
"TakerGetsCurrency": "0000000000000000000000000000000000000000",
"TakerGetsIssuer": "0000000000000000000000000000000000000000",
"TakerPaysCurrency": "000000000000000000000000434E590000000000",
"TakerPaysIssuer": "CED6E99370D5C00EF4EBF72567DA99F5661BFB3A"
},
"LedgerEntryType": "DirectoryNode",
"LedgerIndex": "02BAAC1E67C1CE0E96F0FA2E8061020536CEDD043FEB0FF54F04C66806CF7400"
}
},
{
"ModifiedNode": {
"FinalFields": {
"Account": "rhhh49pFH96roGyuC4E5P4CHaNjS1k8gzM",
"Balance": "10404767991",
"Flags": 0,
"OwnerCount": 3,
"Sequence": 5037711
},
"LedgerEntryType": "AccountRoot",
"LedgerIndex": "1DECD9844E95FFBA273F1B94BA0BF2564DDF69F2804497A6D7837B52050174A2",
"PreviousFields": {
"Balance": "10404768003",
"Sequence": 5037710
},
"PreviousTxnID": "4DC47B246B5EB9CCE92ABA8C482479E3BF1F946CABBEF74CA4DE36521D5F9008",
"PreviousTxnLgrSeq": 56865244
}
},
{
"DeletedNode": {
"FinalFields": {
"Account": "rhhh49pFH96roGyuC4E5P4CHaNjS1k8gzM",
"BookDirectory": "02BAAC1E67C1CE0E96F0FA2E8061020536CEDD043FEB0FF54F04C66806CF7400",
"BookNode": "0000000000000000",
"Flags": 0,
"OwnerNode": "0000000000000000",
"PreviousTxnID": "8F5FF57B404827F12BDA7561876A13C3E3B3095CBF75334DBFB5F227391A660C",
"PreviousTxnLgrSeq": 56865244,
"Sequence": 5037708,
"TakerGets": "15000000000",
"TakerPays": {
"currency": "CNY",
"issuer": "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y",
"value": "20160.75"
}
},
"LedgerEntryType": "Offer",
"LedgerIndex": "26AAE6CA8D29E28A47C92ADF22D5D96A0216F0551E16936856DDC8CB1AAEE93B"
}
},
{
"ModifiedNode": {
"FinalFields": {
"Flags": 0,
"IndexNext": "0000000000000000",
"IndexPrevious": "0000000000000000",
"Owner": "rhhh49pFH96roGyuC4E5P4CHaNjS1k8gzM",
"RootIndex": "47FAF5D102D8CE655574F440CDB97AC67C5A11068BB3759E87C2B9745EE94548"
},
"LedgerEntryType": "DirectoryNode",
"LedgerIndex": "47FAF5D102D8CE655574F440CDB97AC67C5A11068BB3759E87C2B9745EE94548"
}
},
{
"CreatedNode": {
"LedgerEntryType": "Offer",
"LedgerIndex": "8BAEE3C7DE04A568E96007420FA11ABD0BC9AE44D35932BB5640E9C3FB46BC9B",
"NewFields": {
"Account": "rhhh49pFH96roGyuC4E5P4CHaNjS1k8gzM",
"BookDirectory": "02BAAC1E67C1CE0E96F0FA2E8061020536CEDD043FEB0FF54F04C66806CF7400",
"Sequence": 5037710,
"TakerGets": "15000000000",
"TakerPays": {
"currency": "CNY",
"issuer": "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y",
"value": "20160.75"
}
}
}
}
],
"TransactionIndex": 0,
"TransactionResult": "tesSUCCESS"
},
"validated": true
},
"status": "success",
"type": "response"
}
{% include '_api-examples/tx/ws-response-hash.json' %}
```
*JSON-RPC*
*WebSocket (CTID)*
```json
{
"result": {
"Account": "rhhh49pFH96roGyuC4E5P4CHaNjS1k8gzM",
"Fee": "12",
"Flags": 0,
"LastLedgerSequence": 56865248,
"OfferSequence": 5037708,
"Sequence": 5037710,
"SigningPubKey": "03B51A3EDF70E4098DA7FB053A01C5A6A0A163A30ED1445F14F87C7C3295FCB3BE",
"TakerGets": "15000000000",
"TakerPays": {
"currency": "CNY",
"issuer": "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y",
"value": "20160.75"
},
"TransactionType": "OfferCreate",
"TxnSignature": "3045022100A5023A0E64923616FCDB6D664F569644C7C9D1895772F986CD6B981B515B02A00220530C973E9A8395BC6FE2484948D2751F6B030FC7FB8575D1BFB406368AD554D9",
"date": 648248020,
"hash": "C53ECF838647FA5A4C780377025FEC7999AB4182590510CA461444B207AB74A9",
"inLedger": 56865245,
"ledger_index": 56865245,
"meta": {
"AffectedNodes": [
{
"ModifiedNode": {
"FinalFields": {
"ExchangeRate": "4F04C66806CF7400",
"Flags": 0,
"RootIndex": "02BAAC1E67C1CE0E96F0FA2E8061020536CEDD043FEB0FF54F04C66806CF7400",
"TakerGetsCurrency": "0000000000000000000000000000000000000000",
"TakerGetsIssuer": "0000000000000000000000000000000000000000",
"TakerPaysCurrency": "000000000000000000000000434E590000000000",
"TakerPaysIssuer": "CED6E99370D5C00EF4EBF72567DA99F5661BFB3A"
},
"LedgerEntryType": "DirectoryNode",
"LedgerIndex": "02BAAC1E67C1CE0E96F0FA2E8061020536CEDD043FEB0FF54F04C66806CF7400"
}
},
{
"ModifiedNode": {
"FinalFields": {
"Account": "rhhh49pFH96roGyuC4E5P4CHaNjS1k8gzM",
"Balance": "10404767991",
"Flags": 0,
"OwnerCount": 3,
"Sequence": 5037711
},
"LedgerEntryType": "AccountRoot",
"LedgerIndex": "1DECD9844E95FFBA273F1B94BA0BF2564DDF69F2804497A6D7837B52050174A2",
"PreviousFields": {
"Balance": "10404768003",
"Sequence": 5037710
},
"PreviousTxnID": "4DC47B246B5EB9CCE92ABA8C482479E3BF1F946CABBEF74CA4DE36521D5F9008",
"PreviousTxnLgrSeq": 56865244
}
},
{
"DeletedNode": {
"FinalFields": {
"Account": "rhhh49pFH96roGyuC4E5P4CHaNjS1k8gzM",
"BookDirectory": "02BAAC1E67C1CE0E96F0FA2E8061020536CEDD043FEB0FF54F04C66806CF7400",
"BookNode": "0000000000000000",
"Flags": 0,
"OwnerNode": "0000000000000000",
"PreviousTxnID": "8F5FF57B404827F12BDA7561876A13C3E3B3095CBF75334DBFB5F227391A660C",
"PreviousTxnLgrSeq": 56865244,
"Sequence": 5037708,
"TakerGets": "15000000000",
"TakerPays": {
"currency": "CNY",
"issuer": "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y",
"value": "20160.75"
}
},
"LedgerEntryType": "Offer",
"LedgerIndex": "26AAE6CA8D29E28A47C92ADF22D5D96A0216F0551E16936856DDC8CB1AAEE93B"
}
},
{
"ModifiedNode": {
"FinalFields": {
"Flags": 0,
"IndexNext": "0000000000000000",
"IndexPrevious": "0000000000000000",
"Owner": "rhhh49pFH96roGyuC4E5P4CHaNjS1k8gzM",
"RootIndex": "47FAF5D102D8CE655574F440CDB97AC67C5A11068BB3759E87C2B9745EE94548"
},
"LedgerEntryType": "DirectoryNode",
"LedgerIndex": "47FAF5D102D8CE655574F440CDB97AC67C5A11068BB3759E87C2B9745EE94548"
}
},
{
"CreatedNode": {
"LedgerEntryType": "Offer",
"LedgerIndex": "8BAEE3C7DE04A568E96007420FA11ABD0BC9AE44D35932BB5640E9C3FB46BC9B",
"NewFields": {
"Account": "rhhh49pFH96roGyuC4E5P4CHaNjS1k8gzM",
"BookDirectory": "02BAAC1E67C1CE0E96F0FA2E8061020536CEDD043FEB0FF54F04C66806CF7400",
"Sequence": 5037710,
"TakerGets": "15000000000",
"TakerPays": {
"currency": "CNY",
"issuer": "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y",
"value": "20160.75"
}
}
}
}
],
"TransactionIndex": 0,
"TransactionResult": "tesSUCCESS"
},
"status": "success",
"validated": true
}
}
{% include '_api-examples/tx/ws-response-ctid.json' %}
```
*JSON-RPC (Hash)*
```json
{% include '_api-examples/tx/jsonrpc-response-hash.json' %}
```
*JSON-RPC (CTID)*
```json
{% include '_api-examples/tx/jsonrpc-response-ctid.json' %}
```
*Commandline*
@@ -443,15 +253,15 @@ The response follows the [standard format][], with a successful result containin
| `Field` | Type | Description |
|:---------------|:---------------------------------|:-------------------------|
| `date` | Number | A [number of seconds](basic-data-types.html#specifying-time) since January 1, 2000 (00:00 UTC) indicating the [close time](ledger-close-times.html) of the ledger in which the transaction was applied. This value does not have a precise relationship with physical time, and is dependent on the close time resolution. |
| `hash` | String | The SHA-512 hash of the transaction |
| `ctid` | String | The transaction's [compact transaction identifier](ctid.html). [New in: rippled 1.12.0][] _(Not supported in Clio v2.0 and earlier.)_ |
| `date` | Number | The [close time](ledger-close-times.html) of the ledger in which the transaction was applied, in [seconds since the Ripple Epoch][]. |
| `hash` | String | The unique [identifying hash][] of the transaction |
| `inLedger` | Number | _(Deprecated)_ Alias for `ledger_index`. |
| `ledger_index` | Number | The [ledger index][] of the ledger that includes this transaction. |
| `meta` | Object (JSON) or String (binary) | [Transaction metadata](transaction-metadata.html), which describes the results of the transaction. |
| `validated` | Boolean | If `true`, this data comes from a validated ledger version; if omitted or set to `false`, this data is not final. |
| (Various) | (Various) | Other fields from the [Transaction object](transaction-formats.html) |
**Note:** `rippled` 1.7.0 has a known issue where the `meta` field contains JSON even if the request asked for binary. ([#3791](https://github.com/XRPLF/rippled/pull/3791))
### Not Found Response
@@ -464,9 +274,9 @@ This means that a `txnNotFound` on its own is not enough to know the [final outc
To further narrow down the possibilities, you can provide a range of ledgers to search using the `min_ledger` and `max_ledger` fields in the request. If you provide **both** of those fields, the `txnNotFound` response includes the following field:
| `Field` | Type | Description |
| Field | Type | Description |
|:---------------|:----------|:-----------------------------------------|
| `searched_all` | Boolean | _(Omitted unless the request provided `min_ledger` and `max_ledger`)_ If `true`, the server was able to search all of the specified ledger versions, and the transaction was in none of them. If `false`, the server did not have all of the specified ledger versions available, so it is not sure if one of them might contain the transaction. [New in: rippled 1.5.0][] |
| `searched_all` | Boolean | _(Omitted unless the request provided `min_ledger` and `max_ledger`)_ If `true`, the server was able to search all of the specified ledger versions, and the transaction was in none of them. If `false`, the server did not have all of the specified ledger versions available, so it is not sure if one of them might contain the transaction. |
An example of a `txnNotFound` response that fully searched a requested range of ledgers:

View File

@@ -56,7 +56,7 @@ _(Added by the [NonFungibleTokensV1_1 amendment][].)_
## NFTokenOffer Transactions
Unlike [Offers for fungible tokens](offers.html), a `NFTokenOffer` is not stored in an order book and is never automatically matched or executed. A buyer must _explicitly_ choose to accept an `NFTokenOffer` that offers to buy a `NFToken`. Similarly, a seller must _explicitly_ choose to accept a specific `NFTokenOffer` that offers to buy a `NFToken` object that they own.
Unlike [Offers for fungible tokens](offers.html), a `NFTokenOffer` is not stored in an order book and is never automatically matched or executed. A buyer must _explicitly_ choose to accept an `NFTokenOffer` that offers to sell a `NFToken`. Similarly, a seller must _explicitly_ choose to accept a specific `NFTokenOffer` that offers to buy a `NFToken` object that they own.
The transactions for `NFToken` trading are:

View File

@@ -1,6 +1,6 @@
---
html: py-batch-minting.html
parent: quickstart-python.html
parent: nfts-using-python.html
blurb: Mint multiple NFTs with the press of a button.
labels:
- Accounts
@@ -28,20 +28,26 @@ You can download or clone the [Quickstart Samples](https://github.com/XRPLF/xrpl
1. If you want to use an existing account seed:
1. Paste the account seed in the **Standby Seed** field.
2. Click **Get Standby Account**.
2. If you do not want to use an existing account seed, click **Get Standby Account**.
2. If you do not want to use an existing account seed, just click **Get Standby Account**.
3. Click **Get Standby Account Info** to get the current XRP balance.
## Batch Mint NFTs
<div align="center">
<iframe width="560" height="315" src="https://www.youtube.com/embed/NjEqEWcqhwc?si=E8ws75gts_7TtOuU" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
</div>
This example lets you mint multiple NFTs for a single unique item. The NFT might represent "prints" of an original artwork, tickets to an event, or another limited set of unique items.
To batch mint non-fungible token objects:
1. Set the **Flags** field. For testing purposes, we recommend setting the value to _8_. This sets the _tsTransferable_ flag, meaning that the NFT object can be transferred to another account. Otherwise, the NFT object can only be transferred back to the issuing account. See [NFTokenMint](nftokenmint.html) for available NFT minting flags.
2. Enter the **NFT URI**. This is a URI that points to the data or metadata associated with the NFT object. You can use the sample URI provided if you do not have one of your own.
3. Enter an **NFT Count** of up to 200 NFTs to create in one batch.
4. Enter the **Transfer Fee**, a percentage of the proceeds that the original creator receives from future sales of the NFT. This is a value of 0-50000 inclusive, allowing transfer fees between 0.000% and 50.000% in increments of 0.001%. If you do not set the **Flags** field to allow the NFT to be transferrable, set this field to 0.
5. Click **Batch Mint NFTs**.
1. Enter the **NFT URI**. This is a URI that points to the data or metadata associated with the NFT object. You can use this sample URI if you do not have one of your own: ipfs://bafybeigdyrzt5sfp7udm7hu76uh7y26nf4dfuylqabf3oclgtqy55fbzdi.
2. Set the **Flags** field. For testing purposes, we recommend setting the value to _8_. This sets the _tsTransferable_ flag, meaning that the NFT object can be transferred to another account. Otherwise, the NFT object can only be transferred back to the issuing account. See [NFTokenMint](nftokenmint.html) for available NFT minting flags.
3. Enter the **Transfer Fee**, a percentage of the proceeds that the original creator receives from future sales of the NFT. This is a value of 0-50000 inclusive, allowing transfer fees between 0.000% and 50.000% in increments of 0.001%. If you do not set the **Flags** field to allow the NFT to be transferrable, set this field to 0.
4. Enter the **Taxon** for the NFT. If you do not have a need for the Taxon field, set this value to 0.
5. Enter an **NFT Count** of up to 200 NFTs to create in one batch.
6. Click **Batch Mint NFTs**.
## Get Batch NFTs
@@ -235,11 +241,7 @@ import tkinter as tk
import xrpl
import json
from mod1 import get_account, get_account_info, send_xrp
from mod2 import (
get_balance,
configure_account,
)
from mod1 import get_account, get_account_info
```
Import dependencies from `mod7.py`.
@@ -265,17 +267,11 @@ def batch_mint_nfts():
text_standby_results.delete("1.0", tk.END)
text_standby_results.insert("1.0", json.dumps(results, indent=4))
def get_batch_nfts():
results = get_batch(ent_standby_seed.get(), ent_standby_account.get())
text_standby_results.delete("1.0", tk.END)
text_standby_results.insert("1.0",json.dumps(results, indent=4))
# Module 2 Handlers
def standby_configure_account():
results = configure_account(
def standby_get_batch_nfts():
results = get_batch(
ent_standby_seed.get(),
standbyRippling)
ent_standby_account.get()
)
text_standby_results.delete("1.0", tk.END)
text_standby_results.insert("1.0", json.dumps(results, indent=4))
@@ -298,12 +294,10 @@ def get_standby_account_info():
Rename the window for Module 7.
```python
# Create a new window with the title "Quickstart Module 7"
# Create a new window with the title "Python Module - Batch Minting"
window = tk.Tk()
window.title("Quickstart Module 7")
window.title("Python Module - Batch Minting")
standbyRippling = tk.BooleanVar()
operationalRippling = tk.BooleanVar()
# Form frame
@@ -315,11 +309,8 @@ lbl_standy_seed = tk.Label(master=frm_form, text="Standby Seed")
ent_standby_seed = tk.Entry(master=frm_form, width=50)
lbl_standby_account = tk.Label(master=frm_form, text="Standby Account")
ent_standby_account = tk.Entry(master=frm_form, width=50)
lbl_standy_amount = tk.Label(master=frm_form, text="Amount")
ent_standby_amount = tk.Entry(master=frm_form, width=50)
lbl_standby_balance = tk.Label(master=frm_form, text="XRP Balance")
ent_standby_balance = tk.Entry(master=frm_form, width=50)
cb_standby_allow_rippling = tk.Checkbutton(master=frm_form, text="Allow Rippling", variable=standbyRippling, onvalue=True, offvalue=False)
lbl_standby_uri = tk.Label(master=frm_form, text="NFT URI")
ent_standby_uri = tk.Entry(master=frm_form, width=50)
lbl_standby_flags = tk.Label(master=frm_form, text="Flags")
@@ -330,6 +321,8 @@ lbl_standby_taxon = tk.Label(master=frm_form, text="Taxon")
ent_standby_taxon = tk.Entry(master=frm_form, width="50")
lbl_standby_nft_id = tk.Label(master=frm_form, text="NFT ID")
ent_standby_nft_id = tk.Entry(master=frm_form, width="50")
lbl_standby_nft_offer_index = tk.Label(master=frm_form, text="NFT Offer Index")
ent_standby_nft_offer_index = tk.Entry(master=frm_form, width="50")
```
Add the **NFT Count** field for batch minting.
@@ -345,11 +338,8 @@ lbl_standy_seed.grid(row=0, column=0, sticky="w")
ent_standby_seed.grid(row=0, column=1)
lbl_standby_account.grid(row=2, column=0, sticky="e")
ent_standby_account.grid(row=2, column=1)
lbl_standy_amount.grid(row=3, column=0, sticky="e")
ent_standby_amount.grid(row=3, column=1)
lbl_standby_balance.grid(row=5, column=0, sticky="e")
ent_standby_balance.grid(row=5, column=1)
cb_standby_allow_rippling.grid(row=7,column=1, sticky="w")
lbl_standby_uri.grid(row=8, column=0, sticky="e")
ent_standby_uri.grid(row=8, column=1, sticky="w")
lbl_standby_flags.grid(row=9, column=0, sticky="e")
@@ -358,8 +348,6 @@ lbl_standby_transfer_fee.grid(row=10, column=0, sticky="e")
ent_standby_transfer_fee.grid(row=10, column=1, sticky="w")
lbl_standby_taxon.grid(row=11, column=0, sticky="e")
ent_standby_taxon.grid(row=11, column=1, sticky="w")
lbl_standby_nft_id.grid(row=12, column=0, sticky="e")
ent_standby_nft_id.grid(row=12, column=1, sticky="w")
```
Place the **NFT Count** field in the grid.
@@ -369,7 +357,6 @@ lbl_standby_nft_count.grid(row=13, column=0, sticky="e")
ent_standby_nft_count.grid(row=13, column=1, sticky="w")
lbl_standby_results.grid(row=14, column=0, sticky="ne")
text_standby_results.grid(row=14, column=1, sticky="nw")
cb_standby_allow_rippling.select()
#############################################
## Buttons ##################################
@@ -383,22 +370,19 @@ btn_get_standby_account_info = tk.Button(master=frm_form,
text="Get Standby Account Info",
command = get_standby_account_info)
btn_get_standby_account_info.grid(row=1, column=2, sticky = "nsew")
btn_standby_configure_account = tk.Button(master=frm_form,
text="Configure Account",
command = standby_configure_account)
btn_standby_configure_account.grid(row=7,column=0, sticky = "nsew")
```
Add the **Batch Mint NFTs** and **Get Batch NFTs** buttons.
```python
btn_standby_mint_token = tk.Button(master=frm_form, text="Batch Mint NFTs",
command = batch_mint_nfts)
btn_standby_mint_token.grid(row=8, column=2, sticky="nsew")
btn_standby_get_tokens = tk.Button(master=frm_form, text="Get Batch NFTs",
command = get_batch_nfts)
btn_standby_get_tokens.grid(row=9, column=2, sticky="nsew")
btn_standby_batch_mint = tk.Button(master=frm_form,
text="Batch Mint NFTs",
command = standby_batch_mint)
btn_standby_batch_mint.grid(row=5, column=2, sticky = "nsew")
btn_standby_get_batch_nfts = tk.Button(master=frm_form,
text="Get Batch NFTs",
command = standby_get_batch_nfts)
btn_standby_get_batch_nfts.grid(row=8, column=2, sticky = "nsew")
# Start the application
window.mainloop()

View File

@@ -773,7 +773,6 @@ pages:
- en
- md: "@i18n/ja/concepts/networks-and-servers/amendments.md"
outdated_translation: true
targets:
- ja
@@ -1593,6 +1592,12 @@ pages:
- en
- ja
# TODO: translate
- md: tutorials/quickstart/py-batch-minting.md
targets:
- en
- ja
- md: tutorials/build-apps/build-a-desktop-wallet-in-python.md
targets:
- en
@@ -2995,6 +3000,12 @@ pages:
targets:
- ja
# TODO: translate
- md: references/http-websocket-apis/api-conventions/ctid.md
targets:
- en
- ja
# rippled Public Methods
- md: references/http-websocket-apis/public-api-methods/public-api-methods.md

Binary file not shown.

Before

Width:  |  Height:  |  Size: 414 KiB

After

Width:  |  Height:  |  Size: 108 KiB