@toon-protocol/connector 2.5.0 → 2.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/dist/core/connector-node.d.ts +1 -0
  2. package/dist/core/connector-node.d.ts.map +1 -1
  3. package/dist/core/connector-node.js +13 -1
  4. package/dist/core/connector-node.js.map +1 -1
  5. package/dist/core/packet-handler.d.ts +3 -0
  6. package/dist/core/packet-handler.d.ts.map +1 -1
  7. package/dist/core/packet-handler.js +33 -10
  8. package/dist/core/packet-handler.js.map +1 -1
  9. package/dist/http/admin-api-inventory.d.ts +29 -0
  10. package/dist/http/admin-api-inventory.d.ts.map +1 -0
  11. package/dist/http/admin-api-inventory.js +480 -0
  12. package/dist/http/admin-api-inventory.js.map +1 -0
  13. package/dist/http/admin-api.d.ts +59 -0
  14. package/dist/http/admin-api.d.ts.map +1 -1
  15. package/dist/http/admin-api.js +268 -1
  16. package/dist/http/admin-api.js.map +1 -1
  17. package/dist/http/admin-server.d.ts +8 -0
  18. package/dist/http/admin-server.d.ts.map +1 -1
  19. package/dist/http/admin-server.js +5 -1
  20. package/dist/http/admin-server.js.map +1 -1
  21. package/dist/observability/metrics-registry.d.ts +39 -0
  22. package/dist/observability/metrics-registry.d.ts.map +1 -0
  23. package/dist/observability/metrics-registry.js +151 -0
  24. package/dist/observability/metrics-registry.js.map +1 -0
  25. package/dist/settlement/account-manager.d.ts +4 -0
  26. package/dist/settlement/account-manager.d.ts.map +1 -1
  27. package/dist/settlement/account-manager.js +16 -4
  28. package/dist/settlement/account-manager.js.map +1 -1
  29. package/dist/settlement/claim-receiver.d.ts +15 -0
  30. package/dist/settlement/claim-receiver.d.ts.map +1 -1
  31. package/dist/settlement/claim-receiver.js +122 -0
  32. package/dist/settlement/claim-receiver.js.map +1 -1
  33. package/dist/settlement/sent-claims-queries.d.ts +23 -0
  34. package/dist/settlement/sent-claims-queries.d.ts.map +1 -0
  35. package/dist/settlement/sent-claims-queries.js +134 -0
  36. package/dist/settlement/sent-claims-queries.js.map +1 -0
  37. package/dist/settlement/solana-payment-channel-sdk.d.ts +4 -0
  38. package/dist/settlement/solana-payment-channel-sdk.d.ts.map +1 -1
  39. package/dist/settlement/solana-payment-channel-sdk.js +36 -0
  40. package/dist/settlement/solana-payment-channel-sdk.js.map +1 -1
  41. package/package.json +8 -3
  42. package/dist/config/aptos-env-validator.d.ts +0 -8
  43. package/dist/config/aptos-env-validator.d.ts.map +0 -1
  44. package/dist/config/aptos-env-validator.js +0 -25
  45. package/dist/config/aptos-env-validator.js.map +0 -1
  46. package/dist/explorer-ui/assets/EventDetailPanel-CnSaMk3V.js +0 -6
  47. package/dist/explorer-ui/assets/FilterBar-BEmAzBku.js +0 -26
  48. package/dist/explorer-ui/assets/chevron-right-BUT9VhYe.js +0 -11
  49. package/dist/explorer-ui/assets/index-BZ2INVgy.js +0 -360
  50. package/dist/explorer-ui/assets/index-Cemh6svI.css +0 -1
  51. package/dist/explorer-ui/index.html +0 -14
  52. package/dist/explorer-ui/vite.svg +0 -1
  53. package/dist/security/backends/aws-kms-backend.d.ts +0 -18
  54. package/dist/security/backends/aws-kms-backend.d.ts.map +0 -1
  55. package/dist/security/backends/aws-kms-backend.js +0 -130
  56. package/dist/security/backends/aws-kms-backend.js.map +0 -1
  57. package/dist/security/backends/azure-kv-backend.d.ts +0 -17
  58. package/dist/security/backends/azure-kv-backend.d.ts.map +0 -1
  59. package/dist/security/backends/azure-kv-backend.js +0 -121
  60. package/dist/security/backends/azure-kv-backend.js.map +0 -1
  61. package/dist/security/backends/gcp-kms-backend.d.ts +0 -17
  62. package/dist/security/backends/gcp-kms-backend.d.ts.map +0 -1
  63. package/dist/security/backends/gcp-kms-backend.js +0 -110
  64. package/dist/security/backends/gcp-kms-backend.js.map +0 -1
  65. package/dist/security/backends/hsm-backend.d.ts +0 -18
  66. package/dist/security/backends/hsm-backend.d.ts.map +0 -1
  67. package/dist/security/backends/hsm-backend.js +0 -187
  68. package/dist/security/backends/hsm-backend.js.map +0 -1
  69. package/dist/settlement/aptos-channel-sdk.d.ts +0 -66
  70. package/dist/settlement/aptos-channel-sdk.d.ts.map +0 -1
  71. package/dist/settlement/aptos-channel-sdk.js +0 -274
  72. package/dist/settlement/aptos-channel-sdk.js.map +0 -1
  73. package/dist/settlement/aptos-claim-signer.d.ts +0 -57
  74. package/dist/settlement/aptos-claim-signer.d.ts.map +0 -1
  75. package/dist/settlement/aptos-claim-signer.js +0 -200
  76. package/dist/settlement/aptos-claim-signer.js.map +0 -1
  77. package/dist/settlement/aptos-client.d.ts +0 -99
  78. package/dist/settlement/aptos-client.d.ts.map +0 -1
  79. package/dist/settlement/aptos-client.js +0 -474
  80. package/dist/settlement/aptos-client.js.map +0 -1
  81. package/dist/settlement/xrp-channel-lifecycle.d.ts +0 -41
  82. package/dist/settlement/xrp-channel-lifecycle.d.ts.map +0 -1
  83. package/dist/settlement/xrp-channel-lifecycle.js +0 -142
  84. package/dist/settlement/xrp-channel-lifecycle.js.map +0 -1
  85. package/dist/settlement/xrp-channel-manager.d.ts +0 -59
  86. package/dist/settlement/xrp-channel-manager.d.ts.map +0 -1
  87. package/dist/settlement/xrp-channel-manager.js +0 -160
  88. package/dist/settlement/xrp-channel-manager.js.map +0 -1
  89. package/dist/settlement/xrp-channel-sdk.d.ts +0 -30
  90. package/dist/settlement/xrp-channel-sdk.d.ts.map +0 -1
  91. package/dist/settlement/xrp-channel-sdk.js +0 -164
  92. package/dist/settlement/xrp-channel-sdk.js.map +0 -1
  93. package/dist/settlement/xrp-claim-signer.d.ts +0 -22
  94. package/dist/settlement/xrp-claim-signer.d.ts.map +0 -1
  95. package/dist/settlement/xrp-claim-signer.js +0 -122
  96. package/dist/settlement/xrp-claim-signer.js.map +0 -1
  97. package/dist/settlement/xrpl-client.d.ts +0 -104
  98. package/dist/settlement/xrpl-client.d.ts.map +0 -1
  99. package/dist/settlement/xrpl-client.js +0 -304
  100. package/dist/settlement/xrpl-client.js.map +0 -1
  101. package/dist/test/testnet-config.d.ts +0 -58
  102. package/dist/test/testnet-config.d.ts.map +0 -1
  103. package/dist/test/testnet-config.js +0 -89
  104. package/dist/test/testnet-config.js.map +0 -1
  105. package/dist/utils/xrp-wss-connection-pool.d.ts +0 -8
  106. package/dist/utils/xrp-wss-connection-pool.d.ts.map +0 -1
  107. package/dist/utils/xrp-wss-connection-pool.js +0 -42
  108. package/dist/utils/xrp-wss-connection-pool.js.map +0 -1
@@ -1,122 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ClaimSigner = void 0;
4
- const optional_require_1 = require("../utils/optional-require");
5
- async function createClaimMessage(channelId, amount) {
6
- const { encodeForSigningClaim } = await (0, optional_require_1.requireOptional)('ripple-binary-codec', 'XRP settlement');
7
- const signingData = encodeForSigningClaim({
8
- channel: channelId,
9
- amount: amount,
10
- });
11
- return Buffer.from(signingData, 'hex');
12
- }
13
- class ClaimSigner {
14
- db;
15
- keyManager;
16
- xrpKeyId;
17
- logger;
18
- constructor(db, logger, keyManager, xrpKeyId) {
19
- this.db = db;
20
- this.keyManager = keyManager;
21
- this.xrpKeyId = xrpKeyId;
22
- this.logger = logger.child({ component: 'ClaimSigner' });
23
- }
24
- async getPublicKey() {
25
- const pubKeyBuffer = await this.keyManager.getPublicKey(this.xrpKeyId);
26
- return 'ED' + pubKeyBuffer.toString('hex').toUpperCase();
27
- }
28
- async signClaim(channelId, amount) {
29
- this.logger.info({ channelId, amount }, 'Signing XRP payment channel claim...');
30
- if (!channelId || channelId.length !== 64) {
31
- throw new Error('Invalid channelId: must be 64-character hex string');
32
- }
33
- if (!/^[0-9A-Fa-f]{64}$/.test(channelId)) {
34
- throw new Error('Invalid channelId: must be valid hex string');
35
- }
36
- const amountBigInt = BigInt(amount);
37
- if (amountBigInt <= BigInt(0)) {
38
- throw new Error('Amount must be positive');
39
- }
40
- const latestClaim = await this.getLatestClaim(channelId);
41
- if (latestClaim && BigInt(amount) <= BigInt(latestClaim.amount)) {
42
- throw new Error(`Claim amount must be greater than previous claim: ${amount} <= ${latestClaim.amount}`);
43
- }
44
- const message = await createClaimMessage(channelId, amount);
45
- const signatureBuffer = await this.keyManager.sign(message, this.xrpKeyId);
46
- const signature = signatureBuffer.toString('hex').toUpperCase();
47
- this.logger.info({ channelId, amount, signature }, 'Claim signed successfully');
48
- const publicKey = await this.getPublicKey();
49
- this.db
50
- .prepare(`INSERT INTO xrp_claims (channel_id, amount, signature, public_key, created_at)
51
- VALUES (?, ?, ?, ?, ?)`)
52
- .run(channelId, amount, signature, publicKey, Date.now());
53
- return signature;
54
- }
55
- async verifyClaim(channelId, amount, signature, publicKey, channelAmount) {
56
- this.logger.info({ channelId, amount, publicKey }, 'Verifying XRP claim signature...');
57
- try {
58
- if (!channelId || channelId.length !== 64) {
59
- this.logger.warn({ channelId }, 'Invalid channelId format');
60
- return false;
61
- }
62
- if (!/^[0-9A-Fa-f]{64}$/.test(channelId)) {
63
- this.logger.warn({ channelId }, 'Invalid channelId: not valid hex');
64
- return false;
65
- }
66
- if (!signature || signature.length !== 128) {
67
- this.logger.warn({ signature }, 'Invalid signature format');
68
- return false;
69
- }
70
- if (!/^[0-9A-Fa-f]{128}$/.test(signature)) {
71
- this.logger.warn({ signature }, 'Invalid signature: not valid hex');
72
- return false;
73
- }
74
- if (!publicKey || publicKey.length !== 66 || !publicKey.startsWith('ED')) {
75
- this.logger.warn({ publicKey }, 'Invalid public key format');
76
- return false;
77
- }
78
- if (!/^ED[0-9A-Fa-f]{64}$/i.test(publicKey)) {
79
- this.logger.warn({ publicKey }, 'Invalid public key: not valid hex with ED prefix');
80
- return false;
81
- }
82
- if (channelAmount && BigInt(amount) > BigInt(channelAmount)) {
83
- this.logger.warn({ amount, channelAmount }, 'Claim amount exceeds channel balance');
84
- return false;
85
- }
86
- const { encodeForSigningClaim } = await (0, optional_require_1.requireOptional)('ripple-binary-codec', 'XRP settlement');
87
- const { verify: verifySignature } = await (0, optional_require_1.requireOptional)('ripple-keypairs', 'XRP settlement');
88
- const signingData = encodeForSigningClaim({
89
- channel: channelId,
90
- amount: amount,
91
- });
92
- const isValid = verifySignature(signingData, signature, publicKey);
93
- this.logger.info({ channelId, isValid }, 'Claim verification complete');
94
- return isValid;
95
- }
96
- catch (error) {
97
- this.logger.error({ error, channelId }, 'Claim verification failed');
98
- return false;
99
- }
100
- }
101
- async getLatestClaim(channelId) {
102
- const row = this.db
103
- .prepare(`SELECT channel_id, amount, signature, public_key, created_at
104
- FROM xrp_claims
105
- WHERE channel_id = ?
106
- ORDER BY created_at DESC
107
- LIMIT 1`)
108
- .get(channelId);
109
- if (!row) {
110
- return null;
111
- }
112
- return {
113
- channelId: row.channel_id,
114
- amount: row.amount,
115
- signature: row.signature,
116
- publicKey: row.public_key,
117
- createdAt: new Date(row.created_at).toISOString(),
118
- };
119
- }
120
- }
121
- exports.ClaimSigner = ClaimSigner;
122
- //# sourceMappingURL=xrp-claim-signer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"xrp-claim-signer.js","sourceRoot":"","sources":["../../src/settlement/xrp-claim-signer.ts"],"names":[],"mappings":"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"}
@@ -1,104 +0,0 @@
1
- import type { LedgerEntryResponse } from 'xrpl';
2
- import { Logger } from 'pino';
3
- export interface XRPLClientConfig {
4
- wssUrl: string;
5
- accountSecret: string;
6
- accountAddress: string;
7
- connectionTimeoutMs?: number;
8
- autoReconnect?: boolean;
9
- maxReconnectAttempts?: number;
10
- }
11
- export declare enum XRPLErrorCode {
12
- CONNECTION_FAILED = "XRPL_CONNECTION_FAILED",
13
- CONNECTION_TIMEOUT = "XRPL_CONNECTION_TIMEOUT",
14
- DISCONNECTED = "XRPL_DISCONNECTED",
15
- ACCOUNT_NOT_FOUND = "XRPL_ACCOUNT_NOT_FOUND",
16
- INSUFFICIENT_FUNDS = "XRPL_INSUFFICIENT_FUNDS",
17
- ACCOUNT_RESERVE_NOT_MET = "XRPL_ACCOUNT_RESERVE_NOT_MET",
18
- TRANSACTION_FAILED = "XRPL_TRANSACTION_FAILED",
19
- INVALID_TRANSACTION = "XRPL_INVALID_TRANSACTION",
20
- TRANSACTION_TIMEOUT = "XRPL_TRANSACTION_TIMEOUT",
21
- CHANNEL_NOT_FOUND = "XRPL_CHANNEL_NOT_FOUND",
22
- INVALID_CHANNEL_SIGNATURE = "XRPL_INVALID_CHANNEL_SIGNATURE",
23
- CHANNEL_AMOUNT_EXCEEDED = "XRPL_CHANNEL_AMOUNT_EXCEEDED",
24
- UNKNOWN_ERROR = "XRPL_UNKNOWN_ERROR"
25
- }
26
- export declare class XRPLError extends Error {
27
- readonly code: XRPLErrorCode;
28
- readonly originalError?: (Error | unknown) | undefined;
29
- constructor(code: XRPLErrorCode, message: string, originalError?: (Error | unknown) | undefined);
30
- }
31
- export interface IXRPLClient {
32
- connect(): Promise<void>;
33
- disconnect(): Promise<void>;
34
- getAccountInfo(address: string): Promise<{
35
- balance: string;
36
- sequence: number;
37
- ownerCount: number;
38
- }>;
39
- submitAndWait(transaction: Record<string, unknown>): Promise<{
40
- hash: string;
41
- ledgerIndex: number;
42
- result: Record<string, unknown>;
43
- }>;
44
- getLedgerEntry(entryId: string): Promise<LedgerEntryResponse['result']['node']>;
45
- isConnected(): boolean;
46
- submitClaim(channelId: string, amount: string, signature: string, publicKey: string, closeAfterClaim?: boolean): Promise<{
47
- hash: string;
48
- ledgerIndex: number;
49
- result: Record<string, unknown>;
50
- }>;
51
- closeChannel(channelId: string): Promise<{
52
- hash: string;
53
- ledgerIndex: number;
54
- result: Record<string, unknown>;
55
- }>;
56
- cancelChannelClose(channelId: string): Promise<{
57
- hash: string;
58
- ledgerIndex: number;
59
- result: Record<string, unknown>;
60
- }>;
61
- }
62
- export declare class XRPLClient implements IXRPLClient {
63
- private client;
64
- private wallet;
65
- private readonly logger;
66
- private readonly config;
67
- private reconnectAttempts;
68
- private initialized;
69
- constructor(config: XRPLClientConfig, logger: Logger);
70
- private ensureInitialized;
71
- connect(): Promise<void>;
72
- disconnect(): Promise<void>;
73
- getAccountInfo(address: string): Promise<{
74
- balance: string;
75
- sequence: number;
76
- ownerCount: number;
77
- }>;
78
- submitAndWait(transaction: Record<string, unknown>): Promise<{
79
- hash: string;
80
- ledgerIndex: number;
81
- result: Record<string, unknown>;
82
- }>;
83
- getLedgerEntry(entryId: string): Promise<LedgerEntryResponse['result']['node']>;
84
- submitClaim(channelId: string, amount: string, signature: string, publicKey: string, closeAfterClaim?: boolean): Promise<{
85
- hash: string;
86
- ledgerIndex: number;
87
- result: Record<string, unknown>;
88
- }>;
89
- closeChannel(channelId: string): Promise<{
90
- hash: string;
91
- ledgerIndex: number;
92
- result: Record<string, unknown>;
93
- }>;
94
- cancelChannelClose(channelId: string): Promise<{
95
- hash: string;
96
- ledgerIndex: number;
97
- result: Record<string, unknown>;
98
- }>;
99
- isConnected(): boolean;
100
- private handleDisconnect;
101
- private handleError;
102
- private mapError;
103
- }
104
- //# sourceMappingURL=xrpl-client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"xrpl-client.d.ts","sourceRoot":"","sources":["../../src/settlement/xrpl-client.ts"],"names":[],"mappings":"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"}
@@ -1,304 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.XRPLClient = exports.XRPLError = exports.XRPLErrorCode = void 0;
4
- const optional_require_1 = require("../utils/optional-require");
5
- var XRPLErrorCode;
6
- (function (XRPLErrorCode) {
7
- XRPLErrorCode["CONNECTION_FAILED"] = "XRPL_CONNECTION_FAILED";
8
- XRPLErrorCode["CONNECTION_TIMEOUT"] = "XRPL_CONNECTION_TIMEOUT";
9
- XRPLErrorCode["DISCONNECTED"] = "XRPL_DISCONNECTED";
10
- XRPLErrorCode["ACCOUNT_NOT_FOUND"] = "XRPL_ACCOUNT_NOT_FOUND";
11
- XRPLErrorCode["INSUFFICIENT_FUNDS"] = "XRPL_INSUFFICIENT_FUNDS";
12
- XRPLErrorCode["ACCOUNT_RESERVE_NOT_MET"] = "XRPL_ACCOUNT_RESERVE_NOT_MET";
13
- XRPLErrorCode["TRANSACTION_FAILED"] = "XRPL_TRANSACTION_FAILED";
14
- XRPLErrorCode["INVALID_TRANSACTION"] = "XRPL_INVALID_TRANSACTION";
15
- XRPLErrorCode["TRANSACTION_TIMEOUT"] = "XRPL_TRANSACTION_TIMEOUT";
16
- XRPLErrorCode["CHANNEL_NOT_FOUND"] = "XRPL_CHANNEL_NOT_FOUND";
17
- XRPLErrorCode["INVALID_CHANNEL_SIGNATURE"] = "XRPL_INVALID_CHANNEL_SIGNATURE";
18
- XRPLErrorCode["CHANNEL_AMOUNT_EXCEEDED"] = "XRPL_CHANNEL_AMOUNT_EXCEEDED";
19
- XRPLErrorCode["UNKNOWN_ERROR"] = "XRPL_UNKNOWN_ERROR";
20
- })(XRPLErrorCode || (exports.XRPLErrorCode = XRPLErrorCode = {}));
21
- class XRPLError extends Error {
22
- code;
23
- originalError;
24
- constructor(code, message, originalError) {
25
- super(message);
26
- this.code = code;
27
- this.originalError = originalError;
28
- this.name = 'XRPLError';
29
- }
30
- }
31
- exports.XRPLError = XRPLError;
32
- class XRPLClient {
33
- client;
34
- wallet;
35
- logger;
36
- config;
37
- reconnectAttempts = 0;
38
- initialized = false;
39
- constructor(config, logger) {
40
- this.config = config;
41
- this.logger = logger;
42
- }
43
- async ensureInitialized() {
44
- if (this.initialized)
45
- return;
46
- const { Client: XClient, Wallet: XWallet } = await (0, optional_require_1.requireOptional)('xrpl', 'XRP settlement');
47
- this.client = new XClient(this.config.wssUrl, {
48
- timeout: this.config.connectionTimeoutMs ?? 10000,
49
- });
50
- this.wallet = XWallet.fromSeed(this.config.accountSecret);
51
- if (this.wallet.address !== this.config.accountAddress) {
52
- throw new Error(`Account address mismatch: expected ${this.config.accountAddress}, got ${this.wallet.address}`);
53
- }
54
- this.client.on('error', this.handleError.bind(this));
55
- this.client.on('disconnected', this.handleDisconnect.bind(this));
56
- this.initialized = true;
57
- }
58
- async connect() {
59
- try {
60
- await this.ensureInitialized();
61
- this.logger.info({ wssUrl: this.config.wssUrl }, 'Connecting to rippled...');
62
- await this.client.connect();
63
- this.logger.info({ address: this.wallet.address }, 'Connected to rippled');
64
- const accountInfo = await this.getAccountInfo(this.wallet.address);
65
- this.logger.info({ address: this.wallet.address, balance: accountInfo.balance }, 'XRPL account validated');
66
- }
67
- catch (error) {
68
- const errorMessage = error instanceof Error ? error.message : 'Unknown connection error';
69
- this.logger.error({ error, wssUrl: this.config.wssUrl }, 'Failed to connect to rippled');
70
- throw new XRPLError(XRPLErrorCode.CONNECTION_FAILED, `Failed to connect to rippled: ${errorMessage}`, error);
71
- }
72
- }
73
- async disconnect() {
74
- await this.client.disconnect();
75
- this.logger.info('Disconnected from rippled');
76
- }
77
- async getAccountInfo(address) {
78
- try {
79
- const request = {
80
- command: 'account_info',
81
- account: address,
82
- ledger_index: 'validated',
83
- };
84
- const response = (await this.client.request(request));
85
- return {
86
- balance: response.result.account_data.Balance,
87
- sequence: response.result.account_data.Sequence,
88
- ownerCount: response.result.account_data.OwnerCount,
89
- };
90
- }
91
- catch (error) {
92
- if (error &&
93
- typeof error === 'object' &&
94
- 'data' in error &&
95
- typeof error.data === 'object' &&
96
- error.data?.error === 'actNotFound') {
97
- throw new XRPLError(XRPLErrorCode.ACCOUNT_NOT_FOUND, `Account not found: ${address}`, error);
98
- }
99
- throw this.mapError(error);
100
- }
101
- }
102
- async submitAndWait(transaction) {
103
- const maxRetries = 3;
104
- let lastError;
105
- for (let attempt = 1; attempt <= maxRetries; attempt++) {
106
- try {
107
- this.logger.info({ transaction, attempt }, 'Submitting transaction to XRPL...');
108
- if (!this.client.isConnected()) {
109
- this.logger.warn({ attempt }, 'Client not connected, reconnecting...');
110
- await this.connect();
111
- }
112
- const prepared = await this.client.autofill(transaction);
113
- const signed = this.wallet.sign(prepared);
114
- const result = (await this.client.submitAndWait(signed.tx_blob));
115
- this.logger.info({ hash: result.result.hash, ledgerIndex: result.result.ledger_index }, 'Transaction confirmed on XRPL');
116
- return {
117
- hash: result.result.hash,
118
- ledgerIndex: result.result.ledger_index ?? 0,
119
- result: result.result,
120
- };
121
- }
122
- catch (error) {
123
- lastError = error;
124
- const isConnectionError = error &&
125
- typeof error === 'object' &&
126
- 'name' in error &&
127
- error.name === 'NotConnectedError';
128
- if (isConnectionError && attempt < maxRetries) {
129
- this.logger.warn({ attempt, maxRetries, error }, 'Connection lost during transaction, retrying...');
130
- await new Promise((resolve) => setTimeout(resolve, Math.min(1000 * Math.pow(2, attempt - 1), 5000)));
131
- continue;
132
- }
133
- const errorMessage = error instanceof Error ? error.message : 'Transaction failed';
134
- this.logger.error({ error, transaction, attempt }, 'Transaction submission failed');
135
- throw new XRPLError(XRPLErrorCode.TRANSACTION_FAILED, `Transaction failed after ${attempt} attempts: ${errorMessage}`, error);
136
- }
137
- }
138
- throw new XRPLError(XRPLErrorCode.TRANSACTION_FAILED, 'Transaction failed after all retries', lastError);
139
- }
140
- async getLedgerEntry(entryId) {
141
- try {
142
- const request = {
143
- command: 'ledger_entry',
144
- payment_channel: entryId,
145
- ledger_index: 'validated',
146
- };
147
- const response = (await this.client.request(request));
148
- return response.result.node;
149
- }
150
- catch (error) {
151
- if (error &&
152
- typeof error === 'object' &&
153
- 'data' in error &&
154
- typeof error.data === 'object' &&
155
- error.data?.error === 'entryNotFound') {
156
- throw new XRPLError(XRPLErrorCode.CHANNEL_NOT_FOUND, `Payment channel not found: ${entryId}`, error);
157
- }
158
- throw this.mapError(error);
159
- }
160
- }
161
- async submitClaim(channelId, amount, signature, publicKey, closeAfterClaim = false) {
162
- this.logger.info({ channelId, amount, closeAfterClaim }, 'Submitting claim to XRP Ledger...');
163
- if (!channelId || !/^[0-9A-Fa-f]{64}$/.test(channelId)) {
164
- throw new XRPLError(XRPLErrorCode.INVALID_TRANSACTION, 'Invalid channelId: must be 64-character hex string');
165
- }
166
- if (!signature || !/^[0-9A-Fa-f]{128}$/.test(signature)) {
167
- throw new XRPLError(XRPLErrorCode.INVALID_CHANNEL_SIGNATURE, 'Invalid signature: must be 128-character hex string');
168
- }
169
- if (!publicKey || !/^ED[0-9A-Fa-f]{64}$/i.test(publicKey)) {
170
- throw new XRPLError(XRPLErrorCode.INVALID_TRANSACTION, 'Invalid public key: must be 66-character hex with ED prefix');
171
- }
172
- if (!amount || BigInt(amount) <= 0) {
173
- throw new XRPLError(XRPLErrorCode.INVALID_TRANSACTION, 'Invalid amount: must be positive numeric string');
174
- }
175
- this.logger.info({ channelId, amount, signature }, 'Verifying claim signature...');
176
- const { verifyPaymentChannelClaim } = await (0, optional_require_1.requireOptional)('xrpl', 'XRP settlement');
177
- try {
178
- const isValid = verifyPaymentChannelClaim(channelId, amount, signature, publicKey);
179
- if (!isValid) {
180
- throw new XRPLError(XRPLErrorCode.INVALID_CHANNEL_SIGNATURE, 'Claim signature verification failed');
181
- }
182
- this.logger.info({ channelId }, 'Claim signature verified successfully');
183
- }
184
- catch (error) {
185
- if (error instanceof XRPLError) {
186
- throw error;
187
- }
188
- this.logger.error({ error, channelId }, 'Signature verification error');
189
- throw new XRPLError(XRPLErrorCode.INVALID_CHANNEL_SIGNATURE, 'Failed to verify claim signature', error);
190
- }
191
- const flags = closeAfterClaim ? 0x00010000 : 0;
192
- const claimTx = {
193
- TransactionType: 'PaymentChannelClaim',
194
- Account: this.wallet.address,
195
- Channel: channelId,
196
- Amount: amount,
197
- Signature: signature,
198
- PublicKey: publicKey,
199
- Flags: flags,
200
- };
201
- this.logger.info({ transaction: claimTx }, 'Submitting PaymentChannelClaim transaction...');
202
- try {
203
- const result = await this.submitAndWait(claimTx);
204
- this.logger.info({ hash: result.hash, ledgerIndex: result.ledgerIndex }, 'Claim submitted successfully');
205
- return result;
206
- }
207
- catch (error) {
208
- this.logger.error({ error, channelId }, 'Claim submission failed');
209
- throw new XRPLError(XRPLErrorCode.TRANSACTION_FAILED, 'Failed to submit claim to ledger', error);
210
- }
211
- }
212
- async closeChannel(channelId) {
213
- this.logger.info({ channelId }, 'Closing XRP payment channel...');
214
- if (!channelId || !/^[0-9A-Fa-f]{64}$/.test(channelId)) {
215
- throw new XRPLError(XRPLErrorCode.INVALID_TRANSACTION, 'Invalid channelId: must be 64-character hex string');
216
- }
217
- const closeTx = {
218
- TransactionType: 'PaymentChannelClaim',
219
- Account: this.wallet.address,
220
- Channel: channelId,
221
- Flags: 0x00010000,
222
- };
223
- this.logger.info({ transaction: closeTx }, 'Submitting channel close transaction...');
224
- try {
225
- const result = await this.submitAndWait(closeTx);
226
- this.logger.info({ hash: result.hash, ledgerIndex: result.ledgerIndex }, 'Channel closure initiated successfully');
227
- return result;
228
- }
229
- catch (error) {
230
- this.logger.error({ error, channelId }, 'Channel closure failed');
231
- throw new XRPLError(XRPLErrorCode.TRANSACTION_FAILED, 'Failed to close channel', error);
232
- }
233
- }
234
- async cancelChannelClose(channelId) {
235
- this.logger.info({ channelId }, 'Cancelling channel closure...');
236
- if (!channelId || !/^[0-9A-Fa-f]{64}$/.test(channelId)) {
237
- throw new XRPLError(XRPLErrorCode.INVALID_TRANSACTION, 'Invalid channelId: must be 64-character hex string');
238
- }
239
- const cancelTx = {
240
- TransactionType: 'PaymentChannelClaim',
241
- Account: this.wallet.address,
242
- Channel: channelId,
243
- Flags: 0x00020000,
244
- };
245
- this.logger.info({ transaction: cancelTx }, 'Submitting cancel close transaction...');
246
- try {
247
- const result = await this.submitAndWait(cancelTx);
248
- this.logger.info({ hash: result.hash, ledgerIndex: result.ledgerIndex }, 'Channel closure cancelled successfully');
249
- return result;
250
- }
251
- catch (error) {
252
- this.logger.error({ error, channelId }, 'Cancel close failed');
253
- throw new XRPLError(XRPLErrorCode.TRANSACTION_FAILED, 'Failed to cancel channel closure', error);
254
- }
255
- }
256
- isConnected() {
257
- return this.client.isConnected();
258
- }
259
- async handleDisconnect() {
260
- if (this.config.autoReconnect === false) {
261
- this.logger.warn('Disconnected from rippled (auto-reconnect disabled)');
262
- return;
263
- }
264
- if (this.reconnectAttempts >= (this.config.maxReconnectAttempts ?? 5)) {
265
- this.logger.error('Max reconnection attempts reached, giving up');
266
- return;
267
- }
268
- this.reconnectAttempts++;
269
- const backoffMs = Math.min(1000 * Math.pow(2, this.reconnectAttempts), 30000);
270
- this.logger.warn({ attempt: this.reconnectAttempts, backoffMs }, 'Disconnected from rippled, reconnecting...');
271
- await new Promise((resolve) => setTimeout(resolve, backoffMs));
272
- try {
273
- await this.connect();
274
- this.reconnectAttempts = 0;
275
- }
276
- catch (error) {
277
- this.logger.error({ error, attempt: this.reconnectAttempts }, 'Reconnection failed');
278
- }
279
- }
280
- handleError(error) {
281
- this.logger.error({ error }, 'XRPL WebSocket error');
282
- }
283
- mapError(error) {
284
- if (!error || typeof error !== 'object') {
285
- return new XRPLError(XRPLErrorCode.UNKNOWN_ERROR, 'Unknown error occurred', error);
286
- }
287
- const errorObj = error;
288
- const errorCode = errorObj.data?.error;
289
- const errorMessage = errorObj.message ?? 'Unknown error';
290
- switch (errorCode) {
291
- case 'actNotFound':
292
- return new XRPLError(XRPLErrorCode.ACCOUNT_NOT_FOUND, errorMessage, error);
293
- case 'tecUNFUNDED_PAYMENT':
294
- case 'tecINSUFFICIENT_RESERVE':
295
- return new XRPLError(XRPLErrorCode.INSUFFICIENT_FUNDS, errorMessage, error);
296
- case 'entryNotFound':
297
- return new XRPLError(XRPLErrorCode.CHANNEL_NOT_FOUND, errorMessage, error);
298
- default:
299
- return new XRPLError(XRPLErrorCode.UNKNOWN_ERROR, errorMessage, error);
300
- }
301
- }
302
- }
303
- exports.XRPLClient = XRPLClient;
304
- //# sourceMappingURL=xrpl-client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"xrpl-client.js","sourceRoot":"","sources":["../../src/settlement/xrpl-client.ts"],"names":[],"mappings":"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"}
@@ -1,58 +0,0 @@
1
- export type NetworkMode = 'testnet' | 'local';
2
- export declare const TESTNET_URLS: {
3
- aptos: {
4
- nodeUrl: string;
5
- faucetUrl: string;
6
- };
7
- xrp: {
8
- wssUrl: string;
9
- rpcUrl: string;
10
- faucetUrl: string;
11
- };
12
- evm: {
13
- rpcUrl: string;
14
- chainId: number;
15
- };
16
- };
17
- export declare const LOCAL_URLS: {
18
- aptos: {
19
- nodeUrl: string;
20
- faucetUrl: string;
21
- };
22
- xrp: {
23
- wssUrl: string;
24
- rpcUrl: string;
25
- };
26
- evm: {
27
- rpcUrl: string;
28
- chainId: number;
29
- };
30
- };
31
- export declare const TIMEOUTS: {
32
- local: {
33
- faucetWait: number;
34
- transactionWait: number;
35
- healthCheck: number;
36
- httpRequest: number;
37
- };
38
- testnet: {
39
- faucetWait: number;
40
- transactionWait: number;
41
- healthCheck: number;
42
- httpRequest: number;
43
- };
44
- };
45
- export interface ChainUrls {
46
- aptosNodeUrl: string;
47
- aptosFaucetUrl: string;
48
- xrpWssUrl: string;
49
- xrpRpcUrl: string;
50
- xrpFaucetUrl: string | null;
51
- evmRpcUrl: string;
52
- evmChainId: number;
53
- }
54
- export declare function getChainUrls(networkMode: NetworkMode, isDocker: boolean): ChainUrls;
55
- export type TimeoutConfig = typeof TIMEOUTS.local;
56
- export declare function getTimeouts(networkMode: NetworkMode): TimeoutConfig;
57
- export declare function parseNetworkMode(): NetworkMode;
58
- //# sourceMappingURL=testnet-config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"testnet-config.d.ts","sourceRoot":"","sources":["../../src/test/testnet-config.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,OAAO,CAAC;AAK9C,eAAO,MAAM,YAAY;;;;;;;;;;;;;;CAcxB,CAAC;AAKF,eAAO,MAAM,UAAU;;;;;;;;;;;;;CAatB,CAAC;AAMF,eAAO,MAAM,QAAQ;;;;;;;;;;;;;CAapB,CAAC;AAKF,MAAM,WAAW,SAAS;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAaD,wBAAgB,YAAY,CAAC,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,GAAG,SAAS,CA+BnF;AAKD,MAAM,MAAM,aAAa,GAAG,OAAO,QAAQ,CAAC,KAAK,CAAC;AAKlD,wBAAgB,WAAW,CAAC,WAAW,EAAE,WAAW,GAAG,aAAa,CAEnE;AAMD,wBAAgB,gBAAgB,IAAI,WAAW,CAM9C"}