4 个版本 (2 个稳定版)

1.0.4 2024 年 3 月 26 日
1.0.4-astroport-v22023 年 12 月 7 日
1.0.3 2023 年 10 月 23 日
1.0.3-astroport-v22023 年 10 月 31 日

#8 in #流动性

Download history 91/week @ 2024-04-14 110/week @ 2024-04-21 106/week @ 2024-04-28 88/week @ 2024-05-05 39/week @ 2024-05-12 39/week @ 2024-05-19 48/week @ 2024-05-26 193/week @ 2024-06-02 23/week @ 2024-06-09 61/week @ 2024-06-16 44/week @ 2024-06-23 49/week @ 2024-06-30 36/week @ 2024-07-07 50/week @ 2024-07-14 84/week @ 2024-07-21 62/week @ 2024-07-28

每月下载量 232
4 个 crate 中使用(通过 cw-it

GPL-3.0-only

580KB
13K SLoC

Astroport 流动性管理器

Astroport 流动性管理器是一个合约,允许用户通过额外的滑点限制执行从 Astroport xyk 和稳定池提供和提取流动性。此合约旨在不可升级且独立。它仅依赖于实际的 Astroport 工厂地址。流动性管理器还公开了 xyk 和稳定池的提供/提取模拟查询。


InstantiateMsg

使用 Astroport 工厂合约地址初始化合约。

{
  "astroport_factory": "wasm1..."
}

ExecuteMsg

receive

CW20 接收消息。仅处理来自 Astroport LP 代币的提取消息。

{
  "receive": {
    "sender": "wasm...",
    "amount": "123",
    "msg": "<base64_encoded_json_string>"
  }
}

其中 <base64_encoded_json_string> 是以下格式的 base64 编码的 json 字符串

{
  "withdraw_liquidity": {
    "pair_msg": {
      "withdraw_liquidity": {}
    },
    "min_assets_to_receive": [
      {
        "info": {
          "native_token": {
            "denom": "uusd"
          }
        },
        "amount": "100000"
      },
      {
        "info": {
          "token": {
            "contract_addr": "wasm1...cw20address"
          }
        },
        "amount": "100000"
      }
    ]
  }
}

min_assets_to_receive 在提取后执行检查,以确保用户至少收到指定数量的资产。

provide_liquidity

通过流动性管理器提供流动性,并执行滑点限制。处理 XYK 对不平衡的提供,并将多余的资产返回给用户。

{
  "provide_liquidity": {
    "pair_addr": "wasm1...",
    "pair_msg": {
      "provide_liquidity": {
        "assets": [
          {
            "info": {
              "native_token": {
                "denom": "uusd"
              }
            },
            "amount": "100000"
          },
          {
            "info": {
              "token": {
                "contract_addr": "wasm1...cw20address"
              }
            },
            "amount": "100000"
          }
        ],
        "slippage_tolerance": "0.02",
        "auto_stake": true,
        "receiver": "wasm1...addr"
      }
    },
    "min_lp_to_receive": "1000"
  }
}

pair_msg 等于所有池的原生 Astroport 提供消息。 min_lp_to_receive 在提供后执行检查,以确保用户至少收到指定数量的 LP 代币。

QueryMsg

simulate

模拟流动性提供或提取。

提供模拟示例

{
  "simulate_provide": {
    "pair_addr": "wasm1...addr",
    "pair_msg": {
      "provide_liquidity": {
        "assets": [
          {
            "info": {
              "native_token": {
                "denom": "uusd"
              }
            },
            "amount": "100000"
          },
          {
            "info": {
              "token": {
                "contract_addr": "wasm1...cw20address"
              }
            },
            "amount": "100000"
          }
        ],
        "slippage_tolerance": "0.02",
        "auto_stake": true,
        "receiver": "wasm1...addr"
      }
    }
  }
}

提取模拟示例

{
  "simulate_withdraw": {
    "pair_addr": "wasm1...addr",
    "lp_tokens": "1000"
  }
}

依赖关系

~13MB
~256K SLoC