@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 @@
|
|
|
1
|
+
{"version":3,"file":"url.test.js","sourceRoot":"","sources":["../src/url.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE9B,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAE5D,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACf,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QACrC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QAChC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QAC9B,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QACpC,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE;QACpB,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QAC1C,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QACrC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QACnC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QACzC,MAAM,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QACvD,MAAM,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,eAAe,EAAE,GAAG,EAAE;QACvB,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QAC7C,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QACxC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QACtC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QAC5C,MAAM,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QAC3D,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAC5C,MAAM,CAAC,aAAa,CAAC,UAAU,EAAE,uBAAuB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACxE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -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,EAAE,MAAM,GACnB,OAAO,CAAC,SAAS,CAInB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,MAAM,CACpB,SAAY,EACZ,YAAoB;IAEpB,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;IAChC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.test.d.ts","sourceRoot":"","sources":["../src/validation.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { expect } from 'chai';
|
|
2
|
+
import { assert } from './validation.js';
|
|
3
|
+
describe('assert', () => {
|
|
4
|
+
it('should not throw an error when the predicate is true', () => {
|
|
5
|
+
expect(() => assert(true, 'Error message')).to.not.throw();
|
|
6
|
+
});
|
|
7
|
+
it('should throw an error when the predicate is false', () => {
|
|
8
|
+
expect(() => assert(false, 'Error message')).to.throw('Error message');
|
|
9
|
+
});
|
|
10
|
+
});
|
|
11
|
+
//# sourceMappingURL=validation.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.test.js","sourceRoot":"","sources":["../src/validation.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE9B,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACtB,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Address, Checkpoint, CheckpointWithId, HexString, S3CheckpointWithId, SignatureLike } from './types.js';
|
|
2
|
+
export interface ValidatorConfig {
|
|
3
|
+
address: string;
|
|
4
|
+
localDomain: number;
|
|
5
|
+
mailbox: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Utilities for validators to construct and verify checkpoints.
|
|
9
|
+
*/
|
|
10
|
+
export declare class BaseValidator {
|
|
11
|
+
protected readonly config: ValidatorConfig;
|
|
12
|
+
constructor(config: ValidatorConfig);
|
|
13
|
+
get address(): string;
|
|
14
|
+
announceDomainHash(): string;
|
|
15
|
+
static checkpointDomainHash(localDomain: number, merkle_tree_address: Address): string;
|
|
16
|
+
static message(checkpoint: Checkpoint, messageId: HexString): string;
|
|
17
|
+
static messageHash(checkpoint: Checkpoint, messageId: HexString): Uint8Array;
|
|
18
|
+
static recoverAddressFromCheckpoint(checkpoint: Checkpoint, signature: SignatureLike, messageId: HexString): Address;
|
|
19
|
+
static recoverAddressFromCheckpointWithId({ checkpoint, message_id }: CheckpointWithId, signature: SignatureLike): Address;
|
|
20
|
+
static recoverAddress({ value, signature }: S3CheckpointWithId): Address;
|
|
21
|
+
matchesSigner(checkpoint: Checkpoint, signature: SignatureLike, messageId: HexString): boolean;
|
|
22
|
+
getLatestCheckpointIndex(): Promise<number>;
|
|
23
|
+
storageLocation(): string;
|
|
24
|
+
getLatestCheckpointUrl(): string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Create signature for validator announce
|
|
28
|
+
*/
|
|
29
|
+
export declare const createAnnounce: (validatorPrivKey: string, storageLocation: string, mailboxAddress: string, localDomain: number) => Promise<string>;
|
|
30
|
+
//# sourceMappingURL=validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../src/validator.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,OAAO,EACP,UAAU,EACV,gBAAgB,EAChB,SAAS,EACT,kBAAkB,EAClB,aAAa,EACd,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,aAAa;IACZ,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,eAAe;gBAAvB,MAAM,EAAE,eAAe;IAEtD,IAAI,OAAO,WAEV;IAED,kBAAkB;IAIlB,MAAM,CAAC,oBAAoB,CACzB,WAAW,EAAE,MAAM,EACnB,mBAAmB,EAAE,OAAO;IAK9B,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS;IAc3D,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS;IAK/D,MAAM,CAAC,4BAA4B,CACjC,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,aAAa,EACxB,SAAS,EAAE,SAAS,GACnB,OAAO;IAKV,MAAM,CAAC,kCAAkC,CACvC,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,gBAAgB,EAC5C,SAAS,EAAE,aAAa,GACvB,OAAO;IAQV,MAAM,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,kBAAkB,GAAG,OAAO;IAIxE,aAAa,CACX,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,aAAa,EACxB,SAAS,EAAE,SAAS;IAUtB,wBAAwB,IAAI,OAAO,CAAC,MAAM,CAAC;IAI3C,eAAe,IAAI,MAAM;IAIzB,sBAAsB,IAAI,MAAM;CAGjC;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,qBACP,MAAM,mBACP,MAAM,kBACP,MAAM,eACT,MAAM,oBAsBpB,CAAC"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { ethers } from 'ethers';
|
|
2
|
+
import { eqAddress } from './addresses.js';
|
|
3
|
+
import { domainHash } from './domains.js';
|
|
4
|
+
import { fromHexString, toHexString } from './strings.js';
|
|
5
|
+
/**
|
|
6
|
+
* Utilities for validators to construct and verify checkpoints.
|
|
7
|
+
*/
|
|
8
|
+
export class BaseValidator {
|
|
9
|
+
config;
|
|
10
|
+
constructor(config) {
|
|
11
|
+
this.config = config;
|
|
12
|
+
}
|
|
13
|
+
get address() {
|
|
14
|
+
return this.config.address;
|
|
15
|
+
}
|
|
16
|
+
announceDomainHash() {
|
|
17
|
+
return domainHash(this.config.localDomain, this.config.mailbox);
|
|
18
|
+
}
|
|
19
|
+
static checkpointDomainHash(localDomain, merkle_tree_address) {
|
|
20
|
+
return domainHash(localDomain, merkle_tree_address);
|
|
21
|
+
}
|
|
22
|
+
static message(checkpoint, messageId) {
|
|
23
|
+
const types = ['bytes32', 'bytes32', 'uint32', 'bytes32'];
|
|
24
|
+
const values = [
|
|
25
|
+
this.checkpointDomainHash(checkpoint.mailbox_domain, checkpoint.merkle_tree_hook_address),
|
|
26
|
+
checkpoint.root,
|
|
27
|
+
checkpoint.index,
|
|
28
|
+
messageId,
|
|
29
|
+
];
|
|
30
|
+
return ethers.utils.solidityPack(types, values);
|
|
31
|
+
}
|
|
32
|
+
static messageHash(checkpoint, messageId) {
|
|
33
|
+
const message = this.message(checkpoint, messageId);
|
|
34
|
+
return ethers.utils.arrayify(ethers.utils.keccak256(message));
|
|
35
|
+
}
|
|
36
|
+
static recoverAddressFromCheckpoint(checkpoint, signature, messageId) {
|
|
37
|
+
const msgHash = this.messageHash(checkpoint, messageId);
|
|
38
|
+
return ethers.utils.verifyMessage(msgHash, signature);
|
|
39
|
+
}
|
|
40
|
+
static recoverAddressFromCheckpointWithId({ checkpoint, message_id }, signature) {
|
|
41
|
+
return BaseValidator.recoverAddressFromCheckpoint(checkpoint, signature, message_id);
|
|
42
|
+
}
|
|
43
|
+
static recoverAddress({ value, signature }) {
|
|
44
|
+
return BaseValidator.recoverAddressFromCheckpointWithId(value, signature);
|
|
45
|
+
}
|
|
46
|
+
matchesSigner(checkpoint, signature, messageId) {
|
|
47
|
+
const address = BaseValidator.recoverAddressFromCheckpoint(checkpoint, signature, messageId);
|
|
48
|
+
return eqAddress(address, this.config.address);
|
|
49
|
+
}
|
|
50
|
+
getLatestCheckpointIndex() {
|
|
51
|
+
throw new Error('Not implemented');
|
|
52
|
+
}
|
|
53
|
+
storageLocation() {
|
|
54
|
+
throw new Error('Not implemented');
|
|
55
|
+
}
|
|
56
|
+
getLatestCheckpointUrl() {
|
|
57
|
+
throw new Error('Not implemented');
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Create signature for validator announce
|
|
62
|
+
*/
|
|
63
|
+
export const createAnnounce = async (validatorPrivKey, storageLocation, mailboxAddress, localDomain) => {
|
|
64
|
+
const domainIdBytes = Buffer.alloc(4);
|
|
65
|
+
domainIdBytes.writeUInt32BE(localDomain);
|
|
66
|
+
const domainHashBytes = toHexString(Buffer.concat([
|
|
67
|
+
domainIdBytes,
|
|
68
|
+
fromHexString(mailboxAddress),
|
|
69
|
+
Buffer.from('HYPERLANE_ANNOUNCEMENT'),
|
|
70
|
+
]));
|
|
71
|
+
const domainHash = ethers.utils.keccak256(domainHashBytes);
|
|
72
|
+
const announcementDigestBytes = toHexString(Buffer.concat([fromHexString(domainHash), Buffer.from(storageLocation)]));
|
|
73
|
+
const announcementDigest = ethers.utils.keccak256(announcementDigestBytes);
|
|
74
|
+
return new ethers.Wallet(validatorPrivKey).signMessage(fromHexString(announcementDigest));
|
|
75
|
+
};
|
|
76
|
+
//# sourceMappingURL=validator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../src/validator.ts"],"names":[],"mappings":"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"}
|
package/dist/yaml.d.ts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Node as YamlNode } from 'yaml';
|
|
2
|
+
import { Result } from './result.js';
|
|
3
|
+
export declare function tryParseJsonOrYaml<T = any>(input: string): Result<T>;
|
|
4
|
+
/**
|
|
5
|
+
* Transforms YAML content by applying a custom transformer function while preserving comments.
|
|
6
|
+
*
|
|
7
|
+
* @param content - Original YAML content as a string
|
|
8
|
+
* @param transformer - A function that transforms the parsed YAML data
|
|
9
|
+
* @returns The transformed YAML content as a string with comments preserved
|
|
10
|
+
*/
|
|
11
|
+
export declare function transformYaml<T extends YamlNode = YamlNode>(content: string, transformer: (data: T) => T): string;
|
|
12
|
+
export type ArraySortConfig = {
|
|
13
|
+
arrays: Array<{
|
|
14
|
+
path: string;
|
|
15
|
+
sortKey: string;
|
|
16
|
+
}>;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Sorts arrays nested within objects according to configuration
|
|
20
|
+
*/
|
|
21
|
+
export declare function sortNestedArrays<T>(data: T, config: ArraySortConfig, path?: string[]): T;
|
|
22
|
+
//# sourceMappingURL=yaml.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"yaml.d.ts","sourceRoot":"","sources":["../src/yaml.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,IAAI,IAAI,QAAQ,EAGjB,MAAM,MAAM,CAAC;AAId,OAAO,EAAE,MAAM,EAAoB,MAAM,aAAa,CAAC;AAEvD,wBAAgB,kBAAkB,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAWpE;AAmUD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ,EACzD,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAC1B,MAAM,CAMR;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;CACJ,CAAC;AAuDF;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAChC,IAAI,EAAE,CAAC,EACP,MAAM,EAAE,eAAe,EACvB,IAAI,GAAE,MAAM,EAAO,GAClB,CAAC,CAyBH"}
|
package/dist/yaml.js
ADDED
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
import { Document, parseDocument, parse as yamlParse, } from 'yaml';
|
|
2
|
+
import { sortArrayByKey } from './arrays.js';
|
|
3
|
+
import { rootLogger } from './logging.js';
|
|
4
|
+
import { failure, success } from './result.js';
|
|
5
|
+
export function tryParseJsonOrYaml(input) {
|
|
6
|
+
try {
|
|
7
|
+
if (input.startsWith('{')) {
|
|
8
|
+
return success(JSON.parse(input));
|
|
9
|
+
}
|
|
10
|
+
else {
|
|
11
|
+
return success(yamlParse(input));
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
catch (error) {
|
|
15
|
+
rootLogger.error('Error parsing JSON or YAML', error);
|
|
16
|
+
return failure('Input is not valid JSON or YAML');
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Preserves comments from the original YAML text when transformed text is generated.
|
|
21
|
+
* This ensures comments stay with their associated content after transformation.
|
|
22
|
+
*/
|
|
23
|
+
function preserveYamlComments(originalText, transformedText) {
|
|
24
|
+
const originalLines = originalText.split('\n');
|
|
25
|
+
const transformedLines = transformedText.split('\n');
|
|
26
|
+
const maps = buildCommentMaps(originalLines, transformedLines);
|
|
27
|
+
return assembleResultWithComments(originalLines, transformedLines, maps);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Builds all the necessary maps for tracking and preserving comments
|
|
31
|
+
*/
|
|
32
|
+
function buildCommentMaps(originalLines, transformedLines) {
|
|
33
|
+
const { contentToLineMap, inlineCommentMap } = extractContentLines(originalLines);
|
|
34
|
+
return {
|
|
35
|
+
inlineCommentMap,
|
|
36
|
+
contentToLineMap,
|
|
37
|
+
lineCommentMap: extractLineComments(originalLines),
|
|
38
|
+
transformedContentMap: mapTransformedContent(transformedLines),
|
|
39
|
+
commentBlocks: collectCommentBlocks(originalLines),
|
|
40
|
+
indentationMap: detectIndentation(transformedLines),
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Extract line comments from original text and maps them to line numbers
|
|
45
|
+
*/
|
|
46
|
+
function extractLineComments(lines) {
|
|
47
|
+
const lineCommentMap = new Map();
|
|
48
|
+
lines.forEach((line, index) => {
|
|
49
|
+
const lineNum = index + 1;
|
|
50
|
+
const trimmedLine = line.trim();
|
|
51
|
+
if (trimmedLine.startsWith('#')) {
|
|
52
|
+
// Full line comment - associate with line number
|
|
53
|
+
const comments = lineCommentMap.get(lineNum) || [];
|
|
54
|
+
comments.push(line);
|
|
55
|
+
lineCommentMap.set(lineNum, comments);
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
return lineCommentMap;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Extract content lines and inline comments from original text
|
|
62
|
+
*/
|
|
63
|
+
function extractContentLines(lines) {
|
|
64
|
+
const contentToLineMap = new Map();
|
|
65
|
+
const inlineCommentMap = new Map();
|
|
66
|
+
lines.forEach((line, index) => {
|
|
67
|
+
const lineNum = index + 1;
|
|
68
|
+
const trimmedLine = line.trim();
|
|
69
|
+
if (trimmedLine && !trimmedLine.startsWith('#')) {
|
|
70
|
+
// Content line - check for inline comments
|
|
71
|
+
const hashIndex = line.indexOf('#');
|
|
72
|
+
if (hashIndex >= 0) {
|
|
73
|
+
inlineCommentMap.set(lineNum, line.substring(hashIndex));
|
|
74
|
+
}
|
|
75
|
+
// Extract content without comments for mapping
|
|
76
|
+
const contentWithoutComment = hashIndex >= 0 ? line.substring(0, hashIndex).trim() : trimmedLine;
|
|
77
|
+
// Store mapping from content to line number
|
|
78
|
+
contentToLineMap.set(contentWithoutComment, lineNum);
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
return { contentToLineMap, inlineCommentMap };
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Map transformed content lines to their line numbers
|
|
85
|
+
*/
|
|
86
|
+
function mapTransformedContent(lines) {
|
|
87
|
+
const transformedContentMap = new Map();
|
|
88
|
+
lines.forEach((line, index) => {
|
|
89
|
+
const lineNum = index + 1;
|
|
90
|
+
const trimmedLine = line.trim();
|
|
91
|
+
if (trimmedLine && !trimmedLine.startsWith('#')) {
|
|
92
|
+
transformedContentMap.set(trimmedLine, lineNum);
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
return transformedContentMap;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Collects comment blocks and associates them with the next content line
|
|
99
|
+
*/
|
|
100
|
+
function collectCommentBlocks(lines) {
|
|
101
|
+
const commentBlocks = new Map();
|
|
102
|
+
let currentBlock = [];
|
|
103
|
+
let lastCommentLine = 0;
|
|
104
|
+
for (let i = 0; i < lines.length; i++) {
|
|
105
|
+
const line = lines[i];
|
|
106
|
+
const lineNum = i + 1;
|
|
107
|
+
if (line.trim().startsWith('#')) {
|
|
108
|
+
if (currentBlock.length === 0 || lineNum === lastCommentLine + 1) {
|
|
109
|
+
// Continue current block
|
|
110
|
+
currentBlock.push(line);
|
|
111
|
+
lastCommentLine = lineNum;
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
// Start new block
|
|
115
|
+
currentBlock = [line];
|
|
116
|
+
lastCommentLine = lineNum;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
else if (line.trim() && currentBlock.length > 0) {
|
|
120
|
+
// End of comment block, associate with this content line
|
|
121
|
+
commentBlocks.set(lineNum, [...currentBlock]);
|
|
122
|
+
currentBlock = [];
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
return commentBlocks;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Detects indentation patterns in the transformed text
|
|
129
|
+
*/
|
|
130
|
+
function detectIndentation(lines) {
|
|
131
|
+
const indentationMap = new Map();
|
|
132
|
+
const indentationPattern = /^(\s+)/;
|
|
133
|
+
lines.forEach((line, index) => {
|
|
134
|
+
const match = line.match(indentationPattern);
|
|
135
|
+
if (match) {
|
|
136
|
+
indentationMap.set(index + 1, match[1]);
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
return indentationMap;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Finds the best matching line in transformed text for a comment from original text
|
|
143
|
+
*/
|
|
144
|
+
function findBestMatchForComment(commentLine, originalLines, transformedContentMap) {
|
|
145
|
+
// Find the content line that follows this comment
|
|
146
|
+
let targetLine = commentLine;
|
|
147
|
+
while (targetLine < originalLines.length &&
|
|
148
|
+
(originalLines[targetLine].trim() === '' ||
|
|
149
|
+
originalLines[targetLine].trim().startsWith('#'))) {
|
|
150
|
+
targetLine++;
|
|
151
|
+
}
|
|
152
|
+
if (targetLine >= originalLines.length) {
|
|
153
|
+
return null;
|
|
154
|
+
}
|
|
155
|
+
const content = originalLines[targetLine];
|
|
156
|
+
const contentWithoutComment = content.indexOf('#') >= 0
|
|
157
|
+
? content.substring(0, content.indexOf('#')).trim()
|
|
158
|
+
: content.trim();
|
|
159
|
+
// Find this content in the transformed text
|
|
160
|
+
for (const [transformedContent, transformedLine,] of transformedContentMap.entries()) {
|
|
161
|
+
if (transformedContent.includes(contentWithoutComment) ||
|
|
162
|
+
contentWithoutComment.includes(transformedContent)) {
|
|
163
|
+
return transformedLine;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
return null;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Assembles the final result with preserved comments
|
|
170
|
+
*/
|
|
171
|
+
function assembleResultWithComments(originalLines, transformedLines, maps) {
|
|
172
|
+
const { contentToLineMap, transformedContentMap, inlineCommentMap, commentBlocks, indentationMap, } = maps;
|
|
173
|
+
const result = [];
|
|
174
|
+
const usedComments = new Set();
|
|
175
|
+
// Processed each transformed line and add comments as needed
|
|
176
|
+
transformedLines.forEach((line, index) => {
|
|
177
|
+
const lineNum = index + 1;
|
|
178
|
+
const trimmedLine = line.trim();
|
|
179
|
+
// Check if we should insert comments before this line
|
|
180
|
+
insertCommentsBeforeLine(lineNum, commentBlocks, originalLines, transformedContentMap, indentationMap, usedComments, result);
|
|
181
|
+
// Add the content line, with inline comment if applicable
|
|
182
|
+
addContentLineWithInlineComment(line, trimmedLine, contentToLineMap, inlineCommentMap, result);
|
|
183
|
+
});
|
|
184
|
+
return result.join('\n');
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Inserts comment blocks before a line if they match
|
|
188
|
+
*/
|
|
189
|
+
function insertCommentsBeforeLine(lineNum, commentBlocks, originalLines, transformedContentMap, indentationMap, usedComments, result) {
|
|
190
|
+
for (const [commentLine, comments] of commentBlocks.entries()) {
|
|
191
|
+
const bestMatch = findBestMatchForComment(commentLine - comments.length, originalLines, transformedContentMap);
|
|
192
|
+
if (bestMatch === lineNum) {
|
|
193
|
+
// Add comments with proper indentation
|
|
194
|
+
const indentation = indentationMap.get(lineNum) || '';
|
|
195
|
+
for (const comment of comments) {
|
|
196
|
+
if (!usedComments.has(comment)) {
|
|
197
|
+
result.push(comment.startsWith('#') ? indentation + comment.trim() : comment);
|
|
198
|
+
usedComments.add(comment);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Adds a content line with its inline comment if it has one
|
|
206
|
+
*/
|
|
207
|
+
function addContentLineWithInlineComment(line, trimmedLine, contentToLineMap, inlineCommentMap, result) {
|
|
208
|
+
const contentWithoutComment = trimmedLine.trim();
|
|
209
|
+
const originalLineNum = contentToLineMap.get(contentWithoutComment);
|
|
210
|
+
if (originalLineNum && inlineCommentMap.has(originalLineNum)) {
|
|
211
|
+
// Has inline comment - reattach it
|
|
212
|
+
const inlineComment = inlineCommentMap.get(originalLineNum);
|
|
213
|
+
result.push(`${line} ${inlineComment}`);
|
|
214
|
+
}
|
|
215
|
+
else {
|
|
216
|
+
result.push(line);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Transforms YAML content by applying a custom transformer function while preserving comments.
|
|
221
|
+
*
|
|
222
|
+
* @param content - Original YAML content as a string
|
|
223
|
+
* @param transformer - A function that transforms the parsed YAML data
|
|
224
|
+
* @returns The transformed YAML content as a string with comments preserved
|
|
225
|
+
*/
|
|
226
|
+
export function transformYaml(content, transformer) {
|
|
227
|
+
const parsedDoc = parseDocument(content, { keepSourceTokens: true });
|
|
228
|
+
const newDoc = new Document();
|
|
229
|
+
newDoc.contents = transformer(parsedDoc.toJSON());
|
|
230
|
+
return preserveYamlComments(content, newDoc.toString());
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Finds a matching sort key from configuration based on the given path array
|
|
234
|
+
* Supports various pattern formats including wildcards, array notation, and exact matches
|
|
235
|
+
*/
|
|
236
|
+
function findSortKeyForPath(path, config) {
|
|
237
|
+
const matchingConfig = config.arrays.find(({ path: configPath }) => {
|
|
238
|
+
const patternParts = configPath.split('.');
|
|
239
|
+
return isPathMatch(path, patternParts);
|
|
240
|
+
});
|
|
241
|
+
return matchingConfig?.sortKey || null;
|
|
242
|
+
}
|
|
243
|
+
function isPathMatch(path, patternParts) {
|
|
244
|
+
let pathIndex = 0;
|
|
245
|
+
for (let patternIndex = 0; patternIndex < patternParts.length; patternIndex++) {
|
|
246
|
+
if (pathIndex >= path.length)
|
|
247
|
+
return false;
|
|
248
|
+
const pattern = patternParts[patternIndex];
|
|
249
|
+
const pathSegment = path[pathIndex];
|
|
250
|
+
if (pattern === '*') {
|
|
251
|
+
pathIndex++;
|
|
252
|
+
continue;
|
|
253
|
+
}
|
|
254
|
+
if (pattern.endsWith('[]')) {
|
|
255
|
+
const prefix = pattern.slice(0, -2);
|
|
256
|
+
if (!prefix || pathSegment !== prefix)
|
|
257
|
+
return false;
|
|
258
|
+
pathIndex++;
|
|
259
|
+
if (pathIndex >= path.length)
|
|
260
|
+
return false;
|
|
261
|
+
if (isNaN(Number(path[pathIndex])))
|
|
262
|
+
return false;
|
|
263
|
+
pathIndex++;
|
|
264
|
+
continue;
|
|
265
|
+
}
|
|
266
|
+
if (pattern !== pathSegment)
|
|
267
|
+
return false;
|
|
268
|
+
pathIndex++;
|
|
269
|
+
}
|
|
270
|
+
return pathIndex === path.length;
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Sorts arrays nested within objects according to configuration
|
|
274
|
+
*/
|
|
275
|
+
export function sortNestedArrays(data, config, path = []) {
|
|
276
|
+
// Handle arrays
|
|
277
|
+
if (Array.isArray(data)) {
|
|
278
|
+
const sortKey = findSortKeyForPath(path, config);
|
|
279
|
+
// Process each array item recursively
|
|
280
|
+
const processedArray = data.map((item, idx) => sortNestedArrays(item, config, [...path, idx.toString()]));
|
|
281
|
+
return (sortKey ? sortArrayByKey(processedArray, sortKey) : processedArray);
|
|
282
|
+
}
|
|
283
|
+
// Handle objects
|
|
284
|
+
if (typeof data === 'object' && data !== null) {
|
|
285
|
+
const result = {};
|
|
286
|
+
for (const [key, val] of Object.entries(data)) {
|
|
287
|
+
result[key] = sortNestedArrays(val, config, [...path, key]);
|
|
288
|
+
}
|
|
289
|
+
return result;
|
|
290
|
+
}
|
|
291
|
+
return data;
|
|
292
|
+
}
|
|
293
|
+
//# sourceMappingURL=yaml.js.map
|
package/dist/yaml.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"yaml.js","sourceRoot":"","sources":["../src/yaml.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"yaml.test.d.ts","sourceRoot":"","sources":["../src/yaml.test.ts"],"names":[],"mappings":""}
|