@arbitrum/nitro-contracts 2.1.0 → 3.0.0-alpha.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (503) hide show
  1. package/build/contracts/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json +1 -1
  2. package/build/contracts/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.dbg.json +1 -1
  3. package/build/contracts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.dbg.json +1 -1
  4. package/build/contracts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.json +2 -2
  5. package/build/contracts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.dbg.json +1 -1
  6. package/build/contracts/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.dbg.json +1 -1
  7. package/build/contracts/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.dbg.json +1 -1
  8. package/build/contracts/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol/UpgradeableBeacon.dbg.json +1 -1
  9. package/build/contracts/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol/UpgradeableBeacon.json +2 -2
  10. package/build/contracts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.dbg.json +1 -1
  11. package/build/contracts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.json +2 -2
  12. package/build/contracts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.dbg.json +1 -1
  13. package/build/contracts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +2 -2
  14. package/build/contracts/@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol/UUPSUpgradeable.dbg.json +1 -1
  15. package/build/contracts/@openzeppelin/contracts/security/ReentrancyGuard.sol/ReentrancyGuard.dbg.json +1 -1
  16. package/build/contracts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json +1 -1
  17. package/build/contracts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json +2 -2
  18. package/build/contracts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json +1 -1
  19. package/build/contracts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json +1 -1
  20. package/build/contracts/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.dbg.json +4 -0
  21. package/build/contracts/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.json +86 -0
  22. package/build/contracts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.dbg.json +1 -1
  23. package/build/contracts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.json +2 -2
  24. package/build/contracts/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json +1 -1
  25. package/build/contracts/@openzeppelin/contracts/utils/Address.sol/Address.json +2 -2
  26. package/build/contracts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json +1 -1
  27. package/build/contracts/@openzeppelin/contracts/utils/Create2.sol/Create2.dbg.json +4 -0
  28. package/build/contracts/@openzeppelin/contracts/utils/Create2.sol/Create2.json +10 -0
  29. package/build/contracts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.dbg.json +1 -1
  30. package/build/contracts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.json +2 -2
  31. package/build/contracts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json +1 -1
  32. package/build/contracts/@openzeppelin/contracts/utils/Strings.sol/Strings.json +2 -2
  33. package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol/AccessControlUpgradeable.dbg.json +1 -1
  34. package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol/AccessControlUpgradeable.json +13 -0
  35. package/build/contracts/@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol/IAccessControlUpgradeable.dbg.json +1 -1
  36. package/build/contracts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.dbg.json +1 -1
  37. package/build/contracts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.json +13 -0
  38. package/build/contracts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.dbg.json +1 -1
  39. package/build/contracts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.json +15 -1
  40. package/build/contracts/@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol/PausableUpgradeable.dbg.json +1 -1
  41. package/build/contracts/@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol/PausableUpgradeable.json +13 -0
  42. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.dbg.json +1 -1
  43. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.json +2 -2
  44. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.dbg.json +1 -1
  45. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.json +15 -1
  46. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/Create2Upgradeable.sol/Create2Upgradeable.dbg.json +4 -0
  47. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/Create2Upgradeable.sol/Create2Upgradeable.json +10 -0
  48. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol/StorageSlotUpgradeable.dbg.json +1 -1
  49. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol/StorageSlotUpgradeable.json +2 -2
  50. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol/StringsUpgradeable.dbg.json +1 -1
  51. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol/StringsUpgradeable.json +2 -2
  52. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol/ERC165Upgradeable.dbg.json +1 -1
  53. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol/ERC165Upgradeable.json +13 -0
  54. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol/IERC165Upgradeable.dbg.json +1 -1
  55. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/structs/EnumerableSetUpgradeable.sol/EnumerableSetUpgradeable.dbg.json +4 -0
  56. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/structs/EnumerableSetUpgradeable.sol/EnumerableSetUpgradeable.json +10 -0
  57. package/build/contracts/src/assertionStakingPool/AbsBoldStakingPool.sol/AbsBoldStakingPool.dbg.json +4 -0
  58. package/build/contracts/{@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.json → src/assertionStakingPool/AbsBoldStakingPool.sol/AbsBoldStakingPool.json} +41 -95
  59. package/build/contracts/src/assertionStakingPool/AssertionStakingPool.sol/AssertionStakingPool.dbg.json +4 -0
  60. package/build/contracts/src/assertionStakingPool/AssertionStakingPool.sol/AssertionStakingPool.json +340 -0
  61. package/build/contracts/src/assertionStakingPool/AssertionStakingPoolCreator.sol/AssertionStakingPoolCreator.dbg.json +4 -0
  62. package/build/contracts/src/assertionStakingPool/AssertionStakingPoolCreator.sol/AssertionStakingPoolCreator.json +89 -0
  63. package/build/contracts/src/assertionStakingPool/EdgeStakingPool.sol/EdgeStakingPool.dbg.json +4 -0
  64. package/build/contracts/src/assertionStakingPool/EdgeStakingPool.sol/EdgeStakingPool.json +248 -0
  65. package/build/contracts/src/assertionStakingPool/EdgeStakingPoolCreator.sol/EdgeStakingPoolCreator.dbg.json +4 -0
  66. package/build/contracts/src/assertionStakingPool/EdgeStakingPoolCreator.sol/EdgeStakingPoolCreator.json +83 -0
  67. package/build/contracts/src/assertionStakingPool/StakingPoolCreatorUtils.sol/StakingPoolCreatorUtils.dbg.json +4 -0
  68. package/build/contracts/src/assertionStakingPool/StakingPoolCreatorUtils.sol/StakingPoolCreatorUtils.json +16 -0
  69. package/build/contracts/src/assertionStakingPool/interfaces/IAbsBoldStakingPool.sol/IAbsBoldStakingPool.dbg.json +4 -0
  70. package/build/contracts/src/assertionStakingPool/interfaces/IAbsBoldStakingPool.sol/IAbsBoldStakingPool.json +140 -0
  71. package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPool.sol/IAssertionStakingPool.dbg.json +4 -0
  72. package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPool.sol/IAssertionStakingPool.json +324 -0
  73. package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPoolCreator.sol/IAssertionStakingPoolCreator.dbg.json +4 -0
  74. package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPoolCreator.sol/IAssertionStakingPoolCreator.json +84 -0
  75. package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPool.sol/IEdgeStakingPool.dbg.json +4 -0
  76. package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPool.sol/IEdgeStakingPool.json +232 -0
  77. package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPoolCreator.sol/IEdgeStakingPoolCreator.dbg.json +4 -0
  78. package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPoolCreator.sol/IEdgeStakingPoolCreator.json +78 -0
  79. package/build/contracts/src/bridge/AbsBridge.sol/AbsBridge.dbg.json +1 -1
  80. package/build/contracts/src/bridge/AbsBridge.sol/AbsBridge.json +13 -0
  81. package/build/contracts/src/bridge/AbsInbox.sol/AbsInbox.dbg.json +1 -1
  82. package/build/contracts/src/bridge/AbsInbox.sol/AbsInbox.json +20 -7
  83. package/build/contracts/src/bridge/AbsOutbox.sol/AbsOutbox.dbg.json +1 -1
  84. package/build/contracts/src/bridge/Bridge.sol/Bridge.dbg.json +1 -1
  85. package/build/contracts/src/bridge/Bridge.sol/Bridge.json +15 -2
  86. package/build/contracts/src/bridge/DelayBuffer.sol/DelayBuffer.dbg.json +4 -0
  87. package/build/contracts/src/bridge/DelayBuffer.sol/DelayBuffer.json +24 -0
  88. package/build/contracts/src/bridge/ERC20Bridge.sol/ERC20Bridge.dbg.json +1 -1
  89. package/build/contracts/src/bridge/ERC20Bridge.sol/ERC20Bridge.json +15 -2
  90. package/build/contracts/src/bridge/ERC20Inbox.sol/ERC20Inbox.dbg.json +1 -1
  91. package/build/contracts/src/bridge/ERC20Inbox.sol/ERC20Inbox.json +22 -9
  92. package/build/contracts/src/bridge/ERC20Outbox.sol/ERC20Outbox.dbg.json +1 -1
  93. package/build/contracts/src/bridge/ERC20Outbox.sol/ERC20Outbox.json +2 -2
  94. package/build/contracts/src/bridge/GasRefunder.sol/GasRefunder.dbg.json +1 -1
  95. package/build/contracts/src/bridge/GasRefunder.sol/GasRefunder.json +2 -2
  96. package/build/contracts/src/bridge/IBridge.sol/IBridge.dbg.json +1 -1
  97. package/build/contracts/src/bridge/IDelayedMessageProvider.sol/IDelayedMessageProvider.dbg.json +1 -1
  98. package/build/contracts/src/bridge/IERC20Bridge.sol/IERC20Bridge.dbg.json +1 -1
  99. package/build/contracts/src/bridge/IERC20Inbox.sol/IERC20Inbox.dbg.json +1 -1
  100. package/build/contracts/src/bridge/IERC20Inbox.sol/IERC20Inbox.json +1 -1
  101. package/build/contracts/src/bridge/IEthBridge.sol/IEthBridge.dbg.json +1 -1
  102. package/build/contracts/src/bridge/IInbox.sol/IInbox.dbg.json +1 -1
  103. package/build/contracts/src/bridge/IInbox.sol/IInbox.json +1 -1
  104. package/build/contracts/src/bridge/IInboxBase.sol/IInboxBase.dbg.json +1 -1
  105. package/build/contracts/src/bridge/IInboxBase.sol/IInboxBase.json +1 -1
  106. package/build/contracts/src/bridge/IOutbox.sol/IOutbox.dbg.json +1 -1
  107. package/build/contracts/src/bridge/IOwnable.sol/IOwnable.dbg.json +1 -1
  108. package/build/contracts/src/bridge/ISequencerInbox.sol/ISequencerInbox.dbg.json +1 -1
  109. package/build/contracts/src/bridge/ISequencerInbox.sol/ISequencerInbox.json +441 -0
  110. package/build/contracts/src/bridge/Inbox.sol/Inbox.dbg.json +1 -1
  111. package/build/contracts/src/bridge/Inbox.sol/Inbox.json +22 -4
  112. package/build/contracts/src/bridge/Messages.sol/Messages.dbg.json +1 -1
  113. package/build/contracts/src/bridge/Messages.sol/Messages.json +2 -2
  114. package/build/contracts/src/bridge/Outbox.sol/Outbox.dbg.json +1 -1
  115. package/build/contracts/src/bridge/Outbox.sol/Outbox.json +2 -2
  116. package/build/contracts/src/bridge/SequencerInbox.sol/SequencerInbox.dbg.json +1 -1
  117. package/build/contracts/src/bridge/SequencerInbox.sol/SequencerInbox.json +564 -7
  118. package/build/contracts/src/chain/CacheManager.sol/CacheManager.dbg.json +1 -1
  119. package/build/contracts/src/chain/CacheManager.sol/CacheManager.json +15 -2
  120. package/build/contracts/src/challengeV2/EdgeChallengeManager.sol/EdgeChallengeManager.dbg.json +4 -0
  121. package/build/contracts/src/challengeV2/EdgeChallengeManager.sol/EdgeChallengeManager.json +1631 -0
  122. package/build/contracts/src/challengeV2/EdgeChallengeManager.sol/IEdgeChallengeManager.dbg.json +4 -0
  123. package/build/contracts/src/challengeV2/EdgeChallengeManager.sol/IEdgeChallengeManager.json +762 -0
  124. package/build/contracts/src/challengeV2/IAssertionChain.sol/IAssertionChain.dbg.json +4 -0
  125. package/build/contracts/src/challengeV2/IAssertionChain.sol/IAssertionChain.json +247 -0
  126. package/build/contracts/src/challengeV2/libraries/ArrayUtilsLib.sol/ArrayUtilsLib.dbg.json +4 -0
  127. package/build/contracts/src/challengeV2/libraries/ArrayUtilsLib.sol/ArrayUtilsLib.json +10 -0
  128. package/build/contracts/src/challengeV2/libraries/ChallengeEdgeLib.sol/ChallengeEdgeLib.dbg.json +4 -0
  129. package/build/contracts/src/challengeV2/libraries/ChallengeEdgeLib.sol/ChallengeEdgeLib.json +10 -0
  130. package/build/contracts/src/challengeV2/libraries/EdgeChallengeManagerLib.sol/EdgeChallengeManagerLib.dbg.json +4 -0
  131. package/build/contracts/src/challengeV2/libraries/EdgeChallengeManagerLib.sol/EdgeChallengeManagerLib.json +24 -0
  132. package/build/contracts/src/challengeV2/libraries/MerkleTreeAccumulatorLib.sol/MerkleTreeAccumulatorLib.dbg.json +4 -0
  133. package/build/contracts/src/challengeV2/libraries/MerkleTreeAccumulatorLib.sol/MerkleTreeAccumulatorLib.json +24 -0
  134. package/build/contracts/src/challengeV2/libraries/UintUtilsLib.sol/UintUtilsLib.dbg.json +4 -0
  135. package/build/contracts/src/challengeV2/libraries/UintUtilsLib.sol/UintUtilsLib.json +10 -0
  136. package/build/contracts/src/libraries/AddressAliasHelper.sol/AddressAliasHelper.dbg.json +1 -1
  137. package/build/contracts/src/libraries/AddressAliasHelper.sol/AddressAliasHelper.json +2 -2
  138. package/build/contracts/src/libraries/AdminFallbackProxy.sol/AdminFallbackProxy.dbg.json +1 -1
  139. package/build/contracts/src/libraries/AdminFallbackProxy.sol/AdminFallbackProxy.json +2 -2
  140. package/build/contracts/src/libraries/AdminFallbackProxy.sol/DoubleLogicERC1967Upgrade.dbg.json +1 -1
  141. package/build/contracts/src/libraries/ArbitrumChecker.sol/ArbitrumChecker.dbg.json +1 -1
  142. package/build/contracts/src/libraries/ArbitrumChecker.sol/ArbitrumChecker.json +2 -2
  143. package/build/contracts/src/libraries/CryptographyPrimitives.sol/CryptographyPrimitives.dbg.json +1 -1
  144. package/build/contracts/src/libraries/CryptographyPrimitives.sol/CryptographyPrimitives.json +2 -2
  145. package/build/contracts/src/libraries/DecimalsConverterHelper.sol/DecimalsConverterHelper.dbg.json +1 -1
  146. package/build/contracts/src/libraries/DecimalsConverterHelper.sol/DecimalsConverterHelper.json +2 -2
  147. package/build/contracts/src/libraries/DelegateCallAware.sol/DelegateCallAware.dbg.json +1 -1
  148. package/build/contracts/src/libraries/DoubleLogicUUPSUpgradeable.sol/DoubleLogicUUPSUpgradeable.dbg.json +1 -1
  149. package/build/contracts/src/libraries/GasRefundEnabled.sol/GasRefundEnabled.dbg.json +1 -1
  150. package/build/contracts/src/libraries/IGasRefunder.sol/IGasRefunder.dbg.json +1 -1
  151. package/build/contracts/src/libraries/IReader4844.sol/IReader4844.dbg.json +1 -1
  152. package/build/contracts/src/libraries/MerkleLib.sol/MerkleLib.dbg.json +1 -1
  153. package/build/contracts/src/libraries/MerkleLib.sol/MerkleLib.json +2 -2
  154. package/build/contracts/src/libraries/UUPSNotUpgradeable.sol/UUPSNotUpgradeable.dbg.json +1 -1
  155. package/build/contracts/src/mocks/Benchmarks.sol/Benchmarks.dbg.json +1 -1
  156. package/build/contracts/src/mocks/Benchmarks.sol/Benchmarks.json +2 -2
  157. package/build/contracts/src/mocks/BridgeStub.sol/BridgeStub.dbg.json +1 -1
  158. package/build/contracts/src/mocks/BridgeStub.sol/BridgeStub.json +8 -8
  159. package/build/contracts/src/mocks/BridgeUnproxied.sol/BridgeUnproxied.dbg.json +1 -1
  160. package/build/contracts/src/mocks/BridgeUnproxied.sol/BridgeUnproxied.json +28 -2
  161. package/build/contracts/src/mocks/InboxStub.sol/InboxStub.dbg.json +1 -1
  162. package/build/contracts/src/mocks/InboxStub.sol/InboxStub.json +2 -2
  163. package/build/contracts/src/mocks/MerkleTreeAccess.sol/MerkleTreeAccess.dbg.json +4 -0
  164. package/build/contracts/src/mocks/MerkleTreeAccess.sol/MerkleTreeAccess.json +227 -0
  165. package/build/contracts/src/mocks/MockRollupEventInbox.sol/MockRollupEventInbox.dbg.json +4 -0
  166. package/build/contracts/src/mocks/MockRollupEventInbox.sol/MockRollupEventInbox.json +133 -0
  167. package/build/contracts/src/mocks/MultiCallTest.sol/MultiCallTest.dbg.json +1 -1
  168. package/build/contracts/src/mocks/MultiCallTest.sol/MultiCallTest.json +2 -2
  169. package/build/contracts/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol/PendingBlkTimeAndNrAdvanceCheck.dbg.json +1 -1
  170. package/build/contracts/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol/PendingBlkTimeAndNrAdvanceCheck.json +2 -2
  171. package/build/contracts/src/mocks/Program.sol/ProgramTest.dbg.json +1 -1
  172. package/build/contracts/src/mocks/Program.sol/ProgramTest.json +2 -2
  173. package/build/contracts/src/mocks/ProxyAdminForBinding.sol/ProxyAdminForBinding.dbg.json +1 -1
  174. package/build/contracts/src/mocks/ProxyAdminForBinding.sol/ProxyAdminForBinding.json +2 -2
  175. package/build/contracts/src/mocks/SdkStorage.sol/SdkStorage.dbg.json +1 -1
  176. package/build/contracts/src/mocks/SdkStorage.sol/SdkStorage.json +2 -2
  177. package/build/contracts/src/mocks/SequencerInboxBlobMock.sol/SequencerInboxBlobMock.dbg.json +4 -0
  178. package/build/contracts/src/mocks/SequencerInboxBlobMock.sol/SequencerInboxBlobMock.json +1632 -0
  179. package/build/contracts/src/mocks/SequencerInboxStub.sol/SequencerInboxStub.dbg.json +1 -1
  180. package/build/contracts/src/mocks/SequencerInboxStub.sol/SequencerInboxStub.json +564 -7
  181. package/build/contracts/src/mocks/Simple.sol/Simple.dbg.json +1 -1
  182. package/build/contracts/src/mocks/Simple.sol/Simple.json +2 -2
  183. package/build/contracts/src/mocks/SimpleCacheManager.sol/SimpleCacheManager.dbg.json +1 -1
  184. package/build/contracts/src/mocks/SimpleCacheManager.sol/SimpleCacheManager.json +2 -2
  185. package/build/contracts/src/mocks/SimpleOneStepProofEntry.sol/SimpleOneStepProofEntry.dbg.json +4 -0
  186. package/build/contracts/src/mocks/SimpleOneStepProofEntry.sol/SimpleOneStepProofEntry.json +142 -0
  187. package/build/contracts/src/mocks/SimpleProxy.sol/SimpleProxy.dbg.json +1 -1
  188. package/build/contracts/src/mocks/SimpleProxy.sol/SimpleProxy.json +2 -2
  189. package/build/contracts/src/mocks/TestWETH9.sol/IWETH9.dbg.json +4 -0
  190. package/build/contracts/src/mocks/TestWETH9.sol/IWETH9.json +31 -0
  191. package/build/contracts/src/mocks/TestWETH9.sol/TestWETH9.dbg.json +4 -0
  192. package/build/contracts/src/mocks/TestWETH9.sol/TestWETH9.json +317 -0
  193. package/build/contracts/src/mocks/UpgradeExecutorMock.sol/UpgradeExecutorMock.dbg.json +1 -1
  194. package/build/contracts/src/mocks/UpgradeExecutorMock.sol/UpgradeExecutorMock.json +15 -2
  195. package/build/contracts/src/node-interface/NodeInterface.sol/NodeInterface.dbg.json +1 -1
  196. package/build/contracts/src/node-interface/NodeInterfaceDebug.sol/NodeInterfaceDebug.dbg.json +1 -1
  197. package/build/contracts/src/osp/HashProofHelper.sol/HashProofHelper.dbg.json +1 -1
  198. package/build/contracts/src/osp/HashProofHelper.sol/HashProofHelper.json +2 -2
  199. package/build/contracts/src/osp/IOneStepProofEntry.sol/IOneStepProofEntry.dbg.json +1 -1
  200. package/build/contracts/src/osp/IOneStepProofEntry.sol/IOneStepProofEntry.json +33 -9
  201. package/build/contracts/src/osp/IOneStepProofEntry.sol/OneStepProofEntryLib.dbg.json +1 -1
  202. package/build/contracts/src/osp/IOneStepProofEntry.sol/OneStepProofEntryLib.json +2 -2
  203. package/build/contracts/src/osp/IOneStepProver.sol/IOneStepProver.dbg.json +1 -1
  204. package/build/contracts/src/osp/IOneStepProver.sol/IOneStepProver.json +5 -0
  205. package/build/contracts/src/osp/OneStepProofEntry.sol/OneStepProofEntry.dbg.json +1 -1
  206. package/build/contracts/src/osp/OneStepProofEntry.sol/OneStepProofEntry.json +35 -11
  207. package/build/contracts/src/osp/OneStepProver0.sol/OneStepProver0.dbg.json +1 -1
  208. package/build/contracts/src/osp/OneStepProver0.sol/OneStepProver0.json +7 -2
  209. package/build/contracts/src/osp/OneStepProverHostIo.sol/OneStepProverHostIo.dbg.json +1 -1
  210. package/build/contracts/src/osp/OneStepProverHostIo.sol/OneStepProverHostIo.json +7 -2
  211. package/build/contracts/src/osp/OneStepProverMath.sol/OneStepProverMath.dbg.json +1 -1
  212. package/build/contracts/src/osp/OneStepProverMath.sol/OneStepProverMath.json +7 -2
  213. package/build/contracts/src/osp/OneStepProverMemory.sol/OneStepProverMemory.dbg.json +1 -1
  214. package/build/contracts/src/osp/OneStepProverMemory.sol/OneStepProverMemory.json +7 -2
  215. package/build/contracts/src/precompiles/ArbAddressTable.sol/ArbAddressTable.dbg.json +1 -1
  216. package/build/contracts/src/precompiles/ArbAggregator.sol/ArbAggregator.dbg.json +1 -1
  217. package/build/contracts/src/precompiles/ArbBLS.sol/ArbBLS.dbg.json +1 -1
  218. package/build/contracts/src/precompiles/ArbDebug.sol/ArbDebug.dbg.json +1 -1
  219. package/build/contracts/src/precompiles/ArbFunctionTable.sol/ArbFunctionTable.dbg.json +1 -1
  220. package/build/contracts/src/precompiles/ArbGasInfo.sol/ArbGasInfo.dbg.json +1 -1
  221. package/build/contracts/src/precompiles/ArbInfo.sol/ArbInfo.dbg.json +1 -1
  222. package/build/contracts/src/precompiles/ArbOwner.sol/ArbOwner.dbg.json +1 -1
  223. package/build/contracts/src/precompiles/ArbOwnerPublic.sol/ArbOwnerPublic.dbg.json +1 -1
  224. package/build/contracts/src/precompiles/ArbRetryableTx.sol/ArbRetryableTx.dbg.json +1 -1
  225. package/build/contracts/src/precompiles/ArbStatistics.sol/ArbStatistics.dbg.json +1 -1
  226. package/build/contracts/src/precompiles/ArbSys.sol/ArbSys.dbg.json +1 -1
  227. package/build/contracts/src/precompiles/ArbWasm.sol/ArbWasm.dbg.json +1 -1
  228. package/build/contracts/src/precompiles/ArbWasmCache.sol/ArbWasmCache.dbg.json +1 -1
  229. package/build/contracts/src/precompiles/ArbosActs.sol/ArbosActs.dbg.json +1 -1
  230. package/build/contracts/src/precompiles/ArbosTest.sol/ArbosTest.dbg.json +1 -1
  231. package/build/contracts/src/rollup/AbsRollupEventInbox.sol/AbsRollupEventInbox.dbg.json +1 -1
  232. package/build/contracts/src/rollup/Assertion.sol/AssertionNodeLib.dbg.json +4 -0
  233. package/build/contracts/src/rollup/{Node.sol/NodeLib.json → Assertion.sol/AssertionNodeLib.json} +4 -4
  234. package/build/contracts/src/rollup/AssertionState.sol/AssertionStateLib.dbg.json +4 -0
  235. package/build/contracts/src/{challenge/ChallengeLib.sol/ChallengeLib.json → rollup/AssertionState.sol/AssertionStateLib.json} +4 -4
  236. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/BOLDUpgradeAction.dbg.json +4 -0
  237. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/BOLDUpgradeAction.json +807 -0
  238. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ConstantArrayStorage.dbg.json +4 -0
  239. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ConstantArrayStorage.json +35 -0
  240. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollup.dbg.json +4 -0
  241. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollup.json +361 -0
  242. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollupAdmin.dbg.json +4 -0
  243. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollupAdmin.json +38 -0
  244. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ISeqInboxPostUpgradeInit.dbg.json +4 -0
  245. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ISeqInboxPostUpgradeInit.json +41 -0
  246. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/RollupReader.dbg.json +4 -0
  247. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/RollupReader.json +385 -0
  248. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/StateHashPreImageLookup.dbg.json +4 -0
  249. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/StateHashPreImageLookup.json +203 -0
  250. package/build/contracts/src/rollup/BridgeCreator.sol/BridgeCreator.dbg.json +1 -1
  251. package/build/contracts/src/rollup/BridgeCreator.sol/BridgeCreator.json +62 -10
  252. package/build/contracts/src/rollup/DeployHelper.sol/DeployHelper.dbg.json +1 -1
  253. package/build/contracts/src/rollup/DeployHelper.sol/DeployHelper.json +2 -2
  254. package/build/contracts/src/rollup/ERC20RollupEventInbox.sol/ERC20RollupEventInbox.dbg.json +1 -1
  255. package/build/contracts/src/rollup/ERC20RollupEventInbox.sol/ERC20RollupEventInbox.json +2 -2
  256. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/FactoryDeployerHelper.dbg.json +1 -1
  257. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/FactoryDeployerHelper.json +2 -2
  258. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IDeployHelper.dbg.json +1 -1
  259. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IERC20.dbg.json +1 -1
  260. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IERC20Bridge.dbg.json +1 -1
  261. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IInboxBase.dbg.json +1 -1
  262. package/build/contracts/src/rollup/IRollupAdmin.sol/IRollupAdmin.dbg.json +1 -1
  263. package/build/contracts/src/rollup/IRollupAdmin.sol/IRollupAdmin.json +473 -99
  264. package/build/contracts/src/rollup/IRollupCore.sol/IRollupCore.dbg.json +1 -1
  265. package/build/contracts/src/rollup/IRollupCore.sol/IRollupCore.json +315 -221
  266. package/build/contracts/src/rollup/IRollupEventInbox.sol/IRollupEventInbox.dbg.json +1 -1
  267. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUser.dbg.json +1 -1
  268. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUser.json +678 -499
  269. package/build/contracts/src/rollup/RollupAdminLogic.sol/RollupAdminLogic.dbg.json +1 -1
  270. package/build/contracts/src/rollup/RollupAdminLogic.sol/RollupAdminLogic.json +806 -435
  271. package/build/contracts/src/rollup/RollupCore.sol/RollupCore.dbg.json +1 -1
  272. package/build/contracts/src/rollup/RollupCore.sol/RollupCore.json +323 -235
  273. package/build/contracts/src/rollup/RollupCreator.sol/RollupCreator.dbg.json +1 -1
  274. package/build/contracts/src/rollup/RollupCreator.sol/RollupCreator.json +98 -36
  275. package/build/contracts/src/rollup/RollupEventInbox.sol/RollupEventInbox.dbg.json +1 -1
  276. package/build/contracts/src/rollup/RollupEventInbox.sol/RollupEventInbox.json +2 -2
  277. package/build/contracts/src/rollup/RollupLib.sol/RollupLib.dbg.json +1 -1
  278. package/build/contracts/src/rollup/RollupLib.sol/RollupLib.json +2 -2
  279. package/build/contracts/src/rollup/RollupProxy.sol/RollupProxy.dbg.json +1 -1
  280. package/build/contracts/src/rollup/RollupProxy.sol/RollupProxy.json +97 -16
  281. package/build/contracts/src/rollup/RollupUserLogic.sol/RollupUserLogic.dbg.json +1 -1
  282. package/build/contracts/src/rollup/RollupUserLogic.sol/RollupUserLogic.json +924 -535
  283. package/build/contracts/src/rollup/ValidatorWallet.sol/ValidatorWallet.dbg.json +1 -1
  284. package/build/contracts/src/rollup/ValidatorWallet.sol/ValidatorWallet.json +15 -43
  285. package/build/contracts/src/rollup/ValidatorWalletCreator.sol/ValidatorWalletCreator.dbg.json +1 -1
  286. package/build/contracts/src/rollup/ValidatorWalletCreator.sol/ValidatorWalletCreator.json +2 -2
  287. package/build/contracts/src/state/Deserialize.sol/Deserialize.dbg.json +1 -1
  288. package/build/contracts/src/state/Deserialize.sol/Deserialize.json +2 -2
  289. package/build/contracts/src/state/GlobalState.sol/GlobalStateLib.dbg.json +1 -1
  290. package/build/contracts/src/state/GlobalState.sol/GlobalStateLib.json +2 -2
  291. package/build/contracts/src/state/Instructions.sol/Instructions.dbg.json +1 -1
  292. package/build/contracts/src/state/Instructions.sol/Instructions.json +2 -2
  293. package/build/contracts/src/state/Machine.sol/MachineLib.dbg.json +1 -1
  294. package/build/contracts/src/state/Machine.sol/MachineLib.json +2 -2
  295. package/build/contracts/src/state/MerkleProof.sol/MerkleProofLib.dbg.json +1 -1
  296. package/build/contracts/src/state/MerkleProof.sol/MerkleProofLib.json +2 -2
  297. package/build/contracts/src/state/Module.sol/ModuleLib.dbg.json +1 -1
  298. package/build/contracts/src/state/Module.sol/ModuleLib.json +2 -2
  299. package/build/contracts/src/state/ModuleMemory.sol/ModuleMemoryLib.dbg.json +1 -1
  300. package/build/contracts/src/state/ModuleMemory.sol/ModuleMemoryLib.json +2 -2
  301. package/build/contracts/src/state/ModuleMemoryCompact.sol/ModuleMemoryCompactLib.dbg.json +1 -1
  302. package/build/contracts/src/state/ModuleMemoryCompact.sol/ModuleMemoryCompactLib.json +2 -2
  303. package/build/contracts/src/state/MultiStack.sol/MultiStackLib.dbg.json +1 -1
  304. package/build/contracts/src/state/MultiStack.sol/MultiStackLib.json +2 -2
  305. package/build/contracts/src/state/PcArray.sol/PcArrayLib.dbg.json +1 -1
  306. package/build/contracts/src/state/PcArray.sol/PcArrayLib.json +2 -2
  307. package/build/contracts/src/state/StackFrame.sol/StackFrameLib.dbg.json +1 -1
  308. package/build/contracts/src/state/StackFrame.sol/StackFrameLib.json +2 -2
  309. package/build/contracts/src/state/Value.sol/ValueLib.dbg.json +1 -1
  310. package/build/contracts/src/state/Value.sol/ValueLib.json +2 -2
  311. package/build/contracts/src/state/ValueArray.sol/ValueArrayLib.dbg.json +1 -1
  312. package/build/contracts/src/state/ValueArray.sol/ValueArrayLib.json +2 -2
  313. package/build/contracts/src/state/ValueStack.sol/ValueStackLib.dbg.json +1 -1
  314. package/build/contracts/src/state/ValueStack.sol/ValueStackLib.json +2 -2
  315. package/build/contracts/src/test-helpers/BridgeTester.sol/BridgeTester.dbg.json +1 -1
  316. package/build/contracts/src/test-helpers/BridgeTester.sol/BridgeTester.json +15 -2
  317. package/build/contracts/src/test-helpers/CryptographyPrimitivesTester.sol/CryptographyPrimitivesTester.dbg.json +1 -1
  318. package/build/contracts/src/test-helpers/CryptographyPrimitivesTester.sol/CryptographyPrimitivesTester.json +2 -2
  319. package/build/contracts/src/test-helpers/EthVault.sol/EthVault.dbg.json +1 -1
  320. package/build/contracts/src/test-helpers/EthVault.sol/EthVault.json +2 -2
  321. package/build/contracts/src/test-helpers/MessageTester.sol/MessageTester.dbg.json +1 -1
  322. package/build/contracts/src/test-helpers/MessageTester.sol/MessageTester.json +2 -2
  323. package/build/contracts/src/test-helpers/OutboxWithoutOptTester.sol/OutboxWithoutOptTester.dbg.json +1 -1
  324. package/build/contracts/src/test-helpers/OutboxWithoutOptTester.sol/OutboxWithoutOptTester.json +2 -2
  325. package/build/contracts/src/test-helpers/RollupMock.sol/RollupMock.dbg.json +1 -1
  326. package/build/contracts/src/test-helpers/RollupMock.sol/RollupMock.json +2 -15
  327. package/build/contracts/src/test-helpers/TestToken.sol/TestToken.dbg.json +1 -1
  328. package/build/contracts/src/test-helpers/TestToken.sol/TestToken.json +2 -2
  329. package/build/contracts/src/test-helpers/ValueArrayTester.sol/ValueArrayTester.dbg.json +1 -1
  330. package/build/contracts/src/test-helpers/ValueArrayTester.sol/ValueArrayTester.json +2 -2
  331. package/out/yul/Reader4844.yul/Reader4844.json +1 -1
  332. package/package.json +15 -5
  333. package/src/assertionStakingPool/AbsBoldStakingPool.sol +66 -0
  334. package/src/assertionStakingPool/AssertionStakingPool.sol +70 -0
  335. package/src/assertionStakingPool/AssertionStakingPoolCreator.sol +35 -0
  336. package/src/assertionStakingPool/EdgeStakingPool.sol +57 -0
  337. package/src/assertionStakingPool/EdgeStakingPoolCreator.sol +34 -0
  338. package/src/assertionStakingPool/StakingPoolCreatorUtils.sol +25 -0
  339. package/src/assertionStakingPool/interfaces/IAbsBoldStakingPool.sol +41 -0
  340. package/src/assertionStakingPool/interfaces/IAssertionStakingPool.sol +36 -0
  341. package/src/assertionStakingPool/interfaces/IAssertionStakingPoolCreator.sol +31 -0
  342. package/src/assertionStakingPool/interfaces/IEdgeStakingPool.sol +27 -0
  343. package/src/assertionStakingPool/interfaces/IEdgeStakingPoolCreator.sol +28 -0
  344. package/src/bridge/AbsBridge.sol +38 -48
  345. package/src/bridge/AbsInbox.sol +88 -97
  346. package/src/bridge/AbsOutbox.sol +23 -37
  347. package/src/bridge/Bridge.sol +6 -4
  348. package/src/bridge/DelayBuffer.sol +123 -0
  349. package/src/bridge/DelayBufferTypes.sol +38 -0
  350. package/src/bridge/ERC20Bridge.sol +8 -4
  351. package/src/bridge/ERC20Inbox.sol +46 -53
  352. package/src/bridge/ERC20Outbox.sol +7 -3
  353. package/src/bridge/GasRefunder.sol +38 -24
  354. package/src/bridge/IBridge.sol +30 -21
  355. package/src/bridge/IERC20Bridge.sol +1 -1
  356. package/src/bridge/IERC20Inbox.sol +4 -2
  357. package/src/bridge/IEthBridge.sol +4 -2
  358. package/src/bridge/IInbox.sol +4 -2
  359. package/src/bridge/IInboxBase.sol +17 -13
  360. package/src/bridge/IOutbox.sol +13 -8
  361. package/src/bridge/ISequencerInbox.sol +118 -13
  362. package/src/bridge/Inbox.sol +131 -151
  363. package/src/bridge/Messages.sol +48 -18
  364. package/src/bridge/Outbox.sol +6 -2
  365. package/src/bridge/SequencerInbox.sol +339 -274
  366. package/src/chain/CacheManager.sol +49 -18
  367. package/src/challengeV2/EdgeChallengeManager.sol +783 -0
  368. package/src/challengeV2/IAssertionChain.sol +39 -0
  369. package/src/challengeV2/libraries/ArrayUtilsLib.sol +61 -0
  370. package/src/challengeV2/libraries/ChallengeEdgeLib.sol +333 -0
  371. package/src/challengeV2/libraries/ChallengeErrors.sol +108 -0
  372. package/src/challengeV2/libraries/EdgeChallengeManagerLib.sol +930 -0
  373. package/src/challengeV2/libraries/Enums.sol +26 -0
  374. package/src/challengeV2/libraries/MerkleTreeAccumulatorLib.sol +390 -0
  375. package/src/challengeV2/libraries/UintUtilsLib.sol +74 -0
  376. package/src/libraries/AddressAliasHelper.sol +6 -2
  377. package/src/libraries/AdminFallbackProxy.sol +8 -4
  378. package/src/libraries/ArbitrumChecker.sol +3 -4
  379. package/src/libraries/CryptographyPrimitives.sol +39 -46
  380. package/src/libraries/DecimalsConverterHelper.sol +2 -4
  381. package/src/libraries/DoubleLogicUUPSUpgradeable.sol +10 -7
  382. package/src/libraries/Error.sol +18 -3
  383. package/src/libraries/GasRefundEnabled.sol +3 -4
  384. package/src/libraries/MerkleLib.sol +6 -5
  385. package/src/libraries/UUPSNotUpgradeable.sol +2 -4
  386. package/src/mocks/BridgeStub.sol +50 -48
  387. package/src/mocks/BridgeUnproxied.sol +2 -0
  388. package/src/mocks/InboxStub.sol +22 -17
  389. package/src/mocks/MerkleTreeAccess.sol +72 -0
  390. package/src/mocks/MockRollupEventInbox.sol +59 -0
  391. package/src/mocks/MultiCallTest.sol +3 -1
  392. package/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol +3 -1
  393. package/src/mocks/Program.sol +9 -7
  394. package/src/mocks/SequencerInboxBlobMock.sol +38 -0
  395. package/src/mocks/SequencerInboxStub.sol +9 -12
  396. package/src/mocks/Simple.sol +13 -25
  397. package/src/mocks/SimpleCacheManager.sol +10 -3
  398. package/src/mocks/SimpleOneStepProofEntry.sol +60 -0
  399. package/src/mocks/SimpleProxy.sol +3 -1
  400. package/src/mocks/TestWETH9.sol +30 -0
  401. package/src/mocks/UpgradeExecutorMock.sol +10 -17
  402. package/src/node-interface/NodeInterface.sol +23 -22
  403. package/src/node-interface/NodeInterfaceDebug.sol +5 -3
  404. package/src/osp/HashProofHelper.sol +9 -10
  405. package/src/osp/IOneStepProofEntry.sol +14 -9
  406. package/src/osp/IOneStepProver.sol +1 -0
  407. package/src/osp/OneStepProofEntry.sol +63 -54
  408. package/src/osp/OneStepProver0.sol +14 -27
  409. package/src/osp/OneStepProverHostIo.sol +31 -58
  410. package/src/osp/OneStepProverMath.sol +15 -23
  411. package/src/osp/OneStepProverMemory.sol +9 -23
  412. package/src/precompiles/ArbAddressTable.sol +19 -9
  413. package/src/precompiles/ArbAggregator.sol +12 -4
  414. package/src/precompiles/ArbBLS.sol +1 -3
  415. package/src/precompiles/ArbDebug.sol +5 -11
  416. package/src/precompiles/ArbFunctionTable.sol +7 -10
  417. package/src/precompiles/ArbGasInfo.sol +9 -43
  418. package/src/precompiles/ArbInfo.sol +6 -2
  419. package/src/precompiles/ArbOwner.sol +101 -34
  420. package/src/precompiles/ArbOwnerPublic.sol +6 -2
  421. package/src/precompiles/ArbRetryableTx.sol +15 -5
  422. package/src/precompiles/ArbStatistics.sol +1 -8
  423. package/src/precompiles/ArbSys.sol +16 -18
  424. package/src/precompiles/ArbWasm.sol +24 -14
  425. package/src/precompiles/ArbWasmCache.sol +15 -5
  426. package/src/precompiles/ArbosTest.sol +3 -1
  427. package/src/rollup/AbsRollupEventInbox.sol +15 -16
  428. package/src/rollup/Assertion.sol +100 -0
  429. package/src/rollup/AssertionState.sol +29 -0
  430. package/src/rollup/BOLDUpgradeAction.sol +631 -0
  431. package/src/rollup/BridgeCreator.sol +42 -15
  432. package/src/rollup/Config.sol +15 -7
  433. package/src/rollup/DeployHelper.sol +12 -31
  434. package/src/rollup/ERC20RollupEventInbox.sol +8 -9
  435. package/src/rollup/FactoryDeployerHelper.sol +8 -10
  436. package/src/rollup/IRollupAdmin.sol +127 -45
  437. package/src/rollup/IRollupCore.sol +64 -84
  438. package/src/rollup/IRollupEventInbox.sol +3 -1
  439. package/src/rollup/IRollupLogic.sol +35 -72
  440. package/src/rollup/RollupAdminLogic.sol +224 -203
  441. package/src/rollup/RollupCore.sol +407 -428
  442. package/src/rollup/RollupCreator.sol +88 -75
  443. package/src/rollup/RollupEventInbox.sol +7 -7
  444. package/src/rollup/RollupLib.sol +50 -86
  445. package/src/rollup/RollupProxy.sol +8 -12
  446. package/src/rollup/RollupUserLogic.sol +279 -644
  447. package/src/rollup/ValidatorUtils.sol +0 -242
  448. package/src/rollup/ValidatorWallet.sol +22 -38
  449. package/src/rollup/ValidatorWalletCreator.sol +8 -8
  450. package/src/state/Deserialize.sol +74 -96
  451. package/src/state/GlobalState.sol +74 -20
  452. package/src/state/Instructions.sol +4 -3
  453. package/src/state/Machine.sol +18 -19
  454. package/src/state/Module.sol +14 -13
  455. package/src/state/ModuleMemory.sol +6 -25
  456. package/src/state/ModuleMemoryCompact.sol +3 -1
  457. package/src/state/MultiStack.sol +16 -20
  458. package/src/state/PcArray.sol +7 -7
  459. package/src/state/StackFrame.sol +21 -14
  460. package/src/state/Value.sol +18 -6
  461. package/src/state/ValueArray.sol +7 -7
  462. package/src/state/ValueStack.sol +9 -3
  463. package/src/test-helpers/BridgeTester.sol +32 -42
  464. package/src/test-helpers/CryptographyPrimitivesTester.sol +12 -13
  465. package/src/test-helpers/EthVault.sol +4 -2
  466. package/src/test-helpers/InterfaceCompatibilityTester.sol +1 -1
  467. package/src/test-helpers/MessageTester.sol +3 -10
  468. package/src/test-helpers/OutboxWithoutOptTester.sol +12 -19
  469. package/src/test-helpers/RollupMock.sol +3 -7
  470. package/src/test-helpers/TestToken.sol +4 -2
  471. package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.dbg.json +0 -4
  472. package/build/contracts/src/challenge/ChallengeLib.sol/ChallengeLib.dbg.json +0 -4
  473. package/build/contracts/src/challenge/ChallengeManager.sol/ChallengeManager.dbg.json +0 -4
  474. package/build/contracts/src/challenge/ChallengeManager.sol/ChallengeManager.json +0 -746
  475. package/build/contracts/src/challenge/IChallengeManager.sol/IChallengeManager.dbg.json +0 -4
  476. package/build/contracts/src/challenge/IChallengeManager.sol/IChallengeManager.json +0 -441
  477. package/build/contracts/src/challenge/IChallengeResultReceiver.sol/IChallengeResultReceiver.dbg.json +0 -4
  478. package/build/contracts/src/challenge/IChallengeResultReceiver.sol/IChallengeResultReceiver.json +0 -34
  479. package/build/contracts/src/mocks/MockResultReceiver.sol/MockResultReceiver.dbg.json +0 -4
  480. package/build/contracts/src/mocks/MockResultReceiver.sol/MockResultReceiver.json +0 -188
  481. package/build/contracts/src/mocks/SingleExecutionChallenge.sol/SingleExecutionChallenge.dbg.json +0 -4
  482. package/build/contracts/src/mocks/SingleExecutionChallenge.sol/SingleExecutionChallenge.json +0 -797
  483. package/build/contracts/src/mocks/TimedOutChallengeManager.sol/TimedOutChallengeManager.dbg.json +0 -4
  484. package/build/contracts/src/mocks/TimedOutChallengeManager.sol/TimedOutChallengeManager.json +0 -746
  485. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserAbs.dbg.json +0 -4
  486. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserAbs.json +0 -1332
  487. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserERC20.dbg.json +0 -4
  488. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserERC20.json +0 -1466
  489. package/build/contracts/src/rollup/Node.sol/NodeLib.dbg.json +0 -4
  490. package/build/contracts/src/rollup/RollupUserLogic.sol/AbsRollupUserLogic.dbg.json +0 -4
  491. package/build/contracts/src/rollup/RollupUserLogic.sol/AbsRollupUserLogic.json +0 -1614
  492. package/build/contracts/src/rollup/RollupUserLogic.sol/ERC20RollupUserLogic.dbg.json +0 -4
  493. package/build/contracts/src/rollup/RollupUserLogic.sol/ERC20RollupUserLogic.json +0 -1748
  494. package/build/contracts/src/rollup/ValidatorUtils.sol/ValidatorUtils.dbg.json +0 -4
  495. package/build/contracts/src/rollup/ValidatorUtils.sol/ValidatorUtils.json +0 -379
  496. package/src/challenge/ChallengeLib.sol +0 -88
  497. package/src/challenge/ChallengeManager.sol +0 -375
  498. package/src/challenge/IChallengeManager.sol +0 -86
  499. package/src/challenge/IChallengeResultReceiver.sol +0 -13
  500. package/src/mocks/MockResultReceiver.sol +0 -59
  501. package/src/mocks/SingleExecutionChallenge.sol +0 -41
  502. package/src/mocks/TimedOutChallengeManager.sol +0 -13
  503. package/src/rollup/Node.sol +0 -113
@@ -39,19 +39,6 @@
39
39
  "stateMutability": "view",
40
40
  "type": "function"
41
41
  },
42
- {
43
- "inputs": [
44
- {
45
- "internalType": "uint256",
46
- "name": "",
47
- "type": "uint256"
48
- }
49
- ],
50
- "name": "removeOldZombies",
51
- "outputs": [],
52
- "stateMutability": "nonpayable",
53
- "type": "function"
54
- },
55
42
  {
56
43
  "inputs": [],
57
44
  "name": "withdrawStakerFunds",
@@ -66,8 +53,8 @@
66
53
  "type": "function"
67
54
  }
68
55
  ],
69
- "bytecode": "0x608060405234801561001057600080fd5b506040516101e03803806101e083398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b61014d806100936000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806361373919146100465780638da5cb5b14610061578063edfd03ed1461008c575b600080fd5b61004e6100a1565b6040519081526020015b60405180910390f35b600054610074906001600160a01b031681565b6040516001600160a01b039091168152602001610058565b61009f61009a3660046100fe565b6100d2565b005b6040516000907f1c09fbbf7cfd024f5e4e5472dd87afd5d67ee5db6a0ca715bf508d96abce309f908290a150600090565b6040517fb774f793432a37585a7638b9afe49e91c478887a2c0fef32877508bf2f76429d90600090a150565b60006020828403121561011057600080fd5b503591905056fea26469706673582212204e821be1d241b8183557b117343b4ab5c37e83c4432dfbee2e117cf0bc35325d64736f6c63430008090033",
70
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c806361373919146100465780638da5cb5b14610061578063edfd03ed1461008c575b600080fd5b61004e6100a1565b6040519081526020015b60405180910390f35b600054610074906001600160a01b031681565b6040516001600160a01b039091168152602001610058565b61009f61009a3660046100fe565b6100d2565b005b6040516000907f1c09fbbf7cfd024f5e4e5472dd87afd5d67ee5db6a0ca715bf508d96abce309f908290a150600090565b6040517fb774f793432a37585a7638b9afe49e91c478887a2c0fef32877508bf2f76429d90600090a150565b60006020828403121561011057600080fd5b503591905056fea26469706673582212204e821be1d241b8183557b117343b4ab5c37e83c4432dfbee2e117cf0bc35325d64736f6c63430008090033",
56
+ "bytecode": "0x608060405234801561001057600080fd5b5060405161018c38038061018c83398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b60fa806100926000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c8063613739191460375780638da5cb5b146050575b600080fd5b603d6093565b6040519081526020015b60405180910390f35b600054606f9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016047565b6040516000907f1c09fbbf7cfd024f5e4e5472dd87afd5d67ee5db6a0ca715bf508d96abce309f908290a15060009056fea2646970667358221220f4b1513ca5abf58d293f601c58e29463b3b3e2f59fa61564b295a0478b004c5864736f6c63430008110033",
57
+ "deployedBytecode": "0x6080604052348015600f57600080fd5b506004361060325760003560e01c8063613739191460375780638da5cb5b146050575b600080fd5b603d6093565b6040519081526020015b60405180910390f35b600054606f9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016047565b6040516000907f1c09fbbf7cfd024f5e4e5472dd87afd5d67ee5db6a0ca715bf508d96abce309f908290a15060009056fea2646970667358221220f4b1513ca5abf58d293f601c58e29463b3b3e2f59fa61564b295a0478b004c5864736f6c63430008110033",
71
58
  "linkReferences": {},
72
59
  "deployedLinkReferences": {}
73
60
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/9ec5aeba34e8f7c0c281e147a2954d13.json"
3
+ "buildInfo": "../../../build-info/28754c4998b67fc9c9d6d849262cf39e.json"
4
4
  }
@@ -285,8 +285,8 @@
285
285
  "type": "function"
286
286
  }
287
287
  ],
288
- "bytecode": "0x60806040523480156200001157600080fd5b5060405162000b8838038062000b8883398101604081905262000034916200023f565b60408051808201825260098152682a32b9ba2a37b5b2b760b91b602080830191825283518085019094526002845261151560f21b9084015281519192916200007f9160039162000199565b5080516200009590600490602084019062000199565b505050620000aa3382620000b160201b60201c565b50620002bd565b6001600160a01b0382166200010c5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b806002600082825462000120919062000259565b90915550506001600160a01b038216600090815260208190526040812080548392906200014f90849062000259565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b828054620001a79062000280565b90600052602060002090601f016020900481019282620001cb576000855562000216565b82601f10620001e657805160ff191683800117855562000216565b8280016001018555821562000216579182015b8281111562000216578251825591602001919060010190620001f9565b506200022492915062000228565b5090565b5b8082111562000224576000815560010162000229565b6000602082840312156200025257600080fd5b5051919050565b600082198211156200027b57634e487b7160e01b600052601160045260246000fd5b500190565b600181811c908216806200029557607f821691505b60208210811415620002b757634e487b7160e01b600052602260045260246000fd5b50919050565b6108bb80620002cd6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461012357806370a082311461013657806395d89b411461015f578063a457c2d714610167578063a9059cbb1461017a578063dd62ed3e1461018d57600080fd5b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100ef57806323b872dd14610101578063313ce56714610114575b600080fd5b6100b66101a0565b6040516100c391906106f8565b60405180910390f35b6100df6100da366004610769565b610232565b60405190151581526020016100c3565b6002545b6040519081526020016100c3565b6100df61010f366004610793565b61024a565b604051601281526020016100c3565b6100df610131366004610769565b61026e565b6100f36101443660046107cf565b6001600160a01b031660009081526020819052604090205490565b6100b66102ad565b6100df610175366004610769565b6102bc565b6100df610188366004610769565b610353565b6100f361019b3660046107f1565b610361565b6060600380546101af90610824565b80601f01602080910402602001604051908101604052809291908181526020018280546101db90610824565b80156102285780601f106101fd57610100808354040283529160200191610228565b820191906000526020600020905b81548152906001019060200180831161020b57829003601f168201915b5050505050905090565b60003361024081858561038c565b5060019392505050565b6000336102588582856104b0565b61026385858561052a565b506001949350505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490919061024090829086906102a890879061085f565b61038c565b6060600480546101af90610824565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909190838110156103465760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b610263828686840361038c565b60003361024081858561052a565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103ee5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161033d565b6001600160a01b03821661044f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161033d565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006104bc8484610361565b9050600019811461052457818110156105175760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161033d565b610524848484840361038c565b50505050565b6001600160a01b03831661058e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161033d565b6001600160a01b0382166105f05760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161033d565b6001600160a01b038316600090815260208190526040902054818110156106685760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161033d565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061069f90849061085f565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106eb91815260200190565b60405180910390a3610524565b600060208083528351808285015260005b8181101561072557858101830151858201604001528201610709565b81811115610737576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b038116811461076457600080fd5b919050565b6000806040838503121561077c57600080fd5b6107858361074d565b946020939093013593505050565b6000806000606084860312156107a857600080fd5b6107b18461074d565b92506107bf6020850161074d565b9150604084013590509250925092565b6000602082840312156107e157600080fd5b6107ea8261074d565b9392505050565b6000806040838503121561080457600080fd5b61080d8361074d565b915061081b6020840161074d565b90509250929050565b600181811c9082168061083857607f821691505b6020821081141561085957634e487b7160e01b600052602260045260246000fd5b50919050565b6000821982111561088057634e487b7160e01b600052601160045260246000fd5b50019056fea26469706673582212205520cebf912a7b37ad2078443ea206cc6187d18972e4366e20d773c71e326a0464736f6c63430008090033",
289
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461012357806370a082311461013657806395d89b411461015f578063a457c2d714610167578063a9059cbb1461017a578063dd62ed3e1461018d57600080fd5b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100ef57806323b872dd14610101578063313ce56714610114575b600080fd5b6100b66101a0565b6040516100c391906106f8565b60405180910390f35b6100df6100da366004610769565b610232565b60405190151581526020016100c3565b6002545b6040519081526020016100c3565b6100df61010f366004610793565b61024a565b604051601281526020016100c3565b6100df610131366004610769565b61026e565b6100f36101443660046107cf565b6001600160a01b031660009081526020819052604090205490565b6100b66102ad565b6100df610175366004610769565b6102bc565b6100df610188366004610769565b610353565b6100f361019b3660046107f1565b610361565b6060600380546101af90610824565b80601f01602080910402602001604051908101604052809291908181526020018280546101db90610824565b80156102285780601f106101fd57610100808354040283529160200191610228565b820191906000526020600020905b81548152906001019060200180831161020b57829003601f168201915b5050505050905090565b60003361024081858561038c565b5060019392505050565b6000336102588582856104b0565b61026385858561052a565b506001949350505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490919061024090829086906102a890879061085f565b61038c565b6060600480546101af90610824565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909190838110156103465760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b610263828686840361038c565b60003361024081858561052a565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103ee5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161033d565b6001600160a01b03821661044f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161033d565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006104bc8484610361565b9050600019811461052457818110156105175760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161033d565b610524848484840361038c565b50505050565b6001600160a01b03831661058e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161033d565b6001600160a01b0382166105f05760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161033d565b6001600160a01b038316600090815260208190526040902054818110156106685760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161033d565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061069f90849061085f565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106eb91815260200190565b60405180910390a3610524565b600060208083528351808285015260005b8181101561072557858101830151858201604001528201610709565b81811115610737576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b038116811461076457600080fd5b919050565b6000806040838503121561077c57600080fd5b6107858361074d565b946020939093013593505050565b6000806000606084860312156107a857600080fd5b6107b18461074d565b92506107bf6020850161074d565b9150604084013590509250925092565b6000602082840312156107e157600080fd5b6107ea8261074d565b9392505050565b6000806040838503121561080457600080fd5b61080d8361074d565b915061081b6020840161074d565b90509250929050565b600181811c9082168061083857607f821691505b6020821081141561085957634e487b7160e01b600052602260045260246000fd5b50919050565b6000821982111561088057634e487b7160e01b600052601160045260246000fd5b50019056fea26469706673582212205520cebf912a7b37ad2078443ea206cc6187d18972e4366e20d773c71e326a0464736f6c63430008090033",
288
+ "bytecode": "0x60806040523480156200001157600080fd5b5060405162000d4238038062000d4283398101604081905262000034916200019a565b604051806040016040528060098152602001682a32b9ba2a37b5b2b760b91b81525060405180604001604052806002815260200161151560f21b815250816003908162000082919062000258565b50600462000091828262000258565b505050620000a63382620000ad60201b60201c565b506200034c565b6001600160a01b038216620001085760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b80600260008282546200011c919062000324565b90915550506001600160a01b038216600090815260208190526040812080548392906200014b90849062000324565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b600060208284031215620001ad57600080fd5b5051919050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620001df57607f821691505b6020821081036200020057634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200019557600081815260208120601f850160051c810160208610156200022f5750805b601f850160051c820191505b8181101562000250578281556001016200023b565b505050505050565b81516001600160401b03811115620002745762000274620001b4565b6200028c81620002858454620001ca565b8462000206565b602080601f831160018114620002c45760008415620002ab5750858301515b600019600386901b1c1916600185901b17855562000250565b600085815260208120601f198616915b82811015620002f557888601518255948401946001909101908401620002d4565b5085821015620003145787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b808201808211156200034657634e487b7160e01b600052601160045260246000fd5b92915050565b6109e6806200035c6000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c80633950935111610081578063a457c2d71161005b578063a457c2d714610187578063a9059cbb1461019a578063dd62ed3e146101ad57600080fd5b8063395093511461014357806370a082311461015657806395d89b411461017f57600080fd5b806318160ddd116100b257806318160ddd1461010f57806323b872dd14610121578063313ce5671461013457600080fd5b806306fdde03146100ce578063095ea7b3146100ec575b600080fd5b6100d66101e6565b6040516100e391906107e0565b60405180910390f35b6100ff6100fa366004610868565b610278565b60405190151581526020016100e3565b6002545b6040519081526020016100e3565b6100ff61012f366004610892565b610292565b604051601281526020016100e3565b6100ff610151366004610868565b6102b6565b6101136101643660046108ce565b6001600160a01b031660009081526020819052604090205490565b6100d66102f5565b6100ff610195366004610868565b610304565b6100ff6101a8366004610868565b6103b3565b6101136101bb3660046108f0565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101f590610923565b80601f016020809104026020016040519081016040528092919081815260200182805461022190610923565b801561026e5780601f106102435761010080835404028352916020019161026e565b820191906000526020600020905b81548152906001019060200180831161025157829003601f168201915b5050505050905090565b6000336102868185856103c1565b60019150505b92915050565b6000336102a0858285610519565b6102ab8585856105c9565b506001949350505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490919061028690829086906102f0908790610976565b6103c1565b6060600480546101f590610923565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909190838110156103a65760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102ab82868684036103c1565b6000336102868185856105c9565b6001600160a01b03831661043c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b0382166104b85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105c357818110156105b65760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161039d565b6105c384848484036103c1565b50505050565b6001600160a01b0383166106455760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b0382166106c15760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b038316600090815260208190526040902054818110156107505760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e63650000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290610787908490610976565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516107d391815260200190565b60405180910390a36105c3565b600060208083528351808285015260005b8181101561080d578581018301518582016040015282016107f1565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b80356001600160a01b038116811461086357600080fd5b919050565b6000806040838503121561087b57600080fd5b6108848361084c565b946020939093013593505050565b6000806000606084860312156108a757600080fd5b6108b08461084c565b92506108be6020850161084c565b9150604084013590509250925092565b6000602082840312156108e057600080fd5b6108e98261084c565b9392505050565b6000806040838503121561090357600080fd5b61090c8361084c565b915061091a6020840161084c565b90509250929050565b600181811c9082168061093757607f821691505b602082108103610970577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b8082018082111561028c577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea2646970667358221220f72518a5168c403bb15eabe1a908d0fa67efbbf89f6f1cbedc6623e6c28eb7fb64736f6c63430008110033",
289
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100c95760003560e01c80633950935111610081578063a457c2d71161005b578063a457c2d714610187578063a9059cbb1461019a578063dd62ed3e146101ad57600080fd5b8063395093511461014357806370a082311461015657806395d89b411461017f57600080fd5b806318160ddd116100b257806318160ddd1461010f57806323b872dd14610121578063313ce5671461013457600080fd5b806306fdde03146100ce578063095ea7b3146100ec575b600080fd5b6100d66101e6565b6040516100e391906107e0565b60405180910390f35b6100ff6100fa366004610868565b610278565b60405190151581526020016100e3565b6002545b6040519081526020016100e3565b6100ff61012f366004610892565b610292565b604051601281526020016100e3565b6100ff610151366004610868565b6102b6565b6101136101643660046108ce565b6001600160a01b031660009081526020819052604090205490565b6100d66102f5565b6100ff610195366004610868565b610304565b6100ff6101a8366004610868565b6103b3565b6101136101bb3660046108f0565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101f590610923565b80601f016020809104026020016040519081016040528092919081815260200182805461022190610923565b801561026e5780601f106102435761010080835404028352916020019161026e565b820191906000526020600020905b81548152906001019060200180831161025157829003601f168201915b5050505050905090565b6000336102868185856103c1565b60019150505b92915050565b6000336102a0858285610519565b6102ab8585856105c9565b506001949350505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490919061028690829086906102f0908790610976565b6103c1565b6060600480546101f590610923565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909190838110156103a65760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102ab82868684036103c1565b6000336102868185856105c9565b6001600160a01b03831661043c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b0382166104b85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105c357818110156105b65760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161039d565b6105c384848484036103c1565b50505050565b6001600160a01b0383166106455760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b0382166106c15760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b038316600090815260208190526040902054818110156107505760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e63650000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290610787908490610976565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516107d391815260200190565b60405180910390a36105c3565b600060208083528351808285015260005b8181101561080d578581018301518582016040015282016107f1565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b80356001600160a01b038116811461086357600080fd5b919050565b6000806040838503121561087b57600080fd5b6108848361084c565b946020939093013593505050565b6000806000606084860312156108a757600080fd5b6108b08461084c565b92506108be6020850161084c565b9150604084013590509250925092565b6000602082840312156108e057600080fd5b6108e98261084c565b9392505050565b6000806040838503121561090357600080fd5b61090c8361084c565b915061091a6020840161084c565b90509250929050565b600181811c9082168061093757607f821691505b602082108103610970577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b8082018082111561028c577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea2646970667358221220f72518a5168c403bb15eabe1a908d0fa67efbbf89f6f1cbedc6623e6c28eb7fb64736f6c63430008110033",
290
290
  "linkReferences": {},
291
291
  "deployedLinkReferences": {}
292
292
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/9ec5aeba34e8f7c0c281e147a2954d13.json"
3
+ "buildInfo": "../../../build-info/28754c4998b67fc9c9d6d849262cf39e.json"
4
4
  }
@@ -11,8 +11,8 @@
11
11
  "type": "function"
12
12
  }
13
13
  ],
14
- "bytecode": "0x608060405234801561001057600080fd5b50610731806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f8a8fd6d14610030575b600080fd5b61003861003a565b005b6040805160026020820181815260808301845260009383929083015b604080518082019091526000808252602082015281526020019060019003908161005657505090528051519091506002146100c45760405162461bcd60e51b815260206004820152600960248201526829aa20a92a2fa622a760b91b60448201526064015b60405180910390fd5b6100db60006100d360016103c2565b8391906103f5565b6100ea60016100d360026103c2565b6100fe6100f760036103c2565b829061041c565b80515160031461013b5760405162461bcd60e51b8152602060048201526008602482015267282aa9a42fa622a760c11b60448201526064016100bb565b60005b81515181101561020c5760006101548383610510565b905060008151600681111561016b5761016b61066f565b146101a85760405162461bcd60e51b815260206004820152600d60248201526c505553485f56414c5f5459504560981b60448201526064016100bb565b6101b382600161069b565b8160200151146101f95760405162461bcd60e51b8152602060048201526011602482015270505553485f56414c5f434f4e54454e545360781b60448201526064016100bb565b5080610204816106b3565b91505061013e565b50600061021882610548565b905060008151600681111561022f5761022f61066f565b1461026b5760405162461bcd60e51b815260206004820152600c60248201526b504f505f5245545f5459504560a01b60448201526064016100bb565b80602001516003146102b25760405162461bcd60e51b815260206004820152601060248201526f504f505f5245545f434f4e54454e545360801b60448201526064016100bb565b8151516002146102ee5760405162461bcd60e51b81526020600482015260076024820152662827a82fa622a760c91b60448201526064016100bb565b60005b8251518110156103bd5760006103078483610510565b905060008151600681111561031e5761031e61066f565b1461035a5760405162461bcd60e51b815260206004820152600c60248201526b504f505f56414c5f5459504560a01b60448201526064016100bb565b61036582600161069b565b8160200151146103aa5760405162461bcd60e51b815260206004820152601060248201526f504f505f56414c5f434f4e54454e545360801b60448201526064016100bb565b50806103b5816106b3565b9150506102f1565b505050565b604080518082019091526000808252602082015250604080518082019091526000815263ffffffff909116602082015290565b808360000151838151811061040c5761040c6106ce565b6020026020010181905250505050565b81515160009061042d90600161069b565b67ffffffffffffffff81111561044557610445610659565b60405190808252806020026020018201604052801561048a57816020015b60408051808201909152600080825260208201528152602001906001900390816104635790505b50905060005b8351518110156104e65783518051829081106104ae576104ae6106ce565b60200260200101518282815181106104c8576104c86106ce565b602002602001018190525080806104de906106b3565b915050610490565b508181846000015151815181106104ff576104ff6106ce565b602090810291909101015290915250565b60408051808201909152600080825260208201528251805183908110610538576105386106ce565b6020026020010151905092915050565b60408051808201909152600080825260208201528151805161056c906001906106e4565b8151811061057c5761057c6106ce565b602002602001015190506000600183600001515161059a91906106e4565b67ffffffffffffffff8111156105b2576105b2610659565b6040519080825280602002602001820160405280156105f757816020015b60408051808201909152600080825260208201528152602001906001900390816105d05790505b50905060005b815181101561065257835180518290811061061a5761061a6106ce565b6020026020010151828281518110610634576106346106ce565b6020026020010181905250808061064a906106b3565b9150506105fd565b5090915290565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082198211156106ae576106ae610685565b500190565b60006000198214156106c7576106c7610685565b5060010190565b634e487b7160e01b600052603260045260246000fd5b6000828210156106f6576106f6610685565b50039056fea264697066735822122040ff6f133a45f06c90674e2ed2a476d226d9c4775a06f52ad96ee16c0a0aaef264736f6c63430008090033",
15
- "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f8a8fd6d14610030575b600080fd5b61003861003a565b005b6040805160026020820181815260808301845260009383929083015b604080518082019091526000808252602082015281526020019060019003908161005657505090528051519091506002146100c45760405162461bcd60e51b815260206004820152600960248201526829aa20a92a2fa622a760b91b60448201526064015b60405180910390fd5b6100db60006100d360016103c2565b8391906103f5565b6100ea60016100d360026103c2565b6100fe6100f760036103c2565b829061041c565b80515160031461013b5760405162461bcd60e51b8152602060048201526008602482015267282aa9a42fa622a760c11b60448201526064016100bb565b60005b81515181101561020c5760006101548383610510565b905060008151600681111561016b5761016b61066f565b146101a85760405162461bcd60e51b815260206004820152600d60248201526c505553485f56414c5f5459504560981b60448201526064016100bb565b6101b382600161069b565b8160200151146101f95760405162461bcd60e51b8152602060048201526011602482015270505553485f56414c5f434f4e54454e545360781b60448201526064016100bb565b5080610204816106b3565b91505061013e565b50600061021882610548565b905060008151600681111561022f5761022f61066f565b1461026b5760405162461bcd60e51b815260206004820152600c60248201526b504f505f5245545f5459504560a01b60448201526064016100bb565b80602001516003146102b25760405162461bcd60e51b815260206004820152601060248201526f504f505f5245545f434f4e54454e545360801b60448201526064016100bb565b8151516002146102ee5760405162461bcd60e51b81526020600482015260076024820152662827a82fa622a760c91b60448201526064016100bb565b60005b8251518110156103bd5760006103078483610510565b905060008151600681111561031e5761031e61066f565b1461035a5760405162461bcd60e51b815260206004820152600c60248201526b504f505f56414c5f5459504560a01b60448201526064016100bb565b61036582600161069b565b8160200151146103aa5760405162461bcd60e51b815260206004820152601060248201526f504f505f56414c5f434f4e54454e545360801b60448201526064016100bb565b50806103b5816106b3565b9150506102f1565b505050565b604080518082019091526000808252602082015250604080518082019091526000815263ffffffff909116602082015290565b808360000151838151811061040c5761040c6106ce565b6020026020010181905250505050565b81515160009061042d90600161069b565b67ffffffffffffffff81111561044557610445610659565b60405190808252806020026020018201604052801561048a57816020015b60408051808201909152600080825260208201528152602001906001900390816104635790505b50905060005b8351518110156104e65783518051829081106104ae576104ae6106ce565b60200260200101518282815181106104c8576104c86106ce565b602002602001018190525080806104de906106b3565b915050610490565b508181846000015151815181106104ff576104ff6106ce565b602090810291909101015290915250565b60408051808201909152600080825260208201528251805183908110610538576105386106ce565b6020026020010151905092915050565b60408051808201909152600080825260208201528151805161056c906001906106e4565b8151811061057c5761057c6106ce565b602002602001015190506000600183600001515161059a91906106e4565b67ffffffffffffffff8111156105b2576105b2610659565b6040519080825280602002602001820160405280156105f757816020015b60408051808201909152600080825260208201528152602001906001900390816105d05790505b50905060005b815181101561065257835180518290811061061a5761061a6106ce565b6020026020010151828281518110610634576106346106ce565b6020026020010181905250808061064a906106b3565b9150506105fd565b5090915290565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082198211156106ae576106ae610685565b500190565b60006000198214156106c7576106c7610685565b5060010190565b634e487b7160e01b600052603260045260246000fd5b6000828210156106f6576106f6610685565b50039056fea264697066735822122040ff6f133a45f06c90674e2ed2a476d226d9c4775a06f52ad96ee16c0a0aaef264736f6c63430008090033",
14
+ "bytecode": "0x608060405234801561001057600080fd5b5061080a806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f8a8fd6d14610030575b600080fd5b61003861003a565b005b6040805160026020820181815260808301845260009383929083015b604080518082019091526000808252602082015281526020019060019003908161005657505090528051519091506002146100d85760405162461bcd60e51b815260206004820152600960248201527f53544152545f4c454e000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b60408051808201825260008082526020918201819052825180840190935280835260019183019190915261010f915b8391906104b9565b604080518082018252600080825260209182018190528251808401909352825260029082015261014190600190610107565b60408051808201825260008082526020918201819052825180840190935282526003908201526101729082906104e0565b8051516003146101c45760405162461bcd60e51b815260206004820152600860248201527f505553485f4c454e00000000000000000000000000000000000000000000000060448201526064016100cf565b60005b8151518110156102b15760006101dd83836105d4565b90506000815160068111156101f4576101f4610734565b146102415760405162461bcd60e51b815260206004820152600d60248201527f505553485f56414c5f545950450000000000000000000000000000000000000060448201526064016100cf565b61024c826001610760565b81602001511461029e5760405162461bcd60e51b815260206004820152601160248201527f505553485f56414c5f434f4e54454e545300000000000000000000000000000060448201526064016100cf565b50806102a981610773565b9150506101c7565b5060006102bd8261060d565b90506000815160068111156102d4576102d4610734565b146103215760405162461bcd60e51b815260206004820152600c60248201527f504f505f5245545f54595045000000000000000000000000000000000000000060448201526064016100cf565b80602001516003146103755760405162461bcd60e51b815260206004820152601060248201527f504f505f5245545f434f4e54454e54530000000000000000000000000000000060448201526064016100cf565b8151516002146103c75760405162461bcd60e51b815260206004820152600760248201527f504f505f4c454e0000000000000000000000000000000000000000000000000060448201526064016100cf565b60005b8251518110156104b45760006103e084836105d4565b90506000815160068111156103f7576103f7610734565b146104445760405162461bcd60e51b815260206004820152600c60248201527f504f505f56414c5f54595045000000000000000000000000000000000000000060448201526064016100cf565b61044f826001610760565b8160200151146104a15760405162461bcd60e51b815260206004820152601060248201527f504f505f56414c5f434f4e54454e54530000000000000000000000000000000060448201526064016100cf565b50806104ac81610773565b9150506103ca565b505050565b80836000015183815181106104d0576104d06107ab565b6020026020010181905250505050565b8151516000906104f1906001610760565b67ffffffffffffffff8111156105095761050961071e565b60405190808252806020026020018201604052801561054e57816020015b60408051808201909152600080825260208201528152602001906001900390816105275790505b50905060005b8351518110156105aa578351805182908110610572576105726107ab565b602002602001015182828151811061058c5761058c6107ab565b602002602001018190525080806105a290610773565b915050610554565b508181846000015151815181106105c3576105c36107ab565b602090810291909101015290915250565b604080518082019091526000808252602082015282518051839081106105fc576105fc6107ab565b602002602001015190505b92915050565b604080518082019091526000808252602082015281518051610631906001906107c1565b81518110610641576106416107ab565b602002602001015190506000600183600001515161065f91906107c1565b67ffffffffffffffff8111156106775761067761071e565b6040519080825280602002602001820160405280156106bc57816020015b60408051808201909152600080825260208201528152602001906001900390816106955790505b50905060005b81518110156107175783518051829081106106df576106df6107ab565b60200260200101518282815181106106f9576106f96107ab565b6020026020010181905250808061070f90610773565b9150506106c2565b5090915290565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808201808211156106075761060761074a565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036107a4576107a461074a565b5060010190565b634e487b7160e01b600052603260045260246000fd5b818103818111156106075761060761074a56fea2646970667358221220c91fc927240ed2cc6dd35c9d82c300294c873da46a2d45e5fee8b3f4461a7d1864736f6c63430008110033",
15
+ "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f8a8fd6d14610030575b600080fd5b61003861003a565b005b6040805160026020820181815260808301845260009383929083015b604080518082019091526000808252602082015281526020019060019003908161005657505090528051519091506002146100d85760405162461bcd60e51b815260206004820152600960248201527f53544152545f4c454e000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b60408051808201825260008082526020918201819052825180840190935280835260019183019190915261010f915b8391906104b9565b604080518082018252600080825260209182018190528251808401909352825260029082015261014190600190610107565b60408051808201825260008082526020918201819052825180840190935282526003908201526101729082906104e0565b8051516003146101c45760405162461bcd60e51b815260206004820152600860248201527f505553485f4c454e00000000000000000000000000000000000000000000000060448201526064016100cf565b60005b8151518110156102b15760006101dd83836105d4565b90506000815160068111156101f4576101f4610734565b146102415760405162461bcd60e51b815260206004820152600d60248201527f505553485f56414c5f545950450000000000000000000000000000000000000060448201526064016100cf565b61024c826001610760565b81602001511461029e5760405162461bcd60e51b815260206004820152601160248201527f505553485f56414c5f434f4e54454e545300000000000000000000000000000060448201526064016100cf565b50806102a981610773565b9150506101c7565b5060006102bd8261060d565b90506000815160068111156102d4576102d4610734565b146103215760405162461bcd60e51b815260206004820152600c60248201527f504f505f5245545f54595045000000000000000000000000000000000000000060448201526064016100cf565b80602001516003146103755760405162461bcd60e51b815260206004820152601060248201527f504f505f5245545f434f4e54454e54530000000000000000000000000000000060448201526064016100cf565b8151516002146103c75760405162461bcd60e51b815260206004820152600760248201527f504f505f4c454e0000000000000000000000000000000000000000000000000060448201526064016100cf565b60005b8251518110156104b45760006103e084836105d4565b90506000815160068111156103f7576103f7610734565b146104445760405162461bcd60e51b815260206004820152600c60248201527f504f505f56414c5f54595045000000000000000000000000000000000000000060448201526064016100cf565b61044f826001610760565b8160200151146104a15760405162461bcd60e51b815260206004820152601060248201527f504f505f56414c5f434f4e54454e54530000000000000000000000000000000060448201526064016100cf565b50806104ac81610773565b9150506103ca565b505050565b80836000015183815181106104d0576104d06107ab565b6020026020010181905250505050565b8151516000906104f1906001610760565b67ffffffffffffffff8111156105095761050961071e565b60405190808252806020026020018201604052801561054e57816020015b60408051808201909152600080825260208201528152602001906001900390816105275790505b50905060005b8351518110156105aa578351805182908110610572576105726107ab565b602002602001015182828151811061058c5761058c6107ab565b602002602001018190525080806105a290610773565b915050610554565b508181846000015151815181106105c3576105c36107ab565b602090810291909101015290915250565b604080518082019091526000808252602082015282518051839081106105fc576105fc6107ab565b602002602001015190505b92915050565b604080518082019091526000808252602082015281518051610631906001906107c1565b81518110610641576106416107ab565b602002602001015190506000600183600001515161065f91906107c1565b67ffffffffffffffff8111156106775761067761071e565b6040519080825280602002602001820160405280156106bc57816020015b60408051808201909152600080825260208201528152602001906001900390816106955790505b50905060005b81518110156107175783518051829081106106df576106df6107ab565b60200260200101518282815181106106f9576106f96107ab565b6020026020010181905250808061070f90610773565b9150506106c2565b5090915290565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808201808211156106075761060761074a565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036107a4576107a461074a565b5060010190565b634e487b7160e01b600052603260045260246000fd5b818103818111156106075761060761074a56fea2646970667358221220c91fc927240ed2cc6dd35c9d82c300294c873da46a2d45e5fee8b3f4461a7d1864736f6c63430008110033",
16
16
  "linkReferences": {},
17
17
  "deployedLinkReferences": {}
18
18
  }
@@ -1 +1 @@
1
- {"abi":null,"bytecode":{"object":"0x605f80600d600039806000f3fe3415600957600080fd5b6000803560e01c63e83a2d828114602857631f6d6ef781146057578182fd5b815b804980603557506045565b600582901b60400152600101602a565b602083528060205260408160051b0183f35b4a8252602082f3","sourceMap":"76:19:0:-:0;;53:21;50:1;41:55;115:19;50:1;105:30","linkReferences":{}},"deployedBytecode":{"object":"0x3415600957600080fd5b6000803560e01c63e83a2d828114602857631f6d6ef781146057578182fd5b815b804980603557506045565b600582901b60400152600101602a565b602083528060205260408160051b0183f35b4a8252602082f3","sourceMap":"250:11:0:-:0;247:31;;;274:1;;264:12;247:31;400:1;;387:15;381:4;377:26;470:10;465:486;;;;1019:10;1014:216;;;;400:1;;1294:12;465:486;400:1;526:304;675:1;651:26;708:4;698:25;;716:5;;;698:25;755:10;;;;767:2;751:19;744:33;810:1;803:9;526:304;;;762:2;400:1;847:13;888:1;762:2;877:13;767:2;925:1;755:10;921;917:19;400:1;907:30;1014:216;1124:23;400:1;1164:22;1213:2;400:1;1203:13","linkReferences":{}},"methodIdentifiers":{}}
1
+ {"abi":null,"bytecode":{"object":"0x605b80600c6000396000f3fe346056576000803560e01c8063e83a2d8214602857631f6d6ef71460205780fd5b6020904a8152f35b50805b804990811560435760019160408260051b015201602b565b60409150602083528060205260051b0190f35b600080fd","sourceMap":"76:19:0:-:0;53:21;;50:1;41:55;50:1;105:30","linkReferences":{}},"deployedBytecode":{"object":"0x346056576000803560e01c8063e83a2d8214602857631f6d6ef71460205780fd5b6020904a8152f35b50805b804990811560435760019160408260051b015201602b565b60409150602083528060205260051b0190f35b600080fd","sourceMap":"250:11:0:-:0;247:31;;400:1;387:15;;381:4;377:26;465:486;470:10;465:486;;;1019:10;1014:216;;;1294:12;;1030:200;1213:2;1124:23;;1164:22;;1203:13;481:470;499:10;;559:271;651:26;;701:12;;;698:25;;810:1;755:10;767:2;755:10;;;751:19;744:33;803:9;539:3;;714:9;767:2;716:5;;762:2;847:13;;877;762:2;877:13;755:10;921;917:19;907:30;;262:16;274:1;264:12;","linkReferences":{}},"methodIdentifiers":{}}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arbitrum/nitro-contracts",
3
- "version": "2.1.0",
3
+ "version": "3.0.0-alpha.0",
4
4
  "description": "Layer 2 precompiles and rollup for Arbitrum Nitro",
5
5
  "author": "Offchain Labs, Inc.",
6
6
  "license": "BUSL-1.1",
@@ -21,6 +21,7 @@
21
21
  "audit:ci": "audit-ci --config ./audit-ci.jsonc",
22
22
  "audit:fix": "yarn-audit-fix",
23
23
  "prepublishOnly": "hardhat clean && forge clean && hardhat compile && yarn build:forge:yul",
24
+ "coverage": "forge coverage --report lcov --ir-minimum && lcov --remove lcov.info 'node_modules/*' 'test/*' 'script/*' 'src/test-helpers/*' 'challenge/*' --ignore-errors unused -o lcov.info && genhtml lcov.info --branch-coverage --output-dir coverage",
24
25
  "build:all": "yarn build && yarn build:forge",
25
26
  "build": "hardhat compile",
26
27
  "build:forge:sol": "forge build --skip *.yul",
@@ -30,7 +31,7 @@
30
31
  "lint:test": "eslint ./test",
31
32
  "solhint": "solhint -f table src/**/*.sol",
32
33
  "prettier:solidity": "prettier --write src/**/*.sol",
33
- "format": "prettier './**/*.{js,json,ts,yml,sol}' --write && yarn run lint:test --fix",
34
+ "format": "forge fmt && prettier './**/*.{js,json,md,ts,yml}' --write && yarn run lint:test --fix",
34
35
  "build:0.6": "INTERFACE_TESTER_SOLC_VERSION=0.6.9 yarn run build",
35
36
  "build:0.7": "INTERFACE_TESTER_SOLC_VERSION=0.7.0 yarn run build",
36
37
  "test": "DISABLE_GAS_REPORTER=true hardhat --network hardhat test test/contract/*.spec.ts",
@@ -39,26 +40,35 @@
39
40
  "test:storage": "./test/storage/test.bash",
40
41
  "test:signatures": "./test/signatures/test-sigs.bash",
41
42
  "test:e2e": "hardhat test test/e2e/*.ts",
43
+ "test:upgrade": "./scripts/testUpgrade.bash",
44
+ "test:foundry": "forge test --gas-limit 10000000000",
45
+ "test:update": "yarn run test:signatures || yarn run test:storage",
46
+ "metadatahash": "yarn build:all && hardhat run scripts/printMetadataHashes.ts",
47
+ "upload-4bytes": "forge build && find ./out -type f -name \"*.json\" -exec cast upload-signature {} + | grep -v Duplicated:",
42
48
  "postinstall": "patch-package",
43
49
  "deploy-factory": "hardhat run scripts/deployment.ts",
44
50
  "deploy-eth-rollup": "hardhat run scripts/createEthRollup.ts",
45
51
  "deploy-erc20-rollup": "hardhat run scripts/createERC20Rollup.ts",
46
52
  "create-rollup-testnode": "hardhat run scripts/local-deployment/deployCreatorAndCreateRollup.ts",
53
+ "script:bold-prepare": "hardhat run ./scripts/prepareBoldUpgrade.ts",
54
+ "script:bold-populate-lookup": "hardhat run ./scripts/populateLookup.ts",
55
+ "script:bold-local-execute": "hardhat run ./scripts/testLocalExecuteBoldUpgrade.ts",
47
56
  "deploy-cachemanager-testnode": "hardhat run scripts/local-deployment/deployCacheManager.ts"
48
57
  },
49
58
  "dependencies": {
50
59
  "@offchainlabs/upgrade-executor": "1.1.0-beta.0",
51
- "@openzeppelin/contracts": "4.5.0",
52
- "@openzeppelin/contracts-upgradeable": "4.5.2",
60
+ "@openzeppelin/contracts": "4.7.3",
61
+ "@openzeppelin/contracts-upgradeable": "4.7.3",
53
62
  "patch-package": "^6.4.7",
54
63
  "solady": "0.0.182"
55
64
  },
56
65
  "private": false,
57
66
  "devDependencies": {
67
+ "@arbitrum/nitro-contracts-2.0.0": "npm:@arbitrum/nitro-contracts@2.0.0-beta.0",
58
68
  "@arbitrum/sdk": "^3.4.1",
59
69
  "@ethersproject/providers": "^5.7.2",
70
+ "@nomicfoundation/hardhat-verify": "^2.0.9",
60
71
  "@nomiclabs/hardhat-ethers": "npm:hardhat-deploy-ethers@^0.3.0-beta.13",
61
- "@nomiclabs/hardhat-etherscan": "^3.1.0",
62
72
  "@nomiclabs/hardhat-waffle": "^2.0.1",
63
73
  "@tovarishfin/hardhat-yul": "^3.0.5",
64
74
  "@typechain/ethers-v5": "^10.0.0",
@@ -0,0 +1,66 @@
1
+ // Copyright 2021-2022, Offchain Labs, Inc.
2
+ // For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE
3
+ // SPDX-License-Identifier: BUSL-1.1
4
+
5
+ pragma solidity ^0.8.0;
6
+
7
+ import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
8
+ import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
9
+ import {IAbsBoldStakingPool} from "./interfaces/IAbsBoldStakingPool.sol";
10
+
11
+ /// @notice Abstract contract for handling deposits and withdrawals of trustless edge/assertion staking pools.
12
+ /// @dev The total deposited amount can exceed the required stake amount.
13
+ /// If the total deposited amount exceeds the required amount, any depositor can withdraw some stake early even after the protocol move has been made.
14
+ /// This is okay because the protocol move will still be created once the required stake amount is reached,
15
+ /// and all depositors will still be eventually refunded.
16
+ abstract contract AbsBoldStakingPool is IAbsBoldStakingPool {
17
+ using SafeERC20 for IERC20;
18
+
19
+ /// @inheritdoc IAbsBoldStakingPool
20
+ address public immutable stakeToken;
21
+ /// @inheritdoc IAbsBoldStakingPool
22
+ mapping(address => uint256) public depositBalance;
23
+
24
+ constructor(
25
+ address _stakeToken
26
+ ) {
27
+ stakeToken = _stakeToken;
28
+ }
29
+
30
+ /// @inheritdoc IAbsBoldStakingPool
31
+ function depositIntoPool(
32
+ uint256 amount
33
+ ) external {
34
+ if (amount == 0) {
35
+ revert ZeroAmount();
36
+ }
37
+
38
+ depositBalance[msg.sender] += amount;
39
+ IERC20(stakeToken).safeTransferFrom(msg.sender, address(this), amount);
40
+
41
+ emit StakeDeposited(msg.sender, amount);
42
+ }
43
+
44
+ /// @inheritdoc IAbsBoldStakingPool
45
+ function withdrawFromPool(
46
+ uint256 amount
47
+ ) public {
48
+ if (amount == 0) {
49
+ revert ZeroAmount();
50
+ }
51
+ uint256 balance = depositBalance[msg.sender];
52
+ if (amount > balance) {
53
+ revert AmountExceedsBalance(msg.sender, amount, balance);
54
+ }
55
+
56
+ depositBalance[msg.sender] = balance - amount;
57
+ IERC20(stakeToken).safeTransfer(msg.sender, amount);
58
+
59
+ emit StakeWithdrawn(msg.sender, amount);
60
+ }
61
+
62
+ /// @inheritdoc IAbsBoldStakingPool
63
+ function withdrawFromPool() external {
64
+ withdrawFromPool(depositBalance[msg.sender]);
65
+ }
66
+ }
@@ -0,0 +1,70 @@
1
+ // Copyright 2021-2022, Offchain Labs, Inc.
2
+ // For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE
3
+ // SPDX-License-Identifier: BUSL-1.1
4
+ //
5
+ pragma solidity ^0.8.0;
6
+
7
+ import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
8
+ import "../rollup/IRollupLogic.sol";
9
+ import "./AbsBoldStakingPool.sol";
10
+ import "./interfaces/IAssertionStakingPool.sol";
11
+
12
+ /// @notice Staking pool contract for target assertion.
13
+ ///
14
+ /// Allows users to deposit stake, create assertion once required stake amount is reached,
15
+ /// and reclaim their stake when and if the assertion is confirmed.
16
+ ///
17
+ /// Tokens sent directly to this contract will be lost.
18
+ /// It is assumed that the rollup will not return more tokens than the amount deposited by the pool.
19
+ /// Any tokens exceeding the deposited amount to the pool will be stuck in the pool forever.
20
+ contract AssertionStakingPool is AbsBoldStakingPool, IAssertionStakingPool {
21
+ using SafeERC20 for IERC20;
22
+
23
+ /// @inheritdoc IAssertionStakingPool
24
+ address public immutable rollup;
25
+ /// @inheritdoc IAssertionStakingPool
26
+ bytes32 public immutable assertionHash;
27
+
28
+ /// @param _rollup Rollup contract of target chain
29
+ /// @param _assertionHash Assertion hash to be passed into Rollup.stakeOnNewAssertion
30
+ constructor(
31
+ address _rollup,
32
+ bytes32 _assertionHash
33
+ ) AbsBoldStakingPool(IRollupCore(_rollup).stakeToken()) {
34
+ if (_assertionHash == bytes32(0)) {
35
+ revert EmptyAssertionId();
36
+ }
37
+ rollup = _rollup;
38
+ assertionHash = _assertionHash;
39
+ }
40
+
41
+ /// @inheritdoc IAssertionStakingPool
42
+ function createAssertion(
43
+ AssertionInputs calldata assertionInputs
44
+ ) external {
45
+ uint256 requiredStake = assertionInputs.beforeStateData.configData.requiredStake;
46
+ // approve spending from rollup for newStakeOnNewAssertion call
47
+ IERC20(stakeToken).safeIncreaseAllowance(rollup, requiredStake);
48
+ // reverts if pool doesn't have enough stake and if assertion has already been asserted
49
+ IRollupUser(rollup).newStakeOnNewAssertion(
50
+ requiredStake, assertionInputs, assertionHash, address(this)
51
+ );
52
+ }
53
+
54
+ /// @inheritdoc IAssertionStakingPool
55
+ function makeStakeWithdrawable() public {
56
+ // this checks for active staker
57
+ IRollupUser(rollup).returnOldDeposit();
58
+ }
59
+
60
+ /// @inheritdoc IAssertionStakingPool
61
+ function withdrawStakeBackIntoPool() public {
62
+ IRollupUser(rollup).withdrawStakerFunds();
63
+ }
64
+
65
+ /// @inheritdoc IAssertionStakingPool
66
+ function makeStakeWithdrawableAndWithdrawBackIntoPool() external {
67
+ makeStakeWithdrawable();
68
+ withdrawStakeBackIntoPool();
69
+ }
70
+ }
@@ -0,0 +1,35 @@
1
+ // Copyright 2021-2022, Offchain Labs, Inc.
2
+ // For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE
3
+ // SPDX-License-Identifier: BUSL-1.1
4
+ //
5
+ pragma solidity ^0.8.0;
6
+
7
+ import "./AssertionStakingPool.sol";
8
+ import "./StakingPoolCreatorUtils.sol";
9
+ import "./interfaces/IAssertionStakingPoolCreator.sol";
10
+
11
+ /// @notice Creates staking pool contract for a target assertion. Can be used for any child Arbitrum chain running on top of the deployed AssertionStakingPoolCreator's chain.
12
+ contract AssertionStakingPoolCreator is IAssertionStakingPoolCreator {
13
+ /// @inheritdoc IAssertionStakingPoolCreator
14
+ function createPool(
15
+ address _rollup,
16
+ bytes32 _assertionHash
17
+ ) external returns (IAssertionStakingPool) {
18
+ AssertionStakingPool assertionPool =
19
+ new AssertionStakingPool{salt: 0}(_rollup, _assertionHash);
20
+ emit NewAssertionPoolCreated(_rollup, _assertionHash, address(assertionPool));
21
+ return assertionPool;
22
+ }
23
+
24
+ /// @inheritdoc IAssertionStakingPoolCreator
25
+ function getPool(
26
+ address _rollup,
27
+ bytes32 _assertionHash
28
+ ) public view returns (IAssertionStakingPool) {
29
+ return IAssertionStakingPool(
30
+ StakingPoolCreatorUtils.getPool(
31
+ type(AssertionStakingPool).creationCode, abi.encode(_rollup, _assertionHash)
32
+ )
33
+ );
34
+ }
35
+ }
@@ -0,0 +1,57 @@
1
+ // Copyright 2021-2022, Offchain Labs, Inc.
2
+ // For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE
3
+ // SPDX-License-Identifier: BUSL-1.1
4
+
5
+ pragma solidity ^0.8.0;
6
+
7
+ import "./AbsBoldStakingPool.sol";
8
+ import "./interfaces/IEdgeStakingPool.sol";
9
+ import "../challengeV2/EdgeChallengeManager.sol";
10
+
11
+ import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
12
+ import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
13
+
14
+ /// @notice Trustless staking pool contract for creating layer zero edges.
15
+ ///
16
+ /// Allows users to deposit stake, create an edge once required stake amount is reached,
17
+ /// and reclaim their stake when and if the edge is confirmed.
18
+ ///
19
+ /// Tokens sent directly to this contract will be lost.
20
+ /// It is assumed that the challenge manager will not return more tokens than the amount deposited by the pool.
21
+ /// Any tokens exceeding the deposited amount to the pool will be stuck in the pool forever.
22
+ ///
23
+ /// @dev Unlike the assertion staking pool, there is no need for a function to claim the stake back into the pool.
24
+ /// (see `EdgeChallengeManager.refundStake(bytes32 edgeId)`)
25
+ contract EdgeStakingPool is AbsBoldStakingPool, IEdgeStakingPool {
26
+ using SafeERC20 for IERC20;
27
+
28
+ /// @inheritdoc IEdgeStakingPool
29
+ address public immutable challengeManager;
30
+ /// @inheritdoc IEdgeStakingPool
31
+ bytes32 public immutable edgeId;
32
+
33
+ /// @param _challengeManager EdgeChallengeManager contract
34
+ /// @param _edgeId The ID of the edge to be created (see ChallengeEdgeLib.id)
35
+ constructor(
36
+ address _challengeManager,
37
+ bytes32 _edgeId
38
+ ) AbsBoldStakingPool(address(EdgeChallengeManager(_challengeManager).stakeToken())) {
39
+ if (_edgeId == bytes32(0)) {
40
+ revert EmptyEdgeId();
41
+ }
42
+ challengeManager = _challengeManager;
43
+ edgeId = _edgeId;
44
+ }
45
+
46
+ /// @inheritdoc IEdgeStakingPool
47
+ function createEdge(
48
+ CreateEdgeArgs calldata args
49
+ ) external {
50
+ uint256 requiredStake = EdgeChallengeManager(challengeManager).stakeAmounts(args.level);
51
+ IERC20(stakeToken).safeIncreaseAllowance(address(challengeManager), requiredStake);
52
+ bytes32 newEdgeId = EdgeChallengeManager(challengeManager).createLayerZeroEdge(args);
53
+ if (newEdgeId != edgeId) {
54
+ revert IncorrectEdgeId(newEdgeId, edgeId);
55
+ }
56
+ }
57
+ }
@@ -0,0 +1,34 @@
1
+ // Copyright 2021-2022, Offchain Labs, Inc.
2
+ // For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE
3
+ // SPDX-License-Identifier: BUSL-1.1
4
+ //
5
+ pragma solidity ^0.8.0;
6
+
7
+ import "./EdgeStakingPool.sol";
8
+ import "./StakingPoolCreatorUtils.sol";
9
+ import "./interfaces/IEdgeStakingPoolCreator.sol";
10
+
11
+ /// @notice Creates EdgeStakingPool contracts.
12
+ contract EdgeStakingPoolCreator is IEdgeStakingPoolCreator {
13
+ /// @inheritdoc IEdgeStakingPoolCreator
14
+ function createPool(
15
+ address challengeManager,
16
+ bytes32 edgeId
17
+ ) external returns (IEdgeStakingPool) {
18
+ EdgeStakingPool pool = new EdgeStakingPool{salt: 0}(challengeManager, edgeId);
19
+ emit NewEdgeStakingPoolCreated(challengeManager, edgeId);
20
+ return pool;
21
+ }
22
+
23
+ /// @inheritdoc IEdgeStakingPoolCreator
24
+ function getPool(
25
+ address challengeManager,
26
+ bytes32 edgeId
27
+ ) public view returns (IEdgeStakingPool) {
28
+ return IEdgeStakingPool(
29
+ StakingPoolCreatorUtils.getPool(
30
+ type(EdgeStakingPool).creationCode, abi.encode(challengeManager, edgeId)
31
+ )
32
+ );
33
+ }
34
+ }
@@ -0,0 +1,25 @@
1
+ // Copyright 2021-2022, Offchain Labs, Inc.
2
+ // For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE
3
+ // SPDX-License-Identifier: BUSL-1.1
4
+ //
5
+ pragma solidity ^0.8.0;
6
+
7
+ import "@openzeppelin/contracts/utils/Create2.sol";
8
+ import "@openzeppelin/contracts/utils/Address.sol";
9
+
10
+ library StakingPoolCreatorUtils {
11
+ error PoolDoesntExist();
12
+
13
+ function getPool(
14
+ bytes memory creationCode,
15
+ bytes memory args
16
+ ) internal view returns (address) {
17
+ bytes32 bytecodeHash = keccak256(abi.encodePacked(creationCode, args));
18
+ address pool = Create2.computeAddress(0, bytecodeHash, address(this));
19
+ if (Address.isContract(pool)) {
20
+ return pool;
21
+ } else {
22
+ revert PoolDoesntExist();
23
+ }
24
+ }
25
+ }
@@ -0,0 +1,41 @@
1
+ // Copyright 2021-2022, Offchain Labs, Inc.
2
+ // For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE
3
+ // SPDX-License-Identifier: BUSL-1.1
4
+
5
+ pragma solidity ^0.8.0;
6
+
7
+ interface IAbsBoldStakingPool {
8
+ /// @notice Emitted when stake is deposited
9
+ event StakeDeposited(address indexed sender, uint256 amount);
10
+ /// @notice Emitted when stake is withdrawn
11
+ event StakeWithdrawn(address indexed sender, uint256 amount);
12
+
13
+ /// @notice Cannot deposit or withdraw zero amount
14
+ error ZeroAmount();
15
+ /// @notice Withdraw amount exceeds balance
16
+ error AmountExceedsBalance(address account, uint256 amount, uint256 balance);
17
+
18
+ /// @notice Deposit stake into pool contract.
19
+ /// @param amount amount of stake token to deposit
20
+ function depositIntoPool(
21
+ uint256 amount
22
+ ) external;
23
+
24
+ /// @notice Send supplied amount of stake from this contract back to its depositor.
25
+ /// @param amount stake amount to withdraw
26
+ function withdrawFromPool(
27
+ uint256 amount
28
+ ) external;
29
+
30
+ /// @notice Send full balance of stake from this contract back to its depositor.
31
+ function withdrawFromPool() external;
32
+
33
+ /// @notice The token that is used for staking
34
+ function stakeToken() external view returns (address);
35
+
36
+ /// @notice The balance of the given account
37
+ /// @param account The account to check the balance of
38
+ function depositBalance(
39
+ address account
40
+ ) external view returns (uint256);
41
+ }
@@ -0,0 +1,36 @@
1
+ // Copyright 2021-2022, Offchain Labs, Inc.
2
+ // For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE
3
+ // SPDX-License-Identifier: BUSL-1.1
4
+
5
+ pragma solidity ^0.8.0;
6
+
7
+ import "../../rollup/IRollupLogic.sol";
8
+ import "./IAbsBoldStakingPool.sol";
9
+
10
+ interface IAssertionStakingPool is IAbsBoldStakingPool {
11
+ /// @notice Thrown when assertion id is empty
12
+ error EmptyAssertionId();
13
+
14
+ /// @notice Create assertion. Callable only if required stake has been reached and assertion has not been asserted yet.
15
+ function createAssertion(
16
+ AssertionInputs calldata assertionInputs
17
+ ) external;
18
+
19
+ /// @notice Make stake withdrawable.
20
+ /// @dev Separate call from withdrawStakeBackIntoPool since returnOldDeposit reverts with 0 balance (in e.g., case of admin forceRefundStaker)
21
+ function makeStakeWithdrawable() external;
22
+
23
+ /// @notice Move stake back from rollup contract to this contract.
24
+ /// Callable only if this contract has already created an assertion and it's now inactive.
25
+ /// @dev Separate call from makeStakeWithdrawable since returnOldDeposit reverts with 0 balance (in e.g., case of admin forceRefundStaker)
26
+ function withdrawStakeBackIntoPool() external;
27
+
28
+ /// @notice Combines makeStakeWithdrawable and withdrawStakeBackIntoPool into single call
29
+ function makeStakeWithdrawableAndWithdrawBackIntoPool() external;
30
+
31
+ /// @notice The targeted rollup contract
32
+ function rollup() external view returns (address);
33
+
34
+ /// @notice The assertion hash that this pool creates
35
+ function assertionHash() external view returns (bytes32);
36
+ }
@@ -0,0 +1,31 @@
1
+ // Copyright 2021-2022, Offchain Labs, Inc.
2
+ // For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE
3
+ // SPDX-License-Identifier: BUSL-1.1
4
+
5
+ pragma solidity ^0.8.0;
6
+
7
+ import "../../rollup/IRollupLogic.sol";
8
+ import "./IAssertionStakingPool.sol";
9
+
10
+ interface IAssertionStakingPoolCreator {
11
+ /// @notice Event emitted when a new staking pool is created
12
+ event NewAssertionPoolCreated(
13
+ address indexed rollup, bytes32 indexed _assertionHash, address assertionPool
14
+ );
15
+
16
+ /// @notice Create a staking pool contract
17
+ /// @param _rollup Rollup contract of target chain
18
+ /// @param _assertionHash Assertion hash to be passed into Rollup.stakeOnNewAssertion
19
+ function createPool(
20
+ address _rollup,
21
+ bytes32 _assertionHash
22
+ ) external returns (IAssertionStakingPool);
23
+
24
+ /// @notice get staking pool deployed with provided inputs; reverts if pool contract doesn't exist.
25
+ /// @param _rollup Rollup contract of target chain
26
+ /// @param _assertionHash Assertion hash to be passed into Rollup.stakeOnNewAssertion
27
+ function getPool(
28
+ address _rollup,
29
+ bytes32 _assertionHash
30
+ ) external view returns (IAssertionStakingPool);
31
+ }