Solidity - 回购销毁合约是什么?

Solidity - 回购销毁合约实现

这一节我们来讲下区块链中的回购销毁是什么?

回购销毁合约通常是项目方用来控制代币的供应量,通过销毁代币来减少流通量,从而增加代币的稀缺性。合约以设定的价格购买代币,并将其从市场上移除。一旦代币被回购,它们会被永久性地销毁,从而减少了供应量。比如USDT-CHE代币对,将USDT转入到池子中,并且将CHE转入到黑洞地址进行销毁的方式。

下面,我们来演示如何来部署一个回购销毁合约。

首先,我们选择以太坊的Sepolia测试网络。之后,我们部署USDT代币合约和CHE代币合约,默认我们的代币的数量都是100个,精度都是18。

[]()

部署好两个代币后,我们开始部署工厂合约,WETH9合约和路由合约。

[]()

接下来,我们调用router合约的addLiquidity方法添加流动性,也就是添加了一个USDT-CHE的池子。

[]()

添加完成后,我们开始部署repurchase合约。之后,我们调用addCaller和setAmountIn方法。

[]()

详细步骤如下:

1.部署CHE(默认100个,给REPURCHASE授权)
0x0d57285Ed72b1Db83f497bDBE95C25738D10a8E6

2.部署USDT(默认100个,给REPURCHASE授权)
0x7f9Ee0245D3Be4bb8F79e9fCafeD81d34C8A623D

3.部署FACTORY (拿到init_code_hash给router02合约)0x3f65323e8FE950eD6b00c9ade89E32552e5A2b82
此时,CHE-USDT合约地址:
0x87B2Cc033901C512306F011A4CC70461584dcCd9

4.部署WETH
0x0DC5bbEDfEAEB24E266521C009A944FFE8357820

5.部署ROUTER
0xb7b51Abbeb753A5c5314c4C2f9104370fCf60995
触发addLiquidity方法
tokenA:0x0d57285Ed72b1Db83f497bDBE95C25738D10a8E6
tokenB:0x7f9Ee0245D3Be4bb8F79e9fCafeD81d34C8A623D
amountADesired: 1000000000000000000
amountBDesired: 1000000000000000000
amountAMin: 1
amountBMin: 1
To: 0x5B38Da6a701c568545dCfcB03FcB875f56beddC4
Deadline: 999999999999999

6.部署REPURCHASE(转10个USDT到合约内)
0xf2F511aA9Ae98d5dc806523f69Ba09dE568f88D1
触发addCaller方法:0x5B38Da6a701c568545dCfcB03FcB875f56beddC4
触发AmountIn方法:
1000000000000000000

部署完成后,我们触发repurchase合约的swap方法,可以看到其流转日志记录。repurchase合约给USDT-CHE池子转了1 usdt。USDT-CHE池子给黑洞地址转了0.499248873309964947个CHE代币。

[]()

[]()

回购销毁合约的逻辑并不复杂,具体可以详看代码的swap方法逻辑。考虑到每个交易所的手续费的不同,大家在代码中根据情况的不同来调整。这里,我们的手续费是0.3%。

项目源码: https\://github.com/zhihaozhong123/Solidity_Contracts_Learning/tree/master/repurchase

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

0 条评论

请先 登录 后评论
心辰说区块链
心辰说区块链
0xc15d...f612
区块链技术从业者!