RustMinerSystem

Документация

API fees, дохода и subaccounts PoolNode

Fee account, доход, payout address, small withdrawal, subaccount fee и rebate endpoints PoolNode.

API fees, дохода и subaccounts PoolNode

Эта глава описывает fees, доход, адреса, withdrawal и subaccounts, необходимые API clients. Revenue email, коды, wallet addresses и transaction hashes являются sensitive и должны скрываться.

PoolNode может возвращать { status, error, data } или прямые данные. См. envelope PoolNode.

Fee проекта по монете

POST /api/poolnode/project/config
{
  "email": "[email protected]",
  "coin": "PI-BTC",
  "r": 0.01
}

r — дробь 0–1; 0.01 означает 1%.

Доход и записи

Метод Путь Основные поля body
POST /api/poolnode/profit email, coin.
POST /api/poolnode/address/info email.
POST /api/poolnode/rewards email, coin, page, size.
POST /api/poolnode/payouts email, coin, page, size.

Frontend распознает состояния all, yesterday, paid, unpaid. Списки используют:

{
  "records": [],
  "total": 0,
  "page_no": 1
}

Изменение payout address

Отправка email code:

POST /api/poolnode/send/user/mail
{
  "address": "[email protected]",
  "token": "<captcha или verification token>"
}

Сохранение адреса и threshold:

POST /api/poolnode/update/address
{
  "email": "[email protected]",
  "code": "123456",
  "coin": "PI-BTC",
  "amount": "0.01",
  "address": "<payout wallet>"
}

Текущий frontend отправляет amount строкой.

Small withdrawal

Метод Путь Body
POST /api/poolnode/withdrawal/can/apply { email, coin }; проверить возможность.
POST /api/poolnode/withdrawal/logs { email, coin }; история заявок.
POST /api/poolnode/withdrawal/submit { email, coin }; отправить заявку.

Frontend интерпретирует eligibility как [status, payload]. При status=0 payload — доступный баланс; при status=-3 — время следующей заявки.

Fees subaccounts

Запрос subaccounts:

POST /api/poolnode/subaccount/configs
{
  "page": 1,
  "size": 20,
  "coin": "PI-BTC",
  "name": "<необязательный фильтр>"
}

Настройка fee:

POST /api/poolnode/subaccount/config
{
  "sid": 1,
  "coin": "PI-BTC",
  "action": 0,
  "r": 0.01
}

Настройка rebate:

POST /api/poolnode/subaccount/rebate
{
  "sid": 1,
  "coin": "PI-BTC",
  "email": "[email protected]",
  "action": 0,
  "r": 0.005
}

Используются коды PoolNode: BTC обычно PI-BTC, LTC — VA-LTC.

Полные поля ответов

Fee проекта

email — revenue email владельца. coin берется из project/info.data.config[].coin. Успешный save возвращает business success или HTTP 200; повторите project info и проверьте config[].r.

Profit и address

/api/poolnode/profit возвращает в data:

[
  { "status": "all", "profit": 0 }
]

status: all, yesterday, paid, unpaid; profit — соответствующая сумма. Отсутствующее состояние считайте нулем.

/api/poolnode/address/info возвращает:

Поле Тип Значение
coin string Код валюты PoolNode.
address string Текущий revenue address.
amount string/number Минимальная сумма payout.

Перед edit найдите запись по coin.

Rewards и payouts

Оба ответа имеют { records, total, page_no }.

Поля reward records[]:

Поле Тип Значение
day string День дохода.
avg_hashrate number/string Средний hashrate за день.
day_profit number/string Доход за день.
r number/string Примененный fee ratio.
status number/string Enum состояния reward.
account_type number/string Enum типа account.

Поля payout records[]:

Поле Тип Значение
created_at string Время payout record.
amount number/string Сумма payout.
trans_id string On-chain transaction hash.
status number/string Enum состояния payout.
account_type number/string Enum типа account.

total — общее число строк, page_no — подтвержденная сервером страница. Нумерация начинается с 1.

Обновление address

coin берется из address info или project config. После успешного update повторите /api/poolnode/address/info и проверьте address, amount. Mail endpoint возвращает только delivery result, а не код.

Small withdrawal

Eligibility response: [status, payload].

Status Значение
0 Можно подать заявку; payload — balance.
-1 Нет доступного small balance.
-2 Balance есть, но payout address не задан.
-3 После предыдущей заявки прошло недостаточно времени; payload — связанное время.
-4 Недостаточно account permissions.

В withdrawal/logs.data[] frontend использует updated_at, amount, status, hash. status=1 означает ожидание оплаты; при status=0 UI может показать transaction hash. Непосредственно перед submit повторите eligibility query.

Subaccounts

Query возвращает { records, total, page_no }. Поля records[]:

Поле Тип Значение и повторное использование
id number/string ID subaccount, используется как sid.
name string Имя subaccount.
created_at string Время регистрации.
hashrate number/string Текущий hashrate.
r number/string Independent fee ratio.
rb_r number/string Rebate ratio.
rb_email string/null Revenue email для rebate.
tick string/null Read-only fragment для observer link PoolNode.

action=0 сохраняет. Для subaccount fee action=1 восстанавливает default узла; frontend отправляет compatibility value r=0.03. Для rebate action=1 удаляет rebate. После успеха повторите query текущей страницы.

Зависимости полей

Input Источник
coin GET /api/poolnode/project/infodata.config[].coin или поддерживаемый список PoolNode.
email Revenue email caller; config[].email можно использовать для display verification.
address / amount Запись того же coin из /api/poolnode/address/info.
sid /api/poolnode/subaccount/configsrecords[].id.
Rebate email при removal Текущий records[].rb_email.