AMM Agent

AMM Agent 用例展示如何管理流动性池与自动化交易:

  1. 创建 AMM Agent。

  2. 存入 Token 并添加流动性。

  3. 发起 AMM 订单,实现自动化交易。

  4. 通过 Basic 用例中的 Agent 进行吃单完成交易。

创建

执行以下命令创建 AMM Agent:

node ./amm/create.js

输出结果示例:

wBn7-31aDtChhLfUk_eXNG9Nbafa_ghT29XRxk7osiM create amm agent: <YourAMMAgent1>
ORHaLUrAiknTAq2Wszoyl6buJrd3MqDKLTF_2CggLtw create amm agent: <YourAMMAgent2>

将 AMMAGENT1 和 AMMAGENT2 配置到 .env.local 文件中并加载:

export $(cat .env.local | xargs)

Agent 存入 Token

node ./amm/deposit.js --walletN=2 --agentId=$AMMAGENT2

余额检查:

node ./balance.js --address=$AMMAGENT2

添加流动性池

将存入的 Token 添加到 AMM 的流动性池:

node ./amm/addPool.js --walletN=2 --agentId=$AMMAGENT2

查询流动性池信息:

node ./amm/query.js --walletN=2 --agentId=$AMMAGENT2

输出结果示例:

pools {
  "0fLIp-xxRnQ8Nk-ruq8SBY8icaIvZMujnqCGU79fnM0:AttsQGi4xgSOTeHM6CNgEVxlrdZi4Y86LQCF__p4HUM": {
    "py": "50",
    "algo": "UniswapV2",
    "fee": 30,
    "px": "50",
    "y": "AttsQGi4xgSOTeHM6CNgEVxlrdZi4Y86LQCF__p4HUM",
    "balances": {
      "0fLIp-xxRnQ8Nk-ruq8SBY8icaIvZMujnqCGU79fnM0": "50",
      "AttsQGi4xgSOTeHM6CNgEVxlrdZi4Y86LQCF__p4HUM": "50"
    },
    "x": "0fLIp-xxRnQ8Nk-ruq8SBY8icaIvZMujnqCGU79fnM0"
  }
}

创建订单

从 AMM pool 中创建一个订单:

node ./amm/request.js --walletN=2 --agentId=$AMMAGENT2

输出结果示例:

order {
  "ID": 2601,
  "AssetID": "0fLIp-xxRnQ8Nk-ruq8SBY8icaIvZMujnqCGU79fnM0",
  "MakeTx": "zkmqIcN2KNOS38zgAq5AxTfnMeod7OaZUcy_SMOGJqE",
  "ExpireDate": 1733297855923,
  "HolderAssetID": "AttsQGi4xgSOTeHM6CNgEVxlrdZi4Y86LQCF__p4HUM",
  "NoteID": "14ec8heZ5m3XR6j9ZBOIUT-3lhq6qgloaz9ObIG-_PI",
  "IssueDate": 1733297765923,
  "HolderAmount": "5",
  "Amount": "4",
  "Status": "Open",
  "Price": 1.25,
  "Issuer": "xhgS6MeQ4qhYqP21ptsCSHY3m9faNsPs0ewRKB9jvwo"
}

将 NoteID 设置为环境变量:

export NOTEID=<NoteID>

吃单

使用 Basic Agent1 进行吃单:

node ./basic/take.js --walletN=1 --agentId=$AGENT1 --noteId=$NOTEID

交易完成后,查询双方的余额:

node ./balance.js --address=$AGENT1
node ./amm/query.js --walletN=2 --agentId=$AMMAGENT2

套利操作

结合 OrderBook 和 AMM 可以实现简单的套利策略:

  1. 从 OrderBook 创建低价的买单或者高价的卖单。

  2. 在 AMM 上创建对应的订单,实现价格差套利。

  3. 使用脚本一键完成套利过程。

利用 OrderBook 和 AMM 进行套利:

node ./arbitrage.js --agentId=$AGENT1 --orderbookAgentId=$ORDERBOOKAGENT2 --ammAgentId=$AMMAGENT2

Last updated

Was this helpful?