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

Sign up to get free protection for your applications and to get access to all the features.
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,123 @@
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 "./Messages.sol";
8
+ import "./DelayBufferTypes.sol";
9
+
10
+ /**
11
+ * @title Manages the delay buffer for the sequencer (SequencerInbox.sol)
12
+ * @notice Messages are expected to be delayed up to a threshold, beyond which they are unexpected
13
+ * and deplete a delay buffer. Buffer depletion is preveneted from decreasing too quickly by only
14
+ * depleting by as many blocks as elapsed in the delayed message queue.
15
+ */
16
+ library DelayBuffer {
17
+ uint256 public constant BASIS = 10000;
18
+
19
+ /// @dev Depletion is limited by the elapsed blocks in the delayed message queue to avoid double counting and potential L2 reorgs.
20
+ /// Eg. 2 simultaneous batches sequencing multiple delayed messages with the same 100 blocks delay each
21
+ /// should count once as a single 100 block delay, not twice as a 200 block delay. This also prevents L2 reorg risk in edge cases.
22
+ /// Eg. If the buffer is 300 blocks, decrementing the buffer when processing the first batch would allow the second delay message to be force included before the sequencer could add the second batch.
23
+ /// Buffer depletion also saturates at the threshold instead of zero to allow a recovery margin.
24
+ /// Eg. when the sequencer recovers from an outage, it is able to wait threshold > finality time before queueing delayed messages to avoid L1 reorgs.
25
+ /// @notice Conditionally updates the buffer. Replenishes the buffer and depletes if delay is unexpected.
26
+ /// @param start The beginning reference point
27
+ /// @param end The ending reference point
28
+ /// @param buffer The buffer to be updated
29
+ /// @param sequenced The reference point when messages were sequenced
30
+ /// @param threshold The threshold to saturate at
31
+ /// @param max The maximum buffer
32
+ /// @param replenishRateInBasis The amount to replenish the buffer per block in basis points.
33
+ function calcBuffer(
34
+ uint256 start,
35
+ uint256 end,
36
+ uint256 buffer,
37
+ uint256 sequenced,
38
+ uint256 threshold,
39
+ uint256 max,
40
+ uint256 replenishRateInBasis
41
+ ) internal pure returns (uint256) {
42
+ uint256 elapsed = end > start ? end - start : 0;
43
+ uint256 delay = sequenced > start ? sequenced - start : 0;
44
+ // replenishment rounds down and will not overflow since all inputs including
45
+ // replenishRateInBasis are cast from uint64 in calcPendingBuffer
46
+ buffer += (elapsed * replenishRateInBasis) / BASIS;
47
+
48
+ uint256 unexpectedDelay = delay > threshold ? delay - threshold : 0;
49
+ if (unexpectedDelay > elapsed) {
50
+ unexpectedDelay = elapsed;
51
+ }
52
+
53
+ // decrease the buffer
54
+ if (buffer > unexpectedDelay) {
55
+ buffer -= unexpectedDelay;
56
+ if (buffer > threshold) {
57
+ // saturating above at the max
58
+ return buffer > max ? max : buffer;
59
+ }
60
+ }
61
+ // saturating below at the threshold
62
+ return threshold;
63
+ }
64
+
65
+ /// @notice Applies update to buffer data
66
+ /// @param self The delay buffer data
67
+ /// @param blockNumber The update block number
68
+ function update(BufferData storage self, uint64 blockNumber) internal {
69
+ self.bufferBlocks = calcPendingBuffer(self, blockNumber);
70
+
71
+ // store a new starting reference point
72
+ // any buffer updates will be applied retroactively in the next batch post
73
+ self.prevBlockNumber = blockNumber;
74
+ self.prevSequencedBlockNumber = uint64(block.number);
75
+ }
76
+
77
+ /// @dev The delay buffer can change due to pending depletion / replenishment due to previous delays.
78
+ /// This function applies pending buffer changes to calculate buffer updates.
79
+ /// @notice Calculates the buffer changes up to the requested block number
80
+ /// @param self The delay buffer data
81
+ /// @param blockNumber The block number to process the delay up to
82
+ function calcPendingBuffer(
83
+ BufferData storage self,
84
+ uint64 blockNumber
85
+ ) internal view returns (uint64) {
86
+ // bufferUpdate will not overflow since inputs are uint64
87
+ return uint64(
88
+ calcBuffer({
89
+ start: self.prevBlockNumber,
90
+ end: blockNumber,
91
+ buffer: self.bufferBlocks,
92
+ threshold: self.threshold,
93
+ sequenced: self.prevSequencedBlockNumber,
94
+ max: self.max,
95
+ replenishRateInBasis: self.replenishRateInBasis
96
+ })
97
+ );
98
+ }
99
+
100
+ /// @dev This is the `sync validity window` during which no proofs are required.
101
+ /// @notice Returns true if the inbox is in a synced state (no unexpected delays are possible)
102
+ function isSynced(
103
+ BufferData storage self
104
+ ) internal view returns (bool) {
105
+ return block.number - self.prevBlockNumber <= self.threshold;
106
+ }
107
+
108
+ function isUpdatable(
109
+ BufferData storage self
110
+ ) internal view returns (bool) {
111
+ // if synced, the buffer can't be depleted
112
+ // if full, the buffer can't be replenished
113
+ // if neither synced nor full, the buffer updatable (depletable / replenishable)
114
+ return !isSynced(self) || self.bufferBlocks < self.max;
115
+ }
116
+
117
+ function isValidBufferConfig(
118
+ BufferConfig memory config
119
+ ) internal pure returns (bool) {
120
+ return config.threshold != 0 && config.max != 0 && config.replenishRateInBasis <= BASIS
121
+ && config.threshold <= config.max;
122
+ }
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
+ import "./Messages.sol";
6
+
7
+ pragma solidity >=0.6.9 <0.9.0;
8
+
9
+ /// @notice Delay buffer and delay threshold settings
10
+ /// @param threshold The maximum amount of blocks that a message is expected to be delayed
11
+ /// @param max The maximum buffer in blocks
12
+ /// @param replenishRateInBasis The amount to replenish the buffer per block in basis points.
13
+ struct BufferConfig {
14
+ uint64 threshold;
15
+ uint64 max;
16
+ uint64 replenishRateInBasis;
17
+ }
18
+
19
+ /// @notice The delay buffer data.
20
+ /// @param bufferBlocks The buffer in blocks.
21
+ /// @param max The maximum buffer in blocks
22
+ /// @param threshold The maximum amount of blocks that a message is expected to be delayed
23
+ /// @param prevBlockNumber The blocknumber of the last included delay message.
24
+ /// @param replenishRateInBasis The amount to replenish the buffer per block in basis points.
25
+ /// @param prevSequencedBlockNumber The blocknumber when last included delay message was sequenced.
26
+ struct BufferData {
27
+ uint64 bufferBlocks;
28
+ uint64 max;
29
+ uint64 threshold;
30
+ uint64 prevBlockNumber;
31
+ uint64 replenishRateInBasis;
32
+ uint64 prevSequencedBlockNumber;
33
+ }
34
+
35
+ struct DelayProof {
36
+ bytes32 beforeDelayedAcc;
37
+ Messages.Message delayedMessage;
38
+ }
@@ -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;
@@ -13,7 +13,6 @@ import {
13
13
  CallNotAllowed,
14
14
  NativeTokenDecimalsTooLarge
15
15
  } from "../libraries/Error.sol";
16
- import {DecimalsConverterHelper} from "../libraries/DecimalsConverterHelper.sol";
17
16
  import {MAX_ALLOWED_NATIVE_TOKEN_DECIMALS} from "../libraries/Constants.sol";
18
17
 
19
18
  import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
@@ -42,7 +41,10 @@ contract ERC20Bridge is AbsBridge, IERC20Bridge {
42
41
  uint8 public nativeTokenDecimals;
43
42
 
44
43
  /// @inheritdoc IERC20Bridge
45
- function initialize(IOwnable rollup_, address nativeToken_) external initializer onlyDelegated {
44
+ function initialize(
45
+ IOwnable rollup_,
46
+ address nativeToken_
47
+ ) external initializer onlyDelegated {
46
48
  if (nativeToken_ == address(0)) revert InvalidTokenSet(nativeToken_);
47
49
  nativeToken = nativeToken_;
48
50
  _activeOutbox = EMPTY_ACTIVEOUTBOX;
@@ -72,7 +74,9 @@ contract ERC20Bridge is AbsBridge, IERC20Bridge {
72
74
  return _enqueueDelayedMessage(kind, sender, messageDataHash, tokenFeeAmount);
73
75
  }
74
76
 
75
- function _transferFunds(uint256 amount) internal override {
77
+ function _transferFunds(
78
+ uint256 amount
79
+ ) internal override {
76
80
  // fetch native token from Inbox
77
81
  IERC20(nativeToken).safeTransferFrom(msg.sender, address(this), amount);
78
82
  }
@@ -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;
@@ -26,14 +26,15 @@ import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol
26
26
  contract ERC20Inbox is AbsInbox, IERC20Inbox {
27
27
  using SafeERC20 for IERC20;
28
28
 
29
- constructor(uint256 _maxDataSize) AbsInbox(_maxDataSize) {}
29
+ constructor(
30
+ uint256 _maxDataSize
31
+ ) AbsInbox(_maxDataSize) {}
30
32
 
31
33
  /// @inheritdoc IInboxBase
32
- function initialize(IBridge _bridge, ISequencerInbox _sequencerInbox)
33
- external
34
- initializer
35
- onlyDelegated
36
- {
34
+ function initialize(
35
+ IBridge _bridge,
36
+ ISequencerInbox _sequencerInbox
37
+ ) external initializer onlyDelegated {
37
38
  __AbsInbox_init(_bridge, _sequencerInbox);
38
39
 
39
40
  // inbox holds native token in transit used to pay for retryable tickets, approve bridge to use it
@@ -42,7 +43,9 @@ contract ERC20Inbox is AbsInbox, IERC20Inbox {
42
43
  }
43
44
 
44
45
  /// @inheritdoc IERC20Inbox
45
- function depositERC20(uint256 amount) public whenNotPaused onlyAllowed returns (uint256) {
46
+ function depositERC20(
47
+ uint256 amount
48
+ ) public whenNotPaused onlyAllowed returns (uint256) {
46
49
  address dest = msg.sender;
47
50
 
48
51
  // solhint-disable-next-line avoid-tx-origin
@@ -52,13 +55,9 @@ contract ERC20Inbox is AbsInbox, IERC20Inbox {
52
55
  }
53
56
 
54
57
  uint256 amountToMintOnL2 = _fromNativeTo18Decimals(amount);
55
- return
56
- _deliverMessage(
57
- L1MessageType_ethDeposit,
58
- msg.sender,
59
- abi.encodePacked(dest, amountToMintOnL2),
60
- amount
61
- );
58
+ return _deliverMessage(
59
+ L1MessageType_ethDeposit, msg.sender, abi.encodePacked(dest, amountToMintOnL2), amount
60
+ );
62
61
  }
63
62
 
64
63
  /// @inheritdoc IERC20Inbox
@@ -73,18 +72,17 @@ contract ERC20Inbox is AbsInbox, IERC20Inbox {
73
72
  uint256 tokenTotalFeeAmount,
74
73
  bytes calldata data
75
74
  ) external whenNotPaused onlyAllowed returns (uint256) {
76
- return
77
- _createRetryableTicket(
78
- to,
79
- l2CallValue,
80
- maxSubmissionCost,
81
- excessFeeRefundAddress,
82
- callValueRefundAddress,
83
- gasLimit,
84
- maxFeePerGas,
85
- tokenTotalFeeAmount,
86
- data
87
- );
75
+ return _createRetryableTicket(
76
+ to,
77
+ l2CallValue,
78
+ maxSubmissionCost,
79
+ excessFeeRefundAddress,
80
+ callValueRefundAddress,
81
+ gasLimit,
82
+ maxFeePerGas,
83
+ tokenTotalFeeAmount,
84
+ data
85
+ );
88
86
  }
89
87
 
90
88
  /// @inheritdoc IERC20Inbox
@@ -99,27 +97,24 @@ contract ERC20Inbox is AbsInbox, IERC20Inbox {
99
97
  uint256 tokenTotalFeeAmount,
100
98
  bytes calldata data
101
99
  ) public whenNotPaused onlyAllowed returns (uint256) {
102
- return
103
- _unsafeCreateRetryableTicket(
104
- to,
105
- l2CallValue,
106
- maxSubmissionCost,
107
- excessFeeRefundAddress,
108
- callValueRefundAddress,
109
- gasLimit,
110
- maxFeePerGas,
111
- tokenTotalFeeAmount,
112
- data
113
- );
100
+ return _unsafeCreateRetryableTicket(
101
+ to,
102
+ l2CallValue,
103
+ maxSubmissionCost,
104
+ excessFeeRefundAddress,
105
+ callValueRefundAddress,
106
+ gasLimit,
107
+ maxFeePerGas,
108
+ tokenTotalFeeAmount,
109
+ data
110
+ );
114
111
  }
115
112
 
116
113
  /// @inheritdoc IInboxBase
117
- function calculateRetryableSubmissionFee(uint256, uint256)
118
- public
119
- pure
120
- override(AbsInbox, IInboxBase)
121
- returns (uint256)
122
- {
114
+ function calculateRetryableSubmissionFee(
115
+ uint256,
116
+ uint256
117
+ ) public pure override(AbsInbox, IInboxBase) returns (uint256) {
123
118
  // retryable ticket's submission fee is not charged when ERC20 token is used to pay for fees
124
119
  return 0;
125
120
  }
@@ -139,17 +134,15 @@ contract ERC20Inbox is AbsInbox, IERC20Inbox {
139
134
  IERC20(nativeToken).safeTransferFrom(msg.sender, address(this), diff);
140
135
  }
141
136
 
142
- return
143
- IERC20Bridge(address(bridge)).enqueueDelayedMessage(
144
- kind,
145
- AddressAliasHelper.applyL1ToL2Alias(sender),
146
- messageDataHash,
147
- tokenAmount
148
- );
137
+ return IERC20Bridge(address(bridge)).enqueueDelayedMessage(
138
+ kind, AddressAliasHelper.applyL1ToL2Alias(sender), messageDataHash, tokenAmount
139
+ );
149
140
  }
150
141
 
151
142
  /// @inheritdoc AbsInbox
152
- function _fromNativeTo18Decimals(uint256 value) internal view override returns (uint256) {
143
+ function _fromNativeTo18Decimals(
144
+ uint256 value
145
+ ) internal view override returns (uint256) {
153
146
  // In order to keep compatibility of child chain's native currency with external 3rd party tooling we
154
147
  // expect 18 decimals to be always used for native currency. If native token uses different number of
155
148
  // decimals then here it will be normalized to 18. Keep in mind, when withdrawing from child chain back
@@ -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;
@@ -25,14 +25,18 @@ contract ERC20Outbox is AbsOutbox {
25
25
  }
26
26
 
27
27
  /// @inheritdoc AbsOutbox
28
- function _getAmountToUnlock(uint256 value) internal view override returns (uint256) {
28
+ function _getAmountToUnlock(
29
+ uint256 value
30
+ ) internal view override returns (uint256) {
29
31
  uint8 nativeTokenDecimals = IERC20Bridge(address(bridge)).nativeTokenDecimals();
30
32
  // this might revert due to overflow, but we assume the token supply is less than 2^256
31
33
  return DecimalsConverterHelper.adjustDecimals(value, 18, nativeTokenDecimals);
32
34
  }
33
35
 
34
36
  /// @inheritdoc AbsOutbox
35
- function _amountToSetInContext(uint256 value) internal pure override returns (uint256) {
37
+ function _amountToSetInContext(
38
+ uint256 value
39
+ ) internal pure override returns (uint256) {
36
40
  // native token withdrawal amount which can be fetched from context
37
41
  return value;
38
42
  }
@@ -90,16 +90,22 @@ contract GasRefunder is IGasRefunder, Ownable {
90
90
  });
91
91
  }
92
92
 
93
- function setDisallower(address addr) external onlyOwner {
93
+ function setDisallower(
94
+ address addr
95
+ ) external onlyOwner {
94
96
  disallower = addr;
95
97
  emit DisallowerSet(addr);
96
98
  }
97
99
 
98
- function allowContracts(address[] calldata addresses) external onlyOwner {
100
+ function allowContracts(
101
+ address[] calldata addresses
102
+ ) external onlyOwner {
99
103
  setContractsAllowedImpl(addresses, true);
100
104
  }
101
105
 
102
- function disallowContracts(address[] calldata addresses) external {
106
+ function disallowContracts(
107
+ address[] calldata addresses
108
+ ) external {
103
109
  require(msg.sender == owner() || msg.sender == disallower, "NOT_AUTHORIZED");
104
110
  setContractsAllowedImpl(addresses, false);
105
111
  }
@@ -112,11 +118,15 @@ contract GasRefunder is IGasRefunder, Ownable {
112
118
  }
113
119
  }
114
120
 
115
- function allowRefundees(address[] calldata addresses) external onlyOwner {
121
+ function allowRefundees(
122
+ address[] calldata addresses
123
+ ) external onlyOwner {
116
124
  setRefundeesAllowedImpl(addresses, true);
117
125
  }
118
126
 
119
- function disallowRefundees(address[] calldata addresses) external {
127
+ function disallowRefundees(
128
+ address[] calldata addresses
129
+ ) external {
120
130
  require(msg.sender == owner() || msg.sender == disallower, "NOT_AUTHORIZED");
121
131
  setRefundeesAllowedImpl(addresses, false);
122
132
  }
@@ -129,32 +139,44 @@ contract GasRefunder is IGasRefunder, Ownable {
129
139
  }
130
140
  }
131
141
 
132
- function setMaxRefundeeBalance(uint128 newValue) external onlyOwner {
142
+ function setMaxRefundeeBalance(
143
+ uint128 newValue
144
+ ) external onlyOwner {
133
145
  commonParams.maxRefundeeBalance = newValue;
134
146
  emit CommonParameterSet(CommonParameterKey.MAX_REFUNDEE_BALANCE, newValue);
135
147
  }
136
148
 
137
- function setExtraGasMargin(uint32 newValue) external onlyOwner {
149
+ function setExtraGasMargin(
150
+ uint32 newValue
151
+ ) external onlyOwner {
138
152
  commonParams.extraGasMargin = newValue;
139
153
  emit CommonParameterSet(CommonParameterKey.EXTRA_GAS_MARGIN, newValue);
140
154
  }
141
155
 
142
- function setCalldataCost(uint8 newValue) external onlyOwner {
156
+ function setCalldataCost(
157
+ uint8 newValue
158
+ ) external onlyOwner {
143
159
  commonParams.calldataCost = newValue;
144
160
  emit CommonParameterSet(CommonParameterKey.CALLDATA_COST, newValue);
145
161
  }
146
162
 
147
- function setMaxGasTip(uint64 newValue) external onlyOwner {
163
+ function setMaxGasTip(
164
+ uint64 newValue
165
+ ) external onlyOwner {
148
166
  commonParams.maxGasTip = newValue;
149
167
  emit CommonParameterSet(CommonParameterKey.MAX_GAS_TIP, newValue);
150
168
  }
151
169
 
152
- function setMaxGasCost(uint64 newValue) external onlyOwner {
170
+ function setMaxGasCost(
171
+ uint64 newValue
172
+ ) external onlyOwner {
153
173
  commonParams.maxGasCost = newValue;
154
174
  emit CommonParameterSet(CommonParameterKey.MAX_GAS_COST, newValue);
155
175
  }
156
176
 
157
- function setMaxSingleGasUsage(uint32 newValue) external onlyOwner {
177
+ function setMaxSingleGasUsage(
178
+ uint32 newValue
179
+ ) external onlyOwner {
158
180
  commonParams.maxSingleGasUsage = newValue;
159
181
  emit CommonParameterSet(CommonParameterKey.MAX_SINGLE_GAS_USAGE, newValue);
160
182
  }
@@ -166,7 +188,7 @@ contract GasRefunder is IGasRefunder, Ownable {
166
188
  function withdraw(address payable destination, uint256 amount) external onlyOwner {
167
189
  // It's expected that destination is an EOA
168
190
  // solhint-disable-next-line avoid-low-level-calls
169
- (bool success, ) = destination.call{value: amount}("");
191
+ (bool success,) = destination.call{value: amount}("");
170
192
  require(success, "WITHDRAW_FAILED");
171
193
  emit Withdrawn(msg.sender, destination, amount);
172
194
  }
@@ -187,19 +209,13 @@ contract GasRefunder is IGasRefunder, Ownable {
187
209
 
188
210
  if (!allowedContracts[msg.sender]) {
189
211
  emit RefundGasCostsDenied(
190
- refundee,
191
- msg.sender,
192
- RefundDenyReason.CONTRACT_NOT_ALLOWED,
193
- gasUsed
212
+ refundee, msg.sender, RefundDenyReason.CONTRACT_NOT_ALLOWED, gasUsed
194
213
  );
195
214
  return false;
196
215
  }
197
216
  if (!allowedRefundees[refundee]) {
198
217
  emit RefundGasCostsDenied(
199
- refundee,
200
- msg.sender,
201
- RefundDenyReason.REFUNDEE_NOT_ALLOWED,
202
- gasUsed
218
+ refundee, msg.sender, RefundDenyReason.REFUNDEE_NOT_ALLOWED, gasUsed
203
219
  );
204
220
  return false;
205
221
  }
@@ -219,9 +235,7 @@ contract GasRefunder is IGasRefunder, Ownable {
219
235
 
220
236
  // Add in a bit of a buffer for the tx costs not measured with gasleft
221
237
  gasUsed +=
222
- startGasLeft +
223
- commonParams.extraGasMargin +
224
- (calldataSize * commonParams.calldataCost);
238
+ startGasLeft + commonParams.extraGasMargin + (calldataSize * commonParams.calldataCost);
225
239
  // Split this up into two statements so that gasleft() comes after the storage loads
226
240
  gasUsed -= gasleft();
227
241
 
@@ -251,7 +265,7 @@ contract GasRefunder is IGasRefunder, Ownable {
251
265
 
252
266
  // It's expected that refundee is an EOA
253
267
  // solhint-disable-next-line avoid-low-level-calls
254
- (success, ) = refundee.call{value: refundAmount}("");
268
+ (success,) = refundee.call{value: refundAmount}("");
255
269
  emit RefundedGasCosts(refundee, msg.sender, success, gasUsed, estGasPrice, refundAmount);
256
270
  }
257
271
  }
@@ -42,10 +42,7 @@ interface IBridge {
42
42
  );
43
43
 
44
44
  event BridgeCallTriggered(
45
- address indexed outbox,
46
- address indexed to,
47
- uint256 value,
48
- bytes data
45
+ address indexed outbox, address indexed to, uint256 value, bytes data
49
46
  );
50
47
 
51
48
  event InboxToggle(address indexed inbox, bool enabled);
@@ -56,15 +53,23 @@ interface IBridge {
56
53
 
57
54
  event RollupUpdated(address rollup);
58
55
 
59
- function allowedDelayedInboxList(uint256) external returns (address);
56
+ function allowedDelayedInboxList(
57
+ uint256
58
+ ) external returns (address);
60
59
 
61
- function allowedOutboxList(uint256) external returns (address);
60
+ function allowedOutboxList(
61
+ uint256
62
+ ) external returns (address);
62
63
 
63
64
  /// @dev Accumulator for delayed inbox messages; tail represents hash of the current state; each element represents the inclusion of a new message.
64
- function delayedInboxAccs(uint256) external view returns (bytes32);
65
+ function delayedInboxAccs(
66
+ uint256
67
+ ) external view returns (bytes32);
65
68
 
66
69
  /// @dev Accumulator for sequencer inbox messages; tail represents hash of the current state; each element represents the inclusion of a new message.
67
- function sequencerInboxAccs(uint256) external view returns (bytes32);
70
+ function sequencerInboxAccs(
71
+ uint256
72
+ ) external view returns (bytes32);
68
73
 
69
74
  function rollup() external view returns (IOwnable);
70
75
 
@@ -72,9 +77,13 @@ interface IBridge {
72
77
 
73
78
  function activeOutbox() external view returns (address);
74
79
 
75
- function allowedDelayedInboxes(address inbox) external view returns (bool);
80
+ function allowedDelayedInboxes(
81
+ address inbox
82
+ ) external view returns (bool);
76
83
 
77
- function allowedOutboxes(address outbox) external view returns (bool);
84
+ function allowedOutboxes(
85
+ address outbox
86
+ ) external view returns (bool);
78
87
 
79
88
  function sequencerReportedSubMessageCount() external view returns (uint256);
80
89
 
@@ -97,12 +106,7 @@ interface IBridge {
97
106
  uint256 newMessageCount
98
107
  )
99
108
  external
100
- returns (
101
- uint256 seqMessageIndex,
102
- bytes32 beforeAcc,
103
- bytes32 delayedAcc,
104
- bytes32 acc
105
- );
109
+ returns (uint256 seqMessageIndex, bytes32 beforeAcc, bytes32 delayedAcc, bytes32 acc);
106
110
 
107
111
  /**
108
112
  * @dev Allows the sequencer inbox to submit a delayed message of the batchPostingReport type
@@ -110,17 +114,22 @@ interface IBridge {
110
114
  * to call `enqueueDelayedMessage` to avoid the gas overhead of an extra SLOAD in either
111
115
  * every delayed inbox or every sequencer inbox call.
112
116
  */
113
- function submitBatchSpendingReport(address batchPoster, bytes32 dataHash)
114
- external
115
- returns (uint256 msgNum);
117
+ function submitBatchSpendingReport(
118
+ address batchPoster,
119
+ bytes32 dataHash
120
+ ) external returns (uint256 msgNum);
116
121
 
117
122
  // ---------- onlyRollupOrOwner functions ----------
118
123
 
119
- function setSequencerInbox(address _sequencerInbox) external;
124
+ function setSequencerInbox(
125
+ address _sequencerInbox
126
+ ) external;
120
127
 
121
128
  function setDelayedInbox(address inbox, bool enabled) external;
122
129
 
123
130
  function setOutbox(address inbox, bool enabled) external;
124
131
 
125
- function updateRollupAddress(IOwnable _rollup) external;
132
+ function updateRollupAddress(
133
+ IOwnable _rollup
134
+ ) external;
126
135
  }
@@ -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
  // solhint-disable-next-line compiler-version
@@ -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
  // solhint-disable-next-line compiler-version
@@ -14,7 +14,9 @@ interface IERC20Inbox is IInboxBase {
14
14
  * Look into retryable tickets if you are interested in this functionality.
15
15
  * @dev This function should not be called inside contract constructors
16
16
  */
17
- function depositERC20(uint256 amount) external returns (uint256);
17
+ function depositERC20(
18
+ uint256 amount
19
+ ) external returns (uint256);
18
20
 
19
21
  /**
20
22
  * @notice Put a message in the L2 inbox that can be reexecuted for some fixed amount of time if it reverts
@@ -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
  // solhint-disable-next-line compiler-version
@@ -22,5 +22,7 @@ interface IEthBridge is IBridge {
22
22
 
23
23
  // ---------- initializer ----------
24
24
 
25
- function initialize(IOwnable rollup_) external;
25
+ function initialize(
26
+ IOwnable rollup_
27
+ ) external;
26
28
  }