@hyperlane-xyz/core 5.0.0-beta.2 → 5.1.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 (600) hide show
  1. package/contracts/AttributeCheckpointFraud.sol +140 -0
  2. package/contracts/CheckpointFraudProofs.sol +143 -0
  3. package/contracts/client/Router.sol +4 -2
  4. package/contracts/hooks/OPL2ToL1Hook.sol +84 -0
  5. package/contracts/hooks/igp/InterchainGasPaymaster.sol +8 -8
  6. package/contracts/hooks/routing/DomainRoutingHook.sol +8 -7
  7. package/contracts/interfaces/IInterchainSecurityModule.sol +4 -1
  8. package/contracts/interfaces/hooks/IPostDispatchHook.sol +2 -1
  9. package/contracts/interfaces/isms/IWeightedMultisigIsm.sol +39 -0
  10. package/contracts/interfaces/optimism/ICrossDomainMessenger.sol +2 -0
  11. package/contracts/interfaces/optimism/IOptimismPortal.sol +28 -0
  12. package/contracts/isms/hook/OPL2ToL1Ism.sol +109 -0
  13. package/contracts/isms/libs/MerkleRootMultisigIsmMetadata.sol +16 -0
  14. package/contracts/isms/libs/MessageIdMultisigIsmMetadata.sol +16 -0
  15. package/contracts/isms/multisig/AbstractMerkleRootMultisigIsm.sol +14 -9
  16. package/contracts/isms/multisig/AbstractMessageIdMultisigIsm.sol +13 -8
  17. package/contracts/isms/multisig/AbstractMultisigIsm.sol +47 -20
  18. package/contracts/isms/multisig/AbstractWeightedMultisigIsm.sol +100 -0
  19. package/contracts/isms/multisig/StaticMultisigIsm.sol +10 -2
  20. package/contracts/isms/multisig/WeightedMultisigIsm.sol +67 -0
  21. package/contracts/isms/routing/DomainRoutingIsm.sol +4 -2
  22. package/contracts/libs/CheckpointLib.sol +41 -9
  23. package/contracts/libs/Merkle.sol +33 -3
  24. package/contracts/libs/OPL2ToL1Metadata.sol +62 -0
  25. package/contracts/libs/StaticWeightedValidatorSetFactory.sol +97 -0
  26. package/contracts/mock/MockArbBridge.sol +78 -0
  27. package/contracts/mock/MockERC4626YieldSharing.sol +80 -0
  28. package/contracts/mock/MockHyperlaneEnvironment.sol +2 -2
  29. package/contracts/mock/MockOptimism.sol +61 -0
  30. package/contracts/test/ERC20Test.sol +4 -0
  31. package/contracts/test/ERC4626/ERC4626Test.sol +1 -0
  32. package/contracts/token/extensions/HypERC4626.sol +102 -0
  33. package/contracts/token/extensions/HypERC4626Collateral.sol +111 -0
  34. package/contracts/token/extensions/{HypERC20CollateralVaultDeposit.sol → HypERC4626OwnerCollateral.sol} +3 -2
  35. package/dist/buildArtifact.js +1 -1
  36. package/dist/buildArtifact.json +1 -1
  37. package/dist/contracts/AttributeCheckpointFraud.d.ts +356 -0
  38. package/dist/contracts/AttributeCheckpointFraud.d.ts.map +1 -0
  39. package/dist/contracts/AttributeCheckpointFraud.js +2 -0
  40. package/dist/contracts/AttributeCheckpointFraud.js.map +1 -0
  41. package/dist/contracts/CheckpointFraudProofs.d.ts +200 -0
  42. package/dist/contracts/CheckpointFraudProofs.d.ts.map +1 -0
  43. package/dist/contracts/CheckpointFraudProofs.js +2 -0
  44. package/dist/contracts/CheckpointFraudProofs.js.map +1 -0
  45. package/dist/contracts/hooks/OPL2ToL1Hook.d.ts +396 -0
  46. package/dist/contracts/hooks/OPL2ToL1Hook.d.ts.map +1 -0
  47. package/dist/contracts/hooks/OPL2ToL1Hook.js +2 -0
  48. package/dist/contracts/hooks/OPL2ToL1Hook.js.map +1 -0
  49. package/dist/contracts/hooks/index.d.ts +1 -0
  50. package/dist/contracts/hooks/index.d.ts.map +1 -1
  51. package/dist/contracts/index.d.ts +2 -0
  52. package/dist/contracts/index.d.ts.map +1 -1
  53. package/dist/contracts/interfaces/isms/IWeightedMultisigIsm.sol/IStaticWeightedMultisigIsm.d.ts +142 -0
  54. package/dist/contracts/interfaces/isms/IWeightedMultisigIsm.sol/IStaticWeightedMultisigIsm.d.ts.map +1 -0
  55. package/dist/contracts/interfaces/isms/IWeightedMultisigIsm.sol/IStaticWeightedMultisigIsm.js +2 -0
  56. package/dist/contracts/interfaces/isms/IWeightedMultisigIsm.sol/IStaticWeightedMultisigIsm.js.map +1 -0
  57. package/dist/contracts/interfaces/isms/IWeightedMultisigIsm.sol/index.d.ts +2 -0
  58. package/dist/contracts/interfaces/isms/IWeightedMultisigIsm.sol/index.d.ts.map +1 -0
  59. package/dist/contracts/interfaces/isms/IWeightedMultisigIsm.sol/index.js +2 -0
  60. package/dist/contracts/interfaces/isms/IWeightedMultisigIsm.sol/index.js.map +1 -0
  61. package/dist/contracts/interfaces/isms/index.d.ts +2 -0
  62. package/dist/contracts/interfaces/isms/index.d.ts.map +1 -1
  63. package/dist/contracts/interfaces/optimism/ICrossDomainMessenger.sol/ICrossDomainMessenger.d.ts +16 -1
  64. package/dist/contracts/interfaces/optimism/ICrossDomainMessenger.sol/ICrossDomainMessenger.d.ts.map +1 -1
  65. package/dist/contracts/interfaces/optimism/ICrossDomainMessenger.sol/IL1CrossDomainMessenger.d.ts +16 -1
  66. package/dist/contracts/interfaces/optimism/ICrossDomainMessenger.sol/IL1CrossDomainMessenger.d.ts.map +1 -1
  67. package/dist/contracts/interfaces/optimism/ICrossDomainMessenger.sol/IL2CrossDomainMessenger.d.ts +16 -1
  68. package/dist/contracts/interfaces/optimism/ICrossDomainMessenger.sol/IL2CrossDomainMessenger.d.ts.map +1 -1
  69. package/dist/contracts/interfaces/optimism/IOptimismPortal.d.ts +91 -0
  70. package/dist/contracts/interfaces/optimism/IOptimismPortal.d.ts.map +1 -0
  71. package/dist/contracts/interfaces/optimism/IOptimismPortal.js +2 -0
  72. package/dist/contracts/interfaces/optimism/IOptimismPortal.js.map +1 -0
  73. package/dist/contracts/interfaces/optimism/index.d.ts +1 -0
  74. package/dist/contracts/interfaces/optimism/index.d.ts.map +1 -1
  75. package/dist/contracts/isms/hook/OPL2ToL1Ism.d.ts +273 -0
  76. package/dist/contracts/isms/hook/OPL2ToL1Ism.d.ts.map +1 -0
  77. package/dist/contracts/isms/hook/OPL2ToL1Ism.js +2 -0
  78. package/dist/contracts/isms/hook/OPL2ToL1Ism.js.map +1 -0
  79. package/dist/contracts/isms/hook/index.d.ts +1 -0
  80. package/dist/contracts/isms/hook/index.d.ts.map +1 -1
  81. package/dist/contracts/isms/multisig/AbstractMerkleRootMultisigIsm.d.ts +16 -46
  82. package/dist/contracts/isms/multisig/AbstractMerkleRootMultisigIsm.d.ts.map +1 -1
  83. package/dist/contracts/isms/multisig/AbstractMessageIdMultisigIsm.d.ts +16 -46
  84. package/dist/contracts/isms/multisig/AbstractMessageIdMultisigIsm.d.ts.map +1 -1
  85. package/dist/contracts/isms/multisig/AbstractMultisigIsm.sol/AbstractMultisig.d.ts +50 -0
  86. package/dist/contracts/isms/multisig/AbstractMultisigIsm.sol/AbstractMultisig.d.ts.map +1 -0
  87. package/dist/contracts/isms/multisig/AbstractMultisigIsm.sol/AbstractMultisig.js +2 -0
  88. package/dist/contracts/isms/multisig/AbstractMultisigIsm.sol/AbstractMultisig.js.map +1 -0
  89. package/dist/contracts/isms/multisig/{AbstractMultisigIsm.d.ts → AbstractMultisigIsm.sol/AbstractMultisigIsm.d.ts} +17 -17
  90. package/dist/contracts/isms/multisig/AbstractMultisigIsm.sol/AbstractMultisigIsm.d.ts.map +1 -0
  91. package/dist/contracts/isms/multisig/AbstractMultisigIsm.sol/AbstractMultisigIsm.js.map +1 -0
  92. package/dist/contracts/isms/multisig/AbstractMultisigIsm.sol/index.d.ts +3 -0
  93. package/dist/contracts/isms/multisig/AbstractMultisigIsm.sol/index.d.ts.map +1 -0
  94. package/dist/contracts/isms/multisig/AbstractMultisigIsm.sol/index.js +2 -0
  95. package/dist/contracts/isms/multisig/AbstractMultisigIsm.sol/index.js.map +1 -0
  96. package/dist/contracts/isms/multisig/AbstractWeightedMultisigIsm.sol/AbstractStaticWeightedMultisigIsm.d.ts +138 -0
  97. package/dist/contracts/isms/multisig/AbstractWeightedMultisigIsm.sol/AbstractStaticWeightedMultisigIsm.d.ts.map +1 -0
  98. package/dist/contracts/isms/multisig/AbstractWeightedMultisigIsm.sol/AbstractStaticWeightedMultisigIsm.js +2 -0
  99. package/dist/contracts/isms/multisig/AbstractWeightedMultisigIsm.sol/AbstractStaticWeightedMultisigIsm.js.map +1 -0
  100. package/dist/contracts/isms/multisig/AbstractWeightedMultisigIsm.sol/index.d.ts +2 -0
  101. package/dist/contracts/isms/multisig/AbstractWeightedMultisigIsm.sol/index.d.ts.map +1 -0
  102. package/dist/contracts/isms/multisig/AbstractWeightedMultisigIsm.sol/index.js +2 -0
  103. package/dist/contracts/isms/multisig/AbstractWeightedMultisigIsm.sol/index.js.map +1 -0
  104. package/dist/contracts/isms/multisig/StaticMultisigIsm.sol/AbstractMetaProxyMultisigIsm.d.ts +16 -16
  105. package/dist/contracts/isms/multisig/StaticMultisigIsm.sol/AbstractMetaProxyMultisigIsm.d.ts.map +1 -1
  106. package/dist/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm.d.ts +16 -1
  107. package/dist/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm.d.ts.map +1 -1
  108. package/dist/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm.d.ts +16 -1
  109. package/dist/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm.d.ts.map +1 -1
  110. package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/AbstractMetaProxyWeightedMultisigIsm.d.ts +138 -0
  111. package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/AbstractMetaProxyWeightedMultisigIsm.d.ts.map +1 -0
  112. package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/AbstractMetaProxyWeightedMultisigIsm.js +2 -0
  113. package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/AbstractMetaProxyWeightedMultisigIsm.js.map +1 -0
  114. package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsm.d.ts +138 -0
  115. package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsm.d.ts.map +1 -0
  116. package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsm.js +2 -0
  117. package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsm.js.map +1 -0
  118. package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsmFactory.d.ts +106 -0
  119. package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsmFactory.d.ts.map +1 -0
  120. package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsmFactory.js +2 -0
  121. package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsmFactory.js.map +1 -0
  122. package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsm.d.ts +138 -0
  123. package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsm.d.ts.map +1 -0
  124. package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsm.js +2 -0
  125. package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsm.js.map +1 -0
  126. package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsmFactory.d.ts +106 -0
  127. package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsmFactory.d.ts.map +1 -0
  128. package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsmFactory.js +2 -0
  129. package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsmFactory.js.map +1 -0
  130. package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/index.d.ts +6 -0
  131. package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/index.d.ts.map +1 -0
  132. package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/index.js +2 -0
  133. package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/index.js.map +1 -0
  134. package/dist/contracts/isms/multisig/index.d.ts +6 -1
  135. package/dist/contracts/isms/multisig/index.d.ts.map +1 -1
  136. package/dist/contracts/libs/StaticWeightedValidatorSetFactory.d.ts +106 -0
  137. package/dist/contracts/libs/StaticWeightedValidatorSetFactory.d.ts.map +1 -0
  138. package/dist/contracts/libs/StaticWeightedValidatorSetFactory.js +2 -0
  139. package/dist/contracts/libs/StaticWeightedValidatorSetFactory.js.map +1 -0
  140. package/dist/contracts/libs/index.d.ts +1 -0
  141. package/dist/contracts/libs/index.d.ts.map +1 -1
  142. package/dist/contracts/mock/MockArbBridge.sol/MockArbBridge.d.ts +162 -0
  143. package/dist/contracts/mock/MockArbBridge.sol/MockArbBridge.d.ts.map +1 -0
  144. package/dist/contracts/mock/MockArbBridge.sol/MockArbBridge.js +2 -0
  145. package/dist/contracts/mock/MockArbBridge.sol/MockArbBridge.js.map +1 -0
  146. package/dist/contracts/mock/MockArbBridge.sol/MockArbSys.d.ts +96 -0
  147. package/dist/contracts/mock/MockArbBridge.sol/MockArbSys.d.ts.map +1 -0
  148. package/dist/contracts/mock/MockArbBridge.sol/MockArbSys.js +2 -0
  149. package/dist/contracts/mock/MockArbBridge.sol/MockArbSys.js.map +1 -0
  150. package/dist/contracts/mock/MockArbBridge.sol/index.d.ts +3 -0
  151. package/dist/contracts/mock/MockArbBridge.sol/index.d.ts.map +1 -0
  152. package/dist/contracts/mock/MockArbBridge.sol/index.js +2 -0
  153. package/dist/contracts/mock/MockArbBridge.sol/index.js.map +1 -0
  154. package/dist/contracts/mock/MockERC4626YieldSharing.d.ts +853 -0
  155. package/dist/contracts/mock/MockERC4626YieldSharing.d.ts.map +1 -0
  156. package/dist/contracts/mock/MockERC4626YieldSharing.js +2 -0
  157. package/dist/contracts/mock/MockERC4626YieldSharing.js.map +1 -0
  158. package/dist/contracts/mock/MockHyperlaneEnvironment.d.ts +31 -1
  159. package/dist/contracts/mock/MockHyperlaneEnvironment.d.ts.map +1 -1
  160. package/dist/contracts/mock/MockOptimism.sol/MockOptimismMessenger.d.ts +218 -0
  161. package/dist/contracts/mock/MockOptimism.sol/MockOptimismMessenger.d.ts.map +1 -0
  162. package/dist/contracts/mock/MockOptimism.sol/MockOptimismMessenger.js +2 -0
  163. package/dist/contracts/mock/MockOptimism.sol/MockOptimismMessenger.js.map +1 -0
  164. package/dist/contracts/mock/MockOptimism.sol/MockOptimismPortal.d.ts +91 -0
  165. package/dist/contracts/mock/MockOptimism.sol/MockOptimismPortal.d.ts.map +1 -0
  166. package/dist/contracts/mock/MockOptimism.sol/MockOptimismPortal.js +2 -0
  167. package/dist/contracts/mock/MockOptimism.sol/MockOptimismPortal.js.map +1 -0
  168. package/dist/contracts/mock/MockOptimism.sol/index.d.ts +3 -0
  169. package/dist/contracts/mock/MockOptimism.sol/index.d.ts.map +1 -0
  170. package/dist/contracts/mock/MockOptimism.sol/index.js +2 -0
  171. package/dist/contracts/mock/MockOptimism.sol/index.js.map +1 -0
  172. package/dist/contracts/mock/index.d.ts +5 -0
  173. package/dist/contracts/mock/index.d.ts.map +1 -1
  174. package/dist/contracts/test/ERC20Test.sol/ERC20Test.d.ts +32 -1
  175. package/dist/contracts/test/ERC20Test.sol/ERC20Test.d.ts.map +1 -1
  176. package/dist/contracts/test/ERC20Test.sol/FiatTokenTest.d.ts +32 -1
  177. package/dist/contracts/test/ERC20Test.sol/FiatTokenTest.d.ts.map +1 -1
  178. package/dist/contracts/test/ERC20Test.sol/XERC20Test.d.ts +32 -1
  179. package/dist/contracts/test/ERC20Test.sol/XERC20Test.d.ts.map +1 -1
  180. package/dist/contracts/token/extensions/HypERC4626.d.ts +979 -0
  181. package/dist/contracts/token/extensions/HypERC4626.d.ts.map +1 -0
  182. package/dist/contracts/token/extensions/HypERC4626.js +2 -0
  183. package/dist/contracts/token/extensions/HypERC4626.js.map +1 -0
  184. package/dist/contracts/token/extensions/HypERC4626Collateral.d.ts +718 -0
  185. package/dist/contracts/token/extensions/HypERC4626Collateral.d.ts.map +1 -0
  186. package/dist/contracts/token/extensions/HypERC4626Collateral.js +2 -0
  187. package/dist/contracts/token/extensions/HypERC4626Collateral.js.map +1 -0
  188. package/dist/contracts/token/extensions/{HypERC20CollateralVaultDeposit.d.ts → HypERC4626OwnerCollateral.d.ts} +4 -4
  189. package/dist/contracts/token/extensions/HypERC4626OwnerCollateral.d.ts.map +1 -0
  190. package/dist/contracts/token/extensions/HypERC4626OwnerCollateral.js +2 -0
  191. package/dist/contracts/token/extensions/HypERC4626OwnerCollateral.js.map +1 -0
  192. package/dist/contracts/token/extensions/index.d.ts +3 -1
  193. package/dist/contracts/token/extensions/index.d.ts.map +1 -1
  194. package/dist/factories/contracts/AttributeCheckpointFraud__factory.d.ts +296 -0
  195. package/dist/factories/contracts/AttributeCheckpointFraud__factory.d.ts.map +1 -0
  196. package/dist/factories/contracts/AttributeCheckpointFraud__factory.js +394 -0
  197. package/dist/factories/contracts/AttributeCheckpointFraud__factory.js.map +1 -0
  198. package/dist/factories/contracts/CheckpointFraudProofs__factory.d.ts +239 -0
  199. package/dist/factories/contracts/CheckpointFraudProofs__factory.d.ts.map +1 -0
  200. package/dist/factories/contracts/CheckpointFraudProofs__factory.js +325 -0
  201. package/dist/factories/contracts/CheckpointFraudProofs__factory.js.map +1 -0
  202. package/dist/factories/contracts/Mailbox__factory.d.ts +1 -1
  203. package/dist/factories/contracts/Mailbox__factory.js +1 -1
  204. package/dist/factories/contracts/hooks/ArbL2ToL1Hook__factory.d.ts +1 -1
  205. package/dist/factories/contracts/hooks/ArbL2ToL1Hook__factory.js +1 -1
  206. package/dist/factories/contracts/hooks/MerkleTreeHook__factory.d.ts +1 -1
  207. package/dist/factories/contracts/hooks/MerkleTreeHook__factory.js +1 -1
  208. package/dist/factories/contracts/hooks/OPL2ToL1Hook__factory.d.ts +252 -0
  209. package/dist/factories/contracts/hooks/OPL2ToL1Hook__factory.d.ts.map +1 -0
  210. package/dist/factories/contracts/hooks/OPL2ToL1Hook__factory.js +339 -0
  211. package/dist/factories/contracts/hooks/OPL2ToL1Hook__factory.js.map +1 -0
  212. package/dist/factories/contracts/hooks/OPStackHook__factory.d.ts +1 -1
  213. package/dist/factories/contracts/hooks/OPStackHook__factory.js +1 -1
  214. package/dist/factories/contracts/hooks/PausableHook__factory.d.ts +1 -1
  215. package/dist/factories/contracts/hooks/PausableHook__factory.js +1 -1
  216. package/dist/factories/contracts/hooks/PolygonPosHook__factory.d.ts +1 -1
  217. package/dist/factories/contracts/hooks/PolygonPosHook__factory.js +1 -1
  218. package/dist/factories/contracts/hooks/ProtocolFee__factory.d.ts +1 -1
  219. package/dist/factories/contracts/hooks/ProtocolFee__factory.js +1 -1
  220. package/dist/factories/contracts/hooks/aggregation/ERC5164Hook__factory.d.ts +1 -1
  221. package/dist/factories/contracts/hooks/aggregation/ERC5164Hook__factory.js +1 -1
  222. package/dist/factories/contracts/hooks/aggregation/StaticAggregationHookFactory__factory.d.ts +1 -1
  223. package/dist/factories/contracts/hooks/aggregation/StaticAggregationHookFactory__factory.js +1 -1
  224. package/dist/factories/contracts/hooks/aggregation/StaticAggregationHook__factory.d.ts +1 -1
  225. package/dist/factories/contracts/hooks/aggregation/StaticAggregationHook__factory.js +1 -1
  226. package/dist/factories/contracts/hooks/igp/InterchainGasPaymaster__factory.d.ts +1 -1
  227. package/dist/factories/contracts/hooks/igp/InterchainGasPaymaster__factory.d.ts.map +1 -1
  228. package/dist/factories/contracts/hooks/igp/InterchainGasPaymaster__factory.js +1 -1
  229. package/dist/factories/contracts/hooks/igp/InterchainGasPaymaster__factory.js.map +1 -1
  230. package/dist/factories/contracts/hooks/index.d.ts +1 -0
  231. package/dist/factories/contracts/hooks/index.d.ts.map +1 -1
  232. package/dist/factories/contracts/hooks/index.js +1 -0
  233. package/dist/factories/contracts/hooks/index.js.map +1 -1
  234. package/dist/factories/contracts/hooks/layer-zero/LayerZeroV1Hook__factory.d.ts +1 -1
  235. package/dist/factories/contracts/hooks/layer-zero/LayerZeroV1Hook__factory.js +1 -1
  236. package/dist/factories/contracts/hooks/layer-zero/LayerZeroV2Hook__factory.d.ts +1 -1
  237. package/dist/factories/contracts/hooks/layer-zero/LayerZeroV2Hook__factory.js +1 -1
  238. package/dist/factories/contracts/hooks/routing/DestinationRecipientRoutingHook__factory.d.ts +1 -1
  239. package/dist/factories/contracts/hooks/routing/DestinationRecipientRoutingHook__factory.d.ts.map +1 -1
  240. package/dist/factories/contracts/hooks/routing/DestinationRecipientRoutingHook__factory.js +1 -1
  241. package/dist/factories/contracts/hooks/routing/DestinationRecipientRoutingHook__factory.js.map +1 -1
  242. package/dist/factories/contracts/hooks/routing/DomainRoutingHook__factory.d.ts +1 -1
  243. package/dist/factories/contracts/hooks/routing/DomainRoutingHook__factory.d.ts.map +1 -1
  244. package/dist/factories/contracts/hooks/routing/DomainRoutingHook__factory.js +1 -1
  245. package/dist/factories/contracts/hooks/routing/DomainRoutingHook__factory.js.map +1 -1
  246. package/dist/factories/contracts/hooks/routing/FallbackDomainRoutingHook__factory.d.ts +1 -1
  247. package/dist/factories/contracts/hooks/routing/FallbackDomainRoutingHook__factory.js +1 -1
  248. package/dist/factories/contracts/hooks/warp-route/RateLimitedHook__factory.d.ts +1 -1
  249. package/dist/factories/contracts/hooks/warp-route/RateLimitedHook__factory.js +1 -1
  250. package/dist/factories/contracts/index.d.ts +2 -0
  251. package/dist/factories/contracts/index.d.ts.map +1 -1
  252. package/dist/factories/contracts/index.js +2 -0
  253. package/dist/factories/contracts/index.js.map +1 -1
  254. package/dist/factories/contracts/interfaces/isms/IWeightedMultisigIsm.sol/IStaticWeightedMultisigIsm__factory.d.ts +64 -0
  255. package/dist/factories/contracts/interfaces/isms/IWeightedMultisigIsm.sol/IStaticWeightedMultisigIsm__factory.d.ts.map +1 -0
  256. package/dist/factories/contracts/interfaces/isms/IWeightedMultisigIsm.sol/IStaticWeightedMultisigIsm__factory.js +89 -0
  257. package/dist/factories/contracts/interfaces/isms/IWeightedMultisigIsm.sol/IStaticWeightedMultisigIsm__factory.js.map +1 -0
  258. package/dist/factories/contracts/interfaces/isms/IWeightedMultisigIsm.sol/index.d.ts +2 -0
  259. package/dist/factories/contracts/interfaces/isms/IWeightedMultisigIsm.sol/index.d.ts.map +1 -0
  260. package/dist/factories/contracts/interfaces/isms/IWeightedMultisigIsm.sol/index.js +5 -0
  261. package/dist/factories/contracts/interfaces/isms/IWeightedMultisigIsm.sol/index.js.map +1 -0
  262. package/dist/factories/contracts/interfaces/isms/index.d.ts +1 -0
  263. package/dist/factories/contracts/interfaces/isms/index.d.ts.map +1 -1
  264. package/dist/factories/contracts/interfaces/isms/index.js +1 -0
  265. package/dist/factories/contracts/interfaces/isms/index.js.map +1 -1
  266. package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/ICrossDomainMessenger__factory.d.ts +10 -0
  267. package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/ICrossDomainMessenger__factory.d.ts.map +1 -1
  268. package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/ICrossDomainMessenger__factory.js +13 -0
  269. package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/ICrossDomainMessenger__factory.js.map +1 -1
  270. package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/IL1CrossDomainMessenger__factory.d.ts +10 -0
  271. package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/IL1CrossDomainMessenger__factory.d.ts.map +1 -1
  272. package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/IL1CrossDomainMessenger__factory.js +13 -0
  273. package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/IL1CrossDomainMessenger__factory.js.map +1 -1
  274. package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/IL2CrossDomainMessenger__factory.d.ts +10 -0
  275. package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/IL2CrossDomainMessenger__factory.d.ts.map +1 -1
  276. package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/IL2CrossDomainMessenger__factory.js +13 -0
  277. package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/IL2CrossDomainMessenger__factory.js.map +1 -1
  278. package/dist/factories/contracts/interfaces/optimism/IOptimismPortal__factory.d.ts +44 -0
  279. package/dist/factories/contracts/interfaces/optimism/IOptimismPortal__factory.d.ts.map +1 -0
  280. package/dist/factories/contracts/interfaces/optimism/IOptimismPortal__factory.js +61 -0
  281. package/dist/factories/contracts/interfaces/optimism/IOptimismPortal__factory.js.map +1 -0
  282. package/dist/factories/contracts/interfaces/optimism/index.d.ts +1 -0
  283. package/dist/factories/contracts/interfaces/optimism/index.d.ts.map +1 -1
  284. package/dist/factories/contracts/interfaces/optimism/index.js +1 -0
  285. package/dist/factories/contracts/interfaces/optimism/index.js.map +1 -1
  286. package/dist/factories/contracts/isms/NoopIsm__factory.d.ts +1 -1
  287. package/dist/factories/contracts/isms/NoopIsm__factory.js +1 -1
  288. package/dist/factories/contracts/isms/PausableIsm__factory.d.ts +1 -1
  289. package/dist/factories/contracts/isms/PausableIsm__factory.js +1 -1
  290. package/dist/factories/contracts/isms/TrustedRelayerIsm__factory.d.ts +1 -1
  291. package/dist/factories/contracts/isms/TrustedRelayerIsm__factory.js +1 -1
  292. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsmFactory__factory.d.ts +1 -1
  293. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsmFactory__factory.js +1 -1
  294. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsm__factory.d.ts +1 -1
  295. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsm__factory.js +1 -1
  296. package/dist/factories/contracts/isms/hook/ArbL2ToL1Ism__factory.d.ts +1 -1
  297. package/dist/factories/contracts/isms/hook/ArbL2ToL1Ism__factory.js +1 -1
  298. package/dist/factories/contracts/isms/hook/ERC5164Ism__factory.d.ts +1 -1
  299. package/dist/factories/contracts/isms/hook/ERC5164Ism__factory.js +1 -1
  300. package/dist/factories/contracts/isms/hook/OPL2ToL1Ism__factory.d.ts +169 -0
  301. package/dist/factories/contracts/isms/hook/OPL2ToL1Ism__factory.d.ts.map +1 -0
  302. package/dist/factories/contracts/isms/hook/OPL2ToL1Ism__factory.js +234 -0
  303. package/dist/factories/contracts/isms/hook/OPL2ToL1Ism__factory.js.map +1 -0
  304. package/dist/factories/contracts/isms/hook/OPStackIsm__factory.d.ts +1 -1
  305. package/dist/factories/contracts/isms/hook/OPStackIsm__factory.js +1 -1
  306. package/dist/factories/contracts/isms/hook/PolygonPosIsm__factory.d.ts +1 -1
  307. package/dist/factories/contracts/isms/hook/PolygonPosIsm__factory.js +1 -1
  308. package/dist/factories/contracts/isms/hook/index.d.ts +1 -0
  309. package/dist/factories/contracts/isms/hook/index.d.ts.map +1 -1
  310. package/dist/factories/contracts/isms/hook/index.js +1 -0
  311. package/dist/factories/contracts/isms/hook/index.js.map +1 -1
  312. package/dist/factories/contracts/isms/hook/layer-zero/LayerZeroV2Ism__factory.d.ts +1 -1
  313. package/dist/factories/contracts/isms/hook/layer-zero/LayerZeroV2Ism__factory.js +1 -1
  314. package/dist/factories/contracts/isms/multisig/AbstractMerkleRootMultisigIsm__factory.d.ts +4 -36
  315. package/dist/factories/contracts/isms/multisig/AbstractMerkleRootMultisigIsm__factory.d.ts.map +1 -1
  316. package/dist/factories/contracts/isms/multisig/AbstractMerkleRootMultisigIsm__factory.js +4 -46
  317. package/dist/factories/contracts/isms/multisig/AbstractMerkleRootMultisigIsm__factory.js.map +1 -1
  318. package/dist/factories/contracts/isms/multisig/AbstractMessageIdMultisigIsm__factory.d.ts +4 -36
  319. package/dist/factories/contracts/isms/multisig/AbstractMessageIdMultisigIsm__factory.d.ts.map +1 -1
  320. package/dist/factories/contracts/isms/multisig/AbstractMessageIdMultisigIsm__factory.js +4 -46
  321. package/dist/factories/contracts/isms/multisig/AbstractMessageIdMultisigIsm__factory.js.map +1 -1
  322. package/dist/factories/contracts/isms/multisig/{AbstractMultisigIsm__factory.d.ts → AbstractMultisigIsm.sol/AbstractMultisigIsm__factory.d.ts} +10 -6
  323. package/dist/factories/contracts/isms/multisig/AbstractMultisigIsm.sol/AbstractMultisigIsm__factory.d.ts.map +1 -0
  324. package/dist/factories/contracts/isms/multisig/{AbstractMultisigIsm__factory.js → AbstractMultisigIsm.sol/AbstractMultisigIsm__factory.js} +11 -5
  325. package/dist/factories/contracts/isms/multisig/AbstractMultisigIsm.sol/AbstractMultisigIsm__factory.js.map +1 -0
  326. package/dist/factories/contracts/isms/multisig/AbstractMultisigIsm.sol/AbstractMultisig__factory.d.ts +23 -0
  327. package/dist/factories/contracts/isms/multisig/AbstractMultisigIsm.sol/AbstractMultisig__factory.d.ts.map +1 -0
  328. package/dist/factories/contracts/isms/multisig/AbstractMultisigIsm.sol/AbstractMultisig__factory.js +35 -0
  329. package/dist/factories/contracts/isms/multisig/AbstractMultisigIsm.sol/AbstractMultisig__factory.js.map +1 -0
  330. package/dist/factories/contracts/isms/multisig/AbstractMultisigIsm.sol/index.d.ts +3 -0
  331. package/dist/factories/contracts/isms/multisig/AbstractMultisigIsm.sol/index.d.ts.map +1 -0
  332. package/dist/factories/contracts/isms/multisig/AbstractMultisigIsm.sol/index.js +6 -0
  333. package/dist/factories/contracts/isms/multisig/AbstractMultisigIsm.sol/index.js.map +1 -0
  334. package/dist/factories/contracts/isms/multisig/AbstractWeightedMultisigIsm.sol/AbstractStaticWeightedMultisigIsm__factory.d.ts +88 -0
  335. package/dist/factories/contracts/isms/multisig/AbstractWeightedMultisigIsm.sol/AbstractStaticWeightedMultisigIsm__factory.d.ts.map +1 -0
  336. package/dist/factories/contracts/isms/multisig/AbstractWeightedMultisigIsm.sol/AbstractStaticWeightedMultisigIsm__factory.js +121 -0
  337. package/dist/factories/contracts/isms/multisig/AbstractWeightedMultisigIsm.sol/AbstractStaticWeightedMultisigIsm__factory.js.map +1 -0
  338. package/dist/factories/contracts/isms/multisig/AbstractWeightedMultisigIsm.sol/index.d.ts +2 -0
  339. package/dist/factories/contracts/isms/multisig/AbstractWeightedMultisigIsm.sol/index.d.ts.map +1 -0
  340. package/dist/factories/contracts/isms/multisig/AbstractWeightedMultisigIsm.sol/index.js +5 -0
  341. package/dist/factories/contracts/isms/multisig/AbstractWeightedMultisigIsm.sol/index.js.map +1 -0
  342. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/AbstractMetaProxyMultisigIsm__factory.d.ts +9 -5
  343. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/AbstractMetaProxyMultisigIsm__factory.d.ts.map +1 -1
  344. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/AbstractMetaProxyMultisigIsm__factory.js +11 -5
  345. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/AbstractMetaProxyMultisigIsm__factory.js.map +1 -1
  346. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsmFactory__factory.d.ts +1 -1
  347. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsmFactory__factory.d.ts.map +1 -1
  348. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsmFactory__factory.js +1 -1
  349. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsmFactory__factory.js.map +1 -1
  350. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm__factory.d.ts +15 -1
  351. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm__factory.d.ts.map +1 -1
  352. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm__factory.js +20 -1
  353. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm__factory.js.map +1 -1
  354. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsmFactory__factory.d.ts +1 -1
  355. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsmFactory__factory.d.ts.map +1 -1
  356. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsmFactory__factory.js +1 -1
  357. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsmFactory__factory.js.map +1 -1
  358. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm__factory.d.ts +15 -1
  359. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm__factory.d.ts.map +1 -1
  360. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm__factory.js +20 -1
  361. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm__factory.js.map +1 -1
  362. package/dist/factories/contracts/isms/multisig/ValidatorAnnounce__factory.d.ts +1 -1
  363. package/dist/factories/contracts/isms/multisig/ValidatorAnnounce__factory.js +1 -1
  364. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/AbstractMetaProxyWeightedMultisigIsm__factory.d.ts +88 -0
  365. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/AbstractMetaProxyWeightedMultisigIsm__factory.d.ts.map +1 -0
  366. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/AbstractMetaProxyWeightedMultisigIsm__factory.js +121 -0
  367. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/AbstractMetaProxyWeightedMultisigIsm__factory.js.map +1 -0
  368. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsmFactory__factory.d.ts +85 -0
  369. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsmFactory__factory.d.ts.map +1 -0
  370. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsmFactory__factory.js +124 -0
  371. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsmFactory__factory.js.map +1 -0
  372. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsm__factory.d.ts +100 -0
  373. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsm__factory.d.ts.map +1 -0
  374. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsm__factory.js +144 -0
  375. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsm__factory.js.map +1 -0
  376. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsmFactory__factory.d.ts +85 -0
  377. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsmFactory__factory.d.ts.map +1 -0
  378. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsmFactory__factory.js +124 -0
  379. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsmFactory__factory.js.map +1 -0
  380. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsm__factory.d.ts +100 -0
  381. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsm__factory.d.ts.map +1 -0
  382. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsm__factory.js +144 -0
  383. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsm__factory.js.map +1 -0
  384. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/index.d.ts +6 -0
  385. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/index.d.ts.map +1 -0
  386. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/index.js +9 -0
  387. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/index.js.map +1 -0
  388. package/dist/factories/contracts/isms/multisig/index.d.ts +3 -1
  389. package/dist/factories/contracts/isms/multisig/index.d.ts.map +1 -1
  390. package/dist/factories/contracts/isms/multisig/index.js +3 -1
  391. package/dist/factories/contracts/isms/multisig/index.js.map +1 -1
  392. package/dist/factories/contracts/isms/routing/DefaultFallbackRoutingIsm__factory.d.ts +1 -1
  393. package/dist/factories/contracts/isms/routing/DefaultFallbackRoutingIsm__factory.js +1 -1
  394. package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory.sol/DomainRoutingIsmFactory__factory.d.ts +1 -1
  395. package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory.sol/DomainRoutingIsmFactory__factory.d.ts.map +1 -1
  396. package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory.sol/DomainRoutingIsmFactory__factory.js +1 -1
  397. package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory.sol/DomainRoutingIsmFactory__factory.js.map +1 -1
  398. package/dist/factories/contracts/isms/routing/DomainRoutingIsm__factory.d.ts +1 -1
  399. package/dist/factories/contracts/isms/routing/DomainRoutingIsm__factory.d.ts.map +1 -1
  400. package/dist/factories/contracts/isms/routing/DomainRoutingIsm__factory.js +1 -1
  401. package/dist/factories/contracts/isms/routing/DomainRoutingIsm__factory.js.map +1 -1
  402. package/dist/factories/contracts/isms/routing/InterchainAccountIsm__factory.d.ts +1 -1
  403. package/dist/factories/contracts/isms/routing/InterchainAccountIsm__factory.js +1 -1
  404. package/dist/factories/contracts/isms/warp-route/RateLimitedIsm__factory.d.ts +1 -1
  405. package/dist/factories/contracts/isms/warp-route/RateLimitedIsm__factory.js +1 -1
  406. package/dist/factories/contracts/libs/StaticWeightedValidatorSetFactory__factory.d.ts +73 -0
  407. package/dist/factories/contracts/libs/StaticWeightedValidatorSetFactory__factory.d.ts.map +1 -0
  408. package/dist/factories/contracts/libs/StaticWeightedValidatorSetFactory__factory.js +101 -0
  409. package/dist/factories/contracts/libs/StaticWeightedValidatorSetFactory__factory.js.map +1 -0
  410. package/dist/factories/contracts/libs/index.d.ts +1 -0
  411. package/dist/factories/contracts/libs/index.d.ts.map +1 -1
  412. package/dist/factories/contracts/libs/index.js +1 -0
  413. package/dist/factories/contracts/libs/index.js.map +1 -1
  414. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.d.ts +1 -1
  415. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.d.ts.map +1 -1
  416. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.js +1 -1
  417. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.js.map +1 -1
  418. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.d.ts +1 -1
  419. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.d.ts.map +1 -1
  420. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.js +1 -1
  421. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.js.map +1 -1
  422. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.d.ts +1 -1
  423. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.d.ts.map +1 -1
  424. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.js +1 -1
  425. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.js.map +1 -1
  426. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.d.ts +1 -1
  427. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.d.ts.map +1 -1
  428. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.js +1 -1
  429. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.js.map +1 -1
  430. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.d.ts +1 -1
  431. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.d.ts.map +1 -1
  432. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.js +1 -1
  433. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.js.map +1 -1
  434. package/dist/factories/contracts/mock/MockArbBridge.sol/MockArbBridge__factory.d.ts +111 -0
  435. package/dist/factories/contracts/mock/MockArbBridge.sol/MockArbBridge__factory.d.ts.map +1 -0
  436. package/dist/factories/contracts/mock/MockArbBridge.sol/MockArbBridge__factory.js +154 -0
  437. package/dist/factories/contracts/mock/MockArbBridge.sol/MockArbBridge__factory.js.map +1 -0
  438. package/dist/factories/contracts/mock/MockArbBridge.sol/MockArbSys__factory.d.ts +89 -0
  439. package/dist/factories/contracts/mock/MockArbBridge.sol/MockArbSys__factory.d.ts.map +1 -0
  440. package/dist/factories/contracts/mock/MockArbBridge.sol/MockArbSys__factory.js +124 -0
  441. package/dist/factories/contracts/mock/MockArbBridge.sol/MockArbSys__factory.js.map +1 -0
  442. package/dist/factories/contracts/mock/MockArbBridge.sol/index.d.ts +3 -0
  443. package/dist/factories/contracts/mock/MockArbBridge.sol/index.d.ts.map +1 -0
  444. package/dist/factories/contracts/mock/MockArbBridge.sol/index.js +6 -0
  445. package/dist/factories/contracts/mock/MockArbBridge.sol/index.js.map +1 -0
  446. package/dist/factories/contracts/mock/MockERC4626YieldSharing__factory.d.ts +643 -0
  447. package/dist/factories/contracts/mock/MockERC4626YieldSharing__factory.d.ts.map +1 -0
  448. package/dist/factories/contracts/mock/MockERC4626YieldSharing__factory.js +855 -0
  449. package/dist/factories/contracts/mock/MockERC4626YieldSharing__factory.js.map +1 -0
  450. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.d.ts +21 -1
  451. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.d.ts.map +1 -1
  452. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.js +27 -1
  453. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.js.map +1 -1
  454. package/dist/factories/contracts/mock/MockMailbox__factory.d.ts +1 -1
  455. package/dist/factories/contracts/mock/MockMailbox__factory.js +1 -1
  456. package/dist/factories/contracts/mock/MockOptimism.sol/MockOptimismMessenger__factory.d.ts +119 -0
  457. package/dist/factories/contracts/mock/MockOptimism.sol/MockOptimismMessenger__factory.d.ts.map +1 -0
  458. package/dist/factories/contracts/mock/MockOptimism.sol/MockOptimismMessenger__factory.js +165 -0
  459. package/dist/factories/contracts/mock/MockOptimism.sol/MockOptimismMessenger__factory.js.map +1 -0
  460. package/dist/factories/contracts/mock/MockOptimism.sol/MockOptimismPortal__factory.d.ts +60 -0
  461. package/dist/factories/contracts/mock/MockOptimism.sol/MockOptimismPortal__factory.d.ts.map +1 -0
  462. package/dist/factories/contracts/mock/MockOptimism.sol/MockOptimismPortal__factory.js +89 -0
  463. package/dist/factories/contracts/mock/MockOptimism.sol/MockOptimismPortal__factory.js.map +1 -0
  464. package/dist/factories/contracts/mock/MockOptimism.sol/index.d.ts +3 -0
  465. package/dist/factories/contracts/mock/MockOptimism.sol/index.d.ts.map +1 -0
  466. package/dist/factories/contracts/mock/MockOptimism.sol/index.js +6 -0
  467. package/dist/factories/contracts/mock/MockOptimism.sol/index.js.map +1 -0
  468. package/dist/factories/contracts/mock/index.d.ts +3 -0
  469. package/dist/factories/contracts/mock/index.d.ts.map +1 -1
  470. package/dist/factories/contracts/mock/index.js +3 -0
  471. package/dist/factories/contracts/mock/index.js.map +1 -1
  472. package/dist/factories/contracts/test/ERC20Test.sol/ERC20Test__factory.d.ts +15 -1
  473. package/dist/factories/contracts/test/ERC20Test.sol/ERC20Test__factory.d.ts.map +1 -1
  474. package/dist/factories/contracts/test/ERC20Test.sol/ERC20Test__factory.js +19 -1
  475. package/dist/factories/contracts/test/ERC20Test.sol/ERC20Test__factory.js.map +1 -1
  476. package/dist/factories/contracts/test/ERC20Test.sol/FiatTokenTest__factory.d.ts +15 -1
  477. package/dist/factories/contracts/test/ERC20Test.sol/FiatTokenTest__factory.d.ts.map +1 -1
  478. package/dist/factories/contracts/test/ERC20Test.sol/FiatTokenTest__factory.js +19 -1
  479. package/dist/factories/contracts/test/ERC20Test.sol/FiatTokenTest__factory.js.map +1 -1
  480. package/dist/factories/contracts/test/ERC20Test.sol/XERC20LockboxTest__factory.d.ts +1 -1
  481. package/dist/factories/contracts/test/ERC20Test.sol/XERC20LockboxTest__factory.d.ts.map +1 -1
  482. package/dist/factories/contracts/test/ERC20Test.sol/XERC20LockboxTest__factory.js +1 -1
  483. package/dist/factories/contracts/test/ERC20Test.sol/XERC20LockboxTest__factory.js.map +1 -1
  484. package/dist/factories/contracts/test/ERC20Test.sol/XERC20Test__factory.d.ts +15 -1
  485. package/dist/factories/contracts/test/ERC20Test.sol/XERC20Test__factory.d.ts.map +1 -1
  486. package/dist/factories/contracts/test/ERC20Test.sol/XERC20Test__factory.js +19 -1
  487. package/dist/factories/contracts/test/ERC20Test.sol/XERC20Test__factory.js.map +1 -1
  488. package/dist/factories/contracts/test/ERC4626/ERC4626Test__factory.d.ts +1 -1
  489. package/dist/factories/contracts/test/ERC4626/ERC4626Test__factory.js +1 -1
  490. package/dist/factories/contracts/test/LightTestRecipient__factory.d.ts +1 -1
  491. package/dist/factories/contracts/test/LightTestRecipient__factory.js +1 -1
  492. package/dist/factories/contracts/test/TestGasRouter__factory.d.ts +1 -1
  493. package/dist/factories/contracts/test/TestGasRouter__factory.d.ts.map +1 -1
  494. package/dist/factories/contracts/test/TestGasRouter__factory.js +1 -1
  495. package/dist/factories/contracts/test/TestGasRouter__factory.js.map +1 -1
  496. package/dist/factories/contracts/test/TestInterchainGasPaymaster__factory.d.ts +1 -1
  497. package/dist/factories/contracts/test/TestInterchainGasPaymaster__factory.d.ts.map +1 -1
  498. package/dist/factories/contracts/test/TestInterchainGasPaymaster__factory.js +1 -1
  499. package/dist/factories/contracts/test/TestInterchainGasPaymaster__factory.js.map +1 -1
  500. package/dist/factories/contracts/test/TestIsm__factory.d.ts +1 -1
  501. package/dist/factories/contracts/test/TestIsm__factory.js +1 -1
  502. package/dist/factories/contracts/test/TestMailbox__factory.d.ts +1 -1
  503. package/dist/factories/contracts/test/TestMailbox__factory.js +1 -1
  504. package/dist/factories/contracts/test/TestMerkleTreeHook__factory.d.ts +1 -1
  505. package/dist/factories/contracts/test/TestMerkleTreeHook__factory.js +1 -1
  506. package/dist/factories/contracts/test/TestMerkle__factory.d.ts +1 -1
  507. package/dist/factories/contracts/test/TestMerkle__factory.js +1 -1
  508. package/dist/factories/contracts/test/TestPostDispatchHook__factory.d.ts +1 -1
  509. package/dist/factories/contracts/test/TestPostDispatchHook__factory.js +1 -1
  510. package/dist/factories/contracts/test/TestQuerySender__factory.d.ts +1 -1
  511. package/dist/factories/contracts/test/TestQuerySender__factory.js +1 -1
  512. package/dist/factories/contracts/test/TestQuery__factory.d.ts +1 -1
  513. package/dist/factories/contracts/test/TestQuery__factory.js +1 -1
  514. package/dist/factories/contracts/test/TestRecipient__factory.d.ts +1 -1
  515. package/dist/factories/contracts/test/TestRecipient__factory.js +1 -1
  516. package/dist/factories/contracts/test/TestRouter__factory.d.ts +1 -1
  517. package/dist/factories/contracts/test/TestRouter__factory.d.ts.map +1 -1
  518. package/dist/factories/contracts/test/TestRouter__factory.js +1 -1
  519. package/dist/factories/contracts/test/TestRouter__factory.js.map +1 -1
  520. package/dist/factories/contracts/test/TestSendReceiver__factory.d.ts +1 -1
  521. package/dist/factories/contracts/test/TestSendReceiver__factory.js +1 -1
  522. package/dist/factories/contracts/token/HypERC20Collateral__factory.d.ts +1 -1
  523. package/dist/factories/contracts/token/HypERC20Collateral__factory.d.ts.map +1 -1
  524. package/dist/factories/contracts/token/HypERC20Collateral__factory.js +1 -1
  525. package/dist/factories/contracts/token/HypERC20Collateral__factory.js.map +1 -1
  526. package/dist/factories/contracts/token/HypERC20__factory.d.ts +1 -1
  527. package/dist/factories/contracts/token/HypERC20__factory.d.ts.map +1 -1
  528. package/dist/factories/contracts/token/HypERC20__factory.js +1 -1
  529. package/dist/factories/contracts/token/HypERC20__factory.js.map +1 -1
  530. package/dist/factories/contracts/token/HypERC721Collateral__factory.d.ts +1 -1
  531. package/dist/factories/contracts/token/HypERC721Collateral__factory.d.ts.map +1 -1
  532. package/dist/factories/contracts/token/HypERC721Collateral__factory.js +1 -1
  533. package/dist/factories/contracts/token/HypERC721Collateral__factory.js.map +1 -1
  534. package/dist/factories/contracts/token/HypERC721__factory.d.ts +1 -1
  535. package/dist/factories/contracts/token/HypERC721__factory.js +1 -1
  536. package/dist/factories/contracts/token/HypNative__factory.d.ts +1 -1
  537. package/dist/factories/contracts/token/HypNative__factory.d.ts.map +1 -1
  538. package/dist/factories/contracts/token/HypNative__factory.js +1 -1
  539. package/dist/factories/contracts/token/HypNative__factory.js.map +1 -1
  540. package/dist/factories/contracts/token/extensions/FastHypERC20Collateral__factory.d.ts +1 -1
  541. package/dist/factories/contracts/token/extensions/FastHypERC20Collateral__factory.d.ts.map +1 -1
  542. package/dist/factories/contracts/token/extensions/FastHypERC20Collateral__factory.js +1 -1
  543. package/dist/factories/contracts/token/extensions/FastHypERC20Collateral__factory.js.map +1 -1
  544. package/dist/factories/contracts/token/extensions/FastHypERC20__factory.d.ts +1 -1
  545. package/dist/factories/contracts/token/extensions/FastHypERC20__factory.d.ts.map +1 -1
  546. package/dist/factories/contracts/token/extensions/FastHypERC20__factory.js +1 -1
  547. package/dist/factories/contracts/token/extensions/FastHypERC20__factory.js.map +1 -1
  548. package/dist/factories/contracts/token/extensions/HypERC4626Collateral__factory.d.ts +469 -0
  549. package/dist/factories/contracts/token/extensions/HypERC4626Collateral__factory.d.ts.map +1 -0
  550. package/dist/factories/contracts/token/extensions/HypERC4626Collateral__factory.js +621 -0
  551. package/dist/factories/contracts/token/extensions/HypERC4626Collateral__factory.js.map +1 -0
  552. package/dist/factories/contracts/token/extensions/{HypERC20CollateralVaultDeposit__factory.d.ts → HypERC4626OwnerCollateral__factory.d.ts} +11 -11
  553. package/dist/factories/contracts/token/extensions/HypERC4626OwnerCollateral__factory.d.ts.map +1 -0
  554. package/dist/factories/contracts/token/extensions/{HypERC20CollateralVaultDeposit__factory.js → HypERC4626OwnerCollateral__factory.js} +3 -3
  555. package/dist/factories/contracts/token/extensions/HypERC4626OwnerCollateral__factory.js.map +1 -0
  556. package/dist/factories/contracts/token/extensions/HypERC4626__factory.d.ts +699 -0
  557. package/dist/factories/contracts/token/extensions/HypERC4626__factory.d.ts.map +1 -0
  558. package/dist/factories/contracts/token/extensions/HypERC4626__factory.js +923 -0
  559. package/dist/factories/contracts/token/extensions/HypERC4626__factory.js.map +1 -0
  560. package/dist/factories/contracts/token/extensions/HypERC721URICollateral__factory.d.ts +1 -1
  561. package/dist/factories/contracts/token/extensions/HypERC721URICollateral__factory.d.ts.map +1 -1
  562. package/dist/factories/contracts/token/extensions/HypERC721URICollateral__factory.js +1 -1
  563. package/dist/factories/contracts/token/extensions/HypERC721URICollateral__factory.js.map +1 -1
  564. package/dist/factories/contracts/token/extensions/HypERC721URIStorage__factory.d.ts +1 -1
  565. package/dist/factories/contracts/token/extensions/HypERC721URIStorage__factory.js +1 -1
  566. package/dist/factories/contracts/token/extensions/HypFiatToken__factory.d.ts +1 -1
  567. package/dist/factories/contracts/token/extensions/HypFiatToken__factory.d.ts.map +1 -1
  568. package/dist/factories/contracts/token/extensions/HypFiatToken__factory.js +1 -1
  569. package/dist/factories/contracts/token/extensions/HypFiatToken__factory.js.map +1 -1
  570. package/dist/factories/contracts/token/extensions/HypNativeScaled__factory.d.ts +1 -1
  571. package/dist/factories/contracts/token/extensions/HypNativeScaled__factory.d.ts.map +1 -1
  572. package/dist/factories/contracts/token/extensions/HypNativeScaled__factory.js +1 -1
  573. package/dist/factories/contracts/token/extensions/HypNativeScaled__factory.js.map +1 -1
  574. package/dist/factories/contracts/token/extensions/HypXERC20Lockbox__factory.d.ts +1 -1
  575. package/dist/factories/contracts/token/extensions/HypXERC20Lockbox__factory.d.ts.map +1 -1
  576. package/dist/factories/contracts/token/extensions/HypXERC20Lockbox__factory.js +1 -1
  577. package/dist/factories/contracts/token/extensions/HypXERC20Lockbox__factory.js.map +1 -1
  578. package/dist/factories/contracts/token/extensions/HypXERC20__factory.d.ts +1 -1
  579. package/dist/factories/contracts/token/extensions/HypXERC20__factory.d.ts.map +1 -1
  580. package/dist/factories/contracts/token/extensions/HypXERC20__factory.js +1 -1
  581. package/dist/factories/contracts/token/extensions/HypXERC20__factory.js.map +1 -1
  582. package/dist/factories/contracts/token/extensions/index.d.ts +3 -1
  583. package/dist/factories/contracts/token/extensions/index.d.ts.map +1 -1
  584. package/dist/factories/contracts/token/extensions/index.js +3 -1
  585. package/dist/factories/contracts/token/extensions/index.js.map +1 -1
  586. package/dist/index.d.ts +46 -4
  587. package/dist/index.d.ts.map +1 -1
  588. package/dist/index.js +23 -2
  589. package/dist/index.js.map +1 -1
  590. package/package.json +5 -4
  591. package/dist/contracts/isms/multisig/AbstractMultisigIsm.d.ts.map +0 -1
  592. package/dist/contracts/isms/multisig/AbstractMultisigIsm.js.map +0 -1
  593. package/dist/contracts/token/extensions/HypERC20CollateralVaultDeposit.d.ts.map +0 -1
  594. package/dist/contracts/token/extensions/HypERC20CollateralVaultDeposit.js +0 -2
  595. package/dist/contracts/token/extensions/HypERC20CollateralVaultDeposit.js.map +0 -1
  596. package/dist/factories/contracts/isms/multisig/AbstractMultisigIsm__factory.d.ts.map +0 -1
  597. package/dist/factories/contracts/isms/multisig/AbstractMultisigIsm__factory.js.map +0 -1
  598. package/dist/factories/contracts/token/extensions/HypERC20CollateralVaultDeposit__factory.d.ts.map +0 -1
  599. package/dist/factories/contracts/token/extensions/HypERC20CollateralVaultDeposit__factory.js.map +0 -1
  600. /package/dist/contracts/isms/multisig/{AbstractMultisigIsm.js → AbstractMultisigIsm.sol/AbstractMultisigIsm.js} +0 -0
@@ -0,0 +1,140 @@
1
+ // SPDX-License-Identifier: MIT OR Apache-2.0
2
+ pragma solidity >=0.8.0;
3
+
4
+ import {ECDSA} from "@openzeppelin/contracts/utils/cryptography/ECDSA.sol";
5
+ import {Address} from "@openzeppelin/contracts/utils/Address.sol";
6
+ import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";
7
+
8
+ import {TREE_DEPTH} from "./libs/Merkle.sol";
9
+ import {CheckpointLib, Checkpoint} from "./libs/CheckpointLib.sol";
10
+ import {CheckpointFraudProofs} from "./CheckpointFraudProofs.sol";
11
+
12
+ enum FraudType {
13
+ Whitelist,
14
+ Premature,
15
+ MessageId,
16
+ Root
17
+ }
18
+
19
+ struct Attribution {
20
+ FraudType fraudType;
21
+ // for comparison with staking epoch
22
+ uint48 timestamp;
23
+ }
24
+
25
+ /**
26
+ * @title AttributeCheckpointFraud
27
+ * @dev The AttributeCheckpointFraud contract is used to attribute fraud to a specific ECDSA checkpoint signer.
28
+ */
29
+ contract AttributeCheckpointFraud is Ownable {
30
+ using CheckpointLib for Checkpoint;
31
+ using Address for address;
32
+
33
+ CheckpointFraudProofs public immutable checkpointFraudProofs =
34
+ new CheckpointFraudProofs();
35
+
36
+ mapping(address => bool) public merkleTreeWhitelist;
37
+
38
+ mapping(address signer => mapping(bytes32 digest => Attribution))
39
+ internal _attributions;
40
+
41
+ function _recover(
42
+ Checkpoint calldata checkpoint,
43
+ bytes calldata signature
44
+ ) internal pure returns (address signer, bytes32 digest) {
45
+ digest = checkpoint.digest();
46
+ signer = ECDSA.recover(digest, signature);
47
+ }
48
+
49
+ function _attribute(
50
+ bytes calldata signature,
51
+ Checkpoint calldata checkpoint,
52
+ FraudType fraudType
53
+ ) internal {
54
+ (address signer, bytes32 digest) = _recover(checkpoint, signature);
55
+ require(
56
+ _attributions[signer][digest].timestamp == 0,
57
+ "fraud already attributed to signer for digest"
58
+ );
59
+ _attributions[signer][digest] = Attribution({
60
+ fraudType: fraudType,
61
+ timestamp: uint48(block.timestamp)
62
+ });
63
+ }
64
+
65
+ function attributions(
66
+ Checkpoint calldata checkpoint,
67
+ bytes calldata signature
68
+ ) external view returns (Attribution memory) {
69
+ (address signer, bytes32 digest) = _recover(checkpoint, signature);
70
+ return _attributions[signer][digest];
71
+ }
72
+
73
+ function whitelist(address merkleTree) external onlyOwner {
74
+ require(
75
+ merkleTree.isContract(),
76
+ "merkle tree must be a valid contract"
77
+ );
78
+ merkleTreeWhitelist[merkleTree] = true;
79
+ }
80
+
81
+ function attributeWhitelist(
82
+ Checkpoint calldata checkpoint,
83
+ bytes calldata signature
84
+ ) external {
85
+ require(
86
+ checkpointFraudProofs.isLocal(checkpoint),
87
+ "checkpoint must be local"
88
+ );
89
+
90
+ require(
91
+ !merkleTreeWhitelist[checkpoint.merkleTreeAddress()],
92
+ "merkle tree is whitelisted"
93
+ );
94
+
95
+ _attribute(signature, checkpoint, FraudType.Whitelist);
96
+ }
97
+
98
+ function attributePremature(
99
+ Checkpoint calldata checkpoint,
100
+ bytes calldata signature
101
+ ) external {
102
+ require(
103
+ checkpointFraudProofs.isPremature(checkpoint),
104
+ "checkpoint must be premature"
105
+ );
106
+
107
+ _attribute(signature, checkpoint, FraudType.Premature);
108
+ }
109
+
110
+ function attributeMessageId(
111
+ Checkpoint calldata checkpoint,
112
+ bytes32[TREE_DEPTH] calldata proof,
113
+ bytes32 actualMessageId,
114
+ bytes calldata signature
115
+ ) external {
116
+ require(
117
+ checkpointFraudProofs.isFraudulentMessageId(
118
+ checkpoint,
119
+ proof,
120
+ actualMessageId
121
+ ),
122
+ "checkpoint must have fraudulent message ID"
123
+ );
124
+
125
+ _attribute(signature, checkpoint, FraudType.MessageId);
126
+ }
127
+
128
+ function attributeRoot(
129
+ Checkpoint calldata checkpoint,
130
+ bytes32[TREE_DEPTH] calldata proof,
131
+ bytes calldata signature
132
+ ) external {
133
+ require(
134
+ checkpointFraudProofs.isFraudulentRoot(checkpoint, proof),
135
+ "checkpoint must have fraudulent root"
136
+ );
137
+
138
+ _attribute(signature, checkpoint, FraudType.Root);
139
+ }
140
+ }
@@ -0,0 +1,143 @@
1
+ // SPDX-License-Identifier: MIT OR Apache-2.0
2
+ pragma solidity >=0.8.0;
3
+
4
+ import {Address} from "@openzeppelin/contracts/utils/Address.sol";
5
+
6
+ import {TypeCasts} from "./libs/TypeCasts.sol";
7
+ import {Checkpoint, CheckpointLib} from "./libs/CheckpointLib.sol";
8
+ import {MerkleLib, TREE_DEPTH} from "./libs/Merkle.sol";
9
+ import {MerkleTreeHook} from "./hooks/MerkleTreeHook.sol";
10
+ import {IMailbox} from "./interfaces/IMailbox.sol";
11
+
12
+ struct StoredIndex {
13
+ uint32 index;
14
+ bool exists;
15
+ }
16
+
17
+ contract CheckpointFraudProofs {
18
+ using CheckpointLib for Checkpoint;
19
+ using Address for address;
20
+
21
+ mapping(address merkleTree => mapping(bytes32 root => StoredIndex index))
22
+ public storedCheckpoints;
23
+
24
+ function storedCheckpointContainsMessage(
25
+ address merkleTree,
26
+ uint32 index,
27
+ bytes32 messageId,
28
+ bytes32[TREE_DEPTH] calldata proof
29
+ ) public view returns (bool) {
30
+ bytes32 root = MerkleLib.branchRoot(messageId, proof, index);
31
+ StoredIndex storage storedIndex = storedCheckpoints[merkleTree][root];
32
+ return storedIndex.exists && storedIndex.index >= index;
33
+ }
34
+
35
+ modifier onlyMessageInStoredCheckpoint(
36
+ Checkpoint calldata checkpoint,
37
+ bytes32[TREE_DEPTH] calldata proof,
38
+ bytes32 messageId
39
+ ) {
40
+ require(
41
+ storedCheckpointContainsMessage(
42
+ checkpoint.merkleTreeAddress(),
43
+ checkpoint.index,
44
+ messageId,
45
+ proof
46
+ ),
47
+ "message must be member of stored checkpoint"
48
+ );
49
+ _;
50
+ }
51
+
52
+ function isLocal(
53
+ Checkpoint calldata checkpoint
54
+ ) public view returns (bool) {
55
+ address merkleTree = checkpoint.merkleTreeAddress();
56
+ return
57
+ merkleTree.isContract() &&
58
+ MerkleTreeHook(merkleTree).localDomain() == checkpoint.origin;
59
+ }
60
+
61
+ modifier onlyLocal(Checkpoint calldata checkpoint) {
62
+ require(isLocal(checkpoint), "must be local checkpoint");
63
+ _;
64
+ }
65
+
66
+ /**
67
+ * @notice Stores the latest checkpoint of the provided merkle tree hook
68
+ * @param merkleTree Address of the merkle tree hook to store the latest checkpoint of.
69
+ * @dev Must be called before proving fraud to circumvent race on message insertion and merkle proof construction.
70
+ */
71
+ function storeLatestCheckpoint(
72
+ address merkleTree
73
+ ) external returns (bytes32 root, uint32 index) {
74
+ (root, index) = MerkleTreeHook(merkleTree).latestCheckpoint();
75
+ storedCheckpoints[merkleTree][root] = StoredIndex(index, true);
76
+ }
77
+
78
+ /**
79
+ * @notice Checks whether the provided checkpoint is premature (fraud).
80
+ * @param checkpoint Checkpoint to check.
81
+ * @dev Checks whether checkpoint.index is greater than or equal to mailbox count
82
+ * @return Whether the provided checkpoint is premature.
83
+ */
84
+ function isPremature(
85
+ Checkpoint calldata checkpoint
86
+ ) public view onlyLocal(checkpoint) returns (bool) {
87
+ // count is the number of messages in the mailbox (i.e. the latest index + 1)
88
+ uint32 count = MerkleTreeHook(checkpoint.merkleTreeAddress()).count();
89
+
90
+ // index >= count is equivalent to index > latest index
91
+ return checkpoint.index >= count;
92
+ }
93
+
94
+ /**
95
+ * @notice Checks whether the provided checkpoint has a fraudulent message ID.
96
+ * @param checkpoint Checkpoint to check.
97
+ * @param proof Merkle proof of the actual message ID at checkpoint.index on checkpoint.merkleTree
98
+ * @param actualMessageId Actual message ID at checkpoint.index on checkpoint.merkleTree
99
+ * @dev Must produce proof of inclusion for actualMessageID against some stored checkpoint.
100
+ * @return Whether the provided checkpoint has a fraudulent message ID.
101
+ */
102
+ function isFraudulentMessageId(
103
+ Checkpoint calldata checkpoint,
104
+ bytes32[TREE_DEPTH] calldata proof,
105
+ bytes32 actualMessageId
106
+ )
107
+ public
108
+ view
109
+ onlyLocal(checkpoint)
110
+ onlyMessageInStoredCheckpoint(checkpoint, proof, actualMessageId)
111
+ returns (bool)
112
+ {
113
+ return actualMessageId != checkpoint.messageId;
114
+ }
115
+
116
+ /**
117
+ * @notice Checks whether the provided checkpoint has a fraudulent root.
118
+ * @param checkpoint Checkpoint to check.
119
+ * @param proof Merkle proof of the checkpoint.messageId at checkpoint.index on checkpoint.merkleTree
120
+ * @dev Must produce proof of inclusion for checkpoint.messageId against some stored checkpoint.
121
+ * @return Whether the provided checkpoint has a fraudulent message ID.
122
+ */
123
+ function isFraudulentRoot(
124
+ Checkpoint calldata checkpoint,
125
+ bytes32[TREE_DEPTH] calldata proof
126
+ )
127
+ public
128
+ view
129
+ onlyLocal(checkpoint)
130
+ onlyMessageInStoredCheckpoint(checkpoint, proof, checkpoint.messageId)
131
+ returns (bool)
132
+ {
133
+ // proof of checkpoint.messageId at checkpoint.index is the list of siblings from the leaf node to some stored root
134
+ // once verifying the proof, we can reconstruct the specific root at checkpoint.index by replacing siblings greater
135
+ // than the index (right subtrees) with zeroes
136
+ bytes32 root = MerkleLib.reconstructRoot(
137
+ checkpoint.messageId,
138
+ proof,
139
+ checkpoint.index
140
+ );
141
+ return root != checkpoint.root;
142
+ }
143
+ }
@@ -153,8 +153,10 @@ abstract contract Router is MailboxClient, IMessageRecipient {
153
153
  uint32 _domain
154
154
  ) internal view returns (bytes32) {
155
155
  (bool contained, bytes32 _router) = _routers.tryGet(_domain);
156
- require(contained, _domainNotFoundError(_domain));
157
- return _router;
156
+ if (contained) {
157
+ return _router;
158
+ }
159
+ revert(_domainNotFoundError(_domain));
158
160
  }
159
161
 
160
162
  function _domainNotFoundError(
@@ -0,0 +1,84 @@
1
+ // SPDX-License-Identifier: MIT OR Apache-2.0
2
+ pragma solidity >=0.8.0;
3
+
4
+ /*@@@@@@@ @@@@@@@@@
5
+ @@@@@@@@@ @@@@@@@@@
6
+ @@@@@@@@@ @@@@@@@@@
7
+ @@@@@@@@@ @@@@@@@@@
8
+ @@@@@@@@@@@@@@@@@@@@@@@@@
9
+ @@@@@ HYPERLANE @@@@@@@
10
+ @@@@@@@@@@@@@@@@@@@@@@@@@
11
+ @@@@@@@@@ @@@@@@@@@
12
+ @@@@@@@@@ @@@@@@@@@
13
+ @@@@@@@@@ @@@@@@@@@
14
+ @@@@@@@@@ @@@@@@@@*/
15
+
16
+ // ============ Internal Imports ============
17
+ import {AbstractPostDispatchHook, AbstractMessageIdAuthHook} from "./libs/AbstractMessageIdAuthHook.sol";
18
+ import {StandardHookMetadata} from "./libs/StandardHookMetadata.sol";
19
+ import {TypeCasts} from "../libs/TypeCasts.sol";
20
+ import {IPostDispatchHook} from "../interfaces/hooks/IPostDispatchHook.sol";
21
+
22
+ // ============ External Imports ============
23
+ import {ICrossDomainMessenger} from "../interfaces/optimism/ICrossDomainMessenger.sol";
24
+
25
+ /**
26
+ * @title OPL2ToL1Hook
27
+ * @notice Message hook to inform the OPL2ToL1Ism of messages published through
28
+ * the native Optimism bridge.
29
+ * @notice This works only for L2 -> L1 messages and has the 7 day delay as specified by the OptimismPortal contract.
30
+ */
31
+ contract OPL2ToL1Hook is AbstractMessageIdAuthHook {
32
+ using StandardHookMetadata for bytes;
33
+
34
+ // ============ Constants ============
35
+
36
+ // precompile contract on L2 for sending messages to L1
37
+ ICrossDomainMessenger public immutable l2Messenger;
38
+ // Immutable quote amount
39
+ uint32 public immutable GAS_QUOTE;
40
+
41
+ // ============ Constructor ============
42
+
43
+ constructor(
44
+ address _mailbox,
45
+ uint32 _destinationDomain,
46
+ bytes32 _ism,
47
+ address _l2Messenger,
48
+ uint32 _gasQuote
49
+ ) AbstractMessageIdAuthHook(_mailbox, _destinationDomain, _ism) {
50
+ GAS_QUOTE = _gasQuote;
51
+ l2Messenger = ICrossDomainMessenger(_l2Messenger);
52
+ }
53
+
54
+ /// @inheritdoc IPostDispatchHook
55
+ function hookType() external pure override returns (uint8) {
56
+ return uint8(IPostDispatchHook.Types.OP_L2_TO_L1);
57
+ }
58
+
59
+ /// @inheritdoc AbstractPostDispatchHook
60
+ function _quoteDispatch(
61
+ bytes calldata,
62
+ bytes calldata
63
+ ) internal view override returns (uint256) {
64
+ return GAS_QUOTE;
65
+ }
66
+
67
+ // ============ Internal functions ============
68
+
69
+ /// @inheritdoc AbstractMessageIdAuthHook
70
+ function _sendMessageId(
71
+ bytes calldata metadata,
72
+ bytes memory payload
73
+ ) internal override {
74
+ require(
75
+ msg.value >= metadata.msgValue(0) + GAS_QUOTE,
76
+ "OPL2ToL1Hook: insufficient msg.value"
77
+ );
78
+ l2Messenger.sendMessage{value: metadata.msgValue(0)}(
79
+ TypeCasts.bytes32ToAddress(ism),
80
+ payload,
81
+ GAS_QUOTE
82
+ );
83
+ }
84
+ }
@@ -228,14 +228,14 @@ contract InterchainGasPaymaster is
228
228
  IGasOracle _gasOracle = destinationGasConfigs[_destinationDomain]
229
229
  .gasOracle;
230
230
 
231
- require(
232
- address(_gasOracle) != address(0),
233
- string.concat(
234
- "Configured IGP doesn't support domain ",
235
- Strings.toString(_destinationDomain)
236
- )
237
- );
238
-
231
+ if (address(_gasOracle) == address(0)) {
232
+ revert(
233
+ string.concat(
234
+ "Configured IGP doesn't support domain ",
235
+ Strings.toString(_destinationDomain)
236
+ )
237
+ );
238
+ }
239
239
  return _gasOracle.getExchangeRateAndGasPrice(_destinationDomain);
240
240
  }
241
241
 
@@ -90,12 +90,13 @@ contract DomainRoutingHook is AbstractPostDispatchHook, MailboxClient {
90
90
  bytes calldata message
91
91
  ) internal view virtual returns (IPostDispatchHook hook) {
92
92
  hook = hooks[message.destination()];
93
- require(
94
- address(hook) != address(0),
95
- string.concat(
96
- "No hook configured for destination: ",
97
- message.destination().toString()
98
- )
99
- );
93
+ if (address(hook) == address(0)) {
94
+ revert(
95
+ string.concat(
96
+ "No hook configured for destination: ",
97
+ message.destination().toString()
98
+ )
99
+ );
100
+ }
100
101
  }
101
102
  }
@@ -11,7 +11,10 @@ interface IInterchainSecurityModule {
11
11
  MESSAGE_ID_MULTISIG,
12
12
  NULL, // used with relayer carrying no metadata
13
13
  CCIP_READ,
14
- ARB_L2_TO_L1
14
+ ARB_L2_TO_L1,
15
+ WEIGHT_MERKLE_ROOT_MULTISIG,
16
+ WEIGHT_MESSAGE_ID_MULTISIG,
17
+ OP_L2_TO_L1
15
18
  }
16
19
 
17
20
  /**
@@ -26,7 +26,8 @@ interface IPostDispatchHook {
26
26
  PROTOCOL_FEE,
27
27
  LAYER_ZERO_V1,
28
28
  RATE_LIMITED,
29
- ARB_L2_TO_L1
29
+ ARB_L2_TO_L1,
30
+ OP_L2_TO_L1
30
31
  }
31
32
 
32
33
  /**
@@ -0,0 +1,39 @@
1
+ // SPDX-License-Identifier: MIT OR Apache-2.0
2
+ pragma solidity >=0.6.11;
3
+
4
+ /*@@@@@@@ @@@@@@@@@
5
+ @@@@@@@@@ @@@@@@@@@
6
+ @@@@@@@@@ @@@@@@@@@
7
+ @@@@@@@@@ @@@@@@@@@
8
+ @@@@@@@@@@@@@@@@@@@@@@@@@
9
+ @@@@@ HYPERLANE @@@@@@@
10
+ @@@@@@@@@@@@@@@@@@@@@@@@@
11
+ @@@@@@@@@ @@@@@@@@@
12
+ @@@@@@@@@ @@@@@@@@@
13
+ @@@@@@@@@ @@@@@@@@@
14
+ @@@@@@@@@ @@@@@@@@*/
15
+
16
+ import {IInterchainSecurityModule} from "../IInterchainSecurityModule.sol";
17
+
18
+ interface IStaticWeightedMultisigIsm is IInterchainSecurityModule {
19
+ // ============ Structs ============
20
+
21
+ // ValidatorInfo contains the signing address and weight of a validator
22
+ struct ValidatorInfo {
23
+ address signingAddress;
24
+ uint96 weight;
25
+ }
26
+
27
+ /**
28
+ * @notice Returns the validators and threshold weight for this ISM.
29
+ * @param _message The message to be verified
30
+ * @return validators The validators and their weights
31
+ * @return thresholdWeight The threshold weight required to pass verification
32
+ */
33
+ function validatorsAndThresholdWeight(
34
+ bytes calldata _message
35
+ )
36
+ external
37
+ view
38
+ returns (ValidatorInfo[] memory validators, uint96 thresholdWeight);
39
+ }
@@ -30,6 +30,8 @@ interface ICrossDomainMessenger {
30
30
  function xDomainMessageSender() external view returns (address);
31
31
 
32
32
  function OTHER_MESSENGER() external view returns (address);
33
+
34
+ function PORTAL() external view returns (address);
33
35
  }
34
36
 
35
37
  interface IL1CrossDomainMessenger is ICrossDomainMessenger {}
@@ -0,0 +1,28 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity ^0.8.0;
3
+
4
+ // author: OP Labs
5
+ // copied from https://github.com/ethereum-optimism/optimism/tree/develop/packages/contracts-bedrock
6
+ interface IOptimismPortal {
7
+ /// @notice Struct representing a withdrawal transaction.
8
+ /// @custom:field nonce Nonce of the withdrawal transaction
9
+ /// @custom:field sender Address of the sender of the transaction.
10
+ /// @custom:field target Address of the recipient of the transaction.
11
+ /// @custom:field value Value to send to the recipient.
12
+ /// @custom:field gasLimit Gas limit of the transaction.
13
+ /// @custom:field data Data of the transaction.
14
+ struct WithdrawalTransaction {
15
+ uint256 nonce;
16
+ address sender;
17
+ address target;
18
+ uint256 value;
19
+ uint256 gasLimit;
20
+ bytes data;
21
+ }
22
+
23
+ /// @notice Finalizes a withdrawal transaction.
24
+ /// @param _tx Withdrawal transaction to finalize.
25
+ function finalizeWithdrawalTransaction(
26
+ WithdrawalTransaction memory _tx
27
+ ) external;
28
+ }
@@ -0,0 +1,109 @@
1
+ // SPDX-License-Identifier: MIT OR Apache-2.0
2
+ pragma solidity >=0.8.0;
3
+
4
+ /*@@@@@@@ @@@@@@@@@
5
+ @@@@@@@@@ @@@@@@@@@
6
+ @@@@@@@@@ @@@@@@@@@
7
+ @@@@@@@@@ @@@@@@@@@
8
+ @@@@@@@@@@@@@@@@@@@@@@@@@
9
+ @@@@@ HYPERLANE @@@@@@@
10
+ @@@@@@@@@@@@@@@@@@@@@@@@@
11
+ @@@@@@@@@ @@@@@@@@@
12
+ @@@@@@@@@ @@@@@@@@@
13
+ @@@@@@@@@ @@@@@@@@@
14
+ @@@@@@@@@ @@@@@@@@*/
15
+
16
+ // ============ Internal Imports ============
17
+
18
+ import {IInterchainSecurityModule} from "../../interfaces/IInterchainSecurityModule.sol";
19
+ import {TypeCasts} from "../../libs/TypeCasts.sol";
20
+ import {Message} from "../../libs/Message.sol";
21
+ import {OPL2ToL1Metadata} from "../../libs/OPL2ToL1Metadata.sol";
22
+ import {AbstractMessageIdAuthorizedIsm} from "./AbstractMessageIdAuthorizedIsm.sol";
23
+
24
+ // ============ External Imports ============
25
+
26
+ import {ICrossDomainMessenger} from "../../interfaces/optimism/ICrossDomainMessenger.sol";
27
+ import {IOptimismPortal} from "../../interfaces/optimism/IOptimismPortal.sol";
28
+ import {CrossChainEnabledOptimism} from "@openzeppelin/contracts/crosschain/optimism/CrossChainEnabledOptimism.sol";
29
+ import {Address} from "@openzeppelin/contracts/utils/Address.sol";
30
+
31
+ /**
32
+ * @title OPL2ToL1Ism
33
+ * @notice Uses the native Optimism bridge to verify interchain messages from L2 to L1.
34
+ */
35
+ contract OPL2ToL1Ism is
36
+ CrossChainEnabledOptimism,
37
+ AbstractMessageIdAuthorizedIsm
38
+ {
39
+ using TypeCasts for address;
40
+ using Message for bytes;
41
+ using OPL2ToL1Metadata for bytes;
42
+
43
+ // ============ Constants ============
44
+
45
+ // module type for the ISM
46
+ uint8 public constant moduleType =
47
+ uint8(IInterchainSecurityModule.Types.OP_L2_TO_L1);
48
+ // OptimismPortal contract on L1 to finalize withdrawal from L1
49
+ IOptimismPortal public immutable portal;
50
+
51
+ // ============ Constructor ============
52
+
53
+ constructor(address _messenger) CrossChainEnabledOptimism(_messenger) {
54
+ address _portal = ICrossDomainMessenger(_messenger).PORTAL();
55
+ require(
56
+ Address.isContract(_portal),
57
+ "OPL2ToL1Ism: invalid OptimismPortal contract"
58
+ );
59
+ portal = IOptimismPortal(_portal);
60
+ }
61
+
62
+ // ============ External Functions ============
63
+
64
+ /// @inheritdoc IInterchainSecurityModule
65
+ function verify(
66
+ bytes calldata metadata,
67
+ bytes calldata message
68
+ ) external override returns (bool) {
69
+ bool verified = isVerified(message);
70
+ if (!verified) {
71
+ _verifyWithPortalCall(metadata, message);
72
+ }
73
+ releaseValueToRecipient(message);
74
+ return true;
75
+ }
76
+
77
+ // ============ Internal function ============
78
+
79
+ /**
80
+ * @notice Verify message directly using the portal.finalizeWithdrawal function.
81
+ * @dev This is a fallback in case the message is not verified by the stateful verify function first.
82
+ */
83
+ function _verifyWithPortalCall(
84
+ bytes calldata metadata,
85
+ bytes calldata message
86
+ ) internal {
87
+ require(
88
+ metadata.checkCalldataLength(),
89
+ "OPL2ToL1Ism: invalid data length"
90
+ );
91
+ require(
92
+ metadata.messageId() == message.id(),
93
+ "OPL2ToL1Ism: invalid message id"
94
+ );
95
+
96
+ IOptimismPortal.WithdrawalTransaction memory withdrawal = abi.decode(
97
+ metadata,
98
+ (IOptimismPortal.WithdrawalTransaction)
99
+ );
100
+ // if the finalizeWithdrawalTransaction call is successful, the message is verified
101
+ portal.finalizeWithdrawalTransaction(withdrawal);
102
+ }
103
+
104
+ /// @inheritdoc AbstractMessageIdAuthorizedIsm
105
+ function _isAuthorized() internal view override returns (bool) {
106
+ return
107
+ _crossChainSender() == TypeCasts.bytes32ToAddress(authorizedHook);
108
+ }
109
+ }
@@ -109,4 +109,20 @@ library MerkleRootMultisigIsmMetadata {
109
109
  uint256 _end = _start + SIGNATURE_LENGTH;
110
110
  return _metadata[_start:_end];
111
111
  }
112
+
113
+ /**
114
+ * @notice Returns the number of signatures in the metadata.
115
+ * @param _metadata ABI encoded Merkle Root Multisig ISM metadata.
116
+ * @return The number of signatures in the metadata.
117
+ */
118
+ function signatureCount(
119
+ bytes calldata _metadata
120
+ ) internal pure returns (uint256) {
121
+ uint256 signatures = _metadata.length - SIGNATURES_OFFSET;
122
+ require(
123
+ signatures % SIGNATURE_LENGTH == 0,
124
+ "Invalid signatures length"
125
+ );
126
+ return signatures / SIGNATURE_LENGTH;
127
+ }
112
128
  }
@@ -68,4 +68,20 @@ library MessageIdMultisigIsmMetadata {
68
68
  uint256 _end = _start + SIGNATURE_LENGTH;
69
69
  return _metadata[_start:_end];
70
70
  }
71
+
72
+ /**
73
+ * @notice Returns the number of signatures in the metadata.
74
+ * @param _metadata ABI encoded MessageId Multisig ISM metadata.
75
+ * @return The number of signatures in the metadata.
76
+ */
77
+ function signatureCount(
78
+ bytes calldata _metadata
79
+ ) internal pure returns (uint256) {
80
+ uint256 signatures = _metadata.length - SIGNATURES_OFFSET;
81
+ require(
82
+ signatures % SIGNATURE_LENGTH == 0,
83
+ "Invalid signatures length"
84
+ );
85
+ return signatures / SIGNATURE_LENGTH;
86
+ }
71
87
  }