Files
proxmox/docs/api/openapi-multi-chain-execution.yaml

201 lines
4.8 KiB
YAML
Raw Normal View History

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