AMM Agent
AMM Agent 用例展示如何管理流动性池与自动化交易:
创建 AMM Agent。
存入 Token 并添加流动性。
发起 AMM 订单,实现自动化交易。
通过 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 可以实现简单的套利策略:
从 OrderBook 创建低价的买单或者高价的卖单。
在 AMM 上创建对应的订单,实现价格差套利。
使用脚本一键完成套利过程。
利用 OrderBook 和 AMM 进行套利:
node ./arbitrage.js --agentId=$AGENT1 --orderbookAgentId=$ORDERBOOKAGENT2 --ammAgentId=$AMMAGENT2
Last updated
Was this helpful?