Controller

Описание проблемы

  • Между контрактами локального Фонда(например, Multisig, DelegateVoting, MultiSigProposal) необходимо обеспечить связи, чтобы один контракт имел право изменять данные в другом контракте.
  • Между глобальными контрактами(например, SpaceToken, FundRegistry, SpaceAuctionRegistry, Reputation) также необходимо обеспечить связи, чтобы один из контрактов мог вносить изменения в другой контракт посредством контракта Controller.
  • Необходимо предоставить возможность пользователям выполнять функции, которые влияют на множество контрактов сразу (Например освобождение от SpaceToken).

Цели контракта

  • Добиться безопасного взаимодействия и влияния одних контрактов на другие.
  • Обеспечить получение необходимой информации из одного контракта о другом.
  • Инкапсулировать общую логику взаимодействия контрактов внутри локальных Фондов.
  • Обозначить логику воздействия локального Фонда на FundRegistry.
  • По аналогии с DaoStack[1] делегировать выполнение большого количества функций от имени Multisig.
  • Обеспечить возможность миграции на новую версию функционала путем замены контракта Controller у контракта Multisig по аналогии с DaoStack[1].

Функции контракта

Контракт будет выполнять все действия и дополнительные проверки от контракта MultiSig.

Дать Владельцам земли возможность отказаться от Земельного участка (SPACE токена) и получить из Фонда заложенные за токены GALT.

  • Функция release
  • Вызывается владельцем SPACE токена
  • Выполняет transfer SPACE токена от пользователя в Фонд
  • Выполняет transfer GALT токенов из Фонда пользователю
  • Дает возможность фонду отправить SPACE токен на аукцион или распорядится им иначе путем решения делегатов фонда

Отправить SPACE токен, принадлежащий фонду на Аукцион земли

  • Функция startSpaceAuction
  • Вызывается решением делегатов фонда, владеющего SPACE токеном
  • Создает лот на аукционе с указанной минимальной ставкой

Выполнить перевод ETH и GALT по утвержденной заявке из контракта MultiSigProposal

Выполнить проверку что Адрес есть в контракте FundRegistry

Выполнить перевод ETH и GALT в другой Фонд в рамках FundRegistry по запросу контракта Reputation

Контракт Reputation при вызове метода на перевод Репутации из одного Фонда в другой вызывает контракт MultiSig, который в свою очерель вызывает контракт Controller. Контракт Controller проверяет, что отправитель транзакции - контракт Reputation, что Фонд - получатель есть в контракте FundRegistry, что курс Обратного выкупа правильный и соответствует контракту Emission.

  • Кол-во Делегатов равно 7. Изменить это число не возможно.
  • Делегаты могут быть назначены/переназначены только контрактом Аукциона Делегатов без каких либо ограничений на частоту и время.

Референсы

  1. DaoStack контракты контроллера

results matching ""

    No results matching ""