- 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
80 lines
2.1 KiB
JSON
80 lines
2.1 KiB
JSON
{
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"title": "Trigger",
|
|
"description": "Payment rail trigger with state machine",
|
|
"type": "object",
|
|
"required": ["triggerId", "rail", "msgType", "state", "instructionId"],
|
|
"properties": {
|
|
"triggerId": {
|
|
"type": "string",
|
|
"description": "Unique trigger identifier",
|
|
"pattern": "^[a-fA-F0-9]{64}$"
|
|
},
|
|
"rail": {
|
|
"$ref": "../enums/Rails.json"
|
|
},
|
|
"msgType": {
|
|
"type": "string",
|
|
"description": "ISO-20022 message type (e.g., pacs.008, pain.001)",
|
|
"pattern": "^[a-z]+\\.[0-9]{3}$"
|
|
},
|
|
"state": {
|
|
"$ref": "../enums/TriggerStates.json"
|
|
},
|
|
"instructionId": {
|
|
"type": "string",
|
|
"description": "Unique instruction identifier for idempotency",
|
|
"pattern": "^[a-fA-F0-9]{64}$"
|
|
},
|
|
"endToEndId": {
|
|
"type": "string",
|
|
"description": "End-to-end reference (optional)",
|
|
"pattern": "^[a-fA-F0-9]{64}$"
|
|
},
|
|
"canonicalMessage": {
|
|
"$ref": "CanonicalMessage.json"
|
|
},
|
|
"payloadHash": {
|
|
"type": "string",
|
|
"description": "Hash of full ISO-20022 XML payload",
|
|
"pattern": "^0x[a-fA-F0-9]{64}$"
|
|
},
|
|
"amount": {
|
|
"type": "string",
|
|
"description": "Transfer amount (wei, as string)",
|
|
"pattern": "^[0-9]+$"
|
|
},
|
|
"token": {
|
|
"type": "string",
|
|
"description": "Token contract address",
|
|
"pattern": "^0x[a-fA-F0-9]{40}$"
|
|
},
|
|
"accountRefId": {
|
|
"type": "string",
|
|
"description": "Hashed account reference",
|
|
"pattern": "^0x[a-fA-F0-9]{64}$"
|
|
},
|
|
"counterpartyRefId": {
|
|
"type": "string",
|
|
"description": "Hashed counterparty reference",
|
|
"pattern": "^0x[a-fA-F0-9]{64}$"
|
|
},
|
|
"railTxRef": {
|
|
"type": "string",
|
|
"description": "Rail transaction reference (set after submission)",
|
|
"nullable": true
|
|
},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"description": "Trigger creation timestamp"
|
|
},
|
|
"updatedAt": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"description": "Last state update timestamp"
|
|
}
|
|
}
|
|
}
|
|
|