@arbitrum/nitro-contracts 2.0.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 -494
  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 -530
  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 +16 -6
  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 -12
  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 +36 -69
  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 -642
  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 -1327
  487. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserERC20.dbg.json +0 -4
  488. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserERC20.json +0 -1461
  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 -1609
  492. package/build/contracts/src/rollup/RollupUserLogic.sol/ERC20RollupUserLogic.dbg.json +0 -4
  493. package/build/contracts/src/rollup/RollupUserLogic.sol/ERC20RollupUserLogic.json +0 -1743
  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
@@ -0,0 +1,59 @@
1
+ // Copyright 2021-2022, Offchain Labs, Inc.
2
+ // For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE
3
+ // SPDX-License-Identifier: BUSL-1.1
4
+
5
+ pragma solidity ^0.8.0;
6
+
7
+ import "../rollup/IRollupEventInbox.sol";
8
+ import "../bridge/IEthBridge.sol";
9
+ import "../bridge/IDelayedMessageProvider.sol";
10
+ import "../precompiles/ArbGasInfo.sol";
11
+ import "../libraries/DelegateCallAware.sol";
12
+ import "../libraries/ArbitrumChecker.sol";
13
+ import {INITIALIZATION_MSG_TYPE} from "../libraries/MessageTypes.sol";
14
+ import {AlreadyInit, HadZeroInit} from "../libraries/Error.sol";
15
+
16
+ /**
17
+ * @title The inbox for rollup protocol events
18
+ */
19
+ contract MockRollupEventInbox is IRollupEventInbox, IDelayedMessageProvider, DelegateCallAware {
20
+ IBridge public override bridge;
21
+ address public override rollup;
22
+
23
+ modifier onlyRollup() {
24
+ require(msg.sender == rollup, "ONLY_ROLLUP");
25
+ _;
26
+ }
27
+
28
+ function initialize(
29
+ IBridge _bridge
30
+ ) external override onlyDelegated {
31
+ if (address(bridge) != address(0)) revert AlreadyInit();
32
+ if (address(_bridge) == address(0)) revert HadZeroInit();
33
+ bridge = _bridge;
34
+ rollup = address(_bridge.rollup());
35
+ }
36
+
37
+ /// @notice Allows the proxy owner to set the rollup address
38
+ function updateRollupAddress() external onlyDelegated onlyProxyOwner {
39
+ rollup = address(bridge.rollup());
40
+ }
41
+
42
+ function rollupInitialized(
43
+ uint256 chainId,
44
+ string calldata chainConfig
45
+ ) external override onlyRollup {
46
+ require(bytes(chainConfig).length > 0, "EMPTY_CHAIN_CONFIG");
47
+ uint8 initMsgVersion = 1;
48
+ uint256 currentDataCost = 1; // Set to a base fee of 1.
49
+ if (ArbitrumChecker.runningOnArbitrum()) {
50
+ currentDataCost += ArbGasInfo(address(0x6c)).getL1BaseFeeEstimate();
51
+ }
52
+ bytes memory initMsg =
53
+ abi.encodePacked(chainId, initMsgVersion, currentDataCost, chainConfig);
54
+ uint256 num = IEthBridge(address(bridge)).enqueueDelayedMessage(
55
+ INITIALIZATION_MSG_TYPE, address(0), keccak256(initMsg)
56
+ );
57
+ emit InboxMessageDelivered(num, initMsg);
58
+ }
59
+ }
@@ -26,7 +26,9 @@ contract MultiCallTest {
26
26
  // solhint-disable reason-string
27
27
  // solhint-disable avoid-low-level-calls
28
28
  // solhint-disable-next-line prettier/prettier
29
- fallback(bytes calldata input) external payable returns (bytes memory) {
29
+ fallback(
30
+ bytes calldata input
31
+ ) external payable returns (bytes memory) {
30
32
  require(input.length > 0);
31
33
  uint8 count = uint8(input[0]);
32
34
  input = input[1:];
@@ -21,7 +21,9 @@ contract PendingBlkTimeAndNrAdvanceCheck {
21
21
  require(ARB_SYS.arbBlockNumber() > deployedAtBlock, "Block didn't advance");
22
22
  }
23
23
 
24
- function checkArbBlockHashReturnsLatest(bytes32 expected) external {
24
+ function checkArbBlockHashReturnsLatest(
25
+ bytes32 expected
26
+ ) external {
25
27
  bytes32 gotBlockHash = ARB_SYS.arbBlockHash(ARB_SYS.arbBlockNumber() - 1);
26
28
  require(gotBlockHash != bytes32(0), "ZERO_BLOCK_HASH");
27
29
  require(gotBlockHash == expected, "WRONG_BLOCK_HASH");
@@ -3,6 +3,7 @@
3
3
  // SPDX-License-Identifier: BUSL-1.1
4
4
 
5
5
  pragma solidity ^0.8.0;
6
+
6
7
  import "../precompiles/ArbSys.sol";
7
8
  import "@openzeppelin/contracts/utils/Strings.sol";
8
9
 
@@ -20,11 +21,10 @@ contract ProgramTest {
20
21
  require(hash == keccak256(data[1:]));
21
22
  }
22
23
 
23
- function staticcallProgram(address program, bytes calldata data)
24
- external
25
- view
26
- returns (bytes memory)
27
- {
24
+ function staticcallProgram(
25
+ address program,
26
+ bytes calldata data
27
+ ) external view returns (bytes memory) {
28
28
  (bool success, bytes memory result) = address(program).staticcall(data);
29
29
  require(success, "call failed");
30
30
  return result;
@@ -101,7 +101,9 @@ contract ProgramTest {
101
101
  return result;
102
102
  }
103
103
 
104
- function mathTest(address program) external {
104
+ function mathTest(
105
+ address program
106
+ ) external {
105
107
  uint256 value = 0xeddecf107b5740cef7f5a01e3ea7e287665c4e75a8eb6afae2fda2e3d4367786;
106
108
  value = mulmod(
107
109
  value,
@@ -115,7 +117,7 @@ contract ProgramTest {
115
117
  );
116
118
  unchecked {
117
119
  value /= 0xeddecf107b5740ce;
118
- value = value**0xfffffffefffffc2f;
120
+ value = value ** 0xfffffffefffffc2f;
119
121
  value = value % 0xc6178c2de1078cd3;
120
122
  }
121
123
 
@@ -0,0 +1,38 @@
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 "../bridge/SequencerInbox.sol";
8
+
9
+ contract SequencerInboxBlobMock is SequencerInbox {
10
+ constructor(
11
+ uint256 maxDataSize_,
12
+ IReader4844 reader_,
13
+ bool isUsingFeeToken_,
14
+ bool isDelayBufferable_
15
+ ) SequencerInbox(maxDataSize_, reader_, isUsingFeeToken_, isDelayBufferable_) {}
16
+
17
+ /// @dev Form a hash of the data being provided in 4844 data blobs
18
+ /// @param afterDelayedMessagesRead The delayed messages count read up to
19
+ /// @return The data hash
20
+ /// @return The timebounds within which the message should be processed
21
+ /// @return The normalized amount of gas used for blob posting
22
+ function formBlobDataHash(
23
+ uint256 afterDelayedMessagesRead
24
+ ) internal view override returns (bytes32, IBridge.TimeBounds memory, uint256) {
25
+ bytes32[3] memory dataHashes = [bytes32(0), bytes32(0), bytes32(0)];
26
+ if (dataHashes.length == 0) revert MissingDataHashes();
27
+
28
+ (bytes memory header, IBridge.TimeBounds memory timeBounds) =
29
+ packHeader(afterDelayedMessagesRead);
30
+ uint256 BLOB_BASE_FEE = 1 gwei;
31
+ uint256 blobCost = BLOB_BASE_FEE * GAS_PER_BLOB * dataHashes.length;
32
+ return (
33
+ keccak256(bytes.concat(header, DATA_BLOB_HEADER_FLAG, abi.encodePacked(dataHashes))),
34
+ timeBounds,
35
+ block.basefee > 0 ? blobCost / block.basefee : 0
36
+ );
37
+ }
38
+ }
@@ -15,8 +15,9 @@ contract SequencerInboxStub is SequencerInbox {
15
15
  ISequencerInbox.MaxTimeVariation memory maxTimeVariation_,
16
16
  uint256 maxDataSize_,
17
17
  IReader4844 reader4844_,
18
- bool isUsingFeeToken_
19
- ) SequencerInbox(maxDataSize_, reader4844_, isUsingFeeToken_) {
18
+ bool isUsingFeeToken_,
19
+ bool isDelayBufferable_
20
+ ) SequencerInbox(maxDataSize_, reader4844_, isUsingFeeToken_, isDelayBufferable_) {
20
21
  bridge = bridge_;
21
22
  rollup = IOwnable(msg.sender);
22
23
  delayBlocks = uint64(maxTimeVariation_.delayBlocks);
@@ -26,22 +27,18 @@ contract SequencerInboxStub is SequencerInbox {
26
27
  isBatchPoster[sequencer_] = true;
27
28
  }
28
29
 
29
- function addInitMessage(uint256 chainId) external {
30
+ function addInitMessage(
31
+ uint256 chainId
32
+ ) external {
30
33
  bytes memory initMsg = abi.encodePacked(chainId);
31
34
  uint256 num = IEthBridge(address(bridge)).enqueueDelayedMessage(
32
- INITIALIZATION_MSG_TYPE,
33
- address(0),
34
- keccak256(initMsg)
35
+ INITIALIZATION_MSG_TYPE, address(0), keccak256(initMsg)
35
36
  );
36
37
  require(num == 0, "ALREADY_DELAYED_INIT");
37
38
  emit InboxMessageDelivered(num, initMsg);
38
39
  (bytes32 dataHash, IBridge.TimeBounds memory timeBounds) = formEmptyDataHash(1);
39
- (
40
- uint256 sequencerMessageCount,
41
- bytes32 beforeAcc,
42
- bytes32 delayedAcc,
43
- bytes32 afterAcc
44
- ) = addSequencerL2BatchImpl(dataHash, 1, 0, 0, 1);
40
+ (uint256 sequencerMessageCount, bytes32 beforeAcc, bytes32 delayedAcc, bytes32 afterAcc) =
41
+ addSequencerL2BatchImpl(dataHash, 1, 0, 0, 1);
45
42
  require(sequencerMessageCount == 0, "ALREADY_SEQ_INIT");
46
43
  emit SequencerBatchDelivered(
47
44
  sequencerMessageCount,
@@ -21,7 +21,9 @@ contract Simple {
21
21
  counter++;
22
22
  }
23
23
 
24
- function logAndIncrement(uint256 expected) external {
24
+ function logAndIncrement(
25
+ uint256 expected
26
+ ) external {
25
27
  emit LogAndIncrementCalled(expected, counter);
26
28
  counter++;
27
29
  }
@@ -67,8 +69,7 @@ contract Simple {
67
69
  require(ArbSys(address(100)).isTopLevelCall() == expected, "UNEXPECTED_RESULT");
68
70
  } else {
69
71
  require(
70
- ArbSys(address(100)).wasMyCallersAddressAliased() == expected,
71
- "UNEXPECTED_RESULT"
72
+ ArbSys(address(100)).wasMyCallersAddressAliased() == expected, "UNEXPECTED_RESULT"
72
73
  );
73
74
  }
74
75
  }
@@ -86,8 +87,7 @@ contract Simple {
86
87
  require(ArbSys(address(100)).isTopLevelCall() == directCase, "UNEXPECTED_RESULT");
87
88
  } else {
88
89
  require(
89
- ArbSys(address(100)).wasMyCallersAddressAliased() == directCase,
90
- "UNEXPECTED_RESULT"
90
+ ArbSys(address(100)).wasMyCallersAddressAliased() == directCase, "UNEXPECTED_RESULT"
91
91
  );
92
92
  }
93
93
 
@@ -96,19 +96,15 @@ contract Simple {
96
96
 
97
97
  // DELEGATE CALL
98
98
  bytes memory data = abi.encodeWithSelector(
99
- this.checkIsTopLevelOrWasAliased.selector,
100
- useTopLevel,
101
- delegateCase
99
+ this.checkIsTopLevelOrWasAliased.selector, useTopLevel, delegateCase
102
100
  );
103
101
  // solhint-disable-next-line avoid-low-level-calls
104
- (bool success, ) = address(this).delegatecall(data);
102
+ (bool success,) = address(this).delegatecall(data);
105
103
  require(success, "DELEGATE_CALL_FAILED");
106
104
 
107
105
  // CALLCODE
108
106
  data = abi.encodeWithSelector(
109
- this.checkIsTopLevelOrWasAliased.selector,
110
- useTopLevel,
111
- callcodeCase
107
+ this.checkIsTopLevelOrWasAliased.selector, useTopLevel, callcodeCase
112
108
  );
113
109
  assembly {
114
110
  success := callcode(gas(), address(), 0, add(data, 32), mload(data), 0, 0)
@@ -116,13 +112,10 @@ contract Simple {
116
112
  require(success, "CALLCODE_FAILED");
117
113
 
118
114
  // CALL
119
- data = abi.encodeWithSelector(
120
- this.checkIsTopLevelOrWasAliased.selector,
121
- useTopLevel,
122
- callCase
123
- );
115
+ data =
116
+ abi.encodeWithSelector(this.checkIsTopLevelOrWasAliased.selector, useTopLevel, callCase);
124
117
  // solhint-disable-next-line avoid-low-level-calls
125
- (success, ) = address(this).call(data);
118
+ (success,) = address(this).call(data);
126
119
  require(success, "CALL_FAILED");
127
120
  }
128
121
 
@@ -132,7 +125,7 @@ contract Simple {
132
125
  // so we ignore the result of this call.
133
126
  // solhint-disable-next-line avoid-low-level-calls
134
127
  // solc-ignore-next-line unused-call-retval
135
- to.staticcall{gas: before - 10000}(input);
128
+ to.staticcall{gas: before - 10000}(input);// forgefmt: disable-line
136
129
  return before - gasleft();
137
130
  }
138
131
 
@@ -145,12 +138,7 @@ contract Simple {
145
138
  uint256 delayedMessagesRead = sequencerInbox.totalDelayedMessagesRead();
146
139
  for (uint256 i = 0; i < numberToPost; i++) {
147
140
  sequencerInbox.addSequencerL2Batch(
148
- sequenceNumber,
149
- batchData,
150
- delayedMessagesRead,
151
- IGasRefunder(address(0)),
152
- 0,
153
- 0
141
+ sequenceNumber, batchData, delayedMessagesRead, IGasRefunder(address(0)), 0, 0
154
142
  );
155
143
  sequenceNumber++;
156
144
  }
@@ -3,18 +3,25 @@
3
3
  // SPDX-License-Identifier: BUSL-1.1
4
4
 
5
5
  pragma solidity ^0.8.0;
6
+
6
7
  import "../precompiles/ArbWasmCache.sol";
7
8
 
8
9
  contract SimpleCacheManager {
9
- function cacheProgram(address program) external {
10
+ function cacheProgram(
11
+ address program
12
+ ) external {
10
13
  ArbWasmCache(address(0x72)).cacheProgram(program);
11
14
  }
12
15
 
13
- function evictProgram(address program) external {
16
+ function evictProgram(
17
+ address program
18
+ ) external {
14
19
  ArbWasmCache(address(0x72)).evictCodehash(codehash(program));
15
20
  }
16
21
 
17
- function codehash(address program) internal view returns (bytes32 hash) {
22
+ function codehash(
23
+ address program
24
+ ) internal view returns (bytes32 hash) {
18
25
  assembly {
19
26
  hash := extcodehash(program)
20
27
  }
@@ -0,0 +1,60 @@
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/EdgeChallengeManager.sol";
8
+ import "../state/Deserialize.sol";
9
+
10
+ contract SimpleOneStepProofEntry is IOneStepProofEntry {
11
+ using GlobalStateLib for GlobalState;
12
+
13
+ // End the batch after 2000 steps. This results in 11 blocks for an honest validator.
14
+ // This constant must be synchronized with the one in execution/engine.go
15
+ uint64 public constant STEPS_PER_BATCH = 2000;
16
+
17
+ function getStartMachineHash(
18
+ bytes32 globalStateHash,
19
+ bytes32 wasmModuleRoot
20
+ ) external pure returns (bytes32) {
21
+ return keccak256(abi.encodePacked("Machine:", globalStateHash, wasmModuleRoot));
22
+ }
23
+
24
+ function proveOneStep(
25
+ ExecutionContext calldata execCtx,
26
+ uint256 step,
27
+ bytes32 beforeHash,
28
+ bytes calldata proof
29
+ ) external view returns (bytes32 afterHash) {
30
+ if (proof.length == 0) {
31
+ revert("EMPTY_PROOF");
32
+ }
33
+ GlobalState memory globalState;
34
+ uint256 offset;
35
+ (globalState.u64Vals[0], offset) = Deserialize.u64(proof, offset);
36
+ (globalState.u64Vals[1], offset) = Deserialize.u64(proof, offset);
37
+ if (step > 0 && (beforeHash[0] == 0 || globalState.getPositionInMessage() == 0)) {
38
+ // We end the block when the first byte of the hash hits 0 or we advance a batch
39
+ return beforeHash;
40
+ }
41
+ if (globalState.getInboxPosition() >= execCtx.maxInboxMessagesRead) {
42
+ // We can't continue further because we've hit the max inbox messages read
43
+ return beforeHash;
44
+ }
45
+ require(globalState.hash() == beforeHash, "BAD_PROOF");
46
+ globalState.u64Vals[1]++;
47
+ if (globalState.u64Vals[1] % STEPS_PER_BATCH == 0) {
48
+ globalState.u64Vals[0]++;
49
+ globalState.u64Vals[1] = 0;
50
+ }
51
+ return globalState.hash();
52
+ }
53
+
54
+ function getMachineHash(
55
+ ExecutionState calldata execState
56
+ ) external pure override returns (bytes32) {
57
+ require(execState.machineStatus == MachineStatus.FINISHED, "BAD_MACHINE_STATUS");
58
+ return execState.globalState.hash();
59
+ }
60
+ }
@@ -9,7 +9,9 @@ import "@openzeppelin/contracts/proxy/Proxy.sol";
9
9
  contract SimpleProxy is Proxy {
10
10
  address private immutable impl;
11
11
 
12
- constructor(address impl_) {
12
+ constructor(
13
+ address impl_
14
+ ) {
13
15
  impl = impl_;
14
16
  }
15
17
 
@@ -0,0 +1,30 @@
1
+ // Copyright 2021-2022, Offchain Labs, Inc.
2
+ // For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE
3
+ // SPDX-License-Identifier: BUSL-1.1
4
+
5
+ pragma solidity ^0.8.0;
6
+
7
+ import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
8
+
9
+ interface IWETH9 {
10
+ function deposit() external payable;
11
+
12
+ function withdraw(
13
+ uint256 _amount
14
+ ) external;
15
+ }
16
+
17
+ contract TestWETH9 is ERC20, IWETH9 {
18
+ constructor(string memory name_, string memory symbol_) ERC20(name_, symbol_) {}
19
+
20
+ function deposit() external payable override {
21
+ _mint(msg.sender, msg.value);
22
+ }
23
+
24
+ function withdraw(
25
+ uint256 _amount
26
+ ) external override {
27
+ _burn(msg.sender, _amount);
28
+ payable(address(msg.sender)).transfer(_amount);
29
+ }
30
+ }
@@ -47,16 +47,13 @@ contract UpgradeExecutorMock is
47
47
  /// @dev Only executor can call this. Since we're using a delegatecall here the Upgrade contract
48
48
  /// will have access to the state of this contract - including the roles. Only upgrade contracts
49
49
  /// that do not touch local state should be used.
50
- function execute(address upgrade, bytes memory upgradeCallData)
51
- public
52
- payable
53
- onlyRole(EXECUTOR_ROLE)
54
- nonReentrant
55
- {
50
+ function execute(
51
+ address upgrade,
52
+ bytes memory upgradeCallData
53
+ ) public payable onlyRole(EXECUTOR_ROLE) nonReentrant {
56
54
  // OZ Address library check if the address is a contract and bubble up inner revert reason
57
55
  address(upgrade).functionDelegateCall(
58
- upgradeCallData,
59
- "UpgradeExecutor: inner delegate call failed without reason"
56
+ upgradeCallData, "UpgradeExecutor: inner delegate call failed without reason"
60
57
  );
61
58
 
62
59
  emit UpgradeExecuted(upgrade, msg.value, upgradeCallData);
@@ -64,17 +61,13 @@ contract UpgradeExecutorMock is
64
61
 
65
62
  /// @notice Execute an upgrade by directly calling target contract
66
63
  /// @dev Only executor can call this.
67
- function executeCall(address target, bytes memory targetCallData)
68
- public
69
- payable
70
- onlyRole(EXECUTOR_ROLE)
71
- nonReentrant
72
- {
64
+ function executeCall(
65
+ address target,
66
+ bytes memory targetCallData
67
+ ) public payable onlyRole(EXECUTOR_ROLE) nonReentrant {
73
68
  // OZ Address library check if the address is a contract and bubble up inner revert reason
74
69
  address(target).functionCallWithValue(
75
- targetCallData,
76
- msg.value,
77
- "UpgradeExecutor: inner call failed without reason"
70
+ targetCallData, msg.value, "UpgradeExecutor: inner call failed without reason"
78
71
  );
79
72
 
80
73
  emit TargetCallExecuted(target, msg.value, targetCallData);
@@ -4,7 +4,8 @@
4
4
 
5
5
  pragma solidity >=0.4.21 <0.9.0;
6
6
 
7
- /** @title Interface for providing gas estimation for retryable auto-redeems and constructing outbox proofs
7
+ /**
8
+ * @title Interface for providing gas estimation for retryable auto-redeems and constructing outbox proofs
8
9
  * @notice This contract doesn't exist on-chain. Instead it is a virtual interface accessible at
9
10
  * 0x00000000000000000000000000000000000000C8
10
11
  * This is a cute trick to allow an Arbitrum node to provide data without us having to implement additional RPCs
@@ -41,14 +42,10 @@ interface NodeInterface {
41
42
  * @return root the root of the outbox accumulator
42
43
  * @return proof level-by-level branch hashes constituting a proof of the send's membership at the given size
43
44
  */
44
- function constructOutboxProof(uint64 size, uint64 leaf)
45
- external
46
- view
47
- returns (
48
- bytes32 send,
49
- bytes32 root,
50
- bytes32[] memory proof
51
- );
45
+ function constructOutboxProof(
46
+ uint64 size,
47
+ uint64 leaf
48
+ ) external view returns (bytes32 send, bytes32 root, bytes32[] memory proof);
52
49
 
53
50
  /**
54
51
  * @notice Finds the L1 batch containing a requested L2 block, reverting if none does.
@@ -57,7 +54,9 @@ interface NodeInterface {
57
54
  * @param blockNum The L2 block being queried
58
55
  * @return batch The sequencer batch number containing the requested L2 block
59
56
  */
60
- function findBatchContainingBlock(uint64 blockNum) external view returns (uint64 batch);
57
+ function findBatchContainingBlock(
58
+ uint64 blockNum
59
+ ) external view returns (uint64 batch);
61
60
 
62
61
  /**
63
62
  * @notice Gets the number of L1 confirmations of the sequencer batch producing the requested L2 block
@@ -68,7 +67,9 @@ interface NodeInterface {
68
67
  * @param blockHash The hash of the L2 block being queried
69
68
  * @return confirmations The number of L1 confirmations the sequencer batch has. Returns 0 if block not yet included in an L1 batch.
70
69
  */
71
- function getL1Confirmations(bytes32 blockHash) external view returns (uint64 confirmations);
70
+ function getL1Confirmations(
71
+ bytes32 blockHash
72
+ ) external view returns (uint64 confirmations);
72
73
 
73
74
  /**
74
75
  * @notice Same as native gas estimation, but with additional info on the l1 costs.
@@ -116,11 +117,7 @@ interface NodeInterface {
116
117
  )
117
118
  external
118
119
  payable
119
- returns (
120
- uint64 gasEstimateForL1,
121
- uint256 baseFee,
122
- uint256 l1BaseFeeEstimate
123
- );
120
+ returns (uint64 gasEstimateForL1, uint256 baseFee, uint256 l1BaseFeeEstimate);
124
121
 
125
122
  /**
126
123
  * @notice Returns the proof necessary to redeem a message
@@ -136,7 +133,10 @@ interface NodeInterface {
136
133
  * @return amount value in L1 message in wei
137
134
  * @return calldataForL1 abi-encoded L1 message data
138
135
  */
139
- function legacyLookupMessageBatchProof(uint256 batchNum, uint64 index)
136
+ function legacyLookupMessageBatchProof(
137
+ uint256 batchNum,
138
+ uint64 index
139
+ )
140
140
  external
141
141
  view
142
142
  returns (
@@ -158,7 +158,9 @@ interface NodeInterface {
158
158
 
159
159
  // @notice Returns the L1 block number of the L2 block
160
160
  // @return l1BlockNum The L1 block number
161
- function blockL1Num(uint64 l2BlockNum) external view returns (uint64 l1BlockNum);
161
+ function blockL1Num(
162
+ uint64 l2BlockNum
163
+ ) external view returns (uint64 l1BlockNum);
162
164
 
163
165
  /**
164
166
  * @notice Finds the L2 block number range that has the given L1 block number
@@ -167,8 +169,7 @@ interface NodeInterface {
167
169
  * @return firstBlock The first L2 block number with the given L1 block number
168
170
  * @return lastBlock The last L2 block number with the given L1 block number
169
171
  */
170
- function l2BlockRangeForL1(uint64 blockNum)
171
- external
172
- view
173
- returns (uint64 firstBlock, uint64 lastBlock);
172
+ function l2BlockRangeForL1(
173
+ uint64 blockNum
174
+ ) external view returns (uint64 firstBlock, uint64 lastBlock);
174
175
  }
@@ -4,12 +4,12 @@
4
4
 
5
5
  pragma solidity >=0.4.21 <0.9.0;
6
6
 
7
- /** @title An extension to NodeInterface not meant for public consumption. Do not call.
7
+ /**
8
+ * @title An extension to NodeInterface not meant for public consumption. Do not call.
8
9
  * @notice This contract doesn't exist on-chain. Instead it is a virtual interface accessible at 0xc9.
9
10
  * These methods add additional debugging and network monitoring instruments not intended for end users and
10
11
  * as such may change without notice.
11
12
  */
12
-
13
13
  interface NodeInterfaceDebug {
14
14
  struct RetryableInfo {
15
15
  uint64 timeout;
@@ -26,5 +26,7 @@ interface NodeInterfaceDebug {
26
26
  * @param ticket the retryable's id
27
27
  * @return retryable the serialized retryable
28
28
  */
29
- function getRetryable(bytes32 ticket) external view returns (RetryableInfo memory retryable);
29
+ function getRetryable(
30
+ bytes32 ticket
31
+ ) external view returns (RetryableInfo memory retryable);
30
32
  }
@@ -30,10 +30,10 @@ contract HashProofHelper {
30
30
  uint256 private constant MAX_PART_LENGTH = 32;
31
31
  uint256 private constant KECCAK_ROUND_INPUT = 136;
32
32
 
33
- function proveWithFullPreimage(bytes calldata data, uint64 offset)
34
- external
35
- returns (bytes32 fullHash)
36
- {
33
+ function proveWithFullPreimage(
34
+ bytes calldata data,
35
+ uint64 offset
36
+ ) external returns (bytes32 fullHash) {
37
37
  fullHash = keccak256(data);
38
38
  bytes memory part;
39
39
  if (data.length > offset) {
@@ -96,11 +96,7 @@ contract HashProofHelper {
96
96
  delete keccakStates[msg.sender];
97
97
  }
98
98
 
99
- function keccakUpdate(
100
- KeccakState storage state,
101
- bytes calldata data,
102
- bool isFinal
103
- ) internal {
99
+ function keccakUpdate(KeccakState storage state, bytes calldata data, bool isFinal) internal {
104
100
  state.length += data.length;
105
101
  while (true) {
106
102
  if (data.length == 0 && !isFinal) {
@@ -144,7 +140,10 @@ contract HashProofHelper {
144
140
  }
145
141
 
146
142
  /// Retrieves up to 32 bytes of the preimage of fullHash at the given offset, reverting if it hasn't been proven yet.
147
- function getPreimagePart(bytes32 fullHash, uint64 offset) external view returns (bytes memory) {
143
+ function getPreimagePart(
144
+ bytes32 fullHash,
145
+ uint64 offset
146
+ ) external view returns (bytes memory) {
148
147
  PreimagePart storage part = preimageParts[fullHash][offset];
149
148
  if (!part.proven) {
150
149
  revert NotProven(fullHash, offset);