Files
gru_emoney_token-factory/api/packages/schemas/jsonschema/Trigger.json
defiQUG 651ff4f7eb Initial project setup: Add contracts, API definitions, tests, and documentation
- 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
2025-12-12 10:59:41 -08:00

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