201 lines
4.8 KiB
YAML
201 lines
4.8 KiB
YAML
|
|
openapi: 3.1.0
|
||
|
|
info:
|
||
|
|
title: Multi-Chain Execution and Mirroring API
|
||
|
|
version: 0.1.0
|
||
|
|
|
||
|
|
servers:
|
||
|
|
- url: http://localhost:3001
|
||
|
|
|
||
|
|
paths:
|
||
|
|
/v1/routes/chain138-to-usdtz:
|
||
|
|
post:
|
||
|
|
summary: Get route plans for Chain138 to Tezos USDtz
|
||
|
|
requestBody:
|
||
|
|
content:
|
||
|
|
application/json:
|
||
|
|
schema:
|
||
|
|
type: object
|
||
|
|
properties:
|
||
|
|
source_chain_id: { type: integer, default: 138 }
|
||
|
|
source_asset: { type: string }
|
||
|
|
source_amount: { type: string }
|
||
|
|
destination_tezos_address: { type: string }
|
||
|
|
max_slippage_bps: { type: integer }
|
||
|
|
max_total_fees: { type: string }
|
||
|
|
prefer_non_custodial: { type: boolean }
|
||
|
|
responses:
|
||
|
|
'200':
|
||
|
|
description: Route plans
|
||
|
|
'400':
|
||
|
|
description: Validation error
|
||
|
|
|
||
|
|
/v1/intents:
|
||
|
|
post:
|
||
|
|
summary: Create intent
|
||
|
|
requestBody:
|
||
|
|
content:
|
||
|
|
application/json:
|
||
|
|
schema:
|
||
|
|
type: object
|
||
|
|
required: [type, chain_from, chain_to, asset_in, asset_out, amount]
|
||
|
|
properties:
|
||
|
|
type: { type: string }
|
||
|
|
chain_from: { type: integer }
|
||
|
|
chain_to: { type: integer }
|
||
|
|
asset_in: { type: string }
|
||
|
|
asset_out: { type: string }
|
||
|
|
amount: { type: string }
|
||
|
|
idempotency_key: { type: string }
|
||
|
|
responses:
|
||
|
|
'201':
|
||
|
|
description: Intent created
|
||
|
|
'400':
|
||
|
|
description: Validation error
|
||
|
|
|
||
|
|
/v1/intents/{intentId}/execute:
|
||
|
|
post:
|
||
|
|
summary: Execute intent
|
||
|
|
parameters:
|
||
|
|
- name: intentId
|
||
|
|
in: path
|
||
|
|
required: true
|
||
|
|
schema: { type: string }
|
||
|
|
responses:
|
||
|
|
'202':
|
||
|
|
description: Execution started
|
||
|
|
'400':
|
||
|
|
description: Bad request
|
||
|
|
|
||
|
|
/v1/executions/{executionId}:
|
||
|
|
get:
|
||
|
|
summary: Get execution status
|
||
|
|
parameters:
|
||
|
|
- name: executionId
|
||
|
|
in: path
|
||
|
|
required: true
|
||
|
|
schema: { type: string }
|
||
|
|
responses:
|
||
|
|
'200':
|
||
|
|
description: Execution
|
||
|
|
'404':
|
||
|
|
description: Not found
|
||
|
|
|
||
|
|
/v1/tx/{chainId}/{txHash}:
|
||
|
|
get:
|
||
|
|
summary: Get normalized receipt and logs
|
||
|
|
parameters:
|
||
|
|
- name: chainId
|
||
|
|
in: path
|
||
|
|
required: true
|
||
|
|
schema: { type: integer }
|
||
|
|
- name: txHash
|
||
|
|
in: path
|
||
|
|
required: true
|
||
|
|
schema: { type: string }
|
||
|
|
responses:
|
||
|
|
'200':
|
||
|
|
description: Receipt and logs
|
||
|
|
'404':
|
||
|
|
description: Not found
|
||
|
|
|
||
|
|
/v1/mirror/commit:
|
||
|
|
post:
|
||
|
|
summary: Trigger Merkle commit
|
||
|
|
requestBody:
|
||
|
|
content:
|
||
|
|
application/json:
|
||
|
|
schema:
|
||
|
|
type: object
|
||
|
|
required: [chain_id, leaves]
|
||
|
|
properties:
|
||
|
|
chain_id: { type: integer }
|
||
|
|
leaves: { type: array }
|
||
|
|
uri: { type: string }
|
||
|
|
responses:
|
||
|
|
'201':
|
||
|
|
description: Commit created
|
||
|
|
'400':
|
||
|
|
description: Bad request
|
||
|
|
|
||
|
|
/v1/mirror/commits/{commitId}:
|
||
|
|
get:
|
||
|
|
summary: Get commit metadata
|
||
|
|
parameters:
|
||
|
|
- name: commitId
|
||
|
|
in: path
|
||
|
|
required: true
|
||
|
|
schema: { type: string }
|
||
|
|
responses:
|
||
|
|
'200':
|
||
|
|
description: Commit
|
||
|
|
'404':
|
||
|
|
description: Not found
|
||
|
|
|
||
|
|
/v1/mirror/proof:
|
||
|
|
get:
|
||
|
|
summary: Get Merkle proof for tx
|
||
|
|
parameters:
|
||
|
|
- name: chain_id
|
||
|
|
in: query
|
||
|
|
required: true
|
||
|
|
schema: { type: integer }
|
||
|
|
- name: tx_hash
|
||
|
|
in: query
|
||
|
|
required: true
|
||
|
|
schema: { type: string }
|
||
|
|
responses:
|
||
|
|
'200':
|
||
|
|
description: Leaf, proof, root
|
||
|
|
'404':
|
||
|
|
description: No proof found
|
||
|
|
|
||
|
|
/v1/health:
|
||
|
|
get:
|
||
|
|
summary: Health and circuit breaker status
|
||
|
|
responses:
|
||
|
|
'200':
|
||
|
|
description: ok or degraded
|
||
|
|
|
||
|
|
/v1/metrics:
|
||
|
|
get:
|
||
|
|
summary: Prometheus metrics
|
||
|
|
responses:
|
||
|
|
'200':
|
||
|
|
description: text/plain
|
||
|
|
|
||
|
|
/v1/admin/policies:
|
||
|
|
post:
|
||
|
|
summary: Update policies (stub, protected)
|
||
|
|
responses:
|
||
|
|
'200':
|
||
|
|
description: Accepted
|
||
|
|
'401':
|
||
|
|
description: Unauthorized
|
||
|
|
|
||
|
|
/v1/admin/keys/rotate:
|
||
|
|
post:
|
||
|
|
summary: Rotate keys (stub, protected)
|
||
|
|
responses:
|
||
|
|
'200':
|
||
|
|
description: Accepted
|
||
|
|
'401':
|
||
|
|
description: Unauthorized
|
||
|
|
|
||
|
|
/v1/admin/circuit-breaker/on:
|
||
|
|
post:
|
||
|
|
summary: Force circuit breaker open (protected)
|
||
|
|
responses:
|
||
|
|
'200':
|
||
|
|
description: OK
|
||
|
|
'401':
|
||
|
|
description: Unauthorized
|
||
|
|
|
||
|
|
/v1/admin/circuit-breaker/off:
|
||
|
|
post:
|
||
|
|
summary: Force circuit breaker closed (protected)
|
||
|
|
responses:
|
||
|
|
'200':
|
||
|
|
description: OK
|
||
|
|
'401':
|
||
|
|
description: Unauthorized
|