@hyperlane-xyz/utils 3.10.0 → 3.10.1-beta1
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/README.md +20 -0
- package/dist/addresses.d.ts +42 -0
- package/dist/addresses.d.ts.map +1 -0
- package/dist/addresses.js +292 -0
- package/dist/addresses.js.map +1 -0
- package/dist/addresses.test.d.ts +2 -0
- package/dist/addresses.test.d.ts.map +1 -0
- package/dist/addresses.test.js +44 -0
- package/dist/addresses.test.js.map +1 -0
- package/dist/amount.d.ts +45 -0
- package/dist/amount.d.ts.map +1 -0
- package/dist/amount.js +114 -0
- package/dist/amount.js.map +1 -0
- package/dist/amount.test.d.ts +2 -0
- package/dist/amount.test.d.ts.map +1 -0
- package/dist/amount.test.js +46 -0
- package/dist/amount.test.js.map +1 -0
- package/dist/arrays.d.ts +8 -0
- package/dist/arrays.d.ts.map +1 -0
- package/dist/arrays.js +11 -0
- package/dist/arrays.js.map +1 -0
- package/dist/async.d.ts +56 -0
- package/dist/async.d.ts.map +1 -0
- package/dist/async.js +110 -0
- package/dist/async.js.map +1 -0
- package/dist/base58.d.ts +5 -0
- package/dist/base58.d.ts.map +1 -0
- package/dist/base58.js +15 -0
- package/dist/base58.js.map +1 -0
- package/dist/base64.d.ts +3 -0
- package/dist/base64.d.ts.map +1 -0
- package/dist/base64.js +25 -0
- package/dist/base64.js.map +1 -0
- package/dist/big-numbers.d.ts +50 -0
- package/dist/big-numbers.d.ts.map +1 -0
- package/dist/big-numbers.js +80 -0
- package/dist/big-numbers.js.map +1 -0
- package/dist/big-numbers.test.d.ts +2 -0
- package/dist/big-numbers.test.d.ts.map +1 -0
- package/dist/big-numbers.test.js +96 -0
- package/dist/big-numbers.test.js.map +1 -0
- package/dist/calldata.d.ts +3 -0
- package/dist/calldata.d.ts.map +1 -0
- package/dist/calldata.js +4 -0
- package/dist/calldata.js.map +1 -0
- package/dist/checkpoints.d.ts +5 -0
- package/dist/checkpoints.d.ts.map +1 -0
- package/dist/checkpoints.js +24 -0
- package/dist/checkpoints.js.map +1 -0
- package/dist/domains.d.ts +2 -0
- package/dist/domains.d.ts.map +1 -0
- package/dist/domains.js +6 -0
- package/dist/domains.js.map +1 -0
- package/dist/env.d.ts +2 -0
- package/dist/env.d.ts.map +1 -0
- package/dist/env.js +11 -0
- package/dist/env.js.map +1 -0
- package/dist/ids.d.ts +20 -0
- package/dist/ids.d.ts.map +1 -0
- package/dist/ids.js +42 -0
- package/dist/ids.js.map +1 -0
- package/dist/index.d.ts +23 -23
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +23 -146
- package/dist/index.js.map +1 -1
- package/dist/logging.d.ts +21 -0
- package/dist/logging.d.ts.map +1 -0
- package/dist/logging.js +91 -0
- package/dist/logging.js.map +1 -0
- package/dist/math.d.ts +5 -0
- package/dist/math.d.ts.map +1 -0
- package/dist/math.js +18 -0
- package/dist/math.js.map +1 -0
- package/dist/messages.d.ts +21 -0
- package/dist/messages.d.ts.map +1 -0
- package/dist/messages.js +52 -0
- package/dist/messages.js.map +1 -0
- package/dist/multisig.d.ts +4 -0
- package/dist/multisig.d.ts.map +1 -0
- package/dist/multisig.js +53 -0
- package/dist/multisig.js.map +1 -0
- package/dist/objects.d.ts +19 -0
- package/dist/objects.d.ts.map +1 -0
- package/dist/objects.js +95 -0
- package/dist/objects.js.map +1 -0
- package/dist/sets.d.ts +4 -0
- package/dist/sets.d.ts.map +1 -0
- package/dist/sets.js +24 -0
- package/dist/sets.js.map +1 -0
- package/dist/src/types.d.ts +1 -2
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js.map +1 -1
- package/dist/strings.d.ts +7 -0
- package/dist/strings.d.ts.map +1 -0
- package/dist/strings.js +43 -0
- package/dist/strings.js.map +1 -0
- package/dist/typeof.d.ts +3 -0
- package/dist/typeof.d.ts.map +1 -0
- package/dist/typeof.js +7 -0
- package/dist/typeof.js.map +1 -0
- package/dist/types.d.ts +88 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +22 -0
- package/dist/types.js.map +1 -0
- package/dist/validation.d.ts +2 -0
- package/dist/validation.d.ts.map +1 -0
- package/dist/validation.js +6 -0
- package/dist/validation.js.map +1 -0
- package/dist/validator.d.ts +17 -0
- package/dist/validator.d.ts.map +1 -0
- package/dist/validator.js +43 -0
- package/dist/validator.js.map +1 -0
- package/package.json +13 -8
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { BigNumber } from 'ethers';
|
|
2
|
+
import { Address, Domain, HexString, ParsedMessage } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* JS Implementation of solidity/contracts/libs/Message.sol#formatMessage
|
|
5
|
+
* @returns Hex string of the packed message
|
|
6
|
+
*/
|
|
7
|
+
export declare const formatMessage: (version: number | BigNumber, nonce: number | BigNumber, originDomain: Domain, senderAddr: Address, destinationDomain: Domain, recipientAddr: Address, body: HexString) => HexString;
|
|
8
|
+
/**
|
|
9
|
+
* Get ID given message bytes
|
|
10
|
+
* @param message Hex string of the packed message (see formatMessage)
|
|
11
|
+
* @returns Hex string of message id
|
|
12
|
+
*/
|
|
13
|
+
export declare function messageId(message: HexString): HexString;
|
|
14
|
+
/**
|
|
15
|
+
* Parse a serialized Hyperlane message from raw bytes.
|
|
16
|
+
*
|
|
17
|
+
* @param message
|
|
18
|
+
* @returns
|
|
19
|
+
*/
|
|
20
|
+
export declare function parseMessage(message: string): ParsedMessage;
|
|
21
|
+
//# sourceMappingURL=messages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../src/messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAiB,MAAM,QAAQ,CAAC;AAGlD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEvE;;;GAGG;AACH,eAAO,MAAM,aAAa,YACf,MAAM,GAAG,SAAS,SACpB,MAAM,GAAG,SAAS,gBACX,MAAM,cACR,OAAO,qBACA,MAAM,iBACV,OAAO,QAChB,SAAS,KACd,SAgBF,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,SAAS,GAAG,SAAS,CAEvD;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CAkB3D"}
|
package/dist/messages.js
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { ethers, utils } from 'ethers';
|
|
2
|
+
import { addressToBytes32 } from './addresses.js';
|
|
3
|
+
/**
|
|
4
|
+
* JS Implementation of solidity/contracts/libs/Message.sol#formatMessage
|
|
5
|
+
* @returns Hex string of the packed message
|
|
6
|
+
*/
|
|
7
|
+
export const formatMessage = (version, nonce, originDomain, senderAddr, destinationDomain, recipientAddr, body) => {
|
|
8
|
+
senderAddr = addressToBytes32(senderAddr);
|
|
9
|
+
recipientAddr = addressToBytes32(recipientAddr);
|
|
10
|
+
return ethers.utils.solidityPack(['uint8', 'uint32', 'uint32', 'bytes32', 'uint32', 'bytes32', 'bytes'], [
|
|
11
|
+
version,
|
|
12
|
+
nonce,
|
|
13
|
+
originDomain,
|
|
14
|
+
senderAddr,
|
|
15
|
+
destinationDomain,
|
|
16
|
+
recipientAddr,
|
|
17
|
+
body,
|
|
18
|
+
]);
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Get ID given message bytes
|
|
22
|
+
* @param message Hex string of the packed message (see formatMessage)
|
|
23
|
+
* @returns Hex string of message id
|
|
24
|
+
*/
|
|
25
|
+
export function messageId(message) {
|
|
26
|
+
return ethers.utils.solidityKeccak256(['bytes'], [message]);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Parse a serialized Hyperlane message from raw bytes.
|
|
30
|
+
*
|
|
31
|
+
* @param message
|
|
32
|
+
* @returns
|
|
33
|
+
*/
|
|
34
|
+
export function parseMessage(message) {
|
|
35
|
+
const VERSION_OFFSET = 0;
|
|
36
|
+
const NONCE_OFFSET = 1;
|
|
37
|
+
const ORIGIN_OFFSET = 5;
|
|
38
|
+
const SENDER_OFFSET = 9;
|
|
39
|
+
const DESTINATION_OFFSET = 41;
|
|
40
|
+
const RECIPIENT_OFFSET = 45;
|
|
41
|
+
const BODY_OFFSET = 77;
|
|
42
|
+
const buf = Buffer.from(utils.arrayify(message));
|
|
43
|
+
const version = buf.readUint8(VERSION_OFFSET);
|
|
44
|
+
const nonce = buf.readUInt32BE(NONCE_OFFSET);
|
|
45
|
+
const origin = buf.readUInt32BE(ORIGIN_OFFSET);
|
|
46
|
+
const sender = utils.hexlify(buf.slice(SENDER_OFFSET, DESTINATION_OFFSET));
|
|
47
|
+
const destination = buf.readUInt32BE(DESTINATION_OFFSET);
|
|
48
|
+
const recipient = utils.hexlify(buf.slice(RECIPIENT_OFFSET, BODY_OFFSET));
|
|
49
|
+
const body = utils.hexlify(buf.slice(BODY_OFFSET));
|
|
50
|
+
return { version, nonce, origin, sender, destination, recipient, body };
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=messages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../src/messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAElD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGlD;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,OAA2B,EAC3B,KAAyB,EACzB,YAAoB,EACpB,UAAmB,EACnB,iBAAyB,EACzB,aAAsB,EACtB,IAAe,EACJ,EAAE;IACb,UAAU,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAC1C,aAAa,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAEhD,OAAO,MAAM,CAAC,KAAK,CAAC,YAAY,CAC9B,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,EACtE;QACE,OAAO;QACP,KAAK;QACL,YAAY;QACZ,UAAU;QACV,iBAAiB;QACjB,aAAa;QACb,IAAI;KACL,CACF,CAAC;AACJ,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,OAAkB;IAC1C,OAAO,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,MAAM,cAAc,GAAG,CAAC,CAAC;IACzB,MAAM,YAAY,GAAG,CAAC,CAAC;IACvB,MAAM,aAAa,GAAG,CAAC,CAAC;IACxB,MAAM,aAAa,GAAG,CAAC,CAAC;IACxB,MAAM,kBAAkB,GAAG,EAAE,CAAC;IAC9B,MAAM,gBAAgB,GAAG,EAAE,CAAC;IAC5B,MAAM,WAAW,GAAG,EAAE,CAAC;IAEvB,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAC3E,MAAM,WAAW,GAAG,GAAG,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;IACzD,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC,CAAC;IAC1E,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;IACnD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAC1E,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { ParsedLegacyMultisigIsmMetadata } from './types.js';
|
|
2
|
+
export declare const parseLegacyMultisigIsmMetadata: (metadata: string) => ParsedLegacyMultisigIsmMetadata;
|
|
3
|
+
export declare const formatLegacyMultisigIsmMetadata: (metadata: ParsedLegacyMultisigIsmMetadata) => string;
|
|
4
|
+
//# sourceMappingURL=multisig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multisig.d.ts","sourceRoot":"","sources":["../src/multisig.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,+BAA+B,EAAE,MAAM,YAAY,CAAC;AAE7D,eAAO,MAAM,8BAA8B,aAC/B,MAAM,KACf,+BA4CF,CAAC;AAEF,eAAO,MAAM,+BAA+B,aAChC,+BAA+B,KACxC,MAqBF,CAAC"}
|
package/dist/multisig.js
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { BigNumber } from 'bignumber.js';
|
|
2
|
+
import { utils } from 'ethers';
|
|
3
|
+
import { addressToBytes32 } from './addresses.js';
|
|
4
|
+
export const parseLegacyMultisigIsmMetadata = (metadata) => {
|
|
5
|
+
const MERKLE_ROOT_OFFSET = 0;
|
|
6
|
+
const MERKLE_INDEX_OFFSET = 32;
|
|
7
|
+
const ORIGIN_MAILBOX_OFFSET = 36;
|
|
8
|
+
const MERKLE_PROOF_OFFSET = 68;
|
|
9
|
+
const THRESHOLD_OFFSET = 1092;
|
|
10
|
+
const SIGNATURES_OFFSET = 1093;
|
|
11
|
+
const SIGNATURE_LENGTH = 65;
|
|
12
|
+
const buf = Buffer.from(utils.arrayify(metadata));
|
|
13
|
+
const checkpointRoot = utils.hexlify(buf.slice(MERKLE_ROOT_OFFSET, MERKLE_INDEX_OFFSET));
|
|
14
|
+
const checkpointIndex = BigNumber(utils.hexlify(buf.slice(MERKLE_INDEX_OFFSET, ORIGIN_MAILBOX_OFFSET))).toNumber();
|
|
15
|
+
const originMailbox = utils.hexlify(buf.slice(ORIGIN_MAILBOX_OFFSET, MERKLE_PROOF_OFFSET));
|
|
16
|
+
const parseBytesArray = (start, count, size) => {
|
|
17
|
+
return [...Array(count).keys()].map((i) => utils.hexlify(buf.slice(start + size * i, start + size * (i + 1))));
|
|
18
|
+
};
|
|
19
|
+
const proof = parseBytesArray(MERKLE_PROOF_OFFSET, 32, 32);
|
|
20
|
+
const threshold = BigNumber(utils.hexlify(buf.slice(THRESHOLD_OFFSET, SIGNATURES_OFFSET))).toNumber();
|
|
21
|
+
const signatures = parseBytesArray(SIGNATURES_OFFSET, threshold, SIGNATURE_LENGTH);
|
|
22
|
+
const VALIDATORS_OFFSET = SIGNATURES_OFFSET + threshold * SIGNATURE_LENGTH;
|
|
23
|
+
const addressesCount = buf.slice(VALIDATORS_OFFSET).length / 32;
|
|
24
|
+
const validators = parseBytesArray(VALIDATORS_OFFSET, addressesCount, 32);
|
|
25
|
+
return {
|
|
26
|
+
checkpointRoot,
|
|
27
|
+
checkpointIndex,
|
|
28
|
+
originMailbox,
|
|
29
|
+
proof,
|
|
30
|
+
signatures,
|
|
31
|
+
validators,
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
export const formatLegacyMultisigIsmMetadata = (metadata) => {
|
|
35
|
+
return utils.solidityPack([
|
|
36
|
+
'bytes32',
|
|
37
|
+
'uint32',
|
|
38
|
+
'bytes32',
|
|
39
|
+
'bytes32[32]',
|
|
40
|
+
'uint8',
|
|
41
|
+
'bytes',
|
|
42
|
+
'address[]',
|
|
43
|
+
], [
|
|
44
|
+
metadata.checkpointRoot,
|
|
45
|
+
metadata.checkpointIndex,
|
|
46
|
+
addressToBytes32(metadata.originMailbox),
|
|
47
|
+
metadata.proof,
|
|
48
|
+
metadata.signatures.length,
|
|
49
|
+
utils.hexConcat(metadata.signatures),
|
|
50
|
+
metadata.validators,
|
|
51
|
+
]);
|
|
52
|
+
};
|
|
53
|
+
//# sourceMappingURL=multisig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multisig.js","sourceRoot":"","sources":["../src/multisig.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export declare function isObject(item: any): any;
|
|
2
|
+
export declare function deepEquals(v1: any, v2: any): boolean;
|
|
3
|
+
export declare function deepCopy(v: any): any;
|
|
4
|
+
export type ValueOf<T> = T[keyof T];
|
|
5
|
+
export declare function objKeys<T extends string | number>(obj: Record<T, any>): T[];
|
|
6
|
+
export declare function objLength(obj: Record<any, any>): number;
|
|
7
|
+
export declare function isObjEmpty(obj: Record<any, any>): boolean;
|
|
8
|
+
export declare function objMapEntries<M extends Record<K, I>, K extends keyof M, O, I = ValueOf<M>>(obj: M, func: (k: K, v: I) => O): [K, O][];
|
|
9
|
+
export declare function objMap<M extends Record<K, I>, K extends keyof M, O, I = ValueOf<M>>(obj: M, func: (k: K, v: I) => O): Record<K, O>;
|
|
10
|
+
export declare function objFilter<K extends string, I, O extends I>(obj: Record<K, I>, func: (k: K, v: I) => v is O): Record<K, O>;
|
|
11
|
+
export declare function promiseObjAll<K extends string, V>(obj: {
|
|
12
|
+
[key in K]: Promise<V>;
|
|
13
|
+
}): Promise<Record<K, V>>;
|
|
14
|
+
export declare function pick<K extends string, V = any>(obj: Record<K, V>, keys: K[]): Record<K, V>;
|
|
15
|
+
export declare function objMerge(a: Record<string, any>, b: Record<string, any>, max_depth?: number): any;
|
|
16
|
+
export declare function invertKeysAndValues(data: any): any;
|
|
17
|
+
export declare function arrayToObject(keys: Array<string>, val?: boolean): Record<string, boolean>;
|
|
18
|
+
export declare function stringifyObject(object: object, format?: 'json' | 'yaml', space?: number): string;
|
|
19
|
+
//# sourceMappingURL=objects.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"objects.d.ts","sourceRoot":"","sources":["../src/objects.ts"],"names":[],"mappings":"AAIA,wBAAgB,QAAQ,CAAC,IAAI,EAAE,GAAG,OAEjC;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,WAE1C;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,GAAG,OAE9B;AAED,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAGpC,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAE3E;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,UAE9C;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,WAE/C;AAED,wBAAgB,aAAa,CAC3B,CAAC,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EACtB,CAAC,SAAS,MAAM,CAAC,EACjB,CAAC,EACD,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EACd,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAE3C;AAGD,wBAAgB,MAAM,CACpB,CAAC,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EACtB,CAAC,SAAS,MAAM,CAAC,EACjB,CAAC,EACD,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EACd,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAE/C;AAED,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,EACxD,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAC3B,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAId;AAGD,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE;KACrD,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CACvB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAKxB;AAGD,wBAAgB,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,gBAS3E;AAID,wBAAgB,QAAQ,CACtB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACtB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACtB,SAAS,SAAK,GACb,GAAG,CAsBL;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,GAAG,OAI5C;AAGD,wBAAgB,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,UAAO,2BAK5D;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,MAAM,GAAG,MAAe,EAChC,KAAK,CAAC,EAAE,MAAM,GACb,MAAM,CAQR"}
|
package/dist/objects.js
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { stringify as yamlStringify } from 'yaml';
|
|
2
|
+
import { ethersBigNumberSerializer } from './logging.js';
|
|
3
|
+
export function isObject(item) {
|
|
4
|
+
return item && typeof item === 'object' && !Array.isArray(item);
|
|
5
|
+
}
|
|
6
|
+
export function deepEquals(v1, v2) {
|
|
7
|
+
return JSON.stringify(v1) === JSON.stringify(v2);
|
|
8
|
+
}
|
|
9
|
+
export function deepCopy(v) {
|
|
10
|
+
return JSON.parse(JSON.stringify(v));
|
|
11
|
+
}
|
|
12
|
+
// Useful for maintaining type safety when using Object.keys
|
|
13
|
+
export function objKeys(obj) {
|
|
14
|
+
return Object.keys(obj);
|
|
15
|
+
}
|
|
16
|
+
export function objLength(obj) {
|
|
17
|
+
return Object.keys(obj).length;
|
|
18
|
+
}
|
|
19
|
+
export function isObjEmpty(obj) {
|
|
20
|
+
return objLength(obj) === 0;
|
|
21
|
+
}
|
|
22
|
+
export function objMapEntries(obj, func) {
|
|
23
|
+
return Object.entries(obj).map(([k, v]) => [k, func(k, v)]);
|
|
24
|
+
}
|
|
25
|
+
// Map over the values of the object
|
|
26
|
+
export function objMap(obj, func) {
|
|
27
|
+
return Object.fromEntries(objMapEntries(obj, func));
|
|
28
|
+
}
|
|
29
|
+
export function objFilter(obj, func) {
|
|
30
|
+
return Object.fromEntries(Object.entries(obj).filter(([k, v]) => func(k, v)));
|
|
31
|
+
}
|
|
32
|
+
// promiseObjectAll :: {k: Promise a} -> Promise {k: a}
|
|
33
|
+
export function promiseObjAll(obj) {
|
|
34
|
+
const promiseList = Object.entries(obj).map(([name, promise]) => promise.then((result) => [name, result]));
|
|
35
|
+
return Promise.all(promiseList).then(Object.fromEntries);
|
|
36
|
+
}
|
|
37
|
+
// Get the subset of the object from key list
|
|
38
|
+
export function pick(obj, keys) {
|
|
39
|
+
const ret = {};
|
|
40
|
+
const objKeys = Object.keys(obj);
|
|
41
|
+
for (const key of keys) {
|
|
42
|
+
if (objKeys.includes(key)) {
|
|
43
|
+
ret[key] = obj[key];
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return ret;
|
|
47
|
+
}
|
|
48
|
+
// Recursively merges b into a
|
|
49
|
+
// Where there are conflicts, b takes priority over a
|
|
50
|
+
export function objMerge(a, b, max_depth = 10) {
|
|
51
|
+
if (max_depth === 0) {
|
|
52
|
+
throw new Error('objMerge tried to go too deep');
|
|
53
|
+
}
|
|
54
|
+
if (isObject(a) && isObject(b)) {
|
|
55
|
+
const ret = {};
|
|
56
|
+
const aKeys = new Set(Object.keys(a));
|
|
57
|
+
const bKeys = new Set(Object.keys(b));
|
|
58
|
+
const allKeys = new Set([...aKeys, ...bKeys]);
|
|
59
|
+
for (const key of allKeys.values()) {
|
|
60
|
+
if (aKeys.has(key) && bKeys.has(key)) {
|
|
61
|
+
ret[key] = objMerge(a[key], b[key], max_depth - 1);
|
|
62
|
+
}
|
|
63
|
+
else if (aKeys.has(key)) {
|
|
64
|
+
ret[key] = a[key];
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
ret[key] = b[key];
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return ret;
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
return b ? b : a;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
export function invertKeysAndValues(data) {
|
|
77
|
+
return Object.fromEntries(Object.entries(data).map(([key, value]) => [value, key]));
|
|
78
|
+
}
|
|
79
|
+
// Returns an object with the keys as values from an array and value set to true
|
|
80
|
+
export function arrayToObject(keys, val = true) {
|
|
81
|
+
return keys.reduce((result, k) => {
|
|
82
|
+
result[k] = val;
|
|
83
|
+
return result;
|
|
84
|
+
}, {});
|
|
85
|
+
}
|
|
86
|
+
export function stringifyObject(object, format = 'yaml', space) {
|
|
87
|
+
// run through JSON first because ethersBigNumberSerializer does not play nice with yamlStringify
|
|
88
|
+
// so we fix up in JSON, then parse and if required return yaml on processed JSON after
|
|
89
|
+
const json = JSON.stringify(object, ethersBigNumberSerializer, space);
|
|
90
|
+
if (format === 'json') {
|
|
91
|
+
return json;
|
|
92
|
+
}
|
|
93
|
+
return yamlStringify(JSON.parse(json), null, space);
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=objects.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"objects.js","sourceRoot":"","sources":["../src/objects.ts"],"names":[],"mappings":"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"}
|
package/dist/sets.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sets.d.ts","sourceRoot":"","sources":["../src/sets.ts"],"names":[],"mappings":"AACA,wBAAgB,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,UAMjD;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,UAU1D;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,WAElD"}
|
package/dist/sets.js
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set#implementing_basic_set_operations
|
|
2
|
+
export function difference(a, b) {
|
|
3
|
+
const _difference = new Set(a);
|
|
4
|
+
for (const elem of b) {
|
|
5
|
+
_difference.delete(elem);
|
|
6
|
+
}
|
|
7
|
+
return _difference;
|
|
8
|
+
}
|
|
9
|
+
export function symmetricDifference(a, b) {
|
|
10
|
+
const _difference = new Set(a);
|
|
11
|
+
for (const elem of b) {
|
|
12
|
+
if (_difference.has(elem)) {
|
|
13
|
+
_difference.delete(elem);
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
_difference.add(elem);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return _difference;
|
|
20
|
+
}
|
|
21
|
+
export function setEquality(a, b) {
|
|
22
|
+
return symmetricDifference(a, b).size === 0;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=sets.js.map
|
package/dist/sets.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sets.js","sourceRoot":"","sources":["../src/sets.ts"],"names":[],"mappings":"AAAA,yHAAyH;AACzH,MAAM,UAAU,UAAU,CAAI,CAAS,EAAE,CAAS;IAChD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,CAAC,EAAE,CAAC;QACrB,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAI,CAAS,EAAE,CAAS;IACzD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,CAAC,EAAE,CAAC;QACrB,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,WAAW,CAAI,CAAS,EAAE,CAAS;IACjD,OAAO,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC;AAC9C,CAAC"}
|
package/dist/src/types.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ethers } from 'ethers';
|
|
2
2
|
export declare enum ProtocolType {
|
|
3
3
|
Ethereum = "ethereum",
|
|
4
4
|
Sealevel = "sealevel",
|
|
@@ -56,7 +56,6 @@ export type S3Checkpoint = {
|
|
|
56
56
|
export type CallData = {
|
|
57
57
|
to: Address;
|
|
58
58
|
data: string;
|
|
59
|
-
value?: BigNumber;
|
|
60
59
|
};
|
|
61
60
|
export declare enum MessageStatus {
|
|
62
61
|
NONE = 0,
|
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,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/src/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;AAEA,IAAY,YAKX;AALD,WAAY,YAAY;IACtB,qCAAqB,CAAA;IACrB,qCAAqB,CAAA;IACrB,6BAAa,CAAA;IACb,iCAAiB,CAAA;AACnB,CAAC,EALW,YAAY,4BAAZ,YAAY,QAKvB;AAIY,QAAA,oBAAoB,GAAG;IAClC,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,KAAK;IAC9B,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,UAAU;IACnC,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,OAAO;CAC/B,CAAC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;AAEA,IAAY,YAKX;AALD,WAAY,YAAY;IACtB,qCAAqB,CAAA;IACrB,qCAAqB,CAAA;IACrB,6BAAa,CAAA;IACb,iCAAiB,CAAA;AACnB,CAAC,EALW,YAAY,4BAAZ,YAAY,QAKvB;AAIY,QAAA,oBAAoB,GAAG;IAClC,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,KAAK;IAC9B,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,UAAU;IACnC,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,OAAO;CAC/B,CAAC;AA0DF,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,iDAAQ,CAAA;IACR,2DAAS,CAAA;AACX,CAAC,EAHW,aAAa,6BAAb,aAAa,QAGxB;AAqBD,IAAY,4BAEX;AAFD,WAAY,4BAA4B;IACtC,uFAAY,CAAA;AACd,CAAC,EAFW,4BAA4B,4CAA5B,4BAA4B,QAEvC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
+
export declare function toTitleCase(str: string): string;
|
|
3
|
+
export declare function sanitizeString(str: string): string;
|
|
4
|
+
export declare function trimToLength(value: string, maxLength: number): string;
|
|
5
|
+
export declare function streamToString(stream: NodeJS.ReadableStream): Promise<string>;
|
|
6
|
+
export declare function errorToString(error: any, maxLength?: number): string;
|
|
7
|
+
//# sourceMappingURL=strings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strings.d.ts","sourceRoot":"","sources":["../src/strings.ts"],"names":[],"mappings":";AAAA,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,UAItC;AAID,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,UAGzC;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,UAM5D;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAS7E;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,SAAM,UAOxD"}
|
package/dist/strings.js
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
export function toTitleCase(str) {
|
|
2
|
+
return str.replace(/\w\S*/g, (txt) => {
|
|
3
|
+
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
|
|
4
|
+
});
|
|
5
|
+
}
|
|
6
|
+
// Only allows letters and numbers
|
|
7
|
+
const alphanumericRgex = /[^a-zA-Z0-9]/gi;
|
|
8
|
+
export function sanitizeString(str) {
|
|
9
|
+
if (!str || typeof str !== 'string')
|
|
10
|
+
return '';
|
|
11
|
+
return str.replaceAll(alphanumericRgex, '').toLowerCase();
|
|
12
|
+
}
|
|
13
|
+
export function trimToLength(value, maxLength) {
|
|
14
|
+
if (!value)
|
|
15
|
+
return '';
|
|
16
|
+
const trimmed = value.trim();
|
|
17
|
+
return trimmed.length > maxLength
|
|
18
|
+
? trimmed.substring(0, maxLength) + '...'
|
|
19
|
+
: trimmed;
|
|
20
|
+
}
|
|
21
|
+
export function streamToString(stream) {
|
|
22
|
+
return new Promise((resolve, reject) => {
|
|
23
|
+
const chunks = [];
|
|
24
|
+
stream
|
|
25
|
+
.setEncoding('utf8')
|
|
26
|
+
.on('data', (chunk) => chunks.push(chunk))
|
|
27
|
+
.on('error', (err) => reject(err))
|
|
28
|
+
.on('end', () => resolve(String.prototype.concat(...chunks)));
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
export function errorToString(error, maxLength = 300) {
|
|
32
|
+
if (!error)
|
|
33
|
+
return 'Unknown Error';
|
|
34
|
+
if (typeof error === 'string')
|
|
35
|
+
return trimToLength(error, maxLength);
|
|
36
|
+
if (typeof error === 'number')
|
|
37
|
+
return `Error code: ${error}`;
|
|
38
|
+
const details = error.message || error.reason || error;
|
|
39
|
+
if (typeof details === 'string')
|
|
40
|
+
return trimToLength(details, maxLength);
|
|
41
|
+
return trimToLength(JSON.stringify(details), maxLength);
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=strings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strings.js","sourceRoot":"","sources":["../src/strings.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,OAAO,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE;QACnC,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACnE,CAAC,CAAC,CAAC;AACL,CAAC;AAED,kCAAkC;AAClC,MAAM,gBAAgB,GAAG,gBAAgB,CAAC;AAC1C,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IAC/C,OAAO,GAAG,CAAC,UAAU,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAa,EAAE,SAAiB;IAC3D,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,OAAO,OAAO,CAAC,MAAM,GAAG,SAAS;QAC/B,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,KAAK;QACzC,CAAC,CAAC,OAAO,CAAC;AACd,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAA6B;IAC1D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM;aACH,WAAW,CAAC,MAAM,CAAC;aACnB,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACzC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;aACjC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAU,EAAE,SAAS,GAAG,GAAG;IACvD,IAAI,CAAC,KAAK;QAAE,OAAO,eAAe,CAAC;IACnC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACrE,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,eAAe,KAAK,EAAE,CAAC;IAC7D,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC;IACvD,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACzE,OAAO,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC;AAC1D,CAAC"}
|
package/dist/typeof.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typeof.d.ts","sourceRoot":"","sources":["../src/typeof.ts"],"names":[],"mappings":"AAAA,wBAAgB,SAAS,CAAC,CAAC,EACzB,GAAG,EAAE,CAAC,GACL,GAAG,IAAI,CAAC,SAAS,IAAI,GAAG,SAAS,GAAG,CAAC,GAAG,KAAK,CAE/C;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,WAE/C"}
|
package/dist/typeof.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typeof.js","sourceRoot":"","sources":["../src/typeof.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,SAAS,CACvB,GAAM;IAEN,OAAO,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAsB;IAC9C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1D,CAAC"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import type { BigNumber, ethers } from 'ethers';
|
|
2
|
+
export declare enum ProtocolType {
|
|
3
|
+
Ethereum = "ethereum",
|
|
4
|
+
Sealevel = "sealevel",
|
|
5
|
+
Fuel = "fuel",
|
|
6
|
+
Cosmos = "cosmos"
|
|
7
|
+
}
|
|
8
|
+
export type ProtocolTypeValue = `${ProtocolType}`;
|
|
9
|
+
export declare const ProtocolSmallestUnit: {
|
|
10
|
+
ethereum: string;
|
|
11
|
+
sealevel: string;
|
|
12
|
+
cosmos: string;
|
|
13
|
+
};
|
|
14
|
+
/********* BASIC TYPES *********/
|
|
15
|
+
export type Domain = number;
|
|
16
|
+
export type ChainId = string | number;
|
|
17
|
+
export type Address = string;
|
|
18
|
+
export type AddressBytes32 = string;
|
|
19
|
+
export type ChainCaip2Id = `${string}:${string}`;
|
|
20
|
+
export type TokenCaip19Id = `${string}:${string}/${string}:${string}`;
|
|
21
|
+
export type HexString = string;
|
|
22
|
+
export type Numberish = number | string | bigint;
|
|
23
|
+
export type WithAddress<T> = T & {
|
|
24
|
+
address: Address;
|
|
25
|
+
};
|
|
26
|
+
export type SignatureLike = {
|
|
27
|
+
r: string;
|
|
28
|
+
s?: string;
|
|
29
|
+
_vs?: string;
|
|
30
|
+
recoveryParam?: number;
|
|
31
|
+
v?: number;
|
|
32
|
+
} | ethers.utils.BytesLike;
|
|
33
|
+
export type MerkleProof = {
|
|
34
|
+
branch: ethers.utils.BytesLike[];
|
|
35
|
+
leaf: ethers.utils.BytesLike;
|
|
36
|
+
index: number;
|
|
37
|
+
};
|
|
38
|
+
/********* HYPERLANE CORE *********/
|
|
39
|
+
export type Checkpoint = {
|
|
40
|
+
root: string;
|
|
41
|
+
index: number;
|
|
42
|
+
mailbox_domain: Domain;
|
|
43
|
+
merkle_tree_hook_address: Address;
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Shape of a checkpoint in S3 as published by the agent.
|
|
47
|
+
*/
|
|
48
|
+
export type S3CheckpointWithId = {
|
|
49
|
+
value: {
|
|
50
|
+
checkpoint: Checkpoint;
|
|
51
|
+
message_id: HexString;
|
|
52
|
+
};
|
|
53
|
+
signature: SignatureLike;
|
|
54
|
+
};
|
|
55
|
+
export type S3Checkpoint = {
|
|
56
|
+
value: Checkpoint;
|
|
57
|
+
signature: SignatureLike;
|
|
58
|
+
};
|
|
59
|
+
export type CallData = {
|
|
60
|
+
to: Address;
|
|
61
|
+
data: string;
|
|
62
|
+
value?: BigNumber;
|
|
63
|
+
};
|
|
64
|
+
export declare enum MessageStatus {
|
|
65
|
+
NONE = 0,
|
|
66
|
+
PROCESSED = 1
|
|
67
|
+
}
|
|
68
|
+
export type ParsedMessage = {
|
|
69
|
+
version: number;
|
|
70
|
+
nonce: number;
|
|
71
|
+
origin: number;
|
|
72
|
+
sender: string;
|
|
73
|
+
destination: number;
|
|
74
|
+
recipient: string;
|
|
75
|
+
body: string;
|
|
76
|
+
};
|
|
77
|
+
export type ParsedLegacyMultisigIsmMetadata = {
|
|
78
|
+
checkpointRoot: string;
|
|
79
|
+
checkpointIndex: number;
|
|
80
|
+
originMailbox: string;
|
|
81
|
+
proof: ethers.utils.BytesLike[];
|
|
82
|
+
signatures: ethers.utils.BytesLike[];
|
|
83
|
+
validators: ethers.utils.BytesLike[];
|
|
84
|
+
};
|
|
85
|
+
export declare enum InterchainSecurityModuleType {
|
|
86
|
+
MULTISIG = 3
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export var ProtocolType;
|
|
2
|
+
(function (ProtocolType) {
|
|
3
|
+
ProtocolType["Ethereum"] = "ethereum";
|
|
4
|
+
ProtocolType["Sealevel"] = "sealevel";
|
|
5
|
+
ProtocolType["Fuel"] = "fuel";
|
|
6
|
+
ProtocolType["Cosmos"] = "cosmos";
|
|
7
|
+
})(ProtocolType || (ProtocolType = {}));
|
|
8
|
+
export const ProtocolSmallestUnit = {
|
|
9
|
+
[ProtocolType.Ethereum]: 'wei',
|
|
10
|
+
[ProtocolType.Sealevel]: 'lamports',
|
|
11
|
+
[ProtocolType.Cosmos]: 'uATOM',
|
|
12
|
+
};
|
|
13
|
+
export var MessageStatus;
|
|
14
|
+
(function (MessageStatus) {
|
|
15
|
+
MessageStatus[MessageStatus["NONE"] = 0] = "NONE";
|
|
16
|
+
MessageStatus[MessageStatus["PROCESSED"] = 1] = "PROCESSED";
|
|
17
|
+
})(MessageStatus || (MessageStatus = {}));
|
|
18
|
+
export var InterchainSecurityModuleType;
|
|
19
|
+
(function (InterchainSecurityModuleType) {
|
|
20
|
+
InterchainSecurityModuleType[InterchainSecurityModuleType["MULTISIG"] = 3] = "MULTISIG";
|
|
21
|
+
})(InterchainSecurityModuleType || (InterchainSecurityModuleType = {}));
|
|
22
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,MAAM,CAAN,IAAY,YAKX;AALD,WAAY,YAAY;IACtB,qCAAqB,CAAA;IACrB,qCAAqB,CAAA;IACrB,6BAAa,CAAA;IACb,iCAAiB,CAAA;AACnB,CAAC,EALW,YAAY,KAAZ,YAAY,QAKvB;AAID,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,KAAK;IAC9B,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,UAAU;IACnC,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,OAAO;CAC/B,CAAC;AA+DF,MAAM,CAAN,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,iDAAQ,CAAA;IACR,2DAAS,CAAA;AACX,CAAC,EAHW,aAAa,KAAb,aAAa,QAGxB;AAqBD,MAAM,CAAN,IAAY,4BAEX;AAFD,WAAY,4BAA4B;IACtC,uFAAY,CAAA;AACd,CAAC,EAFW,4BAA4B,KAA5B,4BAA4B,QAEvC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAAA,wBAAgB,MAAM,CAAC,CAAC,EACtB,SAAS,EAAE,CAAC,EACZ,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,SAAS,IAAI,WAAW,CAAC,CAAC,CAAC,CAIrC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,MAAM,CACpB,SAAY,EACZ,YAAqB;IAErB,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,YAAY,IAAI,OAAO,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Address, Checkpoint, Domain, HexString, SignatureLike } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Utilities for validators to construct and verify checkpoints.
|
|
4
|
+
*/
|
|
5
|
+
export declare class BaseValidator {
|
|
6
|
+
readonly address: Address;
|
|
7
|
+
readonly localDomain: Domain;
|
|
8
|
+
readonly mailbox_address: Address;
|
|
9
|
+
constructor(address: Address, localDomain: Domain, mailbox_address: Address);
|
|
10
|
+
announceDomainHash(): string;
|
|
11
|
+
checkpointDomainHash(merkle_tree_address: Address): string;
|
|
12
|
+
message(checkpoint: Checkpoint, messageId: HexString): string;
|
|
13
|
+
messageHash(checkpoint: Checkpoint, messageId: HexString): Uint8Array;
|
|
14
|
+
recoverAddressFromCheckpoint(checkpoint: Checkpoint, signature: SignatureLike, messageId: HexString): Address;
|
|
15
|
+
matchesSigner(checkpoint: Checkpoint, signature: SignatureLike, messageId: HexString): boolean;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../src/validator.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,OAAO,EACP,UAAU,EACV,MAAM,EACN,SAAS,EACT,aAAa,EACd,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,qBAAa,aAAa;aAEN,OAAO,EAAE,OAAO;aAChB,WAAW,EAAE,MAAM;aACnB,eAAe,EAAE,OAAO;gBAFxB,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,OAAO;IAG1C,kBAAkB;IAIlB,oBAAoB,CAAC,mBAAmB,EAAE,OAAO;IAIjD,OAAO,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS;IAWpD,WAAW,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS;IAKxD,4BAA4B,CAC1B,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,aAAa,EACxB,SAAS,EAAE,SAAS,GACnB,OAAO;IAKV,aAAa,CACX,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,aAAa,EACxB,SAAS,EAAE,SAAS;CAUvB"}
|