Как добавить комиссию за перевод токена? 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;
  }

Ответы (0 шт):