*译文出自:登链翻译计划
*译者:翻译小组
*校对:Tiny熊
在上一篇文章中我们介绍了我们机器人背后的三个主要概念:套利、基于合约的交易和乐观转账。
在这篇文章中,我们将介绍如何构建一个程序,以观察并执行有利可图的套利交易。
这是我们做的整体流程:
套利交易流程
1.程序(Bot)正在观察Uniswap和Sushiswap上ETH-Dai配对的价格。
2.当它发现一个有利可图的套利机会时,它就会向我们部署的合约发送一笔交易。
3.在这笔交易中,合约将:
a)使用闪电兑,乐观地从价格较低的资产池中借入资产。
b)立即在较高的资产池出售资产。
c)偿还闪电兑,将差额收入囊中。
让我们一起来实现这些吧!
我们的程序是在Node.js中使用ethers.js库编写的,并与Infura节点相连,套利智能合约是用Solidity编写。
Infura
我们的后端部分是用Node写的,将使用Infura节点来观察Uniswap和Sushiswap合约上ETH和Dai的价格。这里会依靠Infura节点来获取主网每个新区块产生的价格。如果你没有免费的Infura账户,你可以在这里注册。
.env配置
这是超级重要的!*我们还需要存储我们的私钥来签署主网交易。我们把所有的敏感信息都放在.env文件中(查看在repo中的例子)。我们还输入了套利合约的地址和Infura主网节点的密钥。PRIVATE_KEY=FLASH_LOANER=INFURA_KEY=
确保PRIVATE_KEY与部署FLASH_LOANER合约的相同。另外,与PRIVATE_KEY相关联的以太坊账户需要有足够的资金来支付Gas费用,Gas费用可能很高。
如果你不确定我们为什么要这样做,请阅读这篇优秀的文章,解释如何避免将你的私钥上传到Github。正如文章所解释的,我们需要将敏感信息放在这个.env文件中,然后我们将其添加到.gitignore文件中,像这样:
.envyarn.lockpackage-lock.jsonnode_modules
这样,当我们把信息推送到Github时,这个文件就不会被提交。这是超级,超级重要的!
Ethers.js
我们使用Ethers.js是因为它兼容Typescript,Typescript是项目的原始语言。这对于Ethereum开发者来说是一个老问题了,但是关于ethers.js和web3,js的更多区别,请看这篇文章。
合约实例
接下来,我们在第11行和第12行实例化Uniswap和Sushiswap合约。
免责声明:作为区块链信息平台,本站所发布文章仅代表作者个人观点,与链闻ChainNews立场无关。文章内的信息、意见等均仅供参考,并非作为或被视为实际投资建议。
本文来源于非小号媒体平台:
登链社区
现已在非小号资讯平台发布105篇作品,
非小号开放平台欢迎币圈作者入驻
入驻指南:
/apply_guide/
本文网址:
/news/9641880.html
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表非小号的观点或立场
上一篇:
盘点零知识证明代表性项目:如何影响和塑造区块链生态系统?
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。