Почему баланс держателя больше общего предложения? Почему к договору ничего не прислали?

Мой токен построен с запасом 100 000 000. Каждая транзакция сжигает 0,007%, а еще 0,003% отправляется в контракт, что делает его частью дивидендного пула. Вот передаточная функция:

function transfer(address to, uint256 value) public returns (bool) {
require(value <= _balances[msg.sender]);
require(to != address(0));

uint256 tokensToBurn = value.div(100000).mul(7);
uint256 tokensToDividend = value.div(100000).mul(3);
uint256 tokensToTransfer = value.sub(tokensToBurn).sub(tokensToDividend);

_balances[msg.sender] = _balances[msg.sender].sub(tokensToTransfer);
_balances[to] = _balances[to].add(tokensToTransfer);

_totalSupply = _totalSupply.sub(tokensToBurn);
_totalDividend = _totalDividend.add(tokensToDividend);

emit Transfer(msg.sender, to, tokensToTransfer);
emit Transfer(msg.sender, address(0), tokensToBurn);
emit Transfer(msg.sender, address(this), tokensToDividend);

return true;

}

После перевода 1 миллиона токенов с адреса 1 на адрес 2 балансы были такими:

Адрес 1 : 99 000 100 - неверно, должно быть 99 000 000 Адрес 2 : 999 900 - правильно

Общий запас: 99 999 930 — правильно, предполагает, что 70 были сожжены.

Однако вы заметите, что общий баланс двух адресов составляет 100 000 000, а баланс контракта отсутствует, что говорит о том, что что-то пошло не так. Предложение отражает то, что должно происходить, но общий баланс непостоянен.

Что я сделал не так?

Ответы (1)

Что я сделал не так?

НЕПРАВИЛЬНЫЙ

_balances[msg.sender] = _balances[msg.sender].sub(tokensToTransfer);

ПРАВИЛЬНЫЙ

_balances[msg.sender] = _balances[msg.sender].sub(value);

Почему к договору ничего не прислали?

Я не видел никакого кода для добавления баланса для контракта