前段时段用remix部署uniswap,步骤挺繁琐而且remix占用内存较大,很容易崩溃,并且不能自动化部署,网上js调用合约的很多,go的却很少,自己动手写了一个当练手了。
Go的优势
- 本地可构造链,不需要找水龙头获取测试币
- 无需找RPC节点
- debug测试方便,其实也很挺麻烦的
编译sol生成Go文件可能麻烦点
部署流程
总共需要发起6笔合约交易。
- 部署WETH合约
- 代币合约
- Uniswap工厂合约
- Uniswap RouterV2合约
- 代币合约授予
Approve
路由RouterV2
转移代币权限 - RouterV2合约调用
AddLiquidityETH
添加代币
流动性
准备工作
ABI和合约字节码BINCODE
合约部署的时候需要bincode,有了bincode合约当发生合约调用的时候,evm就知道如何执行,根据input中的参数去abi中转换成函数和参数,执行相应的调用。abi的作用是可以把二进制转换成函数参数。可参考input解析
合约对应的bincode
和abi
,这个可用solcjs
编译和remix
上获取&#x