@hyperlane-xyz/utils 0.0.0-beta-20251201221151
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 +65 -0
- package/dist/addresses.d.ts.map +1 -0
- package/dist/addresses.js +475 -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 +68 -0
- package/dist/addresses.test.js.map +1 -0
- package/dist/amount.d.ts +70 -0
- package/dist/amount.d.ts.map +1 -0
- package/dist/amount.js +143 -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 +113 -0
- package/dist/amount.test.js.map +1 -0
- package/dist/arrays.d.ts +11 -0
- package/dist/arrays.d.ts.map +1 -0
- package/dist/arrays.js +26 -0
- package/dist/arrays.js.map +1 -0
- package/dist/arrays.test.d.ts +2 -0
- package/dist/arrays.test.d.ts.map +1 -0
- package/dist/arrays.test.js +77 -0
- package/dist/arrays.test.js.map +1 -0
- package/dist/async.d.ts +66 -0
- package/dist/async.d.ts.map +1 -0
- package/dist/async.js +146 -0
- package/dist/async.js.map +1 -0
- package/dist/async.test.d.ts +2 -0
- package/dist/async.test.d.ts.map +1 -0
- package/dist/async.test.js +204 -0
- package/dist/async.test.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/base58.test.d.ts +2 -0
- package/dist/base58.test.d.ts.map +1 -0
- package/dist/base58.test.js +31 -0
- package/dist/base58.test.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/base64.test.d.ts +2 -0
- package/dist/base64.test.d.ts.map +1 -0
- package/dist/base64.test.js +54 -0
- package/dist/base64.test.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 +6 -0
- package/dist/checkpoints.d.ts.map +1 -0
- package/dist/checkpoints.js +24 -0
- package/dist/checkpoints.js.map +1 -0
- package/dist/checkpoints.test.d.ts +2 -0
- package/dist/checkpoints.test.d.ts.map +1 -0
- package/dist/checkpoints.test.js +105 -0
- package/dist/checkpoints.test.js.map +1 -0
- package/dist/config.d.ts +25 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +84 -0
- package/dist/config.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 +4 -0
- package/dist/env.d.ts.map +1 -0
- package/dist/env.js +17 -0
- package/dist/env.js.map +1 -0
- package/dist/env.test.d.ts +2 -0
- package/dist/env.test.d.ts.map +1 -0
- package/dist/env.test.js +16 -0
- package/dist/env.test.js.map +1 -0
- package/dist/eslint-rules/index.d.ts +157 -0
- package/dist/eslint-rules/index.d.ts.map +1 -0
- package/dist/eslint-rules/index.js +58 -0
- package/dist/eslint-rules/index.js.map +1 -0
- package/dist/eslint-rules/no-restricted-imports-from-exports.d.ts +4 -0
- package/dist/eslint-rules/no-restricted-imports-from-exports.d.ts.map +1 -0
- package/dist/eslint-rules/no-restricted-imports-from-exports.js +141 -0
- package/dist/eslint-rules/no-restricted-imports-from-exports.js.map +1 -0
- package/dist/eslint-rules/no-restricted-imports-from-exports.test.d.ts +2 -0
- package/dist/eslint-rules/no-restricted-imports-from-exports.test.d.ts.map +1 -0
- package/dist/eslint-rules/no-restricted-imports-from-exports.test.js +258 -0
- package/dist/eslint-rules/no-restricted-imports-from-exports.test.js.map +1 -0
- package/dist/eslint-rules/sort-yaml-arrays.d.ts +39 -0
- package/dist/eslint-rules/sort-yaml-arrays.d.ts.map +1 -0
- package/dist/eslint-rules/sort-yaml-arrays.js +74 -0
- package/dist/eslint-rules/sort-yaml-arrays.js.map +1 -0
- package/dist/eslint-rules/sort-yaml-arrays.test.d.ts +2 -0
- package/dist/eslint-rules/sort-yaml-arrays.test.d.ts.map +1 -0
- package/dist/eslint-rules/sort-yaml-arrays.test.js +621 -0
- package/dist/eslint-rules/sort-yaml-arrays.test.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/ids.test.d.ts +2 -0
- package/dist/ids.test.d.ts.map +1 -0
- package/dist/ids.test.js +39 -0
- package/dist/ids.test.js.map +1 -0
- package/dist/index.d.ts +30 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +29 -0
- package/dist/index.js.map +1 -0
- package/dist/logging.d.ts +32 -0
- package/dist/logging.d.ts.map +1 -0
- package/dist/logging.js +146 -0
- package/dist/logging.js.map +1 -0
- package/dist/logging.test.d.ts +2 -0
- package/dist/logging.test.d.ts.map +1 -0
- package/dist/logging.test.js +35 -0
- package/dist/logging.test.js.map +1 -0
- package/dist/math.d.ts +6 -0
- package/dist/math.d.ts.map +1 -0
- package/dist/math.js +21 -0
- package/dist/math.js.map +1 -0
- package/dist/math.test.d.ts +2 -0
- package/dist/math.test.d.ts.map +1 -0
- package/dist/math.test.js +45 -0
- package/dist/math.test.js.map +1 -0
- package/dist/messages.d.ts +22 -0
- package/dist/messages.d.ts.map +1 -0
- package/dist/messages.js +64 -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 +74 -0
- package/dist/objects.d.ts.map +1 -0
- package/dist/objects.js +331 -0
- package/dist/objects.js.map +1 -0
- package/dist/objects.test.d.ts +2 -0
- package/dist/objects.test.d.ts.map +1 -0
- package/dist/objects.test.js +655 -0
- package/dist/objects.test.js.map +1 -0
- package/dist/result.d.ts +11 -0
- package/dist/result.d.ts.map +1 -0
- package/dist/result.js +7 -0
- package/dist/result.js.map +1 -0
- package/dist/sets.d.ts +5 -0
- package/dist/sets.d.ts.map +1 -0
- package/dist/sets.js +33 -0
- package/dist/sets.js.map +1 -0
- package/dist/sets.test.d.ts +2 -0
- package/dist/sets.test.d.ts.map +1 -0
- package/dist/sets.test.js +35 -0
- package/dist/sets.test.js.map +1 -0
- package/dist/strings.d.ts +11 -0
- package/dist/strings.d.ts.map +1 -0
- package/dist/strings.js +49 -0
- package/dist/strings.js.map +1 -0
- package/dist/strings.test.d.ts +2 -0
- package/dist/strings.test.d.ts.map +1 -0
- package/dist/strings.test.js +42 -0
- package/dist/strings.test.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/typeof.test.d.ts +2 -0
- package/dist/typeof.test.d.ts.map +1 -0
- package/dist/typeof.test.js +34 -0
- package/dist/typeof.test.js.map +1 -0
- package/dist/types.d.ts +111 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +23 -0
- package/dist/types.js.map +1 -0
- package/dist/url.d.ts +4 -0
- package/dist/url.d.ts.map +1 -0
- package/dist/url.js +34 -0
- package/dist/url.js.map +1 -0
- package/dist/url.test.d.ts +2 -0
- package/dist/url.test.d.ts.map +1 -0
- package/dist/url.test.js +29 -0
- package/dist/url.test.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/validation.test.d.ts +2 -0
- package/dist/validation.test.d.ts.map +1 -0
- package/dist/validation.test.js +11 -0
- package/dist/validation.test.js.map +1 -0
- package/dist/validator.d.ts +30 -0
- package/dist/validator.d.ts.map +1 -0
- package/dist/validator.js +76 -0
- package/dist/validator.js.map +1 -0
- package/dist/yaml.d.ts +22 -0
- package/dist/yaml.d.ts.map +1 -0
- package/dist/yaml.js +293 -0
- package/dist/yaml.js.map +1 -0
- package/dist/yaml.test.d.ts +2 -0
- package/dist/yaml.test.d.ts.map +1 -0
- package/dist/yaml.test.js +519 -0
- package/dist/yaml.test.js.map +1 -0
- package/package.json +80 -0
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { BigNumber } from 'bignumber.js';
|
|
2
|
+
import { FixedNumber } from 'ethers';
|
|
3
|
+
// Use toString(10) on bignumber.js to prevent ethers.js bigNumber error
|
|
4
|
+
// when parsing exponential string over e21
|
|
5
|
+
/**
|
|
6
|
+
* Check if a value is bigNumberish (e.g. valid numbers, bigNumber).
|
|
7
|
+
* @param value The value to check.
|
|
8
|
+
* @returns true/false.
|
|
9
|
+
*/
|
|
10
|
+
export function isBigNumberish(value) {
|
|
11
|
+
try {
|
|
12
|
+
const val = BigNumber(value);
|
|
13
|
+
return !val.isNaN() && val.isFinite() && BigNumber.isBigNumber(val);
|
|
14
|
+
}
|
|
15
|
+
catch {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Check if a value (e.g. hex string or number) is zeroish (0, 0x0, 0x00, etc.).
|
|
21
|
+
* @param value The value to check.
|
|
22
|
+
* @returns true/false.
|
|
23
|
+
*/
|
|
24
|
+
export function isZeroish(value) {
|
|
25
|
+
try {
|
|
26
|
+
return BigNumber(value).isZero();
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Converts a BigNumber to a FixedNumber of the format fixed128x18.
|
|
34
|
+
* @param big The BigNumber to convert.
|
|
35
|
+
* @returns A FixedNumber representation of a BigNumber.
|
|
36
|
+
*/
|
|
37
|
+
export function bigToFixed(big) {
|
|
38
|
+
return FixedNumber.from(big.toString(10));
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Converts a FixedNumber (of any format) to a BigNumber.
|
|
42
|
+
* @param fixed The FixedNumber to convert.
|
|
43
|
+
* @param ceil If true, the ceiling of fixed is used. Otherwise, the floor is used.
|
|
44
|
+
* @returns A BigNumber representation of a FixedNumber.
|
|
45
|
+
*/
|
|
46
|
+
export function fixedToBig(fixed, ceil = false) {
|
|
47
|
+
const fixedAsInteger = ceil ? fixed.ceiling() : fixed.floor();
|
|
48
|
+
return BigNumber(fixedAsInteger.toFormat('fixed256x0').toString());
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Multiplies a BigNumber by a FixedNumber, returning the BigNumber product.
|
|
52
|
+
* @param big The BigNumber to multiply.
|
|
53
|
+
* @param fixed The FixedNumber to multiply.
|
|
54
|
+
* @param ceil If true, the ceiling of the product is used. Otherwise, the floor is used.
|
|
55
|
+
* @returns The BigNumber product in string type.
|
|
56
|
+
*/
|
|
57
|
+
export function mulBigAndFixed(big, fixed, ceil = false) {
|
|
58
|
+
// Converts big to a FixedNumber, multiplies it by fixed, and converts the product back
|
|
59
|
+
// to a BigNumber.
|
|
60
|
+
return fixedToBig(fixed.mulUnsafe(bigToFixed(big)), ceil).toString(10);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Return the smaller in the given two BigNumbers.
|
|
64
|
+
* @param bn1 The BigNumber to compare.
|
|
65
|
+
* @param bn2 The BigNumber to compare.
|
|
66
|
+
* @returns The smaller BigNumber in string type.
|
|
67
|
+
*/
|
|
68
|
+
export function BigNumberMin(bn1, bn2) {
|
|
69
|
+
return BigNumber(bn1).gte(bn2) ? bn2.toString(10) : bn1.toString(10);
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Return the bigger in the given two BigNumbers.
|
|
73
|
+
* @param bn1 The BigNumber to compare.
|
|
74
|
+
* @param bn2 The BigNumber to compare.
|
|
75
|
+
* @returns The bigger BigNumber in string type.
|
|
76
|
+
*/
|
|
77
|
+
export function BigNumberMax(bn1, bn2) {
|
|
78
|
+
return BigNumber(bn1).lte(bn2) ? bn2.toString(10) : bn1.toString(10);
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=big-numbers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"big-numbers.js","sourceRoot":"","sources":["../src/big-numbers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAErC,wEAAwE;AACxE,2CAA2C;AAE3C;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAC5B,KAAyC;IAEzC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,SAAS,CAAC,KAAM,CAAC,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,QAAQ,EAAE,IAAI,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACtE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,KAAsB;IAC9C,IAAI,CAAC;QACH,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,GAAoB;IAC7C,OAAO,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,KAAkB,EAAE,IAAI,GAAG,KAAK;IACzD,MAAM,cAAc,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IAC9D,OAAO,SAAS,CAAC,cAAc,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACrE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAC5B,GAAoB,EACpB,KAAkB,EAClB,IAAI,GAAG,KAAK;IAEZ,uFAAuF;IACvF,kBAAkB;IAClB,OAAO,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACzE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAC1B,GAAoB,EACpB,GAAoB;IAEpB,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACvE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAC1B,GAAoB,EACpB,GAAoB;IAEpB,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACvE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"big-numbers.test.d.ts","sourceRoot":"","sources":["../src/big-numbers.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { BigNumber } from 'bignumber.js';
|
|
2
|
+
import { expect } from 'chai';
|
|
3
|
+
import { FixedNumber } from 'ethers';
|
|
4
|
+
import { BigNumberMax, BigNumberMin, bigToFixed, fixedToBig, isBigNumberish, isZeroish, mulBigAndFixed, } from './big-numbers.js';
|
|
5
|
+
describe('isBigNumberish', () => {
|
|
6
|
+
const testCases = [
|
|
7
|
+
{ expect: false, context: 'invalid number', case: 'invalidNumber' },
|
|
8
|
+
{ expect: false, context: 'NaN', case: NaN },
|
|
9
|
+
{ expect: false, context: 'undefined', case: undefined },
|
|
10
|
+
{ expect: false, context: 'null', case: null },
|
|
11
|
+
{ expect: true, context: 'decimal', case: 123.123 },
|
|
12
|
+
{ expect: true, context: 'integer', case: 300000 },
|
|
13
|
+
{ expect: true, context: 'hex 0', case: 0x00 },
|
|
14
|
+
{ expect: true, context: 'hex 0', case: 0x000 },
|
|
15
|
+
{
|
|
16
|
+
expect: true,
|
|
17
|
+
context: 'address 0',
|
|
18
|
+
case: 0x0000000000000000000000000000000000000000,
|
|
19
|
+
},
|
|
20
|
+
];
|
|
21
|
+
testCases.forEach((tc) => {
|
|
22
|
+
it(`returns ${tc.expect} for ${tc.case}`, () => {
|
|
23
|
+
expect(isBigNumberish(tc.case)).to.equal(tc.expect);
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
describe('isZeroish', () => {
|
|
28
|
+
const testCases = [
|
|
29
|
+
{ expect: false, context: 'invalid number', case: 'invalidNumber' },
|
|
30
|
+
{ expect: false, context: 'NaN', case: NaN },
|
|
31
|
+
{ expect: false, context: 'undefined', case: undefined },
|
|
32
|
+
{ expect: false, context: 'null', case: null },
|
|
33
|
+
{ expect: false, context: 'non 0 decimal', case: 123.123 },
|
|
34
|
+
{ expect: false, context: 'non 0 integer', case: 123 },
|
|
35
|
+
{ expect: true, context: 'hex 0', case: 0x00 },
|
|
36
|
+
{ expect: true, context: 'hex 0', case: 0x000 },
|
|
37
|
+
{
|
|
38
|
+
expect: true,
|
|
39
|
+
context: 'address 0',
|
|
40
|
+
case: 0x0000000000000000000000000000000000000000,
|
|
41
|
+
},
|
|
42
|
+
];
|
|
43
|
+
testCases.forEach((tc) => {
|
|
44
|
+
it(`returns ${tc.expect} for ${tc.case}`, () => {
|
|
45
|
+
expect(isZeroish(tc.case)).to.equal(tc.expect);
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
describe('bigToFixed', () => {
|
|
50
|
+
it('converts a BigNumber to a FixedNumber', () => {
|
|
51
|
+
const big = BigNumber('7.5e-10');
|
|
52
|
+
const fixed = bigToFixed(big);
|
|
53
|
+
expect(fixed.toUnsafeFloat()).to.equal(7.5e-10);
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
describe('fixedToBig', () => {
|
|
57
|
+
it('converts a FixedNumber to a floored BigNumber', () => {
|
|
58
|
+
const fixed = FixedNumber.from('12.34');
|
|
59
|
+
const big = fixedToBig(fixed);
|
|
60
|
+
expect(big.toNumber()).to.equal(12);
|
|
61
|
+
});
|
|
62
|
+
it('converts a FixedNumber to a ceilinged BigNumber', () => {
|
|
63
|
+
const fixed = FixedNumber.from('12.34');
|
|
64
|
+
const big = fixedToBig(fixed, true);
|
|
65
|
+
expect(big.toNumber()).to.equal(13);
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
describe('mulBigAndFixed', () => {
|
|
69
|
+
it('gets the floored product of a BigNumber and FixedNumber', () => {
|
|
70
|
+
const big = BigNumber('1000');
|
|
71
|
+
const fixed = FixedNumber.from('1.2345');
|
|
72
|
+
const product = mulBigAndFixed(big, fixed);
|
|
73
|
+
expect(product).to.equal((1234).toString());
|
|
74
|
+
});
|
|
75
|
+
it('gets the ceilinged product of a BigNumber and FixedNumber', () => {
|
|
76
|
+
const big = BigNumber('1000');
|
|
77
|
+
const fixed = FixedNumber.from('1.2345');
|
|
78
|
+
const product = mulBigAndFixed(big, fixed, true);
|
|
79
|
+
expect(product).to.equal((1235).toString());
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
describe('BigNumberMin', () => {
|
|
83
|
+
it('gets the min between the two BigNumber', () => {
|
|
84
|
+
const big = BigNumber('1000');
|
|
85
|
+
const bigger = BigNumber('10000');
|
|
86
|
+
expect(BigNumberMin(big, bigger)).to.equal(big.toString());
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
describe('BigNumberMax', () => {
|
|
90
|
+
it('gets the max between the two BigNumber', () => {
|
|
91
|
+
const big = BigNumber('1000');
|
|
92
|
+
const bigger = BigNumber('10000');
|
|
93
|
+
expect(BigNumberMax(big, bigger)).to.equal(bigger.toString());
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
//# sourceMappingURL=big-numbers.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"big-numbers.test.js","sourceRoot":"","sources":["../src/big-numbers.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calldata.d.ts","sourceRoot":"","sources":["../src/calldata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAEvC,wBAAgB,cAAc,CAC5B,CAAC,SAAS,QAAQ,EAClB,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,oBAAoB,CAAC,CAAC,EAC1D,mBAAmB,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAKxE"}
|
package/dist/calldata.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calldata.js","sourceRoot":"","sources":["../src/calldata.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,cAAc,CAG5B,mBAAsB,EAAE,YAAkB,EAAE,YAAkB;IAC9D,OAAO,mBAAmB,CAAC,SAAS,CAAC,kBAAkB,CACrD,YAAY,EACZ,YAAY,CACb,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Checkpoint, S3Checkpoint, S3CheckpointWithId, SignatureLike } from './types.js';
|
|
2
|
+
export declare function isValidSignature(signature: any): signature is SignatureLike;
|
|
3
|
+
export declare function isS3Checkpoint(obj: any): obj is S3Checkpoint;
|
|
4
|
+
export declare function isS3CheckpointWithId(obj: any): obj is S3CheckpointWithId;
|
|
5
|
+
export declare function isCheckpoint(obj: any): obj is Checkpoint;
|
|
6
|
+
//# sourceMappingURL=checkpoints.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkpoints.d.ts","sourceRoot":"","sources":["../src/checkpoints.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACd,MAAM,YAAY,CAAC;AAEpB,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,GAAG,GAAG,SAAS,IAAI,aAAa,CAM3E;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,YAAY,CAE5D;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,kBAAkB,CAMxE;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,UAAU,CAMxD"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { utils } from 'ethers';
|
|
2
|
+
export function isValidSignature(signature) {
|
|
3
|
+
return typeof signature === 'string'
|
|
4
|
+
? utils.isHexString(signature)
|
|
5
|
+
: utils.isHexString(signature.r) &&
|
|
6
|
+
utils.isHexString(signature.s) &&
|
|
7
|
+
Number.isSafeInteger(signature.v);
|
|
8
|
+
}
|
|
9
|
+
export function isS3Checkpoint(obj) {
|
|
10
|
+
return isValidSignature(obj.signature) && isCheckpoint(obj.value);
|
|
11
|
+
}
|
|
12
|
+
export function isS3CheckpointWithId(obj) {
|
|
13
|
+
return (isValidSignature(obj.signature) &&
|
|
14
|
+
isCheckpoint(obj.value.checkpoint) &&
|
|
15
|
+
utils.isHexString(obj.value.message_id));
|
|
16
|
+
}
|
|
17
|
+
export function isCheckpoint(obj) {
|
|
18
|
+
const isValidRoot = utils.isHexString(obj.root);
|
|
19
|
+
const isValidIndex = Number.isSafeInteger(obj.index);
|
|
20
|
+
const isValidMailbox = utils.isHexString(obj.merkle_tree_hook_address);
|
|
21
|
+
const isValidDomain = Number.isSafeInteger(obj.mailbox_domain);
|
|
22
|
+
return isValidIndex && isValidRoot && isValidMailbox && isValidDomain;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=checkpoints.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkpoints.js","sourceRoot":"","sources":["../src/checkpoints.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAS/B,MAAM,UAAU,gBAAgB,CAAC,SAAc;IAC7C,OAAO,OAAO,SAAS,KAAK,QAAQ;QAClC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC;QAC9B,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;YAC5B,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;YAC9B,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAQ;IACrC,OAAO,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,GAAQ;IAC3C,OAAO,CACL,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC;QAC/B,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC;QAClC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CACxC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,GAAQ;IACnC,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,YAAY,GAAG,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACrD,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IACvE,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC/D,OAAO,YAAY,IAAI,WAAW,IAAI,cAAc,IAAI,aAAa,CAAC;AACxE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkpoints.test.d.ts","sourceRoot":"","sources":["../src/checkpoints.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { expect } from 'chai';
|
|
2
|
+
import { isCheckpoint, isS3Checkpoint, isS3CheckpointWithId, isValidSignature, } from './checkpoints.js';
|
|
3
|
+
describe('Checkpoints', () => {
|
|
4
|
+
describe('isValidSignature', () => {
|
|
5
|
+
it('should return true for valid string signature', () => {
|
|
6
|
+
const signature = '0x' + 'a'.repeat(130); // Example of a valid hex string
|
|
7
|
+
expect(isValidSignature(signature)).to.be.true;
|
|
8
|
+
});
|
|
9
|
+
it('should return true for valid object signature', () => {
|
|
10
|
+
const signature = {
|
|
11
|
+
r: '0x' + 'a'.repeat(64),
|
|
12
|
+
s: '0x' + 'b'.repeat(64),
|
|
13
|
+
v: 27,
|
|
14
|
+
};
|
|
15
|
+
expect(isValidSignature(signature)).to.be.true;
|
|
16
|
+
});
|
|
17
|
+
it('should return false for invalid signature', () => {
|
|
18
|
+
const signature = {
|
|
19
|
+
r: '0x' + 'a'.repeat(64),
|
|
20
|
+
s: '0x' + 'b'.repeat(64),
|
|
21
|
+
v: 'invalid',
|
|
22
|
+
};
|
|
23
|
+
expect(isValidSignature(signature)).to.be.false;
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
describe('isCheckpoint', () => {
|
|
27
|
+
it('should return true for valid checkpoint', () => {
|
|
28
|
+
const checkpoint = {
|
|
29
|
+
root: '0x' + 'a'.repeat(64),
|
|
30
|
+
index: 1,
|
|
31
|
+
merkle_tree_hook_address: '0x' + 'b'.repeat(40),
|
|
32
|
+
mailbox_domain: 123,
|
|
33
|
+
};
|
|
34
|
+
expect(isCheckpoint(checkpoint)).to.be.true;
|
|
35
|
+
});
|
|
36
|
+
it('should return false for invalid checkpoint', () => {
|
|
37
|
+
const checkpoint = {
|
|
38
|
+
root: 'invalid',
|
|
39
|
+
index: 'invalid',
|
|
40
|
+
merkle_tree_hook_address: 'invalid',
|
|
41
|
+
mailbox_domain: 'invalid',
|
|
42
|
+
};
|
|
43
|
+
expect(isCheckpoint(checkpoint)).to.be.false;
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
describe('isS3Checkpoint', () => {
|
|
47
|
+
it('should return true for valid S3Checkpoint', () => {
|
|
48
|
+
const s3Checkpoint = {
|
|
49
|
+
signature: '0x' + 'a'.repeat(130),
|
|
50
|
+
value: {
|
|
51
|
+
root: '0x' + 'a'.repeat(64),
|
|
52
|
+
index: 1,
|
|
53
|
+
merkle_tree_hook_address: '0x' + 'b'.repeat(40),
|
|
54
|
+
mailbox_domain: 123,
|
|
55
|
+
},
|
|
56
|
+
};
|
|
57
|
+
expect(isS3Checkpoint(s3Checkpoint)).to.be.true;
|
|
58
|
+
});
|
|
59
|
+
it('should return false for invalid S3Checkpoint', () => {
|
|
60
|
+
const s3Checkpoint = {
|
|
61
|
+
signature: 'invalid',
|
|
62
|
+
value: {
|
|
63
|
+
root: 'invalid',
|
|
64
|
+
index: 'invalid',
|
|
65
|
+
merkle_tree_hook_address: 'invalid',
|
|
66
|
+
mailbox_domain: 'invalid',
|
|
67
|
+
},
|
|
68
|
+
};
|
|
69
|
+
expect(isS3Checkpoint(s3Checkpoint)).to.be.false;
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
describe('isS3CheckpointWithId', () => {
|
|
73
|
+
it('should return true for valid S3CheckpointWithId', () => {
|
|
74
|
+
const s3CheckpointWithId = {
|
|
75
|
+
signature: '0x' + 'a'.repeat(130),
|
|
76
|
+
value: {
|
|
77
|
+
checkpoint: {
|
|
78
|
+
root: '0x' + 'a'.repeat(64),
|
|
79
|
+
index: 1,
|
|
80
|
+
merkle_tree_hook_address: '0x' + 'b'.repeat(40),
|
|
81
|
+
mailbox_domain: 123,
|
|
82
|
+
},
|
|
83
|
+
message_id: '0x' + 'c'.repeat(64),
|
|
84
|
+
},
|
|
85
|
+
};
|
|
86
|
+
expect(isS3CheckpointWithId(s3CheckpointWithId)).to.be.true;
|
|
87
|
+
});
|
|
88
|
+
it('should return false for invalid S3CheckpointWithId', () => {
|
|
89
|
+
const s3CheckpointWithId = {
|
|
90
|
+
signature: 'invalid',
|
|
91
|
+
value: {
|
|
92
|
+
checkpoint: {
|
|
93
|
+
root: 'invalid',
|
|
94
|
+
index: 'invalid',
|
|
95
|
+
merkle_tree_hook_address: 'invalid',
|
|
96
|
+
mailbox_domain: 'invalid',
|
|
97
|
+
},
|
|
98
|
+
message_id: 'invalid',
|
|
99
|
+
},
|
|
100
|
+
};
|
|
101
|
+
expect(isS3CheckpointWithId(s3CheckpointWithId)).to.be.false;
|
|
102
|
+
});
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
//# sourceMappingURL=checkpoints.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkpoints.test.js","sourceRoot":"","sources":["../src/checkpoints.test.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { WithAddress } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Utilities for normalizing and comparing configuration objects.
|
|
4
|
+
* Used across ISM, Hook, and other Hyperlane configurations.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Recursively normalizes a config object for comparison by:
|
|
8
|
+
* - Removing address and ownerOverrides fields (deployment-specific)
|
|
9
|
+
* - Lowercasing all string values (except 'type' fields)
|
|
10
|
+
* - Sorting specific arrays (validators, modules, hooks)
|
|
11
|
+
*
|
|
12
|
+
* @param obj - Configuration object to normalize
|
|
13
|
+
* @returns Normalized configuration object
|
|
14
|
+
*/
|
|
15
|
+
export declare function normalizeConfig(obj: WithAddress<any>): any;
|
|
16
|
+
/**
|
|
17
|
+
* Recursively sorts arrays in a config object with special handling for:
|
|
18
|
+
* - validators: sorted in lexicographical order
|
|
19
|
+
* - modules/hooks: sorted by their 'type' property
|
|
20
|
+
*
|
|
21
|
+
* @param config - Configuration object to sort
|
|
22
|
+
* @returns Configuration object with sorted arrays
|
|
23
|
+
*/
|
|
24
|
+
export declare function sortArraysInConfig(config: any): any;
|
|
25
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC;;;GAGG;AAEH;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,WAAW,CAAC,GAAG,CAAC,GAAG,GAAG,CAE1D;AA4BD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,CAgCnD"}
|
package/dist/config.js
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utilities for normalizing and comparing configuration objects.
|
|
3
|
+
* Used across ISM, Hook, and other Hyperlane configurations.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Recursively normalizes a config object for comparison by:
|
|
7
|
+
* - Removing address and ownerOverrides fields (deployment-specific)
|
|
8
|
+
* - Lowercasing all string values (except 'type' fields)
|
|
9
|
+
* - Sorting specific arrays (validators, modules, hooks)
|
|
10
|
+
*
|
|
11
|
+
* @param obj - Configuration object to normalize
|
|
12
|
+
* @returns Normalized configuration object
|
|
13
|
+
*/
|
|
14
|
+
export function normalizeConfig(obj) {
|
|
15
|
+
return sortArraysInConfig(lowerCaseConfig(obj));
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Recursively lowercases string values in a config object while:
|
|
19
|
+
* - Removing 'address' and 'ownerOverrides' properties
|
|
20
|
+
* - Preserving 'type' property values as-is
|
|
21
|
+
*
|
|
22
|
+
* @param obj - Object to process
|
|
23
|
+
* @returns Processed object with lowercase strings
|
|
24
|
+
*/
|
|
25
|
+
function lowerCaseConfig(obj) {
|
|
26
|
+
if (Array.isArray(obj)) {
|
|
27
|
+
return obj.map(normalizeConfig);
|
|
28
|
+
}
|
|
29
|
+
else if (obj !== null && typeof obj === 'object') {
|
|
30
|
+
const newObj = {};
|
|
31
|
+
for (const key in obj) {
|
|
32
|
+
if (key !== 'address' && key !== 'ownerOverrides') {
|
|
33
|
+
newObj[key] = key === 'type' ? obj[key] : normalizeConfig(obj[key]);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return newObj;
|
|
37
|
+
}
|
|
38
|
+
else if (typeof obj === 'string') {
|
|
39
|
+
return obj.toLowerCase();
|
|
40
|
+
}
|
|
41
|
+
return obj;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Recursively sorts arrays in a config object with special handling for:
|
|
45
|
+
* - validators: sorted in lexicographical order
|
|
46
|
+
* - modules/hooks: sorted by their 'type' property
|
|
47
|
+
*
|
|
48
|
+
* @param config - Configuration object to sort
|
|
49
|
+
* @returns Configuration object with sorted arrays
|
|
50
|
+
*/
|
|
51
|
+
export function sortArraysInConfig(config) {
|
|
52
|
+
// Check if the current object is an array
|
|
53
|
+
if (Array.isArray(config)) {
|
|
54
|
+
return config.map(sortArraysInConfig);
|
|
55
|
+
}
|
|
56
|
+
// Check if it's an object and not null
|
|
57
|
+
else if (typeof config === 'object' && config !== null) {
|
|
58
|
+
const sortedConfig = {};
|
|
59
|
+
for (const key in config) {
|
|
60
|
+
if (key === 'validators' && Array.isArray(config[key])) {
|
|
61
|
+
// Sort the validators array in lexicographical order (since they're already lowercase)
|
|
62
|
+
sortedConfig[key] = [...config[key]].sort();
|
|
63
|
+
}
|
|
64
|
+
// if key is modules or hooks, sort the objects in the array by their 'type' property
|
|
65
|
+
else if ((key === 'modules' || key === 'hooks') &&
|
|
66
|
+
Array.isArray(config[key])) {
|
|
67
|
+
sortedConfig[key] = [...config[key]].sort((a, b) => {
|
|
68
|
+
if (a.type < b.type)
|
|
69
|
+
return -1;
|
|
70
|
+
if (a.type > b.type)
|
|
71
|
+
return 1;
|
|
72
|
+
return 0;
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
// Recursively apply sorting to other fields
|
|
77
|
+
sortedConfig[key] = sortArraysInConfig(config[key]);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return sortedConfig;
|
|
81
|
+
}
|
|
82
|
+
return config;
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA;;;GAGG;AAEH;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAAC,GAAqB;IACnD,OAAO,kBAAkB,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;AAClD,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,eAAe,CAAC,GAAQ;IAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAClC,CAAC;SAAM,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACnD,MAAM,MAAM,GAAQ,EAAE,CAAC;QACvB,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;YACtB,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,gBAAgB,EAAE,CAAC;gBAClD,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;SAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACnC,OAAO,GAAG,CAAC,WAAW,EAAE,CAAC;IAC3B,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAW;IAC5C,0CAA0C;IAC1C,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,OAAO,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IACxC,CAAC;IACD,uCAAuC;SAClC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACvD,MAAM,YAAY,GAAQ,EAAE,CAAC;QAC7B,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;YACzB,IAAI,GAAG,KAAK,YAAY,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACvD,uFAAuF;gBACvF,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC9C,CAAC;YACD,qFAAqF;iBAChF,IACH,CAAC,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,OAAO,CAAC;gBACtC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAC1B,CAAC;gBACD,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,CAAM,EAAE,EAAE;oBAC3D,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI;wBAAE,OAAO,CAAC,CAAC,CAAC;oBAC/B,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI;wBAAE,OAAO,CAAC,CAAC;oBAC9B,OAAO,CAAC,CAAC;gBACX,CAAC,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,4CAA4C;gBAC5C,YAAY,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domains.d.ts","sourceRoot":"","sources":["../src/domains.ts"],"names":[],"mappings":"AAIA,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAK3E"}
|
package/dist/domains.js
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { utils } from 'ethers';
|
|
2
|
+
import { addressToBytes32 } from './addresses.js';
|
|
3
|
+
export function domainHash(domain, merkle_tree_hook) {
|
|
4
|
+
return utils.solidityKeccak256(['uint32', 'bytes32', 'string'], [domain, addressToBytes32(merkle_tree_hook), 'HYPERLANE']);
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=domains.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domains.js","sourceRoot":"","sources":["../src/domains.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAE/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,MAAM,UAAU,UAAU,CAAC,MAAc,EAAE,gBAAwB;IACjE,OAAO,KAAK,CAAC,iBAAiB,CAC5B,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,EAC/B,CAAC,MAAM,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,EAAE,WAAW,CAAC,CAC1D,CAAC;AACJ,CAAC"}
|
package/dist/env.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAEA,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,UAAQ,sBAMnE;AAED,wBAAgB,QAAQ,YAEvB;AAED,wBAAgB,YAAY,YAE3B"}
|
package/dist/env.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// Should be used instead of referencing process directly in case we don't
|
|
2
|
+
// run in node.js
|
|
3
|
+
export function safelyAccessEnvVar(name, toLowerCase = false) {
|
|
4
|
+
try {
|
|
5
|
+
return toLowerCase ? process.env[name]?.toLowerCase() : process.env[name];
|
|
6
|
+
}
|
|
7
|
+
catch {
|
|
8
|
+
return undefined;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export function inCIMode() {
|
|
12
|
+
return process.env.CI === 'true';
|
|
13
|
+
}
|
|
14
|
+
export function inKubernetes() {
|
|
15
|
+
return process.env.KUBERNETES_SERVICE_HOST !== undefined;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=env.js.map
|
package/dist/env.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,iBAAiB;AACjB,MAAM,UAAU,kBAAkB,CAAC,IAAY,EAAE,WAAW,GAAG,KAAK;IAClE,IAAI,CAAC;QACH,OAAO,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC5E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,QAAQ;IACtB,OAAO,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,MAAM,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,SAAS,CAAC;AAC3D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.test.d.ts","sourceRoot":"","sources":["../src/env.test.ts"],"names":[],"mappings":""}
|
package/dist/env.test.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { expect } from 'chai';
|
|
2
|
+
import { safelyAccessEnvVar } from './env.js';
|
|
3
|
+
describe('Env Utilities', () => {
|
|
4
|
+
describe('safelyAccessEnvVar', () => {
|
|
5
|
+
it('should return the environment variable', () => {
|
|
6
|
+
process.env.TEST_VAR = '0xTEST_VAR';
|
|
7
|
+
expect(safelyAccessEnvVar('TEST_VAR')).to.equal('0xTEST_VAR');
|
|
8
|
+
expect(safelyAccessEnvVar('TEST_VAR', true)).to.equal('0xtest_var');
|
|
9
|
+
});
|
|
10
|
+
it('should return undefined if the environment variable is not set', () => {
|
|
11
|
+
expect(safelyAccessEnvVar('NON_EXISTENT_VAR')).to.be.undefined;
|
|
12
|
+
expect(safelyAccessEnvVar('NON_EXISTENT_VAR', true)).to.be.undefined;
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
});
|
|
16
|
+
//# sourceMappingURL=env.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.test.js","sourceRoot":"","sources":["../src/env.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAE9C,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAClC,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YAChD,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,YAAY,CAAC;YACpC,MAAM,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAC9D,MAAM,CAAC,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;YACxE,MAAM,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;YAC/D,MAAM,CAAC,kBAAkB,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;QACvE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|