@hyperlane-xyz/core 5.4.2-superchain.1 → 5.6.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 (512) hide show
  1. package/contracts/PackageVersioned.sol +1 -1
  2. package/contracts/client/GasRouter.sol +16 -0
  3. package/contracts/interfaces/IInterchainSecurityModule.sol +1 -2
  4. package/contracts/interfaces/hooks/IPostDispatchHook.sol +1 -2
  5. package/contracts/isms/TrustedRelayerIsm.sol +9 -0
  6. package/contracts/isms/hook/ArbL2ToL1Ism.sol +1 -0
  7. package/contracts/isms/hook/OPL2ToL1Ism.sol +2 -2
  8. package/contracts/isms/multisig/AbstractWeightedMultisigIsm.sol +8 -4
  9. package/contracts/libs/RateLimited.sol +34 -8
  10. package/contracts/libs/TypeCasts.sol +4 -0
  11. package/contracts/mock/MockMailbox.sol +5 -0
  12. package/contracts/mock/MockOptimism.sol +0 -73
  13. package/contracts/token/HypERC20Collateral.sol +16 -0
  14. package/contracts/token/extensions/HypERC4626.sol +29 -2
  15. package/contracts/token/extensions/HypERC4626Collateral.sol +33 -9
  16. package/contracts/token/extensions/HypERC4626OwnerCollateral.sol +24 -3
  17. package/contracts/token/extensions/WHypERC4626.sol +113 -0
  18. package/dist/buildArtifact.js +1 -1
  19. package/dist/buildArtifact.json +1 -1
  20. package/dist/contracts/client/GasRouter.d.ts +11 -0
  21. package/dist/contracts/client/GasRouter.d.ts.map +1 -1
  22. package/dist/contracts/hooks/index.d.ts +0 -1
  23. package/dist/contracts/hooks/index.d.ts.map +1 -1
  24. package/dist/contracts/hooks/warp-route/RateLimitedHook.d.ts +24 -10
  25. package/dist/contracts/hooks/warp-route/RateLimitedHook.d.ts.map +1 -1
  26. package/dist/contracts/interfaces/optimism/index.d.ts +0 -2
  27. package/dist/contracts/interfaces/optimism/index.d.ts.map +1 -1
  28. package/dist/contracts/isms/hook/index.d.ts +0 -2
  29. package/dist/contracts/isms/hook/index.d.ts.map +1 -1
  30. package/dist/contracts/isms/warp-route/RateLimitedIsm.d.ts +24 -10
  31. package/dist/contracts/isms/warp-route/RateLimitedIsm.d.ts.map +1 -1
  32. package/dist/contracts/libs/RateLimited.d.ts +24 -10
  33. package/dist/contracts/libs/RateLimited.d.ts.map +1 -1
  34. package/dist/contracts/mock/MockMailbox.d.ts +32 -1
  35. package/dist/contracts/mock/MockMailbox.d.ts.map +1 -1
  36. package/dist/contracts/mock/MockOptimism.sol/index.d.ts +0 -1
  37. package/dist/contracts/mock/MockOptimism.sol/index.d.ts.map +1 -1
  38. package/dist/contracts/test/TestGasRouter.d.ts +11 -0
  39. package/dist/contracts/test/TestGasRouter.d.ts.map +1 -1
  40. package/dist/contracts/token/HypERC20.d.ts +11 -0
  41. package/dist/contracts/token/HypERC20.d.ts.map +1 -1
  42. package/dist/contracts/token/HypERC20Collateral.d.ts +11 -0
  43. package/dist/contracts/token/HypERC20Collateral.d.ts.map +1 -1
  44. package/dist/contracts/token/HypERC721.d.ts +11 -0
  45. package/dist/contracts/token/HypERC721.d.ts.map +1 -1
  46. package/dist/contracts/token/HypERC721Collateral.d.ts +11 -0
  47. package/dist/contracts/token/HypERC721Collateral.d.ts.map +1 -1
  48. package/dist/contracts/token/HypNative.d.ts +11 -0
  49. package/dist/contracts/token/HypNative.d.ts.map +1 -1
  50. package/dist/contracts/token/extensions/FastHypERC20.d.ts +11 -0
  51. package/dist/contracts/token/extensions/FastHypERC20.d.ts.map +1 -1
  52. package/dist/contracts/token/extensions/FastHypERC20Collateral.d.ts +11 -0
  53. package/dist/contracts/token/extensions/FastHypERC20Collateral.d.ts.map +1 -1
  54. package/dist/contracts/token/extensions/HypERC4626.d.ts +41 -1
  55. package/dist/contracts/token/extensions/HypERC4626.d.ts.map +1 -1
  56. package/dist/contracts/token/extensions/HypERC4626Collateral.d.ts +41 -15
  57. package/dist/contracts/token/extensions/HypERC4626Collateral.d.ts.map +1 -1
  58. package/dist/contracts/token/extensions/HypERC4626OwnerCollateral.d.ts +42 -1
  59. package/dist/contracts/token/extensions/HypERC4626OwnerCollateral.d.ts.map +1 -1
  60. package/dist/contracts/token/extensions/HypERC721URICollateral.d.ts +11 -0
  61. package/dist/contracts/token/extensions/HypERC721URICollateral.d.ts.map +1 -1
  62. package/dist/contracts/token/extensions/HypERC721URIStorage.d.ts +11 -0
  63. package/dist/contracts/token/extensions/HypERC721URIStorage.d.ts.map +1 -1
  64. package/dist/contracts/token/extensions/HypFiatToken.d.ts +11 -0
  65. package/dist/contracts/token/extensions/HypFiatToken.d.ts.map +1 -1
  66. package/dist/contracts/token/extensions/HypNativeScaled.d.ts +11 -0
  67. package/dist/contracts/token/extensions/HypNativeScaled.d.ts.map +1 -1
  68. package/dist/contracts/token/extensions/HypXERC20.d.ts +11 -0
  69. package/dist/contracts/token/extensions/HypXERC20.d.ts.map +1 -1
  70. package/dist/contracts/token/extensions/HypXERC20Lockbox.d.ts +11 -0
  71. package/dist/contracts/token/extensions/HypXERC20Lockbox.d.ts.map +1 -1
  72. package/dist/contracts/token/extensions/WHypERC4626.d.ts +466 -0
  73. package/dist/contracts/token/extensions/WHypERC4626.d.ts.map +1 -0
  74. package/dist/contracts/token/extensions/WHypERC4626.js +2 -0
  75. package/dist/contracts/token/extensions/WHypERC4626.js.map +1 -0
  76. package/dist/contracts/token/extensions/index.d.ts +1 -0
  77. package/dist/contracts/token/extensions/index.d.ts.map +1 -1
  78. package/dist/contracts/token/libs/FastTokenRouter.d.ts +11 -0
  79. package/dist/contracts/token/libs/FastTokenRouter.d.ts.map +1 -1
  80. package/dist/contracts/token/libs/TokenRouter.d.ts +11 -0
  81. package/dist/contracts/token/libs/TokenRouter.d.ts.map +1 -1
  82. package/dist/factories/contracts/AttributeCheckpointFraud__factory.d.ts +1 -1
  83. package/dist/factories/contracts/AttributeCheckpointFraud__factory.d.ts.map +1 -1
  84. package/dist/factories/contracts/AttributeCheckpointFraud__factory.js +1 -1
  85. package/dist/factories/contracts/AttributeCheckpointFraud__factory.js.map +1 -1
  86. package/dist/factories/contracts/CheckpointFraudProofs__factory.d.ts +1 -1
  87. package/dist/factories/contracts/CheckpointFraudProofs__factory.d.ts.map +1 -1
  88. package/dist/factories/contracts/CheckpointFraudProofs__factory.js +1 -1
  89. package/dist/factories/contracts/CheckpointFraudProofs__factory.js.map +1 -1
  90. package/dist/factories/contracts/Mailbox__factory.d.ts +1 -1
  91. package/dist/factories/contracts/Mailbox__factory.d.ts.map +1 -1
  92. package/dist/factories/contracts/Mailbox__factory.js +1 -1
  93. package/dist/factories/contracts/Mailbox__factory.js.map +1 -1
  94. package/dist/factories/contracts/avs/ECDSAStakeRegistry__factory.d.ts +1 -1
  95. package/dist/factories/contracts/avs/ECDSAStakeRegistry__factory.js +1 -1
  96. package/dist/factories/contracts/avs/HyperlaneServiceManager__factory.d.ts +1 -1
  97. package/dist/factories/contracts/avs/HyperlaneServiceManager__factory.js +1 -1
  98. package/dist/factories/contracts/client/GasRouter__factory.d.ts +15 -0
  99. package/dist/factories/contracts/client/GasRouter__factory.d.ts.map +1 -1
  100. package/dist/factories/contracts/client/GasRouter__factory.js +19 -0
  101. package/dist/factories/contracts/client/GasRouter__factory.js.map +1 -1
  102. package/dist/factories/contracts/hooks/ArbL2ToL1Hook__factory.d.ts +1 -1
  103. package/dist/factories/contracts/hooks/ArbL2ToL1Hook__factory.d.ts.map +1 -1
  104. package/dist/factories/contracts/hooks/ArbL2ToL1Hook__factory.js +1 -1
  105. package/dist/factories/contracts/hooks/ArbL2ToL1Hook__factory.js.map +1 -1
  106. package/dist/factories/contracts/hooks/MerkleTreeHook__factory.d.ts +1 -1
  107. package/dist/factories/contracts/hooks/MerkleTreeHook__factory.js +1 -1
  108. package/dist/factories/contracts/hooks/OPL2ToL1Hook__factory.d.ts +1 -1
  109. package/dist/factories/contracts/hooks/OPL2ToL1Hook__factory.d.ts.map +1 -1
  110. package/dist/factories/contracts/hooks/OPL2ToL1Hook__factory.js +1 -1
  111. package/dist/factories/contracts/hooks/OPL2ToL1Hook__factory.js.map +1 -1
  112. package/dist/factories/contracts/hooks/OPStackHook__factory.d.ts +1 -1
  113. package/dist/factories/contracts/hooks/OPStackHook__factory.d.ts.map +1 -1
  114. package/dist/factories/contracts/hooks/OPStackHook__factory.js +1 -1
  115. package/dist/factories/contracts/hooks/OPStackHook__factory.js.map +1 -1
  116. package/dist/factories/contracts/hooks/PausableHook__factory.d.ts +1 -1
  117. package/dist/factories/contracts/hooks/PausableHook__factory.js +1 -1
  118. package/dist/factories/contracts/hooks/PolygonPosHook__factory.d.ts +1 -1
  119. package/dist/factories/contracts/hooks/PolygonPosHook__factory.js +1 -1
  120. package/dist/factories/contracts/hooks/ProtocolFee__factory.d.ts +1 -1
  121. package/dist/factories/contracts/hooks/ProtocolFee__factory.d.ts.map +1 -1
  122. package/dist/factories/contracts/hooks/ProtocolFee__factory.js +1 -1
  123. package/dist/factories/contracts/hooks/ProtocolFee__factory.js.map +1 -1
  124. package/dist/factories/contracts/hooks/aggregation/ERC5164Hook__factory.d.ts +1 -1
  125. package/dist/factories/contracts/hooks/aggregation/ERC5164Hook__factory.d.ts.map +1 -1
  126. package/dist/factories/contracts/hooks/aggregation/ERC5164Hook__factory.js +1 -1
  127. package/dist/factories/contracts/hooks/aggregation/ERC5164Hook__factory.js.map +1 -1
  128. package/dist/factories/contracts/hooks/aggregation/StaticAggregationHookFactory__factory.d.ts +1 -1
  129. package/dist/factories/contracts/hooks/aggregation/StaticAggregationHookFactory__factory.js +1 -1
  130. package/dist/factories/contracts/hooks/aggregation/StaticAggregationHook__factory.d.ts +1 -1
  131. package/dist/factories/contracts/hooks/aggregation/StaticAggregationHook__factory.js +1 -1
  132. package/dist/factories/contracts/hooks/igp/InterchainGasPaymaster__factory.d.ts +1 -1
  133. package/dist/factories/contracts/hooks/igp/InterchainGasPaymaster__factory.d.ts.map +1 -1
  134. package/dist/factories/contracts/hooks/igp/InterchainGasPaymaster__factory.js +1 -1
  135. package/dist/factories/contracts/hooks/igp/InterchainGasPaymaster__factory.js.map +1 -1
  136. package/dist/factories/contracts/hooks/igp/StorageGasOracle__factory.d.ts +1 -1
  137. package/dist/factories/contracts/hooks/igp/StorageGasOracle__factory.js +1 -1
  138. package/dist/factories/contracts/hooks/index.d.ts +0 -1
  139. package/dist/factories/contracts/hooks/index.d.ts.map +1 -1
  140. package/dist/factories/contracts/hooks/index.js +0 -1
  141. package/dist/factories/contracts/hooks/index.js.map +1 -1
  142. package/dist/factories/contracts/hooks/layer-zero/LayerZeroV1Hook__factory.d.ts +1 -1
  143. package/dist/factories/contracts/hooks/layer-zero/LayerZeroV1Hook__factory.js +1 -1
  144. package/dist/factories/contracts/hooks/layer-zero/LayerZeroV2Hook__factory.d.ts +1 -1
  145. package/dist/factories/contracts/hooks/layer-zero/LayerZeroV2Hook__factory.d.ts.map +1 -1
  146. package/dist/factories/contracts/hooks/layer-zero/LayerZeroV2Hook__factory.js +1 -1
  147. package/dist/factories/contracts/hooks/layer-zero/LayerZeroV2Hook__factory.js.map +1 -1
  148. package/dist/factories/contracts/hooks/routing/DestinationRecipientRoutingHook__factory.d.ts +1 -1
  149. package/dist/factories/contracts/hooks/routing/DestinationRecipientRoutingHook__factory.js +1 -1
  150. package/dist/factories/contracts/hooks/routing/DomainRoutingHook__factory.d.ts +1 -1
  151. package/dist/factories/contracts/hooks/routing/DomainRoutingHook__factory.js +1 -1
  152. package/dist/factories/contracts/hooks/routing/FallbackDomainRoutingHook__factory.d.ts +1 -1
  153. package/dist/factories/contracts/hooks/routing/FallbackDomainRoutingHook__factory.js +1 -1
  154. package/dist/factories/contracts/hooks/warp-route/RateLimitedHook__factory.d.ts +17 -2
  155. package/dist/factories/contracts/hooks/warp-route/RateLimitedHook__factory.d.ts.map +1 -1
  156. package/dist/factories/contracts/hooks/warp-route/RateLimitedHook__factory.js +21 -2
  157. package/dist/factories/contracts/hooks/warp-route/RateLimitedHook__factory.js.map +1 -1
  158. package/dist/factories/contracts/interfaces/optimism/index.d.ts +0 -2
  159. package/dist/factories/contracts/interfaces/optimism/index.d.ts.map +1 -1
  160. package/dist/factories/contracts/interfaces/optimism/index.js +0 -2
  161. package/dist/factories/contracts/interfaces/optimism/index.js.map +1 -1
  162. package/dist/factories/contracts/isms/NoopIsm__factory.d.ts +1 -1
  163. package/dist/factories/contracts/isms/NoopIsm__factory.js +1 -1
  164. package/dist/factories/contracts/isms/PausableIsm__factory.d.ts +1 -1
  165. package/dist/factories/contracts/isms/PausableIsm__factory.js +1 -1
  166. package/dist/factories/contracts/isms/TrustedRelayerIsm__factory.d.ts +1 -1
  167. package/dist/factories/contracts/isms/TrustedRelayerIsm__factory.d.ts.map +1 -1
  168. package/dist/factories/contracts/isms/TrustedRelayerIsm__factory.js +1 -1
  169. package/dist/factories/contracts/isms/TrustedRelayerIsm__factory.js.map +1 -1
  170. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsmFactory__factory.d.ts +1 -1
  171. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsmFactory__factory.js +1 -1
  172. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsm__factory.d.ts +1 -1
  173. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsm__factory.js +1 -1
  174. package/dist/factories/contracts/isms/hook/ArbL2ToL1Ism__factory.d.ts +1 -1
  175. package/dist/factories/contracts/isms/hook/ArbL2ToL1Ism__factory.d.ts.map +1 -1
  176. package/dist/factories/contracts/isms/hook/ArbL2ToL1Ism__factory.js +1 -1
  177. package/dist/factories/contracts/isms/hook/ArbL2ToL1Ism__factory.js.map +1 -1
  178. package/dist/factories/contracts/isms/hook/ERC5164Ism__factory.d.ts +1 -1
  179. package/dist/factories/contracts/isms/hook/ERC5164Ism__factory.d.ts.map +1 -1
  180. package/dist/factories/contracts/isms/hook/ERC5164Ism__factory.js +1 -1
  181. package/dist/factories/contracts/isms/hook/ERC5164Ism__factory.js.map +1 -1
  182. package/dist/factories/contracts/isms/hook/OPL2ToL1Ism__factory.d.ts +1 -1
  183. package/dist/factories/contracts/isms/hook/OPL2ToL1Ism__factory.d.ts.map +1 -1
  184. package/dist/factories/contracts/isms/hook/OPL2ToL1Ism__factory.js +1 -1
  185. package/dist/factories/contracts/isms/hook/OPL2ToL1Ism__factory.js.map +1 -1
  186. package/dist/factories/contracts/isms/hook/OPStackIsm__factory.d.ts +1 -1
  187. package/dist/factories/contracts/isms/hook/OPStackIsm__factory.d.ts.map +1 -1
  188. package/dist/factories/contracts/isms/hook/OPStackIsm__factory.js +1 -1
  189. package/dist/factories/contracts/isms/hook/OPStackIsm__factory.js.map +1 -1
  190. package/dist/factories/contracts/isms/hook/PolygonPosIsm__factory.d.ts +1 -1
  191. package/dist/factories/contracts/isms/hook/PolygonPosIsm__factory.d.ts.map +1 -1
  192. package/dist/factories/contracts/isms/hook/PolygonPosIsm__factory.js +1 -1
  193. package/dist/factories/contracts/isms/hook/PolygonPosIsm__factory.js.map +1 -1
  194. package/dist/factories/contracts/isms/hook/index.d.ts +0 -1
  195. package/dist/factories/contracts/isms/hook/index.d.ts.map +1 -1
  196. package/dist/factories/contracts/isms/hook/index.js +0 -1
  197. package/dist/factories/contracts/isms/hook/index.js.map +1 -1
  198. package/dist/factories/contracts/isms/hook/layer-zero/LayerZeroV2Ism__factory.d.ts +1 -1
  199. package/dist/factories/contracts/isms/hook/layer-zero/LayerZeroV2Ism__factory.d.ts.map +1 -1
  200. package/dist/factories/contracts/isms/hook/layer-zero/LayerZeroV2Ism__factory.js +1 -1
  201. package/dist/factories/contracts/isms/hook/layer-zero/LayerZeroV2Ism__factory.js.map +1 -1
  202. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsmFactory__factory.d.ts +1 -1
  203. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsmFactory__factory.js +1 -1
  204. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm__factory.d.ts +1 -1
  205. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm__factory.js +1 -1
  206. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsmFactory__factory.d.ts +1 -1
  207. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsmFactory__factory.js +1 -1
  208. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm__factory.d.ts +1 -1
  209. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm__factory.js +1 -1
  210. package/dist/factories/contracts/isms/multisig/ValidatorAnnounce__factory.d.ts +1 -1
  211. package/dist/factories/contracts/isms/multisig/ValidatorAnnounce__factory.js +1 -1
  212. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsmFactory__factory.d.ts +1 -1
  213. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsmFactory__factory.d.ts.map +1 -1
  214. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsmFactory__factory.js +1 -1
  215. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsmFactory__factory.js.map +1 -1
  216. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsm__factory.d.ts +1 -1
  217. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsm__factory.d.ts.map +1 -1
  218. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsm__factory.js +1 -1
  219. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsm__factory.js.map +1 -1
  220. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsmFactory__factory.d.ts +1 -1
  221. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsmFactory__factory.d.ts.map +1 -1
  222. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsmFactory__factory.js +1 -1
  223. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsmFactory__factory.js.map +1 -1
  224. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsm__factory.d.ts +1 -1
  225. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsm__factory.d.ts.map +1 -1
  226. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsm__factory.js +1 -1
  227. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsm__factory.js.map +1 -1
  228. package/dist/factories/contracts/isms/routing/DefaultFallbackRoutingIsm__factory.d.ts +1 -1
  229. package/dist/factories/contracts/isms/routing/DefaultFallbackRoutingIsm__factory.d.ts.map +1 -1
  230. package/dist/factories/contracts/isms/routing/DefaultFallbackRoutingIsm__factory.js +1 -1
  231. package/dist/factories/contracts/isms/routing/DefaultFallbackRoutingIsm__factory.js.map +1 -1
  232. package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory.sol/DomainRoutingIsmFactory__factory.d.ts +1 -1
  233. package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory.sol/DomainRoutingIsmFactory__factory.d.ts.map +1 -1
  234. package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory.sol/DomainRoutingIsmFactory__factory.js +1 -1
  235. package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory.sol/DomainRoutingIsmFactory__factory.js.map +1 -1
  236. package/dist/factories/contracts/isms/routing/DomainRoutingIsm__factory.d.ts +1 -1
  237. package/dist/factories/contracts/isms/routing/DomainRoutingIsm__factory.d.ts.map +1 -1
  238. package/dist/factories/contracts/isms/routing/DomainRoutingIsm__factory.js +1 -1
  239. package/dist/factories/contracts/isms/routing/DomainRoutingIsm__factory.js.map +1 -1
  240. package/dist/factories/contracts/isms/routing/InterchainAccountIsm__factory.d.ts +1 -1
  241. package/dist/factories/contracts/isms/routing/InterchainAccountIsm__factory.js +1 -1
  242. package/dist/factories/contracts/isms/warp-route/RateLimitedIsm__factory.d.ts +17 -2
  243. package/dist/factories/contracts/isms/warp-route/RateLimitedIsm__factory.d.ts.map +1 -1
  244. package/dist/factories/contracts/isms/warp-route/RateLimitedIsm__factory.js +21 -2
  245. package/dist/factories/contracts/isms/warp-route/RateLimitedIsm__factory.js.map +1 -1
  246. package/dist/factories/contracts/libs/EnumerableMapEnrollment__factory.d.ts +1 -1
  247. package/dist/factories/contracts/libs/EnumerableMapEnrollment__factory.js +1 -1
  248. package/dist/factories/contracts/libs/RateLimited__factory.d.ts +17 -2
  249. package/dist/factories/contracts/libs/RateLimited__factory.d.ts.map +1 -1
  250. package/dist/factories/contracts/libs/RateLimited__factory.js +21 -2
  251. package/dist/factories/contracts/libs/RateLimited__factory.js.map +1 -1
  252. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.d.ts +1 -1
  253. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.d.ts.map +1 -1
  254. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.js +1 -1
  255. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.js.map +1 -1
  256. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.d.ts +1 -1
  257. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.d.ts.map +1 -1
  258. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.js +1 -1
  259. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.js.map +1 -1
  260. package/dist/factories/contracts/middleware/libs/OwnableMulticall__factory.d.ts +1 -1
  261. package/dist/factories/contracts/middleware/libs/OwnableMulticall__factory.d.ts.map +1 -1
  262. package/dist/factories/contracts/middleware/libs/OwnableMulticall__factory.js +1 -1
  263. package/dist/factories/contracts/middleware/libs/OwnableMulticall__factory.js.map +1 -1
  264. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.d.ts +1 -1
  265. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.d.ts.map +1 -1
  266. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.js +1 -1
  267. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.js.map +1 -1
  268. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.d.ts +1 -1
  269. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.js +1 -1
  270. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.d.ts +1 -1
  271. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.d.ts.map +1 -1
  272. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.js +1 -1
  273. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.js.map +1 -1
  274. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.d.ts +1 -1
  275. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.d.ts.map +1 -1
  276. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.js +1 -1
  277. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.js.map +1 -1
  278. package/dist/factories/contracts/mock/MockMailbox__factory.d.ts +11 -1
  279. package/dist/factories/contracts/mock/MockMailbox__factory.d.ts.map +1 -1
  280. package/dist/factories/contracts/mock/MockMailbox__factory.js +14 -1
  281. package/dist/factories/contracts/mock/MockMailbox__factory.js.map +1 -1
  282. package/dist/factories/contracts/mock/MockOptimism.sol/MockOptimismMessenger__factory.d.ts +1 -1
  283. package/dist/factories/contracts/mock/MockOptimism.sol/MockOptimismMessenger__factory.d.ts.map +1 -1
  284. package/dist/factories/contracts/mock/MockOptimism.sol/MockOptimismMessenger__factory.js +1 -1
  285. package/dist/factories/contracts/mock/MockOptimism.sol/MockOptimismMessenger__factory.js.map +1 -1
  286. package/dist/factories/contracts/mock/MockOptimism.sol/MockOptimismPortal__factory.d.ts +1 -1
  287. package/dist/factories/contracts/mock/MockOptimism.sol/MockOptimismPortal__factory.d.ts.map +1 -1
  288. package/dist/factories/contracts/mock/MockOptimism.sol/MockOptimismPortal__factory.js +1 -1
  289. package/dist/factories/contracts/mock/MockOptimism.sol/MockOptimismPortal__factory.js.map +1 -1
  290. package/dist/factories/contracts/mock/MockOptimism.sol/index.d.ts +0 -1
  291. package/dist/factories/contracts/mock/MockOptimism.sol/index.d.ts.map +1 -1
  292. package/dist/factories/contracts/mock/MockOptimism.sol/index.js +0 -1
  293. package/dist/factories/contracts/mock/MockOptimism.sol/index.js.map +1 -1
  294. package/dist/factories/contracts/mock/MockPortalBridge__factory.d.ts +1 -1
  295. package/dist/factories/contracts/mock/MockPortalBridge__factory.js +1 -1
  296. package/dist/factories/contracts/test/LightTestRecipient__factory.d.ts +1 -1
  297. package/dist/factories/contracts/test/LightTestRecipient__factory.js +1 -1
  298. package/dist/factories/contracts/test/TestGasRouter__factory.d.ts +16 -1
  299. package/dist/factories/contracts/test/TestGasRouter__factory.d.ts.map +1 -1
  300. package/dist/factories/contracts/test/TestGasRouter__factory.js +20 -1
  301. package/dist/factories/contracts/test/TestGasRouter__factory.js.map +1 -1
  302. package/dist/factories/contracts/test/TestInterchainGasPaymaster__factory.d.ts +1 -1
  303. package/dist/factories/contracts/test/TestInterchainGasPaymaster__factory.d.ts.map +1 -1
  304. package/dist/factories/contracts/test/TestInterchainGasPaymaster__factory.js +1 -1
  305. package/dist/factories/contracts/test/TestInterchainGasPaymaster__factory.js.map +1 -1
  306. package/dist/factories/contracts/test/TestIsm__factory.d.ts +1 -1
  307. package/dist/factories/contracts/test/TestIsm__factory.js +1 -1
  308. package/dist/factories/contracts/test/TestMailbox__factory.d.ts +1 -1
  309. package/dist/factories/contracts/test/TestMailbox__factory.d.ts.map +1 -1
  310. package/dist/factories/contracts/test/TestMailbox__factory.js +1 -1
  311. package/dist/factories/contracts/test/TestMailbox__factory.js.map +1 -1
  312. package/dist/factories/contracts/test/TestMerkleTreeHook__factory.d.ts +1 -1
  313. package/dist/factories/contracts/test/TestMerkleTreeHook__factory.js +1 -1
  314. package/dist/factories/contracts/test/TestMessage__factory.d.ts +1 -1
  315. package/dist/factories/contracts/test/TestMessage__factory.d.ts.map +1 -1
  316. package/dist/factories/contracts/test/TestMessage__factory.js +1 -1
  317. package/dist/factories/contracts/test/TestMessage__factory.js.map +1 -1
  318. package/dist/factories/contracts/test/TestPostDispatchHook__factory.d.ts +1 -1
  319. package/dist/factories/contracts/test/TestPostDispatchHook__factory.js +1 -1
  320. package/dist/factories/contracts/test/TestQuerySender__factory.d.ts +1 -1
  321. package/dist/factories/contracts/test/TestQuerySender__factory.js +1 -1
  322. package/dist/factories/contracts/test/TestQuery__factory.d.ts +1 -1
  323. package/dist/factories/contracts/test/TestQuery__factory.d.ts.map +1 -1
  324. package/dist/factories/contracts/test/TestQuery__factory.js +1 -1
  325. package/dist/factories/contracts/test/TestQuery__factory.js.map +1 -1
  326. package/dist/factories/contracts/test/TestRecipient__factory.d.ts +1 -1
  327. package/dist/factories/contracts/test/TestRecipient__factory.js +1 -1
  328. package/dist/factories/contracts/test/TestRemoteChallenger__factory.d.ts +1 -1
  329. package/dist/factories/contracts/test/TestRemoteChallenger__factory.js +1 -1
  330. package/dist/factories/contracts/test/TestRouter__factory.d.ts +1 -1
  331. package/dist/factories/contracts/test/TestRouter__factory.js +1 -1
  332. package/dist/factories/contracts/test/TestSendReceiver__factory.d.ts +1 -1
  333. package/dist/factories/contracts/test/TestSendReceiver__factory.js +1 -1
  334. package/dist/factories/contracts/test/avs/TestHyperlaneServiceManager__factory.d.ts +1 -1
  335. package/dist/factories/contracts/test/avs/TestHyperlaneServiceManager__factory.js +1 -1
  336. package/dist/factories/contracts/token/HypERC20Collateral__factory.d.ts +16 -1
  337. package/dist/factories/contracts/token/HypERC20Collateral__factory.d.ts.map +1 -1
  338. package/dist/factories/contracts/token/HypERC20Collateral__factory.js +20 -1
  339. package/dist/factories/contracts/token/HypERC20Collateral__factory.js.map +1 -1
  340. package/dist/factories/contracts/token/HypERC20__factory.d.ts +16 -1
  341. package/dist/factories/contracts/token/HypERC20__factory.d.ts.map +1 -1
  342. package/dist/factories/contracts/token/HypERC20__factory.js +20 -1
  343. package/dist/factories/contracts/token/HypERC20__factory.js.map +1 -1
  344. package/dist/factories/contracts/token/HypERC721Collateral__factory.d.ts +16 -1
  345. package/dist/factories/contracts/token/HypERC721Collateral__factory.d.ts.map +1 -1
  346. package/dist/factories/contracts/token/HypERC721Collateral__factory.js +20 -1
  347. package/dist/factories/contracts/token/HypERC721Collateral__factory.js.map +1 -1
  348. package/dist/factories/contracts/token/HypERC721__factory.d.ts +16 -1
  349. package/dist/factories/contracts/token/HypERC721__factory.d.ts.map +1 -1
  350. package/dist/factories/contracts/token/HypERC721__factory.js +20 -1
  351. package/dist/factories/contracts/token/HypERC721__factory.js.map +1 -1
  352. package/dist/factories/contracts/token/HypNative__factory.d.ts +16 -1
  353. package/dist/factories/contracts/token/HypNative__factory.d.ts.map +1 -1
  354. package/dist/factories/contracts/token/HypNative__factory.js +20 -1
  355. package/dist/factories/contracts/token/HypNative__factory.js.map +1 -1
  356. package/dist/factories/contracts/token/extensions/FastHypERC20Collateral__factory.d.ts +16 -1
  357. package/dist/factories/contracts/token/extensions/FastHypERC20Collateral__factory.d.ts.map +1 -1
  358. package/dist/factories/contracts/token/extensions/FastHypERC20Collateral__factory.js +20 -1
  359. package/dist/factories/contracts/token/extensions/FastHypERC20Collateral__factory.js.map +1 -1
  360. package/dist/factories/contracts/token/extensions/FastHypERC20__factory.d.ts +16 -1
  361. package/dist/factories/contracts/token/extensions/FastHypERC20__factory.d.ts.map +1 -1
  362. package/dist/factories/contracts/token/extensions/FastHypERC20__factory.js +20 -1
  363. package/dist/factories/contracts/token/extensions/FastHypERC20__factory.js.map +1 -1
  364. package/dist/factories/contracts/token/extensions/HypERC4626Collateral__factory.d.ts +34 -1
  365. package/dist/factories/contracts/token/extensions/HypERC4626Collateral__factory.d.ts.map +1 -1
  366. package/dist/factories/contracts/token/extensions/HypERC4626Collateral__factory.js +43 -1
  367. package/dist/factories/contracts/token/extensions/HypERC4626Collateral__factory.js.map +1 -1
  368. package/dist/factories/contracts/token/extensions/HypERC4626OwnerCollateral__factory.d.ts +36 -1
  369. package/dist/factories/contracts/token/extensions/HypERC4626OwnerCollateral__factory.d.ts.map +1 -1
  370. package/dist/factories/contracts/token/extensions/HypERC4626OwnerCollateral__factory.js +46 -1
  371. package/dist/factories/contracts/token/extensions/HypERC4626OwnerCollateral__factory.js.map +1 -1
  372. package/dist/factories/contracts/token/extensions/HypERC4626__factory.d.ts +41 -1
  373. package/dist/factories/contracts/token/extensions/HypERC4626__factory.d.ts.map +1 -1
  374. package/dist/factories/contracts/token/extensions/HypERC4626__factory.js +52 -1
  375. package/dist/factories/contracts/token/extensions/HypERC4626__factory.js.map +1 -1
  376. package/dist/factories/contracts/token/extensions/HypERC721URICollateral__factory.d.ts +16 -1
  377. package/dist/factories/contracts/token/extensions/HypERC721URICollateral__factory.d.ts.map +1 -1
  378. package/dist/factories/contracts/token/extensions/HypERC721URICollateral__factory.js +20 -1
  379. package/dist/factories/contracts/token/extensions/HypERC721URICollateral__factory.js.map +1 -1
  380. package/dist/factories/contracts/token/extensions/HypERC721URIStorage__factory.d.ts +16 -1
  381. package/dist/factories/contracts/token/extensions/HypERC721URIStorage__factory.d.ts.map +1 -1
  382. package/dist/factories/contracts/token/extensions/HypERC721URIStorage__factory.js +20 -1
  383. package/dist/factories/contracts/token/extensions/HypERC721URIStorage__factory.js.map +1 -1
  384. package/dist/factories/contracts/token/extensions/HypFiatToken__factory.d.ts +16 -1
  385. package/dist/factories/contracts/token/extensions/HypFiatToken__factory.d.ts.map +1 -1
  386. package/dist/factories/contracts/token/extensions/HypFiatToken__factory.js +20 -1
  387. package/dist/factories/contracts/token/extensions/HypFiatToken__factory.js.map +1 -1
  388. package/dist/factories/contracts/token/extensions/HypNativeScaled__factory.d.ts +16 -1
  389. package/dist/factories/contracts/token/extensions/HypNativeScaled__factory.d.ts.map +1 -1
  390. package/dist/factories/contracts/token/extensions/HypNativeScaled__factory.js +20 -1
  391. package/dist/factories/contracts/token/extensions/HypNativeScaled__factory.js.map +1 -1
  392. package/dist/factories/contracts/token/extensions/HypXERC20Lockbox__factory.d.ts +16 -1
  393. package/dist/factories/contracts/token/extensions/HypXERC20Lockbox__factory.d.ts.map +1 -1
  394. package/dist/factories/contracts/token/extensions/HypXERC20Lockbox__factory.js +20 -1
  395. package/dist/factories/contracts/token/extensions/HypXERC20Lockbox__factory.js.map +1 -1
  396. package/dist/factories/contracts/token/extensions/HypXERC20__factory.d.ts +16 -1
  397. package/dist/factories/contracts/token/extensions/HypXERC20__factory.d.ts.map +1 -1
  398. package/dist/factories/contracts/token/extensions/HypXERC20__factory.js +20 -1
  399. package/dist/factories/contracts/token/extensions/HypXERC20__factory.js.map +1 -1
  400. package/dist/factories/contracts/token/extensions/WHypERC4626__factory.d.ts +339 -0
  401. package/dist/factories/contracts/token/extensions/WHypERC4626__factory.d.ts.map +1 -0
  402. package/dist/factories/contracts/token/extensions/WHypERC4626__factory.js +458 -0
  403. package/dist/factories/contracts/token/extensions/WHypERC4626__factory.js.map +1 -0
  404. package/dist/factories/contracts/token/extensions/index.d.ts +1 -0
  405. package/dist/factories/contracts/token/extensions/index.d.ts.map +1 -1
  406. package/dist/factories/contracts/token/extensions/index.js +1 -0
  407. package/dist/factories/contracts/token/extensions/index.js.map +1 -1
  408. package/dist/factories/contracts/token/libs/FastTokenRouter__factory.d.ts +15 -0
  409. package/dist/factories/contracts/token/libs/FastTokenRouter__factory.d.ts.map +1 -1
  410. package/dist/factories/contracts/token/libs/FastTokenRouter__factory.js +19 -0
  411. package/dist/factories/contracts/token/libs/FastTokenRouter__factory.js.map +1 -1
  412. package/dist/factories/contracts/token/libs/TokenRouter__factory.d.ts +15 -0
  413. package/dist/factories/contracts/token/libs/TokenRouter__factory.d.ts.map +1 -1
  414. package/dist/factories/contracts/token/libs/TokenRouter__factory.js +19 -0
  415. package/dist/factories/contracts/token/libs/TokenRouter__factory.js.map +1 -1
  416. package/dist/index.d.ts +2 -10
  417. package/dist/index.d.ts.map +1 -1
  418. package/dist/index.js +1 -5
  419. package/dist/index.js.map +1 -1
  420. package/package.json +2 -2
  421. package/contracts/hooks/SuperchainHook.sol +0 -82
  422. package/contracts/interfaces/optimism/ICrossL2Inbox.sol +0 -60
  423. package/contracts/interfaces/optimism/IL2toL2CrossDomainMessenger.sol +0 -68
  424. package/contracts/isms/hook/SuperchainIsm.sol +0 -91
  425. package/dist/contracts/hooks/SuperchainHook.d.ts +0 -411
  426. package/dist/contracts/hooks/SuperchainHook.d.ts.map +0 -1
  427. package/dist/contracts/hooks/SuperchainHook.js +0 -2
  428. package/dist/contracts/hooks/SuperchainHook.js.map +0 -1
  429. package/dist/contracts/interfaces/optimism/ICrossL2Inbox.d.ts +0 -233
  430. package/dist/contracts/interfaces/optimism/ICrossL2Inbox.d.ts.map +0 -1
  431. package/dist/contracts/interfaces/optimism/ICrossL2Inbox.js +0 -2
  432. package/dist/contracts/interfaces/optimism/ICrossL2Inbox.js.map +0 -1
  433. package/dist/contracts/interfaces/optimism/IL2toL2CrossDomainMessenger.d.ts +0 -209
  434. package/dist/contracts/interfaces/optimism/IL2toL2CrossDomainMessenger.d.ts.map +0 -1
  435. package/dist/contracts/interfaces/optimism/IL2toL2CrossDomainMessenger.js +0 -2
  436. package/dist/contracts/interfaces/optimism/IL2toL2CrossDomainMessenger.js.map +0 -1
  437. package/dist/contracts/isms/hook/SuperchainIsm.sol/OPL2ToL1Ism.d.ts +0 -273
  438. package/dist/contracts/isms/hook/SuperchainIsm.sol/OPL2ToL1Ism.d.ts.map +0 -1
  439. package/dist/contracts/isms/hook/SuperchainIsm.sol/OPL2ToL1Ism.js +0 -2
  440. package/dist/contracts/isms/hook/SuperchainIsm.sol/OPL2ToL1Ism.js.map +0 -1
  441. package/dist/contracts/isms/hook/SuperchainIsm.sol/OPStackIsm.d.ts +0 -288
  442. package/dist/contracts/isms/hook/SuperchainIsm.sol/OPStackIsm.d.ts.map +0 -1
  443. package/dist/contracts/isms/hook/SuperchainIsm.sol/OPStackIsm.js +0 -2
  444. package/dist/contracts/isms/hook/SuperchainIsm.sol/OPStackIsm.js.map +0 -1
  445. package/dist/contracts/isms/hook/SuperchainIsm.sol/SuperchainISM.d.ts +0 -273
  446. package/dist/contracts/isms/hook/SuperchainIsm.sol/SuperchainISM.d.ts.map +0 -1
  447. package/dist/contracts/isms/hook/SuperchainIsm.sol/SuperchainISM.js +0 -2
  448. package/dist/contracts/isms/hook/SuperchainIsm.sol/SuperchainISM.js.map +0 -1
  449. package/dist/contracts/isms/hook/SuperchainIsm.sol/index.d.ts +0 -2
  450. package/dist/contracts/isms/hook/SuperchainIsm.sol/index.d.ts.map +0 -1
  451. package/dist/contracts/isms/hook/SuperchainIsm.sol/index.js +0 -2
  452. package/dist/contracts/isms/hook/SuperchainIsm.sol/index.js.map +0 -1
  453. package/dist/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/AbstractRpcMultisigIsm.d.ts +0 -110
  454. package/dist/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/AbstractRpcMultisigIsm.d.ts.map +0 -1
  455. package/dist/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/AbstractRpcMultisigIsm.js +0 -2
  456. package/dist/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/AbstractRpcMultisigIsm.js.map +0 -1
  457. package/dist/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/RpcMultisigIsm.d.ts +0 -125
  458. package/dist/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/RpcMultisigIsm.d.ts.map +0 -1
  459. package/dist/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/RpcMultisigIsm.js +0 -2
  460. package/dist/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/RpcMultisigIsm.js.map +0 -1
  461. package/dist/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/index.d.ts +0 -3
  462. package/dist/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/index.d.ts.map +0 -1
  463. package/dist/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/index.js +0 -2
  464. package/dist/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/index.js.map +0 -1
  465. package/dist/contracts/mock/MockOptimism.sol/MockL2toL2CrossDomainMessenger.d.ts +0 -224
  466. package/dist/contracts/mock/MockOptimism.sol/MockL2toL2CrossDomainMessenger.d.ts.map +0 -1
  467. package/dist/contracts/mock/MockOptimism.sol/MockL2toL2CrossDomainMessenger.js +0 -2
  468. package/dist/contracts/mock/MockOptimism.sol/MockL2toL2CrossDomainMessenger.js.map +0 -1
  469. package/dist/factories/contracts/hooks/SuperchainHook__factory.d.ts +0 -262
  470. package/dist/factories/contracts/hooks/SuperchainHook__factory.d.ts.map +0 -1
  471. package/dist/factories/contracts/hooks/SuperchainHook__factory.js +0 -352
  472. package/dist/factories/contracts/hooks/SuperchainHook__factory.js.map +0 -1
  473. package/dist/factories/contracts/interfaces/optimism/ICrossL2Inbox__factory.d.ts +0 -143
  474. package/dist/factories/contracts/interfaces/optimism/ICrossL2Inbox__factory.d.ts.map +0 -1
  475. package/dist/factories/contracts/interfaces/optimism/ICrossL2Inbox__factory.js +0 -189
  476. package/dist/factories/contracts/interfaces/optimism/ICrossL2Inbox__factory.js.map +0 -1
  477. package/dist/factories/contracts/interfaces/optimism/IL2toL2CrossDomainMessenger__factory.d.ts +0 -140
  478. package/dist/factories/contracts/interfaces/optimism/IL2toL2CrossDomainMessenger__factory.d.ts.map +0 -1
  479. package/dist/factories/contracts/interfaces/optimism/IL2toL2CrossDomainMessenger__factory.js +0 -185
  480. package/dist/factories/contracts/interfaces/optimism/IL2toL2CrossDomainMessenger__factory.js.map +0 -1
  481. package/dist/factories/contracts/isms/hook/SuperchainIsm.sol/OPL2ToL1Ism__factory.d.ts +0 -165
  482. package/dist/factories/contracts/isms/hook/SuperchainIsm.sol/OPL2ToL1Ism__factory.d.ts.map +0 -1
  483. package/dist/factories/contracts/isms/hook/SuperchainIsm.sol/OPL2ToL1Ism__factory.js +0 -229
  484. package/dist/factories/contracts/isms/hook/SuperchainIsm.sol/OPL2ToL1Ism__factory.js.map +0 -1
  485. package/dist/factories/contracts/isms/hook/SuperchainIsm.sol/OPStackIsm__factory.d.ts +0 -175
  486. package/dist/factories/contracts/isms/hook/SuperchainIsm.sol/OPStackIsm__factory.d.ts.map +0 -1
  487. package/dist/factories/contracts/isms/hook/SuperchainIsm.sol/OPStackIsm__factory.js +0 -242
  488. package/dist/factories/contracts/isms/hook/SuperchainIsm.sol/OPStackIsm__factory.js.map +0 -1
  489. package/dist/factories/contracts/isms/hook/SuperchainIsm.sol/SuperchainISM__factory.d.ts +0 -165
  490. package/dist/factories/contracts/isms/hook/SuperchainIsm.sol/SuperchainISM__factory.d.ts.map +0 -1
  491. package/dist/factories/contracts/isms/hook/SuperchainIsm.sol/SuperchainISM__factory.js +0 -229
  492. package/dist/factories/contracts/isms/hook/SuperchainIsm.sol/SuperchainISM__factory.js.map +0 -1
  493. package/dist/factories/contracts/isms/hook/SuperchainIsm.sol/index.d.ts +0 -2
  494. package/dist/factories/contracts/isms/hook/SuperchainIsm.sol/index.d.ts.map +0 -1
  495. package/dist/factories/contracts/isms/hook/SuperchainIsm.sol/index.js +0 -5
  496. package/dist/factories/contracts/isms/hook/SuperchainIsm.sol/index.js.map +0 -1
  497. package/dist/factories/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/AbstractRpcMultisigIsm__factory.d.ts +0 -79
  498. package/dist/factories/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/AbstractRpcMultisigIsm__factory.d.ts.map +0 -1
  499. package/dist/factories/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/AbstractRpcMultisigIsm__factory.js +0 -109
  500. package/dist/factories/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/AbstractRpcMultisigIsm__factory.js.map +0 -1
  501. package/dist/factories/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/RpcMultisigIsm__factory.d.ts +0 -121
  502. package/dist/factories/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/RpcMultisigIsm__factory.d.ts.map +0 -1
  503. package/dist/factories/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/RpcMultisigIsm__factory.js +0 -171
  504. package/dist/factories/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/RpcMultisigIsm__factory.js.map +0 -1
  505. package/dist/factories/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/index.d.ts +0 -3
  506. package/dist/factories/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/index.d.ts.map +0 -1
  507. package/dist/factories/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/index.js +0 -6
  508. package/dist/factories/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/index.js.map +0 -1
  509. package/dist/factories/contracts/mock/MockOptimism.sol/MockL2toL2CrossDomainMessenger__factory.d.ts +0 -174
  510. package/dist/factories/contracts/mock/MockOptimism.sol/MockL2toL2CrossDomainMessenger__factory.d.ts.map +0 -1
  511. package/dist/factories/contracts/mock/MockOptimism.sol/MockL2toL2CrossDomainMessenger__factory.js +0 -237
  512. 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.6.0";
11
11
  }
@@ -1,10 +1,25 @@
1
1
  // SPDX-License-Identifier: MIT OR Apache-2.0
2
2
  pragma solidity >=0.6.11;
3
3
 
4
+ /*@@@@@@@ @@@@@@@@@
5
+ @@@@@@@@@ @@@@@@@@@
6
+ @@@@@@@@@ @@@@@@@@@
7
+ @@@@@@@@@ @@@@@@@@@
8
+ @@@@@@@@@@@@@@@@@@@@@@@@@
9
+ @@@@@ HYPERLANE @@@@@@@
10
+ @@@@@@@@@@@@@@@@@@@@@@@@@
11
+ @@@@@@@@@ @@@@@@@@@
12
+ @@@@@@@@@ @@@@@@@@@
13
+ @@@@@@@@@ @@@@@@@@@
14
+ @@@@@@@@@ @@@@@@@@*/
15
+
16
+ // ============ Internal Imports ============
4
17
  import {Router} from "./Router.sol";
5
18
  import {StandardHookMetadata} from "../hooks/libs/StandardHookMetadata.sol";
6
19
 
7
20
  abstract contract GasRouter is Router {
21
+ event GasSet(uint32 domain, uint256 gas);
22
+
8
23
  // ============ Mutable Storage ============
9
24
  mapping(uint32 => uint256) public destinationGas;
10
25
 
@@ -56,6 +71,7 @@ abstract contract GasRouter is Router {
56
71
 
57
72
  function _setDestinationGas(uint32 domain, uint256 gas) internal {
58
73
  destinationGas[domain] = gas;
74
+ emit GasSet(domain, gas);
59
75
  }
60
76
 
61
77
  function _GasRouter_dispatch(
@@ -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
  }
@@ -9,6 +9,10 @@ library TypeCasts {
9
9
 
10
10
  // alignment preserving cast
11
11
  function bytes32ToAddress(bytes32 _buf) internal pure returns (address) {
12
+ require(
13
+ uint256(_buf) <= uint256(type(uint160).max),
14
+ "TypeCasts: bytes32ToAddress overflow"
15
+ );
12
16
  return address(uint160(uint256(_buf)));
13
17
  }
14
18
  }
@@ -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,10 +1,25 @@
1
1
  // SPDX-License-Identifier: 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 {TokenRouter} from "./libs/TokenRouter.sol";
5
18
  import {TokenMessage} from "./libs/TokenMessage.sol";
6
19
  import {MailboxClient} from "../client/MailboxClient.sol";
7
20
 
21
+ // ============ External Imports ============
22
+ import {Address} from "@openzeppelin/contracts/utils/Address.sol";
8
23
  import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
9
24
  import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
10
25
 
@@ -22,6 +37,7 @@ contract HypERC20Collateral is TokenRouter {
22
37
  * @param erc20 Address of the token to keep as collateral
23
38
  */
24
39
  constructor(address erc20, address _mailbox) TokenRouter(_mailbox) {
40
+ require(Address.isContract(erc20), "HypERC20Collateral: invalid token");
25
41
  wrappedToken = IERC20(erc20);
26
42
  }
27
43
 
@@ -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,
@@ -47,12 +66,13 @@ contract HypERC4626Collateral is HypERC20Collateral {
47
66
  // Can't override _transferFromSender only because we need to pass shares in the token message
48
67
  _transferFromSender(_amount);
49
68
  uint256 _shares = _depositIntoVault(_amount);
50
- uint256 _exchangeRate = PRECISION.mulDiv(
51
- vault.totalAssets(),
52
- vault.totalSupply(),
53
- Math.Rounding.Down
69
+ uint256 _exchangeRate = vault.convertToAssets(PRECISION);
70
+
71
+ rateUpdateNonce++;
72
+ bytes memory _tokenMetadata = abi.encode(
73
+ _exchangeRate,
74
+ rateUpdateNonce
54
75
  );
55
- bytes memory _tokenMetadata = abi.encode(_exchangeRate);
56
76
 
57
77
  bytes memory _tokenMessage = TokenMessage.format(
58
78
  _recipient,
@@ -97,15 +117,19 @@ contract HypERC4626Collateral is HypERC20Collateral {
97
117
  * @dev Update the exchange rate on the synthetic token by accounting for additional yield accrued to the underlying vault
98
118
  * @param _destinationDomain domain of the vault
99
119
  */
100
- function rebase(uint32 _destinationDomain) public payable {
120
+ function rebase(
121
+ uint32 _destinationDomain,
122
+ bytes calldata _hookMetadata,
123
+ address _hook
124
+ ) public payable {
101
125
  // force a rebase with an empty transfer to 0x1
102
126
  _transferRemote(
103
127
  _destinationDomain,
104
128
  NULL_RECIPIENT,
105
129
  0,
106
130
  msg.value,
107
- bytes(""),
108
- address(0)
131
+ _hookMetadata,
132
+ _hook
109
133
  );
110
134
  }
111
135
  }
@@ -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
  /**
@@ -0,0 +1,113 @@
1
+ // SPDX-License-Identifier: MIT OR Apache-2.0
2
+ pragma solidity >=0.8.0;
3
+
4
+ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
5
+ import {HypERC4626} from "./HypERC4626.sol";
6
+ import {PackageVersioned} from "../../PackageVersioned.sol";
7
+
8
+ /*@@@@@@@ @@@@@@@@@
9
+ @@@@@@@@@ @@@@@@@@@
10
+ @@@@@@@@@ @@@@@@@@@
11
+ @@@@@@@@@ @@@@@@@@@
12
+ @@@@@@@@@@@@@@@@@@@@@@@@@
13
+ @@@@@ HYPERLANE @@@@@@@
14
+ @@@@@@@@@@@@@@@@@@@@@@@@@
15
+ @@@@@@@@@ @@@@@@@@@
16
+ @@@@@@@@@ @@@@@@@@@
17
+ @@@@@@@@@ @@@@@@@@@
18
+ @@@@@@@@@ @@@@@@@@*/
19
+
20
+ /**
21
+ * @title WHypERC4626
22
+ * @author Abacus Works
23
+ * @notice A wrapper for HypERC4626 that allows for wrapping and unwrapping of underlying rebasing tokens
24
+ */
25
+ contract WHypERC4626 is ERC20, PackageVersioned {
26
+ HypERC4626 public immutable underlying;
27
+
28
+ constructor(
29
+ HypERC4626 _underlying,
30
+ string memory name,
31
+ string memory symbol
32
+ ) ERC20(name, symbol) {
33
+ underlying = _underlying;
34
+ }
35
+
36
+ /*
37
+ * @notice Wraps an amount of underlying tokens into wrapped tokens
38
+ * @param _underlyingAmount The amount of underlying tokens to wrap
39
+ * @return The amount of wrapped tokens
40
+ */
41
+ function wrap(uint256 _underlyingAmount) external returns (uint256) {
42
+ require(
43
+ _underlyingAmount > 0,
44
+ "WHypERC4626: wrap amount must be greater than 0"
45
+ );
46
+ uint256 wrappedAmount = underlying.assetsToShares(_underlyingAmount);
47
+ _mint(msg.sender, wrappedAmount);
48
+ underlying.transferFrom(msg.sender, address(this), _underlyingAmount);
49
+ return wrappedAmount;
50
+ }
51
+
52
+ /*
53
+ * @notice Unwraps an amount of wrapped tokens into underlying tokens
54
+ * @param _wrappedAmount The amount of wrapped tokens to unwrap
55
+ * @return The amount of underlying tokens
56
+ */
57
+ function unwrap(uint256 _wrappedAmount) external returns (uint256) {
58
+ require(
59
+ _wrappedAmount > 0,
60
+ "WHypERC4626: unwrap amount must be greater than 0"
61
+ );
62
+ uint256 underlyingAmount = underlying.sharesToAssets(_wrappedAmount);
63
+ _burn(msg.sender, _wrappedAmount);
64
+ underlying.transfer(msg.sender, underlyingAmount);
65
+ return underlyingAmount;
66
+ }
67
+
68
+ /*
69
+ * @notice Gets the amount of wrapped tokens for a given amount of underlying tokens
70
+ * @param _underlyingAmount The amount of underlying tokens
71
+ * @return The amount of wrapped tokens
72
+ */
73
+ function getWrappedAmount(
74
+ uint256 _underlyingAmount
75
+ ) external view returns (uint256) {
76
+ return underlying.assetsToShares(_underlyingAmount);
77
+ }
78
+
79
+ /*
80
+ * @notice Gets the amount of underlying tokens for a given amount of wrapped tokens
81
+ * @param _wrappedAmount The amount of wrapped tokens
82
+ * @return The amount of underlying tokens
83
+ */
84
+ function getUnderlyingAmount(
85
+ uint256 _wrappedAmount
86
+ ) external view returns (uint256) {
87
+ return underlying.sharesToAssets(_wrappedAmount);
88
+ }
89
+
90
+ /*
91
+ * @notice Gets the amount of wrapped tokens for 1 unit of underlying tokens
92
+ * @return The amount of wrapped tokens
93
+ */
94
+ function wrappedPerUnderlying() external view returns (uint256) {
95
+ return underlying.assetsToShares(1 * 10 ** underlying.decimals());
96
+ }
97
+
98
+ /*
99
+ * @notice Gets the amount of underlying tokens for 1 unit of wrapped tokens
100
+ * @return The amount of underlying tokens
101
+ */
102
+ function underlyingPerWrapped() external view returns (uint256) {
103
+ return underlying.sharesToAssets(1 * 10 ** decimals());
104
+ }
105
+
106
+ /*
107
+ * @notice Gets the decimals of the wrapped token
108
+ * @return The decimals of the wrapped token
109
+ */
110
+ function decimals() public view override returns (uint8) {
111
+ return underlying.decimals();
112
+ }
113
+ }