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

Sign up to get free protection for your applications and to get access to all the features.
Files changed (270) hide show
  1. package/LICENSE.md +1 -1
  2. package/build/contracts/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json +1 -1
  3. package/build/contracts/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.dbg.json +1 -1
  4. package/build/contracts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.dbg.json +1 -1
  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/transparent/ProxyAdmin.sol/ProxyAdmin.dbg.json +1 -1
  10. package/build/contracts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.dbg.json +1 -1
  11. package/build/contracts/@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol/UUPSUpgradeable.dbg.json +1 -1
  12. package/build/contracts/@openzeppelin/contracts/security/ReentrancyGuard.sol/ReentrancyGuard.dbg.json +1 -1
  13. package/build/contracts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json +1 -1
  14. package/build/contracts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json +1 -1
  15. package/build/contracts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json +1 -1
  16. package/build/contracts/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.dbg.json +1 -1
  17. package/build/contracts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.dbg.json +1 -1
  18. package/build/contracts/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json +1 -1
  19. package/build/contracts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json +1 -1
  20. package/build/contracts/@openzeppelin/contracts/utils/Create2.sol/Create2.dbg.json +1 -1
  21. package/build/contracts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.dbg.json +1 -1
  22. package/build/contracts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json +1 -1
  23. package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol/AccessControlUpgradeable.dbg.json +1 -1
  24. package/build/contracts/@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol/IAccessControlUpgradeable.dbg.json +1 -1
  25. package/build/contracts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.dbg.json +1 -1
  26. package/build/contracts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.dbg.json +1 -1
  27. package/build/contracts/@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol/PausableUpgradeable.dbg.json +1 -1
  28. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.dbg.json +1 -1
  29. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.dbg.json +1 -1
  30. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/Create2Upgradeable.sol/Create2Upgradeable.dbg.json +1 -1
  31. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol/StorageSlotUpgradeable.dbg.json +1 -1
  32. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol/StringsUpgradeable.dbg.json +1 -1
  33. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol/ERC165Upgradeable.dbg.json +1 -1
  34. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol/IERC165Upgradeable.dbg.json +1 -1
  35. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/structs/EnumerableSetUpgradeable.sol/EnumerableSetUpgradeable.dbg.json +1 -1
  36. package/build/contracts/src/assertionStakingPool/AbsBoldStakingPool.sol/AbsBoldStakingPool.dbg.json +1 -1
  37. package/build/contracts/src/assertionStakingPool/AssertionStakingPool.sol/AssertionStakingPool.dbg.json +1 -1
  38. package/build/contracts/src/assertionStakingPool/AssertionStakingPool.sol/AssertionStakingPool.json +2 -2
  39. package/build/contracts/src/assertionStakingPool/AssertionStakingPoolCreator.sol/AssertionStakingPoolCreator.dbg.json +1 -1
  40. package/build/contracts/src/assertionStakingPool/AssertionStakingPoolCreator.sol/AssertionStakingPoolCreator.json +2 -2
  41. package/build/contracts/src/assertionStakingPool/EdgeStakingPool.sol/EdgeStakingPool.dbg.json +1 -1
  42. package/build/contracts/src/assertionStakingPool/EdgeStakingPool.sol/EdgeStakingPool.json +2 -2
  43. package/build/contracts/src/assertionStakingPool/EdgeStakingPoolCreator.sol/EdgeStakingPoolCreator.dbg.json +1 -1
  44. package/build/contracts/src/assertionStakingPool/EdgeStakingPoolCreator.sol/EdgeStakingPoolCreator.json +2 -2
  45. package/build/contracts/src/assertionStakingPool/StakingPoolCreatorUtils.sol/StakingPoolCreatorUtils.dbg.json +1 -1
  46. package/build/contracts/src/assertionStakingPool/interfaces/IAbsBoldStakingPool.sol/IAbsBoldStakingPool.dbg.json +1 -1
  47. package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPool.sol/IAssertionStakingPool.dbg.json +1 -1
  48. package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPoolCreator.sol/IAssertionStakingPoolCreator.dbg.json +1 -1
  49. package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPool.sol/IEdgeStakingPool.dbg.json +1 -1
  50. package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPoolCreator.sol/IEdgeStakingPoolCreator.dbg.json +1 -1
  51. package/build/contracts/src/bridge/AbsBridge.sol/AbsBridge.dbg.json +1 -1
  52. package/build/contracts/src/bridge/AbsInbox.sol/AbsInbox.dbg.json +1 -1
  53. package/build/contracts/src/bridge/AbsInbox.sol/AbsInbox.json +7 -7
  54. package/build/contracts/src/bridge/AbsOutbox.sol/AbsOutbox.dbg.json +1 -1
  55. package/build/contracts/src/bridge/Bridge.sol/Bridge.dbg.json +1 -1
  56. package/build/contracts/src/bridge/Bridge.sol/Bridge.json +2 -2
  57. package/build/contracts/src/bridge/DelayBuffer.sol/DelayBuffer.dbg.json +1 -1
  58. package/build/contracts/src/bridge/ERC20Bridge.sol/ERC20Bridge.dbg.json +1 -1
  59. package/build/contracts/src/bridge/ERC20Bridge.sol/ERC20Bridge.json +2 -2
  60. package/build/contracts/src/bridge/ERC20Inbox.sol/ERC20Inbox.dbg.json +1 -1
  61. package/build/contracts/src/bridge/ERC20Inbox.sol/ERC20Inbox.json +9 -9
  62. package/build/contracts/src/bridge/ERC20Outbox.sol/ERC20Outbox.dbg.json +1 -1
  63. package/build/contracts/src/bridge/ERC20Outbox.sol/ERC20Outbox.json +2 -2
  64. package/build/contracts/src/bridge/GasRefunder.sol/GasRefunder.dbg.json +1 -1
  65. package/build/contracts/src/bridge/IBridge.sol/IBridge.dbg.json +1 -1
  66. package/build/contracts/src/bridge/IDelayedMessageProvider.sol/IDelayedMessageProvider.dbg.json +1 -1
  67. package/build/contracts/src/bridge/IERC20Bridge.sol/IERC20Bridge.dbg.json +1 -1
  68. package/build/contracts/src/bridge/IERC20Inbox.sol/IERC20Inbox.dbg.json +1 -1
  69. package/build/contracts/src/bridge/IERC20Inbox.sol/IERC20Inbox.json +1 -1
  70. package/build/contracts/src/bridge/IEthBridge.sol/IEthBridge.dbg.json +1 -1
  71. package/build/contracts/src/bridge/IInbox.sol/IInbox.dbg.json +1 -1
  72. package/build/contracts/src/bridge/IInbox.sol/IInbox.json +1 -1
  73. package/build/contracts/src/bridge/IInboxBase.sol/IInboxBase.dbg.json +1 -1
  74. package/build/contracts/src/bridge/IInboxBase.sol/IInboxBase.json +1 -1
  75. package/build/contracts/src/bridge/IOutbox.sol/IOutbox.dbg.json +1 -1
  76. package/build/contracts/src/bridge/IOwnable.sol/IOwnable.dbg.json +1 -1
  77. package/build/contracts/src/bridge/ISequencerInbox.sol/ISequencerInbox.dbg.json +1 -1
  78. package/build/contracts/src/bridge/Inbox.sol/Inbox.dbg.json +1 -1
  79. package/build/contracts/src/bridge/Inbox.sol/Inbox.json +9 -9
  80. package/build/contracts/src/bridge/Messages.sol/Messages.dbg.json +1 -1
  81. package/build/contracts/src/bridge/Outbox.sol/Outbox.dbg.json +1 -1
  82. package/build/contracts/src/bridge/Outbox.sol/Outbox.json +2 -2
  83. package/build/contracts/src/bridge/SequencerInbox.sol/SequencerInbox.dbg.json +1 -1
  84. package/build/contracts/src/bridge/SequencerInbox.sol/SequencerInbox.json +5 -5
  85. package/build/contracts/src/chain/CacheManager.sol/CacheManager.dbg.json +1 -1
  86. package/build/contracts/src/chain/CacheManager.sol/CacheManager.json +2 -2
  87. package/build/contracts/src/challengeV2/EdgeChallengeManager.sol/EdgeChallengeManager.dbg.json +1 -1
  88. package/build/contracts/src/challengeV2/EdgeChallengeManager.sol/EdgeChallengeManager.json +2 -2
  89. package/build/contracts/src/challengeV2/IAssertionChain.sol/IAssertionChain.dbg.json +1 -1
  90. package/build/contracts/src/challengeV2/IEdgeChallengeManager.sol/IEdgeChallengeManager.dbg.json +4 -0
  91. package/build/contracts/src/challengeV2/{EdgeChallengeManager.sol → IEdgeChallengeManager.sol}/IEdgeChallengeManager.json +1 -1
  92. package/build/contracts/src/challengeV2/libraries/ArrayUtilsLib.sol/ArrayUtilsLib.dbg.json +1 -1
  93. package/build/contracts/src/challengeV2/libraries/ChallengeEdgeLib.sol/ChallengeEdgeLib.dbg.json +1 -1
  94. package/build/contracts/src/challengeV2/libraries/ChallengeEdgeLib.sol/ChallengeEdgeLib.json +2 -2
  95. package/build/contracts/src/challengeV2/libraries/EdgeChallengeManagerLib.sol/EdgeChallengeManagerLib.dbg.json +1 -1
  96. package/build/contracts/src/challengeV2/libraries/EdgeChallengeManagerLib.sol/EdgeChallengeManagerLib.json +2 -2
  97. package/build/contracts/src/challengeV2/libraries/MerkleTreeAccumulatorLib.sol/MerkleTreeAccumulatorLib.dbg.json +1 -1
  98. package/build/contracts/src/challengeV2/libraries/MerkleTreeAccumulatorLib.sol/MerkleTreeAccumulatorLib.json +2 -2
  99. package/build/contracts/src/challengeV2/libraries/UintUtilsLib.sol/UintUtilsLib.dbg.json +1 -1
  100. package/build/contracts/src/libraries/AddressAliasHelper.sol/AddressAliasHelper.dbg.json +1 -1
  101. package/build/contracts/src/libraries/AdminFallbackProxy.sol/AdminFallbackProxy.dbg.json +1 -1
  102. package/build/contracts/src/libraries/AdminFallbackProxy.sol/DoubleLogicERC1967Upgrade.dbg.json +1 -1
  103. package/build/contracts/src/libraries/ArbitrumChecker.sol/ArbitrumChecker.dbg.json +1 -1
  104. package/build/contracts/src/libraries/ArbitrumChecker.sol/ArbitrumChecker.json +2 -2
  105. package/build/contracts/src/libraries/CallerChecker.sol/CallerChecker.dbg.json +4 -0
  106. package/build/contracts/src/libraries/CallerChecker.sol/CallerChecker.json +10 -0
  107. package/build/contracts/src/libraries/CryptographyPrimitives.sol/CryptographyPrimitives.dbg.json +1 -1
  108. package/build/contracts/src/libraries/DecimalsConverterHelper.sol/DecimalsConverterHelper.dbg.json +1 -1
  109. package/build/contracts/src/libraries/DelegateCallAware.sol/DelegateCallAware.dbg.json +1 -1
  110. package/build/contracts/src/libraries/DoubleLogicUUPSUpgradeable.sol/DoubleLogicUUPSUpgradeable.dbg.json +1 -1
  111. package/build/contracts/src/libraries/GasRefundEnabled.sol/GasRefundEnabled.dbg.json +1 -1
  112. package/build/contracts/src/libraries/IGasRefunder.sol/IGasRefunder.dbg.json +1 -1
  113. package/build/contracts/src/libraries/IReader4844.sol/IReader4844.dbg.json +1 -1
  114. package/build/contracts/src/libraries/MerkleLib.sol/MerkleLib.dbg.json +1 -1
  115. package/build/contracts/src/libraries/MerkleLib.sol/MerkleLib.json +2 -2
  116. package/build/contracts/src/libraries/UUPSNotUpgradeable.sol/UUPSNotUpgradeable.dbg.json +1 -1
  117. package/build/contracts/src/mocks/Benchmarks.sol/Benchmarks.dbg.json +1 -1
  118. package/build/contracts/src/mocks/BridgeStub.sol/BridgeStub.dbg.json +1 -1
  119. package/build/contracts/src/mocks/BridgeStub.sol/BridgeStub.json +2 -2
  120. package/build/contracts/src/mocks/BridgeUnproxied.sol/BridgeUnproxied.dbg.json +1 -1
  121. package/build/contracts/src/mocks/BridgeUnproxied.sol/BridgeUnproxied.json +2 -2
  122. package/build/contracts/src/mocks/CreateTest.sol/CreateTest.dbg.json +4 -0
  123. package/build/contracts/src/mocks/CreateTest.sol/CreateTest.json +15 -0
  124. package/build/contracts/src/mocks/HostioTest.sol/HostioTest.dbg.json +4 -0
  125. package/build/contracts/src/mocks/HostioTest.sol/HostioTest.json +513 -0
  126. package/build/contracts/src/mocks/InboxStub.sol/InboxStub.dbg.json +1 -1
  127. package/build/contracts/src/mocks/InboxStub.sol/InboxStub.json +2 -2
  128. package/build/contracts/src/mocks/MerkleTreeAccess.sol/MerkleTreeAccess.dbg.json +1 -1
  129. package/build/contracts/src/mocks/MerkleTreeAccess.sol/MerkleTreeAccess.json +2 -2
  130. package/build/contracts/src/mocks/MockRollupEventInbox.sol/MockRollupEventInbox.dbg.json +1 -1
  131. package/build/contracts/src/mocks/MockRollupEventInbox.sol/MockRollupEventInbox.json +2 -2
  132. package/build/contracts/src/mocks/MultiCallTest.sol/MultiCallTest.dbg.json +1 -1
  133. package/build/contracts/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol/PendingBlkTimeAndNrAdvanceCheck.dbg.json +1 -1
  134. package/build/contracts/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol/PendingBlkTimeAndNrAdvanceCheck.json +2 -2
  135. package/build/contracts/src/mocks/Program.sol/ProgramTest.dbg.json +1 -1
  136. package/build/contracts/src/mocks/Program.sol/ProgramTest.json +2 -2
  137. package/build/contracts/src/mocks/ProxyAdminForBinding.sol/ProxyAdminForBinding.dbg.json +1 -1
  138. package/build/contracts/src/mocks/SdkStorage.sol/SdkStorage.dbg.json +1 -1
  139. package/build/contracts/src/mocks/SequencerInboxBlobMock.sol/SequencerInboxBlobMock.dbg.json +1 -1
  140. package/build/contracts/src/mocks/SequencerInboxBlobMock.sol/SequencerInboxBlobMock.json +5 -5
  141. package/build/contracts/src/mocks/SequencerInboxStub.sol/SequencerInboxStub.dbg.json +1 -1
  142. package/build/contracts/src/mocks/SequencerInboxStub.sol/SequencerInboxStub.json +5 -5
  143. package/build/contracts/src/mocks/Simple.sol/Simple.dbg.json +1 -1
  144. package/build/contracts/src/mocks/Simple.sol/Simple.json +2 -2
  145. package/build/contracts/src/mocks/SimpleCacheManager.sol/SimpleCacheManager.dbg.json +1 -1
  146. package/build/contracts/src/mocks/SimpleOneStepProofEntry.sol/SimpleOneStepProofEntry.dbg.json +1 -1
  147. package/build/contracts/src/mocks/SimpleOneStepProofEntry.sol/SimpleOneStepProofEntry.json +2 -2
  148. package/build/contracts/src/mocks/SimpleProxy.sol/SimpleProxy.dbg.json +1 -1
  149. package/build/contracts/src/mocks/TestWETH9.sol/IWETH9.dbg.json +1 -1
  150. package/build/contracts/src/mocks/TestWETH9.sol/TestWETH9.dbg.json +1 -1
  151. package/build/contracts/src/mocks/UpgradeExecutorMock.sol/UpgradeExecutorMock.dbg.json +1 -1
  152. package/build/contracts/src/node-interface/NodeInterface.sol/NodeInterface.dbg.json +1 -1
  153. package/build/contracts/src/node-interface/NodeInterfaceDebug.sol/NodeInterfaceDebug.dbg.json +1 -1
  154. package/build/contracts/src/osp/HashProofHelper.sol/HashProofHelper.dbg.json +1 -1
  155. package/build/contracts/src/osp/IOneStepProofEntry.sol/IOneStepProofEntry.dbg.json +1 -1
  156. package/build/contracts/src/osp/IOneStepProofEntry.sol/OneStepProofEntryLib.dbg.json +1 -1
  157. package/build/contracts/src/osp/IOneStepProver.sol/IOneStepProver.dbg.json +1 -1
  158. package/build/contracts/src/osp/OneStepProofEntry.sol/OneStepProofEntry.dbg.json +1 -1
  159. package/build/contracts/src/osp/OneStepProver0.sol/OneStepProver0.dbg.json +1 -1
  160. package/build/contracts/src/osp/OneStepProverHostIo.sol/OneStepProverHostIo.dbg.json +1 -1
  161. package/build/contracts/src/osp/OneStepProverMath.sol/OneStepProverMath.dbg.json +1 -1
  162. package/build/contracts/src/osp/OneStepProverMemory.sol/OneStepProverMemory.dbg.json +1 -1
  163. package/build/contracts/src/precompiles/ArbAddressTable.sol/ArbAddressTable.dbg.json +1 -1
  164. package/build/contracts/src/precompiles/ArbAggregator.sol/ArbAggregator.dbg.json +1 -1
  165. package/build/contracts/src/precompiles/ArbBLS.sol/ArbBLS.dbg.json +1 -1
  166. package/build/contracts/src/precompiles/ArbDebug.sol/ArbDebug.dbg.json +1 -1
  167. package/build/contracts/src/precompiles/ArbFunctionTable.sol/ArbFunctionTable.dbg.json +1 -1
  168. package/build/contracts/src/precompiles/ArbGasInfo.sol/ArbGasInfo.dbg.json +1 -1
  169. package/build/contracts/src/precompiles/ArbInfo.sol/ArbInfo.dbg.json +1 -1
  170. package/build/contracts/src/precompiles/ArbOwner.sol/ArbOwner.dbg.json +1 -1
  171. package/build/contracts/src/precompiles/ArbOwnerPublic.sol/ArbOwnerPublic.dbg.json +1 -1
  172. package/build/contracts/src/precompiles/ArbRetryableTx.sol/ArbRetryableTx.dbg.json +1 -1
  173. package/build/contracts/src/precompiles/ArbStatistics.sol/ArbStatistics.dbg.json +1 -1
  174. package/build/contracts/src/precompiles/ArbSys.sol/ArbSys.dbg.json +1 -1
  175. package/build/contracts/src/precompiles/ArbWasm.sol/ArbWasm.dbg.json +1 -1
  176. package/build/contracts/src/precompiles/ArbWasm.sol/ArbWasm.json +4 -4
  177. package/build/contracts/src/precompiles/ArbWasmCache.sol/ArbWasmCache.dbg.json +1 -1
  178. package/build/contracts/src/precompiles/ArbosActs.sol/ArbosActs.dbg.json +1 -1
  179. package/build/contracts/src/precompiles/ArbosTest.sol/ArbosTest.dbg.json +1 -1
  180. package/build/contracts/src/rollup/AbsRollupEventInbox.sol/AbsRollupEventInbox.dbg.json +1 -1
  181. package/build/contracts/src/rollup/Assertion.sol/AssertionNodeLib.dbg.json +1 -1
  182. package/build/contracts/src/rollup/AssertionState.sol/AssertionStateLib.dbg.json +1 -1
  183. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/BOLDUpgradeAction.dbg.json +1 -1
  184. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/BOLDUpgradeAction.json +2 -2
  185. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ConstantArrayStorage.dbg.json +1 -1
  186. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ConstantArrayStorage.json +2 -2
  187. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollup.dbg.json +1 -1
  188. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollupAdmin.dbg.json +1 -1
  189. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ISeqInboxPostUpgradeInit.dbg.json +1 -1
  190. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/RollupReader.dbg.json +1 -1
  191. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/RollupReader.json +2 -2
  192. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/StateHashPreImageLookup.dbg.json +1 -1
  193. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/StateHashPreImageLookup.json +2 -2
  194. package/build/contracts/src/rollup/BridgeCreator.sol/BridgeCreator.dbg.json +1 -1
  195. package/build/contracts/src/rollup/BridgeCreator.sol/BridgeCreator.json +2 -2
  196. package/build/contracts/src/rollup/DeployHelper.sol/DeployHelper.dbg.json +1 -1
  197. package/build/contracts/src/rollup/DeployHelper.sol/DeployHelper.json +2 -2
  198. package/build/contracts/src/rollup/ERC20RollupEventInbox.sol/ERC20RollupEventInbox.dbg.json +1 -1
  199. package/build/contracts/src/rollup/ERC20RollupEventInbox.sol/ERC20RollupEventInbox.json +2 -2
  200. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/FactoryDeployerHelper.dbg.json +1 -1
  201. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IDeployHelper.dbg.json +1 -1
  202. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IERC20.dbg.json +1 -1
  203. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IERC20Bridge.dbg.json +1 -1
  204. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IInboxBase.dbg.json +1 -1
  205. package/build/contracts/src/rollup/IRollupAdmin.sol/IRollupAdmin.dbg.json +1 -1
  206. package/build/contracts/src/rollup/IRollupCore.sol/IRollupCore.dbg.json +1 -1
  207. package/build/contracts/src/rollup/IRollupEventInbox.sol/IRollupEventInbox.dbg.json +1 -1
  208. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUser.dbg.json +1 -1
  209. package/build/contracts/src/rollup/RollupAdminLogic.sol/RollupAdminLogic.dbg.json +1 -1
  210. package/build/contracts/src/rollup/RollupAdminLogic.sol/RollupAdminLogic.json +2 -2
  211. package/build/contracts/src/rollup/RollupCore.sol/RollupCore.dbg.json +1 -1
  212. package/build/contracts/src/rollup/RollupCreator.sol/RollupCreator.dbg.json +1 -1
  213. package/build/contracts/src/rollup/RollupCreator.sol/RollupCreator.json +2 -2
  214. package/build/contracts/src/rollup/RollupEventInbox.sol/RollupEventInbox.dbg.json +1 -1
  215. package/build/contracts/src/rollup/RollupEventInbox.sol/RollupEventInbox.json +2 -2
  216. package/build/contracts/src/rollup/RollupLib.sol/RollupLib.dbg.json +1 -1
  217. package/build/contracts/src/rollup/RollupLib.sol/RollupLib.json +2 -2
  218. package/build/contracts/src/rollup/RollupProxy.sol/RollupProxy.dbg.json +1 -1
  219. package/build/contracts/src/rollup/RollupProxy.sol/RollupProxy.json +2 -2
  220. package/build/contracts/src/rollup/RollupUserLogic.sol/RollupUserLogic.dbg.json +1 -1
  221. package/build/contracts/src/rollup/RollupUserLogic.sol/RollupUserLogic.json +2 -2
  222. package/build/contracts/src/rollup/ValidatorWallet.sol/ValidatorWallet.dbg.json +1 -1
  223. package/build/contracts/src/rollup/ValidatorWallet.sol/ValidatorWallet.json +2 -2
  224. package/build/contracts/src/rollup/ValidatorWalletCreator.sol/ValidatorWalletCreator.dbg.json +1 -1
  225. package/build/contracts/src/rollup/ValidatorWalletCreator.sol/ValidatorWalletCreator.json +2 -2
  226. package/build/contracts/src/state/Deserialize.sol/Deserialize.dbg.json +1 -1
  227. package/build/contracts/src/state/GlobalState.sol/GlobalStateLib.dbg.json +1 -1
  228. package/build/contracts/src/state/Instructions.sol/Instructions.dbg.json +1 -1
  229. package/build/contracts/src/state/Machine.sol/MachineLib.dbg.json +1 -1
  230. package/build/contracts/src/state/MerkleProof.sol/MerkleProofLib.dbg.json +1 -1
  231. package/build/contracts/src/state/Module.sol/ModuleLib.dbg.json +1 -1
  232. package/build/contracts/src/state/ModuleMemory.sol/ModuleMemoryLib.dbg.json +1 -1
  233. package/build/contracts/src/state/ModuleMemoryCompact.sol/ModuleMemoryCompactLib.dbg.json +1 -1
  234. package/build/contracts/src/state/MultiStack.sol/MultiStackLib.dbg.json +1 -1
  235. package/build/contracts/src/state/PcArray.sol/PcArrayLib.dbg.json +1 -1
  236. package/build/contracts/src/state/StackFrame.sol/StackFrameLib.dbg.json +1 -1
  237. package/build/contracts/src/state/Value.sol/ValueLib.dbg.json +1 -1
  238. package/build/contracts/src/state/ValueArray.sol/ValueArrayLib.dbg.json +1 -1
  239. package/build/contracts/src/state/ValueStack.sol/ValueStackLib.dbg.json +1 -1
  240. package/build/contracts/src/test-helpers/BridgeTester.sol/BridgeTester.dbg.json +1 -1
  241. package/build/contracts/src/test-helpers/BridgeTester.sol/BridgeTester.json +2 -2
  242. package/build/contracts/src/test-helpers/CryptographyPrimitivesTester.sol/CryptographyPrimitivesTester.dbg.json +1 -1
  243. package/build/contracts/src/test-helpers/EthVault.sol/EthVault.dbg.json +1 -1
  244. package/build/contracts/src/test-helpers/MessageTester.sol/MessageTester.dbg.json +1 -1
  245. package/build/contracts/src/test-helpers/OutboxWithoutOptTester.sol/OutboxWithoutOptTester.dbg.json +1 -1
  246. package/build/contracts/src/test-helpers/OutboxWithoutOptTester.sol/OutboxWithoutOptTester.json +2 -2
  247. package/build/contracts/src/test-helpers/RollupMock.sol/RollupMock.dbg.json +1 -1
  248. package/build/contracts/src/test-helpers/TestToken.sol/TestToken.dbg.json +1 -1
  249. package/build/contracts/src/test-helpers/ValueArrayTester.sol/ValueArrayTester.dbg.json +1 -1
  250. package/out/yul/Reader4844.yul/Reader4844.json +1 -1
  251. package/package.json +1 -1
  252. package/src/bridge/AbsInbox.sol +10 -4
  253. package/src/bridge/IInboxBase.sol +6 -2
  254. package/src/bridge/Inbox.sol +3 -0
  255. package/src/bridge/SequencerInbox.sol +10 -11
  256. package/src/challengeV2/EdgeChallengeManager.sol +1 -225
  257. package/src/challengeV2/IAssertionChain.sol +1 -1
  258. package/src/challengeV2/IEdgeChallengeManager.sol +233 -0
  259. package/src/challengeV2/libraries/ChallengeEdgeLib.sol +1 -57
  260. package/src/challengeV2/libraries/EdgeChallengeManagerLib.sol +2 -113
  261. package/src/challengeV2/libraries/Structs.sol +176 -0
  262. package/src/libraries/CallerChecker.sol +18 -0
  263. package/src/libraries/Error.sol +3 -0
  264. package/src/libraries/GasRefundEnabled.sol +2 -2
  265. package/src/mocks/CreateTest.sol +44 -0
  266. package/src/mocks/HostioTest.sol +200 -0
  267. package/src/precompiles/ArbSys.sol +2 -1
  268. package/src/precompiles/ArbWasm.sol +1 -1
  269. package/src/rollup/IRollupCore.sol +1 -1
  270. package/build/contracts/src/challengeV2/EdgeChallengeManager.sol/IEdgeChallengeManager.dbg.json +0 -4
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/28754c4998b67fc9c9d6d849262cf39e.json"
3
+ "buildInfo": "../../../build-info/20d3c20b27a0078f8acb7ef1c538821c.json"
4
4
  }
@@ -1 +1 @@
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":{}}
1
+ {"abi":null,"bytecode":{"object":"0x605780600a5f395ff3fe346053575f3560e01c8063e83a2d8214602757631f6d6ef714601f575f80fd5b4a5f5260205ff35b5f5b804990811560415760019160408260051b0152016029565b60409060205f528060205260051b015ff35b5f80fd","sourceMap":"65:19:0:-:0;109:21;;106:1;97:38;155:1;148:13","linkReferences":{}},"deployedBytecode":{"object":"0x346053575f3560e01c8063e83a2d8214602757631f6d6ef714601f575f80fd5b4a5f5260205ff35b5f5b804990811560415760019160408260051b0152016029565b60409060205f528060205260051b015ff35b5f80fd","sourceMap":"249:11:0:-:0;246:31;;324:1;311:15;305:4;301:26;344:467;349:10;344:467;;;833:10;828:120;;;985:1;975:12;;844:104;876:19;873:1;866:30;927:2;924:1;917:13;360:451;391:1;447:228;485:22;;535:12;;;532:25;;651:1;593:9;604:2;593:9;597:1;593:9;589:18;582:32;644:9;423:3;;548:9;789:2;550:5;706:2;703:1;696:13;730;737:2;730:13;782:1;778:9;774:18;771:1;764:29;261:16;273:1;263:12;","linkReferences":{}},"methodIdentifiers":{}}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arbitrum/nitro-contracts",
3
- "version": "3.0.0-alpha.0",
3
+ "version": "3.0.0-alpha.1",
4
4
  "description": "Layer 2 precompiles and rollup for Arbitrum Nitro",
5
5
  "author": "Offchain Labs, Inc.",
6
6
  "license": "BUSL-1.1",
@@ -6,12 +6,12 @@ pragma solidity ^0.8.4;
6
6
 
7
7
  import {
8
8
  DataTooLarge,
9
- Deprecated,
10
9
  GasLimitTooLarge,
11
10
  InsufficientValue,
12
11
  InsufficientSubmissionCost,
13
12
  L1Forked,
14
13
  NotAllowedOrigin,
14
+ NotCodelessOrigin,
15
15
  NotRollupOrOwner,
16
16
  RetryableData
17
17
  } from "../libraries/Error.sol";
@@ -19,6 +19,7 @@ import "./IInboxBase.sol";
19
19
  import "./ISequencerInbox.sol";
20
20
  import "./IBridge.sol";
21
21
  import "../libraries/AddressAliasHelper.sol";
22
+ import "../libraries/CallerChecker.sol";
22
23
  import "../libraries/DelegateCallAware.sol";
23
24
  import {
24
25
  L1MessageType_submitRetryableTx,
@@ -136,9 +137,14 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
136
137
 
137
138
  /// @inheritdoc IInboxBase
138
139
  function sendL2MessageFromOrigin(
139
- bytes calldata
140
- ) external pure returns (uint256) {
141
- revert Deprecated();
140
+ bytes calldata messageData
141
+ ) external whenNotPaused onlyAllowed returns (uint256) {
142
+ if (_chainIdChanged()) revert L1Forked();
143
+ if (!CallerChecker.isCallerCodelessOrigin()) revert NotCodelessOrigin();
144
+ if (messageData.length > maxDataSize) revert DataTooLarge(messageData.length, maxDataSize);
145
+ uint256 msgNum = _deliverToBridge(L2_MSG, msg.sender, keccak256(messageData), 0);
146
+ emit InboxMessageDeliveredFromOrigin(msgNum);
147
+ return msgNum;
142
148
  }
143
149
 
144
150
  /// @inheritdoc IInboxBase
@@ -16,9 +16,13 @@ interface IInboxBase is IDelayedMessageProvider {
16
16
 
17
17
  function maxDataSize() external view returns (uint256);
18
18
 
19
- /// @dev Deprecated due to EIP-3074
19
+ /**
20
+ * @notice Send a generic L2 message to the chain
21
+ * @dev This method is an optimization to avoid having to emit the entirety of the messageData in a log. Instead validators are expected to be able to parse the data from the transaction's input
22
+ * @param messageData Data of the message being sent
23
+ */
20
24
  function sendL2MessageFromOrigin(
21
- bytes calldata
25
+ bytes calldata messageData
22
26
  ) external returns (uint256);
23
27
 
24
28
  /**
@@ -109,6 +109,7 @@ contract Inbox is AbsInbox, IInbox {
109
109
  if (!_chainIdChanged()) revert NotForked();
110
110
  // solhint-disable-next-line avoid-tx-origin
111
111
  if (msg.sender != tx.origin) revert NotOrigin();
112
+ // no code size check required because we only want to know if msg.sender is an EOA to undo alias
112
113
  // arbos will discard unsigned tx with gas limit too large
113
114
  if (gasLimit > type(uint64).max) {
114
115
  revert GasLimitTooLarge();
@@ -142,6 +143,7 @@ contract Inbox is AbsInbox, IInbox {
142
143
  if (!_chainIdChanged()) revert NotForked();
143
144
  // solhint-disable-next-line avoid-tx-origin
144
145
  if (msg.sender != tx.origin) revert NotOrigin();
146
+ // no code size check required because we only want to know if msg.sender is an EOA to undo alias
145
147
  // arbos will discard unsigned tx with gas limit too large
146
148
  if (gasLimit > type(uint64).max) {
147
149
  revert GasLimitTooLarge();
@@ -174,6 +176,7 @@ contract Inbox is AbsInbox, IInbox {
174
176
  if (!_chainIdChanged()) revert NotForked();
175
177
  // solhint-disable-next-line avoid-tx-origin
176
178
  if (msg.sender != tx.origin) revert NotOrigin();
179
+ // no code size check required because we only want to know if msg.sender is an EOA to undo alias
177
180
  // arbos will discard unsigned tx with gas limit too large
178
181
  if (gasLimit > type(uint64).max) {
179
182
  revert GasLimitTooLarge();
@@ -19,6 +19,7 @@ import {
19
19
  NoSuchKeyset,
20
20
  NotForked,
21
21
  NotBatchPosterManager,
22
+ NotCodelessOrigin,
22
23
  RollupNotChanged,
23
24
  DataBlobsNotSupported,
24
25
  InitParamZero,
@@ -42,6 +43,7 @@ import "../rollup/IRollupLogic.sol";
42
43
  import "./Messages.sol";
43
44
  import "../precompiles/ArbGasInfo.sol";
44
45
  import "../precompiles/ArbSys.sol";
46
+ import "../libraries/CallerChecker.sol";
45
47
  import "../libraries/IReader4844.sol";
46
48
 
47
49
  import "../libraries/DelegateCallAware.sol";
@@ -333,8 +335,7 @@ contract SequencerInbox is DelegateCallAware, GasRefundEnabled, ISequencerInbox
333
335
  uint256 prevMessageCount,
334
336
  uint256 newMessageCount
335
337
  ) external refundsGas(gasRefunder, IReader4844(address(0))) {
336
- // solhint-disable-next-line avoid-tx-origin
337
- if (msg.sender != tx.origin) revert NotOrigin();
338
+ if (!CallerChecker.isCallerCodelessOrigin()) revert NotCodelessOrigin();
338
339
  if (!isBatchPoster[msg.sender]) revert NotBatchPoster();
339
340
  if (isDelayProofRequired(afterDelayedMessagesRead)) revert DelayProofRequired();
340
341
 
@@ -387,8 +388,7 @@ contract SequencerInbox is DelegateCallAware, GasRefundEnabled, ISequencerInbox
387
388
  uint256 newMessageCount,
388
389
  DelayProof calldata delayProof
389
390
  ) external refundsGas(gasRefunder, IReader4844(address(0))) {
390
- // solhint-disable-next-line avoid-tx-origin
391
- if (msg.sender != tx.origin) revert NotOrigin();
391
+ if (!CallerChecker.isCallerCodelessOrigin()) revert NotCodelessOrigin();
392
392
  if (!isBatchPoster[msg.sender]) revert NotBatchPoster();
393
393
  if (!isDelayBufferable) revert NotDelayBufferable();
394
394
 
@@ -436,10 +436,9 @@ contract SequencerInbox is DelegateCallAware, GasRefundEnabled, ISequencerInbox
436
436
  if (hostChainIsArbitrum) revert DataBlobsNotSupported();
437
437
 
438
438
  // submit a batch spending report to refund the entity that produced the blob batch data
439
- // same as using calldata, we only submit spending report if the caller is the origin of the tx
439
+ // same as using calldata, we only submit spending report if the caller is the origin and is codeless
440
440
  // such that one cannot "double-claim" batch posting refund in the same tx
441
- // solhint-disable-next-line avoid-tx-origin
442
- if (msg.sender == tx.origin && !isUsingFeeToken) {
441
+ if (CallerChecker.isCallerCodelessOrigin() && !isUsingFeeToken) {
443
442
  submitBatchSpendingReport(dataHash, seqMessageIndex, block.basefee, blobGas);
444
443
  }
445
444
  }
@@ -450,7 +449,7 @@ contract SequencerInbox is DelegateCallAware, GasRefundEnabled, ISequencerInbox
450
449
  uint256 afterDelayedMessagesRead,
451
450
  uint256 prevMessageCount,
452
451
  uint256 newMessageCount,
453
- bool isFromOrigin
452
+ bool isFromCodelessOrigin
454
453
  ) internal {
455
454
  (bytes32 dataHash, IBridge.TimeBounds memory timeBounds) =
456
455
  formCallDataHash(data, afterDelayedMessagesRead);
@@ -458,7 +457,7 @@ contract SequencerInbox is DelegateCallAware, GasRefundEnabled, ISequencerInbox
458
457
  addSequencerL2BatchImpl(
459
458
  dataHash,
460
459
  afterDelayedMessagesRead,
461
- isFromOrigin ? data.length : 0,
460
+ isFromCodelessOrigin ? data.length : 0,
462
461
  prevMessageCount,
463
462
  newMessageCount
464
463
  );
@@ -475,12 +474,12 @@ contract SequencerInbox is DelegateCallAware, GasRefundEnabled, ISequencerInbox
475
474
  delayedAcc,
476
475
  totalDelayedMessagesRead,
477
476
  timeBounds,
478
- isFromOrigin
477
+ isFromCodelessOrigin
479
478
  ? IBridge.BatchDataLocation.TxInput
480
479
  : IBridge.BatchDataLocation.SeparateBatchEvent
481
480
  );
482
481
 
483
- if (!isFromOrigin) {
482
+ if (!isFromCodelessOrigin) {
484
483
  emit SequencerBatchData(seqMessageIndex, data);
485
484
  }
486
485
  }
@@ -6,7 +6,7 @@ pragma solidity ^0.8.17;
6
6
 
7
7
  import "../rollup/Assertion.sol";
8
8
  import "./libraries/UintUtilsLib.sol";
9
- import "./IAssertionChain.sol";
9
+ import "./IEdgeChallengeManager.sol";
10
10
  import "./libraries/EdgeChallengeManagerLib.sol";
11
11
  import "../libraries/Constants.sol";
12
12
  import "../state/Machine.sol";
@@ -14,230 +14,6 @@ import "../state/Machine.sol";
14
14
  import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
15
15
  import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
16
16
 
17
- /// @title EdgeChallengeManager interface
18
- interface IEdgeChallengeManager {
19
- /// @notice Initialize the EdgeChallengeManager. EdgeChallengeManagers are upgradeable
20
- /// so use the initializer paradigm
21
- /// @param _assertionChain The assertion chain contract
22
- /// @param _challengePeriodBlocks The amount of cumulative time an edge must spend unrivaled before it can be confirmed
23
- /// This should be the censorship period + the cumulative amount of time needed to do any
24
- /// offchain calculation. We currently estimate around 10 mins for each layer zero edge and 1
25
- /// one minute for each other edge.
26
- /// @param _oneStepProofEntry The one step proof logic
27
- /// @param layerZeroBlockEdgeHeight The end height of layer zero edges of type Block
28
- /// @param layerZeroBigStepEdgeHeight The end height of layer zero edges of type BigStep
29
- /// @param layerZeroSmallStepEdgeHeight The end height of layer zero edges of type SmallStep
30
- /// @param _stakeToken The token that stake will be provided in when creating zero layer block edges
31
- /// @param _excessStakeReceiver The address that excess stake will be sent to when 2nd+ block edge is created
32
- /// @param _numBigStepLevel The number of bigstep levels
33
- /// @param _stakeAmounts The stake amount for each level. (first element is for block level)
34
- function initialize(
35
- IAssertionChain _assertionChain,
36
- uint64 _challengePeriodBlocks,
37
- IOneStepProofEntry _oneStepProofEntry,
38
- uint256 layerZeroBlockEdgeHeight,
39
- uint256 layerZeroBigStepEdgeHeight,
40
- uint256 layerZeroSmallStepEdgeHeight,
41
- IERC20 _stakeToken,
42
- address _excessStakeReceiver,
43
- uint8 _numBigStepLevel,
44
- uint256[] calldata _stakeAmounts
45
- ) external;
46
-
47
- function challengePeriodBlocks() external view returns (uint64);
48
-
49
- /// @notice The one step proof resolver used to decide between rival SmallStep edges of length 1
50
- function oneStepProofEntry() external view returns (IOneStepProofEntry);
51
-
52
- /// @notice Performs necessary checks and creates a new layer zero edge
53
- /// @param args Edge creation args
54
- function createLayerZeroEdge(
55
- CreateEdgeArgs calldata args
56
- ) external returns (bytes32);
57
-
58
- /// @notice Bisect an edge. This creates two child edges:
59
- /// lowerChild: has the same start root and height as this edge, but a different end root and height
60
- /// upperChild: has the same end root and height as this edge, but a different start root and height
61
- /// The lower child end root and height are equal to the upper child start root and height. This height
62
- /// is the mandatoryBisectionHeight.
63
- /// The lower child may already exist, however it's not possible for the upper child to exist as that would
64
- /// mean that the edge has already been bisected
65
- /// @param edgeId Edge to bisect
66
- /// @param bisectionHistoryRoot The new history root to be used in the lower and upper children
67
- /// @param prefixProof A proof to show that the bisectionHistoryRoot commits to a prefix of the current endHistoryRoot
68
- /// @return lowerChildId The id of the newly created lower child edge
69
- /// @return upperChildId The id of the newly created upper child edge
70
- function bisectEdge(
71
- bytes32 edgeId,
72
- bytes32 bisectionHistoryRoot,
73
- bytes calldata prefixProof
74
- ) external returns (bytes32, bytes32);
75
-
76
- /// @notice An edge can be confirmed if the total amount of time it and a single chain of its direct ancestors
77
- /// has spent unrivaled is greater than the challenge period.
78
- /// @dev Edges inherit time from their parents, so the sum of unrivaled timers is compared against the threshold.
79
- /// Given that an edge cannot become unrivaled after becoming rivaled, once the threshold is passed
80
- /// it will always remain passed. The direct ancestors of an edge are linked by parent-child links for edges
81
- /// of the same level, and claimId-edgeId links for zero layer edges that claim an edge in the level below.
82
- /// This method also includes the amount of time the assertion being claimed spent without a sibling
83
- /// @param edgeId The id of the edge to confirm
84
- function confirmEdgeByTime(
85
- bytes32 edgeId,
86
- AssertionStateData calldata claimStateData
87
- ) external;
88
-
89
- /// @notice Update multiple edges' timer cache by their children. Equivalent to calling updateTimerCacheByChildren for each edge.
90
- /// May update timer cache above maximum if the last edge's timer cache was below maximumCachedTime.
91
- /// Revert when the last edge's timer cache is already equal to or above maximumCachedTime.
92
- /// @param edgeIds The ids of the edges to update
93
- /// @param maximumCachedTime The maximum amount of cached time allowed on the last edge (β∗)
94
- function multiUpdateTimeCacheByChildren(
95
- bytes32[] calldata edgeIds,
96
- uint256 maximumCachedTime
97
- ) external;
98
-
99
- /// @notice Update an edge's timer cache by its children.
100
- /// Sets the edge's timer cache to its timeUnrivaled + (minimum timer cache of its children).
101
- /// May update timer cache above maximum if the last edge's timer cache was below maximumCachedTime.
102
- /// Revert when the edge's timer cache is already equal to or above maximumCachedTime.
103
- /// @param edgeId The id of the edge to update
104
- /// @param maximumCachedTime The maximum amount of cached time allowed on the edge (β∗)
105
- function updateTimerCacheByChildren(bytes32 edgeId, uint256 maximumCachedTime) external;
106
-
107
- /// @notice Given a one step fork edge and an edge with matching claim id,
108
- /// set the one step fork edge's timer cache to its timeUnrivaled + claiming edge's timer cache.
109
- /// May update timer cache above maximum if the last edge's timer cache was below maximumCachedTime.
110
- /// Revert when the edge's timer cache is already equal to or above maximumCachedTime.
111
- /// @param edgeId The id of the edge to update
112
- /// @param claimingEdgeId The id of the edge which has a claimId equal to edgeId
113
- /// @param maximumCachedTime The maximum amount of cached time allowed on the edge (β∗)
114
- function updateTimerCacheByClaim(
115
- bytes32 edgeId,
116
- bytes32 claimingEdgeId,
117
- uint256 maximumCachedTime
118
- ) external;
119
-
120
- /// @notice Confirm an edge by executing a one step proof
121
- /// @dev One step proofs can only be executed against edges that have length one and of type SmallStep
122
- /// @param edgeId The id of the edge to confirm
123
- /// @param oneStepData Input data to the one step proof
124
- /// @param prevConfig Data about the config set in prev
125
- /// @param beforeHistoryInclusionProof Proof that the state which is the start of the edge is committed to by the startHistoryRoot
126
- /// @param afterHistoryInclusionProof Proof that the state which is the end of the edge is committed to by the endHistoryRoot
127
- function confirmEdgeByOneStepProof(
128
- bytes32 edgeId,
129
- OneStepData calldata oneStepData,
130
- ConfigData calldata prevConfig,
131
- bytes32[] calldata beforeHistoryInclusionProof,
132
- bytes32[] calldata afterHistoryInclusionProof
133
- ) external;
134
-
135
- /// @notice When zero layer block edges are created a stake is also provided
136
- /// The stake on this edge can be refunded if the edge is confirme
137
- function refundStake(
138
- bytes32 edgeId
139
- ) external;
140
-
141
- /// @notice Zero layer edges have to be a fixed height.
142
- /// This function returns the end height for a given edge type
143
- function getLayerZeroEndHeight(
144
- EdgeType eType
145
- ) external view returns (uint256);
146
-
147
- /// @notice Calculate the unique id of an edge
148
- /// @param level The level of the edge
149
- /// @param originId The origin id of the edge
150
- /// @param startHeight The start height of the edge
151
- /// @param startHistoryRoot The start history root of the edge
152
- /// @param endHeight The end height of the edge
153
- /// @param endHistoryRoot The end history root of the edge
154
- function calculateEdgeId(
155
- uint8 level,
156
- bytes32 originId,
157
- uint256 startHeight,
158
- bytes32 startHistoryRoot,
159
- uint256 endHeight,
160
- bytes32 endHistoryRoot
161
- ) external pure returns (bytes32);
162
-
163
- /// @notice Calculate the mutual id of the edge
164
- /// Edges that are rivals share the same mutual id
165
- /// @param level The level of the edge
166
- /// @param originId The origin id of the edge
167
- /// @param startHeight The start height of the edge
168
- /// @param startHistoryRoot The start history root of the edge
169
- /// @param endHeight The end height of the edge
170
- function calculateMutualId(
171
- uint8 level,
172
- bytes32 originId,
173
- uint256 startHeight,
174
- bytes32 startHistoryRoot,
175
- uint256 endHeight
176
- ) external pure returns (bytes32);
177
-
178
- /// @notice Has the edge already been stored in the manager
179
- function edgeExists(
180
- bytes32 edgeId
181
- ) external view returns (bool);
182
-
183
- /// @notice Get full edge data for an edge
184
- function getEdge(
185
- bytes32 edgeId
186
- ) external view returns (ChallengeEdge memory);
187
-
188
- /// @notice The length of the edge, from start height to end height
189
- function edgeLength(
190
- bytes32 edgeId
191
- ) external view returns (uint256);
192
-
193
- /// @notice Does this edge currently have one or more rivals
194
- /// Rival edges share the same mutual id
195
- function hasRival(
196
- bytes32 edgeId
197
- ) external view returns (bool);
198
-
199
- /// @notice The confirmed rival of this mutual id
200
- /// Returns 0 if one does not exist
201
- function confirmedRival(
202
- bytes32 mutualId
203
- ) external view returns (bytes32);
204
-
205
- /// @notice Does the edge have at least one rival, and it has length one
206
- function hasLengthOneRival(
207
- bytes32 edgeId
208
- ) external view returns (bool);
209
-
210
- /// @notice The amount of time this edge has spent without rivals
211
- /// This value is increasing whilst an edge is unrivaled, once a rival is created
212
- /// it is fixed. If an edge has rivals from the moment it is created then it will have
213
- /// a zero time unrivaled
214
- function timeUnrivaled(
215
- bytes32 edgeId
216
- ) external view returns (uint256);
217
-
218
- /// @notice Get the id of the prev assertion that this edge is originates from
219
- /// @dev Uses the parent chain to traverse upwards SmallStep->BigStep->Block->Assertion
220
- /// until it gets to the origin assertion
221
- function getPrevAssertionHash(
222
- bytes32 edgeId
223
- ) external view returns (bytes32);
224
-
225
- /// @notice Fetch the raw first rival record for the given mutual id
226
- /// @dev Returns 0 if there is no edge with the given mutual id
227
- /// Returns a magic value if there is one edge but it is unrivaled
228
- /// Returns the id of the second edge created with the mutual id, if > 1 exists
229
- function firstRival(
230
- bytes32 mutualId
231
- ) external view returns (bytes32);
232
-
233
- /// @notice True if an account has made a layer zero edge with the given mutual id.
234
- /// This is only tracked when the validator whitelist is enabled
235
- function hasMadeLayerZeroRival(
236
- address account,
237
- bytes32 mutualId
238
- ) external view returns (bool);
239
- }
240
-
241
17
  /// @title A challenge manager that uses edge structures to decide between Assertions
242
18
  /// @notice When two assertions are created that have the same predecessor the protocol needs to decide which of the two is correct
243
19
  /// This challenge manager allows the staker who has created the valid assertion to enforce that it will be confirmed, and all
@@ -2,7 +2,7 @@
2
2
  // For license information, see https://github.com/offchainlabs/bold/blob/main/LICENSE
3
3
  // SPDX-License-Identifier: BUSL-1.1
4
4
  //
5
- pragma solidity ^0.8.17;
5
+ pragma solidity ^0.8.0;
6
6
 
7
7
  import "../bridge/IBridge.sol";
8
8
  import "../osp/IOneStepProofEntry.sol";