Skip to navigation

Договірна книга

Договірна книга: Інтеграція Agent Java SDK v0.3.0, приклади, параметри та семантика відповіді.

View as 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 невірно.

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

Записи в книзі договорів

Інтерфейс: 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}}

Джерело та відповідні посібники