diff --git a/@l10n/ja/docs/concepts/transactions/batch-transactions.md b/@l10n/ja/docs/concepts/transactions/batch-transactions.md index 0560e6b537..4dffd488dd 100644 --- a/@l10n/ja/docs/concepts/transactions/batch-transactions.md +++ b/@l10n/ja/docs/concepts/transactions/batch-transactions.md @@ -17,15 +17,15 @@ status: not_enabled - スワップ(マルチアカウント):複数のアカウント間でのトラストレスなトークン/NFTスワップ。 - アカウント引き出し(マルチアカウント):当座預金からの引き出しを試行し、失敗した場合は代わりに普通預金から引き出します。 -`Batch`トランザクションは、ラッパーである`Batch`トランザクション自体の_外部トランザクション_と、それぞれがアトミックに実行される_内部トランザクション_で構成されます。内部トランザクションの正確な処理方法は、バッチ_モード_によって決まります。 +`Batch`トランザクションは、ラッパーである`Batch`トランザクション自体の _外部トランザクション_ と、それぞれがアトミックに実行される _内部トランザクション_ で構成されます。内部トランザクションの正確な処理方法は、バッチ _モード_ によって決まります。 ## バッチのモード -`Batch`には4つのモードがあります:`ALLORNOTHING`、`ONLYONE`、`UNTILFAILURE`、`INDEPENDENT`。 +`Batch`には`ALLORNOTHING`、`ONLYONE`、`UNTILFAILURE`、`INDEPENDENT`の4つのモードがあります。 ### All or Nothing(全て成功か全て失敗) -`ALLORNOTHING`モードでは、いずれかのトランザクションが成功するには、全ての内部トランザクションが成功する必要があります。 +`ALLORNOTHING`モードでは、いずれかの内部トランザクションが成功するには、全ての内部トランザクションが成功する必要があります。 ### Only One(1つだけ) @@ -33,11 +33,11 @@ status: not_enabled ### Until Failure(失敗まで) -`UNTILFAILURE`は失敗するまで全てのトランザクションを適用します。最初の失敗後の全てのトランザクションは適用されません。 +`UNTILFAILURE`では、全ての内部トランザクションをいずれかが失敗するまで適用します。最初の失敗後の全てのトランザクションは適用されません。 ### Independent(独立) -1つ以上の内部トランザクションが失敗しても、全てのトランザクションが適用されます。 +`INDEPENDENT`では、1つ以上の内部トランザクションが失敗しても、全てのトランザクションが適用されます。 ## Raw Transactions @@ -46,14 +46,14 @@ status: not_enabled 各内部トランザクションは以下の要件を満たす必要があります。 - `tfInnerBatchTxn`フラグを設定する必要があります。 -- 手数料を持ってはいけません。手数料の値は_0_を使用する必要があります。 -- 署名されてはいけません(グローバルトランザクションは既に関連する全ての当事者によって署名されています)。代わりに`SigningPubKey`と`TxnSignature`フィールドに空文字列("")を持つ必要があります。 +- 手数料を設定してはいけません。手数料の値は _0_ を使用する必要があります。 +- 署名されてはいけません(グローバルトランザクションは既に関連する全ての当事者によって署名されています)。代わりに`SigningPubKey`フィールドに空文字列("")を設定する必要があります。(`TxnSignature`フィールドは設定してはいけません。) `tesSUCCESS`以外の結果を受け取った場合、トランザクションは失敗と見なされます。 ### 共通のフラグ -`Batch`はグローバルトランザクションフラグを追加します。 +`Batch`は次のグローバルなトランザクションフラグを追加します。 | フラグ名 | 値 | |------------------|------------| @@ -114,7 +114,7 @@ status: not_enabled ### 外部トランザクション -各外部トランザクションには、内部トランザクション処理ではなく、シーケンスと手数料処理のメタデータが含まれます。エラーコードは外部トランザクション処理(例:シーケンスと手数料)のみに基づいており、内部トランザクション処理が失敗してもtesSUCCESSエラーを返します。 +各外部トランザクションには、内部トランザクション処理ではなく、シーケンスと手数料処理のメタデータが含まれます。エラーコードは外部トランザクション処理(例:シーケンスと手数料)のみに基づいており、内部トランザクション処理が失敗しても`tesSUCCESS`エラーを返します。 ### 内部トランザクション @@ -156,6 +156,6 @@ status: not_enabled ### 内部トランザクションの安全性 -内部バッチトランザクションは特殊なケースです。署名や手数料を含みません(これらは両方とも外部トランザクションに含まれているため)。したがって、誰かが外部トランザクションに含めることなく、内部`Batch`トランザクションを直接送信できないことを保証するために、慎重に処理する必要があります。 +バッチの内部トランザクションは特殊なケースです。署名や手数料を含みません(これらは両方とも外部トランザクションに含まれているため)。したがって、誰かが外部トランザクションに含めることなく、`Batch`の内部トランザクションを直接送信できないことを保証するために、慎重に処理する必要があります。 内部トランザクションはブロードキャストできません(例えば悪意のあるノードからブロードキャストされた場合、受け入れられません)。代わりに`Batch`の外部トランザクションから生成される必要があります。内部トランザクションは、submit RPCを介して直接送信することはできません。 \ No newline at end of file diff --git a/@l10n/ja/docs/references/protocol/transactions/common-fields.md b/@l10n/ja/docs/references/protocol/transactions/common-fields.md index 2492b2d0eb..e8e2312ea4 100644 --- a/@l10n/ja/docs/references/protocol/transactions/common-fields.md +++ b/@l10n/ja/docs/references/protocol/transactions/common-fields.md @@ -76,7 +76,7 @@ AccountTxnIDを使用するには、アカウントの1つ前のトランザク | フラグの名前 | 16進値 | 10進値 | 説明 | |:--------------------|:-----------|:--------------|:--------------------------| | tfFullyCanonicalSig | 0x80000000 | 2147483648 | _(使用を強く推奨)_ 完全に正規である署名を要求します。 | -| tfInnerBatchTxn | 0x40000000 | 1073741824 | このフラグはバッチトランザクションの内部トランザクションである場合にのみ使用されます。これは、トランザクションが署名されていないことを示します。このフラグを含む通常のトランザクションは拒否されます。 | +| tfInnerBatchTxn | 0x40000000 | 1073741824 | このフラグは [バッチトランザクション][batch] の内部トランザクションである場合にのみ使用されます。これは、トランザクションが署名されていないことを示します。このフラグを含む通常のトランザクションは拒否されます。 | [signメソッド][](または「署名と送信」モードの[submitメソッド][])を使用すると、`rippled`は、`Flags`フィールドがすでに存在している場合を除き、`tfFullyCanonicalSig`フラグを有効にした状態で`Flags`フィールドを追加します。`tfFullyCanonicalSig`フラグは、`Flags`が明示的に指定されている場合、自動的には有効に***なりません***。また、[sign_forメソッド][]を使用してマルチシグトランザクションに署名を追加する場合も、自動的には有効に***なりません***。 diff --git a/@l10n/ja/docs/references/protocol/transactions/types/batch.md b/@l10n/ja/docs/references/protocol/transactions/types/batch.md index 0a6ab62d20..5b70710e6c 100644 --- a/@l10n/ja/docs/references/protocol/transactions/types/batch.md +++ b/@l10n/ja/docs/references/protocol/transactions/types/batch.md @@ -1,26 +1,28 @@ --- html: batch.html seo: - description: 最大8つのトランザクションのバッチを作成・送信する。 + description: 最大8件のトランザクションをまとめて作成・送信し、、それらがすべて成功するか、すべて失敗するようにアトミックに処理されるようにします。 labels: - Batch - - Transactions + - Transaction Sending status: not_enabled --- # Batch [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/Batch.cpp "Source") -`Batch`トランザクションは、最大8つのトランザクションを単一のバッチで送信します。各トランザクションは、4つのモードのいずれかでアトミックに実行されます。全て成功または全て失敗(All or Nothing)、一つのみ成功(Only One)、失敗まで継続(Until Failure)、および独立実行(Independent)。 +`Batch`トランザクションは、最大8つのトランザクションを単一のバッチで送信します。各トランザクションは、4つのモード(全て成功または全て失敗(All or Nothing)、一つのみ成功(Only One)、失敗まで継続(Until Failure)、および独立実行(Independent))のいずれかでアトミックに実行されます。 -## Batch JSONの例 +## {% $frontmatter.seo.title %} JSONの例 -以下の例は、ユーザーがDEX UIを使って取引する中でオファーを作成し、2番目のトランザクションがプラットフォーム手数料となっています。内部トランザクションは署名されておらず、関与するアカウントが1つのみのため、外部トランザクションに`BatchSigners`フィールドは不要です。 +### 単一アカウントの場合 + +この例では、ユーザーがDEX UIを使って取引する中でオファーを作成し、2番目のトランザクションでプラットフォーム手数料を支払っています。内部トランザクションは署名されておらず、関与するアカウントが1つのみのため、外部トランザクションに`BatchSigners`フィールドは不要です。 ```json { "TransactionType": "Batch", "Account": "rUserBSM7T3b6nHX3Jjua62wgX9unH8s9b", - "Flags": "0x00010000", + "Flags": "65536", "RawTransactions": [ { "RawTransaction": { @@ -58,215 +60,15 @@ status: not_enabled } ``` -### レジャー確認のサンプル +### 複数アカウントの場合 -この例は、トランザクション確認後のレジャーの状態を示しています。 -内部トランザクションが通常のトランザクションとしてコミットされていることに注意してください。 - -```json -[ - { - "TransactionType": "Batch", - "Account": "rUserBSM7T3b6nHX3Jjua62wgX9unH8s9b", - "Flags": "0x00010000", - "RawTransactions": [ - { - "RawTransaction": { - "TransactionType": "OfferCreate", - "Flags": 1073741824, - "Account": "rUserBSM7T3b6nHX3Jjua62wgX9unH8s9b", - "TakerGets": "6000000", - "TakerPays": { - "currency": "GKO", - "issuer": "ruazs5h1qEsqpke88pcqnaseXdm6od2xc", - "value": "2" - }, - "Sequence": 4, - "Fee": "0", - "SigningPubKey": "" - } - }, - { - "RawTransaction": { - "TransactionType": "Payment", - "Flags": 1073741824, - "Account": "rUserBSM7T3b6nHX3Jjua62wgX9unH8s9b", - "Destination": "rDEXfrontEnd23E44wKL3S6dj9FaXv", - "Amount": "1000", - "Sequence": 5, - "Fee": "0", - "SigningPubKey": "" - } - } - ], - "Sequence": 3, - "Fee": "40", - "SigningPubKey": "022D40673B44C82DEE1DDB8B9BB53DCCE4F97B27404DB850F068DD91D685E337EA", - "TxnSignature": "3045022100EC5D367FAE2B461679AD446FBBE7BA260506579AF4ED5EFC3EC25F4DD1885B38022018C2327DB281743B12553C7A6DC0E45B07D3FC6983F261D7BCB474D89A0EC5B8" - }, - { - "TransactionType": "OfferCreate", - "Flags": 1073741824, - "Account": "rUserBSM7T3b6nHX3Jjua62wgX9unH8s9b", - "TakerGets": "6000000", - "TakerPays": { - "currency": "GKO", - "issuer": "ruazs5h1qEsqpke88pcqnaseXdm6od2xc", - "value": "2" - }, - "Sequence": 4, - "Fee": "0", - "SigningPubKey": "" - }, - { - "TransactionType": "Payment", - "Flags": 1073741824, - "Account": "rUserBSM7T3b6nHX3Jjua62wgX9unH8s9b", - "Destination": "rDEXfrontEnd23E44wKL3S6dj9FaXv", - "Amount": "1000", - "Sequence": 5, - "Fee": "0", - "SigningPubKey": "" - } -] -``` - -### レジャーのサンプル - -この例は、トランザクション確認後のレジャーの状態を示しています。内部トランザクションが通常のトランザクションとしてコミットされ、外部トランザクションの検証済みバージョンには`RawTransactions`フィールドが含まれていないことに注意してください。 - -```json -[ - { - "TransactionType": "Batch", - "Account": "rUserBSM7T3b6nHX3Jjua62wgX9unH8s9b", - "Flags": "1", - "TxnIDs": [ - "7EB435C800D7DC10EAB2ADFDE02EE5667C0A63AA467F26F90FD4CBCD6903E15E", - "EAE6B33078075A7BA958434691B896CCA4F532D618438DE6DDC7E3FB7A4A0AAB" - ], - "Sequence": 3, - "Fee": "40", - "SigningPubKey": "022D40673B44C82DEE1DDB8B9BB53DCCE4F97B27404DB850F068DD91D685E337EA", - "TxnSignature": "3045022100EC5D367FAE2B461679AD446FBBE7BA260506579AF4ED5EFC3EC25F4DD1885B38022018C2327DB281743B12553C7A6DC0E45B07D3FC6983F261D7BCB474D89A0EC5B8" - }, - { - "TransactionType": "OfferCreate", - "Account": "rUserBSM7T3b6nHX3Jjua62wgX9unH8s9b", - "TakerGets": "6000000", - "TakerPays": { - "currency": "GKO", - "issuer": "ruazs5h1qEsqpke88pcqnaseXdm6od2xc", - "value": "2" - }, - "BatchTxn": { - "Account": "rUserBSM7T3b6nHX3Jjua62wgX9unH8s9b", - "OuterSequence": 3, - "BatchIndex": 0 - }, - "Sequence": 0, - "Fee": "0", - "SigningPubKey": "", - "TxnSignature": "" - }, - { - "TransactionType": "Payment", - "Account": "rUserBSM7T3b6nHX3Jjua62wgX9unH8s9b", - "Destination": "rDEXfrontEnd23E44wKL3S6dj9FaXv", - "Amount": "1000", - "BatchTxn": { - "Account": "rUserBSM7T3b6nHX3Jjua62wgX9unH8s9b", - "OuterSequence": 3, - "BatchIndex": 1 - }, - "Sequence": 0, - "Fee": "0", - "SigningPubKey": "", - "TxnSignature": "" - } -] -``` - -### Batchのフィールド - - - -| フィールド | JSONの型 | [内部の型][] | 説明 | -|:----------------|:--------------------|:------------------|:-------------------| -| TransactionType | string | UInt16 | | -| Account | string | STAccount | | -| Fee | string | STAmount | 手数料は基本手数料の2倍(手数料エスカレーションがない場合は合計20 drops)に、すべての内部トランザクションのトランザクション手数料の合計を加えたものです(マルチサインやAMMCreateなどの高い手数料も含む)。個々の内部トランザクションの手数料は、内部トランザクション自体ではなくここで支払われ、手数料エスカレーションがオーバーヘッドだけでなくトランザクションの総コストで計算されることを保証します。 | -| Flags | number | UInt32 | `Flags`フィールドはトランザクションのバッチモードを表します。`Batch`トランザクションでは正確に1つを指定する必要があります。[Batchのフラグ](#batchのフラグ)を参照してください。| -| RawTransactions | array | STArray | 適用されるトランザクションのリストを含みます。[RawTransactions](#rawtransactions)を参照してください。 | -| TxnIDs | array | Vector256 | `TxnIDs`は`RawTransactions`に含まれるすべてのトランザクションのトランザクションハッシュ/IDのリストを含みます。これは内部トランザクションの`Batch`トランザクション内でレジャーの一部として保存される唯一の部分です。内部トランザクション自体はレジャー上で独自のトランザクションであるためです。TxnIDsのハッシュは`RawTransactions`の生トランザクションと同じ順序である必要があります。 | -| BatchSigners | array | STArray | _オプション_。`Batch`に複数のアカウントのトランザクションが含まれる場合のみ必要です。[BatchSigners](#batchsigners)を参照してください。 | - -### Batchのフラグ - -`Batch`型のトランザクションは、`Flags`フィールドで以下の追加値をサポートしています。 - -| フラグ名 | 16進値 | 10進値 | 説明 | -|:-------------------|:-------------| ------------: |:------------------------------| -| `ALLORNOTHING` | 0x00000001 | 1 | 全て成功または全て失敗。すべてのトランザクションが成功しなければ、どれも成功しません。 | -| `ONLYONE` | 0x00000002 | 2 | 最初に成功したトランザクションのみが成功し、他のすべてのトランザクションは失敗するか実行されません。 | -| `UNTILFAILURE` | 0x00000004 | 4 | 最初の失敗まですべてのトランザクションが処理され、最初の失敗後のすべてのトランザクションは処理されません。 | -| `INDEPENDENT` | 0x00000008 | 8 | 失敗に関係なく、すべてのトランザクションが処理されます。 | - -### RawTransactions - -`RawTransactions`は実行されるトランザクションのリストを含みます。最大8つのトランザクションを含めることができます。これらのトランザクションは1つのアカウントまたは複数のアカウントからのものである可能性があります。 - -内部の各トランザクションは以下の要件を満たす必要があります。 - -- BatchTxnフィールドを含む必要があります。 -- シーケンス番号を持ってはいけません。シーケンス番号値0を使用する必要があります。 -- 手数料を持ってはいけません。手数料値"0"を使用する必要があります。 -- 署名されてはいけません(グローバルトランザクションはすでにすべての関連当事者によって署名されています)。代わりに`SigningPubKey`および`TxnSignature`フィールドに空文字列("")を持つ必要があります。 - -トランザクションは`tesSUCCESS`でない結果を受け取った場合、失敗と見なされます。 - -このフィールドは検証済みトランザクションには含まれず、すべてのトランザクションがレジャーの一部として個別に含まれるため、外部トランザクション署名の計算にも使用されません。 - -### BatchSigners - -このフィールドはXRPLのマルチサインと同様に動作します。複数のアカウントのトランザクションがBatchトランザクションに含まれる場合のみ必要です。そうでなければ、通常のトランザクション署名が同じセキュリティ保証を提供します。 - -少なくとも1つの内部トランザクションを持つすべてのアカウント(該当する場合は外部アカウントを除く)は、BatchSignersフィールドを持つ必要があります。 - -| フィールド | JSONの型 | [内部の型][] | 説明 | -|:----------------|:--------------------|:------------------|:-------------------| -| Account | string | STAccount | 少なくとも1つの内部トランザクションを持つアカウント。 | -| SigningPubKey | string | STBlob | アカウントが単一署名で署名している場合に含まれます。 | -| Signature | string | STBlob | アカウントが単一署名で署名している場合に含まれます。 | -| Signers | array | STArray | アカウントがマルチサイン(単一署名の代わりに)で署名している場合にこのフィールドが含まれます。標準トランザクションマルチサインで使用されるSignersフィールドと同等に動作します。このフィールドはFlagsおよびTxnIDsフィールドの署名を保持します。 | - -## BatchTxn - -`BatchTxn`内部オブジェクトは、`Batch`トランザクションのすべての内部トランザクションに含める必要があります。 -含めることで、以下の効果があります。 - -- 同一トランザクション間のハッシュ衝突を防ぎます(シーケンス番号が含まれていないため)。 -- すべてのトランザクションがシーケンス番号を関連付けることを保証し、ID生成でそれを使用する作成されたレジャーオブジェクトが引き続き動作できるようにします。 -- ユーザーがトランザクションを正しい順序でより簡単に整理できるようにします。 - -このオブジェクトに含まれるフィールドは以下の通りです。 - -| フィールド | JSONの型 | [内部の型][] | 説明 | -|:---------------------|:-----------------|:------------------|:-----------------| -| `Account` | string | AccountID | 外部`Batch`トランザクションを送信するアカウント。 | -| `OuterSequence` | number | UInt32 | 外部`Batch`トランザクションのシーケンス番号。他の`Batch`トランザクションとのハッシュ衝突がないことを保証します。 | -| `Sequence` | number | UInt32 | _(オプション)_ 内部トランザクションのアカウントの次の利用可能なシーケンス番号。マルチアカウントBatchトランザクションでのみ含める必要があります。 | -| `BatchIndex` | number | UInt8 | 既存の`Batch`トランザクション内での内部トランザクションの(0から始まる)インデックス。最初の内部トランザクションはBatchIndex値0、2番目は1、以下同様です。同じ`Batch`トランザクション内の他の内部トランザクションとのハッシュ衝突がないことを保証し、すべてのトランザクションが正しい順序で配置されることを保証します。 | - -## 複数アカウントでのBatch JSONの例 - -この例では、2人のユーザーがトークンをアトミックに交換しており、XRPをGKOと交換しています。内部トランザクションは依然として署名されていませんが、この`Batch`トランザクションには2つのアカウントの内部トランザクションがあるため、外部トランザクションに`BatchSigners`フィールドが必要です。 +この例では、2人のユーザーがトークン(XRPとGKO)をアトミックに交換しています。 ```json { "TransactionType": "Batch", "Account": "rUser1fcu9RJa5W1ncAuEgLJF2oJC6", - "Flags": "0x00010000", + "Flags": "65536", "RawTransactions": [ { "RawTransaction": { @@ -313,81 +115,58 @@ status: not_enabled } ``` -#### レジャーレスポンスの例 +{% raw-partial file="/@l10n/ja/docs/_snippets/tx-fields-intro.md" /%} -```json -[ - { - "TransactionType": "Batch", - "Account": "rUser1fcu9RJa5W1ncAuEgLJF2oJC6", - "Flags": "0x00010000", - "RawTransactions": [ - { - "RawTransaction": { - "TransactionType": "Payment", - "Flags": 1073741824, - "Account": "rUser1fcu9RJa5W1ncAuEgLJF2oJC6", - "Destination": "rUser2fDds782Bd6eK15RDnGMtxf7m", - "Amount": "6000000", - "Sequence": 5, - "Fee": "0", - "SigningPubKey": "" - } - }, - { - "RawTransaction": { - "TransactionType": "Payment", - "Flags": 1073741824, - "Account": "rUser2fDds782Bd6eK15RDnGMtxf7m", - "Destination": "rUser1fcu9RJa5W1ncAuEgLJF2oJC6", - "Amount": { - "currency": "GKO", - "issuer": "ruazs5h1qEsqpke88pcqnaseXdm6od2xc", - "value": "2" - }, - "Sequence": 20, - "Fee": "0", - "SigningPubKey": "" - } - } - ], - "BatchSigners": [ - { - "BatchSigner": { - "Account": "rUser2fDds782Bd6eK15RDnGMtxf7m", - "SigningPubKey": "03C6AE25CD44323D52D28D7DE95598E6ABF953EECC9ABF767F13C21D421C034FAB", - "TxnSignature": "304502210083DF12FA60E2E743643889195DC42C10F62F0DE0A362330C32BBEC4D3881EECD022010579A01E052C4E587E70E5601D2F3846984DB9B16B9EBA05BAD7B51F912B899" - } - } - ], - "Sequence": 4, - "Fee": "60", - "SigningPubKey": "03072BBE5F93D4906FC31A690A2C269F2B9A56D60DA9C2C6C0D88FB51B644C6F94", - "TxnSignature": "30440220702ABC11419AD4940969CC32EB4D1BFDBFCA651F064F30D6E1646D74FBFC493902204E5B451B447B0F69904127F04FE71634BD825A8970B9467871DA89EEC4B021F8" - }, - { - "TransactionType": "Payment", - "Flags": 1073741824, - "Account": "rUser1fcu9RJa5W1ncAuEgLJF2oJC6", - "Destination": "rUser2fDds782Bd6eK15RDnGMtxf7m", - "Amount": "6000000", - "Sequence": 5, - "Fee": "0", - "SigningPubKey": "" - }, - { - "TransactionType": "Payment", - "Flags": 1073741824, - "Account": "rUser2fDds782Bd6eK15RDnGMtxf7m", - "Destination": "rUser1fcu9RJa5W1ncAuEgLJF2oJC6", - "Amount": { - "currency": "GKO", - "issuer": "ruazs5h1qEsqpke88pcqnaseXdm6od2xc", - "value": "2" - }, - "Sequence": 20, - "Fee": "0", - "SigningPubKey": "" - } -] -``` +| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | +| :---------------- | :--------- | :--------- | :----- | :----------------------------------------------------------- | +| `Flags` | 数値 | UInt32 | はい | このトランザクションのビットフラグです。トランザクションのバッチモードを表すために、正確に1つ指定する必要があります。[バッチのフラグ](#バッチのフラグ)をご覧ください。 | +| `RawTransactions` | 配列 | STArray | はい | 適用するトランザクションのリストです。 | +| `BatchSigners` | 配列 | STArray | いいえ | 複数アカウントの`Batch`トランザクションを承認する署名です。 | + +### RawTransactions + +`RawTransactions` には、適用される**内部トランザクションのリスト**が含まれます。最大8つのトランザクションを含めることができます。単一のアカウントからでも、複数のアカウントからでも構いません。 + +各内部トランザクションは以下の条件を満たす必要があります。 + +* `tfInnerBatchTxn` (10進数値: `1073741824`、または16進数値: `0x40000000`) フラグを含める必要があります。 +* `fee` の値が `0` である必要があります。 +* 署名されていてはなりません(グローバルトランザクションはすべての関係者によってすでに署名されています)。代わりに、`SigningPubKey` には空の文字列 (`""`) を含み、`TxnSignature` フィールドは省略する必要があります。 +* `TicketSequence` または `Sequence` の値がゼロより大きい必要があります。 + +### BatchSigners + +このフィールドは、XRPLにおけるマルチシグ機能と同様の仕組みで動作します。複数のアカウントのトランザクションが`Batch`トランザクションに含まれている場合にのみ必要で、それ以外の場合は通常のトランザクション署名で同じセキュリティが保証されます。 + +| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | +| :-------------- | :--------- | :--------- | :----- | :----------------------------------------------------------- | +| `Account` | 文字列 | STAccount | はい | 少なくとも1つの内部トランザクションを持つアカウント。 | +| `SigningPubKey` | 文字列 | STBlob | いいえ | このトランザクションの署名に使用された秘密鍵に対応する公開鍵の16進数表現。 | +| `TxnSignature` | 文字列 | STBlob | いいえ | このトランザクションが、それが由来するとされるアカウントからのものであることを検証する署名。 | +| `Signers` | 配列 | STArray | いいえ | このトランザクションを承認するマルチシグを表すオブジェクトの配列。 | + +{% admonition type="info" name="Note" %} +`Batch`トランザクションを送信するアカウントが単一署名を使用する場合、`Flags`フィールドと内部トランザクションのハッシュに署名します。この場合、含まれるのは SigningPubKey と TxnSignature のみです。一方で、複数署名を使用する場合は代わりに`Signers`フィールドが使用され、そこに`Flags`フィールドおよび内部トランザクションのハッシュに対する署名が格納されます。 +{% /admonition %} + + +## バッチのフラグ + +`Batch`タイプのトランザクションは、[`Flags`フィールド](../common-fields.md#flags-field)に追加の値をサポートしており、以下のとおりです。 + +| フラグ名 | 16進数値 | 10進数値 | 説明 | +| :--------------- | :--------- | :------- | :--------------------------------- | +| `tfAllOrNothing` | `0x00010000` | 65536 | すべてのトランザクションが成功しなければ、バッチ全体が失敗します。 | +| `tfOnlyOne` | `0x00020000` | 131072 | 最初に成功したトランザクションのみ適用され、それ以降はすべて失敗またはスキップされます。 | +| `tfUntilFailure` | `0x00040000` | 262144 | 最初の失敗が発生するまで、すべてのトランザクションが順に適用されます。失敗以降のトランザクションはスキップされます。 | +| `tfIndependent` | `0x00080000` | 524288 | 各トランザクションは、成功・失敗に関係なくすべて適用されます。 | + +トランザクションは`tesSUCCESS`を結果として返す場合、成功とみなされます。 + + +## エラーケース + +| エラーコード | 説明 | +|:--------------------------|:--------------------------------------------------| +| `temINVALID_INNER_BATCH` | 内部トランザクションの形式が不正です。 | +| `temSEQ_AND_TICKET` | トランザクションに`TicketSequence`フィールドと、0以外の`Sequence`フィールドの両方が含まれています。両方を同時に指定することはできませんが、いずれか一方は必須です。 |