- ВП – владелец проекта.
- КИ – Контракт инвесторов.
- Контракт Daico.
- ВП хочет 1000 токенов и сам публикует контракт Daico. Параметры при публикации следующие:
var stagesCount = 10;
var stageAmount = 100;
var stageDays = 30;
var daico = await Daico.new(stagesCount, stageAmount, stageDays);
-
Далее ВП каким-то (не имеющим значения) образом отправляет КИ адрес своего проекта, и, возможно, дополнительную информацию касательно проекта (описание, документы, прочее).
-
После изучения информации о проекте, и, возможно, переговоров с ВП, инвесторы решают профинансировать проект.
var amount = await daico.getNeededAmount(); // 1000
await token.approve(daico.address, amount);
await daico.approveTokens();
Теперь КИ зафиксирован в контракте проекта и получает некоторые полномочия. Этот адрес нельзя поменять.
- Токены за первый период ВП может потратить сразу. Для этого он переводит токены на свой адрес.
await daico.receiveAmount(stageAmount);
- Проходит месяц. Инвесторы должны проголосовать и решить судьбу проекта. На голосование у КИ есть 3 последние дня текущего проекта. Отсутствие ответа эквивалентно одобрению. В срок от 28 до 30 дня включительно должна быть вызвана функция:
var decision = 0;
await daico.setInvestorsDecision(decision, {from:investorsContract});
Решения могут быть следующими:
enum Decision {
OK,
NoDecision,
Pause,
Remove
}
- Голосование повторяется 9 раз, а затем ничего больше не происходит.