Инструкция по модулю 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
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
Приложение
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