@hyperlane-xyz/core 3.11.0 → 3.12.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 (407) hide show
  1. package/README.md +18 -2
  2. package/contracts/avs/ECDSAServiceManagerBase.sol +273 -0
  3. package/contracts/avs/ECDSAStakeRegistry.sol +536 -0
  4. package/contracts/avs/ECDSAStakeRegistryStorage.sol +55 -0
  5. package/contracts/avs/HyperlaneServiceManager.sol +297 -0
  6. package/contracts/hooks/PolygonPosHook.sol +83 -0
  7. package/contracts/interfaces/avs/IRemoteChallenger.sol +24 -0
  8. package/contracts/interfaces/avs/vendored/IAVSDirectory.sol +24 -0
  9. package/contracts/interfaces/avs/vendored/IDelegationManager.sol +32 -0
  10. package/contracts/interfaces/avs/vendored/IECDSAStakeRegistryEventsAndErrors.sol +99 -0
  11. package/contracts/interfaces/avs/vendored/IPaymentCoordinator.sol +46 -0
  12. package/contracts/interfaces/avs/vendored/IServiceManager.sol +28 -0
  13. package/contracts/interfaces/avs/vendored/IServiceManagerUI.sol +67 -0
  14. package/contracts/interfaces/avs/vendored/ISignatureUtils.sol +27 -0
  15. package/contracts/interfaces/avs/vendored/ISlasher.sol +11 -0
  16. package/contracts/interfaces/avs/vendored/IStrategy.sol +107 -0
  17. package/contracts/isms/hook/PolygonPosIsm.sol +58 -0
  18. package/contracts/libs/EnumerableMapEnrollment.sol +115 -0
  19. package/contracts/test/TestRemoteChallenger.sol +21 -0
  20. package/contracts/test/avs/TestAVSDirectory.sol +87 -0
  21. package/contracts/test/avs/TestDelegationManager.sol +33 -0
  22. package/contracts/test/avs/TestHyperlaneServiceManager.sol +30 -0
  23. package/contracts/test/avs/TestPaymentCoordinator.sol +20 -0
  24. package/contracts/test/avs/TestSlasher.sol +8 -0
  25. package/contracts/token/extensions/HypFiatTokenCollateral.sol +1 -0
  26. package/contracts/token/extensions/HypXERC20Collateral.sol +1 -0
  27. package/dist/@openzeppelin/contracts/crosschain/index.d.ts +3 -0
  28. package/dist/@openzeppelin/contracts/crosschain/index.d.ts.map +1 -0
  29. package/dist/@openzeppelin/contracts/crosschain/index.js +2 -0
  30. package/dist/@openzeppelin/contracts/crosschain/index.js.map +1 -0
  31. package/dist/@openzeppelin/contracts/crosschain/polygon/CrossChainEnabledPolygonChild.d.ts +66 -0
  32. package/dist/@openzeppelin/contracts/crosschain/polygon/CrossChainEnabledPolygonChild.d.ts.map +1 -0
  33. package/dist/@openzeppelin/contracts/crosschain/polygon/CrossChainEnabledPolygonChild.js +2 -0
  34. package/dist/@openzeppelin/contracts/crosschain/polygon/CrossChainEnabledPolygonChild.js.map +1 -0
  35. package/dist/@openzeppelin/contracts/crosschain/polygon/index.d.ts +2 -0
  36. package/dist/@openzeppelin/contracts/crosschain/polygon/index.d.ts.map +1 -0
  37. package/dist/@openzeppelin/contracts/crosschain/polygon/index.js +2 -0
  38. package/dist/@openzeppelin/contracts/crosschain/polygon/index.js.map +1 -0
  39. package/dist/@openzeppelin/contracts/index.d.ts +2 -0
  40. package/dist/@openzeppelin/contracts/index.d.ts.map +1 -1
  41. package/dist/@openzeppelin/contracts/vendor/index.d.ts +2 -0
  42. package/dist/@openzeppelin/contracts/vendor/index.d.ts.map +1 -1
  43. package/dist/@openzeppelin/contracts/vendor/polygon/IFxMessageProcessor.d.ts +66 -0
  44. package/dist/@openzeppelin/contracts/vendor/polygon/IFxMessageProcessor.d.ts.map +1 -0
  45. package/dist/@openzeppelin/contracts/vendor/polygon/IFxMessageProcessor.js +2 -0
  46. package/dist/@openzeppelin/contracts/vendor/polygon/IFxMessageProcessor.js.map +1 -0
  47. package/dist/@openzeppelin/contracts/vendor/polygon/index.d.ts +2 -0
  48. package/dist/@openzeppelin/contracts/vendor/polygon/index.d.ts.map +1 -0
  49. package/dist/@openzeppelin/contracts/vendor/polygon/index.js +2 -0
  50. package/dist/@openzeppelin/contracts/vendor/polygon/index.js.map +1 -0
  51. package/dist/@openzeppelin/contracts-upgradeable/interfaces/IERC1271Upgradeable.d.ts +54 -0
  52. package/dist/@openzeppelin/contracts-upgradeable/interfaces/IERC1271Upgradeable.d.ts.map +1 -0
  53. package/dist/@openzeppelin/contracts-upgradeable/interfaces/IERC1271Upgradeable.js +2 -0
  54. package/dist/@openzeppelin/contracts-upgradeable/interfaces/IERC1271Upgradeable.js.map +1 -0
  55. package/dist/@openzeppelin/contracts-upgradeable/interfaces/index.d.ts +1 -0
  56. package/dist/@openzeppelin/contracts-upgradeable/interfaces/index.d.ts.map +1 -1
  57. package/dist/buildArtifact.js +1 -1
  58. package/dist/buildArtifact.json +1 -1
  59. package/dist/contracts/avs/ECDSAServiceManagerBase.d.ts +423 -0
  60. package/dist/contracts/avs/ECDSAServiceManagerBase.d.ts.map +1 -0
  61. package/dist/contracts/avs/ECDSAServiceManagerBase.js +2 -0
  62. package/dist/contracts/avs/ECDSAServiceManagerBase.js.map +1 -0
  63. package/dist/contracts/avs/ECDSAStakeRegistry.d.ts +693 -0
  64. package/dist/contracts/avs/ECDSAStakeRegistry.d.ts.map +1 -0
  65. package/dist/contracts/avs/ECDSAStakeRegistry.js +2 -0
  66. package/dist/contracts/avs/ECDSAStakeRegistry.js.map +1 -0
  67. package/dist/contracts/avs/ECDSAStakeRegistryStorage.d.ts +157 -0
  68. package/dist/contracts/avs/ECDSAStakeRegistryStorage.d.ts.map +1 -0
  69. package/dist/contracts/avs/ECDSAStakeRegistryStorage.js +2 -0
  70. package/dist/contracts/avs/ECDSAStakeRegistryStorage.js.map +1 -0
  71. package/dist/contracts/avs/HyperlaneServiceManager.d.ts +736 -0
  72. package/dist/contracts/avs/HyperlaneServiceManager.d.ts.map +1 -0
  73. package/dist/contracts/avs/HyperlaneServiceManager.js +2 -0
  74. package/dist/contracts/avs/HyperlaneServiceManager.js.map +1 -0
  75. package/dist/contracts/avs/index.d.ts +5 -0
  76. package/dist/contracts/avs/index.d.ts.map +1 -0
  77. package/dist/contracts/avs/index.js +2 -0
  78. package/dist/contracts/avs/index.js.map +1 -0
  79. package/dist/contracts/hooks/PolygonPosHook.d.ts +518 -0
  80. package/dist/contracts/hooks/PolygonPosHook.d.ts.map +1 -0
  81. package/dist/contracts/hooks/PolygonPosHook.js +2 -0
  82. package/dist/contracts/hooks/PolygonPosHook.js.map +1 -0
  83. package/dist/contracts/hooks/index.d.ts +1 -0
  84. package/dist/contracts/hooks/index.d.ts.map +1 -1
  85. package/dist/contracts/index.d.ts +2 -0
  86. package/dist/contracts/index.d.ts.map +1 -1
  87. package/dist/contracts/interfaces/avs/IRemoteChallenger.d.ts +81 -0
  88. package/dist/contracts/interfaces/avs/IRemoteChallenger.d.ts.map +1 -0
  89. package/dist/contracts/interfaces/avs/IRemoteChallenger.js +2 -0
  90. package/dist/contracts/interfaces/avs/IRemoteChallenger.js.map +1 -0
  91. package/dist/contracts/interfaces/avs/index.d.ts +4 -0
  92. package/dist/contracts/interfaces/avs/index.d.ts.map +1 -0
  93. package/dist/contracts/interfaces/avs/index.js +2 -0
  94. package/dist/contracts/interfaces/avs/index.js.map +1 -0
  95. package/dist/contracts/interfaces/avs/vendored/IAVSDirectory.d.ts +160 -0
  96. package/dist/contracts/interfaces/avs/vendored/IAVSDirectory.d.ts.map +1 -0
  97. package/dist/contracts/interfaces/avs/vendored/IAVSDirectory.js +2 -0
  98. package/dist/contracts/interfaces/avs/vendored/IAVSDirectory.js.map +1 -0
  99. package/dist/contracts/interfaces/avs/vendored/IDelegationManager.d.ts +93 -0
  100. package/dist/contracts/interfaces/avs/vendored/IDelegationManager.d.ts.map +1 -0
  101. package/dist/contracts/interfaces/avs/vendored/IDelegationManager.js +2 -0
  102. package/dist/contracts/interfaces/avs/vendored/IDelegationManager.js.map +1 -0
  103. package/dist/contracts/interfaces/avs/vendored/IECDSAStakeRegistryEventsAndErrors.d.ts +157 -0
  104. package/dist/contracts/interfaces/avs/vendored/IECDSAStakeRegistryEventsAndErrors.d.ts.map +1 -0
  105. package/dist/contracts/interfaces/avs/vendored/IECDSAStakeRegistryEventsAndErrors.js +2 -0
  106. package/dist/contracts/interfaces/avs/vendored/IECDSAStakeRegistryEventsAndErrors.js.map +1 -0
  107. package/dist/contracts/interfaces/avs/vendored/IPaymentCoordinator.d.ts +96 -0
  108. package/dist/contracts/interfaces/avs/vendored/IPaymentCoordinator.d.ts.map +1 -0
  109. package/dist/contracts/interfaces/avs/vendored/IPaymentCoordinator.js +2 -0
  110. package/dist/contracts/interfaces/avs/vendored/IPaymentCoordinator.js.map +1 -0
  111. package/dist/contracts/interfaces/avs/vendored/IServiceManager.d.ts +250 -0
  112. package/dist/contracts/interfaces/avs/vendored/IServiceManager.d.ts.map +1 -0
  113. package/dist/contracts/interfaces/avs/vendored/IServiceManager.js +2 -0
  114. package/dist/contracts/interfaces/avs/vendored/IServiceManager.js.map +1 -0
  115. package/dist/contracts/interfaces/avs/vendored/IServiceManagerUI.d.ts +189 -0
  116. package/dist/contracts/interfaces/avs/vendored/IServiceManagerUI.d.ts.map +1 -0
  117. package/dist/contracts/interfaces/avs/vendored/IServiceManagerUI.js +2 -0
  118. package/dist/contracts/interfaces/avs/vendored/IServiceManagerUI.js.map +1 -0
  119. package/dist/contracts/interfaces/avs/vendored/ISlasher.d.ts +66 -0
  120. package/dist/contracts/interfaces/avs/vendored/ISlasher.d.ts.map +1 -0
  121. package/dist/contracts/interfaces/avs/vendored/ISlasher.js +2 -0
  122. package/dist/contracts/interfaces/avs/vendored/ISlasher.js.map +1 -0
  123. package/dist/contracts/interfaces/avs/vendored/IStrategy.d.ts +295 -0
  124. package/dist/contracts/interfaces/avs/vendored/IStrategy.d.ts.map +1 -0
  125. package/dist/contracts/interfaces/avs/vendored/IStrategy.js +2 -0
  126. package/dist/contracts/interfaces/avs/vendored/IStrategy.js.map +1 -0
  127. package/dist/contracts/interfaces/avs/vendored/index.d.ts +9 -0
  128. package/dist/contracts/interfaces/avs/vendored/index.d.ts.map +1 -0
  129. package/dist/contracts/interfaces/avs/vendored/index.js +2 -0
  130. package/dist/contracts/interfaces/avs/vendored/index.js.map +1 -0
  131. package/dist/contracts/interfaces/index.d.ts +2 -0
  132. package/dist/contracts/interfaces/index.d.ts.map +1 -1
  133. package/dist/contracts/isms/hook/PolygonPosIsm.d.ts +243 -0
  134. package/dist/contracts/isms/hook/PolygonPosIsm.d.ts.map +1 -0
  135. package/dist/contracts/isms/hook/PolygonPosIsm.js +2 -0
  136. package/dist/contracts/isms/hook/PolygonPosIsm.js.map +1 -0
  137. package/dist/contracts/isms/hook/index.d.ts +1 -0
  138. package/dist/contracts/isms/hook/index.d.ts.map +1 -1
  139. package/dist/contracts/libs/EnumerableMapEnrollment.d.ts +73 -0
  140. package/dist/contracts/libs/EnumerableMapEnrollment.d.ts.map +1 -0
  141. package/dist/contracts/libs/EnumerableMapEnrollment.js +2 -0
  142. package/dist/contracts/libs/EnumerableMapEnrollment.js.map +1 -0
  143. package/dist/contracts/libs/index.d.ts +1 -0
  144. package/dist/contracts/libs/index.d.ts.map +1 -1
  145. package/dist/contracts/test/TestRemoteChallenger.d.ts +81 -0
  146. package/dist/contracts/test/TestRemoteChallenger.d.ts.map +1 -0
  147. package/dist/contracts/test/TestRemoteChallenger.js +2 -0
  148. package/dist/contracts/test/TestRemoteChallenger.js.map +1 -0
  149. package/dist/contracts/test/avs/TestAVSDirectory.d.ts +235 -0
  150. package/dist/contracts/test/avs/TestAVSDirectory.d.ts.map +1 -0
  151. package/dist/contracts/test/avs/TestAVSDirectory.js +2 -0
  152. package/dist/contracts/test/avs/TestAVSDirectory.js.map +1 -0
  153. package/dist/contracts/test/avs/TestDelegationManager.d.ts +154 -0
  154. package/dist/contracts/test/avs/TestDelegationManager.d.ts.map +1 -0
  155. package/dist/contracts/test/avs/TestDelegationManager.js +2 -0
  156. package/dist/contracts/test/avs/TestDelegationManager.js.map +1 -0
  157. package/dist/contracts/test/avs/TestHyperlaneServiceManager.d.ts +767 -0
  158. package/dist/contracts/test/avs/TestHyperlaneServiceManager.d.ts.map +1 -0
  159. package/dist/contracts/test/avs/TestHyperlaneServiceManager.js +2 -0
  160. package/dist/contracts/test/avs/TestHyperlaneServiceManager.js.map +1 -0
  161. package/dist/contracts/test/avs/TestPaymentCoordinator.d.ts +96 -0
  162. package/dist/contracts/test/avs/TestPaymentCoordinator.d.ts.map +1 -0
  163. package/dist/contracts/test/avs/TestPaymentCoordinator.js +2 -0
  164. package/dist/contracts/test/avs/TestPaymentCoordinator.js.map +1 -0
  165. package/dist/contracts/test/avs/TestSlasher.d.ts +66 -0
  166. package/dist/contracts/test/avs/TestSlasher.d.ts.map +1 -0
  167. package/dist/contracts/test/avs/TestSlasher.js +2 -0
  168. package/dist/contracts/test/avs/TestSlasher.js.map +1 -0
  169. package/dist/contracts/test/avs/index.d.ts +6 -0
  170. package/dist/contracts/test/avs/index.d.ts.map +1 -0
  171. package/dist/contracts/test/avs/index.js +2 -0
  172. package/dist/contracts/test/avs/index.js.map +1 -0
  173. package/dist/contracts/test/index.d.ts +3 -0
  174. package/dist/contracts/test/index.d.ts.map +1 -1
  175. package/dist/factories/@openzeppelin/contracts/crosschain/index.d.ts +2 -0
  176. package/dist/factories/@openzeppelin/contracts/crosschain/index.d.ts.map +1 -0
  177. package/dist/factories/@openzeppelin/contracts/crosschain/index.js +5 -0
  178. package/dist/factories/@openzeppelin/contracts/crosschain/index.js.map +1 -0
  179. package/dist/factories/@openzeppelin/contracts/crosschain/polygon/CrossChainEnabledPolygonChild__factory.d.ts +31 -0
  180. package/dist/factories/@openzeppelin/contracts/crosschain/polygon/CrossChainEnabledPolygonChild__factory.d.ts.map +1 -0
  181. package/dist/factories/@openzeppelin/contracts/crosschain/polygon/CrossChainEnabledPolygonChild__factory.js +44 -0
  182. package/dist/factories/@openzeppelin/contracts/crosschain/polygon/CrossChainEnabledPolygonChild__factory.js.map +1 -0
  183. package/dist/factories/@openzeppelin/contracts/crosschain/polygon/index.d.ts +2 -0
  184. package/dist/factories/@openzeppelin/contracts/crosschain/polygon/index.d.ts.map +1 -0
  185. package/dist/factories/@openzeppelin/contracts/crosschain/polygon/index.js +5 -0
  186. package/dist/factories/@openzeppelin/contracts/crosschain/polygon/index.js.map +1 -0
  187. package/dist/factories/@openzeppelin/contracts/index.d.ts +1 -0
  188. package/dist/factories/@openzeppelin/contracts/index.d.ts.map +1 -1
  189. package/dist/factories/@openzeppelin/contracts/index.js +1 -0
  190. package/dist/factories/@openzeppelin/contracts/index.js.map +1 -1
  191. package/dist/factories/@openzeppelin/contracts/vendor/index.d.ts +1 -0
  192. package/dist/factories/@openzeppelin/contracts/vendor/index.d.ts.map +1 -1
  193. package/dist/factories/@openzeppelin/contracts/vendor/index.js +1 -0
  194. package/dist/factories/@openzeppelin/contracts/vendor/index.js.map +1 -1
  195. package/dist/factories/@openzeppelin/contracts/vendor/polygon/IFxMessageProcessor__factory.d.ts +27 -0
  196. package/dist/factories/@openzeppelin/contracts/vendor/polygon/IFxMessageProcessor__factory.d.ts.map +1 -0
  197. package/dist/factories/@openzeppelin/contracts/vendor/polygon/IFxMessageProcessor__factory.js +39 -0
  198. package/dist/factories/@openzeppelin/contracts/vendor/polygon/IFxMessageProcessor__factory.js.map +1 -0
  199. package/dist/factories/@openzeppelin/contracts/vendor/polygon/index.d.ts +2 -0
  200. package/dist/factories/@openzeppelin/contracts/vendor/polygon/index.d.ts.map +1 -0
  201. package/dist/factories/@openzeppelin/contracts/vendor/polygon/index.js +5 -0
  202. package/dist/factories/@openzeppelin/contracts/vendor/polygon/index.js.map +1 -0
  203. package/dist/factories/@openzeppelin/contracts-upgradeable/interfaces/IERC1271Upgradeable__factory.d.ts +27 -0
  204. package/dist/factories/@openzeppelin/contracts-upgradeable/interfaces/IERC1271Upgradeable__factory.d.ts.map +1 -0
  205. package/dist/factories/@openzeppelin/contracts-upgradeable/interfaces/IERC1271Upgradeable__factory.js +40 -0
  206. package/dist/factories/@openzeppelin/contracts-upgradeable/interfaces/IERC1271Upgradeable__factory.js.map +1 -0
  207. package/dist/factories/@openzeppelin/contracts-upgradeable/interfaces/index.d.ts +1 -0
  208. package/dist/factories/@openzeppelin/contracts-upgradeable/interfaces/index.d.ts.map +1 -1
  209. package/dist/factories/@openzeppelin/contracts-upgradeable/interfaces/index.js +1 -0
  210. package/dist/factories/@openzeppelin/contracts-upgradeable/interfaces/index.js.map +1 -1
  211. package/dist/factories/contracts/avs/ECDSAServiceManagerBase__factory.d.ts +221 -0
  212. package/dist/factories/contracts/avs/ECDSAServiceManagerBase__factory.d.ts.map +1 -0
  213. package/dist/factories/contracts/avs/ECDSAServiceManagerBase__factory.js +291 -0
  214. package/dist/factories/contracts/avs/ECDSAServiceManagerBase__factory.js.map +1 -0
  215. package/dist/factories/contracts/avs/ECDSAStakeRegistryStorage__factory.d.ts +205 -0
  216. package/dist/factories/contracts/avs/ECDSAStakeRegistryStorage__factory.d.ts.map +1 -0
  217. package/dist/factories/contracts/avs/ECDSAStakeRegistryStorage__factory.js +266 -0
  218. package/dist/factories/contracts/avs/ECDSAStakeRegistryStorage__factory.js.map +1 -0
  219. package/dist/factories/contracts/avs/ECDSAStakeRegistry__factory.d.ts +577 -0
  220. package/dist/factories/contracts/avs/ECDSAStakeRegistry__factory.d.ts.map +1 -0
  221. package/dist/factories/contracts/avs/ECDSAStakeRegistry__factory.js +762 -0
  222. package/dist/factories/contracts/avs/ECDSAStakeRegistry__factory.js.map +1 -0
  223. package/dist/factories/contracts/avs/HyperlaneServiceManager__factory.d.ts +444 -0
  224. package/dist/factories/contracts/avs/HyperlaneServiceManager__factory.d.ts.map +1 -0
  225. package/dist/factories/contracts/avs/HyperlaneServiceManager__factory.js +587 -0
  226. package/dist/factories/contracts/avs/HyperlaneServiceManager__factory.js.map +1 -0
  227. package/dist/factories/contracts/avs/index.d.ts +5 -0
  228. package/dist/factories/contracts/avs/index.d.ts.map +1 -0
  229. package/dist/factories/contracts/avs/index.js +8 -0
  230. package/dist/factories/contracts/avs/index.js.map +1 -0
  231. package/dist/factories/contracts/hooks/PolygonPosHook__factory.d.ts +316 -0
  232. package/dist/factories/contracts/hooks/PolygonPosHook__factory.d.ts.map +1 -0
  233. package/dist/factories/contracts/hooks/PolygonPosHook__factory.js +423 -0
  234. package/dist/factories/contracts/hooks/PolygonPosHook__factory.js.map +1 -0
  235. package/dist/factories/contracts/hooks/index.d.ts +1 -0
  236. package/dist/factories/contracts/hooks/index.d.ts.map +1 -1
  237. package/dist/factories/contracts/hooks/index.js +1 -0
  238. package/dist/factories/contracts/hooks/index.js.map +1 -1
  239. package/dist/factories/contracts/index.d.ts +1 -0
  240. package/dist/factories/contracts/index.d.ts.map +1 -1
  241. package/dist/factories/contracts/index.js +1 -0
  242. package/dist/factories/contracts/index.js.map +1 -1
  243. package/dist/factories/contracts/interfaces/avs/IRemoteChallenger__factory.d.ts +29 -0
  244. package/dist/factories/contracts/interfaces/avs/IRemoteChallenger__factory.d.ts.map +1 -0
  245. package/dist/factories/contracts/interfaces/avs/IRemoteChallenger__factory.js +42 -0
  246. package/dist/factories/contracts/interfaces/avs/IRemoteChallenger__factory.js.map +1 -0
  247. package/dist/factories/contracts/interfaces/avs/index.d.ts +3 -0
  248. package/dist/factories/contracts/interfaces/avs/index.d.ts.map +1 -0
  249. package/dist/factories/contracts/interfaces/avs/index.js +6 -0
  250. package/dist/factories/contracts/interfaces/avs/index.js.map +1 -0
  251. package/dist/factories/contracts/interfaces/avs/vendored/IAVSDirectory__factory.d.ts +71 -0
  252. package/dist/factories/contracts/interfaces/avs/vendored/IAVSDirectory__factory.d.ts.map +1 -0
  253. package/dist/factories/contracts/interfaces/avs/vendored/IAVSDirectory__factory.js +96 -0
  254. package/dist/factories/contracts/interfaces/avs/vendored/IAVSDirectory__factory.js.map +1 -0
  255. package/dist/factories/contracts/interfaces/avs/vendored/IDelegationManager__factory.d.ts +54 -0
  256. package/dist/factories/contracts/interfaces/avs/vendored/IDelegationManager__factory.d.ts.map +1 -0
  257. package/dist/factories/contracts/interfaces/avs/vendored/IDelegationManager__factory.js +75 -0
  258. package/dist/factories/contracts/interfaces/avs/vendored/IDelegationManager__factory.js.map +1 -0
  259. package/dist/factories/contracts/interfaces/avs/vendored/IECDSAStakeRegistryEventsAndErrors__factory.d.ts +205 -0
  260. package/dist/factories/contracts/interfaces/avs/vendored/IECDSAStakeRegistryEventsAndErrors__factory.d.ts.map +1 -0
  261. package/dist/factories/contracts/interfaces/avs/vendored/IECDSAStakeRegistryEventsAndErrors__factory.js +266 -0
  262. package/dist/factories/contracts/interfaces/avs/vendored/IECDSAStakeRegistryEventsAndErrors__factory.js.map +1 -0
  263. package/dist/factories/contracts/interfaces/avs/vendored/IPaymentCoordinator__factory.d.ts +49 -0
  264. package/dist/factories/contracts/interfaces/avs/vendored/IPaymentCoordinator__factory.d.ts.map +1 -0
  265. package/dist/factories/contracts/interfaces/avs/vendored/IPaymentCoordinator__factory.js +68 -0
  266. package/dist/factories/contracts/interfaces/avs/vendored/IPaymentCoordinator__factory.js.map +1 -0
  267. package/dist/factories/contracts/interfaces/avs/vendored/IServiceManagerUI__factory.d.ts +90 -0
  268. package/dist/factories/contracts/interfaces/avs/vendored/IServiceManagerUI__factory.d.ts.map +1 -0
  269. package/dist/factories/contracts/interfaces/avs/vendored/IServiceManagerUI__factory.js +122 -0
  270. package/dist/factories/contracts/interfaces/avs/vendored/IServiceManagerUI__factory.js.map +1 -0
  271. package/dist/factories/contracts/interfaces/avs/vendored/IServiceManager__factory.d.ts +130 -0
  272. package/dist/factories/contracts/interfaces/avs/vendored/IServiceManager__factory.d.ts.map +1 -0
  273. package/dist/factories/contracts/interfaces/avs/vendored/IServiceManager__factory.js +174 -0
  274. package/dist/factories/contracts/interfaces/avs/vendored/IServiceManager__factory.js.map +1 -0
  275. package/dist/factories/contracts/interfaces/avs/vendored/ISlasher__factory.d.ts +19 -0
  276. package/dist/factories/contracts/interfaces/avs/vendored/ISlasher__factory.d.ts.map +1 -0
  277. package/dist/factories/contracts/interfaces/avs/vendored/ISlasher__factory.js +29 -0
  278. package/dist/factories/contracts/interfaces/avs/vendored/ISlasher__factory.js.map +1 -0
  279. package/dist/factories/contracts/interfaces/avs/vendored/IStrategy__factory.d.ts +173 -0
  280. package/dist/factories/contracts/interfaces/avs/vendored/IStrategy__factory.d.ts.map +1 -0
  281. package/dist/factories/contracts/interfaces/avs/vendored/IStrategy__factory.js +235 -0
  282. package/dist/factories/contracts/interfaces/avs/vendored/IStrategy__factory.js.map +1 -0
  283. package/dist/factories/contracts/interfaces/avs/vendored/index.d.ts +9 -0
  284. package/dist/factories/contracts/interfaces/avs/vendored/index.d.ts.map +1 -0
  285. package/dist/factories/contracts/interfaces/avs/vendored/index.js +12 -0
  286. package/dist/factories/contracts/interfaces/avs/vendored/index.js.map +1 -0
  287. package/dist/factories/contracts/interfaces/index.d.ts +1 -0
  288. package/dist/factories/contracts/interfaces/index.d.ts.map +1 -1
  289. package/dist/factories/contracts/interfaces/index.js +1 -0
  290. package/dist/factories/contracts/interfaces/index.js.map +1 -1
  291. package/dist/factories/contracts/isms/hook/PolygonPosIsm__factory.d.ts +153 -0
  292. package/dist/factories/contracts/isms/hook/PolygonPosIsm__factory.d.ts.map +1 -0
  293. package/dist/factories/contracts/isms/hook/PolygonPosIsm__factory.js +212 -0
  294. package/dist/factories/contracts/isms/hook/PolygonPosIsm__factory.js.map +1 -0
  295. package/dist/factories/contracts/isms/hook/index.d.ts +1 -0
  296. package/dist/factories/contracts/isms/hook/index.d.ts.map +1 -1
  297. package/dist/factories/contracts/isms/hook/index.js +1 -0
  298. package/dist/factories/contracts/isms/hook/index.js.map +1 -1
  299. package/dist/factories/contracts/libs/EnumerableMapEnrollment__factory.d.ts +67 -0
  300. package/dist/factories/contracts/libs/EnumerableMapEnrollment__factory.d.ts.map +1 -0
  301. package/dist/factories/contracts/libs/EnumerableMapEnrollment__factory.js +101 -0
  302. package/dist/factories/contracts/libs/EnumerableMapEnrollment__factory.js.map +1 -0
  303. package/dist/factories/contracts/libs/index.d.ts +1 -0
  304. package/dist/factories/contracts/libs/index.d.ts.map +1 -1
  305. package/dist/factories/contracts/libs/index.js +1 -0
  306. package/dist/factories/contracts/libs/index.js.map +1 -1
  307. package/dist/factories/contracts/test/TestRemoteChallenger__factory.d.ts +49 -0
  308. package/dist/factories/contracts/test/TestRemoteChallenger__factory.d.ts.map +1 -0
  309. package/dist/factories/contracts/test/TestRemoteChallenger__factory.js +76 -0
  310. package/dist/factories/contracts/test/TestRemoteChallenger__factory.js.map +1 -0
  311. package/dist/factories/contracts/test/avs/TestAVSDirectory__factory.d.ts +157 -0
  312. package/dist/factories/contracts/test/avs/TestAVSDirectory__factory.d.ts.map +1 -0
  313. package/dist/factories/contracts/test/avs/TestAVSDirectory__factory.js +216 -0
  314. package/dist/factories/contracts/test/avs/TestAVSDirectory__factory.js.map +1 -0
  315. package/dist/factories/contracts/test/avs/TestDelegationManager__factory.d.ts +112 -0
  316. package/dist/factories/contracts/test/avs/TestDelegationManager__factory.d.ts.map +1 -0
  317. package/dist/factories/contracts/test/avs/TestDelegationManager__factory.js +159 -0
  318. package/dist/factories/contracts/test/avs/TestDelegationManager__factory.js.map +1 -0
  319. package/dist/factories/contracts/test/avs/TestHyperlaneServiceManager__factory.d.ts +458 -0
  320. package/dist/factories/contracts/test/avs/TestHyperlaneServiceManager__factory.d.ts.map +1 -0
  321. package/dist/factories/contracts/test/avs/TestHyperlaneServiceManager__factory.js +605 -0
  322. package/dist/factories/contracts/test/avs/TestHyperlaneServiceManager__factory.js.map +1 -0
  323. package/dist/factories/contracts/test/avs/TestPaymentCoordinator__factory.d.ts +61 -0
  324. package/dist/factories/contracts/test/avs/TestPaymentCoordinator__factory.d.ts.map +1 -0
  325. package/dist/factories/contracts/test/avs/TestPaymentCoordinator__factory.js +91 -0
  326. package/dist/factories/contracts/test/avs/TestPaymentCoordinator__factory.js.map +1 -0
  327. package/dist/factories/contracts/test/avs/TestSlasher__factory.d.ts +31 -0
  328. package/dist/factories/contracts/test/avs/TestSlasher__factory.d.ts.map +1 -0
  329. package/dist/factories/contracts/test/avs/TestSlasher__factory.js +52 -0
  330. package/dist/factories/contracts/test/avs/TestSlasher__factory.js.map +1 -0
  331. package/dist/factories/contracts/test/avs/index.d.ts +6 -0
  332. package/dist/factories/contracts/test/avs/index.d.ts.map +1 -0
  333. package/dist/factories/contracts/test/avs/index.js +9 -0
  334. package/dist/factories/contracts/test/avs/index.js.map +1 -0
  335. package/dist/factories/contracts/test/index.d.ts +2 -0
  336. package/dist/factories/contracts/test/index.d.ts.map +1 -1
  337. package/dist/factories/contracts/test/index.js +2 -0
  338. package/dist/factories/contracts/test/index.js.map +1 -1
  339. package/dist/factories/contracts/token/extensions/HypFiatTokenCollateral__factory.d.ts +1 -1
  340. package/dist/factories/contracts/token/extensions/HypFiatTokenCollateral__factory.js +1 -1
  341. package/dist/factories/contracts/token/extensions/HypXERC20Collateral__factory.d.ts +1 -1
  342. package/dist/factories/contracts/token/extensions/HypXERC20Collateral__factory.js +1 -1
  343. package/dist/factories/fx-portal/contracts/index.d.ts +2 -0
  344. package/dist/factories/fx-portal/contracts/index.d.ts.map +1 -0
  345. package/dist/factories/fx-portal/contracts/index.js +5 -0
  346. package/dist/factories/fx-portal/contracts/index.js.map +1 -0
  347. package/dist/factories/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/FxBaseRootTunnel__factory.d.ts +83 -0
  348. package/dist/factories/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/FxBaseRootTunnel__factory.d.ts.map +1 -0
  349. package/dist/factories/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/FxBaseRootTunnel__factory.js +113 -0
  350. package/dist/factories/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/FxBaseRootTunnel__factory.js.map +1 -0
  351. package/dist/factories/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/ICheckpointManager__factory.d.ts +51 -0
  352. package/dist/factories/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/ICheckpointManager__factory.d.ts.map +1 -0
  353. package/dist/factories/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/ICheckpointManager__factory.js +78 -0
  354. package/dist/factories/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/ICheckpointManager__factory.js.map +1 -0
  355. package/dist/factories/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/IFxStateSender__factory.d.ts +23 -0
  356. package/dist/factories/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/IFxStateSender__factory.d.ts.map +1 -0
  357. package/dist/factories/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/IFxStateSender__factory.js +34 -0
  358. package/dist/factories/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/IFxStateSender__factory.js.map +1 -0
  359. package/dist/factories/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/index.d.ts +4 -0
  360. package/dist/factories/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/index.d.ts.map +1 -0
  361. package/dist/factories/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/index.js +7 -0
  362. package/dist/factories/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/index.js.map +1 -0
  363. package/dist/factories/fx-portal/contracts/tunnel/index.d.ts +2 -0
  364. package/dist/factories/fx-portal/contracts/tunnel/index.d.ts.map +1 -0
  365. package/dist/factories/fx-portal/contracts/tunnel/index.js +5 -0
  366. package/dist/factories/fx-portal/contracts/tunnel/index.js.map +1 -0
  367. package/dist/factories/fx-portal/index.d.ts +2 -0
  368. package/dist/factories/fx-portal/index.d.ts.map +1 -0
  369. package/dist/factories/fx-portal/index.js +5 -0
  370. package/dist/factories/fx-portal/index.js.map +1 -0
  371. package/dist/factories/index.d.ts +1 -0
  372. package/dist/factories/index.d.ts.map +1 -1
  373. package/dist/factories/index.js +1 -0
  374. package/dist/factories/index.js.map +1 -1
  375. package/dist/fx-portal/contracts/index.d.ts +3 -0
  376. package/dist/fx-portal/contracts/index.d.ts.map +1 -0
  377. package/dist/fx-portal/contracts/index.js +2 -0
  378. package/dist/fx-portal/contracts/index.js.map +1 -0
  379. package/dist/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/FxBaseRootTunnel.d.ts +172 -0
  380. package/dist/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/FxBaseRootTunnel.d.ts.map +1 -0
  381. package/dist/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/FxBaseRootTunnel.js +2 -0
  382. package/dist/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/FxBaseRootTunnel.js.map +1 -0
  383. package/dist/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/ICheckpointManager.d.ts +122 -0
  384. package/dist/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/ICheckpointManager.d.ts.map +1 -0
  385. package/dist/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/ICheckpointManager.js +2 -0
  386. package/dist/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/ICheckpointManager.js.map +1 -0
  387. package/dist/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/IFxStateSender.d.ts +66 -0
  388. package/dist/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/IFxStateSender.d.ts.map +1 -0
  389. package/dist/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/IFxStateSender.js +2 -0
  390. package/dist/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/IFxStateSender.js.map +1 -0
  391. package/dist/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/index.d.ts +4 -0
  392. package/dist/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/index.d.ts.map +1 -0
  393. package/dist/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/index.js +2 -0
  394. package/dist/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/index.js.map +1 -0
  395. package/dist/fx-portal/contracts/tunnel/index.d.ts +3 -0
  396. package/dist/fx-portal/contracts/tunnel/index.d.ts.map +1 -0
  397. package/dist/fx-portal/contracts/tunnel/index.js +2 -0
  398. package/dist/fx-portal/contracts/tunnel/index.js.map +1 -0
  399. package/dist/fx-portal/index.d.ts +3 -0
  400. package/dist/fx-portal/index.d.ts.map +1 -0
  401. package/dist/fx-portal/index.js +2 -0
  402. package/dist/fx-portal/index.js.map +1 -0
  403. package/dist/index.d.ts +58 -0
  404. package/dist/index.d.ts.map +1 -1
  405. package/dist/index.js +28 -0
  406. package/dist/index.js.map +1 -1
  407. package/package.json +7 -5
@@ -0,0 +1,67 @@
1
+ // SPDX-License-Identifier: BUSL-1.1
2
+ pragma solidity >=0.8.0;
3
+
4
+ import {ISignatureUtils} from "./ISignatureUtils.sol";
5
+ import {IDelegationManager} from "./IDelegationManager.sol";
6
+
7
+ /**
8
+ * @title Minimal interface for a ServiceManager-type contract that AVS ServiceManager contracts must implement
9
+ * for eigenlabs to be able to index their data on the AVS marketplace frontend.
10
+ * @author Layr Labs, Inc.
11
+ */
12
+ interface IServiceManagerUI {
13
+ /**
14
+ * Metadata should follow the format outlined by this example.
15
+ * {
16
+ * "name": "EigenLabs AVS 1",
17
+ * "website": "https://www.eigenlayer.xyz/",
18
+ * "description": "This is my 1st AVS",
19
+ * "logo": "https://holesky-operator-metadata.s3.amazonaws.com/eigenlayer.png",
20
+ * "twitter": "https://twitter.com/eigenlayer"
21
+ * }
22
+ * @notice Updates the metadata URI for the AVS
23
+ * @param _metadataURI is the metadata URI for the AVS
24
+ */
25
+ function updateAVSMetadataURI(string memory _metadataURI) external;
26
+
27
+ /**
28
+ * @notice Forwards a call to EigenLayer's DelegationManager contract to confirm operator registration with the AVS
29
+ * @param operator The address of the operator to register.
30
+ * @param operatorSignature The signature, salt, and expiry of the operator's signature.
31
+ */
32
+ function registerOperatorToAVS(
33
+ address operator,
34
+ ISignatureUtils.SignatureWithSaltAndExpiry memory operatorSignature
35
+ ) external;
36
+
37
+ /**
38
+ * @notice Forwards a call to EigenLayer's DelegationManager contract to confirm operator deregistration from the AVS
39
+ * @param operator The address of the operator to deregister.
40
+ */
41
+ function deregisterOperatorFromAVS(address operator) external;
42
+
43
+ /**
44
+ * @notice Returns the list of strategies that the operator has potentially restaked on the AVS
45
+ * @param operator The address of the operator to get restaked strategies for
46
+ * @dev This function is intended to be called off-chain
47
+ * @dev No guarantee is made on whether the operator has shares for a strategy in a quorum or uniqueness
48
+ * of each element in the returned array. The off-chain service should do that validation separately
49
+ */
50
+ function getOperatorRestakedStrategies(
51
+ address operator
52
+ ) external view returns (address[] memory);
53
+
54
+ /**
55
+ * @notice Returns the list of strategies that the AVS supports for restaking
56
+ * @dev This function is intended to be called off-chain
57
+ * @dev No guarantee is made on uniqueness of each element in the returned array.
58
+ * The off-chain service should do that validation separately
59
+ */
60
+ function getRestakeableStrategies()
61
+ external
62
+ view
63
+ returns (address[] memory);
64
+
65
+ /// @notice Returns the EigenLayer AVSDirectory contract.
66
+ function avsDirectory() external view returns (address);
67
+ }
@@ -0,0 +1,27 @@
1
+ // SPDX-License-Identifier: BUSL-1.1
2
+ pragma solidity >=0.5.0;
3
+
4
+ /**
5
+ * @title The interface for common signature utilities.
6
+ * @author Layr Labs, Inc.
7
+ * @notice Terms of Service: https://docs.eigenlayer.xyz/overview/terms-of-service
8
+ */
9
+ interface ISignatureUtils {
10
+ // @notice Struct that bundles together a signature and an expiration time for the signature. Used primarily for stack management.
11
+ struct SignatureWithExpiry {
12
+ // the signature itself, formatted as a single bytes object
13
+ bytes signature;
14
+ // the expiration timestamp (UTC) of the signature
15
+ uint256 expiry;
16
+ }
17
+
18
+ // @notice Struct that bundles together a signature, a salt for uniqueness, and an expiration time for the signature. Used primarily for stack management.
19
+ struct SignatureWithSaltAndExpiry {
20
+ // the signature itself, formatted as a single bytes object
21
+ bytes signature;
22
+ // the salt used to generate the signature
23
+ bytes32 salt;
24
+ // the expiration timestamp (UTC) of the signature
25
+ uint256 expiry;
26
+ }
27
+ }
@@ -0,0 +1,11 @@
1
+ // SPDX-License-Identifier: BUSL-1.1
2
+ pragma solidity >=0.5.0;
3
+
4
+ /**
5
+ * @title Interface for the primary 'slashing' contract for EigenLayer.
6
+ * @author Layr Labs, Inc.
7
+ * @notice Terms of Service: https://docs.eigenlayer.xyz/overview/terms-of-service
8
+ */
9
+ interface ISlasher {
10
+ function freezeOperator(address toBeFrozen) external;
11
+ }
@@ -0,0 +1,107 @@
1
+ // SPDX-License-Identifier: BUSL-1.1
2
+ pragma solidity >=0.5.0;
3
+
4
+ import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
5
+
6
+ /**
7
+ * @title Minimal interface for an `Strategy` contract.
8
+ * @author Layr Labs, Inc.
9
+ * @notice Terms of Service: https://docs.eigenlayer.xyz/overview/terms-of-service
10
+ * @notice Custom `Strategy` implementations may expand extensively on this interface.
11
+ */
12
+ interface IStrategy {
13
+ /**
14
+ * @notice Used to deposit tokens into this Strategy
15
+ * @param token is the ERC20 token being deposited
16
+ * @param amount is the amount of token being deposited
17
+ * @dev This function is only callable by the strategyManager contract. It is invoked inside of the strategyManager's
18
+ * `depositIntoStrategy` function, and individual share balances are recorded in the strategyManager as well.
19
+ * @return newShares is the number of new shares issued at the current exchange ratio.
20
+ */
21
+ function deposit(IERC20 token, uint256 amount) external returns (uint256);
22
+
23
+ /**
24
+ * @notice Used to withdraw tokens from this Strategy, to the `recipient`'s address
25
+ * @param recipient is the address to receive the withdrawn funds
26
+ * @param token is the ERC20 token being transferred out
27
+ * @param amountShares is the amount of shares being withdrawn
28
+ * @dev This function is only callable by the strategyManager contract. It is invoked inside of the strategyManager's
29
+ * other functions, and individual share balances are recorded in the strategyManager as well.
30
+ */
31
+ function withdraw(
32
+ address recipient,
33
+ IERC20 token,
34
+ uint256 amountShares
35
+ ) external;
36
+
37
+ /**
38
+ * @notice Used to convert a number of shares to the equivalent amount of underlying tokens for this strategy.
39
+ * @notice In contrast to `sharesToUnderlyingView`, this function **may** make state modifications
40
+ * @param amountShares is the amount of shares to calculate its conversion into the underlying token
41
+ * @return The amount of underlying tokens corresponding to the input `amountShares`
42
+ * @dev Implementation for these functions in particular may vary significantly for different strategies
43
+ */
44
+ function sharesToUnderlying(
45
+ uint256 amountShares
46
+ ) external returns (uint256);
47
+
48
+ /**
49
+ * @notice Used to convert an amount of underlying tokens to the equivalent amount of shares in this strategy.
50
+ * @notice In contrast to `underlyingToSharesView`, this function **may** make state modifications
51
+ * @param amountUnderlying is the amount of `underlyingToken` to calculate its conversion into strategy shares
52
+ * @return The amount of underlying tokens corresponding to the input `amountShares`
53
+ * @dev Implementation for these functions in particular may vary significantly for different strategies
54
+ */
55
+ function underlyingToShares(
56
+ uint256 amountUnderlying
57
+ ) external returns (uint256);
58
+
59
+ /**
60
+ * @notice convenience function for fetching the current underlying value of all of the `user`'s shares in
61
+ * this strategy. In contrast to `userUnderlyingView`, this function **may** make state modifications
62
+ */
63
+ function userUnderlying(address user) external returns (uint256);
64
+
65
+ /**
66
+ * @notice convenience function for fetching the current total shares of `user` in this strategy, by
67
+ * querying the `strategyManager` contract
68
+ */
69
+ function shares(address user) external view returns (uint256);
70
+
71
+ /**
72
+ * @notice Used to convert a number of shares to the equivalent amount of underlying tokens for this strategy.
73
+ * @notice In contrast to `sharesToUnderlying`, this function guarantees no state modifications
74
+ * @param amountShares is the amount of shares to calculate its conversion into the underlying token
75
+ * @return The amount of shares corresponding to the input `amountUnderlying`
76
+ * @dev Implementation for these functions in particular may vary significantly for different strategies
77
+ */
78
+ function sharesToUnderlyingView(
79
+ uint256 amountShares
80
+ ) external view returns (uint256);
81
+
82
+ /**
83
+ * @notice Used to convert an amount of underlying tokens to the equivalent amount of shares in this strategy.
84
+ * @notice In contrast to `underlyingToShares`, this function guarantees no state modifications
85
+ * @param amountUnderlying is the amount of `underlyingToken` to calculate its conversion into strategy shares
86
+ * @return The amount of shares corresponding to the input `amountUnderlying`
87
+ * @dev Implementation for these functions in particular may vary significantly for different strategies
88
+ */
89
+ function underlyingToSharesView(
90
+ uint256 amountUnderlying
91
+ ) external view returns (uint256);
92
+
93
+ /**
94
+ * @notice convenience function for fetching the current underlying value of all of the `user`'s shares in
95
+ * this strategy. In contrast to `userUnderlying`, this function guarantees no state modifications
96
+ */
97
+ function userUnderlyingView(address user) external view returns (uint256);
98
+
99
+ /// @notice The underlying token for shares in this Strategy
100
+ function underlyingToken() external view returns (IERC20);
101
+
102
+ /// @notice The total number of extant shares in this Strategy
103
+ function totalShares() external view returns (uint256);
104
+
105
+ /// @notice Returns either a brief string explaining the strategy's goal & purpose, or a link to metadata that explains in more detail.
106
+ function explanation() external view returns (string memory);
107
+ }
@@ -0,0 +1,58 @@
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 {Message} from "../../libs/Message.sol";
20
+ import {TypeCasts} from "../../libs/TypeCasts.sol";
21
+ import {AbstractMessageIdAuthorizedIsm} from "./AbstractMessageIdAuthorizedIsm.sol";
22
+
23
+ // ============ External Imports ============
24
+ import {CrossChainEnabledPolygonChild} from "@openzeppelin/contracts/crosschain/polygon/CrossChainEnabledPolygonChild.sol";
25
+ import {Address} from "@openzeppelin/contracts/utils/Address.sol";
26
+
27
+ /**
28
+ * @title PolygonPosIsm
29
+ * @notice Uses the native Polygon Pos Fx Portal Bridge to verify interchain messages.
30
+ */
31
+ contract PolygonPosIsm is
32
+ CrossChainEnabledPolygonChild,
33
+ AbstractMessageIdAuthorizedIsm
34
+ {
35
+ // ============ Constants ============
36
+
37
+ uint8 public constant moduleType =
38
+ uint8(IInterchainSecurityModule.Types.NULL);
39
+
40
+ // ============ Constructor ============
41
+
42
+ constructor(address _fxChild) CrossChainEnabledPolygonChild(_fxChild) {
43
+ require(
44
+ Address.isContract(_fxChild),
45
+ "PolygonPosIsm: invalid FxChild contract"
46
+ );
47
+ }
48
+
49
+ // ============ Internal function ============
50
+
51
+ /**
52
+ * @notice Check if sender is authorized to message `verifyMessageId`.
53
+ */
54
+ function _isAuthorized() internal view override returns (bool) {
55
+ return
56
+ _crossChainSender() == TypeCasts.bytes32ToAddress(authorizedHook);
57
+ }
58
+ }
@@ -0,0 +1,115 @@
1
+ // SPDX-License-Identifier: MIT OR Apache-2.0
2
+ pragma solidity >=0.6.11;
3
+
4
+ // ============ External Imports ============
5
+ import "@openzeppelin/contracts/utils/structs/EnumerableMap.sol";
6
+ import "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
7
+ // ============ Internal Imports ============
8
+ import {TypeCasts} from "./TypeCasts.sol";
9
+
10
+ enum EnrollmentStatus {
11
+ UNENROLLED,
12
+ ENROLLED,
13
+ PENDING_UNENROLLMENT
14
+ }
15
+
16
+ struct Enrollment {
17
+ EnrollmentStatus status;
18
+ uint248 unenrollmentStartBlock;
19
+ }
20
+
21
+ // extends EnumerableMap with address => bytes32 type
22
+ // modelled after https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.0/contracts/utils/structs/EnumerableMap.sol
23
+ library EnumerableMapEnrollment {
24
+ using EnumerableMap for EnumerableMap.Bytes32ToBytes32Map;
25
+ using EnumerableSet for EnumerableSet.Bytes32Set;
26
+ using TypeCasts for address;
27
+ using TypeCasts for bytes32;
28
+
29
+ struct AddressToEnrollmentMap {
30
+ EnumerableMap.Bytes32ToBytes32Map _inner;
31
+ }
32
+
33
+ // ============ Library Functions ============
34
+
35
+ function encode(
36
+ Enrollment memory enrollment
37
+ ) public pure returns (bytes32) {
38
+ return
39
+ bytes32(
40
+ abi.encodePacked(
41
+ uint8(enrollment.status),
42
+ enrollment.unenrollmentStartBlock
43
+ )
44
+ );
45
+ }
46
+
47
+ function decode(bytes32 encoded) public pure returns (Enrollment memory) {
48
+ uint8 status = uint8(encoded[0]);
49
+ uint248 unenrollmentStartBlock = uint248(uint256((encoded << 8) >> 8));
50
+ return Enrollment(EnrollmentStatus(status), unenrollmentStartBlock);
51
+ }
52
+
53
+ function keys(
54
+ AddressToEnrollmentMap storage map
55
+ ) internal view returns (address[] memory _keys) {
56
+ uint256 _length = map._inner.length();
57
+ _keys = new address[](_length);
58
+ for (uint256 i = 0; i < _length; i++) {
59
+ _keys[i] = address(uint160(uint256(map._inner._keys.at(i))));
60
+ }
61
+ }
62
+
63
+ function set(
64
+ AddressToEnrollmentMap storage map,
65
+ address key,
66
+ Enrollment memory value
67
+ ) internal returns (bool) {
68
+ return map._inner.set(key.addressToBytes32(), encode(value));
69
+ }
70
+
71
+ function get(
72
+ AddressToEnrollmentMap storage map,
73
+ address key
74
+ ) internal view returns (Enrollment memory) {
75
+ return decode(map._inner.get(key.addressToBytes32()));
76
+ }
77
+
78
+ function tryGet(
79
+ AddressToEnrollmentMap storage map,
80
+ address key
81
+ ) internal view returns (bool, Enrollment memory) {
82
+ (bool success, bytes32 value) = map._inner.tryGet(
83
+ key.addressToBytes32()
84
+ );
85
+ return (success, decode(value));
86
+ }
87
+
88
+ function remove(
89
+ AddressToEnrollmentMap storage map,
90
+ address key
91
+ ) internal returns (bool) {
92
+ return map._inner.remove(key.addressToBytes32());
93
+ }
94
+
95
+ function contains(
96
+ AddressToEnrollmentMap storage map,
97
+ address key
98
+ ) internal view returns (bool) {
99
+ return map._inner.contains(key.addressToBytes32());
100
+ }
101
+
102
+ function length(
103
+ AddressToEnrollmentMap storage map
104
+ ) internal view returns (uint256) {
105
+ return map._inner.length();
106
+ }
107
+
108
+ function at(
109
+ AddressToEnrollmentMap storage map,
110
+ uint256 index
111
+ ) internal view returns (uint256, Enrollment memory) {
112
+ (bytes32 key, bytes32 value) = map._inner.at(index);
113
+ return (uint256(key), decode(value));
114
+ }
115
+ }
@@ -0,0 +1,21 @@
1
+ // SPDX-License-Identifier: MIT OR Apache-2.0
2
+ pragma solidity >=0.8.0;
3
+
4
+ import {IRemoteChallenger} from "../interfaces/avs/IRemoteChallenger.sol";
5
+ import {HyperlaneServiceManager} from "../avs/HyperlaneServiceManager.sol";
6
+
7
+ contract TestRemoteChallenger is IRemoteChallenger {
8
+ HyperlaneServiceManager internal immutable hsm;
9
+
10
+ constructor(HyperlaneServiceManager _hsm) {
11
+ hsm = _hsm;
12
+ }
13
+
14
+ function challengeDelayBlocks() external pure returns (uint256) {
15
+ return 50400; // one week of eth L1 blocks
16
+ }
17
+
18
+ function handleChallenge(address operator) external {
19
+ hsm.freezeOperator(operator);
20
+ }
21
+ }
@@ -0,0 +1,87 @@
1
+ // SPDX-License-Identifier: MIT OR Apache-2.0
2
+ pragma solidity >=0.8.0;
3
+
4
+ import {IAVSDirectory} from "../../interfaces/avs/vendored/IAVSDirectory.sol";
5
+ import {ISignatureUtils} from "../../interfaces/avs/vendored/ISignatureUtils.sol";
6
+ import {ISlasher} from "../../interfaces/avs/vendored/ISlasher.sol";
7
+
8
+ import {ECDSA} from "@openzeppelin/contracts/utils/cryptography/ECDSA.sol";
9
+
10
+ contract TestAVSDirectory is IAVSDirectory {
11
+ bytes32 public constant OPERATOR_AVS_REGISTRATION_TYPEHASH =
12
+ keccak256(
13
+ "OperatorAVSRegistration(address operator,address avs,bytes32 salt,uint256 expiry)"
14
+ );
15
+ bytes32 public constant DOMAIN_TYPEHASH =
16
+ keccak256(
17
+ "EIP712Domain(string name,uint256 chainId,address verifyingContract)"
18
+ );
19
+
20
+ mapping(address => mapping(address => OperatorAVSRegistrationStatus))
21
+ public avsOperatorStatus;
22
+
23
+ function updateAVSMetadataURI(string calldata metadataURI) external {
24
+ emit AVSMetadataURIUpdated(msg.sender, metadataURI);
25
+ }
26
+
27
+ function registerOperatorToAVS(
28
+ address operator,
29
+ ISignatureUtils.SignatureWithSaltAndExpiry memory operatorSignature
30
+ ) external {
31
+ bytes32 operatorRegistrationDigestHash = calculateOperatorAVSRegistrationDigestHash({
32
+ operator: operator,
33
+ avs: msg.sender,
34
+ salt: operatorSignature.salt,
35
+ expiry: operatorSignature.expiry
36
+ });
37
+ require(
38
+ ECDSA.recover(
39
+ operatorRegistrationDigestHash,
40
+ operatorSignature.signature
41
+ ) == operator,
42
+ "EIP1271SignatureUtils.checkSignature_EIP1271: signature not from signer"
43
+ );
44
+ avsOperatorStatus[msg.sender][operator] = OperatorAVSRegistrationStatus
45
+ .REGISTERED;
46
+ }
47
+
48
+ function deregisterOperatorFromAVS(address operator) external {
49
+ avsOperatorStatus[msg.sender][operator] = OperatorAVSRegistrationStatus
50
+ .UNREGISTERED;
51
+ }
52
+
53
+ function calculateOperatorAVSRegistrationDigestHash(
54
+ address operator,
55
+ address avs,
56
+ bytes32 salt,
57
+ uint256 expiry
58
+ ) public view returns (bytes32) {
59
+ // calculate the struct hash
60
+ bytes32 structHash = keccak256(
61
+ abi.encode(
62
+ OPERATOR_AVS_REGISTRATION_TYPEHASH,
63
+ operator,
64
+ avs,
65
+ salt,
66
+ expiry
67
+ )
68
+ );
69
+ // calculate the digest hash
70
+ bytes32 digestHash = keccak256(
71
+ abi.encodePacked("\x19\x01", domainSeparator(), structHash)
72
+ );
73
+ return digestHash;
74
+ }
75
+
76
+ function domainSeparator() public view returns (bytes32) {
77
+ return
78
+ keccak256(
79
+ abi.encode(
80
+ DOMAIN_TYPEHASH,
81
+ keccak256(bytes("EigenLayer")),
82
+ block.chainid,
83
+ address(this)
84
+ )
85
+ );
86
+ }
87
+ }
@@ -0,0 +1,33 @@
1
+ // SPDX-License-Identifier: MIT OR Apache-2.0
2
+ pragma solidity >=0.8.0;
3
+
4
+ import {IDelegationManager} from "../../interfaces/avs/vendored/IDelegationManager.sol";
5
+ import {IStrategy} from "../../interfaces/avs/vendored/IStrategy.sol";
6
+
7
+ contract TestDelegationManager is IDelegationManager {
8
+ mapping(address => bool) public isOperator;
9
+ mapping(address => mapping(IStrategy => uint256)) public operatorShares;
10
+
11
+ function registerAsOperator(
12
+ OperatorDetails calldata registeringOperatorDetails,
13
+ string calldata metadataURI
14
+ ) external {}
15
+
16
+ function setIsOperator(
17
+ address operator,
18
+ bool _isOperatorReturnValue
19
+ ) external {
20
+ isOperator[operator] = _isOperatorReturnValue;
21
+ }
22
+
23
+ function getOperatorShares(
24
+ address operator,
25
+ IStrategy[] memory strategies
26
+ ) public view returns (uint256[] memory) {
27
+ uint256[] memory shares = new uint256[](strategies.length);
28
+ for (uint256 i = 0; i < strategies.length; ++i) {
29
+ shares[i] = operatorShares[operator][strategies[i]];
30
+ }
31
+ return shares;
32
+ }
33
+ }
@@ -0,0 +1,30 @@
1
+ // SPDX-License-Identifier: MIT OR Apache-2.0
2
+ pragma solidity >=0.8.0;
3
+
4
+ import {Enrollment, EnrollmentStatus, EnumerableMapEnrollment} from "../../libs/EnumerableMapEnrollment.sol";
5
+ import {HyperlaneServiceManager} from "../../avs/HyperlaneServiceManager.sol";
6
+
7
+ contract TestHyperlaneServiceManager is HyperlaneServiceManager {
8
+ using EnumerableMapEnrollment for EnumerableMapEnrollment.AddressToEnrollmentMap;
9
+
10
+ constructor(
11
+ address _avsDirectory,
12
+ address _stakeRegistry,
13
+ address _paymentCoordinator,
14
+ address _delegationManager
15
+ )
16
+ HyperlaneServiceManager(
17
+ _avsDirectory,
18
+ _stakeRegistry,
19
+ _paymentCoordinator,
20
+ _delegationManager
21
+ )
22
+ {}
23
+
24
+ function mockSetUnenrolled(address operator, address challenger) external {
25
+ enrolledChallengers[operator].set(
26
+ address(challenger),
27
+ Enrollment(EnrollmentStatus.UNENROLLED, 0)
28
+ );
29
+ }
30
+ }
@@ -0,0 +1,20 @@
1
+ // SPDX-License-Identifier: MIT OR Apache-2.0
2
+ pragma solidity >=0.8.0;
3
+
4
+ import {IPaymentCoordinator} from "../../interfaces/avs/vendored/IPaymentCoordinator.sol";
5
+ import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
6
+ import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
7
+
8
+ contract TestPaymentCoordinator is IPaymentCoordinator {
9
+ using SafeERC20 for IERC20;
10
+
11
+ function payForRange(RangePayment[] calldata rangePayments) external {
12
+ for (uint256 i = 0; i < rangePayments.length; i++) {
13
+ rangePayments[i].token.safeTransferFrom(
14
+ msg.sender,
15
+ address(this),
16
+ rangePayments[i].amount
17
+ );
18
+ }
19
+ }
20
+ }
@@ -0,0 +1,8 @@
1
+ // SPDX-License-Identifier: MIT OR Apache-2.0
2
+ pragma solidity >=0.8.0;
3
+
4
+ import {ISlasher} from "../../interfaces/avs/vendored/ISlasher.sol";
5
+
6
+ contract TestSlasher is ISlasher {
7
+ function freezeOperator(address toBeFrozen) external {}
8
+ }
@@ -1,3 +1,4 @@
1
+ // SPDX-License-Identifier: MIT OR Apache-2.0
1
2
  pragma solidity >=0.8.0;
2
3
 
3
4
  import {IFiatToken} from "../interfaces/IFiatToken.sol";
@@ -1,3 +1,4 @@
1
+ // SPDX-License-Identifier: MIT OR Apache-2.0
1
2
  pragma solidity >=0.8.0;
2
3
 
3
4
  import {IXERC20} from "../interfaces/IXERC20.sol";
@@ -0,0 +1,3 @@
1
+ import type * as polygon from "./polygon/index.js";
2
+ export type { polygon };
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../types/@openzeppelin/contracts/crosschain/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,OAAO,MAAM,oBAAoB,CAAC;AACnD,YAAY,EAAE,OAAO,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../types/@openzeppelin/contracts/crosschain/index.ts"],"names":[],"mappings":""}