@hyperlane-xyz/core 5.6.0 → 5.7.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 (423) hide show
  1. package/contracts/Mailbox.sol +2 -1
  2. package/contracts/PackageVersioned.sol +1 -1
  3. package/contracts/client/MailboxClient.sol +20 -1
  4. package/contracts/hooks/ArbL2ToL1Hook.sol +23 -12
  5. package/contracts/hooks/OPL2ToL1Hook.sol +23 -12
  6. package/contracts/hooks/OPStackHook.sol +9 -6
  7. package/contracts/hooks/PolygonPosHook.sol +10 -3
  8. package/contracts/hooks/ProtocolFee.sol +5 -0
  9. package/contracts/hooks/aggregation/ERC5164Hook.sol +13 -3
  10. package/contracts/hooks/layer-zero/LayerZeroV2Hook.sol +11 -3
  11. package/contracts/hooks/libs/AbstractMessageIdAuthHook.sol +22 -8
  12. package/contracts/isms/hook/AbstractMessageIdAuthorizedIsm.sol +14 -7
  13. package/contracts/isms/hook/ArbL2ToL1Ism.sol +10 -3
  14. package/contracts/isms/hook/ERC5164Ism.sol +1 -1
  15. package/contracts/isms/hook/OPStackIsm.sol +1 -1
  16. package/contracts/isms/hook/PolygonPosIsm.sol +1 -1
  17. package/contracts/isms/hook/layer-zero/LayerZeroV2Ism.sol +16 -5
  18. package/contracts/libs/OPL2ToL1Metadata.sol +5 -5
  19. package/contracts/middleware/InterchainAccountRouter.sol +27 -7
  20. package/contracts/mock/MockMailbox.sol +2 -2
  21. package/contracts/test/TestPostDispatchHook.sol +5 -4
  22. package/contracts/token/extensions/HypERC4626.sol +66 -29
  23. package/dist/buildArtifact.js +1 -1
  24. package/dist/buildArtifact.json +1 -1
  25. package/dist/contracts/client/GasRouter.d.ts +20 -0
  26. package/dist/contracts/client/GasRouter.d.ts.map +1 -1
  27. package/dist/contracts/client/MailboxClient.d.ts +20 -0
  28. package/dist/contracts/client/MailboxClient.d.ts.map +1 -1
  29. package/dist/contracts/client/Router.d.ts +20 -0
  30. package/dist/contracts/client/Router.d.ts.map +1 -1
  31. package/dist/contracts/hooks/ArbL2ToL1Hook.d.ts +36 -16
  32. package/dist/contracts/hooks/ArbL2ToL1Hook.d.ts.map +1 -1
  33. package/dist/contracts/hooks/MerkleTreeHook.d.ts +20 -0
  34. package/dist/contracts/hooks/MerkleTreeHook.d.ts.map +1 -1
  35. package/dist/contracts/hooks/OPL2ToL1Hook.d.ts +51 -16
  36. package/dist/contracts/hooks/OPL2ToL1Hook.d.ts.map +1 -1
  37. package/dist/contracts/hooks/OPStackHook.d.ts +20 -0
  38. package/dist/contracts/hooks/OPStackHook.d.ts.map +1 -1
  39. package/dist/contracts/hooks/PolygonPosHook.d.ts +20 -0
  40. package/dist/contracts/hooks/PolygonPosHook.d.ts.map +1 -1
  41. package/dist/contracts/hooks/ProtocolFee.d.ts +24 -0
  42. package/dist/contracts/hooks/ProtocolFee.d.ts.map +1 -1
  43. package/dist/contracts/hooks/aggregation/ERC5164Hook.d.ts +20 -0
  44. package/dist/contracts/hooks/aggregation/ERC5164Hook.d.ts.map +1 -1
  45. package/dist/contracts/hooks/layer-zero/LayerZeroV1Hook.d.ts +20 -0
  46. package/dist/contracts/hooks/layer-zero/LayerZeroV1Hook.d.ts.map +1 -1
  47. package/dist/contracts/hooks/layer-zero/LayerZeroV2Hook.d.ts +20 -0
  48. package/dist/contracts/hooks/layer-zero/LayerZeroV2Hook.d.ts.map +1 -1
  49. package/dist/contracts/hooks/libs/AbstractMessageIdAuthHook.d.ts +20 -0
  50. package/dist/contracts/hooks/libs/AbstractMessageIdAuthHook.d.ts.map +1 -1
  51. package/dist/contracts/hooks/routing/DestinationRecipientRoutingHook.d.ts +20 -0
  52. package/dist/contracts/hooks/routing/DestinationRecipientRoutingHook.d.ts.map +1 -1
  53. package/dist/contracts/hooks/routing/DomainRoutingHook.d.ts +20 -0
  54. package/dist/contracts/hooks/routing/DomainRoutingHook.d.ts.map +1 -1
  55. package/dist/contracts/hooks/routing/FallbackDomainRoutingHook.d.ts +20 -0
  56. package/dist/contracts/hooks/routing/FallbackDomainRoutingHook.d.ts.map +1 -1
  57. package/dist/contracts/hooks/warp-route/RateLimitedHook.d.ts +20 -0
  58. package/dist/contracts/hooks/warp-route/RateLimitedHook.d.ts.map +1 -1
  59. package/dist/contracts/isms/hook/AbstractMessageIdAuthorizedIsm.d.ts +40 -38
  60. package/dist/contracts/isms/hook/AbstractMessageIdAuthorizedIsm.d.ts.map +1 -1
  61. package/dist/contracts/isms/hook/ArbL2ToL1Ism.d.ts +40 -38
  62. package/dist/contracts/isms/hook/ArbL2ToL1Ism.d.ts.map +1 -1
  63. package/dist/contracts/isms/hook/ERC5164Ism.d.ts +40 -38
  64. package/dist/contracts/isms/hook/ERC5164Ism.d.ts.map +1 -1
  65. package/dist/contracts/isms/hook/OPL2ToL1Ism.d.ts +40 -38
  66. package/dist/contracts/isms/hook/OPL2ToL1Ism.d.ts.map +1 -1
  67. package/dist/contracts/isms/hook/OPStackIsm.d.ts +40 -38
  68. package/dist/contracts/isms/hook/OPStackIsm.d.ts.map +1 -1
  69. package/dist/contracts/isms/hook/PolygonPosIsm.d.ts +39 -37
  70. package/dist/contracts/isms/hook/PolygonPosIsm.d.ts.map +1 -1
  71. package/dist/contracts/isms/hook/layer-zero/LayerZeroV2Ism.d.ts +39 -37
  72. package/dist/contracts/isms/hook/layer-zero/LayerZeroV2Ism.d.ts.map +1 -1
  73. package/dist/contracts/isms/multisig/ValidatorAnnounce.d.ts +20 -0
  74. package/dist/contracts/isms/multisig/ValidatorAnnounce.d.ts.map +1 -1
  75. package/dist/contracts/isms/routing/DefaultFallbackRoutingIsm.d.ts +20 -0
  76. package/dist/contracts/isms/routing/DefaultFallbackRoutingIsm.d.ts.map +1 -1
  77. package/dist/contracts/isms/warp-route/RateLimitedIsm.d.ts +20 -0
  78. package/dist/contracts/isms/warp-route/RateLimitedIsm.d.ts.map +1 -1
  79. package/dist/contracts/middleware/InterchainAccountRouter.d.ts +20 -0
  80. package/dist/contracts/middleware/InterchainAccountRouter.d.ts.map +1 -1
  81. package/dist/contracts/middleware/InterchainQueryRouter.d.ts +20 -0
  82. package/dist/contracts/middleware/InterchainQueryRouter.d.ts.map +1 -1
  83. package/dist/contracts/middleware/liquidity-layer/LiquidityLayerRouter.d.ts +20 -0
  84. package/dist/contracts/middleware/liquidity-layer/LiquidityLayerRouter.d.ts.map +1 -1
  85. package/dist/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter.d.ts +20 -0
  86. package/dist/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter.d.ts.map +1 -1
  87. package/dist/contracts/middleware/liquidity-layer/adapters/PortalAdapter.d.ts +20 -0
  88. package/dist/contracts/middleware/liquidity-layer/adapters/PortalAdapter.d.ts.map +1 -1
  89. package/dist/contracts/mock/MockMailbox.d.ts +8 -8
  90. package/dist/contracts/mock/MockMailbox.d.ts.map +1 -1
  91. package/dist/contracts/test/TestGasRouter.d.ts +20 -0
  92. package/dist/contracts/test/TestGasRouter.d.ts.map +1 -1
  93. package/dist/contracts/test/TestMerkleTreeHook.d.ts +20 -0
  94. package/dist/contracts/test/TestMerkleTreeHook.d.ts.map +1 -1
  95. package/dist/contracts/test/TestRouter.d.ts +20 -0
  96. package/dist/contracts/test/TestRouter.d.ts.map +1 -1
  97. package/dist/contracts/token/HypERC20.d.ts +20 -0
  98. package/dist/contracts/token/HypERC20.d.ts.map +1 -1
  99. package/dist/contracts/token/HypERC20Collateral.d.ts +20 -0
  100. package/dist/contracts/token/HypERC20Collateral.d.ts.map +1 -1
  101. package/dist/contracts/token/HypERC721.d.ts +20 -0
  102. package/dist/contracts/token/HypERC721.d.ts.map +1 -1
  103. package/dist/contracts/token/HypERC721Collateral.d.ts +20 -0
  104. package/dist/contracts/token/HypERC721Collateral.d.ts.map +1 -1
  105. package/dist/contracts/token/HypNative.d.ts +20 -0
  106. package/dist/contracts/token/HypNative.d.ts.map +1 -1
  107. package/dist/contracts/token/extensions/FastHypERC20.d.ts +20 -0
  108. package/dist/contracts/token/extensions/FastHypERC20.d.ts.map +1 -1
  109. package/dist/contracts/token/extensions/FastHypERC20Collateral.d.ts +20 -0
  110. package/dist/contracts/token/extensions/FastHypERC20Collateral.d.ts.map +1 -1
  111. package/dist/contracts/token/extensions/HypERC4626.d.ts +46 -11
  112. package/dist/contracts/token/extensions/HypERC4626.d.ts.map +1 -1
  113. package/dist/contracts/token/extensions/HypERC4626Collateral.d.ts +20 -0
  114. package/dist/contracts/token/extensions/HypERC4626Collateral.d.ts.map +1 -1
  115. package/dist/contracts/token/extensions/HypERC4626OwnerCollateral.d.ts +20 -0
  116. package/dist/contracts/token/extensions/HypERC4626OwnerCollateral.d.ts.map +1 -1
  117. package/dist/contracts/token/extensions/HypERC721URICollateral.d.ts +20 -0
  118. package/dist/contracts/token/extensions/HypERC721URICollateral.d.ts.map +1 -1
  119. package/dist/contracts/token/extensions/HypERC721URIStorage.d.ts +20 -0
  120. package/dist/contracts/token/extensions/HypERC721URIStorage.d.ts.map +1 -1
  121. package/dist/contracts/token/extensions/HypFiatToken.d.ts +20 -0
  122. package/dist/contracts/token/extensions/HypFiatToken.d.ts.map +1 -1
  123. package/dist/contracts/token/extensions/HypNativeScaled.d.ts +20 -0
  124. package/dist/contracts/token/extensions/HypNativeScaled.d.ts.map +1 -1
  125. package/dist/contracts/token/extensions/HypXERC20.d.ts +20 -0
  126. package/dist/contracts/token/extensions/HypXERC20.d.ts.map +1 -1
  127. package/dist/contracts/token/extensions/HypXERC20Lockbox.d.ts +20 -0
  128. package/dist/contracts/token/extensions/HypXERC20Lockbox.d.ts.map +1 -1
  129. package/dist/contracts/token/libs/FastTokenRouter.d.ts +20 -0
  130. package/dist/contracts/token/libs/FastTokenRouter.d.ts.map +1 -1
  131. package/dist/contracts/token/libs/TokenRouter.d.ts +20 -0
  132. package/dist/contracts/token/libs/TokenRouter.d.ts.map +1 -1
  133. package/dist/factories/contracts/AttributeCheckpointFraud__factory.d.ts +1 -1
  134. package/dist/factories/contracts/AttributeCheckpointFraud__factory.js +1 -1
  135. package/dist/factories/contracts/CheckpointFraudProofs__factory.d.ts +1 -1
  136. package/dist/factories/contracts/CheckpointFraudProofs__factory.js +1 -1
  137. package/dist/factories/contracts/Mailbox__factory.d.ts +1 -1
  138. package/dist/factories/contracts/Mailbox__factory.js +1 -1
  139. package/dist/factories/contracts/avs/ECDSAStakeRegistry__factory.d.ts +1 -1
  140. package/dist/factories/contracts/avs/ECDSAStakeRegistry__factory.js +1 -1
  141. package/dist/factories/contracts/avs/HyperlaneServiceManager__factory.d.ts +1 -1
  142. package/dist/factories/contracts/avs/HyperlaneServiceManager__factory.js +1 -1
  143. package/dist/factories/contracts/client/GasRouter__factory.d.ts +20 -0
  144. package/dist/factories/contracts/client/GasRouter__factory.d.ts.map +1 -1
  145. package/dist/factories/contracts/client/GasRouter__factory.js +26 -0
  146. package/dist/factories/contracts/client/GasRouter__factory.js.map +1 -1
  147. package/dist/factories/contracts/client/MailboxClient__factory.d.ts +20 -0
  148. package/dist/factories/contracts/client/MailboxClient__factory.d.ts.map +1 -1
  149. package/dist/factories/contracts/client/MailboxClient__factory.js +26 -0
  150. package/dist/factories/contracts/client/MailboxClient__factory.js.map +1 -1
  151. package/dist/factories/contracts/client/Router__factory.d.ts +20 -0
  152. package/dist/factories/contracts/client/Router__factory.d.ts.map +1 -1
  153. package/dist/factories/contracts/client/Router__factory.js +26 -0
  154. package/dist/factories/contracts/client/Router__factory.js.map +1 -1
  155. package/dist/factories/contracts/hooks/ArbL2ToL1Hook__factory.d.ts +34 -14
  156. package/dist/factories/contracts/hooks/ArbL2ToL1Hook__factory.d.ts.map +1 -1
  157. package/dist/factories/contracts/hooks/ArbL2ToL1Hook__factory.js +42 -16
  158. package/dist/factories/contracts/hooks/ArbL2ToL1Hook__factory.js.map +1 -1
  159. package/dist/factories/contracts/hooks/MerkleTreeHook__factory.d.ts +21 -1
  160. package/dist/factories/contracts/hooks/MerkleTreeHook__factory.d.ts.map +1 -1
  161. package/dist/factories/contracts/hooks/MerkleTreeHook__factory.js +27 -1
  162. package/dist/factories/contracts/hooks/MerkleTreeHook__factory.js.map +1 -1
  163. package/dist/factories/contracts/hooks/OPL2ToL1Hook__factory.d.ts +37 -7
  164. package/dist/factories/contracts/hooks/OPL2ToL1Hook__factory.d.ts.map +1 -1
  165. package/dist/factories/contracts/hooks/OPL2ToL1Hook__factory.js +48 -9
  166. package/dist/factories/contracts/hooks/OPL2ToL1Hook__factory.js.map +1 -1
  167. package/dist/factories/contracts/hooks/OPStackHook__factory.d.ts +21 -1
  168. package/dist/factories/contracts/hooks/OPStackHook__factory.d.ts.map +1 -1
  169. package/dist/factories/contracts/hooks/OPStackHook__factory.js +27 -1
  170. package/dist/factories/contracts/hooks/OPStackHook__factory.js.map +1 -1
  171. package/dist/factories/contracts/hooks/PausableHook__factory.d.ts +1 -1
  172. package/dist/factories/contracts/hooks/PausableHook__factory.js +1 -1
  173. package/dist/factories/contracts/hooks/PolygonPosHook__factory.d.ts +21 -1
  174. package/dist/factories/contracts/hooks/PolygonPosHook__factory.d.ts.map +1 -1
  175. package/dist/factories/contracts/hooks/PolygonPosHook__factory.js +27 -1
  176. package/dist/factories/contracts/hooks/PolygonPosHook__factory.js.map +1 -1
  177. package/dist/factories/contracts/hooks/ProtocolFee__factory.d.ts +21 -1
  178. package/dist/factories/contracts/hooks/ProtocolFee__factory.d.ts.map +1 -1
  179. package/dist/factories/contracts/hooks/ProtocolFee__factory.js +27 -1
  180. package/dist/factories/contracts/hooks/ProtocolFee__factory.js.map +1 -1
  181. package/dist/factories/contracts/hooks/aggregation/ERC5164Hook__factory.d.ts +21 -1
  182. package/dist/factories/contracts/hooks/aggregation/ERC5164Hook__factory.d.ts.map +1 -1
  183. package/dist/factories/contracts/hooks/aggregation/ERC5164Hook__factory.js +27 -1
  184. package/dist/factories/contracts/hooks/aggregation/ERC5164Hook__factory.js.map +1 -1
  185. package/dist/factories/contracts/hooks/aggregation/StaticAggregationHookFactory__factory.d.ts +1 -1
  186. package/dist/factories/contracts/hooks/aggregation/StaticAggregationHookFactory__factory.js +1 -1
  187. package/dist/factories/contracts/hooks/aggregation/StaticAggregationHook__factory.d.ts +1 -1
  188. package/dist/factories/contracts/hooks/aggregation/StaticAggregationHook__factory.js +1 -1
  189. package/dist/factories/contracts/hooks/igp/InterchainGasPaymaster__factory.d.ts +1 -1
  190. package/dist/factories/contracts/hooks/igp/InterchainGasPaymaster__factory.js +1 -1
  191. package/dist/factories/contracts/hooks/igp/StorageGasOracle__factory.d.ts +1 -1
  192. package/dist/factories/contracts/hooks/igp/StorageGasOracle__factory.js +1 -1
  193. package/dist/factories/contracts/hooks/layer-zero/LayerZeroV1Hook__factory.d.ts +21 -1
  194. package/dist/factories/contracts/hooks/layer-zero/LayerZeroV1Hook__factory.d.ts.map +1 -1
  195. package/dist/factories/contracts/hooks/layer-zero/LayerZeroV1Hook__factory.js +27 -1
  196. package/dist/factories/contracts/hooks/layer-zero/LayerZeroV1Hook__factory.js.map +1 -1
  197. package/dist/factories/contracts/hooks/layer-zero/LayerZeroV2Hook__factory.d.ts +21 -1
  198. package/dist/factories/contracts/hooks/layer-zero/LayerZeroV2Hook__factory.d.ts.map +1 -1
  199. package/dist/factories/contracts/hooks/layer-zero/LayerZeroV2Hook__factory.js +27 -1
  200. package/dist/factories/contracts/hooks/layer-zero/LayerZeroV2Hook__factory.js.map +1 -1
  201. package/dist/factories/contracts/hooks/libs/AbstractMessageIdAuthHook__factory.d.ts +20 -0
  202. package/dist/factories/contracts/hooks/libs/AbstractMessageIdAuthHook__factory.d.ts.map +1 -1
  203. package/dist/factories/contracts/hooks/libs/AbstractMessageIdAuthHook__factory.js +26 -0
  204. package/dist/factories/contracts/hooks/libs/AbstractMessageIdAuthHook__factory.js.map +1 -1
  205. package/dist/factories/contracts/hooks/routing/DestinationRecipientRoutingHook__factory.d.ts +21 -1
  206. package/dist/factories/contracts/hooks/routing/DestinationRecipientRoutingHook__factory.d.ts.map +1 -1
  207. package/dist/factories/contracts/hooks/routing/DestinationRecipientRoutingHook__factory.js +27 -1
  208. package/dist/factories/contracts/hooks/routing/DestinationRecipientRoutingHook__factory.js.map +1 -1
  209. package/dist/factories/contracts/hooks/routing/DomainRoutingHook__factory.d.ts +21 -1
  210. package/dist/factories/contracts/hooks/routing/DomainRoutingHook__factory.d.ts.map +1 -1
  211. package/dist/factories/contracts/hooks/routing/DomainRoutingHook__factory.js +27 -1
  212. package/dist/factories/contracts/hooks/routing/DomainRoutingHook__factory.js.map +1 -1
  213. package/dist/factories/contracts/hooks/routing/FallbackDomainRoutingHook__factory.d.ts +21 -1
  214. package/dist/factories/contracts/hooks/routing/FallbackDomainRoutingHook__factory.d.ts.map +1 -1
  215. package/dist/factories/contracts/hooks/routing/FallbackDomainRoutingHook__factory.js +27 -1
  216. package/dist/factories/contracts/hooks/routing/FallbackDomainRoutingHook__factory.js.map +1 -1
  217. package/dist/factories/contracts/hooks/warp-route/RateLimitedHook__factory.d.ts +21 -1
  218. package/dist/factories/contracts/hooks/warp-route/RateLimitedHook__factory.d.ts.map +1 -1
  219. package/dist/factories/contracts/hooks/warp-route/RateLimitedHook__factory.js +27 -1
  220. package/dist/factories/contracts/hooks/warp-route/RateLimitedHook__factory.js.map +1 -1
  221. package/dist/factories/contracts/isms/NoopIsm__factory.d.ts +1 -1
  222. package/dist/factories/contracts/isms/NoopIsm__factory.js +1 -1
  223. package/dist/factories/contracts/isms/PausableIsm__factory.d.ts +1 -1
  224. package/dist/factories/contracts/isms/PausableIsm__factory.js +1 -1
  225. package/dist/factories/contracts/isms/TrustedRelayerIsm__factory.d.ts +1 -1
  226. package/dist/factories/contracts/isms/TrustedRelayerIsm__factory.js +1 -1
  227. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsmFactory__factory.d.ts +1 -1
  228. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsmFactory__factory.js +1 -1
  229. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsm__factory.d.ts +1 -1
  230. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsm__factory.js +1 -1
  231. package/dist/factories/contracts/isms/hook/AbstractMessageIdAuthorizedIsm__factory.d.ts +19 -10
  232. package/dist/factories/contracts/isms/hook/AbstractMessageIdAuthorizedIsm__factory.d.ts.map +1 -1
  233. package/dist/factories/contracts/isms/hook/AbstractMessageIdAuthorizedIsm__factory.js +24 -13
  234. package/dist/factories/contracts/isms/hook/AbstractMessageIdAuthorizedIsm__factory.js.map +1 -1
  235. package/dist/factories/contracts/isms/hook/ArbL2ToL1Ism__factory.d.ts +20 -11
  236. package/dist/factories/contracts/isms/hook/ArbL2ToL1Ism__factory.d.ts.map +1 -1
  237. package/dist/factories/contracts/isms/hook/ArbL2ToL1Ism__factory.js +25 -14
  238. package/dist/factories/contracts/isms/hook/ArbL2ToL1Ism__factory.js.map +1 -1
  239. package/dist/factories/contracts/isms/hook/ERC5164Ism__factory.d.ts +20 -11
  240. package/dist/factories/contracts/isms/hook/ERC5164Ism__factory.d.ts.map +1 -1
  241. package/dist/factories/contracts/isms/hook/ERC5164Ism__factory.js +25 -14
  242. package/dist/factories/contracts/isms/hook/ERC5164Ism__factory.js.map +1 -1
  243. package/dist/factories/contracts/isms/hook/OPL2ToL1Ism__factory.d.ts +20 -11
  244. package/dist/factories/contracts/isms/hook/OPL2ToL1Ism__factory.d.ts.map +1 -1
  245. package/dist/factories/contracts/isms/hook/OPL2ToL1Ism__factory.js +25 -14
  246. package/dist/factories/contracts/isms/hook/OPL2ToL1Ism__factory.js.map +1 -1
  247. package/dist/factories/contracts/isms/hook/OPStackIsm__factory.d.ts +20 -11
  248. package/dist/factories/contracts/isms/hook/OPStackIsm__factory.d.ts.map +1 -1
  249. package/dist/factories/contracts/isms/hook/OPStackIsm__factory.js +25 -14
  250. package/dist/factories/contracts/isms/hook/OPStackIsm__factory.js.map +1 -1
  251. package/dist/factories/contracts/isms/hook/PolygonPosIsm__factory.d.ts +20 -11
  252. package/dist/factories/contracts/isms/hook/PolygonPosIsm__factory.d.ts.map +1 -1
  253. package/dist/factories/contracts/isms/hook/PolygonPosIsm__factory.js +25 -14
  254. package/dist/factories/contracts/isms/hook/PolygonPosIsm__factory.js.map +1 -1
  255. package/dist/factories/contracts/isms/hook/layer-zero/LayerZeroV2Ism__factory.d.ts +20 -11
  256. package/dist/factories/contracts/isms/hook/layer-zero/LayerZeroV2Ism__factory.d.ts.map +1 -1
  257. package/dist/factories/contracts/isms/hook/layer-zero/LayerZeroV2Ism__factory.js +25 -14
  258. package/dist/factories/contracts/isms/hook/layer-zero/LayerZeroV2Ism__factory.js.map +1 -1
  259. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsmFactory__factory.d.ts +1 -1
  260. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsmFactory__factory.js +1 -1
  261. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm__factory.d.ts +1 -1
  262. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm__factory.js +1 -1
  263. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsmFactory__factory.d.ts +1 -1
  264. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsmFactory__factory.js +1 -1
  265. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm__factory.d.ts +1 -1
  266. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm__factory.js +1 -1
  267. package/dist/factories/contracts/isms/multisig/ValidatorAnnounce__factory.d.ts +21 -1
  268. package/dist/factories/contracts/isms/multisig/ValidatorAnnounce__factory.d.ts.map +1 -1
  269. package/dist/factories/contracts/isms/multisig/ValidatorAnnounce__factory.js +27 -1
  270. package/dist/factories/contracts/isms/multisig/ValidatorAnnounce__factory.js.map +1 -1
  271. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsmFactory__factory.d.ts +1 -1
  272. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsmFactory__factory.js +1 -1
  273. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsm__factory.d.ts +1 -1
  274. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsm__factory.js +1 -1
  275. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsmFactory__factory.d.ts +1 -1
  276. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsmFactory__factory.js +1 -1
  277. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsm__factory.d.ts +1 -1
  278. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsm__factory.js +1 -1
  279. package/dist/factories/contracts/isms/routing/DefaultFallbackRoutingIsm__factory.d.ts +21 -1
  280. package/dist/factories/contracts/isms/routing/DefaultFallbackRoutingIsm__factory.d.ts.map +1 -1
  281. package/dist/factories/contracts/isms/routing/DefaultFallbackRoutingIsm__factory.js +27 -1
  282. package/dist/factories/contracts/isms/routing/DefaultFallbackRoutingIsm__factory.js.map +1 -1
  283. package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory.sol/DomainRoutingIsmFactory__factory.d.ts +1 -1
  284. package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory.sol/DomainRoutingIsmFactory__factory.js +1 -1
  285. package/dist/factories/contracts/isms/routing/DomainRoutingIsm__factory.d.ts +1 -1
  286. package/dist/factories/contracts/isms/routing/DomainRoutingIsm__factory.js +1 -1
  287. package/dist/factories/contracts/isms/routing/InterchainAccountIsm__factory.d.ts +1 -1
  288. package/dist/factories/contracts/isms/routing/InterchainAccountIsm__factory.js +1 -1
  289. package/dist/factories/contracts/isms/warp-route/RateLimitedIsm__factory.d.ts +21 -1
  290. package/dist/factories/contracts/isms/warp-route/RateLimitedIsm__factory.d.ts.map +1 -1
  291. package/dist/factories/contracts/isms/warp-route/RateLimitedIsm__factory.js +27 -1
  292. package/dist/factories/contracts/isms/warp-route/RateLimitedIsm__factory.js.map +1 -1
  293. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.d.ts +21 -1
  294. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.d.ts.map +1 -1
  295. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.js +27 -1
  296. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.js.map +1 -1
  297. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.d.ts +21 -1
  298. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.d.ts.map +1 -1
  299. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.js +27 -1
  300. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.js.map +1 -1
  301. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.d.ts +21 -1
  302. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.d.ts.map +1 -1
  303. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.js +27 -1
  304. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.js.map +1 -1
  305. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.d.ts +21 -1
  306. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.d.ts.map +1 -1
  307. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.js +27 -1
  308. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.js.map +1 -1
  309. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.d.ts +21 -1
  310. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.d.ts.map +1 -1
  311. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.js +27 -1
  312. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.js.map +1 -1
  313. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.d.ts +1 -1
  314. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.d.ts.map +1 -1
  315. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.js +1 -1
  316. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.js.map +1 -1
  317. package/dist/factories/contracts/mock/MockMailbox__factory.d.ts +2 -2
  318. package/dist/factories/contracts/mock/MockMailbox__factory.d.ts.map +1 -1
  319. package/dist/factories/contracts/mock/MockMailbox__factory.js +2 -2
  320. package/dist/factories/contracts/mock/MockMailbox__factory.js.map +1 -1
  321. package/dist/factories/contracts/test/TestGasRouter__factory.d.ts +21 -1
  322. package/dist/factories/contracts/test/TestGasRouter__factory.d.ts.map +1 -1
  323. package/dist/factories/contracts/test/TestGasRouter__factory.js +27 -1
  324. package/dist/factories/contracts/test/TestGasRouter__factory.js.map +1 -1
  325. package/dist/factories/contracts/test/TestInterchainGasPaymaster__factory.d.ts +1 -1
  326. package/dist/factories/contracts/test/TestInterchainGasPaymaster__factory.js +1 -1
  327. package/dist/factories/contracts/test/TestMailbox__factory.d.ts +1 -1
  328. package/dist/factories/contracts/test/TestMailbox__factory.js +1 -1
  329. package/dist/factories/contracts/test/TestMerkleTreeHook__factory.d.ts +21 -1
  330. package/dist/factories/contracts/test/TestMerkleTreeHook__factory.d.ts.map +1 -1
  331. package/dist/factories/contracts/test/TestMerkleTreeHook__factory.js +27 -1
  332. package/dist/factories/contracts/test/TestMerkleTreeHook__factory.js.map +1 -1
  333. package/dist/factories/contracts/test/TestPostDispatchHook__factory.d.ts +1 -1
  334. package/dist/factories/contracts/test/TestPostDispatchHook__factory.js +1 -1
  335. package/dist/factories/contracts/test/TestQuerySender__factory.d.ts +1 -1
  336. package/dist/factories/contracts/test/TestQuerySender__factory.js +1 -1
  337. package/dist/factories/contracts/test/TestQuery__factory.d.ts +1 -1
  338. package/dist/factories/contracts/test/TestQuery__factory.js +1 -1
  339. package/dist/factories/contracts/test/TestRemoteChallenger__factory.d.ts +1 -1
  340. package/dist/factories/contracts/test/TestRemoteChallenger__factory.js +1 -1
  341. package/dist/factories/contracts/test/TestRouter__factory.d.ts +21 -1
  342. package/dist/factories/contracts/test/TestRouter__factory.d.ts.map +1 -1
  343. package/dist/factories/contracts/test/TestRouter__factory.js +27 -1
  344. package/dist/factories/contracts/test/TestRouter__factory.js.map +1 -1
  345. package/dist/factories/contracts/test/TestSendReceiver__factory.d.ts +1 -1
  346. package/dist/factories/contracts/test/TestSendReceiver__factory.js +1 -1
  347. package/dist/factories/contracts/test/avs/TestHyperlaneServiceManager__factory.d.ts +1 -1
  348. package/dist/factories/contracts/test/avs/TestHyperlaneServiceManager__factory.js +1 -1
  349. package/dist/factories/contracts/token/HypERC20Collateral__factory.d.ts +21 -1
  350. package/dist/factories/contracts/token/HypERC20Collateral__factory.d.ts.map +1 -1
  351. package/dist/factories/contracts/token/HypERC20Collateral__factory.js +27 -1
  352. package/dist/factories/contracts/token/HypERC20Collateral__factory.js.map +1 -1
  353. package/dist/factories/contracts/token/HypERC20__factory.d.ts +21 -1
  354. package/dist/factories/contracts/token/HypERC20__factory.d.ts.map +1 -1
  355. package/dist/factories/contracts/token/HypERC20__factory.js +27 -1
  356. package/dist/factories/contracts/token/HypERC20__factory.js.map +1 -1
  357. package/dist/factories/contracts/token/HypERC721Collateral__factory.d.ts +21 -1
  358. package/dist/factories/contracts/token/HypERC721Collateral__factory.d.ts.map +1 -1
  359. package/dist/factories/contracts/token/HypERC721Collateral__factory.js +27 -1
  360. package/dist/factories/contracts/token/HypERC721Collateral__factory.js.map +1 -1
  361. package/dist/factories/contracts/token/HypERC721__factory.d.ts +21 -1
  362. package/dist/factories/contracts/token/HypERC721__factory.d.ts.map +1 -1
  363. package/dist/factories/contracts/token/HypERC721__factory.js +27 -1
  364. package/dist/factories/contracts/token/HypERC721__factory.js.map +1 -1
  365. package/dist/factories/contracts/token/HypNative__factory.d.ts +21 -1
  366. package/dist/factories/contracts/token/HypNative__factory.d.ts.map +1 -1
  367. package/dist/factories/contracts/token/HypNative__factory.js +27 -1
  368. package/dist/factories/contracts/token/HypNative__factory.js.map +1 -1
  369. package/dist/factories/contracts/token/extensions/FastHypERC20Collateral__factory.d.ts +21 -1
  370. package/dist/factories/contracts/token/extensions/FastHypERC20Collateral__factory.d.ts.map +1 -1
  371. package/dist/factories/contracts/token/extensions/FastHypERC20Collateral__factory.js +27 -1
  372. package/dist/factories/contracts/token/extensions/FastHypERC20Collateral__factory.js.map +1 -1
  373. package/dist/factories/contracts/token/extensions/FastHypERC20__factory.d.ts +21 -1
  374. package/dist/factories/contracts/token/extensions/FastHypERC20__factory.d.ts.map +1 -1
  375. package/dist/factories/contracts/token/extensions/FastHypERC20__factory.js +27 -1
  376. package/dist/factories/contracts/token/extensions/FastHypERC20__factory.js.map +1 -1
  377. package/dist/factories/contracts/token/extensions/HypERC4626Collateral__factory.d.ts +21 -1
  378. package/dist/factories/contracts/token/extensions/HypERC4626Collateral__factory.d.ts.map +1 -1
  379. package/dist/factories/contracts/token/extensions/HypERC4626Collateral__factory.js +27 -1
  380. package/dist/factories/contracts/token/extensions/HypERC4626Collateral__factory.js.map +1 -1
  381. package/dist/factories/contracts/token/extensions/HypERC4626OwnerCollateral__factory.d.ts +21 -1
  382. package/dist/factories/contracts/token/extensions/HypERC4626OwnerCollateral__factory.d.ts.map +1 -1
  383. package/dist/factories/contracts/token/extensions/HypERC4626OwnerCollateral__factory.js +27 -1
  384. package/dist/factories/contracts/token/extensions/HypERC4626OwnerCollateral__factory.js.map +1 -1
  385. package/dist/factories/contracts/token/extensions/HypERC4626__factory.d.ts +33 -3
  386. package/dist/factories/contracts/token/extensions/HypERC4626__factory.d.ts.map +1 -1
  387. package/dist/factories/contracts/token/extensions/HypERC4626__factory.js +42 -3
  388. package/dist/factories/contracts/token/extensions/HypERC4626__factory.js.map +1 -1
  389. package/dist/factories/contracts/token/extensions/HypERC721URICollateral__factory.d.ts +21 -1
  390. package/dist/factories/contracts/token/extensions/HypERC721URICollateral__factory.d.ts.map +1 -1
  391. package/dist/factories/contracts/token/extensions/HypERC721URICollateral__factory.js +27 -1
  392. package/dist/factories/contracts/token/extensions/HypERC721URICollateral__factory.js.map +1 -1
  393. package/dist/factories/contracts/token/extensions/HypERC721URIStorage__factory.d.ts +21 -1
  394. package/dist/factories/contracts/token/extensions/HypERC721URIStorage__factory.d.ts.map +1 -1
  395. package/dist/factories/contracts/token/extensions/HypERC721URIStorage__factory.js +27 -1
  396. package/dist/factories/contracts/token/extensions/HypERC721URIStorage__factory.js.map +1 -1
  397. package/dist/factories/contracts/token/extensions/HypFiatToken__factory.d.ts +21 -1
  398. package/dist/factories/contracts/token/extensions/HypFiatToken__factory.d.ts.map +1 -1
  399. package/dist/factories/contracts/token/extensions/HypFiatToken__factory.js +27 -1
  400. package/dist/factories/contracts/token/extensions/HypFiatToken__factory.js.map +1 -1
  401. package/dist/factories/contracts/token/extensions/HypNativeScaled__factory.d.ts +21 -1
  402. package/dist/factories/contracts/token/extensions/HypNativeScaled__factory.d.ts.map +1 -1
  403. package/dist/factories/contracts/token/extensions/HypNativeScaled__factory.js +27 -1
  404. package/dist/factories/contracts/token/extensions/HypNativeScaled__factory.js.map +1 -1
  405. package/dist/factories/contracts/token/extensions/HypXERC20Lockbox__factory.d.ts +21 -1
  406. package/dist/factories/contracts/token/extensions/HypXERC20Lockbox__factory.d.ts.map +1 -1
  407. package/dist/factories/contracts/token/extensions/HypXERC20Lockbox__factory.js +27 -1
  408. package/dist/factories/contracts/token/extensions/HypXERC20Lockbox__factory.js.map +1 -1
  409. package/dist/factories/contracts/token/extensions/HypXERC20__factory.d.ts +21 -1
  410. package/dist/factories/contracts/token/extensions/HypXERC20__factory.d.ts.map +1 -1
  411. package/dist/factories/contracts/token/extensions/HypXERC20__factory.js +27 -1
  412. package/dist/factories/contracts/token/extensions/HypXERC20__factory.js.map +1 -1
  413. package/dist/factories/contracts/token/extensions/WHypERC4626__factory.d.ts +1 -1
  414. package/dist/factories/contracts/token/extensions/WHypERC4626__factory.js +1 -1
  415. package/dist/factories/contracts/token/libs/FastTokenRouter__factory.d.ts +20 -0
  416. package/dist/factories/contracts/token/libs/FastTokenRouter__factory.d.ts.map +1 -1
  417. package/dist/factories/contracts/token/libs/FastTokenRouter__factory.js +26 -0
  418. package/dist/factories/contracts/token/libs/FastTokenRouter__factory.js.map +1 -1
  419. package/dist/factories/contracts/token/libs/TokenRouter__factory.d.ts +20 -0
  420. package/dist/factories/contracts/token/libs/TokenRouter__factory.d.ts.map +1 -1
  421. package/dist/factories/contracts/token/libs/TokenRouter__factory.js +26 -0
  422. package/dist/factories/contracts/token/libs/TokenRouter__factory.js.map +1 -1
  423. package/package.json +2 -2
@@ -57,7 +57,7 @@ contract LayerZeroV2Ism is AbstractMessageIdAuthorizedIsm {
57
57
  /**
58
58
  * @notice Entry point for receiving msg/packet from the LayerZero endpoint.
59
59
  * @param _lzMessage The payload of the received message.
60
- * @dev Authorization verification is done within verifyMessageId() -> _isAuthorized()
60
+ * @dev Authorization verification is done within preVerifyMessage() -> _isAuthorized()
61
61
  */
62
62
  function lzReceive(
63
63
  Origin calldata,
@@ -66,25 +66,36 @@ contract LayerZeroV2Ism is AbstractMessageIdAuthorizedIsm {
66
66
  address,
67
67
  bytes calldata
68
68
  ) external payable {
69
- verifyMessageId(_messageId(_lzMessage));
69
+ preVerifyMessage(_messageId(_lzMessage), _msgValue(_lzMessage));
70
70
  }
71
71
 
72
72
  // ============ Internal function ============
73
73
 
74
74
  /**
75
75
  * @notice Slices the messageId from the message delivered from LayerZeroV2Hook
76
- * @dev message is created as abi.encodeCall(AbstractMessageIdAuthorizedIsm.verifyMessageId, id)
76
+ * @dev message is created as abi.encodeCall(AbstractMessageIdAuthorizedIsm.preVerifyMessage, id)
77
77
  * @dev _message will be 36 bytes (4 bytes for function selector, and 32 bytes for messageId)
78
78
  */
79
79
  function _messageId(
80
80
  bytes calldata _message
81
81
  ) internal pure returns (bytes32) {
82
- return bytes32(_message[FUNC_SELECTOR_OFFSET:]);
82
+ return bytes32(_message[FUNC_SELECTOR_OFFSET:ORIGIN_SENDER_OFFSET]);
83
+ }
84
+
85
+ /**
86
+ * @notice Slices the msgValue from the message delivered from LayerZeroV2Hook
87
+ * @dev message is created as abi.encodeCall(AbstractMessageIdAuthorizedIsm.preVerifyMessage, (id,msgValue))
88
+ * @dev _message will be 68 bytes (4 bytes for function selector, and 32 bytes for messageId, another 32 for msgValue)
89
+ */
90
+ function _msgValue(
91
+ bytes calldata _message
92
+ ) internal pure returns (uint256) {
93
+ return uint256(bytes32(_message[ORIGIN_SENDER_OFFSET:]));
83
94
  }
84
95
 
85
96
  /**
86
97
  * @notice Validates criteria to verify a message
87
- * @dev this is called by AbstractMessageIdAuthorizedIsm.verifyMessageId
98
+ * @dev this is called by AbstractMessageIdAuthorizedIsm.preVerifyMessage
88
99
  * @dev parses msg.value to get parameters from lzReceive()
89
100
  */
90
101
  function _isAuthorized() internal view override returns (bool) {
@@ -7,7 +7,7 @@ pragma solidity >=0.8.0;
7
7
  */
8
8
  library OPL2ToL1Metadata {
9
9
  // bottom offset to the start of message id in the metadata
10
- uint256 private constant MESSAGE_ID_OFFSET = 88;
10
+ uint256 private constant MESSAGE_ID_OFFSET = 120;
11
11
  // from IOptimismPortal.WithdrawalTransaction
12
12
  // Σ {
13
13
  // nonce = 32 bytes
@@ -20,7 +20,7 @@ library OPL2ToL1Metadata {
20
20
  // LENGTH = 32 bytes
21
21
  // } = 252 bytes
22
22
  uint256 private constant FIXED_METADATA_LENGTH = 252;
23
- // metadata here is double encoded call relayMessage(..., verifyMessageId)
23
+ // metadata here is double encoded call relayMessage(..., preVerifyMessage)
24
24
  // Σ {
25
25
  // _selector = 4 bytes
26
26
  // _nonce = 32 bytes
@@ -31,9 +31,9 @@ library OPL2ToL1Metadata {
31
31
  // _data
32
32
  // OFFSET = 32 bytes
33
33
  // LENGTH = 32 bytes
34
- // PADDING + verifyMessageId = 64 bytes
35
- // } = 292 bytes
36
- uint256 private constant MESSENGER_CALLDATA_LENGTH = 292;
34
+ // PADDING + preVerifyMessage = 96 bytes
35
+ // } = 324 bytes
36
+ uint256 private constant MESSENGER_CALLDATA_LENGTH = 324;
37
37
 
38
38
  /**
39
39
  * @notice Returns the message ID.
@@ -22,6 +22,7 @@ import {TypeCasts} from "../libs/TypeCasts.sol";
22
22
  import {StandardHookMetadata} from "../hooks/libs/StandardHookMetadata.sol";
23
23
  import {EnumerableMapExtended} from "../libs/EnumerableMapExtended.sol";
24
24
  import {Router} from "../client/Router.sol";
25
+ import {IPostDispatchHook} from "../interfaces/hooks/IPostDispatchHook.sol";
25
26
 
26
27
  // ============ External Imports ============
27
28
  import {Create2} from "@openzeppelin/contracts/utils/Create2.sol";
@@ -160,6 +161,12 @@ contract InterchainAccountRouter is Router {
160
161
  }
161
162
  }
162
163
 
164
+ function setHook(
165
+ address _hook
166
+ ) public override onlyContractOrNull(_hook) onlyOwner {
167
+ hook = IPostDispatchHook(_hook);
168
+ }
169
+
163
170
  // ============ External Functions ============
164
171
  /**
165
172
  * @notice Dispatches a single remote call to be made by an owner's
@@ -600,7 +607,14 @@ contract InterchainAccountRouter is Router {
600
607
  ) private returns (bytes32) {
601
608
  require(_router != bytes32(0), "no router specified for destination");
602
609
  emit RemoteCallDispatched(_destination, msg.sender, _router, _ism);
603
- return mailbox.dispatch{value: msg.value}(_destination, _router, _body);
610
+ return
611
+ mailbox.dispatch{value: msg.value}(
612
+ _destination,
613
+ _router,
614
+ _body,
615
+ new bytes(0),
616
+ hook
617
+ );
604
618
  }
605
619
 
606
620
  /**
@@ -625,7 +639,8 @@ contract InterchainAccountRouter is Router {
625
639
  _destination,
626
640
  _router,
627
641
  _body,
628
- _hookMetadata
642
+ _hookMetadata,
643
+ hook
629
644
  );
630
645
  }
631
646
 
@@ -665,7 +680,13 @@ contract InterchainAccountRouter is Router {
665
680
  function quoteGasPayment(
666
681
  uint32 _destination
667
682
  ) external view returns (uint256 _gasPayment) {
668
- return _quoteDispatch(_destination, "");
683
+ return
684
+ _Router_quoteDispatch(
685
+ _destination,
686
+ new bytes(0),
687
+ new bytes(0),
688
+ address(hook)
689
+ );
669
690
  }
670
691
 
671
692
  /**
@@ -679,13 +700,12 @@ contract InterchainAccountRouter is Router {
679
700
  bytes calldata _messageBody,
680
701
  uint256 gasLimit
681
702
  ) external view returns (uint256 _gasPayment) {
682
- bytes32 _router = _mustHaveRemoteRouter(_destination);
683
703
  return
684
- mailbox.quoteDispatch(
704
+ _Router_quoteDispatch(
685
705
  _destination,
686
- _router,
687
706
  _messageBody,
688
- StandardHookMetadata.overrideGasLimit(gasLimit)
707
+ StandardHookMetadata.overrideGasLimit(gasLimit),
708
+ address(hook)
689
709
  );
690
710
  }
691
711
  }
@@ -78,8 +78,8 @@ contract MockMailbox is Mailbox {
78
78
  inboundProcessedNonce++;
79
79
  }
80
80
 
81
- function processInboundMessage(uint32 _nonce) public {
81
+ function processInboundMessage(uint32 _nonce) public payable {
82
82
  bytes memory _message = inboundMessages[_nonce];
83
- Mailbox(address(this)).process("", _message);
83
+ Mailbox(address(this)).process{value: msg.value}("", _message);
84
84
  }
85
85
  }
@@ -1,5 +1,6 @@
1
1
  // SPDX-License-Identifier: MIT OR Apache-2.0
2
2
  pragma solidity >=0.8.0;
3
+
3
4
  import {Message} from "../libs/Message.sol";
4
5
 
5
6
  import {IPostDispatchHook} from "../interfaces/hooks/IPostDispatchHook.sol";
@@ -35,15 +36,15 @@ contract TestPostDispatchHook is AbstractPostDispatchHook {
35
36
 
36
37
  // ============ Internal functions ============
37
38
  function _postDispatch(
38
- bytes calldata /*metadata*/,
39
- bytes calldata message
39
+ bytes calldata,
40
+ /*metadata*/ bytes calldata message
40
41
  ) internal override {
41
42
  messageDispatched[message.id()] = true;
42
43
  }
43
44
 
44
45
  function _quoteDispatch(
45
- bytes calldata /*metadata*/,
46
- bytes calldata /*message*/
46
+ bytes calldata,
47
+ /*metadata*/ bytes calldata /*message*/
47
48
  ) internal view override returns (uint256) {
48
49
  return fee;
49
50
  }
@@ -22,10 +22,13 @@ import {TokenRouter} from "../libs/TokenRouter.sol";
22
22
 
23
23
  // ============ External Imports ============
24
24
  import {Math} from "@openzeppelin/contracts/utils/math/Math.sol";
25
+ import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
26
+ import {ERC20Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol";
25
27
 
26
28
  /**
27
29
  * @title Hyperlane ERC20 Rebasing Token
28
30
  * @author Abacus Works
31
+ * @notice This contract implements a rebasing token that reflects yields from the origin chain
29
32
  */
30
33
  contract HypERC4626 is HypERC20 {
31
34
  using Math for uint256;
@@ -49,6 +52,67 @@ contract HypERC4626 is HypERC20 {
49
52
  _disableInitializers();
50
53
  }
51
54
 
55
+ // ============ Public Functions ============
56
+
57
+ /// Override transfer to handle underlying amounts while using shares internally
58
+ /// @inheritdoc ERC20Upgradeable
59
+ /// @dev the Transfer event emitted from ERC20Upgradeable will be in terms of shares not assets, so it may be misleading
60
+ function transfer(
61
+ address to,
62
+ uint256 amount
63
+ ) public virtual override returns (bool) {
64
+ _transfer(_msgSender(), to, assetsToShares(amount));
65
+ return true;
66
+ }
67
+
68
+ /// Override transferFrom to handle underlying amounts while using shares internally
69
+ /// @inheritdoc ERC20Upgradeable
70
+ function transferFrom(
71
+ address sender,
72
+ address recipient,
73
+ uint256 amount
74
+ ) public virtual override returns (bool) {
75
+ address spender = _msgSender();
76
+ uint256 shares = assetsToShares(amount);
77
+ _spendAllowance(sender, spender, amount);
78
+ _transfer(sender, recipient, shares);
79
+ return true;
80
+ }
81
+
82
+ /// Override totalSupply to return the total assets instead of shares. This reflects the actual circulating supply in terms of assets, accounting for rebasing
83
+ /// @inheritdoc ERC20Upgradeable
84
+ function totalSupply() public view virtual override returns (uint256) {
85
+ return sharesToAssets(totalShares());
86
+ }
87
+
88
+ /// This returns the balance of the account in terms of assets, accounting for rebasing
89
+ /// @inheritdoc ERC20Upgradeable
90
+ function balanceOf(
91
+ address account
92
+ ) public view virtual override returns (uint256) {
93
+ return sharesToAssets(shareBalanceOf(account));
94
+ }
95
+
96
+ /// This function provides the total supply in terms of shares
97
+ function totalShares() public view returns (uint256) {
98
+ return super.totalSupply();
99
+ }
100
+
101
+ /// This returns the balance of the account in terms of shares
102
+ function shareBalanceOf(address account) public view returns (uint256) {
103
+ return super.balanceOf(account);
104
+ }
105
+
106
+ function assetsToShares(uint256 _amount) public view returns (uint256) {
107
+ return _amount.mulDiv(PRECISION, exchangeRate);
108
+ }
109
+
110
+ function sharesToAssets(uint256 _shares) public view returns (uint256) {
111
+ return _shares.mulDiv(exchangeRate, PRECISION);
112
+ }
113
+
114
+ // ============ Internal Functions ============
115
+
52
116
  /// Override to send shares instead of assets from synthetic
53
117
  /// @inheritdoc TokenRouter
54
118
  function _transferRemote(
@@ -78,6 +142,8 @@ contract HypERC4626 is HypERC20 {
78
142
  emit SentTransferRemote(_destination, _recipient, _amountOrId);
79
143
  }
80
144
 
145
+ /// override _handle to update exchange rate
146
+ /// @inheritdoc TokenRouter
81
147
  function _handle(
82
148
  uint32 _origin,
83
149
  bytes32 _sender,
@@ -97,33 +163,4 @@ contract HypERC4626 is HypERC20 {
97
163
  }
98
164
  super._handle(_origin, _sender, _message);
99
165
  }
100
-
101
- // Override to send shares locally instead of assets
102
- function transfer(
103
- address to,
104
- uint256 amount
105
- ) public virtual override returns (bool) {
106
- address owner = _msgSender();
107
- _transfer(owner, to, assetsToShares(amount));
108
- return true;
109
- }
110
-
111
- function shareBalanceOf(address account) public view returns (uint256) {
112
- return super.balanceOf(account);
113
- }
114
-
115
- function balanceOf(
116
- address account
117
- ) public view virtual override returns (uint256) {
118
- uint256 _balance = super.balanceOf(account);
119
- return sharesToAssets(_balance);
120
- }
121
-
122
- function assetsToShares(uint256 _amount) public view returns (uint256) {
123
- return _amount.mulDiv(PRECISION, exchangeRate);
124
- }
125
-
126
- function sharesToAssets(uint256 _shares) public view returns (uint256) {
127
- return _shares.mulDiv(exchangeRate, PRECISION);
128
- }
129
166
  }