最終更新:
編集

AMMClawback

[ソース]

発行したトークンをAMMプールに預け入れた保有者からトークンを回収します。

Clawbackはデフォルトで無効です。Clawbackを使用するには、AccountSetトランザクションを送信して、Allow Trust Line Clawback設定を有効にする必要があります。すでにトークンが発行済みである発行者はClawbackを有効にできません。Allow Trust Line Clawbackを有効にするには、トラストライン、オファー、エスクロー、ペイメントチャネル、チェック、署名者リストを設定する前に、所有者ディレクトリを完全に空にする必要があります。Clawbackを有効にした後は、元に戻すことはできません。つまり発行者アカウントは、トラストラインの発行済みトークンを回収できる権利を永続的に得ます。

(AMMClawback amendmentにより追加されました。)

AMMClawback JSONの例

{
  "TransactionType": "AMMClawback",
  "Account": "rPdYxU9dNkbzC5Y2h4jLbVJ3rMRrk7WVRL",
  "Holder": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",
  "Asset": {
      "currency" : "FOO",
      "issuer" : "rPdYxU9dNkbzC5Y2h4jLbVJ3rMRrk7WVRL"
  },
  "Asset2" : {
      "currency" : "BAR",
      "issuer" : "rHtptZx1yHf6Yv43s1RWffM3XnEYv3XhRg"
  },
  "Amount": {
      "currency" : "FOO",
      "issuer" : "rPdYxU9dNkbzC5Y2h4jLbVJ3rMRrk7WVRL",
      "value" : "1000"
  }
}

AMMClawback フィールド

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

フィールドJSONの型内部の型必須?説明
Account文字列 - アドレスAccountIDはい回収する資産の発行者。このトランザクションは、発行者のみが送信できます。
AssetオブジェクトIssueはいAMMプールから回収したい資産を指定します。資産はXRP、トークン、またはMPT(金額なしの指定を参照)です。issuerフィールドはAccountと一致していなければなりません。
Asset2オブジェクトIssueはいAMMのプール内のもう一方の資産を指定します。資産はXRP、トークン、またはMPT(金額なしの指定を参照)です。
Amount通貨額AmountいいえAMMアカウントから回収する最大額を指定します。currencyissuerサブフィールドはAssetサブフィールドと一致していなければなりません。このフィールドが指定されていない場合、またはvalueサブフィールドがAMMの保有者の利用可能なトークンを超えている場合、保有者のすべてのトークンが回収されます。
Holder文字列 - アドレスAccountIDはい回収する資産を保有しているアカウント。

AMMClawbackのフラグ

フラグ名Hex値10進数値説明
tfClawTwoAssets0x000000011Assetの指定額を回収し、AMMプールの資産比率に基づいてAsset2の対応する額を回収します。両方の資産はAccountフィールドの発行者によって発行されなければなりません。このフラグが有効でない場合、発行者はAssetの指定された額を回収しますが、Asset2の対応する比率はHolderに返されます。

エラーのケース

すべてのトランザクションで発生する可能性のあるエラーに加えて、AMMClawbackトランザクションは以下のトランザクション結果コードをもたらすことがあります。

エラーコード説明
tecNO_PERMISSIONlsfAllowTrustlineClawback フラグが有効になっていない状態で AMM からトークンを回収しようとした場合、または AMM で両方の資産を発行していない状態で tfClawTwoAssets フラグが有効になっている場合に発生します。また、Asset の発行者が Account と一致しない場合にも発生します。
tecAMM_BALANCEHolderがAMMプールのLPトークンを保有していない場合に発生します。
temDISABLEDAMMClawback amendmentが有効になっていない場合に発生します。
temBAD_AMOUNTAMMClawbackトランザクションのAmountフィールドが0以下の場合、またはcurrencyissuerサブフィールドがAmountAssetの間で一致しない場合に発生します。
temINVALID_FLAGtfClawTwoAssets以外のフラグを有効にしようとした場合に発生します。
temMALFORMEDissuerサブフィールドがAssetAccountの間で一致しない場合、AccountHolderと同じ場合、またはAssetがXRPの場合に発生します。
terNO_AMMAssetAsset2で指定されたAMMプールが存在しない場合に発生します。

関連項目