Резерв — это доступное количество средств в выбранной валюте. Он используется для предотвращения создания заявок, сумма которых превышает доступный баланс для обмена.
Если резерв установлен в off
, можно создавать заявки на неограниченную сумму.
manual
) или загружается из файла (fromFile
), он уменьшается при каждой созданной заявке.fromExchange
), он обновляется автоматически.off
), сумма заявки не ограничена.GET /api/reserve/{code}
Права: ✅ Открыт для всех
Запрос возвращает текущий резерв для указанной валюты. Резерв при этом не конвертируется, он может быть задан в любой валюте. Данный маршрут изначально был сделан для админки, чтобы менять резерв именно в той валюте, в которой он задавался.
Параметры:
code
– код валюты (например, BTC
, ETH
).Резерв не учитывается при создании заявки.
Ответ:
{
"type": "success",
"message": null,
"data": {
"reserveType": "off",
"reserveCurrency": null,
"value": null,
"exchangeName": null
},
"action": null
}
Резерв устанавливается вручную и уменьшается при заявках.
Ответ:
{
"type": "success",
"message": null,
"data": {
"reserveType": "manual",
"reserveCurrency": "RUB",
"value": 20000.0,
"exchangeName": null
},
"action": null
}
reserveCurrency
– валюта, в которой задан резерв.value
– количество валюты (в примере 20000 RUB).Резерв загружается из файла (reserve.json
) и уменьшается при создании заявки.
Ответ:
{
"type": "success",
"message": null,
"data": {
"reserveType": "fromFile",
"reserveCurrency": "USDT",
"value": 500.0,
"exchangeName": null
},
"action": null
}
reserve.json
может обновить значения.Резерв запрашивается с биржи и не изменяется вручную.
Чтобы использовать этот тип резерва, нужно добавить API-ключ для биржи.
В данный момент поддерживается только Bybit и Mexc.
Ответ:
{
"type": "success",
"message": null,
"data": {
"reserveType": "fromExchange",
"reserveCurrency": "USDT",
"value": 500.0,
"exchangeName": "Bybit"
},
"action": null
}
GET /api/user/reserve
Права: ✅ Открыт для всех
Запрос возвращает текущий резерв для указанной валюты.
Этот маршрут всегда возвращает результат в базовой валюте. Например, для валюты BTC
мы задали резерв в DOGE
. Но получим результат, который будет пересчитан в BTC
по текущему курсу. Если резерв не задан, ошибки не будет, получим 0.
Параметры:
to
- код валюты, для которой нужно загрузить резерв.Ответ:
{
"type": "success",
"message": null,
"data": {
"reserve": 500.0
},
"action": null
}
GET /api/reserves
Права: ✅ Открыт для всех
Запрос возвращает список резервов для всех валют.
В этом режиме reserveType
может принимать значение error
. Это сделано для того, чтобы при ошибке резерва по одной валюте резервы по другим валютам продолжали загружаться.
Ответ:
{
"type": "success",
"message": null,
"data": {
"RUB": {
"reserveType": "manual",
"reserveCurrency": "RUB",
"value": 500
},
"EUR": {
"reserveType": "manual",
"reserveCurrency": "EUR",
"value": 10
},
"TON": {
"reserveType": "error",
"reserveCurrency": null,
"value": null
},
"ETH": {
"reserveType": "fromFile",
"reserveCurrency": "USDT",
"value": 1000
}
},
"action": null
}
POST /api/reserve/{code}
Права: 🔴 админка, isEditReserve
Позволяет установить резерв. Можно отправить один из четырёх вариантов:
off
manual
fromFile
fromExchange
Параметры:
code
- валюта, для которой нужно задать резерв.
Запрос: POST api/reserve/RUB
{
"reserveType": "manual",
"reserveCurrency": null,
"value": 20000,
"exchangeName": ""
}
Ответ:
{
"type": "success",
"message": "Резерв для валюты RUB обновлен",
"data": null,
"action": null
}
POST /api/reserve/update/{code}
Права: 🔴 админка, isEditReserve
Позволяет заново перечитать резерв из файла.
По мере создания новых заявок, если выбрана опция "Из файла", резерв уменьшается.
Запрос: POST api/reserve/update/ETH
Ответ:
{
"type": "success",
"message": "Резерв из файла для ETH обновлен вручную: 3000.0 USDT",
"data": null,
"action": null
}