除了通常的 ETH gas 费之外,还有“收取交易费”的新代币。我说的是从代币本身中减去的交易费用,所以可以说 100 个代币被转让 1 个代币作为“交易费”进入中央账户,其可行的代币(如 $GRUMPY)拥有它,但我无法在代码上找到允许的功能我这样做。
答案 0 :(得分:0)
也对这里感兴趣。 我有一些简单的东西,请参见下面的 _transfer 函数。 问题是它会创建 2 个交易和更多的 Gas 费用来支付。 不知道如果这样会降低费用,您是否拆分并将费用发送给合同本身。
这只是一个想法,而不是 testet。对来自社区的其他解决方案感兴趣。
function _transfer(address sender, address recipient, uint256 amount) internal virtual {
require(sender != address(0), "ERC20: transfer from the zero address");
require(recipient != address(0), "ERC20: transfer to the zero address");
address FeeReceiverAdr = 0xE037D395bB24C69bD0347F4e1652199BF60a41d1;
address payable FeeReceiver = payable(FeeReceiverAdr); // Correct since Solidity >= 0.6.0
_beforeTokenTransfer(sender, recipient, amount);
uint bpsfee = 1618;
uint bps = 100000;
uint256 senderBalance = _balances[sender];
require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
_balances[sender] = senderBalance - amount;
_balances[recipient] += taxedValue;
_balances[FeeReceiver] += fee;
emit Transfer(sender, recipient, taxedValue);
emit Transfer(sender, FeeReceiver, fee);
}