最終更新:
編集

AMMCreate

[ソース]

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

資産(代替可能トークンまたはXRP)のペアを取引するための新しい自動マーケットメーカー(AMM)インスタンスを作成します。

AMMを表すAMMエントリ特殊なAccountRootエントリを作成します。また、両資産の開始残高の所有権を送信者から、作成されたAccountRootに移し、初期残高の流動性プロバイダトークン(LPトークン)をAMMアカウントから送信者に発行します。

注意
AMMを作成する際には、各資産を(ほぼ)同額ずつ投入する必要があります。そうしないと、他のユーザがこのAMMを使った取引で利益を得ることができ、あなたがその損失を被ることとなります(アービトラージの実行。流動性プロバイダが負う通貨リスクは、資産ペアのボラティリティ(不均衡の可能性)が高ければ高いほど、大きくなります。取引手数料が高いほど、このリスクを相殺することになりますので、資産ペアのボラティリティに応じて取引手数料を設定するとよいでしょう。

AMMCreate JSONの例

{
    "Account" : "rJVUeRqDFNs2xqA7ncVE6ZoAhPUoaJJSQm",
    "Amount" : {
        "currency" : "TST",
        "issuer" : "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd",
        "value" : "25"
    },
    "Amount2" : "250000000",
    "Fee" : "10",
    "Flags" : 2147483648,
    "Sequence" : 6,
    "TradingFee" : 500,
    "TransactionType" : "AMMCreate"
}

AMMCreate フィールド

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

| フィールド | JSONの型 | 内部の型 | 必須? | 説明 | |:-------------|:---- -----|:-----------|:------|:------------| | Amount | 通貨額 | Amount | はい | このAMMの最初の資金となる2つの資産のうち、1つ目の資産です。これは正数である必要があります。 | | Amount2 | 通貨額 | Amount | はい | このAMMの最初の資金となる2つの資産のうち、2つ目の資産です。これは正数である必要があります。 | | TradingFee | 数値 | UInt16 | はい | このAMMインスタンスに対する取引に課される手数料を1/100,000単位で指定します(値1は0.001%に相当)。最大値は1000で、1%の手数料を意味します。最小値は 0です。 |

AmountAmount2の一方または両方はトークンであり、最大でどちらか一方をXRPにすることが可能です。通貨コードと発行者が同じものは使用できません。AMMのLPトークンは、別のAMMの資産の1つとして使用することができます。トークンの発行者はDefault Rippleを有効にしていなければなりません。Clawback Amendment が有効になっている場合、それらの発行者はAllow Clawbackフラグを有効にしていてはいけません。AMMのLPトークンは、別のAMMの資産の一つとして使用することはできません。

特殊なトランザクションコスト

各AMMインスタンスはAccountRootレジャーエントリ、AMMレジャーエントリ、プール内の各トークンのトラストラインを含むため、AMMCreateトランザクションは台帳スパムを抑止するために通常よりもはるかに高いトランザクションコストを必要とします。標準的な最低0.00001XRPの代わりに、AMMCreateは少なくとも所有者準備金の増分(現在は2XRP)を破棄しなければなりません。これはAccountDeleteトランザクションと同じ特別なトランザクションコストです。

エラーケース

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

エラーコード説明
temDISABLEDこのネットワークでは、AMM機能
temINVALID_FLAGトランザクションに無効なFlags値が指定されています。現在、このトランザクションタイプに定義されたフラグはないので、グローバルフラグのみが許可されます。
temBAD_AMM_TOKENSAmountAmount2値が正しくありません。例えば、両方とも同じトークンを参照している場合です。
temBAD_FEETradingFeeの値が不正です。ゼロまたは正の整数でなければならず、1000を超えることはできません。
terNO_ACCOUNTリクエストで参照されたいずれかのアカウントが存在しません。
tecNO_AUTH送信者は資産(AmountまたはAmount2)のいずれかを保有する権限がありません。
tecNO_LINE送信者は資産(AmountまたはAmount2)のうちいずれか1つに対するトラストラインを保有していません。
tecFROZEN資産(AmountまたはAmount2)の少なくとも1つが現在凍結されています。
tecUNFUNDED_AMM送信者はAmountAmount2で指定された金額をAMMに入金するための十分な資金を保有していません。
tecAMM_EXISTSこの通貨ペアを扱っているAMMが既に存在しています。