Мой токен построен с запасом 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, а баланс контракта отсутствует, что говорит о том, что что-то пошло не так. Предложение отражает то, что должно происходить, но общий баланс непостоянен.
Что я сделал не так?
Что я сделал не так?
НЕПРАВИЛЬНЫЙ
_balances[msg.sender] = _balances[msg.sender].sub(tokensToTransfer);
ПРАВИЛЬНЫЙ
_balances[msg.sender] = _balances[msg.sender].sub(value);
Почему к договору ничего не прислали?
Я не видел никакого кода для добавления баланса для контракта