@hyperlane-xyz/relayer 0.1.0 → 1.0.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/core/HyperlaneRelayer.d.ts.map +1 -1
- package/dist/core/HyperlaneRelayer.js +13 -5
- package/dist/core/HyperlaneRelayer.js.map +1 -1
- package/dist/metadata/aggregation.d.ts +2 -2
- package/dist/metadata/aggregation.d.ts.map +1 -1
- package/dist/metadata/aggregation.js +50 -20
- package/dist/metadata/aggregation.js.map +1 -1
- package/dist/metadata/arbL2ToL1.d.ts +2 -2
- package/dist/metadata/arbL2ToL1.d.ts.map +1 -1
- package/dist/metadata/arbL2ToL1.hardhat-test.js +31 -26
- package/dist/metadata/arbL2ToL1.hardhat-test.js.map +1 -1
- package/dist/metadata/arbL2ToL1.js +44 -4
- package/dist/metadata/arbL2ToL1.js.map +1 -1
- package/dist/metadata/builder.d.ts +2 -2
- package/dist/metadata/builder.d.ts.map +1 -1
- package/dist/metadata/builder.hardhat-test.js +11 -4
- package/dist/metadata/builder.hardhat-test.js.map +1 -1
- package/dist/metadata/builder.js.map +1 -1
- package/dist/metadata/ccipread.d.ts +2 -2
- package/dist/metadata/ccipread.d.ts.map +1 -1
- package/dist/metadata/ccipread.hardhat-test.js +8 -2
- package/dist/metadata/ccipread.hardhat-test.js.map +1 -1
- package/dist/metadata/ccipread.js +11 -2
- package/dist/metadata/ccipread.js.map +1 -1
- package/dist/metadata/multisig.d.ts +44 -4
- package/dist/metadata/multisig.d.ts.map +1 -1
- package/dist/metadata/multisig.js +151 -32
- package/dist/metadata/multisig.js.map +1 -1
- package/dist/metadata/null.d.ts +2 -2
- package/dist/metadata/null.d.ts.map +1 -1
- package/dist/metadata/null.js +5 -1
- package/dist/metadata/null.js.map +1 -1
- package/dist/metadata/routing.d.ts +3 -3
- package/dist/metadata/routing.d.ts.map +1 -1
- package/dist/metadata/routing.js +17 -2
- package/dist/metadata/routing.js.map +1 -1
- package/dist/metadata/types.d.ts +89 -2
- package/dist/metadata/types.d.ts.map +1 -1
- package/dist/metadata/types.js +25 -1
- package/dist/metadata/types.js.map +1 -1
- package/package.json +7 -7
- package/src/core/HyperlaneRelayer.ts +17 -5
- package/src/metadata/aggregation.ts +72 -29
- package/src/metadata/arbL2ToL1.hardhat-test.ts +36 -33
- package/src/metadata/arbL2ToL1.ts +53 -6
- package/src/metadata/builder.hardhat-test.ts +15 -5
- package/src/metadata/builder.ts +5 -1
- package/src/metadata/ccipread.hardhat-test.ts +9 -3
- package/src/metadata/ccipread.ts +18 -4
- package/src/metadata/multisig.ts +261 -59
- package/src/metadata/null.ts +12 -3
- package/src/metadata/routing.ts +28 -5
- package/src/metadata/types.ts +149 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperlaneRelayer.d.ts","sourceRoot":"","sources":["../../src/core/HyperlaneRelayer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE9B,OAAO,EACL,QAAQ,EACR,SAAS,EACT,iBAAiB,EAGjB,UAAU,EACV,aAAa,EACb,SAAS,EACT,aAAa,EACd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,OAAO,EACP,WAAW,EAQZ,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"HyperlaneRelayer.d.ts","sourceRoot":"","sources":["../../src/core/HyperlaneRelayer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { EvmHookReader, EvmIsmReader, HyperlaneCore, } from '@hyperlane-xyz/sdk';
|
|
2
2
|
import { assert, messageId, objMap, objMerge, parseMessage, promiseObjAll, sleep, } from '@hyperlane-xyz/utils';
|
|
3
3
|
import { BaseMetadataBuilder } from '../metadata/builder.js';
|
|
4
|
+
import { isMetadataBuildable } from '../metadata/types.js';
|
|
4
5
|
import { messageMatchesWhitelist } from './whitelist.js';
|
|
5
6
|
export class HyperlaneRelayer {
|
|
6
7
|
multiProvider;
|
|
@@ -51,9 +52,13 @@ export class HyperlaneRelayer {
|
|
|
51
52
|
return config;
|
|
52
53
|
}
|
|
53
54
|
async getIsmConfig(chain, ism, messageContext) {
|
|
55
|
+
// When messageContext is provided, the derived config may be message-specific
|
|
56
|
+
// (e.g., a routed sub-ISM), so use a different cache key to avoid polluting
|
|
57
|
+
// the generic ISM cache with message-specific configs
|
|
58
|
+
const cacheKey = messageContext ? `${ism}:${messageContext.id}` : ism;
|
|
54
59
|
let config;
|
|
55
|
-
if (this.cache?.ism[chain]?.[
|
|
56
|
-
config = this.cache.ism[chain][
|
|
60
|
+
if (this.cache?.ism[chain]?.[cacheKey]) {
|
|
61
|
+
config = this.cache.ism[chain][cacheKey];
|
|
57
62
|
}
|
|
58
63
|
else {
|
|
59
64
|
const evmIsmReader = new EvmIsmReader(this.multiProvider, chain, undefined, messageContext);
|
|
@@ -64,7 +69,7 @@ export class HyperlaneRelayer {
|
|
|
64
69
|
}
|
|
65
70
|
if (this.cache) {
|
|
66
71
|
this.cache.ism[chain] ??= {};
|
|
67
|
-
this.cache.ism[chain][
|
|
72
|
+
this.cache.ism[chain][cacheKey] = config;
|
|
68
73
|
}
|
|
69
74
|
return config;
|
|
70
75
|
}
|
|
@@ -148,14 +153,17 @@ export class HyperlaneRelayer {
|
|
|
148
153
|
this.getSenderHookConfig(message),
|
|
149
154
|
]);
|
|
150
155
|
this.logger.debug({ ism, hook }, `Retrieved ISM and hook configs`);
|
|
151
|
-
const
|
|
156
|
+
const metadataResult = await this.metadataBuilder.build({
|
|
152
157
|
message,
|
|
153
158
|
ism,
|
|
154
159
|
hook,
|
|
155
160
|
dispatchTx,
|
|
156
161
|
});
|
|
162
|
+
if (!isMetadataBuildable(metadataResult)) {
|
|
163
|
+
throw new Error(`Unable to build metadata for message ${message.id}: ${JSON.stringify(metadataResult)}`);
|
|
164
|
+
}
|
|
157
165
|
this.logger.info(`Relaying message ${message.id}`);
|
|
158
|
-
const receipt = await this.core.deliver(message, metadata);
|
|
166
|
+
const receipt = await this.core.deliver(message, metadataResult.metadata);
|
|
159
167
|
const durationMs = Date.now() - startTime;
|
|
160
168
|
this.observer.onEvent?.({
|
|
161
169
|
type: 'messageRelayed',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperlaneRelayer.js","sourceRoot":"","sources":["../../src/core/HyperlaneRelayer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"HyperlaneRelayer.js","sourceRoot":"","sources":["../../src/core/HyperlaneRelayer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AggregationIsmConfig } from '@hyperlane-xyz/sdk';
|
|
2
2
|
import { WithAddress } from '@hyperlane-xyz/utils';
|
|
3
3
|
import type { BaseMetadataBuilder } from './builder.js';
|
|
4
|
-
import { MetadataBuilder, MetadataContext, StructuredMetadata } from './types.js';
|
|
4
|
+
import { AggregationMetadataBuildResult, MetadataBuilder, MetadataContext, StructuredMetadata } from './types.js';
|
|
5
5
|
export interface AggregationMetadata<T = string> {
|
|
6
6
|
type: AggregationIsmConfig['type'];
|
|
7
7
|
submoduleMetadata: Array<T | null>;
|
|
@@ -10,7 +10,7 @@ export declare class AggregationMetadataBuilder implements MetadataBuilder {
|
|
|
10
10
|
protected readonly base: BaseMetadataBuilder;
|
|
11
11
|
protected logger: import("pino").default.Logger<never>;
|
|
12
12
|
constructor(base: BaseMetadataBuilder);
|
|
13
|
-
build(context: MetadataContext<WithAddress<AggregationIsmConfig>>, maxDepth?: number, timeoutMs?: number): Promise<
|
|
13
|
+
build(context: MetadataContext<WithAddress<AggregationIsmConfig>>, maxDepth?: number, timeoutMs?: number): Promise<AggregationMetadataBuildResult>;
|
|
14
14
|
static rangeIndex(index: number): number;
|
|
15
15
|
static encode(metadata: AggregationMetadata<string>): string;
|
|
16
16
|
static metadataRange(metadata: string, index: number): {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregation.d.ts","sourceRoot":"","sources":["../../src/metadata/aggregation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EAGrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,WAAW,
|
|
1
|
+
{"version":3,"file":"aggregation.d.ts","sourceRoot":"","sources":["../../src/metadata/aggregation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EAGrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,WAAW,EAMZ,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExD,OAAO,EACL,8BAA8B,EAE9B,eAAe,EACf,eAAe,EACf,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAIpB,MAAM,WAAW,mBAAmB,CAAC,CAAC,GAAG,MAAM;IAC7C,IAAI,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACnC,iBAAiB,EAAE,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;CACpC;AAKD,qBAAa,0BAA2B,YAAW,eAAe;IAKpD,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,mBAAmB;IAJxD,SAAS,CAAC,MAAM,uCAEb;gBAE4B,IAAI,EAAE,mBAAmB;IAElD,KAAK,CACT,OAAO,EAAE,eAAe,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC,EAC3D,QAAQ,SAAK,EACb,SAAS,SAAkB,GAC1B,OAAO,CAAC,8BAA8B,CAAC;IAgG1C,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAIxC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,mBAAmB,CAAC,MAAM,CAAC,GAAG,MAAM;IAmB5D,MAAM,CAAC,aAAa,CAClB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;IAYlD,MAAM,CAAC,MAAM,CACX,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,eAAe,CAAC,oBAAoB,CAAC,GAC7C,mBAAmB,CAAC,kBAAkB,GAAG,MAAM,CAAC;CAYpD"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { IsmType, } from '@hyperlane-xyz/sdk';
|
|
2
|
-
import {
|
|
2
|
+
import { fromHexString, mapAllSettled, rootLogger, timeout, toHexString, } from '@hyperlane-xyz/utils';
|
|
3
3
|
import { decodeIsmMetadata } from './decode.js';
|
|
4
4
|
const RANGE_SIZE = 4;
|
|
5
5
|
// adapted from rust/main/agents/relayer/src/msg/metadata/aggregation.rs
|
|
@@ -13,37 +13,67 @@ export class AggregationMetadataBuilder {
|
|
|
13
13
|
}
|
|
14
14
|
async build(context, maxDepth = 10, timeoutMs = maxDepth * 1000) {
|
|
15
15
|
this.logger.debug({ context, maxDepth, timeoutMs }, 'Building aggregation metadata');
|
|
16
|
-
|
|
16
|
+
if (maxDepth <= 0) {
|
|
17
|
+
return {
|
|
18
|
+
type: context.ism.type,
|
|
19
|
+
ismAddress: context.ism.address,
|
|
20
|
+
threshold: context.ism.threshold,
|
|
21
|
+
modules: [],
|
|
22
|
+
metadata: undefined,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
// Build metadata for each submodule in parallel using mapAllSettled
|
|
17
26
|
const { fulfilled, rejected } = await mapAllSettled(context.ism.modules, (module) => timeout(this.base.build({
|
|
18
27
|
...context,
|
|
19
28
|
ism: module,
|
|
20
29
|
}, maxDepth - 1), timeoutMs));
|
|
21
|
-
//
|
|
22
|
-
const
|
|
30
|
+
// Convert results to MetadataBuildResult array
|
|
31
|
+
const moduleResults = context.ism.modules.map((module, index) => {
|
|
23
32
|
if (rejected.has(index)) {
|
|
24
33
|
this.logger.warn(`Failed to build for submodule ${index}: ${rejected.get(index)?.message}`);
|
|
25
|
-
|
|
34
|
+
// Return a minimal result for failed modules
|
|
35
|
+
const ismModule = module;
|
|
36
|
+
return {
|
|
37
|
+
type: ismModule.type,
|
|
38
|
+
ismAddress: ismModule.address,
|
|
39
|
+
metadata: undefined,
|
|
40
|
+
};
|
|
26
41
|
}
|
|
27
42
|
else {
|
|
28
43
|
this.logger.debug(`Built metadata for submodule ${index}`);
|
|
29
|
-
return fulfilled.get(index)
|
|
44
|
+
return fulfilled.get(index);
|
|
30
45
|
}
|
|
31
46
|
});
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
47
|
+
// Count modules that have buildable metadata
|
|
48
|
+
const buildableModules = moduleResults.filter((r) => r.metadata !== undefined);
|
|
49
|
+
const buildableCount = buildableModules.length;
|
|
50
|
+
const quorumMet = buildableCount >= context.ism.threshold;
|
|
51
|
+
this.logger.debug({ buildableCount, threshold: context.ism.threshold, quorumMet }, `Aggregation submodule build status`);
|
|
52
|
+
// Build the result
|
|
53
|
+
const result = {
|
|
54
|
+
type: context.ism.type,
|
|
55
|
+
ismAddress: context.ism.address,
|
|
56
|
+
threshold: context.ism.threshold,
|
|
57
|
+
modules: moduleResults,
|
|
58
|
+
};
|
|
59
|
+
// Only encode metadata if quorum is met
|
|
60
|
+
if (quorumMet) {
|
|
61
|
+
// Only include the first threshold metadatas for encoding
|
|
62
|
+
const metadatas = moduleResults.map((r) => r.metadata !== undefined ? r.metadata : null);
|
|
63
|
+
let count = 0;
|
|
64
|
+
for (let i = 0; i < metadatas.length; i++) {
|
|
65
|
+
if (metadatas[i] === null)
|
|
66
|
+
continue;
|
|
67
|
+
count += 1;
|
|
68
|
+
if (count > context.ism.threshold)
|
|
69
|
+
metadatas[i] = null;
|
|
70
|
+
}
|
|
71
|
+
result.metadata = AggregationMetadataBuilder.encode({
|
|
72
|
+
...context.ism,
|
|
73
|
+
submoduleMetadata: metadatas,
|
|
74
|
+
});
|
|
42
75
|
}
|
|
43
|
-
return
|
|
44
|
-
...context.ism,
|
|
45
|
-
submoduleMetadata: metadatas,
|
|
46
|
-
});
|
|
76
|
+
return result;
|
|
47
77
|
}
|
|
48
78
|
static rangeIndex(index) {
|
|
49
79
|
return index * 2 * RANGE_SIZE;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregation.js","sourceRoot":"","sources":["../../src/metadata/aggregation.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,OAAO,GACR,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAEL,
|
|
1
|
+
{"version":3,"file":"aggregation.js","sourceRoot":"","sources":["../../src/metadata/aggregation.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { L2ToL1TxEvent } from '@arbitrum/sdk/dist/lib/abi/ArbSys.js';
|
|
|
3
3
|
import { BigNumber, BytesLike } from 'ethers';
|
|
4
4
|
import { ArbL2ToL1HookConfig, ArbL2ToL1IsmConfig, HyperlaneCore } from '@hyperlane-xyz/sdk';
|
|
5
5
|
import { WithAddress } from '@hyperlane-xyz/utils';
|
|
6
|
-
import type { MetadataBuilder, MetadataContext } from './types.js';
|
|
6
|
+
import type { ArbL2ToL1MetadataBuildResult, MetadataBuilder, MetadataContext } from './types.js';
|
|
7
7
|
export type NitroChildToParentTransactionEvent = EventArgs<L2ToL1TxEvent>;
|
|
8
8
|
export type ArbL2ToL1Metadata = Omit<NitroChildToParentTransactionEvent, 'hash'> & {
|
|
9
9
|
proof: BytesLike[];
|
|
@@ -12,7 +12,7 @@ export declare class ArbL2ToL1MetadataBuilder implements MetadataBuilder {
|
|
|
12
12
|
protected readonly core: HyperlaneCore;
|
|
13
13
|
protected readonly logger: import("pino").default.Logger<never>;
|
|
14
14
|
constructor(core: HyperlaneCore, logger?: import("pino").default.Logger<never>);
|
|
15
|
-
build(context: MetadataContext<WithAddress<ArbL2ToL1IsmConfig>, WithAddress<ArbL2ToL1HookConfig>>): Promise<
|
|
15
|
+
build(context: MetadataContext<WithAddress<ArbL2ToL1IsmConfig>, WithAddress<ArbL2ToL1HookConfig>>): Promise<ArbL2ToL1MetadataBuildResult>;
|
|
16
16
|
buildArbitrumBridgeCalldata(context: MetadataContext<WithAddress<ArbL2ToL1IsmConfig>, WithAddress<ArbL2ToL1HookConfig>>): Promise<ArbL2ToL1Metadata>;
|
|
17
17
|
getWaitingBlocksUntilReady(reader: ChildToParentMessageReader, provider: ArbitrumProvider): Promise<BigNumber>;
|
|
18
18
|
getArbitrumBridgeStatus(reader: ChildToParentMessageReader, provider: ArbitrumProvider): Promise<ChildToParentMessageStatus>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arbL2ToL1.d.ts","sourceRoot":"","sources":["../../src/metadata/arbL2ToL1.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,0BAA0B,EAC1B,0BAA0B,EAE1B,SAAS,EACV,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAoB,MAAM,QAAQ,CAAC;AAOhE,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EAGd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAsB,MAAM,sBAAsB,CAAC;AAEvE,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"arbL2ToL1.d.ts","sourceRoot":"","sources":["../../src/metadata/arbL2ToL1.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,0BAA0B,EAC1B,0BAA0B,EAE1B,SAAS,EACV,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAoB,MAAM,QAAQ,CAAC;AAOhE,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EAGd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAsB,MAAM,sBAAsB,CAAC;AAEvE,OAAO,KAAK,EACV,4BAA4B,EAC5B,eAAe,EACf,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,kCAAkC,GAAG,SAAS,CAAC,aAAa,CAAC,CAAC;AAC1E,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAClC,kCAAkC,EAClC,MAAM,CACP,GAAG;IACF,KAAK,EAAE,SAAS,EAAE,CAAC;CACpB,CAAC;AAIF,qBAAa,wBAAyB,YAAW,eAAe;IAE5D,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,aAAa;IACtC,SAAS,CAAC,QAAQ,CAAC,MAAM;gBADN,IAAI,EAAE,aAAa,EACnB,MAAM,uCAEvB;IAGE,KAAK,CACT,OAAO,EAAE,eAAe,CACtB,WAAW,CAAC,kBAAkB,CAAC,EAC/B,WAAW,CAAC,mBAAmB,CAAC,CACjC,GACA,OAAO,CAAC,4BAA4B,CAAC;IAiElC,2BAA2B,CAC/B,OAAO,EAAE,eAAe,CACtB,WAAW,CAAC,kBAAkB,CAAC,EAC/B,WAAW,CAAC,mBAAmB,CAAC,CACjC,GACA,OAAO,CAAC,iBAAiB,CAAC;IA4FvB,0BAA0B,CAC9B,MAAM,EAAE,0BAA0B,EAClC,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,SAAS,CAAC;IAcf,uBAAuB,CAC3B,MAAM,EAAE,0BAA0B,EAClC,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,0BAA0B,CAAC;IAIhC,sBAAsB,CAC1B,MAAM,EAAE,0BAA0B,EAClC,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,MAAM,EAAE,CAAC;IAQpB,MAAM,CAAC,MAAM,CACX,QAAQ,EAAE,MAAM,EAChB,CAAC,EAAE,eAAe,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC,GAClD,iBAAiB;IAiBpB,MAAM,CAAC,uBAAuB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM;CAsBpE"}
|
|
@@ -8,6 +8,7 @@ import { ArbL2ToL1Hook__factory, ArbL2ToL1Ism__factory, MockArbBridge__factory,
|
|
|
8
8
|
import { EvmHookModule, EvmIsmReader, HookType, HyperlaneIsmFactory, HyperlaneProxyFactoryDeployer, MultiProvider, TestCoreDeployer, TestRecipientDeployer, testChains, } from '@hyperlane-xyz/sdk';
|
|
9
9
|
import { bytes32ToAddress, objMap, } from '@hyperlane-xyz/utils';
|
|
10
10
|
import { ArbL2ToL1MetadataBuilder } from './arbL2ToL1.js';
|
|
11
|
+
import { isMetadataBuildable, } from './types.js';
|
|
11
12
|
describe('ArbL2ToL1MetadataBuilder', () => {
|
|
12
13
|
const origin = 'test4';
|
|
13
14
|
const destination = 'test2';
|
|
@@ -85,7 +86,7 @@ describe('ArbL2ToL1MetadataBuilder', () => {
|
|
|
85
86
|
metadataBuilder = new ArbL2ToL1MetadataBuilder(core);
|
|
86
87
|
});
|
|
87
88
|
describe('#build', () => {
|
|
88
|
-
let
|
|
89
|
+
let result;
|
|
89
90
|
beforeEach(async () => {
|
|
90
91
|
const testRecipient = testRecipients[destination];
|
|
91
92
|
arbL2ToL1Ism = ArbL2ToL1Ism__factory.connect(bytes32ToAddress(await arbL2ToL1Hook.ism()), relayer);
|
|
@@ -107,21 +108,20 @@ describe('ArbL2ToL1MetadataBuilder', () => {
|
|
|
107
108
|
});
|
|
108
109
|
it(`should build valid metadata using direct executeTransaction call`, async () => {
|
|
109
110
|
setArbitrumBridgeStatus(ChildToParentMessageStatus.CONFIRMED);
|
|
110
|
-
|
|
111
|
-
|
|
111
|
+
result = await metadataBuilder.build(context);
|
|
112
|
+
expect(result.bridgeStatus).to.equal('confirmed');
|
|
113
|
+
expect(isMetadataBuildable(result)).to.be.true;
|
|
114
|
+
if (isMetadataBuildable(result)) {
|
|
115
|
+
await arbL2ToL1Ism.verify(result.metadata, context.message.message);
|
|
116
|
+
}
|
|
112
117
|
});
|
|
113
|
-
it(`should
|
|
118
|
+
it(`should return executed status if the message has already been relayed`, async () => {
|
|
114
119
|
setArbitrumBridgeStatus(ChildToParentMessageStatus.EXECUTED);
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
}
|
|
119
|
-
catch (error) {
|
|
120
|
-
expect(error.message).to.include('Arbitrum L2ToL1 message has already been executed');
|
|
121
|
-
}
|
|
122
|
-
await expect(arbL2ToL1Ism.verify(metadata, context.message.message)).to.be.revertedWith('ArbL2ToL1Ism: invalid message id');
|
|
120
|
+
result = await metadataBuilder.build(context);
|
|
121
|
+
expect(result.bridgeStatus).to.equal('executed');
|
|
122
|
+
expect(isMetadataBuildable(result)).to.be.false;
|
|
123
123
|
});
|
|
124
|
-
it(`should
|
|
124
|
+
it(`should return unconfirmed status if the challenge period hasn't passed`, async () => {
|
|
125
125
|
setArbitrumBridgeStatus(ChildToParentMessageStatus.UNCONFIRMED);
|
|
126
126
|
// stub waiting period to 10 blocks
|
|
127
127
|
sinon
|
|
@@ -129,28 +129,33 @@ describe('ArbL2ToL1MetadataBuilder', () => {
|
|
|
129
129
|
.callsFake(async () => {
|
|
130
130
|
return BigNumber.from(10); // test waiting period
|
|
131
131
|
});
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
catch (error) {
|
|
137
|
-
expect(error.message).to.include("Arbitrum L2ToL1 message isn't ready for relay. Wait 10 blocks until the challenge period before relaying again");
|
|
138
|
-
}
|
|
139
|
-
await expect(arbL2ToL1Ism.verify(metadata, context.message.message)).to.be.revertedWith('ArbL2ToL1Ism: invalid message id');
|
|
132
|
+
result = await metadataBuilder.build(context);
|
|
133
|
+
expect(result.bridgeStatus).to.equal('unconfirmed');
|
|
134
|
+
expect(result.blocksRemaining).to.equal(10);
|
|
135
|
+
expect(isMetadataBuildable(result)).to.be.false;
|
|
140
136
|
});
|
|
141
137
|
it(`should build valid metadata if already preverified by 3rd party relayer`, async () => {
|
|
142
138
|
setArbitrumBridgeStatus(ChildToParentMessageStatus.CONFIRMED);
|
|
143
139
|
const calldata = await metadataBuilder.buildArbitrumBridgeCalldata(context);
|
|
144
|
-
|
|
140
|
+
const encodedMetadata = ArbL2ToL1MetadataBuilder.encodeArbL2ToL1Metadata(calldata);
|
|
141
|
+
// Simulate 3rd party executing the bridge transaction
|
|
142
|
+
void encodedMetadata; // we don't use this directly, just verify the encoding works
|
|
145
143
|
await arbBridge.executeTransaction(calldata.proof, calldata.position, calldata.caller, calldata.destination, calldata.arbBlockNum, calldata.ethBlockNum, calldata.timestamp, BigNumber.from(0), // msg.value
|
|
146
144
|
calldata.data);
|
|
147
|
-
|
|
148
|
-
|
|
145
|
+
result = await metadataBuilder.build(context);
|
|
146
|
+
expect(result.bridgeStatus).to.equal('verified');
|
|
147
|
+
expect(isMetadataBuildable(result)).to.be.true;
|
|
148
|
+
if (isMetadataBuildable(result)) {
|
|
149
|
+
await arbL2ToL1Ism.verify(result.metadata, context.message.message);
|
|
150
|
+
}
|
|
149
151
|
});
|
|
150
152
|
it(`should decode metadata`, async () => {
|
|
151
153
|
setArbitrumBridgeStatus(ChildToParentMessageStatus.CONFIRMED);
|
|
152
|
-
|
|
153
|
-
|
|
154
|
+
result = await metadataBuilder.build(context);
|
|
155
|
+
expect(isMetadataBuildable(result)).to.be.true;
|
|
156
|
+
if (isMetadataBuildable(result)) {
|
|
157
|
+
ArbL2ToL1MetadataBuilder.decode(result.metadata, context);
|
|
158
|
+
}
|
|
154
159
|
});
|
|
155
160
|
});
|
|
156
161
|
afterEach(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arbL2ToL1.hardhat-test.js","sourceRoot":"","sources":["../../src/metadata/arbL2ToL1.hardhat-test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAE3D,OAAO,2BAA2B,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,GAAG,MAAM,SAAS,CAAC;AAC1B,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAEL,sBAAsB,EAEtB,qBAAqB,EAErB,sBAAsB,EACtB,mBAAmB,GAEpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAKL,aAAa,EACb,YAAY,EACZ,QAAQ,EAIR,mBAAmB,EACnB,6BAA6B,EAC7B,aAAa,EAEb,gBAAgB,EAChB,qBAAqB,EACrB,UAAU,GACX,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAGL,gBAAgB,EAChB,MAAM,GACP,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"arbL2ToL1.hardhat-test.js","sourceRoot":"","sources":["../../src/metadata/arbL2ToL1.hardhat-test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAE3D,OAAO,2BAA2B,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,GAAG,MAAM,SAAS,CAAC;AAC1B,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAEL,sBAAsB,EAEtB,qBAAqB,EAErB,sBAAsB,EACtB,mBAAmB,GAEpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAKL,aAAa,EACb,YAAY,EACZ,QAAQ,EAIR,mBAAmB,EACnB,6BAA6B,EAC7B,aAAa,EAEb,gBAAgB,EAChB,qBAAqB,EACrB,UAAU,GACX,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAGL,gBAAgB,EAChB,MAAM,GACP,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAGL,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAEpB,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,MAAM,MAAM,GAAc,OAAO,CAAC;IAClC,MAAM,WAAW,GAAc,OAAO,CAAC;IACvC,IAAI,IAAmB,CAAC;IACxB,IAAI,UAA+B,CAAC;IACpC,IAAI,UAAyC,CAAC;IAC9C,IAAI,aAA4B,CAAC;IACjC,IAAI,YAA0B,CAAC;IAC/B,IAAI,SAAwB,CAAC;IAC7B,IAAI,cAAgD,CAAC;IACrD,IAAI,qBAAgE,CAAC;IACrE,IAAI,gBAA2D,CAAC;IAChE,IAAI,OAA0B,CAAC;IAC/B,IAAI,eAAyC,CAAC;IAC9C,IAAI,OAGH,CAAC;IAEF,SAAS,uBAAuB,CAAC,MAAkC;QACjE,KAAK;aACF,IAAI,CAAC,eAAe,EAAE,yBAAyB,CAAC;aAChD,SAAS,CAAC,KAAK,IAAyC,EAAE;YACzD,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,MAAM,CAAC,KAAK,IAAI,EAAE;QAChB,CAAC,OAAO,CAAC,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QAC1C,MAAM,aAAa,GAAG,aAAa,CAAC,uBAAuB,CAAC;YAC1D,MAAM,EAAE,OAAO;SAChB,CAAC,CAAC;QACH,MAAM,kBAAkB,GAAG,IAAI,6BAA6B,CAAC,aAAa,CAAC,CAAC;QAC5E,MAAM,YAAY,GAAG,MAAM,kBAAkB,CAAC,MAAM,CAClD,aAAa,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CACzC,CAAC;QACF,UAAU,GAAG,IAAI,mBAAmB,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;QAClE,MAAM,YAAY,GAAG,IAAI,gBAAgB,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;QACrE,MAAM,iBAAiB,GAAG,IAAI,qBAAqB,CAAC,aAAa,CAAC,CAAC;QACnE,cAAc,GAAG,MAAM,CACrB,MAAM,iBAAiB,CAAC,MAAM,CAC5B,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CACnD,EACD,CAAC,CAAC,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,aAAa,CACxC,CAAC;QACF,IAAI,GAAG,MAAM,YAAY,CAAC,SAAS,EAAE,CAAC;QAEtC,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,YAAY,CACjD,MAAM,EACN,IAAI,mBAAmB,EAAE,EACzB,EAAE,CACH,CAAC;QACF,UAAU,GAAG;YACX,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ,CAAC,YAAY;gBAC3B,MAAM,EAAE,UAAU,CAAC,OAAO;gBAC1B,gBAAgB,EAAE,WAAW;gBAC7B,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ,CAAC,wBAAwB;oBACvC,WAAW,EAAE,OAAO,CAAC,OAAO;oBAC5B,KAAK,EAAE,OAAO,CAAC,OAAO;oBACtB,SAAS,EAAE,OAAO,CAAC,OAAO;oBAC1B,QAAQ,EAAE;wBACR,CAAC,WAAW,CAAC,EAAE,MAAM;qBACtB;oBACD,YAAY,EAAE;wBACZ,CAAC,WAAW,CAAC,EAAE;4BACb,QAAQ,EAAE,IAAI;4BACd,iBAAiB,EAAE,aAAa;yBACjC;qBACF;iBACF;aACF;SACF,CAAC;QAEF,gBAAgB,GAAG,YAAY,CAAC,KAAK,CAAC;QACtC,qBAAqB,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAC1D,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACX,GAAG,CAAC,GAAG,CAAC;gBACN,YAAY,CAAC,MAAM,CAAC,CAAC,GAAkC,CAAC,CAAC,OAAO,CAAC;YACnE,OAAO,GAAG,CAAC;QACb,CAAC,EACD,EAA6B,CACe,CAAC;QAC/C,SAAS,GAAG,MAAM,aAAa,CAAC,YAAY,CAC1C,MAAM,EACN,IAAI,sBAAsB,EAAE,EAC5B,EAAE,CACH,CAAC;QACF,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC;QAE5C,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC;YAC5C,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,UAAU,CAAC,KAAK;YACxB,qBAAqB,EAAE,qBAAqB;YAC5C,aAAa,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;YACxC,aAAa;SACd,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC,YAAY,CAAC;QAExD,aAAa,GAAG,sBAAsB,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAErE,eAAe,GAAG,IAAI,wBAAwB,CAAC,IAAI,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;QACtB,IAAI,MAAoC,CAAC;QAEzC,UAAU,CAAC,KAAK,IAAI,EAAE;YACpB,MAAM,aAAa,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;YAClD,YAAY,GAAG,qBAAqB,CAAC,OAAO,CAC1C,gBAAgB,CAAC,MAAM,aAAa,CAAC,GAAG,EAAE,CAAC,EAC3C,OAAO,CACR,CAAC;YACF,MAAM,aAAa,CAAC,2BAA2B,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YAEtE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CACpD,MAAM,EACN,WAAW,EACX,aAAa,CAAC,OAAO,EACrB,YAAY,EACZ,aAAa,CAAC,OAAO,CACtB,CAAC;YAEF,MAAM,UAAU,GAAG,MAAM,IAAI,YAAY,CACvC,IAAI,CAAC,aAAa,EAClB,WAAW,CACZ,CAAC,eAAe,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YAExC,OAAO,GAAG;gBACR,IAAI,EAAE,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,OAAO,EAAE;gBAC/D,GAAG,EAAE,UAA6C;gBAClD,OAAO;gBACP,UAAU;aACX,CAAC;YAEF,KAAK;iBACF,IAAI,CAAC,eAAe,EAAE,wBAAwB,CAAC;iBAC/C,SAAS,CAAC,KAAK,IAAuB,EAAE;gBACvC,MAAM,SAAS,CAAC,eAAe,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBACvD,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;YAChF,uBAAuB,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAC;YAC9D,MAAM,GAAG,MAAM,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAE9C,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAClD,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YAC/C,IAAI,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC;gBAChC,MAAM,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACtE,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;YACrF,uBAAuB,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;YAE7D,MAAM,GAAG,MAAM,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC9C,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACjD,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wEAAwE,EAAE,KAAK,IAAI,EAAE;YACtF,uBAAuB,CAAC,0BAA0B,CAAC,WAAW,CAAC,CAAC;YAEhE,mCAAmC;YACnC,KAAK;iBACF,IAAI,CAAC,eAAe,EAAE,4BAA4B,CAAC;iBACnD,SAAS,CAAC,KAAK,IAAwB,EAAE;gBACxC,OAAO,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,sBAAsB;YACnD,CAAC,CAAC,CAAC;YAEL,MAAM,GAAG,MAAM,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC9C,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YACpD,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC5C,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yEAAyE,EAAE,KAAK,IAAI,EAAE;YACvF,uBAAuB,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAC;YAE9D,MAAM,QAAQ,GACZ,MAAM,eAAe,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAC;YAC7D,MAAM,eAAe,GACnB,wBAAwB,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;YAC7D,sDAAsD;YACtD,KAAK,eAAe,CAAC,CAAC,6DAA6D;YACnF,MAAM,SAAS,CAAC,kBAAkB,CAChC,QAAQ,CAAC,KAAK,EACd,QAAQ,CAAC,QAAQ,EACjB,QAAQ,CAAC,MAAM,EACf,QAAQ,CAAC,WAAW,EACpB,QAAQ,CAAC,WAAW,EACpB,QAAQ,CAAC,WAAW,EACpB,QAAQ,CAAC,SAAS,EAClB,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,YAAY;YAC/B,QAAQ,CAAC,IAAI,CACd,CAAC;YACF,MAAM,GAAG,MAAM,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC9C,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACjD,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YAC/C,IAAI,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC;gBAChC,MAAM,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACtE,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;YACtC,uBAAuB,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAC;YAC9D,MAAM,GAAG,MAAM,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAE9C,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YAC/C,IAAI,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC;gBAChC,wBAAwB,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,KAAK,CAAC,OAAO,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -16,16 +16,56 @@ export class ArbL2ToL1MetadataBuilder {
|
|
|
16
16
|
async build(context) {
|
|
17
17
|
assert(context.ism.type === IsmType.ARB_L2_TO_L1, 'Invalid ISM type');
|
|
18
18
|
this.logger.debug({ context }, 'Building ArbL2ToL1 metadata');
|
|
19
|
+
const baseResult = {
|
|
20
|
+
type: IsmType.ARB_L2_TO_L1,
|
|
21
|
+
ismAddress: context.ism.address,
|
|
22
|
+
};
|
|
19
23
|
// if the executeTransaction call is already successful, we can call with null metadata
|
|
20
24
|
const ism = AbstractMessageIdAuthorizedIsm__factory.connect(context.ism.address, this.core.multiProvider.getSigner(context.message.parsed.destination));
|
|
21
|
-
const verified = await ism.isVerified(context.message.
|
|
25
|
+
const verified = await ism.isVerified(context.message.message);
|
|
22
26
|
if (verified) {
|
|
23
27
|
this.logger.debug('Message is already verified, relaying without metadata...');
|
|
24
|
-
return
|
|
28
|
+
return {
|
|
29
|
+
...baseResult,
|
|
30
|
+
bridgeStatus: 'verified',
|
|
31
|
+
metadata: '0x',
|
|
32
|
+
};
|
|
25
33
|
}
|
|
26
34
|
// else build the metadata for outbox.executeTransaction call
|
|
27
|
-
|
|
28
|
-
|
|
35
|
+
try {
|
|
36
|
+
const arbMetadata = await this.buildArbitrumBridgeCalldata(context);
|
|
37
|
+
return {
|
|
38
|
+
...baseResult,
|
|
39
|
+
bridgeStatus: 'confirmed',
|
|
40
|
+
metadata: ArbL2ToL1MetadataBuilder.encodeArbL2ToL1Metadata(arbMetadata),
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
catch (error) {
|
|
44
|
+
// Parse the error to determine bridge status
|
|
45
|
+
const errorMessage = error?.message ?? String(error);
|
|
46
|
+
if (errorMessage.includes('Wait') && errorMessage.includes('blocks')) {
|
|
47
|
+
// Extract blocks remaining from error message
|
|
48
|
+
// Note: This parsing depends on error format from buildArbitrumBridgeCalldata
|
|
49
|
+
// e.g., "Wait 123 blocks until the challenge period..."
|
|
50
|
+
const blocksMatch = errorMessage.match(/Wait (\d+) blocks/);
|
|
51
|
+
const blocksRemaining = blocksMatch
|
|
52
|
+
? parseInt(blocksMatch[1], 10)
|
|
53
|
+
: undefined;
|
|
54
|
+
return {
|
|
55
|
+
...baseResult,
|
|
56
|
+
bridgeStatus: 'unconfirmed',
|
|
57
|
+
blocksRemaining,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
if (errorMessage.includes('already been executed')) {
|
|
61
|
+
return {
|
|
62
|
+
...baseResult,
|
|
63
|
+
bridgeStatus: 'executed',
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
// Re-throw unknown errors
|
|
67
|
+
throw error;
|
|
68
|
+
}
|
|
29
69
|
}
|
|
30
70
|
async buildArbitrumBridgeCalldata(context) {
|
|
31
71
|
const matchingL2TxEvent = findMatchingLogEvents(context.dispatchTx.logs, ArbSys, 'L2ToL1Tx').find((log) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arbL2ToL1.js","sourceRoot":"","sources":["../../src/metadata/arbL2ToL1.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,0BAA0B,EAC1B,0BAA0B,GAG3B,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,SAAS,EAAa,SAAS,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAEhE,OAAO,EACL,uCAAuC,EACvC,eAAe,EACf,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAIL,OAAO,EACP,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAe,MAAM,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"arbL2ToL1.js","sourceRoot":"","sources":["../../src/metadata/arbL2ToL1.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ import { OffchainLookupMetadataBuilder } from './ccipread.js';
|
|
|
5
5
|
import { MultisigMetadataBuilder } from './multisig.js';
|
|
6
6
|
import { NullMetadataBuilder } from './null.js';
|
|
7
7
|
import { DynamicRoutingMetadataBuilder } from './routing.js';
|
|
8
|
-
import type { MetadataBuilder, MetadataContext, StructuredMetadata } from './types.js';
|
|
8
|
+
import type { MetadataBuildResult, MetadataBuilder, MetadataContext, StructuredMetadata } from './types.js';
|
|
9
9
|
export declare class BaseMetadataBuilder implements MetadataBuilder {
|
|
10
10
|
nullMetadataBuilder: NullMetadataBuilder;
|
|
11
11
|
multisigMetadataBuilder: MultisigMetadataBuilder;
|
|
@@ -16,7 +16,7 @@ export declare class BaseMetadataBuilder implements MetadataBuilder {
|
|
|
16
16
|
multiProvider: MultiProvider;
|
|
17
17
|
protected logger: import("pino").default.Logger<never>;
|
|
18
18
|
constructor(core: HyperlaneCore);
|
|
19
|
-
build(context: MetadataContext, maxDepth?: number): Promise<
|
|
19
|
+
build(context: MetadataContext, maxDepth?: number): Promise<MetadataBuildResult>;
|
|
20
20
|
static decode(metadata: string, context: MetadataContext): StructuredMetadata;
|
|
21
21
|
}
|
|
22
22
|
//# sourceMappingURL=builder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/metadata/builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,aAAa,EAGb,aAAa,EACd,MAAM,oBAAoB,CAAC;AAQ5B,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,6BAA6B,EAAE,MAAM,eAAe,CAAC;AAE9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAEpB,qBAAa,mBAAoB,YAAW,eAAe;IAClD,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,uBAAuB,EAAE,uBAAuB,CAAC;IACjD,0BAA0B,EAAE,0BAA0B,CAAC;IACvD,sBAAsB,EAAE,6BAA6B,CAAC;IACtD,wBAAwB,EAAE,wBAAwB,CAAC;IACnD,uBAAuB,EAAE,6BAA6B,CAAC;IAEvD,aAAa,EAAE,aAAa,CAAC;IACpC,SAAS,CAAC,MAAM,uCAAuD;gBAE3D,IAAI,EAAE,aAAa;IAWzB,KAAK,
|
|
1
|
+
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/metadata/builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,aAAa,EAGb,aAAa,EACd,MAAM,oBAAoB,CAAC;AAQ5B,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,6BAA6B,EAAE,MAAM,eAAe,CAAC;AAE9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,KAAK,EACV,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAEpB,qBAAa,mBAAoB,YAAW,eAAe;IAClD,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,uBAAuB,EAAE,uBAAuB,CAAC;IACjD,0BAA0B,EAAE,0BAA0B,CAAC;IACvD,sBAAsB,EAAE,6BAA6B,CAAC;IACtD,wBAAwB,EAAE,wBAAwB,CAAC;IACnD,uBAAuB,EAAE,6BAA6B,CAAC;IAEvD,aAAa,EAAE,aAAa,CAAC;IACpC,SAAS,CAAC,MAAM,uCAAuD;gBAE3D,IAAI,EAAE,aAAa;IAWzB,KAAK,CACT,OAAO,EAAE,eAAe,EACxB,QAAQ,SAAK,GACZ,OAAO,CAAC,mBAAmB,CAAC;IA0E/B,MAAM,CAAC,MAAM,CACX,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,eAAe,GACvB,kBAAkB;CAGtB"}
|
|
@@ -6,6 +6,7 @@ import { EvmHookModule, EvmIsmReader, HookType, HyperlaneIsmFactory, HyperlanePr
|
|
|
6
6
|
import { BaseValidator, addressToBytes32, eqAddress, objMap, randomElement, } from '@hyperlane-xyz/utils';
|
|
7
7
|
import { BaseMetadataBuilder } from './builder.js';
|
|
8
8
|
import { decodeIsmMetadata } from './decode.js';
|
|
9
|
+
import { isMetadataBuildable, } from './types.js';
|
|
9
10
|
const MAX_ISM_DEPTH = 5;
|
|
10
11
|
const MAX_NUM_VALIDATORS = 10;
|
|
11
12
|
const NUM_RUNS = 16;
|
|
@@ -84,7 +85,7 @@ describe('BaseMetadataBuilder', () => {
|
|
|
84
85
|
let origin;
|
|
85
86
|
let destination;
|
|
86
87
|
let context;
|
|
87
|
-
let
|
|
88
|
+
let metadataResult;
|
|
88
89
|
beforeEach(async () => {
|
|
89
90
|
origin = randomElement(testChains);
|
|
90
91
|
destination = randomElement(testChains.filter((c) => c !== origin));
|
|
@@ -111,17 +112,23 @@ describe('BaseMetadataBuilder', () => {
|
|
|
111
112
|
message,
|
|
112
113
|
dispatchTx,
|
|
113
114
|
};
|
|
114
|
-
|
|
115
|
+
metadataResult = await metadataBuilder.build(context, MAX_ISM_DEPTH);
|
|
115
116
|
});
|
|
116
117
|
for (let i = 0; i < NUM_RUNS; i++) {
|
|
117
118
|
it(`should build valid metadata for random ism config (${i})`, async () => {
|
|
119
|
+
if (!isMetadataBuildable(metadataResult)) {
|
|
120
|
+
throw new Error('Metadata should be buildable');
|
|
121
|
+
}
|
|
118
122
|
// must call process for trusted relayer to be able to verify
|
|
119
123
|
await core
|
|
120
124
|
.getContracts(destination)
|
|
121
|
-
.mailbox.process(metadata, context.message.message);
|
|
125
|
+
.mailbox.process(metadataResult.metadata, context.message.message);
|
|
122
126
|
});
|
|
123
127
|
it(`should decode metadata for random ism config (${i})`, async () => {
|
|
124
|
-
|
|
128
|
+
if (!isMetadataBuildable(metadataResult)) {
|
|
129
|
+
throw new Error('Metadata should be buildable');
|
|
130
|
+
}
|
|
131
|
+
decodeIsmMetadata(metadataResult.metadata, context);
|
|
125
132
|
});
|
|
126
133
|
}
|
|
127
134
|
});
|