桥接运营
zepto-server 自动入金 / 自动出金 / 人工打款。均需 Bearer。 链上充提 Action 本身见 充提桥。
连接器(EVM RPC + Bridge 合约)用钱包签名 attestation 保存,防止未授权改 RPC。
ConnectorSaveInput:
{
"rpc_urls": ["https://bsc-dataseed1.binance.org"],
"bridge_contract": "0x…",
"nonce": "<challenge>",
"timestamp_ms": 1756440000000,
"signature": "0x…",
"address": "0x…"
}
OffchainChainParams(解析结果):chain、rpc_urls、chain_id、bridge_contract、
token_contract、token_decimals、confirmations、upgrade_admin、operator_address。
GET /api/bridge/connector-challenge
领取连接器 attestation 用的 { challenge, timestamp_ms }(与登录 challenge 同形)。
POST /api/bridge/resolve-connector
只读探测,不落库。Body: { "rpc_urls": ["…"], "bridge_contract": "0x…" }
200: OffchainChainParams。解析失败 → 400。
GET /api/bridge/auto-deposit
{
"updated_at_ms": 0,
"updated_by": null,
"connector": { },
"connector_stored": { "rpc_urls": [], "bridge_contract": "0x…", "attestation": { } },
"connector_ready": false,
"connector_error": null,
"settlement_key_id": null,
"settlement_address": null,
"usage_today": { "total_amount": "0", "total_count": 0, "day_utc": "2026-08-29" }
}
PUT /api/bridge/auto-deposit
Body: { "connector": <ConnectorSaveInput> }
GET /api/bridge/auto-withdraw
在入金配置之上增加限额与钥匙角色:
| 字段 | 说明 |
|---|---|
per_tx_limit | 单笔上限(decimal string) |
daily_per_address_limit | 单地址日累计金额 |
daily_per_address_count | 单地址日笔数 |
daily_global_count | 全日总笔数 |
over_limit_action | manual | reject |
reject_reason_code | 超限拒因 |
payout_key_id / payout_address | EVM 打款钥 |
settlement_key_id / settlement_address | 链上结算钥 |
zepto_settlement_key / evm_payout_key | { role, label, key_id, address, ready } |
evm_contract_operator | 合约 operator |
evm_payout_matches_operator | 打款钥是否等于 operator |
usage_today | 当日用量 |
PUT /api/bridge/auto-withdraw
改限额策略(可顺带绑打款钥)。Body:
{
"per_tx_limit": "1000",
"daily_per_address_limit": "5000",
"daily_per_address_count": 10,
"daily_global_count": 100,
"over_limit_action": "manual",
"reject_reason_code": 0,
"payout_key_id": null
}
PUT /api/bridge/auto-withdraw/connector
Body: { "connector": <ConnectorSaveInput> }
GET /api/bridge/operations?kind=deposit|withdraw
自动审批操作日志。Query:kind(必填)、offset、limit。
200: { "kind", "data": [{ "id", "ts_ms", "level", "component", "message" }], "page": { "offset", "limit", "total" } }
GET /api/bridge/usage?kind=deposit|withdraw
当日用量。200: { "kind", "day_utc", "summary": { "total_amount", "total_count", "day_utc" }, "by_owner": [{ "owner", "amount_total", "count", "day_utc" }] }
GET /api/bridge/evm-deposits
EVM 入金流水。Query:offset、limit。
200: { "kind": "deposit", "chain", "bridge_contract", "token_decimals", "data": [{ "seq", "owner", "amount", "recorded_at_block", "recorded_at_ms" }], "page" }
GET /api/bridge/evm-withdrawals
EVM 出金流水。行字段:withdraw_id、recipient、zepto_request_id、amount、settled_at_block、settled_at_ms。
GET /api/bridge/manual-withdraw-addresses
超限后允许人工打款的地址白名单。
200: { "addresses": [{ "address", "note", "created_at_ms", "created_by" }] }
POST /api/bridge/manual-withdraw-addresses
Body: { "address": "0x…", "note"?: "…" }
DELETE /api/bridge/manual-withdraw-addresses/{address}
{address} 为 URL 编码的 EVM 地址。
GET /api/bridge/withdraw-approve-challenge?request_id={id}
人工批准打款的 challenge。缺 request_id → 400。
200: { "challenge", "timestamp_ms", "request_id" }
POST /api/bridge/withdraw/approve-disburse
Body: { "request_id", "nonce", "timestamp_ms", "signature", "address" }
nonce 为上一接口的 challenge。
200: { "ok", "request_id", "evm_tx_hash", "auroran_tx_hash", "error" }