- 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
430 lines
12 KiB
JSON
430 lines
12 KiB
JSON
{
|
|
"info": {
|
|
"name": "eMoney Token Factory API",
|
|
"description": "Complete API collection for eMoney Token Factory",
|
|
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
|
|
"_exporter_id": "emoney-api"
|
|
},
|
|
"item": [
|
|
{
|
|
"name": "Tokens",
|
|
"item": [
|
|
{
|
|
"name": "Deploy Token",
|
|
"event": [
|
|
{
|
|
"listen": "prerequest",
|
|
"script": {
|
|
"exec": [
|
|
"// Get OAuth2 token",
|
|
"pm.sendRequest({",
|
|
" url: pm.environment.get('auth_url') + '/oauth/token',",
|
|
" method: 'POST',",
|
|
" header: { 'Content-Type': 'application/json' },",
|
|
" body: {",
|
|
" mode: 'raw',",
|
|
" raw: JSON.stringify({",
|
|
" grant_type: 'client_credentials',",
|
|
" client_id: pm.environment.get('client_id'),",
|
|
" client_secret: pm.environment.get('client_secret')",
|
|
" })",
|
|
" }",
|
|
"}, function (err, res) {",
|
|
" if (res.json().access_token) {",
|
|
" pm.environment.set('access_token', res.json().access_token);",
|
|
" }",
|
|
"});",
|
|
"",
|
|
"// Generate idempotency key",
|
|
"pm.environment.set('idempotency_key', pm.variables.replaceIn('{{$randomUUID}}'));"
|
|
]
|
|
}
|
|
}
|
|
],
|
|
"request": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Authorization",
|
|
"value": "Bearer {{access_token}}",
|
|
"type": "text"
|
|
},
|
|
{
|
|
"key": "Idempotency-Key",
|
|
"value": "{{idempotency_key}}",
|
|
"type": "text"
|
|
}
|
|
],
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"name\": \"USD Wrapped\",\n \"symbol\": \"USDW\",\n \"decimals\": 18,\n \"issuer\": \"0x1234567890123456789012345678901234567890\",\n \"defaultLienMode\": \"ENCUMBERED\"\n}"
|
|
},
|
|
"url": {
|
|
"raw": "{{base_url}}/v1/tokens",
|
|
"host": ["{{base_url}}"],
|
|
"path": ["v1", "tokens"]
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "List Tokens",
|
|
"request": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Authorization",
|
|
"value": "Bearer {{access_token}}",
|
|
"type": "text"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{base_url}}/v1/tokens?limit=20&offset=0",
|
|
"host": ["{{base_url}}"],
|
|
"path": ["v1", "tokens"],
|
|
"query": [
|
|
{
|
|
"key": "limit",
|
|
"value": "20"
|
|
},
|
|
{
|
|
"key": "offset",
|
|
"value": "0"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "Get Token",
|
|
"request": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Authorization",
|
|
"value": "Bearer {{access_token}}",
|
|
"type": "text"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{base_url}}/v1/tokens/USDW",
|
|
"host": ["{{base_url}}"],
|
|
"path": ["v1", "tokens", "USDW"]
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "Update Token Policy",
|
|
"request": {
|
|
"method": "PATCH",
|
|
"header": [
|
|
{
|
|
"key": "Authorization",
|
|
"value": "Bearer {{access_token}}",
|
|
"type": "text"
|
|
}
|
|
],
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"paused\": false,\n \"lienMode\": \"ENCUMBERED\"\n}"
|
|
},
|
|
"url": {
|
|
"raw": "{{base_url}}/v1/tokens/USDW/policy",
|
|
"host": ["{{base_url}}"],
|
|
"path": ["v1", "tokens", "USDW", "policy"]
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Liens",
|
|
"item": [
|
|
{
|
|
"name": "Place Lien",
|
|
"request": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Authorization",
|
|
"value": "Bearer {{access_token}}",
|
|
"type": "text"
|
|
}
|
|
],
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"debtor\": \"0xabcdefabcdefabcdefabcdefabcdefabcdefabcd\",\n \"amount\": \"1000000000000000000\",\n \"priority\": 1,\n \"reasonCode\": \"DEBT_ENFORCEMENT\"\n}"
|
|
},
|
|
"url": {
|
|
"raw": "{{base_url}}/v1/liens",
|
|
"host": ["{{base_url}}"],
|
|
"path": ["v1", "liens"]
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "Get Lien",
|
|
"request": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Authorization",
|
|
"value": "Bearer {{access_token}}",
|
|
"type": "text"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{base_url}}/v1/liens/123",
|
|
"host": ["{{base_url}}"],
|
|
"path": ["v1", "liens", "123"]
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "Reduce Lien",
|
|
"request": {
|
|
"method": "PATCH",
|
|
"header": [
|
|
{
|
|
"key": "Authorization",
|
|
"value": "Bearer {{access_token}}",
|
|
"type": "text"
|
|
}
|
|
],
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"reduceBy\": \"500000000000000000\"\n}"
|
|
},
|
|
"url": {
|
|
"raw": "{{base_url}}/v1/liens/123",
|
|
"host": ["{{base_url}}"],
|
|
"path": ["v1", "liens", "123"]
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "Release Lien",
|
|
"request": {
|
|
"method": "DELETE",
|
|
"header": [
|
|
{
|
|
"key": "Authorization",
|
|
"value": "Bearer {{access_token}}",
|
|
"type": "text"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{base_url}}/v1/liens/123",
|
|
"host": ["{{base_url}}"],
|
|
"path": ["v1", "liens", "123"]
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Compliance",
|
|
"item": [
|
|
{
|
|
"name": "Set Account Compliance",
|
|
"request": {
|
|
"method": "PUT",
|
|
"header": [
|
|
{
|
|
"key": "Authorization",
|
|
"value": "Bearer {{access_token}}",
|
|
"type": "text"
|
|
}
|
|
],
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"allowed\": true,\n \"riskTier\": 1,\n \"jurisdictionHash\": \"0x0000000000000000000000000000000000000000000000000000000000000001\"\n}"
|
|
},
|
|
"url": {
|
|
"raw": "{{base_url}}/v1/compliance/accounts/0xabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcd",
|
|
"host": ["{{base_url}}"],
|
|
"path": ["v1", "compliance", "accounts", "0xabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcd"]
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "Freeze Account",
|
|
"request": {
|
|
"method": "PUT",
|
|
"header": [
|
|
{
|
|
"key": "Authorization",
|
|
"value": "Bearer {{access_token}}",
|
|
"type": "text"
|
|
}
|
|
],
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"frozen\": true\n}"
|
|
},
|
|
"url": {
|
|
"raw": "{{base_url}}/v1/compliance/0xabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcd/freeze",
|
|
"host": ["{{base_url}}"],
|
|
"path": ["v1", "compliance", "0xabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcd", "freeze"]
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Triggers",
|
|
"item": [
|
|
{
|
|
"name": "List Triggers",
|
|
"request": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Authorization",
|
|
"value": "Bearer {{access_token}}",
|
|
"type": "text"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{base_url}}/v1/triggers?state=PENDING&limit=20",
|
|
"host": ["{{base_url}}"],
|
|
"path": ["v1", "triggers"],
|
|
"query": [
|
|
{
|
|
"key": "state",
|
|
"value": "PENDING"
|
|
},
|
|
{
|
|
"key": "limit",
|
|
"value": "20"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "Get Trigger",
|
|
"request": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Authorization",
|
|
"value": "Bearer {{access_token}}",
|
|
"type": "text"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{base_url}}/v1/triggers/abc123def456",
|
|
"host": ["{{base_url}}"],
|
|
"path": ["v1", "triggers", "abc123def456"]
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "ISO-20022",
|
|
"item": [
|
|
{
|
|
"name": "Submit Inbound Message",
|
|
"request": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Authorization",
|
|
"value": "Bearer {{access_token}}",
|
|
"type": "text"
|
|
},
|
|
{
|
|
"key": "Idempotency-Key",
|
|
"value": "{{idempotency_key}}",
|
|
"type": "text"
|
|
}
|
|
],
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"msgType\": \"pacs.008\",\n \"instructionId\": \"0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef\",\n \"payloadHash\": \"0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890ab\",\n \"payload\": \"<Document>...</Document>\",\n \"rail\": \"FEDWIRE\"\n}"
|
|
},
|
|
"url": {
|
|
"raw": "{{base_url}}/v1/iso/inbound",
|
|
"host": ["{{base_url}}"],
|
|
"path": ["v1", "iso", "inbound"]
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Packets",
|
|
"item": [
|
|
{
|
|
"name": "Generate Packet",
|
|
"request": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Authorization",
|
|
"value": "Bearer {{access_token}}",
|
|
"type": "text"
|
|
},
|
|
{
|
|
"key": "Idempotency-Key",
|
|
"value": "{{idempotency_key}}",
|
|
"type": "text"
|
|
}
|
|
],
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"triggerId\": \"abc123def456\",\n \"channel\": \"PDF\"\n}"
|
|
},
|
|
"url": {
|
|
"raw": "{{base_url}}/v1/packets",
|
|
"host": ["{{base_url}}"],
|
|
"path": ["v1", "packets"]
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Bridge",
|
|
"item": [
|
|
{
|
|
"name": "Lock Tokens",
|
|
"request": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Authorization",
|
|
"value": "Bearer {{access_token}}",
|
|
"type": "text"
|
|
}
|
|
],
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"token\": \"0x1234567890123456789012345678901234567890\",\n \"amount\": \"1000000000000000000\",\n \"targetChain\": \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n \"targetRecipient\": \"0xabcdefabcdefabcdefabcdefabcdefabcdefabcd\"\n}"
|
|
},
|
|
"url": {
|
|
"raw": "{{base_url}}/v1/bridge/lock",
|
|
"host": ["{{base_url}}"],
|
|
"path": ["v1", "bridge", "lock"]
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"variable": [
|
|
{
|
|
"key": "base_url",
|
|
"value": "http://localhost:3000",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"key": "auth_url",
|
|
"value": "http://localhost:3000",
|
|
"type": "string"
|
|
}
|
|
]
|
|
}
|
|
|