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

最后更新于:2022-09-02 23:27:02

之前因为不会这个方法, 错过了一个当天十倍收益的机会。 为了以后不错过这样的机会, 天不负有心人, 终于把方法研究出来了, 探索过程的艰辛就不废话了, 直接上结果,希望对各位老铁有帮助! (科学家可以绕过,小白文章无需浪费时间)

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

本文以STEPN自己研发的Dooar举例子, 1、使用的工具:ETH区块链浏览器 etherscan.io ,链上钱包(本文使用的Metamask) 2、使用ETH区块链浏览器搜索Dooar合约地址: 0x53e0e51b5ed9202110d7ecd637a4581db8b9879f 进入Contract的Write Contract 界面,然后连接钱包。 如下图:
通过合约购买token的前置步骤
下拉页面找到第14个方法:swapExactTokensForTokens。 这是负责交易Token的函数。
一共有五个值需要填写, amountIn (uint256):需要转出的代币数量 amountOutMin (uint256): 购买最小代币数量,想要市价交易设置为1就行。 path (address[]): 需要交换的Token的合约地址,卖出的地址在前,买入的地址在后 to (address): 接收代币的地址,填写自己的钱包地址 deadline (uint256): 执行存活时间,unix时间戳格式,可以通过这个网站获取 www.unixtimestamp.com

示例:

在amountIn处填写数量时要先确认代币的精度,否则会多买或少买。 通过区块链浏览器查询合约信息,比如USDC合约 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48
会看到上面这个图,Decimals就是精度,为“6”意味着小数点后有六个零。 想要购买1USDC,在amountIn后面填写1000000. 想要卖出1个GST,用同样的方法使用ETH区块链浏览器找到GST合约地址: 0x473037de59cf9484632f4A27B509CFE8d4a31404
精度为“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分钟后本交易还没被执行成功,就会失败。
填写完之后点击Write按钮, 会弹出钱包确认通知, 授权后数据即发送上链。
0x9252ee200376130097dbd5d5a716bb000b06b3547a4afc469aeca72c15c7fbb1 这个就是刚才我那笔交易的链上hash,显示47.51GST换了14.19个USDC。
现在我相信你也可以独立完成这些操作了。 如果在实操过程中出现一些没有遇到的问题, 欢迎联系我交换信息, 每一个错误都是拿钱试出来的, 更新出来后可以避免重复踩坑。 目前比较容易出错的地方是在时间戳那里, 时间戳错误容易导致交易失败, 时间戳的规则请认真核对。
如果觉得这篇文章对你有帮助, 欢迎各位老板看心情打赏。 0xAF65293711b6cC4955dC9BDA98f2605E0221a386 接受任何ERC20和BSC20代币。
2022年9月2日23:20 Mirror:mirror.xyz/450000.eth 推特:@feikeju 微信:feikeju