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

之前因为不会这个方法,

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

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

天不负有心人,

终于把方法研究出来了,

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

直接上结果,希望对各位老铁有帮助!

(科学家可以绕过,小白文章无需浪费时间)


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

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

1、使用的工具:ETH区块链浏览器 etherscan.io ,链上钱包(本文使用的Metamask)

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

0x53e0e51b5ed9202110d7ecd637a4581db8b9879f

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

如下图:

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

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

这是负责交易Token的函数。

post image

一共有五个值需要填写,

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

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

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

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

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

www.unixtimestamp.com

示例:

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

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

0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48

post image

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

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

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

0x473037de59cf9484632f4A27B509CFE8d4a31404

post image

精度为“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分钟后本交易还没被执行成功,就会失败。

post image

填写完之后点击Write按钮,

会弹出钱包确认通知,

授权后数据即发送上链。

post image

0x9252ee200376130097dbd5d5a716bb000b06b3547a4afc469aeca72c15c7fbb1

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


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

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

欢迎联系我交换信息,

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

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

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

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

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


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

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

0xAF65293711b6cC4955dC9BDA98f2605E0221a386

接受任何ERC20和BSC20代币。

post image

2022年9月2日23:20

Mirror:mirror.xyz/450000.eth

推特:@feikeju

微信:feikeju