Смарт контракты Ethereum: структурируем токены как акции
Комментарии (6)
9 мая 2017 в 20:01
+1↑
↓
Синтакс солидити конечно хромает :(.
Был класс стал контракт, при этом в контракте-классе функции, а не методы.Больше всего удивляет throw.
Из-за магии в бекграунде немного непонятно, что вирт машина делает, откуда берет все эти данные и куда их сохраняет и как сдает…Видимо у меня это все пролетает мимо в голове.
9 мая 2017 в 21:18
0↑
↓
Очень рекомендую ресурс learnxinyminutes.com/docs/solidity, где очень концентрированно «в кучу» приводится вся информация о Solitidy. Для более упорядоченных знаний имеет смысл обратиться к оригинальной документации https://solidity.readthedocs.io/en/latest/.
Чтобы писать смарт контракты не обязательно понимать, как оно хранится, важнее понимать, что и сколько стОит:)9 мая 2017 в 21:19 (комментарий был изменён)
+1↑
↓
Есть вещь, на которую я хотел бы обратить внимание. Не знаю, где вы искали описание стандарта на токен, самой главной ссылки у вас нет: ERC20. Отсюда видно, что
balanceOf
— необязательно mapping, по стандарту этоfunction balanceOf(address _owner) constant returns (uint256 balance)
. Вы можете объявить это просто какmapping (address => uint256)
только потому, что компилятор Solidity создаёт для этой карты геттер с указанной в стандарте сигнатурой (пруф из документации).Это всё к чему: вместо лишнего уровня обёрток можно было просто объявить приватный
mapping (address => TokenHolder)
, написать balanceOf и всё остальное, что требуется по ERC20, поверх этого маппинга и очень существенно упростить исходник.9 мая 2017 в 21:21
0↑
↓
Вы совершенно правы, но существенного упрощения исходников я не вижу. Но, возможно, будет чуть понятнее код.9 мая 2017 в 21:25
+1↑
↓
Не забывайте, что тут ещё чисто финансовый вопрос, лишний mapping — лишний расход места в блокчейне, которое стоит денег. Время, которое выделяется на все телодвижения по перекладыванию баланса из одного места в другое, тоже стоит денег. Может и несущественно дороже, но раз — копейка рубль бережёт, два — избыточные данные в публичном блокчейне не есть хорошо.
9 мая 2017 в 21:28
0↑
↓
Это существенный аргумент!