@hyperlane-xyz/core 0.5.0-alpha0

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 (553) hide show
  1. package/README.md +14 -0
  2. package/contracts/AbacusConnectionManager.sol +145 -0
  3. package/contracts/Create2Factory.sol +114 -0
  4. package/contracts/Inbox.sol +148 -0
  5. package/contracts/InterchainGasPaymaster.sol +67 -0
  6. package/contracts/Mailbox.sol +93 -0
  7. package/contracts/MerkleTreeManager.sol +32 -0
  8. package/contracts/Outbox.sol +191 -0
  9. package/contracts/libs/Merkle.sol +208 -0
  10. package/contracts/libs/Message.sol +122 -0
  11. package/contracts/libs/TypeCasts.sol +34 -0
  12. package/contracts/mock/MockInbox.sol +52 -0
  13. package/contracts/mock/MockOutbox.sol +30 -0
  14. package/contracts/test/MysteryMath.sol +21 -0
  15. package/contracts/test/MysteryMathV1.sol +22 -0
  16. package/contracts/test/MysteryMathV2.sol +22 -0
  17. package/contracts/test/TestInbox.sol +54 -0
  18. package/contracts/test/TestMailbox.sol +12 -0
  19. package/contracts/test/TestMerkle.sol +30 -0
  20. package/contracts/test/TestMessage.sol +64 -0
  21. package/contracts/test/TestMultisigValidatorManager.sol +26 -0
  22. package/contracts/test/TestOutbox.sol +46 -0
  23. package/contracts/test/TestRecipient.sol +36 -0
  24. package/contracts/test/TestSendReceiver.sol +65 -0
  25. package/contracts/test/TestValidatorManager.sol +21 -0
  26. package/contracts/test/bad-recipient/BadRecipient1.sol +16 -0
  27. package/contracts/test/bad-recipient/BadRecipient2.sol +6 -0
  28. package/contracts/test/bad-recipient/BadRecipient3.sol +17 -0
  29. package/contracts/test/bad-recipient/BadRecipient5.sol +14 -0
  30. package/contracts/test/bad-recipient/BadRecipient6.sol +14 -0
  31. package/contracts/upgrade/UpgradeBeacon.sol +98 -0
  32. package/contracts/upgrade/UpgradeBeaconController.sol +48 -0
  33. package/contracts/upgrade/UpgradeBeaconProxy.sol +176 -0
  34. package/contracts/upgrade/Versioned.sol +10 -0
  35. package/contracts/validator-manager/InboxValidatorManager.sol +58 -0
  36. package/contracts/validator-manager/MultisigValidatorManager.sol +271 -0
  37. package/contracts/validator-manager/OutboxValidatorManager.sol +244 -0
  38. package/dist/@openzeppelin/contracts/access/Ownable.d.ts +90 -0
  39. package/dist/@openzeppelin/contracts/access/Ownable.d.ts.map +1 -0
  40. package/dist/@openzeppelin/contracts/access/Ownable.js +4 -0
  41. package/dist/@openzeppelin/contracts/access/Ownable.js.map +1 -0
  42. package/dist/@openzeppelin/contracts/access/index.d.ts +2 -0
  43. package/dist/@openzeppelin/contracts/access/index.d.ts.map +1 -0
  44. package/dist/@openzeppelin/contracts/access/index.js +3 -0
  45. package/dist/@openzeppelin/contracts/access/index.js.map +1 -0
  46. package/dist/@openzeppelin/contracts/index.d.ts +3 -0
  47. package/dist/@openzeppelin/contracts/index.d.ts.map +1 -0
  48. package/dist/@openzeppelin/contracts/index.js +4 -0
  49. package/dist/@openzeppelin/contracts/index.js.map +1 -0
  50. package/dist/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.d.ts +99 -0
  51. package/dist/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.d.ts.map +1 -0
  52. package/dist/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.js +4 -0
  53. package/dist/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.js.map +1 -0
  54. package/dist/@openzeppelin/contracts-upgradeable/access/index.d.ts +2 -0
  55. package/dist/@openzeppelin/contracts-upgradeable/access/index.d.ts.map +1 -0
  56. package/dist/@openzeppelin/contracts-upgradeable/access/index.js +3 -0
  57. package/dist/@openzeppelin/contracts-upgradeable/access/index.js.map +1 -0
  58. package/dist/@openzeppelin/contracts-upgradeable/index.d.ts +9 -0
  59. package/dist/@openzeppelin/contracts-upgradeable/index.d.ts.map +1 -0
  60. package/dist/@openzeppelin/contracts-upgradeable/index.js +4 -0
  61. package/dist/@openzeppelin/contracts-upgradeable/index.js.map +1 -0
  62. package/dist/@openzeppelin/contracts-upgradeable/proxy/index.d.ts +3 -0
  63. package/dist/@openzeppelin/contracts-upgradeable/proxy/index.d.ts.map +1 -0
  64. package/dist/@openzeppelin/contracts-upgradeable/proxy/index.js +4 -0
  65. package/dist/@openzeppelin/contracts-upgradeable/proxy/index.js.map +1 -0
  66. package/dist/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.d.ts +40 -0
  67. package/dist/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.d.ts.map +1 -0
  68. package/dist/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.js +4 -0
  69. package/dist/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.js.map +1 -0
  70. package/dist/@openzeppelin/contracts-upgradeable/proxy/utils/index.d.ts +2 -0
  71. package/dist/@openzeppelin/contracts-upgradeable/proxy/utils/index.d.ts.map +1 -0
  72. package/dist/@openzeppelin/contracts-upgradeable/proxy/utils/index.js +3 -0
  73. package/dist/@openzeppelin/contracts-upgradeable/proxy/utils/index.js.map +1 -0
  74. package/dist/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.d.ts +40 -0
  75. package/dist/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.d.ts.map +1 -0
  76. package/dist/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.js +4 -0
  77. package/dist/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.js.map +1 -0
  78. package/dist/@openzeppelin/contracts-upgradeable/security/index.d.ts +2 -0
  79. package/dist/@openzeppelin/contracts-upgradeable/security/index.d.ts.map +1 -0
  80. package/dist/@openzeppelin/contracts-upgradeable/security/index.js +3 -0
  81. package/dist/@openzeppelin/contracts-upgradeable/security/index.js.map +1 -0
  82. package/dist/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.d.ts +40 -0
  83. package/dist/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.d.ts.map +1 -0
  84. package/dist/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.js +4 -0
  85. package/dist/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.js.map +1 -0
  86. package/dist/@openzeppelin/contracts-upgradeable/utils/index.d.ts +2 -0
  87. package/dist/@openzeppelin/contracts-upgradeable/utils/index.d.ts.map +1 -0
  88. package/dist/@openzeppelin/contracts-upgradeable/utils/index.js +3 -0
  89. package/dist/@openzeppelin/contracts-upgradeable/utils/index.js.map +1 -0
  90. package/dist/@openzeppelin/index.d.ts +5 -0
  91. package/dist/@openzeppelin/index.d.ts.map +1 -0
  92. package/dist/@openzeppelin/index.js +4 -0
  93. package/dist/@openzeppelin/index.js.map +1 -0
  94. package/dist/common.d.ts +22 -0
  95. package/dist/common.d.ts.map +1 -0
  96. package/dist/common.js +4 -0
  97. package/dist/common.js.map +1 -0
  98. package/dist/contracts/AbacusConnectionManager.d.ts +213 -0
  99. package/dist/contracts/AbacusConnectionManager.d.ts.map +1 -0
  100. package/dist/contracts/AbacusConnectionManager.js +4 -0
  101. package/dist/contracts/AbacusConnectionManager.js.map +1 -0
  102. package/dist/contracts/ConstAddressDeployer.d.ts +94 -0
  103. package/dist/contracts/ConstAddressDeployer.d.ts.map +1 -0
  104. package/dist/contracts/ConstAddressDeployer.js +4 -0
  105. package/dist/contracts/ConstAddressDeployer.js.map +1 -0
  106. package/dist/contracts/Create2Factory.d.ts +94 -0
  107. package/dist/contracts/Create2Factory.d.ts.map +1 -0
  108. package/dist/contracts/Create2Factory.js +4 -0
  109. package/dist/contracts/Create2Factory.js.map +1 -0
  110. package/dist/contracts/Inbox.d.ts +207 -0
  111. package/dist/contracts/Inbox.d.ts.map +1 -0
  112. package/dist/contracts/Inbox.js +4 -0
  113. package/dist/contracts/Inbox.js.map +1 -0
  114. package/dist/contracts/InterchainGasPaymaster.d.ts +162 -0
  115. package/dist/contracts/InterchainGasPaymaster.d.ts.map +1 -0
  116. package/dist/contracts/InterchainGasPaymaster.js +4 -0
  117. package/dist/contracts/InterchainGasPaymaster.js.map +1 -0
  118. package/dist/contracts/Mailbox.d.ts +142 -0
  119. package/dist/contracts/Mailbox.d.ts.map +1 -0
  120. package/dist/contracts/Mailbox.js +4 -0
  121. package/dist/contracts/Mailbox.js.map +1 -0
  122. package/dist/contracts/MerkleTreeManager.d.ts +53 -0
  123. package/dist/contracts/MerkleTreeManager.d.ts.map +1 -0
  124. package/dist/contracts/MerkleTreeManager.js +4 -0
  125. package/dist/contracts/MerkleTreeManager.js.map +1 -0
  126. package/dist/contracts/Outbox.d.ts +331 -0
  127. package/dist/contracts/Outbox.d.ts.map +1 -0
  128. package/dist/contracts/Outbox.js +4 -0
  129. package/dist/contracts/Outbox.js.map +1 -0
  130. package/dist/contracts/index.d.ts +16 -0
  131. package/dist/contracts/index.d.ts.map +1 -0
  132. package/dist/contracts/index.js +4 -0
  133. package/dist/contracts/index.js.map +1 -0
  134. package/dist/contracts/mock/MockInbox.d.ts +67 -0
  135. package/dist/contracts/mock/MockInbox.d.ts.map +1 -0
  136. package/dist/contracts/mock/MockInbox.js +4 -0
  137. package/dist/contracts/mock/MockInbox.js.map +1 -0
  138. package/dist/contracts/mock/MockOutbox.d.ts +51 -0
  139. package/dist/contracts/mock/MockOutbox.d.ts.map +1 -0
  140. package/dist/contracts/mock/MockOutbox.js +4 -0
  141. package/dist/contracts/mock/MockOutbox.js.map +1 -0
  142. package/dist/contracts/mock/index.d.ts +3 -0
  143. package/dist/contracts/mock/index.d.ts.map +1 -0
  144. package/dist/contracts/mock/index.js +3 -0
  145. package/dist/contracts/mock/index.js.map +1 -0
  146. package/dist/contracts/test/MysteryMath.d.ts +77 -0
  147. package/dist/contracts/test/MysteryMath.d.ts.map +1 -0
  148. package/dist/contracts/test/MysteryMath.js +4 -0
  149. package/dist/contracts/test/MysteryMath.js.map +1 -0
  150. package/dist/contracts/test/MysteryMathV1.d.ts +85 -0
  151. package/dist/contracts/test/MysteryMathV1.d.ts.map +1 -0
  152. package/dist/contracts/test/MysteryMathV1.js +4 -0
  153. package/dist/contracts/test/MysteryMathV1.js.map +1 -0
  154. package/dist/contracts/test/MysteryMathV2.d.ts +85 -0
  155. package/dist/contracts/test/MysteryMathV2.d.ts.map +1 -0
  156. package/dist/contracts/test/MysteryMathV2.js +4 -0
  157. package/dist/contracts/test/MysteryMathV2.js.map +1 -0
  158. package/dist/contracts/test/TestInbox.d.ts +263 -0
  159. package/dist/contracts/test/TestInbox.d.ts.map +1 -0
  160. package/dist/contracts/test/TestInbox.js +4 -0
  161. package/dist/contracts/test/TestInbox.js.map +1 -0
  162. package/dist/contracts/test/TestMailbox.d.ts +158 -0
  163. package/dist/contracts/test/TestMailbox.d.ts.map +1 -0
  164. package/dist/contracts/test/TestMailbox.js +4 -0
  165. package/dist/contracts/test/TestMailbox.js.map +1 -0
  166. package/dist/contracts/test/TestMerkle.d.ts +87 -0
  167. package/dist/contracts/test/TestMerkle.d.ts.map +1 -0
  168. package/dist/contracts/test/TestMerkle.js +4 -0
  169. package/dist/contracts/test/TestMerkle.js.map +1 -0
  170. package/dist/contracts/test/TestMessage.d.ts +103 -0
  171. package/dist/contracts/test/TestMessage.d.ts.map +1 -0
  172. package/dist/contracts/test/TestMessage.js +4 -0
  173. package/dist/contracts/test/TestMessage.js.map +1 -0
  174. package/dist/contracts/test/TestMultisigValidatorManager.d.ts +247 -0
  175. package/dist/contracts/test/TestMultisigValidatorManager.d.ts.map +1 -0
  176. package/dist/contracts/test/TestMultisigValidatorManager.js +4 -0
  177. package/dist/contracts/test/TestMultisigValidatorManager.js.map +1 -0
  178. package/dist/contracts/test/TestOutbox.d.ts +371 -0
  179. package/dist/contracts/test/TestOutbox.d.ts.map +1 -0
  180. package/dist/contracts/test/TestOutbox.js +4 -0
  181. package/dist/contracts/test/TestOutbox.js.map +1 -0
  182. package/dist/contracts/test/TestRecipient.d.ts +131 -0
  183. package/dist/contracts/test/TestRecipient.d.ts.map +1 -0
  184. package/dist/contracts/test/TestRecipient.js +4 -0
  185. package/dist/contracts/test/TestRecipient.js.map +1 -0
  186. package/dist/contracts/test/TestSendReceiver.d.ts +78 -0
  187. package/dist/contracts/test/TestSendReceiver.d.ts.map +1 -0
  188. package/dist/contracts/test/TestSendReceiver.js +4 -0
  189. package/dist/contracts/test/TestSendReceiver.js.map +1 -0
  190. package/dist/contracts/test/TestValidatorManager.d.ts +58 -0
  191. package/dist/contracts/test/TestValidatorManager.d.ts.map +1 -0
  192. package/dist/contracts/test/TestValidatorManager.js +4 -0
  193. package/dist/contracts/test/TestValidatorManager.js.map +1 -0
  194. package/dist/contracts/test/bad-recipient/BadRecipient1.d.ts +43 -0
  195. package/dist/contracts/test/bad-recipient/BadRecipient1.d.ts.map +1 -0
  196. package/dist/contracts/test/bad-recipient/BadRecipient1.js +4 -0
  197. package/dist/contracts/test/bad-recipient/BadRecipient1.js.map +1 -0
  198. package/dist/contracts/test/bad-recipient/BadRecipient2.d.ts +43 -0
  199. package/dist/contracts/test/bad-recipient/BadRecipient2.d.ts.map +1 -0
  200. package/dist/contracts/test/bad-recipient/BadRecipient2.js +4 -0
  201. package/dist/contracts/test/bad-recipient/BadRecipient2.js.map +1 -0
  202. package/dist/contracts/test/bad-recipient/BadRecipient3.d.ts +43 -0
  203. package/dist/contracts/test/bad-recipient/BadRecipient3.d.ts.map +1 -0
  204. package/dist/contracts/test/bad-recipient/BadRecipient3.js +4 -0
  205. package/dist/contracts/test/bad-recipient/BadRecipient3.js.map +1 -0
  206. package/dist/contracts/test/bad-recipient/BadRecipient5.d.ts +43 -0
  207. package/dist/contracts/test/bad-recipient/BadRecipient5.d.ts.map +1 -0
  208. package/dist/contracts/test/bad-recipient/BadRecipient5.js +4 -0
  209. package/dist/contracts/test/bad-recipient/BadRecipient5.js.map +1 -0
  210. package/dist/contracts/test/bad-recipient/BadRecipient6.d.ts +43 -0
  211. package/dist/contracts/test/bad-recipient/BadRecipient6.d.ts.map +1 -0
  212. package/dist/contracts/test/bad-recipient/BadRecipient6.js +4 -0
  213. package/dist/contracts/test/bad-recipient/BadRecipient6.js.map +1 -0
  214. package/dist/contracts/test/bad-recipient/index.d.ts +6 -0
  215. package/dist/contracts/test/bad-recipient/index.d.ts.map +1 -0
  216. package/dist/contracts/test/bad-recipient/index.js +3 -0
  217. package/dist/contracts/test/bad-recipient/index.js.map +1 -0
  218. package/dist/contracts/test/index.d.ts +15 -0
  219. package/dist/contracts/test/index.d.ts.map +1 -0
  220. package/dist/contracts/test/index.js +4 -0
  221. package/dist/contracts/test/index.js.map +1 -0
  222. package/dist/contracts/upgrade/UpgradeBeacon.d.ts +40 -0
  223. package/dist/contracts/upgrade/UpgradeBeacon.d.ts.map +1 -0
  224. package/dist/contracts/upgrade/UpgradeBeacon.js +4 -0
  225. package/dist/contracts/upgrade/UpgradeBeacon.js.map +1 -0
  226. package/dist/contracts/upgrade/UpgradeBeaconController.d.ts +119 -0
  227. package/dist/contracts/upgrade/UpgradeBeaconController.d.ts.map +1 -0
  228. package/dist/contracts/upgrade/UpgradeBeaconController.js +4 -0
  229. package/dist/contracts/upgrade/UpgradeBeaconController.js.map +1 -0
  230. package/dist/contracts/upgrade/UpgradeBeaconProxy.d.ts +28 -0
  231. package/dist/contracts/upgrade/UpgradeBeaconProxy.d.ts.map +1 -0
  232. package/dist/contracts/upgrade/UpgradeBeaconProxy.js +4 -0
  233. package/dist/contracts/upgrade/UpgradeBeaconProxy.js.map +1 -0
  234. package/dist/contracts/upgrade/Versioned.d.ts +43 -0
  235. package/dist/contracts/upgrade/Versioned.d.ts.map +1 -0
  236. package/dist/contracts/upgrade/Versioned.js +4 -0
  237. package/dist/contracts/upgrade/Versioned.js.map +1 -0
  238. package/dist/contracts/upgrade/index.d.ts +5 -0
  239. package/dist/contracts/upgrade/index.d.ts.map +1 -0
  240. package/dist/contracts/upgrade/index.js +3 -0
  241. package/dist/contracts/upgrade/index.js.map +1 -0
  242. package/dist/contracts/validator-manager/InboxValidatorManager.d.ts +263 -0
  243. package/dist/contracts/validator-manager/InboxValidatorManager.d.ts.map +1 -0
  244. package/dist/contracts/validator-manager/InboxValidatorManager.js +4 -0
  245. package/dist/contracts/validator-manager/InboxValidatorManager.js.map +1 -0
  246. package/dist/contracts/validator-manager/MultisigValidatorManager.d.ts +239 -0
  247. package/dist/contracts/validator-manager/MultisigValidatorManager.d.ts.map +1 -0
  248. package/dist/contracts/validator-manager/MultisigValidatorManager.js +4 -0
  249. package/dist/contracts/validator-manager/MultisigValidatorManager.js.map +1 -0
  250. package/dist/contracts/validator-manager/OutboxValidatorManager.d.ts +335 -0
  251. package/dist/contracts/validator-manager/OutboxValidatorManager.d.ts.map +1 -0
  252. package/dist/contracts/validator-manager/OutboxValidatorManager.js +4 -0
  253. package/dist/contracts/validator-manager/OutboxValidatorManager.js.map +1 -0
  254. package/dist/contracts/validator-manager/index.d.ts +4 -0
  255. package/dist/contracts/validator-manager/index.d.ts.map +1 -0
  256. package/dist/contracts/validator-manager/index.js +3 -0
  257. package/dist/contracts/validator-manager/index.js.map +1 -0
  258. package/dist/factories/@openzeppelin/contracts/access/Ownable__factory.d.ts +43 -0
  259. package/dist/factories/@openzeppelin/contracts/access/Ownable__factory.d.ts.map +1 -0
  260. package/dist/factories/@openzeppelin/contracts/access/Ownable__factory.js +70 -0
  261. package/dist/factories/@openzeppelin/contracts/access/Ownable__factory.js.map +1 -0
  262. package/dist/factories/@openzeppelin/contracts/access/index.d.ts +2 -0
  263. package/dist/factories/@openzeppelin/contracts/access/index.d.ts.map +1 -0
  264. package/dist/factories/@openzeppelin/contracts/access/index.js +9 -0
  265. package/dist/factories/@openzeppelin/contracts/access/index.js.map +1 -0
  266. package/dist/factories/@openzeppelin/contracts/index.d.ts +2 -0
  267. package/dist/factories/@openzeppelin/contracts/index.d.ts.map +1 -0
  268. package/dist/factories/@openzeppelin/contracts/index.js +31 -0
  269. package/dist/factories/@openzeppelin/contracts/index.js.map +1 -0
  270. package/dist/factories/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable__factory.d.ts +43 -0
  271. package/dist/factories/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable__factory.d.ts.map +1 -0
  272. package/dist/factories/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable__factory.js +83 -0
  273. package/dist/factories/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable__factory.js.map +1 -0
  274. package/dist/factories/@openzeppelin/contracts-upgradeable/access/index.d.ts +2 -0
  275. package/dist/factories/@openzeppelin/contracts-upgradeable/access/index.d.ts.map +1 -0
  276. package/dist/factories/@openzeppelin/contracts-upgradeable/access/index.js +9 -0
  277. package/dist/factories/@openzeppelin/contracts-upgradeable/access/index.js.map +1 -0
  278. package/dist/factories/@openzeppelin/contracts-upgradeable/index.d.ts +5 -0
  279. package/dist/factories/@openzeppelin/contracts-upgradeable/index.d.ts.map +1 -0
  280. package/dist/factories/@openzeppelin/contracts-upgradeable/index.js +34 -0
  281. package/dist/factories/@openzeppelin/contracts-upgradeable/index.js.map +1 -0
  282. package/dist/factories/@openzeppelin/contracts-upgradeable/proxy/index.d.ts +2 -0
  283. package/dist/factories/@openzeppelin/contracts-upgradeable/proxy/index.d.ts.map +1 -0
  284. package/dist/factories/@openzeppelin/contracts-upgradeable/proxy/index.js +31 -0
  285. package/dist/factories/@openzeppelin/contracts-upgradeable/proxy/index.js.map +1 -0
  286. package/dist/factories/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable__factory.d.ts +19 -0
  287. package/dist/factories/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable__factory.d.ts.map +1 -0
  288. package/dist/factories/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable__factory.js +31 -0
  289. package/dist/factories/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable__factory.js.map +1 -0
  290. package/dist/factories/@openzeppelin/contracts-upgradeable/proxy/utils/index.d.ts +2 -0
  291. package/dist/factories/@openzeppelin/contracts-upgradeable/proxy/utils/index.d.ts.map +1 -0
  292. package/dist/factories/@openzeppelin/contracts-upgradeable/proxy/utils/index.js +9 -0
  293. package/dist/factories/@openzeppelin/contracts-upgradeable/proxy/utils/index.js.map +1 -0
  294. package/dist/factories/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable__factory.d.ts +19 -0
  295. package/dist/factories/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable__factory.d.ts.map +1 -0
  296. package/dist/factories/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable__factory.js +31 -0
  297. package/dist/factories/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable__factory.js.map +1 -0
  298. package/dist/factories/@openzeppelin/contracts-upgradeable/security/index.d.ts +2 -0
  299. package/dist/factories/@openzeppelin/contracts-upgradeable/security/index.d.ts.map +1 -0
  300. package/dist/factories/@openzeppelin/contracts-upgradeable/security/index.js +9 -0
  301. package/dist/factories/@openzeppelin/contracts-upgradeable/security/index.js.map +1 -0
  302. package/dist/factories/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable__factory.d.ts +19 -0
  303. package/dist/factories/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable__factory.d.ts.map +1 -0
  304. package/dist/factories/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable__factory.js +31 -0
  305. package/dist/factories/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable__factory.js.map +1 -0
  306. package/dist/factories/@openzeppelin/contracts-upgradeable/utils/index.d.ts +2 -0
  307. package/dist/factories/@openzeppelin/contracts-upgradeable/utils/index.d.ts.map +1 -0
  308. package/dist/factories/@openzeppelin/contracts-upgradeable/utils/index.js +9 -0
  309. package/dist/factories/@openzeppelin/contracts-upgradeable/utils/index.js.map +1 -0
  310. package/dist/factories/@openzeppelin/index.d.ts +3 -0
  311. package/dist/factories/@openzeppelin/index.d.ts.map +1 -0
  312. package/dist/factories/@openzeppelin/index.js +32 -0
  313. package/dist/factories/@openzeppelin/index.js.map +1 -0
  314. package/dist/factories/contracts/AbacusConnectionManager__factory.d.ts +55 -0
  315. package/dist/factories/contracts/AbacusConnectionManager__factory.d.ts.map +1 -0
  316. package/dist/factories/contracts/AbacusConnectionManager__factory.js +276 -0
  317. package/dist/factories/contracts/AbacusConnectionManager__factory.js.map +1 -0
  318. package/dist/factories/contracts/ConstAddressDeployer__factory.d.ts +55 -0
  319. package/dist/factories/contracts/ConstAddressDeployer__factory.d.ts.map +1 -0
  320. package/dist/factories/contracts/ConstAddressDeployer__factory.js +163 -0
  321. package/dist/factories/contracts/ConstAddressDeployer__factory.js.map +1 -0
  322. package/dist/factories/contracts/Create2Factory__factory.d.ts +55 -0
  323. package/dist/factories/contracts/Create2Factory__factory.d.ts.map +1 -0
  324. package/dist/factories/contracts/Create2Factory__factory.js +163 -0
  325. package/dist/factories/contracts/Create2Factory__factory.js.map +1 -0
  326. package/dist/factories/contracts/Inbox__factory.d.ts +59 -0
  327. package/dist/factories/contracts/Inbox__factory.d.ts.map +1 -0
  328. package/dist/factories/contracts/Inbox__factory.js +278 -0
  329. package/dist/factories/contracts/Inbox__factory.js.map +1 -0
  330. package/dist/factories/contracts/InterchainGasPaymaster__factory.d.ts +62 -0
  331. package/dist/factories/contracts/InterchainGasPaymaster__factory.d.ts.map +1 -0
  332. package/dist/factories/contracts/InterchainGasPaymaster__factory.js +173 -0
  333. package/dist/factories/contracts/InterchainGasPaymaster__factory.js.map +1 -0
  334. package/dist/factories/contracts/Mailbox__factory.d.ts +43 -0
  335. package/dist/factories/contracts/Mailbox__factory.d.ts.map +1 -0
  336. package/dist/factories/contracts/Mailbox__factory.js +135 -0
  337. package/dist/factories/contracts/Mailbox__factory.js.map +1 -0
  338. package/dist/factories/contracts/MerkleTreeManager__factory.d.ts +31 -0
  339. package/dist/factories/contracts/MerkleTreeManager__factory.d.ts.map +1 -0
  340. package/dist/factories/contracts/MerkleTreeManager__factory.js +67 -0
  341. package/dist/factories/contracts/MerkleTreeManager__factory.js.map +1 -0
  342. package/dist/factories/contracts/Outbox__factory.d.ts +59 -0
  343. package/dist/factories/contracts/Outbox__factory.d.ts.map +1 -0
  344. package/dist/factories/contracts/Outbox__factory.js +415 -0
  345. package/dist/factories/contracts/Outbox__factory.js.map +1 -0
  346. package/dist/factories/contracts/index.d.ts +12 -0
  347. package/dist/factories/contracts/index.d.ts.map +1 -0
  348. package/dist/factories/contracts/index.js +48 -0
  349. package/dist/factories/contracts/index.js.map +1 -0
  350. package/dist/factories/contracts/mock/MockInbox__factory.d.ts +31 -0
  351. package/dist/factories/contracts/mock/MockInbox__factory.d.ts.map +1 -0
  352. package/dist/factories/contracts/mock/MockInbox__factory.js +76 -0
  353. package/dist/factories/contracts/mock/MockInbox__factory.js.map +1 -0
  354. package/dist/factories/contracts/mock/MockOutbox__factory.d.ts +45 -0
  355. package/dist/factories/contracts/mock/MockOutbox__factory.d.ts.map +1 -0
  356. package/dist/factories/contracts/mock/MockOutbox__factory.js +86 -0
  357. package/dist/factories/contracts/mock/MockOutbox__factory.js.map +1 -0
  358. package/dist/factories/contracts/mock/index.d.ts +3 -0
  359. package/dist/factories/contracts/mock/index.d.ts.map +1 -0
  360. package/dist/factories/contracts/mock/index.js +11 -0
  361. package/dist/factories/contracts/mock/index.js.map +1 -0
  362. package/dist/factories/contracts/test/MysteryMathV1__factory.d.ts +41 -0
  363. package/dist/factories/contracts/test/MysteryMathV1__factory.d.ts.map +1 -0
  364. package/dist/factories/contracts/test/MysteryMathV1__factory.js +122 -0
  365. package/dist/factories/contracts/test/MysteryMathV1__factory.js.map +1 -0
  366. package/dist/factories/contracts/test/MysteryMathV2__factory.d.ts +41 -0
  367. package/dist/factories/contracts/test/MysteryMathV2__factory.d.ts.map +1 -0
  368. package/dist/factories/contracts/test/MysteryMathV2__factory.js +122 -0
  369. package/dist/factories/contracts/test/MysteryMathV2__factory.js.map +1 -0
  370. package/dist/factories/contracts/test/MysteryMath__factory.d.ts +23 -0
  371. package/dist/factories/contracts/test/MysteryMath__factory.d.ts.map +1 -0
  372. package/dist/factories/contracts/test/MysteryMath__factory.js +81 -0
  373. package/dist/factories/contracts/test/MysteryMath__factory.js.map +1 -0
  374. package/dist/factories/contracts/test/TestInbox__factory.d.ts +59 -0
  375. package/dist/factories/contracts/test/TestInbox__factory.d.ts.map +1 -0
  376. package/dist/factories/contracts/test/TestInbox__factory.js +371 -0
  377. package/dist/factories/contracts/test/TestInbox__factory.js.map +1 -0
  378. package/dist/factories/contracts/test/TestMailbox__factory.d.ts +66 -0
  379. package/dist/factories/contracts/test/TestMailbox__factory.d.ts.map +1 -0
  380. package/dist/factories/contracts/test/TestMailbox__factory.js +182 -0
  381. package/dist/factories/contracts/test/TestMailbox__factory.js.map +1 -0
  382. package/dist/factories/contracts/test/TestMerkle__factory.d.ts +41 -0
  383. package/dist/factories/contracts/test/TestMerkle__factory.d.ts.map +1 -0
  384. package/dist/factories/contracts/test/TestMerkle__factory.js +127 -0
  385. package/dist/factories/contracts/test/TestMerkle__factory.js.map +1 -0
  386. package/dist/factories/contracts/test/TestMessage__factory.d.ts +35 -0
  387. package/dist/factories/contracts/test/TestMessage__factory.d.ts.map +1 -0
  388. package/dist/factories/contracts/test/TestMessage__factory.js +179 -0
  389. package/dist/factories/contracts/test/TestMessage__factory.js.map +1 -0
  390. package/dist/factories/contracts/test/TestMultisigValidatorManager__factory.d.ts +59 -0
  391. package/dist/factories/contracts/test/TestMultisigValidatorManager__factory.d.ts.map +1 -0
  392. package/dist/factories/contracts/test/TestMultisigValidatorManager__factory.js +349 -0
  393. package/dist/factories/contracts/test/TestMultisigValidatorManager__factory.js.map +1 -0
  394. package/dist/factories/contracts/test/TestOutbox__factory.d.ts +59 -0
  395. package/dist/factories/contracts/test/TestOutbox__factory.d.ts.map +1 -0
  396. package/dist/factories/contracts/test/TestOutbox__factory.js +483 -0
  397. package/dist/factories/contracts/test/TestOutbox__factory.js.map +1 -0
  398. package/dist/factories/contracts/test/TestRecipient__factory.d.ts +55 -0
  399. package/dist/factories/contracts/test/TestRecipient__factory.d.ts.map +1 -0
  400. package/dist/factories/contracts/test/TestRecipient__factory.js +184 -0
  401. package/dist/factories/contracts/test/TestRecipient__factory.js.map +1 -0
  402. package/dist/factories/contracts/test/TestSendReceiver__factory.d.ts +44 -0
  403. package/dist/factories/contracts/test/TestSendReceiver__factory.d.ts.map +1 -0
  404. package/dist/factories/contracts/test/TestSendReceiver__factory.js +105 -0
  405. package/dist/factories/contracts/test/TestSendReceiver__factory.js.map +1 -0
  406. package/dist/factories/contracts/test/TestValidatorManager__factory.d.ts +31 -0
  407. package/dist/factories/contracts/test/TestValidatorManager__factory.d.ts.map +1 -0
  408. package/dist/factories/contracts/test/TestValidatorManager__factory.js +79 -0
  409. package/dist/factories/contracts/test/TestValidatorManager__factory.js.map +1 -0
  410. package/dist/factories/contracts/test/bad-recipient/BadRecipient1__factory.d.ts +31 -0
  411. package/dist/factories/contracts/test/bad-recipient/BadRecipient1__factory.d.ts.map +1 -0
  412. package/dist/factories/contracts/test/bad-recipient/BadRecipient1__factory.js +64 -0
  413. package/dist/factories/contracts/test/bad-recipient/BadRecipient1__factory.js.map +1 -0
  414. package/dist/factories/contracts/test/bad-recipient/BadRecipient2__factory.d.ts +31 -0
  415. package/dist/factories/contracts/test/bad-recipient/BadRecipient2__factory.d.ts.map +1 -0
  416. package/dist/factories/contracts/test/bad-recipient/BadRecipient2__factory.js +59 -0
  417. package/dist/factories/contracts/test/bad-recipient/BadRecipient2__factory.js.map +1 -0
  418. package/dist/factories/contracts/test/bad-recipient/BadRecipient3__factory.d.ts +31 -0
  419. package/dist/factories/contracts/test/bad-recipient/BadRecipient3__factory.d.ts.map +1 -0
  420. package/dist/factories/contracts/test/bad-recipient/BadRecipient3__factory.js +64 -0
  421. package/dist/factories/contracts/test/bad-recipient/BadRecipient3__factory.js.map +1 -0
  422. package/dist/factories/contracts/test/bad-recipient/BadRecipient5__factory.d.ts +31 -0
  423. package/dist/factories/contracts/test/bad-recipient/BadRecipient5__factory.d.ts.map +1 -0
  424. package/dist/factories/contracts/test/bad-recipient/BadRecipient5__factory.js +64 -0
  425. package/dist/factories/contracts/test/bad-recipient/BadRecipient5__factory.js.map +1 -0
  426. package/dist/factories/contracts/test/bad-recipient/BadRecipient6__factory.d.ts +31 -0
  427. package/dist/factories/contracts/test/bad-recipient/BadRecipient6__factory.d.ts.map +1 -0
  428. package/dist/factories/contracts/test/bad-recipient/BadRecipient6__factory.js +64 -0
  429. package/dist/factories/contracts/test/bad-recipient/BadRecipient6__factory.js.map +1 -0
  430. package/dist/factories/contracts/test/bad-recipient/index.d.ts +6 -0
  431. package/dist/factories/contracts/test/bad-recipient/index.d.ts.map +1 -0
  432. package/dist/factories/contracts/test/bad-recipient/index.js +17 -0
  433. package/dist/factories/contracts/test/bad-recipient/index.js.map +1 -0
  434. package/dist/factories/contracts/test/index.d.ts +14 -0
  435. package/dist/factories/contracts/test/index.d.ts.map +1 -0
  436. package/dist/factories/contracts/test/index.js +55 -0
  437. package/dist/factories/contracts/test/index.js.map +1 -0
  438. package/dist/factories/contracts/upgrade/UpgradeBeaconController__factory.d.ts +55 -0
  439. package/dist/factories/contracts/upgrade/UpgradeBeaconController__factory.d.ts.map +1 -0
  440. package/dist/factories/contracts/upgrade/UpgradeBeaconController__factory.js +130 -0
  441. package/dist/factories/contracts/upgrade/UpgradeBeaconController__factory.js.map +1 -0
  442. package/dist/factories/contracts/upgrade/UpgradeBeaconProxy__factory.d.ts +33 -0
  443. package/dist/factories/contracts/upgrade/UpgradeBeaconProxy__factory.d.ts.map +1 -0
  444. package/dist/factories/contracts/upgrade/UpgradeBeaconProxy__factory.js +65 -0
  445. package/dist/factories/contracts/upgrade/UpgradeBeaconProxy__factory.js.map +1 -0
  446. package/dist/factories/contracts/upgrade/UpgradeBeacon__factory.d.ts +48 -0
  447. package/dist/factories/contracts/upgrade/UpgradeBeacon__factory.d.ts.map +1 -0
  448. package/dist/factories/contracts/upgrade/UpgradeBeacon__factory.js +74 -0
  449. package/dist/factories/contracts/upgrade/UpgradeBeacon__factory.js.map +1 -0
  450. package/dist/factories/contracts/upgrade/Versioned__factory.d.ts +31 -0
  451. package/dist/factories/contracts/upgrade/Versioned__factory.d.ts.map +1 -0
  452. package/dist/factories/contracts/upgrade/Versioned__factory.js +54 -0
  453. package/dist/factories/contracts/upgrade/Versioned__factory.js.map +1 -0
  454. package/dist/factories/contracts/upgrade/index.d.ts +5 -0
  455. package/dist/factories/contracts/upgrade/index.d.ts.map +1 -0
  456. package/dist/factories/contracts/upgrade/index.js +15 -0
  457. package/dist/factories/contracts/upgrade/index.js.map +1 -0
  458. package/dist/factories/contracts/validator-manager/InboxValidatorManager__factory.d.ts +59 -0
  459. package/dist/factories/contracts/validator-manager/InboxValidatorManager__factory.d.ts.map +1 -0
  460. package/dist/factories/contracts/validator-manager/InboxValidatorManager__factory.js +373 -0
  461. package/dist/factories/contracts/validator-manager/InboxValidatorManager__factory.js.map +1 -0
  462. package/dist/factories/contracts/validator-manager/MultisigValidatorManager__factory.d.ts +36 -0
  463. package/dist/factories/contracts/validator-manager/MultisigValidatorManager__factory.d.ts.map +1 -0
  464. package/dist/factories/contracts/validator-manager/MultisigValidatorManager__factory.js +286 -0
  465. package/dist/factories/contracts/validator-manager/MultisigValidatorManager__factory.js.map +1 -0
  466. package/dist/factories/contracts/validator-manager/OutboxValidatorManager__factory.d.ts +59 -0
  467. package/dist/factories/contracts/validator-manager/OutboxValidatorManager__factory.d.ts.map +1 -0
  468. package/dist/factories/contracts/validator-manager/OutboxValidatorManager__factory.js +560 -0
  469. package/dist/factories/contracts/validator-manager/OutboxValidatorManager__factory.js.map +1 -0
  470. package/dist/factories/contracts/validator-manager/index.d.ts +4 -0
  471. package/dist/factories/contracts/validator-manager/index.d.ts.map +1 -0
  472. package/dist/factories/contracts/validator-manager/index.js +13 -0
  473. package/dist/factories/contracts/validator-manager/index.js.map +1 -0
  474. package/dist/factories/index.d.ts +4 -0
  475. package/dist/factories/index.d.ts.map +1 -0
  476. package/dist/factories/index.js +33 -0
  477. package/dist/factories/index.js.map +1 -0
  478. package/dist/factories/interfaces/IAbacusConnectionManager__factory.d.ts +23 -0
  479. package/dist/factories/interfaces/IAbacusConnectionManager__factory.d.ts.map +1 -0
  480. package/dist/factories/interfaces/IAbacusConnectionManager__factory.js +63 -0
  481. package/dist/factories/interfaces/IAbacusConnectionManager__factory.js.map +1 -0
  482. package/dist/factories/interfaces/IInbox__factory.d.ts +29 -0
  483. package/dist/factories/interfaces/IInbox__factory.d.ts.map +1 -0
  484. package/dist/factories/interfaces/IInbox__factory.js +90 -0
  485. package/dist/factories/interfaces/IInbox__factory.js.map +1 -0
  486. package/dist/factories/interfaces/IInterchainGasPaymaster__factory.d.ts +19 -0
  487. package/dist/factories/interfaces/IInterchainGasPaymaster__factory.d.ts.map +1 -0
  488. package/dist/factories/interfaces/IInterchainGasPaymaster__factory.js +41 -0
  489. package/dist/factories/interfaces/IInterchainGasPaymaster__factory.js.map +1 -0
  490. package/dist/factories/interfaces/IMailbox__factory.d.ts +19 -0
  491. package/dist/factories/interfaces/IMailbox__factory.d.ts.map +1 -0
  492. package/dist/factories/interfaces/IMailbox__factory.js +44 -0
  493. package/dist/factories/interfaces/IMailbox__factory.js.map +1 -0
  494. package/dist/factories/interfaces/IMessageRecipient__factory.d.ts +19 -0
  495. package/dist/factories/interfaces/IMessageRecipient__factory.d.ts.map +1 -0
  496. package/dist/factories/interfaces/IMessageRecipient__factory.js +41 -0
  497. package/dist/factories/interfaces/IMessageRecipient__factory.js.map +1 -0
  498. package/dist/factories/interfaces/IMultisigValidatorManager__factory.d.ts +19 -0
  499. package/dist/factories/interfaces/IMultisigValidatorManager__factory.d.ts.map +1 -0
  500. package/dist/factories/interfaces/IMultisigValidatorManager__factory.js +57 -0
  501. package/dist/factories/interfaces/IMultisigValidatorManager__factory.js.map +1 -0
  502. package/dist/factories/interfaces/IOutbox__factory.d.ts +23 -0
  503. package/dist/factories/interfaces/IOutbox__factory.d.ts.map +1 -0
  504. package/dist/factories/interfaces/IOutbox__factory.js +155 -0
  505. package/dist/factories/interfaces/IOutbox__factory.js.map +1 -0
  506. package/dist/factories/interfaces/index.d.ts +8 -0
  507. package/dist/factories/interfaces/index.d.ts.map +1 -0
  508. package/dist/factories/interfaces/index.js +21 -0
  509. package/dist/factories/interfaces/index.js.map +1 -0
  510. package/dist/index.d.ts +98 -0
  511. package/dist/index.d.ts.map +1 -0
  512. package/dist/index.js +119 -0
  513. package/dist/index.js.map +1 -0
  514. package/dist/interfaces/IAbacusConnectionManager.d.ts +59 -0
  515. package/dist/interfaces/IAbacusConnectionManager.d.ts.map +1 -0
  516. package/dist/interfaces/IAbacusConnectionManager.js +4 -0
  517. package/dist/interfaces/IAbacusConnectionManager.js.map +1 -0
  518. package/dist/interfaces/IInbox.d.ts +83 -0
  519. package/dist/interfaces/IInbox.d.ts.map +1 -0
  520. package/dist/interfaces/IInbox.js +4 -0
  521. package/dist/interfaces/IInbox.js.map +1 -0
  522. package/dist/interfaces/IInterchainGasPaymaster.d.ts +51 -0
  523. package/dist/interfaces/IInterchainGasPaymaster.d.ts.map +1 -0
  524. package/dist/interfaces/IInterchainGasPaymaster.js +4 -0
  525. package/dist/interfaces/IInterchainGasPaymaster.js.map +1 -0
  526. package/dist/interfaces/IMailbox.d.ts +51 -0
  527. package/dist/interfaces/IMailbox.d.ts.map +1 -0
  528. package/dist/interfaces/IMailbox.js +4 -0
  529. package/dist/interfaces/IMailbox.js.map +1 -0
  530. package/dist/interfaces/IMessageRecipient.d.ts +51 -0
  531. package/dist/interfaces/IMessageRecipient.d.ts.map +1 -0
  532. package/dist/interfaces/IMessageRecipient.js +4 -0
  533. package/dist/interfaces/IMessageRecipient.js.map +1 -0
  534. package/dist/interfaces/IMultisigValidatorManager.d.ts +59 -0
  535. package/dist/interfaces/IMultisigValidatorManager.d.ts.map +1 -0
  536. package/dist/interfaces/IMultisigValidatorManager.js +4 -0
  537. package/dist/interfaces/IMultisigValidatorManager.js.map +1 -0
  538. package/dist/interfaces/IOutbox.d.ts +148 -0
  539. package/dist/interfaces/IOutbox.d.ts.map +1 -0
  540. package/dist/interfaces/IOutbox.js +4 -0
  541. package/dist/interfaces/IOutbox.js.map +1 -0
  542. package/dist/interfaces/index.d.ts +8 -0
  543. package/dist/interfaces/index.d.ts.map +1 -0
  544. package/dist/interfaces/index.js +3 -0
  545. package/dist/interfaces/index.js.map +1 -0
  546. package/interfaces/IAbacusConnectionManager.sol +12 -0
  547. package/interfaces/IInbox.sol +16 -0
  548. package/interfaces/IInterchainGasPaymaster.sol +15 -0
  549. package/interfaces/IMailbox.sol +8 -0
  550. package/interfaces/IMessageRecipient.sol +10 -0
  551. package/interfaces/IMultisigValidatorManager.sol +11 -0
  552. package/interfaces/IOutbox.sol +27 -0
  553. package/package.json +53 -0
@@ -0,0 +1,22 @@
1
+ // SPDX-License-Identifier: MIT
2
+
3
+ pragma solidity >=0.8.0;
4
+
5
+ import "./MysteryMath.sol";
6
+
7
+ contract MysteryMathV2 is MysteryMath {
8
+ uint32 public immutable version;
9
+
10
+ constructor() {
11
+ version = 2;
12
+ }
13
+
14
+ function doMath(uint256 a, uint256 b)
15
+ external
16
+ pure
17
+ override
18
+ returns (uint256 _result)
19
+ {
20
+ _result = a * b;
21
+ }
22
+ }
@@ -0,0 +1,54 @@
1
+ // SPDX-License-Identifier: MIT OR Apache-2.0
2
+ pragma solidity >=0.8.0;
3
+
4
+ import "../Inbox.sol";
5
+
6
+ contract TestInbox is Inbox {
7
+ using Message for bytes32;
8
+ using TypeCasts for bytes32;
9
+
10
+ constructor(uint32 _localDomain) Inbox(_localDomain) {} // solhint-disable-line no-empty-blocks
11
+
12
+ function testBranchRoot(
13
+ bytes32 leaf,
14
+ bytes32[32] calldata proof,
15
+ uint256 index
16
+ ) external pure returns (bytes32) {
17
+ return MerkleLib.branchRoot(leaf, proof, index);
18
+ }
19
+
20
+ function testProcess(bytes calldata _message, uint256 leafIndex) external {
21
+ bytes32 _messageHash = keccak256(abi.encodePacked(_message, leafIndex));
22
+ _process(_message, _messageHash);
23
+ }
24
+
25
+ function testHandle(
26
+ uint32 origin,
27
+ bytes32 sender,
28
+ bytes32 recipient,
29
+ bytes calldata body
30
+ ) external {
31
+ IMessageRecipient(recipient.bytes32ToAddress()).handle(
32
+ origin,
33
+ sender,
34
+ body
35
+ );
36
+ }
37
+
38
+ function setMessageStatus(bytes32 _leaf, MessageStatus status) external {
39
+ messages[_leaf] = status;
40
+ }
41
+
42
+ function getRevertMsg(bytes calldata _res)
43
+ internal
44
+ pure
45
+ returns (string memory)
46
+ {
47
+ // If the _res length is less than 68, then the transaction failed
48
+ // silently (without a revert message)
49
+ if (_res.length < 68) return "Transaction reverted silently";
50
+
51
+ // Remove the selector (first 4 bytes) and decode revert string
52
+ return abi.decode(_res[4:], (string));
53
+ }
54
+ }
@@ -0,0 +1,12 @@
1
+ // SPDX-License-Identifier: MIT OR Apache-2.0
2
+ pragma solidity >=0.8.0;
3
+
4
+ import "../Mailbox.sol";
5
+
6
+ contract TestMailbox is Mailbox {
7
+ constructor(uint32 _localDomain) Mailbox(_localDomain) {}
8
+
9
+ function initialize(address _validatorManager) external initializer {
10
+ __Mailbox_initialize(_validatorManager);
11
+ }
12
+ }
@@ -0,0 +1,30 @@
1
+ // SPDX-License-Identifier: MIT OR Apache-2.0
2
+ pragma solidity >=0.8.0;
3
+
4
+ import "../MerkleTreeManager.sol";
5
+
6
+ contract TestMerkle is MerkleTreeManager {
7
+ using MerkleLib for MerkleLib.Tree;
8
+
9
+ // solhint-disable-next-line no-empty-blocks
10
+ constructor() MerkleTreeManager() {}
11
+
12
+ function insert(bytes32 _node) external {
13
+ tree.insert(_node);
14
+ }
15
+
16
+ function branchRoot(
17
+ bytes32 _leaf,
18
+ bytes32[32] calldata _proof,
19
+ uint256 _index
20
+ ) external pure returns (bytes32 _node) {
21
+ return MerkleLib.branchRoot(_leaf, _proof, _index);
22
+ }
23
+
24
+ /**
25
+ * @notice Returns the number of inserted leaves in the tree
26
+ */
27
+ function count() public view returns (uint256) {
28
+ return tree.count;
29
+ }
30
+ }
@@ -0,0 +1,64 @@
1
+ // SPDX-License-Identifier: MIT OR Apache-2.0
2
+ pragma solidity >=0.6.11;
3
+
4
+ import {Message} from "../libs/Message.sol";
5
+
6
+ contract TestMessage {
7
+ using Message for bytes;
8
+
9
+ function body(bytes calldata _message)
10
+ external
11
+ pure
12
+ returns (bytes calldata _body)
13
+ {
14
+ (, , , , _body) = _message.destructure();
15
+ }
16
+
17
+ function origin(bytes calldata _message)
18
+ external
19
+ pure
20
+ returns (uint32 _origin)
21
+ {
22
+ (_origin, , , , ) = _message.destructure();
23
+ }
24
+
25
+ function sender(bytes calldata _message)
26
+ external
27
+ pure
28
+ returns (bytes32 _sender)
29
+ {
30
+ (, _sender, , , ) = _message.destructure();
31
+ }
32
+
33
+ function destination(bytes calldata _message)
34
+ external
35
+ pure
36
+ returns (uint32 _destination)
37
+ {
38
+ (, , _destination, , ) = _message.destructure();
39
+ }
40
+
41
+ function recipient(bytes calldata _message)
42
+ external
43
+ pure
44
+ returns (bytes32 _recipient)
45
+ {
46
+ (, , , _recipient, ) = _message.destructure();
47
+ }
48
+
49
+ function recipientAddress(bytes calldata _message)
50
+ external
51
+ pure
52
+ returns (address _recipient)
53
+ {
54
+ (, , , _recipient, ) = _message.destructureAddresses();
55
+ }
56
+
57
+ function leaf(bytes calldata _message, uint256 _leafIndex)
58
+ external
59
+ pure
60
+ returns (bytes32)
61
+ {
62
+ return _message.leaf(_leafIndex);
63
+ }
64
+ }
@@ -0,0 +1,26 @@
1
+ // SPDX-License-Identifier: MIT OR Apache-2.0
2
+ pragma solidity >=0.8.0;
3
+
4
+ import {MultisigValidatorManager} from "../validator-manager/MultisigValidatorManager.sol";
5
+
6
+ /**
7
+ * This contract exists to test MultisigValidatorManager.sol, which is abstract
8
+ * and cannot be deployed directly.
9
+ */
10
+ contract TestMultisigValidatorManager is MultisigValidatorManager {
11
+ // solhint-disable-next-line no-empty-blocks
12
+ constructor(
13
+ uint32 _domain,
14
+ address[] memory _validators,
15
+ uint256 _threshold
16
+ ) MultisigValidatorManager(_domain, _validators, _threshold) {}
17
+
18
+ /**
19
+ * @notice Hash of domain concatenated with "ABACUS".
20
+ * @dev This is a public getter of _domainHash to test with.
21
+ * @param _domain The domain to hash.
22
+ */
23
+ function getDomainHash(uint32 _domain) external pure returns (bytes32) {
24
+ return _domainHash(_domain);
25
+ }
26
+ }
@@ -0,0 +1,46 @@
1
+ // SPDX-License-Identifier: MIT OR Apache-2.0
2
+ pragma solidity >=0.8.0;
3
+
4
+ // ============ Internal Imports ============
5
+ import "../Outbox.sol";
6
+ import {MerkleLib} from "../libs/Merkle.sol";
7
+
8
+ contract TestOutbox is Outbox {
9
+ constructor(uint32 _localDomain) Outbox(_localDomain) {} // solhint-disable-line no-empty-blocks
10
+
11
+ /**
12
+ * @notice Set the validator manager
13
+ * @param _validatorManager Address of the validator manager
14
+ */
15
+ function testSetValidatorManager(address _validatorManager) external {
16
+ validatorManager = _validatorManager;
17
+ }
18
+
19
+ function proof() external view returns (bytes32[32] memory) {
20
+ bytes32[32] memory _zeroes = MerkleLib.zeroHashes();
21
+ uint256 _index = tree.count - 1;
22
+ bytes32[32] memory _proof;
23
+
24
+ for (uint256 i = 0; i < 32; i++) {
25
+ uint256 _ithBit = (_index >> i) & 0x01;
26
+ if (_ithBit == 1) {
27
+ _proof[i] = tree.branch[i];
28
+ } else {
29
+ _proof[i] = _zeroes[i];
30
+ }
31
+ }
32
+ return _proof;
33
+ }
34
+
35
+ function branch() external view returns (bytes32[32] memory) {
36
+ return tree.branch;
37
+ }
38
+
39
+ function branchRoot(
40
+ bytes32 _item,
41
+ bytes32[32] memory _branch,
42
+ uint256 _index
43
+ ) external pure returns (bytes32) {
44
+ return MerkleLib.branchRoot(_item, _branch, _index);
45
+ }
46
+ }
@@ -0,0 +1,36 @@
1
+ // SPDX-License-Identifier: MIT OR Apache-2.0
2
+ pragma solidity >=0.8.0;
3
+
4
+ import {IMessageRecipient} from "../../interfaces/IMessageRecipient.sol";
5
+
6
+ contract TestRecipient is IMessageRecipient {
7
+ bytes32 public lastSender;
8
+ bytes public lastData;
9
+
10
+ address public lastCaller;
11
+ string public lastCallMessage;
12
+
13
+ event ReceivedMessage(
14
+ uint32 indexed origin,
15
+ bytes32 indexed sender,
16
+ string message
17
+ );
18
+
19
+ event ReceivedCall(address indexed caller, uint256 amount, string message);
20
+
21
+ function handle(
22
+ uint32 _origin,
23
+ bytes32 _sender,
24
+ bytes calldata _data
25
+ ) external override {
26
+ emit ReceivedMessage(_origin, _sender, string(_data));
27
+ lastSender = _sender;
28
+ lastData = _data;
29
+ }
30
+
31
+ function fooBar(uint256 amount, string calldata message) external {
32
+ emit ReceivedCall(msg.sender, amount, message);
33
+ lastCaller = msg.sender;
34
+ lastCallMessage = message;
35
+ }
36
+ }
@@ -0,0 +1,65 @@
1
+ // SPDX-License-Identifier: MIT OR Apache-2.0
2
+ pragma solidity >=0.8.0;
3
+
4
+ import {TypeCasts} from "../libs/TypeCasts.sol";
5
+
6
+ import {IInterchainGasPaymaster} from "../../interfaces/IInterchainGasPaymaster.sol";
7
+ import {IMessageRecipient} from "../../interfaces/IMessageRecipient.sol";
8
+ import {IOutbox} from "../../interfaces/IOutbox.sol";
9
+
10
+ contract TestSendReceiver is IMessageRecipient {
11
+ using TypeCasts for address;
12
+
13
+ event Handled(bytes32 blockHash);
14
+
15
+ function dispatchToSelf(
16
+ IOutbox _outbox,
17
+ IInterchainGasPaymaster _paymaster,
18
+ uint32 _destinationDomain,
19
+ bytes calldata _messageBody
20
+ ) external payable {
21
+ uint256 _leafIndex = _outbox.dispatch(
22
+ _destinationDomain,
23
+ address(this).addressToBytes32(),
24
+ _messageBody
25
+ );
26
+ uint256 _blockHashNum = uint256(previousBlockHash());
27
+ uint256 _value = msg.value;
28
+ if (_blockHashNum % 5 == 0) {
29
+ // Pay in two separate calls, resulting in 2 distinct events
30
+ uint256 _half = _value / 2;
31
+ _paymaster.payGasFor{value: _half}(
32
+ address(_outbox),
33
+ _leafIndex,
34
+ _destinationDomain
35
+ );
36
+ _paymaster.payGasFor{value: _value - _half}(
37
+ address(_outbox),
38
+ _leafIndex,
39
+ _destinationDomain
40
+ );
41
+ } else {
42
+ // Pay the entire msg.value in one call
43
+ _paymaster.payGasFor{value: _value}(
44
+ address(_outbox),
45
+ _leafIndex,
46
+ _destinationDomain
47
+ );
48
+ }
49
+ }
50
+
51
+ function handle(
52
+ uint32,
53
+ bytes32,
54
+ bytes calldata
55
+ ) external override {
56
+ bytes32 blockHash = previousBlockHash();
57
+ bool isBlockHashEven = uint256(blockHash) % 2 == 0;
58
+ require(isBlockHashEven, "block hash is odd");
59
+ emit Handled(blockHash);
60
+ }
61
+
62
+ function previousBlockHash() internal view returns (bytes32) {
63
+ return blockhash(block.number - 1);
64
+ }
65
+ }
@@ -0,0 +1,21 @@
1
+ // SPDX-License-Identifier: MIT OR Apache-2.0
2
+ pragma solidity >=0.8.0;
3
+
4
+ import {IInbox} from "../../interfaces/IInbox.sol";
5
+
6
+ /**
7
+ * Intended for testing Inbox.sol, which requires its validator manager
8
+ * to be a contract.
9
+ */
10
+ contract TestValidatorManager {
11
+ function process(
12
+ IInbox _inbox,
13
+ bytes32 _root,
14
+ uint256 _index,
15
+ bytes calldata _message,
16
+ bytes32[32] calldata _proof,
17
+ uint256 _leafIndex
18
+ ) external {
19
+ _inbox.process(_root, _index, _message, _proof, _leafIndex);
20
+ }
21
+ }
@@ -0,0 +1,16 @@
1
+ // SPDX-License-Identifier: MIT OR Apache-2.0
2
+ pragma solidity >=0.8.0;
3
+
4
+ import {IMessageRecipient} from "../../../interfaces/IMessageRecipient.sol";
5
+
6
+ contract BadRecipient1 is IMessageRecipient {
7
+ function handle(
8
+ uint32,
9
+ bytes32,
10
+ bytes calldata
11
+ ) external pure override {
12
+ assembly {
13
+ revert(0, 0)
14
+ }
15
+ }
16
+ }
@@ -0,0 +1,6 @@
1
+ // SPDX-License-Identifier: MIT OR Apache-2.0
2
+ pragma solidity >=0.8.0;
3
+
4
+ contract BadRecipient2 {
5
+ function handle(uint32, bytes32) external pure {} // solhint-disable-line no-empty-blocks
6
+ }
@@ -0,0 +1,17 @@
1
+ // SPDX-License-Identifier: MIT OR Apache-2.0
2
+ pragma solidity >=0.8.0;
3
+
4
+ import {IMessageRecipient} from "../../../interfaces/IMessageRecipient.sol";
5
+
6
+ contract BadRecipient3 is IMessageRecipient {
7
+ function handle(
8
+ uint32,
9
+ bytes32,
10
+ bytes calldata
11
+ ) external pure override {
12
+ assembly {
13
+ mstore(0, 0xabcdef)
14
+ revert(0, 32)
15
+ }
16
+ }
17
+ }
@@ -0,0 +1,14 @@
1
+ // SPDX-License-Identifier: MIT OR Apache-2.0
2
+ pragma solidity >=0.8.0;
3
+
4
+ import {IMessageRecipient} from "../../../interfaces/IMessageRecipient.sol";
5
+
6
+ contract BadRecipient5 is IMessageRecipient {
7
+ function handle(
8
+ uint32,
9
+ bytes32,
10
+ bytes calldata
11
+ ) external pure override {
12
+ require(false, "no can do");
13
+ }
14
+ }
@@ -0,0 +1,14 @@
1
+ // SPDX-License-Identifier: MIT OR Apache-2.0
2
+ pragma solidity >=0.8.0;
3
+
4
+ import {IMessageRecipient} from "../../../interfaces/IMessageRecipient.sol";
5
+
6
+ contract BadRecipient6 is IMessageRecipient {
7
+ function handle(
8
+ uint32,
9
+ bytes32,
10
+ bytes calldata
11
+ ) external pure override {
12
+ require(false); // solhint-disable-line reason-string
13
+ }
14
+ }
@@ -0,0 +1,98 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity >=0.8.0;
3
+
4
+ // ============ External Imports ============
5
+ import {Address} from "@openzeppelin/contracts/utils/Address.sol";
6
+
7
+ /**
8
+ * @title UpgradeBeacon
9
+ * @notice Stores the address of an implementation contract
10
+ * and allows a controller to upgrade the implementation address
11
+ * @dev This implementation combines the gas savings of having no function selectors
12
+ * found in 0age's implementation:
13
+ * https://github.com/dharma-eng/dharma-smart-wallet/blob/master/contracts/proxies/smart-wallet/UpgradeBeaconProxyV1.sol
14
+ * With the added niceties of a safety check that each implementation is a contract
15
+ * and an Upgrade event emitted each time the implementation is changed
16
+ * found in OpenZeppelin's implementation:
17
+ * https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/proxy/beacon/BeaconProxy.sol
18
+ */
19
+ contract UpgradeBeacon {
20
+ // ============ Immutables ============
21
+
22
+ // The controller is capable of modifying the implementation address
23
+ address private immutable controller;
24
+
25
+ // ============ Private Storage Variables ============
26
+
27
+ // The implementation address is held in storage slot zero.
28
+ address private implementation;
29
+
30
+ // ============ Events ============
31
+
32
+ // Upgrade event is emitted each time the implementation address is set
33
+ // (including deployment)
34
+ event Upgrade(address indexed implementation);
35
+
36
+ // ============ Constructor ============
37
+
38
+ /**
39
+ * @notice Validate the initial implementation and store it.
40
+ * Store the controller immutably.
41
+ * @param _initialImplementation Address of the initial implementation contract
42
+ * @param _controller Address of the controller who can upgrade the implementation
43
+ */
44
+ constructor(address _initialImplementation, address _controller) payable {
45
+ _setImplementation(_initialImplementation);
46
+ controller = _controller;
47
+ }
48
+
49
+ // ============ External Functions ============
50
+
51
+ /**
52
+ * @notice For all callers except the controller, return the current implementation address.
53
+ * If called by the Controller, update the implementation address
54
+ * to the address passed in the calldata.
55
+ * Note: this requires inline assembly because Solidity fallback functions
56
+ * do not natively take arguments or return values.
57
+ */
58
+ fallback() external payable {
59
+ if (msg.sender != controller) {
60
+ // if not called by the controller,
61
+ // load implementation address from storage slot zero
62
+ // and return it.
63
+ assembly {
64
+ mstore(0, sload(0))
65
+ return(0, 32)
66
+ }
67
+ } else {
68
+ // if called by the controller,
69
+ // load new implementation address from the first word of the calldata
70
+ address _newImplementation;
71
+ assembly {
72
+ _newImplementation := calldataload(0)
73
+ }
74
+ // set the new implementation
75
+ _setImplementation(_newImplementation);
76
+ }
77
+ }
78
+
79
+ // ============ Private Functions ============
80
+
81
+ /**
82
+ * @notice Perform checks on the new implementation address
83
+ * then upgrade the stored implementation.
84
+ * @param _newImplementation Address of the new implementation contract which will replace the old one
85
+ */
86
+ function _setImplementation(address _newImplementation) private {
87
+ // Require that the new implementation is different from the current one
88
+ require(implementation != _newImplementation, "!upgrade");
89
+ // Require that the new implementation is a contract
90
+ require(
91
+ Address.isContract(_newImplementation),
92
+ "implementation !contract"
93
+ );
94
+ // set the new implementation
95
+ implementation = _newImplementation;
96
+ emit Upgrade(_newImplementation);
97
+ }
98
+ }
@@ -0,0 +1,48 @@
1
+ // SPDX-License-Identifier: MIT OR Apache-2.0
2
+ pragma solidity >=0.8.0;
3
+
4
+ // ============ Internal Imports ============
5
+ import {UpgradeBeacon} from "./UpgradeBeacon.sol";
6
+ // ============ External Imports ============
7
+ import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";
8
+ import {Address} from "@openzeppelin/contracts/utils/Address.sol";
9
+
10
+ /**
11
+ * @title UpgradeBeaconController
12
+ * @notice Set as the controller of UpgradeBeacon contract(s),
13
+ * capable of changing their stored implementation address.
14
+ * @dev This implementation is a minimal version inspired by 0age's implementation:
15
+ * https://github.com/dharma-eng/dharma-smart-wallet/blob/master/contracts/upgradeability/DharmaUpgradeBeaconController.sol
16
+ */
17
+ contract UpgradeBeaconController is Ownable {
18
+ // ============ Events ============
19
+
20
+ event BeaconUpgraded(address indexed beacon, address implementation);
21
+
22
+ // ============ External Functions ============
23
+
24
+ /**
25
+ * @notice Modify the implementation stored in the UpgradeBeacon,
26
+ * which will upgrade the implementation used by all
27
+ * Proxy contracts using that UpgradeBeacon
28
+ * @param _beacon Address of the UpgradeBeacon which will be updated
29
+ * @param _implementation Address of the Implementation contract to upgrade the Beacon to
30
+ */
31
+ function upgrade(address _beacon, address _implementation)
32
+ external
33
+ onlyOwner
34
+ {
35
+ // Require that the beacon is a contract
36
+ require(Address.isContract(_beacon), "beacon !contract");
37
+ // Call into beacon and supply address of new implementation to update it.
38
+ (bool _success, ) = _beacon.call(abi.encode(_implementation));
39
+ // Revert with message on failure (i.e. if the beacon is somehow incorrect).
40
+ if (!_success) {
41
+ assembly {
42
+ returndatacopy(0, 0, returndatasize())
43
+ revert(0, returndatasize())
44
+ }
45
+ }
46
+ emit BeaconUpgraded(_beacon, _implementation);
47
+ }
48
+ }