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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (541) 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/{src/express-lane-auction/ELCRound.sol/LatestELCRoundsLib.json → @openzeppelin/contracts/utils/Create2.sol/Create2.json} +4 -4
  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 +1 -1
  56. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/structs/EnumerableSetUpgradeable.sol/EnumerableSetUpgradeable.json +2 -2
  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/{@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20MetadataUpgradeable.sol/IERC20MetadataUpgradeable.json → src/assertionStakingPool/interfaces/IEdgeStakingPool.sol/IEdgeStakingPool.json} +109 -110
  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 +14 -1
  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 +16 -3
  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/IEthBridge.sol/IEthBridge.dbg.json +1 -1
  101. package/build/contracts/src/bridge/IInbox.sol/IInbox.dbg.json +1 -1
  102. package/build/contracts/src/bridge/IInboxBase.sol/IInboxBase.dbg.json +1 -1
  103. package/build/contracts/src/bridge/IOutbox.sol/IOutbox.dbg.json +1 -1
  104. package/build/contracts/src/bridge/IOwnable.sol/IOwnable.dbg.json +1 -1
  105. package/build/contracts/src/bridge/ISequencerInbox.sol/ISequencerInbox.dbg.json +1 -1
  106. package/build/contracts/src/bridge/ISequencerInbox.sol/ISequencerInbox.json +441 -0
  107. package/build/contracts/src/bridge/Inbox.sol/Inbox.dbg.json +1 -1
  108. package/build/contracts/src/bridge/Inbox.sol/Inbox.json +20 -2
  109. package/build/contracts/src/bridge/Messages.sol/Messages.dbg.json +1 -1
  110. package/build/contracts/src/bridge/Messages.sol/Messages.json +2 -2
  111. package/build/contracts/src/bridge/Outbox.sol/Outbox.dbg.json +1 -1
  112. package/build/contracts/src/bridge/Outbox.sol/Outbox.json +2 -2
  113. package/build/contracts/src/bridge/SequencerInbox.sol/SequencerInbox.dbg.json +1 -1
  114. package/build/contracts/src/bridge/SequencerInbox.sol/SequencerInbox.json +566 -9
  115. package/build/contracts/src/chain/CacheManager.sol/CacheManager.dbg.json +1 -1
  116. package/build/contracts/src/chain/CacheManager.sol/CacheManager.json +15 -2
  117. package/build/contracts/src/challengeV2/EdgeChallengeManager.sol/EdgeChallengeManager.dbg.json +4 -0
  118. package/build/contracts/src/challengeV2/EdgeChallengeManager.sol/EdgeChallengeManager.json +1631 -0
  119. package/build/contracts/src/challengeV2/IAssertionChain.sol/IAssertionChain.dbg.json +4 -0
  120. package/build/contracts/src/challengeV2/IAssertionChain.sol/IAssertionChain.json +247 -0
  121. package/build/contracts/src/challengeV2/IEdgeChallengeManager.sol/IEdgeChallengeManager.dbg.json +4 -0
  122. package/build/contracts/src/challengeV2/IEdgeChallengeManager.sol/IEdgeChallengeManager.json +762 -0
  123. package/build/contracts/src/challengeV2/libraries/ArrayUtilsLib.sol/ArrayUtilsLib.dbg.json +4 -0
  124. package/build/contracts/src/challengeV2/libraries/ArrayUtilsLib.sol/ArrayUtilsLib.json +10 -0
  125. package/build/contracts/src/challengeV2/libraries/ChallengeEdgeLib.sol/ChallengeEdgeLib.dbg.json +4 -0
  126. package/build/contracts/{@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.json → src/challengeV2/libraries/ChallengeEdgeLib.sol/ChallengeEdgeLib.json} +4 -4
  127. package/build/contracts/src/challengeV2/libraries/EdgeChallengeManagerLib.sol/EdgeChallengeManagerLib.dbg.json +4 -0
  128. package/build/contracts/src/challengeV2/libraries/EdgeChallengeManagerLib.sol/EdgeChallengeManagerLib.json +24 -0
  129. package/build/contracts/src/challengeV2/libraries/MerkleTreeAccumulatorLib.sol/MerkleTreeAccumulatorLib.dbg.json +4 -0
  130. package/build/contracts/src/challengeV2/libraries/MerkleTreeAccumulatorLib.sol/MerkleTreeAccumulatorLib.json +24 -0
  131. package/build/contracts/src/challengeV2/libraries/UintUtilsLib.sol/UintUtilsLib.dbg.json +4 -0
  132. package/build/contracts/src/challengeV2/libraries/UintUtilsLib.sol/UintUtilsLib.json +10 -0
  133. package/build/contracts/src/libraries/AddressAliasHelper.sol/AddressAliasHelper.dbg.json +1 -1
  134. package/build/contracts/src/libraries/AddressAliasHelper.sol/AddressAliasHelper.json +2 -2
  135. package/build/contracts/src/libraries/AdminFallbackProxy.sol/AdminFallbackProxy.dbg.json +1 -1
  136. package/build/contracts/src/libraries/AdminFallbackProxy.sol/AdminFallbackProxy.json +2 -2
  137. package/build/contracts/src/libraries/AdminFallbackProxy.sol/DoubleLogicERC1967Upgrade.dbg.json +1 -1
  138. package/build/contracts/src/libraries/ArbitrumChecker.sol/ArbitrumChecker.dbg.json +1 -1
  139. package/build/contracts/src/libraries/ArbitrumChecker.sol/ArbitrumChecker.json +2 -2
  140. package/build/contracts/src/libraries/CallerChecker.sol/CallerChecker.dbg.json +4 -0
  141. package/build/contracts/src/{challenge/ChallengeLib.sol/ChallengeLib.json → libraries/CallerChecker.sol/CallerChecker.json} +4 -4
  142. package/build/contracts/src/libraries/CryptographyPrimitives.sol/CryptographyPrimitives.dbg.json +1 -1
  143. package/build/contracts/src/libraries/CryptographyPrimitives.sol/CryptographyPrimitives.json +2 -2
  144. package/build/contracts/src/libraries/DecimalsConverterHelper.sol/DecimalsConverterHelper.dbg.json +1 -1
  145. package/build/contracts/src/libraries/DecimalsConverterHelper.sol/DecimalsConverterHelper.json +2 -2
  146. package/build/contracts/src/libraries/DelegateCallAware.sol/DelegateCallAware.dbg.json +1 -1
  147. package/build/contracts/src/libraries/DoubleLogicUUPSUpgradeable.sol/DoubleLogicUUPSUpgradeable.dbg.json +1 -1
  148. package/build/contracts/src/libraries/GasRefundEnabled.sol/GasRefundEnabled.dbg.json +1 -1
  149. package/build/contracts/src/libraries/IGasRefunder.sol/IGasRefunder.dbg.json +1 -1
  150. package/build/contracts/src/libraries/IReader4844.sol/IReader4844.dbg.json +1 -1
  151. package/build/contracts/src/libraries/MerkleLib.sol/MerkleLib.dbg.json +1 -1
  152. package/build/contracts/src/libraries/MerkleLib.sol/MerkleLib.json +2 -2
  153. package/build/contracts/src/libraries/UUPSNotUpgradeable.sol/UUPSNotUpgradeable.dbg.json +1 -1
  154. package/build/contracts/src/mocks/Benchmarks.sol/Benchmarks.dbg.json +1 -1
  155. package/build/contracts/src/mocks/Benchmarks.sol/Benchmarks.json +2 -2
  156. package/build/contracts/src/mocks/BridgeStub.sol/BridgeStub.dbg.json +1 -1
  157. package/build/contracts/src/mocks/BridgeStub.sol/BridgeStub.json +8 -8
  158. package/build/contracts/src/mocks/BridgeUnproxied.sol/BridgeUnproxied.dbg.json +1 -1
  159. package/build/contracts/src/mocks/BridgeUnproxied.sol/BridgeUnproxied.json +15 -2
  160. package/build/contracts/src/mocks/CreateTest.sol/CreateTest.dbg.json +1 -1
  161. package/build/contracts/src/mocks/CreateTest.sol/CreateTest.json +2 -2
  162. package/build/contracts/src/mocks/HostioTest.sol/HostioTest.dbg.json +1 -1
  163. package/build/contracts/src/mocks/HostioTest.sol/HostioTest.json +2 -2
  164. package/build/contracts/src/mocks/InboxStub.sol/InboxStub.dbg.json +1 -1
  165. package/build/contracts/src/mocks/InboxStub.sol/InboxStub.json +2 -2
  166. package/build/contracts/src/mocks/MerkleTreeAccess.sol/MerkleTreeAccess.dbg.json +4 -0
  167. package/build/contracts/src/mocks/MerkleTreeAccess.sol/MerkleTreeAccess.json +227 -0
  168. package/build/contracts/src/mocks/MockRollupEventInbox.sol/MockRollupEventInbox.dbg.json +4 -0
  169. package/build/contracts/src/mocks/MockRollupEventInbox.sol/MockRollupEventInbox.json +133 -0
  170. package/build/contracts/src/mocks/MultiCallTest.sol/MultiCallTest.dbg.json +1 -1
  171. package/build/contracts/src/mocks/MultiCallTest.sol/MultiCallTest.json +2 -2
  172. package/build/contracts/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol/PendingBlkTimeAndNrAdvanceCheck.dbg.json +1 -1
  173. package/build/contracts/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol/PendingBlkTimeAndNrAdvanceCheck.json +2 -2
  174. package/build/contracts/src/mocks/Program.sol/ProgramTest.dbg.json +1 -1
  175. package/build/contracts/src/mocks/Program.sol/ProgramTest.json +2 -2
  176. package/build/contracts/src/mocks/ProxyAdminForBinding.sol/ProxyAdminForBinding.dbg.json +1 -1
  177. package/build/contracts/src/mocks/ProxyAdminForBinding.sol/ProxyAdminForBinding.json +2 -2
  178. package/build/contracts/src/mocks/SdkStorage.sol/SdkStorage.dbg.json +1 -1
  179. package/build/contracts/src/mocks/SdkStorage.sol/SdkStorage.json +2 -2
  180. package/build/contracts/src/mocks/SequencerInboxBlobMock.sol/SequencerInboxBlobMock.dbg.json +4 -0
  181. package/build/contracts/src/mocks/SequencerInboxBlobMock.sol/SequencerInboxBlobMock.json +1632 -0
  182. package/build/contracts/src/mocks/SequencerInboxStub.sol/SequencerInboxStub.dbg.json +1 -1
  183. package/build/contracts/src/mocks/SequencerInboxStub.sol/SequencerInboxStub.json +566 -9
  184. package/build/contracts/src/mocks/Simple.sol/Simple.dbg.json +1 -1
  185. package/build/contracts/src/mocks/Simple.sol/Simple.json +2 -2
  186. package/build/contracts/src/mocks/SimpleCacheManager.sol/SimpleCacheManager.dbg.json +1 -1
  187. package/build/contracts/src/mocks/SimpleCacheManager.sol/SimpleCacheManager.json +2 -2
  188. package/build/contracts/src/mocks/SimpleOneStepProofEntry.sol/SimpleOneStepProofEntry.dbg.json +4 -0
  189. package/build/contracts/src/mocks/SimpleOneStepProofEntry.sol/SimpleOneStepProofEntry.json +142 -0
  190. package/build/contracts/src/mocks/SimpleProxy.sol/SimpleProxy.dbg.json +1 -1
  191. package/build/contracts/src/mocks/SimpleProxy.sol/SimpleProxy.json +2 -2
  192. package/build/contracts/src/mocks/TestWETH9.sol/IWETH9.dbg.json +4 -0
  193. package/build/contracts/src/mocks/TestWETH9.sol/IWETH9.json +31 -0
  194. package/build/contracts/src/mocks/TestWETH9.sol/TestWETH9.dbg.json +4 -0
  195. package/build/contracts/src/mocks/TestWETH9.sol/TestWETH9.json +317 -0
  196. package/build/contracts/src/mocks/UpgradeExecutorMock.sol/UpgradeExecutorMock.dbg.json +1 -1
  197. package/build/contracts/src/mocks/UpgradeExecutorMock.sol/UpgradeExecutorMock.json +15 -2
  198. package/build/contracts/src/node-interface/NodeInterface.sol/NodeInterface.dbg.json +1 -1
  199. package/build/contracts/src/node-interface/NodeInterfaceDebug.sol/NodeInterfaceDebug.dbg.json +1 -1
  200. package/build/contracts/src/osp/HashProofHelper.sol/HashProofHelper.dbg.json +1 -1
  201. package/build/contracts/src/osp/HashProofHelper.sol/HashProofHelper.json +2 -2
  202. package/build/contracts/src/osp/IOneStepProofEntry.sol/IOneStepProofEntry.dbg.json +1 -1
  203. package/build/contracts/src/osp/IOneStepProofEntry.sol/IOneStepProofEntry.json +33 -9
  204. package/build/contracts/src/osp/IOneStepProofEntry.sol/OneStepProofEntryLib.dbg.json +1 -1
  205. package/build/contracts/src/osp/IOneStepProofEntry.sol/OneStepProofEntryLib.json +2 -2
  206. package/build/contracts/src/osp/IOneStepProver.sol/IOneStepProver.dbg.json +1 -1
  207. package/build/contracts/src/osp/IOneStepProver.sol/IOneStepProver.json +5 -0
  208. package/build/contracts/src/osp/OneStepProofEntry.sol/OneStepProofEntry.dbg.json +1 -1
  209. package/build/contracts/src/osp/OneStepProofEntry.sol/OneStepProofEntry.json +35 -11
  210. package/build/contracts/src/osp/OneStepProver0.sol/OneStepProver0.dbg.json +1 -1
  211. package/build/contracts/src/osp/OneStepProver0.sol/OneStepProver0.json +7 -2
  212. package/build/contracts/src/osp/OneStepProverHostIo.sol/OneStepProverHostIo.dbg.json +1 -1
  213. package/build/contracts/src/osp/OneStepProverHostIo.sol/OneStepProverHostIo.json +7 -2
  214. package/build/contracts/src/osp/OneStepProverMath.sol/OneStepProverMath.dbg.json +1 -1
  215. package/build/contracts/src/osp/OneStepProverMath.sol/OneStepProverMath.json +7 -2
  216. package/build/contracts/src/osp/OneStepProverMemory.sol/OneStepProverMemory.dbg.json +1 -1
  217. package/build/contracts/src/osp/OneStepProverMemory.sol/OneStepProverMemory.json +7 -2
  218. package/build/contracts/src/precompiles/ArbAddressTable.sol/ArbAddressTable.dbg.json +1 -1
  219. package/build/contracts/src/precompiles/ArbAggregator.sol/ArbAggregator.dbg.json +1 -1
  220. package/build/contracts/src/precompiles/ArbBLS.sol/ArbBLS.dbg.json +1 -1
  221. package/build/contracts/src/precompiles/ArbDebug.sol/ArbDebug.dbg.json +1 -1
  222. package/build/contracts/src/precompiles/ArbFunctionTable.sol/ArbFunctionTable.dbg.json +1 -1
  223. package/build/contracts/src/precompiles/ArbGasInfo.sol/ArbGasInfo.dbg.json +1 -1
  224. package/build/contracts/src/precompiles/ArbInfo.sol/ArbInfo.dbg.json +1 -1
  225. package/build/contracts/src/precompiles/ArbOwner.sol/ArbOwner.dbg.json +1 -1
  226. package/build/contracts/src/precompiles/ArbOwnerPublic.sol/ArbOwnerPublic.dbg.json +1 -1
  227. package/build/contracts/src/precompiles/ArbRetryableTx.sol/ArbRetryableTx.dbg.json +1 -1
  228. package/build/contracts/src/precompiles/ArbStatistics.sol/ArbStatistics.dbg.json +1 -1
  229. package/build/contracts/src/precompiles/ArbSys.sol/ArbSys.dbg.json +1 -1
  230. package/build/contracts/src/precompiles/ArbWasm.sol/ArbWasm.dbg.json +1 -1
  231. package/build/contracts/src/precompiles/ArbWasmCache.sol/ArbWasmCache.dbg.json +1 -1
  232. package/build/contracts/src/precompiles/ArbosActs.sol/ArbosActs.dbg.json +1 -1
  233. package/build/contracts/src/precompiles/ArbosTest.sol/ArbosTest.dbg.json +1 -1
  234. package/build/contracts/src/rollup/AbsRollupEventInbox.sol/AbsRollupEventInbox.dbg.json +1 -1
  235. package/build/contracts/src/rollup/Assertion.sol/AssertionNodeLib.dbg.json +4 -0
  236. package/build/contracts/src/rollup/{Node.sol/NodeLib.json → Assertion.sol/AssertionNodeLib.json} +4 -4
  237. package/build/contracts/src/rollup/AssertionState.sol/AssertionStateLib.dbg.json +4 -0
  238. package/build/contracts/src/{express-lane-auction/Balance.sol/BalanceLib.json → rollup/AssertionState.sol/AssertionStateLib.json} +4 -4
  239. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/BOLDUpgradeAction.dbg.json +4 -0
  240. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/BOLDUpgradeAction.json +807 -0
  241. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ConstantArrayStorage.dbg.json +4 -0
  242. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ConstantArrayStorage.json +35 -0
  243. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollup.dbg.json +4 -0
  244. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollup.json +361 -0
  245. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollupAdmin.dbg.json +4 -0
  246. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollupAdmin.json +38 -0
  247. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ISeqInboxPostUpgradeInit.dbg.json +4 -0
  248. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ISeqInboxPostUpgradeInit.json +41 -0
  249. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/RollupReader.dbg.json +4 -0
  250. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/RollupReader.json +385 -0
  251. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/StateHashPreImageLookup.dbg.json +4 -0
  252. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/StateHashPreImageLookup.json +203 -0
  253. package/build/contracts/src/rollup/BridgeCreator.sol/BridgeCreator.dbg.json +1 -1
  254. package/build/contracts/src/rollup/BridgeCreator.sol/BridgeCreator.json +62 -10
  255. package/build/contracts/src/rollup/DeployHelper.sol/DeployHelper.dbg.json +1 -1
  256. package/build/contracts/src/rollup/DeployHelper.sol/DeployHelper.json +2 -2
  257. package/build/contracts/src/rollup/ERC20RollupEventInbox.sol/ERC20RollupEventInbox.dbg.json +1 -1
  258. package/build/contracts/src/rollup/ERC20RollupEventInbox.sol/ERC20RollupEventInbox.json +2 -2
  259. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/FactoryDeployerHelper.dbg.json +1 -1
  260. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/FactoryDeployerHelper.json +2 -2
  261. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IDeployHelper.dbg.json +1 -1
  262. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IERC20.dbg.json +1 -1
  263. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IERC20Bridge.dbg.json +1 -1
  264. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IInboxBase.dbg.json +1 -1
  265. package/build/contracts/src/rollup/IRollupAdmin.sol/IRollupAdmin.dbg.json +1 -1
  266. package/build/contracts/src/rollup/IRollupAdmin.sol/IRollupAdmin.json +473 -99
  267. package/build/contracts/src/rollup/IRollupCore.sol/IRollupCore.dbg.json +1 -1
  268. package/build/contracts/src/rollup/IRollupCore.sol/IRollupCore.json +315 -221
  269. package/build/contracts/src/rollup/IRollupEventInbox.sol/IRollupEventInbox.dbg.json +1 -1
  270. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUser.dbg.json +1 -1
  271. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUser.json +678 -499
  272. package/build/contracts/src/rollup/RollupAdminLogic.sol/RollupAdminLogic.dbg.json +1 -1
  273. package/build/contracts/src/rollup/RollupAdminLogic.sol/RollupAdminLogic.json +806 -435
  274. package/build/contracts/src/rollup/RollupCore.sol/RollupCore.dbg.json +1 -1
  275. package/build/contracts/src/rollup/RollupCore.sol/RollupCore.json +323 -235
  276. package/build/contracts/src/rollup/RollupCreator.sol/RollupCreator.dbg.json +1 -1
  277. package/build/contracts/src/rollup/RollupCreator.sol/RollupCreator.json +98 -36
  278. package/build/contracts/src/rollup/RollupEventInbox.sol/RollupEventInbox.dbg.json +1 -1
  279. package/build/contracts/src/rollup/RollupEventInbox.sol/RollupEventInbox.json +2 -2
  280. package/build/contracts/src/rollup/RollupLib.sol/RollupLib.dbg.json +1 -1
  281. package/build/contracts/src/rollup/RollupLib.sol/RollupLib.json +2 -2
  282. package/build/contracts/src/rollup/RollupProxy.sol/RollupProxy.dbg.json +1 -1
  283. package/build/contracts/src/rollup/RollupProxy.sol/RollupProxy.json +97 -16
  284. package/build/contracts/src/rollup/RollupUserLogic.sol/RollupUserLogic.dbg.json +1 -1
  285. package/build/contracts/src/rollup/RollupUserLogic.sol/RollupUserLogic.json +924 -535
  286. package/build/contracts/src/rollup/ValidatorWallet.sol/ValidatorWallet.dbg.json +1 -1
  287. package/build/contracts/src/rollup/ValidatorWallet.sol/ValidatorWallet.json +15 -43
  288. package/build/contracts/src/rollup/ValidatorWalletCreator.sol/ValidatorWalletCreator.dbg.json +1 -1
  289. package/build/contracts/src/rollup/ValidatorWalletCreator.sol/ValidatorWalletCreator.json +2 -2
  290. package/build/contracts/src/state/Deserialize.sol/Deserialize.dbg.json +1 -1
  291. package/build/contracts/src/state/Deserialize.sol/Deserialize.json +2 -2
  292. package/build/contracts/src/state/GlobalState.sol/GlobalStateLib.dbg.json +1 -1
  293. package/build/contracts/src/state/GlobalState.sol/GlobalStateLib.json +2 -2
  294. package/build/contracts/src/state/Instructions.sol/Instructions.dbg.json +1 -1
  295. package/build/contracts/src/state/Instructions.sol/Instructions.json +2 -2
  296. package/build/contracts/src/state/Machine.sol/MachineLib.dbg.json +1 -1
  297. package/build/contracts/src/state/Machine.sol/MachineLib.json +2 -2
  298. package/build/contracts/src/state/MerkleProof.sol/MerkleProofLib.dbg.json +1 -1
  299. package/build/contracts/src/state/MerkleProof.sol/MerkleProofLib.json +2 -2
  300. package/build/contracts/src/state/Module.sol/ModuleLib.dbg.json +1 -1
  301. package/build/contracts/src/state/Module.sol/ModuleLib.json +2 -2
  302. package/build/contracts/src/state/ModuleMemory.sol/ModuleMemoryLib.dbg.json +1 -1
  303. package/build/contracts/src/state/ModuleMemory.sol/ModuleMemoryLib.json +2 -2
  304. package/build/contracts/src/state/ModuleMemoryCompact.sol/ModuleMemoryCompactLib.dbg.json +1 -1
  305. package/build/contracts/src/state/ModuleMemoryCompact.sol/ModuleMemoryCompactLib.json +2 -2
  306. package/build/contracts/src/state/MultiStack.sol/MultiStackLib.dbg.json +1 -1
  307. package/build/contracts/src/state/MultiStack.sol/MultiStackLib.json +2 -2
  308. package/build/contracts/src/state/PcArray.sol/PcArrayLib.dbg.json +1 -1
  309. package/build/contracts/src/state/PcArray.sol/PcArrayLib.json +2 -2
  310. package/build/contracts/src/state/StackFrame.sol/StackFrameLib.dbg.json +1 -1
  311. package/build/contracts/src/state/StackFrame.sol/StackFrameLib.json +2 -2
  312. package/build/contracts/src/state/Value.sol/ValueLib.dbg.json +1 -1
  313. package/build/contracts/src/state/Value.sol/ValueLib.json +2 -2
  314. package/build/contracts/src/state/ValueArray.sol/ValueArrayLib.dbg.json +1 -1
  315. package/build/contracts/src/state/ValueArray.sol/ValueArrayLib.json +2 -2
  316. package/build/contracts/src/state/ValueStack.sol/ValueStackLib.dbg.json +1 -1
  317. package/build/contracts/src/state/ValueStack.sol/ValueStackLib.json +2 -2
  318. package/build/contracts/src/test-helpers/BridgeTester.sol/BridgeTester.dbg.json +1 -1
  319. package/build/contracts/src/test-helpers/BridgeTester.sol/BridgeTester.json +15 -2
  320. package/build/contracts/src/test-helpers/CryptographyPrimitivesTester.sol/CryptographyPrimitivesTester.dbg.json +1 -1
  321. package/build/contracts/src/test-helpers/CryptographyPrimitivesTester.sol/CryptographyPrimitivesTester.json +2 -2
  322. package/build/contracts/src/test-helpers/EthVault.sol/EthVault.dbg.json +1 -1
  323. package/build/contracts/src/test-helpers/EthVault.sol/EthVault.json +2 -2
  324. package/build/contracts/src/test-helpers/MessageTester.sol/MessageTester.dbg.json +1 -1
  325. package/build/contracts/src/test-helpers/MessageTester.sol/MessageTester.json +2 -2
  326. package/build/contracts/src/test-helpers/OutboxWithoutOptTester.sol/OutboxWithoutOptTester.dbg.json +1 -1
  327. package/build/contracts/src/test-helpers/OutboxWithoutOptTester.sol/OutboxWithoutOptTester.json +2 -2
  328. package/build/contracts/src/test-helpers/RollupMock.sol/RollupMock.dbg.json +1 -1
  329. package/build/contracts/src/test-helpers/RollupMock.sol/RollupMock.json +2 -15
  330. package/build/contracts/src/test-helpers/TestToken.sol/TestToken.dbg.json +1 -1
  331. package/build/contracts/src/test-helpers/TestToken.sol/TestToken.json +2 -2
  332. package/build/contracts/src/test-helpers/ValueArrayTester.sol/ValueArrayTester.dbg.json +1 -1
  333. package/build/contracts/src/test-helpers/ValueArrayTester.sol/ValueArrayTester.json +2 -2
  334. package/out/yul/Reader4844.yul/Reader4844.json +1 -1
  335. package/package.json +11 -4
  336. package/src/assertionStakingPool/AbsBoldStakingPool.sol +66 -0
  337. package/src/assertionStakingPool/AssertionStakingPool.sol +70 -0
  338. package/src/assertionStakingPool/AssertionStakingPoolCreator.sol +35 -0
  339. package/src/assertionStakingPool/EdgeStakingPool.sol +57 -0
  340. package/src/assertionStakingPool/EdgeStakingPoolCreator.sol +34 -0
  341. package/src/assertionStakingPool/StakingPoolCreatorUtils.sol +25 -0
  342. package/src/assertionStakingPool/interfaces/IAbsBoldStakingPool.sol +41 -0
  343. package/src/assertionStakingPool/interfaces/IAssertionStakingPool.sol +36 -0
  344. package/src/assertionStakingPool/interfaces/IAssertionStakingPoolCreator.sol +31 -0
  345. package/src/assertionStakingPool/interfaces/IEdgeStakingPool.sol +27 -0
  346. package/src/assertionStakingPool/interfaces/IEdgeStakingPoolCreator.sol +28 -0
  347. package/src/bridge/AbsBridge.sol +38 -48
  348. package/src/bridge/AbsInbox.sol +89 -92
  349. package/src/bridge/AbsOutbox.sol +23 -37
  350. package/src/bridge/Bridge.sol +6 -4
  351. package/src/bridge/DelayBuffer.sol +123 -0
  352. package/src/bridge/DelayBufferTypes.sol +38 -0
  353. package/src/bridge/ERC20Bridge.sol +8 -4
  354. package/src/bridge/ERC20Inbox.sol +46 -53
  355. package/src/bridge/ERC20Outbox.sol +7 -3
  356. package/src/bridge/GasRefunder.sol +38 -24
  357. package/src/bridge/IBridge.sol +30 -21
  358. package/src/bridge/IERC20Bridge.sol +1 -1
  359. package/src/bridge/IERC20Inbox.sol +4 -2
  360. package/src/bridge/IEthBridge.sol +4 -2
  361. package/src/bridge/IInbox.sol +4 -2
  362. package/src/bridge/IInboxBase.sol +16 -8
  363. package/src/bridge/IOutbox.sol +13 -8
  364. package/src/bridge/ISequencerInbox.sol +118 -13
  365. package/src/bridge/Inbox.sol +134 -151
  366. package/src/bridge/Messages.sol +48 -18
  367. package/src/bridge/Outbox.sol +6 -2
  368. package/src/bridge/SequencerInbox.sol +343 -279
  369. package/src/chain/CacheManager.sol +49 -18
  370. package/src/challengeV2/EdgeChallengeManager.sol +559 -0
  371. package/src/challengeV2/IAssertionChain.sol +39 -0
  372. package/src/challengeV2/IEdgeChallengeManager.sol +233 -0
  373. package/src/challengeV2/libraries/ArrayUtilsLib.sol +61 -0
  374. package/src/challengeV2/libraries/ChallengeEdgeLib.sol +277 -0
  375. package/src/challengeV2/libraries/ChallengeErrors.sol +108 -0
  376. package/src/challengeV2/libraries/EdgeChallengeManagerLib.sol +819 -0
  377. package/src/challengeV2/libraries/Enums.sol +26 -0
  378. package/src/challengeV2/libraries/MerkleTreeAccumulatorLib.sol +390 -0
  379. package/src/challengeV2/libraries/Structs.sol +176 -0
  380. package/src/challengeV2/libraries/UintUtilsLib.sol +74 -0
  381. package/src/libraries/AddressAliasHelper.sol +6 -2
  382. package/src/libraries/AdminFallbackProxy.sol +8 -4
  383. package/src/libraries/ArbitrumChecker.sol +3 -4
  384. package/src/libraries/CallerChecker.sol +18 -0
  385. package/src/libraries/CryptographyPrimitives.sol +39 -46
  386. package/src/libraries/DecimalsConverterHelper.sol +2 -4
  387. package/src/libraries/DoubleLogicUUPSUpgradeable.sol +10 -7
  388. package/src/libraries/Error.sol +21 -3
  389. package/src/libraries/GasRefundEnabled.sol +5 -6
  390. package/src/libraries/MerkleLib.sol +6 -5
  391. package/src/libraries/UUPSNotUpgradeable.sol +2 -4
  392. package/src/mocks/BridgeStub.sol +50 -48
  393. package/src/mocks/CreateTest.sol +3 -1
  394. package/src/mocks/HostioTest.sol +20 -16
  395. package/src/mocks/InboxStub.sol +22 -17
  396. package/src/mocks/MerkleTreeAccess.sol +72 -0
  397. package/src/mocks/MockRollupEventInbox.sol +59 -0
  398. package/src/mocks/MultiCallTest.sol +3 -1
  399. package/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol +3 -1
  400. package/src/mocks/Program.sol +9 -7
  401. package/src/mocks/SequencerInboxBlobMock.sol +38 -0
  402. package/src/mocks/SequencerInboxStub.sol +9 -12
  403. package/src/mocks/Simple.sol +13 -25
  404. package/src/mocks/SimpleCacheManager.sol +10 -3
  405. package/src/mocks/SimpleOneStepProofEntry.sol +60 -0
  406. package/src/mocks/SimpleProxy.sol +3 -1
  407. package/src/mocks/TestWETH9.sol +30 -0
  408. package/src/mocks/UpgradeExecutorMock.sol +10 -17
  409. package/src/node-interface/NodeInterface.sol +23 -22
  410. package/src/node-interface/NodeInterfaceDebug.sol +5 -3
  411. package/src/osp/HashProofHelper.sol +9 -10
  412. package/src/osp/IOneStepProofEntry.sol +14 -9
  413. package/src/osp/IOneStepProver.sol +1 -0
  414. package/src/osp/OneStepProofEntry.sol +63 -54
  415. package/src/osp/OneStepProver0.sol +14 -27
  416. package/src/osp/OneStepProverHostIo.sol +31 -58
  417. package/src/osp/OneStepProverMath.sol +15 -23
  418. package/src/osp/OneStepProverMemory.sol +9 -23
  419. package/src/precompiles/ArbAddressTable.sol +19 -9
  420. package/src/precompiles/ArbAggregator.sol +12 -4
  421. package/src/precompiles/ArbBLS.sol +1 -3
  422. package/src/precompiles/ArbDebug.sol +5 -11
  423. package/src/precompiles/ArbFunctionTable.sol +7 -10
  424. package/src/precompiles/ArbGasInfo.sol +9 -43
  425. package/src/precompiles/ArbInfo.sol +6 -2
  426. package/src/precompiles/ArbOwner.sol +101 -34
  427. package/src/precompiles/ArbOwnerPublic.sol +6 -2
  428. package/src/precompiles/ArbRetryableTx.sol +15 -5
  429. package/src/precompiles/ArbStatistics.sol +1 -8
  430. package/src/precompiles/ArbSys.sol +16 -18
  431. package/src/precompiles/ArbWasm.sol +24 -14
  432. package/src/precompiles/ArbWasmCache.sol +15 -5
  433. package/src/precompiles/ArbosTest.sol +3 -1
  434. package/src/rollup/AbsRollupEventInbox.sol +15 -16
  435. package/src/rollup/Assertion.sol +100 -0
  436. package/src/rollup/AssertionState.sol +29 -0
  437. package/src/rollup/BOLDUpgradeAction.sol +631 -0
  438. package/src/rollup/BridgeCreator.sol +42 -15
  439. package/src/rollup/Config.sol +15 -7
  440. package/src/rollup/DeployHelper.sol +12 -31
  441. package/src/rollup/ERC20RollupEventInbox.sol +8 -9
  442. package/src/rollup/FactoryDeployerHelper.sol +8 -10
  443. package/src/rollup/IRollupAdmin.sol +127 -45
  444. package/src/rollup/IRollupCore.sol +64 -84
  445. package/src/rollup/IRollupEventInbox.sol +3 -1
  446. package/src/rollup/IRollupLogic.sol +35 -72
  447. package/src/rollup/RollupAdminLogic.sol +224 -203
  448. package/src/rollup/RollupCore.sol +407 -428
  449. package/src/rollup/RollupCreator.sol +84 -71
  450. package/src/rollup/RollupEventInbox.sol +7 -7
  451. package/src/rollup/RollupLib.sol +50 -86
  452. package/src/rollup/RollupProxy.sol +8 -12
  453. package/src/rollup/RollupUserLogic.sol +279 -644
  454. package/src/rollup/ValidatorUtils.sol +0 -242
  455. package/src/rollup/ValidatorWallet.sol +22 -38
  456. package/src/rollup/ValidatorWalletCreator.sol +8 -8
  457. package/src/state/Deserialize.sol +74 -96
  458. package/src/state/GlobalState.sol +74 -20
  459. package/src/state/Instructions.sol +4 -3
  460. package/src/state/Machine.sol +18 -19
  461. package/src/state/Module.sol +14 -13
  462. package/src/state/ModuleMemory.sol +6 -25
  463. package/src/state/ModuleMemoryCompact.sol +3 -1
  464. package/src/state/MultiStack.sol +16 -20
  465. package/src/state/PcArray.sol +7 -7
  466. package/src/state/StackFrame.sol +21 -14
  467. package/src/state/Value.sol +18 -6
  468. package/src/state/ValueArray.sol +7 -7
  469. package/src/state/ValueStack.sol +9 -3
  470. package/src/test-helpers/BridgeTester.sol +32 -42
  471. package/src/test-helpers/CryptographyPrimitivesTester.sol +12 -13
  472. package/src/test-helpers/EthVault.sol +4 -2
  473. package/src/test-helpers/InterfaceCompatibilityTester.sol +1 -1
  474. package/src/test-helpers/MessageTester.sol +3 -10
  475. package/src/test-helpers/OutboxWithoutOptTester.sol +12 -19
  476. package/src/test-helpers/RollupMock.sol +3 -7
  477. package/src/test-helpers/TestToken.sol +4 -2
  478. package/build/contracts/@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.dbg.json +0 -4
  479. package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlEnumerableUpgradeable.sol/AccessControlEnumerableUpgradeable.dbg.json +0 -4
  480. package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlEnumerableUpgradeable.sol/AccessControlEnumerableUpgradeable.json +0 -258
  481. package/build/contracts/@openzeppelin/contracts-upgradeable/access/IAccessControlEnumerableUpgradeable.sol/IAccessControlEnumerableUpgradeable.dbg.json +0 -4
  482. package/build/contracts/@openzeppelin/contracts-upgradeable/access/IAccessControlEnumerableUpgradeable.sol/IAccessControlEnumerableUpgradeable.json +0 -226
  483. package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol/ERC20Upgradeable.dbg.json +0 -4
  484. package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol/ERC20Upgradeable.json +0 -281
  485. package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.dbg.json +0 -4
  486. package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20BurnableUpgradeable.sol/ERC20BurnableUpgradeable.dbg.json +0 -4
  487. package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20BurnableUpgradeable.sol/ERC20BurnableUpgradeable.json +0 -312
  488. package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20MetadataUpgradeable.sol/IERC20MetadataUpgradeable.dbg.json +0 -4
  489. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/cryptography/ECDSAUpgradeable.sol/ECDSAUpgradeable.dbg.json +0 -4
  490. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/cryptography/ECDSAUpgradeable.sol/ECDSAUpgradeable.json +0 -10
  491. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/cryptography/draft-EIP712Upgradeable.sol/EIP712Upgradeable.dbg.json +0 -4
  492. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/cryptography/draft-EIP712Upgradeable.sol/EIP712Upgradeable.json +0 -10
  493. package/build/contracts/src/challenge/ChallengeLib.sol/ChallengeLib.dbg.json +0 -4
  494. package/build/contracts/src/challenge/ChallengeManager.sol/ChallengeManager.dbg.json +0 -4
  495. package/build/contracts/src/challenge/ChallengeManager.sol/ChallengeManager.json +0 -746
  496. package/build/contracts/src/challenge/IChallengeManager.sol/IChallengeManager.dbg.json +0 -4
  497. package/build/contracts/src/challenge/IChallengeManager.sol/IChallengeManager.json +0 -441
  498. package/build/contracts/src/challenge/IChallengeResultReceiver.sol/IChallengeResultReceiver.dbg.json +0 -4
  499. package/build/contracts/src/challenge/IChallengeResultReceiver.sol/IChallengeResultReceiver.json +0 -34
  500. package/build/contracts/src/express-lane-auction/Balance.sol/BalanceLib.dbg.json +0 -4
  501. package/build/contracts/src/express-lane-auction/Burner.sol/Burner.dbg.json +0 -4
  502. package/build/contracts/src/express-lane-auction/Burner.sol/Burner.json +0 -47
  503. package/build/contracts/src/express-lane-auction/ELCRound.sol/LatestELCRoundsLib.dbg.json +0 -4
  504. package/build/contracts/src/express-lane-auction/ExpressLaneAuction.sol/ExpressLaneAuction.dbg.json +0 -4
  505. package/build/contracts/src/express-lane-auction/ExpressLaneAuction.sol/ExpressLaneAuction.json +0 -1588
  506. package/build/contracts/src/express-lane-auction/IExpressLaneAuction.sol/IExpressLaneAuction.dbg.json +0 -4
  507. package/build/contracts/src/express-lane-auction/IExpressLaneAuction.sol/IExpressLaneAuction.json +0 -1296
  508. package/build/contracts/src/express-lane-auction/RoundTimingInfo.sol/RoundTimingInfoLib.dbg.json +0 -4
  509. package/build/contracts/src/express-lane-auction/RoundTimingInfo.sol/RoundTimingInfoLib.json +0 -10
  510. package/build/contracts/src/mocks/MockResultReceiver.sol/MockResultReceiver.dbg.json +0 -4
  511. package/build/contracts/src/mocks/MockResultReceiver.sol/MockResultReceiver.json +0 -188
  512. package/build/contracts/src/mocks/SingleExecutionChallenge.sol/SingleExecutionChallenge.dbg.json +0 -4
  513. package/build/contracts/src/mocks/SingleExecutionChallenge.sol/SingleExecutionChallenge.json +0 -797
  514. package/build/contracts/src/mocks/TimedOutChallengeManager.sol/TimedOutChallengeManager.dbg.json +0 -4
  515. package/build/contracts/src/mocks/TimedOutChallengeManager.sol/TimedOutChallengeManager.json +0 -746
  516. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserAbs.dbg.json +0 -4
  517. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserAbs.json +0 -1332
  518. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserERC20.dbg.json +0 -4
  519. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserERC20.json +0 -1466
  520. package/build/contracts/src/rollup/Node.sol/NodeLib.dbg.json +0 -4
  521. package/build/contracts/src/rollup/RollupUserLogic.sol/AbsRollupUserLogic.dbg.json +0 -4
  522. package/build/contracts/src/rollup/RollupUserLogic.sol/AbsRollupUserLogic.json +0 -1614
  523. package/build/contracts/src/rollup/RollupUserLogic.sol/ERC20RollupUserLogic.dbg.json +0 -4
  524. package/build/contracts/src/rollup/RollupUserLogic.sol/ERC20RollupUserLogic.json +0 -1748
  525. package/build/contracts/src/rollup/ValidatorUtils.sol/ValidatorUtils.dbg.json +0 -4
  526. package/build/contracts/src/rollup/ValidatorUtils.sol/ValidatorUtils.json +0 -379
  527. package/src/challenge/ChallengeLib.sol +0 -88
  528. package/src/challenge/ChallengeManager.sol +0 -375
  529. package/src/challenge/IChallengeManager.sol +0 -86
  530. package/src/challenge/IChallengeResultReceiver.sol +0 -13
  531. package/src/express-lane-auction/Balance.sol +0 -142
  532. package/src/express-lane-auction/Burner.sol +0 -25
  533. package/src/express-lane-auction/ELCRound.sol +0 -73
  534. package/src/express-lane-auction/Errors.sol +0 -31
  535. package/src/express-lane-auction/ExpressLaneAuction.sol +0 -565
  536. package/src/express-lane-auction/IExpressLaneAuction.sol +0 -421
  537. package/src/express-lane-auction/RoundTimingInfo.sol +0 -115
  538. package/src/mocks/MockResultReceiver.sol +0 -59
  539. package/src/mocks/SingleExecutionChallenge.sol +0 -41
  540. package/src/mocks/TimedOutChallengeManager.sol +0 -13
  541. package/src/rollup/Node.sol +0 -113
@@ -0,0 +1,27 @@
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 "../../challengeV2/EdgeChallengeManager.sol";
8
+ import "./IAbsBoldStakingPool.sol";
9
+
10
+ interface IEdgeStakingPool is IAbsBoldStakingPool {
11
+ /// @notice The resulting edge does not match the expected edge
12
+ error IncorrectEdgeId(bytes32 actual, bytes32 expected);
13
+
14
+ /// @notice Thrown when edge id is empty
15
+ error EmptyEdgeId();
16
+
17
+ /// @notice Create the edge. Callable only if required stake has been reached and edge has not been created yet.
18
+ function createEdge(
19
+ CreateEdgeArgs calldata args
20
+ ) external;
21
+
22
+ /// @notice The targeted challenge manager contract
23
+ function challengeManager() external view returns (address);
24
+
25
+ /// @notice The edge that this pool will create
26
+ function edgeId() external view returns (bytes32);
27
+ }
@@ -0,0 +1,28 @@
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 "./IEdgeStakingPool.sol";
8
+
9
+ interface IEdgeStakingPoolCreator {
10
+ /// @notice Event emitted when a new staking pool is created
11
+ event NewEdgeStakingPoolCreated(address indexed challengeManager, bytes32 indexed edgeId);
12
+
13
+ /// @notice Create an edge staking pool contract
14
+ /// @param challengeManager EdgeChallengeManager contract
15
+ /// @param edgeId The ID of the edge to be created (see ChallengeEdgeLib.id)
16
+ function createPool(
17
+ address challengeManager,
18
+ bytes32 edgeId
19
+ ) external returns (IEdgeStakingPool);
20
+
21
+ /// @notice get staking pool deployed with provided inputs; reverts if pool contract doesn't exist.
22
+ /// @param challengeManager EdgeChallengeManager contract
23
+ /// @param edgeId The ID of the edge to be created (see ChallengeEdgeLib.id)
24
+ function getPool(
25
+ address challengeManager,
26
+ bytes32 edgeId
27
+ ) external view returns (IEdgeStakingPool);
28
+ }
@@ -1,5 +1,5 @@
1
1
  // Copyright 2021-2022, Offchain Labs, Inc.
2
- // For license information, see https://github.com/nitro/blob/master/LICENSE
2
+ // For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE
3
3
  // SPDX-License-Identifier: BUSL-1.1
4
4
 
5
5
  pragma solidity ^0.8.4;
@@ -68,7 +68,9 @@ abstract contract AbsBridge is Initializable, DelegateCallAware, IBridge {
68
68
  }
69
69
 
70
70
  /// @notice Allows the rollup owner to set another rollup address
71
- function updateRollupAddress(IOwnable _rollup) external onlyRollupOrOwner {
71
+ function updateRollupAddress(
72
+ IOwnable _rollup
73
+ ) external onlyRollupOrOwner {
72
74
  rollup = _rollup;
73
75
  emit RollupUpdated(address(_rollup));
74
76
  }
@@ -84,11 +86,15 @@ abstract contract AbsBridge is Initializable, DelegateCallAware, IBridge {
84
86
  return outbox;
85
87
  }
86
88
 
87
- function allowedDelayedInboxes(address inbox) public view returns (bool) {
89
+ function allowedDelayedInboxes(
90
+ address inbox
91
+ ) public view returns (bool) {
88
92
  return allowedDelayedInboxesMap[inbox].allowed;
89
93
  }
90
94
 
91
- function allowedOutboxes(address outbox) public view returns (bool) {
95
+ function allowedOutboxes(
96
+ address outbox
97
+ ) public view returns (bool) {
92
98
  return allowedOutboxesMap[outbox].allowed;
93
99
  }
94
100
 
@@ -105,17 +111,11 @@ abstract contract AbsBridge is Initializable, DelegateCallAware, IBridge {
105
111
  )
106
112
  external
107
113
  onlySequencerInbox
108
- returns (
109
- uint256 seqMessageIndex,
110
- bytes32 beforeAcc,
111
- bytes32 delayedAcc,
112
- bytes32 acc
113
- )
114
+ returns (uint256 seqMessageIndex, bytes32 beforeAcc, bytes32 delayedAcc, bytes32 acc)
114
115
  {
115
116
  if (
116
- sequencerReportedSubMessageCount != prevMessageCount &&
117
- prevMessageCount != 0 &&
118
- sequencerReportedSubMessageCount != 0
117
+ sequencerReportedSubMessageCount != prevMessageCount && prevMessageCount != 0
118
+ && sequencerReportedSubMessageCount != 0
119
119
  ) {
120
120
  revert BadSequencerMessageNumber(sequencerReportedSubMessageCount, prevMessageCount);
121
121
  }
@@ -132,20 +132,18 @@ abstract contract AbsBridge is Initializable, DelegateCallAware, IBridge {
132
132
  }
133
133
 
134
134
  /// @inheritdoc IBridge
135
- function submitBatchSpendingReport(address sender, bytes32 messageDataHash)
136
- external
137
- onlySequencerInbox
138
- returns (uint256)
139
- {
140
- return
141
- addMessageToDelayedAccumulator(
142
- L1MessageType_batchPostingReport,
143
- sender,
144
- uint64(block.number),
145
- uint64(block.timestamp), // solhint-disable-line not-rely-on-time,
146
- block.basefee,
147
- messageDataHash
148
- );
135
+ function submitBatchSpendingReport(
136
+ address sender,
137
+ bytes32 messageDataHash
138
+ ) external onlySequencerInbox returns (uint256) {
139
+ return addMessageToDelayedAccumulator(
140
+ L1MessageType_batchPostingReport,
141
+ sender,
142
+ uint64(block.number),
143
+ uint64(block.timestamp), // solhint-disable-line not-rely-on-time,
144
+ block.basefee,
145
+ messageDataHash
146
+ );
149
147
  }
150
148
 
151
149
  function _enqueueDelayedMessage(
@@ -180,13 +178,7 @@ abstract contract AbsBridge is Initializable, DelegateCallAware, IBridge {
180
178
  ) internal returns (uint256) {
181
179
  uint256 count = delayedInboxAccs.length;
182
180
  bytes32 messageHash = Messages.messageHash(
183
- kind,
184
- sender,
185
- blockNumber,
186
- blockTimestamp,
187
- count,
188
- baseFeeL1,
189
- messageDataHash
181
+ kind, sender, blockNumber, blockTimestamp, count, baseFeeL1, messageDataHash
190
182
  );
191
183
  bytes32 prevAcc = 0;
192
184
  if (count > 0) {
@@ -194,14 +186,7 @@ abstract contract AbsBridge is Initializable, DelegateCallAware, IBridge {
194
186
  }
195
187
  delayedInboxAccs.push(Messages.accumulateInboxMessage(prevAcc, messageHash));
196
188
  emit MessageDelivered(
197
- count,
198
- prevAcc,
199
- msg.sender,
200
- kind,
201
- sender,
202
- messageDataHash,
203
- baseFeeL1,
204
- blockTimestamp
189
+ count, prevAcc, msg.sender, kind, sender, messageDataHash, baseFeeL1, blockTimestamp
205
190
  );
206
191
  return count;
207
192
  }
@@ -226,7 +211,9 @@ abstract contract AbsBridge is Initializable, DelegateCallAware, IBridge {
226
211
  emit BridgeCallTriggered(msg.sender, to, value, data);
227
212
  }
228
213
 
229
- function setSequencerInbox(address _sequencerInbox) external onlyRollupOrOwner {
214
+ function setSequencerInbox(
215
+ address _sequencerInbox
216
+ ) external onlyRollupOrOwner {
230
217
  sequencerInbox = _sequencerInbox;
231
218
  emit SequencerInboxUpdated(_sequencerInbox);
232
219
  }
@@ -242,9 +229,8 @@ abstract contract AbsBridge is Initializable, DelegateCallAware, IBridge {
242
229
  allowedDelayedInboxesMap[inbox] = InOutInfo(allowedDelayedInboxList.length, true);
243
230
  allowedDelayedInboxList.push(inbox);
244
231
  } else {
245
- allowedDelayedInboxList[info.index] = allowedDelayedInboxList[
246
- allowedDelayedInboxList.length - 1
247
- ];
232
+ allowedDelayedInboxList[info.index] =
233
+ allowedDelayedInboxList[allowedDelayedInboxList.length - 1];
248
234
  allowedDelayedInboxesMap[allowedDelayedInboxList[info.index]].index = info.index;
249
235
  allowedDelayedInboxList.pop();
250
236
  delete allowedDelayedInboxesMap[inbox];
@@ -271,7 +257,9 @@ abstract contract AbsBridge is Initializable, DelegateCallAware, IBridge {
271
257
  }
272
258
  }
273
259
 
274
- function setSequencerReportedSubMessageCount(uint256 newMsgCount) external onlyRollupOrOwner {
260
+ function setSequencerReportedSubMessageCount(
261
+ uint256 newMsgCount
262
+ ) external onlyRollupOrOwner {
275
263
  sequencerReportedSubMessageCount = newMsgCount;
276
264
  }
277
265
 
@@ -287,7 +275,9 @@ abstract contract AbsBridge is Initializable, DelegateCallAware, IBridge {
287
275
  function acceptFundsFromOldBridge() external payable {}
288
276
 
289
277
  /// @dev transfer funds provided to pay for crosschain msg
290
- function _transferFunds(uint256 amount) internal virtual;
278
+ function _transferFunds(
279
+ uint256 amount
280
+ ) internal virtual;
291
281
 
292
282
  function _executeLowLevelCall(
293
283
  address to,
@@ -1,5 +1,5 @@
1
1
  // Copyright 2021-2022, Offchain Labs, Inc.
2
- // For license information, see https://github.com/nitro/blob/master/LICENSE
2
+ // For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE
3
3
  // SPDX-License-Identifier: BUSL-1.1
4
4
 
5
5
  pragma solidity ^0.8.4;
@@ -11,7 +11,7 @@ import {
11
11
  InsufficientSubmissionCost,
12
12
  L1Forked,
13
13
  NotAllowedOrigin,
14
- NotOrigin,
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,
@@ -68,7 +69,9 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
68
69
  }
69
70
 
70
71
  /// @inheritdoc IInboxBase
71
- function setAllowListEnabled(bool _allowListEnabled) external onlyRollupOrOwner {
72
+ function setAllowListEnabled(
73
+ bool _allowListEnabled
74
+ ) external onlyRollupOrOwner {
72
75
  require(_allowListEnabled != allowListEnabled, "ALREADY_SET");
73
76
  allowListEnabled = _allowListEnabled;
74
77
  emit AllowListEnabledUpdated(_allowListEnabled);
@@ -101,7 +104,9 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
101
104
  uint256 public immutable maxDataSize;
102
105
  uint256 internal immutable deployTimeChainId = block.chainid;
103
106
 
104
- constructor(uint256 _maxDataSize) {
107
+ constructor(
108
+ uint256 _maxDataSize
109
+ ) {
105
110
  maxDataSize = _maxDataSize;
106
111
  }
107
112
 
@@ -120,10 +125,10 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
120
125
  }
121
126
 
122
127
  /* solhint-disable func-name-mixedcase */
123
- function __AbsInbox_init(IBridge _bridge, ISequencerInbox _sequencerInbox)
124
- internal
125
- onlyInitializing
126
- {
128
+ function __AbsInbox_init(
129
+ IBridge _bridge,
130
+ ISequencerInbox _sequencerInbox
131
+ ) internal onlyInitializing {
127
132
  bridge = _bridge;
128
133
  sequencerInbox = _sequencerInbox;
129
134
  allowListEnabled = false;
@@ -131,15 +136,11 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
131
136
  }
132
137
 
133
138
  /// @inheritdoc IInboxBase
134
- function sendL2MessageFromOrigin(bytes calldata messageData)
135
- external
136
- whenNotPaused
137
- onlyAllowed
138
- returns (uint256)
139
- {
139
+ function sendL2MessageFromOrigin(
140
+ bytes calldata messageData
141
+ ) external whenNotPaused onlyAllowed returns (uint256) {
140
142
  if (_chainIdChanged()) revert L1Forked();
141
- // solhint-disable-next-line avoid-tx-origin
142
- if (msg.sender != tx.origin) revert NotOrigin();
143
+ if (!CallerChecker.isCallerCodelessOrigin()) revert NotCodelessOrigin();
143
144
  if (messageData.length > maxDataSize) revert DataTooLarge(messageData.length, maxDataSize);
144
145
  uint256 msgNum = _deliverToBridge(L2_MSG, msg.sender, keccak256(messageData), 0);
145
146
  emit InboxMessageDeliveredFromOrigin(msgNum);
@@ -147,12 +148,9 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
147
148
  }
148
149
 
149
150
  /// @inheritdoc IInboxBase
150
- function sendL2Message(bytes calldata messageData)
151
- external
152
- whenNotPaused
153
- onlyAllowed
154
- returns (uint256)
155
- {
151
+ function sendL2Message(
152
+ bytes calldata messageData
153
+ ) external whenNotPaused onlyAllowed returns (uint256) {
156
154
  if (_chainIdChanged()) revert L1Forked();
157
155
  return _deliverMessage(L2_MSG, msg.sender, messageData, 0);
158
156
  }
@@ -170,21 +168,20 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
170
168
  if (gasLimit > type(uint64).max) {
171
169
  revert GasLimitTooLarge();
172
170
  }
173
- return
174
- _deliverMessage(
175
- L2_MSG,
176
- msg.sender,
177
- abi.encodePacked(
178
- L2MessageType_unsignedEOATx,
179
- gasLimit,
180
- maxFeePerGas,
181
- nonce,
182
- uint256(uint160(to)),
183
- value,
184
- data
185
- ),
186
- 0
187
- );
171
+ return _deliverMessage(
172
+ L2_MSG,
173
+ msg.sender,
174
+ abi.encodePacked(
175
+ L2MessageType_unsignedEOATx,
176
+ gasLimit,
177
+ maxFeePerGas,
178
+ nonce,
179
+ uint256(uint160(to)),
180
+ value,
181
+ data
182
+ ),
183
+ 0
184
+ );
188
185
  }
189
186
 
190
187
  /// @inheritdoc IInboxBase
@@ -199,20 +196,19 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
199
196
  if (gasLimit > type(uint64).max) {
200
197
  revert GasLimitTooLarge();
201
198
  }
202
- return
203
- _deliverMessage(
204
- L2_MSG,
205
- msg.sender,
206
- abi.encodePacked(
207
- L2MessageType_unsignedContractTx,
208
- gasLimit,
209
- maxFeePerGas,
210
- uint256(uint160(to)),
211
- value,
212
- data
213
- ),
214
- 0
215
- );
199
+ return _deliverMessage(
200
+ L2_MSG,
201
+ msg.sender,
202
+ abi.encodePacked(
203
+ L2MessageType_unsignedContractTx,
204
+ gasLimit,
205
+ maxFeePerGas,
206
+ uint256(uint160(to)),
207
+ value,
208
+ data
209
+ ),
210
+ 0
211
+ );
216
212
  }
217
213
 
218
214
  /// @inheritdoc IInboxBase
@@ -237,8 +233,7 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
237
233
  uint256 amountToBeMintedOnL2 = _fromNativeTo18Decimals(amount);
238
234
  if (amountToBeMintedOnL2 < (maxSubmissionCost + l2CallValue + gasLimit * maxFeePerGas)) {
239
235
  revert InsufficientValue(
240
- maxSubmissionCost + l2CallValue + gasLimit * maxFeePerGas,
241
- amountToBeMintedOnL2
236
+ maxSubmissionCost + l2CallValue + gasLimit * maxFeePerGas, amountToBeMintedOnL2
242
237
  );
243
238
  }
244
239
 
@@ -254,18 +249,17 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
254
249
  }
255
250
 
256
251
  // gas limit is validated to be within uint64 in unsafeCreateRetryableTicket
257
- return
258
- _unsafeCreateRetryableTicket(
259
- to,
260
- l2CallValue,
261
- maxSubmissionCost,
262
- excessFeeRefundAddress,
263
- callValueRefundAddress,
264
- gasLimit,
265
- maxFeePerGas,
266
- amount,
267
- data
268
- );
252
+ return _unsafeCreateRetryableTicket(
253
+ to,
254
+ l2CallValue,
255
+ maxSubmissionCost,
256
+ excessFeeRefundAddress,
257
+ callValueRefundAddress,
258
+ gasLimit,
259
+ maxFeePerGas,
260
+ amount,
261
+ data
262
+ );
269
263
  }
270
264
 
271
265
  function _unsafeCreateRetryableTicket(
@@ -281,7 +275,7 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
281
275
  ) internal returns (uint256) {
282
276
  // gas price and limit of 1 should never be a valid input, so instead they are used as
283
277
  // magic values to trigger a revert in eth calls that surface data without requiring a tx trace
284
- if (gasLimit == 1 || maxFeePerGas == 1)
278
+ if (gasLimit == 1 || maxFeePerGas == 1) {
285
279
  revert RetryableData(
286
280
  msg.sender,
287
281
  to,
@@ -294,6 +288,7 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
294
288
  maxFeePerGas,
295
289
  data
296
290
  );
291
+ }
297
292
 
298
293
  // arbos will discard retryable with gas limit too large
299
294
  if (gasLimit > type(uint64).max) {
@@ -301,27 +296,27 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
301
296
  }
302
297
 
303
298
  uint256 submissionFee = calculateRetryableSubmissionFee(data.length, block.basefee);
304
- if (maxSubmissionCost < submissionFee)
299
+ if (maxSubmissionCost < submissionFee) {
305
300
  revert InsufficientSubmissionCost(submissionFee, maxSubmissionCost);
301
+ }
306
302
 
307
- return
308
- _deliverMessage(
309
- L1MessageType_submitRetryableTx,
310
- msg.sender,
311
- abi.encodePacked(
312
- uint256(uint160(to)),
313
- l2CallValue,
314
- _fromNativeTo18Decimals(amount),
315
- maxSubmissionCost,
316
- uint256(uint160(excessFeeRefundAddress)),
317
- uint256(uint160(callValueRefundAddress)),
318
- gasLimit,
319
- maxFeePerGas,
320
- data.length,
321
- data
322
- ),
323
- amount
324
- );
303
+ return _deliverMessage(
304
+ L1MessageType_submitRetryableTx,
305
+ msg.sender,
306
+ abi.encodePacked(
307
+ uint256(uint160(to)),
308
+ l2CallValue,
309
+ _fromNativeTo18Decimals(amount),
310
+ maxSubmissionCost,
311
+ uint256(uint160(excessFeeRefundAddress)),
312
+ uint256(uint160(callValueRefundAddress)),
313
+ gasLimit,
314
+ maxFeePerGas,
315
+ data.length,
316
+ data
317
+ ),
318
+ amount
319
+ );
325
320
  }
326
321
 
327
322
  function _deliverMessage(
@@ -330,8 +325,9 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
330
325
  bytes memory _messageData,
331
326
  uint256 amount
332
327
  ) internal returns (uint256) {
333
- if (_messageData.length > maxDataSize)
328
+ if (_messageData.length > maxDataSize) {
334
329
  revert DataTooLarge(_messageData.length, maxDataSize);
330
+ }
335
331
  uint256 msgNum = _deliverToBridge(_kind, _sender, keccak256(_messageData), amount);
336
332
  emit InboxMessageDelivered(msgNum, _messageData);
337
333
  return msgNum;
@@ -344,11 +340,10 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
344
340
  uint256 amount
345
341
  ) internal virtual returns (uint256);
346
342
 
347
- function calculateRetryableSubmissionFee(uint256 dataLength, uint256 baseFee)
348
- public
349
- view
350
- virtual
351
- returns (uint256);
343
+ function calculateRetryableSubmissionFee(
344
+ uint256 dataLength,
345
+ uint256 baseFee
346
+ ) public view virtual returns (uint256);
352
347
 
353
348
  /// @notice get amount of ETH/token to mint on child chain based on provided value.
354
349
  /// In case of ETH-based rollup this amount will always equal the provided
@@ -357,7 +352,9 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
357
352
  /// decimals used for native currency on child chain.
358
353
  /// @dev provided value has to be less than 'type(uint256).max/10**(18-decimalsIn)'
359
354
  /// or otherwise it will overflow.
360
- function _fromNativeTo18Decimals(uint256 value) internal view virtual returns (uint256);
355
+ function _fromNativeTo18Decimals(
356
+ uint256 value
357
+ ) internal view virtual returns (uint256);
361
358
 
362
359
  /**
363
360
  * @dev This empty reserved space is put in place to allow future versions to add new
@@ -1,5 +1,5 @@
1
1
  // Copyright 2021-2022, Offchain Labs, Inc.
2
- // For license information, see https://github.com/nitro/blob/master/LICENSE
2
+ // For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE
3
3
  // SPDX-License-Identifier: BUSL-1.1
4
4
 
5
5
  pragma solidity ^0.8.4;
@@ -60,7 +60,9 @@ abstract contract AbsOutbox is DelegateCallAware, IOutbox {
60
60
 
61
61
  uint128 public constant OUTBOX_VERSION = 2;
62
62
 
63
- function initialize(IBridge _bridge) external onlyDelegated {
63
+ function initialize(
64
+ IBridge _bridge
65
+ ) external onlyDelegated {
64
66
  if (address(_bridge) == address(0)) revert HadZeroInit();
65
67
  if (address(bridge) != address(0)) revert AlreadyInit();
66
68
  // address zero is returned if no context is set, but the values used in storage
@@ -93,8 +95,9 @@ abstract contract AbsOutbox is DelegateCallAware, IOutbox {
93
95
 
94
96
  /// @notice Allows the rollup owner to sync the rollup address
95
97
  function updateRollupAddress() external {
96
- if (msg.sender != IOwnable(rollup).owner())
98
+ if (msg.sender != IOwnable(rollup).owner()) {
97
99
  revert NotOwner(msg.sender, IOwnable(rollup).owner());
100
+ }
98
101
  address newRollup = address(bridge.rollup());
99
102
  if (rollup == newRollup) revert RollupNotChanged();
100
103
  rollup = newRollup;
@@ -163,15 +166,7 @@ abstract contract AbsOutbox is DelegateCallAware, IOutbox {
163
166
  uint256 value,
164
167
  bytes calldata data
165
168
  ) external {
166
- bytes32 userTx = calculateItemHash(
167
- l2Sender,
168
- to,
169
- l2Block,
170
- l1Block,
171
- l2Timestamp,
172
- value,
173
- data
174
- );
169
+ bytes32 userTx = calculateItemHash(l2Sender, to, l2Block, l1Block, l2Timestamp, value, data);
175
170
 
176
171
  recordOutputAsSpent(proof, index, userTx);
177
172
 
@@ -228,15 +223,9 @@ abstract contract AbsOutbox is DelegateCallAware, IOutbox {
228
223
  context = prevContext;
229
224
  }
230
225
 
231
- function _calcSpentIndexOffset(uint256 index)
232
- internal
233
- view
234
- returns (
235
- uint256,
236
- uint256,
237
- bytes32
238
- )
239
- {
226
+ function _calcSpentIndexOffset(
227
+ uint256 index
228
+ ) internal view returns (uint256, uint256, bytes32) {
240
229
  uint256 spentIndex = index / 255; // Note: Reserves the MSB.
241
230
  uint256 bitOffset = index % 255;
242
231
  bytes32 replay = spent[spentIndex];
@@ -248,18 +237,16 @@ abstract contract AbsOutbox is DelegateCallAware, IOutbox {
248
237
  }
249
238
 
250
239
  /// @inheritdoc IOutbox
251
- function isSpent(uint256 index) external view returns (bool) {
240
+ function isSpent(
241
+ uint256 index
242
+ ) external view returns (bool) {
252
243
  (, uint256 bitOffset, bytes32 replay) = _calcSpentIndexOffset(index);
253
244
  return _isSpent(bitOffset, replay);
254
245
  }
255
246
 
256
- function recordOutputAsSpent(
257
- bytes32[] memory proof,
258
- uint256 index,
259
- bytes32 item
260
- ) internal {
247
+ function recordOutputAsSpent(bytes32[] memory proof, uint256 index, bytes32 item) internal {
261
248
  if (proof.length >= 256) revert ProofTooLong(proof.length);
262
- if (index >= 2**proof.length) revert PathNotMinimal(index, 2**proof.length);
249
+ if (index >= 2 ** proof.length) revert PathNotMinimal(index, 2 ** proof.length);
263
250
 
264
251
  // Hash the leaf an extra time to prove it's a leaf
265
252
  bytes32 calcRoot = calculateMerkleRoot(proof, index, item);
@@ -271,11 +258,7 @@ abstract contract AbsOutbox is DelegateCallAware, IOutbox {
271
258
  spent[spentIndex] = (replay | bytes32(1 << bitOffset));
272
259
  }
273
260
 
274
- function executeBridgeCall(
275
- address to,
276
- uint256 value,
277
- bytes memory data
278
- ) internal {
261
+ function executeBridgeCall(address to, uint256 value, bytes memory data) internal {
279
262
  (bool success, bytes memory returndata) = bridge.executeCall(to, value, data);
280
263
  if (!success) {
281
264
  if (returndata.length > 0) {
@@ -299,8 +282,7 @@ abstract contract AbsOutbox is DelegateCallAware, IOutbox {
299
282
  uint256 value,
300
283
  bytes calldata data
301
284
  ) public pure returns (bytes32) {
302
- return
303
- keccak256(abi.encodePacked(l2Sender, to, l2Block, l1Block, l2Timestamp, value, data));
285
+ return keccak256(abi.encodePacked(l2Sender, to, l2Block, l1Block, l2Timestamp, value, data));
304
286
  }
305
287
 
306
288
  function calculateMerkleRoot(
@@ -318,13 +300,17 @@ abstract contract AbsOutbox is DelegateCallAware, IOutbox {
318
300
  /// @notice based on provided value, get amount of ETH/token to unlock. In case of ETH-based rollup this amount
319
301
  /// will always equal the provided value. In case of ERC20-based rollup, amount will be re-adjusted to
320
302
  /// reflect the number of decimals used by native token, in case it is different than 18.
321
- function _getAmountToUnlock(uint256 value) internal view virtual returns (uint256);
303
+ function _getAmountToUnlock(
304
+ uint256 value
305
+ ) internal view virtual returns (uint256);
322
306
 
323
307
  /// @notice value to be set for 'amount' field in L2ToL1Context during L2 to L1 transaction execution.
324
308
  /// In case of ERC20-based rollup this is the amount of native token being withdrawn. In case of standard ETH-based
325
309
  /// rollup this amount shall always be 0, because amount of ETH being withdrawn can be read from msg.value.
326
310
  /// @return amount of native token being withdrawn in case of ERC20-based rollup, or 0 in case of ETH-based rollup
327
- function _amountToSetInContext(uint256 value) internal pure virtual returns (uint256);
311
+ function _amountToSetInContext(
312
+ uint256 value
313
+ ) internal pure virtual returns (uint256);
328
314
 
329
315
  /**
330
316
  * @dev This empty reserved space is put in place to allow future versions to add new