- Add Foundry project configuration (foundry.toml, foundry.lock) - Add Solidity contracts (TokenFactory138, BridgeVault138, ComplianceRegistry, etc.) - Add API definitions (OpenAPI, GraphQL, gRPC, AsyncAPI) - Add comprehensive test suite (unit, integration, fuzz, invariants) - Add API services (REST, GraphQL, orchestrator, packet service) - Add documentation (ISO20022 mapping, runbooks, adapter guides) - Add development tools (RBC tool, Swagger UI, mock server) - Update OpenZeppelin submodules to v5.0.0
239 lines
6.6 KiB
YAML
239 lines
6.6 KiB
YAML
paths:
|
|
/liens:
|
|
post:
|
|
summary: Place a lien
|
|
description: Place a lien (encumbrance) on an account
|
|
operationId: placeLien
|
|
tags:
|
|
- Liens
|
|
security:
|
|
- oauth2:
|
|
- liens:write
|
|
x-roles:
|
|
- DEBT_AUTHORITY
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '../components/schemas.yaml#/components/schemas/PlaceLienRequest'
|
|
responses:
|
|
'201':
|
|
description: Lien placed successfully
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '../components/schemas.yaml#/components/schemas/Lien'
|
|
'400':
|
|
$ref: '../openapi.yaml#/components/responses/BadRequest'
|
|
'403':
|
|
$ref: '../openapi.yaml#/components/responses/Forbidden'
|
|
|
|
get:
|
|
summary: List liens
|
|
description: List liens with optional filtering
|
|
operationId: listLiens
|
|
tags:
|
|
- Liens
|
|
security:
|
|
- oauth2:
|
|
- liens:read
|
|
parameters:
|
|
- name: debtor
|
|
in: query
|
|
schema:
|
|
type: string
|
|
pattern: '^(0x[a-fA-F0-9]{40}|0x[a-fA-F0-9]{64})$'
|
|
description: Filter by debtor address or account reference
|
|
- name: active
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
description: Filter by active status
|
|
- name: limit
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
minimum: 1
|
|
maximum: 100
|
|
default: 20
|
|
- name: offset
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
minimum: 0
|
|
default: 0
|
|
responses:
|
|
'200':
|
|
description: List of liens
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
items:
|
|
type: array
|
|
items:
|
|
$ref: '../components/schemas.yaml#/components/schemas/Lien'
|
|
total:
|
|
type: integer
|
|
limit:
|
|
type: integer
|
|
offset:
|
|
type: integer
|
|
|
|
/liens/{lienId}:
|
|
get:
|
|
summary: Get lien
|
|
description: Get lien details by ID
|
|
operationId: getLien
|
|
tags:
|
|
- Liens
|
|
security:
|
|
- oauth2:
|
|
- liens:read
|
|
parameters:
|
|
- $ref: '../components/parameters.yaml#/components/parameters/LienId'
|
|
responses:
|
|
'200':
|
|
description: Lien details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '../components/schemas.yaml#/components/schemas/Lien'
|
|
'404':
|
|
$ref: '../openapi.yaml#/components/responses/NotFound'
|
|
|
|
patch:
|
|
summary: Reduce lien
|
|
description: Reduce lien amount
|
|
operationId: reduceLien
|
|
tags:
|
|
- Liens
|
|
security:
|
|
- oauth2:
|
|
- liens:write
|
|
x-roles:
|
|
- DEBT_AUTHORITY
|
|
parameters:
|
|
- $ref: '../components/parameters.yaml#/components/parameters/LienId'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '../components/schemas.yaml#/components/schemas/ReduceLienRequest'
|
|
responses:
|
|
'200':
|
|
description: Lien reduced
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '../components/schemas.yaml#/components/schemas/Lien'
|
|
|
|
delete:
|
|
summary: Release lien
|
|
description: Release (remove) a lien
|
|
operationId: releaseLien
|
|
tags:
|
|
- Liens
|
|
security:
|
|
- oauth2:
|
|
- liens:write
|
|
x-roles:
|
|
- DEBT_AUTHORITY
|
|
parameters:
|
|
- $ref: '../components/parameters.yaml#/components/parameters/LienId'
|
|
responses:
|
|
'200':
|
|
description: Lien released
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
lienId:
|
|
type: string
|
|
released:
|
|
type: boolean
|
|
|
|
/accounts/{accountRefId}/liens:
|
|
get:
|
|
summary: List liens for account
|
|
description: Get all liens for a specific account
|
|
operationId: getAccountLiens
|
|
tags:
|
|
- Liens
|
|
security:
|
|
- oauth2:
|
|
- liens:read
|
|
parameters:
|
|
- $ref: '../components/parameters.yaml#/components/parameters/AccountRefId'
|
|
- name: active
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
description: Filter by active status
|
|
responses:
|
|
'200':
|
|
description: List of liens
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
accountRefId:
|
|
type: string
|
|
liens:
|
|
type: array
|
|
items:
|
|
$ref: '../components/schemas.yaml#/components/schemas/Lien'
|
|
activeEncumbrance:
|
|
type: string
|
|
description: Total active encumbrance amount
|
|
|
|
/accounts/{accountRefId}/encumbrance:
|
|
get:
|
|
summary: Get encumbrance summary
|
|
description: Get active encumbrance and free balance for an account by token
|
|
operationId: getEncumbrance
|
|
tags:
|
|
- Liens
|
|
security:
|
|
- oauth2:
|
|
- liens:read
|
|
parameters:
|
|
- $ref: '../components/parameters.yaml#/components/parameters/AccountRefId'
|
|
- name: token
|
|
in: query
|
|
schema:
|
|
type: string
|
|
pattern: '^0x[a-fA-F0-9]{40}$'
|
|
description: Token address (optional, returns for all tokens if omitted)
|
|
responses:
|
|
'200':
|
|
description: Encumbrance summary
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
accountRefId:
|
|
type: string
|
|
encumbrances:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
token:
|
|
type: string
|
|
tokenCode:
|
|
type: string
|
|
balance:
|
|
type: string
|
|
activeEncumbrance:
|
|
type: string
|
|
freeBalance:
|
|
type: string
|
|
|