AMMCreate
(AMM amendmentにより追加されました。)
資産(代替可能トークンまたはXRP)のペアを取引するための新しい自動マーケットメーカー(AMM)インスタンスを作成します。
AMMを表すAMMエントリと特殊なAccountRootエントリを作成します。また、両資産の開始残高の所有権を送信者から、作成されたAccountRoot
に移し、初期残高の流動性プロバイダトークン(LPトークン)を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 です。 |
Amount
とAmount2
の一方または両方はトークンであり、最大でどちらか一方をXRPにすることが可能です。通貨コードと発行者が同じものは使用できません。AMMのLPトークンは、別のAMMの資産の1つとして使用することができます。トークンの発行者はDefault Rippleを有効にしていなければなりません。AMMのLPトークンは、別のAMMの資産の一つとして使用することはできません。
特殊なトランザクションコスト
各AMMインスタンスはAccountRootレジャーエントリ、AMMレジャーエントリ、プール内の各トークンのトラストラインを含むため、AMMCreateトランザクションは台帳スパムを抑止するために通常よりもはるかに高いトランザクションコストを必要とします。標準的な最低0.00001XRPの代わりに、AMMCreateは少なくとも所有者準備金の増分(現在は2XRP)を破棄しなければなりません。これはAccountDeleteトランザクションと同じ特別なトランザクションコストです。
エラーケース
すべてのトランザクションで発生する可能性のあるエラーに加えて、AMMCreateトランザクションでは、次のトランザクション結果コードが発生する可能性があります。
エラーコード | 説明 |
---|---|
tecAMM_INVALID_TOKENS | Amount またはAmount2 が、このAMMのLPトークンと同じ通貨コードを使用しています。(これが起こることは稀です。) |
tecDUPLICATE | この通貨ペアを扱っているAMMが既に存在しています。 |
tecFROZEN | 資産(Amount またはAmount2 )の少なくとも1つが現在フリーズされています。 |
tecINSUF_RESERVE_LINE | 送信者は、このトランザクションを処理するための準備金要件を満たしていません。おそらく、LPトークンを保持するための新しいトラストラインが必要で、新しいトラストラインの所有者準備金を満たす十分なXRPを持っていないためです。 |
tecNO_AUTH | 送信者は資産(Amount またはAmount2 )のいずれかを保有する権限がありません。 |
tecNO_LINE | 送信者は資産(Amount またはAmount2 )のうちいずれか1つに対するトラストラインを保有していません。 |
tecNO_PERMISSION | 少なくとも1つの入金資産はAMMで使用できません。 |
tecUNFUNDED_AMM | 送信者はAmount とAmount2 で指定された金額をAMMに入金するための十分な資金を保有していません。 |
terNO_RIPPLE | 少なくとも1つの資産の発行者がDefault Rippleフラグを有効にしていません。 |
temAMM_BAD_TOKENS | Amount とAmount2 値が正しくありません。例えば、両方とも同じトークンを参照している場合です。 |
temBAD_FEE | TradingFee の値が不正です。ゼロまたは正の整数でなければならず、1000を超えることはできません。 |
temDISABLED | このネットワークでは、AMM機能が無効になっています。 |