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

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 (503) hide show
  1. package/build/contracts/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json +1 -1
  2. package/build/contracts/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.dbg.json +1 -1
  3. package/build/contracts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.dbg.json +1 -1
  4. package/build/contracts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.json +2 -2
  5. package/build/contracts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.dbg.json +1 -1
  6. package/build/contracts/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.dbg.json +1 -1
  7. package/build/contracts/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.dbg.json +1 -1
  8. package/build/contracts/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol/UpgradeableBeacon.dbg.json +1 -1
  9. package/build/contracts/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol/UpgradeableBeacon.json +2 -2
  10. package/build/contracts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.dbg.json +1 -1
  11. package/build/contracts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.json +2 -2
  12. package/build/contracts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.dbg.json +1 -1
  13. package/build/contracts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +2 -2
  14. package/build/contracts/@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol/UUPSUpgradeable.dbg.json +1 -1
  15. package/build/contracts/@openzeppelin/contracts/security/ReentrancyGuard.sol/ReentrancyGuard.dbg.json +1 -1
  16. package/build/contracts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json +1 -1
  17. package/build/contracts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json +2 -2
  18. package/build/contracts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json +1 -1
  19. package/build/contracts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json +1 -1
  20. package/build/contracts/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.dbg.json +4 -0
  21. package/build/contracts/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.json +86 -0
  22. package/build/contracts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.dbg.json +1 -1
  23. package/build/contracts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.json +2 -2
  24. package/build/contracts/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json +1 -1
  25. package/build/contracts/@openzeppelin/contracts/utils/Address.sol/Address.json +2 -2
  26. package/build/contracts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json +1 -1
  27. package/build/contracts/@openzeppelin/contracts/utils/Create2.sol/Create2.dbg.json +4 -0
  28. package/build/contracts/@openzeppelin/contracts/utils/Create2.sol/Create2.json +10 -0
  29. package/build/contracts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.dbg.json +1 -1
  30. package/build/contracts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.json +2 -2
  31. package/build/contracts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json +1 -1
  32. package/build/contracts/@openzeppelin/contracts/utils/Strings.sol/Strings.json +2 -2
  33. package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol/AccessControlUpgradeable.dbg.json +1 -1
  34. package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol/AccessControlUpgradeable.json +13 -0
  35. package/build/contracts/@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol/IAccessControlUpgradeable.dbg.json +1 -1
  36. package/build/contracts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.dbg.json +1 -1
  37. package/build/contracts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.json +13 -0
  38. package/build/contracts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.dbg.json +1 -1
  39. package/build/contracts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.json +15 -1
  40. package/build/contracts/@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol/PausableUpgradeable.dbg.json +1 -1
  41. package/build/contracts/@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol/PausableUpgradeable.json +13 -0
  42. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.dbg.json +1 -1
  43. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.json +2 -2
  44. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.dbg.json +1 -1
  45. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.json +15 -1
  46. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/Create2Upgradeable.sol/Create2Upgradeable.dbg.json +4 -0
  47. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/Create2Upgradeable.sol/Create2Upgradeable.json +10 -0
  48. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol/StorageSlotUpgradeable.dbg.json +1 -1
  49. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol/StorageSlotUpgradeable.json +2 -2
  50. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol/StringsUpgradeable.dbg.json +1 -1
  51. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol/StringsUpgradeable.json +2 -2
  52. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol/ERC165Upgradeable.dbg.json +1 -1
  53. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol/ERC165Upgradeable.json +13 -0
  54. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol/IERC165Upgradeable.dbg.json +1 -1
  55. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/structs/EnumerableSetUpgradeable.sol/EnumerableSetUpgradeable.dbg.json +4 -0
  56. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/structs/EnumerableSetUpgradeable.sol/EnumerableSetUpgradeable.json +10 -0
  57. package/build/contracts/src/assertionStakingPool/AbsBoldStakingPool.sol/AbsBoldStakingPool.dbg.json +4 -0
  58. package/build/contracts/{@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.json → src/assertionStakingPool/AbsBoldStakingPool.sol/AbsBoldStakingPool.json} +41 -95
  59. package/build/contracts/src/assertionStakingPool/AssertionStakingPool.sol/AssertionStakingPool.dbg.json +4 -0
  60. package/build/contracts/src/assertionStakingPool/AssertionStakingPool.sol/AssertionStakingPool.json +340 -0
  61. package/build/contracts/src/assertionStakingPool/AssertionStakingPoolCreator.sol/AssertionStakingPoolCreator.dbg.json +4 -0
  62. package/build/contracts/src/assertionStakingPool/AssertionStakingPoolCreator.sol/AssertionStakingPoolCreator.json +89 -0
  63. package/build/contracts/src/assertionStakingPool/EdgeStakingPool.sol/EdgeStakingPool.dbg.json +4 -0
  64. package/build/contracts/src/assertionStakingPool/EdgeStakingPool.sol/EdgeStakingPool.json +248 -0
  65. package/build/contracts/src/assertionStakingPool/EdgeStakingPoolCreator.sol/EdgeStakingPoolCreator.dbg.json +4 -0
  66. package/build/contracts/src/assertionStakingPool/EdgeStakingPoolCreator.sol/EdgeStakingPoolCreator.json +83 -0
  67. package/build/contracts/src/assertionStakingPool/StakingPoolCreatorUtils.sol/StakingPoolCreatorUtils.dbg.json +4 -0
  68. package/build/contracts/src/assertionStakingPool/StakingPoolCreatorUtils.sol/StakingPoolCreatorUtils.json +16 -0
  69. package/build/contracts/src/assertionStakingPool/interfaces/IAbsBoldStakingPool.sol/IAbsBoldStakingPool.dbg.json +4 -0
  70. package/build/contracts/src/assertionStakingPool/interfaces/IAbsBoldStakingPool.sol/IAbsBoldStakingPool.json +140 -0
  71. package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPool.sol/IAssertionStakingPool.dbg.json +4 -0
  72. package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPool.sol/IAssertionStakingPool.json +324 -0
  73. package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPoolCreator.sol/IAssertionStakingPoolCreator.dbg.json +4 -0
  74. package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPoolCreator.sol/IAssertionStakingPoolCreator.json +84 -0
  75. package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPool.sol/IEdgeStakingPool.dbg.json +4 -0
  76. package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPool.sol/IEdgeStakingPool.json +232 -0
  77. package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPoolCreator.sol/IEdgeStakingPoolCreator.dbg.json +4 -0
  78. package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPoolCreator.sol/IEdgeStakingPoolCreator.json +78 -0
  79. package/build/contracts/src/bridge/AbsBridge.sol/AbsBridge.dbg.json +1 -1
  80. package/build/contracts/src/bridge/AbsBridge.sol/AbsBridge.json +13 -0
  81. package/build/contracts/src/bridge/AbsInbox.sol/AbsInbox.dbg.json +1 -1
  82. package/build/contracts/src/bridge/AbsInbox.sol/AbsInbox.json +20 -7
  83. package/build/contracts/src/bridge/AbsOutbox.sol/AbsOutbox.dbg.json +1 -1
  84. package/build/contracts/src/bridge/Bridge.sol/Bridge.dbg.json +1 -1
  85. package/build/contracts/src/bridge/Bridge.sol/Bridge.json +15 -2
  86. package/build/contracts/src/bridge/DelayBuffer.sol/DelayBuffer.dbg.json +4 -0
  87. package/build/contracts/src/bridge/DelayBuffer.sol/DelayBuffer.json +24 -0
  88. package/build/contracts/src/bridge/ERC20Bridge.sol/ERC20Bridge.dbg.json +1 -1
  89. package/build/contracts/src/bridge/ERC20Bridge.sol/ERC20Bridge.json +15 -2
  90. package/build/contracts/src/bridge/ERC20Inbox.sol/ERC20Inbox.dbg.json +1 -1
  91. package/build/contracts/src/bridge/ERC20Inbox.sol/ERC20Inbox.json +22 -9
  92. package/build/contracts/src/bridge/ERC20Outbox.sol/ERC20Outbox.dbg.json +1 -1
  93. package/build/contracts/src/bridge/ERC20Outbox.sol/ERC20Outbox.json +2 -2
  94. package/build/contracts/src/bridge/GasRefunder.sol/GasRefunder.dbg.json +1 -1
  95. package/build/contracts/src/bridge/GasRefunder.sol/GasRefunder.json +2 -2
  96. package/build/contracts/src/bridge/IBridge.sol/IBridge.dbg.json +1 -1
  97. package/build/contracts/src/bridge/IDelayedMessageProvider.sol/IDelayedMessageProvider.dbg.json +1 -1
  98. package/build/contracts/src/bridge/IERC20Bridge.sol/IERC20Bridge.dbg.json +1 -1
  99. package/build/contracts/src/bridge/IERC20Inbox.sol/IERC20Inbox.dbg.json +1 -1
  100. package/build/contracts/src/bridge/IERC20Inbox.sol/IERC20Inbox.json +1 -1
  101. package/build/contracts/src/bridge/IEthBridge.sol/IEthBridge.dbg.json +1 -1
  102. package/build/contracts/src/bridge/IInbox.sol/IInbox.dbg.json +1 -1
  103. package/build/contracts/src/bridge/IInbox.sol/IInbox.json +1 -1
  104. package/build/contracts/src/bridge/IInboxBase.sol/IInboxBase.dbg.json +1 -1
  105. package/build/contracts/src/bridge/IInboxBase.sol/IInboxBase.json +1 -1
  106. package/build/contracts/src/bridge/IOutbox.sol/IOutbox.dbg.json +1 -1
  107. package/build/contracts/src/bridge/IOwnable.sol/IOwnable.dbg.json +1 -1
  108. package/build/contracts/src/bridge/ISequencerInbox.sol/ISequencerInbox.dbg.json +1 -1
  109. package/build/contracts/src/bridge/ISequencerInbox.sol/ISequencerInbox.json +441 -0
  110. package/build/contracts/src/bridge/Inbox.sol/Inbox.dbg.json +1 -1
  111. package/build/contracts/src/bridge/Inbox.sol/Inbox.json +22 -4
  112. package/build/contracts/src/bridge/Messages.sol/Messages.dbg.json +1 -1
  113. package/build/contracts/src/bridge/Messages.sol/Messages.json +2 -2
  114. package/build/contracts/src/bridge/Outbox.sol/Outbox.dbg.json +1 -1
  115. package/build/contracts/src/bridge/Outbox.sol/Outbox.json +2 -2
  116. package/build/contracts/src/bridge/SequencerInbox.sol/SequencerInbox.dbg.json +1 -1
  117. package/build/contracts/src/bridge/SequencerInbox.sol/SequencerInbox.json +564 -7
  118. package/build/contracts/src/chain/CacheManager.sol/CacheManager.dbg.json +1 -1
  119. package/build/contracts/src/chain/CacheManager.sol/CacheManager.json +15 -2
  120. package/build/contracts/src/challengeV2/EdgeChallengeManager.sol/EdgeChallengeManager.dbg.json +4 -0
  121. package/build/contracts/src/challengeV2/EdgeChallengeManager.sol/EdgeChallengeManager.json +1631 -0
  122. package/build/contracts/src/challengeV2/EdgeChallengeManager.sol/IEdgeChallengeManager.dbg.json +4 -0
  123. package/build/contracts/src/challengeV2/EdgeChallengeManager.sol/IEdgeChallengeManager.json +762 -0
  124. package/build/contracts/src/challengeV2/IAssertionChain.sol/IAssertionChain.dbg.json +4 -0
  125. package/build/contracts/src/challengeV2/IAssertionChain.sol/IAssertionChain.json +247 -0
  126. package/build/contracts/src/challengeV2/libraries/ArrayUtilsLib.sol/ArrayUtilsLib.dbg.json +4 -0
  127. package/build/contracts/src/challengeV2/libraries/ArrayUtilsLib.sol/ArrayUtilsLib.json +10 -0
  128. package/build/contracts/src/challengeV2/libraries/ChallengeEdgeLib.sol/ChallengeEdgeLib.dbg.json +4 -0
  129. package/build/contracts/src/challengeV2/libraries/ChallengeEdgeLib.sol/ChallengeEdgeLib.json +10 -0
  130. package/build/contracts/src/challengeV2/libraries/EdgeChallengeManagerLib.sol/EdgeChallengeManagerLib.dbg.json +4 -0
  131. package/build/contracts/src/challengeV2/libraries/EdgeChallengeManagerLib.sol/EdgeChallengeManagerLib.json +24 -0
  132. package/build/contracts/src/challengeV2/libraries/MerkleTreeAccumulatorLib.sol/MerkleTreeAccumulatorLib.dbg.json +4 -0
  133. package/build/contracts/src/challengeV2/libraries/MerkleTreeAccumulatorLib.sol/MerkleTreeAccumulatorLib.json +24 -0
  134. package/build/contracts/src/challengeV2/libraries/UintUtilsLib.sol/UintUtilsLib.dbg.json +4 -0
  135. package/build/contracts/src/challengeV2/libraries/UintUtilsLib.sol/UintUtilsLib.json +10 -0
  136. package/build/contracts/src/libraries/AddressAliasHelper.sol/AddressAliasHelper.dbg.json +1 -1
  137. package/build/contracts/src/libraries/AddressAliasHelper.sol/AddressAliasHelper.json +2 -2
  138. package/build/contracts/src/libraries/AdminFallbackProxy.sol/AdminFallbackProxy.dbg.json +1 -1
  139. package/build/contracts/src/libraries/AdminFallbackProxy.sol/AdminFallbackProxy.json +2 -2
  140. package/build/contracts/src/libraries/AdminFallbackProxy.sol/DoubleLogicERC1967Upgrade.dbg.json +1 -1
  141. package/build/contracts/src/libraries/ArbitrumChecker.sol/ArbitrumChecker.dbg.json +1 -1
  142. package/build/contracts/src/libraries/ArbitrumChecker.sol/ArbitrumChecker.json +2 -2
  143. package/build/contracts/src/libraries/CryptographyPrimitives.sol/CryptographyPrimitives.dbg.json +1 -1
  144. package/build/contracts/src/libraries/CryptographyPrimitives.sol/CryptographyPrimitives.json +2 -2
  145. package/build/contracts/src/libraries/DecimalsConverterHelper.sol/DecimalsConverterHelper.dbg.json +1 -1
  146. package/build/contracts/src/libraries/DecimalsConverterHelper.sol/DecimalsConverterHelper.json +2 -2
  147. package/build/contracts/src/libraries/DelegateCallAware.sol/DelegateCallAware.dbg.json +1 -1
  148. package/build/contracts/src/libraries/DoubleLogicUUPSUpgradeable.sol/DoubleLogicUUPSUpgradeable.dbg.json +1 -1
  149. package/build/contracts/src/libraries/GasRefundEnabled.sol/GasRefundEnabled.dbg.json +1 -1
  150. package/build/contracts/src/libraries/IGasRefunder.sol/IGasRefunder.dbg.json +1 -1
  151. package/build/contracts/src/libraries/IReader4844.sol/IReader4844.dbg.json +1 -1
  152. package/build/contracts/src/libraries/MerkleLib.sol/MerkleLib.dbg.json +1 -1
  153. package/build/contracts/src/libraries/MerkleLib.sol/MerkleLib.json +2 -2
  154. package/build/contracts/src/libraries/UUPSNotUpgradeable.sol/UUPSNotUpgradeable.dbg.json +1 -1
  155. package/build/contracts/src/mocks/Benchmarks.sol/Benchmarks.dbg.json +1 -1
  156. package/build/contracts/src/mocks/Benchmarks.sol/Benchmarks.json +2 -2
  157. package/build/contracts/src/mocks/BridgeStub.sol/BridgeStub.dbg.json +1 -1
  158. package/build/contracts/src/mocks/BridgeStub.sol/BridgeStub.json +8 -8
  159. package/build/contracts/src/mocks/BridgeUnproxied.sol/BridgeUnproxied.dbg.json +1 -1
  160. package/build/contracts/src/mocks/BridgeUnproxied.sol/BridgeUnproxied.json +28 -2
  161. package/build/contracts/src/mocks/InboxStub.sol/InboxStub.dbg.json +1 -1
  162. package/build/contracts/src/mocks/InboxStub.sol/InboxStub.json +2 -2
  163. package/build/contracts/src/mocks/MerkleTreeAccess.sol/MerkleTreeAccess.dbg.json +4 -0
  164. package/build/contracts/src/mocks/MerkleTreeAccess.sol/MerkleTreeAccess.json +227 -0
  165. package/build/contracts/src/mocks/MockRollupEventInbox.sol/MockRollupEventInbox.dbg.json +4 -0
  166. package/build/contracts/src/mocks/MockRollupEventInbox.sol/MockRollupEventInbox.json +133 -0
  167. package/build/contracts/src/mocks/MultiCallTest.sol/MultiCallTest.dbg.json +1 -1
  168. package/build/contracts/src/mocks/MultiCallTest.sol/MultiCallTest.json +2 -2
  169. package/build/contracts/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol/PendingBlkTimeAndNrAdvanceCheck.dbg.json +1 -1
  170. package/build/contracts/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol/PendingBlkTimeAndNrAdvanceCheck.json +2 -2
  171. package/build/contracts/src/mocks/Program.sol/ProgramTest.dbg.json +1 -1
  172. package/build/contracts/src/mocks/Program.sol/ProgramTest.json +2 -2
  173. package/build/contracts/src/mocks/ProxyAdminForBinding.sol/ProxyAdminForBinding.dbg.json +1 -1
  174. package/build/contracts/src/mocks/ProxyAdminForBinding.sol/ProxyAdminForBinding.json +2 -2
  175. package/build/contracts/src/mocks/SdkStorage.sol/SdkStorage.dbg.json +1 -1
  176. package/build/contracts/src/mocks/SdkStorage.sol/SdkStorage.json +2 -2
  177. package/build/contracts/src/mocks/SequencerInboxBlobMock.sol/SequencerInboxBlobMock.dbg.json +4 -0
  178. package/build/contracts/src/mocks/SequencerInboxBlobMock.sol/SequencerInboxBlobMock.json +1632 -0
  179. package/build/contracts/src/mocks/SequencerInboxStub.sol/SequencerInboxStub.dbg.json +1 -1
  180. package/build/contracts/src/mocks/SequencerInboxStub.sol/SequencerInboxStub.json +564 -7
  181. package/build/contracts/src/mocks/Simple.sol/Simple.dbg.json +1 -1
  182. package/build/contracts/src/mocks/Simple.sol/Simple.json +2 -2
  183. package/build/contracts/src/mocks/SimpleCacheManager.sol/SimpleCacheManager.dbg.json +1 -1
  184. package/build/contracts/src/mocks/SimpleCacheManager.sol/SimpleCacheManager.json +2 -2
  185. package/build/contracts/src/mocks/SimpleOneStepProofEntry.sol/SimpleOneStepProofEntry.dbg.json +4 -0
  186. package/build/contracts/src/mocks/SimpleOneStepProofEntry.sol/SimpleOneStepProofEntry.json +142 -0
  187. package/build/contracts/src/mocks/SimpleProxy.sol/SimpleProxy.dbg.json +1 -1
  188. package/build/contracts/src/mocks/SimpleProxy.sol/SimpleProxy.json +2 -2
  189. package/build/contracts/src/mocks/TestWETH9.sol/IWETH9.dbg.json +4 -0
  190. package/build/contracts/src/mocks/TestWETH9.sol/IWETH9.json +31 -0
  191. package/build/contracts/src/mocks/TestWETH9.sol/TestWETH9.dbg.json +4 -0
  192. package/build/contracts/src/mocks/TestWETH9.sol/TestWETH9.json +317 -0
  193. package/build/contracts/src/mocks/UpgradeExecutorMock.sol/UpgradeExecutorMock.dbg.json +1 -1
  194. package/build/contracts/src/mocks/UpgradeExecutorMock.sol/UpgradeExecutorMock.json +15 -2
  195. package/build/contracts/src/node-interface/NodeInterface.sol/NodeInterface.dbg.json +1 -1
  196. package/build/contracts/src/node-interface/NodeInterfaceDebug.sol/NodeInterfaceDebug.dbg.json +1 -1
  197. package/build/contracts/src/osp/HashProofHelper.sol/HashProofHelper.dbg.json +1 -1
  198. package/build/contracts/src/osp/HashProofHelper.sol/HashProofHelper.json +2 -2
  199. package/build/contracts/src/osp/IOneStepProofEntry.sol/IOneStepProofEntry.dbg.json +1 -1
  200. package/build/contracts/src/osp/IOneStepProofEntry.sol/IOneStepProofEntry.json +33 -9
  201. package/build/contracts/src/osp/IOneStepProofEntry.sol/OneStepProofEntryLib.dbg.json +1 -1
  202. package/build/contracts/src/osp/IOneStepProofEntry.sol/OneStepProofEntryLib.json +2 -2
  203. package/build/contracts/src/osp/IOneStepProver.sol/IOneStepProver.dbg.json +1 -1
  204. package/build/contracts/src/osp/IOneStepProver.sol/IOneStepProver.json +5 -0
  205. package/build/contracts/src/osp/OneStepProofEntry.sol/OneStepProofEntry.dbg.json +1 -1
  206. package/build/contracts/src/osp/OneStepProofEntry.sol/OneStepProofEntry.json +35 -11
  207. package/build/contracts/src/osp/OneStepProver0.sol/OneStepProver0.dbg.json +1 -1
  208. package/build/contracts/src/osp/OneStepProver0.sol/OneStepProver0.json +7 -2
  209. package/build/contracts/src/osp/OneStepProverHostIo.sol/OneStepProverHostIo.dbg.json +1 -1
  210. package/build/contracts/src/osp/OneStepProverHostIo.sol/OneStepProverHostIo.json +7 -2
  211. package/build/contracts/src/osp/OneStepProverMath.sol/OneStepProverMath.dbg.json +1 -1
  212. package/build/contracts/src/osp/OneStepProverMath.sol/OneStepProverMath.json +7 -2
  213. package/build/contracts/src/osp/OneStepProverMemory.sol/OneStepProverMemory.dbg.json +1 -1
  214. package/build/contracts/src/osp/OneStepProverMemory.sol/OneStepProverMemory.json +7 -2
  215. package/build/contracts/src/precompiles/ArbAddressTable.sol/ArbAddressTable.dbg.json +1 -1
  216. package/build/contracts/src/precompiles/ArbAggregator.sol/ArbAggregator.dbg.json +1 -1
  217. package/build/contracts/src/precompiles/ArbBLS.sol/ArbBLS.dbg.json +1 -1
  218. package/build/contracts/src/precompiles/ArbDebug.sol/ArbDebug.dbg.json +1 -1
  219. package/build/contracts/src/precompiles/ArbFunctionTable.sol/ArbFunctionTable.dbg.json +1 -1
  220. package/build/contracts/src/precompiles/ArbGasInfo.sol/ArbGasInfo.dbg.json +1 -1
  221. package/build/contracts/src/precompiles/ArbInfo.sol/ArbInfo.dbg.json +1 -1
  222. package/build/contracts/src/precompiles/ArbOwner.sol/ArbOwner.dbg.json +1 -1
  223. package/build/contracts/src/precompiles/ArbOwnerPublic.sol/ArbOwnerPublic.dbg.json +1 -1
  224. package/build/contracts/src/precompiles/ArbRetryableTx.sol/ArbRetryableTx.dbg.json +1 -1
  225. package/build/contracts/src/precompiles/ArbStatistics.sol/ArbStatistics.dbg.json +1 -1
  226. package/build/contracts/src/precompiles/ArbSys.sol/ArbSys.dbg.json +1 -1
  227. package/build/contracts/src/precompiles/ArbWasm.sol/ArbWasm.dbg.json +1 -1
  228. package/build/contracts/src/precompiles/ArbWasmCache.sol/ArbWasmCache.dbg.json +1 -1
  229. package/build/contracts/src/precompiles/ArbosActs.sol/ArbosActs.dbg.json +1 -1
  230. package/build/contracts/src/precompiles/ArbosTest.sol/ArbosTest.dbg.json +1 -1
  231. package/build/contracts/src/rollup/AbsRollupEventInbox.sol/AbsRollupEventInbox.dbg.json +1 -1
  232. package/build/contracts/src/rollup/Assertion.sol/AssertionNodeLib.dbg.json +4 -0
  233. package/build/contracts/src/rollup/{Node.sol/NodeLib.json → Assertion.sol/AssertionNodeLib.json} +4 -4
  234. package/build/contracts/src/rollup/AssertionState.sol/AssertionStateLib.dbg.json +4 -0
  235. package/build/contracts/src/{challenge/ChallengeLib.sol/ChallengeLib.json → rollup/AssertionState.sol/AssertionStateLib.json} +4 -4
  236. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/BOLDUpgradeAction.dbg.json +4 -0
  237. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/BOLDUpgradeAction.json +807 -0
  238. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ConstantArrayStorage.dbg.json +4 -0
  239. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ConstantArrayStorage.json +35 -0
  240. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollup.dbg.json +4 -0
  241. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollup.json +361 -0
  242. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollupAdmin.dbg.json +4 -0
  243. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollupAdmin.json +38 -0
  244. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ISeqInboxPostUpgradeInit.dbg.json +4 -0
  245. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ISeqInboxPostUpgradeInit.json +41 -0
  246. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/RollupReader.dbg.json +4 -0
  247. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/RollupReader.json +385 -0
  248. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/StateHashPreImageLookup.dbg.json +4 -0
  249. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/StateHashPreImageLookup.json +203 -0
  250. package/build/contracts/src/rollup/BridgeCreator.sol/BridgeCreator.dbg.json +1 -1
  251. package/build/contracts/src/rollup/BridgeCreator.sol/BridgeCreator.json +62 -10
  252. package/build/contracts/src/rollup/DeployHelper.sol/DeployHelper.dbg.json +1 -1
  253. package/build/contracts/src/rollup/DeployHelper.sol/DeployHelper.json +2 -2
  254. package/build/contracts/src/rollup/ERC20RollupEventInbox.sol/ERC20RollupEventInbox.dbg.json +1 -1
  255. package/build/contracts/src/rollup/ERC20RollupEventInbox.sol/ERC20RollupEventInbox.json +2 -2
  256. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/FactoryDeployerHelper.dbg.json +1 -1
  257. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/FactoryDeployerHelper.json +2 -2
  258. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IDeployHelper.dbg.json +1 -1
  259. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IERC20.dbg.json +1 -1
  260. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IERC20Bridge.dbg.json +1 -1
  261. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IInboxBase.dbg.json +1 -1
  262. package/build/contracts/src/rollup/IRollupAdmin.sol/IRollupAdmin.dbg.json +1 -1
  263. package/build/contracts/src/rollup/IRollupAdmin.sol/IRollupAdmin.json +473 -99
  264. package/build/contracts/src/rollup/IRollupCore.sol/IRollupCore.dbg.json +1 -1
  265. package/build/contracts/src/rollup/IRollupCore.sol/IRollupCore.json +315 -221
  266. package/build/contracts/src/rollup/IRollupEventInbox.sol/IRollupEventInbox.dbg.json +1 -1
  267. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUser.dbg.json +1 -1
  268. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUser.json +678 -499
  269. package/build/contracts/src/rollup/RollupAdminLogic.sol/RollupAdminLogic.dbg.json +1 -1
  270. package/build/contracts/src/rollup/RollupAdminLogic.sol/RollupAdminLogic.json +806 -435
  271. package/build/contracts/src/rollup/RollupCore.sol/RollupCore.dbg.json +1 -1
  272. package/build/contracts/src/rollup/RollupCore.sol/RollupCore.json +323 -235
  273. package/build/contracts/src/rollup/RollupCreator.sol/RollupCreator.dbg.json +1 -1
  274. package/build/contracts/src/rollup/RollupCreator.sol/RollupCreator.json +98 -36
  275. package/build/contracts/src/rollup/RollupEventInbox.sol/RollupEventInbox.dbg.json +1 -1
  276. package/build/contracts/src/rollup/RollupEventInbox.sol/RollupEventInbox.json +2 -2
  277. package/build/contracts/src/rollup/RollupLib.sol/RollupLib.dbg.json +1 -1
  278. package/build/contracts/src/rollup/RollupLib.sol/RollupLib.json +2 -2
  279. package/build/contracts/src/rollup/RollupProxy.sol/RollupProxy.dbg.json +1 -1
  280. package/build/contracts/src/rollup/RollupProxy.sol/RollupProxy.json +97 -16
  281. package/build/contracts/src/rollup/RollupUserLogic.sol/RollupUserLogic.dbg.json +1 -1
  282. package/build/contracts/src/rollup/RollupUserLogic.sol/RollupUserLogic.json +924 -535
  283. package/build/contracts/src/rollup/ValidatorWallet.sol/ValidatorWallet.dbg.json +1 -1
  284. package/build/contracts/src/rollup/ValidatorWallet.sol/ValidatorWallet.json +15 -43
  285. package/build/contracts/src/rollup/ValidatorWalletCreator.sol/ValidatorWalletCreator.dbg.json +1 -1
  286. package/build/contracts/src/rollup/ValidatorWalletCreator.sol/ValidatorWalletCreator.json +2 -2
  287. package/build/contracts/src/state/Deserialize.sol/Deserialize.dbg.json +1 -1
  288. package/build/contracts/src/state/Deserialize.sol/Deserialize.json +2 -2
  289. package/build/contracts/src/state/GlobalState.sol/GlobalStateLib.dbg.json +1 -1
  290. package/build/contracts/src/state/GlobalState.sol/GlobalStateLib.json +2 -2
  291. package/build/contracts/src/state/Instructions.sol/Instructions.dbg.json +1 -1
  292. package/build/contracts/src/state/Instructions.sol/Instructions.json +2 -2
  293. package/build/contracts/src/state/Machine.sol/MachineLib.dbg.json +1 -1
  294. package/build/contracts/src/state/Machine.sol/MachineLib.json +2 -2
  295. package/build/contracts/src/state/MerkleProof.sol/MerkleProofLib.dbg.json +1 -1
  296. package/build/contracts/src/state/MerkleProof.sol/MerkleProofLib.json +2 -2
  297. package/build/contracts/src/state/Module.sol/ModuleLib.dbg.json +1 -1
  298. package/build/contracts/src/state/Module.sol/ModuleLib.json +2 -2
  299. package/build/contracts/src/state/ModuleMemory.sol/ModuleMemoryLib.dbg.json +1 -1
  300. package/build/contracts/src/state/ModuleMemory.sol/ModuleMemoryLib.json +2 -2
  301. package/build/contracts/src/state/ModuleMemoryCompact.sol/ModuleMemoryCompactLib.dbg.json +1 -1
  302. package/build/contracts/src/state/ModuleMemoryCompact.sol/ModuleMemoryCompactLib.json +2 -2
  303. package/build/contracts/src/state/MultiStack.sol/MultiStackLib.dbg.json +1 -1
  304. package/build/contracts/src/state/MultiStack.sol/MultiStackLib.json +2 -2
  305. package/build/contracts/src/state/PcArray.sol/PcArrayLib.dbg.json +1 -1
  306. package/build/contracts/src/state/PcArray.sol/PcArrayLib.json +2 -2
  307. package/build/contracts/src/state/StackFrame.sol/StackFrameLib.dbg.json +1 -1
  308. package/build/contracts/src/state/StackFrame.sol/StackFrameLib.json +2 -2
  309. package/build/contracts/src/state/Value.sol/ValueLib.dbg.json +1 -1
  310. package/build/contracts/src/state/Value.sol/ValueLib.json +2 -2
  311. package/build/contracts/src/state/ValueArray.sol/ValueArrayLib.dbg.json +1 -1
  312. package/build/contracts/src/state/ValueArray.sol/ValueArrayLib.json +2 -2
  313. package/build/contracts/src/state/ValueStack.sol/ValueStackLib.dbg.json +1 -1
  314. package/build/contracts/src/state/ValueStack.sol/ValueStackLib.json +2 -2
  315. package/build/contracts/src/test-helpers/BridgeTester.sol/BridgeTester.dbg.json +1 -1
  316. package/build/contracts/src/test-helpers/BridgeTester.sol/BridgeTester.json +15 -2
  317. package/build/contracts/src/test-helpers/CryptographyPrimitivesTester.sol/CryptographyPrimitivesTester.dbg.json +1 -1
  318. package/build/contracts/src/test-helpers/CryptographyPrimitivesTester.sol/CryptographyPrimitivesTester.json +2 -2
  319. package/build/contracts/src/test-helpers/EthVault.sol/EthVault.dbg.json +1 -1
  320. package/build/contracts/src/test-helpers/EthVault.sol/EthVault.json +2 -2
  321. package/build/contracts/src/test-helpers/MessageTester.sol/MessageTester.dbg.json +1 -1
  322. package/build/contracts/src/test-helpers/MessageTester.sol/MessageTester.json +2 -2
  323. package/build/contracts/src/test-helpers/OutboxWithoutOptTester.sol/OutboxWithoutOptTester.dbg.json +1 -1
  324. package/build/contracts/src/test-helpers/OutboxWithoutOptTester.sol/OutboxWithoutOptTester.json +2 -2
  325. package/build/contracts/src/test-helpers/RollupMock.sol/RollupMock.dbg.json +1 -1
  326. package/build/contracts/src/test-helpers/RollupMock.sol/RollupMock.json +2 -15
  327. package/build/contracts/src/test-helpers/TestToken.sol/TestToken.dbg.json +1 -1
  328. package/build/contracts/src/test-helpers/TestToken.sol/TestToken.json +2 -2
  329. package/build/contracts/src/test-helpers/ValueArrayTester.sol/ValueArrayTester.dbg.json +1 -1
  330. package/build/contracts/src/test-helpers/ValueArrayTester.sol/ValueArrayTester.json +2 -2
  331. package/out/yul/Reader4844.yul/Reader4844.json +1 -1
  332. package/package.json +15 -5
  333. package/src/assertionStakingPool/AbsBoldStakingPool.sol +66 -0
  334. package/src/assertionStakingPool/AssertionStakingPool.sol +70 -0
  335. package/src/assertionStakingPool/AssertionStakingPoolCreator.sol +35 -0
  336. package/src/assertionStakingPool/EdgeStakingPool.sol +57 -0
  337. package/src/assertionStakingPool/EdgeStakingPoolCreator.sol +34 -0
  338. package/src/assertionStakingPool/StakingPoolCreatorUtils.sol +25 -0
  339. package/src/assertionStakingPool/interfaces/IAbsBoldStakingPool.sol +41 -0
  340. package/src/assertionStakingPool/interfaces/IAssertionStakingPool.sol +36 -0
  341. package/src/assertionStakingPool/interfaces/IAssertionStakingPoolCreator.sol +31 -0
  342. package/src/assertionStakingPool/interfaces/IEdgeStakingPool.sol +27 -0
  343. package/src/assertionStakingPool/interfaces/IEdgeStakingPoolCreator.sol +28 -0
  344. package/src/bridge/AbsBridge.sol +38 -48
  345. package/src/bridge/AbsInbox.sol +88 -97
  346. package/src/bridge/AbsOutbox.sol +23 -37
  347. package/src/bridge/Bridge.sol +6 -4
  348. package/src/bridge/DelayBuffer.sol +123 -0
  349. package/src/bridge/DelayBufferTypes.sol +38 -0
  350. package/src/bridge/ERC20Bridge.sol +8 -4
  351. package/src/bridge/ERC20Inbox.sol +46 -53
  352. package/src/bridge/ERC20Outbox.sol +7 -3
  353. package/src/bridge/GasRefunder.sol +38 -24
  354. package/src/bridge/IBridge.sol +30 -21
  355. package/src/bridge/IERC20Bridge.sol +1 -1
  356. package/src/bridge/IERC20Inbox.sol +4 -2
  357. package/src/bridge/IEthBridge.sol +4 -2
  358. package/src/bridge/IInbox.sol +4 -2
  359. package/src/bridge/IInboxBase.sol +17 -13
  360. package/src/bridge/IOutbox.sol +13 -8
  361. package/src/bridge/ISequencerInbox.sol +118 -13
  362. package/src/bridge/Inbox.sol +131 -151
  363. package/src/bridge/Messages.sol +48 -18
  364. package/src/bridge/Outbox.sol +6 -2
  365. package/src/bridge/SequencerInbox.sol +339 -274
  366. package/src/chain/CacheManager.sol +49 -18
  367. package/src/challengeV2/EdgeChallengeManager.sol +783 -0
  368. package/src/challengeV2/IAssertionChain.sol +39 -0
  369. package/src/challengeV2/libraries/ArrayUtilsLib.sol +61 -0
  370. package/src/challengeV2/libraries/ChallengeEdgeLib.sol +333 -0
  371. package/src/challengeV2/libraries/ChallengeErrors.sol +108 -0
  372. package/src/challengeV2/libraries/EdgeChallengeManagerLib.sol +930 -0
  373. package/src/challengeV2/libraries/Enums.sol +26 -0
  374. package/src/challengeV2/libraries/MerkleTreeAccumulatorLib.sol +390 -0
  375. package/src/challengeV2/libraries/UintUtilsLib.sol +74 -0
  376. package/src/libraries/AddressAliasHelper.sol +6 -2
  377. package/src/libraries/AdminFallbackProxy.sol +8 -4
  378. package/src/libraries/ArbitrumChecker.sol +3 -4
  379. package/src/libraries/CryptographyPrimitives.sol +39 -46
  380. package/src/libraries/DecimalsConverterHelper.sol +2 -4
  381. package/src/libraries/DoubleLogicUUPSUpgradeable.sol +10 -7
  382. package/src/libraries/Error.sol +18 -3
  383. package/src/libraries/GasRefundEnabled.sol +3 -4
  384. package/src/libraries/MerkleLib.sol +6 -5
  385. package/src/libraries/UUPSNotUpgradeable.sol +2 -4
  386. package/src/mocks/BridgeStub.sol +50 -48
  387. package/src/mocks/BridgeUnproxied.sol +2 -0
  388. package/src/mocks/InboxStub.sol +22 -17
  389. package/src/mocks/MerkleTreeAccess.sol +72 -0
  390. package/src/mocks/MockRollupEventInbox.sol +59 -0
  391. package/src/mocks/MultiCallTest.sol +3 -1
  392. package/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol +3 -1
  393. package/src/mocks/Program.sol +9 -7
  394. package/src/mocks/SequencerInboxBlobMock.sol +38 -0
  395. package/src/mocks/SequencerInboxStub.sol +9 -12
  396. package/src/mocks/Simple.sol +13 -25
  397. package/src/mocks/SimpleCacheManager.sol +10 -3
  398. package/src/mocks/SimpleOneStepProofEntry.sol +60 -0
  399. package/src/mocks/SimpleProxy.sol +3 -1
  400. package/src/mocks/TestWETH9.sol +30 -0
  401. package/src/mocks/UpgradeExecutorMock.sol +10 -17
  402. package/src/node-interface/NodeInterface.sol +23 -22
  403. package/src/node-interface/NodeInterfaceDebug.sol +5 -3
  404. package/src/osp/HashProofHelper.sol +9 -10
  405. package/src/osp/IOneStepProofEntry.sol +14 -9
  406. package/src/osp/IOneStepProver.sol +1 -0
  407. package/src/osp/OneStepProofEntry.sol +63 -54
  408. package/src/osp/OneStepProver0.sol +14 -27
  409. package/src/osp/OneStepProverHostIo.sol +31 -58
  410. package/src/osp/OneStepProverMath.sol +15 -23
  411. package/src/osp/OneStepProverMemory.sol +9 -23
  412. package/src/precompiles/ArbAddressTable.sol +19 -9
  413. package/src/precompiles/ArbAggregator.sol +12 -4
  414. package/src/precompiles/ArbBLS.sol +1 -3
  415. package/src/precompiles/ArbDebug.sol +5 -11
  416. package/src/precompiles/ArbFunctionTable.sol +7 -10
  417. package/src/precompiles/ArbGasInfo.sol +9 -43
  418. package/src/precompiles/ArbInfo.sol +6 -2
  419. package/src/precompiles/ArbOwner.sol +101 -34
  420. package/src/precompiles/ArbOwnerPublic.sol +6 -2
  421. package/src/precompiles/ArbRetryableTx.sol +15 -5
  422. package/src/precompiles/ArbStatistics.sol +1 -8
  423. package/src/precompiles/ArbSys.sol +16 -18
  424. package/src/precompiles/ArbWasm.sol +24 -14
  425. package/src/precompiles/ArbWasmCache.sol +15 -5
  426. package/src/precompiles/ArbosTest.sol +3 -1
  427. package/src/rollup/AbsRollupEventInbox.sol +15 -16
  428. package/src/rollup/Assertion.sol +100 -0
  429. package/src/rollup/AssertionState.sol +29 -0
  430. package/src/rollup/BOLDUpgradeAction.sol +631 -0
  431. package/src/rollup/BridgeCreator.sol +42 -15
  432. package/src/rollup/Config.sol +15 -7
  433. package/src/rollup/DeployHelper.sol +12 -31
  434. package/src/rollup/ERC20RollupEventInbox.sol +8 -9
  435. package/src/rollup/FactoryDeployerHelper.sol +8 -10
  436. package/src/rollup/IRollupAdmin.sol +127 -45
  437. package/src/rollup/IRollupCore.sol +64 -84
  438. package/src/rollup/IRollupEventInbox.sol +3 -1
  439. package/src/rollup/IRollupLogic.sol +35 -72
  440. package/src/rollup/RollupAdminLogic.sol +224 -203
  441. package/src/rollup/RollupCore.sol +407 -428
  442. package/src/rollup/RollupCreator.sol +88 -75
  443. package/src/rollup/RollupEventInbox.sol +7 -7
  444. package/src/rollup/RollupLib.sol +50 -86
  445. package/src/rollup/RollupProxy.sol +8 -12
  446. package/src/rollup/RollupUserLogic.sol +279 -644
  447. package/src/rollup/ValidatorUtils.sol +0 -242
  448. package/src/rollup/ValidatorWallet.sol +22 -38
  449. package/src/rollup/ValidatorWalletCreator.sol +8 -8
  450. package/src/state/Deserialize.sol +74 -96
  451. package/src/state/GlobalState.sol +74 -20
  452. package/src/state/Instructions.sol +4 -3
  453. package/src/state/Machine.sol +18 -19
  454. package/src/state/Module.sol +14 -13
  455. package/src/state/ModuleMemory.sol +6 -25
  456. package/src/state/ModuleMemoryCompact.sol +3 -1
  457. package/src/state/MultiStack.sol +16 -20
  458. package/src/state/PcArray.sol +7 -7
  459. package/src/state/StackFrame.sol +21 -14
  460. package/src/state/Value.sol +18 -6
  461. package/src/state/ValueArray.sol +7 -7
  462. package/src/state/ValueStack.sol +9 -3
  463. package/src/test-helpers/BridgeTester.sol +32 -42
  464. package/src/test-helpers/CryptographyPrimitivesTester.sol +12 -13
  465. package/src/test-helpers/EthVault.sol +4 -2
  466. package/src/test-helpers/InterfaceCompatibilityTester.sol +1 -1
  467. package/src/test-helpers/MessageTester.sol +3 -10
  468. package/src/test-helpers/OutboxWithoutOptTester.sol +12 -19
  469. package/src/test-helpers/RollupMock.sol +3 -7
  470. package/src/test-helpers/TestToken.sol +4 -2
  471. package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.dbg.json +0 -4
  472. package/build/contracts/src/challenge/ChallengeLib.sol/ChallengeLib.dbg.json +0 -4
  473. package/build/contracts/src/challenge/ChallengeManager.sol/ChallengeManager.dbg.json +0 -4
  474. package/build/contracts/src/challenge/ChallengeManager.sol/ChallengeManager.json +0 -746
  475. package/build/contracts/src/challenge/IChallengeManager.sol/IChallengeManager.dbg.json +0 -4
  476. package/build/contracts/src/challenge/IChallengeManager.sol/IChallengeManager.json +0 -441
  477. package/build/contracts/src/challenge/IChallengeResultReceiver.sol/IChallengeResultReceiver.dbg.json +0 -4
  478. package/build/contracts/src/challenge/IChallengeResultReceiver.sol/IChallengeResultReceiver.json +0 -34
  479. package/build/contracts/src/mocks/MockResultReceiver.sol/MockResultReceiver.dbg.json +0 -4
  480. package/build/contracts/src/mocks/MockResultReceiver.sol/MockResultReceiver.json +0 -188
  481. package/build/contracts/src/mocks/SingleExecutionChallenge.sol/SingleExecutionChallenge.dbg.json +0 -4
  482. package/build/contracts/src/mocks/SingleExecutionChallenge.sol/SingleExecutionChallenge.json +0 -797
  483. package/build/contracts/src/mocks/TimedOutChallengeManager.sol/TimedOutChallengeManager.dbg.json +0 -4
  484. package/build/contracts/src/mocks/TimedOutChallengeManager.sol/TimedOutChallengeManager.json +0 -746
  485. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserAbs.dbg.json +0 -4
  486. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserAbs.json +0 -1332
  487. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserERC20.dbg.json +0 -4
  488. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserERC20.json +0 -1466
  489. package/build/contracts/src/rollup/Node.sol/NodeLib.dbg.json +0 -4
  490. package/build/contracts/src/rollup/RollupUserLogic.sol/AbsRollupUserLogic.dbg.json +0 -4
  491. package/build/contracts/src/rollup/RollupUserLogic.sol/AbsRollupUserLogic.json +0 -1614
  492. package/build/contracts/src/rollup/RollupUserLogic.sol/ERC20RollupUserLogic.dbg.json +0 -4
  493. package/build/contracts/src/rollup/RollupUserLogic.sol/ERC20RollupUserLogic.json +0 -1748
  494. package/build/contracts/src/rollup/ValidatorUtils.sol/ValidatorUtils.dbg.json +0 -4
  495. package/build/contracts/src/rollup/ValidatorUtils.sol/ValidatorUtils.json +0 -379
  496. package/src/challenge/ChallengeLib.sol +0 -88
  497. package/src/challenge/ChallengeManager.sol +0 -375
  498. package/src/challenge/IChallengeManager.sol +0 -86
  499. package/src/challenge/IChallengeResultReceiver.sol +0 -13
  500. package/src/mocks/MockResultReceiver.sol +0 -59
  501. package/src/mocks/SingleExecutionChallenge.sol +0 -41
  502. package/src/mocks/TimedOutChallengeManager.sol +0 -13
  503. package/src/rollup/Node.sol +0 -113
@@ -9,7 +9,9 @@ library CryptographyPrimitives {
9
9
  // WARNING: This function has the keccak state in a weird order.
10
10
  // If the normal Keccak state is [0, 1, 2, 3, 4, 5, 6, ..., 24]
11
11
  // this function has its state as [0, 5, 10, 15, 20, 1, 6, 11, ..., 24]
12
- function keccakF(uint256[25] memory a) internal pure returns (uint256[25] memory) {
12
+ function keccakF(
13
+ uint256[25] memory a
14
+ ) internal pure returns (uint256[25] memory) {
13
15
  uint256[5] memory c;
14
16
  uint256[5] memory d;
15
17
  //uint D_0; uint D_1; uint D_2; uint D_3; uint D_4;
@@ -60,11 +62,11 @@ library CryptographyPrimitives {
60
62
  D[x] = C[(x+4)%5]^((C[(x+1)%5] * 2)&0xffffffffffffffff | (C[(x+1)%5]/(2**63)));
61
63
  }*/
62
64
 
63
- d[0] = c[4] ^ (((c[1] * 2) & 0xffffffffffffffff) | (c[1] / (2**63)));
64
- d[1] = c[0] ^ (((c[2] * 2) & 0xffffffffffffffff) | (c[2] / (2**63)));
65
- d[2] = c[1] ^ (((c[3] * 2) & 0xffffffffffffffff) | (c[3] / (2**63)));
66
- d[3] = c[2] ^ (((c[4] * 2) & 0xffffffffffffffff) | (c[4] / (2**63)));
67
- d[4] = c[3] ^ (((c[0] * 2) & 0xffffffffffffffff) | (c[0] / (2**63)));
65
+ d[0] = c[4] ^ (((c[1] * 2) & 0xffffffffffffffff) | (c[1] / (2 ** 63)));
66
+ d[1] = c[0] ^ (((c[2] * 2) & 0xffffffffffffffff) | (c[2] / (2 ** 63)));
67
+ d[2] = c[1] ^ (((c[3] * 2) & 0xffffffffffffffff) | (c[3] / (2 ** 63)));
68
+ d[3] = c[2] ^ (((c[4] * 2) & 0xffffffffffffffff) | (c[4] / (2 ** 63)));
69
+ d[4] = c[3] ^ (((c[0] * 2) & 0xffffffffffffffff) | (c[0] / (2 ** 63)));
68
70
 
69
71
  /*
70
72
  for( x = 0 ; x < 5 ; x++ ) {
@@ -101,30 +103,30 @@ library CryptographyPrimitives {
101
103
 
102
104
  /*Rho and pi steps*/
103
105
  b[0] = a[0];
104
- b[8] = (((a[1] * (2**36)) & 0xffffffffffffffff) | (a[1] / (2**28)));
105
- b[11] = (((a[2] * (2**3)) & 0xffffffffffffffff) | (a[2] / (2**61)));
106
- b[19] = (((a[3] * (2**41)) & 0xffffffffffffffff) | (a[3] / (2**23)));
107
- b[22] = (((a[4] * (2**18)) & 0xffffffffffffffff) | (a[4] / (2**46)));
108
- b[2] = (((a[5] * (2**1)) & 0xffffffffffffffff) | (a[5] / (2**63)));
109
- b[5] = (((a[6] * (2**44)) & 0xffffffffffffffff) | (a[6] / (2**20)));
110
- b[13] = (((a[7] * (2**10)) & 0xffffffffffffffff) | (a[7] / (2**54)));
111
- b[16] = (((a[8] * (2**45)) & 0xffffffffffffffff) | (a[8] / (2**19)));
112
- b[24] = (((a[9] * (2**2)) & 0xffffffffffffffff) | (a[9] / (2**62)));
113
- b[4] = (((a[10] * (2**62)) & 0xffffffffffffffff) | (a[10] / (2**2)));
114
- b[7] = (((a[11] * (2**6)) & 0xffffffffffffffff) | (a[11] / (2**58)));
115
- b[10] = (((a[12] * (2**43)) & 0xffffffffffffffff) | (a[12] / (2**21)));
116
- b[18] = (((a[13] * (2**15)) & 0xffffffffffffffff) | (a[13] / (2**49)));
117
- b[21] = (((a[14] * (2**61)) & 0xffffffffffffffff) | (a[14] / (2**3)));
118
- b[1] = (((a[15] * (2**28)) & 0xffffffffffffffff) | (a[15] / (2**36)));
119
- b[9] = (((a[16] * (2**55)) & 0xffffffffffffffff) | (a[16] / (2**9)));
120
- b[12] = (((a[17] * (2**25)) & 0xffffffffffffffff) | (a[17] / (2**39)));
121
- b[15] = (((a[18] * (2**21)) & 0xffffffffffffffff) | (a[18] / (2**43)));
122
- b[23] = (((a[19] * (2**56)) & 0xffffffffffffffff) | (a[19] / (2**8)));
123
- b[3] = (((a[20] * (2**27)) & 0xffffffffffffffff) | (a[20] / (2**37)));
124
- b[6] = (((a[21] * (2**20)) & 0xffffffffffffffff) | (a[21] / (2**44)));
125
- b[14] = (((a[22] * (2**39)) & 0xffffffffffffffff) | (a[22] / (2**25)));
126
- b[17] = (((a[23] * (2**8)) & 0xffffffffffffffff) | (a[23] / (2**56)));
127
- b[20] = (((a[24] * (2**14)) & 0xffffffffffffffff) | (a[24] / (2**50)));
106
+ b[8] = (((a[1] * (2 ** 36)) & 0xffffffffffffffff) | (a[1] / (2 ** 28)));
107
+ b[11] = (((a[2] * (2 ** 3)) & 0xffffffffffffffff) | (a[2] / (2 ** 61)));
108
+ b[19] = (((a[3] * (2 ** 41)) & 0xffffffffffffffff) | (a[3] / (2 ** 23)));
109
+ b[22] = (((a[4] * (2 ** 18)) & 0xffffffffffffffff) | (a[4] / (2 ** 46)));
110
+ b[2] = (((a[5] * (2 ** 1)) & 0xffffffffffffffff) | (a[5] / (2 ** 63)));
111
+ b[5] = (((a[6] * (2 ** 44)) & 0xffffffffffffffff) | (a[6] / (2 ** 20)));
112
+ b[13] = (((a[7] * (2 ** 10)) & 0xffffffffffffffff) | (a[7] / (2 ** 54)));
113
+ b[16] = (((a[8] * (2 ** 45)) & 0xffffffffffffffff) | (a[8] / (2 ** 19)));
114
+ b[24] = (((a[9] * (2 ** 2)) & 0xffffffffffffffff) | (a[9] / (2 ** 62)));
115
+ b[4] = (((a[10] * (2 ** 62)) & 0xffffffffffffffff) | (a[10] / (2 ** 2)));
116
+ b[7] = (((a[11] * (2 ** 6)) & 0xffffffffffffffff) | (a[11] / (2 ** 58)));
117
+ b[10] = (((a[12] * (2 ** 43)) & 0xffffffffffffffff) | (a[12] / (2 ** 21)));
118
+ b[18] = (((a[13] * (2 ** 15)) & 0xffffffffffffffff) | (a[13] / (2 ** 49)));
119
+ b[21] = (((a[14] * (2 ** 61)) & 0xffffffffffffffff) | (a[14] / (2 ** 3)));
120
+ b[1] = (((a[15] * (2 ** 28)) & 0xffffffffffffffff) | (a[15] / (2 ** 36)));
121
+ b[9] = (((a[16] * (2 ** 55)) & 0xffffffffffffffff) | (a[16] / (2 ** 9)));
122
+ b[12] = (((a[17] * (2 ** 25)) & 0xffffffffffffffff) | (a[17] / (2 ** 39)));
123
+ b[15] = (((a[18] * (2 ** 21)) & 0xffffffffffffffff) | (a[18] / (2 ** 43)));
124
+ b[23] = (((a[19] * (2 ** 56)) & 0xffffffffffffffff) | (a[19] / (2 ** 8)));
125
+ b[3] = (((a[20] * (2 ** 27)) & 0xffffffffffffffff) | (a[20] / (2 ** 37)));
126
+ b[6] = (((a[21] * (2 ** 20)) & 0xffffffffffffffff) | (a[21] / (2 ** 44)));
127
+ b[14] = (((a[22] * (2 ** 39)) & 0xffffffffffffffff) | (a[22] / (2 ** 25)));
128
+ b[17] = (((a[23] * (2 ** 8)) & 0xffffffffffffffff) | (a[23] / (2 ** 56)));
129
+ b[20] = (((a[24] * (2 ** 14)) & 0xffffffffffffffff) | (a[24] / (2 ** 50)));
128
130
 
129
131
  /*Xi state*/
130
132
  /*
@@ -172,11 +174,7 @@ library CryptographyPrimitives {
172
174
  return ((x) >> (n)) | ((x) << (32 - (n)));
173
175
  }
174
176
 
175
- function ch(
176
- uint32 e,
177
- uint32 f,
178
- uint32 g
179
- ) internal pure returns (uint32) {
177
+ function ch(uint32 e, uint32 f, uint32 g) internal pure returns (uint32) {
180
178
  return ((e & f) ^ ((~e) & g));
181
179
  }
182
180
 
@@ -184,11 +182,10 @@ library CryptographyPrimitives {
184
182
  // Note that the input must be padded by the caller
185
183
  // For the initial chunk, the initial values from the SHA256 spec should be passed in as hashState
186
184
  // For subsequent rounds, hashState is the output from the previous round
187
- function sha256Block(uint256[2] memory inputChunk, uint256 hashState)
188
- internal
189
- pure
190
- returns (uint256)
191
- {
185
+ function sha256Block(
186
+ uint256[2] memory inputChunk,
187
+ uint256 hashState
188
+ ) internal pure returns (uint256) {
192
189
  unchecked {
193
190
  uint32[64] memory k = [
194
191
  0x428a2f98,
@@ -285,14 +282,10 @@ library CryptographyPrimitives {
285
282
 
286
283
  for (i = 0; i < 64; i++) {
287
284
  s1 =
288
- rightRotate(state[4], 6) ^
289
- rightRotate(state[4], 11) ^
290
- rightRotate(state[4], 25);
285
+ rightRotate(state[4], 6) ^ rightRotate(state[4], 11) ^ rightRotate(state[4], 25);
291
286
  temp1 = state[7] + s1 + ch(state[4], state[5], state[6]) + k[i] + w[i];
292
287
  s0 =
293
- rightRotate(state[0], 2) ^
294
- rightRotate(state[0], 13) ^
295
- rightRotate(state[0], 22);
288
+ rightRotate(state[0], 2) ^ rightRotate(state[0], 13) ^ rightRotate(state[0], 22);
296
289
 
297
290
  maj = (state[0] & (state[1] ^ state[2])) ^ (state[1] & state[2]);
298
291
  temp2 = s0 + maj;
@@ -4,8 +4,6 @@
4
4
 
5
5
  pragma solidity ^0.8.0;
6
6
 
7
- import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
8
-
9
7
  library DecimalsConverterHelper {
10
8
  /// @notice generic function for mapping amount from one decimal denomination to another
11
9
  /// @dev Ie. let's say amount is 752. If token has 16 decimals and is being adjusted to
@@ -25,9 +23,9 @@ library DecimalsConverterHelper {
25
23
  if (decimalsIn == decimalsOut) {
26
24
  return amount;
27
25
  } else if (decimalsIn < decimalsOut) {
28
- return amount * 10**(decimalsOut - decimalsIn);
26
+ return amount * 10 ** (decimalsOut - decimalsIn);
29
27
  } else {
30
- return amount / 10**(decimalsIn - decimalsOut);
28
+ return amount / 10 ** (decimalsIn - decimalsOut);
31
29
  }
32
30
  }
33
31
  }
@@ -26,7 +26,9 @@ abstract contract DoubleLogicUUPSUpgradeable is UUPSUpgradeable, DoubleLogicERC1
26
26
  * function _authorizeSecondaryUpgrade(address) internal override onlyOwner {}
27
27
  * ```
28
28
  */
29
- function _authorizeSecondaryUpgrade(address newImplementation) internal virtual;
29
+ function _authorizeSecondaryUpgrade(
30
+ address newImplementation
31
+ ) internal virtual;
30
32
 
31
33
  /**
32
34
  * @dev Upgrade the secondary implementation of the proxy to `newImplementation`.
@@ -35,7 +37,9 @@ abstract contract DoubleLogicUUPSUpgradeable is UUPSUpgradeable, DoubleLogicERC1
35
37
  *
36
38
  * Emits an {UpgradedSecondary} event.
37
39
  */
38
- function upgradeSecondaryTo(address newImplementation) external onlyProxy {
40
+ function upgradeSecondaryTo(
41
+ address newImplementation
42
+ ) external onlyProxy {
39
43
  _authorizeSecondaryUpgrade(newImplementation);
40
44
  _upgradeSecondaryToAndCallUUPS(newImplementation, new bytes(0), false);
41
45
  }
@@ -48,11 +52,10 @@ abstract contract DoubleLogicUUPSUpgradeable is UUPSUpgradeable, DoubleLogicERC1
48
52
  *
49
53
  * Emits an {UpgradedSecondary} event.
50
54
  */
51
- function upgradeSecondaryToAndCall(address newImplementation, bytes memory data)
52
- external
53
- payable
54
- onlyProxy
55
- {
55
+ function upgradeSecondaryToAndCall(
56
+ address newImplementation,
57
+ bytes memory data
58
+ ) external payable onlyProxy {
56
59
  _authorizeSecondaryUpgrade(newImplementation);
57
60
  _upgradeSecondaryToAndCallUUPS(newImplementation, data, true);
58
61
  }
@@ -149,9 +149,6 @@ error DelayedTooFar();
149
149
  /// @dev Force include can only read messages more blocks old than the delay period
150
150
  error ForceIncludeBlockTooSoon();
151
151
 
152
- /// @dev Force include can only read messages more seconds old than the delay period
153
- error ForceIncludeTimeTooSoon();
154
-
155
152
  /// @dev The message provided did not match the hash in the delayed inbox
156
153
  error IncorrectMessagePreimage();
157
154
 
@@ -176,6 +173,15 @@ error NotBatchPosterManager(address);
176
173
  /// @dev Thrown when a data blob feature is attempted to be used on a chain that doesnt support it
177
174
  error DataBlobsNotSupported();
178
175
 
176
+ /// @dev Thrown when batches are posted without buffer proof, this is only allowed in a sync state or when no new delayed messages are read
177
+ error DelayProofRequired();
178
+
179
+ /// @dev The DelayedAccPreimage is invalid
180
+ error InvalidDelayedAccPreimage();
181
+
182
+ /// @dev Thrown when the sequencer attempts to post a batch with delay / sync proofs without delay bufferability enabled
183
+ error NotDelayBufferable();
184
+
179
185
  /// @dev Thrown when an init param was supplied as empty
180
186
  error InitParamZero(string name);
181
187
 
@@ -196,3 +202,12 @@ error Deprecated();
196
202
 
197
203
  /// @dev Thrown when any component of maxTimeVariation is over uint64
198
204
  error BadMaxTimeVariation();
205
+
206
+ /// @dev Thrown when any component of bufferConfig is zero
207
+ error BadBufferConfig();
208
+
209
+ /// @dev Thrown when extra gas is not a uint64
210
+ error ExtraGasNotUint64();
211
+
212
+ /// @dev Thrown when keysetBytes is too large
213
+ error KeysetTooLarge();
@@ -9,7 +9,7 @@ import "./IReader4844.sol";
9
9
  import "./IGasRefunder.sol";
10
10
 
11
11
  abstract contract GasRefundEnabled {
12
- uint256 internal immutable gasPerBlob = 2**17;
12
+ uint256 internal immutable gasPerBlob = 2 ** 17;
13
13
 
14
14
  /// @dev this refunds the sender for execution costs of the tx
15
15
  /// calldata costs are only refunded if `msg.sender == tx.origin` to guarantee the value refunded relates to charging
@@ -21,7 +21,7 @@ abstract contract GasRefundEnabled {
21
21
  uint256 calldataSize = msg.data.length;
22
22
  uint256 calldataWords = (calldataSize + 31) / 32;
23
23
  // account for the CALLDATACOPY cost of the proxy contract, including the memory expansion cost
24
- startGasLeft += calldataWords * 6 + (calldataWords**2) / 512;
24
+ startGasLeft += calldataWords * 6 + (calldataWords ** 2) / 512;
25
25
  // if triggered in a contract call, the spender may be overrefunded by appending dummy data to the call
26
26
  // so we check if it is a top level call, which would mean the sender paid calldata as part of tx.input
27
27
  // solhint-disable-next-line avoid-tx-origin
@@ -39,8 +39,7 @@ abstract contract GasRefundEnabled {
39
39
  if (dataHashes.length != 0) {
40
40
  uint256 blobBasefee = reader4844.getBlobBaseFee();
41
41
  startGasLeft +=
42
- (dataHashes.length * gasPerBlob * blobBasefee) /
43
- block.basefee;
42
+ (dataHashes.length * gasPerBlob * blobBasefee) / block.basefee;
44
43
  }
45
44
  } catch {}
46
45
  }
@@ -7,15 +7,16 @@ pragma solidity ^0.8.4;
7
7
  import {MerkleProofTooLong} from "./Error.sol";
8
8
 
9
9
  library MerkleLib {
10
- function generateRoot(bytes32[] memory _hashes) internal pure returns (bytes32) {
10
+ function generateRoot(
11
+ bytes32[] memory _hashes
12
+ ) internal pure returns (bytes32) {
11
13
  bytes32[] memory prevLayer = _hashes;
12
14
  while (prevLayer.length > 1) {
13
15
  bytes32[] memory nextLayer = new bytes32[]((prevLayer.length + 1) / 2);
14
16
  for (uint256 i = 0; i < nextLayer.length; i++) {
15
17
  if (2 * i + 1 < prevLayer.length) {
16
- nextLayer[i] = keccak256(
17
- abi.encodePacked(prevLayer[2 * i], prevLayer[2 * i + 1])
18
- );
18
+ nextLayer[i] =
19
+ keccak256(abi.encodePacked(prevLayer[2 * i], prevLayer[2 * i + 1]));
19
20
  } else {
20
21
  nextLayer[i] = prevLayer[2 * i];
21
22
  }
@@ -33,7 +34,7 @@ library MerkleLib {
33
34
  uint256 proofItems = nodes.length;
34
35
  if (proofItems > 256) revert MerkleProofTooLong(proofItems, 256);
35
36
  bytes32 h = item;
36
- for (uint256 i = 0; i < proofItems; ) {
37
+ for (uint256 i = 0; i < proofItems;) {
37
38
  bytes32 node = nodes[i];
38
39
  if ((route & (1 << i)) == 0) {
39
40
  assembly {
@@ -24,8 +24,7 @@ abstract contract UUPSNotUpgradeable is IERC1822Proxiable, DoubleLogicERC1967Upg
24
24
  modifier onlyProxy() {
25
25
  require(address(this) != __self, "Function must be called through delegatecall");
26
26
  require(
27
- _getSecondaryImplementation() == __self,
28
- "Function must be called through active proxy"
27
+ _getSecondaryImplementation() == __self, "Function must be called through active proxy"
29
28
  );
30
29
  _;
31
30
  }
@@ -36,8 +35,7 @@ abstract contract UUPSNotUpgradeable is IERC1822Proxiable, DoubleLogicERC1967Upg
36
35
  */
37
36
  modifier notDelegated() {
38
37
  require(
39
- address(this) == __self,
40
- "UUPSNotUpgradeable: must not be called through delegatecall"
38
+ address(this) == __self, "UUPSNotUpgradeable: must not be called through delegatecall"
41
39
  );
42
40
  _;
43
41
  }
@@ -35,20 +35,28 @@ contract BridgeStub is IBridge, IEthBridge {
35
35
  address public nativeToken;
36
36
  uint8 public nativeTokenDecimals;
37
37
 
38
- function setSequencerInbox(address _sequencerInbox) external override {
38
+ function setSequencerInbox(
39
+ address _sequencerInbox
40
+ ) external override {
39
41
  sequencerInbox = _sequencerInbox;
40
42
  emit SequencerInboxUpdated(_sequencerInbox);
41
43
  }
42
44
 
43
- function allowedDelayedInboxes(address inbox) external view override returns (bool) {
45
+ function allowedDelayedInboxes(
46
+ address inbox
47
+ ) external view override returns (bool) {
44
48
  return allowedDelayedInboxesMap[inbox].allowed;
45
49
  }
46
50
 
47
- function allowedOutboxes(address) external pure override returns (bool) {
51
+ function allowedOutboxes(
52
+ address
53
+ ) external pure override returns (bool) {
48
54
  revert("NOT_IMPLEMENTED");
49
55
  }
50
56
 
51
- function updateRollupAddress(IOwnable) external pure {
57
+ function updateRollupAddress(
58
+ IOwnable
59
+ ) external pure {
52
60
  revert("NOT_IMPLEMENTED");
53
61
  }
54
62
 
@@ -58,15 +66,14 @@ contract BridgeStub is IBridge, IEthBridge {
58
66
  bytes32 messageDataHash
59
67
  ) external payable override returns (uint256) {
60
68
  require(allowedDelayedInboxesMap[msg.sender].allowed, "NOT_FROM_INBOX");
61
- return
62
- addMessageToDelayedAccumulator(
63
- kind,
64
- sender,
65
- block.number,
66
- block.timestamp, // solhint-disable-line not-rely-on-time
67
- block.basefee,
68
- messageDataHash
69
- );
69
+ return addMessageToDelayedAccumulator(
70
+ kind,
71
+ sender,
72
+ block.number,
73
+ block.timestamp, // solhint-disable-line not-rely-on-time
74
+ block.basefee,
75
+ messageDataHash
76
+ );
70
77
  }
71
78
 
72
79
  function enqueueSequencerMessage(
@@ -76,17 +83,11 @@ contract BridgeStub is IBridge, IEthBridge {
76
83
  uint256 newMessageCount
77
84
  )
78
85
  external
79
- returns (
80
- uint256 seqMessageIndex,
81
- bytes32 beforeAcc,
82
- bytes32 delayedAcc,
83
- bytes32 acc
84
- )
86
+ returns (uint256 seqMessageIndex, bytes32 beforeAcc, bytes32 delayedAcc, bytes32 acc)
85
87
  {
86
88
  if (
87
- sequencerReportedSubMessageCount != prevMessageCount &&
88
- prevMessageCount != 0 &&
89
- sequencerReportedSubMessageCount != 0
89
+ sequencerReportedSubMessageCount != prevMessageCount && prevMessageCount != 0
90
+ && sequencerReportedSubMessageCount != 0
90
91
  ) {
91
92
  revert BadSequencerMessageNumber(sequencerReportedSubMessageCount, prevMessageCount);
92
93
  }
@@ -102,10 +103,10 @@ contract BridgeStub is IBridge, IEthBridge {
102
103
  sequencerInboxAccs.push(acc);
103
104
  }
104
105
 
105
- function submitBatchSpendingReport(address batchPoster, bytes32 dataHash)
106
- external
107
- returns (uint256)
108
- {
106
+ function submitBatchSpendingReport(
107
+ address batchPoster,
108
+ bytes32 dataHash
109
+ ) external returns (uint256) {
109
110
  // TODO: implement stub
110
111
  }
111
112
 
@@ -118,15 +119,8 @@ contract BridgeStub is IBridge, IEthBridge {
118
119
  bytes32 messageDataHash
119
120
  ) internal returns (uint256) {
120
121
  uint256 count = delayedInboxAccs.length;
121
- bytes32 messageHash = Messages.messageHash(
122
- 0,
123
- address(uint160(0)),
124
- 0,
125
- 0,
126
- 0,
127
- 0,
128
- messageDataHash
129
- );
122
+ bytes32 messageHash =
123
+ Messages.messageHash(0, address(uint160(0)), 0, 0, 0, 0, messageDataHash);
130
124
  bytes32 prevAcc = 0;
131
125
  if (count > 0) {
132
126
  prevAcc = delayedInboxAccs[count - 1];
@@ -136,11 +130,21 @@ contract BridgeStub is IBridge, IEthBridge {
136
130
  }
137
131
 
138
132
  function executeCall(
139
- address,
140
- uint256,
141
- bytes calldata
142
- ) external pure override returns (bool, bytes memory) {
143
- revert("NOT_IMPLEMENTED");
133
+ address to,
134
+ uint256 value,
135
+ bytes calldata data
136
+ ) external override returns (bool success, bytes memory returnData) {
137
+ (success, returnData) = _executeLowLevelCall(to, value, data);
138
+ emit BridgeCallTriggered(msg.sender, to, value, data);
139
+ }
140
+
141
+ function _executeLowLevelCall(
142
+ address to,
143
+ uint256 value,
144
+ bytes memory data
145
+ ) internal returns (bool success, bytes memory returnData) {
146
+ // solhint-disable-next-line avoid-low-level-calls
147
+ (success, returnData) = to.call{value: value}(data);
144
148
  }
145
149
 
146
150
  function setDelayedInbox(address inbox, bool enabled) external override {
@@ -154,19 +158,15 @@ contract BridgeStub is IBridge, IEthBridge {
154
158
  allowedDelayedInboxesMap[inbox] = InOutInfo(allowedDelayedInboxList.length, true);
155
159
  allowedDelayedInboxList.push(inbox);
156
160
  } else {
157
- allowedDelayedInboxList[info.index] = allowedDelayedInboxList[
158
- allowedDelayedInboxList.length - 1
159
- ];
161
+ allowedDelayedInboxList[info.index] =
162
+ allowedDelayedInboxList[allowedDelayedInboxList.length - 1];
160
163
  allowedDelayedInboxesMap[allowedDelayedInboxList[info.index]].index = info.index;
161
164
  allowedDelayedInboxList.pop();
162
165
  delete allowedDelayedInboxesMap[inbox];
163
166
  }
164
167
  }
165
168
 
166
- function setOutbox(
167
- address, /* outbox */
168
- bool /* enabled*/
169
- ) external pure override {
169
+ function setOutbox(address, /* outbox */ bool /* enabled*/ ) external pure override {
170
170
  revert("NOT_IMPLEMENTED");
171
171
  }
172
172
 
@@ -184,7 +184,9 @@ contract BridgeStub is IBridge, IEthBridge {
184
184
 
185
185
  function acceptFundsFromOldBridge() external payable {}
186
186
 
187
- function initialize(IOwnable) external pure {
187
+ function initialize(
188
+ IOwnable
189
+ ) external pure {
188
190
  revert("NOT_IMPLEMENTED");
189
191
  }
190
192
  }
@@ -10,6 +10,8 @@ import {BadSequencerMessageNumber} from "../libraries/Error.sol";
10
10
  import "../bridge/Bridge.sol";
11
11
 
12
12
  contract BridgeUnproxied is Bridge {
13
+ uint256 public DUMMYVAR = 0; // This is a dummy variable to disambiguous with the Bridge contract
14
+
13
15
  constructor() {
14
16
  _activeOutbox = EMPTY_ACTIVEOUTBOX;
15
17
  rollup = IOwnable(msg.sender);
@@ -48,7 +48,9 @@ contract InboxStub is IInboxBase, IInbox {
48
48
  * @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
49
49
  * @param messageData Data of the message being sent
50
50
  */
51
- function sendL2MessageFromOrigin(bytes calldata messageData) external returns (uint256) {
51
+ function sendL2MessageFromOrigin(
52
+ bytes calldata messageData
53
+ ) external returns (uint256) {
52
54
  // solhint-disable-next-line avoid-tx-origin
53
55
  require(msg.sender == tx.origin, "origin only");
54
56
  uint256 msgNum = deliverToBridge(L2_MSG, msg.sender, keccak256(messageData));
@@ -61,7 +63,9 @@ contract InboxStub is IInboxBase, IInbox {
61
63
  * @dev This method can be used to send any type of message that doesn't require L1 validation
62
64
  * @param messageData Data of the message being sent
63
65
  */
64
- function sendL2Message(bytes calldata messageData) external override returns (uint256) {
66
+ function sendL2Message(
67
+ bytes calldata messageData
68
+ ) external override returns (uint256) {
65
69
  uint256 msgNum = deliverToBridge(L2_MSG, msg.sender, keccak256(messageData));
66
70
  emit InboxMessageDelivered(msgNum, messageData);
67
71
  return msgNum;
@@ -72,12 +76,9 @@ contract InboxStub is IInboxBase, IInbox {
72
76
  address sender,
73
77
  bytes32 messageDataHash
74
78
  ) internal returns (uint256) {
75
- return
76
- IEthBridge(address(bridge)).enqueueDelayedMessage{value: msg.value}(
77
- kind,
78
- sender,
79
- messageDataHash
80
- );
79
+ return IEthBridge(address(bridge)).enqueueDelayedMessage{value: msg.value}(
80
+ kind, sender, messageDataHash
81
+ );
81
82
  }
82
83
 
83
84
  function sendUnsignedTransaction(
@@ -181,14 +182,14 @@ contract InboxStub is IInboxBase, IInbox {
181
182
  revert("NOT_IMPLEMENTED");
182
183
  }
183
184
 
184
- function postUpgradeInit(IBridge _bridge) external {}
185
+ function postUpgradeInit(
186
+ IBridge _bridge
187
+ ) external {}
185
188
 
186
- function calculateRetryableSubmissionFee(uint256, uint256)
187
- external
188
- pure
189
- override
190
- returns (uint256)
191
- {
189
+ function calculateRetryableSubmissionFee(
190
+ uint256,
191
+ uint256
192
+ ) external pure override returns (uint256) {
192
193
  revert("NOT_IMPLEMENTED");
193
194
  }
194
195
 
@@ -196,11 +197,15 @@ contract InboxStub is IInboxBase, IInbox {
196
197
  revert("NOT_IMPLEMENTED");
197
198
  }
198
199
 
199
- function setAllowListEnabled(bool) external pure {
200
+ function setAllowListEnabled(
201
+ bool
202
+ ) external pure {
200
203
  revert("NOT_IMPLEMENTED");
201
204
  }
202
205
 
203
- function isAllowed(address) external pure returns (bool) {
206
+ function isAllowed(
207
+ address
208
+ ) external pure returns (bool) {
204
209
  revert("NOT_IMPLEMENTED");
205
210
  }
206
211
 
@@ -0,0 +1,72 @@
1
+ // Copyright 2023, Offchain Labs, Inc.
2
+ // For license information, see https://github.com/offchainlabs/bold/blob/main/LICENSE
3
+ // SPDX-License-Identifier: BUSL-1.1
4
+ //
5
+ pragma solidity ^0.8.17;
6
+
7
+ import "../challengeV2/libraries/MerkleTreeAccumulatorLib.sol";
8
+ import "../challengeV2/libraries/UintUtilsLib.sol";
9
+
10
+ contract MerkleTreeAccess {
11
+ function mostSignificantBit(
12
+ uint256 x
13
+ ) external pure returns (uint256) {
14
+ return UintUtilsLib.mostSignificantBit(x);
15
+ }
16
+
17
+ function leastSignificantBit(
18
+ uint256 x
19
+ ) external pure returns (uint256) {
20
+ return UintUtilsLib.leastSignificantBit(x);
21
+ }
22
+
23
+ function root(
24
+ bytes32[] memory me
25
+ ) external pure returns (bytes32) {
26
+ return MerkleTreeAccumulatorLib.root(me);
27
+ }
28
+
29
+ function appendCompleteSubTree(
30
+ bytes32[] memory me,
31
+ uint256 level,
32
+ bytes32 subtreeRoot
33
+ ) external pure returns (bytes32[] memory) {
34
+ return MerkleTreeAccumulatorLib.appendCompleteSubTree(me, level, subtreeRoot);
35
+ }
36
+
37
+ function appendLeaf(
38
+ bytes32[] memory me,
39
+ bytes32 leaf
40
+ ) external pure returns (bytes32[] memory) {
41
+ return MerkleTreeAccumulatorLib.appendLeaf(me, leaf);
42
+ }
43
+
44
+ function maximumAppendBetween(
45
+ uint256 startSize,
46
+ uint256 endSize
47
+ ) external pure returns (uint256) {
48
+ return MerkleTreeAccumulatorLib.maximumAppendBetween(startSize, endSize);
49
+ }
50
+
51
+ function verifyPrefixProof(
52
+ bytes32 preRoot,
53
+ uint256 preSize,
54
+ bytes32 postRoot,
55
+ uint256 postSize,
56
+ bytes32[] memory preExpansion,
57
+ bytes32[] memory proof
58
+ ) external pure {
59
+ return MerkleTreeAccumulatorLib.verifyPrefixProof(
60
+ preRoot, preSize, postRoot, postSize, preExpansion, proof
61
+ );
62
+ }
63
+
64
+ function verifyInclusionProof(
65
+ bytes32 rootHash,
66
+ bytes32 leaf,
67
+ uint256 index,
68
+ bytes32[] memory proof
69
+ ) external pure {
70
+ MerkleTreeAccumulatorLib.verifyInclusionProof(rootHash, leaf, index, proof);
71
+ }
72
+ }