【问题标题】:Without using fallback and receive function?不使用回退和接收功能?
【发布时间】:2021-12-28 22:15:21
【问题描述】:

我写了一个代币智能合约,包括买、卖和转账功能。一旦购买了至少一个代币,tokenPrice 就会翻倍。假设现在 tokenPrice 是 5 wei,有人买了 1 个 token。然后我将 tokenPrice 更改为 10 wei。当卖家想将代币卖回合约时,合约只有5个wei,如何让合约的资金始终足够进行sellToken交易?

【问题讨论】:

    标签: token solidity remix


    【解决方案1】:

    实际上,您尝试做的事情有点棘手。如果您让用户以(例如)5 wei = 1 代币购买,然后立即让他们以 10 wei 转售该代币,这将不一致。我建议也可以让卖出功能将价格降低 5 wei。如果你不想降低价格,你将不得不支付每一个额外的 wei 销售,如果没有,那就不可能了。

    【讨论】:

    • 那么在资金不足的情况下,token的所有者(我)是否可以将ETH从我的个人账户转入合约?
    • 请问您所说的“覆盖每一个额外的 wei 销售”是什么意思?
    • 您必须手动将 ETH 转移到合约中。但是如果在for ex的那一刻。出售代币,合约余额不足,会报错。
    • 我所说的覆盖每卖出一个 Wei 的意思是,例如,如果一个用户以 4 wei 购买 1 个代币,然后以 8 Wei 卖出,合约只有余额4 wei 由于购买的唯一token,假设合约没有预存ether,会因为ether余额不足而报错。
    • 好的。谢谢,看来我必须先发送一些 ETH 才能更改价格。
    猜你喜欢
    • 1970-01-01
    • 2012-12-26
    • 2015-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多