@hyperlane-xyz/utils 1.0.0-beta4 → 1.0.0-beta5
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/src/types.d.ts +19 -6
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js +5 -7
- package/dist/src/types.js.map +1 -1
- package/dist/src/utils.d.ts +8 -9
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/src/utils.js +84 -28
- package/dist/src/utils.js.map +1 -1
- package/dist/src/validator.d.ts +4 -3
- package/dist/src/validator.d.ts.map +1 -1
- package/dist/src/validator.js +8 -7
- package/dist/src/validator.js.map +1 -1
- package/package.json +3 -3
package/dist/src/types.d.ts
CHANGED
|
@@ -11,7 +11,12 @@ export declare type SignatureLike = {
|
|
|
11
11
|
recoveryParam?: number;
|
|
12
12
|
v?: number;
|
|
13
13
|
} | ethers.utils.BytesLike;
|
|
14
|
-
|
|
14
|
+
export declare type MerkleProof = {
|
|
15
|
+
branch: ethers.utils.BytesLike[];
|
|
16
|
+
leaf: ethers.utils.BytesLike;
|
|
17
|
+
index: number;
|
|
18
|
+
};
|
|
19
|
+
/********* HYPERLANE CORE *********/
|
|
15
20
|
export declare type Checkpoint = {
|
|
16
21
|
root: string;
|
|
17
22
|
index: number;
|
|
@@ -21,20 +26,28 @@ export declare type CallData = {
|
|
|
21
26
|
to: Address;
|
|
22
27
|
data: string;
|
|
23
28
|
};
|
|
24
|
-
export declare enum AbacusState {
|
|
25
|
-
UNINITIALIZED = 0,
|
|
26
|
-
ACTIVE = 1,
|
|
27
|
-
FAILED = 2
|
|
28
|
-
}
|
|
29
29
|
export declare enum MessageStatus {
|
|
30
30
|
NONE = 0,
|
|
31
31
|
PROCESSED = 1
|
|
32
32
|
}
|
|
33
33
|
export declare type ParsedMessage = {
|
|
34
|
+
version: number;
|
|
35
|
+
nonce: number;
|
|
34
36
|
origin: number;
|
|
35
37
|
sender: string;
|
|
36
38
|
destination: number;
|
|
37
39
|
recipient: string;
|
|
38
40
|
body: string;
|
|
39
41
|
};
|
|
42
|
+
export declare type ParsedMultisigIsmMetadata = {
|
|
43
|
+
checkpointRoot: string;
|
|
44
|
+
checkpointIndex: number;
|
|
45
|
+
originMailbox: string;
|
|
46
|
+
proof: ethers.utils.BytesLike[];
|
|
47
|
+
signatures: ethers.utils.BytesLike[];
|
|
48
|
+
validators: ethers.utils.BytesLike[];
|
|
49
|
+
};
|
|
50
|
+
export declare enum InterchainSecurityModuleType {
|
|
51
|
+
MULTISIG = 3
|
|
52
|
+
}
|
|
40
53
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/src/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,iCAAiC;AACjC,oBAAY,MAAM,GAAG,MAAM,CAAC;AAC5B,oBAAY,OAAO,GAAG,MAAM,CAAC;AAC7B,oBAAY,cAAc,GAAG,MAAM,CAAC;AACpC,oBAAY,SAAS,GAAG,MAAM,CAAC;AAG/B,oBAAY,aAAa,GACrB;IACE,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,CAAC,CAAC,EAAE,MAAM,CAAC;CACZ,GACD,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;AAE3B,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,iCAAiC;AACjC,oBAAY,MAAM,GAAG,MAAM,CAAC;AAC5B,oBAAY,OAAO,GAAG,MAAM,CAAC;AAC7B,oBAAY,cAAc,GAAG,MAAM,CAAC;AACpC,oBAAY,SAAS,GAAG,MAAM,CAAC;AAG/B,oBAAY,aAAa,GACrB;IACE,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,CAAC,CAAC,EAAE,MAAM,CAAC;CACZ,GACD,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;AAE3B,oBAAY,WAAW,GAAG;IACxB,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;IACjC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,oCAAoC;AACpC,oBAAY,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,aAAa,CAAC;CAC1B,CAAC;AAEF,oBAAY,QAAQ,GAAG;IACrB,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,oBAAY,aAAa;IACvB,IAAI,IAAI;IACR,SAAS,IAAA;CACV;AAED,oBAAY,aAAa,GAAG;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,oBAAY,yBAAyB,GAAG;IACtC,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;IACrC,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;CACtC,CAAC;AAEF,oBAAY,4BAA4B;IACtC,QAAQ,IAAI;CACb"}
|
package/dist/src/types.js
CHANGED
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
var AbacusState;
|
|
5
|
-
(function (AbacusState) {
|
|
6
|
-
AbacusState[AbacusState["UNINITIALIZED"] = 0] = "UNINITIALIZED";
|
|
7
|
-
AbacusState[AbacusState["ACTIVE"] = 1] = "ACTIVE";
|
|
8
|
-
AbacusState[AbacusState["FAILED"] = 2] = "FAILED";
|
|
9
|
-
})(AbacusState = exports.AbacusState || (exports.AbacusState = {}));
|
|
3
|
+
exports.InterchainSecurityModuleType = exports.MessageStatus = void 0;
|
|
10
4
|
var MessageStatus;
|
|
11
5
|
(function (MessageStatus) {
|
|
12
6
|
MessageStatus[MessageStatus["NONE"] = 0] = "NONE";
|
|
13
7
|
MessageStatus[MessageStatus["PROCESSED"] = 1] = "PROCESSED";
|
|
14
8
|
})(MessageStatus = exports.MessageStatus || (exports.MessageStatus = {}));
|
|
9
|
+
var InterchainSecurityModuleType;
|
|
10
|
+
(function (InterchainSecurityModuleType) {
|
|
11
|
+
InterchainSecurityModuleType[InterchainSecurityModuleType["MULTISIG"] = 3] = "MULTISIG";
|
|
12
|
+
})(InterchainSecurityModuleType = exports.InterchainSecurityModuleType || (exports.InterchainSecurityModuleType = {}));
|
|
15
13
|
//# sourceMappingURL=types.js.map
|
package/dist/src/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;AAqCA,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,iDAAQ,CAAA;IACR,2DAAS,CAAA;AACX,CAAC,EAHW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAGxB;AAqBD,IAAY,4BAEX;AAFD,WAAY,4BAA4B;IACtC,uFAAY,CAAA;AACd,CAAC,EAFW,4BAA4B,GAA5B,oCAA4B,KAA5B,oCAA4B,QAEvC"}
|
package/dist/src/utils.d.ts
CHANGED
|
@@ -1,26 +1,25 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import { ethers } from 'ethers';
|
|
3
|
-
import { Checkpoint } from './types';
|
|
4
|
-
import { Address, Domain, HexString, ParsedMessage } from './types';
|
|
2
|
+
import { BigNumber, ethers } from 'ethers';
|
|
3
|
+
import { Address, Checkpoint, Domain, HexString, ParsedMessage, ParsedMultisigIsmMetadata } from './types';
|
|
5
4
|
export declare function assert(predicate: any, errorMessage?: string): void;
|
|
6
5
|
export declare function deepEquals(v1: any, v2: any): boolean;
|
|
7
|
-
export declare function eqAddress(a: string, b: string): boolean;
|
|
8
6
|
export declare const ensure0x: (hexstr: string) => string;
|
|
9
7
|
export declare const strip0x: (hexstr: string) => string;
|
|
10
8
|
export declare function addressToBytes32(address: Address): string;
|
|
11
9
|
export declare function bytes32ToAddress(bytes32: string): Address;
|
|
12
10
|
export declare function formatCallData<C extends ethers.Contract, I extends Parameters<C['interface']['encodeFunctionData']>>(destinationContract: C, functionName: I[0], functionArgs: I[1]): string;
|
|
13
|
-
export declare const
|
|
11
|
+
export declare const parseMultisigIsmMetadata: (metadata: string) => ParsedMultisigIsmMetadata;
|
|
12
|
+
export declare const formatMultisigIsmMetadata: (metadata: ParsedMultisigIsmMetadata) => string;
|
|
13
|
+
export declare const formatMessage: (version: number | BigNumber, nonce: number | BigNumber, originDomain: Domain, senderAddr: Address, destinationDomain: Domain, recipientAddr: Address, body: HexString) => string;
|
|
14
|
+
export declare function messageId(message: HexString): string;
|
|
14
15
|
/**
|
|
15
|
-
* Parse a serialized
|
|
16
|
+
* Parse a serialized Hyperlane message from raw bytes.
|
|
16
17
|
*
|
|
17
18
|
* @param message
|
|
18
19
|
* @returns
|
|
19
20
|
*/
|
|
20
21
|
export declare function parseMessage(message: string): ParsedMessage;
|
|
21
|
-
export declare function
|
|
22
|
-
export declare function destinationAndNonce(destination: Domain, sequence: number): ethers.BigNumber;
|
|
23
|
-
export declare function domainHash(domain: number): string;
|
|
22
|
+
export declare function domainHash(domain: number, mailbox: string): string;
|
|
24
23
|
export declare function sleep(ms: number): Promise<void>;
|
|
25
24
|
export declare function retryAsync<T>(runner: () => T, attempts?: number, baseRetryMs?: number): Promise<T>;
|
|
26
25
|
export declare function pollAsync<T>(runner: () => Promise<T>, delayMs?: number, maxAttempts?: number | undefined): Promise<T>;
|
package/dist/src/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAS,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
|
package/dist/src/utils.js
CHANGED
|
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.setEquality = exports.symmetricDifference = exports.difference = exports.safelyAccessEnvVar = exports.timeout = exports.isCheckpoint = exports.streamToString = exports.stdDev = exports.mean = exports.sum = exports.median = exports.pollAsync = exports.retryAsync = exports.sleep = exports.domainHash = exports.
|
|
12
|
+
exports.setEquality = exports.symmetricDifference = exports.difference = exports.safelyAccessEnvVar = exports.timeout = exports.isCheckpoint = exports.streamToString = exports.stdDev = exports.mean = exports.sum = exports.median = exports.pollAsync = exports.retryAsync = exports.sleep = exports.domainHash = exports.parseMessage = exports.messageId = exports.formatMessage = exports.formatMultisigIsmMetadata = exports.parseMultisigIsmMetadata = exports.formatCallData = exports.bytes32ToAddress = exports.addressToBytes32 = exports.strip0x = exports.ensure0x = exports.deepEquals = exports.assert = void 0;
|
|
13
13
|
const ethers_1 = require("ethers");
|
|
14
14
|
function assert(predicate, errorMessage) {
|
|
15
15
|
if (!predicate) {
|
|
@@ -21,10 +21,6 @@ function deepEquals(v1, v2) {
|
|
|
21
21
|
return JSON.stringify(v1) === JSON.stringify(v2);
|
|
22
22
|
}
|
|
23
23
|
exports.deepEquals = deepEquals;
|
|
24
|
-
function eqAddress(a, b) {
|
|
25
|
-
return ethers_1.ethers.utils.getAddress(a) === ethers_1.ethers.utils.getAddress(b);
|
|
26
|
-
}
|
|
27
|
-
exports.eqAddress = eqAddress;
|
|
28
24
|
const ensure0x = (hexstr) => hexstr.startsWith('0x') ? hexstr : `0x${hexstr}`;
|
|
29
25
|
exports.ensure0x = ensure0x;
|
|
30
26
|
const strip0x = (hexstr) => hexstr.startsWith('0x') ? hexstr.slice(2) : hexstr;
|
|
@@ -43,42 +39,102 @@ function formatCallData(destinationContract, functionName, functionArgs) {
|
|
|
43
39
|
return destinationContract.interface.encodeFunctionData(functionName, functionArgs);
|
|
44
40
|
}
|
|
45
41
|
exports.formatCallData = formatCallData;
|
|
46
|
-
const
|
|
42
|
+
const parseMultisigIsmMetadata = (metadata) => {
|
|
43
|
+
const MERKLE_ROOT_OFFSET = 0;
|
|
44
|
+
const MERKLE_INDEX_OFFSET = 32;
|
|
45
|
+
const ORIGIN_MAILBOX_OFFSET = 36;
|
|
46
|
+
const MERKLE_PROOF_OFFSET = 68;
|
|
47
|
+
const THRESHOLD_OFFSET = 1092;
|
|
48
|
+
const SIGNATURES_OFFSET = 1093;
|
|
49
|
+
const SIGNATURE_LENGTH = 65;
|
|
50
|
+
const buf = Buffer.from(ethers_1.utils.arrayify(metadata));
|
|
51
|
+
const checkpointRoot = ethers_1.utils.hexlify(buf.slice(MERKLE_ROOT_OFFSET, MERKLE_INDEX_OFFSET));
|
|
52
|
+
const checkpointIndex = ethers_1.BigNumber.from(ethers_1.utils.hexlify(buf.slice(MERKLE_INDEX_OFFSET, ORIGIN_MAILBOX_OFFSET))).toNumber();
|
|
53
|
+
const originMailbox = ethers_1.utils.hexlify(buf.slice(ORIGIN_MAILBOX_OFFSET, MERKLE_PROOF_OFFSET));
|
|
54
|
+
const parseBytesArray = (start, count, size) => {
|
|
55
|
+
return [...Array(count).keys()].map((i) => ethers_1.utils.hexlify(buf.slice(start + size * i, start + size * (i + 1))));
|
|
56
|
+
};
|
|
57
|
+
const proof = parseBytesArray(MERKLE_PROOF_OFFSET, 32, 32);
|
|
58
|
+
const threshold = ethers_1.BigNumber.from(ethers_1.utils.hexlify(buf.slice(THRESHOLD_OFFSET, SIGNATURES_OFFSET))).toNumber();
|
|
59
|
+
const signatures = parseBytesArray(SIGNATURES_OFFSET, threshold, SIGNATURE_LENGTH);
|
|
60
|
+
const VALIDATORS_OFFSET = SIGNATURES_OFFSET + threshold * SIGNATURE_LENGTH;
|
|
61
|
+
const addressesCount = buf.slice(VALIDATORS_OFFSET).length / 32;
|
|
62
|
+
const validators = parseBytesArray(VALIDATORS_OFFSET, addressesCount, 32);
|
|
63
|
+
return {
|
|
64
|
+
checkpointRoot,
|
|
65
|
+
checkpointIndex,
|
|
66
|
+
originMailbox,
|
|
67
|
+
proof,
|
|
68
|
+
signatures,
|
|
69
|
+
validators,
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
exports.parseMultisigIsmMetadata = parseMultisigIsmMetadata;
|
|
73
|
+
const formatMultisigIsmMetadata = (metadata) => {
|
|
74
|
+
return ethers_1.ethers.utils.solidityPack([
|
|
75
|
+
'bytes32',
|
|
76
|
+
'uint32',
|
|
77
|
+
'bytes32',
|
|
78
|
+
'bytes32[32]',
|
|
79
|
+
'uint8',
|
|
80
|
+
'bytes',
|
|
81
|
+
'address[]',
|
|
82
|
+
], [
|
|
83
|
+
metadata.checkpointRoot,
|
|
84
|
+
metadata.checkpointIndex,
|
|
85
|
+
addressToBytes32(metadata.originMailbox),
|
|
86
|
+
metadata.proof,
|
|
87
|
+
metadata.signatures.length,
|
|
88
|
+
ethers_1.ethers.utils.hexConcat(metadata.signatures),
|
|
89
|
+
metadata.validators,
|
|
90
|
+
]);
|
|
91
|
+
};
|
|
92
|
+
exports.formatMultisigIsmMetadata = formatMultisigIsmMetadata;
|
|
93
|
+
const formatMessage = (version, nonce, originDomain, senderAddr, destinationDomain, recipientAddr, body) => {
|
|
47
94
|
senderAddr = addressToBytes32(senderAddr);
|
|
48
95
|
recipientAddr = addressToBytes32(recipientAddr);
|
|
49
|
-
return ethers_1.ethers.utils.solidityPack(['uint32', 'bytes32', 'uint32', 'bytes32', 'bytes'], [
|
|
96
|
+
return ethers_1.ethers.utils.solidityPack(['uint8', 'uint32', 'uint32', 'bytes32', 'uint32', 'bytes32', 'bytes'], [
|
|
97
|
+
version,
|
|
98
|
+
nonce,
|
|
99
|
+
originDomain,
|
|
100
|
+
senderAddr,
|
|
101
|
+
destinationDomain,
|
|
102
|
+
recipientAddr,
|
|
103
|
+
body,
|
|
104
|
+
]);
|
|
50
105
|
};
|
|
51
106
|
exports.formatMessage = formatMessage;
|
|
107
|
+
function messageId(message) {
|
|
108
|
+
return ethers_1.ethers.utils.solidityKeccak256(['bytes'], [message]);
|
|
109
|
+
}
|
|
110
|
+
exports.messageId = messageId;
|
|
52
111
|
/**
|
|
53
|
-
* Parse a serialized
|
|
112
|
+
* Parse a serialized Hyperlane message from raw bytes.
|
|
54
113
|
*
|
|
55
114
|
* @param message
|
|
56
115
|
* @returns
|
|
57
116
|
*/
|
|
58
117
|
function parseMessage(message) {
|
|
118
|
+
const VERSION_OFFSET = 0;
|
|
119
|
+
const NONCE_OFFSET = 1;
|
|
120
|
+
const ORIGIN_OFFSET = 5;
|
|
121
|
+
const SENDER_OFFSET = 9;
|
|
122
|
+
const DESTINATION_OFFSET = 41;
|
|
123
|
+
const RECIPIENT_OFFSET = 45;
|
|
124
|
+
const BODY_OFFSET = 77;
|
|
59
125
|
const buf = Buffer.from(ethers_1.utils.arrayify(message));
|
|
60
|
-
const
|
|
61
|
-
const
|
|
62
|
-
const
|
|
63
|
-
const
|
|
64
|
-
const
|
|
65
|
-
|
|
126
|
+
const version = buf.readUint8(VERSION_OFFSET);
|
|
127
|
+
const nonce = buf.readUInt32BE(NONCE_OFFSET);
|
|
128
|
+
const origin = buf.readUInt32BE(ORIGIN_OFFSET);
|
|
129
|
+
const sender = ethers_1.utils.hexlify(buf.slice(SENDER_OFFSET, DESTINATION_OFFSET));
|
|
130
|
+
const destination = buf.readUInt32BE(DESTINATION_OFFSET);
|
|
131
|
+
const recipient = ethers_1.utils.hexlify(buf.slice(RECIPIENT_OFFSET, BODY_OFFSET));
|
|
132
|
+
const body = ethers_1.utils.hexlify(buf.slice(BODY_OFFSET));
|
|
133
|
+
return { version, nonce, origin, sender, destination, recipient, body };
|
|
66
134
|
}
|
|
67
135
|
exports.parseMessage = parseMessage;
|
|
68
|
-
function
|
|
69
|
-
return ethers_1.ethers.utils.solidityKeccak256(['
|
|
70
|
-
}
|
|
71
|
-
exports.messageHash = messageHash;
|
|
72
|
-
function destinationAndNonce(destination, sequence) {
|
|
73
|
-
assert(destination < Math.pow(2, 32) - 1);
|
|
74
|
-
assert(sequence < Math.pow(2, 32) - 1);
|
|
75
|
-
return ethers_1.ethers.BigNumber.from(destination)
|
|
76
|
-
.mul(ethers_1.ethers.BigNumber.from(2).pow(32))
|
|
77
|
-
.add(ethers_1.ethers.BigNumber.from(sequence));
|
|
78
|
-
}
|
|
79
|
-
exports.destinationAndNonce = destinationAndNonce;
|
|
80
|
-
function domainHash(domain) {
|
|
81
|
-
return ethers_1.ethers.utils.solidityKeccak256(['uint32', 'string'], [domain, 'ABACUS']);
|
|
136
|
+
function domainHash(domain, mailbox) {
|
|
137
|
+
return ethers_1.ethers.utils.solidityKeccak256(['uint32', 'bytes32', 'string'], [domain, addressToBytes32(mailbox), 'HYPERLANE']);
|
|
82
138
|
}
|
|
83
139
|
exports.domainHash = domainHash;
|
|
84
140
|
function sleep(ms) {
|
package/dist/src/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
|
package/dist/src/validator.d.ts
CHANGED
|
@@ -6,7 +6,8 @@ import { Address, Checkpoint, Domain, HexString } from './types';
|
|
|
6
6
|
export declare class BaseValidator {
|
|
7
7
|
localDomain: Domain;
|
|
8
8
|
address: Address;
|
|
9
|
-
|
|
9
|
+
mailbox: Address;
|
|
10
|
+
constructor(address: Address, localDomain: Domain, mailbox: Address);
|
|
10
11
|
domainHash(): string;
|
|
11
12
|
message(root: HexString, index: number): string;
|
|
12
13
|
messageHash(root: HexString, index: number): Uint8Array;
|
|
@@ -18,8 +19,8 @@ export declare class BaseValidator {
|
|
|
18
19
|
*/
|
|
19
20
|
export declare class Validator extends BaseValidator {
|
|
20
21
|
protected signer: ethers.Signer;
|
|
21
|
-
constructor(signer: ethers.Signer, address: Address, localDomain: Domain);
|
|
22
|
-
static fromSigner(signer: ethers.Signer, localDomain: Domain): Promise<Validator>;
|
|
22
|
+
constructor(signer: ethers.Signer, address: Address, localDomain: Domain, mailbox: Address);
|
|
23
|
+
static fromSigner(signer: ethers.Signer, localDomain: Domain, mailbox: Address): Promise<Validator>;
|
|
23
24
|
signCheckpoint(root: HexString, index: number): Promise<Checkpoint>;
|
|
24
25
|
}
|
|
25
26
|
//# sourceMappingURL=validator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGjE;;GAEG;AACH,qBAAa,aAAa;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;gBAEL,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGjE;;GAEG;AACH,qBAAa,aAAa;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;gBAEL,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IAMnE,UAAU;IAIV,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM;IAOtC,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM;IAK1C,4BAA4B,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO;IAK7D,aAAa,CAAC,UAAU,EAAE,UAAU;CAMrC;AAED;;GAEG;AACH,qBAAa,SAAU,SAAQ,aAAa;IAExC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM;gBAArB,MAAM,EAAE,MAAM,CAAC,MAAM,EAC/B,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,OAAO;WAKL,UAAU,CACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EACrB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,OAAO;IAUZ,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;CAS1E"}
|
package/dist/src/validator.js
CHANGED
|
@@ -16,15 +16,16 @@ const utils_1 = require("./utils");
|
|
|
16
16
|
* Utilities for validators to construct and verify checkpoints.
|
|
17
17
|
*/
|
|
18
18
|
class BaseValidator {
|
|
19
|
-
constructor(address, localDomain) {
|
|
19
|
+
constructor(address, localDomain, mailbox) {
|
|
20
20
|
this.localDomain = localDomain;
|
|
21
21
|
this.address = address;
|
|
22
|
+
this.mailbox = mailbox;
|
|
22
23
|
}
|
|
23
24
|
domainHash() {
|
|
24
|
-
return (0, utils_1.domainHash)(this.localDomain);
|
|
25
|
+
return (0, utils_1.domainHash)(this.localDomain, this.mailbox);
|
|
25
26
|
}
|
|
26
27
|
message(root, index) {
|
|
27
|
-
return ethers_1.ethers.utils.solidityPack(['bytes32', 'bytes32', '
|
|
28
|
+
return ethers_1.ethers.utils.solidityPack(['bytes32', 'bytes32', 'uint32'], [this.domainHash(), root, index]);
|
|
28
29
|
}
|
|
29
30
|
messageHash(root, index) {
|
|
30
31
|
const message = this.message(root, index);
|
|
@@ -44,13 +45,13 @@ exports.BaseValidator = BaseValidator;
|
|
|
44
45
|
* Extension of BaseValidator that includes ethers signing utilities.
|
|
45
46
|
*/
|
|
46
47
|
class Validator extends BaseValidator {
|
|
47
|
-
constructor(signer, address, localDomain) {
|
|
48
|
-
super(address, localDomain);
|
|
48
|
+
constructor(signer, address, localDomain, mailbox) {
|
|
49
|
+
super(address, localDomain, mailbox);
|
|
49
50
|
this.signer = signer;
|
|
50
51
|
}
|
|
51
|
-
static fromSigner(signer, localDomain) {
|
|
52
|
+
static fromSigner(signer, localDomain, mailbox) {
|
|
52
53
|
return __awaiter(this, void 0, void 0, function* () {
|
|
53
|
-
return new Validator(signer, yield signer.getAddress(), localDomain);
|
|
54
|
+
return new Validator(signer, yield signer.getAddress(), localDomain, mailbox);
|
|
54
55
|
});
|
|
55
56
|
}
|
|
56
57
|
signCheckpoint(root, index) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/validator.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mCAAgC;AAGhC,mCAAqC;AAErC;;GAEG;AACH,MAAa,aAAa;
|
|
1
|
+
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/validator.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mCAAgC;AAGhC,mCAAqC;AAErC;;GAEG;AACH,MAAa,aAAa;IAKxB,YAAY,OAAgB,EAAE,WAAmB,EAAE,OAAgB;QACjE,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,UAAU;QACR,OAAO,IAAA,kBAAU,EAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,OAAO,CAAC,IAAe,EAAE,KAAa;QACpC,OAAO,eAAM,CAAC,KAAK,CAAC,YAAY,CAC9B,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,EAChC,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,CACjC,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,IAAe,EAAE,KAAa;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC1C,OAAO,eAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,eAAM,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,4BAA4B,CAAC,UAAsB;QACjD,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;QACpE,OAAO,eAAM,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;IACnE,CAAC;IAED,aAAa,CAAC,UAAsB;QAClC,OAAO,CACL,IAAI,CAAC,4BAA4B,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE;YAC3D,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAC3B,CAAC;IACJ,CAAC;CACF;AAtCD,sCAsCC;AAED;;GAEG;AACH,MAAa,SAAU,SAAQ,aAAa;IAC1C,YACY,MAAqB,EAC/B,OAAgB,EAChB,WAAmB,EACnB,OAAgB;QAEhB,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;QAL3B,WAAM,GAAN,MAAM,CAAe;IAMjC,CAAC;IAED,MAAM,CAAO,UAAU,CACrB,MAAqB,EACrB,WAAmB,EACnB,OAAgB;;YAEhB,OAAO,IAAI,SAAS,CAClB,MAAM,EACN,MAAM,MAAM,CAAC,UAAU,EAAE,EACzB,WAAW,EACX,OAAO,CACR,CAAC;QACJ,CAAC;KAAA;IAEK,cAAc,CAAC,IAAe,EAAE,KAAa;;YACjD,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC9C,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACzD,OAAO;gBACL,IAAI;gBACJ,KAAK;gBACL,SAAS;aACV,CAAC;QACJ,CAAC;KAAA;CACF;AAhCD,8BAgCC"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hyperlane-xyz/utils",
|
|
3
3
|
"description": "General utilities for the Hyperlane network",
|
|
4
|
-
"version": "1.0.0-
|
|
4
|
+
"version": "1.0.0-beta5",
|
|
5
5
|
"dependencies": {
|
|
6
|
-
"ethers": "^5.
|
|
6
|
+
"ethers": "^5.7.2"
|
|
7
7
|
},
|
|
8
8
|
"devDependencies": {
|
|
9
9
|
"chai": "^4.3.0",
|
|
@@ -31,4 +31,4 @@
|
|
|
31
31
|
"/dist"
|
|
32
32
|
],
|
|
33
33
|
"stableVersion": "1.0.0-beta2"
|
|
34
|
-
}
|
|
34
|
+
}
|