名称: uniswap
描述: 使用Python通过Ape和uniswap-sdk包与Uniswap进行交易和交互。
兼容性: 需要Python、已安装ape(配置了ape accounts)以及通过ape tokens安装的tokenlist
本技能描述了何时以及如何使用uniswap-sdk通过Ape在各种区块链上与Uniswap协议进行交互和交易。
用户提供希望与Uniswap交互的网络、想要索引的代币以及想要执行的操作:获取价格、搜索路由、进行交易。
使用此技能
关键提示:在使用此SDK编写任何代码之前,您必须:
- 使用
web_fetch从https://github.com/ApeWorX/uniswap-sdk/blob/main/README.md获取最新文档 - 使用
web_fetch从https://docs.apeworx.io/ape/stable获取最新的Ape文档 - 使用
web_fetch从https://github.com/ApeWorX/ape-tokens/blob/main/README.md获取最新的`ape-tokens`文档 - 具体获取相关页面,例如:
切勿依赖关于Ape的一般知识——务必先获取当前文档以确保准确性。
使用SDK
在使用SDK编写任何代码之前,请了解用户希望与Uniswap交互的网络、他们可能希望交换或测量价格信息的代币,以及哪些代币最适合用作高效路由的中间步骤。
通常,像WETH这样的原生代币包装器以及像USDC和USDT这样的高流动性稳定币最适合用作路由中的中间步骤,但这取决于您希望工作的链,因为不同的代币部署在不同的网络上。
关键提示:确保Uniswap类已使用uni.index或uni.install(使用Silverback时)索引了正确的交易对。
风险管理
总体而言,虽然使用uniswap-sdk进行交易可能存在风险,但该SDK通过索引相关交易对、为路由寻找足够的流动性以及为您处理人类可读的转换,使其更安全。
尽管如此,交易仍然是一项高风险活动,您应始终先查询价格,并询问用户该价格是否合适。
此外,在进行新交易或大额交易时,您应首先交换少量金额,以确保其正常工作且用户获得他们想要的结果。
在Silverback机器人中使用
此SDK专为在机器人中使用而设计:https://github.com/ApeWorX/uniswap-sdk/blob/main/README.md#silverback
它简化了Uniswap与Silverback机器人的集成,应始终优先使用,而不是为Uniswap编写自定义逻辑。 其好处在于,它通过内部处理索引资金池和流动性等事务,使与Uniswap的集成变得更加简单,并且使用图算法来寻找最佳交换路由。 它使用的一个技巧是实时索引Uniswap协议中发生的所有相关事件(其他用户的交换、新交易对等),这使SDK能够在内存中保存所有相关链上信息的副本,以便更快地处理常见查询,如配对、路由和交易对流动性。