Перейти к содержимому
Демонстрационный проектBlockchain и Web3
  • 223 тестов
  • 100% покрытие
  • анализ Slither

Milestone Escrow

Этапный escrow для фриланс- и агентской работы — в ETH или любом стандартном ERC-20

Solidity 0.8.28OpenZeppelin v5ETH / ERC-20Foundry

Что это

MilestoneEscrow — единый on-chain контракт escrow, хранящий любое число независимых задач. Клиент финансирует весь бюджет при создании задачи, разделённый на до 50 этапов, — исполнитель видит, что деньги на месте, ещё до начала работы.

Средства движутся, только когда клиент освобождает этап, когда нейтральный арбитр урегулирует спор, разделив неосвобождённые средства в базисных пунктах, или когда задача отменяется и клиенту возвращаются средства. Небольшая комиссия протокола (жёстко ограничена 5% и фиксируется для каждой задачи) вычитается из выплат исполнителю; с возвратов комиссия никогда не берётся.

Бизнес-задача

Удалённая работа между сторонами, которые не знают друг друга, упирается в дефицит доверия: клиенты не хотят платить заранее, исполнители — сдавать работу до оплаты. Платформы закрывают этот разрыв, но берут существенные комиссии, могут замораживать аккаунты и решают споры непрозрачно для сторон.

Как работает

  1. 1

    Создание: клиент вызывает createJob(freelancer, arbiter, token, amounts[]) и финансирует полную сумму в ETH или ERC-20. Текущая комиссия фиксируется в задаче.

  2. 2

    Сдача: исполнитель вызывает requestRelease(jobId, i), сигнализируя, что этап i завершён.

  3. 3

    Освобождение: клиент вызывает releaseMilestone(jobId, i). Исполнитель получает сумму за вычетом комиссии; когда все этапы освобождены, задача завершается.

  4. 4

    Спор (опционально): любая сторона открывает спор, задача замораживается. Арбитр делит каждый неосвобождённый этап между исполнителем и клиентом в базисных пунктах.

  5. 5

    Отмена (опционально): клиент может отменить с полным возвратом до того, как работа была запрошена или освобождена; арбитр может отменить, пока задача открыта.

Меры безопасности

  • nonReentrant на каждой функции, двигающей средства; состояние финализируется до внешних вызовов (checks-effects-interactions)
  • Griefing-устойчивые выплаты ETH: неудачные push-платежи начисляются для позднего вывода
  • Токены с комиссией на перевод отклоняются проверкой баланса до/после
  • Предел комиссии (5%) и фиксация комиссии на задачу: владелец не может поднять комиссию на профинансированных задачах
  • Ограниченные циклы (макс. 50 этапов) и три различные роли
  • Ownable2Step; администратор никогда не может прикоснуться к средствам задач
  • Платёжеспособность проверена фаззингом: баланс контракта равен сумме неосвобождённых этапов

Возможности

  • Любое число задач в одном контракте
  • Финансирование в ETH или ERC-20
  • До 50 этапов на задачу
  • Запросы на освобождение и споры с делением арбитром в базисных пунктах
  • Отмена и возврат
  • Фиксация комиссии протокола, предел 5%

Типичные сценарии

  • Фриланс-биржи и агентские платформы с некастодиальными платежами
  • B2B-контракты с оплатой по этапам
  • Грантовые программы с выплатами траншами и комитетом в роли арбитра

Известные ограничения

Арбитр считается нейтральным; в продакшене это multisig, DAO или децентрализованный суд. Токены с ребазингом не поддерживаются.

Другие демонстрационные контракты

Витрина

Token + Vesting + Staking

Ограниченный ERC-20 с gasless-аппрувами, расписания вестинга с cliff для команды и инвесторов и награды за стейкинг в стиле Synthetix.

ERC-20EIP-2612OpenZeppelin v5

223 тестов · 100% покрытие · анализ Slither

Витрина

SigmaNFT Collection

Честный запуск NFT: фазы allowlist и public, лимиты на кошелёк, неизменяемый максимум эмиссии, роялти ERC-2981 и отложенное раскрытие.

ERC-721ERC-2981Merkle proofs

223 тестов · 100% покрытие · анализ Slither

Витрина

Gold-Backed Token (RWA)

Обеспечение становится предусловием выпуска: токены можно выпускать, только если заявленный резерв золота покрывает новую общую эмиссию.

ERC-20AccessControlProof of reserve

223 тестов · 100% покрытие · анализ Slither

Стандарты: Solidity 0.8.x, OpenZeppelin, тесты Foundry с фаззингом, статический анализ Slither, верифицированный исходник. 223 тестов · 100% покрытие · анализ Slither.

Есть проект в голове?

Расскажите, что строите. В рабочие дни senior-инженер отвечает в течение часа — затем вы получаете честную оценку, понятный объём и предложение с фиксированной ценой или по вехам, обычно за несколько рабочих дней.

Сначала написать? Напишите нам

Вы будете говорить напрямую с Ing. Ismet Mesic, Tech lead.