Files
xrpl-dev-portal/@i18n/ja/references/protocol/transactions/metadata.md

11 KiB
Raw Blame History

html, parent, seo, labels
html parent seo labels
transaction-metadata.html transaction-formats.html
description
トランザクションのメタデータは、トランザクションが成功したかどうかに関係なく、トランザクションの結果を詳細に記述します。
ブロックチェーン

トランザクションのメタデータ

トランザクションのメタデータは、トランザクションの処理後にトランザクションに追加されるひとまとまりのデータです。レジャーに記録されるトランザクションは、トランザクションが成功するかどうかにかかわらず、メタデータを保持しています。トランザクションのメタデータには、トランザクションの結果の詳細が含まれます。

警告: トランザクションのメタデータに示された変更が最終的なものになるのは、トランザクションが検証済みバージョンのレジャーに記録された場合のみです。

以下に、トランザクションのメタデータに含まれる可能性があるフィールドをいくつか示します。

{% partial file="/_snippets/tx-metadata-field-table.md" /%}

メタデータの例

次のJSONオブジェクトは、複雑なクロスカレンシー支払いのメタデータを示しています。

{% code-snippet file="/_api-examples/metadata/cross-currency-payment.json" language="json" /%}

AffectedNodes

AffectedNodes配列には、このトランザクションが何らかの変更を加えたレジャーエントリの完全なリストが格納されます。この配列の各項目は、何が起こったかを示すトップレベルのフィールドを1つ持つオブジェクトです。

  • CreatedNode: トランザクションが新しいレジャーエントリを作成したことを示します。
  • DeletedNode: トランザクションが新しいレジャーエントリを削除したことを示します。
  • ModifiedNode: トランザクションが既存のレジャーエントリを更新したことを示します。

これらの各フィールドの値は、レジャーエントリに行われた変更を記述するJSONオブジェクトです。

CreatedNodeのフィールド

CreatedNodeオブジェクトは次のフィールドを含みます。

フィールド 説明
LedgerEntryType 文字列 作成されたレジャーエントリの種類
LedgerIndex 文字列 - [ハッシュ][] レジャーの状態ツリー内のこのレジャーエントリのID注意: 名前が非常に似ていますがこれはレジャーインデックスとは異なります
NewFields オブジェクト 新しく作成されたレジャー エントリの内容を示すフィールド。どのフィールドが存在するかは、作成されたレジャーエントリの種類によって異なります。

DeletedNodeのフィールド

DeletedNodeオブジェクトは次のフィールドを含みます。

フィールド 説明
LedgerEntryType 文字列 削除されたレジャーエントリの種類
LedgerIndex 文字列 - [ハッシュ][] レジャーの状態ツリー内のこのレジャーエントリのID注意: 名前が非常に似ていますがこれはレジャーインデックスとは異なります
FinalFields オブジェクト 削除されたレジャーエントリの最後の内容を示すフィールド。どのフィールドが存在するかは、削除されたレジャーエントリの種類によって異なります。

ModifiedNodeのフィールド

ModifiedNodeオブジェクトは次のフィールドを含みます。

フィールド 説明
LedgerEntryType 文字列 更新されたレジャーエントリの種類
LedgerIndex 文字列 - [ハッシュ][] レジャーの状態ツリー内のこのレジャーエントリのID注意: 名前が非常に似ていますがこれはレジャーインデックスとは異なります
FinalFields オブジェクト このトランザクションからの変更を適用した後のレジャーエントリの内容を示すフィールド。どのフィールドが存在するかは、作成されたレジャーエントリの種類によって異なります。ほとんどのタイプのレジャーエントリにはPreviousTxnIDフィールドとPreviousTxnLgrSeqフィールドがありますが、これは省略されます。
PreviousFields オブジェクト このトランザクションの結果として変更されたオブジェクトのすべてのフィールドの以前の値。トランザクションがオブジェクトにフィールドを追加しただけの場合、このフィールドは空のオブジェクトです。
PreviousTxnID 文字列 - [ハッシュ][] (省略可能) このレジャーエントリを変更する前のトランザクションの[識別用ハッシュ][]。PreviousTxnIDフィールドを持たないレジャーエントリの種類では省略されます。
PreviousTxnLgrSeq 数値 - [レジャーインデックス][] (省略可能) このレジャーエントリを変更する前のトランザクションを含むレジャーバージョンの[レジャーインデックス][]。PreviousTxnLgrSeqフィールドを持たないレジャーエントリの種類では省略されます。

注記: 変更されたレジャーエントリにPreviousTxnIDフィールドとPreviousTxnLgrSeqフィールドがある場合、トランザクションは常にトランザクションの識別ハッシュとトランザクションを含むレジャーバージョンのインデックスでそれらを更新しますが、これらのフィールドの新しい値はModifiedNodeオブジェクトのFinalFieldsにはリストされず、以前の値はネストされたPreviousFieldsオブジェクトではなく ModifiedNode オブジェクトのトップレベルにリストされます。

NFTのフィールド

NFTを含むトランザクションtxaccount_tx)はメタデータに以下のフィールドを含むことができます。これらの値はリクエスト時にサーバによって追加され、ハッシュ化されたバイナリメタデータには格納されません。

フィールド 説明
nftoken_id 文字列 トランザクションの結果、レジャー上で変更されたNFTokenNFTokenIDを示します。トランザクションがNFTokenMintまたはNFTokenAcceptOfferの場合のみ表示されます。NFTokenIDをご覧ください。
nftoken_ids 配列 トランザクションの結果、レジャー上で変更されたNFTokenのすべてのNFTokenIDを表示します。トランザクションが NFTokenCancelOfferの場合のみ表示されます。
offer_id 文字列 NFTokenCreateOfferトランザクションからのレスポンスに、新しいNFTokenOfferOfferIDを表示します。

delivered_amount

[Paymentトランザクション][]によってDestinationに実際送金された金額を表します。トランザクションが成功すると、Partial Paymentsであった場合を除いて、 宛先は当該の金額を受取りますPartial Paymentsの場合、Amountを上限とする正の金額が受取られます)。Amountフィールドを信頼するかどうかを選択するのではなく、メタデータのdelivered_amountフィールドを使用して、宛先に実際に到達する金額を確認してください。

トランザクションのメタデータのdelivered_amountフィールドは、成功したすべてのPaymentトランザクションが保持しており、フォーマットは通常の通貨額と同様です。ただし、送金額は、以下の両方の条件に該当するトランザクションについては使用できません。

  • Partial Paymentsである
  • 2014-01-20よりも前の検証済みレジャーに含まれている

両方の条件に該当する場合、delivered_amountには、実際の金額ではなく文字列値unavailableが記述されます。この場合、トランザクションのメタデータにあるAffectedNodesを読み取ることが、実際に送金された金額を割り出せる唯一の手段になります。

注記: delivered_amountフィールドはリクエストに対してオンデマンドで生成され、トランザクションメタデータのバイナリフォーマットには含まれず、トランザクションメタデータのハッシュを計算する際にも使用されません。一方、DeliveredAmountフィールドは2014-01-20以降のpartial paymentトランザクションのバイナリフォーマットに 含まれます

関連項目: Partial Payments

{% raw-partial file="/_snippets/common-links.md" /%}