Перейти к навигации

Книга контрактов

Книга контрактов: Интеграция с Agent Java SDK v0.3.0, примеры, параметры и семантика ответа.

Просмотр в формате Markdown

Это руководство предназначено для Agent Java SDK v0.3.0, Java 8+ и помеченного публичного контракта. Примеры выполняются в серверной части партнера после инициализации client в Быстрый старт.

Пример предварительных условий

Фрагменты Java разделяют этот импорт. Инициализируйте client с помощью быстрого запуска и получите platformUserId из сохраненной привязки. Примеры идентификаторов пользователей/заказов необходимо заменить вашими собственными сохраненными значениями.

import com.sixmm.agent.*;
import com.sixmm.agent.model.*;
import java.util.*;

listPerpetualLedger

Модель запроса: PerpetualLedgerRequest.

import com.sixmm.agent.model.PerpetualLedgerRequest;
import com.sixmm.agent.model.PerpetualResponse;
import java.util.Collections;
PerpetualLedgerRequest request = new PerpetualLedgerRequest();
request.platformUserIds = Collections.singletonList("1188041528");
request.limit = 100;
request.endTime = System.currentTimeMillis();
request.startTime = request.endTime - 3_600_000L;
PerpetualResponse response = client.listPerpetualLedger(request);
System.out.println(response.data.items.size());
System.out.println(response.data.hasMore);
System.out.println(response.data.nextCursor);

Поля запроса

ПолеJava типНеобходимыйЗначение
platformUserIdsjava.util.List<String>Условный1–100 уникальных публичных идентификаторов; требуется для исполнения и условных ордеров. Опустить поддерживаемые запросы для прямой области действия игрока; [] недействительно.
assetTypeStringНетКлассификация активов, возвращаемая реестром; не предполагайте USDT.
changeTypeStringНетТип бизнес-изменения книги с сохранением исходных значений.
startTimeLongНетВключительно миллисекунды Unix; используйте фиксированное окно истории UTC.
endTimeLongНетЭксклюзивные миллисекунды Unix.
limitIntegerНетПо умолчанию 500; 1–1000.
cursorStringНетИспользуйте возвращенный nextCursor с неизмененными фильтрами; остановитесь, когда hasMore имеет значение false.

Пример читает одну страницу. Для обязательных полей, области действия игрока, семантики фильтра, ограничения, курсора и ограниченных повторов следуйте инструкциям. Обзор запроса. Сохраняйте все фильтры неизменными при пейджинге; не интерпретируйте ошибку как пустой результат.

Записи книги контрактов

Интерфейс: account/ledger. Возвращенные данные содержат только следующие 11 бизнес-полей и не содержат логических флагов порядка.

Поле dataтипзначение
ledgerIdstringИсходный реестр записывает идентификатор транзакции; одна и та же транзакция может быть разделена на несколько деталей
symbolstringСвязанная торговая пара, может быть опущена, если не связана
assetTypestringТип актива, сохраненный по исходному значению; используется для классификации активов, не выводится по умолчанию USDT
changeTypestringТип бизнеса изменения счета, сохраненный в соответствии с исходным значением, например, комиссия за обработку, прибыль и убыток, перевод; можно фильтровать по тому же полю
amountstringСумма изменения данной детали, положительное число указывает на увеличение, отрицательное число указывает на уменьшение; точность сохраняется
walletBalanceBeforestringБаланс кошелька до смены аккаунта, записанный в этой детали.
walletBalanceAfterstringБаланс кошелька после смены аккаунта, зафиксированный в этой детали.
frozenBalanceBeforestringВ этой детали записывается замороженный баланс, зафиксированный до изменения счета.
frozenBalanceAfterstringЗамороженный баланс, зафиксированный в этой детали после смены счета
referenceIdstringСвязанный бизнес-номер; интерпретируется как changeType и не может быть единообразно расценен как порядок orderId; «0» указывает, что источник не имеет действительного связанного номера.
createdAtintegerВремя создания реквизитов изменения аккаунта, миллисекунды; это поле используется для фильтрации времени в этом интерфейсе

Используйте баланс до и после изменения учетной записи, возвращенного интерфейсом. Разные changeType имеют разную семантику, и нельзя предполагать, что каждая сумма равна walletBalanceAfter − walletBalanceBefore. Отображение/сводка записей книги должны сохранять тип и детализацию.

Вот пример формата с использованием вымышленного идентификатора и суммы:

{
"code": 0,
"message": "success",
"data": {
"items": [
{
"platformUserId": "1188041528",
"entityType": "ACCOUNT_LEDGER",
"entityId": "900001",
"data": {
"ledgerId": "ledger-example-001",
"symbol": "BTCUSDT",
"assetType": "USDT",
"changeType": "HANDLING_FEE",
"amount": "-0.10000000",
"walletBalanceBefore": "100.00000000",
"walletBalanceAfter": "99.90000000",
"frozenBalanceBefore": "0.00000000",
"frozenBalanceAfter": "0.00000000",
"referenceId": "800001",
"createdAt": 1791590400000
}
}
],
"nextCursor": "",
"hasMore": false
}
}

Пример конверта ответа

Это иллюстративная пустая страница, а не образец завершенной сделки. В приведенных выше таблицах полей для конкретных ресурсов описываются заполненные items[].data.

{"code":0,"message":"success","data":{"items":[],"nextCursor":"","hasMore":false}}

Источник и связанные руководства