@hyperlane-xyz/core 5.4.2-superchain.1 → 5.5.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 (356) hide show
  1. package/contracts/PackageVersioned.sol +1 -1
  2. package/contracts/interfaces/IInterchainSecurityModule.sol +1 -2
  3. package/contracts/interfaces/hooks/IPostDispatchHook.sol +1 -2
  4. package/contracts/isms/TrustedRelayerIsm.sol +9 -0
  5. package/contracts/isms/hook/ArbL2ToL1Ism.sol +1 -0
  6. package/contracts/isms/hook/OPL2ToL1Ism.sol +2 -2
  7. package/contracts/isms/multisig/AbstractWeightedMultisigIsm.sol +8 -4
  8. package/contracts/libs/RateLimited.sol +34 -8
  9. package/contracts/mock/MockMailbox.sol +5 -0
  10. package/contracts/mock/MockOptimism.sol +0 -73
  11. package/contracts/token/extensions/HypERC4626.sol +29 -2
  12. package/contracts/token/extensions/HypERC4626Collateral.sol +26 -2
  13. package/contracts/token/extensions/HypERC4626OwnerCollateral.sol +24 -3
  14. package/dist/buildArtifact.js +1 -1
  15. package/dist/buildArtifact.json +1 -1
  16. package/dist/contracts/hooks/index.d.ts +0 -1
  17. package/dist/contracts/hooks/index.d.ts.map +1 -1
  18. package/dist/contracts/hooks/warp-route/RateLimitedHook.d.ts +24 -10
  19. package/dist/contracts/hooks/warp-route/RateLimitedHook.d.ts.map +1 -1
  20. package/dist/contracts/interfaces/optimism/index.d.ts +0 -2
  21. package/dist/contracts/interfaces/optimism/index.d.ts.map +1 -1
  22. package/dist/contracts/isms/hook/index.d.ts +0 -2
  23. package/dist/contracts/isms/hook/index.d.ts.map +1 -1
  24. package/dist/contracts/isms/warp-route/RateLimitedIsm.d.ts +24 -10
  25. package/dist/contracts/isms/warp-route/RateLimitedIsm.d.ts.map +1 -1
  26. package/dist/contracts/libs/RateLimited.d.ts +24 -10
  27. package/dist/contracts/libs/RateLimited.d.ts.map +1 -1
  28. package/dist/contracts/mock/MockMailbox.d.ts +32 -1
  29. package/dist/contracts/mock/MockMailbox.d.ts.map +1 -1
  30. package/dist/contracts/mock/MockOptimism.sol/index.d.ts +0 -1
  31. package/dist/contracts/mock/MockOptimism.sol/index.d.ts.map +1 -1
  32. package/dist/contracts/token/extensions/HypERC4626.d.ts +30 -1
  33. package/dist/contracts/token/extensions/HypERC4626.d.ts.map +1 -1
  34. package/dist/contracts/token/extensions/HypERC4626Collateral.d.ts +16 -1
  35. package/dist/contracts/token/extensions/HypERC4626Collateral.d.ts.map +1 -1
  36. package/dist/contracts/token/extensions/HypERC4626OwnerCollateral.d.ts +31 -1
  37. package/dist/contracts/token/extensions/HypERC4626OwnerCollateral.d.ts.map +1 -1
  38. package/dist/factories/contracts/AttributeCheckpointFraud__factory.d.ts +1 -1
  39. package/dist/factories/contracts/AttributeCheckpointFraud__factory.js +1 -1
  40. package/dist/factories/contracts/CheckpointFraudProofs__factory.d.ts +1 -1
  41. package/dist/factories/contracts/CheckpointFraudProofs__factory.js +1 -1
  42. package/dist/factories/contracts/Mailbox__factory.d.ts +1 -1
  43. package/dist/factories/contracts/Mailbox__factory.js +1 -1
  44. package/dist/factories/contracts/avs/ECDSAStakeRegistry__factory.d.ts +1 -1
  45. package/dist/factories/contracts/avs/ECDSAStakeRegistry__factory.js +1 -1
  46. package/dist/factories/contracts/avs/HyperlaneServiceManager__factory.d.ts +1 -1
  47. package/dist/factories/contracts/avs/HyperlaneServiceManager__factory.js +1 -1
  48. package/dist/factories/contracts/hooks/ArbL2ToL1Hook__factory.d.ts +1 -1
  49. package/dist/factories/contracts/hooks/ArbL2ToL1Hook__factory.js +1 -1
  50. package/dist/factories/contracts/hooks/MerkleTreeHook__factory.d.ts +1 -1
  51. package/dist/factories/contracts/hooks/MerkleTreeHook__factory.js +1 -1
  52. package/dist/factories/contracts/hooks/OPL2ToL1Hook__factory.d.ts +1 -1
  53. package/dist/factories/contracts/hooks/OPL2ToL1Hook__factory.js +1 -1
  54. package/dist/factories/contracts/hooks/OPStackHook__factory.d.ts +1 -1
  55. package/dist/factories/contracts/hooks/OPStackHook__factory.js +1 -1
  56. package/dist/factories/contracts/hooks/PausableHook__factory.d.ts +1 -1
  57. package/dist/factories/contracts/hooks/PausableHook__factory.js +1 -1
  58. package/dist/factories/contracts/hooks/PolygonPosHook__factory.d.ts +1 -1
  59. package/dist/factories/contracts/hooks/PolygonPosHook__factory.js +1 -1
  60. package/dist/factories/contracts/hooks/ProtocolFee__factory.d.ts +1 -1
  61. package/dist/factories/contracts/hooks/ProtocolFee__factory.js +1 -1
  62. package/dist/factories/contracts/hooks/aggregation/ERC5164Hook__factory.d.ts +1 -1
  63. package/dist/factories/contracts/hooks/aggregation/ERC5164Hook__factory.js +1 -1
  64. package/dist/factories/contracts/hooks/aggregation/StaticAggregationHookFactory__factory.d.ts +1 -1
  65. package/dist/factories/contracts/hooks/aggregation/StaticAggregationHookFactory__factory.js +1 -1
  66. package/dist/factories/contracts/hooks/aggregation/StaticAggregationHook__factory.d.ts +1 -1
  67. package/dist/factories/contracts/hooks/aggregation/StaticAggregationHook__factory.js +1 -1
  68. package/dist/factories/contracts/hooks/igp/InterchainGasPaymaster__factory.d.ts +1 -1
  69. package/dist/factories/contracts/hooks/igp/InterchainGasPaymaster__factory.js +1 -1
  70. package/dist/factories/contracts/hooks/igp/StorageGasOracle__factory.d.ts +1 -1
  71. package/dist/factories/contracts/hooks/igp/StorageGasOracle__factory.js +1 -1
  72. package/dist/factories/contracts/hooks/index.d.ts +0 -1
  73. package/dist/factories/contracts/hooks/index.d.ts.map +1 -1
  74. package/dist/factories/contracts/hooks/index.js +0 -1
  75. package/dist/factories/contracts/hooks/index.js.map +1 -1
  76. package/dist/factories/contracts/hooks/layer-zero/LayerZeroV1Hook__factory.d.ts +1 -1
  77. package/dist/factories/contracts/hooks/layer-zero/LayerZeroV1Hook__factory.js +1 -1
  78. package/dist/factories/contracts/hooks/layer-zero/LayerZeroV2Hook__factory.d.ts +1 -1
  79. package/dist/factories/contracts/hooks/layer-zero/LayerZeroV2Hook__factory.js +1 -1
  80. package/dist/factories/contracts/hooks/routing/DestinationRecipientRoutingHook__factory.d.ts +1 -1
  81. package/dist/factories/contracts/hooks/routing/DestinationRecipientRoutingHook__factory.js +1 -1
  82. package/dist/factories/contracts/hooks/routing/DomainRoutingHook__factory.d.ts +1 -1
  83. package/dist/factories/contracts/hooks/routing/DomainRoutingHook__factory.js +1 -1
  84. package/dist/factories/contracts/hooks/routing/FallbackDomainRoutingHook__factory.d.ts +1 -1
  85. package/dist/factories/contracts/hooks/routing/FallbackDomainRoutingHook__factory.js +1 -1
  86. package/dist/factories/contracts/hooks/warp-route/RateLimitedHook__factory.d.ts +17 -2
  87. package/dist/factories/contracts/hooks/warp-route/RateLimitedHook__factory.d.ts.map +1 -1
  88. package/dist/factories/contracts/hooks/warp-route/RateLimitedHook__factory.js +21 -2
  89. package/dist/factories/contracts/hooks/warp-route/RateLimitedHook__factory.js.map +1 -1
  90. package/dist/factories/contracts/interfaces/optimism/index.d.ts +0 -2
  91. package/dist/factories/contracts/interfaces/optimism/index.d.ts.map +1 -1
  92. package/dist/factories/contracts/interfaces/optimism/index.js +0 -2
  93. package/dist/factories/contracts/interfaces/optimism/index.js.map +1 -1
  94. package/dist/factories/contracts/isms/NoopIsm__factory.d.ts +1 -1
  95. package/dist/factories/contracts/isms/NoopIsm__factory.js +1 -1
  96. package/dist/factories/contracts/isms/PausableIsm__factory.d.ts +1 -1
  97. package/dist/factories/contracts/isms/PausableIsm__factory.js +1 -1
  98. package/dist/factories/contracts/isms/TrustedRelayerIsm__factory.d.ts +1 -1
  99. package/dist/factories/contracts/isms/TrustedRelayerIsm__factory.d.ts.map +1 -1
  100. package/dist/factories/contracts/isms/TrustedRelayerIsm__factory.js +1 -1
  101. package/dist/factories/contracts/isms/TrustedRelayerIsm__factory.js.map +1 -1
  102. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsmFactory__factory.d.ts +1 -1
  103. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsmFactory__factory.js +1 -1
  104. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsm__factory.d.ts +1 -1
  105. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsm__factory.js +1 -1
  106. package/dist/factories/contracts/isms/hook/ArbL2ToL1Ism__factory.d.ts +1 -1
  107. package/dist/factories/contracts/isms/hook/ArbL2ToL1Ism__factory.d.ts.map +1 -1
  108. package/dist/factories/contracts/isms/hook/ArbL2ToL1Ism__factory.js +1 -1
  109. package/dist/factories/contracts/isms/hook/ArbL2ToL1Ism__factory.js.map +1 -1
  110. package/dist/factories/contracts/isms/hook/ERC5164Ism__factory.d.ts +1 -1
  111. package/dist/factories/contracts/isms/hook/ERC5164Ism__factory.js +1 -1
  112. package/dist/factories/contracts/isms/hook/OPL2ToL1Ism__factory.d.ts +1 -1
  113. package/dist/factories/contracts/isms/hook/OPL2ToL1Ism__factory.d.ts.map +1 -1
  114. package/dist/factories/contracts/isms/hook/OPL2ToL1Ism__factory.js +1 -1
  115. package/dist/factories/contracts/isms/hook/OPL2ToL1Ism__factory.js.map +1 -1
  116. package/dist/factories/contracts/isms/hook/OPStackIsm__factory.d.ts +1 -1
  117. package/dist/factories/contracts/isms/hook/OPStackIsm__factory.js +1 -1
  118. package/dist/factories/contracts/isms/hook/PolygonPosIsm__factory.d.ts +1 -1
  119. package/dist/factories/contracts/isms/hook/PolygonPosIsm__factory.js +1 -1
  120. package/dist/factories/contracts/isms/hook/index.d.ts +0 -1
  121. package/dist/factories/contracts/isms/hook/index.d.ts.map +1 -1
  122. package/dist/factories/contracts/isms/hook/index.js +0 -1
  123. package/dist/factories/contracts/isms/hook/index.js.map +1 -1
  124. package/dist/factories/contracts/isms/hook/layer-zero/LayerZeroV2Ism__factory.d.ts +1 -1
  125. package/dist/factories/contracts/isms/hook/layer-zero/LayerZeroV2Ism__factory.js +1 -1
  126. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsmFactory__factory.d.ts +1 -1
  127. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsmFactory__factory.js +1 -1
  128. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm__factory.d.ts +1 -1
  129. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm__factory.js +1 -1
  130. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsmFactory__factory.d.ts +1 -1
  131. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsmFactory__factory.js +1 -1
  132. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm__factory.d.ts +1 -1
  133. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm__factory.js +1 -1
  134. package/dist/factories/contracts/isms/multisig/ValidatorAnnounce__factory.d.ts +1 -1
  135. package/dist/factories/contracts/isms/multisig/ValidatorAnnounce__factory.js +1 -1
  136. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsmFactory__factory.d.ts +1 -1
  137. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsmFactory__factory.d.ts.map +1 -1
  138. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsmFactory__factory.js +1 -1
  139. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsmFactory__factory.js.map +1 -1
  140. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsm__factory.d.ts +1 -1
  141. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsm__factory.d.ts.map +1 -1
  142. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsm__factory.js +1 -1
  143. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsm__factory.js.map +1 -1
  144. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsmFactory__factory.d.ts +1 -1
  145. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsmFactory__factory.d.ts.map +1 -1
  146. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsmFactory__factory.js +1 -1
  147. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsmFactory__factory.js.map +1 -1
  148. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsm__factory.d.ts +1 -1
  149. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsm__factory.d.ts.map +1 -1
  150. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsm__factory.js +1 -1
  151. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsm__factory.js.map +1 -1
  152. package/dist/factories/contracts/isms/routing/DefaultFallbackRoutingIsm__factory.d.ts +1 -1
  153. package/dist/factories/contracts/isms/routing/DefaultFallbackRoutingIsm__factory.js +1 -1
  154. package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory.sol/DomainRoutingIsmFactory__factory.d.ts +1 -1
  155. package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory.sol/DomainRoutingIsmFactory__factory.js +1 -1
  156. package/dist/factories/contracts/isms/routing/DomainRoutingIsm__factory.d.ts +1 -1
  157. package/dist/factories/contracts/isms/routing/DomainRoutingIsm__factory.js +1 -1
  158. package/dist/factories/contracts/isms/routing/InterchainAccountIsm__factory.d.ts +1 -1
  159. package/dist/factories/contracts/isms/routing/InterchainAccountIsm__factory.js +1 -1
  160. package/dist/factories/contracts/isms/warp-route/RateLimitedIsm__factory.d.ts +17 -2
  161. package/dist/factories/contracts/isms/warp-route/RateLimitedIsm__factory.d.ts.map +1 -1
  162. package/dist/factories/contracts/isms/warp-route/RateLimitedIsm__factory.js +21 -2
  163. package/dist/factories/contracts/isms/warp-route/RateLimitedIsm__factory.js.map +1 -1
  164. package/dist/factories/contracts/libs/RateLimited__factory.d.ts +17 -2
  165. package/dist/factories/contracts/libs/RateLimited__factory.d.ts.map +1 -1
  166. package/dist/factories/contracts/libs/RateLimited__factory.js +21 -2
  167. package/dist/factories/contracts/libs/RateLimited__factory.js.map +1 -1
  168. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.d.ts +1 -1
  169. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.js +1 -1
  170. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.d.ts +1 -1
  171. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.js +1 -1
  172. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.d.ts +1 -1
  173. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.js +1 -1
  174. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.d.ts +1 -1
  175. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.js +1 -1
  176. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.d.ts +1 -1
  177. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.js +1 -1
  178. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.d.ts +1 -1
  179. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.d.ts.map +1 -1
  180. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.js +1 -1
  181. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.js.map +1 -1
  182. package/dist/factories/contracts/mock/MockMailbox__factory.d.ts +11 -1
  183. package/dist/factories/contracts/mock/MockMailbox__factory.d.ts.map +1 -1
  184. package/dist/factories/contracts/mock/MockMailbox__factory.js +14 -1
  185. package/dist/factories/contracts/mock/MockMailbox__factory.js.map +1 -1
  186. package/dist/factories/contracts/mock/MockOptimism.sol/MockOptimismMessenger__factory.d.ts +1 -1
  187. package/dist/factories/contracts/mock/MockOptimism.sol/MockOptimismMessenger__factory.js +1 -1
  188. package/dist/factories/contracts/mock/MockOptimism.sol/MockOptimismPortal__factory.d.ts +1 -1
  189. package/dist/factories/contracts/mock/MockOptimism.sol/MockOptimismPortal__factory.js +1 -1
  190. package/dist/factories/contracts/mock/MockOptimism.sol/index.d.ts +0 -1
  191. package/dist/factories/contracts/mock/MockOptimism.sol/index.d.ts.map +1 -1
  192. package/dist/factories/contracts/mock/MockOptimism.sol/index.js +0 -1
  193. package/dist/factories/contracts/mock/MockOptimism.sol/index.js.map +1 -1
  194. package/dist/factories/contracts/test/LightTestRecipient__factory.d.ts +1 -1
  195. package/dist/factories/contracts/test/LightTestRecipient__factory.js +1 -1
  196. package/dist/factories/contracts/test/TestGasRouter__factory.d.ts +1 -1
  197. package/dist/factories/contracts/test/TestGasRouter__factory.js +1 -1
  198. package/dist/factories/contracts/test/TestInterchainGasPaymaster__factory.d.ts +1 -1
  199. package/dist/factories/contracts/test/TestInterchainGasPaymaster__factory.js +1 -1
  200. package/dist/factories/contracts/test/TestIsm__factory.d.ts +1 -1
  201. package/dist/factories/contracts/test/TestIsm__factory.js +1 -1
  202. package/dist/factories/contracts/test/TestMailbox__factory.d.ts +1 -1
  203. package/dist/factories/contracts/test/TestMailbox__factory.js +1 -1
  204. package/dist/factories/contracts/test/TestMerkleTreeHook__factory.d.ts +1 -1
  205. package/dist/factories/contracts/test/TestMerkleTreeHook__factory.js +1 -1
  206. package/dist/factories/contracts/test/TestPostDispatchHook__factory.d.ts +1 -1
  207. package/dist/factories/contracts/test/TestPostDispatchHook__factory.js +1 -1
  208. package/dist/factories/contracts/test/TestQuerySender__factory.d.ts +1 -1
  209. package/dist/factories/contracts/test/TestQuerySender__factory.js +1 -1
  210. package/dist/factories/contracts/test/TestQuery__factory.d.ts +1 -1
  211. package/dist/factories/contracts/test/TestQuery__factory.js +1 -1
  212. package/dist/factories/contracts/test/TestRecipient__factory.d.ts +1 -1
  213. package/dist/factories/contracts/test/TestRecipient__factory.js +1 -1
  214. package/dist/factories/contracts/test/TestRemoteChallenger__factory.d.ts +1 -1
  215. package/dist/factories/contracts/test/TestRemoteChallenger__factory.js +1 -1
  216. package/dist/factories/contracts/test/TestRouter__factory.d.ts +1 -1
  217. package/dist/factories/contracts/test/TestRouter__factory.js +1 -1
  218. package/dist/factories/contracts/test/TestSendReceiver__factory.d.ts +1 -1
  219. package/dist/factories/contracts/test/TestSendReceiver__factory.js +1 -1
  220. package/dist/factories/contracts/test/avs/TestHyperlaneServiceManager__factory.d.ts +1 -1
  221. package/dist/factories/contracts/test/avs/TestHyperlaneServiceManager__factory.js +1 -1
  222. package/dist/factories/contracts/token/HypERC20Collateral__factory.d.ts +1 -1
  223. package/dist/factories/contracts/token/HypERC20Collateral__factory.js +1 -1
  224. package/dist/factories/contracts/token/HypERC20__factory.d.ts +1 -1
  225. package/dist/factories/contracts/token/HypERC20__factory.js +1 -1
  226. package/dist/factories/contracts/token/HypERC721Collateral__factory.d.ts +1 -1
  227. package/dist/factories/contracts/token/HypERC721Collateral__factory.js +1 -1
  228. package/dist/factories/contracts/token/HypERC721__factory.d.ts +1 -1
  229. package/dist/factories/contracts/token/HypERC721__factory.js +1 -1
  230. package/dist/factories/contracts/token/HypNative__factory.d.ts +1 -1
  231. package/dist/factories/contracts/token/HypNative__factory.js +1 -1
  232. package/dist/factories/contracts/token/extensions/FastHypERC20Collateral__factory.d.ts +1 -1
  233. package/dist/factories/contracts/token/extensions/FastHypERC20Collateral__factory.js +1 -1
  234. package/dist/factories/contracts/token/extensions/FastHypERC20__factory.d.ts +1 -1
  235. package/dist/factories/contracts/token/extensions/FastHypERC20__factory.js +1 -1
  236. package/dist/factories/contracts/token/extensions/HypERC4626Collateral__factory.d.ts +11 -1
  237. package/dist/factories/contracts/token/extensions/HypERC4626Collateral__factory.d.ts.map +1 -1
  238. package/dist/factories/contracts/token/extensions/HypERC4626Collateral__factory.js +14 -1
  239. package/dist/factories/contracts/token/extensions/HypERC4626Collateral__factory.js.map +1 -1
  240. package/dist/factories/contracts/token/extensions/HypERC4626OwnerCollateral__factory.d.ts +21 -1
  241. package/dist/factories/contracts/token/extensions/HypERC4626OwnerCollateral__factory.d.ts.map +1 -1
  242. package/dist/factories/contracts/token/extensions/HypERC4626OwnerCollateral__factory.js +27 -1
  243. package/dist/factories/contracts/token/extensions/HypERC4626OwnerCollateral__factory.js.map +1 -1
  244. package/dist/factories/contracts/token/extensions/HypERC4626__factory.d.ts +26 -1
  245. package/dist/factories/contracts/token/extensions/HypERC4626__factory.d.ts.map +1 -1
  246. package/dist/factories/contracts/token/extensions/HypERC4626__factory.js +33 -1
  247. package/dist/factories/contracts/token/extensions/HypERC4626__factory.js.map +1 -1
  248. package/dist/factories/contracts/token/extensions/HypERC721URICollateral__factory.d.ts +1 -1
  249. package/dist/factories/contracts/token/extensions/HypERC721URICollateral__factory.js +1 -1
  250. package/dist/factories/contracts/token/extensions/HypERC721URIStorage__factory.d.ts +1 -1
  251. package/dist/factories/contracts/token/extensions/HypERC721URIStorage__factory.js +1 -1
  252. package/dist/factories/contracts/token/extensions/HypFiatToken__factory.d.ts +1 -1
  253. package/dist/factories/contracts/token/extensions/HypFiatToken__factory.js +1 -1
  254. package/dist/factories/contracts/token/extensions/HypNativeScaled__factory.d.ts +1 -1
  255. package/dist/factories/contracts/token/extensions/HypNativeScaled__factory.js +1 -1
  256. package/dist/factories/contracts/token/extensions/HypXERC20Lockbox__factory.d.ts +1 -1
  257. package/dist/factories/contracts/token/extensions/HypXERC20Lockbox__factory.js +1 -1
  258. package/dist/factories/contracts/token/extensions/HypXERC20__factory.d.ts +1 -1
  259. package/dist/factories/contracts/token/extensions/HypXERC20__factory.js +1 -1
  260. package/dist/index.d.ts +0 -10
  261. package/dist/index.d.ts.map +1 -1
  262. package/dist/index.js +0 -5
  263. package/dist/index.js.map +1 -1
  264. package/package.json +2 -2
  265. package/contracts/hooks/SuperchainHook.sol +0 -82
  266. package/contracts/interfaces/optimism/ICrossL2Inbox.sol +0 -60
  267. package/contracts/interfaces/optimism/IL2toL2CrossDomainMessenger.sol +0 -68
  268. package/contracts/isms/hook/SuperchainIsm.sol +0 -91
  269. package/dist/contracts/hooks/SuperchainHook.d.ts +0 -411
  270. package/dist/contracts/hooks/SuperchainHook.d.ts.map +0 -1
  271. package/dist/contracts/hooks/SuperchainHook.js +0 -2
  272. package/dist/contracts/hooks/SuperchainHook.js.map +0 -1
  273. package/dist/contracts/interfaces/optimism/ICrossL2Inbox.d.ts +0 -233
  274. package/dist/contracts/interfaces/optimism/ICrossL2Inbox.d.ts.map +0 -1
  275. package/dist/contracts/interfaces/optimism/ICrossL2Inbox.js +0 -2
  276. package/dist/contracts/interfaces/optimism/ICrossL2Inbox.js.map +0 -1
  277. package/dist/contracts/interfaces/optimism/IL2toL2CrossDomainMessenger.d.ts +0 -209
  278. package/dist/contracts/interfaces/optimism/IL2toL2CrossDomainMessenger.d.ts.map +0 -1
  279. package/dist/contracts/interfaces/optimism/IL2toL2CrossDomainMessenger.js +0 -2
  280. package/dist/contracts/interfaces/optimism/IL2toL2CrossDomainMessenger.js.map +0 -1
  281. package/dist/contracts/isms/hook/SuperchainIsm.sol/OPL2ToL1Ism.d.ts +0 -273
  282. package/dist/contracts/isms/hook/SuperchainIsm.sol/OPL2ToL1Ism.d.ts.map +0 -1
  283. package/dist/contracts/isms/hook/SuperchainIsm.sol/OPL2ToL1Ism.js +0 -2
  284. package/dist/contracts/isms/hook/SuperchainIsm.sol/OPL2ToL1Ism.js.map +0 -1
  285. package/dist/contracts/isms/hook/SuperchainIsm.sol/OPStackIsm.d.ts +0 -288
  286. package/dist/contracts/isms/hook/SuperchainIsm.sol/OPStackIsm.d.ts.map +0 -1
  287. package/dist/contracts/isms/hook/SuperchainIsm.sol/OPStackIsm.js +0 -2
  288. package/dist/contracts/isms/hook/SuperchainIsm.sol/OPStackIsm.js.map +0 -1
  289. package/dist/contracts/isms/hook/SuperchainIsm.sol/SuperchainISM.d.ts +0 -273
  290. package/dist/contracts/isms/hook/SuperchainIsm.sol/SuperchainISM.d.ts.map +0 -1
  291. package/dist/contracts/isms/hook/SuperchainIsm.sol/SuperchainISM.js +0 -2
  292. package/dist/contracts/isms/hook/SuperchainIsm.sol/SuperchainISM.js.map +0 -1
  293. package/dist/contracts/isms/hook/SuperchainIsm.sol/index.d.ts +0 -2
  294. package/dist/contracts/isms/hook/SuperchainIsm.sol/index.d.ts.map +0 -1
  295. package/dist/contracts/isms/hook/SuperchainIsm.sol/index.js +0 -2
  296. package/dist/contracts/isms/hook/SuperchainIsm.sol/index.js.map +0 -1
  297. package/dist/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/AbstractRpcMultisigIsm.d.ts +0 -110
  298. package/dist/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/AbstractRpcMultisigIsm.d.ts.map +0 -1
  299. package/dist/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/AbstractRpcMultisigIsm.js +0 -2
  300. package/dist/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/AbstractRpcMultisigIsm.js.map +0 -1
  301. package/dist/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/RpcMultisigIsm.d.ts +0 -125
  302. package/dist/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/RpcMultisigIsm.d.ts.map +0 -1
  303. package/dist/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/RpcMultisigIsm.js +0 -2
  304. package/dist/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/RpcMultisigIsm.js.map +0 -1
  305. package/dist/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/index.d.ts +0 -3
  306. package/dist/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/index.d.ts.map +0 -1
  307. package/dist/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/index.js +0 -2
  308. package/dist/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/index.js.map +0 -1
  309. package/dist/contracts/mock/MockOptimism.sol/MockL2toL2CrossDomainMessenger.d.ts +0 -224
  310. package/dist/contracts/mock/MockOptimism.sol/MockL2toL2CrossDomainMessenger.d.ts.map +0 -1
  311. package/dist/contracts/mock/MockOptimism.sol/MockL2toL2CrossDomainMessenger.js +0 -2
  312. package/dist/contracts/mock/MockOptimism.sol/MockL2toL2CrossDomainMessenger.js.map +0 -1
  313. package/dist/factories/contracts/hooks/SuperchainHook__factory.d.ts +0 -262
  314. package/dist/factories/contracts/hooks/SuperchainHook__factory.d.ts.map +0 -1
  315. package/dist/factories/contracts/hooks/SuperchainHook__factory.js +0 -352
  316. package/dist/factories/contracts/hooks/SuperchainHook__factory.js.map +0 -1
  317. package/dist/factories/contracts/interfaces/optimism/ICrossL2Inbox__factory.d.ts +0 -143
  318. package/dist/factories/contracts/interfaces/optimism/ICrossL2Inbox__factory.d.ts.map +0 -1
  319. package/dist/factories/contracts/interfaces/optimism/ICrossL2Inbox__factory.js +0 -189
  320. package/dist/factories/contracts/interfaces/optimism/ICrossL2Inbox__factory.js.map +0 -1
  321. package/dist/factories/contracts/interfaces/optimism/IL2toL2CrossDomainMessenger__factory.d.ts +0 -140
  322. package/dist/factories/contracts/interfaces/optimism/IL2toL2CrossDomainMessenger__factory.d.ts.map +0 -1
  323. package/dist/factories/contracts/interfaces/optimism/IL2toL2CrossDomainMessenger__factory.js +0 -185
  324. package/dist/factories/contracts/interfaces/optimism/IL2toL2CrossDomainMessenger__factory.js.map +0 -1
  325. package/dist/factories/contracts/isms/hook/SuperchainIsm.sol/OPL2ToL1Ism__factory.d.ts +0 -165
  326. package/dist/factories/contracts/isms/hook/SuperchainIsm.sol/OPL2ToL1Ism__factory.d.ts.map +0 -1
  327. package/dist/factories/contracts/isms/hook/SuperchainIsm.sol/OPL2ToL1Ism__factory.js +0 -229
  328. package/dist/factories/contracts/isms/hook/SuperchainIsm.sol/OPL2ToL1Ism__factory.js.map +0 -1
  329. package/dist/factories/contracts/isms/hook/SuperchainIsm.sol/OPStackIsm__factory.d.ts +0 -175
  330. package/dist/factories/contracts/isms/hook/SuperchainIsm.sol/OPStackIsm__factory.d.ts.map +0 -1
  331. package/dist/factories/contracts/isms/hook/SuperchainIsm.sol/OPStackIsm__factory.js +0 -242
  332. package/dist/factories/contracts/isms/hook/SuperchainIsm.sol/OPStackIsm__factory.js.map +0 -1
  333. package/dist/factories/contracts/isms/hook/SuperchainIsm.sol/SuperchainISM__factory.d.ts +0 -165
  334. package/dist/factories/contracts/isms/hook/SuperchainIsm.sol/SuperchainISM__factory.d.ts.map +0 -1
  335. package/dist/factories/contracts/isms/hook/SuperchainIsm.sol/SuperchainISM__factory.js +0 -229
  336. package/dist/factories/contracts/isms/hook/SuperchainIsm.sol/SuperchainISM__factory.js.map +0 -1
  337. package/dist/factories/contracts/isms/hook/SuperchainIsm.sol/index.d.ts +0 -2
  338. package/dist/factories/contracts/isms/hook/SuperchainIsm.sol/index.d.ts.map +0 -1
  339. package/dist/factories/contracts/isms/hook/SuperchainIsm.sol/index.js +0 -5
  340. package/dist/factories/contracts/isms/hook/SuperchainIsm.sol/index.js.map +0 -1
  341. package/dist/factories/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/AbstractRpcMultisigIsm__factory.d.ts +0 -79
  342. package/dist/factories/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/AbstractRpcMultisigIsm__factory.d.ts.map +0 -1
  343. package/dist/factories/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/AbstractRpcMultisigIsm__factory.js +0 -109
  344. package/dist/factories/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/AbstractRpcMultisigIsm__factory.js.map +0 -1
  345. package/dist/factories/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/RpcMultisigIsm__factory.d.ts +0 -121
  346. package/dist/factories/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/RpcMultisigIsm__factory.d.ts.map +0 -1
  347. package/dist/factories/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/RpcMultisigIsm__factory.js +0 -171
  348. package/dist/factories/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/RpcMultisigIsm__factory.js.map +0 -1
  349. package/dist/factories/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/index.d.ts +0 -3
  350. package/dist/factories/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/index.d.ts.map +0 -1
  351. package/dist/factories/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/index.js +0 -6
  352. package/dist/factories/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/index.js.map +0 -1
  353. package/dist/factories/contracts/mock/MockOptimism.sol/MockL2toL2CrossDomainMessenger__factory.d.ts +0 -174
  354. package/dist/factories/contracts/mock/MockOptimism.sol/MockL2toL2CrossDomainMessenger__factory.d.ts.map +0 -1
  355. package/dist/factories/contracts/mock/MockOptimism.sol/MockL2toL2CrossDomainMessenger__factory.js +0 -237
  356. package/dist/factories/contracts/mock/MockOptimism.sol/MockL2toL2CrossDomainMessenger__factory.js.map +0 -1
@@ -7,5 +7,5 @@ pragma solidity >=0.6.11;
7
7
  **/
8
8
  abstract contract PackageVersioned {
9
9
  // GENERATED CODE - DO NOT EDIT
10
- string public constant PACKAGE_VERSION = "5.4.2-superchain.0";
10
+ string public constant PACKAGE_VERSION = "5.5.0";
11
11
  }
@@ -14,8 +14,7 @@ interface IInterchainSecurityModule {
14
14
  ARB_L2_TO_L1,
15
15
  WEIGHTED_MERKLE_ROOT_MULTISIG,
16
16
  WEIGHTED_MESSAGE_ID_MULTISIG,
17
- OP_L2_TO_L1,
18
- SUPERCHAIN
17
+ OP_L2_TO_L1
19
18
  }
20
19
 
21
20
  /**
@@ -27,8 +27,7 @@ interface IPostDispatchHook {
27
27
  LAYER_ZERO_V1,
28
28
  RATE_LIMITED,
29
29
  ARB_L2_TO_L1,
30
- OP_L2_TO_L1,
31
- SUPERCHAIN
30
+ OP_L2_TO_L1
32
31
  }
33
32
 
34
33
  /**
@@ -3,6 +3,7 @@ pragma solidity >=0.8.0;
3
3
 
4
4
  // ============ Internal Imports ============
5
5
  import {IInterchainSecurityModule} from "../interfaces/IInterchainSecurityModule.sol";
6
+ import {Address} from "@openzeppelin/contracts/utils/Address.sol";
6
7
  import {Message} from "../libs/Message.sol";
7
8
  import {Mailbox} from "../Mailbox.sol";
8
9
  import {PackageVersioned} from "contracts/PackageVersioned.sol";
@@ -15,6 +16,14 @@ contract TrustedRelayerIsm is IInterchainSecurityModule, PackageVersioned {
15
16
  address public immutable trustedRelayer;
16
17
 
17
18
  constructor(address _mailbox, address _trustedRelayer) {
19
+ require(
20
+ _trustedRelayer != address(0),
21
+ "TrustedRelayerIsm: invalid relayer"
22
+ );
23
+ require(
24
+ Address.isContract(_mailbox),
25
+ "TrustedRelayerIsm: invalid mailbox"
26
+ );
18
27
  mailbox = Mailbox(_mailbox);
19
28
  trustedRelayer = _trustedRelayer;
20
29
  }
@@ -63,6 +63,7 @@ contract ArbL2ToL1Ism is
63
63
  ) external override returns (bool) {
64
64
  if (!isVerified(message)) {
65
65
  _verifyWithOutboxCall(metadata, message);
66
+ require(isVerified(message), "ArbL2ToL1Ism: message not verified");
66
67
  }
67
68
  releaseValueToRecipient(message);
68
69
  return true;
@@ -66,9 +66,9 @@ contract OPL2ToL1Ism is
66
66
  bytes calldata metadata,
67
67
  bytes calldata message
68
68
  ) external override returns (bool) {
69
- bool verified = isVerified(message);
70
- if (!verified) {
69
+ if (!isVerified(message)) {
71
70
  _verifyWithPortalCall(metadata, message);
71
+ require(isVerified(message), "OPL2ToL1Ism: message not verified");
72
72
  }
73
73
  releaseValueToRecipient(message);
74
74
  return true;
@@ -73,11 +73,14 @@ abstract contract AbstractStaticWeightedMultisigIsm is
73
73
 
74
74
  // assumes that signatures are ordered by validator
75
75
  for (
76
- uint256 i = 0;
77
- _totalWeight < _thresholdWeight && i < _validatorCount;
78
- ++i
76
+ uint256 signatureIndex = 0;
77
+ _totalWeight < _thresholdWeight && signatureIndex < _validatorCount;
78
+ ++signatureIndex
79
79
  ) {
80
- address _signer = ECDSA.recover(_digest, signatureAt(_metadata, i));
80
+ address _signer = ECDSA.recover(
81
+ _digest,
82
+ signatureAt(_metadata, signatureIndex)
83
+ );
81
84
  // loop through remaining validators until we find a match
82
85
  while (
83
86
  _validatorIndex < _validatorCount &&
@@ -90,6 +93,7 @@ abstract contract AbstractStaticWeightedMultisigIsm is
90
93
 
91
94
  // add the weight of the current validator
92
95
  _totalWeight += _validators[_validatorIndex].weight;
96
+ ++_validatorIndex;
93
97
  }
94
98
  require(
95
99
  _totalWeight >= _thresholdWeight,
@@ -1,5 +1,19 @@
1
1
  // SPDX-License-Identifier: MIT OR Apache-2.0
2
2
  pragma solidity >=0.8.0;
3
+
4
+ /*@@@@@@@ @@@@@@@@@
5
+ @@@@@@@@@ @@@@@@@@@
6
+ @@@@@@@@@ @@@@@@@@@
7
+ @@@@@@@@@ @@@@@@@@@
8
+ @@@@@@@@@@@@@@@@@@@@@@@@@
9
+ @@@@@ HYPERLANE @@@@@@@
10
+ @@@@@@@@@@@@@@@@@@@@@@@@@
11
+ @@@@@@@@@ @@@@@@@@@
12
+ @@@@@@@@@ @@@@@@@@@
13
+ @@@@@@@@@ @@@@@@@@@
14
+ @@@@@@@@@ @@@@@@@@*/
15
+
16
+ // ============ External Imports ============
3
17
  import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";
4
18
 
5
19
  /**
@@ -7,16 +21,26 @@ import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/Own
7
21
  * @notice A contract used to keep track of an address sender's token amount limits.
8
22
  * @dev Implements a modified token bucket algorithm where the bucket is full in the beginning and gradually refills
9
23
  * See: https://dev.to/satrobit/rate-limiting-using-the-token-bucket-algorithm-3cjh
10
- **/
24
+ *
25
+ */
11
26
  contract RateLimited is OwnableUpgradeable {
12
27
  uint256 public constant DURATION = 1 days; // 86400
13
- uint256 public filledLevel; /// @notice Current filled level
14
- uint256 public refillRate; /// @notice Tokens per second refill rate
15
- uint256 public lastUpdated; /// @notice Timestamp of the last time an action has been taken TODO prob can be uint40
28
+ /// @notice Current filled level
29
+ uint256 public filledLevel;
30
+ /// @notice Tokens per second refill rate
31
+ uint256 public refillRate;
32
+ /// @notice Timestamp of the last time an action has been taken
33
+ uint256 public lastUpdated;
16
34
 
17
35
  event RateLimitSet(uint256 _oldCapacity, uint256 _newCapacity);
18
36
 
37
+ event ConsumedFilledLevel(uint256 filledLevel, uint256 lastUpdated);
38
+
19
39
  constructor(uint256 _capacity) {
40
+ require(
41
+ _capacity >= DURATION,
42
+ "Capacity must be greater than DURATION"
43
+ );
20
44
  _transferOwnership(msg.sender);
21
45
  setRefillRate(_capacity);
22
46
  filledLevel = _capacity;
@@ -88,20 +112,22 @@ contract RateLimited is OwnableUpgradeable {
88
112
 
89
113
  /**
90
114
  * Validate an amount and decreases the currentCapacity
91
- * @param _newAmount The amount to consume the fill level
115
+ * @param _consumedAmount The amount to consume the fill level
92
116
  * @return The new filled level
93
117
  */
94
118
  function validateAndConsumeFilledLevel(
95
- uint256 _newAmount
119
+ uint256 _consumedAmount
96
120
  ) public returns (uint256) {
97
121
  uint256 adjustedFilledLevel = calculateCurrentLevel();
98
- require(_newAmount <= adjustedFilledLevel, "RateLimitExceeded");
122
+ require(_consumedAmount <= adjustedFilledLevel, "RateLimitExceeded");
99
123
 
100
124
  // Reduce the filledLevel and update lastUpdated
101
- uint256 _filledLevel = adjustedFilledLevel - _newAmount;
125
+ uint256 _filledLevel = adjustedFilledLevel - _consumedAmount;
102
126
  filledLevel = _filledLevel;
103
127
  lastUpdated = block.timestamp;
104
128
 
129
+ emit ConsumedFilledLevel(filledLevel, lastUpdated);
130
+
105
131
  return _filledLevel;
106
132
  }
107
133
  }
@@ -77,4 +77,9 @@ contract MockMailbox is Mailbox {
77
77
  Mailbox(address(this)).process{value: msg.value}("", _message);
78
78
  inboundProcessedNonce++;
79
79
  }
80
+
81
+ function processInboundMessage(uint32 _nonce) public {
82
+ bytes memory _message = inboundMessages[_nonce];
83
+ Mailbox(address(this)).process("", _message);
84
+ }
80
85
  }
@@ -4,10 +4,7 @@ pragma solidity ^0.8.0;
4
4
  import {CallLib} from "../middleware/libs/Call.sol";
5
5
  import {TypeCasts} from "../libs/TypeCasts.sol";
6
6
  import {ICrossDomainMessenger} from "../interfaces/optimism/ICrossDomainMessenger.sol";
7
- import {IL2toL2CrossDomainMessenger} from "../interfaces/optimism/IL2toL2CrossDomainMessenger.sol";
8
- import {ICrossL2Inbox} from "../interfaces/optimism/ICrossL2Inbox.sol";
9
7
  import {IOptimismPortal} from "../interfaces/optimism/IOptimismPortal.sol";
10
- import {Address} from "@openzeppelin/contracts/utils/Address.sol";
11
8
 
12
9
  // for both L1 and L2
13
10
  contract MockOptimismMessenger is ICrossDomainMessenger {
@@ -62,73 +59,3 @@ contract MockOptimismPortal is IOptimismPortal {
62
59
  CallLib.call(call);
63
60
  }
64
61
  }
65
-
66
- contract MockL2toL2CrossDomainMessenger is IL2toL2CrossDomainMessenger {
67
- uint256 public messageNonce;
68
- bool passMessages = true;
69
- address originCaller;
70
-
71
- function encodeCall(
72
- address _originCaller,
73
- address target,
74
- bytes calldata call
75
- ) public view returns (bytes memory) {
76
- return abi.encode(_originCaller, target, call);
77
- }
78
-
79
- function sendMessage(
80
- uint256 _destination,
81
- address _target,
82
- bytes calldata _message
83
- ) external returns (bytes32 msgHash_) {}
84
-
85
- /// @notice Relays a message that was sent by the other CrossDomainMessenger contract. Can only
86
- /// be executed via cross-chain call from the other messenger OR if the message was
87
- /// already received once and is currently being replayed.
88
- /// @param _id Identifier of the SentMessage event to be relayed
89
- /// @param _sentMessage Message payload of the `SentMessage` event
90
- function relayMessage(
91
- ICrossL2Inbox.Identifier calldata _id,
92
- bytes calldata _sentMessage
93
- ) external payable {
94
- require(
95
- passMessages,
96
- "MockL2toL2CrossDomainMessenger: passMessages is false"
97
- );
98
- (address _originCaller, address target, bytes memory call) = abi.decode(
99
- _sentMessage,
100
- (address, address, bytes)
101
- );
102
- originCaller = _originCaller;
103
- Address.functionCall(target, call);
104
- }
105
-
106
- /// @notice Mapping of message hashes to boolean receipt values. Note that a message will only
107
- /// be present in this mapping if it has successfully been relayed on this chain, and
108
- /// can therefore not be relayed again.
109
- /// @param _msgHash message hash to check.
110
- /// @return Returns true if the message corresponding to the `_msgHash` was successfully relayed.
111
- function successfulMessages(bytes32 _msgHash) external view returns (bool) {
112
- return true;
113
- }
114
-
115
- /// @notice Retrieves the sender of the current cross domain message.
116
- /// @return sender_ Address of the sender of the current cross domain message.
117
- function crossDomainMessageSender()
118
- external
119
- view
120
- returns (address sender_)
121
- {
122
- return originCaller;
123
- }
124
-
125
- /// @notice Retrieves the source of the current cross domain message.
126
- /// @return source_ Chain ID of the source of the current cross domain message.
127
- function crossDomainMessageSource()
128
- external
129
- view
130
- returns (uint256 source_)
131
- {
132
- return 0;
133
- }
134
- }
@@ -1,13 +1,28 @@
1
1
  // SPDX-License-Identifier: MIT OR Apache-2.0
2
2
  pragma solidity >=0.8.0;
3
3
 
4
+ /*@@@@@@@ @@@@@@@@@
5
+ @@@@@@@@@ @@@@@@@@@
6
+ @@@@@@@@@ @@@@@@@@@
7
+ @@@@@@@@@ @@@@@@@@@
8
+ @@@@@@@@@@@@@@@@@@@@@@@@@
9
+ @@@@@ HYPERLANE @@@@@@@
10
+ @@@@@@@@@@@@@@@@@@@@@@@@@
11
+ @@@@@@@@@ @@@@@@@@@
12
+ @@@@@@@@@ @@@@@@@@@
13
+ @@@@@@@@@ @@@@@@@@@
14
+ @@@@@@@@@ @@@@@@@@*/
15
+
16
+ // ============ Internal Imports ============
4
17
  import {IXERC20} from "../interfaces/IXERC20.sol";
5
18
  import {HypERC20} from "../HypERC20.sol";
6
- import {Math} from "@openzeppelin/contracts/utils/math/Math.sol";
7
19
  import {Message} from "../../libs/Message.sol";
8
20
  import {TokenMessage} from "../libs/TokenMessage.sol";
9
21
  import {TokenRouter} from "../libs/TokenRouter.sol";
10
22
 
23
+ // ============ External Imports ============
24
+ import {Math} from "@openzeppelin/contracts/utils/math/Math.sol";
25
+
11
26
  /**
12
27
  * @title Hyperlane ERC20 Rebasing Token
13
28
  * @author Abacus Works
@@ -17,9 +32,12 @@ contract HypERC4626 is HypERC20 {
17
32
  using Message for bytes;
18
33
  using TokenMessage for bytes;
19
34
 
35
+ event ExchangeRateUpdated(uint256 newExchangeRate, uint32 rateUpdateNonce);
36
+
20
37
  uint256 public constant PRECISION = 1e10;
21
38
  uint32 public immutable collateralDomain;
22
39
  uint256 public exchangeRate; // 1e10
40
+ uint32 public previousNonce;
23
41
 
24
42
  constructor(
25
43
  uint8 _decimals,
@@ -66,7 +84,16 @@ contract HypERC4626 is HypERC20 {
66
84
  bytes calldata _message
67
85
  ) internal virtual override {
68
86
  if (_origin == collateralDomain) {
69
- exchangeRate = abi.decode(_message.metadata(), (uint256));
87
+ (uint256 newExchangeRate, uint32 rateUpdateNonce) = abi.decode(
88
+ _message.metadata(),
89
+ (uint256, uint32)
90
+ );
91
+ // only update if the nonce is greater than the previous nonce
92
+ if (rateUpdateNonce > previousNonce) {
93
+ exchangeRate = newExchangeRate;
94
+ previousNonce = rateUpdateNonce;
95
+ emit ExchangeRateUpdated(exchangeRate, rateUpdateNonce);
96
+ }
70
97
  }
71
98
  super._handle(_origin, _sender, _message);
72
99
  }
@@ -1,11 +1,26 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity >=0.8.0;
3
3
 
4
- import "@openzeppelin/contracts/token/ERC20/extensions/ERC4626.sol";
4
+ /*@@@@@@@ @@@@@@@@@
5
+ @@@@@@@@@ @@@@@@@@@
6
+ @@@@@@@@@ @@@@@@@@@
7
+ @@@@@@@@@ @@@@@@@@@
8
+ @@@@@@@@@@@@@@@@@@@@@@@@@
9
+ @@@@@ HYPERLANE @@@@@@@
10
+ @@@@@@@@@@@@@@@@@@@@@@@@@
11
+ @@@@@@@@@ @@@@@@@@@
12
+ @@@@@@@@@ @@@@@@@@@
13
+ @@@@@@@@@ @@@@@@@@@
14
+ @@@@@@@@@ @@@@@@@@*/
15
+
16
+ // ============ Internal Imports ============
5
17
  import {TokenMessage} from "../libs/TokenMessage.sol";
6
18
  import {HypERC20Collateral} from "../HypERC20Collateral.sol";
7
19
  import {TypeCasts} from "../../libs/TypeCasts.sol";
8
20
 
21
+ // ============ External Imports ============
22
+ import "@openzeppelin/contracts/token/ERC20/extensions/ERC4626.sol";
23
+
9
24
  /**
10
25
  * @title Hyperlane ERC4626 Token Collateral with deposits collateral to a vault
11
26
  * @author Abacus Works
@@ -17,9 +32,13 @@ contract HypERC4626Collateral is HypERC20Collateral {
17
32
 
18
33
  // Address of the ERC4626 compatible vault
19
34
  ERC4626 public immutable vault;
35
+ // Precision for the exchange rate
20
36
  uint256 public constant PRECISION = 1e10;
37
+ // Null recipient for rebase transfer
21
38
  bytes32 public constant NULL_RECIPIENT =
22
39
  0x0000000000000000000000000000000000000000000000000000000000000001;
40
+ // Nonce for the rate update, to ensure sequential updates
41
+ uint32 public rateUpdateNonce;
23
42
 
24
43
  constructor(
25
44
  ERC4626 _vault,
@@ -52,7 +71,12 @@ contract HypERC4626Collateral is HypERC20Collateral {
52
71
  vault.totalSupply(),
53
72
  Math.Rounding.Down
54
73
  );
55
- bytes memory _tokenMetadata = abi.encode(_exchangeRate);
74
+
75
+ rateUpdateNonce++;
76
+ bytes memory _tokenMetadata = abi.encode(
77
+ _exchangeRate,
78
+ rateUpdateNonce
79
+ );
56
80
 
57
81
  bytes memory _tokenMessage = TokenMessage.format(
58
82
  _recipient,
@@ -1,9 +1,24 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity >=0.8.0;
3
3
 
4
- import "@openzeppelin/contracts/token/ERC20/extensions/ERC4626.sol";
4
+ /*@@@@@@@ @@@@@@@@@
5
+ @@@@@@@@@ @@@@@@@@@
6
+ @@@@@@@@@ @@@@@@@@@
7
+ @@@@@@@@@ @@@@@@@@@
8
+ @@@@@@@@@@@@@@@@@@@@@@@@@
9
+ @@@@@ HYPERLANE @@@@@@@
10
+ @@@@@@@@@@@@@@@@@@@@@@@@@
11
+ @@@@@@@@@ @@@@@@@@@
12
+ @@@@@@@@@ @@@@@@@@@
13
+ @@@@@@@@@ @@@@@@@@@
14
+ @@@@@@@@@ @@@@@@@@*/
15
+
16
+ // ============ Internal Imports ============
5
17
  import {HypERC20Collateral} from "../HypERC20Collateral.sol";
6
18
 
19
+ // ============ External Imports ============
20
+ import {ERC4626} from "@openzeppelin/contracts/token/ERC20/extensions/ERC4626.sol";
21
+
7
22
  /**
8
23
  * @title Hyperlane ERC20 Token Collateral with deposits collateral to a vault, the yield goes to the owner
9
24
  * @author ltyu
@@ -11,9 +26,12 @@ import {HypERC20Collateral} from "../HypERC20Collateral.sol";
11
26
  contract HypERC4626OwnerCollateral is HypERC20Collateral {
12
27
  // Address of the ERC4626 compatible vault
13
28
  ERC4626 public immutable vault;
14
-
29
+ // standby precision for exchange rate
30
+ uint256 public constant PRECISION = 1e10;
15
31
  // Internal balance of total asset deposited
16
32
  uint256 public assetDeposited;
33
+ // Nonce for the rate update, to ensure sequential updates (not necessary for Owner variant but for compatibility with HypERC4626)
34
+ uint32 public rateUpdateNonce;
17
35
 
18
36
  event ExcessSharesSwept(uint256 amount, uint256 assetsRedeemed);
19
37
 
@@ -40,8 +58,11 @@ contract HypERC4626OwnerCollateral is HypERC20Collateral {
40
58
  function _transferFromSender(
41
59
  uint256 _amount
42
60
  ) internal override returns (bytes memory metadata) {
43
- metadata = super._transferFromSender(_amount);
61
+ super._transferFromSender(_amount);
44
62
  _depositIntoVault(_amount);
63
+ rateUpdateNonce++;
64
+
65
+ return abi.encode(PRECISION, rateUpdateNonce);
45
66
  }
46
67
 
47
68
  /**