Разбор кода краудфандинга. Часть 1
В уроках Ильи всегда хорошо то, что он оставляет ссылку на GitHub. Так можно быстро пройтись по коду или скопировать некоторые решения. Вот и на этот урок есть такой коммит.
И так, основной файл содержит два контракта: родительский и порождаемый. Пройдемся по первому.
В начале создаем struct, где хранится информация по созданным контрактам и условием были ли они исполнены.
Далее кладем все в mapping для удобного хранения и доступа, а также создаем несколько переменных: на максимальную продолжительность кампании, id текущей кампании и адрес владельца.
Функция start() принимает в себя два аргумента: когда кампания должна закончиться (ее продолжительность) и сумма, которую планируют собрать. Также внутри находятся две проверки, чтобы пользователи не создавали кампании без цели и сроков.
Затем идет инкрементация id, создается дочерний контракт, куда передаются аргументы по времени, цели, id и создающему адресу.
В случае необходимости можно породить событие, для отслеживания действий пользователей.
Другая функция onClaimed() устанавливает статус кампании, как исполненной, в случае ее успеха.
Далее идет дочерний \ порождаемый контракт.
#croudfunding
Post #341
161
- 👍 1