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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (541) hide show
  1. package/build/contracts/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json +1 -1
  2. package/build/contracts/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.dbg.json +1 -1
  3. package/build/contracts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.dbg.json +1 -1
  4. package/build/contracts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.json +2 -2
  5. package/build/contracts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.dbg.json +1 -1
  6. package/build/contracts/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.dbg.json +1 -1
  7. package/build/contracts/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.dbg.json +1 -1
  8. package/build/contracts/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol/UpgradeableBeacon.dbg.json +1 -1
  9. package/build/contracts/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol/UpgradeableBeacon.json +2 -2
  10. package/build/contracts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.dbg.json +1 -1
  11. package/build/contracts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.json +2 -2
  12. package/build/contracts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.dbg.json +1 -1
  13. package/build/contracts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +2 -2
  14. package/build/contracts/@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol/UUPSUpgradeable.dbg.json +1 -1
  15. package/build/contracts/@openzeppelin/contracts/security/ReentrancyGuard.sol/ReentrancyGuard.dbg.json +1 -1
  16. package/build/contracts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json +1 -1
  17. package/build/contracts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json +2 -2
  18. package/build/contracts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json +1 -1
  19. package/build/contracts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json +1 -1
  20. package/build/contracts/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.dbg.json +4 -0
  21. package/build/contracts/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.json +86 -0
  22. package/build/contracts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.dbg.json +1 -1
  23. package/build/contracts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.json +2 -2
  24. package/build/contracts/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json +1 -1
  25. package/build/contracts/@openzeppelin/contracts/utils/Address.sol/Address.json +2 -2
  26. package/build/contracts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json +1 -1
  27. package/build/contracts/@openzeppelin/contracts/utils/Create2.sol/Create2.dbg.json +4 -0
  28. package/build/contracts/{src/express-lane-auction/ELCRound.sol/LatestELCRoundsLib.json → @openzeppelin/contracts/utils/Create2.sol/Create2.json} +4 -4
  29. package/build/contracts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.dbg.json +1 -1
  30. package/build/contracts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.json +2 -2
  31. package/build/contracts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json +1 -1
  32. package/build/contracts/@openzeppelin/contracts/utils/Strings.sol/Strings.json +2 -2
  33. package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol/AccessControlUpgradeable.dbg.json +1 -1
  34. package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol/AccessControlUpgradeable.json +13 -0
  35. package/build/contracts/@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol/IAccessControlUpgradeable.dbg.json +1 -1
  36. package/build/contracts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.dbg.json +1 -1
  37. package/build/contracts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.json +13 -0
  38. package/build/contracts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.dbg.json +1 -1
  39. package/build/contracts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.json +15 -1
  40. package/build/contracts/@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol/PausableUpgradeable.dbg.json +1 -1
  41. package/build/contracts/@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol/PausableUpgradeable.json +13 -0
  42. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.dbg.json +1 -1
  43. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.json +2 -2
  44. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.dbg.json +1 -1
  45. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.json +15 -1
  46. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/Create2Upgradeable.sol/Create2Upgradeable.dbg.json +4 -0
  47. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/Create2Upgradeable.sol/Create2Upgradeable.json +10 -0
  48. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol/StorageSlotUpgradeable.dbg.json +1 -1
  49. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol/StorageSlotUpgradeable.json +2 -2
  50. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol/StringsUpgradeable.dbg.json +1 -1
  51. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol/StringsUpgradeable.json +2 -2
  52. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol/ERC165Upgradeable.dbg.json +1 -1
  53. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol/ERC165Upgradeable.json +13 -0
  54. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol/IERC165Upgradeable.dbg.json +1 -1
  55. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/structs/EnumerableSetUpgradeable.sol/EnumerableSetUpgradeable.dbg.json +1 -1
  56. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/structs/EnumerableSetUpgradeable.sol/EnumerableSetUpgradeable.json +2 -2
  57. package/build/contracts/src/assertionStakingPool/AbsBoldStakingPool.sol/AbsBoldStakingPool.dbg.json +4 -0
  58. package/build/contracts/{@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.json → src/assertionStakingPool/AbsBoldStakingPool.sol/AbsBoldStakingPool.json} +41 -95
  59. package/build/contracts/src/assertionStakingPool/AssertionStakingPool.sol/AssertionStakingPool.dbg.json +4 -0
  60. package/build/contracts/src/assertionStakingPool/AssertionStakingPool.sol/AssertionStakingPool.json +340 -0
  61. package/build/contracts/src/assertionStakingPool/AssertionStakingPoolCreator.sol/AssertionStakingPoolCreator.dbg.json +4 -0
  62. package/build/contracts/src/assertionStakingPool/AssertionStakingPoolCreator.sol/AssertionStakingPoolCreator.json +89 -0
  63. package/build/contracts/src/assertionStakingPool/EdgeStakingPool.sol/EdgeStakingPool.dbg.json +4 -0
  64. package/build/contracts/src/assertionStakingPool/EdgeStakingPool.sol/EdgeStakingPool.json +248 -0
  65. package/build/contracts/src/assertionStakingPool/EdgeStakingPoolCreator.sol/EdgeStakingPoolCreator.dbg.json +4 -0
  66. package/build/contracts/src/assertionStakingPool/EdgeStakingPoolCreator.sol/EdgeStakingPoolCreator.json +83 -0
  67. package/build/contracts/src/assertionStakingPool/StakingPoolCreatorUtils.sol/StakingPoolCreatorUtils.dbg.json +4 -0
  68. package/build/contracts/src/assertionStakingPool/StakingPoolCreatorUtils.sol/StakingPoolCreatorUtils.json +16 -0
  69. package/build/contracts/src/assertionStakingPool/interfaces/IAbsBoldStakingPool.sol/IAbsBoldStakingPool.dbg.json +4 -0
  70. package/build/contracts/src/assertionStakingPool/interfaces/IAbsBoldStakingPool.sol/IAbsBoldStakingPool.json +140 -0
  71. package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPool.sol/IAssertionStakingPool.dbg.json +4 -0
  72. package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPool.sol/IAssertionStakingPool.json +324 -0
  73. package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPoolCreator.sol/IAssertionStakingPoolCreator.dbg.json +4 -0
  74. package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPoolCreator.sol/IAssertionStakingPoolCreator.json +84 -0
  75. package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPool.sol/IEdgeStakingPool.dbg.json +4 -0
  76. package/build/contracts/{@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20MetadataUpgradeable.sol/IERC20MetadataUpgradeable.json → src/assertionStakingPool/interfaces/IEdgeStakingPool.sol/IEdgeStakingPool.json} +109 -110
  77. package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPoolCreator.sol/IEdgeStakingPoolCreator.dbg.json +4 -0
  78. package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPoolCreator.sol/IEdgeStakingPoolCreator.json +78 -0
  79. package/build/contracts/src/bridge/AbsBridge.sol/AbsBridge.dbg.json +1 -1
  80. package/build/contracts/src/bridge/AbsBridge.sol/AbsBridge.json +13 -0
  81. package/build/contracts/src/bridge/AbsInbox.sol/AbsInbox.dbg.json +1 -1
  82. package/build/contracts/src/bridge/AbsInbox.sol/AbsInbox.json +14 -1
  83. package/build/contracts/src/bridge/AbsOutbox.sol/AbsOutbox.dbg.json +1 -1
  84. package/build/contracts/src/bridge/Bridge.sol/Bridge.dbg.json +1 -1
  85. package/build/contracts/src/bridge/Bridge.sol/Bridge.json +15 -2
  86. package/build/contracts/src/bridge/DelayBuffer.sol/DelayBuffer.dbg.json +4 -0
  87. package/build/contracts/src/bridge/DelayBuffer.sol/DelayBuffer.json +24 -0
  88. package/build/contracts/src/bridge/ERC20Bridge.sol/ERC20Bridge.dbg.json +1 -1
  89. package/build/contracts/src/bridge/ERC20Bridge.sol/ERC20Bridge.json +15 -2
  90. package/build/contracts/src/bridge/ERC20Inbox.sol/ERC20Inbox.dbg.json +1 -1
  91. package/build/contracts/src/bridge/ERC20Inbox.sol/ERC20Inbox.json +16 -3
  92. package/build/contracts/src/bridge/ERC20Outbox.sol/ERC20Outbox.dbg.json +1 -1
  93. package/build/contracts/src/bridge/ERC20Outbox.sol/ERC20Outbox.json +2 -2
  94. package/build/contracts/src/bridge/GasRefunder.sol/GasRefunder.dbg.json +1 -1
  95. package/build/contracts/src/bridge/GasRefunder.sol/GasRefunder.json +2 -2
  96. package/build/contracts/src/bridge/IBridge.sol/IBridge.dbg.json +1 -1
  97. package/build/contracts/src/bridge/IDelayedMessageProvider.sol/IDelayedMessageProvider.dbg.json +1 -1
  98. package/build/contracts/src/bridge/IERC20Bridge.sol/IERC20Bridge.dbg.json +1 -1
  99. package/build/contracts/src/bridge/IERC20Inbox.sol/IERC20Inbox.dbg.json +1 -1
  100. package/build/contracts/src/bridge/IEthBridge.sol/IEthBridge.dbg.json +1 -1
  101. package/build/contracts/src/bridge/IInbox.sol/IInbox.dbg.json +1 -1
  102. package/build/contracts/src/bridge/IInboxBase.sol/IInboxBase.dbg.json +1 -1
  103. package/build/contracts/src/bridge/IOutbox.sol/IOutbox.dbg.json +1 -1
  104. package/build/contracts/src/bridge/IOwnable.sol/IOwnable.dbg.json +1 -1
  105. package/build/contracts/src/bridge/ISequencerInbox.sol/ISequencerInbox.dbg.json +1 -1
  106. package/build/contracts/src/bridge/ISequencerInbox.sol/ISequencerInbox.json +441 -0
  107. package/build/contracts/src/bridge/Inbox.sol/Inbox.dbg.json +1 -1
  108. package/build/contracts/src/bridge/Inbox.sol/Inbox.json +20 -2
  109. package/build/contracts/src/bridge/Messages.sol/Messages.dbg.json +1 -1
  110. package/build/contracts/src/bridge/Messages.sol/Messages.json +2 -2
  111. package/build/contracts/src/bridge/Outbox.sol/Outbox.dbg.json +1 -1
  112. package/build/contracts/src/bridge/Outbox.sol/Outbox.json +2 -2
  113. package/build/contracts/src/bridge/SequencerInbox.sol/SequencerInbox.dbg.json +1 -1
  114. package/build/contracts/src/bridge/SequencerInbox.sol/SequencerInbox.json +566 -9
  115. package/build/contracts/src/chain/CacheManager.sol/CacheManager.dbg.json +1 -1
  116. package/build/contracts/src/chain/CacheManager.sol/CacheManager.json +15 -2
  117. package/build/contracts/src/challengeV2/EdgeChallengeManager.sol/EdgeChallengeManager.dbg.json +4 -0
  118. package/build/contracts/src/challengeV2/EdgeChallengeManager.sol/EdgeChallengeManager.json +1631 -0
  119. package/build/contracts/src/challengeV2/IAssertionChain.sol/IAssertionChain.dbg.json +4 -0
  120. package/build/contracts/src/challengeV2/IAssertionChain.sol/IAssertionChain.json +247 -0
  121. package/build/contracts/src/challengeV2/IEdgeChallengeManager.sol/IEdgeChallengeManager.dbg.json +4 -0
  122. package/build/contracts/src/challengeV2/IEdgeChallengeManager.sol/IEdgeChallengeManager.json +762 -0
  123. package/build/contracts/src/challengeV2/libraries/ArrayUtilsLib.sol/ArrayUtilsLib.dbg.json +4 -0
  124. package/build/contracts/src/challengeV2/libraries/ArrayUtilsLib.sol/ArrayUtilsLib.json +10 -0
  125. package/build/contracts/src/challengeV2/libraries/ChallengeEdgeLib.sol/ChallengeEdgeLib.dbg.json +4 -0
  126. package/build/contracts/{@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.json → src/challengeV2/libraries/ChallengeEdgeLib.sol/ChallengeEdgeLib.json} +4 -4
  127. package/build/contracts/src/challengeV2/libraries/EdgeChallengeManagerLib.sol/EdgeChallengeManagerLib.dbg.json +4 -0
  128. package/build/contracts/src/challengeV2/libraries/EdgeChallengeManagerLib.sol/EdgeChallengeManagerLib.json +24 -0
  129. package/build/contracts/src/challengeV2/libraries/MerkleTreeAccumulatorLib.sol/MerkleTreeAccumulatorLib.dbg.json +4 -0
  130. package/build/contracts/src/challengeV2/libraries/MerkleTreeAccumulatorLib.sol/MerkleTreeAccumulatorLib.json +24 -0
  131. package/build/contracts/src/challengeV2/libraries/UintUtilsLib.sol/UintUtilsLib.dbg.json +4 -0
  132. package/build/contracts/src/challengeV2/libraries/UintUtilsLib.sol/UintUtilsLib.json +10 -0
  133. package/build/contracts/src/libraries/AddressAliasHelper.sol/AddressAliasHelper.dbg.json +1 -1
  134. package/build/contracts/src/libraries/AddressAliasHelper.sol/AddressAliasHelper.json +2 -2
  135. package/build/contracts/src/libraries/AdminFallbackProxy.sol/AdminFallbackProxy.dbg.json +1 -1
  136. package/build/contracts/src/libraries/AdminFallbackProxy.sol/AdminFallbackProxy.json +2 -2
  137. package/build/contracts/src/libraries/AdminFallbackProxy.sol/DoubleLogicERC1967Upgrade.dbg.json +1 -1
  138. package/build/contracts/src/libraries/ArbitrumChecker.sol/ArbitrumChecker.dbg.json +1 -1
  139. package/build/contracts/src/libraries/ArbitrumChecker.sol/ArbitrumChecker.json +2 -2
  140. package/build/contracts/src/libraries/CallerChecker.sol/CallerChecker.dbg.json +4 -0
  141. package/build/contracts/src/{challenge/ChallengeLib.sol/ChallengeLib.json → libraries/CallerChecker.sol/CallerChecker.json} +4 -4
  142. package/build/contracts/src/libraries/CryptographyPrimitives.sol/CryptographyPrimitives.dbg.json +1 -1
  143. package/build/contracts/src/libraries/CryptographyPrimitives.sol/CryptographyPrimitives.json +2 -2
  144. package/build/contracts/src/libraries/DecimalsConverterHelper.sol/DecimalsConverterHelper.dbg.json +1 -1
  145. package/build/contracts/src/libraries/DecimalsConverterHelper.sol/DecimalsConverterHelper.json +2 -2
  146. package/build/contracts/src/libraries/DelegateCallAware.sol/DelegateCallAware.dbg.json +1 -1
  147. package/build/contracts/src/libraries/DoubleLogicUUPSUpgradeable.sol/DoubleLogicUUPSUpgradeable.dbg.json +1 -1
  148. package/build/contracts/src/libraries/GasRefundEnabled.sol/GasRefundEnabled.dbg.json +1 -1
  149. package/build/contracts/src/libraries/IGasRefunder.sol/IGasRefunder.dbg.json +1 -1
  150. package/build/contracts/src/libraries/IReader4844.sol/IReader4844.dbg.json +1 -1
  151. package/build/contracts/src/libraries/MerkleLib.sol/MerkleLib.dbg.json +1 -1
  152. package/build/contracts/src/libraries/MerkleLib.sol/MerkleLib.json +2 -2
  153. package/build/contracts/src/libraries/UUPSNotUpgradeable.sol/UUPSNotUpgradeable.dbg.json +1 -1
  154. package/build/contracts/src/mocks/Benchmarks.sol/Benchmarks.dbg.json +1 -1
  155. package/build/contracts/src/mocks/Benchmarks.sol/Benchmarks.json +2 -2
  156. package/build/contracts/src/mocks/BridgeStub.sol/BridgeStub.dbg.json +1 -1
  157. package/build/contracts/src/mocks/BridgeStub.sol/BridgeStub.json +8 -8
  158. package/build/contracts/src/mocks/BridgeUnproxied.sol/BridgeUnproxied.dbg.json +1 -1
  159. package/build/contracts/src/mocks/BridgeUnproxied.sol/BridgeUnproxied.json +15 -2
  160. package/build/contracts/src/mocks/CreateTest.sol/CreateTest.dbg.json +1 -1
  161. package/build/contracts/src/mocks/CreateTest.sol/CreateTest.json +2 -2
  162. package/build/contracts/src/mocks/HostioTest.sol/HostioTest.dbg.json +1 -1
  163. package/build/contracts/src/mocks/HostioTest.sol/HostioTest.json +2 -2
  164. package/build/contracts/src/mocks/InboxStub.sol/InboxStub.dbg.json +1 -1
  165. package/build/contracts/src/mocks/InboxStub.sol/InboxStub.json +2 -2
  166. package/build/contracts/src/mocks/MerkleTreeAccess.sol/MerkleTreeAccess.dbg.json +4 -0
  167. package/build/contracts/src/mocks/MerkleTreeAccess.sol/MerkleTreeAccess.json +227 -0
  168. package/build/contracts/src/mocks/MockRollupEventInbox.sol/MockRollupEventInbox.dbg.json +4 -0
  169. package/build/contracts/src/mocks/MockRollupEventInbox.sol/MockRollupEventInbox.json +133 -0
  170. package/build/contracts/src/mocks/MultiCallTest.sol/MultiCallTest.dbg.json +1 -1
  171. package/build/contracts/src/mocks/MultiCallTest.sol/MultiCallTest.json +2 -2
  172. package/build/contracts/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol/PendingBlkTimeAndNrAdvanceCheck.dbg.json +1 -1
  173. package/build/contracts/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol/PendingBlkTimeAndNrAdvanceCheck.json +2 -2
  174. package/build/contracts/src/mocks/Program.sol/ProgramTest.dbg.json +1 -1
  175. package/build/contracts/src/mocks/Program.sol/ProgramTest.json +2 -2
  176. package/build/contracts/src/mocks/ProxyAdminForBinding.sol/ProxyAdminForBinding.dbg.json +1 -1
  177. package/build/contracts/src/mocks/ProxyAdminForBinding.sol/ProxyAdminForBinding.json +2 -2
  178. package/build/contracts/src/mocks/SdkStorage.sol/SdkStorage.dbg.json +1 -1
  179. package/build/contracts/src/mocks/SdkStorage.sol/SdkStorage.json +2 -2
  180. package/build/contracts/src/mocks/SequencerInboxBlobMock.sol/SequencerInboxBlobMock.dbg.json +4 -0
  181. package/build/contracts/src/mocks/SequencerInboxBlobMock.sol/SequencerInboxBlobMock.json +1632 -0
  182. package/build/contracts/src/mocks/SequencerInboxStub.sol/SequencerInboxStub.dbg.json +1 -1
  183. package/build/contracts/src/mocks/SequencerInboxStub.sol/SequencerInboxStub.json +566 -9
  184. package/build/contracts/src/mocks/Simple.sol/Simple.dbg.json +1 -1
  185. package/build/contracts/src/mocks/Simple.sol/Simple.json +2 -2
  186. package/build/contracts/src/mocks/SimpleCacheManager.sol/SimpleCacheManager.dbg.json +1 -1
  187. package/build/contracts/src/mocks/SimpleCacheManager.sol/SimpleCacheManager.json +2 -2
  188. package/build/contracts/src/mocks/SimpleOneStepProofEntry.sol/SimpleOneStepProofEntry.dbg.json +4 -0
  189. package/build/contracts/src/mocks/SimpleOneStepProofEntry.sol/SimpleOneStepProofEntry.json +142 -0
  190. package/build/contracts/src/mocks/SimpleProxy.sol/SimpleProxy.dbg.json +1 -1
  191. package/build/contracts/src/mocks/SimpleProxy.sol/SimpleProxy.json +2 -2
  192. package/build/contracts/src/mocks/TestWETH9.sol/IWETH9.dbg.json +4 -0
  193. package/build/contracts/src/mocks/TestWETH9.sol/IWETH9.json +31 -0
  194. package/build/contracts/src/mocks/TestWETH9.sol/TestWETH9.dbg.json +4 -0
  195. package/build/contracts/src/mocks/TestWETH9.sol/TestWETH9.json +317 -0
  196. package/build/contracts/src/mocks/UpgradeExecutorMock.sol/UpgradeExecutorMock.dbg.json +1 -1
  197. package/build/contracts/src/mocks/UpgradeExecutorMock.sol/UpgradeExecutorMock.json +15 -2
  198. package/build/contracts/src/node-interface/NodeInterface.sol/NodeInterface.dbg.json +1 -1
  199. package/build/contracts/src/node-interface/NodeInterfaceDebug.sol/NodeInterfaceDebug.dbg.json +1 -1
  200. package/build/contracts/src/osp/HashProofHelper.sol/HashProofHelper.dbg.json +1 -1
  201. package/build/contracts/src/osp/HashProofHelper.sol/HashProofHelper.json +2 -2
  202. package/build/contracts/src/osp/IOneStepProofEntry.sol/IOneStepProofEntry.dbg.json +1 -1
  203. package/build/contracts/src/osp/IOneStepProofEntry.sol/IOneStepProofEntry.json +33 -9
  204. package/build/contracts/src/osp/IOneStepProofEntry.sol/OneStepProofEntryLib.dbg.json +1 -1
  205. package/build/contracts/src/osp/IOneStepProofEntry.sol/OneStepProofEntryLib.json +2 -2
  206. package/build/contracts/src/osp/IOneStepProver.sol/IOneStepProver.dbg.json +1 -1
  207. package/build/contracts/src/osp/IOneStepProver.sol/IOneStepProver.json +5 -0
  208. package/build/contracts/src/osp/OneStepProofEntry.sol/OneStepProofEntry.dbg.json +1 -1
  209. package/build/contracts/src/osp/OneStepProofEntry.sol/OneStepProofEntry.json +35 -11
  210. package/build/contracts/src/osp/OneStepProver0.sol/OneStepProver0.dbg.json +1 -1
  211. package/build/contracts/src/osp/OneStepProver0.sol/OneStepProver0.json +7 -2
  212. package/build/contracts/src/osp/OneStepProverHostIo.sol/OneStepProverHostIo.dbg.json +1 -1
  213. package/build/contracts/src/osp/OneStepProverHostIo.sol/OneStepProverHostIo.json +7 -2
  214. package/build/contracts/src/osp/OneStepProverMath.sol/OneStepProverMath.dbg.json +1 -1
  215. package/build/contracts/src/osp/OneStepProverMath.sol/OneStepProverMath.json +7 -2
  216. package/build/contracts/src/osp/OneStepProverMemory.sol/OneStepProverMemory.dbg.json +1 -1
  217. package/build/contracts/src/osp/OneStepProverMemory.sol/OneStepProverMemory.json +7 -2
  218. package/build/contracts/src/precompiles/ArbAddressTable.sol/ArbAddressTable.dbg.json +1 -1
  219. package/build/contracts/src/precompiles/ArbAggregator.sol/ArbAggregator.dbg.json +1 -1
  220. package/build/contracts/src/precompiles/ArbBLS.sol/ArbBLS.dbg.json +1 -1
  221. package/build/contracts/src/precompiles/ArbDebug.sol/ArbDebug.dbg.json +1 -1
  222. package/build/contracts/src/precompiles/ArbFunctionTable.sol/ArbFunctionTable.dbg.json +1 -1
  223. package/build/contracts/src/precompiles/ArbGasInfo.sol/ArbGasInfo.dbg.json +1 -1
  224. package/build/contracts/src/precompiles/ArbInfo.sol/ArbInfo.dbg.json +1 -1
  225. package/build/contracts/src/precompiles/ArbOwner.sol/ArbOwner.dbg.json +1 -1
  226. package/build/contracts/src/precompiles/ArbOwnerPublic.sol/ArbOwnerPublic.dbg.json +1 -1
  227. package/build/contracts/src/precompiles/ArbRetryableTx.sol/ArbRetryableTx.dbg.json +1 -1
  228. package/build/contracts/src/precompiles/ArbStatistics.sol/ArbStatistics.dbg.json +1 -1
  229. package/build/contracts/src/precompiles/ArbSys.sol/ArbSys.dbg.json +1 -1
  230. package/build/contracts/src/precompiles/ArbWasm.sol/ArbWasm.dbg.json +1 -1
  231. package/build/contracts/src/precompiles/ArbWasmCache.sol/ArbWasmCache.dbg.json +1 -1
  232. package/build/contracts/src/precompiles/ArbosActs.sol/ArbosActs.dbg.json +1 -1
  233. package/build/contracts/src/precompiles/ArbosTest.sol/ArbosTest.dbg.json +1 -1
  234. package/build/contracts/src/rollup/AbsRollupEventInbox.sol/AbsRollupEventInbox.dbg.json +1 -1
  235. package/build/contracts/src/rollup/Assertion.sol/AssertionNodeLib.dbg.json +4 -0
  236. package/build/contracts/src/rollup/{Node.sol/NodeLib.json → Assertion.sol/AssertionNodeLib.json} +4 -4
  237. package/build/contracts/src/rollup/AssertionState.sol/AssertionStateLib.dbg.json +4 -0
  238. package/build/contracts/src/{express-lane-auction/Balance.sol/BalanceLib.json → rollup/AssertionState.sol/AssertionStateLib.json} +4 -4
  239. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/BOLDUpgradeAction.dbg.json +4 -0
  240. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/BOLDUpgradeAction.json +807 -0
  241. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ConstantArrayStorage.dbg.json +4 -0
  242. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ConstantArrayStorage.json +35 -0
  243. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollup.dbg.json +4 -0
  244. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollup.json +361 -0
  245. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollupAdmin.dbg.json +4 -0
  246. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollupAdmin.json +38 -0
  247. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ISeqInboxPostUpgradeInit.dbg.json +4 -0
  248. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ISeqInboxPostUpgradeInit.json +41 -0
  249. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/RollupReader.dbg.json +4 -0
  250. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/RollupReader.json +385 -0
  251. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/StateHashPreImageLookup.dbg.json +4 -0
  252. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/StateHashPreImageLookup.json +203 -0
  253. package/build/contracts/src/rollup/BridgeCreator.sol/BridgeCreator.dbg.json +1 -1
  254. package/build/contracts/src/rollup/BridgeCreator.sol/BridgeCreator.json +62 -10
  255. package/build/contracts/src/rollup/DeployHelper.sol/DeployHelper.dbg.json +1 -1
  256. package/build/contracts/src/rollup/DeployHelper.sol/DeployHelper.json +2 -2
  257. package/build/contracts/src/rollup/ERC20RollupEventInbox.sol/ERC20RollupEventInbox.dbg.json +1 -1
  258. package/build/contracts/src/rollup/ERC20RollupEventInbox.sol/ERC20RollupEventInbox.json +2 -2
  259. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/FactoryDeployerHelper.dbg.json +1 -1
  260. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/FactoryDeployerHelper.json +2 -2
  261. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IDeployHelper.dbg.json +1 -1
  262. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IERC20.dbg.json +1 -1
  263. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IERC20Bridge.dbg.json +1 -1
  264. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IInboxBase.dbg.json +1 -1
  265. package/build/contracts/src/rollup/IRollupAdmin.sol/IRollupAdmin.dbg.json +1 -1
  266. package/build/contracts/src/rollup/IRollupAdmin.sol/IRollupAdmin.json +473 -99
  267. package/build/contracts/src/rollup/IRollupCore.sol/IRollupCore.dbg.json +1 -1
  268. package/build/contracts/src/rollup/IRollupCore.sol/IRollupCore.json +315 -221
  269. package/build/contracts/src/rollup/IRollupEventInbox.sol/IRollupEventInbox.dbg.json +1 -1
  270. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUser.dbg.json +1 -1
  271. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUser.json +678 -499
  272. package/build/contracts/src/rollup/RollupAdminLogic.sol/RollupAdminLogic.dbg.json +1 -1
  273. package/build/contracts/src/rollup/RollupAdminLogic.sol/RollupAdminLogic.json +806 -435
  274. package/build/contracts/src/rollup/RollupCore.sol/RollupCore.dbg.json +1 -1
  275. package/build/contracts/src/rollup/RollupCore.sol/RollupCore.json +323 -235
  276. package/build/contracts/src/rollup/RollupCreator.sol/RollupCreator.dbg.json +1 -1
  277. package/build/contracts/src/rollup/RollupCreator.sol/RollupCreator.json +98 -36
  278. package/build/contracts/src/rollup/RollupEventInbox.sol/RollupEventInbox.dbg.json +1 -1
  279. package/build/contracts/src/rollup/RollupEventInbox.sol/RollupEventInbox.json +2 -2
  280. package/build/contracts/src/rollup/RollupLib.sol/RollupLib.dbg.json +1 -1
  281. package/build/contracts/src/rollup/RollupLib.sol/RollupLib.json +2 -2
  282. package/build/contracts/src/rollup/RollupProxy.sol/RollupProxy.dbg.json +1 -1
  283. package/build/contracts/src/rollup/RollupProxy.sol/RollupProxy.json +97 -16
  284. package/build/contracts/src/rollup/RollupUserLogic.sol/RollupUserLogic.dbg.json +1 -1
  285. package/build/contracts/src/rollup/RollupUserLogic.sol/RollupUserLogic.json +924 -535
  286. package/build/contracts/src/rollup/ValidatorWallet.sol/ValidatorWallet.dbg.json +1 -1
  287. package/build/contracts/src/rollup/ValidatorWallet.sol/ValidatorWallet.json +15 -43
  288. package/build/contracts/src/rollup/ValidatorWalletCreator.sol/ValidatorWalletCreator.dbg.json +1 -1
  289. package/build/contracts/src/rollup/ValidatorWalletCreator.sol/ValidatorWalletCreator.json +2 -2
  290. package/build/contracts/src/state/Deserialize.sol/Deserialize.dbg.json +1 -1
  291. package/build/contracts/src/state/Deserialize.sol/Deserialize.json +2 -2
  292. package/build/contracts/src/state/GlobalState.sol/GlobalStateLib.dbg.json +1 -1
  293. package/build/contracts/src/state/GlobalState.sol/GlobalStateLib.json +2 -2
  294. package/build/contracts/src/state/Instructions.sol/Instructions.dbg.json +1 -1
  295. package/build/contracts/src/state/Instructions.sol/Instructions.json +2 -2
  296. package/build/contracts/src/state/Machine.sol/MachineLib.dbg.json +1 -1
  297. package/build/contracts/src/state/Machine.sol/MachineLib.json +2 -2
  298. package/build/contracts/src/state/MerkleProof.sol/MerkleProofLib.dbg.json +1 -1
  299. package/build/contracts/src/state/MerkleProof.sol/MerkleProofLib.json +2 -2
  300. package/build/contracts/src/state/Module.sol/ModuleLib.dbg.json +1 -1
  301. package/build/contracts/src/state/Module.sol/ModuleLib.json +2 -2
  302. package/build/contracts/src/state/ModuleMemory.sol/ModuleMemoryLib.dbg.json +1 -1
  303. package/build/contracts/src/state/ModuleMemory.sol/ModuleMemoryLib.json +2 -2
  304. package/build/contracts/src/state/ModuleMemoryCompact.sol/ModuleMemoryCompactLib.dbg.json +1 -1
  305. package/build/contracts/src/state/ModuleMemoryCompact.sol/ModuleMemoryCompactLib.json +2 -2
  306. package/build/contracts/src/state/MultiStack.sol/MultiStackLib.dbg.json +1 -1
  307. package/build/contracts/src/state/MultiStack.sol/MultiStackLib.json +2 -2
  308. package/build/contracts/src/state/PcArray.sol/PcArrayLib.dbg.json +1 -1
  309. package/build/contracts/src/state/PcArray.sol/PcArrayLib.json +2 -2
  310. package/build/contracts/src/state/StackFrame.sol/StackFrameLib.dbg.json +1 -1
  311. package/build/contracts/src/state/StackFrame.sol/StackFrameLib.json +2 -2
  312. package/build/contracts/src/state/Value.sol/ValueLib.dbg.json +1 -1
  313. package/build/contracts/src/state/Value.sol/ValueLib.json +2 -2
  314. package/build/contracts/src/state/ValueArray.sol/ValueArrayLib.dbg.json +1 -1
  315. package/build/contracts/src/state/ValueArray.sol/ValueArrayLib.json +2 -2
  316. package/build/contracts/src/state/ValueStack.sol/ValueStackLib.dbg.json +1 -1
  317. package/build/contracts/src/state/ValueStack.sol/ValueStackLib.json +2 -2
  318. package/build/contracts/src/test-helpers/BridgeTester.sol/BridgeTester.dbg.json +1 -1
  319. package/build/contracts/src/test-helpers/BridgeTester.sol/BridgeTester.json +15 -2
  320. package/build/contracts/src/test-helpers/CryptographyPrimitivesTester.sol/CryptographyPrimitivesTester.dbg.json +1 -1
  321. package/build/contracts/src/test-helpers/CryptographyPrimitivesTester.sol/CryptographyPrimitivesTester.json +2 -2
  322. package/build/contracts/src/test-helpers/EthVault.sol/EthVault.dbg.json +1 -1
  323. package/build/contracts/src/test-helpers/EthVault.sol/EthVault.json +2 -2
  324. package/build/contracts/src/test-helpers/MessageTester.sol/MessageTester.dbg.json +1 -1
  325. package/build/contracts/src/test-helpers/MessageTester.sol/MessageTester.json +2 -2
  326. package/build/contracts/src/test-helpers/OutboxWithoutOptTester.sol/OutboxWithoutOptTester.dbg.json +1 -1
  327. package/build/contracts/src/test-helpers/OutboxWithoutOptTester.sol/OutboxWithoutOptTester.json +2 -2
  328. package/build/contracts/src/test-helpers/RollupMock.sol/RollupMock.dbg.json +1 -1
  329. package/build/contracts/src/test-helpers/RollupMock.sol/RollupMock.json +2 -15
  330. package/build/contracts/src/test-helpers/TestToken.sol/TestToken.dbg.json +1 -1
  331. package/build/contracts/src/test-helpers/TestToken.sol/TestToken.json +2 -2
  332. package/build/contracts/src/test-helpers/ValueArrayTester.sol/ValueArrayTester.dbg.json +1 -1
  333. package/build/contracts/src/test-helpers/ValueArrayTester.sol/ValueArrayTester.json +2 -2
  334. package/out/yul/Reader4844.yul/Reader4844.json +1 -1
  335. package/package.json +11 -4
  336. package/src/assertionStakingPool/AbsBoldStakingPool.sol +66 -0
  337. package/src/assertionStakingPool/AssertionStakingPool.sol +70 -0
  338. package/src/assertionStakingPool/AssertionStakingPoolCreator.sol +35 -0
  339. package/src/assertionStakingPool/EdgeStakingPool.sol +57 -0
  340. package/src/assertionStakingPool/EdgeStakingPoolCreator.sol +34 -0
  341. package/src/assertionStakingPool/StakingPoolCreatorUtils.sol +25 -0
  342. package/src/assertionStakingPool/interfaces/IAbsBoldStakingPool.sol +41 -0
  343. package/src/assertionStakingPool/interfaces/IAssertionStakingPool.sol +36 -0
  344. package/src/assertionStakingPool/interfaces/IAssertionStakingPoolCreator.sol +31 -0
  345. package/src/assertionStakingPool/interfaces/IEdgeStakingPool.sol +27 -0
  346. package/src/assertionStakingPool/interfaces/IEdgeStakingPoolCreator.sol +28 -0
  347. package/src/bridge/AbsBridge.sol +38 -48
  348. package/src/bridge/AbsInbox.sol +89 -92
  349. package/src/bridge/AbsOutbox.sol +23 -37
  350. package/src/bridge/Bridge.sol +6 -4
  351. package/src/bridge/DelayBuffer.sol +123 -0
  352. package/src/bridge/DelayBufferTypes.sol +38 -0
  353. package/src/bridge/ERC20Bridge.sol +8 -4
  354. package/src/bridge/ERC20Inbox.sol +46 -53
  355. package/src/bridge/ERC20Outbox.sol +7 -3
  356. package/src/bridge/GasRefunder.sol +38 -24
  357. package/src/bridge/IBridge.sol +30 -21
  358. package/src/bridge/IERC20Bridge.sol +1 -1
  359. package/src/bridge/IERC20Inbox.sol +4 -2
  360. package/src/bridge/IEthBridge.sol +4 -2
  361. package/src/bridge/IInbox.sol +4 -2
  362. package/src/bridge/IInboxBase.sol +16 -8
  363. package/src/bridge/IOutbox.sol +13 -8
  364. package/src/bridge/ISequencerInbox.sol +118 -13
  365. package/src/bridge/Inbox.sol +134 -151
  366. package/src/bridge/Messages.sol +48 -18
  367. package/src/bridge/Outbox.sol +6 -2
  368. package/src/bridge/SequencerInbox.sol +343 -279
  369. package/src/chain/CacheManager.sol +49 -18
  370. package/src/challengeV2/EdgeChallengeManager.sol +559 -0
  371. package/src/challengeV2/IAssertionChain.sol +39 -0
  372. package/src/challengeV2/IEdgeChallengeManager.sol +233 -0
  373. package/src/challengeV2/libraries/ArrayUtilsLib.sol +61 -0
  374. package/src/challengeV2/libraries/ChallengeEdgeLib.sol +277 -0
  375. package/src/challengeV2/libraries/ChallengeErrors.sol +108 -0
  376. package/src/challengeV2/libraries/EdgeChallengeManagerLib.sol +819 -0
  377. package/src/challengeV2/libraries/Enums.sol +26 -0
  378. package/src/challengeV2/libraries/MerkleTreeAccumulatorLib.sol +390 -0
  379. package/src/challengeV2/libraries/Structs.sol +176 -0
  380. package/src/challengeV2/libraries/UintUtilsLib.sol +74 -0
  381. package/src/libraries/AddressAliasHelper.sol +6 -2
  382. package/src/libraries/AdminFallbackProxy.sol +8 -4
  383. package/src/libraries/ArbitrumChecker.sol +3 -4
  384. package/src/libraries/CallerChecker.sol +18 -0
  385. package/src/libraries/CryptographyPrimitives.sol +39 -46
  386. package/src/libraries/DecimalsConverterHelper.sol +2 -4
  387. package/src/libraries/DoubleLogicUUPSUpgradeable.sol +10 -7
  388. package/src/libraries/Error.sol +21 -3
  389. package/src/libraries/GasRefundEnabled.sol +5 -6
  390. package/src/libraries/MerkleLib.sol +6 -5
  391. package/src/libraries/UUPSNotUpgradeable.sol +2 -4
  392. package/src/mocks/BridgeStub.sol +50 -48
  393. package/src/mocks/CreateTest.sol +3 -1
  394. package/src/mocks/HostioTest.sol +20 -16
  395. package/src/mocks/InboxStub.sol +22 -17
  396. package/src/mocks/MerkleTreeAccess.sol +72 -0
  397. package/src/mocks/MockRollupEventInbox.sol +59 -0
  398. package/src/mocks/MultiCallTest.sol +3 -1
  399. package/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol +3 -1
  400. package/src/mocks/Program.sol +9 -7
  401. package/src/mocks/SequencerInboxBlobMock.sol +38 -0
  402. package/src/mocks/SequencerInboxStub.sol +9 -12
  403. package/src/mocks/Simple.sol +13 -25
  404. package/src/mocks/SimpleCacheManager.sol +10 -3
  405. package/src/mocks/SimpleOneStepProofEntry.sol +60 -0
  406. package/src/mocks/SimpleProxy.sol +3 -1
  407. package/src/mocks/TestWETH9.sol +30 -0
  408. package/src/mocks/UpgradeExecutorMock.sol +10 -17
  409. package/src/node-interface/NodeInterface.sol +23 -22
  410. package/src/node-interface/NodeInterfaceDebug.sol +5 -3
  411. package/src/osp/HashProofHelper.sol +9 -10
  412. package/src/osp/IOneStepProofEntry.sol +14 -9
  413. package/src/osp/IOneStepProver.sol +1 -0
  414. package/src/osp/OneStepProofEntry.sol +63 -54
  415. package/src/osp/OneStepProver0.sol +14 -27
  416. package/src/osp/OneStepProverHostIo.sol +31 -58
  417. package/src/osp/OneStepProverMath.sol +15 -23
  418. package/src/osp/OneStepProverMemory.sol +9 -23
  419. package/src/precompiles/ArbAddressTable.sol +19 -9
  420. package/src/precompiles/ArbAggregator.sol +12 -4
  421. package/src/precompiles/ArbBLS.sol +1 -3
  422. package/src/precompiles/ArbDebug.sol +5 -11
  423. package/src/precompiles/ArbFunctionTable.sol +7 -10
  424. package/src/precompiles/ArbGasInfo.sol +9 -43
  425. package/src/precompiles/ArbInfo.sol +6 -2
  426. package/src/precompiles/ArbOwner.sol +101 -34
  427. package/src/precompiles/ArbOwnerPublic.sol +6 -2
  428. package/src/precompiles/ArbRetryableTx.sol +15 -5
  429. package/src/precompiles/ArbStatistics.sol +1 -8
  430. package/src/precompiles/ArbSys.sol +16 -18
  431. package/src/precompiles/ArbWasm.sol +24 -14
  432. package/src/precompiles/ArbWasmCache.sol +15 -5
  433. package/src/precompiles/ArbosTest.sol +3 -1
  434. package/src/rollup/AbsRollupEventInbox.sol +15 -16
  435. package/src/rollup/Assertion.sol +100 -0
  436. package/src/rollup/AssertionState.sol +29 -0
  437. package/src/rollup/BOLDUpgradeAction.sol +631 -0
  438. package/src/rollup/BridgeCreator.sol +42 -15
  439. package/src/rollup/Config.sol +15 -7
  440. package/src/rollup/DeployHelper.sol +12 -31
  441. package/src/rollup/ERC20RollupEventInbox.sol +8 -9
  442. package/src/rollup/FactoryDeployerHelper.sol +8 -10
  443. package/src/rollup/IRollupAdmin.sol +127 -45
  444. package/src/rollup/IRollupCore.sol +64 -84
  445. package/src/rollup/IRollupEventInbox.sol +3 -1
  446. package/src/rollup/IRollupLogic.sol +35 -72
  447. package/src/rollup/RollupAdminLogic.sol +224 -203
  448. package/src/rollup/RollupCore.sol +407 -428
  449. package/src/rollup/RollupCreator.sol +84 -71
  450. package/src/rollup/RollupEventInbox.sol +7 -7
  451. package/src/rollup/RollupLib.sol +50 -86
  452. package/src/rollup/RollupProxy.sol +8 -12
  453. package/src/rollup/RollupUserLogic.sol +279 -644
  454. package/src/rollup/ValidatorUtils.sol +0 -242
  455. package/src/rollup/ValidatorWallet.sol +22 -38
  456. package/src/rollup/ValidatorWalletCreator.sol +8 -8
  457. package/src/state/Deserialize.sol +74 -96
  458. package/src/state/GlobalState.sol +74 -20
  459. package/src/state/Instructions.sol +4 -3
  460. package/src/state/Machine.sol +18 -19
  461. package/src/state/Module.sol +14 -13
  462. package/src/state/ModuleMemory.sol +6 -25
  463. package/src/state/ModuleMemoryCompact.sol +3 -1
  464. package/src/state/MultiStack.sol +16 -20
  465. package/src/state/PcArray.sol +7 -7
  466. package/src/state/StackFrame.sol +21 -14
  467. package/src/state/Value.sol +18 -6
  468. package/src/state/ValueArray.sol +7 -7
  469. package/src/state/ValueStack.sol +9 -3
  470. package/src/test-helpers/BridgeTester.sol +32 -42
  471. package/src/test-helpers/CryptographyPrimitivesTester.sol +12 -13
  472. package/src/test-helpers/EthVault.sol +4 -2
  473. package/src/test-helpers/InterfaceCompatibilityTester.sol +1 -1
  474. package/src/test-helpers/MessageTester.sol +3 -10
  475. package/src/test-helpers/OutboxWithoutOptTester.sol +12 -19
  476. package/src/test-helpers/RollupMock.sol +3 -7
  477. package/src/test-helpers/TestToken.sol +4 -2
  478. package/build/contracts/@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.dbg.json +0 -4
  479. package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlEnumerableUpgradeable.sol/AccessControlEnumerableUpgradeable.dbg.json +0 -4
  480. package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlEnumerableUpgradeable.sol/AccessControlEnumerableUpgradeable.json +0 -258
  481. package/build/contracts/@openzeppelin/contracts-upgradeable/access/IAccessControlEnumerableUpgradeable.sol/IAccessControlEnumerableUpgradeable.dbg.json +0 -4
  482. package/build/contracts/@openzeppelin/contracts-upgradeable/access/IAccessControlEnumerableUpgradeable.sol/IAccessControlEnumerableUpgradeable.json +0 -226
  483. package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol/ERC20Upgradeable.dbg.json +0 -4
  484. package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol/ERC20Upgradeable.json +0 -281
  485. package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.dbg.json +0 -4
  486. package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20BurnableUpgradeable.sol/ERC20BurnableUpgradeable.dbg.json +0 -4
  487. package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20BurnableUpgradeable.sol/ERC20BurnableUpgradeable.json +0 -312
  488. package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20MetadataUpgradeable.sol/IERC20MetadataUpgradeable.dbg.json +0 -4
  489. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/cryptography/ECDSAUpgradeable.sol/ECDSAUpgradeable.dbg.json +0 -4
  490. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/cryptography/ECDSAUpgradeable.sol/ECDSAUpgradeable.json +0 -10
  491. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/cryptography/draft-EIP712Upgradeable.sol/EIP712Upgradeable.dbg.json +0 -4
  492. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/cryptography/draft-EIP712Upgradeable.sol/EIP712Upgradeable.json +0 -10
  493. package/build/contracts/src/challenge/ChallengeLib.sol/ChallengeLib.dbg.json +0 -4
  494. package/build/contracts/src/challenge/ChallengeManager.sol/ChallengeManager.dbg.json +0 -4
  495. package/build/contracts/src/challenge/ChallengeManager.sol/ChallengeManager.json +0 -746
  496. package/build/contracts/src/challenge/IChallengeManager.sol/IChallengeManager.dbg.json +0 -4
  497. package/build/contracts/src/challenge/IChallengeManager.sol/IChallengeManager.json +0 -441
  498. package/build/contracts/src/challenge/IChallengeResultReceiver.sol/IChallengeResultReceiver.dbg.json +0 -4
  499. package/build/contracts/src/challenge/IChallengeResultReceiver.sol/IChallengeResultReceiver.json +0 -34
  500. package/build/contracts/src/express-lane-auction/Balance.sol/BalanceLib.dbg.json +0 -4
  501. package/build/contracts/src/express-lane-auction/Burner.sol/Burner.dbg.json +0 -4
  502. package/build/contracts/src/express-lane-auction/Burner.sol/Burner.json +0 -47
  503. package/build/contracts/src/express-lane-auction/ELCRound.sol/LatestELCRoundsLib.dbg.json +0 -4
  504. package/build/contracts/src/express-lane-auction/ExpressLaneAuction.sol/ExpressLaneAuction.dbg.json +0 -4
  505. package/build/contracts/src/express-lane-auction/ExpressLaneAuction.sol/ExpressLaneAuction.json +0 -1588
  506. package/build/contracts/src/express-lane-auction/IExpressLaneAuction.sol/IExpressLaneAuction.dbg.json +0 -4
  507. package/build/contracts/src/express-lane-auction/IExpressLaneAuction.sol/IExpressLaneAuction.json +0 -1296
  508. package/build/contracts/src/express-lane-auction/RoundTimingInfo.sol/RoundTimingInfoLib.dbg.json +0 -4
  509. package/build/contracts/src/express-lane-auction/RoundTimingInfo.sol/RoundTimingInfoLib.json +0 -10
  510. package/build/contracts/src/mocks/MockResultReceiver.sol/MockResultReceiver.dbg.json +0 -4
  511. package/build/contracts/src/mocks/MockResultReceiver.sol/MockResultReceiver.json +0 -188
  512. package/build/contracts/src/mocks/SingleExecutionChallenge.sol/SingleExecutionChallenge.dbg.json +0 -4
  513. package/build/contracts/src/mocks/SingleExecutionChallenge.sol/SingleExecutionChallenge.json +0 -797
  514. package/build/contracts/src/mocks/TimedOutChallengeManager.sol/TimedOutChallengeManager.dbg.json +0 -4
  515. package/build/contracts/src/mocks/TimedOutChallengeManager.sol/TimedOutChallengeManager.json +0 -746
  516. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserAbs.dbg.json +0 -4
  517. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserAbs.json +0 -1332
  518. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserERC20.dbg.json +0 -4
  519. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserERC20.json +0 -1466
  520. package/build/contracts/src/rollup/Node.sol/NodeLib.dbg.json +0 -4
  521. package/build/contracts/src/rollup/RollupUserLogic.sol/AbsRollupUserLogic.dbg.json +0 -4
  522. package/build/contracts/src/rollup/RollupUserLogic.sol/AbsRollupUserLogic.json +0 -1614
  523. package/build/contracts/src/rollup/RollupUserLogic.sol/ERC20RollupUserLogic.dbg.json +0 -4
  524. package/build/contracts/src/rollup/RollupUserLogic.sol/ERC20RollupUserLogic.json +0 -1748
  525. package/build/contracts/src/rollup/ValidatorUtils.sol/ValidatorUtils.dbg.json +0 -4
  526. package/build/contracts/src/rollup/ValidatorUtils.sol/ValidatorUtils.json +0 -379
  527. package/src/challenge/ChallengeLib.sol +0 -88
  528. package/src/challenge/ChallengeManager.sol +0 -375
  529. package/src/challenge/IChallengeManager.sol +0 -86
  530. package/src/challenge/IChallengeResultReceiver.sol +0 -13
  531. package/src/express-lane-auction/Balance.sol +0 -142
  532. package/src/express-lane-auction/Burner.sol +0 -25
  533. package/src/express-lane-auction/ELCRound.sol +0 -73
  534. package/src/express-lane-auction/Errors.sol +0 -31
  535. package/src/express-lane-auction/ExpressLaneAuction.sol +0 -565
  536. package/src/express-lane-auction/IExpressLaneAuction.sol +0 -421
  537. package/src/express-lane-auction/RoundTimingInfo.sol +0 -115
  538. package/src/mocks/MockResultReceiver.sol +0 -59
  539. package/src/mocks/SingleExecutionChallenge.sol +0 -41
  540. package/src/mocks/TimedOutChallengeManager.sol +0 -13
  541. package/src/rollup/Node.sol +0 -113
@@ -29,11 +29,7 @@ contract OneStepProverHostIo is IOneStepProver {
29
29
  uint64 private constant INBOX_HEADER_LEN = 40;
30
30
  uint64 private constant DELAYED_HEADER_LEN = 112 + 1;
31
31
 
32
- function setLeafByte(
33
- bytes32 oldLeaf,
34
- uint256 idx,
35
- uint8 val
36
- ) internal pure returns (bytes32) {
32
+ function setLeafByte(bytes32 oldLeaf, uint256 idx, uint8 val) internal pure returns (bytes32) {
37
33
  require(idx < LEAF_SIZE, "BAD_SET_LEAF_BYTE_IDX");
38
34
  // Take into account that we are casting the leaf to a big-endian integer
39
35
  uint256 leafShift = (LEAF_SIZE - 1 - idx) * 8;
@@ -66,17 +62,12 @@ contract OneStepProverHostIo is IOneStepProver {
66
62
  uint256 proofOffset = 0;
67
63
  bytes32 startLeafContents;
68
64
  MerkleProof memory merkleProof;
69
- (startLeafContents, proofOffset, merkleProof) = mod.moduleMemory.proveLeaf(
70
- leafIdx,
71
- proof,
72
- proofOffset
73
- );
65
+ (startLeafContents, proofOffset, merkleProof) =
66
+ mod.moduleMemory.proveLeaf(leafIdx, proof, proofOffset);
74
67
 
75
68
  if (inst.opcode == Instructions.GET_GLOBAL_STATE_BYTES32) {
76
- mod.moduleMemory.merkleRoot = merkleProof.computeRootFromMemory(
77
- leafIdx,
78
- state.bytes32Vals[idx]
79
- );
69
+ mod.moduleMemory.merkleRoot =
70
+ merkleProof.computeRootFromMemory(leafIdx, state.bytes32Vals[idx]);
80
71
  } else if (inst.opcode == Instructions.SET_GLOBAL_STATE_BYTES32) {
81
72
  state.bytes32Vals[idx] = startLeafContents;
82
73
  } else {
@@ -113,11 +104,7 @@ contract OneStepProverHostIo is IOneStepProver {
113
104
 
114
105
  // Computes b**e % m
115
106
  // Really pure but the Solidity compiler sees the staticcall and requires view
116
- function modExp256(
117
- uint256 b,
118
- uint256 e,
119
- uint256 m
120
- ) internal view returns (uint256) {
107
+ function modExp256(uint256 b, uint256 e, uint256 m) internal view returns (uint256) {
121
108
  bytes memory modExpInput = abi.encode(32, 32, 32, b, e, m);
122
109
  (bool modexpSuccess, bytes memory modExpOutput) = address(0x05).staticcall(modExpInput);
123
110
  require(modexpSuccess, "MODEXP_FAILED");
@@ -143,11 +130,8 @@ contract OneStepProverHostIo is IOneStepProver {
143
130
  uint256 proofOffset = 0;
144
131
  bytes32 leafContents;
145
132
  MerkleProof memory merkleProof;
146
- (leafContents, proofOffset, merkleProof) = mod.moduleMemory.proveLeaf(
147
- leafIdx,
148
- proof,
149
- proofOffset
150
- );
133
+ (leafContents, proofOffset, merkleProof) =
134
+ mod.moduleMemory.proveLeaf(leafIdx, proof, proofOffset);
151
135
 
152
136
  bytes memory extracted;
153
137
  uint8 proofType = uint8(proof[proofOffset]);
@@ -257,7 +241,7 @@ contract OneStepProverHostIo is IOneStepProver {
257
241
  require(message.length >= INBOX_HEADER_LEN, "BAD_SEQINBOX_PROOF");
258
242
 
259
243
  uint64 afterDelayedMsg;
260
- (afterDelayedMsg, ) = Deserialize.u64(message, 32);
244
+ (afterDelayedMsg,) = Deserialize.u64(message, 32);
261
245
  bytes32 messageHash = keccak256(message);
262
246
  bytes32 beforeAcc;
263
247
  bytes32 delayedAcc;
@@ -289,7 +273,7 @@ contract OneStepProverHostIo is IOneStepProver {
289
273
  bytes32 messageDataHash = keccak256(message[DELAYED_HEADER_LEN:]);
290
274
  bytes1 kind = message[0];
291
275
  uint256 sender;
292
- (sender, ) = Deserialize.u256(message, 1);
276
+ (sender,) = Deserialize.u256(message, 1);
293
277
 
294
278
  bytes32 messageHash = keccak256(
295
279
  abi.encodePacked(kind, uint160(sender), message[33:DELAYED_HEADER_LEN], messageDataHash)
@@ -311,10 +295,10 @@ contract OneStepProverHostIo is IOneStepProver {
311
295
  uint256 ptr = mach.valueStack.pop().assumeI32();
312
296
  uint256 msgIndex = mach.valueStack.pop().assumeI64();
313
297
  if (
314
- inst.argumentData == Instructions.INBOX_INDEX_SEQUENCER &&
315
- msgIndex >= execCtx.maxInboxMessagesRead
298
+ inst.argumentData == Instructions.INBOX_INDEX_SEQUENCER
299
+ && msgIndex >= execCtx.maxInboxMessagesRead
316
300
  ) {
317
- mach.status = MachineStatus.TOO_FAR;
301
+ mach.status = MachineStatus.ERRORED;
318
302
  return;
319
303
  }
320
304
 
@@ -327,11 +311,8 @@ contract OneStepProverHostIo is IOneStepProver {
327
311
  uint256 proofOffset = 0;
328
312
  bytes32 leafContents;
329
313
  MerkleProof memory merkleProof;
330
- (leafContents, proofOffset, merkleProof) = mod.moduleMemory.proveLeaf(
331
- leafIdx,
332
- proof,
333
- proofOffset
334
- );
314
+ (leafContents, proofOffset, merkleProof) =
315
+ mod.moduleMemory.proveLeaf(leafIdx, proof, proofOffset);
335
316
 
336
317
  {
337
318
  // TODO: support proving via an authenticated contract
@@ -364,11 +345,8 @@ contract OneStepProverHostIo is IOneStepProver {
364
345
 
365
346
  uint32 i = 0;
366
347
  for (; i < 32 && messageOffset + i < messageLength; i++) {
367
- leafContents = setLeafByte(
368
- leafContents,
369
- i,
370
- uint8(proof[proofOffset + messageOffset + i])
371
- );
348
+ leafContents =
349
+ setLeafByte(leafContents, i, uint8(proof[proofOffset + messageOffset + i]));
372
350
  }
373
351
 
374
352
  mod.moduleMemory.merkleRoot = merkleProof.computeRootFromMemory(leafIdx, leafContents);
@@ -385,7 +363,9 @@ contract OneStepProverHostIo is IOneStepProver {
385
363
  mach.status = MachineStatus.FINISHED;
386
364
  }
387
365
 
388
- function isPowerOfTwo(uint256 value) internal pure returns (bool) {
366
+ function isPowerOfTwo(
367
+ uint256 value
368
+ ) internal pure returns (bool) {
389
369
  return value != 0 && (value & (value - 1) == 0);
390
370
  }
391
371
 
@@ -396,11 +376,7 @@ contract OneStepProverHostIo is IOneStepProver {
396
376
  )
397
377
  internal
398
378
  pure
399
- returns (
400
- uint256 leaf,
401
- MerkleProof memory leafProof,
402
- MerkleProof memory zeroProof
403
- )
379
+ returns (uint256 leaf, MerkleProof memory leafProof, MerkleProof memory zeroProof)
404
380
  {
405
381
  string memory prefix = "Module merkle tree:";
406
382
  bytes32 root = mach.modulesRoot;
@@ -445,13 +421,10 @@ contract OneStepProverHostIo is IOneStepProver {
445
421
  mach.status = MachineStatus.ERRORED;
446
422
  return;
447
423
  }
448
- (bytes32 userMod, uint256 offset, ) = mod.moduleMemory.proveLeaf(
449
- pointer / LEAF_SIZE,
450
- proof,
451
- 0
452
- );
424
+ (bytes32 userMod, uint256 offset,) =
425
+ mod.moduleMemory.proveLeaf(pointer / LEAF_SIZE, proof, 0);
453
426
 
454
- (uint256 leaf, , MerkleProof memory zeroProof) = proveLastLeaf(mach, offset, proof);
427
+ (uint256 leaf,, MerkleProof memory zeroProof) = proveLastLeaf(mach, offset, proof);
455
428
 
456
429
  bool balanced = isPowerOfTwo(leaf + 1);
457
430
  if (balanced) {
@@ -472,7 +445,7 @@ contract OneStepProverHostIo is IOneStepProver {
472
445
  ) internal pure {
473
446
  string memory prefix = "Module merkle tree:";
474
447
 
475
- (uint256 leaf, MerkleProof memory leafProof, ) = proveLastLeaf(mach, 0, proof);
448
+ (uint256 leaf, MerkleProof memory leafProof,) = proveLastLeaf(mach, 0, proof);
476
449
 
477
450
  bool shrink = isPowerOfTwo(leaf);
478
451
  if (shrink) {
@@ -497,8 +470,8 @@ contract OneStepProverHostIo is IOneStepProver {
497
470
  require(state.hash() == mach.globalStateHash, "BAD_GLOBAL_STATE");
498
471
 
499
472
  if (
500
- opcode == Instructions.GET_GLOBAL_STATE_BYTES32 ||
501
- opcode == Instructions.SET_GLOBAL_STATE_BYTES32
473
+ opcode == Instructions.GET_GLOBAL_STATE_BYTES32
474
+ || opcode == Instructions.SET_GLOBAL_STATE_BYTES32
502
475
  ) {
503
476
  executeGetOrSetBytes32(mach, mod, state, inst, proof[proofOffset:]);
504
477
  } else if (opcode == Instructions.GET_GLOBAL_STATE_U64) {
@@ -539,8 +512,8 @@ contract OneStepProverHostIo is IOneStepProver {
539
512
  require(multi.remainingHash == bytes32(0), "WRONG_COTHREAD_EMPTY");
540
513
  } else {
541
514
  require(
542
- keccak256(abi.encodePacked("cothread:", newInactiveCoThread, newRemaining)) ==
543
- multi.remainingHash,
515
+ keccak256(abi.encodePacked("cothread:", newInactiveCoThread, newRemaining))
516
+ == multi.remainingHash,
544
517
  "WRONG_COTHREAD_POP"
545
518
  );
546
519
  }
@@ -620,8 +593,8 @@ contract OneStepProverHostIo is IOneStepProver {
620
593
  ) internal view impl;
621
594
 
622
595
  if (
623
- opcode >= Instructions.GET_GLOBAL_STATE_BYTES32 &&
624
- opcode <= Instructions.SET_GLOBAL_STATE_U64
596
+ opcode >= Instructions.GET_GLOBAL_STATE_BYTES32
597
+ && opcode <= Instructions.SET_GLOBAL_STATE_U64
625
598
  ) {
626
599
  impl = executeGlobalStateAccess;
627
600
  } else if (opcode == Instructions.READ_PRE_IMAGE) {
@@ -39,18 +39,16 @@ contract OneStepProverMath is IOneStepProver {
39
39
  mach.valueStack.push(ValueLib.newI32(output));
40
40
  }
41
41
 
42
- function signExtend(uint32 a) internal pure returns (uint64) {
42
+ function signExtend(
43
+ uint32 a
44
+ ) internal pure returns (uint64) {
43
45
  if (a & (1 << 31) != 0) {
44
46
  return uint64(a) | uint64(0xffffffff00000000);
45
47
  }
46
48
  return uint64(a);
47
49
  }
48
50
 
49
- function i64RelOp(
50
- uint64 a,
51
- uint64 b,
52
- uint16 relop
53
- ) internal pure returns (bool) {
51
+ function i64RelOp(uint64 a, uint64 b, uint16 relop) internal pure returns (bool) {
54
52
  if (relop == Instructions.IRELOP_EQ) {
55
53
  return (a == b);
56
54
  } else if (relop == Instructions.IRELOP_NE) {
@@ -90,10 +88,8 @@ contract OneStepProverMath is IOneStepProver {
90
88
  uint64 b64;
91
89
 
92
90
  if (
93
- relop == Instructions.IRELOP_LT_S ||
94
- relop == Instructions.IRELOP_GT_S ||
95
- relop == Instructions.IRELOP_LE_S ||
96
- relop == Instructions.IRELOP_GE_S
91
+ relop == Instructions.IRELOP_LT_S || relop == Instructions.IRELOP_GT_S
92
+ || relop == Instructions.IRELOP_LE_S || relop == Instructions.IRELOP_GE_S
97
93
  ) {
98
94
  a64 = signExtend(a);
99
95
  b64 = signExtend(b);
@@ -123,11 +119,7 @@ contract OneStepProverMath is IOneStepProver {
123
119
  mach.valueStack.push(ValueLib.newBoolean(res));
124
120
  }
125
121
 
126
- function genericIUnOp(
127
- uint64 a,
128
- uint16 unop,
129
- uint16 bits
130
- ) internal pure returns (uint32) {
122
+ function genericIUnOp(uint64 a, uint16 unop, uint16 bits) internal pure returns (uint32) {
131
123
  require(bits == 32 || bits == 64, "WRONG USE OF genericUnOp");
132
124
  if (unop == Instructions.IUNOP_CLZ) {
133
125
  /* curbits is one-based to keep with unsigned mathematics */
@@ -480,25 +472,25 @@ contract OneStepProverMath is IOneStepProver {
480
472
  if (opcode == Instructions.I32_EQZ || opcode == Instructions.I64_EQZ) {
481
473
  impl = executeEqz;
482
474
  } else if (
483
- opcode >= Instructions.I32_RELOP_BASE &&
484
- opcode <= Instructions.I32_RELOP_BASE + Instructions.IRELOP_LAST
475
+ opcode >= Instructions.I32_RELOP_BASE
476
+ && opcode <= Instructions.I32_RELOP_BASE + Instructions.IRELOP_LAST
485
477
  ) {
486
478
  impl = executeI32RelOp;
487
479
  } else if (
488
- opcode >= Instructions.I32_UNOP_BASE &&
489
- opcode <= Instructions.I32_UNOP_BASE + Instructions.IUNOP_LAST
480
+ opcode >= Instructions.I32_UNOP_BASE
481
+ && opcode <= Instructions.I32_UNOP_BASE + Instructions.IUNOP_LAST
490
482
  ) {
491
483
  impl = executeI32UnOp;
492
484
  } else if (opcode >= Instructions.I32_ADD && opcode <= Instructions.I32_ROTR) {
493
485
  impl = executeI32BinOp;
494
486
  } else if (
495
- opcode >= Instructions.I64_RELOP_BASE &&
496
- opcode <= Instructions.I64_RELOP_BASE + Instructions.IRELOP_LAST
487
+ opcode >= Instructions.I64_RELOP_BASE
488
+ && opcode <= Instructions.I64_RELOP_BASE + Instructions.IRELOP_LAST
497
489
  ) {
498
490
  impl = executeI64RelOp;
499
491
  } else if (
500
- opcode >= Instructions.I64_UNOP_BASE &&
501
- opcode <= Instructions.I64_UNOP_BASE + Instructions.IUNOP_LAST
492
+ opcode >= Instructions.I64_UNOP_BASE
493
+ && opcode <= Instructions.I64_UNOP_BASE + Instructions.IUNOP_LAST
502
494
  ) {
503
495
  impl = executeI64UnOp;
504
496
  } else if (opcode >= Instructions.I64_ADD && opcode <= Instructions.I64_ROTR) {
@@ -19,11 +19,7 @@ contract OneStepProverMemory is IOneStepProver {
19
19
  uint256 private constant LEAF_SIZE = 32;
20
20
  uint64 private constant PAGE_SIZE = 65536;
21
21
 
22
- function setLeafByte(
23
- bytes32 oldLeaf,
24
- uint256 idx,
25
- uint8 val
26
- ) internal pure returns (bytes32) {
22
+ function setLeafByte(bytes32 oldLeaf, uint256 idx, uint8 val) internal pure returns (bytes32) {
27
23
  require(idx < LEAF_SIZE, "BAD_SET_LEAF_BYTE_IDX");
28
24
  // Take into account that we are casting the leaf to a big-endian integer
29
25
  uint256 leafShift = (LEAF_SIZE - 1 - idx) * 8;
@@ -103,7 +99,7 @@ contract OneStepProverMemory is IOneStepProver {
103
99
  }
104
100
 
105
101
  uint256 index = inst.argumentData + mach.valueStack.pop().assumeI32();
106
- (bool err, uint256 value, ) = mod.moduleMemory.load(index, readBytes, proof, 0);
102
+ (bool err, uint256 value,) = mod.moduleMemory.load(index, readBytes, proof, 0);
107
103
  if (err) {
108
104
  mach.status = MachineStatus.ERRORED;
109
105
  return;
@@ -197,31 +193,21 @@ contract OneStepProverMemory is IOneStepProver {
197
193
  if (lastProvedLeafIdx != ~uint256(0)) {
198
194
  // Apply the last leaf update
199
195
  mod.moduleMemory.merkleRoot = lastProvedMerkle.computeRootFromMemory(
200
- lastProvedLeafIdx,
201
- lastProvedLeafContents
196
+ lastProvedLeafIdx, lastProvedLeafContents
202
197
  );
203
198
  }
204
199
  // This hits the stack size if we phrase it as mod.moduleMemory.proveLeaf(...)
205
- (lastProvedLeafContents, proofOffset, lastProvedMerkle) = ModuleMemoryLib.proveLeaf(
206
- mod.moduleMemory,
207
- leafIdx,
208
- proof,
209
- proofOffset
210
- );
200
+ (lastProvedLeafContents, proofOffset, lastProvedMerkle) =
201
+ ModuleMemoryLib.proveLeaf(mod.moduleMemory, leafIdx, proof, proofOffset);
211
202
  lastProvedLeafIdx = leafIdx;
212
203
  }
213
204
  uint256 indexWithinLeaf = idx % LEAF_SIZE;
214
- lastProvedLeafContents = setLeafByte(
215
- lastProvedLeafContents,
216
- indexWithinLeaf,
217
- uint8(toWrite)
218
- );
205
+ lastProvedLeafContents =
206
+ setLeafByte(lastProvedLeafContents, indexWithinLeaf, uint8(toWrite));
219
207
  toWrite >>= 8;
220
208
  }
221
- mod.moduleMemory.merkleRoot = lastProvedMerkle.computeRootFromMemory(
222
- lastProvedLeafIdx,
223
- lastProvedLeafContents
224
- );
209
+ mod.moduleMemory.merkleRoot =
210
+ lastProvedMerkle.computeRootFromMemory(lastProvedLeafIdx, lastProvedLeafContents);
225
211
  }
226
212
 
227
213
  function executeMemorySize(
@@ -14,14 +14,18 @@ interface ArbAddressTable {
14
14
  * @param addr address to check for presence in table
15
15
  * @return true if address is in table
16
16
  */
17
- function addressExists(address addr) external view returns (bool);
17
+ function addressExists(
18
+ address addr
19
+ ) external view returns (bool);
18
20
 
19
21
  /**
20
22
  * @notice compress an address and return the result
21
23
  * @param addr address to compress
22
24
  * @return compressed address bytes
23
25
  */
24
- function compress(address addr) external returns (bytes memory);
26
+ function compress(
27
+ address addr
28
+ ) external returns (bytes memory);
25
29
 
26
30
  /**
27
31
  * @notice read a compressed address from a bytes buffer
@@ -29,29 +33,35 @@ interface ArbAddressTable {
29
33
  * @param offset offset of target address
30
34
  * @return resulting address and updated offset into the buffer (revert if buffer is too short)
31
35
  */
32
- function decompress(bytes calldata buf, uint256 offset)
33
- external
34
- view
35
- returns (address, uint256);
36
+ function decompress(
37
+ bytes calldata buf,
38
+ uint256 offset
39
+ ) external view returns (address, uint256);
36
40
 
37
41
  /**
38
42
  * @param addr address to lookup
39
43
  * @return index of an address in the address table (revert if address isn't in the table)
40
44
  */
41
- function lookup(address addr) external view returns (uint256);
45
+ function lookup(
46
+ address addr
47
+ ) external view returns (uint256);
42
48
 
43
49
  /**
44
50
  * @param index index to lookup address
45
51
  * @return address at a given index in address table (revert if index is beyond end of table)
46
52
  */
47
- function lookupIndex(uint256 index) external view returns (address);
53
+ function lookupIndex(
54
+ uint256 index
55
+ ) external view returns (address);
48
56
 
49
57
  /**
50
58
  * @notice Register an address in the address table
51
59
  * @param addr address to register
52
60
  * @return index of the address (existing index, or newly created index if not already registered)
53
61
  */
54
- function register(address addr) external returns (uint256);
62
+ function register(
63
+ address addr
64
+ ) external returns (uint256);
55
65
 
56
66
  /**
57
67
  * @return size of address table (= first unused index)
@@ -11,7 +11,9 @@ interface ArbAggregator {
11
11
  /// @notice Get the address of an arbitrarily chosen batch poster.
12
12
  /// @param addr ignored
13
13
  /// @return (batchPosterAddress, true)
14
- function getPreferredAggregator(address addr) external view returns (address, bool);
14
+ function getPreferredAggregator(
15
+ address addr
16
+ ) external view returns (address, bool);
15
17
 
16
18
  /// @notice Deprecated, there is no longer a single preferred aggregator, use getBatchPosters instead
17
19
  /// @notice Get default aggregator.
@@ -24,12 +26,16 @@ interface ArbAggregator {
24
26
  /// @notice Adds newBatchPoster as a batch poster
25
27
  /// This reverts unless called by a chain owner
26
28
  /// @param newBatchPoster New batch poster
27
- function addBatchPoster(address newBatchPoster) external;
29
+ function addBatchPoster(
30
+ address newBatchPoster
31
+ ) external;
28
32
 
29
33
  /// @notice Get the address where fees to batchPoster are sent.
30
34
  /// @param batchPoster The batch poster to get the fee collector for
31
35
  /// @return The fee collectors address. This will sometimes but not always be the same as the batch poster's address.
32
- function getFeeCollector(address batchPoster) external view returns (address);
36
+ function getFeeCollector(
37
+ address batchPoster
38
+ ) external view returns (address);
33
39
 
34
40
  /// @notice Set the address where fees to batchPoster are sent.
35
41
  /// This reverts unless called by the batch poster, its fee collector, or a chain owner
@@ -40,7 +46,9 @@ interface ArbAggregator {
40
46
  /// @notice Deprecated, always returns zero
41
47
  /// @notice Get the tx base fee (in approximate L1 gas) for aggregator
42
48
  /// @param aggregator The aggregator to get the base fee for
43
- function getTxBaseFee(address aggregator) external view returns (uint256);
49
+ function getTxBaseFee(
50
+ address aggregator
51
+ ) external view returns (uint256);
44
52
 
45
53
  /// @notice Deprecated, is now a no-op
46
54
  /// @notice Set the tx base fee (in approximate L1 gas) for aggregator
@@ -6,6 +6,4 @@ pragma solidity >=0.4.21 <0.9.0;
6
6
 
7
7
  /// @title Disabled precompile, formerly used to register BLS public keys.
8
8
  /// @notice Precompiled contract that exists in every Arbitrum chain at 0x0000000000000000000000000000000000000067.
9
- interface ArbBLS {
10
-
11
- }
9
+ interface ArbBLS {}
@@ -21,21 +21,15 @@ interface ArbDebug {
21
21
  // Events that exist for testing log creation and pricing
22
22
  event Basic(bool flag, bytes32 indexed value);
23
23
  event Mixed(
24
- bool indexed flag,
25
- bool not,
26
- bytes32 indexed value,
27
- address conn,
28
- address indexed caller
24
+ bool indexed flag, bool not, bytes32 indexed value, address conn, address indexed caller
29
25
  );
30
26
  event Store(
31
- bool indexed flag,
32
- address indexed field,
33
- uint24 number,
34
- bytes32 value,
35
- bytes store
27
+ bool indexed flag, address indexed field, uint24 number, bytes32 value, bytes store
36
28
  );
37
29
 
38
- function customRevert(uint64 number) external pure;
30
+ function customRevert(
31
+ uint64 number
32
+ ) external pure;
39
33
 
40
34
  function panic() external;
41
35
 
@@ -12,18 +12,15 @@ pragma solidity >=0.4.21 <0.9.0;
12
12
  /// Precompiled contract that exists in every Arbitrum chain at 0x0000000000000000000000000000000000000068.
13
13
  interface ArbFunctionTable {
14
14
  /// @notice Reverts since the table is empty
15
- function upload(bytes calldata buf) external;
15
+ function upload(
16
+ bytes calldata buf
17
+ ) external;
16
18
 
17
19
  /// @notice Returns the empty table's size, which is 0
18
- function size(address addr) external view returns (uint256);
20
+ function size(
21
+ address addr
22
+ ) external view returns (uint256);
19
23
 
20
24
  /// @notice No-op
21
- function get(address addr, uint256 index)
22
- external
23
- view
24
- returns (
25
- uint256,
26
- bool,
27
- uint256
28
- );
25
+ function get(address addr, uint256 index) external view returns (uint256, bool, uint256);
29
26
  }
@@ -19,17 +19,9 @@ interface ArbGasInfo {
19
19
  /// per ArbGas congestion,
20
20
  /// per ArbGas total
21
21
  /// )
22
- function getPricesInWeiWithAggregator(address aggregator)
23
- external
24
- view
25
- returns (
26
- uint256,
27
- uint256,
28
- uint256,
29
- uint256,
30
- uint256,
31
- uint256
32
- );
22
+ function getPricesInWeiWithAggregator(
23
+ address aggregator
24
+ ) external view returns (uint256, uint256, uint256, uint256, uint256, uint256);
33
25
 
34
26
  /// @notice Get gas prices. Uses the caller's preferred aggregator, or the default if the caller doesn't have a preferred one.
35
27
  /// @return return gas prices in wei
@@ -44,47 +36,21 @@ interface ArbGasInfo {
44
36
  function getPricesInWei()
45
37
  external
46
38
  view
47
- returns (
48
- uint256,
49
- uint256,
50
- uint256,
51
- uint256,
52
- uint256,
53
- uint256
54
- );
39
+ returns (uint256, uint256, uint256, uint256, uint256, uint256);
55
40
 
56
41
  /// @notice Get prices in ArbGas for the supplied aggregator
57
42
  /// @return (per L2 tx, per L1 calldata byte, per storage allocation)
58
- function getPricesInArbGasWithAggregator(address aggregator)
59
- external
60
- view
61
- returns (
62
- uint256,
63
- uint256,
64
- uint256
65
- );
43
+ function getPricesInArbGasWithAggregator(
44
+ address aggregator
45
+ ) external view returns (uint256, uint256, uint256);
66
46
 
67
47
  /// @notice Get prices in ArbGas. Assumes the callers preferred validator, or the default if caller doesn't have a preferred one.
68
48
  /// @return (per L2 tx, per L1 calldata byte, per storage allocation)
69
- function getPricesInArbGas()
70
- external
71
- view
72
- returns (
73
- uint256,
74
- uint256,
75
- uint256
76
- );
49
+ function getPricesInArbGas() external view returns (uint256, uint256, uint256);
77
50
 
78
51
  /// @notice Get the gas accounting parameters. `gasPoolMax` is always zero, as the exponential pricing model has no such notion.
79
52
  /// @return (speedLimitPerSecond, gasPoolMax, maxTxGasLimit)
80
- function getGasAccountingParams()
81
- external
82
- view
83
- returns (
84
- uint256,
85
- uint256,
86
- uint256
87
- );
53
+ function getGasAccountingParams() external view returns (uint256, uint256, uint256);
88
54
 
89
55
  /// @notice Get the minimum gas price needed for a tx to succeed
90
56
  function getMinimumGasPrice() external view returns (uint256);
@@ -8,8 +8,12 @@ pragma solidity >=0.4.21 <0.9.0;
8
8
  /// @notice Precompiled contract that exists in every Arbitrum chain at 0x0000000000000000000000000000000000000065.
9
9
  interface ArbInfo {
10
10
  /// @notice Retrieves an account's balance
11
- function getBalance(address account) external view returns (uint256);
11
+ function getBalance(
12
+ address account
13
+ ) external view returns (uint256);
12
14
 
13
15
  /// @notice Retrieves a contract's deployed code
14
- function getCode(address account) external view returns (bytes memory);
16
+ function getCode(
17
+ address account
18
+ ) external view returns (bytes memory);
15
19
  }