Инструкция по модулю Dex

Модуль Dex отвечает за выставление ордеров и сопутствующий торговый функционал. Исходник кода можно найти здесь: https://github.com/sei-protocol/sei-chain/tree/master/x/dex

Чтобы начать работу с модулем Dex, необходимо использовать либо запрос (query), либо tx сообщение. Ниже приведены примеры того, как взаимодействовать с модулем. Также приводится краткий обзор некоторых общих перечислений и структур, используемых в Приложении. Обратите внимание, что команды необходимо использовать с такими флагами, как --from, --chain_id, -fees, --gas, --broadcast-mode, и т.д.

Запросы

GetTwaps

Описание: получает взвешенные по времени средние цены определенных активов Использование: seid q get-twaps $contract_addr $lookback Аргументы: 1) адрес контракта (строка), 2) кол-во последних цен (uint64) Возвращает: Twap[] Пример: seid q get-twaps $contract_addr 100 --from=$key_name --chain_id=sei_chain --fees=1000000usei --gas=50000000 --broadcast-mode=block

GetOrders

Описание: получает заявки определенного аккаунта из книги заявок Использование: seid q get-orders $contract_addr $account Аргументы: 1) адрес контракта (строка), 2) аккаунт (строка) Возвращает: Orders[] Пример: seid q get-orders $contract_addr $acc_addr --from=$key_name --chain_id=sei_chain --fees=1000000usei --gas=50000000 --broadcast-mode=block

GetOrderById

Описание: получает определенную заявку по ID Использование: seid q get-orders-by-id $contract_addr $price_denom $asset_denom $id Аргументы: 1) адрес контракта (строка), 2) price_denom - валюта (строка), 3) asset_denom - токен (строка), 4) id (uint64) Возвращает: Orders Пример: seid q get-orders-by-id $contract_addr 'USDC' 'ATOM' $id --from=$key_name --chain_id=sei_chain --fees=1000000usei --gas=50000000 --broadcast-mode=block

Сообщения

PlaceOrders

Описание: отправляет ордера в книгу ордеров Использование: seid tx place-orders $contract_addr $orders --amount $coins (optional) Аргументы: 1) адрес контракта (строка), 2) Список ордеров Возвращает: uint64[] OrderIds Пример: seid tx dex place-orders $contract_addr 'LONG?1.01?5?USDC?ATOM?LIMIT?{"leverage":"1","position_effect":"Open"}' --amount=1000000000uusdc -y --from=$key_name --chain_id=sei_chain --fees=1000000usei --gas=50000000 --broadcast-mode=block

Аргументы ордера разделяются вопросительным знаком (?) и содержат следующие значения: направление ордера (long/short), цена, количество, значение валюты знаменателя заявки, значение валюты числителя заявки, тип ордера, данные ордера.

CancelOrders

Описание: массовая отмена ордеров Использование: seid tx cancel-orders $contract_addr $cancellations Аргументы: 1) адрес контракта (строка), 2) Список ордеров для отмены Возвращает: пустое значение (type MsgCancelOrdersResponse struct {}) Пример: seid tx dex cancel-orders $contract_addr 'LONG?1.01?USDC?ATOM' --from=$key_name --chain_id=sei_chain --fees=1000000usei --gas=50000000 --broadcast-mode=block

Аргументы ордера разделяются вопросительным знаком (?) и содержат следующие значения: направление ордера (long/short), цена, значение валюты знаменателя заявки, значение валюты числителя заявки.

Приложение

Enums:

enum PositionDirection {
    LONG = 0;
    SHORT = 1;
}

enum PositionEffect {
    OPEN = 0;
    CLOSE = 1;
}

enum OrderType {
    LIMIT = 0;
    MARKET = 1;
    LIQUIDATION = 2;
    FOKMARKET = 3; // fill-or-kill market order
}

enum OrderStatus {
    PLACED = 0;
    FAILED_TO_PLACE = 1;
    CANCELLED = 2;
    FULFILLED = 3;
}

enum CancellationInitiator {
    USER = 0;
    LIQUIDATED = 1;
}

Структуры:

Pair (торговая пара):

type Pair struct {
	PriceDenom string                                  
	AssetDenom string                                  
	Ticksize   *github_com_cosmos_cosmos_sdk_types.Dec 
}

Twap (средневзвешенная цена):

type Twap struct {
	Pair            *Pair                                  
	Twap            github_com_cosmos_cosmos_sdk_types.Dec 
	LookbackSeconds uint64                                 
}

Order (ордер):

type Order struct {
	Id                uint64                                 
	Status            OrderStatus                            
	Account           string                                 
	ContractAddr      string                                 
	Price             github_com_cosmos_cosmos_sdk_types.Dec 
	Quantity          github_com_cosmos_cosmos_sdk_types.Dec 
	PriceDenom        string                                 
	AssetDenom        string                                 
	OrderType         OrderType                              
	PositionDirection PositionDirection                      
	Data              string                                 
	StatusDescription string                                 
}

Cancellation (отмена ордера):

type Cancellation struct {
	Id                uint64                                 
	Initiator         CancellationInitiator                  
	Creator           string                                 
	ContractAddr      string                                 
	PriceDenom        string                                 
	AssetDenom        string                                 
	PositionDirection PositionDirection                      
	Price             github_com_cosmos_cosmos_sdk_types.Dec 
}

Last updated