@hyperlane-xyz/core 5.0.0 → 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
@@ -3,7 +3,7 @@ pragma solidity >=0.8.0;
3
3
 
4
4
  // ============ Internal Imports ============
5
5
  import {IInterchainSecurityModule} from "../../interfaces/IInterchainSecurityModule.sol";
6
- import {AbstractMultisigIsm} from "./AbstractMultisigIsm.sol";
6
+ import {AbstractMultisig} from "./AbstractMultisigIsm.sol";
7
7
  import {MerkleRootMultisigIsmMetadata} from "../../isms/libs/MerkleRootMultisigIsmMetadata.sol";
8
8
  import {Message} from "../../libs/Message.sol";
9
9
  import {MerkleLib} from "../../libs/Merkle.sol";
@@ -22,23 +22,19 @@ import {CheckpointLib} from "../../libs/CheckpointLib.sol";
22
22
  * This abstract contract can be overridden for customizing the `validatorsAndThreshold()` (static or dynamic).
23
23
  * @dev May be adapted in future to support batch message verification against a single root.
24
24
  */
25
- abstract contract AbstractMerkleRootMultisigIsm is AbstractMultisigIsm {
25
+ abstract contract AbstractMerkleRootMultisigIsm is AbstractMultisig {
26
26
  using MerkleRootMultisigIsmMetadata for bytes;
27
27
  using Message for bytes;
28
28
 
29
29
  // ============ Constants ============
30
30
 
31
- // solhint-disable-next-line const-name-snakecase
32
- uint8 public constant moduleType =
33
- uint8(IInterchainSecurityModule.Types.MERKLE_ROOT_MULTISIG);
34
-
35
31
  /**
36
- * @inheritdoc AbstractMultisigIsm
32
+ * @inheritdoc AbstractMultisig
37
33
  */
38
34
  function digest(
39
35
  bytes calldata _metadata,
40
36
  bytes calldata _message
41
- ) internal pure override returns (bytes32) {
37
+ ) internal pure virtual override returns (bytes32) {
42
38
  require(
43
39
  _metadata.messageIndex() <= _metadata.signedIndex(),
44
40
  "Invalid merkle index metadata"
@@ -61,7 +57,7 @@ abstract contract AbstractMerkleRootMultisigIsm is AbstractMultisigIsm {
61
57
  }
62
58
 
63
59
  /**
64
- * @inheritdoc AbstractMultisigIsm
60
+ * @inheritdoc AbstractMultisig
65
61
  */
66
62
  function signatureAt(
67
63
  bytes calldata _metadata,
@@ -69,4 +65,13 @@ abstract contract AbstractMerkleRootMultisigIsm is AbstractMultisigIsm {
69
65
  ) internal pure virtual override returns (bytes calldata) {
70
66
  return _metadata.signatureAt(_index);
71
67
  }
68
+
69
+ /**
70
+ * @inheritdoc AbstractMultisig
71
+ */
72
+ function signatureCount(
73
+ bytes calldata _metadata
74
+ ) public pure override returns (uint256) {
75
+ return _metadata.signatureCount();
76
+ }
72
77
  }
@@ -3,7 +3,7 @@ pragma solidity >=0.8.0;
3
3
 
4
4
  // ============ Internal Imports ============
5
5
  import {IInterchainSecurityModule} from "../../interfaces/IInterchainSecurityModule.sol";
6
- import {AbstractMultisigIsm} from "./AbstractMultisigIsm.sol";
6
+ import {AbstractMultisig} from "./AbstractMultisigIsm.sol";
7
7
  import {MessageIdMultisigIsmMetadata} from "../libs/MessageIdMultisigIsmMetadata.sol";
8
8
  import {Message} from "../../libs/Message.sol";
9
9
  import {CheckpointLib} from "../../libs/CheckpointLib.sol";
@@ -18,18 +18,14 @@ import {CheckpointLib} from "../../libs/CheckpointLib.sol";
18
18
  * @dev Provides the default implementation of verifying signatures over a checkpoint related to a specific message ID.
19
19
  * This abstract contract can be customized to change the `validatorsAndThreshold()` (static or dynamic).
20
20
  */
21
- abstract contract AbstractMessageIdMultisigIsm is AbstractMultisigIsm {
21
+ abstract contract AbstractMessageIdMultisigIsm is AbstractMultisig {
22
22
  using Message for bytes;
23
23
  using MessageIdMultisigIsmMetadata for bytes;
24
24
 
25
25
  // ============ Constants ============
26
26
 
27
- // solhint-disable-next-line const-name-snakecase
28
- uint8 public constant moduleType =
29
- uint8(IInterchainSecurityModule.Types.MESSAGE_ID_MULTISIG);
30
-
31
27
  /**
32
- * @inheritdoc AbstractMultisigIsm
28
+ * @inheritdoc AbstractMultisig
33
29
  */
34
30
  function digest(
35
31
  bytes calldata _metadata,
@@ -46,7 +42,7 @@ abstract contract AbstractMessageIdMultisigIsm is AbstractMultisigIsm {
46
42
  }
47
43
 
48
44
  /**
49
- * @inheritdoc AbstractMultisigIsm
45
+ * @inheritdoc AbstractMultisig
50
46
  */
51
47
  function signatureAt(
52
48
  bytes calldata _metadata,
@@ -54,4 +50,13 @@ abstract contract AbstractMessageIdMultisigIsm is AbstractMultisigIsm {
54
50
  ) internal pure virtual override returns (bytes calldata) {
55
51
  return _metadata.signatureAt(_index);
56
52
  }
53
+
54
+ /**
55
+ * @inheritdoc AbstractMultisig
56
+ */
57
+ function signatureCount(
58
+ bytes calldata _metadata
59
+ ) public pure override returns (uint256) {
60
+ return _metadata.signatureCount();
61
+ }
57
62
  }
@@ -1,6 +1,18 @@
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
+
4
16
  // ============ External Imports ============
5
17
  import {ECDSA} from "@openzeppelin/contracts/utils/cryptography/ECDSA.sol";
6
18
 
@@ -11,30 +23,13 @@ import {Message} from "../../libs/Message.sol";
11
23
  import {MerkleLib} from "../../libs/Merkle.sol";
12
24
 
13
25
  /**
14
- * @title MultisigIsm
15
- * @notice Manages per-domain m-of-n Validator sets that are used to verify
16
- * interchain messages.
26
+ * @title AbstractMultisig
27
+ * @notice Manages per-domain m-of-n Validator sets
17
28
  * @dev See ./AbstractMerkleRootMultisigIsm.sol and ./AbstractMessageIdMultisigIsm.sol
18
29
  * for concrete implementations of `digest` and `signatureAt`.
19
30
  * @dev See ./StaticMultisigIsm.sol for concrete implementations.
20
31
  */
21
- abstract contract AbstractMultisigIsm is IMultisigIsm {
22
- // ============ Virtual Functions ============
23
- // ======= OVERRIDE THESE TO IMPLEMENT =======
24
-
25
- /**
26
- * @notice Returns the set of validators responsible for verifying _message
27
- * and the number of signatures required
28
- * @dev Can change based on the content of _message
29
- * @dev Signatures provided to `verify` must be consistent with validator ordering
30
- * @param _message Hyperlane formatted interchain message
31
- * @return validators The array of validator addresses
32
- * @return threshold The number of validator signatures needed
33
- */
34
- function validatorsAndThreshold(
35
- bytes calldata _message
36
- ) public view virtual returns (address[] memory, uint8);
37
-
32
+ abstract contract AbstractMultisig {
38
33
  /**
39
34
  * @notice Returns the digest to be used for signature verification.
40
35
  * @param _metadata ABI encoded module metadata
@@ -57,6 +52,38 @@ abstract contract AbstractMultisigIsm is IMultisigIsm {
57
52
  uint256 _index
58
53
  ) internal pure virtual returns (bytes calldata);
59
54
 
55
+ /**
56
+ * @notice Returns the number of signatures in the metadata.
57
+ * @param _metadata ABI encoded module metadata
58
+ * @return count The number of signatures
59
+ */
60
+ function signatureCount(
61
+ bytes calldata _metadata
62
+ ) public pure virtual returns (uint256);
63
+ }
64
+
65
+ /**
66
+ * @title AbstractMultisigIsm
67
+ * @notice Manages per-domain m-of-n Validator sets of AbstractMultisig that are used to verify
68
+ * interchain messages.
69
+ */
70
+ abstract contract AbstractMultisigIsm is AbstractMultisig {
71
+ // ============ Virtual Functions ============
72
+ // ======= OVERRIDE THESE TO IMPLEMENT =======
73
+
74
+ /**
75
+ * @notice Returns the set of validators responsible for verifying _message
76
+ * and the number of signatures required
77
+ * @dev Can change based on the content of _message
78
+ * @dev Signatures provided to `verify` must be consistent with validator ordering
79
+ * @param _message Hyperlane formatted interchain message
80
+ * @return validators The array of validator addresses
81
+ * @return threshold The number of validator signatures needed
82
+ */
83
+ function validatorsAndThreshold(
84
+ bytes calldata _message
85
+ ) public view virtual returns (address[] memory, uint8);
86
+
60
87
  // ============ Public Functions ============
61
88
 
62
89
  /**
@@ -0,0 +1,100 @@
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
+ // ============ External Imports ============
17
+ import {ECDSA} from "@openzeppelin/contracts/utils/cryptography/ECDSA.sol";
18
+ import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";
19
+ import {Math} from "@openzeppelin/contracts/utils/math/Math.sol";
20
+ // ============ Internal Imports ============
21
+ import {IInterchainSecurityModule} from "../../interfaces/IInterchainSecurityModule.sol";
22
+ import {IStaticWeightedMultisigIsm} from "../../interfaces/isms/IWeightedMultisigIsm.sol";
23
+ import {Message} from "../../libs/Message.sol";
24
+
25
+ import {MerkleLib} from "../../libs/Merkle.sol";
26
+ import {AbstractMultisig} from "./AbstractMultisigIsm.sol";
27
+
28
+ /**
29
+ * @title AbstractStaticWeightedMultisigIsm
30
+ * @notice Manages per-domain m-of-n Validator sets with stake weights that are used to verify
31
+ * interchain messages.
32
+ */
33
+ abstract contract AbstractStaticWeightedMultisigIsm is
34
+ AbstractMultisig,
35
+ IStaticWeightedMultisigIsm
36
+ {
37
+ // ============ Constants ============
38
+
39
+ // total weight of all validators
40
+ uint96 public constant TOTAL_WEIGHT = 1e10;
41
+
42
+ /**
43
+ * @inheritdoc IStaticWeightedMultisigIsm
44
+ */
45
+ function validatorsAndThresholdWeight(
46
+ bytes calldata /* _message*/
47
+ ) public view virtual returns (ValidatorInfo[] memory, uint96);
48
+
49
+ /**
50
+ * @inheritdoc IInterchainSecurityModule
51
+ */
52
+ function verify(
53
+ bytes calldata _metadata,
54
+ bytes calldata _message
55
+ ) public view virtual returns (bool) {
56
+ bytes32 _digest = digest(_metadata, _message);
57
+ (
58
+ ValidatorInfo[] memory _validators,
59
+ uint96 _thresholdWeight
60
+ ) = validatorsAndThresholdWeight(_message);
61
+
62
+ require(
63
+ _thresholdWeight > 0 && _thresholdWeight <= TOTAL_WEIGHT,
64
+ "Invalid threshold weight"
65
+ );
66
+
67
+ uint256 _validatorCount = Math.min(
68
+ _validators.length,
69
+ signatureCount(_metadata)
70
+ );
71
+ uint256 _validatorIndex = 0;
72
+ uint96 _totalWeight = 0;
73
+
74
+ // assumes that signatures are ordered by validator
75
+ for (
76
+ uint256 i = 0;
77
+ _totalWeight < _thresholdWeight && i < _validatorCount;
78
+ ++i
79
+ ) {
80
+ address _signer = ECDSA.recover(_digest, signatureAt(_metadata, i));
81
+ // loop through remaining validators until we find a match
82
+ while (
83
+ _validatorIndex < _validatorCount &&
84
+ _signer != _validators[_validatorIndex].signingAddress
85
+ ) {
86
+ ++_validatorIndex;
87
+ }
88
+ // fail if we never found a match
89
+ require(_validatorIndex < _validatorCount, "Invalid signer");
90
+
91
+ // add the weight of the current validator
92
+ _totalWeight += _validators[_validatorIndex].weight;
93
+ }
94
+ require(
95
+ _totalWeight >= _thresholdWeight,
96
+ "Insufficient validator weight"
97
+ );
98
+ return true;
99
+ }
100
+ }
@@ -1,6 +1,8 @@
1
1
  // SPDX-License-Identifier: MIT OR Apache-2.0
2
2
  pragma solidity >=0.8.0;
3
3
  // ============ Internal Imports ============
4
+
5
+ import {IInterchainSecurityModule} from "../../interfaces/IInterchainSecurityModule.sol";
4
6
  import {AbstractMultisigIsm} from "./AbstractMultisigIsm.sol";
5
7
  import {AbstractMerkleRootMultisigIsm} from "./AbstractMerkleRootMultisigIsm.sol";
6
8
  import {AbstractMessageIdMultisigIsm} from "./AbstractMessageIdMultisigIsm.sol";
@@ -34,7 +36,10 @@ abstract contract AbstractMetaProxyMultisigIsm is AbstractMultisigIsm {
34
36
  contract StaticMerkleRootMultisigIsm is
35
37
  AbstractMerkleRootMultisigIsm,
36
38
  AbstractMetaProxyMultisigIsm
37
- {}
39
+ {
40
+ uint8 public constant moduleType =
41
+ uint8(IInterchainSecurityModule.Types.MERKLE_ROOT_MULTISIG);
42
+ }
38
43
 
39
44
  /**
40
45
  * @title StaticMessageIdMultisigIsm
@@ -44,7 +49,10 @@ contract StaticMerkleRootMultisigIsm is
44
49
  contract StaticMessageIdMultisigIsm is
45
50
  AbstractMessageIdMultisigIsm,
46
51
  AbstractMetaProxyMultisigIsm
47
- {}
52
+ {
53
+ uint8 public constant moduleType =
54
+ uint8(IInterchainSecurityModule.Types.MESSAGE_ID_MULTISIG);
55
+ }
48
56
 
49
57
  // solhint-enable no-empty-blocks
50
58
 
@@ -0,0 +1,67 @@
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
+ import {IInterchainSecurityModule} from "../../interfaces/IInterchainSecurityModule.sol";
17
+ import {AbstractMerkleRootMultisigIsm} from "./AbstractMerkleRootMultisigIsm.sol";
18
+ import {AbstractMessageIdMultisigIsm} from "./AbstractMessageIdMultisigIsm.sol";
19
+ import {AbstractStaticWeightedMultisigIsm} from "./AbstractWeightedMultisigIsm.sol";
20
+ import {AbstractMultisigIsm} from "./AbstractMultisigIsm.sol";
21
+ import {StaticWeightedValidatorSetFactory} from "../../libs/StaticWeightedValidatorSetFactory.sol";
22
+ import {MetaProxy} from "../../libs/MetaProxy.sol";
23
+
24
+ abstract contract AbstractMetaProxyWeightedMultisigIsm is
25
+ AbstractStaticWeightedMultisigIsm
26
+ {
27
+ /**
28
+ * @inheritdoc AbstractStaticWeightedMultisigIsm
29
+ */
30
+ function validatorsAndThresholdWeight(
31
+ bytes calldata /* _message*/
32
+ ) public pure override returns (ValidatorInfo[] memory, uint96) {
33
+ return abi.decode(MetaProxy.metadata(), (ValidatorInfo[], uint96));
34
+ }
35
+ }
36
+
37
+ contract StaticMerkleRootWeightedMultisigIsm is
38
+ AbstractMerkleRootMultisigIsm,
39
+ AbstractMetaProxyWeightedMultisigIsm
40
+ {
41
+ uint8 public constant moduleType =
42
+ uint8(IInterchainSecurityModule.Types.WEIGHT_MERKLE_ROOT_MULTISIG);
43
+ }
44
+
45
+ contract StaticMessageIdWeightedMultisigIsm is
46
+ AbstractMessageIdMultisigIsm,
47
+ AbstractMetaProxyWeightedMultisigIsm
48
+ {
49
+ uint8 public constant moduleType =
50
+ uint8(IInterchainSecurityModule.Types.WEIGHT_MESSAGE_ID_MULTISIG);
51
+ }
52
+
53
+ contract StaticMerkleRootWeightedMultisigIsmFactory is
54
+ StaticWeightedValidatorSetFactory
55
+ {
56
+ function _deployImplementation() internal override returns (address) {
57
+ return address(new StaticMerkleRootWeightedMultisigIsm());
58
+ }
59
+ }
60
+
61
+ contract StaticMessageIdWeightedMultisigIsmFactory is
62
+ StaticWeightedValidatorSetFactory
63
+ {
64
+ function _deployImplementation() internal override returns (address) {
65
+ return address(new StaticMessageIdWeightedMultisigIsm());
66
+ }
67
+ }
@@ -85,8 +85,10 @@ contract DomainRoutingIsm is AbstractRoutingIsm, OwnableUpgradeable {
85
85
  uint32 origin
86
86
  ) public view virtual returns (IInterchainSecurityModule) {
87
87
  (bool contained, bytes32 _module) = _modules.tryGet(origin);
88
- require(contained, _originNotFoundError(origin));
89
- return IInterchainSecurityModule(_module.bytes32ToAddress());
88
+ if (contained) {
89
+ return IInterchainSecurityModule(_module.bytes32ToAddress());
90
+ }
91
+ revert(_originNotFoundError(origin));
90
92
  }
91
93
 
92
94
  // ============ Public Functions ============
@@ -1,14 +1,24 @@
1
1
  // SPDX-License-Identifier: MIT OR Apache-2.0
2
2
  pragma solidity >=0.8.0;
3
3
 
4
- // ============ External Imports ============
5
4
  import {ECDSA} from "@openzeppelin/contracts/utils/cryptography/ECDSA.sol";
5
+ import {TypeCasts} from "./TypeCasts.sol";
6
+
7
+ struct Checkpoint {
8
+ uint32 origin;
9
+ bytes32 merkleTree;
10
+ bytes32 root;
11
+ uint32 index;
12
+ bytes32 messageId;
13
+ }
6
14
 
7
15
  library CheckpointLib {
16
+ using TypeCasts for bytes32;
17
+
8
18
  /**
9
19
  * @notice Returns the digest validators are expected to sign when signing checkpoints.
10
20
  * @param _origin The origin domain of the checkpoint.
11
- * @param _originmerkleTreeHook The address of the origin merkle tree hook as bytes32.
21
+ * @param _merkleTreeHook The address of the origin merkle tree hook as bytes32.
12
22
  * @param _checkpointRoot The root of the checkpoint.
13
23
  * @param _checkpointIndex The index of the checkpoint.
14
24
  * @param _messageId The message ID of the checkpoint.
@@ -17,12 +27,12 @@ library CheckpointLib {
17
27
  */
18
28
  function digest(
19
29
  uint32 _origin,
20
- bytes32 _originmerkleTreeHook,
30
+ bytes32 _merkleTreeHook,
21
31
  bytes32 _checkpointRoot,
22
32
  uint32 _checkpointIndex,
23
33
  bytes32 _messageId
24
34
  ) internal pure returns (bytes32) {
25
- bytes32 _domainHash = domainHash(_origin, _originmerkleTreeHook);
35
+ bytes32 _domainHash = domainHash(_origin, _merkleTreeHook);
26
36
  return
27
37
  ECDSA.toEthSignedMessageHash(
28
38
  keccak256(
@@ -36,16 +46,40 @@ library CheckpointLib {
36
46
  );
37
47
  }
38
48
 
49
+ /**
50
+ * @notice Returns the digest validators are expected to sign when signing checkpoints.
51
+ * @param checkpoint The checkpoint (struct) to hash.
52
+ * @return The digest of the checkpoint.
53
+ */
54
+ function digest(
55
+ Checkpoint memory checkpoint
56
+ ) internal pure returns (bytes32) {
57
+ return
58
+ digest(
59
+ checkpoint.origin,
60
+ checkpoint.merkleTree,
61
+ checkpoint.root,
62
+ checkpoint.index,
63
+ checkpoint.messageId
64
+ );
65
+ }
66
+
67
+ function merkleTreeAddress(
68
+ Checkpoint calldata checkpoint
69
+ ) internal pure returns (address) {
70
+ return checkpoint.merkleTree.bytes32ToAddress();
71
+ }
72
+
39
73
  /**
40
74
  * @notice Returns the domain hash that validators are expected to use
41
75
  * when signing checkpoints.
42
76
  * @param _origin The origin domain of the checkpoint.
43
- * @param _originmerkleTreeHook The address of the origin merkle tree as bytes32.
77
+ * @param _merkleTreeHook The address of the origin merkle tree as bytes32.
44
78
  * @return The domain hash.
45
79
  */
46
80
  function domainHash(
47
81
  uint32 _origin,
48
- bytes32 _originmerkleTreeHook
82
+ bytes32 _merkleTreeHook
49
83
  ) internal pure returns (bytes32) {
50
84
  // Including the origin merkle tree address in the signature allows the slashing
51
85
  // protocol to enroll multiple trees. Otherwise, a valid signature for
@@ -53,8 +87,6 @@ library CheckpointLib {
53
87
  // The slashing protocol should slash if validators sign attestations for
54
88
  // anything other than a whitelisted tree.
55
89
  return
56
- keccak256(
57
- abi.encodePacked(_origin, _originmerkleTreeHook, "HYPERLANE")
58
- );
90
+ keccak256(abi.encodePacked(_origin, _merkleTreeHook, "HYPERLANE"));
59
91
  }
60
92
  }
@@ -3,15 +3,15 @@ pragma solidity >=0.6.11;
3
3
 
4
4
  // work based on eth2 deposit contract, which is used under CC0-1.0
5
5
 
6
+ uint256 constant TREE_DEPTH = 32;
7
+ uint256 constant MAX_LEAVES = 2 ** TREE_DEPTH - 1;
8
+
6
9
  /**
7
10
  * @title MerkleLib
8
11
  * @author Celo Labs Inc.
9
12
  * @notice An incremental merkle tree modeled on the eth2 deposit contract.
10
13
  **/
11
14
  library MerkleLib {
12
- uint256 internal constant TREE_DEPTH = 32;
13
- uint256 internal constant MAX_LEAVES = 2 ** TREE_DEPTH - 1;
14
-
15
15
  /**
16
16
  * @notice Struct representing incremental merkle tree. Contains current
17
17
  * branch and the number of inserted leaves in the tree.
@@ -140,6 +140,36 @@ library MerkleLib {
140
140
  }
141
141
  }
142
142
 
143
+ /**
144
+ * @notice Calculates and returns the merkle root as if the index is
145
+ * the topmost leaf in the tree.
146
+ * @param _item Merkle leaf
147
+ * @param _branch Merkle proof
148
+ * @param _index Index of `_item` in tree
149
+ * @dev Replaces siblings greater than the index (right subtrees) with zeroes.
150
+ * @return _current Calculated merkle root
151
+ **/
152
+ function reconstructRoot(
153
+ bytes32 _item,
154
+ bytes32[TREE_DEPTH] memory _branch, // cheaper than calldata indexing
155
+ uint256 _index
156
+ ) internal pure returns (bytes32 _current) {
157
+ _current = _item;
158
+
159
+ bytes32[TREE_DEPTH] memory _zeroes = zeroHashes();
160
+
161
+ for (uint256 i = 0; i < TREE_DEPTH; i++) {
162
+ uint256 _ithBit = (_index >> i) & 0x01;
163
+ // cheaper than calldata indexing _branch[i*32:(i+1)*32];
164
+ if (_ithBit == 1) {
165
+ _current = keccak256(abi.encodePacked(_branch[i], _current));
166
+ } else {
167
+ // remove right subtree from proof
168
+ _current = keccak256(abi.encodePacked(_current, _zeroes[i]));
169
+ }
170
+ }
171
+ }
172
+
143
173
  // keccak256 zero hashes
144
174
  bytes32 internal constant Z_0 =
145
175
  hex"0000000000000000000000000000000000000000000000000000000000000000";
@@ -0,0 +1,62 @@
1
+ // SPDX-License-Identifier: MIT OR Apache-2.0
2
+ pragma solidity >=0.8.0;
3
+
4
+ /**
5
+ * @title Hyperlane OPL2ToL1Metadata Library
6
+ * @notice Library for formatted metadata used by OPL2ToL1Ism
7
+ */
8
+ library OPL2ToL1Metadata {
9
+ // bottom offset to the start of message id in the metadata
10
+ uint256 private constant MESSAGE_ID_OFFSET = 88;
11
+ // from IOptimismPortal.WithdrawalTransaction
12
+ // Σ {
13
+ // nonce = 32 bytes
14
+ // PADDING + sender = 32 bytes
15
+ // PADDING + target = 32 bytes
16
+ // value = 32 bytes
17
+ // gasLimit = 32 bytes
18
+ // _data
19
+ // OFFSET = 32 bytes
20
+ // LENGTH = 32 bytes
21
+ // } = 252 bytes
22
+ uint256 private constant FIXED_METADATA_LENGTH = 252;
23
+ // metadata here is double encoded call relayMessage(..., verifyMessageId)
24
+ // Σ {
25
+ // _selector = 4 bytes
26
+ // _nonce = 32 bytes
27
+ // PADDING + _sender = 32 bytes
28
+ // PADDING + _target = 32 bytes
29
+ // _value = 32 bytes
30
+ // _minGasLimit = 32 bytes
31
+ // _data
32
+ // OFFSET = 32 bytes
33
+ // LENGTH = 32 bytes
34
+ // PADDING + verifyMessageId = 64 bytes
35
+ // } = 292 bytes
36
+ uint256 private constant MESSENGER_CALLDATA_LENGTH = 292;
37
+
38
+ /**
39
+ * @notice Returns the message ID.
40
+ * @param _metadata OptimismPortal.WithdrawalTransaction encoded calldata
41
+ * @return ID of `_metadata`
42
+ */
43
+ function messageId(
44
+ bytes calldata _metadata
45
+ ) internal pure returns (bytes32) {
46
+ uint256 metadataLength = _metadata.length;
47
+ return
48
+ bytes32(
49
+ _metadata[metadataLength - MESSAGE_ID_OFFSET:metadataLength -
50
+ MESSAGE_ID_OFFSET +
51
+ 32]
52
+ );
53
+ }
54
+
55
+ function checkCalldataLength(
56
+ bytes calldata _metadata
57
+ ) internal pure returns (bool) {
58
+ return
59
+ _metadata.length ==
60
+ MESSENGER_CALLDATA_LENGTH + FIXED_METADATA_LENGTH;
61
+ }
62
+ }