TrustSet

[ソース]

2つのアカウントをリンクするトラストラインを作成または変更します。

TrustSet JSONの例

{
   "TransactionType": "TrustSet",
   "Account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX",
   "Fee": "12",
   "Flags": 262144,
   "LastLedgerSequence": 8007750,
   "LimitAmount": {
     "currency": "USD",
     "issuer": "rsP3mgGb2tcYUrxiLFiHJiQXhsziegtwBc",
     "value": "100"
   },
   "Sequence": 12
}

TrustSet フィールド

共通フィールドに加えて、TrustSetトランザクションは以下のフィールドを使用します。

フィールド JSONの型 内部の型 説明
LimitAmount オブジェクト Amount 作成または変更するトラストラインを定義する通貨額フォーマットのオブジェクト。
LimitAmount.currency 文字列 (Amount.currency) このトラストラインが適用される通貨。3文字のISO 4217通貨コード または通貨フォーマットに基づく160ビットの16進数値です。「XRP」は無効です。
LimitAmount.value 文字列 (Amount.value) このトラストラインに設定される限度を表す引用符で囲んだ10進数値。
LimitAmount.issuer 文字列 (Amount.issuer) 信頼したいアカウントのアドレス。
QualityIn 数値 UInt32 (省略可) このトラストラインの受入額を、1,000,000,000単位当たりのこの数値の割合で評価。値0は、残高を額面価格で扱うことを示す省略表現です。
QualityOut 数値 UInt32 (省略可) このトラストラインの払出額を、1,000,000,000単位当たりのこの数値の割合で評価。値0は、残高を額面価格で扱うことを示す省略表現です。

LimitAmount.issuerで指定されたアカウントがトラストラインの着信をブロックしている場合、結果コードtecNO_PERMISSIONでトランザクションが失敗します。 (DisallowIncoming amendment が必要です)

TrustSetのフラグ

TrustSetタイプのトランザクションについては、Flagsフィールドで以下の値が追加でサポートされます。

フラグ名 16進数値 10進数値 説明
tfSetfAuth 0x00010000 65536 このアカウントから発行された通貨を相手方に保有させることを許可します。(asfRequireAuth AccountSet フラグを使用しない場合は効果がありません。)設定を解除できません。
tfSetNoRipple 0x00020000 131072 2つのトラストラインの両方でこのフラグが有効になっている場合、同じ通貨のトラストライン間のリップリングをブロックする No Ripple フラグを有効にします。
tfClearNoRipple 0x00040000 262144 No Rippleフラグを無効にし、このトラストラインでリップリングを許可します。
tfSetFreeze 0x00100000 1048576 トラストラインを凍結します。
tfClearFreeze 0x00200000 2097152 トラストラインを凍結解除します。

トランザクションがNo Rippleを有効にしようとしたができない場合、結果コード tecNO_PERMISSION で失敗します。fix1578 amendmentが有効になる前は、このようなトランザクションは代わりにtesSUCCESS(可能な限りの他の変更を行う)という結果になりました。

トラストラインのAuthフラグは、トラストラインがその所有者のXRP必要準備金に反映されるかどうかを左右しません。ただしAuthフラグを有効にすると、トラストラインがデフォルト状態になることがありません。承認されたトラストラインは削除できません。イシュアーは、トラストラインの限度と残高が0であっても、tfSetfAuthフラグだけを使用してトラストラインを事前承認できます。