@hyperlane-xyz/core 1.5.7-beta1 → 3.0.0-beta0

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 (472) hide show
  1. package/contracts/hooks/MerkleTreeHook.sol +8 -0
  2. package/contracts/hooks/OPStackHook.sol +3 -6
  3. package/contracts/hooks/PausableHook.sol +8 -0
  4. package/contracts/hooks/StaticProtocolFee.sol +6 -0
  5. package/contracts/hooks/aggregation/ERC5164Hook.sol +9 -3
  6. package/contracts/hooks/aggregation/StaticAggregationHook.sol +5 -0
  7. package/contracts/hooks/igp/InterchainGasPaymaster.sol +5 -0
  8. package/contracts/hooks/libs/AbstractMessageIdAuthHook.sol +10 -4
  9. package/contracts/hooks/routing/DomainRoutingHook.sol +9 -2
  10. package/contracts/hooks/routing/FallbackDomainRoutingHook.sol +12 -4
  11. package/contracts/interfaces/hooks/IPostDispatchHook.sol +17 -0
  12. package/contracts/interfaces/optimism/ICrossDomainMessenger.sol +4 -4
  13. package/contracts/isms/hook/AbstractMessageIdAuthorizedIsm.sol +19 -10
  14. package/contracts/isms/hook/OPStackIsm.sol +2 -1
  15. package/contracts/mock/MockHyperlaneEnvironment.sol +3 -7
  16. package/contracts/test/TestPostDispatchHook.sol +8 -0
  17. package/contracts/test/TestSendReceiver.sol +23 -0
  18. package/contracts/token/HypERC20.sol +2 -1
  19. package/contracts/token/HypERC20Collateral.sol +1 -1
  20. package/contracts/token/extensions/FastHypERC20.sol +63 -0
  21. package/contracts/token/extensions/FastHypERC20Collateral.sol +59 -0
  22. package/contracts/token/libs/FastTokenRouter.sol +206 -0
  23. package/contracts/token/libs/TokenRouter.sol +1 -1
  24. package/dist/contracts/hooks/MerkleTreeHook.d.ts +16 -1
  25. package/dist/contracts/hooks/MerkleTreeHook.d.ts.map +1 -1
  26. package/dist/contracts/hooks/OPStackHook.d.ts +16 -1
  27. package/dist/contracts/hooks/OPStackHook.d.ts.map +1 -1
  28. package/dist/contracts/hooks/PausableHook.d.ts +16 -1
  29. package/dist/contracts/hooks/PausableHook.d.ts.map +1 -1
  30. package/dist/contracts/hooks/StaticProtocolFee.d.ts +16 -1
  31. package/dist/contracts/hooks/StaticProtocolFee.d.ts.map +1 -1
  32. package/dist/contracts/hooks/aggregation/ERC5164Hook.d.ts +16 -1
  33. package/dist/contracts/hooks/aggregation/ERC5164Hook.d.ts.map +1 -1
  34. package/dist/contracts/hooks/aggregation/StaticAggregationHook.d.ts +16 -1
  35. package/dist/contracts/hooks/aggregation/StaticAggregationHook.d.ts.map +1 -1
  36. package/dist/contracts/hooks/igp/InterchainGasPaymaster.d.ts +16 -1
  37. package/dist/contracts/hooks/igp/InterchainGasPaymaster.d.ts.map +1 -1
  38. package/dist/contracts/hooks/libs/AbstractMessageIdAuthHook.d.ts +16 -1
  39. package/dist/contracts/hooks/libs/AbstractMessageIdAuthHook.d.ts.map +1 -1
  40. package/dist/contracts/hooks/libs/AbstractPostDispatchHook.d.ts +16 -1
  41. package/dist/contracts/hooks/libs/AbstractPostDispatchHook.d.ts.map +1 -1
  42. package/dist/contracts/hooks/routing/DestinationRecipientRoutingHook.d.ts +21 -6
  43. package/dist/contracts/hooks/routing/DestinationRecipientRoutingHook.d.ts.map +1 -1
  44. package/dist/contracts/hooks/routing/DomainRoutingHook.d.ts +21 -6
  45. package/dist/contracts/hooks/routing/DomainRoutingHook.d.ts.map +1 -1
  46. package/dist/contracts/hooks/routing/FallbackDomainRoutingHook.d.ts +21 -6
  47. package/dist/contracts/hooks/routing/FallbackDomainRoutingHook.d.ts.map +1 -1
  48. package/dist/contracts/interfaces/hooks/IPostDispatchHook.d.ts +16 -1
  49. package/dist/contracts/interfaces/hooks/IPostDispatchHook.d.ts.map +1 -1
  50. package/dist/contracts/interfaces/optimism/ICrossDomainMessenger.sol/ICrossDomainMessenger.d.ts +16 -1
  51. package/dist/contracts/interfaces/optimism/ICrossDomainMessenger.sol/ICrossDomainMessenger.d.ts.map +1 -1
  52. package/dist/contracts/interfaces/optimism/ICrossDomainMessenger.sol/IL1CrossDomainMessenger.d.ts +141 -0
  53. package/dist/contracts/interfaces/optimism/ICrossDomainMessenger.sol/IL1CrossDomainMessenger.d.ts.map +1 -0
  54. package/dist/contracts/interfaces/optimism/ICrossDomainMessenger.sol/IL1CrossDomainMessenger.js +4 -0
  55. package/dist/contracts/interfaces/optimism/ICrossDomainMessenger.sol/IL1CrossDomainMessenger.js.map +1 -0
  56. package/dist/contracts/interfaces/optimism/ICrossDomainMessenger.sol/IL2CrossDomainMessenger.d.ts +16 -1
  57. package/dist/contracts/interfaces/optimism/ICrossDomainMessenger.sol/IL2CrossDomainMessenger.d.ts.map +1 -1
  58. package/dist/contracts/interfaces/optimism/ICrossDomainMessenger.sol/index.d.ts +1 -0
  59. package/dist/contracts/interfaces/optimism/ICrossDomainMessenger.sol/index.d.ts.map +1 -1
  60. package/dist/contracts/isms/hook/AbstractMessageIdAuthorizedIsm.d.ts +30 -30
  61. package/dist/contracts/isms/hook/AbstractMessageIdAuthorizedIsm.d.ts.map +1 -1
  62. package/dist/contracts/isms/hook/ERC5164Ism.d.ts +30 -30
  63. package/dist/contracts/isms/hook/ERC5164Ism.d.ts.map +1 -1
  64. package/dist/contracts/isms/hook/OPStackIsm.d.ts +30 -30
  65. package/dist/contracts/isms/hook/OPStackIsm.d.ts.map +1 -1
  66. package/dist/contracts/test/TestInterchainGasPaymaster.d.ts +16 -1
  67. package/dist/contracts/test/TestInterchainGasPaymaster.d.ts.map +1 -1
  68. package/dist/contracts/test/TestMerkleTreeHook.d.ts +16 -1
  69. package/dist/contracts/test/TestMerkleTreeHook.d.ts.map +1 -1
  70. package/dist/contracts/test/TestPostDispatchHook.d.ts +16 -1
  71. package/dist/contracts/test/TestPostDispatchHook.d.ts.map +1 -1
  72. package/dist/contracts/test/TestSendReceiver.d.ts +13 -12
  73. package/dist/contracts/test/TestSendReceiver.d.ts.map +1 -1
  74. package/dist/contracts/test/index.d.ts +0 -1
  75. package/dist/contracts/test/index.d.ts.map +1 -1
  76. package/dist/contracts/token/extensions/FastHypERC20.d.ts +969 -0
  77. package/dist/contracts/token/extensions/FastHypERC20.d.ts.map +1 -0
  78. package/dist/contracts/{test/TestMultisigIsm.js → token/extensions/FastHypERC20.js} +1 -1
  79. package/dist/contracts/token/extensions/FastHypERC20.js.map +1 -0
  80. package/dist/contracts/token/extensions/FastHypERC20Collateral.d.ts +691 -0
  81. package/dist/contracts/token/extensions/FastHypERC20Collateral.d.ts.map +1 -0
  82. package/dist/contracts/token/extensions/FastHypERC20Collateral.js +4 -0
  83. package/dist/contracts/token/extensions/FastHypERC20Collateral.js.map +1 -0
  84. package/dist/contracts/token/extensions/index.d.ts +2 -0
  85. package/dist/contracts/token/extensions/index.d.ts.map +1 -1
  86. package/dist/contracts/token/libs/FastTokenRouter.d.ts +692 -0
  87. package/dist/contracts/token/libs/FastTokenRouter.d.ts.map +1 -0
  88. package/dist/contracts/token/libs/FastTokenRouter.js +4 -0
  89. package/dist/contracts/token/libs/FastTokenRouter.js.map +1 -0
  90. package/dist/contracts/token/libs/index.d.ts +1 -0
  91. package/dist/contracts/token/libs/index.d.ts.map +1 -1
  92. package/dist/factories/@openzeppelin/contracts/governance/TimelockController__factory.d.ts +1 -1
  93. package/dist/factories/@openzeppelin/contracts/governance/TimelockController__factory.d.ts.map +1 -1
  94. package/dist/factories/@openzeppelin/contracts/governance/TimelockController__factory.js +1 -1
  95. package/dist/factories/@openzeppelin/contracts/governance/TimelockController__factory.js.map +1 -1
  96. package/dist/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy__factory.d.ts +1 -1
  97. package/dist/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy__factory.d.ts.map +1 -1
  98. package/dist/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy__factory.js +1 -1
  99. package/dist/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy__factory.js.map +1 -1
  100. package/dist/factories/@openzeppelin/contracts/proxy/transparent/ProxyAdmin__factory.d.ts +1 -1
  101. package/dist/factories/@openzeppelin/contracts/proxy/transparent/ProxyAdmin__factory.d.ts.map +1 -1
  102. package/dist/factories/@openzeppelin/contracts/proxy/transparent/ProxyAdmin__factory.js +1 -1
  103. package/dist/factories/@openzeppelin/contracts/proxy/transparent/ProxyAdmin__factory.js.map +1 -1
  104. package/dist/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy__factory.d.ts +1 -1
  105. package/dist/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy__factory.d.ts.map +1 -1
  106. package/dist/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy__factory.js +1 -1
  107. package/dist/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy__factory.js.map +1 -1
  108. package/dist/factories/@openzeppelin/contracts/token/ERC20/ERC20__factory.d.ts +1 -1
  109. package/dist/factories/@openzeppelin/contracts/token/ERC20/ERC20__factory.d.ts.map +1 -1
  110. package/dist/factories/@openzeppelin/contracts/token/ERC20/ERC20__factory.js +1 -1
  111. package/dist/factories/@openzeppelin/contracts/token/ERC20/ERC20__factory.js.map +1 -1
  112. package/dist/factories/@openzeppelin/contracts/token/ERC721/ERC721__factory.d.ts +1 -1
  113. package/dist/factories/@openzeppelin/contracts/token/ERC721/ERC721__factory.d.ts.map +1 -1
  114. package/dist/factories/@openzeppelin/contracts/token/ERC721/ERC721__factory.js +1 -1
  115. package/dist/factories/@openzeppelin/contracts/token/ERC721/ERC721__factory.js.map +1 -1
  116. package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable__factory.d.ts +1 -1
  117. package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable__factory.d.ts.map +1 -1
  118. package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable__factory.js +1 -1
  119. package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable__factory.js.map +1 -1
  120. package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable__factory.d.ts +1 -1
  121. package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable__factory.d.ts.map +1 -1
  122. package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable__factory.js +1 -1
  123. package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable__factory.js.map +1 -1
  124. package/dist/factories/contracts/Mailbox__factory.d.ts +1 -1
  125. package/dist/factories/contracts/Mailbox__factory.d.ts.map +1 -1
  126. package/dist/factories/contracts/Mailbox__factory.js +1 -1
  127. package/dist/factories/contracts/Mailbox__factory.js.map +1 -1
  128. package/dist/factories/contracts/hooks/MerkleTreeHook__factory.d.ts +1 -1
  129. package/dist/factories/contracts/hooks/MerkleTreeHook__factory.d.ts.map +1 -1
  130. package/dist/factories/contracts/hooks/MerkleTreeHook__factory.js +14 -1
  131. package/dist/factories/contracts/hooks/MerkleTreeHook__factory.js.map +1 -1
  132. package/dist/factories/contracts/hooks/OPStackHook__factory.d.ts +4 -4
  133. package/dist/factories/contracts/hooks/OPStackHook__factory.d.ts.map +1 -1
  134. package/dist/factories/contracts/hooks/OPStackHook__factory.js +18 -5
  135. package/dist/factories/contracts/hooks/OPStackHook__factory.js.map +1 -1
  136. package/dist/factories/contracts/hooks/PausableHook__factory.d.ts +1 -1
  137. package/dist/factories/contracts/hooks/PausableHook__factory.d.ts.map +1 -1
  138. package/dist/factories/contracts/hooks/PausableHook__factory.js +14 -1
  139. package/dist/factories/contracts/hooks/PausableHook__factory.js.map +1 -1
  140. package/dist/factories/contracts/hooks/StaticProtocolFee__factory.d.ts +1 -1
  141. package/dist/factories/contracts/hooks/StaticProtocolFee__factory.d.ts.map +1 -1
  142. package/dist/factories/contracts/hooks/StaticProtocolFee__factory.js +14 -1
  143. package/dist/factories/contracts/hooks/StaticProtocolFee__factory.js.map +1 -1
  144. package/dist/factories/contracts/hooks/aggregation/ERC5164Hook__factory.d.ts +4 -4
  145. package/dist/factories/contracts/hooks/aggregation/ERC5164Hook__factory.d.ts.map +1 -1
  146. package/dist/factories/contracts/hooks/aggregation/ERC5164Hook__factory.js +18 -5
  147. package/dist/factories/contracts/hooks/aggregation/ERC5164Hook__factory.js.map +1 -1
  148. package/dist/factories/contracts/hooks/aggregation/StaticAggregationHookFactory__factory.d.ts +1 -1
  149. package/dist/factories/contracts/hooks/aggregation/StaticAggregationHookFactory__factory.d.ts.map +1 -1
  150. package/dist/factories/contracts/hooks/aggregation/StaticAggregationHookFactory__factory.js +1 -1
  151. package/dist/factories/contracts/hooks/aggregation/StaticAggregationHookFactory__factory.js.map +1 -1
  152. package/dist/factories/contracts/hooks/aggregation/StaticAggregationHook__factory.d.ts +1 -1
  153. package/dist/factories/contracts/hooks/aggregation/StaticAggregationHook__factory.d.ts.map +1 -1
  154. package/dist/factories/contracts/hooks/aggregation/StaticAggregationHook__factory.js +14 -1
  155. package/dist/factories/contracts/hooks/aggregation/StaticAggregationHook__factory.js.map +1 -1
  156. package/dist/factories/contracts/hooks/igp/InterchainGasPaymaster__factory.d.ts +1 -1
  157. package/dist/factories/contracts/hooks/igp/InterchainGasPaymaster__factory.d.ts.map +1 -1
  158. package/dist/factories/contracts/hooks/igp/InterchainGasPaymaster__factory.js +14 -1
  159. package/dist/factories/contracts/hooks/igp/InterchainGasPaymaster__factory.js.map +1 -1
  160. package/dist/factories/contracts/hooks/igp/StorageGasOracle__factory.d.ts +1 -1
  161. package/dist/factories/contracts/hooks/igp/StorageGasOracle__factory.d.ts.map +1 -1
  162. package/dist/factories/contracts/hooks/igp/StorageGasOracle__factory.js +1 -1
  163. package/dist/factories/contracts/hooks/igp/StorageGasOracle__factory.js.map +1 -1
  164. package/dist/factories/contracts/hooks/libs/AbstractMessageIdAuthHook__factory.d.ts.map +1 -1
  165. package/dist/factories/contracts/hooks/libs/AbstractMessageIdAuthHook__factory.js +15 -2
  166. package/dist/factories/contracts/hooks/libs/AbstractMessageIdAuthHook__factory.js.map +1 -1
  167. package/dist/factories/contracts/hooks/libs/AbstractPostDispatchHook__factory.d.ts.map +1 -1
  168. package/dist/factories/contracts/hooks/libs/AbstractPostDispatchHook__factory.js +13 -0
  169. package/dist/factories/contracts/hooks/libs/AbstractPostDispatchHook__factory.js.map +1 -1
  170. package/dist/factories/contracts/hooks/libs/StandardHookMetadata__factory.d.ts +1 -1
  171. package/dist/factories/contracts/hooks/libs/StandardHookMetadata__factory.d.ts.map +1 -1
  172. package/dist/factories/contracts/hooks/libs/StandardHookMetadata__factory.js +1 -1
  173. package/dist/factories/contracts/hooks/libs/StandardHookMetadata__factory.js.map +1 -1
  174. package/dist/factories/contracts/hooks/routing/DestinationRecipientRoutingHook__factory.d.ts +1 -1
  175. package/dist/factories/contracts/hooks/routing/DestinationRecipientRoutingHook__factory.d.ts.map +1 -1
  176. package/dist/factories/contracts/hooks/routing/DestinationRecipientRoutingHook__factory.js +16 -3
  177. package/dist/factories/contracts/hooks/routing/DestinationRecipientRoutingHook__factory.js.map +1 -1
  178. package/dist/factories/contracts/hooks/routing/DomainRoutingHook__factory.d.ts +1 -1
  179. package/dist/factories/contracts/hooks/routing/DomainRoutingHook__factory.d.ts.map +1 -1
  180. package/dist/factories/contracts/hooks/routing/DomainRoutingHook__factory.js +16 -3
  181. package/dist/factories/contracts/hooks/routing/DomainRoutingHook__factory.js.map +1 -1
  182. package/dist/factories/contracts/hooks/routing/FallbackDomainRoutingHook__factory.d.ts +1 -1
  183. package/dist/factories/contracts/hooks/routing/FallbackDomainRoutingHook__factory.d.ts.map +1 -1
  184. package/dist/factories/contracts/hooks/routing/FallbackDomainRoutingHook__factory.js +16 -3
  185. package/dist/factories/contracts/hooks/routing/FallbackDomainRoutingHook__factory.js.map +1 -1
  186. package/dist/factories/contracts/interfaces/hooks/IPostDispatchHook__factory.d.ts.map +1 -1
  187. package/dist/factories/contracts/interfaces/hooks/IPostDispatchHook__factory.js +13 -0
  188. package/dist/factories/contracts/interfaces/hooks/IPostDispatchHook__factory.js.map +1 -1
  189. package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/ICrossDomainMessenger__factory.d.ts +6 -6
  190. package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/ICrossDomainMessenger__factory.d.ts.map +1 -1
  191. package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/ICrossDomainMessenger__factory.js +13 -0
  192. package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/ICrossDomainMessenger__factory.js.map +1 -1
  193. package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/IL1CrossDomainMessenger__factory.d.ts +29 -0
  194. package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/IL1CrossDomainMessenger__factory.d.ts.map +1 -0
  195. package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/IL1CrossDomainMessenger__factory.js +105 -0
  196. package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/IL1CrossDomainMessenger__factory.js.map +1 -0
  197. package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/IL2CrossDomainMessenger__factory.d.ts.map +1 -1
  198. package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/IL2CrossDomainMessenger__factory.js +13 -0
  199. package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/IL2CrossDomainMessenger__factory.js.map +1 -1
  200. package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/index.d.ts +1 -0
  201. package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/index.d.ts.map +1 -1
  202. package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/index.js +3 -1
  203. package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/index.js.map +1 -1
  204. package/dist/factories/contracts/isms/NoopIsm__factory.d.ts +1 -1
  205. package/dist/factories/contracts/isms/NoopIsm__factory.d.ts.map +1 -1
  206. package/dist/factories/contracts/isms/NoopIsm__factory.js +1 -1
  207. package/dist/factories/contracts/isms/NoopIsm__factory.js.map +1 -1
  208. package/dist/factories/contracts/isms/PausableIsm__factory.d.ts +1 -1
  209. package/dist/factories/contracts/isms/PausableIsm__factory.d.ts.map +1 -1
  210. package/dist/factories/contracts/isms/PausableIsm__factory.js +1 -1
  211. package/dist/factories/contracts/isms/PausableIsm__factory.js.map +1 -1
  212. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsmFactory__factory.d.ts +1 -1
  213. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsmFactory__factory.d.ts.map +1 -1
  214. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsmFactory__factory.js +1 -1
  215. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsmFactory__factory.js.map +1 -1
  216. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsm__factory.d.ts +1 -1
  217. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsm__factory.d.ts.map +1 -1
  218. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsm__factory.js +1 -1
  219. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsm__factory.js.map +1 -1
  220. package/dist/factories/contracts/isms/hook/AbstractMessageIdAuthorizedIsm__factory.js +5 -5
  221. package/dist/factories/contracts/isms/hook/AbstractMessageIdAuthorizedIsm__factory.js.map +1 -1
  222. package/dist/factories/contracts/isms/hook/ERC5164Ism__factory.d.ts +1 -1
  223. package/dist/factories/contracts/isms/hook/ERC5164Ism__factory.d.ts.map +1 -1
  224. package/dist/factories/contracts/isms/hook/ERC5164Ism__factory.js +6 -6
  225. package/dist/factories/contracts/isms/hook/ERC5164Ism__factory.js.map +1 -1
  226. package/dist/factories/contracts/isms/hook/OPStackIsm__factory.d.ts +1 -1
  227. package/dist/factories/contracts/isms/hook/OPStackIsm__factory.d.ts.map +1 -1
  228. package/dist/factories/contracts/isms/hook/OPStackIsm__factory.js +6 -6
  229. package/dist/factories/contracts/isms/hook/OPStackIsm__factory.js.map +1 -1
  230. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsmFactory__factory.d.ts +1 -1
  231. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsmFactory__factory.d.ts.map +1 -1
  232. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsmFactory__factory.js +1 -1
  233. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsmFactory__factory.js.map +1 -1
  234. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm__factory.d.ts +1 -1
  235. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm__factory.d.ts.map +1 -1
  236. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm__factory.js +1 -1
  237. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm__factory.js.map +1 -1
  238. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsmFactory__factory.d.ts +1 -1
  239. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsmFactory__factory.d.ts.map +1 -1
  240. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsmFactory__factory.js +1 -1
  241. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsmFactory__factory.js.map +1 -1
  242. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm__factory.d.ts +1 -1
  243. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm__factory.d.ts.map +1 -1
  244. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm__factory.js +1 -1
  245. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm__factory.js.map +1 -1
  246. package/dist/factories/contracts/isms/multisig/ValidatorAnnounce__factory.d.ts +1 -1
  247. package/dist/factories/contracts/isms/multisig/ValidatorAnnounce__factory.d.ts.map +1 -1
  248. package/dist/factories/contracts/isms/multisig/ValidatorAnnounce__factory.js +1 -1
  249. package/dist/factories/contracts/isms/multisig/ValidatorAnnounce__factory.js.map +1 -1
  250. package/dist/factories/contracts/isms/routing/DefaultFallbackRoutingIsm__factory.d.ts +1 -1
  251. package/dist/factories/contracts/isms/routing/DefaultFallbackRoutingIsm__factory.d.ts.map +1 -1
  252. package/dist/factories/contracts/isms/routing/DefaultFallbackRoutingIsm__factory.js +1 -1
  253. package/dist/factories/contracts/isms/routing/DefaultFallbackRoutingIsm__factory.js.map +1 -1
  254. package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory.sol/DefaultFallbackRoutingIsmFactory__factory.d.ts +1 -1
  255. package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory.sol/DefaultFallbackRoutingIsmFactory__factory.d.ts.map +1 -1
  256. package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory.sol/DefaultFallbackRoutingIsmFactory__factory.js +1 -1
  257. package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory.sol/DefaultFallbackRoutingIsmFactory__factory.js.map +1 -1
  258. package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory.sol/DomainRoutingIsmFactory__factory.d.ts +1 -1
  259. package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory.sol/DomainRoutingIsmFactory__factory.d.ts.map +1 -1
  260. package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory.sol/DomainRoutingIsmFactory__factory.js +1 -1
  261. package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory.sol/DomainRoutingIsmFactory__factory.js.map +1 -1
  262. package/dist/factories/contracts/isms/routing/DomainRoutingIsm__factory.d.ts +1 -1
  263. package/dist/factories/contracts/isms/routing/DomainRoutingIsm__factory.d.ts.map +1 -1
  264. package/dist/factories/contracts/isms/routing/DomainRoutingIsm__factory.js +1 -1
  265. package/dist/factories/contracts/isms/routing/DomainRoutingIsm__factory.js.map +1 -1
  266. package/dist/factories/contracts/isms/routing/InterchainAccountIsm__factory.d.ts +1 -1
  267. package/dist/factories/contracts/isms/routing/InterchainAccountIsm__factory.d.ts.map +1 -1
  268. package/dist/factories/contracts/isms/routing/InterchainAccountIsm__factory.js +1 -1
  269. package/dist/factories/contracts/isms/routing/InterchainAccountIsm__factory.js.map +1 -1
  270. package/dist/factories/contracts/libs/Indexed__factory.d.ts +1 -1
  271. package/dist/factories/contracts/libs/Indexed__factory.d.ts.map +1 -1
  272. package/dist/factories/contracts/libs/Indexed__factory.js +1 -1
  273. package/dist/factories/contracts/libs/Indexed__factory.js.map +1 -1
  274. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.d.ts +1 -1
  275. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.d.ts.map +1 -1
  276. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.js +1 -1
  277. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.js.map +1 -1
  278. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.d.ts +1 -1
  279. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.d.ts.map +1 -1
  280. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.js +1 -1
  281. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.js.map +1 -1
  282. package/dist/factories/contracts/middleware/libs/OwnableMulticall__factory.d.ts +1 -1
  283. package/dist/factories/contracts/middleware/libs/OwnableMulticall__factory.d.ts.map +1 -1
  284. package/dist/factories/contracts/middleware/libs/OwnableMulticall__factory.js +1 -1
  285. package/dist/factories/contracts/middleware/libs/OwnableMulticall__factory.js.map +1 -1
  286. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.d.ts +1 -1
  287. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.d.ts.map +1 -1
  288. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.js +1 -1
  289. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.js.map +1 -1
  290. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.d.ts +1 -1
  291. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.d.ts.map +1 -1
  292. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.js +1 -1
  293. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.js.map +1 -1
  294. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.d.ts +1 -1
  295. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.d.ts.map +1 -1
  296. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.js +1 -1
  297. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.js.map +1 -1
  298. package/dist/factories/contracts/mock/MockCircleMessageTransmitter__factory.d.ts +1 -1
  299. package/dist/factories/contracts/mock/MockCircleMessageTransmitter__factory.d.ts.map +1 -1
  300. package/dist/factories/contracts/mock/MockCircleMessageTransmitter__factory.js +1 -1
  301. package/dist/factories/contracts/mock/MockCircleMessageTransmitter__factory.js.map +1 -1
  302. package/dist/factories/contracts/mock/MockCircleTokenMessenger__factory.d.ts +1 -1
  303. package/dist/factories/contracts/mock/MockCircleTokenMessenger__factory.d.ts.map +1 -1
  304. package/dist/factories/contracts/mock/MockCircleTokenMessenger__factory.js +1 -1
  305. package/dist/factories/contracts/mock/MockCircleTokenMessenger__factory.js.map +1 -1
  306. package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageDispatcher__factory.d.ts +1 -1
  307. package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageDispatcher__factory.d.ts.map +1 -1
  308. package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageDispatcher__factory.js +1 -1
  309. package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageDispatcher__factory.js.map +1 -1
  310. package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageExecutor__factory.d.ts +1 -1
  311. package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageExecutor__factory.js +1 -1
  312. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.d.ts +1 -1
  313. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.d.ts.map +1 -1
  314. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.js +1 -1
  315. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.js.map +1 -1
  316. package/dist/factories/contracts/mock/MockMailbox__factory.d.ts +1 -1
  317. package/dist/factories/contracts/mock/MockMailbox__factory.d.ts.map +1 -1
  318. package/dist/factories/contracts/mock/MockMailbox__factory.js +1 -1
  319. package/dist/factories/contracts/mock/MockMailbox__factory.js.map +1 -1
  320. package/dist/factories/contracts/mock/MockPortalBridge__factory.d.ts +1 -1
  321. package/dist/factories/contracts/mock/MockPortalBridge__factory.d.ts.map +1 -1
  322. package/dist/factories/contracts/mock/MockPortalBridge__factory.js +1 -1
  323. package/dist/factories/contracts/mock/MockPortalBridge__factory.js.map +1 -1
  324. package/dist/factories/contracts/mock/MockToken__factory.d.ts +1 -1
  325. package/dist/factories/contracts/mock/MockToken__factory.d.ts.map +1 -1
  326. package/dist/factories/contracts/mock/MockToken__factory.js +1 -1
  327. package/dist/factories/contracts/mock/MockToken__factory.js.map +1 -1
  328. package/dist/factories/contracts/test/ERC20Test__factory.d.ts +1 -1
  329. package/dist/factories/contracts/test/ERC20Test__factory.d.ts.map +1 -1
  330. package/dist/factories/contracts/test/ERC20Test__factory.js +1 -1
  331. package/dist/factories/contracts/test/ERC20Test__factory.js.map +1 -1
  332. package/dist/factories/contracts/test/ERC721Test__factory.d.ts +1 -1
  333. package/dist/factories/contracts/test/ERC721Test__factory.d.ts.map +1 -1
  334. package/dist/factories/contracts/test/ERC721Test__factory.js +1 -1
  335. package/dist/factories/contracts/test/ERC721Test__factory.js.map +1 -1
  336. package/dist/factories/contracts/test/LightTestRecipient__factory.d.ts +1 -1
  337. package/dist/factories/contracts/test/LightTestRecipient__factory.d.ts.map +1 -1
  338. package/dist/factories/contracts/test/LightTestRecipient__factory.js +1 -1
  339. package/dist/factories/contracts/test/LightTestRecipient__factory.js.map +1 -1
  340. package/dist/factories/contracts/test/TestGasRouter__factory.d.ts +1 -1
  341. package/dist/factories/contracts/test/TestGasRouter__factory.d.ts.map +1 -1
  342. package/dist/factories/contracts/test/TestGasRouter__factory.js +1 -1
  343. package/dist/factories/contracts/test/TestGasRouter__factory.js.map +1 -1
  344. package/dist/factories/contracts/test/TestInterchainGasPaymaster__factory.d.ts +1 -1
  345. package/dist/factories/contracts/test/TestInterchainGasPaymaster__factory.d.ts.map +1 -1
  346. package/dist/factories/contracts/test/TestInterchainGasPaymaster__factory.js +14 -1
  347. package/dist/factories/contracts/test/TestInterchainGasPaymaster__factory.js.map +1 -1
  348. package/dist/factories/contracts/test/TestIsm__factory.d.ts +1 -1
  349. package/dist/factories/contracts/test/TestIsm__factory.d.ts.map +1 -1
  350. package/dist/factories/contracts/test/TestIsm__factory.js +1 -1
  351. package/dist/factories/contracts/test/TestIsm__factory.js.map +1 -1
  352. package/dist/factories/contracts/test/TestLiquidityLayerMessageRecipient__factory.d.ts +1 -1
  353. package/dist/factories/contracts/test/TestLiquidityLayerMessageRecipient__factory.d.ts.map +1 -1
  354. package/dist/factories/contracts/test/TestLiquidityLayerMessageRecipient__factory.js +1 -1
  355. package/dist/factories/contracts/test/TestLiquidityLayerMessageRecipient__factory.js.map +1 -1
  356. package/dist/factories/contracts/test/TestMailbox__factory.d.ts +1 -1
  357. package/dist/factories/contracts/test/TestMailbox__factory.d.ts.map +1 -1
  358. package/dist/factories/contracts/test/TestMailbox__factory.js +1 -1
  359. package/dist/factories/contracts/test/TestMailbox__factory.js.map +1 -1
  360. package/dist/factories/contracts/test/TestMerkleTreeHook__factory.d.ts +1 -1
  361. package/dist/factories/contracts/test/TestMerkleTreeHook__factory.d.ts.map +1 -1
  362. package/dist/factories/contracts/test/TestMerkleTreeHook__factory.js +14 -1
  363. package/dist/factories/contracts/test/TestMerkleTreeHook__factory.js.map +1 -1
  364. package/dist/factories/contracts/test/TestMerkle__factory.d.ts +1 -1
  365. package/dist/factories/contracts/test/TestMerkle__factory.d.ts.map +1 -1
  366. package/dist/factories/contracts/test/TestMerkle__factory.js +1 -1
  367. package/dist/factories/contracts/test/TestMerkle__factory.js.map +1 -1
  368. package/dist/factories/contracts/test/TestMessage__factory.d.ts +1 -1
  369. package/dist/factories/contracts/test/TestMessage__factory.d.ts.map +1 -1
  370. package/dist/factories/contracts/test/TestMessage__factory.js +1 -1
  371. package/dist/factories/contracts/test/TestMessage__factory.js.map +1 -1
  372. package/dist/factories/contracts/test/TestPostDispatchHook__factory.d.ts +1 -1
  373. package/dist/factories/contracts/test/TestPostDispatchHook__factory.d.ts.map +1 -1
  374. package/dist/factories/contracts/test/TestPostDispatchHook__factory.js +14 -1
  375. package/dist/factories/contracts/test/TestPostDispatchHook__factory.js.map +1 -1
  376. package/dist/factories/contracts/test/TestQuerySender__factory.d.ts +1 -1
  377. package/dist/factories/contracts/test/TestQuerySender__factory.d.ts.map +1 -1
  378. package/dist/factories/contracts/test/TestQuerySender__factory.js +1 -1
  379. package/dist/factories/contracts/test/TestQuerySender__factory.js.map +1 -1
  380. package/dist/factories/contracts/test/TestQuery__factory.d.ts +1 -1
  381. package/dist/factories/contracts/test/TestQuery__factory.d.ts.map +1 -1
  382. package/dist/factories/contracts/test/TestQuery__factory.js +1 -1
  383. package/dist/factories/contracts/test/TestQuery__factory.js.map +1 -1
  384. package/dist/factories/contracts/test/TestRecipient__factory.d.ts +1 -1
  385. package/dist/factories/contracts/test/TestRecipient__factory.d.ts.map +1 -1
  386. package/dist/factories/contracts/test/TestRecipient__factory.js +1 -1
  387. package/dist/factories/contracts/test/TestRecipient__factory.js.map +1 -1
  388. package/dist/factories/contracts/test/TestRouter__factory.d.ts +1 -1
  389. package/dist/factories/contracts/test/TestRouter__factory.d.ts.map +1 -1
  390. package/dist/factories/contracts/test/TestRouter__factory.js +1 -1
  391. package/dist/factories/contracts/test/TestRouter__factory.js.map +1 -1
  392. package/dist/factories/contracts/test/TestSendReceiver__factory.d.ts +1 -1
  393. package/dist/factories/contracts/test/TestSendReceiver__factory.d.ts.map +1 -1
  394. package/dist/factories/contracts/test/TestSendReceiver__factory.js +29 -1
  395. package/dist/factories/contracts/test/TestSendReceiver__factory.js.map +1 -1
  396. package/dist/factories/contracts/test/TestTokenRecipient__factory.d.ts +1 -1
  397. package/dist/factories/contracts/test/TestTokenRecipient__factory.d.ts.map +1 -1
  398. package/dist/factories/contracts/test/TestTokenRecipient__factory.js +1 -1
  399. package/dist/factories/contracts/test/TestTokenRecipient__factory.js.map +1 -1
  400. package/dist/factories/contracts/test/index.d.ts +0 -1
  401. package/dist/factories/contracts/test/index.d.ts.map +1 -1
  402. package/dist/factories/contracts/test/index.js +1 -3
  403. package/dist/factories/contracts/test/index.js.map +1 -1
  404. package/dist/factories/contracts/token/HypERC20Collateral__factory.d.ts +1 -1
  405. package/dist/factories/contracts/token/HypERC20Collateral__factory.d.ts.map +1 -1
  406. package/dist/factories/contracts/token/HypERC20Collateral__factory.js +1 -1
  407. package/dist/factories/contracts/token/HypERC20Collateral__factory.js.map +1 -1
  408. package/dist/factories/contracts/token/HypERC20__factory.d.ts +1 -1
  409. package/dist/factories/contracts/token/HypERC20__factory.d.ts.map +1 -1
  410. package/dist/factories/contracts/token/HypERC20__factory.js +1 -1
  411. package/dist/factories/contracts/token/HypERC20__factory.js.map +1 -1
  412. package/dist/factories/contracts/token/HypERC721Collateral__factory.d.ts +1 -1
  413. package/dist/factories/contracts/token/HypERC721Collateral__factory.d.ts.map +1 -1
  414. package/dist/factories/contracts/token/HypERC721Collateral__factory.js +1 -1
  415. package/dist/factories/contracts/token/HypERC721Collateral__factory.js.map +1 -1
  416. package/dist/factories/contracts/token/HypERC721__factory.d.ts +1 -1
  417. package/dist/factories/contracts/token/HypERC721__factory.d.ts.map +1 -1
  418. package/dist/factories/contracts/token/HypERC721__factory.js +1 -1
  419. package/dist/factories/contracts/token/HypERC721__factory.js.map +1 -1
  420. package/dist/factories/contracts/token/HypNative__factory.d.ts +1 -1
  421. package/dist/factories/contracts/token/HypNative__factory.d.ts.map +1 -1
  422. package/dist/factories/contracts/token/HypNative__factory.js +1 -1
  423. package/dist/factories/contracts/token/HypNative__factory.js.map +1 -1
  424. package/dist/factories/contracts/token/extensions/FastHypERC20Collateral__factory.d.ts +75 -0
  425. package/dist/factories/contracts/token/extensions/FastHypERC20Collateral__factory.d.ts.map +1 -0
  426. package/dist/factories/contracts/token/extensions/FastHypERC20Collateral__factory.js +589 -0
  427. package/dist/factories/contracts/token/extensions/FastHypERC20Collateral__factory.js.map +1 -0
  428. package/dist/factories/contracts/token/extensions/FastHypERC20__factory.d.ts +75 -0
  429. package/dist/factories/contracts/token/extensions/FastHypERC20__factory.d.ts.map +1 -0
  430. package/dist/factories/contracts/token/extensions/FastHypERC20__factory.js +850 -0
  431. package/dist/factories/contracts/token/extensions/FastHypERC20__factory.js.map +1 -0
  432. package/dist/factories/contracts/token/extensions/HypERC721URICollateral__factory.d.ts +1 -1
  433. package/dist/factories/contracts/token/extensions/HypERC721URICollateral__factory.d.ts.map +1 -1
  434. package/dist/factories/contracts/token/extensions/HypERC721URICollateral__factory.js +1 -1
  435. package/dist/factories/contracts/token/extensions/HypERC721URICollateral__factory.js.map +1 -1
  436. package/dist/factories/contracts/token/extensions/HypERC721URIStorage__factory.d.ts +1 -1
  437. package/dist/factories/contracts/token/extensions/HypERC721URIStorage__factory.d.ts.map +1 -1
  438. package/dist/factories/contracts/token/extensions/HypERC721URIStorage__factory.js +1 -1
  439. package/dist/factories/contracts/token/extensions/HypERC721URIStorage__factory.js.map +1 -1
  440. package/dist/factories/contracts/token/extensions/HypNativeScaled__factory.d.ts +1 -1
  441. package/dist/factories/contracts/token/extensions/HypNativeScaled__factory.d.ts.map +1 -1
  442. package/dist/factories/contracts/token/extensions/HypNativeScaled__factory.js +1 -1
  443. package/dist/factories/contracts/token/extensions/HypNativeScaled__factory.js.map +1 -1
  444. package/dist/factories/contracts/token/extensions/index.d.ts +2 -0
  445. package/dist/factories/contracts/token/extensions/index.d.ts.map +1 -1
  446. package/dist/factories/contracts/token/extensions/index.js +5 -1
  447. package/dist/factories/contracts/token/extensions/index.js.map +1 -1
  448. package/dist/factories/contracts/token/libs/FastTokenRouter__factory.d.ts +52 -0
  449. package/dist/factories/contracts/token/libs/FastTokenRouter__factory.d.ts.map +1 -0
  450. package/dist/factories/contracts/token/libs/FastTokenRouter__factory.js +537 -0
  451. package/dist/factories/contracts/token/libs/FastTokenRouter__factory.js.map +1 -0
  452. package/dist/factories/contracts/token/libs/index.d.ts +1 -0
  453. package/dist/factories/contracts/token/libs/index.d.ts.map +1 -1
  454. package/dist/factories/contracts/token/libs/index.js +3 -1
  455. package/dist/factories/contracts/token/libs/index.js.map +1 -1
  456. package/dist/factories/contracts/upgrade/Versioned__factory.d.ts +1 -1
  457. package/dist/factories/contracts/upgrade/Versioned__factory.d.ts.map +1 -1
  458. package/dist/factories/contracts/upgrade/Versioned__factory.js +1 -1
  459. package/dist/factories/contracts/upgrade/Versioned__factory.js.map +1 -1
  460. package/dist/index.d.ts +8 -2
  461. package/dist/index.d.ts.map +1 -1
  462. package/dist/index.js +11 -5
  463. package/dist/index.js.map +1 -1
  464. package/package.json +3 -2
  465. package/contracts/test/TestMultisigIsm.sol +0 -39
  466. package/dist/contracts/test/TestMultisigIsm.d.ts +0 -126
  467. package/dist/contracts/test/TestMultisigIsm.d.ts.map +0 -1
  468. package/dist/contracts/test/TestMultisigIsm.js.map +0 -1
  469. package/dist/factories/contracts/test/TestMultisigIsm__factory.d.ts +0 -41
  470. package/dist/factories/contracts/test/TestMultisigIsm__factory.d.ts.map +0 -1
  471. package/dist/factories/contracts/test/TestMultisigIsm__factory.js +0 -133
  472. package/dist/factories/contracts/test/TestMultisigIsm__factory.js.map +0 -1
@@ -17,6 +17,7 @@ import {MerkleLib} from "../libs/Merkle.sol";
17
17
  import {Message} from "../libs/Message.sol";
18
18
  import {MailboxClient} from "../client/MailboxClient.sol";
19
19
  import {Indexed} from "../libs/Indexed.sol";
20
+ import {IPostDispatchHook} from "../interfaces/hooks/IPostDispatchHook.sol";
20
21
  import {AbstractPostDispatchHook} from "./libs/AbstractPostDispatchHook.sol";
21
22
  import {StandardHookMetadata} from "./libs/StandardHookMetadata.sol";
22
23
 
@@ -49,6 +50,13 @@ contract MerkleTreeHook is AbstractPostDispatchHook, MailboxClient, Indexed {
49
50
  return (root(), count() - 1);
50
51
  }
51
52
 
53
+ // ============ External Functions ============
54
+
55
+ /// @inheritdoc IPostDispatchHook
56
+ function hookType() external pure override returns (uint8) {
57
+ return uint8(IPostDispatchHook.Types.MERKLE_TREE);
58
+ }
59
+
52
60
  // ============ Internal Functions ============
53
61
 
54
62
  /// @inheritdoc AbstractPostDispatchHook
@@ -48,7 +48,7 @@ contract OPStackHook is AbstractMessageIdAuthHook {
48
48
  constructor(
49
49
  address _mailbox,
50
50
  uint32 _destinationDomain,
51
- address _ism,
51
+ bytes32 _ism,
52
52
  address _l1Messenger
53
53
  ) AbstractMessageIdAuthHook(_mailbox, _destinationDomain, _ism) {
54
54
  require(
@@ -58,8 +58,7 @@ contract OPStackHook is AbstractMessageIdAuthHook {
58
58
  l1Messenger = ICrossDomainMessenger(_l1Messenger);
59
59
  }
60
60
 
61
- // ============ External functions ============
62
-
61
+ // ============ Internal functions ============
63
62
  function _quoteDispatch(bytes calldata, bytes calldata)
64
63
  internal
65
64
  pure
@@ -69,8 +68,6 @@ contract OPStackHook is AbstractMessageIdAuthHook {
69
68
  return 0; // gas subsidized by the L2
70
69
  }
71
70
 
72
- // ============ Internal functions ============
73
-
74
71
  /// @inheritdoc AbstractMessageIdAuthHook
75
72
  function _sendMessageId(bytes calldata metadata, bytes memory payload)
76
73
  internal
@@ -81,7 +78,7 @@ contract OPStackHook is AbstractMessageIdAuthHook {
81
78
  "OPStackHook: msgValue must be less than 2 ** 255"
82
79
  );
83
80
  l1Messenger.sendMessage{value: metadata.msgValue(0)}(
84
- ism,
81
+ TypeCasts.bytes32ToAddress(ism),
85
82
  payload,
86
83
  GAS_LIMIT
87
84
  );
@@ -14,6 +14,7 @@ pragma solidity >=0.8.0;
14
14
  @@@@@@@@@ @@@@@@@@*/
15
15
 
16
16
  import {StandardHookMetadata} from "../hooks/libs/StandardHookMetadata.sol";
17
+ import {IPostDispatchHook} from "../interfaces/hooks/IPostDispatchHook.sol";
17
18
  import {AbstractPostDispatchHook} from "./libs/AbstractPostDispatchHook.sol";
18
19
 
19
20
  import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";
@@ -32,6 +33,13 @@ contract PausableHook is AbstractPostDispatchHook, Ownable, Pausable {
32
33
  _unpause();
33
34
  }
34
35
 
36
+ // ============ External Functions ============
37
+
38
+ /// @inheritdoc IPostDispatchHook
39
+ function hookType() external pure override returns (uint8) {
40
+ return uint8(IPostDispatchHook.Types.PAUSABLE);
41
+ }
42
+
35
43
  // ============ Internal functions ============
36
44
 
37
45
  /// @inheritdoc AbstractPostDispatchHook
@@ -17,6 +17,7 @@ pragma solidity >=0.8.0;
17
17
  import {Message} from "../libs/Message.sol";
18
18
  import {StandardHookMetadata} from "./libs/StandardHookMetadata.sol";
19
19
  import {AbstractPostDispatchHook} from "./libs/AbstractPostDispatchHook.sol";
20
+ import {IPostDispatchHook} from "../interfaces/hooks/IPostDispatchHook.sol";
20
21
 
21
22
  // ============ External Imports ============
22
23
  import {Address} from "@openzeppelin/contracts/utils/Address.sol";
@@ -59,6 +60,11 @@ contract StaticProtocolFee is AbstractPostDispatchHook, Ownable {
59
60
 
60
61
  // ============ External Functions ============
61
62
 
63
+ /// @inheritdoc IPostDispatchHook
64
+ function hookType() external pure override returns (uint8) {
65
+ return uint8(IPostDispatchHook.Types.PROTOCOL_FEE);
66
+ }
67
+
62
68
  /**
63
69
  * @notice Sets the protocol fee.
64
70
  * @param _protocolFee The new protocol fee.
@@ -33,7 +33,7 @@ contract ERC5164Hook is AbstractMessageIdAuthHook {
33
33
  constructor(
34
34
  address _mailbox,
35
35
  uint32 _destinationDomain,
36
- address _ism,
36
+ bytes32 _ism,
37
37
  address _dispatcher
38
38
  ) AbstractMessageIdAuthHook(_mailbox, _destinationDomain, _ism) {
39
39
  require(
@@ -43,13 +43,15 @@ contract ERC5164Hook is AbstractMessageIdAuthHook {
43
43
  dispatcher = IMessageDispatcher(_dispatcher);
44
44
  }
45
45
 
46
+ // ============ Internal Functions ============
47
+
46
48
  function _quoteDispatch(bytes calldata, bytes calldata)
47
49
  internal
48
50
  pure
49
51
  override
50
52
  returns (uint256)
51
53
  {
52
- revert("not implemented");
54
+ return 0; // EIP-5164 doesn't enforce a gas abstraction
53
55
  }
54
56
 
55
57
  function _sendMessageId(
@@ -58,6 +60,10 @@ contract ERC5164Hook is AbstractMessageIdAuthHook {
58
60
  bytes memory payload
59
61
  ) internal override {
60
62
  require(msg.value == 0, "ERC5164Hook: no value allowed");
61
- dispatcher.dispatchMessage(destinationDomain, ism, payload);
63
+ dispatcher.dispatchMessage(
64
+ destinationDomain,
65
+ TypeCasts.bytes32ToAddress(ism),
66
+ payload
67
+ );
62
68
  }
63
69
  }
@@ -23,6 +23,11 @@ contract StaticAggregationHook is AbstractPostDispatchHook {
23
23
 
24
24
  // ============ External functions ============
25
25
 
26
+ /// @inheritdoc IPostDispatchHook
27
+ function hookType() external pure override returns (uint8) {
28
+ return uint8(IPostDispatchHook.Types.AGGREGATION);
29
+ }
30
+
26
31
  /// @inheritdoc AbstractPostDispatchHook
27
32
  function _postDispatch(bytes calldata metadata, bytes calldata message)
28
33
  internal
@@ -92,6 +92,11 @@ contract InterchainGasPaymaster is
92
92
 
93
93
  // ============ External Functions ============
94
94
 
95
+ /// @inheritdoc IPostDispatchHook
96
+ function hookType() external pure override returns (uint8) {
97
+ return uint8(IPostDispatchHook.Types.INTERCHAIN_GAS_PAYMASTER);
98
+ }
99
+
95
100
  /**
96
101
  * @param _owner The owner of the contract.
97
102
  * @param _beneficiary The beneficiary.
@@ -14,6 +14,7 @@ pragma solidity >=0.8.0;
14
14
  @@@@@@@@@ @@@@@@@@*/
15
15
 
16
16
  // ============ Internal Imports ============
17
+ import {IPostDispatchHook} from "../../interfaces/hooks/IPostDispatchHook.sol";
17
18
  import {AbstractPostDispatchHook} from "./AbstractPostDispatchHook.sol";
18
19
  import {AbstractMessageIdAuthorizedIsm} from "../../isms/hook/AbstractMessageIdAuthorizedIsm.sol";
19
20
  import {TypeCasts} from "../../libs/TypeCasts.sol";
@@ -35,8 +36,8 @@ abstract contract AbstractMessageIdAuthHook is
35
36
 
36
37
  // ============ Constants ============
37
38
 
38
- // address for ISM to verify messages
39
- address public immutable ism;
39
+ // left-padded address for ISM to verify messages
40
+ bytes32 public immutable ism;
40
41
  // Domain of chain on which the ISM is deployed
41
42
  uint32 public immutable destinationDomain;
42
43
 
@@ -45,9 +46,9 @@ abstract contract AbstractMessageIdAuthHook is
45
46
  constructor(
46
47
  address _mailbox,
47
48
  uint32 _destinationDomain,
48
- address _ism
49
+ bytes32 _ism
49
50
  ) MailboxClient(_mailbox) {
50
- require(_ism != address(0), "AbstractMessageIdAuthHook: invalid ISM");
51
+ require(_ism != bytes32(0), "AbstractMessageIdAuthHook: invalid ISM");
51
52
  require(
52
53
  _destinationDomain != 0,
53
54
  "AbstractMessageIdAuthHook: invalid destination domain"
@@ -56,6 +57,11 @@ abstract contract AbstractMessageIdAuthHook is
56
57
  destinationDomain = _destinationDomain;
57
58
  }
58
59
 
60
+ /// @inheritdoc IPostDispatchHook
61
+ function hookType() external pure returns (uint8) {
62
+ return uint8(IPostDispatchHook.Types.ID_AUTH_ISM);
63
+ }
64
+
59
65
  // ============ Internal functions ============
60
66
 
61
67
  /// @inheritdoc AbstractPostDispatchHook
@@ -42,8 +42,15 @@ contract DomainRoutingHook is AbstractPostDispatchHook, MailboxClient {
42
42
  _transferOwnership(_owner);
43
43
  }
44
44
 
45
- function setHook(uint32 destination, address hook) public onlyOwner {
46
- hooks[destination] = IPostDispatchHook(hook);
45
+ // ============ External Functions ============
46
+
47
+ /// @inheritdoc IPostDispatchHook
48
+ function hookType() external pure virtual override returns (uint8) {
49
+ return uint8(IPostDispatchHook.Types.ROUTING);
50
+ }
51
+
52
+ function setHook(uint32 _destination, address _hook) public onlyOwner {
53
+ hooks[_destination] = IPostDispatchHook(_hook);
47
54
  }
48
55
 
49
56
  function setHooks(HookConfig[] calldata configs) external onlyOwner {
@@ -36,17 +36,25 @@ contract FallbackDomainRoutingHook is DomainRoutingHook {
36
36
  fallbackHook = IPostDispatchHook(_fallback);
37
37
  }
38
38
 
39
+ // ============ External Functions ============
40
+
41
+ /// @inheritdoc IPostDispatchHook
42
+ function hookType() external pure override returns (uint8) {
43
+ return uint8(IPostDispatchHook.Types.FALLBACK_ROUTING);
44
+ }
45
+
39
46
  // ============ Internal Functions ============
40
47
 
41
48
  function _getConfiguredHook(bytes calldata message)
42
49
  internal
43
50
  view
44
51
  override
45
- returns (IPostDispatchHook hook)
52
+ returns (IPostDispatchHook)
46
53
  {
47
- hook = hooks[message.destination()];
48
- if (address(hook) == address(0)) {
49
- hook = fallbackHook;
54
+ IPostDispatchHook _hook = hooks[message.destination()];
55
+ if (address(_hook) == address(0)) {
56
+ _hook = fallbackHook;
50
57
  }
58
+ return _hook;
51
59
  }
52
60
  }
@@ -14,6 +14,23 @@ pragma solidity >=0.8.0;
14
14
  @@@@@@@@@ @@@@@@@@*/
15
15
 
16
16
  interface IPostDispatchHook {
17
+ enum Types {
18
+ UNUSED,
19
+ ROUTING,
20
+ AGGREGATION,
21
+ MERKLE_TREE,
22
+ INTERCHAIN_GAS_PAYMASTER,
23
+ FALLBACK_ROUTING,
24
+ ID_AUTH_ISM,
25
+ PAUSABLE,
26
+ PROTOCOL_FEE
27
+ }
28
+
29
+ /**
30
+ * @notice Returns an enum that represents the type of hook
31
+ */
32
+ function hookType() external view returns (uint8);
33
+
17
34
  /**
18
35
  * @notice Returns whether the hook supports metadata
19
36
  * @param metadata metadata
@@ -27,13 +27,13 @@ interface ICrossDomainMessenger {
27
27
  bytes calldata _message
28
28
  ) external payable;
29
29
 
30
- /*************
31
- * Variables *
32
- *************/
33
-
34
30
  function xDomainMessageSender() external view returns (address);
31
+
32
+ function OTHER_MESSENGER() external view returns (address);
35
33
  }
36
34
 
35
+ interface IL1CrossDomainMessenger is ICrossDomainMessenger {}
36
+
37
37
  interface IL2CrossDomainMessenger is ICrossDomainMessenger {
38
38
  function messageNonce() external view returns (uint256);
39
39
  }
@@ -18,7 +18,6 @@ pragma solidity >=0.8.0;
18
18
  import {IInterchainSecurityModule} from "../../interfaces/IInterchainSecurityModule.sol";
19
19
  import {LibBit} from "../../libs/LibBit.sol";
20
20
  import {Message} from "../../libs/Message.sol";
21
- import {TypeCasts} from "../../libs/TypeCasts.sol";
22
21
 
23
22
  // ============ External Imports ============
24
23
 
@@ -46,9 +45,9 @@ abstract contract AbstractMessageIdAuthorizedIsm is
46
45
  /// @dev the first bit is reserved for verification and the rest 255 bits are for the msg.value
47
46
  mapping(bytes32 => uint256) public verifiedMessages;
48
47
  /// @notice Index of verification bit in verifiedMessages
49
- uint256 public constant MASK_INDEX = 255;
50
- /// @notice Address for the authorized hook
51
- address public authorizedHook;
48
+ uint256 public constant VERIFIED_MASK_INDEX = 255;
49
+ /// @notice address for the authorized hook
50
+ bytes32 public authorizedHook;
52
51
 
53
52
  // ============ Events ============
54
53
 
@@ -57,9 +56,9 @@ abstract contract AbstractMessageIdAuthorizedIsm is
57
56
 
58
57
  // ============ Initializer ============
59
58
 
60
- function setAuthorizedHook(address _hook) external initializer {
59
+ function setAuthorizedHook(bytes32 _hook) external initializer {
61
60
  require(
62
- _hook != address(0),
61
+ _hook != bytes32(0),
63
62
  "AbstractMessageIdAuthorizedIsm: invalid authorized hook"
64
63
  );
65
64
  authorizedHook = _hook;
@@ -79,12 +78,18 @@ abstract contract AbstractMessageIdAuthorizedIsm is
79
78
  bytes32 messageId = message.id();
80
79
 
81
80
  // check for the first bit (used for verification)
82
- bool verified = verifiedMessages[messageId].isBitSet(MASK_INDEX);
81
+ bool verified = verifiedMessages[messageId].isBitSet(
82
+ VERIFIED_MASK_INDEX
83
+ );
83
84
  // rest 255 bits contains the msg.value passed from the hook
84
85
  if (verified) {
85
- payable(message.recipientAddress()).sendValue(
86
- verifiedMessages[messageId].clearBit(MASK_INDEX)
86
+ uint256 _msgValue = verifiedMessages[messageId].clearBit(
87
+ VERIFIED_MASK_INDEX
87
88
  );
89
+ if (_msgValue > 0) {
90
+ verifiedMessages[messageId] -= _msgValue;
91
+ payable(message.recipientAddress()).sendValue(_msgValue);
92
+ }
88
93
  }
89
94
  return verified;
90
95
  }
@@ -99,8 +104,12 @@ abstract contract AbstractMessageIdAuthorizedIsm is
99
104
  _isAuthorized(),
100
105
  "AbstractMessageIdAuthorizedIsm: sender is not the hook"
101
106
  );
107
+ require(
108
+ msg.value < 2**VERIFIED_MASK_INDEX,
109
+ "AbstractMessageIdAuthorizedIsm: msg.value must be less than 2^255"
110
+ );
102
111
 
103
- verifiedMessages[messageId] = msg.value.setBit(MASK_INDEX);
112
+ verifiedMessages[messageId] = msg.value.setBit(VERIFIED_MASK_INDEX);
104
113
  emit ReceivedMessage(messageId);
105
114
  }
106
115
 
@@ -52,6 +52,7 @@ contract OPStackIsm is
52
52
  * @notice Check if sender is authorized to message `verifyMessageId`.
53
53
  */
54
54
  function _isAuthorized() internal view override returns (bool) {
55
- return _crossChainSender() == authorizedHook;
55
+ return
56
+ _crossChainSender() == TypeCasts.bytes32ToAddress(authorizedHook);
56
57
  }
57
58
  }
@@ -3,7 +3,7 @@ pragma solidity ^0.8.13;
3
3
 
4
4
  import "./MockMailbox.sol";
5
5
  import "../test/TestInterchainGasPaymaster.sol";
6
- import "../test/TestMultisigIsm.sol";
6
+ import "../test/TestIsm.sol";
7
7
 
8
8
  import {TypeCasts} from "../libs/TypeCasts.sol";
9
9
 
@@ -25,8 +25,8 @@ contract MockHyperlaneEnvironment {
25
25
  originMailbox.addRemoteMailbox(_destinationDomain, destinationMailbox);
26
26
  destinationMailbox.addRemoteMailbox(_originDomain, originMailbox);
27
27
 
28
- isms[originDomain] = new TestMultisigIsm();
29
- isms[destinationDomain] = new TestMultisigIsm();
28
+ isms[originDomain] = new TestIsm();
29
+ isms[destinationDomain] = new TestIsm();
30
30
 
31
31
  originMailbox.setDefaultIsm(address(isms[originDomain]));
32
32
  destinationMailbox.setDefaultIsm(address(isms[destinationDomain]));
@@ -34,10 +34,6 @@ contract MockHyperlaneEnvironment {
34
34
  igps[originDomain] = new TestInterchainGasPaymaster();
35
35
  igps[destinationDomain] = new TestInterchainGasPaymaster();
36
36
 
37
- // TODO: update routers with IGP paymentss
38
- // originMailbox.setDefaultHook(address(igps[originDomain]));
39
- // destinationMailbox.setDefaultHook(address(igps[destinationDomain]));
40
-
41
37
  originMailbox.transferOwnership(msg.sender);
42
38
  destinationMailbox.transferOwnership(msg.sender);
43
39
 
@@ -1,6 +1,7 @@
1
1
  // SPDX-License-Identifier: MIT OR Apache-2.0
2
2
  pragma solidity >=0.8.0;
3
3
 
4
+ import {IPostDispatchHook} from "../interfaces/hooks/IPostDispatchHook.sol";
4
5
  import {AbstractPostDispatchHook} from "../hooks/libs/AbstractPostDispatchHook.sol";
5
6
 
6
7
  contract TestPostDispatchHook is AbstractPostDispatchHook {
@@ -9,6 +10,13 @@ contract TestPostDispatchHook is AbstractPostDispatchHook {
9
10
  // test fees for quoteDispatch
10
11
  uint256 public fee = 0;
11
12
 
13
+ // ============ External Functions ============
14
+
15
+ /// @inheritdoc IPostDispatchHook
16
+ function hookType() external pure override returns (uint8) {
17
+ return uint8(IPostDispatchHook.Types.UNUSED);
18
+ }
19
+
12
20
  function supportsMetadata(bytes calldata)
13
21
  public
14
22
  pure
@@ -6,8 +6,11 @@ import {TypeCasts} from "../libs/TypeCasts.sol";
6
6
  import {IInterchainGasPaymaster} from "../interfaces/IInterchainGasPaymaster.sol";
7
7
  import {IMessageRecipient} from "../interfaces/IMessageRecipient.sol";
8
8
  import {IMailbox} from "../interfaces/IMailbox.sol";
9
+ import {IPostDispatchHook} from "../interfaces/hooks/IPostDispatchHook.sol";
10
+ import {IInterchainSecurityModule, ISpecifiesInterchainSecurityModule} from "../interfaces/IInterchainSecurityModule.sol";
9
11
 
10
12
  import {StandardHookMetadata} from "../hooks/libs/StandardHookMetadata.sol";
13
+ import {MailboxClient} from "../client/MailboxClient.sol";
11
14
 
12
15
  contract TestSendReceiver is IMessageRecipient {
13
16
  using TypeCasts for address;
@@ -34,6 +37,26 @@ contract TestSendReceiver is IMessageRecipient {
34
37
  );
35
38
  }
36
39
 
40
+ function dispatchToSelf(
41
+ IMailbox _mailbox,
42
+ uint32 _destinationDomain,
43
+ bytes calldata _messageBody,
44
+ IPostDispatchHook hook
45
+ ) external payable {
46
+ bytes memory hookMetadata = StandardHookMetadata.formatMetadata(
47
+ HANDLE_GAS_AMOUNT,
48
+ msg.sender
49
+ );
50
+ // TODO: handle topping up?
51
+ _mailbox.dispatch{value: msg.value}(
52
+ _destinationDomain,
53
+ address(this).addressToBytes32(),
54
+ _messageBody,
55
+ hookMetadata,
56
+ hook
57
+ );
58
+ }
59
+
37
60
  function handle(
38
61
  uint32,
39
62
  bytes32,
@@ -40,6 +40,7 @@ contract HypERC20 is ERC20Upgradeable, TokenRouter {
40
40
  function balanceOf(address _account)
41
41
  public
42
42
  view
43
+ virtual
43
44
  override(TokenRouter, ERC20Upgradeable)
44
45
  returns (uint256)
45
46
  {
@@ -67,7 +68,7 @@ contract HypERC20 is ERC20Upgradeable, TokenRouter {
67
68
  address _recipient,
68
69
  uint256 _amount,
69
70
  bytes calldata // no metadata
70
- ) internal override {
71
+ ) internal virtual override {
71
72
  _mint(_recipient, _amount);
72
73
  }
73
74
  }
@@ -55,7 +55,7 @@ contract HypERC20Collateral is TokenRouter {
55
55
  address _recipient,
56
56
  uint256 _amount,
57
57
  bytes calldata // no metadata
58
- ) internal override {
58
+ ) internal virtual override {
59
59
  wrappedToken.safeTransfer(_recipient, _amount);
60
60
  }
61
61
  }
@@ -0,0 +1,63 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity >=0.8.0;
3
+
4
+ import {HypERC20} from "../HypERC20.sol";
5
+ import {FastTokenRouter} from "../libs/FastTokenRouter.sol";
6
+ import {TokenRouter} from "../libs/TokenRouter.sol";
7
+
8
+ import {ERC20Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol";
9
+
10
+ /**
11
+ * @title Hyperlane ERC20 Token Router that extends ERC20 with remote transfer functionality.
12
+ * @author Abacus Works
13
+ * @dev Supply on each chain is not constant but the aggregate supply across all chains is.
14
+ */
15
+ contract FastHypERC20 is FastTokenRouter, HypERC20 {
16
+ constructor(uint8 __decimals, address _mailbox)
17
+ HypERC20(__decimals, _mailbox)
18
+ {}
19
+
20
+ /**
21
+ * @dev delegates transfer logic to `_transferTo`.
22
+ * @inheritdoc TokenRouter
23
+ */
24
+ function _handle(
25
+ uint32 _origin,
26
+ bytes32 _sender,
27
+ bytes calldata _message
28
+ ) internal virtual override(FastTokenRouter, TokenRouter) {
29
+ FastTokenRouter._handle(_origin, _sender, _message);
30
+ }
31
+
32
+ /**
33
+ * @dev Mints `_amount` of tokens to `_recipient`.
34
+ * @inheritdoc FastTokenRouter
35
+ */
36
+ function _fastTransferTo(address _recipient, uint256 _amount)
37
+ internal
38
+ override
39
+ {
40
+ _mint(_recipient, _amount);
41
+ }
42
+
43
+ /**
44
+ * @dev Burns `_amount` of tokens from `_recipient`.
45
+ * @inheritdoc FastTokenRouter
46
+ */
47
+ function _fastRecieveFrom(address _sender, uint256 _amount)
48
+ internal
49
+ override
50
+ {
51
+ _burn(_sender, _amount);
52
+ }
53
+
54
+ function balanceOf(address _account)
55
+ public
56
+ view
57
+ virtual
58
+ override(HypERC20, TokenRouter)
59
+ returns (uint256)
60
+ {
61
+ return ERC20Upgradeable.balanceOf(_account);
62
+ }
63
+ }
@@ -0,0 +1,59 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity >=0.8.0;
3
+
4
+ import {HypERC20Collateral} from "../HypERC20Collateral.sol";
5
+ import {FastTokenRouter} from "../libs/FastTokenRouter.sol";
6
+ import {TokenRouter} from "../libs/TokenRouter.sol";
7
+
8
+ import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
9
+ import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
10
+
11
+ /**
12
+ * @title Hyperlane ERC20 Token Collateral that wraps an existing ERC20 with remote transfer functionality.
13
+ * @author Abacus Works
14
+ */
15
+ contract FastHypERC20Collateral is FastTokenRouter, HypERC20Collateral {
16
+ using SafeERC20 for IERC20;
17
+
18
+ /**
19
+ * @notice Constructor
20
+ * @param erc20 Address of the token to keep as collateral
21
+ */
22
+ constructor(address erc20, address _mailbox)
23
+ HypERC20Collateral(erc20, _mailbox)
24
+ {}
25
+
26
+ /**
27
+ * @dev delegates transfer logic to `_transferTo`.
28
+ * @inheritdoc FastTokenRouter
29
+ */
30
+ function _handle(
31
+ uint32 _origin,
32
+ bytes32 _sender,
33
+ bytes calldata _message
34
+ ) internal virtual override(FastTokenRouter, TokenRouter) {
35
+ FastTokenRouter._handle(_origin, _sender, _message);
36
+ }
37
+
38
+ /**
39
+ * @dev Transfers `_amount` of `wrappedToken` to `_recipient`.
40
+ * @inheritdoc FastTokenRouter
41
+ */
42
+ function _fastTransferTo(address _recipient, uint256 _amount)
43
+ internal
44
+ override
45
+ {
46
+ wrappedToken.safeTransfer(_recipient, _amount);
47
+ }
48
+
49
+ /**
50
+ * @dev Transfers in `_amount` of `wrappedToken` from `_recipient`.
51
+ * @inheritdoc FastTokenRouter
52
+ */
53
+ function _fastRecieveFrom(address _sender, uint256 _amount)
54
+ internal
55
+ override
56
+ {
57
+ wrappedToken.safeTransferFrom(_sender, address(this), _amount);
58
+ }
59
+ }