11 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	html, parent, seo, labels
| html | parent | seo | labels | |||
|---|---|---|---|---|---|---|
| transaction-metadata.html | transaction-formats.html | 
  | 
  | 
トランザクションのメタデータ
トランザクションのメタデータは、トランザクションの処理後にトランザクションに追加されるひとまとまりのデータです。レジャーに記録されるトランザクションは、トランザクションが成功するかどうかにかかわらず、メタデータを保持しています。トランザクションのメタデータには、トランザクションの結果の詳細が含まれます。
警告: トランザクションのメタデータに示された変更が最終的なものになるのは、トランザクションが検証済みバージョンのレジャーに記録された場合のみです。
以下に、トランザクションのメタデータに含まれる可能性があるフィールドをいくつか示します。
{% 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を含むトランザクション(tx と account_tx)はメタデータに以下のフィールドを含むことができます。これらの値はリクエスト時にサーバによって追加され、ハッシュ化されたバイナリメタデータには格納されません。
| フィールド | 値 | 説明 | 
|---|---|---|
nftoken_id | 
文字列 | トランザクションの結果、レジャー上で変更されたNFTokenのNFTokenIDを示します。トランザクションがNFTokenMintまたはNFTokenAcceptOfferの場合のみ表示されます。NFTokenIDをご覧ください。 | 
nftoken_ids | 
配列 | トランザクションの結果、レジャー上で変更されたNFTokenのすべてのNFTokenIDを表示します。トランザクションが NFTokenCancelOfferの場合のみ表示されます。 | 
offer_id | 
文字列 | NFTokenCreateOfferトランザクションからのレスポンスに、新しいNFTokenOfferのOfferIDを表示します。 | 
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" /%}