@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,27 @@
1
+ // Copyright 2021-2022, Offchain Labs, Inc.
2
+ // For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE
3
+ // SPDX-License-Identifier: BUSL-1.1
4
+
5
+ pragma solidity ^0.8.0;
6
+
7
+ import "../../challengeV2/EdgeChallengeManager.sol";
8
+ import "./IAbsBoldStakingPool.sol";
9
+
10
+ interface IEdgeStakingPool is IAbsBoldStakingPool {
11
+ /// @notice The resulting edge does not match the expected edge
12
+ error IncorrectEdgeId(bytes32 actual, bytes32 expected);
13
+
14
+ /// @notice Thrown when edge id is empty
15
+ error EmptyEdgeId();
16
+
17
+ /// @notice Create the edge. Callable only if required stake has been reached and edge has not been created yet.
18
+ function createEdge(
19
+ CreateEdgeArgs calldata args
20
+ ) external;
21
+
22
+ /// @notice The targeted challenge manager contract
23
+ function challengeManager() external view returns (address);
24
+
25
+ /// @notice The edge that this pool will create
26
+ function edgeId() external view returns (bytes32);
27
+ }
@@ -0,0 +1,28 @@
1
+ // Copyright 2021-2022, Offchain Labs, Inc.
2
+ // For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE
3
+ // SPDX-License-Identifier: BUSL-1.1
4
+
5
+ pragma solidity ^0.8.0;
6
+
7
+ import "./IEdgeStakingPool.sol";
8
+
9
+ interface IEdgeStakingPoolCreator {
10
+ /// @notice Event emitted when a new staking pool is created
11
+ event NewEdgeStakingPoolCreated(address indexed challengeManager, bytes32 indexed edgeId);
12
+
13
+ /// @notice Create an edge staking pool contract
14
+ /// @param challengeManager EdgeChallengeManager contract
15
+ /// @param edgeId The ID of the edge to be created (see ChallengeEdgeLib.id)
16
+ function createPool(
17
+ address challengeManager,
18
+ bytes32 edgeId
19
+ ) external returns (IEdgeStakingPool);
20
+
21
+ /// @notice get staking pool deployed with provided inputs; reverts if pool contract doesn't exist.
22
+ /// @param challengeManager EdgeChallengeManager contract
23
+ /// @param edgeId The ID of the edge to be created (see ChallengeEdgeLib.id)
24
+ function getPool(
25
+ address challengeManager,
26
+ bytes32 edgeId
27
+ ) external view returns (IEdgeStakingPool);
28
+ }
@@ -1,5 +1,5 @@
1
1
  // Copyright 2021-2022, Offchain Labs, Inc.
2
- // For license information, see https://github.com/nitro/blob/master/LICENSE
2
+ // For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE
3
3
  // SPDX-License-Identifier: BUSL-1.1
4
4
 
5
5
  pragma solidity ^0.8.4;
@@ -68,7 +68,9 @@ abstract contract AbsBridge is Initializable, DelegateCallAware, IBridge {
68
68
  }
69
69
 
70
70
  /// @notice Allows the rollup owner to set another rollup address
71
- function updateRollupAddress(IOwnable _rollup) external onlyRollupOrOwner {
71
+ function updateRollupAddress(
72
+ IOwnable _rollup
73
+ ) external onlyRollupOrOwner {
72
74
  rollup = _rollup;
73
75
  emit RollupUpdated(address(_rollup));
74
76
  }
@@ -84,11 +86,15 @@ abstract contract AbsBridge is Initializable, DelegateCallAware, IBridge {
84
86
  return outbox;
85
87
  }
86
88
 
87
- function allowedDelayedInboxes(address inbox) public view returns (bool) {
89
+ function allowedDelayedInboxes(
90
+ address inbox
91
+ ) public view returns (bool) {
88
92
  return allowedDelayedInboxesMap[inbox].allowed;
89
93
  }
90
94
 
91
- function allowedOutboxes(address outbox) public view returns (bool) {
95
+ function allowedOutboxes(
96
+ address outbox
97
+ ) public view returns (bool) {
92
98
  return allowedOutboxesMap[outbox].allowed;
93
99
  }
94
100
 
@@ -105,17 +111,11 @@ abstract contract AbsBridge is Initializable, DelegateCallAware, IBridge {
105
111
  )
106
112
  external
107
113
  onlySequencerInbox
108
- returns (
109
- uint256 seqMessageIndex,
110
- bytes32 beforeAcc,
111
- bytes32 delayedAcc,
112
- bytes32 acc
113
- )
114
+ returns (uint256 seqMessageIndex, bytes32 beforeAcc, bytes32 delayedAcc, bytes32 acc)
114
115
  {
115
116
  if (
116
- sequencerReportedSubMessageCount != prevMessageCount &&
117
- prevMessageCount != 0 &&
118
- sequencerReportedSubMessageCount != 0
117
+ sequencerReportedSubMessageCount != prevMessageCount && prevMessageCount != 0
118
+ && sequencerReportedSubMessageCount != 0
119
119
  ) {
120
120
  revert BadSequencerMessageNumber(sequencerReportedSubMessageCount, prevMessageCount);
121
121
  }
@@ -132,20 +132,18 @@ abstract contract AbsBridge is Initializable, DelegateCallAware, IBridge {
132
132
  }
133
133
 
134
134
  /// @inheritdoc IBridge
135
- function submitBatchSpendingReport(address sender, bytes32 messageDataHash)
136
- external
137
- onlySequencerInbox
138
- returns (uint256)
139
- {
140
- return
141
- addMessageToDelayedAccumulator(
142
- L1MessageType_batchPostingReport,
143
- sender,
144
- uint64(block.number),
145
- uint64(block.timestamp), // solhint-disable-line not-rely-on-time,
146
- block.basefee,
147
- messageDataHash
148
- );
135
+ function submitBatchSpendingReport(
136
+ address sender,
137
+ bytes32 messageDataHash
138
+ ) external onlySequencerInbox returns (uint256) {
139
+ return addMessageToDelayedAccumulator(
140
+ L1MessageType_batchPostingReport,
141
+ sender,
142
+ uint64(block.number),
143
+ uint64(block.timestamp), // solhint-disable-line not-rely-on-time,
144
+ block.basefee,
145
+ messageDataHash
146
+ );
149
147
  }
150
148
 
151
149
  function _enqueueDelayedMessage(
@@ -180,13 +178,7 @@ abstract contract AbsBridge is Initializable, DelegateCallAware, IBridge {
180
178
  ) internal returns (uint256) {
181
179
  uint256 count = delayedInboxAccs.length;
182
180
  bytes32 messageHash = Messages.messageHash(
183
- kind,
184
- sender,
185
- blockNumber,
186
- blockTimestamp,
187
- count,
188
- baseFeeL1,
189
- messageDataHash
181
+ kind, sender, blockNumber, blockTimestamp, count, baseFeeL1, messageDataHash
190
182
  );
191
183
  bytes32 prevAcc = 0;
192
184
  if (count > 0) {
@@ -194,14 +186,7 @@ abstract contract AbsBridge is Initializable, DelegateCallAware, IBridge {
194
186
  }
195
187
  delayedInboxAccs.push(Messages.accumulateInboxMessage(prevAcc, messageHash));
196
188
  emit MessageDelivered(
197
- count,
198
- prevAcc,
199
- msg.sender,
200
- kind,
201
- sender,
202
- messageDataHash,
203
- baseFeeL1,
204
- blockTimestamp
189
+ count, prevAcc, msg.sender, kind, sender, messageDataHash, baseFeeL1, blockTimestamp
205
190
  );
206
191
  return count;
207
192
  }
@@ -226,7 +211,9 @@ abstract contract AbsBridge is Initializable, DelegateCallAware, IBridge {
226
211
  emit BridgeCallTriggered(msg.sender, to, value, data);
227
212
  }
228
213
 
229
- function setSequencerInbox(address _sequencerInbox) external onlyRollupOrOwner {
214
+ function setSequencerInbox(
215
+ address _sequencerInbox
216
+ ) external onlyRollupOrOwner {
230
217
  sequencerInbox = _sequencerInbox;
231
218
  emit SequencerInboxUpdated(_sequencerInbox);
232
219
  }
@@ -242,9 +229,8 @@ abstract contract AbsBridge is Initializable, DelegateCallAware, IBridge {
242
229
  allowedDelayedInboxesMap[inbox] = InOutInfo(allowedDelayedInboxList.length, true);
243
230
  allowedDelayedInboxList.push(inbox);
244
231
  } else {
245
- allowedDelayedInboxList[info.index] = allowedDelayedInboxList[
246
- allowedDelayedInboxList.length - 1
247
- ];
232
+ allowedDelayedInboxList[info.index] =
233
+ allowedDelayedInboxList[allowedDelayedInboxList.length - 1];
248
234
  allowedDelayedInboxesMap[allowedDelayedInboxList[info.index]].index = info.index;
249
235
  allowedDelayedInboxList.pop();
250
236
  delete allowedDelayedInboxesMap[inbox];
@@ -271,7 +257,9 @@ abstract contract AbsBridge is Initializable, DelegateCallAware, IBridge {
271
257
  }
272
258
  }
273
259
 
274
- function setSequencerReportedSubMessageCount(uint256 newMsgCount) external onlyRollupOrOwner {
260
+ function setSequencerReportedSubMessageCount(
261
+ uint256 newMsgCount
262
+ ) external onlyRollupOrOwner {
275
263
  sequencerReportedSubMessageCount = newMsgCount;
276
264
  }
277
265
 
@@ -287,7 +275,9 @@ abstract contract AbsBridge is Initializable, DelegateCallAware, IBridge {
287
275
  function acceptFundsFromOldBridge() external payable {}
288
276
 
289
277
  /// @dev transfer funds provided to pay for crosschain msg
290
- function _transferFunds(uint256 amount) internal virtual;
278
+ function _transferFunds(
279
+ uint256 amount
280
+ ) internal virtual;
291
281
 
292
282
  function _executeLowLevelCall(
293
283
  address to,
@@ -1,17 +1,17 @@
1
1
  // Copyright 2021-2022, Offchain Labs, Inc.
2
- // For license information, see https://github.com/nitro/blob/master/LICENSE
2
+ // For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE
3
3
  // SPDX-License-Identifier: BUSL-1.1
4
4
 
5
5
  pragma solidity ^0.8.4;
6
6
 
7
7
  import {
8
8
  DataTooLarge,
9
+ Deprecated,
9
10
  GasLimitTooLarge,
10
11
  InsufficientValue,
11
12
  InsufficientSubmissionCost,
12
13
  L1Forked,
13
14
  NotAllowedOrigin,
14
- NotOrigin,
15
15
  NotRollupOrOwner,
16
16
  RetryableData
17
17
  } from "../libraries/Error.sol";
@@ -68,7 +68,9 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
68
68
  }
69
69
 
70
70
  /// @inheritdoc IInboxBase
71
- function setAllowListEnabled(bool _allowListEnabled) external onlyRollupOrOwner {
71
+ function setAllowListEnabled(
72
+ bool _allowListEnabled
73
+ ) external onlyRollupOrOwner {
72
74
  require(_allowListEnabled != allowListEnabled, "ALREADY_SET");
73
75
  allowListEnabled = _allowListEnabled;
74
76
  emit AllowListEnabledUpdated(_allowListEnabled);
@@ -101,7 +103,9 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
101
103
  uint256 public immutable maxDataSize;
102
104
  uint256 internal immutable deployTimeChainId = block.chainid;
103
105
 
104
- constructor(uint256 _maxDataSize) {
106
+ constructor(
107
+ uint256 _maxDataSize
108
+ ) {
105
109
  maxDataSize = _maxDataSize;
106
110
  }
107
111
 
@@ -120,10 +124,10 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
120
124
  }
121
125
 
122
126
  /* solhint-disable func-name-mixedcase */
123
- function __AbsInbox_init(IBridge _bridge, ISequencerInbox _sequencerInbox)
124
- internal
125
- onlyInitializing
126
- {
127
+ function __AbsInbox_init(
128
+ IBridge _bridge,
129
+ ISequencerInbox _sequencerInbox
130
+ ) internal onlyInitializing {
127
131
  bridge = _bridge;
128
132
  sequencerInbox = _sequencerInbox;
129
133
  allowListEnabled = false;
@@ -131,28 +135,16 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
131
135
  }
132
136
 
133
137
  /// @inheritdoc IInboxBase
134
- function sendL2MessageFromOrigin(bytes calldata messageData)
135
- external
136
- whenNotPaused
137
- onlyAllowed
138
- returns (uint256)
139
- {
140
- if (_chainIdChanged()) revert L1Forked();
141
- // solhint-disable-next-line avoid-tx-origin
142
- if (msg.sender != tx.origin) revert NotOrigin();
143
- if (messageData.length > maxDataSize) revert DataTooLarge(messageData.length, maxDataSize);
144
- uint256 msgNum = _deliverToBridge(L2_MSG, msg.sender, keccak256(messageData), 0);
145
- emit InboxMessageDeliveredFromOrigin(msgNum);
146
- return msgNum;
138
+ function sendL2MessageFromOrigin(
139
+ bytes calldata
140
+ ) external pure returns (uint256) {
141
+ revert Deprecated();
147
142
  }
148
143
 
149
144
  /// @inheritdoc IInboxBase
150
- function sendL2Message(bytes calldata messageData)
151
- external
152
- whenNotPaused
153
- onlyAllowed
154
- returns (uint256)
155
- {
145
+ function sendL2Message(
146
+ bytes calldata messageData
147
+ ) external whenNotPaused onlyAllowed returns (uint256) {
156
148
  if (_chainIdChanged()) revert L1Forked();
157
149
  return _deliverMessage(L2_MSG, msg.sender, messageData, 0);
158
150
  }
@@ -170,21 +162,20 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
170
162
  if (gasLimit > type(uint64).max) {
171
163
  revert GasLimitTooLarge();
172
164
  }
173
- return
174
- _deliverMessage(
175
- L2_MSG,
176
- msg.sender,
177
- abi.encodePacked(
178
- L2MessageType_unsignedEOATx,
179
- gasLimit,
180
- maxFeePerGas,
181
- nonce,
182
- uint256(uint160(to)),
183
- value,
184
- data
185
- ),
186
- 0
187
- );
165
+ return _deliverMessage(
166
+ L2_MSG,
167
+ msg.sender,
168
+ abi.encodePacked(
169
+ L2MessageType_unsignedEOATx,
170
+ gasLimit,
171
+ maxFeePerGas,
172
+ nonce,
173
+ uint256(uint160(to)),
174
+ value,
175
+ data
176
+ ),
177
+ 0
178
+ );
188
179
  }
189
180
 
190
181
  /// @inheritdoc IInboxBase
@@ -199,20 +190,19 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
199
190
  if (gasLimit > type(uint64).max) {
200
191
  revert GasLimitTooLarge();
201
192
  }
202
- return
203
- _deliverMessage(
204
- L2_MSG,
205
- msg.sender,
206
- abi.encodePacked(
207
- L2MessageType_unsignedContractTx,
208
- gasLimit,
209
- maxFeePerGas,
210
- uint256(uint160(to)),
211
- value,
212
- data
213
- ),
214
- 0
215
- );
193
+ return _deliverMessage(
194
+ L2_MSG,
195
+ msg.sender,
196
+ abi.encodePacked(
197
+ L2MessageType_unsignedContractTx,
198
+ gasLimit,
199
+ maxFeePerGas,
200
+ uint256(uint160(to)),
201
+ value,
202
+ data
203
+ ),
204
+ 0
205
+ );
216
206
  }
217
207
 
218
208
  /// @inheritdoc IInboxBase
@@ -237,8 +227,7 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
237
227
  uint256 amountToBeMintedOnL2 = _fromNativeTo18Decimals(amount);
238
228
  if (amountToBeMintedOnL2 < (maxSubmissionCost + l2CallValue + gasLimit * maxFeePerGas)) {
239
229
  revert InsufficientValue(
240
- maxSubmissionCost + l2CallValue + gasLimit * maxFeePerGas,
241
- amountToBeMintedOnL2
230
+ maxSubmissionCost + l2CallValue + gasLimit * maxFeePerGas, amountToBeMintedOnL2
242
231
  );
243
232
  }
244
233
 
@@ -254,18 +243,17 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
254
243
  }
255
244
 
256
245
  // gas limit is validated to be within uint64 in unsafeCreateRetryableTicket
257
- return
258
- _unsafeCreateRetryableTicket(
259
- to,
260
- l2CallValue,
261
- maxSubmissionCost,
262
- excessFeeRefundAddress,
263
- callValueRefundAddress,
264
- gasLimit,
265
- maxFeePerGas,
266
- amount,
267
- data
268
- );
246
+ return _unsafeCreateRetryableTicket(
247
+ to,
248
+ l2CallValue,
249
+ maxSubmissionCost,
250
+ excessFeeRefundAddress,
251
+ callValueRefundAddress,
252
+ gasLimit,
253
+ maxFeePerGas,
254
+ amount,
255
+ data
256
+ );
269
257
  }
270
258
 
271
259
  function _unsafeCreateRetryableTicket(
@@ -281,7 +269,7 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
281
269
  ) internal returns (uint256) {
282
270
  // gas price and limit of 1 should never be a valid input, so instead they are used as
283
271
  // magic values to trigger a revert in eth calls that surface data without requiring a tx trace
284
- if (gasLimit == 1 || maxFeePerGas == 1)
272
+ if (gasLimit == 1 || maxFeePerGas == 1) {
285
273
  revert RetryableData(
286
274
  msg.sender,
287
275
  to,
@@ -294,6 +282,7 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
294
282
  maxFeePerGas,
295
283
  data
296
284
  );
285
+ }
297
286
 
298
287
  // arbos will discard retryable with gas limit too large
299
288
  if (gasLimit > type(uint64).max) {
@@ -301,27 +290,27 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
301
290
  }
302
291
 
303
292
  uint256 submissionFee = calculateRetryableSubmissionFee(data.length, block.basefee);
304
- if (maxSubmissionCost < submissionFee)
293
+ if (maxSubmissionCost < submissionFee) {
305
294
  revert InsufficientSubmissionCost(submissionFee, maxSubmissionCost);
295
+ }
306
296
 
307
- return
308
- _deliverMessage(
309
- L1MessageType_submitRetryableTx,
310
- msg.sender,
311
- abi.encodePacked(
312
- uint256(uint160(to)),
313
- l2CallValue,
314
- _fromNativeTo18Decimals(amount),
315
- maxSubmissionCost,
316
- uint256(uint160(excessFeeRefundAddress)),
317
- uint256(uint160(callValueRefundAddress)),
318
- gasLimit,
319
- maxFeePerGas,
320
- data.length,
321
- data
322
- ),
323
- amount
324
- );
297
+ return _deliverMessage(
298
+ L1MessageType_submitRetryableTx,
299
+ msg.sender,
300
+ abi.encodePacked(
301
+ uint256(uint160(to)),
302
+ l2CallValue,
303
+ _fromNativeTo18Decimals(amount),
304
+ maxSubmissionCost,
305
+ uint256(uint160(excessFeeRefundAddress)),
306
+ uint256(uint160(callValueRefundAddress)),
307
+ gasLimit,
308
+ maxFeePerGas,
309
+ data.length,
310
+ data
311
+ ),
312
+ amount
313
+ );
325
314
  }
326
315
 
327
316
  function _deliverMessage(
@@ -330,8 +319,9 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
330
319
  bytes memory _messageData,
331
320
  uint256 amount
332
321
  ) internal returns (uint256) {
333
- if (_messageData.length > maxDataSize)
322
+ if (_messageData.length > maxDataSize) {
334
323
  revert DataTooLarge(_messageData.length, maxDataSize);
324
+ }
335
325
  uint256 msgNum = _deliverToBridge(_kind, _sender, keccak256(_messageData), amount);
336
326
  emit InboxMessageDelivered(msgNum, _messageData);
337
327
  return msgNum;
@@ -344,11 +334,10 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
344
334
  uint256 amount
345
335
  ) internal virtual returns (uint256);
346
336
 
347
- function calculateRetryableSubmissionFee(uint256 dataLength, uint256 baseFee)
348
- public
349
- view
350
- virtual
351
- returns (uint256);
337
+ function calculateRetryableSubmissionFee(
338
+ uint256 dataLength,
339
+ uint256 baseFee
340
+ ) public view virtual returns (uint256);
352
341
 
353
342
  /// @notice get amount of ETH/token to mint on child chain based on provided value.
354
343
  /// In case of ETH-based rollup this amount will always equal the provided
@@ -357,7 +346,9 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
357
346
  /// decimals used for native currency on child chain.
358
347
  /// @dev provided value has to be less than 'type(uint256).max/10**(18-decimalsIn)'
359
348
  /// or otherwise it will overflow.
360
- function _fromNativeTo18Decimals(uint256 value) internal view virtual returns (uint256);
349
+ function _fromNativeTo18Decimals(
350
+ uint256 value
351
+ ) internal view virtual returns (uint256);
361
352
 
362
353
  /**
363
354
  * @dev This empty reserved space is put in place to allow future versions to add new
@@ -1,5 +1,5 @@
1
1
  // Copyright 2021-2022, Offchain Labs, Inc.
2
- // For license information, see https://github.com/nitro/blob/master/LICENSE
2
+ // For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE
3
3
  // SPDX-License-Identifier: BUSL-1.1
4
4
 
5
5
  pragma solidity ^0.8.4;
@@ -60,7 +60,9 @@ abstract contract AbsOutbox is DelegateCallAware, IOutbox {
60
60
 
61
61
  uint128 public constant OUTBOX_VERSION = 2;
62
62
 
63
- function initialize(IBridge _bridge) external onlyDelegated {
63
+ function initialize(
64
+ IBridge _bridge
65
+ ) external onlyDelegated {
64
66
  if (address(_bridge) == address(0)) revert HadZeroInit();
65
67
  if (address(bridge) != address(0)) revert AlreadyInit();
66
68
  // address zero is returned if no context is set, but the values used in storage
@@ -93,8 +95,9 @@ abstract contract AbsOutbox is DelegateCallAware, IOutbox {
93
95
 
94
96
  /// @notice Allows the rollup owner to sync the rollup address
95
97
  function updateRollupAddress() external {
96
- if (msg.sender != IOwnable(rollup).owner())
98
+ if (msg.sender != IOwnable(rollup).owner()) {
97
99
  revert NotOwner(msg.sender, IOwnable(rollup).owner());
100
+ }
98
101
  address newRollup = address(bridge.rollup());
99
102
  if (rollup == newRollup) revert RollupNotChanged();
100
103
  rollup = newRollup;
@@ -163,15 +166,7 @@ abstract contract AbsOutbox is DelegateCallAware, IOutbox {
163
166
  uint256 value,
164
167
  bytes calldata data
165
168
  ) external {
166
- bytes32 userTx = calculateItemHash(
167
- l2Sender,
168
- to,
169
- l2Block,
170
- l1Block,
171
- l2Timestamp,
172
- value,
173
- data
174
- );
169
+ bytes32 userTx = calculateItemHash(l2Sender, to, l2Block, l1Block, l2Timestamp, value, data);
175
170
 
176
171
  recordOutputAsSpent(proof, index, userTx);
177
172
 
@@ -228,15 +223,9 @@ abstract contract AbsOutbox is DelegateCallAware, IOutbox {
228
223
  context = prevContext;
229
224
  }
230
225
 
231
- function _calcSpentIndexOffset(uint256 index)
232
- internal
233
- view
234
- returns (
235
- uint256,
236
- uint256,
237
- bytes32
238
- )
239
- {
226
+ function _calcSpentIndexOffset(
227
+ uint256 index
228
+ ) internal view returns (uint256, uint256, bytes32) {
240
229
  uint256 spentIndex = index / 255; // Note: Reserves the MSB.
241
230
  uint256 bitOffset = index % 255;
242
231
  bytes32 replay = spent[spentIndex];
@@ -248,18 +237,16 @@ abstract contract AbsOutbox is DelegateCallAware, IOutbox {
248
237
  }
249
238
 
250
239
  /// @inheritdoc IOutbox
251
- function isSpent(uint256 index) external view returns (bool) {
240
+ function isSpent(
241
+ uint256 index
242
+ ) external view returns (bool) {
252
243
  (, uint256 bitOffset, bytes32 replay) = _calcSpentIndexOffset(index);
253
244
  return _isSpent(bitOffset, replay);
254
245
  }
255
246
 
256
- function recordOutputAsSpent(
257
- bytes32[] memory proof,
258
- uint256 index,
259
- bytes32 item
260
- ) internal {
247
+ function recordOutputAsSpent(bytes32[] memory proof, uint256 index, bytes32 item) internal {
261
248
  if (proof.length >= 256) revert ProofTooLong(proof.length);
262
- if (index >= 2**proof.length) revert PathNotMinimal(index, 2**proof.length);
249
+ if (index >= 2 ** proof.length) revert PathNotMinimal(index, 2 ** proof.length);
263
250
 
264
251
  // Hash the leaf an extra time to prove it's a leaf
265
252
  bytes32 calcRoot = calculateMerkleRoot(proof, index, item);
@@ -271,11 +258,7 @@ abstract contract AbsOutbox is DelegateCallAware, IOutbox {
271
258
  spent[spentIndex] = (replay | bytes32(1 << bitOffset));
272
259
  }
273
260
 
274
- function executeBridgeCall(
275
- address to,
276
- uint256 value,
277
- bytes memory data
278
- ) internal {
261
+ function executeBridgeCall(address to, uint256 value, bytes memory data) internal {
279
262
  (bool success, bytes memory returndata) = bridge.executeCall(to, value, data);
280
263
  if (!success) {
281
264
  if (returndata.length > 0) {
@@ -299,8 +282,7 @@ abstract contract AbsOutbox is DelegateCallAware, IOutbox {
299
282
  uint256 value,
300
283
  bytes calldata data
301
284
  ) public pure returns (bytes32) {
302
- return
303
- keccak256(abi.encodePacked(l2Sender, to, l2Block, l1Block, l2Timestamp, value, data));
285
+ return keccak256(abi.encodePacked(l2Sender, to, l2Block, l1Block, l2Timestamp, value, data));
304
286
  }
305
287
 
306
288
  function calculateMerkleRoot(
@@ -318,13 +300,17 @@ abstract contract AbsOutbox is DelegateCallAware, IOutbox {
318
300
  /// @notice based on provided value, get amount of ETH/token to unlock. In case of ETH-based rollup this amount
319
301
  /// will always equal the provided value. In case of ERC20-based rollup, amount will be re-adjusted to
320
302
  /// reflect the number of decimals used by native token, in case it is different than 18.
321
- function _getAmountToUnlock(uint256 value) internal view virtual returns (uint256);
303
+ function _getAmountToUnlock(
304
+ uint256 value
305
+ ) internal view virtual returns (uint256);
322
306
 
323
307
  /// @notice value to be set for 'amount' field in L2ToL1Context during L2 to L1 transaction execution.
324
308
  /// In case of ERC20-based rollup this is the amount of native token being withdrawn. In case of standard ETH-based
325
309
  /// rollup this amount shall always be 0, because amount of ETH being withdrawn can be read from msg.value.
326
310
  /// @return amount of native token being withdrawn in case of ERC20-based rollup, or 0 in case of ETH-based rollup
327
- function _amountToSetInContext(uint256 value) internal pure virtual returns (uint256);
311
+ function _amountToSetInContext(
312
+ uint256 value
313
+ ) internal pure virtual returns (uint256);
328
314
 
329
315
  /**
330
316
  * @dev This empty reserved space is put in place to allow future versions to add new
@@ -11,8 +11,6 @@ import "./IEthBridge.sol";
11
11
  import "./Messages.sol";
12
12
  import "../libraries/DelegateCallAware.sol";
13
13
 
14
- import {L1MessageType_batchPostingReport} from "../libraries/MessageTypes.sol";
15
-
16
14
  /**
17
15
  * @title Staging ground for incoming and outgoing messages
18
16
  * @notice It is also the ETH escrow for value sent with these messages.
@@ -21,7 +19,9 @@ contract Bridge is AbsBridge, IEthBridge {
21
19
  using AddressUpgradeable for address;
22
20
 
23
21
  /// @inheritdoc IEthBridge
24
- function initialize(IOwnable rollup_) external initializer onlyDelegated {
22
+ function initialize(
23
+ IOwnable rollup_
24
+ ) external initializer onlyDelegated {
25
25
  _activeOutbox = EMPTY_ACTIVEOUTBOX;
26
26
  rollup = rollup_;
27
27
  }
@@ -35,7 +35,9 @@ contract Bridge is AbsBridge, IEthBridge {
35
35
  return _enqueueDelayedMessage(kind, sender, messageDataHash, msg.value);
36
36
  }
37
37
 
38
- function _transferFunds(uint256) internal override {
38
+ function _transferFunds(
39
+ uint256
40
+ ) internal override {
39
41
  // do nothing as Eth transfer is part of TX execution
40
42
  }
41
43