@hyperlane-xyz/rebalancer 3.2.0 → 25.5.0

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 (39) hide show
  1. package/dist/bridges/LiFiBridge.d.ts +12 -2
  2. package/dist/bridges/LiFiBridge.d.ts.map +1 -1
  3. package/dist/bridges/LiFiBridge.js +36 -1
  4. package/dist/bridges/LiFiBridge.js.map +1 -1
  5. package/dist/bridges/LiFiBridge.test.d.ts +2 -0
  6. package/dist/bridges/LiFiBridge.test.d.ts.map +1 -0
  7. package/dist/bridges/LiFiBridge.test.js +412 -0
  8. package/dist/bridges/LiFiBridge.test.js.map +1 -0
  9. package/dist/config/types.d.ts +1 -0
  10. package/dist/config/types.d.ts.map +1 -1
  11. package/dist/config/types.js +1 -0
  12. package/dist/config/types.js.map +1 -1
  13. package/dist/e2e/harness/MockExternalBridge.d.ts.map +1 -1
  14. package/dist/e2e/harness/MockExternalBridge.js +20 -0
  15. package/dist/e2e/harness/MockExternalBridge.js.map +1 -1
  16. package/dist/interfaces/IExternalBridge.d.ts +3 -2
  17. package/dist/interfaces/IExternalBridge.d.ts.map +1 -1
  18. package/dist/service.js +0 -0
  19. package/dist/test/lifiMocks.d.ts +1 -0
  20. package/dist/test/lifiMocks.d.ts.map +1 -1
  21. package/dist/test/lifiMocks.js +36 -6
  22. package/dist/test/lifiMocks.js.map +1 -1
  23. package/dist/tracking/ActionTracker.d.ts.map +1 -1
  24. package/dist/tracking/ActionTracker.js +44 -4
  25. package/dist/tracking/ActionTracker.js.map +1 -1
  26. package/dist/tracking/ActionTracker.test.js +284 -1
  27. package/dist/tracking/ActionTracker.test.js.map +1 -1
  28. package/dist/tracking/types.d.ts +3 -0
  29. package/dist/tracking/types.d.ts.map +1 -1
  30. package/package.json +7 -10
  31. package/src/bridges/LiFiBridge.test.ts +510 -0
  32. package/src/bridges/LiFiBridge.ts +84 -48
  33. package/src/config/types.ts +2 -0
  34. package/src/e2e/harness/MockExternalBridge.ts +32 -0
  35. package/src/interfaces/IExternalBridge.ts +3 -2
  36. package/src/test/lifiMocks.ts +43 -6
  37. package/src/tracking/ActionTracker.test.ts +336 -1
  38. package/src/tracking/ActionTracker.ts +53 -4
  39. package/src/tracking/types.ts +3 -0
@@ -1,3 +1,4 @@
1
+ import { type LiFiStep } from '@lifi/sdk';
1
2
  import type { Logger } from 'pino';
2
3
  import type { BridgeQuote, BridgeQuoteParams, BridgeTransferResult, BridgeTransferStatus, ExternalBridgeConfig, IExternalBridge } from '../interfaces/IExternalBridge.js';
3
4
  /**
@@ -33,7 +34,7 @@ export declare class LiFiBridge implements IExternalBridge {
33
34
  *
34
35
  * Returns route data ready for execution.
35
36
  */
36
- quote(params: BridgeQuoteParams): Promise<BridgeQuote>;
37
+ quote(params: BridgeQuoteParams): Promise<BridgeQuote<LiFiStep>>;
37
38
  /**
38
39
  * Get a quote by specifying the amount to send (standard quote).
39
40
  * Uses the LiFi SDK.
@@ -57,7 +58,16 @@ export declare class LiFiBridge implements IExternalBridge {
57
58
  * @param quote - Quote obtained from quote()
58
59
  * @param privateKey - Private key hex string (0x-prefixed) for signing the transaction
59
60
  */
60
- execute(quote: BridgeQuote, privateKey: string): Promise<BridgeTransferResult>;
61
+ execute(quote: BridgeQuote<LiFiStep>, privateKey: string): Promise<BridgeTransferResult>;
62
+ /**
63
+ * Validate that the route returned by LiFi matches the original request parameters.
64
+ * Prevents execution against wrong chains, tokens, or recipients if the bridge API
65
+ * returns a route that diverges from what was originally requested.
66
+ *
67
+ * TODO: Layer 2 validation — validate transaction calldata in route.steps[].transactionRequest
68
+ * and route.steps[0].estimate.approvalAddress against a known whitelist.
69
+ */
70
+ private validateRouteAgainstRequest;
61
71
  /**
62
72
  * Get the status of a bridge transfer.
63
73
  * Uses SDK's built-in status tracking.
@@ -1 +1 @@
1
- {"version":3,"file":"LiFiBridge.d.ts","sourceRoot":"","sources":["../../src/bridges/LiFiBridge.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAKnC,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,EAChB,MAAM,kCAAkC,CAAC;AA8E1C;;;;;;;;;;GAUG;AACH,qBAAa,UAAW,YAAW,eAAe;IAChD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CACG;IAE/C,QAAQ,CAAC,gBAAgB,UAAU;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuB;gBAElC,MAAM,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM;IAKxD,qBAAqB,IAAI,MAAM;IAI/B,OAAO,CAAC,UAAU;IAelB;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAU3B;;;;;;;OAOG;IACG,KAAK,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC;IAqB5D;;;OAGG;YACW,qBAAqB;IAiDnC;;;OAGG;YACW,sBAAsB;IAoEpC;;;;OAIG;IACH,OAAO,CAAC,YAAY;IA2BpB;;;;;;OAMG;IACG,OAAO,CACX,KAAK,EAAE,WAAW,EAClB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,oBAAoB,CAAC;IA8HhC;;;OAGG;IACG,SAAS,CACb,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,oBAAoB,CAAC;CAiDjC"}
1
+ {"version":3,"file":"LiFiBridge.d.ts","sourceRoot":"","sources":["../../src/bridges/LiFiBridge.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EASd,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAMnC,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,EAChB,MAAM,kCAAkC,CAAC;AA2C1C;;;;;;;;;;GAUG;AACH,qBAAa,UAAW,YAAW,eAAe;IAChD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CACG;IAE/C,QAAQ,CAAC,gBAAgB,UAAU;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuB;gBAElC,MAAM,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM;IAKxD,qBAAqB,IAAI,MAAM;IAI/B,OAAO,CAAC,UAAU;IAelB;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAU3B;;;;;;;OAOG;IACG,KAAK,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IA8BtE;;;OAGG;YACW,qBAAqB;IAgDnC;;;OAGG;YACW,sBAAsB;IAqEpC;;;;OAIG;IACH,OAAO,CAAC,YAAY;IA2BpB;;;;;;OAMG;IACG,OAAO,CACX,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,EAC5B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,oBAAoB,CAAC;IA8HhC;;;;;;;OAOG;IACH,OAAO,CAAC,2BAA2B;IAmDnC;;;OAGG;IACG,SAAS,CACb,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,oBAAoB,CAAC;CAiDjC"}
@@ -2,6 +2,7 @@ import { EVM, convertQuoteToRoute, createConfig, executeRoute, getQuote, getStat
2
2
  import { createWalletClient, http } from 'viem';
3
3
  import { privateKeyToAccount } from 'viem/accounts';
4
4
  import { arbitrum, base, mainnet, optimism } from 'viem/chains';
5
+ import { assert } from '@hyperlane-xyz/utils';
5
6
  /**
6
7
  * LiFi API base URL for REST endpoints.
7
8
  * The SDK doesn't support toAmount quotes, so we use REST API directly.
@@ -51,7 +52,7 @@ function getViemChain(chainId, rpcUrl) {
51
52
  * @see https://docs.li.fi/integrate-li.fi-sdk
52
53
  */
53
54
  export class LiFiBridge {
54
- static NATIVE_TOKEN_ADDRESS = '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE';
55
+ static NATIVE_TOKEN_ADDRESS = '0x0000000000000000000000000000000000000000';
55
56
  externalBridgeId = 'lifi';
56
57
  logger;
57
58
  initialized = false;
@@ -104,6 +105,8 @@ export class LiFiBridge {
104
105
  if (params.fromAmount === undefined && params.toAmount === undefined) {
105
106
  throw new Error('Must specify either fromAmount or toAmount');
106
107
  }
108
+ assert(params.fromAmount === undefined || params.fromAmount > 0n, 'fromAmount must be positive');
109
+ assert(params.toAmount === undefined || params.toAmount > 0n, 'toAmount must be positive');
107
110
  // Dispatch to appropriate quote method
108
111
  if (params.toAmount !== undefined) {
109
112
  return this.quoteByReceivingAmount(params);
@@ -151,6 +154,7 @@ export class LiFiBridge {
151
154
  gasCosts,
152
155
  feeCosts,
153
156
  route: quote, // Store full quote for conversion to route
157
+ requestParams: { ...params },
154
158
  };
155
159
  }
156
160
  /**
@@ -205,6 +209,7 @@ export class LiFiBridge {
205
209
  gasCosts,
206
210
  feeCosts,
207
211
  route: quote, // Store full quote for conversion to route
212
+ requestParams: { ...params },
208
213
  };
209
214
  }
210
215
  /**
@@ -243,6 +248,7 @@ export class LiFiBridge {
243
248
  this.initialize();
244
249
  // Convert quote to route for execution
245
250
  const route = convertQuoteToRoute(quote.route);
251
+ this.validateRouteAgainstRequest(route, quote.requestParams);
246
252
  const fromChain = route.fromChainId;
247
253
  const toChain = route.toChainId;
248
254
  this.logger.info({
@@ -335,6 +341,35 @@ export class LiFiBridge {
335
341
  transferId,
336
342
  };
337
343
  }
344
+ /**
345
+ * Validate that the route returned by LiFi matches the original request parameters.
346
+ * Prevents execution against wrong chains, tokens, or recipients if the bridge API
347
+ * returns a route that diverges from what was originally requested.
348
+ *
349
+ * TODO: Layer 2 validation — validate transaction calldata in route.steps[].transactionRequest
350
+ * and route.steps[0].estimate.approvalAddress against a known whitelist.
351
+ */
352
+ validateRouteAgainstRequest(route, requestParams) {
353
+ assert(route.fromChainId === requestParams.fromChain, `Route fromChainId ${route.fromChainId} does not match requested ${requestParams.fromChain}`);
354
+ assert(route.toChainId === requestParams.toChain, `Route toChainId ${route.toChainId} does not match requested ${requestParams.toChain}`);
355
+ assert(route.fromToken.address.toLowerCase() ===
356
+ requestParams.fromToken.toLowerCase(), `Route fromToken ${route.fromToken.address} does not match requested ${requestParams.fromToken}`);
357
+ assert(route.toToken.address.toLowerCase() ===
358
+ requestParams.toToken.toLowerCase(), `Route toToken ${route.toToken.address} does not match requested ${requestParams.toToken}`);
359
+ const expectedToAddress = (requestParams.toAddress ?? requestParams.fromAddress).toLowerCase();
360
+ assert(route.toAddress?.toLowerCase() === expectedToAddress, `Route toAddress ${route.toAddress} does not match requested ${expectedToAddress}`);
361
+ assert(route.fromAddress?.toLowerCase() ===
362
+ requestParams.fromAddress.toLowerCase(), `Route fromAddress ${route.fromAddress} does not match requested ${requestParams.fromAddress}`);
363
+ const routeFromAmount = BigInt(route.fromAmount);
364
+ if (requestParams.fromAmount !== undefined) {
365
+ assert(routeFromAmount === requestParams.fromAmount, `Route fromAmount ${route.fromAmount} does not match requested ${requestParams.fromAmount}`);
366
+ }
367
+ if (requestParams.toAmount !== undefined) {
368
+ const routeToAmount = BigInt(route.toAmount);
369
+ assert(routeToAmount >= requestParams.toAmount, `Route toAmount ${route.toAmount} is less than requested ${requestParams.toAmount}`);
370
+ }
371
+ assert(routeFromAmount > 0n, 'Route fromAmount must be positive');
372
+ }
338
373
  /**
339
374
  * Get the status of a bridge transfer.
340
375
  * Uses SDK's built-in status tracking.
@@ -1 +1 @@
1
- {"version":3,"file":"LiFiBridge.js","sourceRoot":"","sources":["../../src/bridges/LiFiBridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LiFiBridge.js","sourceRoot":"","sources":["../../src/bridges/LiFiBridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=LiFiBridge.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LiFiBridge.test.d.ts","sourceRoot":"","sources":["../../src/bridges/LiFiBridge.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,412 @@
1
+ import { expect } from 'chai';
2
+ import { pino } from 'pino';
3
+ import { LiFiBridge } from './LiFiBridge.js';
4
+ const testLogger = pino({ level: 'silent' });
5
+ const TEST_PRIVATE_KEY = '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80';
6
+ const BRIDGE_CONFIG = {
7
+ integrator: 'test-rebalancer',
8
+ };
9
+ // Use all-digit hex addresses to avoid EIP-55 checksum case mutations
10
+ const TOKEN_ADDR = '0x1234567890123456789012345678901234567890';
11
+ const SENDER_ADDR = '0x9876543210987654321098765432109876543210';
12
+ const BAD_ADDR = '0x1111111111111111111111111111111111111111';
13
+ /**
14
+ * Creates a LiFiStep object that convertQuoteToRoute can consume.
15
+ * The SDK's convertQuoteToRoute reads action.fromToken.chainId, action.toToken.chainId, etc.
16
+ */
17
+ function createLiFiStep(overrides) {
18
+ const fromChainId = overrides?.fromChainId ?? 42161;
19
+ const toChainId = overrides?.toChainId ?? 1399811149;
20
+ const fromTokenAddress = overrides?.fromTokenAddress ?? TOKEN_ADDR;
21
+ const toTokenAddress = overrides?.toTokenAddress ?? TOKEN_ADDR;
22
+ const fromAmount = overrides?.fromAmount ?? '10000000000';
23
+ const fromAddress = overrides?.fromAddress ?? SENDER_ADDR;
24
+ const toAddress = overrides?.toAddress ?? SENDER_ADDR;
25
+ return {
26
+ id: 'quote-123',
27
+ type: 'lifi',
28
+ tool: 'across',
29
+ toolDetails: { key: 'across', name: 'Across', logoURI: '' },
30
+ includedSteps: [],
31
+ action: {
32
+ fromToken: {
33
+ chainId: fromChainId,
34
+ address: fromTokenAddress,
35
+ symbol: 'USDC',
36
+ decimals: 6,
37
+ name: 'USD Coin',
38
+ priceUSD: '1',
39
+ },
40
+ toToken: {
41
+ chainId: toChainId,
42
+ address: toTokenAddress,
43
+ symbol: 'USDC',
44
+ decimals: 6,
45
+ name: 'USD Coin',
46
+ priceUSD: '1',
47
+ },
48
+ fromAmount,
49
+ fromAddress,
50
+ toAddress,
51
+ fromChainId,
52
+ toChainId,
53
+ slippage: 0.005,
54
+ },
55
+ estimate: {
56
+ tool: 'across',
57
+ fromAmount,
58
+ fromAmountUSD: '10000',
59
+ toAmount: overrides?.toAmount ?? '9950000000',
60
+ toAmountMin: '9900000000',
61
+ toAmountUSD: '9950',
62
+ approvalAddress: '0x0000000000000000000000000000000000000000',
63
+ executionDuration: 300,
64
+ gasCosts: [
65
+ {
66
+ type: 'SEND',
67
+ price: '50',
68
+ estimate: '21000',
69
+ limit: '26250',
70
+ amount: '50000000',
71
+ amountUSD: '5',
72
+ token: {
73
+ chainId: fromChainId,
74
+ address: '0x0000000000000000000000000000000000000000',
75
+ symbol: 'ETH',
76
+ decimals: 18,
77
+ name: 'Ethereum',
78
+ priceUSD: '3000',
79
+ },
80
+ },
81
+ ],
82
+ },
83
+ };
84
+ }
85
+ /**
86
+ * Creates a BridgeQuote with matching requestParams for the default LiFi step.
87
+ */
88
+ function createTestQuote(routeOverrides, paramOverrides) {
89
+ const lifiStep = createLiFiStep(routeOverrides);
90
+ const defaultParams = {
91
+ fromChain: 42161,
92
+ toChain: 1399811149,
93
+ fromToken: TOKEN_ADDR,
94
+ toToken: TOKEN_ADDR,
95
+ fromAddress: SENDER_ADDR,
96
+ toAddress: SENDER_ADDR,
97
+ fromAmount: 10000000000n,
98
+ };
99
+ return {
100
+ id: 'quote-123',
101
+ tool: 'across',
102
+ fromAmount: 10000000000n,
103
+ toAmount: 9950000000n,
104
+ toAmountMin: 9900000000n,
105
+ executionDuration: 300,
106
+ gasCosts: 50000000n,
107
+ feeCosts: 0n,
108
+ route: lifiStep,
109
+ requestParams: { ...defaultParams, ...paramOverrides },
110
+ };
111
+ }
112
+ /**
113
+ * Validation regex patterns used by LiFiBridge.execute() assertion messages.
114
+ * If an error message matches any of these, it came from route validation.
115
+ */
116
+ const VALIDATION_PATTERNS = [
117
+ /Route fromChainId .* does not match requested/,
118
+ /Route toChainId .* does not match requested/,
119
+ /Route fromToken .* does not match requested/,
120
+ /Route toToken .* does not match requested/,
121
+ /Route toAddress .* does not match requested/,
122
+ /Route fromAddress .* does not match requested/,
123
+ /Route fromAmount .* does not match requested/,
124
+ /Route toAmount .* is less than requested/,
125
+ /Route fromAmount must be positive/,
126
+ ];
127
+ function isValidationError(msg) {
128
+ return VALIDATION_PATTERNS.some((pattern) => pattern.test(msg));
129
+ }
130
+ describe('LiFiBridge.execute() route validation', function () {
131
+ // Allow extra time for tests that pass validation and reach SDK execution
132
+ this.timeout(15000);
133
+ let bridge;
134
+ beforeEach(() => {
135
+ bridge = new LiFiBridge(BRIDGE_CONFIG, testLogger);
136
+ });
137
+ it('should pass validation when all route fields match requestParams', async () => {
138
+ const quote = createTestQuote();
139
+ try {
140
+ await bridge.execute(quote, TEST_PRIVATE_KEY);
141
+ // If it resolves, validation definitely passed
142
+ }
143
+ catch (error) {
144
+ const msg = error.message;
145
+ // Post-validation error (SDK/RPC). Verify it is NOT a route validation error.
146
+ expect(isValidationError(msg), `Expected non-validation error but got: ${msg}`).to.equal(false);
147
+ }
148
+ });
149
+ it('should throw when route fromChainId does not match requested', async () => {
150
+ const quote = createTestQuote({ fromChainId: 999 }, { fromChain: 42161 });
151
+ try {
152
+ await bridge.execute(quote, TEST_PRIVATE_KEY);
153
+ expect.fail('Expected execute to throw');
154
+ }
155
+ catch (error) {
156
+ const msg = error.message;
157
+ expect(msg).to.include('999');
158
+ expect(msg).to.include('42161');
159
+ expect(msg).to.include('fromChainId');
160
+ }
161
+ });
162
+ it('should throw when route toChainId does not match requested', async () => {
163
+ const quote = createTestQuote({ toChainId: 888 }, { toChain: 1399811149 });
164
+ try {
165
+ await bridge.execute(quote, TEST_PRIVATE_KEY);
166
+ expect.fail('Expected execute to throw');
167
+ }
168
+ catch (error) {
169
+ const msg = error.message;
170
+ expect(msg).to.include('888');
171
+ expect(msg).to.include('1399811149');
172
+ expect(msg).to.include('toChainId');
173
+ }
174
+ });
175
+ it('should throw when route fromToken does not match requested', async () => {
176
+ const quote = createTestQuote({ fromTokenAddress: BAD_ADDR }, { fromToken: TOKEN_ADDR });
177
+ try {
178
+ await bridge.execute(quote, TEST_PRIVATE_KEY);
179
+ expect.fail('Expected execute to throw');
180
+ }
181
+ catch (error) {
182
+ const msg = error.message;
183
+ expect(msg).to.include('fromToken');
184
+ // Error message should contain the mismatched address value
185
+ expect(msg.toLowerCase()).to.include(BAD_ADDR.toLowerCase());
186
+ }
187
+ });
188
+ it('should throw when route toToken does not match requested', async () => {
189
+ const quote = createTestQuote({ toTokenAddress: BAD_ADDR }, { toToken: TOKEN_ADDR });
190
+ try {
191
+ await bridge.execute(quote, TEST_PRIVATE_KEY);
192
+ expect.fail('Expected execute to throw');
193
+ }
194
+ catch (error) {
195
+ const msg = error.message;
196
+ expect(msg).to.include('toToken');
197
+ expect(msg.toLowerCase()).to.include(BAD_ADDR.toLowerCase());
198
+ }
199
+ });
200
+ it('should throw when route toAddress does not match requested', async () => {
201
+ const quote = createTestQuote({ toAddress: BAD_ADDR }, { toAddress: SENDER_ADDR });
202
+ try {
203
+ await bridge.execute(quote, TEST_PRIVATE_KEY);
204
+ expect.fail('Expected execute to throw');
205
+ }
206
+ catch (error) {
207
+ const msg = error.message;
208
+ expect(msg).to.include('toAddress');
209
+ }
210
+ });
211
+ it('should throw when route fromAddress does not match requested', async () => {
212
+ const quote = createTestQuote({ fromAddress: BAD_ADDR }, { fromAddress: SENDER_ADDR });
213
+ try {
214
+ await bridge.execute(quote, TEST_PRIVATE_KEY);
215
+ expect.fail('Expected execute to throw');
216
+ }
217
+ catch (error) {
218
+ const msg = error.message;
219
+ expect(msg).to.include('fromAddress');
220
+ }
221
+ });
222
+ it('should pass validation when fromAmount is omitted in requestParams', async () => {
223
+ // Route has fromAmount='99999' but requestParams has no fromAmount.
224
+ // The fromAmount assertion is skipped when requestParams.fromAmount is undefined.
225
+ // The positive amount check still passes (99999 > 0).
226
+ const quote = createTestQuote({ fromAmount: '99999' }, { fromAmount: undefined });
227
+ try {
228
+ await bridge.execute(quote, TEST_PRIVATE_KEY);
229
+ }
230
+ catch (error) {
231
+ const msg = error.message;
232
+ expect(isValidationError(msg), `Expected non-validation error but got: ${msg}`).to.equal(false);
233
+ }
234
+ });
235
+ it('should throw when route fromAmount does not match requested', async () => {
236
+ const quote = createTestQuote({ fromAmount: '9999999999' }, { fromAmount: 10000000000n });
237
+ try {
238
+ await bridge.execute(quote, TEST_PRIVATE_KEY);
239
+ expect.fail('Expected execute to throw');
240
+ }
241
+ catch (error) {
242
+ const msg = error.message;
243
+ expect(msg).to.include('9999999999');
244
+ expect(msg).to.include('10000000000');
245
+ expect(msg).to.include('fromAmount');
246
+ }
247
+ });
248
+ it('should throw when route fromAmount is zero', async () => {
249
+ // fromAmount=0n is falsy, so the mismatch assertion is skipped.
250
+ // But the positive amount check catches it.
251
+ const quote = createTestQuote({ fromAmount: '0' }, { fromAmount: undefined });
252
+ try {
253
+ await bridge.execute(quote, TEST_PRIVATE_KEY);
254
+ expect.fail('Expected execute to throw');
255
+ }
256
+ catch (error) {
257
+ const msg = error.message;
258
+ expect(msg).to.include('must be positive');
259
+ }
260
+ });
261
+ it('should match addresses case-insensitively (mixed vs uppercase)', async () => {
262
+ // Route uses lowercase a-f, requestParams uses uppercase A-F
263
+ // Both should match after toLowerCase()
264
+ const mixedCaseToken = '0xaabb000000000000000000000000000000001122';
265
+ const upperCaseToken = '0xAABB000000000000000000000000000000001122';
266
+ const mixedCaseSender = '0xddee000000000000000000000000000000003344';
267
+ const upperCaseSender = '0xDDEE000000000000000000000000000000003344';
268
+ const quote = createTestQuote({
269
+ fromTokenAddress: mixedCaseToken,
270
+ toTokenAddress: mixedCaseToken,
271
+ fromAddress: mixedCaseSender,
272
+ toAddress: mixedCaseSender,
273
+ }, {
274
+ fromToken: upperCaseToken,
275
+ toToken: upperCaseToken,
276
+ fromAddress: upperCaseSender,
277
+ toAddress: upperCaseSender,
278
+ });
279
+ try {
280
+ await bridge.execute(quote, TEST_PRIVATE_KEY);
281
+ }
282
+ catch (error) {
283
+ const msg = error.message;
284
+ expect(isValidationError(msg), `Expected non-validation error but got: ${msg}`).to.equal(false);
285
+ }
286
+ });
287
+ it('should throw when requestParams.fromAmount is 0n and route has positive amount', async () => {
288
+ // Validates the fix for the fromAmount=0n truthiness bypass:
289
+ // 0n was falsy so `if (requestParams.fromAmount)` would skip the comparison.
290
+ // With `!== undefined`, a 0n request is correctly compared against the route amount.
291
+ const quote = createTestQuote({ fromAmount: '1' }, { fromAmount: 0n });
292
+ try {
293
+ await bridge.execute(quote, TEST_PRIVATE_KEY);
294
+ expect.fail('Expected execute to throw');
295
+ }
296
+ catch (error) {
297
+ const msg = error.message;
298
+ expect(msg).to.include('fromAmount');
299
+ }
300
+ });
301
+ it('should pass validation for toAmount quote path (fromAmount undefined, toAmount present)', async () => {
302
+ // Tests reverse-quote pattern where toAmount is set and fromAmount is undefined.
303
+ // The fromAmount equality check is skipped when requestParams.fromAmount is undefined.
304
+ // The toAmount equality check passes because route.toAmount matches requestParams.toAmount.
305
+ const quote = createTestQuote({ fromAmount: '5000000000', toAmount: '5000000000' }, { fromAmount: undefined, toAmount: 5000000000n });
306
+ try {
307
+ await bridge.execute(quote, TEST_PRIVATE_KEY);
308
+ }
309
+ catch (error) {
310
+ const msg = error.message;
311
+ expect(isValidationError(msg), `Expected non-validation error but got: ${msg}`).to.equal(false);
312
+ }
313
+ });
314
+ it('should throw when route toAmount is less than requested for reverse quote', async () => {
315
+ // Route estimate.toAmount='100' but requestParams.toAmount=123n -> 100 < 123, should throw
316
+ const quote = createTestQuote({ toAmount: '100' }, { fromAmount: undefined, toAmount: 123n });
317
+ try {
318
+ await bridge.execute(quote, TEST_PRIVATE_KEY);
319
+ expect.fail('Expected execute to throw');
320
+ }
321
+ catch (error) {
322
+ const msg = error.message;
323
+ expect(msg).to.include('toAmount');
324
+ expect(msg).to.include('100');
325
+ expect(msg).to.include('123');
326
+ expect(msg).to.include('is less than');
327
+ }
328
+ });
329
+ it('should pass validation when route toAmount exceeds requested (reverse quote)', async () => {
330
+ // paulbalaji reproduction: requested 1000000, LiFi returned 1000002.
331
+ // >= semantics: 1000002 >= 1000000 passes validation.
332
+ const quote = createTestQuote({ toAmount: '1000002' }, { fromAmount: undefined, toAmount: 1000000n });
333
+ try {
334
+ await bridge.execute(quote, TEST_PRIVATE_KEY);
335
+ }
336
+ catch (error) {
337
+ const msg = error.message;
338
+ expect(isValidationError(msg), `Expected non-validation error but got: ${msg}`).to.equal(false);
339
+ }
340
+ });
341
+ });
342
+ describe('LiFiBridge.quote() input validation', function () {
343
+ let bridge;
344
+ beforeEach(() => {
345
+ bridge = new LiFiBridge(BRIDGE_CONFIG, testLogger);
346
+ });
347
+ it('should throw when fromAmount is 0n', async () => {
348
+ try {
349
+ await bridge.quote({
350
+ fromChain: 42161,
351
+ toChain: 1399811149,
352
+ fromToken: TOKEN_ADDR,
353
+ toToken: TOKEN_ADDR,
354
+ fromAddress: SENDER_ADDR,
355
+ fromAmount: 0n,
356
+ });
357
+ expect.fail('Expected quote to throw');
358
+ }
359
+ catch (error) {
360
+ expect(error.message).to.include('fromAmount must be positive');
361
+ }
362
+ });
363
+ it('should throw when toAmount is 0n', async () => {
364
+ try {
365
+ await bridge.quote({
366
+ fromChain: 42161,
367
+ toChain: 1399811149,
368
+ fromToken: TOKEN_ADDR,
369
+ toToken: TOKEN_ADDR,
370
+ fromAddress: SENDER_ADDR,
371
+ toAmount: 0n,
372
+ });
373
+ expect.fail('Expected quote to throw');
374
+ }
375
+ catch (error) {
376
+ expect(error.message).to.include('toAmount must be positive');
377
+ }
378
+ });
379
+ it('should throw when both fromAmount and toAmount are provided', async () => {
380
+ try {
381
+ await bridge.quote({
382
+ fromChain: 42161,
383
+ toChain: 1399811149,
384
+ fromToken: TOKEN_ADDR,
385
+ toToken: TOKEN_ADDR,
386
+ fromAddress: SENDER_ADDR,
387
+ fromAmount: 10000000000n,
388
+ toAmount: 5000000000n,
389
+ });
390
+ expect.fail('Expected quote to throw');
391
+ }
392
+ catch (error) {
393
+ expect(error.message).to.include('Cannot specify both');
394
+ }
395
+ });
396
+ it('should throw when neither fromAmount nor toAmount is provided', async () => {
397
+ try {
398
+ await bridge.quote({
399
+ fromChain: 42161,
400
+ toChain: 1399811149,
401
+ fromToken: TOKEN_ADDR,
402
+ toToken: TOKEN_ADDR,
403
+ fromAddress: SENDER_ADDR,
404
+ });
405
+ expect.fail('Expected quote to throw');
406
+ }
407
+ catch (error) {
408
+ expect(error.message).to.include('Must specify either');
409
+ }
410
+ });
411
+ });
412
+ //# sourceMappingURL=LiFiBridge.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LiFiBridge.test.js","sourceRoot":"","sources":["../../src/bridges/LiFiBridge.test.ts"],"names":[],"mappings":"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"}
@@ -1652,6 +1652,7 @@ export declare const RebalancerStrategySchema: z.ZodEffects<z.ZodUnion<[z.ZodDis
1652
1652
  })[]>;
1653
1653
  export declare const DEFAULT_INTENT_TTL_S = 604800;
1654
1654
  export declare const DEFAULT_INTENT_TTL_MS: number;
1655
+ export declare const DEFAULT_MOVEMENT_STALENESS_MS: number;
1655
1656
  export declare const LiFiBridgeConfigSchema: z.ZodObject<{
1656
1657
  integrator: z.ZodString;
1657
1658
  defaultSlippage: z.ZodOptional<z.ZodNumber>;