From 55912d1143fa4cb756e57cea60d1f4a8a88dc5ca Mon Sep 17 00:00:00 2001 From: defiQUG Date: Fri, 19 Jun 2026 16:17:18 -0700 Subject: [PATCH] feat(chain138): ISO20022 gateway, swift-listener, and address inventory sync. Update checkpoint-core ISO20022 types/hashes, swift-listener canonical mapping, and chain138 address inventory. Co-authored-by: Cursor --- config/address-inventory.chain138.json | 2 +- .../ISO20022IntakeGateway.sol | 3 + contracts/tokens/CompliantCWUSDCTokenV2.sol | 29 +++++ contracts/tokens/CompliantCWUSDTTokenV2.sol | 29 +++++ .../checkpoint-core/dist/iso20022/hashes.d.ts | 2 + .../checkpoint-core/dist/iso20022/hashes.js | 9 ++ .../checkpoint-core/dist/iso20022/types.d.ts | 9 +- .../checkpoint-core/dist/iso20022/types.js | 3 +- .../checkpoint-core/src/iso20022/hashes.ts | 8 ++ .../checkpoint-core/src/iso20022/types.ts | 9 +- ...eployCWTransportFiatTokensV2ForChain.s.sol | 67 ++++++++++++ services/relay/start-relay.sh | 12 ++- .../dist/adapters/inboundAdapters.d.ts.map | 2 +- .../dist/adapters/inboundAdapters.js | 4 +- .../dist/adapters/inboundAdapters.js.map | 2 +- .../dist/canonical/mapToCanonical.d.ts.map | 2 +- .../dist/canonical/mapToCanonical.js | 36 ++++++- .../dist/canonical/mapToCanonical.js.map | 2 +- services/swift-listener/dist/listener.d.ts | 1 + .../swift-listener/dist/listener.d.ts.map | 2 +- services/swift-listener/dist/listener.js | 19 ++++ services/swift-listener/dist/listener.js.map | 2 +- .../dist/outbound/intakeGatewayAdapter.d.ts | 1 + .../outbound/intakeGatewayAdapter.d.ts.map | 2 +- .../dist/outbound/intakeGatewayAdapter.js | 8 +- .../dist/outbound/intakeGatewayAdapter.js.map | 2 +- .../dist/parsers/inboundParser.d.ts | 5 +- .../dist/parsers/inboundParser.d.ts.map | 2 +- .../dist/parsers/inboundParser.js | 100 +++++++++++++++++ .../dist/parsers/inboundParser.js.map | 2 +- .../dist/resourceRegistry.d.ts.map | 2 +- .../swift-listener/dist/resourceRegistry.js | 2 + .../dist/resourceRegistry.js.map | 2 +- services/swift-listener/dist/types.d.ts | 20 +++- services/swift-listener/dist/types.d.ts.map | 2 +- .../src/adapters/inboundAdapters.ts | 3 +- .../src/canonical/mapToCanonical.ts | 44 ++++++-- services/swift-listener/src/listener.ts | 17 +++ .../src/outbound/intakeGatewayAdapter.ts | 11 +- .../src/parsers/inboundParser.ts | 101 +++++++++++++++++- .../swift-listener/src/resourceRegistry.ts | 1 + services/swift-listener/src/types.ts | 22 +++- services/telex-transport-adapter/package.json | 11 ++ services/telex-transport-adapter/src/cli.ts | 53 +++++++++ .../telex-transport-adapter/tsconfig.json | 15 +++ .../token-lists/dbis-138.tokenlist.json | 76 ++++++++++++- 46 files changed, 711 insertions(+), 47 deletions(-) create mode 100644 contracts/tokens/CompliantCWUSDCTokenV2.sol create mode 100644 contracts/tokens/CompliantCWUSDTTokenV2.sol create mode 100644 script/deploy/DeployCWTransportFiatTokensV2ForChain.s.sol create mode 100644 services/telex-transport-adapter/package.json create mode 100644 services/telex-transport-adapter/src/cli.ts create mode 100644 services/telex-transport-adapter/tsconfig.json diff --git a/config/address-inventory.chain138.json b/config/address-inventory.chain138.json index adf8418..0b3f9b1 100644 --- a/config/address-inventory.chain138.json +++ b/config/address-inventory.chain138.json @@ -1,6 +1,6 @@ { "description": "Reference inventory moved out of smom-dbis-138/.env during dotenv cleanup. These are deployed/inventory addresses, not the minimal runtime env surface.", - "updated": "2026-06-18", + "updated": "2026-06-19", "chain138Inventory": { "COMPLIANCE_REGISTRY": "0xbc54fe2b6fda157c59d59826bcfdbcc654ec9ea1", "COMPLIANCE_REGISTRY_ADDRESS": "0xbc54fe2b6fda157c59d59826bcfdbcc654ec9ea1", diff --git a/contracts/mainnet-checkpoint/ISO20022IntakeGateway.sol b/contracts/mainnet-checkpoint/ISO20022IntakeGateway.sol index e899ab4..a6b70fd 100644 --- a/contracts/mainnet-checkpoint/ISO20022IntakeGateway.sol +++ b/contracts/mainnet-checkpoint/ISO20022IntakeGateway.sol @@ -19,6 +19,7 @@ contract ISO20022IntakeGateway is AccessControl { bytes32 debtorRefHash; bytes32 creditorRefHash; bytes32 purposeHash; + bytes32 authAttestationHash; uint8 msgTypeCode; address token; uint256 amount; @@ -32,6 +33,7 @@ contract ISO20022IntakeGateway is AccessControl { bytes32 indexed instructionId, bytes32 indexed uetr, bytes32 payloadHash, + bytes32 authAttestationHash, uint8 msgTypeCode, address token, uint256 amount, @@ -63,6 +65,7 @@ contract ISO20022IntakeGateway is AccessControl { m.instructionId, m.uetr, m.payloadHash, + m.authAttestationHash, m.msgTypeCode, m.token, m.amount, diff --git a/contracts/tokens/CompliantCWUSDCTokenV2.sol b/contracts/tokens/CompliantCWUSDCTokenV2.sol new file mode 100644 index 0000000..d72c705 --- /dev/null +++ b/contracts/tokens/CompliantCWUSDCTokenV2.sol @@ -0,0 +1,29 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.20; + +import "./CompliantFiatTokenV2.sol"; + +/** + * @title CompliantCWUSDCTokenV2 + * @notice cWUSDC transport (public EVM) with ERC-2612 / ERC-3009 for x402 facilitator alignment. + */ +contract CompliantCWUSDCTokenV2 is CompliantFiatTokenV2 { + constructor( + address initialOperator, + address admin, + uint256 initialSupply, + bool forwardCanonical_ + ) + CompliantFiatTokenV2( + "USD Coin (Compliant Wrapped V2)", + "cWUSDC", + 6, + "USD", + "2", + initialOperator, + admin, + initialSupply, + forwardCanonical_ + ) + {} +} diff --git a/contracts/tokens/CompliantCWUSDTTokenV2.sol b/contracts/tokens/CompliantCWUSDTTokenV2.sol new file mode 100644 index 0000000..32889d7 --- /dev/null +++ b/contracts/tokens/CompliantCWUSDTTokenV2.sol @@ -0,0 +1,29 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.20; + +import "./CompliantFiatTokenV2.sol"; + +/** + * @title CompliantCWUSDTTokenV2 + * @notice cWUSDT transport (public EVM) with ERC-2612 / ERC-3009 for x402 facilitator alignment. + */ +contract CompliantCWUSDTTokenV2 is CompliantFiatTokenV2 { + constructor( + address initialOperator, + address admin, + uint256 initialSupply, + bool forwardCanonical_ + ) + CompliantFiatTokenV2( + "Tether USD (Compliant Wrapped V2)", + "cWUSDT", + 6, + "USD", + "2", + initialOperator, + admin, + initialSupply, + forwardCanonical_ + ) + {} +} diff --git a/packages/checkpoint-core/dist/iso20022/hashes.d.ts b/packages/checkpoint-core/dist/iso20022/hashes.d.ts index 9c5e697..2ceb8f3 100644 --- a/packages/checkpoint-core/dist/iso20022/hashes.d.ts +++ b/packages/checkpoint-core/dist/iso20022/hashes.d.ts @@ -3,3 +3,5 @@ export declare function instructionIdFromTxHash(txHash: string): string; export declare function uetrFromTxHash(txHash: string): string; export declare function uetrBytes32FromTxHash(txHash: string): string; export declare function hashShortUtf8(value: string): string; +/** KTT off-chain test-key attestation per SMART_CONTRACTS_ISO20022_FIN_METHODOLOGY §5.3 */ +export declare function authAttestationHashFromProof(testKeyProof: string, normalizedBody: string): string; diff --git a/packages/checkpoint-core/dist/iso20022/hashes.js b/packages/checkpoint-core/dist/iso20022/hashes.js index a6b9600..ef23d20 100644 --- a/packages/checkpoint-core/dist/iso20022/hashes.js +++ b/packages/checkpoint-core/dist/iso20022/hashes.js @@ -5,6 +5,7 @@ exports.instructionIdFromTxHash = instructionIdFromTxHash; exports.uetrFromTxHash = uetrFromTxHash; exports.uetrBytes32FromTxHash = uetrBytes32FromTxHash; exports.hashShortUtf8 = hashShortUtf8; +exports.authAttestationHashFromProof = authAttestationHashFromProof; const ethers_1 = require("ethers"); function bytes32FromUtf8(label, value) { return ethers_1.ethers.keccak256(ethers_1.ethers.toUtf8Bytes(`${label}:${value}`)); @@ -25,3 +26,11 @@ function hashShortUtf8(value) { return ethers_1.ethers.ZeroHash; return ethers_1.ethers.keccak256(ethers_1.ethers.toUtf8Bytes(value)); } +/** KTT off-chain test-key attestation per SMART_CONTRACTS_ISO20022_FIN_METHODOLOGY §5.3 */ +function authAttestationHashFromProof(testKeyProof, normalizedBody) { + const proof = testKeyProof.trim(); + const body = normalizedBody.trim(); + if (!proof && !body) + return ethers_1.ethers.ZeroHash; + return ethers_1.ethers.keccak256(ethers_1.ethers.concat([ethers_1.ethers.toUtf8Bytes(proof), ethers_1.ethers.toUtf8Bytes(body)])); +} diff --git a/packages/checkpoint-core/dist/iso20022/types.d.ts b/packages/checkpoint-core/dist/iso20022/types.d.ts index ed79f83..c66cee4 100644 --- a/packages/checkpoint-core/dist/iso20022/types.d.ts +++ b/packages/checkpoint-core/dist/iso20022/types.d.ts @@ -1,15 +1,16 @@ /** ISO 20022 / SWIFT MT-103+ canonical message (off-chain full payload; on-chain hashes). */ -export type IsoMessageTypeCode = 0 | 1 | 2 | 3 | 4; -/** 0=unknown, 1=MT103, 2=pacs.008, 3=pain.001, 4=chain138 synthetic (from native tx) */ +export type IsoMessageTypeCode = 0 | 1 | 2 | 3 | 4 | 5; +/** 0=unknown, 1=MT103, 2=pacs.008, 3=pain.001, 4=chain138 synthetic, 5=KTT/telex */ export declare const MSG_TYPE: { readonly UNKNOWN: IsoMessageTypeCode; readonly MT103: IsoMessageTypeCode; readonly PACS008: IsoMessageTypeCode; readonly PAIN001: IsoMessageTypeCode; readonly CHAIN138_SYNTH: IsoMessageTypeCode; + readonly KTT: IsoMessageTypeCode; }; export type CanonicalPaymentMessage = { - msgType: 'MT103' | 'pacs.008' | 'pain.001' | 'chain138.synthetic'; + msgType: 'MT103' | 'pacs.008' | 'pain.001' | 'chain138.synthetic' | 'KTT' | 'TELEX_KTT'; msgTypeCode: IsoMessageTypeCode; instructionId: string; instructionIdBytes32: string; @@ -30,6 +31,8 @@ export type CanonicalPaymentMessage = { amountSmallestUnit: string; tokenAddress?: string; payloadHash: string; + /** keccak256(testKeyProof || normalizedBody) when KTT test-key verified off-chain */ + authAttestationHash?: string; debtorRefHash: string; creditorRefHash: string; purposeHash: string; diff --git a/packages/checkpoint-core/dist/iso20022/types.js b/packages/checkpoint-core/dist/iso20022/types.js index 67e993a..bb8a208 100644 --- a/packages/checkpoint-core/dist/iso20022/types.js +++ b/packages/checkpoint-core/dist/iso20022/types.js @@ -1,11 +1,12 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MSG_TYPE = void 0; -/** 0=unknown, 1=MT103, 2=pacs.008, 3=pain.001, 4=chain138 synthetic (from native tx) */ +/** 0=unknown, 1=MT103, 2=pacs.008, 3=pain.001, 4=chain138 synthetic, 5=KTT/telex */ exports.MSG_TYPE = { UNKNOWN: 0, MT103: 1, PACS008: 2, PAIN001: 3, CHAIN138_SYNTH: 4, + KTT: 5, }; diff --git a/packages/checkpoint-core/src/iso20022/hashes.ts b/packages/checkpoint-core/src/iso20022/hashes.ts index bb4b791..0e26902 100644 --- a/packages/checkpoint-core/src/iso20022/hashes.ts +++ b/packages/checkpoint-core/src/iso20022/hashes.ts @@ -22,3 +22,11 @@ export function hashShortUtf8(value: string): string { if (!value) return ethers.ZeroHash; return ethers.keccak256(ethers.toUtf8Bytes(value)); } + +/** KTT off-chain test-key attestation per SMART_CONTRACTS_ISO20022_FIN_METHODOLOGY §5.3 */ +export function authAttestationHashFromProof(testKeyProof: string, normalizedBody: string): string { + const proof = testKeyProof.trim(); + const body = normalizedBody.trim(); + if (!proof && !body) return ethers.ZeroHash; + return ethers.keccak256(ethers.concat([ethers.toUtf8Bytes(proof), ethers.toUtf8Bytes(body)])); +} diff --git a/packages/checkpoint-core/src/iso20022/types.ts b/packages/checkpoint-core/src/iso20022/types.ts index 27f3843..64850e2 100644 --- a/packages/checkpoint-core/src/iso20022/types.ts +++ b/packages/checkpoint-core/src/iso20022/types.ts @@ -1,17 +1,18 @@ /** ISO 20022 / SWIFT MT-103+ canonical message (off-chain full payload; on-chain hashes). */ -export type IsoMessageTypeCode = 0 | 1 | 2 | 3 | 4; +export type IsoMessageTypeCode = 0 | 1 | 2 | 3 | 4 | 5; -/** 0=unknown, 1=MT103, 2=pacs.008, 3=pain.001, 4=chain138 synthetic (from native tx) */ +/** 0=unknown, 1=MT103, 2=pacs.008, 3=pain.001, 4=chain138 synthetic, 5=KTT/telex */ export const MSG_TYPE = { UNKNOWN: 0 as IsoMessageTypeCode, MT103: 1 as IsoMessageTypeCode, PACS008: 2 as IsoMessageTypeCode, PAIN001: 3 as IsoMessageTypeCode, CHAIN138_SYNTH: 4 as IsoMessageTypeCode, + KTT: 5 as IsoMessageTypeCode, } as const; export type CanonicalPaymentMessage = { - msgType: 'MT103' | 'pacs.008' | 'pain.001' | 'chain138.synthetic'; + msgType: 'MT103' | 'pacs.008' | 'pain.001' | 'chain138.synthetic' | 'KTT' | 'TELEX_KTT'; msgTypeCode: IsoMessageTypeCode; instructionId: string; instructionIdBytes32: string; @@ -32,6 +33,8 @@ export type CanonicalPaymentMessage = { amountSmallestUnit: string; tokenAddress?: string; payloadHash: string; + /** keccak256(testKeyProof || normalizedBody) when KTT test-key verified off-chain */ + authAttestationHash?: string; debtorRefHash: string; creditorRefHash: string; purposeHash: string; diff --git a/script/deploy/DeployCWTransportFiatTokensV2ForChain.s.sol b/script/deploy/DeployCWTransportFiatTokensV2ForChain.s.sol new file mode 100644 index 0000000..a199143 --- /dev/null +++ b/script/deploy/DeployCWTransportFiatTokensV2ForChain.s.sol @@ -0,0 +1,67 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.20; + +import {Script, console} from "forge-std/Script.sol"; +import {CompliantCWUSDCTokenV2} from "../../contracts/tokens/CompliantCWUSDCTokenV2.sol"; +import {CompliantCWUSDTTokenV2} from "../../contracts/tokens/CompliantCWUSDTTokenV2.sol"; +import {CompliantFiatTokenV2} from "../../contracts/tokens/CompliantFiatTokenV2.sol"; + +/** + * @title DeployCWTransportFiatTokensV2ForChain + * @notice Deploy ERC-3009-capable cWUSDC / cWUSDT transport on a public EVM chain (Base, Polygon, …). + * + * Env: + * PRIVATE_KEY (required) + * CW_BRIDGE_ADDRESS (required) — L2 bridge receiver with MINTER/BURNER + * INITIAL_OPERATOR (optional; default deployer) + * ADMIN / OWNER (optional; default deployer) + * INITIAL_SUPPLY (optional; default 0 — bridge mints) + * FORWARD_CANONICAL (optional; default false for transport) + * CW_TRANSPORT_STRICT_MODE (optional; default 1 — revoke deployer mint/burn after bridge grant) + * DEPLOY_CWUSDT_V2=1 / DEPLOY_CWUSDC_V2=1 (default both 1) + */ +contract DeployCWTransportFiatTokensV2ForChain is Script { + function run() external { + uint256 pk = vm.envUint("PRIVATE_KEY"); + address deployer = vm.addr(pk); + address bridge = vm.envAddress("CW_BRIDGE_ADDRESS"); + address initialOperator = vm.envOr("INITIAL_OPERATOR", deployer); + address ownerAlias = vm.envOr("OWNER", deployer); + address admin = vm.envOr("ADMIN", ownerAlias); + uint256 initialSupply = vm.envOr("INITIAL_SUPPLY", uint256(0)); + bool forwardCanonical = vm.envOr("FORWARD_CANONICAL", false); + bool strictMode = vm.envOr("CW_TRANSPORT_STRICT_MODE", uint256(1)) != 0; + + require(bridge != address(0), "CW_BRIDGE_ADDRESS required"); + + vm.startBroadcast(pk); + + if (vm.envOr("DEPLOY_CWUSDT_V2", uint256(1)) != 0) { + CompliantCWUSDTTokenV2 token = + new CompliantCWUSDTTokenV2(initialOperator, admin, initialSupply, forwardCanonical); + _wireBridge(address(token), bridge, admin, strictMode); + console.log("cWUSDT_V2", address(token)); + console.log("cWUSDT_V2_bridge", bridge); + } + + if (vm.envOr("DEPLOY_CWUSDC_V2", uint256(1)) != 0) { + CompliantCWUSDCTokenV2 token = + new CompliantCWUSDCTokenV2(initialOperator, admin, initialSupply, forwardCanonical); + _wireBridge(address(token), bridge, admin, strictMode); + console.log("cWUSDC_V2", address(token)); + console.log("cWUSDC_V2_bridge", bridge); + } + + vm.stopBroadcast(); + } + + function _wireBridge(address token, address bridge, address admin, bool strictMode) internal { + CompliantFiatTokenV2 t = CompliantFiatTokenV2(token); + t.grantRole(t.MINTER_ROLE(), bridge); + t.grantRole(t.BURNER_ROLE(), bridge); + if (strictMode) { + t.revokeRole(t.MINTER_ROLE(), admin); + t.revokeRole(t.BURNER_ROLE(), admin); + } + } +} diff --git a/services/relay/start-relay.sh b/services/relay/start-relay.sh index 8f41127..0d536e4 100755 --- a/services/relay/start-relay.sh +++ b/services/relay/start-relay.sh @@ -90,7 +90,17 @@ fi # Ensure PRIVATE_KEY is exported if [ -n "$PRIVATE_KEY" ]; then export PRIVATE_KEY - export RELAYER_PRIVATE_KEY="$PRIVATE_KEY" + if [ "$PROFILE" != "mainnet-link-138" ] || [ -z "${CCIP_MAINNET_LINK138_RELAYER_PRIVATE_KEY:-}" ]; then + export RELAYER_PRIVATE_KEY="$PRIVATE_KEY" + fi +fi + +# Dedicated relayer for mainnet-link-138 (wins over deployer PRIVATE_KEY). +if [ "$PROFILE" = "mainnet-link-138" ] && [ -n "${CCIP_MAINNET_LINK138_RELAYER_PRIVATE_KEY:-}" ]; then + export RELAYER_PRIVATE_KEY="$CCIP_MAINNET_LINK138_RELAYER_PRIVATE_KEY" + if [ -n "${CCIP_MAINNET_LINK138_RELAYER_ADDRESS:-}" ]; then + export RELAYER_ADDRESS="$CCIP_MAINNET_LINK138_RELAYER_ADDRESS" + fi fi # Check if npm is available diff --git a/services/swift-listener/dist/adapters/inboundAdapters.d.ts.map b/services/swift-listener/dist/adapters/inboundAdapters.d.ts.map index ae27c6b..27750cf 100644 --- a/services/swift-listener/dist/adapters/inboundAdapters.d.ts.map +++ b/services/swift-listener/dist/adapters/inboundAdapters.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"inboundAdapters.d.ts","sourceRoot":"","sources":["../../src/adapters/inboundAdapters.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAK9D,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,aAAa,CAAC,EAAE,aAAa,GAC5B,cAAc,EAAE,CA2BlB;AAED,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,IAAI,CAIN;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,EAAE,CAEhE;AAED,wBAAsB,uBAAuB,CAAC,OAAO,EAAE;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAmC5B;AAED,wBAAsB,sBAAsB,CAAC,OAAO,EAAE;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAwC5B"} \ No newline at end of file +{"version":3,"file":"inboundAdapters.d.ts","sourceRoot":"","sources":["../../src/adapters/inboundAdapters.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAK9D,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,aAAa,CAAC,EAAE,aAAa,GAC5B,cAAc,EAAE,CA4BlB;AAED,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,IAAI,CAIN;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,EAAE,CAEhE;AAED,wBAAsB,uBAAuB,CAAC,OAAO,EAAE;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAmC5B;AAED,wBAAsB,sBAAsB,CAAC,OAAO,EAAE;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAwC5B"} \ No newline at end of file diff --git a/services/swift-listener/dist/adapters/inboundAdapters.js b/services/swift-listener/dist/adapters/inboundAdapters.js index 992afe8..88e52e1 100644 --- a/services/swift-listener/dist/adapters/inboundAdapters.js +++ b/services/swift-listener/dist/adapters/inboundAdapters.js @@ -8,7 +8,7 @@ exports.pollFinGatewayMessages = pollFinGatewayMessages; const fs_1 = require("fs"); const path_1 = require("path"); const inboundParser_1 = require("../parsers/inboundParser"); -const INBOX_EXTENSIONS = /\.(fin|swift|xml|txt|json|as4|mx)$/i; +const INBOX_EXTENSIONS = /\.(fin|swift|xml|txt|json|as4|mx|telex|ktt)$/i; function scanDirectoryInbox(inboxDir, sourcePrefix, defaultFormat) { const messages = []; let entries = []; @@ -33,6 +33,8 @@ function scanDirectoryInbox(inboxDir, sourcePrefix, defaultFormat) { format = 'iso20022'; if (lower.endsWith('.json')) format = 'json_broadcast'; + if (lower.endsWith('.telex') || lower.endsWith('.ktt')) + format = 'ktt'; messages.push({ source: `${sourcePrefix}:${full}`, format, diff --git a/services/swift-listener/dist/adapters/inboundAdapters.js.map b/services/swift-listener/dist/adapters/inboundAdapters.js.map index c57dd52..d6fac2a 100644 --- a/services/swift-listener/dist/adapters/inboundAdapters.js.map +++ b/services/swift-listener/dist/adapters/inboundAdapters.js.map @@ -1 +1 @@ -{"version":3,"file":"inboundAdapters.js","sourceRoot":"","sources":["../../src/adapters/inboundAdapters.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"inboundAdapters.js","sourceRoot":"","sources":["../../src/adapters/inboundAdapters.ts"],"names":[],"mappings":";;AAOA,gDAgCC;AAED,4CAOC;AAED,sCAEC;AAED,0DAyCC;AAED,wDA6CC;AA9ID,2BAAgF;AAChF,+BAAqC;AAErC,4DAA+D;AAE/D,MAAM,gBAAgB,GAAG,+CAA+C,CAAC;AAEzE,SAAgB,kBAAkB,CAChC,QAAgB,EAChB,YAAoB,EACpB,aAA6B;IAE7B,MAAM,QAAQ,GAAqB,EAAE,CAAC;IACtC,IAAI,OAAO,GAAa,EAAE,CAAC;IAC3B,IAAI,CAAC;QACH,OAAO,GAAG,IAAA,gBAAW,EAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,IAAA,WAAI,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,IAAA,aAAQ,EAAC,IAAI,CAAC,CAAC,MAAM,EAAE;YAAE,SAAS;QACvC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QACnC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,SAAS;QAC3C,MAAM,OAAO,GAAG,IAAA,iBAAY,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACjC,IAAI,MAAM,GAAkB,aAAa,IAAI,IAAA,mCAAmB,EAAC,OAAO,CAAC,CAAC;QAC1E,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,MAAM,GAAG,UAAU,CAAC;QACnG,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,MAAM,GAAG,gBAAgB,CAAC;QACvD,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,MAAM,GAAG,KAAK,CAAC;QACvE,QAAQ,CAAC,IAAI,CAAC;YACZ,MAAM,EAAE,GAAG,YAAY,IAAI,IAAI,EAAE;YACjC,MAAM;YACN,OAAO;YACP,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;SAC7C,CAAC,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAgB,gBAAgB,CAC9B,QAAgB,EAChB,UAAkB;IAElB,IAAA,cAAS,EAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,SAAS,CAAC;IACpD,IAAA,eAAU,EAAC,QAAQ,EAAE,IAAA,WAAI,EAAC,UAAU,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,SAAgB,aAAa,CAAC,QAAgB;IAC5C,OAAO,kBAAkB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC9C,CAAC;AAEM,KAAK,UAAU,uBAAuB,CAAC,OAM7C;IACC,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,IAAI,mBAAmB,EAAE,CAAC;IAC1F,MAAM,OAAO,GAA2B,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;IACvE,IAAI,OAAO,CAAC,WAAW;QAAE,OAAO,CAAC,aAAa,GAAG,UAAU,OAAO,CAAC,WAAW,EAAE,CAAC;IACjF,IAAI,OAAO,CAAC,MAAM;QAAE,OAAO,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAE1D,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IAC1C,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAY,CAAC;IAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,IAA6B,EAAE,IAAI,IAAI,EAAE,CAAC;IACrF,MAAM,GAAG,GAAqB,EAAE,CAAC;IAEjC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,GAA8B,CAAC;QAC3C,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;QACtE,IAAI,OAAO,CAAC,OAAO,IAAI,EAAE,IAAI,EAAE,IAAI,OAAO,CAAC,OAAO;YAAE,SAAS;QAC7D,MAAM,OAAO,GACX,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ;YAC7B,CAAC,CAAC,GAAG,CAAC,OAAO;YACb,CAAC,CAAC,OAAO,GAAG,CAAC,YAAY,KAAK,QAAQ;gBACpC,CAAC,CAAC,GAAG,CAAC,YAAY;gBAClB,CAAC,CAAC,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ;oBAC/B,CAAC,CAAC,GAAG,CAAC,OAAO;oBACb,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAC9B,GAAG,CAAC,IAAI,CAAC;YACP,MAAM,EAAE,OAAO,EAAE,IAAI,SAAS,EAAE;YAChC,MAAM,EAAE,IAAA,mCAAmB,EAAC,OAAO,CAAC;YACpC,OAAO;YACP,QAAQ,EAAE,GAAG;SACd,CAAC,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAEM,KAAK,UAAU,sBAAsB,CAAC,OAK5C;IACC,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,IAAI,eAAe,EAAE,CAAC;IACtF,MAAM,OAAO,GAA2B,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;IACvE,IAAI,OAAO,CAAC,WAAW;QAAE,OAAO,CAAC,aAAa,GAAG,UAAU,OAAO,CAAC,WAAW,EAAE,CAAC;IAEjF,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IAC1C,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAY,CAAC;IAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAC9B,CAAC,CAAC,IAAI;QACN,CAAC,CAAE,IAAmD,EAAE,QAAQ;YAC7D,IAA6B,EAAE,IAAI;YACpC,EAAE,CAAC;IAEP,MAAM,GAAG,GAAqB,EAAE,CAAC;IACjC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,GAA8B,CAAC;QAC3C,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;QAClE,IAAI,OAAO,CAAC,OAAO,IAAI,EAAE,IAAI,EAAE,IAAI,OAAO,CAAC,OAAO;YAAE,SAAS;QAC7D,MAAM,OAAO,GACX,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ;YAChC,CAAC,CAAC,GAAG,CAAC,UAAU;YAChB,CAAC,CAAC,OAAO,GAAG,CAAC,YAAY,KAAK,QAAQ;gBACpC,CAAC,CAAC,GAAG,CAAC,YAAY;gBAClB,CAAC,CAAC,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ;oBAC/B,CAAC,CAAC,GAAG,CAAC,OAAO;oBACb,CAAC,CAAC,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ;wBAC5B,CAAC,CAAC,GAAG,CAAC,IAAI;wBACV,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAChC,GAAG,CAAC,IAAI,CAAC;YACP,MAAM,EAAE,OAAO,EAAE,IAAI,SAAS,EAAE;YAChC,MAAM,EAAE,IAAA,mCAAmB,EAAC,OAAO,CAAC;YACpC,OAAO;YACP,QAAQ,EAAE,GAAG;SACd,CAAC,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"} \ No newline at end of file diff --git a/services/swift-listener/dist/canonical/mapToCanonical.d.ts.map b/services/swift-listener/dist/canonical/mapToCanonical.d.ts.map index c4db7f5..377e8fc 100644 --- a/services/swift-listener/dist/canonical/mapToCanonical.d.ts.map +++ b/services/swift-listener/dist/canonical/mapToCanonical.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"mapToCanonical.d.ts","sourceRoot":"","sources":["../../src/canonical/mapToCanonical.ts"],"names":[],"mappings":"AACA,OAAO,EAA2B,KAAK,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAC9F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AA8B9C,wBAAgB,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,uBAAuB,GAAG,SAAS,CAoD5G"} \ No newline at end of file +{"version":3,"file":"mapToCanonical.d.ts","sourceRoot":"","sources":["../../src/canonical/mapToCanonical.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,uBAAuB,EAC7B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAsC9C,wBAAgB,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,uBAAuB,GAAG,SAAS,CAuE5G"} \ No newline at end of file diff --git a/services/swift-listener/dist/canonical/mapToCanonical.js b/services/swift-listener/dist/canonical/mapToCanonical.js index 4116010..44230ed 100644 --- a/services/swift-listener/dist/canonical/mapToCanonical.js +++ b/services/swift-listener/dist/canonical/mapToCanonical.js @@ -4,6 +4,8 @@ exports.mapToCanonical = mapToCanonical; const ethers_1 = require("ethers"); const checkpoint_core_1 = require("@dbis/checkpoint-core"); function msgTypeCode(parsed) { + if (parsed.format === 'ktt') + return checkpoint_core_1.MSG_TYPE.KTT; if (parsed.format === 'swift_fin') { if (parsed.messageType === 'MT103') return checkpoint_core_1.MSG_TYPE.MT103; @@ -18,6 +20,8 @@ function msgTypeCode(parsed) { return checkpoint_core_1.MSG_TYPE.UNKNOWN; } function msgTypeLabel(parsed) { + if (parsed.format === 'ktt') + return parsed.messageType; if (parsed.format === 'swift_fin' && parsed.messageType === 'MT103') return 'MT103'; if (parsed.format === 'iso20022' && parsed.messageType === 'pacs.008') @@ -26,6 +30,13 @@ function msgTypeLabel(parsed) { return 'pain.001'; return 'chain138.synthetic'; } +function settlementMethod(parsed) { + if (parsed.format === 'ktt') + return 'KTT'; + if (parsed.format === 'swift_fin') + return 'SWIFT'; + return 'ISO20022'; +} function pickString(parsed, ...keys) { const obj = parsed.parsed; for (const k of keys) { @@ -37,13 +48,14 @@ function pickString(parsed, ...keys) { } function mapToCanonical(parsed, dedupeKey) { const instructionId = pickString(parsed, 'instructionId', 'senderReference', 'transactionReference', 'messageId') || - `SWIFT-${dedupeKey.slice(0, 16)}`; + `KTT-${dedupeKey.slice(0, 16)}`; const endToEndId = pickString(parsed, 'endToEndId', 'transactionReference', 'senderReference') || instructionId; const msgId = pickString(parsed, 'messageId', 'senderReference') || instructionId; const uetr = pickString(parsed, 'uetr') || ''; - const debtorId = pickString(parsed, 'orderingCustomer', 'debtor', 'sendingInstitution') || 'UNKNOWN'; - const creditorId = pickString(parsed, 'beneficiaryCustomer', 'creditor', 'beneficiaryInstitution') || 'UNKNOWN'; - const currencyCode = pickString(parsed, 'currency') || 'USD'; + const debtorId = pickString(parsed, 'orderingCustomer', 'debtor', 'sendingInstitution', 'debtorId') || 'UNKNOWN'; + const creditorId = pickString(parsed, 'beneficiaryCustomer', 'creditor', 'beneficiaryInstitution', 'creditorId') || + 'UNKNOWN'; + const currencyCode = pickString(parsed, 'currency', 'currencyCode') || 'USD'; const amountRaw = pickString(parsed, 'amount') || '0'; const purpose = pickString(parsed, 'remittanceInfo', 'remittance', 'purpose', 'senderToReceiverInfo', 'narrative') || `${parsed.format}/${parsed.messageType}`; @@ -51,6 +63,19 @@ function mapToCanonical(parsed, dedupeKey) { const uetrBytes32 = uetr ? ethers_1.ethers.keccak256(ethers_1.ethers.toUtf8Bytes(`UETR:${uetr}`)) : ethers_1.ethers.keccak256(ethers_1.ethers.toUtf8Bytes(`UETR:${dedupeKey}`)); + let authAttestationHash; + if (parsed.format === 'ktt') { + const fromParsed = pickString(parsed, 'authAttestationHash'); + if (fromParsed) { + authAttestationHash = fromParsed.startsWith('0x') ? fromParsed : (0, checkpoint_core_1.hashShortUtf8)(fromParsed); + } + else if (parsed.authAttestationHash) { + authAttestationHash = parsed.authAttestationHash; + } + else if (parsed.testKeyProof && pickString(parsed, 'normalizedBody')) { + authAttestationHash = (0, checkpoint_core_1.authAttestationHashFromProof)(parsed.testKeyProof, pickString(parsed, 'normalizedBody')); + } + } const base = { msgType: msgTypeLabel(parsed), msgTypeCode: msgTypeCode(parsed), @@ -66,7 +91,7 @@ function mapToCanonical(parsed, dedupeKey) { debtorId, creditorId, purpose, - settlementMethod: parsed.format === 'swift_fin' ? 'SWIFT' : 'ISO20022', + settlementMethod: settlementMethod(parsed), categoryPurpose: 'CBFF', currencyCode, amountRaw, @@ -76,6 +101,7 @@ function mapToCanonical(parsed, dedupeKey) { purposeHash: (0, checkpoint_core_1.hashShortUtf8)(purpose), chain138TxHash: pickString(parsed, 'txId', 'chain138TxHash'), valueDateIso: pickString(parsed, 'valueDate') || undefined, + ...(authAttestationHash ? { authAttestationHash } : {}), }; const payloadHash = ethers_1.ethers.keccak256(ethers_1.ethers.toUtf8Bytes(JSON.stringify({ ...base, sourceFormat: parsed.format, messageType: parsed.messageType }))); return { ...base, payloadHash }; diff --git a/services/swift-listener/dist/canonical/mapToCanonical.js.map b/services/swift-listener/dist/canonical/mapToCanonical.js.map index e82d9dd..4b26c24 100644 --- a/services/swift-listener/dist/canonical/mapToCanonical.js.map +++ b/services/swift-listener/dist/canonical/mapToCanonical.js.map @@ -1 +1 @@ -{"version":3,"file":"mapToCanonical.js","sourceRoot":"","sources":["../../src/canonical/mapToCanonical.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"mapToCanonical.js","sourceRoot":"","sources":["../../src/canonical/mapToCanonical.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/services/swift-listener/dist/listener.d.ts b/services/swift-listener/dist/listener.d.ts index 113f9cb..8c9674d 100644 --- a/services/swift-listener/dist/listener.d.ts +++ b/services/swift-listener/dist/listener.d.ts @@ -17,6 +17,7 @@ export declare class SwiftListener { pollFileInbox(): Promise; pollAs4Inbox(): Promise; pollMailInbox(): Promise; + pollTelexInbox(): Promise; pollP2pRail(): Promise; pollFinGateway(): Promise; private trackLastId; diff --git a/services/swift-listener/dist/listener.d.ts.map b/services/swift-listener/dist/listener.d.ts.map index 65fe6c2..29f3348 100644 --- a/services/swift-listener/dist/listener.d.ts.map +++ b/services/swift-listener/dist/listener.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"listener.d.ts","sourceRoot":"","sources":["../src/listener.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAExF,YAAY,EAAE,oBAAoB,EAAE,CAAC;AAErC,qBAAa,aAAa;IAUZ,OAAO,CAAC,QAAQ,CAAC,WAAW;IATxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAC1B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;IACnC,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,aAAa,CAAC,CAAS;IAC/B,OAAO,CAAC,SAAS,CAAC,CAAa;gBAEF,WAAW,EAAE,MAAM;IAM1C,cAAc,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IA6D7E,OAAO,CAAC,kBAAkB;IA4BpB,YAAY,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAStE,aAAa,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAI9C,YAAY,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAQ7C,aAAa,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAM9C,WAAW,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAe5C,cAAc,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAmBrD,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,wBAAwB;IA4ChC,OAAO,CAAC,aAAa;IAWf,YAAY,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;IA2C7C,GAAG,CAAC,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB5D,QAAQ,IAAI,IAAI;CAKjB;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,CAEtE"} \ No newline at end of file +{"version":3,"file":"listener.d.ts","sourceRoot":"","sources":["../src/listener.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAExF,YAAY,EAAE,oBAAoB,EAAE,CAAC;AAErC,qBAAa,aAAa;IAUZ,OAAO,CAAC,QAAQ,CAAC,WAAW;IATxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAC1B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;IACnC,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,aAAa,CAAC,CAAS;IAC/B,OAAO,CAAC,SAAS,CAAC,CAAa;gBAEF,WAAW,EAAE,MAAM;IAM1C,cAAc,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IA6D7E,OAAO,CAAC,kBAAkB;IAmCpB,YAAY,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAStE,aAAa,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAI9C,YAAY,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAQ7C,aAAa,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAM9C,cAAc,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAM/C,WAAW,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAe5C,cAAc,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAmBrD,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,wBAAwB;IA4ChC,OAAO,CAAC,aAAa;IAYf,YAAY,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;IA8C7C,GAAG,CAAC,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB5D,QAAQ,IAAI,IAAI;CAKjB;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,CAEtE"} \ No newline at end of file diff --git a/services/swift-listener/dist/listener.js b/services/swift-listener/dist/listener.js index c591f7d..94fd13a 100644 --- a/services/swift-listener/dist/listener.js +++ b/services/swift-listener/dist/listener.js @@ -96,6 +96,14 @@ class SwiftListener { // ignore } } + if (msg.source.startsWith('telex:') && this.config.adapters.telexInbox?.archiveOnProcess) { + try { + (0, inboundAdapters_1.archiveInboxFile)(filePath, (0, path_1.resolve)(archiveDir, 'telex')); + } + catch { + // ignore + } + } } async processBatch(sources) { const out = []; @@ -121,6 +129,12 @@ class SwiftListener { return []; return this.processBatch((0, inboundAdapters_1.scanDirectoryInbox)((0, path_1.resolve)(this.projectRoot, dir), 'mail')); } + async pollTelexInbox() { + const dir = this.config.storage.telexInboxDir; + if (!dir) + return []; + return this.processBatch((0, inboundAdapters_1.scanDirectoryInbox)((0, path_1.resolve)(this.projectRoot, dir), 'telex', 'ktt')); + } async pollP2pRail() { const cfg = this.config.adapters.p2pRail; const baseUrl = process.env[cfg.baseUrlEnv] ?? process.env.P2P_BASE_URL ?? ''; @@ -214,6 +228,8 @@ class SwiftListener { intervals.push(adapters.as4Inbox.pollIntervalSec); if (adapters.mailAttachmentInbox?.enabled) intervals.push(adapters.mailAttachmentInbox.pollIntervalSec); + if (adapters.telexInbox?.enabled) + intervals.push(adapters.telexInbox.pollIntervalSec); return intervals.length ? intervals : [60]; } async runPollCycle() { @@ -228,6 +244,9 @@ class SwiftListener { if (adapters.mailAttachmentInbox?.enabled) { events.push(...(await this.pollMailInbox())); } + if (adapters.telexInbox?.enabled) { + events.push(...(await this.pollTelexInbox())); + } if (adapters.p2pRail.enabled) { try { events.push(...(await this.pollP2pRail())); diff --git a/services/swift-listener/dist/listener.js.map b/services/swift-listener/dist/listener.js.map index c095b04..33cacf9 100644 --- a/services/swift-listener/dist/listener.js.map +++ b/services/swift-listener/dist/listener.js.map @@ -1 +1 @@ -{"version":3,"file":"listener.js","sourceRoot":"","sources":["../src/listener.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"listener.js","sourceRoot":"","sources":["../src/listener.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/services/swift-listener/dist/outbound/intakeGatewayAdapter.d.ts b/services/swift-listener/dist/outbound/intakeGatewayAdapter.d.ts index 7ad0208..465f245 100644 --- a/services/swift-listener/dist/outbound/intakeGatewayAdapter.d.ts +++ b/services/swift-listener/dist/outbound/intakeGatewayAdapter.d.ts @@ -8,6 +8,7 @@ export declare function buildGatewayMessage(canonical: CanonicalPaymentMessage, debtorRefHash: string; creditorRefHash: string; purposeHash: string; + authAttestationHash: string; msgTypeCode: import("@dbis/checkpoint-core").IsoMessageTypeCode; token: string; amount: bigint; diff --git a/services/swift-listener/dist/outbound/intakeGatewayAdapter.d.ts.map b/services/swift-listener/dist/outbound/intakeGatewayAdapter.d.ts.map index c8941af..af131be 100644 --- a/services/swift-listener/dist/outbound/intakeGatewayAdapter.d.ts.map +++ b/services/swift-listener/dist/outbound/intakeGatewayAdapter.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"intakeGatewayAdapter.d.ts","sourceRoot":"","sources":["../../src/outbound/intakeGatewayAdapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AA+CjE,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,uBAAuB,EAClC,QAAQ,EAAE,gBAAgB;;;;;;;;;;;;EAe3B;AAYD,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,gBAAgB,EAC1B,SAAS,EAAE,uBAAuB,GACjC,OAAO,CAAC;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAqCrG"} \ No newline at end of file +{"version":3,"file":"intakeGatewayAdapter.d.ts","sourceRoot":"","sources":["../../src/outbound/intakeGatewayAdapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AA+CjE,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,uBAAuB,EAClC,QAAQ,EAAE,gBAAgB;;;;;;;;;;;;;EAgB3B;AAYD,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,gBAAgB,EAC1B,SAAS,EAAE,uBAAuB,GACjC,OAAO,CAAC;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CA6CrG"} \ No newline at end of file diff --git a/services/swift-listener/dist/outbound/intakeGatewayAdapter.js b/services/swift-listener/dist/outbound/intakeGatewayAdapter.js index 95ec6ea..a13bb9f 100644 --- a/services/swift-listener/dist/outbound/intakeGatewayAdapter.js +++ b/services/swift-listener/dist/outbound/intakeGatewayAdapter.js @@ -4,7 +4,7 @@ exports.buildGatewayMessage = buildGatewayMessage; exports.submitToIntakeGateway = submitToIntakeGateway; const ethers_1 = require("ethers"); const GATEWAY_ABI = [ - 'function submitInbound((bytes32 instructionId, bytes32 endToEndIdHash, bytes32 uetr, bytes32 payloadHash, bytes32 debtorRefHash, bytes32 creditorRefHash, bytes32 purposeHash, uint8 msgTypeCode, address token, uint256 amount, bytes3 currencyCode) m) external', + 'function submitInbound((bytes32 instructionId, bytes32 endToEndIdHash, bytes32 uetr, bytes32 payloadHash, bytes32 debtorRefHash, bytes32 creditorRefHash, bytes32 purposeHash, bytes32 authAttestationHash, uint8 msgTypeCode, address token, uint256 amount, bytes3 currencyCode) m) external', 'function processedInstructions(bytes32) view returns (bool)', ]; const RPC_TIMEOUT_MS = 15_000; @@ -51,6 +51,7 @@ function buildGatewayMessage(canonical, registry) { debtorRefHash: canonical.debtorRefHash, creditorRefHash: canonical.creditorRefHash, purposeHash: canonical.purposeHash, + authAttestationHash: canonical.authAttestationHash ?? ethers_1.ethers.ZeroHash, msgTypeCode: canonical.msgTypeCode, token: resolveTokenAddress(canonical, registry), amount: BigInt(canonical.amountSmallestUnit || '0'), @@ -77,6 +78,11 @@ async function submitToIntakeGateway(config, registry, canonical) { const pk = process.env[gwCfg.privateKeyEnv] ?? process.env.PRIVATE_KEY ?? ''; const execute = shouldExecuteSubmit(gwCfg); const message = buildGatewayMessage(canonical, registry); + if (canonical.msgTypeCode === 5 && + process.env.KTT_REQUIRE_ATTESTATION === '1' && + (message.authAttestationHash === ethers_1.ethers.ZeroHash || !message.authAttestationHash)) { + return { dryRun: false, gateway, error: 'KTT requires authAttestationHash' }; + } if (!execute) { return { dryRun: true, gateway, prepared: true }; } diff --git a/services/swift-listener/dist/outbound/intakeGatewayAdapter.js.map b/services/swift-listener/dist/outbound/intakeGatewayAdapter.js.map index 519a6dd..1dc9026 100644 --- a/services/swift-listener/dist/outbound/intakeGatewayAdapter.js.map +++ b/services/swift-listener/dist/outbound/intakeGatewayAdapter.js.map @@ -1 +1 @@ -{"version":3,"file":"intakeGatewayAdapter.js","sourceRoot":"","sources":["../../src/outbound/intakeGatewayAdapter.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"intakeGatewayAdapter.js","sourceRoot":"","sources":["../../src/outbound/intakeGatewayAdapter.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/services/swift-listener/dist/parsers/inboundParser.d.ts b/services/swift-listener/dist/parsers/inboundParser.d.ts index 439b561..6f06db6 100644 --- a/services/swift-listener/dist/parsers/inboundParser.d.ts +++ b/services/swift-listener/dist/parsers/inboundParser.d.ts @@ -1,7 +1,8 @@ -import type { ParsedInbound, ParsedIso20022, ParsedJsonBroadcast, ParsedSwiftFin } from '../types'; +import type { ParsedInbound, ParsedIso20022, ParsedJsonBroadcast, ParsedKtt, ParsedSwiftFin } from '../types'; export declare function parseSwiftFin(raw: string): ParsedSwiftFin; -export declare function detectInboundFormat(payload: string): 'swift_fin' | 'iso20022' | 'json_broadcast'; +export declare function detectInboundFormat(payload: string): 'swift_fin' | 'iso20022' | 'json_broadcast' | 'ktt'; export declare function parseIso20022(raw: string): ParsedIso20022; export declare function parseJsonBroadcast(raw: string): ParsedJsonBroadcast; export declare function parseInbound(payload: string): ParsedInbound; +export declare function parseKtt(raw: string): ParsedKtt; //# sourceMappingURL=inboundParser.d.ts.map \ No newline at end of file diff --git a/services/swift-listener/dist/parsers/inboundParser.d.ts.map b/services/swift-listener/dist/parsers/inboundParser.d.ts.map index 70f55e4..3036bac 100644 --- a/services/swift-listener/dist/parsers/inboundParser.d.ts.map +++ b/services/swift-listener/dist/parsers/inboundParser.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"inboundParser.d.ts","sourceRoot":"","sources":["../../src/parsers/inboundParser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,mBAAmB,EAAE,cAAc,EAAuB,MAAM,UAAU,CAAC;AA6IxH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAmCzD;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,UAAU,GAAG,gBAAgB,CAchG;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAwCzD;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,mBAAmB,CAkBnE;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CAK3D"} \ No newline at end of file +{"version":3,"file":"inboundParser.d.ts","sourceRoot":"","sources":["../../src/parsers/inboundParser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,mBAAmB,EAAE,SAAS,EAAE,cAAc,EAAuB,MAAM,UAAU,CAAC;AA6InI,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAmCzD;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,UAAU,GAAG,gBAAgB,GAAG,KAAK,CAgCxG;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAwCzD;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,mBAAmB,CAkBnE;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CAoB3D;AA8BD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAkC/C"} \ No newline at end of file diff --git a/services/swift-listener/dist/parsers/inboundParser.js b/services/swift-listener/dist/parsers/inboundParser.js index 9b0f3f9..a3d8315 100644 --- a/services/swift-listener/dist/parsers/inboundParser.js +++ b/services/swift-listener/dist/parsers/inboundParser.js @@ -5,6 +5,7 @@ exports.detectInboundFormat = detectInboundFormat; exports.parseIso20022 = parseIso20022; exports.parseJsonBroadcast = parseJsonBroadcast; exports.parseInbound = parseInbound; +exports.parseKtt = parseKtt; function parseSwiftFields(text) { const fields = {}; let currentField = null; @@ -179,6 +180,25 @@ function parseSwiftFin(raw) { } function detectInboundFormat(payload) { const t = payload.trim(); + if (t.startsWith('{')) { + try { + const obj = JSON.parse(t); + if (obj.format === 'ktt' || obj.messageType === 'KTT' || obj.messageType === 'TELEX_KTT') + return 'ktt'; + if (obj.event === 'deposit.submitted') + return 'ktt'; + } + catch { + /* continue */ + } + } + const upper = t.toUpperCase(); + if (upper.includes('TELEX REF') || + upper.startsWith('ORDERING:') || + upper.startsWith('BENEFICIARY:') || + (t.includes(':20:') && t.includes(':32A:') && !t.startsWith('{1:'))) { + return 'ktt'; + } if (t.startsWith('= 2) { + parsed.currency = parts[0]; + parsed.amount = parts[1]; + } + } + } + } + return { + format: 'ktt', + messageType, + raw, + parsed, + searchableText: body, + }; +} //# sourceMappingURL=inboundParser.js.map \ No newline at end of file diff --git a/services/swift-listener/dist/parsers/inboundParser.js.map b/services/swift-listener/dist/parsers/inboundParser.js.map index 79f3324..9fc2f35 100644 --- a/services/swift-listener/dist/parsers/inboundParser.js.map +++ b/services/swift-listener/dist/parsers/inboundParser.js.map @@ -1 +1 @@ -{"version":3,"file":"inboundParser.js","sourceRoot":"","sources":["../../src/parsers/inboundParser.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"inboundParser.js","sourceRoot":"","sources":["../../src/parsers/inboundParser.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/services/swift-listener/dist/resourceRegistry.d.ts.map b/services/swift-listener/dist/resourceRegistry.d.ts.map index b4009c7..39891c6 100644 --- a/services/swift-listener/dist/resourceRegistry.d.ts.map +++ b/services/swift-listener/dist/resourceRegistry.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"resourceRegistry.d.ts","sourceRoot":"","sources":["../src/resourceRegistry.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAWhE,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,CAKtE;AAMD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAwB9D;AAsCD,qEAAqE;AACrE,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,gBAAgB,CAmGnG;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,SAAK,GAAG,MAAM,EAAE,CAiB9F"} \ No newline at end of file +{"version":3,"file":"resourceRegistry.d.ts","sourceRoot":"","sources":["../src/resourceRegistry.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAWhE,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,CAKtE;AAMD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAyB9D;AAsCD,qEAAqE;AACrE,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,gBAAgB,CAmGnG;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,SAAK,GAAG,MAAM,EAAE,CAiB9F"} \ No newline at end of file diff --git a/services/swift-listener/dist/resourceRegistry.js b/services/swift-listener/dist/resourceRegistry.js index 97fbc2c..88beecf 100644 --- a/services/swift-listener/dist/resourceRegistry.js +++ b/services/swift-listener/dist/resourceRegistry.js @@ -44,6 +44,8 @@ function applyEnvOverrides(config) { config.adapters.as4Inbox.enabled = true; if (envFlag('SWIFT_LISTENER_MAIL_INBOX')) config.adapters.mailAttachmentInbox.enabled = true; + if (envFlag('SWIFT_LISTENER_TELEX_INBOX')) + config.adapters.telexInbox.enabled = true; config.outbound ??= defaultOutboundConfig(); if (envFlag('SWIFT_LISTENER_OMNL_FORWARD')) config.outbound.omnlForward.enabled = true; diff --git a/services/swift-listener/dist/resourceRegistry.js.map b/services/swift-listener/dist/resourceRegistry.js.map index 4c2b970..5b0bd6e 100644 --- a/services/swift-listener/dist/resourceRegistry.js.map +++ b/services/swift-listener/dist/resourceRegistry.js.map @@ -1 +1 @@ -{"version":3,"file":"resourceRegistry.js","sourceRoot":"","sources":["../src/resourceRegistry.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"resourceRegistry.js","sourceRoot":"","sources":["../src/resourceRegistry.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/services/swift-listener/dist/types.d.ts b/services/swift-listener/dist/types.d.ts index ba3e778..2fac0ea 100644 --- a/services/swift-listener/dist/types.d.ts +++ b/services/swift-listener/dist/types.d.ts @@ -1,7 +1,8 @@ import type { CanonicalPaymentMessage } from '@dbis/checkpoint-core'; export type SwiftFinMessageType = 'MT103' | 'MT202' | 'MT910' | 'MT940' | 'MT942' | 'MT950' | 'UNKNOWN'; export type Iso20022MessageType = 'pain.001' | 'pacs.008' | 'pacs.009' | 'pacs.002' | 'camt.052' | 'camt.053' | 'camt.054' | 'unknown'; -export type InboundFormat = 'swift_fin' | 'iso20022' | 'json_broadcast'; +export type InboundFormat = 'swift_fin' | 'iso20022' | 'json_broadcast' | 'ktt'; +export type KttMessageType = 'KTT' | 'TELEX_KTT'; export type ResourceMatchKind = 'chain138_name' | 'chain138_address' | 'chain138_symbol' | 'cw_symbol' | 'cw_address' | 'instruction_prefix' | 'remittance_keyword' | 'contract_ref'; export type ResourceMatch = { kind: ResourceMatchKind; @@ -31,7 +32,16 @@ export type ParsedJsonBroadcast = { parsed: Record; searchableText: string; }; -export type ParsedInbound = ParsedSwiftFin | ParsedIso20022 | ParsedJsonBroadcast; +export type ParsedKtt = { + format: 'ktt'; + messageType: KttMessageType; + raw: string; + parsed: Record; + searchableText: string; + testKeyProof?: string; + authAttestationHash?: string; +}; +export type ParsedInbound = ParsedSwiftFin | ParsedIso20022 | ParsedJsonBroadcast | ParsedKtt; export type SwiftListenerEvent = { id: string; receivedAt: string; @@ -84,6 +94,7 @@ export type ListenerConfig = { archiveDir: string; as4InboxDir?: string; mailInboxDir?: string; + telexInboxDir?: string; }; adapters: { fileInbox: { @@ -130,6 +141,11 @@ export type ListenerConfig = { pollIntervalSec: number; archiveOnProcess?: boolean; }; + telexInbox: { + enabled: boolean; + pollIntervalSec: number; + archiveOnProcess?: boolean; + }; }; outbound?: { omnlForward: { diff --git a/services/swift-listener/dist/types.d.ts.map b/services/swift-listener/dist/types.d.ts.map index ed144fc..41f1b64 100644 --- a/services/swift-listener/dist/types.d.ts.map +++ b/services/swift-listener/dist/types.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/services/swift-listener/src/adapters/inboundAdapters.ts b/services/swift-listener/src/adapters/inboundAdapters.ts index 716b79f..91a3ceb 100644 --- a/services/swift-listener/src/adapters/inboundAdapters.ts +++ b/services/swift-listener/src/adapters/inboundAdapters.ts @@ -3,7 +3,7 @@ import { join, dirname } from 'path'; import type { InboundMessage, InboundFormat } from '../types'; import { detectInboundFormat } from '../parsers/inboundParser'; -const INBOX_EXTENSIONS = /\.(fin|swift|xml|txt|json|as4|mx)$/i; +const INBOX_EXTENSIONS = /\.(fin|swift|xml|txt|json|as4|mx|telex|ktt)$/i; export function scanDirectoryInbox( inboxDir: string, @@ -28,6 +28,7 @@ export function scanDirectoryInbox( let format: InboundFormat = defaultFormat ?? detectInboundFormat(payload); if (lower.endsWith('.xml') || lower.endsWith('.mx') || lower.endsWith('.as4')) format = 'iso20022'; if (lower.endsWith('.json')) format = 'json_broadcast'; + if (lower.endsWith('.telex') || lower.endsWith('.ktt')) format = 'ktt'; messages.push({ source: `${sourcePrefix}:${full}`, format, diff --git a/services/swift-listener/src/canonical/mapToCanonical.ts b/services/swift-listener/src/canonical/mapToCanonical.ts index 857ca8d..ad0257c 100644 --- a/services/swift-listener/src/canonical/mapToCanonical.ts +++ b/services/swift-listener/src/canonical/mapToCanonical.ts @@ -1,8 +1,14 @@ import { ethers } from 'ethers'; -import { MSG_TYPE, hashShortUtf8, type CanonicalPaymentMessage } from '@dbis/checkpoint-core'; +import { + MSG_TYPE, + authAttestationHashFromProof, + hashShortUtf8, + type CanonicalPaymentMessage, +} from '@dbis/checkpoint-core'; import type { ParsedInbound } from '../types'; function msgTypeCode(parsed: ParsedInbound): CanonicalPaymentMessage['msgTypeCode'] { + if (parsed.format === 'ktt') return MSG_TYPE.KTT; if (parsed.format === 'swift_fin') { if (parsed.messageType === 'MT103') return MSG_TYPE.MT103; return MSG_TYPE.UNKNOWN; @@ -15,12 +21,19 @@ function msgTypeCode(parsed: ParsedInbound): CanonicalPaymentMessage['msgTypeCod } function msgTypeLabel(parsed: ParsedInbound): CanonicalPaymentMessage['msgType'] { + if (parsed.format === 'ktt') return parsed.messageType; if (parsed.format === 'swift_fin' && parsed.messageType === 'MT103') return 'MT103'; if (parsed.format === 'iso20022' && parsed.messageType === 'pacs.008') return 'pacs.008'; if (parsed.format === 'iso20022' && parsed.messageType === 'pain.001') return 'pain.001'; return 'chain138.synthetic'; } +function settlementMethod(parsed: ParsedInbound): string { + if (parsed.format === 'ktt') return 'KTT'; + if (parsed.format === 'swift_fin') return 'SWIFT'; + return 'ISO20022'; +} + function pickString(parsed: ParsedInbound, ...keys: string[]): string { const obj = parsed.parsed; for (const k of keys) { @@ -33,13 +46,16 @@ function pickString(parsed: ParsedInbound, ...keys: string[]): string { export function mapToCanonical(parsed: ParsedInbound, dedupeKey: string): CanonicalPaymentMessage | undefined { const instructionId = pickString(parsed, 'instructionId', 'senderReference', 'transactionReference', 'messageId') || - `SWIFT-${dedupeKey.slice(0, 16)}`; + `KTT-${dedupeKey.slice(0, 16)}`; const endToEndId = pickString(parsed, 'endToEndId', 'transactionReference', 'senderReference') || instructionId; const msgId = pickString(parsed, 'messageId', 'senderReference') || instructionId; const uetr = pickString(parsed, 'uetr') || ''; - const debtorId = pickString(parsed, 'orderingCustomer', 'debtor', 'sendingInstitution') || 'UNKNOWN'; - const creditorId = pickString(parsed, 'beneficiaryCustomer', 'creditor', 'beneficiaryInstitution') || 'UNKNOWN'; - const currencyCode = pickString(parsed, 'currency') || 'USD'; + const debtorId = + pickString(parsed, 'orderingCustomer', 'debtor', 'sendingInstitution', 'debtorId') || 'UNKNOWN'; + const creditorId = + pickString(parsed, 'beneficiaryCustomer', 'creditor', 'beneficiaryInstitution', 'creditorId') || + 'UNKNOWN'; + const currencyCode = pickString(parsed, 'currency', 'currencyCode') || 'USD'; const amountRaw = pickString(parsed, 'amount') || '0'; const purpose = pickString(parsed, 'remittanceInfo', 'remittance', 'purpose', 'senderToReceiverInfo', 'narrative') || @@ -50,6 +66,21 @@ export function mapToCanonical(parsed: ParsedInbound, dedupeKey: string): Canoni ? ethers.keccak256(ethers.toUtf8Bytes(`UETR:${uetr}`)) : ethers.keccak256(ethers.toUtf8Bytes(`UETR:${dedupeKey}`)); + let authAttestationHash: string | undefined; + if (parsed.format === 'ktt') { + const fromParsed = pickString(parsed, 'authAttestationHash'); + if (fromParsed) { + authAttestationHash = fromParsed.startsWith('0x') ? fromParsed : hashShortUtf8(fromParsed); + } else if (parsed.authAttestationHash) { + authAttestationHash = parsed.authAttestationHash; + } else if (parsed.testKeyProof && pickString(parsed, 'normalizedBody')) { + authAttestationHash = authAttestationHashFromProof( + parsed.testKeyProof, + pickString(parsed, 'normalizedBody') + ); + } + } + const base: Omit = { msgType: msgTypeLabel(parsed), msgTypeCode: msgTypeCode(parsed), @@ -65,7 +96,7 @@ export function mapToCanonical(parsed: ParsedInbound, dedupeKey: string): Canoni debtorId, creditorId, purpose, - settlementMethod: parsed.format === 'swift_fin' ? 'SWIFT' : 'ISO20022', + settlementMethod: settlementMethod(parsed), categoryPurpose: 'CBFF', currencyCode, amountRaw, @@ -75,6 +106,7 @@ export function mapToCanonical(parsed: ParsedInbound, dedupeKey: string): Canoni purposeHash: hashShortUtf8(purpose), chain138TxHash: pickString(parsed, 'txId', 'chain138TxHash'), valueDateIso: pickString(parsed, 'valueDate') || undefined, + ...(authAttestationHash ? { authAttestationHash } : {}), }; const payloadHash = ethers.keccak256( diff --git a/services/swift-listener/src/listener.ts b/services/swift-listener/src/listener.ts index a8bf759..8e79042 100644 --- a/services/swift-listener/src/listener.ts +++ b/services/swift-listener/src/listener.ts @@ -123,6 +123,13 @@ export class SwiftListener { // ignore } } + if (msg.source.startsWith('telex:') && this.config.adapters.telexInbox?.archiveOnProcess) { + try { + archiveInboxFile(filePath, resolve(archiveDir, 'telex')); + } catch { + // ignore + } + } } async processBatch(sources: InboundMessage[]): Promise { @@ -152,6 +159,12 @@ export class SwiftListener { return this.processBatch(scanDirectoryInbox(resolve(this.projectRoot, dir), 'mail')); } + async pollTelexInbox(): Promise { + const dir = this.config.storage.telexInboxDir; + if (!dir) return []; + return this.processBatch(scanDirectoryInbox(resolve(this.projectRoot, dir), 'telex', 'ktt')); + } + async pollP2pRail(): Promise { const cfg = this.config.adapters.p2pRail; const baseUrl = process.env[cfg.baseUrlEnv] ?? process.env.P2P_BASE_URL ?? ''; @@ -247,6 +260,7 @@ export class SwiftListener { if (adapters.finGateway?.enabled) intervals.push(adapters.finGateway.pollIntervalSec); if (adapters.as4Inbox?.enabled) intervals.push(adapters.as4Inbox.pollIntervalSec); if (adapters.mailAttachmentInbox?.enabled) intervals.push(adapters.mailAttachmentInbox.pollIntervalSec); + if (adapters.telexInbox?.enabled) intervals.push(adapters.telexInbox.pollIntervalSec); return intervals.length ? intervals : [60]; } @@ -263,6 +277,9 @@ export class SwiftListener { if (adapters.mailAttachmentInbox?.enabled) { events.push(...(await this.pollMailInbox())); } + if (adapters.telexInbox?.enabled) { + events.push(...(await this.pollTelexInbox())); + } if (adapters.p2pRail.enabled) { try { events.push(...(await this.pollP2pRail())); diff --git a/services/swift-listener/src/outbound/intakeGatewayAdapter.ts b/services/swift-listener/src/outbound/intakeGatewayAdapter.ts index 8e546f1..18f6a5c 100644 --- a/services/swift-listener/src/outbound/intakeGatewayAdapter.ts +++ b/services/swift-listener/src/outbound/intakeGatewayAdapter.ts @@ -3,7 +3,7 @@ import type { CanonicalPaymentMessage } from '@dbis/checkpoint-core'; import type { ListenerConfig, ResourceRegistry } from '../types'; const GATEWAY_ABI = [ - 'function submitInbound((bytes32 instructionId, bytes32 endToEndIdHash, bytes32 uetr, bytes32 payloadHash, bytes32 debtorRefHash, bytes32 creditorRefHash, bytes32 purposeHash, uint8 msgTypeCode, address token, uint256 amount, bytes3 currencyCode) m) external', + 'function submitInbound((bytes32 instructionId, bytes32 endToEndIdHash, bytes32 uetr, bytes32 payloadHash, bytes32 debtorRefHash, bytes32 creditorRefHash, bytes32 purposeHash, bytes32 authAttestationHash, uint8 msgTypeCode, address token, uint256 amount, bytes3 currencyCode) m) external', 'function processedInstructions(bytes32) view returns (bool)', ]; @@ -59,6 +59,7 @@ export function buildGatewayMessage( debtorRefHash: canonical.debtorRefHash, creditorRefHash: canonical.creditorRefHash, purposeHash: canonical.purposeHash, + authAttestationHash: canonical.authAttestationHash ?? ethers.ZeroHash, msgTypeCode: canonical.msgTypeCode, token: resolveTokenAddress(canonical, registry), amount: BigInt(canonical.amountSmallestUnit || '0'), @@ -91,6 +92,14 @@ export async function submitToIntakeGateway( const message = buildGatewayMessage(canonical, registry); + if ( + canonical.msgTypeCode === 5 && + process.env.KTT_REQUIRE_ATTESTATION === '1' && + (message.authAttestationHash === ethers.ZeroHash || !message.authAttestationHash) + ) { + return { dryRun: false, gateway, error: 'KTT requires authAttestationHash' }; + } + if (!execute) { return { dryRun: true, gateway, prepared: true }; } diff --git a/services/swift-listener/src/parsers/inboundParser.ts b/services/swift-listener/src/parsers/inboundParser.ts index 15d2e33..49461fa 100644 --- a/services/swift-listener/src/parsers/inboundParser.ts +++ b/services/swift-listener/src/parsers/inboundParser.ts @@ -1,4 +1,4 @@ -import type { ParsedInbound, ParsedIso20022, ParsedJsonBroadcast, ParsedSwiftFin, SwiftFinMessageType } from '../types'; +import type { ParsedInbound, ParsedIso20022, ParsedJsonBroadcast, ParsedKtt, ParsedSwiftFin, SwiftFinMessageType } from '../types'; function parseSwiftFields(text: string): Record { const fields: Record = {}; @@ -176,8 +176,26 @@ export function parseSwiftFin(raw: string): ParsedSwiftFin { }; } -export function detectInboundFormat(payload: string): 'swift_fin' | 'iso20022' | 'json_broadcast' { +export function detectInboundFormat(payload: string): 'swift_fin' | 'iso20022' | 'json_broadcast' | 'ktt' { const t = payload.trim(); + if (t.startsWith('{')) { + try { + const obj = JSON.parse(t) as Record; + if (obj.format === 'ktt' || obj.messageType === 'KTT' || obj.messageType === 'TELEX_KTT') return 'ktt'; + if (obj.event === 'deposit.submitted') return 'ktt'; + } catch { + /* continue */ + } + } + const upper = t.toUpperCase(); + if ( + upper.includes('TELEX REF') || + upper.startsWith('ORDERING:') || + upper.startsWith('BENEFICIARY:') || + (t.includes(':20:') && t.includes(':32A:') && !t.startsWith('{1:')) + ) { + return 'ktt'; + } if (t.startsWith('; + if (obj.format === 'ktt' || obj.messageType === 'KTT' || obj.messageType === 'TELEX_KTT') { + return parseKttEnvelope(trimmed, obj); + } + if (obj.event === 'deposit.submitted' && obj.payload) { + return parseKttEnvelope(trimmed, obj.payload as Record); + } + } catch { + /* fall through */ + } + } const format = detectInboundFormat(payload); + if (format === 'ktt') return parseKtt(payload); if (format === 'swift_fin') return parseSwiftFin(payload); if (format === 'iso20022') return parseIso20022(payload); return parseJsonBroadcast(payload); } + +function parseKttEnvelope(raw: string, obj: Record): ParsedKtt { + const normalizedBody = String(obj.normalizedBody ?? obj.body ?? ''); + const testKeyProof = String(obj.testKeyProof ?? obj.test_key_proof ?? ''); + const messageType = + String(obj.messageType ?? obj.msgType ?? '') === 'TELEX_KTT' ? 'TELEX_KTT' : 'KTT'; + const parsed: Record = { + normalizedBody, + testKeyProof, + instructionId: obj.instructionId ?? obj.instruction_id, + telexRef: obj.telexRef ?? obj.telex_ref, + debtorId: obj.debtorId, + creditorId: obj.creditorId, + amount: obj.amount, + currency: obj.currency ?? obj.currencyCode, + authAttestationHash: obj.authAttestationHash ?? obj.auth_attestation_hash, + ...((obj.normalizedFields as Record) ?? {}), + }; + return { + format: 'ktt', + messageType: messageType as 'KTT' | 'TELEX_KTT', + raw, + parsed, + searchableText: [normalizedBody, JSON.stringify(parsed)].join('\n'), + testKeyProof, + authAttestationHash: obj.authAttestationHash as string | undefined, + }; +} + +export function parseKtt(raw: string): ParsedKtt { + const body = raw.trim(); + const messageType: 'KTT' | 'TELEX_KTT' = + body.includes(':20:') || body.includes(':32A:') ? 'TELEX_KTT' : 'KTT'; + const parsed: Record = { normalizedBody: body }; + if (messageType === 'TELEX_KTT') { + const fin = parseSwiftFin(body.includes(':20:') ? `{4:\n${body}\n-}` : body); + const p = fin.parsed as Record; + parsed.senderReference = p.senderReference; + parsed.orderingCustomer = p.orderingCustomer; + parsed.beneficiaryCustomer = p.beneficiaryCustomer; + parsed.amount = p.amount; + parsed.currency = p.currency; + } else { + for (const line of body.split('\n')) { + const upper = line.toUpperCase(); + if (upper.startsWith('ORDERING:')) parsed.orderingCustomer = line.split(':').slice(1).join(':').trim(); + if (upper.startsWith('BENEFICIARY:')) parsed.beneficiaryCustomer = line.split(':').slice(1).join(':').trim(); + if (upper.startsWith('AMOUNT:')) { + const parts = line.split(':').slice(1).join(':').trim().split(/\s+/); + if (parts.length >= 2) { + parsed.currency = parts[0]; + parsed.amount = parts[1]; + } + } + } + } + return { + format: 'ktt', + messageType, + raw, + parsed, + searchableText: body, + }; +} diff --git a/services/swift-listener/src/resourceRegistry.ts b/services/swift-listener/src/resourceRegistry.ts index aa7c881..e79dd88 100644 --- a/services/swift-listener/src/resourceRegistry.ts +++ b/services/swift-listener/src/resourceRegistry.ts @@ -36,6 +36,7 @@ export function applyEnvOverrides(config: ListenerConfig): void { if (envFlag('SWIFT_LISTENER_AS4_INBOX')) config.adapters.as4Inbox.enabled = true; if (envFlag('SWIFT_LISTENER_MAIL_INBOX')) config.adapters.mailAttachmentInbox.enabled = true; + if (envFlag('SWIFT_LISTENER_TELEX_INBOX')) config.adapters.telexInbox.enabled = true; config.outbound ??= defaultOutboundConfig(); diff --git a/services/swift-listener/src/types.ts b/services/swift-listener/src/types.ts index 32914e4..c691179 100644 --- a/services/swift-listener/src/types.ts +++ b/services/swift-listener/src/types.ts @@ -19,7 +19,9 @@ export type Iso20022MessageType = | 'camt.054' | 'unknown'; -export type InboundFormat = 'swift_fin' | 'iso20022' | 'json_broadcast'; +export type InboundFormat = 'swift_fin' | 'iso20022' | 'json_broadcast' | 'ktt'; + +export type KttMessageType = 'KTT' | 'TELEX_KTT'; export type ResourceMatchKind = | 'chain138_name' @@ -63,7 +65,17 @@ export type ParsedJsonBroadcast = { searchableText: string; }; -export type ParsedInbound = ParsedSwiftFin | ParsedIso20022 | ParsedJsonBroadcast; +export type ParsedKtt = { + format: 'ktt'; + messageType: KttMessageType; + raw: string; + parsed: Record; + searchableText: string; + testKeyProof?: string; + authAttestationHash?: string; +}; + +export type ParsedInbound = ParsedSwiftFin | ParsedIso20022 | ParsedJsonBroadcast | ParsedKtt; export type SwiftListenerEvent = { id: string; @@ -114,6 +126,7 @@ export type ListenerConfig = { archiveDir: string; as4InboxDir?: string; mailInboxDir?: string; + telexInboxDir?: string; }; adapters: { fileInbox: { enabled: boolean; pollIntervalSec: number; archiveOnProcess?: boolean }; @@ -156,6 +169,11 @@ export type ListenerConfig = { pollIntervalSec: number; archiveOnProcess?: boolean; }; + telexInbox: { + enabled: boolean; + pollIntervalSec: number; + archiveOnProcess?: boolean; + }; }; outbound?: { omnlForward: { diff --git a/services/telex-transport-adapter/package.json b/services/telex-transport-adapter/package.json new file mode 100644 index 0000000..2901a7c --- /dev/null +++ b/services/telex-transport-adapter/package.json @@ -0,0 +1,11 @@ +{ + "name": "@dbis/telex-transport-adapter", + "version": "0.1.0", + "private": true, + "type": "module", + "bin": { "telex-transport-adapter": "./dist/cli.js" }, + "scripts": { + "build": "tsc -p tsconfig.json", + "dry-run": "node dist/cli.js --dry-run" + } +} diff --git a/services/telex-transport-adapter/src/cli.ts b/services/telex-transport-adapter/src/cli.ts new file mode 100644 index 0000000..43e2bdd --- /dev/null +++ b/services/telex-transport-adapter/src/cli.ts @@ -0,0 +1,53 @@ +/** + * Telex transport adapter — dry-run email-to-telex normalization for KTT rail. + * Usage: node dist/cli.js [--dry-run] + */ +import { readFileSync } from 'fs'; + +function extractTelexFromEmail(payload: string): string { + const text = payload.trim(); + if (text.startsWith('{') && text.includes('body')) { + try { + const obj = JSON.parse(text) as Record; + return String(obj.body ?? obj.text ?? text); + } catch { + /* continue */ + } + } + const parts = text.split(/\n\n/); + if (parts.length >= 2 && /^From:/m.test(text)) return parts.slice(1).join('\n\n').trim(); + return text; +} + +function parseFields(body: string): Record { + const fields: Record = {}; + for (const line of body.split('\n')) { + const upper = line.toUpperCase(); + if (upper.startsWith('ORDERING:')) fields.debtorId = line.split(':').slice(1).join(':').trim(); + if (upper.startsWith('BENEFICIARY:')) fields.creditorId = line.split(':').slice(1).join(':').trim(); + if (upper.startsWith('AMOUNT:')) { + const p = line.split(':').slice(1).join(':').trim().split(/\s+/); + if (p.length >= 2) { + fields.currencyCode = p[0]; + fields.amount = p[1]; + } + } + } + return fields; +} + +const dryRun = process.argv.includes('--dry-run') || process.env.TELEX_TRANSPORT_DRY_RUN === '1'; +const file = process.argv.find((a) => !a.startsWith('-') && a !== process.argv[0] && a !== process.argv[1]); +const raw = file ? readFileSync(file, 'utf8') : readFileSync(0, 'utf8'); +const normalizedBody = extractTelexFromEmail(raw); +const messageType = normalizedBody.includes(':20:') ? 'TELEX_KTT' : 'KTT'; + +console.log( + JSON.stringify({ + dryRun, + format: 'ktt', + messageType, + normalizedBody, + normalizedFields: parseFields(normalizedBody), + }) +); diff --git a/services/telex-transport-adapter/tsconfig.json b/services/telex-transport-adapter/tsconfig.json new file mode 100644 index 0000000..d1ab239 --- /dev/null +++ b/services/telex-transport-adapter/tsconfig.json @@ -0,0 +1,15 @@ +{ + "compilerOptions": { + "target": "ES2022", + "module": "ES2022", + "lib": ["ES2022"], + "outDir": "dist", + "rootDir": "src", + "strict": true, + "esModuleInterop": true, + "skipLibCheck": true, + "moduleResolution": "node", + "resolveJsonModule": true + }, + "include": ["src/**/*"] +} diff --git a/services/token-aggregation/config/token-lists/dbis-138.tokenlist.json b/services/token-aggregation/config/token-lists/dbis-138.tokenlist.json index b8ced78..7f695d9 100644 --- a/services/token-aggregation/config/token-lists/dbis-138.tokenlist.json +++ b/services/token-aggregation/config/token-lists/dbis-138.tokenlist.json @@ -3,9 +3,9 @@ "version": { "major": 1, "minor": 6, - "patch": 9 + "patch": 10 }, - "timestamp": "2026-06-13T22:54:22.248Z", + "timestamp": "2026-06-18T18:27:15.134Z", "keywords": [ "dbis", "chain138", @@ -804,6 +804,78 @@ "backing": "native-gas-asset", "walletClass": "token" } + }, + { + "chainId": 138, + "address": "0x219522c60e83dEe01FC5b0329d6fA8fD84b9D13d", + "name": "USD Coin (Compliant V2)", + "symbol": "cUSDC_V2", + "decimals": 6, + "logoURI": "https://d-bis.org/tokens/cusdc.svg", + "tags": [ + "stablecoin", + "defi", + "compliant", + "fiat", + "cash", + "gru", + "x402" + ], + "extensions": { + "category": "gru-emoney", + "instrument": "emoney-or-fiat-backed-stablecoin", + "currency": "USD", + "settlement": "fiat", + "cashLike": true, + "backing": "cash,cash-equivalents", + "gruVersion": "v2", + "gruFamily": "cUSDC", + "preferredForX402": true, + "x402Ready": true, + "liquiditySourceSymbol": "cUSDC", + "assetClass": "Cash & Equivalents", + "assetGroup": "MMF / Repo", + "instrumentType": "eMoney", + "underlying": "USD", + "gruLayer": "M1", + "rwaEligible": false + } + }, + { + "chainId": 138, + "address": "0x9FBfab33882Efe0038DAa608185718b772EE5660", + "name": "Tether USD (Compliant V2)", + "symbol": "cUSDT_V2", + "decimals": 6, + "logoURI": "https://d-bis.org/tokens/cusdt.svg", + "tags": [ + "stablecoin", + "defi", + "compliant", + "fiat", + "cash", + "gru", + "x402" + ], + "extensions": { + "category": "gru-emoney", + "instrument": "emoney-or-fiat-backed-stablecoin", + "currency": "USD", + "settlement": "fiat", + "cashLike": true, + "backing": "cash,cash-equivalents", + "gruVersion": "v2", + "gruFamily": "cUSDT", + "preferredForX402": true, + "x402Ready": true, + "liquiditySourceSymbol": "cUSDT", + "assetClass": "Cash & Equivalents", + "assetGroup": "MMF / Repo", + "instrumentType": "eMoney", + "underlying": "USD", + "gruLayer": "M1", + "rwaEligible": false + } } ], "tags": {