Краткая инструкция наших смарт контрактов

Предисловие:

После того как клиент и исполнитель договорились о выполняемой работе их соглашение скрепляется нашим смарт контрактом. Смарт контракт позволяет гарантировать честность проводимой сделки. Он является неким оракулом обеспечивающим точность выплат не прибегая к помощи людей. Даже команда нашего проекта не в силах повлиять на работу уже выпущенного контракта.

Принцип работы:

Когда смарт контракт замайнен в сеть он ожидает пополнение баланса через специальную функцию. После совершения такого отсылает нам наши комиссионные и переходит во вторую стадию (это означает что он готов к работе). Начиная с этого момента смарт контракт исполняет свои функции только по требованию своего владельца (заказчика задания). Всю поступившую валюту смарт контракт делит на 10 частей. Заказчик может осуществлять выплаты исполнителю по частям либо единовременно. Если заказчика по каким либо причинам не устроит исполнитель то он может разорвать соглашение соответствующей функцией контракта, но с некоторыми оговорками. Про разрыв смарт контракта смотрите подробнее в разделе описания функций.

Что нужно для работы?:

Для работы с нашими смарт контрактами нужен только кошелек способный взаимодействовать с ними. Мы рекомендуем использовать MyCrypto , но вы можете использовать любой другой.

Как вызвать нужную функцию?:

Как уже говорилось выше кошельков для работы очень много, но мы будем показывать на примере MyCrypto однако для остальных действия схожи. Далее по шагам.

  • Используя левое меню перейдите в раздел “Contracts”.
  • В поле “Contract Address” введите адрес смарт контракта.
  • В поле “ABI / JSON Interface” скопируйте abi. Его можно взять со страницы контракта.
  • Нажмите “Access”.
  • В появившемся меню внизу выберите нужную функцию. Не забудьте войти в свой кошелёк перед её использованием.
replenish_balance (пополнение баланса):

Необходима для “запуска” контракта. Вместе с вызовом этой функции необходимо приложить нужное количество wei (эфир) + наш процент. Если баланса не хватает то контракт будет ожидать дальнейшего пополнения. Если пополнить баланс больше чем необходимо то контракт вернёт “сдачу” и перейдёт в следующую стадию.

pay_part (выплатить часть):

Функция доступна только после наступления “активной” стадии. Возможно к исполнению только кошельком заказчика. Если ещё есть части для выплат то выплачивает одну из них кошельку исполнителя.

pay_all (выплатить всё):

Функция доступна только после наступления “активной” стадии. Возможно к исполнению только кошельком заказчика. Если ещё есть части для выплат то выплачивает их все кошельку исполнителя.

break_the_contract (разорвать контракт):

Функция доступна только после наступления “активной” стадии. Возможно к исполнению только кошельком заказчика. Если не происходило не одной выплаты то отдаёт одну из десяти частей кошельку исполнителя, а остальные кошельку заказчика. Если происходила хотя бы одна выплата просто отправляет весь доступный баланс кошельку заказчика.

__view_data(диагностическая функция):

Функция созданная только для диагностики. Доступна в любой момент времени. Не требует газа для исполнения. После вызова выдаёт информацию в следующем порядке:

  • Версия контракта.
  • Статус контракта.
  • Баланс контракта.
  • Сумма в wei на сколько необходимо пополнить баланс для “активации” контракта. Включая комиссию.
  • Сколько частей уже выплачено.
  • Сколько всего частей в контракте.