# 通过DEX合约交互后端购买TOKEN的方法

By [FF@Livermore](https://paragraph.com/@450000) · 2022-09-02

---

之前因为不会这个方法，

错过了一个当天十倍收益的机会。

为了以后不错过这样的机会，

天不负有心人，

终于把方法研究出来了，

探索过程的艰辛就不废话了，

直接上结果，希望对各位老铁有帮助！

（科学家可以绕过，小白文章无需浪费时间）

* * *

通过DEX路由合约交互实现后端购买TOKEN的方法：
--------------------------

本文以STEPN自己研发的Dooar举例子，

1、使用的工具：ETH区块链浏览器 [etherscan.io](http://etherscan.io) ，链上钱包（本文使用的Metamask）

2、使用ETH区块链浏览器搜索Dooar合约地址：

0x53e0e51b5ed9202110d7ecd637a4581db8b9879f

进入Contract的Write Contract 界面，然后连接钱包。

如下图：

![通过合约购买token的前置步骤](https://storage.googleapis.com/papyrus_images/06b53b91d8d18e546a70e48ada92189ad23b192236724f806414e459e6447f2c.png)

通过合约购买token的前置步骤

下拉页面找到第14个方法：swapExactTokensForTokens。

这是负责交易Token的函数。

![](https://storage.googleapis.com/papyrus_images/24401543049f5cef132a899a1b479d8633c0b8d1109a0609a7b8a6eee354dac5.png)

一共有五个值需要填写，

amountIn (uint256)：需要转出的代币数量

amountOutMin (uint256): 购买最小代币数量，想要市价交易设置为1就行。

path (address\[\]): 需要交换的Token的合约地址，卖出的地址在前，买入的地址在后

to (address): 接收代币的地址，填写自己的钱包地址

deadline (uint256): 执行存活时间，unix时间戳格式，可以通过这个网站获取

[www.unixtimestamp.com](http://www.unixtimestamp.com)

### 示例：

在amountIn处填写数量时要先确认代币的精度，否则会多买或少买。

通过区块链浏览器查询合约信息，比如USDC合约

0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48

![](https://storage.googleapis.com/papyrus_images/73dcba81cfdb77c8df54d8f94e8254352dcc231daa6bcff4f22f152402a4e8ff.png)

会看到上面这个图，Decimals就是精度，为“6”意味着小数点后有六个零。

想要购买1USDC，在amountIn后面填写1000000.

想要卖出1个GST，用同样的方法使用ETH区块链浏览器找到GST合约地址：

0x473037de59cf9484632f4A27B509CFE8d4a31404

![](https://storage.googleapis.com/papyrus_images/cab690a0a000920fbf995c2f80d2fb2470585c59289bf89a5b7ca2204f310408.png)

精度为“8”，小数点后有8个零，amountIn处填写100000000表示一个GST，以此类推。

下面开始实操，我卖出47.51个GST：

amountIn (uint256)：填写“4751000000”；

amountOutMin (uint256): 填写“1”；

path (address\[\]): 填写

“0x473037de59cf9484632f4A27B509CFE8d4a31404,

0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48”；

to (address): 我自己的钱包地址；

deadline (uint256): 1662022556，获取当前的时间戳后，把时间戳倒数第四位数字+1，这样这笔交易就能存活17分钟，如果在17分钟后本交易还没被执行成功，就会失败。

![](https://storage.googleapis.com/papyrus_images/45b50ac26fe1696adf51874380d4d5c693a938fcecc47c9e2eddcf5a14a02fd4.png)

填写完之后点击Write按钮，

会弹出钱包确认通知，

授权后数据即发送上链。

![](https://storage.googleapis.com/papyrus_images/6262ae84647501c5f7cf1a8cbdf7e319b59acf1e3b555b77a8c7190668662c91.png)

[0x9252ee200376130097dbd5d5a716bb000b06b3547a4afc469aeca72c15c7fbb1](https://etherscan.io/tx/0x9252ee200376130097dbd5d5a716bb000b06b3547a4afc469aeca72c15c7fbb1)

这个就是刚才我那笔交易的链上hash，显示47.51GST换了14.19个USDC。

* * *

现在我相信你也可以独立完成这些操作了。

如果在实操过程中出现一些没有遇到的问题，

欢迎联系我交换信息，

每一个错误都是拿钱试出来的，

更新出来后可以避免重复踩坑。

目前比较容易出错的地方是在时间戳那里，

时间戳错误容易导致交易失败，

时间戳的规则请认真核对。

* * *

如果觉得这篇文章对你有帮助，

欢迎各位老板看心情打赏。

0xAF65293711b6cC4955dC9BDA98f2605E0221a386

接受任何ERC20和BSC20代币。

![](https://storage.googleapis.com/papyrus_images/fc517509c0070cbf5ea1ad0454e65f39fe77fcb84b5f45b77f60abd17aeae06d.png)

2022年9月2日23:20

Mirror：[mirror.xyz/450000.eth](https://mirror.xyz/450000.eth)

推特：@feikeju

微信：feikeju

---

*Originally published on [FF@Livermore](https://paragraph.com/@450000/dex-token)*
