@hyperlane-xyz/core 4.0.0 → 4.2.0-beta.2

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 (344) hide show
  1. package/contracts/avs/ECDSAServiceManagerBase.sol +3 -2
  2. package/contracts/hooks/ArbL2ToL1Hook.sol +82 -0
  3. package/contracts/hooks/libs/AbstractMessageIdAuthHook.sol +1 -1
  4. package/contracts/hooks/warp-route/RateLimitedHook.sol +2 -1
  5. package/contracts/interfaces/IInterchainSecurityModule.sol +2 -1
  6. package/contracts/interfaces/hooks/IPostDispatchHook.sol +2 -1
  7. package/contracts/isms/hook/AbstractMessageIdAuthorizedIsm.sol +35 -15
  8. package/contracts/isms/hook/ArbL2ToL1Ism.sol +145 -0
  9. package/contracts/test/ERC20Test.sol +12 -0
  10. package/contracts/test/TestRecipient.sol +2 -0
  11. package/contracts/token/interfaces/IXERC20.sol +21 -0
  12. package/dist/@arbitrum/index.d.ts +3 -0
  13. package/dist/@arbitrum/index.d.ts.map +1 -0
  14. package/dist/@arbitrum/index.js +2 -0
  15. package/dist/@arbitrum/index.js.map +1 -0
  16. package/dist/@arbitrum/nitro-contracts/index.d.ts +3 -0
  17. package/dist/@arbitrum/nitro-contracts/index.d.ts.map +1 -0
  18. package/dist/@arbitrum/nitro-contracts/index.js +2 -0
  19. package/dist/@arbitrum/nitro-contracts/index.js.map +1 -0
  20. package/dist/@arbitrum/nitro-contracts/src/bridge/IBridge.d.ts +586 -0
  21. package/dist/@arbitrum/nitro-contracts/src/bridge/IBridge.d.ts.map +1 -0
  22. package/dist/@arbitrum/nitro-contracts/src/bridge/IBridge.js +2 -0
  23. package/dist/@arbitrum/nitro-contracts/src/bridge/IBridge.js.map +1 -0
  24. package/dist/@arbitrum/nitro-contracts/src/bridge/IOutbox.d.ts +504 -0
  25. package/dist/@arbitrum/nitro-contracts/src/bridge/IOutbox.d.ts.map +1 -0
  26. package/dist/@arbitrum/nitro-contracts/src/bridge/IOutbox.js +2 -0
  27. package/dist/@arbitrum/nitro-contracts/src/bridge/IOutbox.js.map +1 -0
  28. package/dist/@arbitrum/nitro-contracts/src/bridge/IOwnable.d.ts +50 -0
  29. package/dist/@arbitrum/nitro-contracts/src/bridge/IOwnable.d.ts.map +1 -0
  30. package/dist/@arbitrum/nitro-contracts/src/bridge/IOwnable.js +2 -0
  31. package/dist/@arbitrum/nitro-contracts/src/bridge/IOwnable.js.map +1 -0
  32. package/dist/@arbitrum/nitro-contracts/src/bridge/index.d.ts +4 -0
  33. package/dist/@arbitrum/nitro-contracts/src/bridge/index.d.ts.map +1 -0
  34. package/dist/@arbitrum/nitro-contracts/src/bridge/index.js +2 -0
  35. package/dist/@arbitrum/nitro-contracts/src/bridge/index.js.map +1 -0
  36. package/dist/@arbitrum/nitro-contracts/src/index.d.ts +5 -0
  37. package/dist/@arbitrum/nitro-contracts/src/index.d.ts.map +1 -0
  38. package/dist/@arbitrum/nitro-contracts/src/index.js +2 -0
  39. package/dist/@arbitrum/nitro-contracts/src/index.js.map +1 -0
  40. package/dist/@arbitrum/nitro-contracts/src/precompiles/ArbSys.d.ts +371 -0
  41. package/dist/@arbitrum/nitro-contracts/src/precompiles/ArbSys.d.ts.map +1 -0
  42. package/dist/@arbitrum/nitro-contracts/src/precompiles/ArbSys.js +2 -0
  43. package/dist/@arbitrum/nitro-contracts/src/precompiles/ArbSys.js.map +1 -0
  44. package/dist/@arbitrum/nitro-contracts/src/precompiles/index.d.ts +2 -0
  45. package/dist/@arbitrum/nitro-contracts/src/precompiles/index.d.ts.map +1 -0
  46. package/dist/@arbitrum/nitro-contracts/src/precompiles/index.js +2 -0
  47. package/dist/@arbitrum/nitro-contracts/src/precompiles/index.js.map +1 -0
  48. package/dist/@openzeppelin/contracts/vendor/arbitrum/IBridge.d.ts +607 -0
  49. package/dist/@openzeppelin/contracts/vendor/arbitrum/IBridge.d.ts.map +1 -0
  50. package/dist/@openzeppelin/contracts/vendor/arbitrum/IBridge.js +2 -0
  51. package/dist/@openzeppelin/contracts/vendor/arbitrum/IBridge.js.map +1 -0
  52. package/dist/@openzeppelin/contracts/vendor/arbitrum/IOutbox.d.ts +411 -0
  53. package/dist/@openzeppelin/contracts/vendor/arbitrum/IOutbox.d.ts.map +1 -0
  54. package/dist/@openzeppelin/contracts/vendor/arbitrum/IOutbox.js +2 -0
  55. package/dist/@openzeppelin/contracts/vendor/arbitrum/IOutbox.js.map +1 -0
  56. package/dist/@openzeppelin/contracts/vendor/arbitrum/index.d.ts +3 -0
  57. package/dist/@openzeppelin/contracts/vendor/arbitrum/index.d.ts.map +1 -0
  58. package/dist/@openzeppelin/contracts/vendor/arbitrum/index.js +2 -0
  59. package/dist/@openzeppelin/contracts/vendor/arbitrum/index.js.map +1 -0
  60. package/dist/@openzeppelin/contracts/vendor/index.d.ts +2 -0
  61. package/dist/@openzeppelin/contracts/vendor/index.d.ts.map +1 -1
  62. package/dist/buildArtifact.js +1 -1
  63. package/dist/buildArtifact.json +1 -1
  64. package/dist/contracts/hooks/ArbL2ToL1Hook.d.ts +396 -0
  65. package/dist/contracts/hooks/ArbL2ToL1Hook.d.ts.map +1 -0
  66. package/dist/contracts/hooks/ArbL2ToL1Hook.js +2 -0
  67. package/dist/contracts/hooks/ArbL2ToL1Hook.js.map +1 -0
  68. package/dist/contracts/hooks/index.d.ts +1 -0
  69. package/dist/contracts/hooks/index.d.ts.map +1 -1
  70. package/dist/contracts/isms/hook/AbstractMessageIdAuthorizedIsm.d.ts +47 -1
  71. package/dist/contracts/isms/hook/AbstractMessageIdAuthorizedIsm.d.ts.map +1 -1
  72. package/dist/contracts/isms/hook/ArbL2ToL1Ism.d.ts +273 -0
  73. package/dist/contracts/isms/hook/ArbL2ToL1Ism.d.ts.map +1 -0
  74. package/dist/contracts/isms/hook/ArbL2ToL1Ism.js +2 -0
  75. package/dist/contracts/isms/hook/ArbL2ToL1Ism.js.map +1 -0
  76. package/dist/contracts/isms/hook/ERC5164Ism.d.ts +47 -1
  77. package/dist/contracts/isms/hook/ERC5164Ism.d.ts.map +1 -1
  78. package/dist/contracts/isms/hook/OPStackIsm.d.ts +47 -1
  79. package/dist/contracts/isms/hook/OPStackIsm.d.ts.map +1 -1
  80. package/dist/contracts/isms/hook/PolygonPosIsm.d.ts +47 -1
  81. package/dist/contracts/isms/hook/PolygonPosIsm.d.ts.map +1 -1
  82. package/dist/contracts/isms/hook/index.d.ts +1 -0
  83. package/dist/contracts/isms/hook/index.d.ts.map +1 -1
  84. package/dist/contracts/isms/hook/layer-zero/LayerZeroV2Ism.d.ts +47 -1
  85. package/dist/contracts/isms/hook/layer-zero/LayerZeroV2Ism.d.ts.map +1 -1
  86. package/dist/contracts/test/ERC20Test.sol/XERC20Test.d.ts +31 -1
  87. package/dist/contracts/test/ERC20Test.sol/XERC20Test.d.ts.map +1 -1
  88. package/dist/contracts/token/interfaces/IXERC20.d.ts +39 -1
  89. package/dist/contracts/token/interfaces/IXERC20.d.ts.map +1 -1
  90. package/dist/factories/@arbitrum/index.d.ts +2 -0
  91. package/dist/factories/@arbitrum/index.d.ts.map +1 -0
  92. package/dist/factories/@arbitrum/index.js +5 -0
  93. package/dist/factories/@arbitrum/index.js.map +1 -0
  94. package/dist/factories/@arbitrum/nitro-contracts/index.d.ts +2 -0
  95. package/dist/factories/@arbitrum/nitro-contracts/index.d.ts.map +1 -0
  96. package/dist/factories/@arbitrum/nitro-contracts/index.js +5 -0
  97. package/dist/factories/@arbitrum/nitro-contracts/index.js.map +1 -0
  98. package/dist/factories/@arbitrum/nitro-contracts/src/bridge/IBridge__factory.d.ts +403 -0
  99. package/dist/factories/@arbitrum/nitro-contracts/src/bridge/IBridge__factory.d.ts.map +1 -0
  100. package/dist/factories/@arbitrum/nitro-contracts/src/bridge/IBridge__factory.js +527 -0
  101. package/dist/factories/@arbitrum/nitro-contracts/src/bridge/IBridge__factory.js.map +1 -0
  102. package/dist/factories/@arbitrum/nitro-contracts/src/bridge/IOutbox__factory.d.ts +347 -0
  103. package/dist/factories/@arbitrum/nitro-contracts/src/bridge/IOutbox__factory.d.ts.map +1 -0
  104. package/dist/factories/@arbitrum/nitro-contracts/src/bridge/IOutbox__factory.js +451 -0
  105. package/dist/factories/@arbitrum/nitro-contracts/src/bridge/IOutbox__factory.js.map +1 -0
  106. package/dist/factories/@arbitrum/nitro-contracts/src/bridge/IOwnable__factory.d.ts +19 -0
  107. package/dist/factories/@arbitrum/nitro-contracts/src/bridge/IOwnable__factory.d.ts.map +1 -0
  108. package/dist/factories/@arbitrum/nitro-contracts/src/bridge/IOwnable__factory.js +29 -0
  109. package/dist/factories/@arbitrum/nitro-contracts/src/bridge/IOwnable__factory.js.map +1 -0
  110. package/dist/factories/@arbitrum/nitro-contracts/src/bridge/index.d.ts +4 -0
  111. package/dist/factories/@arbitrum/nitro-contracts/src/bridge/index.d.ts.map +1 -0
  112. package/dist/factories/@arbitrum/nitro-contracts/src/bridge/index.js +7 -0
  113. package/dist/factories/@arbitrum/nitro-contracts/src/bridge/index.js.map +1 -0
  114. package/dist/factories/@arbitrum/nitro-contracts/src/index.d.ts +3 -0
  115. package/dist/factories/@arbitrum/nitro-contracts/src/index.d.ts.map +1 -0
  116. package/dist/factories/@arbitrum/nitro-contracts/src/index.js +6 -0
  117. package/dist/factories/@arbitrum/nitro-contracts/src/index.js.map +1 -0
  118. package/dist/factories/@arbitrum/nitro-contracts/src/precompiles/ArbSys__factory.d.ts +298 -0
  119. package/dist/factories/@arbitrum/nitro-contracts/src/precompiles/ArbSys__factory.d.ts.map +1 -0
  120. package/dist/factories/@arbitrum/nitro-contracts/src/precompiles/ArbSys__factory.js +385 -0
  121. package/dist/factories/@arbitrum/nitro-contracts/src/precompiles/ArbSys__factory.js.map +1 -0
  122. package/dist/factories/@arbitrum/nitro-contracts/src/precompiles/index.d.ts +2 -0
  123. package/dist/factories/@arbitrum/nitro-contracts/src/precompiles/index.d.ts.map +1 -0
  124. package/dist/factories/@arbitrum/nitro-contracts/src/precompiles/index.js +5 -0
  125. package/dist/factories/@arbitrum/nitro-contracts/src/precompiles/index.js.map +1 -0
  126. package/dist/factories/@openzeppelin/contracts/vendor/arbitrum/IBridge__factory.d.ts +415 -0
  127. package/dist/factories/@openzeppelin/contracts/vendor/arbitrum/IBridge__factory.d.ts.map +1 -0
  128. package/dist/factories/@openzeppelin/contracts/vendor/arbitrum/IBridge__factory.js +543 -0
  129. package/dist/factories/@openzeppelin/contracts/vendor/arbitrum/IBridge__factory.js.map +1 -0
  130. package/dist/factories/@openzeppelin/contracts/vendor/arbitrum/IOutbox__factory.d.ts +325 -0
  131. package/dist/factories/@openzeppelin/contracts/vendor/arbitrum/IOutbox__factory.d.ts.map +1 -0
  132. package/dist/factories/@openzeppelin/contracts/vendor/arbitrum/IOutbox__factory.js +424 -0
  133. package/dist/factories/@openzeppelin/contracts/vendor/arbitrum/IOutbox__factory.js.map +1 -0
  134. package/dist/factories/@openzeppelin/contracts/vendor/arbitrum/index.d.ts +3 -0
  135. package/dist/factories/@openzeppelin/contracts/vendor/arbitrum/index.d.ts.map +1 -0
  136. package/dist/factories/@openzeppelin/contracts/vendor/arbitrum/index.js +6 -0
  137. package/dist/factories/@openzeppelin/contracts/vendor/arbitrum/index.js.map +1 -0
  138. package/dist/factories/@openzeppelin/contracts/vendor/index.d.ts +1 -0
  139. package/dist/factories/@openzeppelin/contracts/vendor/index.d.ts.map +1 -1
  140. package/dist/factories/@openzeppelin/contracts/vendor/index.js +1 -0
  141. package/dist/factories/@openzeppelin/contracts/vendor/index.js.map +1 -1
  142. package/dist/factories/contracts/Mailbox__factory.d.ts +1 -1
  143. package/dist/factories/contracts/Mailbox__factory.js +1 -1
  144. package/dist/factories/contracts/avs/HyperlaneServiceManager__factory.d.ts +1 -1
  145. package/dist/factories/contracts/avs/HyperlaneServiceManager__factory.d.ts.map +1 -1
  146. package/dist/factories/contracts/avs/HyperlaneServiceManager__factory.js +1 -1
  147. package/dist/factories/contracts/avs/HyperlaneServiceManager__factory.js.map +1 -1
  148. package/dist/factories/contracts/hooks/ArbL2ToL1Hook__factory.d.ts +252 -0
  149. package/dist/factories/contracts/hooks/ArbL2ToL1Hook__factory.d.ts.map +1 -0
  150. package/dist/factories/contracts/hooks/ArbL2ToL1Hook__factory.js +339 -0
  151. package/dist/factories/contracts/hooks/ArbL2ToL1Hook__factory.js.map +1 -0
  152. package/dist/factories/contracts/hooks/MerkleTreeHook__factory.d.ts +1 -1
  153. package/dist/factories/contracts/hooks/MerkleTreeHook__factory.js +1 -1
  154. package/dist/factories/contracts/hooks/OPStackHook__factory.d.ts +1 -1
  155. package/dist/factories/contracts/hooks/OPStackHook__factory.js +1 -1
  156. package/dist/factories/contracts/hooks/PausableHook__factory.d.ts +1 -1
  157. package/dist/factories/contracts/hooks/PausableHook__factory.js +1 -1
  158. package/dist/factories/contracts/hooks/PolygonPosHook__factory.d.ts +1 -1
  159. package/dist/factories/contracts/hooks/PolygonPosHook__factory.js +1 -1
  160. package/dist/factories/contracts/hooks/ProtocolFee__factory.d.ts +1 -1
  161. package/dist/factories/contracts/hooks/ProtocolFee__factory.js +1 -1
  162. package/dist/factories/contracts/hooks/aggregation/ERC5164Hook__factory.d.ts +1 -1
  163. package/dist/factories/contracts/hooks/aggregation/ERC5164Hook__factory.js +1 -1
  164. package/dist/factories/contracts/hooks/aggregation/StaticAggregationHookFactory__factory.d.ts +1 -1
  165. package/dist/factories/contracts/hooks/aggregation/StaticAggregationHookFactory__factory.js +1 -1
  166. package/dist/factories/contracts/hooks/aggregation/StaticAggregationHook__factory.d.ts +1 -1
  167. package/dist/factories/contracts/hooks/aggregation/StaticAggregationHook__factory.js +1 -1
  168. package/dist/factories/contracts/hooks/igp/InterchainGasPaymaster__factory.d.ts +1 -1
  169. package/dist/factories/contracts/hooks/igp/InterchainGasPaymaster__factory.js +1 -1
  170. package/dist/factories/contracts/hooks/index.d.ts +1 -0
  171. package/dist/factories/contracts/hooks/index.d.ts.map +1 -1
  172. package/dist/factories/contracts/hooks/index.js +1 -0
  173. package/dist/factories/contracts/hooks/index.js.map +1 -1
  174. package/dist/factories/contracts/hooks/layer-zero/LayerZeroV1Hook__factory.d.ts +1 -1
  175. package/dist/factories/contracts/hooks/layer-zero/LayerZeroV1Hook__factory.js +1 -1
  176. package/dist/factories/contracts/hooks/layer-zero/LayerZeroV2Hook__factory.d.ts +1 -1
  177. package/dist/factories/contracts/hooks/layer-zero/LayerZeroV2Hook__factory.js +1 -1
  178. package/dist/factories/contracts/hooks/routing/DestinationRecipientRoutingHook__factory.d.ts +1 -1
  179. package/dist/factories/contracts/hooks/routing/DestinationRecipientRoutingHook__factory.js +1 -1
  180. package/dist/factories/contracts/hooks/routing/DomainRoutingHook__factory.d.ts +1 -1
  181. package/dist/factories/contracts/hooks/routing/DomainRoutingHook__factory.js +1 -1
  182. package/dist/factories/contracts/hooks/routing/FallbackDomainRoutingHook__factory.d.ts +1 -1
  183. package/dist/factories/contracts/hooks/routing/FallbackDomainRoutingHook__factory.js +1 -1
  184. package/dist/factories/contracts/hooks/warp-route/RateLimitedHook__factory.d.ts +1 -1
  185. package/dist/factories/contracts/hooks/warp-route/RateLimitedHook__factory.js +1 -1
  186. package/dist/factories/contracts/isms/NoopIsm__factory.d.ts +1 -1
  187. package/dist/factories/contracts/isms/NoopIsm__factory.js +1 -1
  188. package/dist/factories/contracts/isms/PausableIsm__factory.d.ts +1 -1
  189. package/dist/factories/contracts/isms/PausableIsm__factory.js +1 -1
  190. package/dist/factories/contracts/isms/TrustedRelayerIsm__factory.d.ts +1 -1
  191. package/dist/factories/contracts/isms/TrustedRelayerIsm__factory.js +1 -1
  192. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsmFactory__factory.d.ts +1 -1
  193. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsmFactory__factory.js +1 -1
  194. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsm__factory.d.ts +1 -1
  195. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsm__factory.js +1 -1
  196. package/dist/factories/contracts/isms/hook/AbstractMessageIdAuthorizedIsm__factory.d.ts +24 -0
  197. package/dist/factories/contracts/isms/hook/AbstractMessageIdAuthorizedIsm__factory.d.ts.map +1 -1
  198. package/dist/factories/contracts/isms/hook/AbstractMessageIdAuthorizedIsm__factory.js +32 -0
  199. package/dist/factories/contracts/isms/hook/AbstractMessageIdAuthorizedIsm__factory.js.map +1 -1
  200. package/dist/factories/contracts/isms/hook/ArbL2ToL1Ism__factory.d.ts +169 -0
  201. package/dist/factories/contracts/isms/hook/ArbL2ToL1Ism__factory.d.ts.map +1 -0
  202. package/dist/factories/contracts/isms/hook/ArbL2ToL1Ism__factory.js +234 -0
  203. package/dist/factories/contracts/isms/hook/ArbL2ToL1Ism__factory.js.map +1 -0
  204. package/dist/factories/contracts/isms/hook/ERC5164Ism__factory.d.ts +25 -1
  205. package/dist/factories/contracts/isms/hook/ERC5164Ism__factory.d.ts.map +1 -1
  206. package/dist/factories/contracts/isms/hook/ERC5164Ism__factory.js +33 -1
  207. package/dist/factories/contracts/isms/hook/ERC5164Ism__factory.js.map +1 -1
  208. package/dist/factories/contracts/isms/hook/OPStackIsm__factory.d.ts +25 -1
  209. package/dist/factories/contracts/isms/hook/OPStackIsm__factory.d.ts.map +1 -1
  210. package/dist/factories/contracts/isms/hook/OPStackIsm__factory.js +33 -1
  211. package/dist/factories/contracts/isms/hook/OPStackIsm__factory.js.map +1 -1
  212. package/dist/factories/contracts/isms/hook/PolygonPosIsm__factory.d.ts +25 -1
  213. package/dist/factories/contracts/isms/hook/PolygonPosIsm__factory.d.ts.map +1 -1
  214. package/dist/factories/contracts/isms/hook/PolygonPosIsm__factory.js +33 -1
  215. package/dist/factories/contracts/isms/hook/PolygonPosIsm__factory.js.map +1 -1
  216. package/dist/factories/contracts/isms/hook/index.d.ts +1 -0
  217. package/dist/factories/contracts/isms/hook/index.d.ts.map +1 -1
  218. package/dist/factories/contracts/isms/hook/index.js +1 -0
  219. package/dist/factories/contracts/isms/hook/index.js.map +1 -1
  220. package/dist/factories/contracts/isms/hook/layer-zero/LayerZeroV2Ism__factory.d.ts +25 -1
  221. package/dist/factories/contracts/isms/hook/layer-zero/LayerZeroV2Ism__factory.d.ts.map +1 -1
  222. package/dist/factories/contracts/isms/hook/layer-zero/LayerZeroV2Ism__factory.js +33 -1
  223. package/dist/factories/contracts/isms/hook/layer-zero/LayerZeroV2Ism__factory.js.map +1 -1
  224. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsmFactory__factory.d.ts +1 -1
  225. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsmFactory__factory.js +1 -1
  226. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm__factory.d.ts +1 -1
  227. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm__factory.js +1 -1
  228. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsmFactory__factory.d.ts +1 -1
  229. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsmFactory__factory.js +1 -1
  230. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm__factory.d.ts +1 -1
  231. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm__factory.js +1 -1
  232. package/dist/factories/contracts/isms/multisig/ValidatorAnnounce__factory.d.ts +1 -1
  233. package/dist/factories/contracts/isms/multisig/ValidatorAnnounce__factory.js +1 -1
  234. package/dist/factories/contracts/isms/routing/DefaultFallbackRoutingIsm__factory.d.ts +1 -1
  235. package/dist/factories/contracts/isms/routing/DefaultFallbackRoutingIsm__factory.js +1 -1
  236. package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory.sol/DomainRoutingIsmFactory__factory.d.ts +1 -1
  237. package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory.sol/DomainRoutingIsmFactory__factory.js +1 -1
  238. package/dist/factories/contracts/isms/routing/DomainRoutingIsm__factory.d.ts +1 -1
  239. package/dist/factories/contracts/isms/routing/DomainRoutingIsm__factory.js +1 -1
  240. package/dist/factories/contracts/isms/routing/InterchainAccountIsm__factory.d.ts +1 -1
  241. package/dist/factories/contracts/isms/routing/InterchainAccountIsm__factory.js +1 -1
  242. package/dist/factories/contracts/isms/warp-route/RateLimitedIsm__factory.d.ts +1 -1
  243. package/dist/factories/contracts/isms/warp-route/RateLimitedIsm__factory.js +1 -1
  244. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.d.ts +1 -1
  245. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.js +1 -1
  246. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.d.ts +1 -1
  247. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.js +1 -1
  248. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.d.ts +1 -1
  249. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.js +1 -1
  250. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.d.ts +1 -1
  251. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.js +1 -1
  252. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.d.ts +1 -1
  253. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.js +1 -1
  254. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.d.ts +1 -1
  255. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.js +1 -1
  256. package/dist/factories/contracts/mock/MockMailbox__factory.d.ts +1 -1
  257. package/dist/factories/contracts/mock/MockMailbox__factory.js +1 -1
  258. package/dist/factories/contracts/test/ERC20Test.sol/ERC20Test__factory.d.ts +1 -1
  259. package/dist/factories/contracts/test/ERC20Test.sol/ERC20Test__factory.js +1 -1
  260. package/dist/factories/contracts/test/ERC20Test.sol/FiatTokenTest__factory.d.ts +1 -1
  261. package/dist/factories/contracts/test/ERC20Test.sol/FiatTokenTest__factory.js +1 -1
  262. package/dist/factories/contracts/test/ERC20Test.sol/XERC20LockboxTest__factory.d.ts +1 -1
  263. package/dist/factories/contracts/test/ERC20Test.sol/XERC20LockboxTest__factory.d.ts.map +1 -1
  264. package/dist/factories/contracts/test/ERC20Test.sol/XERC20LockboxTest__factory.js +1 -1
  265. package/dist/factories/contracts/test/ERC20Test.sol/XERC20LockboxTest__factory.js.map +1 -1
  266. package/dist/factories/contracts/test/ERC20Test.sol/XERC20Test__factory.d.ts +29 -1
  267. package/dist/factories/contracts/test/ERC20Test.sol/XERC20Test__factory.d.ts.map +1 -1
  268. package/dist/factories/contracts/test/ERC20Test.sol/XERC20Test__factory.js +39 -1
  269. package/dist/factories/contracts/test/ERC20Test.sol/XERC20Test__factory.js.map +1 -1
  270. package/dist/factories/contracts/test/LightTestRecipient__factory.d.ts +4 -1
  271. package/dist/factories/contracts/test/LightTestRecipient__factory.d.ts.map +1 -1
  272. package/dist/factories/contracts/test/LightTestRecipient__factory.js +5 -1
  273. package/dist/factories/contracts/test/LightTestRecipient__factory.js.map +1 -1
  274. package/dist/factories/contracts/test/TestGasRouter__factory.d.ts +1 -1
  275. package/dist/factories/contracts/test/TestGasRouter__factory.js +1 -1
  276. package/dist/factories/contracts/test/TestInterchainGasPaymaster__factory.d.ts +1 -1
  277. package/dist/factories/contracts/test/TestInterchainGasPaymaster__factory.js +1 -1
  278. package/dist/factories/contracts/test/TestIsm__factory.d.ts +1 -1
  279. package/dist/factories/contracts/test/TestIsm__factory.js +1 -1
  280. package/dist/factories/contracts/test/TestMailbox__factory.d.ts +1 -1
  281. package/dist/factories/contracts/test/TestMailbox__factory.js +1 -1
  282. package/dist/factories/contracts/test/TestMerkleTreeHook__factory.d.ts +1 -1
  283. package/dist/factories/contracts/test/TestMerkleTreeHook__factory.js +1 -1
  284. package/dist/factories/contracts/test/TestPostDispatchHook__factory.d.ts +1 -1
  285. package/dist/factories/contracts/test/TestPostDispatchHook__factory.js +1 -1
  286. package/dist/factories/contracts/test/TestQuerySender__factory.d.ts +1 -1
  287. package/dist/factories/contracts/test/TestQuerySender__factory.js +1 -1
  288. package/dist/factories/contracts/test/TestQuery__factory.d.ts +1 -1
  289. package/dist/factories/contracts/test/TestQuery__factory.js +1 -1
  290. package/dist/factories/contracts/test/TestRecipient__factory.d.ts +4 -1
  291. package/dist/factories/contracts/test/TestRecipient__factory.d.ts.map +1 -1
  292. package/dist/factories/contracts/test/TestRecipient__factory.js +5 -1
  293. package/dist/factories/contracts/test/TestRecipient__factory.js.map +1 -1
  294. package/dist/factories/contracts/test/TestRemoteChallenger__factory.d.ts +1 -1
  295. package/dist/factories/contracts/test/TestRemoteChallenger__factory.js +1 -1
  296. package/dist/factories/contracts/test/TestRouter__factory.d.ts +1 -1
  297. package/dist/factories/contracts/test/TestRouter__factory.js +1 -1
  298. package/dist/factories/contracts/test/TestSendReceiver__factory.d.ts +1 -1
  299. package/dist/factories/contracts/test/TestSendReceiver__factory.js +1 -1
  300. package/dist/factories/contracts/test/avs/TestHyperlaneServiceManager__factory.d.ts +1 -1
  301. package/dist/factories/contracts/test/avs/TestHyperlaneServiceManager__factory.d.ts.map +1 -1
  302. package/dist/factories/contracts/test/avs/TestHyperlaneServiceManager__factory.js +1 -1
  303. package/dist/factories/contracts/test/avs/TestHyperlaneServiceManager__factory.js.map +1 -1
  304. package/dist/factories/contracts/token/HypERC20Collateral__factory.d.ts +1 -1
  305. package/dist/factories/contracts/token/HypERC20Collateral__factory.js +1 -1
  306. package/dist/factories/contracts/token/HypERC20__factory.d.ts +1 -1
  307. package/dist/factories/contracts/token/HypERC20__factory.js +1 -1
  308. package/dist/factories/contracts/token/HypERC721Collateral__factory.d.ts +1 -1
  309. package/dist/factories/contracts/token/HypERC721Collateral__factory.js +1 -1
  310. package/dist/factories/contracts/token/HypERC721__factory.d.ts +1 -1
  311. package/dist/factories/contracts/token/HypERC721__factory.js +1 -1
  312. package/dist/factories/contracts/token/HypNative__factory.d.ts +1 -1
  313. package/dist/factories/contracts/token/HypNative__factory.js +1 -1
  314. package/dist/factories/contracts/token/extensions/FastHypERC20Collateral__factory.d.ts +1 -1
  315. package/dist/factories/contracts/token/extensions/FastHypERC20Collateral__factory.js +1 -1
  316. package/dist/factories/contracts/token/extensions/FastHypERC20__factory.d.ts +1 -1
  317. package/dist/factories/contracts/token/extensions/FastHypERC20__factory.js +1 -1
  318. package/dist/factories/contracts/token/extensions/HypERC20CollateralVaultDeposit__factory.d.ts +1 -1
  319. package/dist/factories/contracts/token/extensions/HypERC20CollateralVaultDeposit__factory.js +1 -1
  320. package/dist/factories/contracts/token/extensions/HypERC721URICollateral__factory.d.ts +1 -1
  321. package/dist/factories/contracts/token/extensions/HypERC721URICollateral__factory.js +1 -1
  322. package/dist/factories/contracts/token/extensions/HypERC721URIStorage__factory.d.ts +1 -1
  323. package/dist/factories/contracts/token/extensions/HypERC721URIStorage__factory.js +1 -1
  324. package/dist/factories/contracts/token/extensions/HypFiatToken__factory.d.ts +1 -1
  325. package/dist/factories/contracts/token/extensions/HypFiatToken__factory.js +1 -1
  326. package/dist/factories/contracts/token/extensions/HypNativeScaled__factory.d.ts +1 -1
  327. package/dist/factories/contracts/token/extensions/HypNativeScaled__factory.js +1 -1
  328. package/dist/factories/contracts/token/extensions/HypXERC20Lockbox__factory.d.ts +1 -1
  329. package/dist/factories/contracts/token/extensions/HypXERC20Lockbox__factory.js +1 -1
  330. package/dist/factories/contracts/token/extensions/HypXERC20__factory.d.ts +1 -1
  331. package/dist/factories/contracts/token/extensions/HypXERC20__factory.js +1 -1
  332. package/dist/factories/contracts/token/interfaces/IXERC20__factory.d.ts +28 -0
  333. package/dist/factories/contracts/token/interfaces/IXERC20__factory.d.ts.map +1 -1
  334. package/dist/factories/contracts/token/interfaces/IXERC20__factory.js +38 -0
  335. package/dist/factories/contracts/token/interfaces/IXERC20__factory.js.map +1 -1
  336. package/dist/factories/index.d.ts +1 -0
  337. package/dist/factories/index.d.ts.map +1 -1
  338. package/dist/factories/index.js +1 -0
  339. package/dist/factories/index.js.map +1 -1
  340. package/dist/index.d.ts +14 -0
  341. package/dist/index.d.ts.map +1 -1
  342. package/dist/index.js +6 -0
  343. package/dist/index.js.map +1 -1
  344. package/package.json +3 -2
@@ -248,7 +248,6 @@ abstract contract ECDSAServiceManagerBase is
248
248
  uint256[] memory shares = IDelegationManager(delegationManager)
249
249
  .getOperatorShares(_operator, strategies);
250
250
 
251
- address[] memory activeStrategies = new address[](count);
252
251
  uint256 activeCount;
253
252
  for (uint256 i; i < count; i++) {
254
253
  if (shares[i] > 0) {
@@ -258,9 +257,11 @@ abstract contract ECDSAServiceManagerBase is
258
257
 
259
258
  // Resize the array to fit only the active strategies
260
259
  address[] memory restakedStrategies = new address[](activeCount);
260
+ uint256 index;
261
261
  for (uint256 j = 0; j < count; j++) {
262
262
  if (shares[j] > 0) {
263
- restakedStrategies[j] = activeStrategies[j];
263
+ restakedStrategies[index] = address(strategies[j]);
264
+ index++;
264
265
  }
265
266
  }
266
267
 
@@ -0,0 +1,82 @@
1
+ // SPDX-License-Identifier: MIT OR Apache-2.0
2
+ pragma solidity >=0.8.0;
3
+
4
+ /*@@@@@@@ @@@@@@@@@
5
+ @@@@@@@@@ @@@@@@@@@
6
+ @@@@@@@@@ @@@@@@@@@
7
+ @@@@@@@@@ @@@@@@@@@
8
+ @@@@@@@@@@@@@@@@@@@@@@@@@
9
+ @@@@@ HYPERLANE @@@@@@@
10
+ @@@@@@@@@@@@@@@@@@@@@@@@@
11
+ @@@@@@@@@ @@@@@@@@@
12
+ @@@@@@@@@ @@@@@@@@@
13
+ @@@@@@@@@ @@@@@@@@@
14
+ @@@@@@@@@ @@@@@@@@*/
15
+
16
+ // ============ Internal Imports ============
17
+ import {AbstractPostDispatchHook} from "./libs/AbstractMessageIdAuthHook.sol";
18
+ import {AbstractMessageIdAuthHook} from "./libs/AbstractMessageIdAuthHook.sol";
19
+ import {Mailbox} from "../Mailbox.sol";
20
+ import {StandardHookMetadata} from "./libs/StandardHookMetadata.sol";
21
+ import {Message} from "../libs/Message.sol";
22
+ import {TypeCasts} from "../libs/TypeCasts.sol";
23
+ import {IPostDispatchHook} from "../interfaces/hooks/IPostDispatchHook.sol";
24
+ import {MailboxClient} from "../client/MailboxClient.sol";
25
+
26
+ // ============ External Imports ============
27
+ import {Address} from "@openzeppelin/contracts/utils/Address.sol";
28
+ import {ArbSys} from "@arbitrum/nitro-contracts/src/precompiles/ArbSys.sol";
29
+
30
+ /**
31
+ * @title ArbL2ToL1Hook
32
+ * @notice Message hook to inform the ArbL2ToL1iSM of messages published through
33
+ * the native Arbitrum bridge.
34
+ * @notice This works only for L2 -> L1 messages and has the 7 day delay as specified by the ArbSys contract.
35
+ */
36
+ contract ArbL2ToL1Hook is AbstractMessageIdAuthHook {
37
+ using StandardHookMetadata for bytes;
38
+
39
+ // ============ Constants ============
40
+
41
+ // precompile contract on L2 for sending messages to L1
42
+ ArbSys public immutable arbSys;
43
+ // Immutable quote amount
44
+ uint256 public immutable GAS_QUOTE;
45
+
46
+ // ============ Constructor ============
47
+
48
+ constructor(
49
+ address _mailbox,
50
+ uint32 _destinationDomain,
51
+ bytes32 _ism,
52
+ address _arbSys,
53
+ uint256 _gasQuote
54
+ ) AbstractMessageIdAuthHook(_mailbox, _destinationDomain, _ism) {
55
+ arbSys = ArbSys(_arbSys);
56
+ GAS_QUOTE = _gasQuote;
57
+ }
58
+
59
+ function hookType() external pure override returns (uint8) {
60
+ return uint8(IPostDispatchHook.Types.ARB_L2_TO_L1);
61
+ }
62
+
63
+ function _quoteDispatch(
64
+ bytes calldata,
65
+ bytes calldata
66
+ ) internal view override returns (uint256) {
67
+ return GAS_QUOTE;
68
+ }
69
+
70
+ // ============ Internal functions ============
71
+
72
+ /// @inheritdoc AbstractMessageIdAuthHook
73
+ function _sendMessageId(
74
+ bytes calldata metadata,
75
+ bytes memory payload
76
+ ) internal override {
77
+ arbSys.sendTxToL1{value: metadata.msgValue(0)}(
78
+ TypeCasts.bytes32ToAddress(ism),
79
+ payload
80
+ );
81
+ }
82
+ }
@@ -58,7 +58,7 @@ abstract contract AbstractMessageIdAuthHook is
58
58
  }
59
59
 
60
60
  /// @inheritdoc IPostDispatchHook
61
- function hookType() external pure returns (uint8) {
61
+ function hookType() external pure virtual returns (uint8) {
62
62
  return uint8(IPostDispatchHook.Types.ID_AUTH_ISM);
63
63
  }
64
64
 
@@ -1,5 +1,6 @@
1
1
  // SPDX-License-Identifier: MIT
2
2
  pragma solidity >=0.8.0;
3
+
3
4
  import {MailboxClient} from "contracts/client/MailboxClient.sol";
4
5
  import {IPostDispatchHook} from "contracts/interfaces/hooks/IPostDispatchHook.sol";
5
6
  import {Message} from "contracts/libs/Message.sol";
@@ -26,7 +27,7 @@ contract RateLimitedHook is IPostDispatchHook, MailboxClient, RateLimited {
26
27
 
27
28
  /// @inheritdoc IPostDispatchHook
28
29
  function hookType() external pure returns (uint8) {
29
- return uint8(IPostDispatchHook.Types.Rate_Limited_Hook);
30
+ return uint8(IPostDispatchHook.Types.RATE_LIMITED);
30
31
  }
31
32
 
32
33
  /// @inheritdoc IPostDispatchHook
@@ -10,7 +10,8 @@ interface IInterchainSecurityModule {
10
10
  MERKLE_ROOT_MULTISIG,
11
11
  MESSAGE_ID_MULTISIG,
12
12
  NULL, // used with relayer carrying no metadata
13
- CCIP_READ
13
+ CCIP_READ,
14
+ ARB_L2_TO_L1
14
15
  }
15
16
 
16
17
  /**
@@ -25,7 +25,8 @@ interface IPostDispatchHook {
25
25
  PAUSABLE,
26
26
  PROTOCOL_FEE,
27
27
  LAYER_ZERO_V1,
28
- Rate_Limited_Hook
28
+ RATE_LIMITED,
29
+ ARB_L2_TO_L1
29
30
  }
30
31
 
31
32
  /**
@@ -72,26 +72,41 @@ abstract contract AbstractMessageIdAuthorizedIsm is
72
72
  */
73
73
  function verify(
74
74
  bytes calldata,
75
- /*_metadata*/
75
+ /*metadata*/
76
76
  bytes calldata message
77
- ) external returns (bool) {
78
- bytes32 messageId = message.id();
77
+ ) external virtual returns (bool) {
78
+ bool verified = isVerified(message);
79
+ if (verified) {
80
+ releaseValueToRecipient(message);
81
+ }
82
+ return verified;
83
+ }
79
84
 
80
- // check for the first bit (used for verification)
81
- bool verified = verifiedMessages[messageId].isBitSet(
85
+ // ============ Public Functions ============
86
+
87
+ /**
88
+ * @notice Release the value to the recipient if the message is verified.
89
+ * @param message Message to release value for.
90
+ */
91
+ function releaseValueToRecipient(bytes calldata message) public {
92
+ bytes32 messageId = message.id();
93
+ uint256 _msgValue = verifiedMessages[messageId].clearBit(
82
94
  VERIFIED_MASK_INDEX
83
95
  );
84
- // rest 255 bits contains the msg.value passed from the hook
85
- if (verified) {
86
- uint256 _msgValue = verifiedMessages[messageId].clearBit(
87
- VERIFIED_MASK_INDEX
88
- );
89
- if (_msgValue > 0) {
90
- verifiedMessages[messageId] -= _msgValue;
91
- payable(message.recipientAddress()).sendValue(_msgValue);
92
- }
96
+ if (_msgValue > 0) {
97
+ verifiedMessages[messageId] -= _msgValue;
98
+ payable(message.recipientAddress()).sendValue(_msgValue);
93
99
  }
94
- return verified;
100
+ }
101
+
102
+ /**
103
+ * @notice Check if a message is verified through verifyMessageId first.
104
+ * @param message Message to check.
105
+ */
106
+ function isVerified(bytes calldata message) public view returns (bool) {
107
+ bytes32 messageId = message.id();
108
+ // check for the first bit (used for verification)
109
+ return verifiedMessages[messageId].isBitSet(VERIFIED_MASK_INDEX);
95
110
  }
96
111
 
97
112
  /**
@@ -113,5 +128,10 @@ abstract contract AbstractMessageIdAuthorizedIsm is
113
128
  emit ReceivedMessage(messageId);
114
129
  }
115
130
 
131
+ // ============ Internal Functions ============
132
+
133
+ /**
134
+ * @notice Check if sender is authorized to message `verifyMessageId`.
135
+ */
116
136
  function _isAuthorized() internal view virtual returns (bool);
117
137
  }
@@ -0,0 +1,145 @@
1
+ // SPDX-License-Identifier: MIT OR Apache-2.0
2
+ pragma solidity >=0.8.0;
3
+
4
+ /*@@@@@@@ @@@@@@@@@
5
+ @@@@@@@@@ @@@@@@@@@
6
+ @@@@@@@@@ @@@@@@@@@
7
+ @@@@@@@@@ @@@@@@@@@
8
+ @@@@@@@@@@@@@@@@@@@@@@@@@
9
+ @@@@@ HYPERLANE @@@@@@@
10
+ @@@@@@@@@@@@@@@@@@@@@@@@@
11
+ @@@@@@@@@ @@@@@@@@@
12
+ @@@@@@@@@ @@@@@@@@@
13
+ @@@@@@@@@ @@@@@@@@@
14
+ @@@@@@@@@ @@@@@@@@*/
15
+
16
+ // ============ Internal Imports ============
17
+
18
+ import {IInterchainSecurityModule} from "../../interfaces/IInterchainSecurityModule.sol";
19
+ import {TypeCasts} from "../../libs/TypeCasts.sol";
20
+ import {Message} from "../../libs/Message.sol";
21
+ import {AbstractMessageIdAuthorizedIsm} from "./AbstractMessageIdAuthorizedIsm.sol";
22
+
23
+ // ============ External Imports ============
24
+
25
+ import {IBridge} from "@arbitrum/nitro-contracts/src/bridge/IBridge.sol";
26
+ import {IOutbox} from "@arbitrum/nitro-contracts/src/bridge/IOutbox.sol";
27
+ import {CrossChainEnabledArbitrumL1} from "@openzeppelin/contracts/crosschain/arbitrum/CrossChainEnabledArbitrumL1.sol";
28
+ import {Address} from "@openzeppelin/contracts/utils/Address.sol";
29
+
30
+ /**
31
+ * @title ArbL2ToL1Ism
32
+ * @notice Uses the native Arbitrum bridge to verify interchain messages from L2 to L1.
33
+ */
34
+ contract ArbL2ToL1Ism is
35
+ CrossChainEnabledArbitrumL1,
36
+ AbstractMessageIdAuthorizedIsm
37
+ {
38
+ using Message for bytes;
39
+ // ============ Constants ============
40
+
41
+ // module type for the ISM
42
+ uint8 public constant moduleType =
43
+ uint8(IInterchainSecurityModule.Types.ARB_L2_TO_L1);
44
+ // arbitrum nitro contract on L1 to forward verification
45
+ IOutbox public arbOutbox;
46
+
47
+ // ============ Constructor ============
48
+
49
+ constructor(address _bridge) CrossChainEnabledArbitrumL1(_bridge) {
50
+ require(
51
+ Address.isContract(_bridge),
52
+ "ArbL2ToL1Ism: invalid Arbitrum Bridge"
53
+ );
54
+ arbOutbox = IOutbox(IBridge(_bridge).activeOutbox());
55
+ }
56
+
57
+ // ============ External Functions ============
58
+
59
+ /// @inheritdoc IInterchainSecurityModule
60
+ function verify(
61
+ bytes calldata metadata,
62
+ bytes calldata message
63
+ ) external override returns (bool) {
64
+ bool verified = isVerified(message);
65
+ if (verified) {
66
+ releaseValueToRecipient(message);
67
+ }
68
+ return verified || _verifyWithOutboxCall(metadata, message);
69
+ }
70
+
71
+ // ============ Internal function ============
72
+
73
+ /**
74
+ * @notice Verify message directly using the arbOutbox.executeTransaction function.
75
+ * @dev This is a fallback in case the message is not verified by the stateful verify function first.
76
+ * @dev This function doesn't support msg.value as the ism.verify call doesn't support it either.
77
+ */
78
+ function _verifyWithOutboxCall(
79
+ bytes calldata metadata,
80
+ bytes calldata message
81
+ ) internal returns (bool) {
82
+ (
83
+ bytes32[] memory proof,
84
+ uint256 index,
85
+ address l2Sender,
86
+ address to,
87
+ uint256 l2Block,
88
+ uint256 l1Block,
89
+ uint256 l2Timestamp,
90
+ bytes memory data
91
+ ) = abi.decode(
92
+ metadata,
93
+ (
94
+ bytes32[],
95
+ uint256,
96
+ address,
97
+ address,
98
+ uint256,
99
+ uint256,
100
+ uint256,
101
+ bytes
102
+ )
103
+ );
104
+
105
+ // check if the sender of the l2 message is the authorized hook
106
+ require(
107
+ l2Sender == TypeCasts.bytes32ToAddress(authorizedHook),
108
+ "ArbL2ToL1Ism: l2Sender != authorizedHook"
109
+ );
110
+ // this data is an abi encoded call of verifyMessageId(bytes32 messageId)
111
+ require(data.length == 36, "ArbL2ToL1Ism: invalid data length");
112
+ bytes32 messageId = message.id();
113
+ bytes32 convertedBytes;
114
+ assembly {
115
+ // data = 0x[4 bytes function signature][32 bytes messageId]
116
+ convertedBytes := mload(add(data, 36))
117
+ }
118
+ // check if the parsed message id matches the message id of the message
119
+ require(
120
+ convertedBytes == messageId,
121
+ "ArbL2ToL1Ism: invalid message id"
122
+ );
123
+
124
+ // value send to 0
125
+ arbOutbox.executeTransaction(
126
+ proof,
127
+ index,
128
+ l2Sender,
129
+ to,
130
+ l2Block,
131
+ l1Block,
132
+ l2Timestamp,
133
+ 0,
134
+ data
135
+ );
136
+ // the above bridge call will revert if the verifyMessageId call fails
137
+ return true;
138
+ }
139
+
140
+ /// @inheritdoc AbstractMessageIdAuthorizedIsm
141
+ function _isAuthorized() internal view override returns (bool) {
142
+ return
143
+ _crossChainSender() == TypeCasts.bytes32ToAddress(authorizedHook);
144
+ }
145
+ }
@@ -86,6 +86,18 @@ contract XERC20Test is ERC20Test, IXERC20 {
86
86
  ) external view returns (uint256) {
87
87
  return type(uint256).max;
88
88
  }
89
+
90
+ function mintingMaxLimitOf(
91
+ address _bridge
92
+ ) external view returns (uint256) {
93
+ return type(uint256).max;
94
+ }
95
+
96
+ function burningMaxLimitOf(
97
+ address _bridge
98
+ ) external view returns (uint256) {
99
+ return type(uint256).max;
100
+ }
89
101
  }
90
102
 
91
103
  contract XERC20LockboxTest is IXERC20Lockbox {
@@ -46,4 +46,6 @@ contract TestRecipient is
46
46
  function setInterchainSecurityModule(address _ism) external onlyOwner {
47
47
  interchainSecurityModule = IInterchainSecurityModule(_ism);
48
48
  }
49
+
50
+ receive() external payable {}
49
51
  }
@@ -54,4 +54,25 @@ interface IXERC20 is IERC20 {
54
54
  function mintingCurrentLimitOf(
55
55
  address _bridge
56
56
  ) external view returns (uint256 _limit);
57
+
58
+ /**
59
+ * @notice Returns the max limit of a minter
60
+ *
61
+ * @param _minter The minter we are viewing the limits of
62
+ * @return _limit The limit the minter has
63
+ */
64
+ function mintingMaxLimitOf(
65
+ address _minter
66
+ ) external view returns (uint256 _limit);
67
+
68
+ /**
69
+ * @notice Returns the max limit of a bridge
70
+ *
71
+ * @param _bridge the bridge we are viewing the limits of
72
+ * @return _limit The limit the bridge has
73
+ */
74
+
75
+ function burningMaxLimitOf(
76
+ address _bridge
77
+ ) external view returns (uint256 _limit);
57
78
  }
@@ -0,0 +1,3 @@
1
+ import type * as nitroContracts from "./nitro-contracts/index.js";
2
+ export type { nitroContracts };
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../types/@arbitrum/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,cAAc,MAAM,4BAA4B,CAAC;AAClE,YAAY,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../types/@arbitrum/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import type * as src from "./src/index.js";
2
+ export type { src };
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../types/@arbitrum/nitro-contracts/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,GAAG,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EAAE,GAAG,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../types/@arbitrum/nitro-contracts/index.ts"],"names":[],"mappings":""}