DApp Open APIs
Наш существующий dApp на sofa.org является критически важной функцией рабочего процесса и основным способом взаимодействия пользователей с протоколами SOFA. Однако мы призываем других разработчиков предоставить доступ и подключиться к SOFA через свои собственные dApps, чтобы максимизировать рост нашей экосистемы. Мы считаем их нашими партнерами «Брокерами» и призываем заинтересованные стороны связаться с командой SOFA для получения дополнительной информации о API.
DNT
Рекомендуемый список запросов на котировку DNT
GET /rfq/dnt/recommended-list
Параметры ввода
| Имя поля | Обязательно | Тип | Описание |
|---|---|---|---|
| vault | true | string | Информация о контракте |
| chainId | true | int | Идентификатор цепочки |
Параметры ответа
| Имя поля | Тип | Описание |
|---|---|---|
| code | int | 0 указывает на то, что результат возвращен нормально |
| message | string | Сообщение об ошибке, возвращаемое в случае исключения |
| value | list[object] | Как показано ниже |
Объект
| Имя поля | Тип | Описание |
|---|---|---|
| rfqId | number | Идентификатор RFQ |
| chainId | int | Идентификатор цепочки |
| vault | string | Адрес контракта |
| riskType | string | Тип риска: PROTECTED, RISKY |
| forCcy | string | Основная валюта |
| domCcy | string | Валютная пара |
| depositCcy | string | Валюта подписки |
| lowerBarrier | number | Нижняя цена |
| upperBarrier | number | Верхняя цена |
| depositAmount | number | Сумма покупки RFQ |
| expiry | number | Временная метка истечения (например, 1672387200) |
| timestamp | number | Время срабатывания текущего ценообразования; время начала следующего наблюдения рассчитывается на основе этой логики |
| observationStart | number | Оценочное время начала наблюдения для входа/выхода на основе временной метки |
| feeRate | object | Ставка торговых и расчетных сборов (необязательно) |
| leverageInfo | object | Информация о займе (необязательно) |
| relevantDollarPrices | list[object] | Цена токена, необходимая для конвертации цены RCH и расчета аирдропа (необязательно) |
| amounts | object | Рассчитанные суммы (необязательно) |
| apyInfo | object | Информация о годовой процентной ставке, доступная для продуктов, не относящихся к Surge (необязательно) |
| oddsInfo | object | Информация о шансах, доступная для продуктов Surge (необязательно) |
| quote | object | |
| > anchorPrices | list[string] | 20000000000, 30000000000 |
| > makerCollateral | string | Сумма залога производителя |
| > totalCollateral | string | Общая сумма залога (Тейкер+Производитель) |
| > collateralAtRisk | string | Требуется, когда гарантировано (необязательно) |
| > makerBalanceThreshold | string | Порог баланса производителя |
| > deadline | number | Временная метка истечения (например, 1672387200) |
| > makerWallet | string | Кошелек производителя (необязательно) |
| > signature | string | Подпись (необязательно) |
Пример запроса
GET rfq/dnt/recommended-list?vault=xxxxxx&chainId=1
Ответ
{
"code":0,
"message":"",
"value":[
{
"rfqId":1233992,
"riskType":"PROTECTED",
"forCcy":"BTC",
"expiry":1672387200,
"lowerBarrier":18000,
"upperBarrier":24000,
"depositCcy":"BTC",
"depositAmount": 0.05,
"protectedApy":0.01,
"deadline":1672279892,
"recommended":true,
"quote":
{
"rfqId":1233992,
"inRangeApy":0.25,
"tenor":7.9,
"fundingAmount":0.25,
"depositAmount":1,
"premiumCoin":"BTC",
"premiumAmount":0.05,
"bookingQuantity":0.3,
"totalAmount":0.05,
"payoff":0.3,
"deadline":1672279892,
"signature":"dsdkksdsksdk"
}
}
]
}
Запрос DNT
- Заметки:
- Пожалуйста, не передавайте адрес кошелька пользователя в чистом запросе.
- Адрес кошелька пользователя должен передаваться только после подписки.
GET /rfq/dnt/quote
Входные параметры
| Название поля | Обязательно | Тип | Описание |
|---|---|---|---|
| vault | true | string | Информация о контракте |
| chainId | true | int | Идентификатор цепи |
| expiry | true | number | Временная метка уровня секунды для даты истечения, например, 1672387200 |
| lowerBarrier | true | number | Нижняя цена |
| upperBarrier | true | number | Верхняя цена |
| depositAmount | true | number | Сумма покупки RFQ |
| inputApyDefinition | true | string | Основной код - это Enum, указывающий, как рассчитывается входной APY: OptimusDefaultAPY, BinanceDntAPY, AaveLendingAPY |
| protectedApy | false | number | Гарантированная годовая доходность (пусто для RISKY, требуется для защищенных) |
| fundingApy | false | number | Годовая доходность AAVE (пусто для RISKY, требуется для защищенных) |
| takerWallet | false | string | Информация о публичном адресе кошелька запрашивающего |
Параметры ответа
| Имя поля | Тип | Описание |
|---|---|---|
| code | int | 0 указывает на то, что результат возврата нормальный |
| message | string | Сообщение об ошибке, возвращаемое в случае исключения |
| value | object | Как показано ниже |
Объект
| Имя поля | Тип | Описание |
|---|---|---|
| rfqId | number | ID RFQ |
| vault | string | Адрес контракта |
| chainId | int | Идентификатор цепи |
| riskType | string | Тип риска: ЗАЩИЩЕННЫЙ, РИСКОВЫЙ |
| forCcy | string | Основная валюта |
| domCcy | string | Валютная пара |
| depositCcy | string | Валюта подписки |
| lowerBarrier | number | Нижняя цена |
| upperBarrier | number | Верхняя цена |
| depositAmount | number | Сумма покупки RFQ |
| expiry | number | Временная метка истечения (например, 1672387200) |
| timestamp | number | Время триггера текущего ценообразования; следующее время начала наблюдения рассчитывается на основе этой логики |
| observationStart | number | Оценочное время начала наблюдения для выбивания на основе временной метки |
| feeRate | object | ставка торговых и расчетных сборов (необязательно) |
| leverageInfo | object | Информация о займе (необязательно) |
| relevantDollarPrices | list[object] | Цена токена, необходимая для конверсии цены RCH и расчета аирдропа (необязательно) |
| amounts | object | Рассчитанные суммы (необязательно) |
| apyInfo | объект | Годовая информация, доступная для продуктов без Surge (по желанию) |
| oddsInfo | объект | Информация о шансах, доступная для продуктов Surge (по желанию) |
| quote | объект | |
| > quoteId | число | |
| > anchorPrices | список[string] | 20000000000, 30000000000 |
| > makerCollateral | строка | Сумма залога производителя |
| > totalCollateral | строка | Общая сумма залога (Taker+Maker) |
| > collateralAtRisk | строка | Требуется, когда гарантировано (по желанию) |
| > makerBalanceThreshold | строка | Порог баланса производителя |
| > deadline | число | Время истечения (например, 1672387200) |
| > makerWallet | строка | Кошелек производителя (по желанию) |
| > signature | строка | Подпись (по желанию) |
Вероятность выигрыша DNT
Вероятность оставаться в пределах границ до истечения срока
GET rfq/dnt/winning-probabilities
Параметры ввода
| Название поля | Обязательно | Тип | Описание |
|---|---|---|---|
| forCcy | да | строка | Основная валюта |
| expiry | да | число | Временная метка второго уровня для даты истечения, например, 1672387200 |
| lowerBarrier | да | число | Нижняя цена |
| upperBarrier | да | число | Верхняя цена |
Параметры ответа
| Название поля | Тип | Описание |
|---|---|---|
| code | целое число | 0 указывает на то, что результат возврата нормален |
| message | строка | Сообщение об ошибке, возвращаемое в случае исключения |
| value | список[объект] | Как показано ниже |
Объект
| Название поля | Тип | Описание |
|---|---|---|
| spotPrice | number | Спотовая цена |
| timestamp | number | |
| probabilities | object | Вероятность выигрыша |
Пример запроса
GET rfq/dnt/winning-probabilities?forCcy=BTC&expiry=xxxx&lowerBarrier=xxx&upperBarrier=xxx
Ответ
{
"code":0,
"message":"",
"value": {
"spotPrice": 62121,
"timestamp": 1727080594,
"probabilities": {
"probDntStayInRange": 0.4,
"probBullTrendItmLowerStrike": null,
"probBullTrendItmUpperStrike": null,
"probBearTrendItmLowerStrike": null,
"probBearTrendItmUpperStrike": null
}
}
}
Умный тренд
Запрос списка рекомендуемых RFQ для умного тренда
GET rfq/smart-trend/recommended-list
Входные параметры
| Имя поля | Обязательно | Тип | Описание |
|---|---|---|---|
| vault | да | строка | Информация о контракте |
| chainId | да | целое | ID цепочки |
Параметры ответа
| Имя поля | Тип | Описание |
|---|---|---|
| code | целое | 0 указывает на то, что результат возврата нормален |
| message | строка | Сообщение об ошибке, возвращаемое в случае исключения |
| value | список[объект] | Как показано ниже |
Объект
| Имя поля | Тип | Описание |
|---|---|---|
| rfqId | число | ID RFQ |
| chainId | целое | ID цепочки |
| vault | строка | Адрес контракта |
| riskType | строка | Тип риска: PROTECTED, RISKY |
| direction | строка | BULLISH, BEARISH |
| forCcy | строка | Основная валюта |
| domCcy | строка | Валютная пара |
| depositCcy | строка | Валюта подписки |
| lowerBarrier | число | Нижняя цена |
| upperBarrier | число | Верхняя цена |
| depositAmount | число | Сумма покупки RFQ |
| expiry | число | Время истечения (например, 1672387200) |
| timestamp | число | Время триггера текущего ценообразования; время начала следующего наблюдения рассчитывается на основе этой логики |
| feeRate | объект | ставка торговых и расчетных сборов (необязательно) |
| leverageInfo | объект | Информация о займе (необязательно) |
| relevantDollarPrices | список[объект] | Цена токена, необходимая для конверсии цены RCH и расчета аирдропа (необязательно) |
| amounts | объект | Рассчитанные суммы (необязательно) |
| apyInfo | объект | Информация о годовой доходности, доступная для продуктов, не относящихся к Surge (необязательно) |
| oddsInfo | объект | Информация о шансах, доступная для продуктов Surge (необязательно) |
| quote | объект | |
| > anchorPrices | список[строка] | 20000000000, 30000000000 |
| > makerCollateral | string | Сумма залога Maker |
| > totalCollateral | string | Общая сумма залога (Taker+Maker) |
| > collateralAtRisk | string | Обязательно, когда гарантировано (необязательно) |
| > makerBalanceThreshold | string | Порог баланса Maker |
| > deadline | number | Время истечения (например, 1672387200) |
| > makerWallet | string | Кошелек Maker (необязательно) |
| > signature | string | Подпись (необязательно) |
Пример запроса
GET rfq/smart-trend/recommended-list?vault=xxxxxx
Запрос Smart Trend
- Примечания:
- Пожалуйста, не передавайте адрес кошелька пользователя в чистом запросе.
- Адрес кошелька пользователя должен передаваться только при подписке.
GET /rfq/smart-trend/quote
Параметры ввода
| Имя поля | Обязательно | Тип | Описание |
|---|---|---|---|
| vault | true | string | Информация о контракте |
| chainId | true | int | Идентификатор цепочки |
| expiry | true | number | Временная метка в секундах для даты истечения, например, 1672387200 |
| lowerBarrier | true | number | Нижняя цена |
| upperBarrier | true | number | Верхняя цена |
| depositAmount | true | number | Сумма покупки RFQ |
| inputApyDefinition | true | string | Основной код - Enum, указывающий, как рассчитывается входной APY: OptimusDefaultAPY, BinanceDntAPY, AaveLendingAPY |
| protectedApy | false | number | Гарантированная годовая доходность (пусто для RISKY, обязательно для protected) |
| fundingApy | false | number | Годовая доходность AAVE (пусто для RISKY, обязательно для protected) |
| takerWallet | false | string | Информация о публичном адресе кошелька запрашивающего |
Параметры ответа
| Имя поля | Тип | Описание |
|---|---|---|
| code | int | 0 указывает на то, что результат возврата нормален |
| message | string | Сообщение об ошибке, возвращаемое в случае исключения |
| value | object | Как показано ниже |
Объект
| Имя поля | Тип | Описание |
|---|---|---|
| rfqId | number | ID запроса на котировку (RFQ) |
| vault | string | Адрес контракта |
| chainId | int | ID цепочки |
| riskType | string | Тип риска: ЗАЩИЩЕННЫЙ, РИСКОВЫЙ |
| direction | string | БЫЧИЙ, МЕДВЕЖИЙ |
| forCcy | string | Основная валюта |
| domCcy | string | Валютная пара |
| depositCcy | string | Валюта подписки |
| lowerBarrier | number | Нижняя цена |
| upperBarrier | number | Верхняя цена |
| depositAmount | number | Сумма покупки по запросу на котировку (RFQ) |
| expiry | number | Временная метка истечения (например, 1672387200) |
| timestamp | number | Время срабатывания текущего ценообразования; время начала следующего наблюдения рассчитывается на основе этой логики |
| feeRate | object | ставка торговых и расчетных сборов (по желанию) |
| leverageInfo | object | информация о займе (по желанию) |
| relevantDollarPrices | list[object] | Цена токена, необходимая для конвертации цены RCH и расчета аирдропа (по желанию) |
| amounts | object | Рассчитанные суммы (по желанию) |
| apyInfo | object | Информация о годовой процентной ставке, доступная для продуктов без Surge (по желанию) |
| oddsInfo | object | Информация о коэффициентах, доступная для продуктов Surge (по желанию) |
| quote | object | |
| > quoteId | number | |
| > anchorPrices | list[string] | 20000000000, 30000000000 |
| > makerCollateral | string | Сумма залога производителя |
| > totalCollateral | string | Общая сумма залога (Тейкер + Производитель) |
| > collateralAtRisk | string | Требуется при гарантии (по желанию) |
| > makerBalanceThreshold | string | Порог баланса производителя |
| > deadline | number | Временная метка истечения (например, 1672387200) |
| > makerWallet | string | Кошелек производителя (по желанию) |
| > signature | string | Подпись (по желанию) |
Вероятность выигрыша умного тренда
Вероятность оставаться в пределах границ до истечения срока
GET rfq/smart-trend/winning-probabilities
Параметры ввода
| Название поля | Обязательно | Тип | Описание |
|---|---|---|---|
| forCcy | true | string | Основная валюта |
| expiry | true | number | Временная метка второго уровня для даты истечения, например, 1672387200 |
| lowerBarrier | true | number | Нижняя цена |
| upperBarrier | true | number | Верхняя цена |
Параметры ответа
| Название поля | Тип | Описание |
|---|---|---|
| code | int | 0 указывает на то, что возвращаемый результат нормальный |
| message | string | Сообщение об ошибке, возвращаемое в случае исключения |
| value | list[object] | Как показано ниже |
Объект
| Название поля | Тип | Описание |
|---|---|---|
| spotPrice | number | Спотовая цена |
| timestamp | number | |
| probabilities | object | Вероятность выигрыша |
Пример запроса
GET rfq/smart-trend/winning-probabilities?forCcy=BTC&expiry=xxxx&lowerStrike=xxx&upperStrike=xxx
Ответ
{
"code":0,
"message":"",
"value": {
"spotPrice": 62121,
"timestamp": 1727080594,
"probabilities": {
"probDntStayInRange": null,
"probBullTrendItmLowerStrike": 0.4,
"probBullTrendItmUpperStrike": 0.4,
"probBearTrendItmLowerStrike": 0.6,
"probBearTrendItmUpperStrike": 0.6
}
}
}
Общий интерфейс
Удалить RFQ
Удалите RFQ, который был в цепочке
POST rfq/remove
Входные параметры
| Название поля | Обязательно | Тип | Описание |
|---|---|---|---|
| rfqId | да | число | . |
Пример запроса
{
"rfqId":123456
}
Параметры ответа
| Имя поля | Тип | Описание |
|---|---|---|
| code | int | 0 указывает на то, что результат возврата нормальный |
| message | string | Сообщение об ошибке, возвращаемое в случае исключения |
| value | object | . |
Уведомление о транзакции
POST rfq/trade
Параметры ввода
| Имя поля | Обязательно | Тип | Описание |
|---|---|---|---|
| quotes | true | list[object] | |
| > rfqId | true | number | |
| > quoteId | true | number | |
| > txId | true | string | Хэш транзакции |
| code | false | string | Код приглашения |
| walletType | false | string | Тип кошелька, например MetaMask, OKX Wallet, Coinbase и т.д. |
Пример запроса
{
"quotes": [
{
"rfqId": 123456,
"quoteId": 333,
"txId": "adsswe"
}
],
"code": "adsswe"
}
Параметры ответа
| Имя поля | Тип | Описание |
|---|---|---|
| code | int | 0 указывает на то, что результат возврата нормален |
| message | string | Сообщение об ошибке, возвращаемое в случае исключения |
| value | object | . |
Список страйков
GET rfq/strike-list
Параметры ввода
| Имя поля | Обязательно | Тип | Описание |
|---|---|---|---|
| indexPrice | true | number | |
| forCcy | false | string | Для торговой пары BTC-USDT введите BTC здесь; если не указано, будет использована конфигурация по умолчанию. |
| domCcy | false | string | Для торговой пары BTC-USDT введите USDT здесь; если не указано, по умолчанию будет USDT. |
Пример запроса
{
"indexPrice": 3750.8,
"forCcy": "WBTC",
}
Параметры ответа
| Имя поля | Тип | Описание |
|---|---|---|
| strikes | list[number] | Рекомендуемый список цен страйка по умолчанию |
Список истечения
GET rfq/expiry-list
Входные параметры
| Имя поля | Обязательно | Тип | Описание |
|---|---|---|---|
| vault | true | string | Адрес контракта |
| chainId | true | int | Идентификатор цепи |
Пример запроса
{
"vault": "XXXXXXXXXXXXXX",
"chainId": 1,
}
Параметры ответа
| Имя поля | Тип | Описание |
|---|---|---|
| timestamp | number | Начальное время в секундах с отметкой времени |
| expiries | list[number] | Поддерживаемый список истечения в секундах с отметкой времени, например, 1672387200 |
Aave apy
GET rfq/aave-apy
Параметры ввода
| Имя поля | Обязательно | Тип | Описание |
|---|---|---|---|
| chainId | да | число | |
| ccy | да | строка | USDT |
Параметры ответа
| Имя поля | Тип | Описание |
|---|---|---|
| chainId | число | Идентификатор цепи |
| ccy | строка | Валюта депозита |
| avgApy | строка | Средний APY, зафиксированный в цепи за последние 30 дней |
| currentApy | строка | Последний APY AAVE |
| apyUsed | строка | APY, фактически использованный в SofaServer для оценки будущих процентных доходов |
| apyDefinition | строка | Определение расчета, соответствующее APY |
Пример ответа
{
"chainId": 1,
"ccy":"USDT",
"avgApy":"0.23442",
"currentApy":"0.23442",
"apyUsed":"0.23442",
"apyDefinition":"AAVE_LENDING_APY"
}
Apy
GET rfq/apy
Параметры ввода
| Имя поля | Обязательно | Тип | Описание |
|---|---|---|---|
| chainId | true | number | |
| ccy | true | string | USDT |
| apyDefinition | false | string | Определение расчета, соответствующее APY; по умолчанию AaveLendingApy |
Параметры ответа
| Имя поля | Тип | Описание |
|---|---|---|
| chainId | number | Идентификатор цепи |
| ccy | string | Валюта депозита |
| avgApy | string | Средний APY, зафиксированный в цепи за последние 30 дней |
| currentApy | string | Последний APY |
| apyUsed | string | APY, фактически использованный в SofaServer для оценки будущих процентных доходов |
| apyDefinition | string | Определение расчета, соответствующее APY |
Пример ответа
{
"chainId": 1,
"ccy":"USDT",
"avgApy":"0.23442",
"currentApy":"0.23442",
"apyUsed":"0.23442",
"apyDefinition":"AAVE_LENDING_APY"
}
Получить позиции кошелька
POST /rfq/position-list
Параметры ввода
| Имя поля | Обязательно | Тип | Описание |
|---|---|---|---|
| chainId | true | Int | |
| vaults | false | list[string] | Набор адресов контрактов; если не указано, будут запрашиваться все контракты. |
| claimed | false | boolean | Был ли он выкуплен; если не указано, будут запрашиваться позиции всех статусов. |
| expired | false | boolean | Истек ли он; если не указано, будут запрашиваться позиции всех статусов. |
| concealed | false | boolean | Скрыт ли он; если не указано, будут запрашиваться позиции всех статусов. |
| positiveReturn | false | boolean | Является ли сумма выкупа больше 0; если не указано, будут запрашиваться все позиции. |
| positiveProfit | false | boolean | Превышает ли доход основную сумму; если не указано, будут запрашиваться все позиции. |
| limit | false | Int | Количество запросов; по умолчанию 100, максимум 300. |
| startDateTime | false | number | Соответствующая временная метка в секундах (включительно), например, 1672387200. |
| endDateTime | false | number | Соответствующая временная метка в секундах (включительно), например, 1672387200. |
| orderBy | false | string | "createdAt" или "return", метод сортировки: "createdAt" (время обновления, по умолчанию) или "return" (доходы). |
| orderDirection | false | string | "desc" или "asc", по умолчанию "desc" (по убыванию). |
| wallet | false | string | Адрес кошелька (если пусто, будут запрашиваться все адреса кошельков). |
Примечание: Если количество результатов превышает 300 в указанных startDateTime и endDateTime, можно использовать опрос (в этом случае orderBy должен быть установлен на "createdAt"), чтобы продолжить запрос. Параметр endDateTime для n-го запроса на опрос должен быть установлен на createdAt последней записи из (n-1)-го результата опроса. После получения всех данных дубликаты должны быть удалены на основе поля id.
Параметры ответа
| Имя поля | Тип | Описание |
|---|---|---|
| code | number | |
| message | string | |
| value | list[object] | Как показано ниже |
Объект
| Имя поля | Тип | Описание |
|---|---|---|
| id | string | Идентификатор продукта, соответствующий позиции (совпадает с productId в данных The Graph). Этот идентификатор уникален в пределах цепочки + измерения хранилища и может быть использован для запроса остатков позиций. |
| positionId | string | Идентификатор позиции, который уникален в пределах измерения цепочки. |
| product | object | Информация о продукте. |
| wallet | string | Адрес кошелька. |
| createdAt | number | Соответствующая временная метка в секундах, например, 1672387200. |
| updatedAt | number | Соответствующая временная метка в секундах, например, 1672387200. |
| claimed | boolean | Была ли позиция выкуплена. |
| takerAllocationRate | number | На основе времени расчета оценивает долю, которую владелец может взять из пула ставок. До истечения срока это оценочное значение. |
| triggerTime | number | Для Rangebound первое время прорыва; для не Rangebound время расчета, в секундах. |
| triggerPrice | number | Для Rangebound первая цена прорыва; для не Rangebound цена расчета. |
| feeRate | object | Ставка комиссии. |
| leverageInfo | object | Информация о займе (необязательно). |
| relevantDollarPrices | list[object] | Цены токенов, необходимые для конвертации цены RCH и расчета аирдропа. |
| amounts | object | Рассчитанные суммы. |
| apyInfo | object | Информация о годовой доходности, доступная для продуктов, не относящихся к Surge. |
| oddsInfo | object | Информация о шансах, доступная для продуктов Surge. |
| claimParams | object | Информация о параметрах запроса. |
Пример ответа
{
"value": [{
...
}]
}
Получить транзакции кошелька
POST /rfq/transaction-list
Параметры ввода
| Название поля | Обязательно | Тип | Описание |
|---|---|---|---|
| chainId | true | Int | |
| vaults | false | list[string] | Набор адресов контрактов; если не указано, будут запрашиваться все контракты. |
| limit | false | Int | Количество запросов; по умолчанию 100, максимум 300. |
| startDateTime | false | number | Соответствующая метка времени в секундах (включительно), например, 1672387200. |
| endDateTime | false | number | Соответствующая метка времени в секундах (включительно), например, 1672387200. |
| orderDirection | false | string | "desc" или "asc", по умолчанию "desc" (по убыванию). |
| taker | false | string | Адрес кошелька получателя |
| maker | false | string | Адрес кошелька создателя |
| claimParams | false | object | Параметры выкупа, соответствующие полю claimParams в данных списка позиций. |
| hash | false | string | Хэш транзакции |
Примечание: Параметры taker, maker и claimParams могут быть использованы для совместного запроса для поиска торговых записей, соответствующих позиции (позиция может соответствовать нескольким сделкам) (не все параметры обязательны). Если количество результатов превышает 300 в указанных startDateTime и endDateTime, можно использовать опрос (в этом случае orderBy должен быть установлен на "createdAt"), чтобы продолжить запрос. Параметр endDateTime для n-го запроса опроса должен быть установлен на createdAt последней записи из (n-1)-го результата опроса. После получения всех данных дубликаты должны быть удалены на основе поля id.
Параметры ответа
| Имя поля | Тип | Описание |
|---|---|---|
| code | number | |
| message | string | |
| value | list[object] | Как показано ниже |
Объект
| Имя поля | Тип | Описание |
|---|---|---|
| id | string | |
| hash | string | Хэш транзакции |
| takerWallet | string | Адрес кошелька участника. |
| makerWallet | string | Адрес кошелька создателя. |
| product | object | Информация о продукте. |
| createdAt | number | Соответствующая метка времени в секундах, например, 1672387200. |
| takerAllocationRate | number | На основе времени расчета оценивает долю, которую владелец может получить из пула ставок. До истечения срока это оценочное значение. |
| triggerTime | number | Для диапазонного - первое время прорыва; для недиапазонного - время расчета, в секундах. |
| triggerPrice | number | Для диапазонного - первая цена прорыва; для недиапазонного - цена расчета. |
| feeRate | object | Ставка комиссии. |
| leverageInfo | object | Информация о займе (по желанию). |
| relevantDollarPrices | list[object] | Цены токенов, необходимые для конверсии цены RCH и расчета аирдропа. |
| amounts | object | Рассчитанные суммы. |
| apyInfo | object | Информация о годовой доходности, доступная для недиапазонных продуктов. |
| oddsInfo | object | Информация о коэффициентах, доступная для продуктов Surge. |
Пример ответа
{
"value": [{
...
}]
}
Скрыть позиции убытков
POST rfq/position/conceal
Входные параметры
| Название поля | Обязательно | Тип | Описание |
|---|---|---|---|
| chainId | да | int | Идентификатор цепочки |
| positionIds | да | List[string] | Список идентификаторов позиций, до 20 |
Пример запроса
{
"positionIds": [
"aaaa","bbbb"
],
"chainId": 1
}
Параметры ответа
| Название поля | Тип | Описание |
|---|---|---|
| code | int | 0 указывает на то, что результат возврата нормален |
| message | string | Сообщение об ошибке, возвращаемое в случае исключения |
| value | object | . |
Получить ожидающие транзакции
Это в основном направлено на решение проблемы синхронизации данных о позициях. Данные, полученные здесь, могут исчезнуть (из-за конкуренции форков блокчейна).
POST rfq/transactions/pending
Параметры ввода
| Название поля | Обязательно | Тип | Описание |
|---|---|---|---|
| chainId | да | Int | |
| vaults | нет | list[string] | Набор адресов контрактов; если не указано, будут запрошены все контракты. |
| taker | нет | string | Адрес кошелька тейкера |
| maker | нет | string | Адрес кошелька мейкера |
Параметры ответа
| Название поля | Тип | Описание |
|---|---|---|
| code | number | |
| message | string | |
| value | list[object] | Как показано ниже |
Объект
| Название поля | Тип | Описание |
|---|---|---|
| id | string | |
| hash | string | Хэш транзакции |
| takerWallet | string | адрес кошелька тейкера. |
| makerWallet | string | адрес кошелька мейкера. |
| product | object | Информация о продукте. |
| createdAt | number | Соответствующая метка времени в секундах, например, 1672387200. |
| takerAllocationRate | number | На основе времени расчета оценивает долю, которую владелец может взять из пула ставок. До истечения срока это оценочное значение. |
| triggerTime | number | Для Rangebound время первого прорыва; для не-Rangeboun время расчета, в секундах. |
| triggerPrice | number | Для Rangebound первая цена прорыва; для не-Rangeboun цена расчета. |
| feeRate | object | Ставка комиссии. |
| leverageInfo | object | Информация о займе (необязательно). |
| relevantDollarPrices | list[object] | Цены токенов, необходимые для конверсии цены RCH и расчета аирдропа. |
| amounts | object | Рассчитанные суммы. |
| apyInfo | object | Информация о годовой доходности, доступная для продуктов, не относящихся к Surge. |
| oddsInfo | object | Информация о коэффициентах, доступная для продуктов Surge. |
Получить историю аирдропа RCH
GET rfq/airdrop/history
Параметры ввода
| Имя поля | Обязательно | Тип | Описание |
|---|---|---|---|
| wallet | true | string | Адрес кошелька |
| startDateTime | true | number | Соответствующая метка времени в секундах (включительно), например, 1672387200. |
| endDateTime | true | number | Соответствующая метка времени в секундах (включительно), например, 1672387200. |
| orderBy | false | string | "dateTime" или "rch", метод сортировки: "dateTime" (время airdrop, по умолчанию) или "rch" (сумма). |
| orderDirection | false | string | "desc" или "asc", по умолчанию "desc" (по убыванию). |
Параметры ответа
| Имя поля | Тип | Описание |
|---|---|---|
| code | number | |
| message | string | |
| value | list[object] | Как показано ниже |
Объект
| Имя поля | Тип | Описание |
|---|---|---|
| dateTime | long | Текущая метка времени в секундах, например, 1672387200. |
| wallet | string | Адрес кошелька |
| volume | string | Объем торговли |
| rch | string | Сумма airdrop, сырое значение, нужно разделить на 1e18 |
| merkleProof | string | Меркле-доказательство |