以太坊DEX的交易与套利:获取汇率(第1部分)

探索围绕以太坊建立使用去中心化交易所(DEX)开发一个简单的自动交易(套利)机器人。

在本系列教程中,探索围绕以太坊建立使用去中心化交易所(DEX)开发一个简单的自动交易(套利)机器人。

教程中将使用Javascript,Solidity和1inch dex聚合器和闪电贷。

由于主题较多,教程将分为以下几个部分介绍:

本系列文章的目的是学习如何使用DeFi协议(例如DEX和ERC20代币)构建去中心化应用,而不是以暴富为目标哦。

img

概念简介

什么是去中心化交易所(DEX)?

这是通过代码运行的兑换。在DEX,无需中间人就可以直接交易加密货币(通过合约交易)。在DEX上,每笔交易通常都写入区块链。

注:在本文中,去中心化交易所将简写为DEX

什么是DEX聚合器?

DEX聚合器是一个平台,它通过在一揽子DEX中,找到在给定时间和数量下,最优的价格来执行兑换交易。

什么是ERC20 Token(代币 or 通证)?

ERC20 是以太坊区块链上的代币标准。 这里有一篇文章介绍如何创建ERC20代币.

什么是套利?

套利,简单的说就是在一个市场上买东西,同时在另一个市场上以更高的价格卖出东西,在短暂的的价格差中获利。

在本教程中,我们将套利特指:从一个DEX购买代币,然后在另一个DEX上以更高的价格出售。

在区块链上,早期主要的套利机会主要来自在去中心化和中心化交易之间套利。

关于 1inch DEX 聚合器

1inch 交易所是一个链上去中心化交易所聚合器,由Anton BukovSergej Kunz 开发,能够在一次交易中实现在多个DEX之间拆分订单,为用户提供最佳兑换汇率。 1inch 智能合约开源在Github,你可以看到如何使用智能合约来寻找交易机会。你还可以在此处访问1inch 网站

img

要在1inch上执行代币兑换,步骤很简单:

  • 根据输入的代币或ETH数量,获得预期可兑换的代币数量。
  • 授权(Approve)交易所使用你的代币
  • 使用第一步的参数进行交易

我们首先需要分析一下1inch exchange智能合约。感兴趣的函数有两个:

  • getExpectedReturn ()
  • swap()

获取预期可兑换的多少代币

  • getExpectedReturn 函数不会修改链上状态,只要你连接到区块链网络节点,就可以调用getExpectedReturn() 函数,不用支付手续费。你可以 web3.js 等相关的库来调用智能合约函数。

它接受交易参数,并将返回你将获得的预期代币数量以及交易如何在DEX上分布。

function getExpectedReturn(
        IERC20 fromToken,
        IERC20 toToken,
        uint256 amount,
        uint256 parts,
        uint256 disableFlags
) public view
returns(
         uint256 returnAmount,
         uint256[] memory distribution
);

函数接受5个参数:

  • fromToken :当前拥有(用来兑换)的代币合约地址。
  • toToken:要兑换代币合约地址。
  • amount :兑换所用的代币数量。
  • parts :期望可切分的份数。检查函数 distribution 返回值可以获取更多详细信息,默认情况下我们将使用 100。
  • disableFlags :启动额外的选项,例如,禁用特定的DEX

函...

剩余50%的内容购买后可查看

点赞 4
收藏 8
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

2 条评论

请先 登录 后评论
翻译小组
翻译小组
我代表了好多社区小伙伴~