@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.
Files changed (113) hide show
  1. package/README.md +20 -0
  2. package/dist/addresses.d.ts +42 -0
  3. package/dist/addresses.d.ts.map +1 -0
  4. package/dist/addresses.js +292 -0
  5. package/dist/addresses.js.map +1 -0
  6. package/dist/addresses.test.d.ts +2 -0
  7. package/dist/addresses.test.d.ts.map +1 -0
  8. package/dist/addresses.test.js +44 -0
  9. package/dist/addresses.test.js.map +1 -0
  10. package/dist/amount.d.ts +45 -0
  11. package/dist/amount.d.ts.map +1 -0
  12. package/dist/amount.js +114 -0
  13. package/dist/amount.js.map +1 -0
  14. package/dist/amount.test.d.ts +2 -0
  15. package/dist/amount.test.d.ts.map +1 -0
  16. package/dist/amount.test.js +46 -0
  17. package/dist/amount.test.js.map +1 -0
  18. package/dist/arrays.d.ts +8 -0
  19. package/dist/arrays.d.ts.map +1 -0
  20. package/dist/arrays.js +11 -0
  21. package/dist/arrays.js.map +1 -0
  22. package/dist/async.d.ts +56 -0
  23. package/dist/async.d.ts.map +1 -0
  24. package/dist/async.js +110 -0
  25. package/dist/async.js.map +1 -0
  26. package/dist/base58.d.ts +5 -0
  27. package/dist/base58.d.ts.map +1 -0
  28. package/dist/base58.js +15 -0
  29. package/dist/base58.js.map +1 -0
  30. package/dist/base64.d.ts +3 -0
  31. package/dist/base64.d.ts.map +1 -0
  32. package/dist/base64.js +25 -0
  33. package/dist/base64.js.map +1 -0
  34. package/dist/big-numbers.d.ts +50 -0
  35. package/dist/big-numbers.d.ts.map +1 -0
  36. package/dist/big-numbers.js +80 -0
  37. package/dist/big-numbers.js.map +1 -0
  38. package/dist/big-numbers.test.d.ts +2 -0
  39. package/dist/big-numbers.test.d.ts.map +1 -0
  40. package/dist/big-numbers.test.js +96 -0
  41. package/dist/big-numbers.test.js.map +1 -0
  42. package/dist/calldata.d.ts +3 -0
  43. package/dist/calldata.d.ts.map +1 -0
  44. package/dist/calldata.js +4 -0
  45. package/dist/calldata.js.map +1 -0
  46. package/dist/checkpoints.d.ts +5 -0
  47. package/dist/checkpoints.d.ts.map +1 -0
  48. package/dist/checkpoints.js +24 -0
  49. package/dist/checkpoints.js.map +1 -0
  50. package/dist/domains.d.ts +2 -0
  51. package/dist/domains.d.ts.map +1 -0
  52. package/dist/domains.js +6 -0
  53. package/dist/domains.js.map +1 -0
  54. package/dist/env.d.ts +2 -0
  55. package/dist/env.d.ts.map +1 -0
  56. package/dist/env.js +11 -0
  57. package/dist/env.js.map +1 -0
  58. package/dist/ids.d.ts +20 -0
  59. package/dist/ids.d.ts.map +1 -0
  60. package/dist/ids.js +42 -0
  61. package/dist/ids.js.map +1 -0
  62. package/dist/index.d.ts +23 -23
  63. package/dist/index.d.ts.map +1 -1
  64. package/dist/index.js +23 -146
  65. package/dist/index.js.map +1 -1
  66. package/dist/logging.d.ts +21 -0
  67. package/dist/logging.d.ts.map +1 -0
  68. package/dist/logging.js +91 -0
  69. package/dist/logging.js.map +1 -0
  70. package/dist/math.d.ts +5 -0
  71. package/dist/math.d.ts.map +1 -0
  72. package/dist/math.js +18 -0
  73. package/dist/math.js.map +1 -0
  74. package/dist/messages.d.ts +21 -0
  75. package/dist/messages.d.ts.map +1 -0
  76. package/dist/messages.js +52 -0
  77. package/dist/messages.js.map +1 -0
  78. package/dist/multisig.d.ts +4 -0
  79. package/dist/multisig.d.ts.map +1 -0
  80. package/dist/multisig.js +53 -0
  81. package/dist/multisig.js.map +1 -0
  82. package/dist/objects.d.ts +19 -0
  83. package/dist/objects.d.ts.map +1 -0
  84. package/dist/objects.js +95 -0
  85. package/dist/objects.js.map +1 -0
  86. package/dist/sets.d.ts +4 -0
  87. package/dist/sets.d.ts.map +1 -0
  88. package/dist/sets.js +24 -0
  89. package/dist/sets.js.map +1 -0
  90. package/dist/src/types.d.ts +1 -2
  91. package/dist/src/types.d.ts.map +1 -1
  92. package/dist/src/types.js.map +1 -1
  93. package/dist/strings.d.ts +7 -0
  94. package/dist/strings.d.ts.map +1 -0
  95. package/dist/strings.js +43 -0
  96. package/dist/strings.js.map +1 -0
  97. package/dist/typeof.d.ts +3 -0
  98. package/dist/typeof.d.ts.map +1 -0
  99. package/dist/typeof.js +7 -0
  100. package/dist/typeof.js.map +1 -0
  101. package/dist/types.d.ts +88 -0
  102. package/dist/types.d.ts.map +1 -0
  103. package/dist/types.js +22 -0
  104. package/dist/types.js.map +1 -0
  105. package/dist/validation.d.ts +2 -0
  106. package/dist/validation.d.ts.map +1 -0
  107. package/dist/validation.js +6 -0
  108. package/dist/validation.js.map +1 -0
  109. package/dist/validator.d.ts +17 -0
  110. package/dist/validator.d.ts.map +1 -0
  111. package/dist/validator.js +43 -0
  112. package/dist/validator.js.map +1 -0
  113. package/package.json +13 -8
@@ -0,0 +1,43 @@
1
+ import { ethers } from 'ethers';
2
+ import { domainHash } from './domains.js';
3
+ /**
4
+ * Utilities for validators to construct and verify checkpoints.
5
+ */
6
+ export class BaseValidator {
7
+ address;
8
+ localDomain;
9
+ mailbox_address;
10
+ constructor(address, localDomain, mailbox_address) {
11
+ this.address = address;
12
+ this.localDomain = localDomain;
13
+ this.mailbox_address = mailbox_address;
14
+ }
15
+ announceDomainHash() {
16
+ return domainHash(this.localDomain, this.mailbox_address);
17
+ }
18
+ checkpointDomainHash(merkle_tree_address) {
19
+ return domainHash(this.localDomain, merkle_tree_address);
20
+ }
21
+ message(checkpoint, messageId) {
22
+ const types = ['bytes32', 'bytes32', 'uint32', 'bytes32'];
23
+ const values = [
24
+ this.checkpointDomainHash(checkpoint.merkle_tree_hook_address),
25
+ checkpoint.root,
26
+ checkpoint.index,
27
+ messageId,
28
+ ];
29
+ return ethers.utils.solidityPack(types, values);
30
+ }
31
+ messageHash(checkpoint, messageId) {
32
+ const message = this.message(checkpoint, messageId);
33
+ return ethers.utils.arrayify(ethers.utils.keccak256(message));
34
+ }
35
+ recoverAddressFromCheckpoint(checkpoint, signature, messageId) {
36
+ const msgHash = this.messageHash(checkpoint, messageId);
37
+ return ethers.utils.verifyMessage(msgHash, signature);
38
+ }
39
+ matchesSigner(checkpoint, signature, messageId) {
40
+ return (this.recoverAddressFromCheckpoint(checkpoint, signature, messageId).toLowerCase() === this.address.toLowerCase());
41
+ }
42
+ }
43
+ //# sourceMappingURL=validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.js","sourceRoot":"","sources":["../src/validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAS1C;;GAEG;AACH,MAAM,OAAO,aAAa;IAEN;IACA;IACA;IAHlB,YACkB,OAAgB,EAChB,WAAmB,EACnB,eAAwB;QAFxB,YAAO,GAAP,OAAO,CAAS;QAChB,gBAAW,GAAX,WAAW,CAAQ;QACnB,oBAAe,GAAf,eAAe,CAAS;IACvC,CAAC;IAEJ,kBAAkB;QAChB,OAAO,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IAC5D,CAAC;IAED,oBAAoB,CAAC,mBAA4B;QAC/C,OAAO,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC;IAC3D,CAAC;IAED,OAAO,CAAC,UAAsB,EAAE,SAAoB;QAClD,MAAM,KAAK,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG;YACb,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,wBAAwB,CAAC;YAC9D,UAAU,CAAC,IAAI;YACf,UAAU,CAAC,KAAK;YAChB,SAAS;SACV,CAAC;QACF,OAAO,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAClD,CAAC;IAED,WAAW,CAAC,UAAsB,EAAE,SAAoB;QACtD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QACpD,OAAO,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,4BAA4B,CAC1B,UAAsB,EACtB,SAAwB,EACxB,SAAoB;QAEpB,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QACxD,OAAO,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACxD,CAAC;IAED,aAAa,CACX,UAAsB,EACtB,SAAwB,EACxB,SAAoB;QAEpB,OAAO,CACL,IAAI,CAAC,4BAA4B,CAC/B,UAAU,EACV,SAAS,EACT,SAAS,CACV,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAC/C,CAAC;IACJ,CAAC;CACF"}
package/package.json CHANGED
@@ -1,31 +1,31 @@
1
1
  {
2
2
  "name": "@hyperlane-xyz/utils",
3
3
  "description": "General utilities and types for the Hyperlane network",
4
- "version": "3.10.0",
4
+ "version": "3.10.1-beta1",
5
5
  "dependencies": {
6
6
  "@cosmjs/encoding": "^0.31.3",
7
7
  "@solana/web3.js": "^1.78.0",
8
8
  "bignumber.js": "^9.1.1",
9
9
  "ethers": "^5.7.2",
10
- "pino": "^8.19.0"
10
+ "pino": "^8.19.0",
11
+ "yaml": "^2.3.1"
11
12
  },
12
13
  "devDependencies": {
13
14
  "@types/mocha": "^10.0.1",
14
15
  "chai": "^4.3.6",
15
16
  "mocha": "^10.2.0",
16
17
  "prettier": "^2.8.8",
17
- "typescript": "5.1.6"
18
+ "typescript": "5.3.3"
18
19
  },
19
20
  "homepage": "https://www.hyperlane.xyz",
21
+ "repository": "https://github.com/hyperlane-xyz/hyperlane-monorepo",
20
22
  "keywords": [
21
23
  "Hyperlane",
22
24
  "Utilities",
23
25
  "Typescript"
24
26
  ],
25
27
  "license": "Apache-2.0",
26
- "main": "dist/index.js",
27
28
  "prepublish": "yarn build",
28
- "repository": "https://github.com/hyperlane-xyz/hyperlane-monorepo",
29
29
  "scripts": {
30
30
  "build": "tsc",
31
31
  "clean": "rm -rf ./dist",
@@ -34,9 +34,14 @@
34
34
  "test": "mocha --config .mocharc.json './src/**/*.test.ts'",
35
35
  "test:ci": "yarn test"
36
36
  },
37
- "sideEffects": false,
38
- "types": "dist/index.d.ts",
37
+ "type": "module",
38
+ "exports": "./dist/index.js",
39
+ "types": "./dist/index.d.ts",
39
40
  "files": [
40
41
  "/dist"
41
- ]
42
+ ],
43
+ "sideEffects": false,
44
+ "engines": {
45
+ "node": ">=16"
46
+ }
42
47
  }