@hyperlane-xyz/sdk 1.2.3 → 1.3.0

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 (234) hide show
  1. package/dist/HyperlaneApp.d.ts +11 -7
  2. package/dist/HyperlaneApp.d.ts.map +1 -1
  3. package/dist/HyperlaneApp.js +14 -0
  4. package/dist/HyperlaneApp.js.map +1 -1
  5. package/dist/agents/types.d.ts +56 -0
  6. package/dist/agents/types.d.ts.map +1 -0
  7. package/dist/agents/types.js +43 -0
  8. package/dist/agents/types.js.map +1 -0
  9. package/dist/consts/bytecode.d.ts +11 -0
  10. package/dist/consts/bytecode.d.ts.map +1 -0
  11. package/dist/consts/bytecode.js +15 -0
  12. package/dist/consts/bytecode.js.map +1 -0
  13. package/dist/consts/environments/index.d.ts +64 -231
  14. package/dist/consts/environments/index.d.ts.map +1 -1
  15. package/dist/consts/environments/index.js +2 -12
  16. package/dist/consts/environments/index.js.map +1 -1
  17. package/dist/consts/environments/mainnet.json +28 -99
  18. package/dist/consts/environments/test.json +20 -44
  19. package/dist/consts/environments/testnet.json +27 -90
  20. package/dist/consts/multisigIsm.d.ts +4 -0
  21. package/dist/consts/multisigIsm.d.ts.map +1 -0
  22. package/dist/consts/multisigIsm.js +174 -0
  23. package/dist/consts/multisigIsm.js.map +1 -0
  24. package/dist/contracts.d.ts +14 -10
  25. package/dist/contracts.d.ts.map +1 -1
  26. package/dist/contracts.js +28 -43
  27. package/dist/contracts.js.map +1 -1
  28. package/dist/core/HyperlaneCore.d.ts +5 -16
  29. package/dist/core/HyperlaneCore.d.ts.map +1 -1
  30. package/dist/core/HyperlaneCore.js +7 -35
  31. package/dist/core/HyperlaneCore.js.map +1 -1
  32. package/dist/core/HyperlaneCoreChecker.d.ts +0 -6
  33. package/dist/core/HyperlaneCoreChecker.d.ts.map +1 -1
  34. package/dist/core/HyperlaneCoreChecker.js +20 -155
  35. package/dist/core/HyperlaneCoreChecker.js.map +1 -1
  36. package/dist/core/HyperlaneCoreDeployer.d.ts +8 -22
  37. package/dist/core/HyperlaneCoreDeployer.d.ts.map +1 -1
  38. package/dist/core/HyperlaneCoreDeployer.js +14 -141
  39. package/dist/core/HyperlaneCoreDeployer.js.map +1 -1
  40. package/dist/core/TestCoreApp.d.ts +8 -12
  41. package/dist/core/TestCoreApp.d.ts.map +1 -1
  42. package/dist/core/TestCoreApp.js +6 -3
  43. package/dist/core/TestCoreApp.js.map +1 -1
  44. package/dist/core/TestCoreDeployer.d.ts +2 -2
  45. package/dist/core/TestCoreDeployer.d.ts.map +1 -1
  46. package/dist/core/TestCoreDeployer.js +4 -25
  47. package/dist/core/TestCoreDeployer.js.map +1 -1
  48. package/dist/core/contracts.d.ts +3 -22
  49. package/dist/core/contracts.d.ts.map +1 -1
  50. package/dist/core/contracts.js +1 -7
  51. package/dist/core/contracts.js.map +1 -1
  52. package/dist/core/testHyperlaneDeploy.hardhat-test.js +2 -2
  53. package/dist/core/testHyperlaneDeploy.hardhat-test.js.map +1 -1
  54. package/dist/core/types.d.ts +4 -47
  55. package/dist/core/types.d.ts.map +1 -1
  56. package/dist/core/types.js +1 -16
  57. package/dist/core/types.js.map +1 -1
  58. package/dist/deploy/HyperlaneAppChecker.d.ts +2 -4
  59. package/dist/deploy/HyperlaneAppChecker.d.ts.map +1 -1
  60. package/dist/deploy/HyperlaneAppChecker.js +46 -28
  61. package/dist/deploy/HyperlaneAppChecker.js.map +1 -1
  62. package/dist/deploy/HyperlaneDeployer.d.ts +20 -19
  63. package/dist/deploy/HyperlaneDeployer.d.ts.map +1 -1
  64. package/dist/deploy/HyperlaneDeployer.js +112 -86
  65. package/dist/deploy/HyperlaneDeployer.js.map +1 -1
  66. package/dist/deploy/proxy.d.ts +1 -13
  67. package/dist/deploy/proxy.d.ts.map +1 -1
  68. package/dist/deploy/proxy.js +8 -13
  69. package/dist/deploy/proxy.js.map +1 -1
  70. package/dist/deploy/types.d.ts +1 -0
  71. package/dist/deploy/types.d.ts.map +1 -1
  72. package/dist/deploy/verify/utils.d.ts +1 -0
  73. package/dist/deploy/verify/utils.d.ts.map +1 -1
  74. package/dist/deploy/verify/utils.js +9 -4
  75. package/dist/deploy/verify/utils.js.map +1 -1
  76. package/dist/gas/HyperlaneIgp.d.ts +53 -0
  77. package/dist/gas/HyperlaneIgp.d.ts.map +1 -0
  78. package/dist/gas/HyperlaneIgp.js +72 -0
  79. package/dist/gas/HyperlaneIgp.js.map +1 -0
  80. package/dist/gas/HyperlaneIgpChecker.d.ts +14 -0
  81. package/dist/gas/HyperlaneIgpChecker.d.ts.map +1 -0
  82. package/dist/gas/HyperlaneIgpChecker.js +148 -0
  83. package/dist/gas/HyperlaneIgpChecker.js.map +1 -0
  84. package/dist/gas/HyperlaneIgpDeployer.d.ts +22 -0
  85. package/dist/gas/HyperlaneIgpDeployer.d.ts.map +1 -0
  86. package/dist/gas/HyperlaneIgpDeployer.js +113 -0
  87. package/dist/gas/HyperlaneIgpDeployer.js.map +1 -0
  88. package/dist/gas/contracts.d.ts +9 -0
  89. package/dist/gas/contracts.d.ts.map +1 -0
  90. package/dist/gas/contracts.js +11 -0
  91. package/dist/gas/contracts.js.map +1 -0
  92. package/dist/gas/types.d.ts +35 -50
  93. package/dist/gas/types.d.ts.map +1 -1
  94. package/dist/gas/types.js +11 -17
  95. package/dist/gas/types.js.map +1 -1
  96. package/dist/index.d.ts +33 -25
  97. package/dist/index.d.ts.map +1 -1
  98. package/dist/index.js +66 -43
  99. package/dist/index.js.map +1 -1
  100. package/dist/middleware/MiddlewareRouterChecker.d.ts +8 -0
  101. package/dist/middleware/MiddlewareRouterChecker.d.ts.map +1 -0
  102. package/dist/middleware/MiddlewareRouterChecker.js +26 -0
  103. package/dist/middleware/MiddlewareRouterChecker.js.map +1 -0
  104. package/dist/middleware/MiddlewareRouterDeployer.d.ts +17 -0
  105. package/dist/middleware/MiddlewareRouterDeployer.d.ts.map +1 -0
  106. package/dist/middleware/MiddlewareRouterDeployer.js +62 -0
  107. package/dist/middleware/MiddlewareRouterDeployer.js.map +1 -0
  108. package/dist/middleware/account/InterchainAccount.d.ts +11 -0
  109. package/dist/middleware/account/InterchainAccount.d.ts.map +1 -0
  110. package/dist/middleware/account/InterchainAccount.js +21 -0
  111. package/dist/middleware/account/InterchainAccount.js.map +1 -0
  112. package/dist/middleware/account/InterchainAccountChecker.d.ts +7 -0
  113. package/dist/middleware/account/InterchainAccountChecker.d.ts.map +1 -0
  114. package/dist/middleware/account/InterchainAccountChecker.js +8 -0
  115. package/dist/middleware/account/InterchainAccountChecker.js.map +1 -0
  116. package/dist/middleware/account/InterchainAccountDeployer.d.ts +14 -0
  117. package/dist/middleware/account/InterchainAccountDeployer.d.ts.map +1 -0
  118. package/dist/middleware/account/InterchainAccountDeployer.js +64 -0
  119. package/dist/middleware/account/InterchainAccountDeployer.js.map +1 -0
  120. package/dist/middleware/account/accounts.hardhat-test.d.ts.map +1 -0
  121. package/dist/middleware/{accounts.hardhat-test.js → account/accounts.hardhat-test.js} +21 -24
  122. package/dist/middleware/account/accounts.hardhat-test.js.map +1 -0
  123. package/dist/middleware/account/contracts.d.ts +7 -0
  124. package/dist/middleware/account/contracts.d.ts.map +1 -0
  125. package/dist/middleware/account/contracts.js +9 -0
  126. package/dist/middleware/account/contracts.js.map +1 -0
  127. package/dist/middleware/liquidity-layer/LiquidityLayerApp.d.ts +5 -4
  128. package/dist/middleware/liquidity-layer/LiquidityLayerApp.d.ts.map +1 -1
  129. package/dist/middleware/liquidity-layer/LiquidityLayerApp.js +12 -2
  130. package/dist/middleware/liquidity-layer/LiquidityLayerApp.js.map +1 -1
  131. package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.d.ts +8 -6
  132. package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.d.ts.map +1 -1
  133. package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.js +13 -10
  134. package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.js.map +1 -1
  135. package/dist/middleware/liquidity-layer/contracts.d.ts +5 -8
  136. package/dist/middleware/liquidity-layer/contracts.d.ts.map +1 -1
  137. package/dist/middleware/liquidity-layer/contracts.js +2 -1
  138. package/dist/middleware/liquidity-layer/contracts.js.map +1 -1
  139. package/dist/middleware/liquidity-layer/liquidity-layer.hardhat-test.js +33 -30
  140. package/dist/middleware/liquidity-layer/liquidity-layer.hardhat-test.js.map +1 -1
  141. package/dist/middleware/query/InterchainQuery.d.ts +11 -0
  142. package/dist/middleware/query/InterchainQuery.d.ts.map +1 -0
  143. package/dist/middleware/query/InterchainQuery.js +21 -0
  144. package/dist/middleware/query/InterchainQuery.js.map +1 -0
  145. package/dist/middleware/query/InterchainQueryChecker.d.ts +7 -0
  146. package/dist/middleware/query/InterchainQueryChecker.d.ts.map +1 -0
  147. package/dist/middleware/query/InterchainQueryChecker.js +8 -0
  148. package/dist/middleware/query/InterchainQueryChecker.js.map +1 -0
  149. package/dist/middleware/query/InterchainQueryDeployer.d.ts +12 -0
  150. package/dist/middleware/query/InterchainQueryDeployer.d.ts.map +1 -0
  151. package/dist/middleware/query/InterchainQueryDeployer.js +13 -0
  152. package/dist/middleware/query/InterchainQueryDeployer.js.map +1 -0
  153. package/dist/middleware/query/contracts.d.ts +7 -0
  154. package/dist/middleware/query/contracts.d.ts.map +1 -0
  155. package/dist/middleware/query/contracts.js +9 -0
  156. package/dist/middleware/query/contracts.js.map +1 -0
  157. package/dist/middleware/query/queries.hardhat-test.d.ts.map +1 -0
  158. package/dist/middleware/{queries.hardhat-test.js → query/queries.hardhat-test.js} +21 -12
  159. package/dist/middleware/query/queries.hardhat-test.js.map +1 -0
  160. package/dist/providers/MultiProvider.d.ts +6 -1
  161. package/dist/providers/MultiProvider.d.ts.map +1 -1
  162. package/dist/providers/MultiProvider.js +32 -26
  163. package/dist/providers/MultiProvider.js.map +1 -1
  164. package/dist/router/GasRouterDeployer.d.ts +4 -4
  165. package/dist/router/GasRouterDeployer.d.ts.map +1 -1
  166. package/dist/router/GasRouterDeployer.js +1 -1
  167. package/dist/router/GasRouterDeployer.js.map +1 -1
  168. package/dist/router/HyperlaneRouterChecker.d.ts +3 -5
  169. package/dist/router/HyperlaneRouterChecker.d.ts.map +1 -1
  170. package/dist/router/HyperlaneRouterChecker.js +4 -8
  171. package/dist/router/HyperlaneRouterChecker.js.map +1 -1
  172. package/dist/router/HyperlaneRouterDeployer.d.ts +9 -6
  173. package/dist/router/HyperlaneRouterDeployer.d.ts.map +1 -1
  174. package/dist/router/HyperlaneRouterDeployer.js +13 -28
  175. package/dist/router/HyperlaneRouterDeployer.js.map +1 -1
  176. package/dist/router/RouterApps.d.ts +6 -4
  177. package/dist/router/RouterApps.d.ts.map +1 -1
  178. package/dist/router/RouterApps.js +2 -2
  179. package/dist/router/RouterApps.js.map +1 -1
  180. package/dist/router/types.d.ts +4 -16
  181. package/dist/router/types.d.ts.map +1 -1
  182. package/dist/test/envSubsetDeployer/app.d.ts +18 -11
  183. package/dist/test/envSubsetDeployer/app.d.ts.map +1 -1
  184. package/dist/test/envSubsetDeployer/app.js +14 -15
  185. package/dist/test/envSubsetDeployer/app.js.map +1 -1
  186. package/dist/test/envSubsetDeployer/check-single-chain.js +6 -4
  187. package/dist/test/envSubsetDeployer/check-single-chain.js.map +1 -1
  188. package/dist/test/envSubsetDeployer/deploy-single-chain.js +7 -5
  189. package/dist/test/envSubsetDeployer/deploy-single-chain.js.map +1 -1
  190. package/dist/test/envSubsetDeployer/deploy.hardhat-test.js +12 -13
  191. package/dist/test/envSubsetDeployer/deploy.hardhat-test.js.map +1 -1
  192. package/dist/test/testUtils.d.ts +10 -23
  193. package/dist/test/testUtils.d.ts.map +1 -1
  194. package/dist/test/testUtils.js +45 -60
  195. package/dist/test/testUtils.js.map +1 -1
  196. package/dist/utils/ism.d.ts +2 -0
  197. package/dist/utils/ism.d.ts.map +1 -0
  198. package/dist/utils/ism.js +18 -0
  199. package/dist/utils/ism.js.map +1 -0
  200. package/dist/utils/objects.d.ts +3 -1
  201. package/dist/utils/objects.d.ts.map +1 -1
  202. package/dist/utils/objects.js +35 -2
  203. package/dist/utils/objects.js.map +1 -1
  204. package/package.json +4 -4
  205. package/dist/deploy/utils.d.ts +0 -6
  206. package/dist/deploy/utils.d.ts.map +0 -1
  207. package/dist/deploy/utils.js +0 -13
  208. package/dist/deploy/utils.js.map +0 -1
  209. package/dist/gas/calculator.d.ts +0 -186
  210. package/dist/gas/calculator.d.ts.map +0 -1
  211. package/dist/gas/calculator.hardhat-test.d.ts +0 -2
  212. package/dist/gas/calculator.hardhat-test.d.ts.map +0 -1
  213. package/dist/gas/calculator.hardhat-test.js +0 -59
  214. package/dist/gas/calculator.hardhat-test.js.map +0 -1
  215. package/dist/gas/calculator.js +0 -301
  216. package/dist/gas/calculator.js.map +0 -1
  217. package/dist/gas/calculator.test.d.ts +0 -2
  218. package/dist/gas/calculator.test.d.ts.map +0 -1
  219. package/dist/gas/calculator.test.js +0 -197
  220. package/dist/gas/calculator.test.js.map +0 -1
  221. package/dist/middleware/accounts.hardhat-test.d.ts.map +0 -1
  222. package/dist/middleware/accounts.hardhat-test.js.map +0 -1
  223. package/dist/middleware/deploy.d.ts +0 -28
  224. package/dist/middleware/deploy.d.ts.map +0 -1
  225. package/dist/middleware/deploy.js +0 -68
  226. package/dist/middleware/deploy.js.map +0 -1
  227. package/dist/middleware/queries.hardhat-test.d.ts.map +0 -1
  228. package/dist/middleware/queries.hardhat-test.js.map +0 -1
  229. package/dist/proxy.d.ts +0 -21
  230. package/dist/proxy.d.ts.map +0 -1
  231. package/dist/proxy.js +0 -32
  232. package/dist/proxy.js.map +0 -1
  233. /package/dist/middleware/{accounts.hardhat-test.d.ts → account/accounts.hardhat-test.d.ts} +0 -0
  234. /package/dist/middleware/{queries.hardhat-test.d.ts → query/queries.hardhat-test.d.ts} +0 -0
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HyperlaneIgp = void 0;
4
+ const core_1 = require("@hyperlane-xyz/core");
5
+ const HyperlaneApp_1 = require("../HyperlaneApp");
6
+ const environments_1 = require("../consts/environments");
7
+ const contracts_1 = require("./contracts");
8
+ class HyperlaneIgp extends HyperlaneApp_1.HyperlaneApp {
9
+ static fromEnvironment(env, multiProvider) {
10
+ const envAddresses = environments_1.hyperlaneEnvironments[env];
11
+ if (!envAddresses) {
12
+ throw new Error(`No addresses found for ${env}`);
13
+ }
14
+ const fromAddressesMap = this.fromAddressesMap(envAddresses, contracts_1.igpFactories, multiProvider);
15
+ return new HyperlaneIgp(fromAddressesMap.contractsMap, fromAddressesMap.multiProvider);
16
+ }
17
+ /**
18
+ * Calls the default ISM IGP's `quoteGasPayment` function to get the amount of native tokens
19
+ * required to pay for interchain gas.
20
+ * The default ISM IGP will add any gas overhead amounts related to the Mailbox
21
+ * and default ISM on the destination to the provided gasAmount.
22
+ * @param origin The name of the origin chain.
23
+ * @param destination The name of the destination chain.
24
+ * @param gasAmount The amount of gas to use when calling `quoteGasPayment`.
25
+ * The default IGP is expected to add any gas overhead related to the Mailbox
26
+ * or ISM, so this gas amount is only required to cover the usage of the `handle`
27
+ * function.
28
+ * @returns The amount of native tokens required to pay for interchain gas.
29
+ */
30
+ quoteGasPayment(origin, destination, gasAmount) {
31
+ const igp = this.getContracts(origin).interchainGasPaymaster;
32
+ return this.quoteGasPaymentForIgp(origin, destination, gasAmount, igp.address);
33
+ }
34
+ /**
35
+ * Calls the default ISM IGP's `quoteGasPayment` function to get the amount of native tokens
36
+ * required to pay for interchain gas.
37
+ * The default ISM IGP will add any gas overhead amounts related to the Mailbox
38
+ * and default ISM on the destination to the provided gasAmount.
39
+ * @param origin The name of the origin chain.
40
+ * @param destination The name of the destination chain.
41
+ * @param gasAmount The amount of gas to use when calling `quoteGasPayment`.
42
+ * The default IGP is expected to add any gas overhead related to the Mailbox
43
+ * or ISM, so this gas amount is only required to cover the usage of the `handle`
44
+ * function.
45
+ * @returns The amount of native tokens required to pay for interchain gas.
46
+ */
47
+ quoteGasPaymentForDefaultIsmIgp(origin, destination, gasAmount) {
48
+ const igp = this.getContracts(origin).defaultIsmInterchainGasPaymaster;
49
+ return this.quoteGasPaymentForIgp(origin, destination, gasAmount, igp.address);
50
+ }
51
+ /**
52
+ * Calls the origin's default IGP's `quoteGasPayment` function to get the
53
+ * amount of native tokens required to pay for interchain gas.
54
+ * The default IGP is expected to add any gas overhead related to the Mailbox
55
+ * and ISM to the provided gasAmount.
56
+ * @param origin The name of the origin chain.
57
+ * @param destination The name of the destination chain.
58
+ * @param gasAmount The amount of gas to use when calling `quoteGasPayment`.
59
+ * The default IGP is expected to add any gas overhead related to the Mailbox
60
+ * or ISM, so this gas amount is only required to cover the usage of the `handle`
61
+ * function.
62
+ * @returns The amount of native tokens required to pay for interchain gas.
63
+ */
64
+ quoteGasPaymentForIgp(origin, destination, gasAmount, interchainGasPaymasterAddress) {
65
+ const originProvider = this.multiProvider.getProvider(origin);
66
+ const igp = core_1.InterchainGasPaymaster__factory.connect(interchainGasPaymasterAddress, originProvider);
67
+ const domainId = this.multiProvider.getDomainId(destination);
68
+ return igp.quoteGasPayment(domainId, gasAmount);
69
+ }
70
+ }
71
+ exports.HyperlaneIgp = HyperlaneIgp;
72
+ //# sourceMappingURL=HyperlaneIgp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HyperlaneIgp.js","sourceRoot":"","sources":["../../src/gas/HyperlaneIgp.ts"],"names":[],"mappings":";;;AAEA,8CAAsE;AAGtE,kDAA+C;AAC/C,yDAGgC;AAIhC,2CAAyD;AAEzD,MAAa,YAAa,SAAQ,2BAA0B;IAC1D,MAAM,CAAC,eAAe,CACpB,GAAQ,EACR,aAA4B;QAE5B,MAAM,YAAY,GAAG,oCAAqB,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,CAAC,YAAY,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,0BAA0B,GAAG,EAAE,CAAC,CAAC;SAClD;QACD,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAC5C,YAAY,EACZ,wBAAY,EACZ,aAAa,CACd,CAAC;QACF,OAAO,IAAI,YAAY,CACrB,gBAAgB,CAAC,YAAY,EAC7B,gBAAgB,CAAC,aAAa,CAC/B,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,eAAe,CACb,MAAiB,EACjB,WAAsB,EACtB,SAAoB;QAEpB,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC;QAC7D,OAAO,IAAI,CAAC,qBAAqB,CAC/B,MAAM,EACN,WAAW,EACX,SAAS,EACT,GAAG,CAAC,OAAO,CACZ,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,+BAA+B,CAC7B,MAAiB,EACjB,WAAsB,EACtB,SAAoB;QAEpB,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,gCAAgC,CAAC;QACvE,OAAO,IAAI,CAAC,qBAAqB,CAC/B,MAAM,EACN,WAAW,EACX,SAAS,EACT,GAAG,CAAC,OAAO,CACZ,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;OAYG;IACO,qBAAqB,CAC7B,MAAiB,EACjB,WAAsB,EACtB,SAAoB,EACpB,6BAA4C;QAE5C,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC9D,MAAM,GAAG,GAAG,sCAA+B,CAAC,OAAO,CACjD,6BAA6B,EAC7B,cAAc,CACf,CAAC;QACF,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC7D,OAAO,GAAG,CAAC,eAAe,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAClD,CAAC;CACF;AArGD,oCAqGC"}
@@ -0,0 +1,14 @@
1
+ import { types } from '@hyperlane-xyz/utils';
2
+ import { HyperlaneAppChecker } from '../deploy/HyperlaneAppChecker';
3
+ import { ChainName } from '../types';
4
+ import { HyperlaneIgp } from './HyperlaneIgp';
5
+ import { OverheadIgpConfig } from './types';
6
+ export declare class HyperlaneIgpChecker extends HyperlaneAppChecker<HyperlaneIgp, OverheadIgpConfig> {
7
+ checkChain(chain: ChainName): Promise<void>;
8
+ checkDomainOwnership(chain: ChainName): Promise<void>;
9
+ checkBytecodes(chain: ChainName): Promise<void>;
10
+ checkOverheadInterchainGasPaymaster(local: ChainName): Promise<void>;
11
+ checkInterchainGasPaymaster(local: ChainName): Promise<void>;
12
+ getGasOracleAddress(local: ChainName, remote: ChainName): types.Address;
13
+ }
14
+ //# sourceMappingURL=HyperlaneIgpChecker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HyperlaneIgpChecker.d.ts","sourceRoot":"","sources":["../../src/gas/HyperlaneIgpChecker.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAS,MAAM,sBAAsB,CAAC;AAGpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEpE,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAML,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAEjB,qBAAa,mBAAoB,SAAQ,mBAAmB,CAC1D,YAAY,EACZ,iBAAiB,CAClB;IACO,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ3C,oBAAoB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAOrD,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAsC/C,mCAAmC,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAsCpE,2BAA2B,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAiDlE,mBAAmB,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,KAAK,CAAC,OAAO;CAgBxE"}
@@ -0,0 +1,148 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.HyperlaneIgpChecker = void 0;
13
+ const ethers_1 = require("ethers");
14
+ const utils_1 = require("@hyperlane-xyz/utils");
15
+ const bytecode_1 = require("../consts/bytecode");
16
+ const HyperlaneAppChecker_1 = require("../deploy/HyperlaneAppChecker");
17
+ const proxy_1 = require("../deploy/proxy");
18
+ const types_1 = require("./types");
19
+ class HyperlaneIgpChecker extends HyperlaneAppChecker_1.HyperlaneAppChecker {
20
+ checkChain(chain) {
21
+ return __awaiter(this, void 0, void 0, function* () {
22
+ yield this.checkDomainOwnership(chain);
23
+ yield this.checkProxiedContracts(chain);
24
+ yield this.checkBytecodes(chain);
25
+ yield this.checkOverheadInterchainGasPaymaster(chain);
26
+ yield this.checkInterchainGasPaymaster(chain);
27
+ });
28
+ }
29
+ checkDomainOwnership(chain) {
30
+ return __awaiter(this, void 0, void 0, function* () {
31
+ const config = this.configMap[chain];
32
+ if (config.owner) {
33
+ return this.checkOwnership(chain, config.owner);
34
+ }
35
+ });
36
+ }
37
+ checkBytecodes(chain) {
38
+ return __awaiter(this, void 0, void 0, function* () {
39
+ const contracts = this.app.getContracts(chain);
40
+ yield this.checkBytecode(chain, 'InterchainGasPaymaster proxy', contracts.interchainGasPaymaster.address, [bytecode_1.BytecodeHash.TRANSPARENT_PROXY_BYTECODE_HASH]);
41
+ const implementation = yield (0, proxy_1.proxyImplementation)(this.multiProvider.getProvider(chain), contracts.interchainGasPaymaster.address);
42
+ yield this.checkBytecode(chain, 'InterchainGasPaymaster implementation', implementation, [
43
+ bytecode_1.BytecodeHash.INTERCHAIN_GAS_PAYMASTER_BYTECODE_HASH,
44
+ bytecode_1.BytecodeHash.OWNER_INITIALIZABLE_INTERCHAIN_GAS_PAYMASTER_BYTECODE_HASH,
45
+ ]);
46
+ yield this.checkBytecode(chain, 'OverheadIGP', contracts.defaultIsmInterchainGasPaymaster.address, [bytecode_1.BytecodeHash.OVERHEAD_IGP_BYTECODE_HASH], (bytecode) =>
47
+ // Remove the address of the wrapped IGP from the bytecode
48
+ bytecode.replaceAll(ethers_1.utils.defaultAbiCoder
49
+ .encode(['address'], [contracts.interchainGasPaymaster.address])
50
+ .slice(2), ''));
51
+ });
52
+ }
53
+ checkOverheadInterchainGasPaymaster(local) {
54
+ return __awaiter(this, void 0, void 0, function* () {
55
+ const coreContracts = this.app.getContracts(local);
56
+ const defaultIsmIgp = coreContracts.defaultIsmInterchainGasPaymaster;
57
+ // Construct the violation, updating the actual & expected
58
+ // objects as violations are found.
59
+ // A single violation is used so that only a single `setDestinationGasOverheads`
60
+ // call is generated to set multiple gas overheads.
61
+ const overheadViolation = {
62
+ type: 'InterchainGasPaymaster',
63
+ subType: types_1.IgpViolationType.Overhead,
64
+ contract: defaultIsmIgp,
65
+ chain: local,
66
+ actual: {},
67
+ expected: {},
68
+ };
69
+ const remotes = this.app.remoteChains(local);
70
+ for (const remote of remotes) {
71
+ const expectedOverhead = this.configMap[local].overhead[remote];
72
+ const remoteId = this.multiProvider.getDomainId(remote);
73
+ const existingOverhead = yield defaultIsmIgp.destinationGasOverhead(remoteId);
74
+ if (!existingOverhead.eq(expectedOverhead)) {
75
+ const remoteChain = remote;
76
+ overheadViolation.actual[remoteChain] = existingOverhead;
77
+ overheadViolation.expected[remoteChain] =
78
+ ethers_1.BigNumber.from(expectedOverhead);
79
+ }
80
+ }
81
+ if (Object.keys(overheadViolation.actual).length > 0) {
82
+ this.addViolation(overheadViolation);
83
+ }
84
+ });
85
+ }
86
+ checkInterchainGasPaymaster(local) {
87
+ return __awaiter(this, void 0, void 0, function* () {
88
+ const coreContracts = this.app.getContracts(local);
89
+ const igp = coreContracts.interchainGasPaymaster;
90
+ // Construct the violation, updating the actual & expected
91
+ // objects as violations are found.
92
+ // A single violation is used so that only a single `setGasOracles`
93
+ // call is generated to set multiple gas oracles.
94
+ const gasOraclesViolation = {
95
+ type: 'InterchainGasPaymaster',
96
+ subType: types_1.IgpViolationType.GasOracles,
97
+ contract: igp,
98
+ chain: local,
99
+ actual: {},
100
+ expected: {},
101
+ };
102
+ const remotes = this.app.remoteChains(local);
103
+ for (const remote of remotes) {
104
+ const remoteId = this.multiProvider.getDomainId(remote);
105
+ const actualGasOracle = yield igp.gasOracles(remoteId);
106
+ const expectedGasOracle = this.getGasOracleAddress(local, remote);
107
+ if (!utils_1.utils.eqAddress(actualGasOracle, expectedGasOracle)) {
108
+ const remoteChain = remote;
109
+ gasOraclesViolation.actual[remoteChain] = actualGasOracle;
110
+ gasOraclesViolation.expected[remoteChain] = expectedGasOracle;
111
+ }
112
+ }
113
+ // Add the violation only if it's been populated with gas oracle inconsistencies
114
+ if (Object.keys(gasOraclesViolation.actual).length > 0) {
115
+ this.addViolation(gasOraclesViolation);
116
+ }
117
+ const actualBeneficiary = yield igp.beneficiary();
118
+ const expectedBeneficiary = this.configMap[local].beneficiary;
119
+ if (!utils_1.utils.eqAddress(actualBeneficiary, expectedBeneficiary)) {
120
+ const violation = {
121
+ type: 'InterchainGasPaymaster',
122
+ subType: types_1.IgpViolationType.Beneficiary,
123
+ contract: igp,
124
+ chain: local,
125
+ actual: actualBeneficiary,
126
+ expected: expectedBeneficiary,
127
+ };
128
+ this.addViolation(violation);
129
+ }
130
+ });
131
+ }
132
+ getGasOracleAddress(local, remote) {
133
+ const config = this.configMap[local];
134
+ const gasOracleType = config.gasOracleType[remote];
135
+ if (!gasOracleType) {
136
+ throw Error(`Expected gas oracle type for local ${local} and remote ${remote}`);
137
+ }
138
+ const coreContracts = this.app.getContracts(local);
139
+ switch (gasOracleType) {
140
+ case types_1.GasOracleContractType.StorageGasOracle:
141
+ return coreContracts.storageGasOracle.address;
142
+ default:
143
+ throw Error(`Unsupported gas oracle type ${gasOracleType}`);
144
+ }
145
+ }
146
+ }
147
+ exports.HyperlaneIgpChecker = HyperlaneIgpChecker;
148
+ //# sourceMappingURL=HyperlaneIgpChecker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HyperlaneIgpChecker.js","sourceRoot":"","sources":["../../src/gas/HyperlaneIgpChecker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { InterchainGasPaymaster, OverheadIgp, ProxyAdmin, StorageGasOracle } from '@hyperlane-xyz/core';
2
+ import { types } from '@hyperlane-xyz/utils';
3
+ import { HyperlaneContracts } from '../contracts';
4
+ import { DeployOptions, HyperlaneDeployer } from '../deploy/HyperlaneDeployer';
5
+ import { MultiProvider } from '../providers/MultiProvider';
6
+ import { ChainMap, ChainName } from '../types';
7
+ import { IgpFactories } from './contracts';
8
+ import { OverheadIgpConfig } from './types';
9
+ export declare class HyperlaneIgpDeployer extends HyperlaneDeployer<OverheadIgpConfig, IgpFactories> {
10
+ startingBlockNumbers: ChainMap<number | undefined>;
11
+ constructor(multiProvider: MultiProvider, configMap: ChainMap<OverheadIgpConfig>, factoriesOverride?: {
12
+ proxyAdmin: import("@hyperlane-xyz/core").ProxyAdmin__factory;
13
+ interchainGasPaymaster: import("@hyperlane-xyz/core").InterchainGasPaymaster__factory;
14
+ defaultIsmInterchainGasPaymaster: import("@hyperlane-xyz/core").OverheadIgp__factory;
15
+ storageGasOracle: import("@hyperlane-xyz/core").StorageGasOracle__factory;
16
+ });
17
+ deployInterchainGasPaymaster(chain: ChainName, proxyAdmin: ProxyAdmin, storageGasOracle: StorageGasOracle, deployOpts?: DeployOptions): Promise<InterchainGasPaymaster>;
18
+ deployOverheadInterchainGasPaymaster(chain: ChainName, interchainGasPaymasterAddress: types.Address, deployOpts?: DeployOptions): Promise<OverheadIgp>;
19
+ deployStorageGasOracle(chain: ChainName, deployOpts?: DeployOptions): Promise<StorageGasOracle>;
20
+ deployContracts(chain: ChainName, config: OverheadIgpConfig): Promise<HyperlaneContracts<IgpFactories>>;
21
+ }
22
+ //# sourceMappingURL=HyperlaneIgpDeployer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HyperlaneIgpDeployer.d.ts","sourceRoot":"","sources":["../../src/gas/HyperlaneIgpDeployer.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,sBAAsB,EACtB,WAAW,EAGX,UAAU,EACV,gBAAgB,EACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAS,MAAM,sBAAsB,CAAC;AAEpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAG/C,OAAO,EAAE,YAAY,EAAgB,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5C,qBAAa,oBAAqB,SAAQ,iBAAiB,CACzD,iBAAiB,EACjB,YAAY,CACb;IACC,oBAAoB,EAAE,QAAQ,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;gBAGjD,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EACtC,iBAAiB;;;;;KAAe;IAQ5B,4BAA4B,CAChC,KAAK,EAAE,SAAS,EAChB,UAAU,EAAE,UAAU,EACtB,gBAAgB,EAAE,gBAAgB,EAClC,UAAU,CAAC,EAAE,aAAa,GACzB,OAAO,CAAC,sBAAsB,CAAC;IA2C5B,oCAAoC,CACxC,KAAK,EAAE,SAAS,EAChB,6BAA6B,EAAE,KAAK,CAAC,OAAO,EAC5C,UAAU,CAAC,EAAE,aAAa,GACzB,OAAO,CAAC,WAAW,CAAC;IAmDjB,sBAAsB,CAC1B,KAAK,EAAE,SAAS,EAChB,UAAU,CAAC,EAAE,aAAa,GACzB,OAAO,CAAC,gBAAgB,CAAC;IAItB,eAAe,CACnB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;CA6B7C"}
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.HyperlaneIgpDeployer = void 0;
16
+ const debug_1 = __importDefault(require("debug"));
17
+ const core_1 = require("@hyperlane-xyz/core");
18
+ const utils_1 = require("@hyperlane-xyz/utils");
19
+ const HyperlaneDeployer_1 = require("../deploy/HyperlaneDeployer");
20
+ const objects_1 = require("../utils/objects");
21
+ const contracts_1 = require("./contracts");
22
+ class HyperlaneIgpDeployer extends HyperlaneDeployer_1.HyperlaneDeployer {
23
+ constructor(multiProvider, configMap, factoriesOverride = contracts_1.igpFactories) {
24
+ super(multiProvider, configMap, factoriesOverride, {
25
+ logger: (0, debug_1.default)('hyperlane:IgpDeployer'),
26
+ });
27
+ this.startingBlockNumbers = (0, objects_1.objMap)(configMap, () => undefined);
28
+ }
29
+ deployInterchainGasPaymaster(chain, proxyAdmin, storageGasOracle, deployOpts) {
30
+ return __awaiter(this, void 0, void 0, function* () {
31
+ const owner = this.configMap[chain].owner;
32
+ const beneficiary = this.configMap[chain].beneficiary;
33
+ const igp = yield this.deployProxiedContract(chain, 'interchainGasPaymaster', [beneficiary], [owner, beneficiary], proxyAdmin.address, deployOpts);
34
+ // Set the gas oracles
35
+ const configChains = Object.keys(this.configMap);
36
+ const remotes = this.multiProvider
37
+ .intersect(configChains, false)
38
+ .multiProvider.getRemoteChains(chain);
39
+ const gasOracleConfigsToSet = [];
40
+ for (const remote of remotes) {
41
+ const remoteId = this.multiProvider.getDomainId(remote);
42
+ const currentGasOracle = yield igp.gasOracles(remoteId);
43
+ if (!utils_1.utils.eqAddress(currentGasOracle, storageGasOracle.address)) {
44
+ gasOracleConfigsToSet.push({
45
+ remoteDomain: remoteId,
46
+ gasOracle: storageGasOracle.address,
47
+ });
48
+ }
49
+ }
50
+ if (gasOracleConfigsToSet.length > 0) {
51
+ yield this.runIfOwner(chain, igp, () => __awaiter(this, void 0, void 0, function* () {
52
+ return this.multiProvider.handleTx(chain, igp.setGasOracles(gasOracleConfigsToSet));
53
+ }));
54
+ }
55
+ return igp;
56
+ });
57
+ }
58
+ deployOverheadInterchainGasPaymaster(chain, interchainGasPaymasterAddress, deployOpts) {
59
+ return __awaiter(this, void 0, void 0, function* () {
60
+ const deployer = yield this.multiProvider.getSignerAddress(chain);
61
+ // Transfer ownership to the deployer so the destination gas overheads can be set
62
+ const initCalldata = core_1.Ownable__factory.createInterface().encodeFunctionData('transferOwnership', [deployer]);
63
+ const overheadInterchainGasPaymaster = yield this.deployContract(chain, 'defaultIsmInterchainGasPaymaster', [interchainGasPaymasterAddress], Object.assign(Object.assign({}, deployOpts), { initCalldata }));
64
+ const configChains = Object.keys(this.configMap);
65
+ const remotes = this.multiProvider
66
+ .intersect(configChains, false)
67
+ .multiProvider.getRemoteChains(chain);
68
+ // Only set gas overhead configs if they differ from what's on chain
69
+ const configs = [];
70
+ for (const remote of remotes) {
71
+ const remoteDomain = this.multiProvider.getDomainId(remote);
72
+ const gasOverhead = this.configMap[chain].overhead[remote];
73
+ const existingOverhead = yield overheadInterchainGasPaymaster.destinationGasOverhead(remoteDomain);
74
+ if (!existingOverhead.eq(gasOverhead)) {
75
+ configs.push({ domain: remoteDomain, gasOverhead });
76
+ }
77
+ }
78
+ if (configs.length > 0) {
79
+ yield this.runIfOwner(chain, overheadInterchainGasPaymaster, () => this.multiProvider.handleTx(chain, overheadInterchainGasPaymaster.setDestinationGasOverheads(configs, this.multiProvider.getTransactionOverrides(chain))));
80
+ }
81
+ return overheadInterchainGasPaymaster;
82
+ });
83
+ }
84
+ deployStorageGasOracle(chain, deployOpts) {
85
+ return __awaiter(this, void 0, void 0, function* () {
86
+ return this.deployContract(chain, 'storageGasOracle', [], deployOpts);
87
+ });
88
+ }
89
+ deployContracts(chain, config) {
90
+ return __awaiter(this, void 0, void 0, function* () {
91
+ const provider = this.multiProvider.getProvider(chain);
92
+ const startingBlockNumber = yield provider.getBlockNumber();
93
+ this.startingBlockNumbers[chain] = startingBlockNumber;
94
+ // NB: To share ProxyAdmins with HyperlaneCore, ensure the ProxyAdmin
95
+ // is loaded into the contract cache.
96
+ const proxyAdmin = yield this.deployContract(chain, 'proxyAdmin', []);
97
+ const storageGasOracle = yield this.deployStorageGasOracle(chain);
98
+ const interchainGasPaymaster = yield this.deployInterchainGasPaymaster(chain, proxyAdmin, storageGasOracle);
99
+ const overheadInterchainGasPaymaster = yield this.deployOverheadInterchainGasPaymaster(chain, interchainGasPaymaster.address);
100
+ // Ownership of the Mailbox and the interchainGasPaymaster is transferred upon initialization.
101
+ const ownables = [overheadInterchainGasPaymaster];
102
+ yield this.transferOwnershipOfContracts(chain, config.owner, ownables);
103
+ return {
104
+ proxyAdmin,
105
+ storageGasOracle,
106
+ interchainGasPaymaster,
107
+ defaultIsmInterchainGasPaymaster: overheadInterchainGasPaymaster,
108
+ };
109
+ });
110
+ }
111
+ }
112
+ exports.HyperlaneIgpDeployer = HyperlaneIgpDeployer;
113
+ //# sourceMappingURL=HyperlaneIgpDeployer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HyperlaneIgpDeployer.js","sourceRoot":"","sources":["../../src/gas/HyperlaneIgpDeployer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { InterchainGasPaymaster__factory, OverheadIgp__factory, ProxyAdmin__factory, StorageGasOracle__factory } from '@hyperlane-xyz/core';
2
+ export declare const igpFactories: {
3
+ proxyAdmin: ProxyAdmin__factory;
4
+ interchainGasPaymaster: InterchainGasPaymaster__factory;
5
+ defaultIsmInterchainGasPaymaster: OverheadIgp__factory;
6
+ storageGasOracle: StorageGasOracle__factory;
7
+ };
8
+ export declare type IgpFactories = typeof igpFactories;
9
+ //# sourceMappingURL=contracts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../src/gas/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,+BAA+B,EAC/B,oBAAoB,EACpB,mBAAmB,EACnB,yBAAyB,EAC1B,MAAM,qBAAqB,CAAC;AAE7B,eAAO,MAAM,YAAY;;;;;CAKxB,CAAC;AAEF,oBAAY,YAAY,GAAG,OAAO,YAAY,CAAC"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.igpFactories = void 0;
4
+ const core_1 = require("@hyperlane-xyz/core");
5
+ exports.igpFactories = {
6
+ proxyAdmin: new core_1.ProxyAdmin__factory(),
7
+ interchainGasPaymaster: new core_1.InterchainGasPaymaster__factory(),
8
+ defaultIsmInterchainGasPaymaster: new core_1.OverheadIgp__factory(),
9
+ storageGasOracle: new core_1.StorageGasOracle__factory(),
10
+ };
11
+ //# sourceMappingURL=contracts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../src/gas/contracts.ts"],"names":[],"mappings":";;;AAAA,8CAK6B;AAEhB,QAAA,YAAY,GAAG;IAC1B,UAAU,EAAE,IAAI,0BAAmB,EAAE;IACrC,sBAAsB,EAAE,IAAI,sCAA+B,EAAE;IAC7D,gCAAgC,EAAE,IAAI,2BAAoB,EAAE;IAC5D,gBAAgB,EAAE,IAAI,gCAAyB,EAAE;CAClD,CAAC"}
@@ -1,59 +1,44 @@
1
- import { Mailbox, MultisigIsm } from '@hyperlane-xyz/core';
1
+ import { BigNumber } from 'ethers';
2
+ import { InterchainGasPaymaster, OverheadIgp } from '@hyperlane-xyz/core';
2
3
  import type { types } from '@hyperlane-xyz/utils';
3
4
  import type { CheckerViolation } from '../deploy/types';
4
- import { ChainName } from '../types';
5
- export declare type MultisigIsmConfig = {
6
- validators: Array<types.Address>;
7
- threshold: number;
8
- };
9
- export declare type CoreConfig = {
10
- multisigIsm: MultisigIsmConfig;
5
+ import { ChainMap } from '../types';
6
+ export declare enum GasOracleContractType {
7
+ StorageGasOracle = "StorageGasOracle"
8
+ }
9
+ export declare type IgpConfig = {
11
10
  owner: types.Address;
12
- remove?: boolean;
11
+ beneficiary: types.Address;
12
+ gasOracleType: ChainMap<GasOracleContractType>;
13
13
  };
14
- export declare enum CoreViolationType {
15
- MultisigIsm = "MultisigIsm",
16
- Mailbox = "Mailbox",
17
- ConnectionManager = "ConnectionManager",
18
- ValidatorAnnounce = "ValidatorAnnounce"
19
- }
20
- export declare enum MultisigIsmViolationType {
21
- EnrolledValidators = "EnrolledValidators",
22
- Threshold = "Threshold"
23
- }
24
- export declare enum MailboxViolationType {
25
- DefaultIsm = "DefaultIsm"
26
- }
27
- export interface MailboxViolation extends CheckerViolation {
28
- type: CoreViolationType.Mailbox;
29
- contract: Mailbox;
30
- mailboxType: MailboxViolationType;
31
- }
32
- export interface MailboxMultisigIsmViolation extends MailboxViolation {
14
+ export declare type OverheadIgpConfig = IgpConfig & {
15
+ overhead: ChainMap<number>;
16
+ };
17
+ export declare enum IgpViolationType {
18
+ Beneficiary = "Beneficiary",
19
+ GasOracles = "GasOracles",
20
+ Overhead = "Overhead"
21
+ }
22
+ export interface IgpViolation extends CheckerViolation {
23
+ type: 'InterchainGasPaymaster';
24
+ subType: IgpViolationType;
25
+ }
26
+ export interface IgpBeneficiaryViolation extends IgpViolation {
27
+ subType: IgpViolationType.Beneficiary;
28
+ contract: InterchainGasPaymaster;
33
29
  actual: types.Address;
34
30
  expected: types.Address;
35
31
  }
36
- export interface MultisigIsmViolation extends CheckerViolation {
37
- type: CoreViolationType.MultisigIsm;
38
- contract: MultisigIsm;
39
- subType: MultisigIsmViolationType;
40
- remote: ChainName;
41
- }
42
- export interface EnrolledValidatorsViolation extends MultisigIsmViolation {
43
- subType: MultisigIsmViolationType.EnrolledValidators;
44
- actual: Set<types.Address>;
45
- expected: Set<types.Address>;
46
- }
47
- export interface ThresholdViolation extends MultisigIsmViolation {
48
- subType: MultisigIsmViolationType.Threshold;
49
- actual: number;
50
- expected: number;
51
- }
52
- export interface ValidatorAnnounceViolation extends CheckerViolation {
53
- type: CoreViolationType.ValidatorAnnounce;
54
- chain: ChainName;
55
- validator: types.Address;
56
- actual: boolean;
57
- expected: boolean;
32
+ export interface IgpGasOraclesViolation extends IgpViolation {
33
+ subType: IgpViolationType.GasOracles;
34
+ contract: InterchainGasPaymaster;
35
+ actual: ChainMap<types.Address>;
36
+ expected: ChainMap<types.Address>;
37
+ }
38
+ export interface IgpOverheadViolation extends IgpViolation {
39
+ subType: IgpViolationType.Overhead;
40
+ contract: OverheadIgp;
41
+ actual: ChainMap<BigNumber>;
42
+ expected: ChainMap<BigNumber>;
58
43
  }
59
44
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/gas/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,oBAAY,iBAAiB,GAAG;IAC9B,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,oBAAY,UAAU,GAAG;IACvB,WAAW,EAAE,iBAAiB,CAAC;IAC/B,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,oBAAY,iBAAiB;IAC3B,WAAW,gBAAgB;IAC3B,OAAO,YAAY;IACnB,iBAAiB,sBAAsB;IACvC,iBAAiB,sBAAsB;CACxC;AAED,oBAAY,wBAAwB;IAClC,kBAAkB,uBAAuB;IACzC,SAAS,cAAc;CACxB;AAED,oBAAY,oBAAoB;IAC9B,UAAU,eAAe;CAC1B;AAED,MAAM,WAAW,gBAAiB,SAAQ,gBAAgB;IACxD,IAAI,EAAE,iBAAiB,CAAC,OAAO,CAAC;IAChC,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,oBAAoB,CAAC;CACnC;AAED,MAAM,WAAW,2BAA4B,SAAQ,gBAAgB;IACnE,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;IACtB,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;IAC5D,IAAI,EAAE,iBAAiB,CAAC,WAAW,CAAC;IACpC,QAAQ,EAAE,WAAW,CAAC;IACtB,OAAO,EAAE,wBAAwB,CAAC;IAClC,MAAM,EAAE,SAAS,CAAC;CACnB;AAED,MAAM,WAAW,2BAA4B,SAAQ,oBAAoB;IACvE,OAAO,EAAE,wBAAwB,CAAC,kBAAkB,CAAC;IACrD,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3B,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,kBAAmB,SAAQ,oBAAoB;IAC9D,OAAO,EAAE,wBAAwB,CAAC,SAAS,CAAC;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,0BAA2B,SAAQ,gBAAgB;IAClE,IAAI,EAAE,iBAAiB,CAAC,iBAAiB,CAAC;IAC1C,KAAK,EAAE,SAAS,CAAC;IACjB,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;CACnB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/gas/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,oBAAY,qBAAqB;IAC/B,gBAAgB,qBAAqB;CACtC;AAED,oBAAY,SAAS,GAAG;IACtB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;IACrB,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC;IAC3B,aAAa,EAAE,QAAQ,CAAC,qBAAqB,CAAC,CAAC;CAChD,CAAC;AAEF,oBAAY,iBAAiB,GAAG,SAAS,GAAG;IAC1C,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;CAC5B,CAAC;AAEF,oBAAY,gBAAgB;IAC1B,WAAW,gBAAgB;IAC3B,UAAU,eAAe;IACzB,QAAQ,aAAa;CACtB;AAED,MAAM,WAAW,YAAa,SAAQ,gBAAgB;IACpD,IAAI,EAAE,wBAAwB,CAAC;IAC/B,OAAO,EAAE,gBAAgB,CAAC;CAC3B;AAED,MAAM,WAAW,uBAAwB,SAAQ,YAAY;IAC3D,OAAO,EAAE,gBAAgB,CAAC,WAAW,CAAC;IACtC,QAAQ,EAAE,sBAAsB,CAAC;IACjC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;IACtB,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,sBAAuB,SAAQ,YAAY;IAC1D,OAAO,EAAE,gBAAgB,CAAC,UAAU,CAAC;IACrC,QAAQ,EAAE,sBAAsB,CAAC;IACjC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAChC,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,oBAAqB,SAAQ,YAAY;IACxD,OAAO,EAAE,gBAAgB,CAAC,QAAQ,CAAC;IACnC,QAAQ,EAAE,WAAW,CAAC;IACtB,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC5B,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;CAC/B"}
package/dist/gas/types.js CHANGED
@@ -1,20 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MailboxViolationType = exports.MultisigIsmViolationType = exports.CoreViolationType = void 0;
4
- var CoreViolationType;
5
- (function (CoreViolationType) {
6
- CoreViolationType["MultisigIsm"] = "MultisigIsm";
7
- CoreViolationType["Mailbox"] = "Mailbox";
8
- CoreViolationType["ConnectionManager"] = "ConnectionManager";
9
- CoreViolationType["ValidatorAnnounce"] = "ValidatorAnnounce";
10
- })(CoreViolationType = exports.CoreViolationType || (exports.CoreViolationType = {}));
11
- var MultisigIsmViolationType;
12
- (function (MultisigIsmViolationType) {
13
- MultisigIsmViolationType["EnrolledValidators"] = "EnrolledValidators";
14
- MultisigIsmViolationType["Threshold"] = "Threshold";
15
- })(MultisigIsmViolationType = exports.MultisigIsmViolationType || (exports.MultisigIsmViolationType = {}));
16
- var MailboxViolationType;
17
- (function (MailboxViolationType) {
18
- MailboxViolationType["DefaultIsm"] = "DefaultIsm";
19
- })(MailboxViolationType = exports.MailboxViolationType || (exports.MailboxViolationType = {}));
3
+ exports.IgpViolationType = exports.GasOracleContractType = void 0;
4
+ var GasOracleContractType;
5
+ (function (GasOracleContractType) {
6
+ GasOracleContractType["StorageGasOracle"] = "StorageGasOracle";
7
+ })(GasOracleContractType = exports.GasOracleContractType || (exports.GasOracleContractType = {}));
8
+ var IgpViolationType;
9
+ (function (IgpViolationType) {
10
+ IgpViolationType["Beneficiary"] = "Beneficiary";
11
+ IgpViolationType["GasOracles"] = "GasOracles";
12
+ IgpViolationType["Overhead"] = "Overhead";
13
+ })(IgpViolationType = exports.IgpViolationType || (exports.IgpViolationType = {}));
20
14
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/gas/types.ts"],"names":[],"mappings":";;;AAiBA,IAAY,iBAKX;AALD,WAAY,iBAAiB;IAC3B,gDAA2B,CAAA;IAC3B,wCAAmB,CAAA;IACnB,4DAAuC,CAAA;IACvC,4DAAuC,CAAA;AACzC,CAAC,EALW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAK5B;AAED,IAAY,wBAGX;AAHD,WAAY,wBAAwB;IAClC,qEAAyC,CAAA;IACzC,mDAAuB,CAAA;AACzB,CAAC,EAHW,wBAAwB,GAAxB,gCAAwB,KAAxB,gCAAwB,QAGnC;AAED,IAAY,oBAEX;AAFD,WAAY,oBAAoB;IAC9B,iDAAyB,CAAA;AAC3B,CAAC,EAFW,oBAAoB,GAApB,4BAAoB,KAApB,4BAAoB,QAE/B"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/gas/types.ts"],"names":[],"mappings":";;;AAQA,IAAY,qBAEX;AAFD,WAAY,qBAAqB;IAC/B,8DAAqC,CAAA;AACvC,CAAC,EAFW,qBAAqB,GAArB,6BAAqB,KAArB,6BAAqB,QAEhC;AAYD,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IAC1B,+CAA2B,CAAA;IAC3B,6CAAyB,CAAA;IACzB,yCAAqB,CAAA;AACvB,CAAC,EAJW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAI3B"}