跳到主要内容

桥接运营

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(解析结果):chainrpc_urlschain_idbridge_contracttoken_contracttoken_decimalsconfirmationsupgrade_adminoperator_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_actionmanual | reject
reject_reason_code超限拒因
payout_key_id / payout_addressEVM 打款钥
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(必填)、offsetlimit

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:offsetlimit

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_idrecipientzepto_request_idamountsettled_at_blocksettled_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_id400

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" }