TGViewer
Из Solidity в AI и дальше Из Solidity в AI и дальше @solidityset · 2.47K subscribers
Post #342 151
Разбор кода краудфандинга. Часть 2

В самом начале создаются переменные: продолжительность, цель, взнос, id, организатор, родительский контракт и статус исполнения.

Родительский контракт нам тут потребуется для того, чтобы вызвать там функцию onClaimed(), в случае успешного сбора средств в текущей кампании.

Далее создаем mapping, куда записываем информацию о взносах.

В конструкторе получаем необходимые аргументы из родительского контракта и записываем значения в переменные.

Функция pledge() позволяет сторонним пользователям делать взносы. Тут нужны проверки на продолжительность кампании и размер взноса, чтобы он не был нулевым. В конце просто добавляем записи в mapping.

refundPledge() - позволяет забрать свой взнос пользователю. Однако нужны проверки, чтобы он не забрал больше, чем внес (в контракте этого нет) и чтобы кампания не была закончена.

Функция claim() может вызывать только создатель кампании в случае ее успеха. Тут устанавливается статус, выполняется перевод на счет организатора и вызывается функция onClaimed() в родительском контракте.

Также есть fullRefund(), которую, по сути, также  должен вызывать только организатор, или она должна выполняться автоматически по прошествии времени, в случае неудачи сбора средств. Она возвращает деньги всем пользователям, кто ранее совершал взнос.

Вот и все. Достаточно простые контракты. Надеюсь, вы также смогли быстро в них разобраться. Далее перейдем к тестам. 

#croudfunding
  • 👍 1
More from @solidityset
  1. Oct 15, 2026Немного новостей про Core Solidity Команда Solidity опубликовала обновление о разработке C…
  2. Oct 8, 2026Промо видео для SaaS и других ваших проектов Хочу поделить с вами одним из своих открытий…
  3. Oct 8, 2026video post
  4. Oct 2, 2026Вторая сложность — как доказать, что установилось именно опубликованное. В первом варианте…
  5. Oct 2, 2026Задача с полуоткрытым кодом На днях, в процессе создания одного приложения, столкнулся с и…
  6. Sep 22, 2026Какой язык программирования учить сейчас? На днях в Твиттере увидел небольшой пост о разви…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →