最終更新:
編集

Clawback

[ソース]

Clawback amendmentが必要です。

あなたのアカウントが発行したトークンを回収します。

Clawback機能はデフォルトで無効になっています。使用するには、AccountSetトランザクションを送信してAllow Trust Line Clawback設定を有効にする必要があります。既存のトークンを持つ発行者はClawback機能を有効にできません。つまり、トラストライン、オファー、エスクロー、ペイメントチャネル、チェック、または署名者リストを設定する前に行う必要があります。Clawback機能を有効にした後、元に戻すことはできません:アカウントは永久にトラストラインで発行された資産を回収する権限を得ます。

Clawback JSONの例

{
  "TransactionType": "Clawback",
  "Account": "rp6abvbTbjoce8ZDJkT6snvxTZSYMBCC9S",
  "Amount": {
      "currency": "FOO",
      "issuer": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW",
      "value": "314.159"
    }
}

Clawback フィールド

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

フィールドJSONの型内部の型説明
Amount通貨額Amount回収する金額と、その金額を回収する相手を表します。valueサブフィールドの回収する数量はゼロであってはなりません。これが現在の残高より多い場合、トランザクションは全残高を回収します。サブフィールドAmount内のissuerはトークン所有者のアカウントを表します。
Holder文字列AccountID(任意) 回収する相手のアカウントアドレスを指定します。回収対象のアカウントの所有するMPTokenオブジェクトの残高が非ゼロである必要があります。

注記
XRP LedgerのIOU(トラストライン)では、トークンを発行した側を_発行者_と呼びますが、トラストラインは双方向性があり、設定によっては双方を発行者とみなすことができます。このトランザクションでは、トークン発行者のアドレスはAccountフィールドにあり、トークン保有者のアドレスはAmountフィールドのissuerサブフィールドにあります。

注記
MPTの保有者から資金を回収するには、発行者はMPTokenIssuanceCreateトランザクションを使用してMPTを作成するときにtfMPTCanClawbackフラグを設定して、MPTがClawbackを許可することを指定しなければなりません。このフラグが設定されたMPTが作成されたと仮定すると、Clawbackトランザクションを使用して回収を行うことができます。

エラーケース

すべてのトランザクションで発生する可能性のあるエラーに加えて、Clawbackトランザクションでは、次のトランザクション結果コードが発生する可能性があります。

エラーコード説明
temDISABLEDClawback amendmentが有効ではありません。
temBAD_AMOUNT保有者の残高が0です。回収しようとする金額が保有者の残高を超えていてもエラーにはなりません。また、Amountに記載されている相手がこのトランザクションを発行しているAccountと同じ場合にもエラーが発生します。
tecNO_LINE取引相手とのトラストラインがない、またはトラストラインの残高が0です。
tecNO_PERMISSIONlsfNoFreezeが設定されているときにlsfAllowTrustlineClawbackを設定、またはlsfAllowTrustLineClawbackが設定されているときにlsfNoFreezeを設定しようとしています。