Как добавить комиссию за перевод токена? BEP20 Solidity
Суть. Я пытаюсь сделать так, чтобы при переводе токенов кому-либо, списывалась комиссия с отправителя и переводилась на отдельный адрес, созданный специально для комиссий. Я пытался что-то сделать, да по итогу не работает (код в самом низу).
Как сделать комиссию при переводе токена? Использую BEP20
Я так понимаю, нужно изменить что-то в transfer или transferFrom?
Вот сам transfer (по дефолту)
function transfer(address recipient, uint256 amount) external returns (bool) {
_transfer(_msgSender(), recipient, amount);
return true;
}
И transferFrom (дефолтный)
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool) {
_transfer(sender, recipient, amount);
_approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "BEP20: transfer amount exceeds allowance"));
return true;
}
вот мои попытки:
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool) {
uint256 percent = amount / 10; // считаем процент (10% от суммы)
_transfer(_msgSender(), own, percent);
_transfer(_msgSender(), recipient, amount);
_approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount));
_approve(own, _msgSender(), _allowances[own][_msgSender()].add(percent));
return true;
}