Files
gru_emoney_token-factory/api/packages/schemas/jsonschema/Token.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

88 lines
2.2 KiB
JSON

{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Token",
"description": "eMoney token metadata and configuration",
"type": "object",
"required": ["code", "address", "name", "symbol", "decimals", "issuer"],
"properties": {
"code": {
"type": "string",
"description": "Token code (e.g., USDW)",
"pattern": "^[A-Z0-9]{1,10}$"
},
"address": {
"type": "string",
"description": "Token contract address on ChainID 138",
"pattern": "^0x[a-fA-F0-9]{40}$"
},
"name": {
"type": "string",
"description": "Token name",
"minLength": 1,
"maxLength": 100
},
"symbol": {
"type": "string",
"description": "Token symbol",
"minLength": 1,
"maxLength": 10
},
"decimals": {
"type": "integer",
"description": "Number of decimals (typically 18)",
"minimum": 0,
"maximum": 255
},
"issuer": {
"type": "string",
"description": "Issuer address",
"pattern": "^0x[a-fA-F0-9]{40}$"
},
"policy": {
"$ref": "#/definitions/TokenPolicy"
},
"createdAt": {
"type": "string",
"format": "date-time",
"description": "Token deployment timestamp"
}
},
"definitions": {
"TokenPolicy": {
"type": "object",
"properties": {
"paused": {
"type": "boolean",
"description": "Whether the token is paused"
},
"bridgeOnly": {
"type": "boolean",
"description": "Whether token only allows transfers to/from bridge"
},
"bridge": {
"type": "string",
"description": "Bridge contract address",
"pattern": "^0x[a-fA-F0-9]{40}$"
},
"lienMode": {
"type": "string",
"enum": ["OFF", "HARD_FREEZE", "ENCUMBERED"],
"description": "Lien enforcement mode"
},
"forceTransferMode": {
"type": "boolean",
"description": "Whether force transfers are enabled"
},
"routes": {
"type": "array",
"items": {
"$ref": "../enums/Rails.json"
},
"description": "Allowed payment rails"
}
}
}
}
}