- 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
88 lines
2.2 KiB
JSON
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"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|