@hyperlane-xyz/sdk 19.8.0 → 19.9.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.
- package/dist/providers/SmartProvider/SmartProvider.d.ts +10 -3
- package/dist/providers/SmartProvider/SmartProvider.d.ts.map +1 -1
- package/dist/providers/SmartProvider/SmartProvider.js +112 -74
- package/dist/providers/SmartProvider/SmartProvider.js.map +1 -1
- package/dist/providers/SmartProvider/SmartProvider.test.d.ts +2 -0
- package/dist/providers/SmartProvider/SmartProvider.test.d.ts.map +1 -0
- package/dist/providers/SmartProvider/SmartProvider.test.js +281 -0
- package/dist/providers/SmartProvider/SmartProvider.test.js.map +1 -0
- package/dist/token/types.d.ts +1 -1
- package/package.json +6 -6
|
@@ -7,6 +7,12 @@ import { IProviderMethods, ProviderMethod } from './ProviderMethods.js';
|
|
|
7
7
|
import { ChainMetadataWithRpcConnectionInfo, ProviderPerformResult, SmartProviderOptions } from './types.js';
|
|
8
8
|
export declare function getSmartProviderErrorMessage(errorMsg: string): string;
|
|
9
9
|
type HyperlaneProvider = HyperlaneEtherscanProvider | HyperlaneJsonRpcProvider;
|
|
10
|
+
export declare class BlockchainError extends Error {
|
|
11
|
+
readonly isRecoverable = false;
|
|
12
|
+
constructor(message: string, options?: {
|
|
13
|
+
cause?: Error;
|
|
14
|
+
});
|
|
15
|
+
}
|
|
10
16
|
export declare class HyperlaneSmartProvider extends providers.BaseProvider implements IProviderMethods {
|
|
11
17
|
readonly options?: SmartProviderOptions | undefined;
|
|
12
18
|
protected logger: Logger;
|
|
@@ -33,8 +39,9 @@ export declare class HyperlaneSmartProvider extends providers.BaseProvider imple
|
|
|
33
39
|
isHealthy(numBlocks?: number, timeoutMs?: number): Promise<boolean>;
|
|
34
40
|
isExplorerProvider(p: HyperlaneProvider): p is HyperlaneEtherscanProvider;
|
|
35
41
|
/**
|
|
36
|
-
* This perform method
|
|
37
|
-
*
|
|
42
|
+
* This perform method has two phases:
|
|
43
|
+
* 1. Sequentially triggers providers until success or blockchain error (permanent failure)
|
|
44
|
+
* 2. Waits for any remaining pending provider promises to complete
|
|
38
45
|
* TODO: Consider adding a quorum option that requires a certain number of providers to agree
|
|
39
46
|
*/
|
|
40
47
|
protected performWithFallback(method: string, params: {
|
|
@@ -42,7 +49,7 @@ export declare class HyperlaneSmartProvider extends providers.BaseProvider imple
|
|
|
42
49
|
}, providers: Array<HyperlaneEtherscanProvider | HyperlaneJsonRpcProvider>, reqId: number): Promise<any>;
|
|
43
50
|
protected wrapProviderPerform(provider: HyperlaneProvider, pIndex: number, method: string, params: any, reqId: number): Promise<ProviderPerformResult>;
|
|
44
51
|
protected waitForProviderSuccess(resultPromises: Promise<ProviderPerformResult>[]): Promise<ProviderPerformResult>;
|
|
45
|
-
protected
|
|
52
|
+
protected getCombinedProviderError(errors: any[], fallbackMsg: string): new () => Error;
|
|
46
53
|
}
|
|
47
54
|
export {};
|
|
48
55
|
//# sourceMappingURL=SmartProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SmartProvider.d.ts","sourceRoot":"","sources":["../../../src/providers/SmartProvider/SmartProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAyB,SAAS,EAAS,MAAM,QAAQ,CAAC;AAC5E,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAUpC,OAAO,EACL,aAAa,EAGb,MAAM,EACP,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EACL,kCAAkC,EAClC,qBAAqB,EAGrB,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAEpB,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAErE;
|
|
1
|
+
{"version":3,"file":"SmartProvider.d.ts","sourceRoot":"","sources":["../../../src/providers/SmartProvider/SmartProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,24 +10,34 @@ export function getSmartProviderErrorMessage(errorMsg) {
|
|
|
10
10
|
}
|
|
11
11
|
// This is a partial list. If needed, check the full list for more: https://docs.ethers.org/v5/api/utils/logger/#errors
|
|
12
12
|
const RPC_SERVER_ERRORS = [
|
|
13
|
-
EthersError.NETWORK_ERROR,
|
|
14
|
-
EthersError.NOT_IMPLEMENTED,
|
|
15
13
|
EthersError.SERVER_ERROR,
|
|
16
14
|
EthersError.TIMEOUT,
|
|
17
15
|
EthersError.UNKNOWN_ERROR,
|
|
18
|
-
EthersError.UNSUPPORTED_OPERATION,
|
|
19
16
|
];
|
|
20
17
|
const RPC_BLOCKCHAIN_ERRORS = [
|
|
21
18
|
EthersError.CALL_EXCEPTION,
|
|
22
19
|
EthersError.INSUFFICIENT_FUNDS,
|
|
20
|
+
EthersError.NETWORK_ERROR,
|
|
23
21
|
EthersError.NONCE_EXPIRED,
|
|
22
|
+
EthersError.NOT_IMPLEMENTED,
|
|
24
23
|
EthersError.REPLACEMENT_UNDERPRICED,
|
|
25
24
|
EthersError.TRANSACTION_REPLACED,
|
|
26
25
|
EthersError.UNPREDICTABLE_GAS_LIMIT,
|
|
26
|
+
EthersError.UNSUPPORTED_OPERATION,
|
|
27
27
|
];
|
|
28
28
|
const DEFAULT_MAX_RETRIES = 1;
|
|
29
29
|
const DEFAULT_BASE_RETRY_DELAY_MS = 250; // 0.25 seconds
|
|
30
30
|
const DEFAULT_STAGGER_DELAY_MS = 1000; // 1 seconds
|
|
31
|
+
const DEFAULT_PHASE2_WAIT_MULTIPLIER = 20;
|
|
32
|
+
export class BlockchainError extends Error {
|
|
33
|
+
isRecoverable = false;
|
|
34
|
+
constructor(message, options) {
|
|
35
|
+
super(message, options);
|
|
36
|
+
}
|
|
37
|
+
static {
|
|
38
|
+
this.prototype.name = this.name;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
31
41
|
export class HyperlaneSmartProvider extends providers.BaseProvider {
|
|
32
42
|
options;
|
|
33
43
|
logger;
|
|
@@ -164,82 +174,88 @@ export class HyperlaneSmartProvider extends providers.BaseProvider {
|
|
|
164
174
|
return this.explorerProviders.includes(p);
|
|
165
175
|
}
|
|
166
176
|
/**
|
|
167
|
-
* This perform method
|
|
168
|
-
*
|
|
177
|
+
* This perform method has two phases:
|
|
178
|
+
* 1. Sequentially triggers providers until success or blockchain error (permanent failure)
|
|
179
|
+
* 2. Waits for any remaining pending provider promises to complete
|
|
169
180
|
* TODO: Consider adding a quorum option that requires a certain number of providers to agree
|
|
170
181
|
*/
|
|
171
182
|
async performWithFallback(method, params, providers, reqId) {
|
|
172
183
|
let pIndex = 0;
|
|
173
184
|
const providerResultPromises = [];
|
|
174
185
|
const providerResultErrors = [];
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
186
|
+
// Phase 1: Trigger providers sequentially until success or blockchain error
|
|
187
|
+
providerLoop: while (pIndex < providers.length) {
|
|
188
|
+
const provider = providers[pIndex];
|
|
189
|
+
const isLastProvider = pIndex === providers.length - 1;
|
|
190
|
+
// Skip the explorer provider if it's currently in a cooldown period
|
|
191
|
+
if (this.isExplorerProvider(provider) &&
|
|
192
|
+
provider.getQueryWaitTime() > 0 &&
|
|
193
|
+
!isLastProvider &&
|
|
194
|
+
method !== ProviderMethod.GetLogs // never skip GetLogs
|
|
195
|
+
) {
|
|
196
|
+
pIndex += 1;
|
|
197
|
+
continue;
|
|
198
|
+
}
|
|
199
|
+
const resultPromise = this.wrapProviderPerform(provider, pIndex, method, params, reqId);
|
|
200
|
+
const timeoutPromise = timeoutResult(this.options?.fallbackStaggerMs || DEFAULT_STAGGER_DELAY_MS);
|
|
201
|
+
const result = await Promise.race([resultPromise, timeoutPromise]);
|
|
202
|
+
const providerMetadata = {
|
|
203
|
+
providerIndex: pIndex,
|
|
204
|
+
rpcUrl: provider.getBaseUrl(),
|
|
205
|
+
method: `${method}(${JSON.stringify(params)})`,
|
|
206
|
+
chainId: this.network.chainId,
|
|
207
|
+
};
|
|
208
|
+
switch (result.status) {
|
|
209
|
+
case ProviderStatus.Success:
|
|
199
210
|
return result.value;
|
|
200
|
-
|
|
201
|
-
else if (result.status === ProviderStatus.Timeout) {
|
|
211
|
+
case ProviderStatus.Timeout:
|
|
202
212
|
this.logger.debug({ ...providerMetadata }, `Slow response from provider:`, isLastProvider ? '' : 'Triggering next provider.');
|
|
203
213
|
providerResultPromises.push(resultPromise);
|
|
204
214
|
pIndex += 1;
|
|
205
|
-
|
|
206
|
-
|
|
215
|
+
break;
|
|
216
|
+
case ProviderStatus.Error:
|
|
217
|
+
providerResultErrors.push(result.error);
|
|
218
|
+
// If this is a blockchain error, stop trying additional providers as it's a permanent failure
|
|
219
|
+
if (RPC_BLOCKCHAIN_ERRORS.includes(result.error?.code)) {
|
|
220
|
+
this.logger.debug({ ...providerMetadata }, `${result.error?.code} detected - stopping provider fallback as this is a permanent failure`);
|
|
221
|
+
break providerLoop;
|
|
222
|
+
}
|
|
207
223
|
this.logger.debug({
|
|
208
224
|
error: result.error,
|
|
209
225
|
...providerMetadata,
|
|
210
226
|
}, `Error from provider.`, isLastProvider ? '' : 'Triggering next provider.');
|
|
211
|
-
providerResultErrors.push(result.error);
|
|
212
227
|
pIndex += 1;
|
|
213
|
-
|
|
214
|
-
|
|
228
|
+
break;
|
|
229
|
+
default:
|
|
215
230
|
throw new Error(`Unexpected result from provider: ${JSON.stringify(providerMetadata)}`);
|
|
216
|
-
}
|
|
217
|
-
// All providers already triggered, wait for one to complete or all to fail/timeout
|
|
218
231
|
}
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
}
|
|
235
|
-
|
|
232
|
+
}
|
|
233
|
+
// Phase 2: All providers already triggered, wait for one to complete or all to fail/timeout
|
|
234
|
+
// If no providers are left, all have already failed
|
|
235
|
+
if (providerResultPromises.length === 0) {
|
|
236
|
+
const CombinedError = this.getCombinedProviderError(providerResultErrors, `All providers failed on chain ${this.network.name} for method ${method} and params ${JSON.stringify(params, null, 2)}`);
|
|
237
|
+
throw new CombinedError();
|
|
238
|
+
}
|
|
239
|
+
// Wait for at least one provider to succeed or all to fail/timeout
|
|
240
|
+
const timeoutPromise = timeoutResult(this.options?.fallbackStaggerMs || DEFAULT_STAGGER_DELAY_MS, DEFAULT_PHASE2_WAIT_MULTIPLIER);
|
|
241
|
+
const resultPromise = this.waitForProviderSuccess(providerResultPromises);
|
|
242
|
+
const result = await Promise.race([resultPromise, timeoutPromise]);
|
|
243
|
+
switch (result.status) {
|
|
244
|
+
case ProviderStatus.Success:
|
|
245
|
+
return result.value;
|
|
246
|
+
case ProviderStatus.Timeout: {
|
|
247
|
+
const CombinedError = this.getCombinedProviderError([result, ...providerResultErrors], `All providers timed out on chain ${this.network.name} for method ${method}`);
|
|
248
|
+
throw new CombinedError();
|
|
236
249
|
}
|
|
237
|
-
|
|
238
|
-
this.
|
|
250
|
+
case ProviderStatus.Error: {
|
|
251
|
+
const CombinedError = this.getCombinedProviderError([result.error, ...providerResultErrors], `All providers failed on chain ${this.network.name} for method ${method} and params ${JSON.stringify(params, null, 2)}`);
|
|
252
|
+
throw new CombinedError();
|
|
239
253
|
}
|
|
254
|
+
default:
|
|
255
|
+
throw new Error('Unexpected result from provider');
|
|
240
256
|
}
|
|
241
257
|
}
|
|
242
|
-
//
|
|
258
|
+
// Wrap for additional logging and error handling
|
|
243
259
|
async wrapProviderPerform(provider, pIndex, method, params, reqId) {
|
|
244
260
|
try {
|
|
245
261
|
if (this.options?.debug)
|
|
@@ -284,30 +300,52 @@ export class HyperlaneSmartProvider extends providers.BaseProvider {
|
|
|
284
300
|
: new Error('Unknown error from provider'),
|
|
285
301
|
};
|
|
286
302
|
}
|
|
287
|
-
|
|
303
|
+
getCombinedProviderError(errors, fallbackMsg) {
|
|
288
304
|
this.logger.debug(fallbackMsg);
|
|
289
|
-
if (errors.length === 0)
|
|
290
|
-
|
|
305
|
+
if (errors.length === 0) {
|
|
306
|
+
return class extends Error {
|
|
307
|
+
constructor() {
|
|
308
|
+
super(fallbackMsg);
|
|
309
|
+
}
|
|
310
|
+
};
|
|
311
|
+
}
|
|
312
|
+
const rpcBlockchainError = errors.find((e) => RPC_BLOCKCHAIN_ERRORS.includes(e.code));
|
|
291
313
|
const rpcServerError = errors.find((e) => RPC_SERVER_ERRORS.includes(e.code));
|
|
292
314
|
const timedOutError = errors.find((e) => e.status === ProviderStatus.Timeout);
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
315
|
+
if (rpcBlockchainError) {
|
|
316
|
+
// All blockchain errors are non-retryable and take priority
|
|
317
|
+
return class extends BlockchainError {
|
|
318
|
+
constructor() {
|
|
319
|
+
super(rpcBlockchainError.reason ?? rpcBlockchainError.code, {
|
|
320
|
+
cause: rpcBlockchainError,
|
|
321
|
+
});
|
|
322
|
+
}
|
|
323
|
+
};
|
|
297
324
|
}
|
|
298
|
-
else if (
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
325
|
+
else if (rpcServerError) {
|
|
326
|
+
return class extends Error {
|
|
327
|
+
constructor() {
|
|
328
|
+
super(rpcServerError.error?.message ?? // Server errors sometimes will not have an error.message
|
|
329
|
+
getSmartProviderErrorMessage(rpcServerError.code), { cause: rpcServerError });
|
|
330
|
+
}
|
|
331
|
+
};
|
|
302
332
|
}
|
|
303
|
-
else if (
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
333
|
+
else if (timedOutError) {
|
|
334
|
+
return class extends Error {
|
|
335
|
+
constructor() {
|
|
336
|
+
super(fallbackMsg, {
|
|
337
|
+
cause: timedOutError,
|
|
338
|
+
});
|
|
339
|
+
}
|
|
340
|
+
};
|
|
307
341
|
}
|
|
308
342
|
else {
|
|
309
343
|
this.logger.error('Unhandled error case in combined provider error handler');
|
|
310
|
-
|
|
344
|
+
return class extends Error {
|
|
345
|
+
constructor() {
|
|
346
|
+
super(fallbackMsg);
|
|
347
|
+
}
|
|
348
|
+
};
|
|
311
349
|
}
|
|
312
350
|
}
|
|
313
351
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SmartProvider.js","sourceRoot":"","sources":["../../../src/providers/SmartProvider/SmartProvider.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SmartProvider.js","sourceRoot":"","sources":["../../../src/providers/SmartProvider/SmartProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SmartProvider.test.d.ts","sourceRoot":"","sources":["../../../src/providers/SmartProvider/SmartProvider.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
import { expect } from 'chai';
|
|
2
|
+
import { errors as EthersError, providers } from 'ethers';
|
|
3
|
+
import { AllProviderMethods } from './ProviderMethods.js';
|
|
4
|
+
import { BlockchainError, HyperlaneSmartProvider } from './SmartProvider.js';
|
|
5
|
+
import { ProviderStatus } from './types.js';
|
|
6
|
+
// Dummy provider for testing
|
|
7
|
+
class MockProvider extends providers.BaseProvider {
|
|
8
|
+
baseUrl;
|
|
9
|
+
errorToThrow;
|
|
10
|
+
successValue;
|
|
11
|
+
responseDelayMs;
|
|
12
|
+
supportedMethods = AllProviderMethods;
|
|
13
|
+
called = false;
|
|
14
|
+
thrownError;
|
|
15
|
+
static success(successValue, responseDelayMs = 0) {
|
|
16
|
+
return new MockProvider('http://provider', undefined, successValue, responseDelayMs);
|
|
17
|
+
}
|
|
18
|
+
static error(errorToThrow, responseDelayMs = 0) {
|
|
19
|
+
return new MockProvider('http://provider', errorToThrow, undefined, responseDelayMs);
|
|
20
|
+
}
|
|
21
|
+
constructor(baseUrl, errorToThrow, successValue, responseDelayMs = 0) {
|
|
22
|
+
super({ name: 'test', chainId: 1 });
|
|
23
|
+
this.baseUrl = baseUrl;
|
|
24
|
+
this.errorToThrow = errorToThrow;
|
|
25
|
+
this.successValue = successValue;
|
|
26
|
+
this.responseDelayMs = responseDelayMs;
|
|
27
|
+
}
|
|
28
|
+
getBaseUrl() {
|
|
29
|
+
return this.baseUrl;
|
|
30
|
+
}
|
|
31
|
+
async perform(_method, _params, _reqId) {
|
|
32
|
+
this.called = true;
|
|
33
|
+
if (this.responseDelayMs > 0) {
|
|
34
|
+
await new Promise((resolve) => setTimeout(resolve, this.responseDelayMs));
|
|
35
|
+
}
|
|
36
|
+
if (this.errorToThrow) {
|
|
37
|
+
this.thrownError = this.errorToThrow;
|
|
38
|
+
throw this.errorToThrow;
|
|
39
|
+
}
|
|
40
|
+
return this.successValue ?? 'success';
|
|
41
|
+
}
|
|
42
|
+
// Required BaseProvider methods - minimal implementations
|
|
43
|
+
async detectNetwork() {
|
|
44
|
+
return { name: 'test', chainId: 1 };
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
class TestableSmartProvider extends HyperlaneSmartProvider {
|
|
48
|
+
mockProviders;
|
|
49
|
+
constructor(mockProviders) {
|
|
50
|
+
super({ chainId: 1, name: 'test' }, mockProviders.map((p) => ({ http: p.getBaseUrl() })), [], { fallbackStaggerMs: 50 });
|
|
51
|
+
this.mockProviders = mockProviders;
|
|
52
|
+
}
|
|
53
|
+
testGetCombinedProviderError(errors, fallbackMsg) {
|
|
54
|
+
return this.getCombinedProviderError(errors, fallbackMsg);
|
|
55
|
+
}
|
|
56
|
+
async simplePerform(method, reqId) {
|
|
57
|
+
return this.performWithFallback(method, {}, this.mockProviders, reqId);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
class ProviderError extends Error {
|
|
61
|
+
reason;
|
|
62
|
+
code;
|
|
63
|
+
constructor(message, code) {
|
|
64
|
+
super(message);
|
|
65
|
+
this.reason = message;
|
|
66
|
+
this.code = code;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
describe('SmartProvider', () => {
|
|
70
|
+
let provider;
|
|
71
|
+
beforeEach(() => {
|
|
72
|
+
provider = new TestableSmartProvider([MockProvider.success('success')]);
|
|
73
|
+
});
|
|
74
|
+
describe('getCombinedProviderError', () => {
|
|
75
|
+
const blockchainErrorTestCases = [
|
|
76
|
+
{
|
|
77
|
+
code: EthersError.INSUFFICIENT_FUNDS,
|
|
78
|
+
message: 'insufficient funds for intrinsic transaction cost',
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
code: EthersError.UNPREDICTABLE_GAS_LIMIT,
|
|
82
|
+
message: 'execution reverted: ERC20: transfer to the zero address',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
code: EthersError.CALL_EXCEPTION,
|
|
86
|
+
message: 'execution reverted',
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
code: EthersError.NONCE_EXPIRED,
|
|
90
|
+
message: 'nonce has already been used',
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
code: EthersError.REPLACEMENT_UNDERPRICED,
|
|
94
|
+
message: 'replacement transaction underpriced',
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
code: EthersError.TRANSACTION_REPLACED,
|
|
98
|
+
message: 'transaction was replaced',
|
|
99
|
+
},
|
|
100
|
+
];
|
|
101
|
+
blockchainErrorTestCases.forEach(({ code, message }) => {
|
|
102
|
+
it(`throws BlockchainError with isRecoverable=false for ${code}`, () => {
|
|
103
|
+
const error = new ProviderError(message, code);
|
|
104
|
+
const CombinedError = provider.testGetCombinedProviderError([error], 'Test fallback message');
|
|
105
|
+
const e = new CombinedError();
|
|
106
|
+
expect(e).to.be.instanceOf(BlockchainError);
|
|
107
|
+
expect(e.isRecoverable).to.equal(false);
|
|
108
|
+
expect(e.message).to.equal(message);
|
|
109
|
+
expect(e.cause).to.equal(error);
|
|
110
|
+
expect(e.cause.code).to.equal(code);
|
|
111
|
+
});
|
|
112
|
+
});
|
|
113
|
+
it('throws regular Error for SERVER_ERROR (not BlockchainError)', () => {
|
|
114
|
+
const error = new ProviderError('connection refused', EthersError.SERVER_ERROR);
|
|
115
|
+
const CombinedError = provider.testGetCombinedProviderError([error], 'Test fallback message');
|
|
116
|
+
const e = new CombinedError();
|
|
117
|
+
expect(e).to.be.instanceOf(Error);
|
|
118
|
+
expect(e).to.not.be.instanceOf(BlockchainError);
|
|
119
|
+
expect(e.isRecoverable).to.be.undefined;
|
|
120
|
+
expect(e.cause).to.equal(error);
|
|
121
|
+
expect(e.cause.code).to.equal(EthersError.SERVER_ERROR);
|
|
122
|
+
});
|
|
123
|
+
it('throws regular Error for TIMEOUT (not BlockchainError)', () => {
|
|
124
|
+
const error = { status: ProviderStatus.Timeout };
|
|
125
|
+
const CombinedError = provider.testGetCombinedProviderError([error], 'Test fallback message');
|
|
126
|
+
const e = new CombinedError();
|
|
127
|
+
expect(e).to.be.instanceOf(Error);
|
|
128
|
+
expect(e).to.not.be.instanceOf(BlockchainError);
|
|
129
|
+
expect(e.isRecoverable).to.be.undefined;
|
|
130
|
+
expect(e.cause).to.equal(error);
|
|
131
|
+
});
|
|
132
|
+
const mixedErrorTestCases = [
|
|
133
|
+
{
|
|
134
|
+
name: 'SERVER_ERROR',
|
|
135
|
+
errors: () => [
|
|
136
|
+
new ProviderError('connection refused', EthersError.SERVER_ERROR),
|
|
137
|
+
new ProviderError('execution reverted', EthersError.CALL_EXCEPTION),
|
|
138
|
+
],
|
|
139
|
+
expectedMessage: 'execution reverted',
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
name: 'TIMEOUT',
|
|
143
|
+
errors: () => [
|
|
144
|
+
{ status: ProviderStatus.Timeout },
|
|
145
|
+
new ProviderError('insufficient funds', EthersError.INSUFFICIENT_FUNDS),
|
|
146
|
+
],
|
|
147
|
+
expectedMessage: 'insufficient funds',
|
|
148
|
+
},
|
|
149
|
+
];
|
|
150
|
+
mixedErrorTestCases.forEach(({ name, errors, expectedMessage }) => {
|
|
151
|
+
it(`prioritizes BlockchainError when mixed with ${name}`, () => {
|
|
152
|
+
const [firstError, secondError] = errors();
|
|
153
|
+
const CombinedError = provider.testGetCombinedProviderError([firstError, secondError], 'Test fallback message');
|
|
154
|
+
const e = new CombinedError();
|
|
155
|
+
expect(e).to.be.instanceOf(BlockchainError);
|
|
156
|
+
expect(e.isRecoverable).to.equal(false);
|
|
157
|
+
expect(e.message).to.equal(expectedMessage);
|
|
158
|
+
expect(e.cause).to.equal(secondError);
|
|
159
|
+
});
|
|
160
|
+
});
|
|
161
|
+
});
|
|
162
|
+
describe('performWithFallback', () => {
|
|
163
|
+
it('returns success from first provider, second provider not called', async () => {
|
|
164
|
+
const provider1 = MockProvider.success('success1');
|
|
165
|
+
const provider2 = MockProvider.success('success2');
|
|
166
|
+
const provider = new TestableSmartProvider([provider1, provider2]);
|
|
167
|
+
const result = await provider.simplePerform('getBlockNumber', 1);
|
|
168
|
+
expect(result).to.deep.equal('success1');
|
|
169
|
+
expect(provider1.called).to.be.true;
|
|
170
|
+
expect(provider2.called).to.be.false;
|
|
171
|
+
});
|
|
172
|
+
it('calls second provider when first throws server error, returns success from second', async () => {
|
|
173
|
+
const serverError = new ProviderError('connection refused', EthersError.SERVER_ERROR);
|
|
174
|
+
const provider1 = MockProvider.error(serverError);
|
|
175
|
+
const provider2 = MockProvider.success('success2');
|
|
176
|
+
const provider = new TestableSmartProvider([provider1, provider2]);
|
|
177
|
+
const result = await provider.simplePerform('getBlockNumber', 1);
|
|
178
|
+
expect(result).to.deep.equal('success2');
|
|
179
|
+
expect(provider1.called).to.be.true;
|
|
180
|
+
expect(provider1.thrownError).to.equal(serverError);
|
|
181
|
+
expect(provider2.called).to.be.true;
|
|
182
|
+
});
|
|
183
|
+
it('calls second provider when first times out, returns success from second', async () => {
|
|
184
|
+
const provider1 = MockProvider.success('success1', 100);
|
|
185
|
+
const provider2 = MockProvider.success('success2');
|
|
186
|
+
const provider = new TestableSmartProvider([provider1, provider2]);
|
|
187
|
+
const result = await provider.simplePerform('getBlockNumber', 1);
|
|
188
|
+
expect(result).to.deep.equal('success2');
|
|
189
|
+
expect(provider1.called).to.be.true;
|
|
190
|
+
expect(provider2.called).to.be.true;
|
|
191
|
+
});
|
|
192
|
+
it('both providers timeout, first provider ultimately returns result (waitForProviderSuccess)', async () => {
|
|
193
|
+
const provider1 = MockProvider.success('success1', 120); // 120ms delay
|
|
194
|
+
const provider2 = MockProvider.success('success2', 200); // 200ms delay
|
|
195
|
+
const provider = new TestableSmartProvider([provider1, provider2]);
|
|
196
|
+
const result = await provider.simplePerform('getBlockNumber', 1);
|
|
197
|
+
expect(result).to.deep.equal('success1');
|
|
198
|
+
expect(provider1.called).to.be.true;
|
|
199
|
+
expect(provider2.called).to.be.true;
|
|
200
|
+
});
|
|
201
|
+
it('both providers throw errors, combined error is thrown', async () => {
|
|
202
|
+
const serverError1 = new ProviderError('connection refused 1', EthersError.SERVER_ERROR);
|
|
203
|
+
const serverError2 = new ProviderError('connection refused 2', EthersError.SERVER_ERROR);
|
|
204
|
+
const provider1 = MockProvider.error(serverError1);
|
|
205
|
+
const provider2 = MockProvider.error(serverError2);
|
|
206
|
+
const provider = new TestableSmartProvider([provider1, provider2]);
|
|
207
|
+
try {
|
|
208
|
+
await provider.simplePerform('getBlockNumber', 1);
|
|
209
|
+
expect.fail('Should have thrown an error');
|
|
210
|
+
}
|
|
211
|
+
catch (e) {
|
|
212
|
+
expect(e).to.be.instanceOf(Error);
|
|
213
|
+
expect(e).to.not.be.instanceOf(BlockchainError);
|
|
214
|
+
expect(e.isRecoverable).to.be.undefined;
|
|
215
|
+
expect(e.cause).to.equal(serverError1); // First error should be the cause
|
|
216
|
+
expect(provider1.called).to.be.true;
|
|
217
|
+
expect(provider1.thrownError).to.equal(serverError1);
|
|
218
|
+
expect(provider2.called).to.be.true;
|
|
219
|
+
expect(provider2.thrownError).to.equal(serverError2);
|
|
220
|
+
}
|
|
221
|
+
});
|
|
222
|
+
it('both providers timeout, combined timeout error is thrown', async () => {
|
|
223
|
+
const provider1 = MockProvider.success('success1', 2000);
|
|
224
|
+
const provider2 = MockProvider.success('success2', 2000);
|
|
225
|
+
const provider = new TestableSmartProvider([provider1, provider2]);
|
|
226
|
+
try {
|
|
227
|
+
await provider.simplePerform('getBlockNumber', 1);
|
|
228
|
+
expect.fail('Should have thrown an error');
|
|
229
|
+
}
|
|
230
|
+
catch (e) {
|
|
231
|
+
expect(e).to.be.instanceOf(Error);
|
|
232
|
+
expect(e).to.not.be.instanceOf(BlockchainError);
|
|
233
|
+
expect(e.isRecoverable).to.be.undefined;
|
|
234
|
+
expect(e.message).to.include('All providers timed out');
|
|
235
|
+
expect(provider1.called).to.be.true;
|
|
236
|
+
expect(provider2.called).to.be.true;
|
|
237
|
+
}
|
|
238
|
+
});
|
|
239
|
+
it('blockchain error stops trying additional providers immediately', async () => {
|
|
240
|
+
const blockchainError = new ProviderError('execution reverted', EthersError.CALL_EXCEPTION);
|
|
241
|
+
const provider1 = MockProvider.error(blockchainError);
|
|
242
|
+
const provider2 = MockProvider.success('success2');
|
|
243
|
+
const provider = new TestableSmartProvider([provider1, provider2]);
|
|
244
|
+
try {
|
|
245
|
+
await provider.simplePerform('getBlockNumber', 1);
|
|
246
|
+
expect.fail('Should have thrown an error');
|
|
247
|
+
}
|
|
248
|
+
catch (e) {
|
|
249
|
+
expect(e).to.be.instanceOf(BlockchainError);
|
|
250
|
+
expect(e.isRecoverable).to.equal(false);
|
|
251
|
+
expect(e.message).to.equal('execution reverted');
|
|
252
|
+
expect(e.cause).to.equal(blockchainError);
|
|
253
|
+
expect(provider1.called).to.be.true;
|
|
254
|
+
expect(provider1.thrownError).to.equal(blockchainError);
|
|
255
|
+
expect(provider2.called).to.be.false; // Key test - second provider should NOT be called
|
|
256
|
+
}
|
|
257
|
+
});
|
|
258
|
+
it('blockchain error takes priority over server error in actual flow', async () => {
|
|
259
|
+
const serverError = new ProviderError('connection refused', EthersError.SERVER_ERROR);
|
|
260
|
+
const blockchainError = new ProviderError('insufficient funds', EthersError.INSUFFICIENT_FUNDS);
|
|
261
|
+
const provider1 = MockProvider.error(serverError);
|
|
262
|
+
const provider2 = MockProvider.error(blockchainError);
|
|
263
|
+
const provider = new TestableSmartProvider([provider1, provider2]);
|
|
264
|
+
try {
|
|
265
|
+
await provider.simplePerform('getBlockNumber', 1);
|
|
266
|
+
expect.fail('Should have thrown an error');
|
|
267
|
+
}
|
|
268
|
+
catch (e) {
|
|
269
|
+
expect(e).to.be.instanceOf(BlockchainError); // Should get blockchain error, not server error
|
|
270
|
+
expect(e.isRecoverable).to.equal(false);
|
|
271
|
+
expect(e.message).to.equal('insufficient funds');
|
|
272
|
+
expect(e.cause).to.equal(blockchainError);
|
|
273
|
+
expect(provider1.called).to.be.true;
|
|
274
|
+
expect(provider1.thrownError).to.equal(serverError);
|
|
275
|
+
expect(provider2.called).to.be.true;
|
|
276
|
+
expect(provider2.thrownError).to.equal(blockchainError);
|
|
277
|
+
}
|
|
278
|
+
});
|
|
279
|
+
});
|
|
280
|
+
});
|
|
281
|
+
//# sourceMappingURL=SmartProvider.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SmartProvider.test.js","sourceRoot":"","sources":["../../../src/providers/SmartProvider/SmartProvider.test.ts"],"names":[],"mappings":"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"}
|
package/dist/token/types.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ export declare const WarpRouteDeployConfigSchemaErrors: {
|
|
|
10
10
|
NO_SYNTHETIC_ONLY: string;
|
|
11
11
|
};
|
|
12
12
|
export declare const contractVersionMatchesDependency: (version: string) => boolean;
|
|
13
|
-
export declare const VERSION_ERROR_MESSAGE = "Contract version must match the @hyperlane-xyz/core dependency version (10.0.
|
|
13
|
+
export declare const VERSION_ERROR_MESSAGE = "Contract version must match the @hyperlane-xyz/core dependency version (10.0.3)";
|
|
14
14
|
export declare const TokenMetadataSchema: z.ZodObject<{
|
|
15
15
|
name: z.ZodString;
|
|
16
16
|
symbol: z.ZodString;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hyperlane-xyz/sdk",
|
|
3
3
|
"description": "The official SDK for the Hyperlane Network",
|
|
4
|
-
"version": "19.
|
|
4
|
+
"version": "19.9.0",
|
|
5
5
|
"dependencies": {
|
|
6
6
|
"@arbitrum/sdk": "^4.0.0",
|
|
7
7
|
"@aws-sdk/client-s3": "^3.577.0",
|
|
@@ -9,11 +9,11 @@
|
|
|
9
9
|
"@cosmjs/cosmwasm-stargate": "^0.32.4",
|
|
10
10
|
"@cosmjs/proto-signing": "^0.32.4",
|
|
11
11
|
"@cosmjs/stargate": "^0.32.4",
|
|
12
|
-
"@hyperlane-xyz/core": "10.0.
|
|
13
|
-
"@hyperlane-xyz/cosmos-sdk": "19.
|
|
14
|
-
"@hyperlane-xyz/radix-sdk": "19.
|
|
15
|
-
"@hyperlane-xyz/starknet-core": "19.
|
|
16
|
-
"@hyperlane-xyz/utils": "19.
|
|
12
|
+
"@hyperlane-xyz/core": "10.0.3",
|
|
13
|
+
"@hyperlane-xyz/cosmos-sdk": "19.9.0",
|
|
14
|
+
"@hyperlane-xyz/radix-sdk": "19.9.0",
|
|
15
|
+
"@hyperlane-xyz/starknet-core": "19.9.0",
|
|
16
|
+
"@hyperlane-xyz/utils": "19.9.0",
|
|
17
17
|
"@safe-global/api-kit": "4.0.0",
|
|
18
18
|
"@safe-global/protocol-kit": "6.1.1",
|
|
19
19
|
"@safe-global/safe-core-sdk-types": "5.1.0",
|