Skip to content

Instantly share code, notes, and snippets.

@PillarDevelopment
Created February 20, 2018 06:23
Show Gist options
  • Select an option

  • Save PillarDevelopment/fca1b2135bcde920ca780dcbe8c40fd7 to your computer and use it in GitHub Desktop.

Select an option

Save PillarDevelopment/fca1b2135bcde920ca780dcbe8c40fd7 to your computer and use it in GitHub Desktop.
Snapshots Ethereum Smart contract
В нашем проекте решили эту проблему следующим образом:
Нам необходимо иметь массив всех адресов с нашими токенами.
Если мы хотим решить эту задачу без привлечения оракулов( или внешней обработки, а лишь инструментами смарт контракта)
Нам необходимо в функцию mint - если ваш токен подразумевает выпуск и функцию transfer добавить дополнительный массив
Quote
address[] public invstors_adrees;
И при выпуске токенов или при трансфере проверяем нет ли адреса в масиве и если нету добавляем. Можете делать проверку на исключение итд как пожелаете, но проще без проверки т.к. у вас тогда будет полная база, всех кто использовал ваши токены.
Quote
invstors_adrees.push(_address) -1;
И функцию начисления может перебрать адреса прям в смарт контракте, поскольку мы при сканировании не изменяем переменные и сам блокчейн это не сильно газозатратно.
Плюс наше dApps обращаясь к этому массиву может легче парсить без реализации дополнительного функционала отслеживания перевода посредством парсенья блоков.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment