fix deposit

This commit is contained in:
develoQ
2023-02-28 18:20:27 +09:00
parent 8207500805
commit d777e661d1

View File

@@ -57,17 +57,17 @@ status: not_enabled
このトランザクションには5つのモードがあり、どのフラグを指定するかで定義されます。それぞれのモードは、特定のフィールドの組み合わせを必要とし、次の2つのカテゴリーに分類さ れます。
- **ダブルアセットデポジット**: AMMのプールにある両方(2つ)の資産を、既存の資産の残高に比例して預けます。この預け入れは手数料の対象外です。
- **シングルアセットデポジット**, AMMの2つの資産のうち1つだけを預けます。AMMは、この預け入れによってプール内の資産残高がどれだけ変化したかによって、対価として支払われるLPトークンから差し引く手数料を設定します。
- **ダブルアセット入金**: AMMのプールにある両方(2つ)の資産を、既存の資産の残高に比例して預けます。この預け入れは手数料の対象外です。
- **シングルアセット入金**, AMMの2つの資産のうち1つだけを預けます。AMMは、この預け入れによってプール内の資産残高がどれだけ変化したかによって、対価として支払われるLPトークンから差し引く手数料を設定します。
以下の項目の組み合わせは、**ダブルアセットデポジット**について示しています。
以下の項目の組み合わせは、**ダブルアセット入金**について示しています。
| フラグ名 | フラグ値 | 指定フィールド | 意味 |
|--------------|--------------|------------------------|---------|
| `tfLPToken` | `0x00010000` | `LPTokenOut`のみ | 指定された量のLPトークンを受け取るように計算された金額の、このAMMの両資産を預けます。預ける金額は、AMMの保有する2つの資産の割合と等しくなります。 |
| `tfTwoAsset` | `0x00100000` | `Amount``Amount2` | このAMMの両資産を指定された金額まで預けます。実際に預ける金額は、AMMがすでに保有している資産と同じ割合を維持する必要があるため、どちらか一方の預け入れ金額が指定金額より少なくてもかまいません。引き換えに得られるLPトークンの金額は、預けた金額の合計に基づきます。 |
以下の項目の組み合わせは、**シングルアセットデポジット**について示しています。
以下の項目の組み合わせは、**シングルアセット入金**について示しています。
| フラグ名 | フラグ値 | 指定フィールド | 意味 |
|---------------------|--------------|------------------------|---------|
@@ -78,11 +78,11 @@ status: not_enabled
これ以外のフィールドとフラグの組み合わせは無効です。
### シングルアセットデポジット手数料
### シングルアセット入金手数料
シングルアセットデポジットの手数料は、AMMを使って預け入れ金額の一部を他の資産と交換し、ダブルアセットデポジットを行った場合と同じになるように計算されます。AMMの取引手数料は、取引に必要な金額には適用されますが、残りの預け入れ金額には適用されません。 _例えば、AMMの資産プールがUSDとEURで完全に均等に分割されている場合、100USDを預けようとすると、受け取るLPトークンの量は、50EUR+50USDを預けた場合よりもわずかに少なくなります。_
シングルアセット入金の手数料は、AMMを使って預け入れ金額の一部を他の資産と交換し、ダブルアセット入金を行った場合と同じになるように計算されます。AMMの取引手数料は、取引に必要な金額には適用されますが、残りの預け入れ金額には適用されません。 _例えば、AMMの資産プールがUSDとEURで完全に均等に分割されている場合、100USDを預けようとすると、受け取るLPトークンの量は、50EUR+50USDを預けた場合よりもわずかに少なくなります。_
ダブルアセットデポジットの場合、LPトークンを受け取る数は、以下の計算式で算出できます。
ダブルアセット入金の場合、LPトークンを受け取る数は、以下の計算式で算出できます。
{{ include_svg("img/amm-single-asset-deposit-formula.svg", "L = T × ( (( 1 + (B - (F × (1 - W) × B)) ÷ P)^W) - 1)") }}
<!-- TODO: improve graphic -->
@@ -100,11 +100,11 @@ AMMDepositタイプのトランザクションは、以下のように[`Flags`
| フラグ名 | 16進数値 | 10進数値 | 説明 |
|:--------------------|:-------------|:--------------|:----------------------|
| `tfLPToken` | `0x00010000` | 65536 | ダブルアセットデポジットを行い、指定された額のLPトークンを受け取ります。 |
| `tfSingleAsset` | `0x00080000` | 524288 | 預け入れる資産を指定して、シングルアセットデポジットを行います。 |
| `tfTwoAsset` | `0x00100000` | 1048576 | 両資産を指定金額で預けるダブルアセットデポジットを行います。 |
| `tfOneAssetLPToken` | `0x00200000` | 2097152 | シングルアセットデポジットを行い、指定された額のLPトークンを受け取ります。 |
| `tfLimitLPToken` | `0x00400000` | 4194304 | 有効価格を指定して、シングルアセットデポジットを行います。 |
| `tfLPToken` | `0x00010000` | 65536 | ダブルアセット入金を行い、指定された額のLPトークンを受け取ります。 |
| `tfSingleAsset` | `0x00080000` | 524288 | 預け入れる資産を指定して、シングルアセット入金を行います。 |
| `tfTwoAsset` | `0x00100000` | 1048576 | 両資産を指定金額で預けるダブルアセット入金を行います。 |
| `tfOneAssetLPToken` | `0x00200000` | 2097152 | シングルアセット入金を行い、指定された額のLPトークンを受け取ります。 |
| `tfLimitLPToken` | `0x00400000` | 4194304 | 有効価格を指定して、シングルアセット入金を行います。 |
これらのフラグのうちの **1つのみ** と、任意の[グローバルフラグ](transaction-common-fields.html#グローバルフラグ)を指定する必要があります。
@@ -118,7 +118,7 @@ AMMDepositタイプのトランザクションは、以下のように[`Flags`
|:------------------------|:---------------------------------------------|
| `temBAD_AMM_OPTIONS` | トランザクションで無効なフィールドの組み合わせが指定されました。詳細は、[AMMDepositモード](#ammdepositモード)を参照してください。 |
| `tecFROZEN` | トランザクションは[凍結](freeze.html)されてトークンを預けようとしました。 |
| `tecAMM_BALANCE` | AMMが預け入れを行うのに十分な量の資産を保有していないたとえば、シングルアセットデポジットに必要な残高を保有していない)、または送信者が指定されたトークンを十分に保有していない場合など。 |
| `tecAMM_BALANCE` | AMMが預け入れを行うのに十分な量の資産を保有していないたとえば、シングルアセット入金に必要な残高を保有していない)、または送信者が指定されたトークンを十分に保有していない場合など。 |
| `temBAD_AMM_TOKENS` | トランザクションでLPトークンが正しく指定されています。例えば、`issuer`がAMMのAccountRootアドレスでない、`currency`がこのAMMのLPトークンの通貨コードでない、またはトランザクションがAssetフィールドのいずれかにこのAMMのLPトークンを指定した、など。 |
| `tecAMM_FAILED_DEPOSIT` | 預け入れの条件が成立しませんでした。例えば、`EPrice`フィールドに指定された実効価格が低すぎる場合など。 |
| `tecAMM_INVALID_TOKENS` | このトークンペアのAMMが存在しないか、計算の結果、預け入れ金額がゼロに丸められました。 |