Этот вопрос носит немного концептуальный характер, поэтому, надеюсь, эта картинка поможет прояснить мое недоразумение.
Изображение смарт-контракт краудсейла, развернутый по адресу 0x2. Пользователь по адресу 0x01 покупает токен. Вот мое понимание того, что происходит:
- Контракт краудсейла (@ адрес: 0x2) принимает эфир от учетной записи пользователя (@ адрес: 0x1)
- Контракт краудсейла хранит 0x1 как приобретенный токен (важно: эта информация хранится в смарт-контракте @address 0x2)
Теперь мой вопрос: если 0x1 - это учетная запись пользователя (а не смарт-контракт), то по адресу 0x1 нет кода. Я думал, что учетная запись пользователя просто состоит из адреса + эфира, связанного с адресом, как он может также хранить тот факт, что 0x1 владеет токеном ERC20? Например, я могу войти в MetaMask и (перед тем, как щелкнуть опцию «добавить токен») MetaMask может увидеть, что у меня есть токен ... как это возможно?
Transfer
или обращается к службе, которая это делает. (Это то, что делают Ethplorer и Etherscan.) - person user94559   schedule 26.03.2018