繁体   English   中英

抵押现有的 ERC20 代币

[英]staking existing ERC20 token

如何让现有的 erc20 运行以防止某些持有者进行交易?

我正在尝试做一个抵押功能。 我可以写一个新合约来控制现有的erc20合约吗?

如果您希望在合约本身内暂停代币传输,则必须将影响代币持有者transfer (或代表持有者的一方transferFrom )能力的逻辑写入合约。 因此,如果您已经部署了合约,则必须部署具有逻辑的新 ERC20 合约——如果您希望抵押机制在同一个合约中。 然后,您必须将余额从合同的先前版本转移到新部署的合同。 虽然可能,但复制合约状态会产生 gas 费用。 您可以让您的代币持有者通过使用某种mintrecover功能来支付此 gas 成本,该功能会读取地址的旧合约余额,在新合约上创建余额,然后将余额标记为已转移。

或者,对于您的第二个问题,您可以通过附加合同来促进抵押,用户可以在 ERC20 合同中设置配额。 然后,用户可以用像一个互动stake这一新的跑马圈地合同的功能。 Staking 合约将使用transferFrom ERC20 函数增加用户在 Staking 合约内的 Staking 代币数量后,将代币从所有者transferFrom Staking 合约的地址 这将记录持有者的抵押“信用”,并通过将其所有权转移到抵押合约来绑定代币。 然后用户可以unstake ,这将减少用户unstake的代币数量,并将代币从抵押合约的地址转移回代币持有者的地址。 这种方法有更多的移动部分,但在开发机制时可能是一个更灵活的步骤,因为您可以部署新版本的 staking 合约,而无需重新部署 ERC20 合约或转移余额。 用户将能够像往常一样在多个版本的 staking 合约中进行转移,并且从之前版本的 staking 合约中提取代币将非常高效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM