Что произойдет, если общий баланс токенов превысит общее предложение токена?

Насколько я понимаю, totalSupply - это просто число для информационных целей.
Это не накладывает жесткого ограничения на общую сумму всех балансов, или нет?

Пример:

function transfer(address receiver, uint numTokens) public returns (bool) {
  require(numTokens <= balances[msg.sender]);
  balances[msg.sender] = balances[msg.sender] — numTokens;//Remove This
  balances[receiver] = balances[receiver] + numTokens;
  emit Transfer(msg.sender, receiver, numTokens);
  return true;
}

Если бы я удалил строку, которая вычитает баланс, токены появились бы только на балансе получателей, но баланс отправителей не изменился бы.
Если это произойдет, общее количество существующих токенов было бы больше, чем раньше. Верно ли это?
Правильно ли я понимаю, что отображение баланса — это просто список балансов (сопоставимый со словарем C#)?

Есть ли какие-то последствия, на которые должен обратить внимание программист блокчейна?


person Howie1337    schedule 25.04.2021    source источник


Ответы (1)


Если бы я удалил строку, которая вычитает баланс, токены появились бы только на балансе получателей, но баланс отправителей не изменился бы.

Это правильно.

Если это произойдет, общее количество существующих токенов будет больше, чем раньше.

Исправьте общую сумму существующих токенов.

Но стандарты токенов (ERC-20, ERC-721 и т. д.) также предполагают, что вы вычисляете общее количество существующих токенов (обычно хранящихся в свойстве с именем totalSupply). Поскольку ваш фрагмент не обновляет этот totalSupply, его значение станет неверным.

Общее предложение в основном используется исследователями блокчейнов, такими как Etherscan, для статистических целей (подсчет крупнейших держателей токена, их процента владения и т. д.).

Другие системы, такие как децентрализованные биржи или децентрализованные приложения в целом, могут вести себя неожиданно, когда выход totalSupply() не соответствует реальному общему предложению. Но все зависит от их реализации, поэтому общего ответа нет.

person Petr Hejda    schedule 25.04.2021
comment
Большое спасибо за ответ ! Поэтому обратите внимание на расчеты баланса, потому что в ваших же интересах, чтобы они были правильными. иначе готовьтесь к непредвиденным последствиям. ? - person Howie1337; 25.04.2021
comment
@ Howie1337 Точно - person Petr Hejda; 26.04.2021