Развертывание обменного контракта
Контракт на обмен входит в состав CosmWasm и использует функциональные возможности модуля dex Sei.
Разработка контракта
Чтобы увеличить эффективность модуля dex Sei используется встроенный контракт CosmWasm, который призван реализовать четыре основных интерфейса SudoMsg:
SudoMsg::BulkOrderPlacements
Этот эндпоинт получает ордера, упакованные в текущий блок на dex Sei и должна вернуть номер ордера, который не подходит под условия контракта:
SudoMsg::BulkOrderCancellation
Этот эндпоинт получает ордера, отмененные в текущем блоке Sei dex.
SudoMsg::Settlement
Этот эндпоинт получает ордера, помещенные в текущий блок на Sei dex. В ответ ничего не возвращает.
SudoMsg::NewBlock
Эндпоинт получает последнюю эпоху при создании каждого нового блока.
SudoMsg::FinalizeBlock
Этот эндпоинт получает результаты размещения ордера только для ордеров, отправленных этим контрактом. Также, обратите внимание, что этот эндпоинт не нужен, если контракт не зарегистрирован как NeedHook в модуле dex.
Определение типов данных (официальные библиотеки Sei для этих типов находятся в разработке):
Ответ является объектом вида BulkOrderPlacementsResponse
и требует сериализации в качестве JSON строки, а после кодируется в base64:
К запросам и исполнению эндпоинтов не применяется каких-либо специальных требований. Рекомендуется свести к минимуму использование команды execute и встроить большую часть логики обмена в вышеупомянутые эндпоинты по соображениям производительности.
Разработка/Загрузка/Развертывание контрактов
Используйте инструкцию из раздела "Развертывание универсального контракта".
Регистрация контракта при помощи модуля Dex
Для того, чтобы полноценно использовать возможности модуля dex, необходимо зарегистрировать ваш контракт при помощи этого модуля. Чтобы это сделать, необходимо отправить транзакцию register-contract
в модуль dex. Шаблон данной команды:
Пример:
Обратите внимание на две булевы переменные в транзакции:
NeedHook
NeedOrderMatching
Sei Cosmwasm
Sei cosmwasm крэйт предоставляет Sei возможность осуществлять специфические связки с контрактом на cosmwasm и возможность взаимодействовать с блокчейном посредством отправки специальных сообщений, запросов и структур, которые соответствуют функциональным возможностям пользовательских модулей в блокчейне Sei. Контракты могут импортировать последнюю версию крэйта и напрямую взаимодействовать с различными модулями Sei.
Last updated