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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (503) hide show
  1. package/build/contracts/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json +1 -1
  2. package/build/contracts/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.dbg.json +1 -1
  3. package/build/contracts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.dbg.json +1 -1
  4. package/build/contracts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.json +2 -2
  5. package/build/contracts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.dbg.json +1 -1
  6. package/build/contracts/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.dbg.json +1 -1
  7. package/build/contracts/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.dbg.json +1 -1
  8. package/build/contracts/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol/UpgradeableBeacon.dbg.json +1 -1
  9. package/build/contracts/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol/UpgradeableBeacon.json +2 -2
  10. package/build/contracts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.dbg.json +1 -1
  11. package/build/contracts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.json +2 -2
  12. package/build/contracts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.dbg.json +1 -1
  13. package/build/contracts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +2 -2
  14. package/build/contracts/@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol/UUPSUpgradeable.dbg.json +1 -1
  15. package/build/contracts/@openzeppelin/contracts/security/ReentrancyGuard.sol/ReentrancyGuard.dbg.json +1 -1
  16. package/build/contracts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json +1 -1
  17. package/build/contracts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json +2 -2
  18. package/build/contracts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json +1 -1
  19. package/build/contracts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json +1 -1
  20. package/build/contracts/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.dbg.json +4 -0
  21. package/build/contracts/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.json +86 -0
  22. package/build/contracts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.dbg.json +1 -1
  23. package/build/contracts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.json +2 -2
  24. package/build/contracts/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json +1 -1
  25. package/build/contracts/@openzeppelin/contracts/utils/Address.sol/Address.json +2 -2
  26. package/build/contracts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json +1 -1
  27. package/build/contracts/@openzeppelin/contracts/utils/Create2.sol/Create2.dbg.json +4 -0
  28. package/build/contracts/@openzeppelin/contracts/utils/Create2.sol/Create2.json +10 -0
  29. package/build/contracts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.dbg.json +1 -1
  30. package/build/contracts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.json +2 -2
  31. package/build/contracts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json +1 -1
  32. package/build/contracts/@openzeppelin/contracts/utils/Strings.sol/Strings.json +2 -2
  33. package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol/AccessControlUpgradeable.dbg.json +1 -1
  34. package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol/AccessControlUpgradeable.json +13 -0
  35. package/build/contracts/@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol/IAccessControlUpgradeable.dbg.json +1 -1
  36. package/build/contracts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.dbg.json +1 -1
  37. package/build/contracts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.json +13 -0
  38. package/build/contracts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.dbg.json +1 -1
  39. package/build/contracts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.json +15 -1
  40. package/build/contracts/@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol/PausableUpgradeable.dbg.json +1 -1
  41. package/build/contracts/@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol/PausableUpgradeable.json +13 -0
  42. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.dbg.json +1 -1
  43. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.json +2 -2
  44. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.dbg.json +1 -1
  45. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.json +15 -1
  46. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/Create2Upgradeable.sol/Create2Upgradeable.dbg.json +4 -0
  47. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/Create2Upgradeable.sol/Create2Upgradeable.json +10 -0
  48. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol/StorageSlotUpgradeable.dbg.json +1 -1
  49. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol/StorageSlotUpgradeable.json +2 -2
  50. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol/StringsUpgradeable.dbg.json +1 -1
  51. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol/StringsUpgradeable.json +2 -2
  52. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol/ERC165Upgradeable.dbg.json +1 -1
  53. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol/ERC165Upgradeable.json +13 -0
  54. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol/IERC165Upgradeable.dbg.json +1 -1
  55. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/structs/EnumerableSetUpgradeable.sol/EnumerableSetUpgradeable.dbg.json +4 -0
  56. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/structs/EnumerableSetUpgradeable.sol/EnumerableSetUpgradeable.json +10 -0
  57. package/build/contracts/src/assertionStakingPool/AbsBoldStakingPool.sol/AbsBoldStakingPool.dbg.json +4 -0
  58. package/build/contracts/{@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.json → src/assertionStakingPool/AbsBoldStakingPool.sol/AbsBoldStakingPool.json} +41 -95
  59. package/build/contracts/src/assertionStakingPool/AssertionStakingPool.sol/AssertionStakingPool.dbg.json +4 -0
  60. package/build/contracts/src/assertionStakingPool/AssertionStakingPool.sol/AssertionStakingPool.json +340 -0
  61. package/build/contracts/src/assertionStakingPool/AssertionStakingPoolCreator.sol/AssertionStakingPoolCreator.dbg.json +4 -0
  62. package/build/contracts/src/assertionStakingPool/AssertionStakingPoolCreator.sol/AssertionStakingPoolCreator.json +89 -0
  63. package/build/contracts/src/assertionStakingPool/EdgeStakingPool.sol/EdgeStakingPool.dbg.json +4 -0
  64. package/build/contracts/src/assertionStakingPool/EdgeStakingPool.sol/EdgeStakingPool.json +248 -0
  65. package/build/contracts/src/assertionStakingPool/EdgeStakingPoolCreator.sol/EdgeStakingPoolCreator.dbg.json +4 -0
  66. package/build/contracts/src/assertionStakingPool/EdgeStakingPoolCreator.sol/EdgeStakingPoolCreator.json +83 -0
  67. package/build/contracts/src/assertionStakingPool/StakingPoolCreatorUtils.sol/StakingPoolCreatorUtils.dbg.json +4 -0
  68. package/build/contracts/src/assertionStakingPool/StakingPoolCreatorUtils.sol/StakingPoolCreatorUtils.json +16 -0
  69. package/build/contracts/src/assertionStakingPool/interfaces/IAbsBoldStakingPool.sol/IAbsBoldStakingPool.dbg.json +4 -0
  70. package/build/contracts/src/assertionStakingPool/interfaces/IAbsBoldStakingPool.sol/IAbsBoldStakingPool.json +140 -0
  71. package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPool.sol/IAssertionStakingPool.dbg.json +4 -0
  72. package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPool.sol/IAssertionStakingPool.json +324 -0
  73. package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPoolCreator.sol/IAssertionStakingPoolCreator.dbg.json +4 -0
  74. package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPoolCreator.sol/IAssertionStakingPoolCreator.json +84 -0
  75. package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPool.sol/IEdgeStakingPool.dbg.json +4 -0
  76. package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPool.sol/IEdgeStakingPool.json +232 -0
  77. package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPoolCreator.sol/IEdgeStakingPoolCreator.dbg.json +4 -0
  78. package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPoolCreator.sol/IEdgeStakingPoolCreator.json +78 -0
  79. package/build/contracts/src/bridge/AbsBridge.sol/AbsBridge.dbg.json +1 -1
  80. package/build/contracts/src/bridge/AbsBridge.sol/AbsBridge.json +13 -0
  81. package/build/contracts/src/bridge/AbsInbox.sol/AbsInbox.dbg.json +1 -1
  82. package/build/contracts/src/bridge/AbsInbox.sol/AbsInbox.json +20 -7
  83. package/build/contracts/src/bridge/AbsOutbox.sol/AbsOutbox.dbg.json +1 -1
  84. package/build/contracts/src/bridge/Bridge.sol/Bridge.dbg.json +1 -1
  85. package/build/contracts/src/bridge/Bridge.sol/Bridge.json +15 -2
  86. package/build/contracts/src/bridge/DelayBuffer.sol/DelayBuffer.dbg.json +4 -0
  87. package/build/contracts/src/bridge/DelayBuffer.sol/DelayBuffer.json +24 -0
  88. package/build/contracts/src/bridge/ERC20Bridge.sol/ERC20Bridge.dbg.json +1 -1
  89. package/build/contracts/src/bridge/ERC20Bridge.sol/ERC20Bridge.json +15 -2
  90. package/build/contracts/src/bridge/ERC20Inbox.sol/ERC20Inbox.dbg.json +1 -1
  91. package/build/contracts/src/bridge/ERC20Inbox.sol/ERC20Inbox.json +22 -9
  92. package/build/contracts/src/bridge/ERC20Outbox.sol/ERC20Outbox.dbg.json +1 -1
  93. package/build/contracts/src/bridge/ERC20Outbox.sol/ERC20Outbox.json +2 -2
  94. package/build/contracts/src/bridge/GasRefunder.sol/GasRefunder.dbg.json +1 -1
  95. package/build/contracts/src/bridge/GasRefunder.sol/GasRefunder.json +2 -2
  96. package/build/contracts/src/bridge/IBridge.sol/IBridge.dbg.json +1 -1
  97. package/build/contracts/src/bridge/IDelayedMessageProvider.sol/IDelayedMessageProvider.dbg.json +1 -1
  98. package/build/contracts/src/bridge/IERC20Bridge.sol/IERC20Bridge.dbg.json +1 -1
  99. package/build/contracts/src/bridge/IERC20Inbox.sol/IERC20Inbox.dbg.json +1 -1
  100. package/build/contracts/src/bridge/IERC20Inbox.sol/IERC20Inbox.json +1 -1
  101. package/build/contracts/src/bridge/IEthBridge.sol/IEthBridge.dbg.json +1 -1
  102. package/build/contracts/src/bridge/IInbox.sol/IInbox.dbg.json +1 -1
  103. package/build/contracts/src/bridge/IInbox.sol/IInbox.json +1 -1
  104. package/build/contracts/src/bridge/IInboxBase.sol/IInboxBase.dbg.json +1 -1
  105. package/build/contracts/src/bridge/IInboxBase.sol/IInboxBase.json +1 -1
  106. package/build/contracts/src/bridge/IOutbox.sol/IOutbox.dbg.json +1 -1
  107. package/build/contracts/src/bridge/IOwnable.sol/IOwnable.dbg.json +1 -1
  108. package/build/contracts/src/bridge/ISequencerInbox.sol/ISequencerInbox.dbg.json +1 -1
  109. package/build/contracts/src/bridge/ISequencerInbox.sol/ISequencerInbox.json +441 -0
  110. package/build/contracts/src/bridge/Inbox.sol/Inbox.dbg.json +1 -1
  111. package/build/contracts/src/bridge/Inbox.sol/Inbox.json +22 -4
  112. package/build/contracts/src/bridge/Messages.sol/Messages.dbg.json +1 -1
  113. package/build/contracts/src/bridge/Messages.sol/Messages.json +2 -2
  114. package/build/contracts/src/bridge/Outbox.sol/Outbox.dbg.json +1 -1
  115. package/build/contracts/src/bridge/Outbox.sol/Outbox.json +2 -2
  116. package/build/contracts/src/bridge/SequencerInbox.sol/SequencerInbox.dbg.json +1 -1
  117. package/build/contracts/src/bridge/SequencerInbox.sol/SequencerInbox.json +564 -7
  118. package/build/contracts/src/chain/CacheManager.sol/CacheManager.dbg.json +1 -1
  119. package/build/contracts/src/chain/CacheManager.sol/CacheManager.json +15 -2
  120. package/build/contracts/src/challengeV2/EdgeChallengeManager.sol/EdgeChallengeManager.dbg.json +4 -0
  121. package/build/contracts/src/challengeV2/EdgeChallengeManager.sol/EdgeChallengeManager.json +1631 -0
  122. package/build/contracts/src/challengeV2/EdgeChallengeManager.sol/IEdgeChallengeManager.dbg.json +4 -0
  123. package/build/contracts/src/challengeV2/EdgeChallengeManager.sol/IEdgeChallengeManager.json +762 -0
  124. package/build/contracts/src/challengeV2/IAssertionChain.sol/IAssertionChain.dbg.json +4 -0
  125. package/build/contracts/src/challengeV2/IAssertionChain.sol/IAssertionChain.json +247 -0
  126. package/build/contracts/src/challengeV2/libraries/ArrayUtilsLib.sol/ArrayUtilsLib.dbg.json +4 -0
  127. package/build/contracts/src/challengeV2/libraries/ArrayUtilsLib.sol/ArrayUtilsLib.json +10 -0
  128. package/build/contracts/src/challengeV2/libraries/ChallengeEdgeLib.sol/ChallengeEdgeLib.dbg.json +4 -0
  129. package/build/contracts/src/challengeV2/libraries/ChallengeEdgeLib.sol/ChallengeEdgeLib.json +10 -0
  130. package/build/contracts/src/challengeV2/libraries/EdgeChallengeManagerLib.sol/EdgeChallengeManagerLib.dbg.json +4 -0
  131. package/build/contracts/src/challengeV2/libraries/EdgeChallengeManagerLib.sol/EdgeChallengeManagerLib.json +24 -0
  132. package/build/contracts/src/challengeV2/libraries/MerkleTreeAccumulatorLib.sol/MerkleTreeAccumulatorLib.dbg.json +4 -0
  133. package/build/contracts/src/challengeV2/libraries/MerkleTreeAccumulatorLib.sol/MerkleTreeAccumulatorLib.json +24 -0
  134. package/build/contracts/src/challengeV2/libraries/UintUtilsLib.sol/UintUtilsLib.dbg.json +4 -0
  135. package/build/contracts/src/challengeV2/libraries/UintUtilsLib.sol/UintUtilsLib.json +10 -0
  136. package/build/contracts/src/libraries/AddressAliasHelper.sol/AddressAliasHelper.dbg.json +1 -1
  137. package/build/contracts/src/libraries/AddressAliasHelper.sol/AddressAliasHelper.json +2 -2
  138. package/build/contracts/src/libraries/AdminFallbackProxy.sol/AdminFallbackProxy.dbg.json +1 -1
  139. package/build/contracts/src/libraries/AdminFallbackProxy.sol/AdminFallbackProxy.json +2 -2
  140. package/build/contracts/src/libraries/AdminFallbackProxy.sol/DoubleLogicERC1967Upgrade.dbg.json +1 -1
  141. package/build/contracts/src/libraries/ArbitrumChecker.sol/ArbitrumChecker.dbg.json +1 -1
  142. package/build/contracts/src/libraries/ArbitrumChecker.sol/ArbitrumChecker.json +2 -2
  143. package/build/contracts/src/libraries/CryptographyPrimitives.sol/CryptographyPrimitives.dbg.json +1 -1
  144. package/build/contracts/src/libraries/CryptographyPrimitives.sol/CryptographyPrimitives.json +2 -2
  145. package/build/contracts/src/libraries/DecimalsConverterHelper.sol/DecimalsConverterHelper.dbg.json +1 -1
  146. package/build/contracts/src/libraries/DecimalsConverterHelper.sol/DecimalsConverterHelper.json +2 -2
  147. package/build/contracts/src/libraries/DelegateCallAware.sol/DelegateCallAware.dbg.json +1 -1
  148. package/build/contracts/src/libraries/DoubleLogicUUPSUpgradeable.sol/DoubleLogicUUPSUpgradeable.dbg.json +1 -1
  149. package/build/contracts/src/libraries/GasRefundEnabled.sol/GasRefundEnabled.dbg.json +1 -1
  150. package/build/contracts/src/libraries/IGasRefunder.sol/IGasRefunder.dbg.json +1 -1
  151. package/build/contracts/src/libraries/IReader4844.sol/IReader4844.dbg.json +1 -1
  152. package/build/contracts/src/libraries/MerkleLib.sol/MerkleLib.dbg.json +1 -1
  153. package/build/contracts/src/libraries/MerkleLib.sol/MerkleLib.json +2 -2
  154. package/build/contracts/src/libraries/UUPSNotUpgradeable.sol/UUPSNotUpgradeable.dbg.json +1 -1
  155. package/build/contracts/src/mocks/Benchmarks.sol/Benchmarks.dbg.json +1 -1
  156. package/build/contracts/src/mocks/Benchmarks.sol/Benchmarks.json +2 -2
  157. package/build/contracts/src/mocks/BridgeStub.sol/BridgeStub.dbg.json +1 -1
  158. package/build/contracts/src/mocks/BridgeStub.sol/BridgeStub.json +8 -8
  159. package/build/contracts/src/mocks/BridgeUnproxied.sol/BridgeUnproxied.dbg.json +1 -1
  160. package/build/contracts/src/mocks/BridgeUnproxied.sol/BridgeUnproxied.json +28 -2
  161. package/build/contracts/src/mocks/InboxStub.sol/InboxStub.dbg.json +1 -1
  162. package/build/contracts/src/mocks/InboxStub.sol/InboxStub.json +2 -2
  163. package/build/contracts/src/mocks/MerkleTreeAccess.sol/MerkleTreeAccess.dbg.json +4 -0
  164. package/build/contracts/src/mocks/MerkleTreeAccess.sol/MerkleTreeAccess.json +227 -0
  165. package/build/contracts/src/mocks/MockRollupEventInbox.sol/MockRollupEventInbox.dbg.json +4 -0
  166. package/build/contracts/src/mocks/MockRollupEventInbox.sol/MockRollupEventInbox.json +133 -0
  167. package/build/contracts/src/mocks/MultiCallTest.sol/MultiCallTest.dbg.json +1 -1
  168. package/build/contracts/src/mocks/MultiCallTest.sol/MultiCallTest.json +2 -2
  169. package/build/contracts/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol/PendingBlkTimeAndNrAdvanceCheck.dbg.json +1 -1
  170. package/build/contracts/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol/PendingBlkTimeAndNrAdvanceCheck.json +2 -2
  171. package/build/contracts/src/mocks/Program.sol/ProgramTest.dbg.json +1 -1
  172. package/build/contracts/src/mocks/Program.sol/ProgramTest.json +2 -2
  173. package/build/contracts/src/mocks/ProxyAdminForBinding.sol/ProxyAdminForBinding.dbg.json +1 -1
  174. package/build/contracts/src/mocks/ProxyAdminForBinding.sol/ProxyAdminForBinding.json +2 -2
  175. package/build/contracts/src/mocks/SdkStorage.sol/SdkStorage.dbg.json +1 -1
  176. package/build/contracts/src/mocks/SdkStorage.sol/SdkStorage.json +2 -2
  177. package/build/contracts/src/mocks/SequencerInboxBlobMock.sol/SequencerInboxBlobMock.dbg.json +4 -0
  178. package/build/contracts/src/mocks/SequencerInboxBlobMock.sol/SequencerInboxBlobMock.json +1632 -0
  179. package/build/contracts/src/mocks/SequencerInboxStub.sol/SequencerInboxStub.dbg.json +1 -1
  180. package/build/contracts/src/mocks/SequencerInboxStub.sol/SequencerInboxStub.json +564 -7
  181. package/build/contracts/src/mocks/Simple.sol/Simple.dbg.json +1 -1
  182. package/build/contracts/src/mocks/Simple.sol/Simple.json +2 -2
  183. package/build/contracts/src/mocks/SimpleCacheManager.sol/SimpleCacheManager.dbg.json +1 -1
  184. package/build/contracts/src/mocks/SimpleCacheManager.sol/SimpleCacheManager.json +2 -2
  185. package/build/contracts/src/mocks/SimpleOneStepProofEntry.sol/SimpleOneStepProofEntry.dbg.json +4 -0
  186. package/build/contracts/src/mocks/SimpleOneStepProofEntry.sol/SimpleOneStepProofEntry.json +142 -0
  187. package/build/contracts/src/mocks/SimpleProxy.sol/SimpleProxy.dbg.json +1 -1
  188. package/build/contracts/src/mocks/SimpleProxy.sol/SimpleProxy.json +2 -2
  189. package/build/contracts/src/mocks/TestWETH9.sol/IWETH9.dbg.json +4 -0
  190. package/build/contracts/src/mocks/TestWETH9.sol/IWETH9.json +31 -0
  191. package/build/contracts/src/mocks/TestWETH9.sol/TestWETH9.dbg.json +4 -0
  192. package/build/contracts/src/mocks/TestWETH9.sol/TestWETH9.json +317 -0
  193. package/build/contracts/src/mocks/UpgradeExecutorMock.sol/UpgradeExecutorMock.dbg.json +1 -1
  194. package/build/contracts/src/mocks/UpgradeExecutorMock.sol/UpgradeExecutorMock.json +15 -2
  195. package/build/contracts/src/node-interface/NodeInterface.sol/NodeInterface.dbg.json +1 -1
  196. package/build/contracts/src/node-interface/NodeInterfaceDebug.sol/NodeInterfaceDebug.dbg.json +1 -1
  197. package/build/contracts/src/osp/HashProofHelper.sol/HashProofHelper.dbg.json +1 -1
  198. package/build/contracts/src/osp/HashProofHelper.sol/HashProofHelper.json +2 -2
  199. package/build/contracts/src/osp/IOneStepProofEntry.sol/IOneStepProofEntry.dbg.json +1 -1
  200. package/build/contracts/src/osp/IOneStepProofEntry.sol/IOneStepProofEntry.json +33 -9
  201. package/build/contracts/src/osp/IOneStepProofEntry.sol/OneStepProofEntryLib.dbg.json +1 -1
  202. package/build/contracts/src/osp/IOneStepProofEntry.sol/OneStepProofEntryLib.json +2 -2
  203. package/build/contracts/src/osp/IOneStepProver.sol/IOneStepProver.dbg.json +1 -1
  204. package/build/contracts/src/osp/IOneStepProver.sol/IOneStepProver.json +5 -0
  205. package/build/contracts/src/osp/OneStepProofEntry.sol/OneStepProofEntry.dbg.json +1 -1
  206. package/build/contracts/src/osp/OneStepProofEntry.sol/OneStepProofEntry.json +35 -11
  207. package/build/contracts/src/osp/OneStepProver0.sol/OneStepProver0.dbg.json +1 -1
  208. package/build/contracts/src/osp/OneStepProver0.sol/OneStepProver0.json +7 -2
  209. package/build/contracts/src/osp/OneStepProverHostIo.sol/OneStepProverHostIo.dbg.json +1 -1
  210. package/build/contracts/src/osp/OneStepProverHostIo.sol/OneStepProverHostIo.json +7 -2
  211. package/build/contracts/src/osp/OneStepProverMath.sol/OneStepProverMath.dbg.json +1 -1
  212. package/build/contracts/src/osp/OneStepProverMath.sol/OneStepProverMath.json +7 -2
  213. package/build/contracts/src/osp/OneStepProverMemory.sol/OneStepProverMemory.dbg.json +1 -1
  214. package/build/contracts/src/osp/OneStepProverMemory.sol/OneStepProverMemory.json +7 -2
  215. package/build/contracts/src/precompiles/ArbAddressTable.sol/ArbAddressTable.dbg.json +1 -1
  216. package/build/contracts/src/precompiles/ArbAggregator.sol/ArbAggregator.dbg.json +1 -1
  217. package/build/contracts/src/precompiles/ArbBLS.sol/ArbBLS.dbg.json +1 -1
  218. package/build/contracts/src/precompiles/ArbDebug.sol/ArbDebug.dbg.json +1 -1
  219. package/build/contracts/src/precompiles/ArbFunctionTable.sol/ArbFunctionTable.dbg.json +1 -1
  220. package/build/contracts/src/precompiles/ArbGasInfo.sol/ArbGasInfo.dbg.json +1 -1
  221. package/build/contracts/src/precompiles/ArbInfo.sol/ArbInfo.dbg.json +1 -1
  222. package/build/contracts/src/precompiles/ArbOwner.sol/ArbOwner.dbg.json +1 -1
  223. package/build/contracts/src/precompiles/ArbOwnerPublic.sol/ArbOwnerPublic.dbg.json +1 -1
  224. package/build/contracts/src/precompiles/ArbRetryableTx.sol/ArbRetryableTx.dbg.json +1 -1
  225. package/build/contracts/src/precompiles/ArbStatistics.sol/ArbStatistics.dbg.json +1 -1
  226. package/build/contracts/src/precompiles/ArbSys.sol/ArbSys.dbg.json +1 -1
  227. package/build/contracts/src/precompiles/ArbWasm.sol/ArbWasm.dbg.json +1 -1
  228. package/build/contracts/src/precompiles/ArbWasmCache.sol/ArbWasmCache.dbg.json +1 -1
  229. package/build/contracts/src/precompiles/ArbosActs.sol/ArbosActs.dbg.json +1 -1
  230. package/build/contracts/src/precompiles/ArbosTest.sol/ArbosTest.dbg.json +1 -1
  231. package/build/contracts/src/rollup/AbsRollupEventInbox.sol/AbsRollupEventInbox.dbg.json +1 -1
  232. package/build/contracts/src/rollup/Assertion.sol/AssertionNodeLib.dbg.json +4 -0
  233. package/build/contracts/src/rollup/{Node.sol/NodeLib.json → Assertion.sol/AssertionNodeLib.json} +4 -4
  234. package/build/contracts/src/rollup/AssertionState.sol/AssertionStateLib.dbg.json +4 -0
  235. package/build/contracts/src/{challenge/ChallengeLib.sol/ChallengeLib.json → rollup/AssertionState.sol/AssertionStateLib.json} +4 -4
  236. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/BOLDUpgradeAction.dbg.json +4 -0
  237. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/BOLDUpgradeAction.json +807 -0
  238. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ConstantArrayStorage.dbg.json +4 -0
  239. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ConstantArrayStorage.json +35 -0
  240. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollup.dbg.json +4 -0
  241. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollup.json +361 -0
  242. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollupAdmin.dbg.json +4 -0
  243. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollupAdmin.json +38 -0
  244. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ISeqInboxPostUpgradeInit.dbg.json +4 -0
  245. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ISeqInboxPostUpgradeInit.json +41 -0
  246. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/RollupReader.dbg.json +4 -0
  247. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/RollupReader.json +385 -0
  248. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/StateHashPreImageLookup.dbg.json +4 -0
  249. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/StateHashPreImageLookup.json +203 -0
  250. package/build/contracts/src/rollup/BridgeCreator.sol/BridgeCreator.dbg.json +1 -1
  251. package/build/contracts/src/rollup/BridgeCreator.sol/BridgeCreator.json +62 -10
  252. package/build/contracts/src/rollup/DeployHelper.sol/DeployHelper.dbg.json +1 -1
  253. package/build/contracts/src/rollup/DeployHelper.sol/DeployHelper.json +2 -2
  254. package/build/contracts/src/rollup/ERC20RollupEventInbox.sol/ERC20RollupEventInbox.dbg.json +1 -1
  255. package/build/contracts/src/rollup/ERC20RollupEventInbox.sol/ERC20RollupEventInbox.json +2 -2
  256. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/FactoryDeployerHelper.dbg.json +1 -1
  257. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/FactoryDeployerHelper.json +2 -2
  258. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IDeployHelper.dbg.json +1 -1
  259. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IERC20.dbg.json +1 -1
  260. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IERC20Bridge.dbg.json +1 -1
  261. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IInboxBase.dbg.json +1 -1
  262. package/build/contracts/src/rollup/IRollupAdmin.sol/IRollupAdmin.dbg.json +1 -1
  263. package/build/contracts/src/rollup/IRollupAdmin.sol/IRollupAdmin.json +473 -99
  264. package/build/contracts/src/rollup/IRollupCore.sol/IRollupCore.dbg.json +1 -1
  265. package/build/contracts/src/rollup/IRollupCore.sol/IRollupCore.json +315 -221
  266. package/build/contracts/src/rollup/IRollupEventInbox.sol/IRollupEventInbox.dbg.json +1 -1
  267. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUser.dbg.json +1 -1
  268. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUser.json +678 -494
  269. package/build/contracts/src/rollup/RollupAdminLogic.sol/RollupAdminLogic.dbg.json +1 -1
  270. package/build/contracts/src/rollup/RollupAdminLogic.sol/RollupAdminLogic.json +806 -435
  271. package/build/contracts/src/rollup/RollupCore.sol/RollupCore.dbg.json +1 -1
  272. package/build/contracts/src/rollup/RollupCore.sol/RollupCore.json +323 -235
  273. package/build/contracts/src/rollup/RollupCreator.sol/RollupCreator.dbg.json +1 -1
  274. package/build/contracts/src/rollup/RollupCreator.sol/RollupCreator.json +98 -36
  275. package/build/contracts/src/rollup/RollupEventInbox.sol/RollupEventInbox.dbg.json +1 -1
  276. package/build/contracts/src/rollup/RollupEventInbox.sol/RollupEventInbox.json +2 -2
  277. package/build/contracts/src/rollup/RollupLib.sol/RollupLib.dbg.json +1 -1
  278. package/build/contracts/src/rollup/RollupLib.sol/RollupLib.json +2 -2
  279. package/build/contracts/src/rollup/RollupProxy.sol/RollupProxy.dbg.json +1 -1
  280. package/build/contracts/src/rollup/RollupProxy.sol/RollupProxy.json +97 -16
  281. package/build/contracts/src/rollup/RollupUserLogic.sol/RollupUserLogic.dbg.json +1 -1
  282. package/build/contracts/src/rollup/RollupUserLogic.sol/RollupUserLogic.json +924 -530
  283. package/build/contracts/src/rollup/ValidatorWallet.sol/ValidatorWallet.dbg.json +1 -1
  284. package/build/contracts/src/rollup/ValidatorWallet.sol/ValidatorWallet.json +15 -43
  285. package/build/contracts/src/rollup/ValidatorWalletCreator.sol/ValidatorWalletCreator.dbg.json +1 -1
  286. package/build/contracts/src/rollup/ValidatorWalletCreator.sol/ValidatorWalletCreator.json +2 -2
  287. package/build/contracts/src/state/Deserialize.sol/Deserialize.dbg.json +1 -1
  288. package/build/contracts/src/state/Deserialize.sol/Deserialize.json +2 -2
  289. package/build/contracts/src/state/GlobalState.sol/GlobalStateLib.dbg.json +1 -1
  290. package/build/contracts/src/state/GlobalState.sol/GlobalStateLib.json +2 -2
  291. package/build/contracts/src/state/Instructions.sol/Instructions.dbg.json +1 -1
  292. package/build/contracts/src/state/Instructions.sol/Instructions.json +2 -2
  293. package/build/contracts/src/state/Machine.sol/MachineLib.dbg.json +1 -1
  294. package/build/contracts/src/state/Machine.sol/MachineLib.json +2 -2
  295. package/build/contracts/src/state/MerkleProof.sol/MerkleProofLib.dbg.json +1 -1
  296. package/build/contracts/src/state/MerkleProof.sol/MerkleProofLib.json +2 -2
  297. package/build/contracts/src/state/Module.sol/ModuleLib.dbg.json +1 -1
  298. package/build/contracts/src/state/Module.sol/ModuleLib.json +2 -2
  299. package/build/contracts/src/state/ModuleMemory.sol/ModuleMemoryLib.dbg.json +1 -1
  300. package/build/contracts/src/state/ModuleMemory.sol/ModuleMemoryLib.json +2 -2
  301. package/build/contracts/src/state/ModuleMemoryCompact.sol/ModuleMemoryCompactLib.dbg.json +1 -1
  302. package/build/contracts/src/state/ModuleMemoryCompact.sol/ModuleMemoryCompactLib.json +2 -2
  303. package/build/contracts/src/state/MultiStack.sol/MultiStackLib.dbg.json +1 -1
  304. package/build/contracts/src/state/MultiStack.sol/MultiStackLib.json +2 -2
  305. package/build/contracts/src/state/PcArray.sol/PcArrayLib.dbg.json +1 -1
  306. package/build/contracts/src/state/PcArray.sol/PcArrayLib.json +2 -2
  307. package/build/contracts/src/state/StackFrame.sol/StackFrameLib.dbg.json +1 -1
  308. package/build/contracts/src/state/StackFrame.sol/StackFrameLib.json +2 -2
  309. package/build/contracts/src/state/Value.sol/ValueLib.dbg.json +1 -1
  310. package/build/contracts/src/state/Value.sol/ValueLib.json +2 -2
  311. package/build/contracts/src/state/ValueArray.sol/ValueArrayLib.dbg.json +1 -1
  312. package/build/contracts/src/state/ValueArray.sol/ValueArrayLib.json +2 -2
  313. package/build/contracts/src/state/ValueStack.sol/ValueStackLib.dbg.json +1 -1
  314. package/build/contracts/src/state/ValueStack.sol/ValueStackLib.json +2 -2
  315. package/build/contracts/src/test-helpers/BridgeTester.sol/BridgeTester.dbg.json +1 -1
  316. package/build/contracts/src/test-helpers/BridgeTester.sol/BridgeTester.json +15 -2
  317. package/build/contracts/src/test-helpers/CryptographyPrimitivesTester.sol/CryptographyPrimitivesTester.dbg.json +1 -1
  318. package/build/contracts/src/test-helpers/CryptographyPrimitivesTester.sol/CryptographyPrimitivesTester.json +2 -2
  319. package/build/contracts/src/test-helpers/EthVault.sol/EthVault.dbg.json +1 -1
  320. package/build/contracts/src/test-helpers/EthVault.sol/EthVault.json +2 -2
  321. package/build/contracts/src/test-helpers/MessageTester.sol/MessageTester.dbg.json +1 -1
  322. package/build/contracts/src/test-helpers/MessageTester.sol/MessageTester.json +2 -2
  323. package/build/contracts/src/test-helpers/OutboxWithoutOptTester.sol/OutboxWithoutOptTester.dbg.json +1 -1
  324. package/build/contracts/src/test-helpers/OutboxWithoutOptTester.sol/OutboxWithoutOptTester.json +2 -2
  325. package/build/contracts/src/test-helpers/RollupMock.sol/RollupMock.dbg.json +1 -1
  326. package/build/contracts/src/test-helpers/RollupMock.sol/RollupMock.json +2 -15
  327. package/build/contracts/src/test-helpers/TestToken.sol/TestToken.dbg.json +1 -1
  328. package/build/contracts/src/test-helpers/TestToken.sol/TestToken.json +2 -2
  329. package/build/contracts/src/test-helpers/ValueArrayTester.sol/ValueArrayTester.dbg.json +1 -1
  330. package/build/contracts/src/test-helpers/ValueArrayTester.sol/ValueArrayTester.json +2 -2
  331. package/out/yul/Reader4844.yul/Reader4844.json +1 -1
  332. package/package.json +16 -6
  333. package/src/assertionStakingPool/AbsBoldStakingPool.sol +66 -0
  334. package/src/assertionStakingPool/AssertionStakingPool.sol +70 -0
  335. package/src/assertionStakingPool/AssertionStakingPoolCreator.sol +35 -0
  336. package/src/assertionStakingPool/EdgeStakingPool.sol +57 -0
  337. package/src/assertionStakingPool/EdgeStakingPoolCreator.sol +34 -0
  338. package/src/assertionStakingPool/StakingPoolCreatorUtils.sol +25 -0
  339. package/src/assertionStakingPool/interfaces/IAbsBoldStakingPool.sol +41 -0
  340. package/src/assertionStakingPool/interfaces/IAssertionStakingPool.sol +36 -0
  341. package/src/assertionStakingPool/interfaces/IAssertionStakingPoolCreator.sol +31 -0
  342. package/src/assertionStakingPool/interfaces/IEdgeStakingPool.sol +27 -0
  343. package/src/assertionStakingPool/interfaces/IEdgeStakingPoolCreator.sol +28 -0
  344. package/src/bridge/AbsBridge.sol +38 -48
  345. package/src/bridge/AbsInbox.sol +88 -97
  346. package/src/bridge/AbsOutbox.sol +23 -37
  347. package/src/bridge/Bridge.sol +6 -4
  348. package/src/bridge/DelayBuffer.sol +123 -0
  349. package/src/bridge/DelayBufferTypes.sol +38 -0
  350. package/src/bridge/ERC20Bridge.sol +8 -4
  351. package/src/bridge/ERC20Inbox.sol +46 -53
  352. package/src/bridge/ERC20Outbox.sol +7 -3
  353. package/src/bridge/GasRefunder.sol +38 -24
  354. package/src/bridge/IBridge.sol +30 -21
  355. package/src/bridge/IERC20Bridge.sol +1 -1
  356. package/src/bridge/IERC20Inbox.sol +4 -2
  357. package/src/bridge/IEthBridge.sol +4 -2
  358. package/src/bridge/IInbox.sol +4 -2
  359. package/src/bridge/IInboxBase.sol +17 -13
  360. package/src/bridge/IOutbox.sol +13 -8
  361. package/src/bridge/ISequencerInbox.sol +118 -13
  362. package/src/bridge/Inbox.sol +131 -151
  363. package/src/bridge/Messages.sol +48 -18
  364. package/src/bridge/Outbox.sol +6 -2
  365. package/src/bridge/SequencerInbox.sol +339 -274
  366. package/src/chain/CacheManager.sol +49 -18
  367. package/src/challengeV2/EdgeChallengeManager.sol +783 -0
  368. package/src/challengeV2/IAssertionChain.sol +39 -0
  369. package/src/challengeV2/libraries/ArrayUtilsLib.sol +61 -0
  370. package/src/challengeV2/libraries/ChallengeEdgeLib.sol +333 -0
  371. package/src/challengeV2/libraries/ChallengeErrors.sol +108 -0
  372. package/src/challengeV2/libraries/EdgeChallengeManagerLib.sol +930 -0
  373. package/src/challengeV2/libraries/Enums.sol +26 -0
  374. package/src/challengeV2/libraries/MerkleTreeAccumulatorLib.sol +390 -0
  375. package/src/challengeV2/libraries/UintUtilsLib.sol +74 -0
  376. package/src/libraries/AddressAliasHelper.sol +6 -2
  377. package/src/libraries/AdminFallbackProxy.sol +8 -4
  378. package/src/libraries/ArbitrumChecker.sol +3 -4
  379. package/src/libraries/CryptographyPrimitives.sol +39 -46
  380. package/src/libraries/DecimalsConverterHelper.sol +2 -4
  381. package/src/libraries/DoubleLogicUUPSUpgradeable.sol +10 -7
  382. package/src/libraries/Error.sol +18 -12
  383. package/src/libraries/GasRefundEnabled.sol +3 -4
  384. package/src/libraries/MerkleLib.sol +6 -5
  385. package/src/libraries/UUPSNotUpgradeable.sol +2 -4
  386. package/src/mocks/BridgeStub.sol +50 -48
  387. package/src/mocks/BridgeUnproxied.sol +2 -0
  388. package/src/mocks/InboxStub.sol +22 -17
  389. package/src/mocks/MerkleTreeAccess.sol +72 -0
  390. package/src/mocks/MockRollupEventInbox.sol +59 -0
  391. package/src/mocks/MultiCallTest.sol +3 -1
  392. package/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol +3 -1
  393. package/src/mocks/Program.sol +9 -7
  394. package/src/mocks/SequencerInboxBlobMock.sol +38 -0
  395. package/src/mocks/SequencerInboxStub.sol +9 -12
  396. package/src/mocks/Simple.sol +13 -25
  397. package/src/mocks/SimpleCacheManager.sol +10 -3
  398. package/src/mocks/SimpleOneStepProofEntry.sol +60 -0
  399. package/src/mocks/SimpleProxy.sol +3 -1
  400. package/src/mocks/TestWETH9.sol +30 -0
  401. package/src/mocks/UpgradeExecutorMock.sol +10 -17
  402. package/src/node-interface/NodeInterface.sol +23 -22
  403. package/src/node-interface/NodeInterfaceDebug.sol +5 -3
  404. package/src/osp/HashProofHelper.sol +9 -10
  405. package/src/osp/IOneStepProofEntry.sol +14 -9
  406. package/src/osp/IOneStepProver.sol +1 -0
  407. package/src/osp/OneStepProofEntry.sol +63 -54
  408. package/src/osp/OneStepProver0.sol +14 -27
  409. package/src/osp/OneStepProverHostIo.sol +31 -58
  410. package/src/osp/OneStepProverMath.sol +15 -23
  411. package/src/osp/OneStepProverMemory.sol +9 -23
  412. package/src/precompiles/ArbAddressTable.sol +19 -9
  413. package/src/precompiles/ArbAggregator.sol +12 -4
  414. package/src/precompiles/ArbBLS.sol +1 -3
  415. package/src/precompiles/ArbDebug.sol +5 -11
  416. package/src/precompiles/ArbFunctionTable.sol +7 -10
  417. package/src/precompiles/ArbGasInfo.sol +9 -43
  418. package/src/precompiles/ArbInfo.sol +6 -2
  419. package/src/precompiles/ArbOwner.sol +101 -34
  420. package/src/precompiles/ArbOwnerPublic.sol +6 -2
  421. package/src/precompiles/ArbRetryableTx.sol +15 -5
  422. package/src/precompiles/ArbStatistics.sol +1 -8
  423. package/src/precompiles/ArbSys.sol +16 -18
  424. package/src/precompiles/ArbWasm.sol +24 -14
  425. package/src/precompiles/ArbWasmCache.sol +15 -5
  426. package/src/precompiles/ArbosTest.sol +3 -1
  427. package/src/rollup/AbsRollupEventInbox.sol +15 -16
  428. package/src/rollup/Assertion.sol +100 -0
  429. package/src/rollup/AssertionState.sol +29 -0
  430. package/src/rollup/BOLDUpgradeAction.sol +631 -0
  431. package/src/rollup/BridgeCreator.sol +42 -15
  432. package/src/rollup/Config.sol +15 -7
  433. package/src/rollup/DeployHelper.sol +12 -31
  434. package/src/rollup/ERC20RollupEventInbox.sol +8 -9
  435. package/src/rollup/FactoryDeployerHelper.sol +8 -10
  436. package/src/rollup/IRollupAdmin.sol +127 -45
  437. package/src/rollup/IRollupCore.sol +64 -84
  438. package/src/rollup/IRollupEventInbox.sol +3 -1
  439. package/src/rollup/IRollupLogic.sol +36 -69
  440. package/src/rollup/RollupAdminLogic.sol +224 -203
  441. package/src/rollup/RollupCore.sol +407 -428
  442. package/src/rollup/RollupCreator.sol +88 -75
  443. package/src/rollup/RollupEventInbox.sol +7 -7
  444. package/src/rollup/RollupLib.sol +50 -86
  445. package/src/rollup/RollupProxy.sol +8 -12
  446. package/src/rollup/RollupUserLogic.sol +279 -642
  447. package/src/rollup/ValidatorUtils.sol +0 -242
  448. package/src/rollup/ValidatorWallet.sol +22 -38
  449. package/src/rollup/ValidatorWalletCreator.sol +8 -8
  450. package/src/state/Deserialize.sol +74 -96
  451. package/src/state/GlobalState.sol +74 -20
  452. package/src/state/Instructions.sol +4 -3
  453. package/src/state/Machine.sol +18 -19
  454. package/src/state/Module.sol +14 -13
  455. package/src/state/ModuleMemory.sol +6 -25
  456. package/src/state/ModuleMemoryCompact.sol +3 -1
  457. package/src/state/MultiStack.sol +16 -20
  458. package/src/state/PcArray.sol +7 -7
  459. package/src/state/StackFrame.sol +21 -14
  460. package/src/state/Value.sol +18 -6
  461. package/src/state/ValueArray.sol +7 -7
  462. package/src/state/ValueStack.sol +9 -3
  463. package/src/test-helpers/BridgeTester.sol +32 -42
  464. package/src/test-helpers/CryptographyPrimitivesTester.sol +12 -13
  465. package/src/test-helpers/EthVault.sol +4 -2
  466. package/src/test-helpers/InterfaceCompatibilityTester.sol +1 -1
  467. package/src/test-helpers/MessageTester.sol +3 -10
  468. package/src/test-helpers/OutboxWithoutOptTester.sol +12 -19
  469. package/src/test-helpers/RollupMock.sol +3 -7
  470. package/src/test-helpers/TestToken.sol +4 -2
  471. package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.dbg.json +0 -4
  472. package/build/contracts/src/challenge/ChallengeLib.sol/ChallengeLib.dbg.json +0 -4
  473. package/build/contracts/src/challenge/ChallengeManager.sol/ChallengeManager.dbg.json +0 -4
  474. package/build/contracts/src/challenge/ChallengeManager.sol/ChallengeManager.json +0 -746
  475. package/build/contracts/src/challenge/IChallengeManager.sol/IChallengeManager.dbg.json +0 -4
  476. package/build/contracts/src/challenge/IChallengeManager.sol/IChallengeManager.json +0 -441
  477. package/build/contracts/src/challenge/IChallengeResultReceiver.sol/IChallengeResultReceiver.dbg.json +0 -4
  478. package/build/contracts/src/challenge/IChallengeResultReceiver.sol/IChallengeResultReceiver.json +0 -34
  479. package/build/contracts/src/mocks/MockResultReceiver.sol/MockResultReceiver.dbg.json +0 -4
  480. package/build/contracts/src/mocks/MockResultReceiver.sol/MockResultReceiver.json +0 -188
  481. package/build/contracts/src/mocks/SingleExecutionChallenge.sol/SingleExecutionChallenge.dbg.json +0 -4
  482. package/build/contracts/src/mocks/SingleExecutionChallenge.sol/SingleExecutionChallenge.json +0 -797
  483. package/build/contracts/src/mocks/TimedOutChallengeManager.sol/TimedOutChallengeManager.dbg.json +0 -4
  484. package/build/contracts/src/mocks/TimedOutChallengeManager.sol/TimedOutChallengeManager.json +0 -746
  485. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserAbs.dbg.json +0 -4
  486. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserAbs.json +0 -1327
  487. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserERC20.dbg.json +0 -4
  488. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserERC20.json +0 -1461
  489. package/build/contracts/src/rollup/Node.sol/NodeLib.dbg.json +0 -4
  490. package/build/contracts/src/rollup/RollupUserLogic.sol/AbsRollupUserLogic.dbg.json +0 -4
  491. package/build/contracts/src/rollup/RollupUserLogic.sol/AbsRollupUserLogic.json +0 -1609
  492. package/build/contracts/src/rollup/RollupUserLogic.sol/ERC20RollupUserLogic.dbg.json +0 -4
  493. package/build/contracts/src/rollup/RollupUserLogic.sol/ERC20RollupUserLogic.json +0 -1743
  494. package/build/contracts/src/rollup/ValidatorUtils.sol/ValidatorUtils.dbg.json +0 -4
  495. package/build/contracts/src/rollup/ValidatorUtils.sol/ValidatorUtils.json +0 -379
  496. package/src/challenge/ChallengeLib.sol +0 -88
  497. package/src/challenge/ChallengeManager.sol +0 -375
  498. package/src/challenge/IChallengeManager.sol +0 -86
  499. package/src/challenge/IChallengeResultReceiver.sol +0 -13
  500. package/src/mocks/MockResultReceiver.sol +0 -59
  501. package/src/mocks/SingleExecutionChallenge.sol +0 -41
  502. package/src/mocks/TimedOutChallengeManager.sol +0 -13
  503. package/src/rollup/Node.sol +0 -113
@@ -1,243 +1 @@
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
1
  pragma solidity ^0.8.0;
6
-
7
- pragma experimental ABIEncoderV2;
8
-
9
- import "../rollup/IRollupCore.sol";
10
- import "../challenge/IChallengeManager.sol";
11
- import "./IRollupLogic.sol";
12
-
13
- import {NO_CHAL_INDEX} from "../libraries/Constants.sol";
14
-
15
- contract ValidatorUtils {
16
- using NodeLib for Node;
17
-
18
- enum ConfirmType {
19
- NONE,
20
- VALID,
21
- INVALID
22
- }
23
-
24
- enum NodeConflictType {
25
- NONE,
26
- FOUND,
27
- INDETERMINATE,
28
- INCOMPLETE
29
- }
30
-
31
- struct NodeConflict {
32
- NodeConflictType ty;
33
- uint64 node1;
34
- uint64 node2;
35
- }
36
-
37
- function findStakerConflict(
38
- IRollupCore rollup,
39
- address staker1,
40
- address staker2,
41
- uint256 maxDepth
42
- ) external view returns (NodeConflict memory) {
43
- uint64 staker1NodeNum = rollup.latestStakedNode(staker1);
44
- uint64 staker2NodeNum = rollup.latestStakedNode(staker2);
45
- return findNodeConflict(rollup, staker1NodeNum, staker2NodeNum, maxDepth);
46
- }
47
-
48
- function checkDecidableNextNode(IRollupUserAbs rollup) external view returns (ConfirmType) {
49
- try ValidatorUtils(address(this)).requireConfirmable(rollup) {
50
- return ConfirmType.VALID;
51
- } catch {}
52
-
53
- try ValidatorUtils(address(this)).requireRejectable(rollup) {
54
- return ConfirmType.INVALID;
55
- } catch {
56
- return ConfirmType.NONE;
57
- }
58
- }
59
-
60
- function requireRejectable(IRollupCore rollup) external view {
61
- IRollupUser(address(rollup)).requireUnresolvedExists();
62
- uint64 firstUnresolvedNode = rollup.firstUnresolvedNode();
63
- Node memory node = rollup.getNode(firstUnresolvedNode);
64
- if (node.prevNum == rollup.latestConfirmed()) {
65
- // Verify the block's deadline has passed
66
- require(block.number >= node.deadlineBlock, "BEFORE_DEADLINE");
67
- rollup.getNode(node.prevNum).requirePastChildConfirmDeadline();
68
-
69
- // Verify that no staker is staked on this node
70
- require(
71
- node.stakerCount ==
72
- IRollupUser(address(rollup)).countStakedZombies(firstUnresolvedNode),
73
- "HAS_STAKERS"
74
- );
75
- }
76
- }
77
-
78
- function requireConfirmable(IRollupUserAbs rollup) external view {
79
- rollup.requireUnresolvedExists();
80
-
81
- uint256 stakerCount = rollup.stakerCount();
82
- // There is at least one non-zombie staker
83
- require(stakerCount > 0, "NO_STAKERS");
84
-
85
- uint64 firstUnresolved = rollup.firstUnresolvedNode();
86
- Node memory node = rollup.getNode(firstUnresolved);
87
-
88
- // Verify the block's deadline has passed
89
- node.requirePastDeadline();
90
-
91
- // Check that prev is latest confirmed
92
- assert(node.prevNum == rollup.latestConfirmed());
93
-
94
- Node memory prevNode = rollup.getNode(node.prevNum);
95
- prevNode.requirePastChildConfirmDeadline();
96
-
97
- uint256 zombiesStakedOnOtherChildren = rollup.countZombiesStakedOnChildren(node.prevNum) -
98
- rollup.countStakedZombies(firstUnresolved);
99
- require(
100
- prevNode.childStakerCount == node.stakerCount + zombiesStakedOnOtherChildren,
101
- "NOT_ALL_STAKED"
102
- );
103
- }
104
-
105
- function refundableStakers(IRollupCore rollup) external view returns (address[] memory) {
106
- uint256 stakerCount = rollup.stakerCount();
107
- address[] memory stakers = new address[](stakerCount);
108
- uint256 latestConfirmed = rollup.latestConfirmed();
109
- uint256 index = 0;
110
- for (uint64 i = 0; i < stakerCount; i++) {
111
- address staker = rollup.getStakerAddress(i);
112
- uint256 latestStakedNode = rollup.latestStakedNode(staker);
113
- if (latestStakedNode <= latestConfirmed && rollup.currentChallenge(staker) == 0) {
114
- stakers[index] = staker;
115
- index++;
116
- }
117
- }
118
- assembly {
119
- mstore(stakers, index)
120
- }
121
- return stakers;
122
- }
123
-
124
- function latestStaked(IRollupCore rollup, address staker)
125
- external
126
- view
127
- returns (uint64, Node memory)
128
- {
129
- uint64 num = rollup.latestStakedNode(staker);
130
- if (num == 0) {
131
- num = rollup.latestConfirmed();
132
- }
133
- Node memory node = rollup.getNode(num);
134
- return (num, node);
135
- }
136
-
137
- function stakedNodes(IRollupCore rollup, address staker)
138
- external
139
- view
140
- returns (uint64[] memory)
141
- {
142
- uint64[] memory nodes = new uint64[](100000);
143
- uint256 index = 0;
144
- for (uint64 i = rollup.latestConfirmed(); i <= rollup.latestNodeCreated(); i++) {
145
- if (rollup.nodeHasStaker(i, staker)) {
146
- nodes[index] = i;
147
- index++;
148
- }
149
- }
150
- // Shrink array down to real size
151
- assembly {
152
- mstore(nodes, index)
153
- }
154
- return nodes;
155
- }
156
-
157
- function findNodeConflict(
158
- IRollupCore rollup,
159
- uint64 node1,
160
- uint64 node2,
161
- uint256 maxDepth
162
- ) public view returns (NodeConflict memory) {
163
- uint64 firstUnresolvedNode = rollup.firstUnresolvedNode();
164
- uint64 node1Prev = rollup.getNode(node1).prevNum;
165
- uint64 node2Prev = rollup.getNode(node2).prevNum;
166
-
167
- for (uint256 i = 0; i < maxDepth; i++) {
168
- if (node1 == node2) {
169
- return NodeConflict(NodeConflictType.NONE, node1, node2);
170
- }
171
- if (node1Prev == node2Prev) {
172
- return NodeConflict(NodeConflictType.FOUND, node1, node2);
173
- }
174
- if (node1Prev < firstUnresolvedNode && node2Prev < firstUnresolvedNode) {
175
- return NodeConflict(NodeConflictType.INDETERMINATE, 0, 0);
176
- }
177
- if (node1Prev < node2Prev) {
178
- node2 = node2Prev;
179
- node2Prev = rollup.getNode(node2).prevNum;
180
- } else {
181
- node1 = node1Prev;
182
- node1Prev = rollup.getNode(node1).prevNum;
183
- }
184
- }
185
- return NodeConflict(NodeConflictType.INCOMPLETE, 0, 0);
186
- }
187
-
188
- function getStakers(
189
- IRollupCore rollup,
190
- uint64 startIndex,
191
- uint64 max
192
- ) public view returns (address[] memory, bool hasMore) {
193
- uint256 maxStakers = rollup.stakerCount();
194
- if (startIndex + max <= maxStakers) {
195
- maxStakers = startIndex + max;
196
- hasMore = true;
197
- }
198
-
199
- address[] memory stakers = new address[](maxStakers);
200
- for (uint64 i = 0; i < maxStakers; i++) {
201
- stakers[i] = rollup.getStakerAddress(startIndex + i);
202
- }
203
- return (stakers, hasMore);
204
- }
205
-
206
- function timedOutChallenges(
207
- IRollupCore rollup,
208
- uint64 startIndex,
209
- uint64 max
210
- ) external view returns (uint64[] memory, bool hasMore) {
211
- (address[] memory stakers, bool hasMoreStakers) = getStakers(rollup, startIndex, max);
212
- uint64[] memory challenges = new uint64[](stakers.length);
213
- uint256 index = 0;
214
- IChallengeManager challengeManager = rollup.challengeManager();
215
- for (uint256 i = 0; i < stakers.length; i++) {
216
- address staker = stakers[i];
217
- uint64 challengeIndex = rollup.currentChallenge(staker);
218
- if (
219
- challengeIndex != NO_CHAL_INDEX &&
220
- challengeManager.isTimedOut(challengeIndex) &&
221
- challengeManager.currentResponder(challengeIndex) == staker
222
- ) {
223
- challenges[index++] = challengeIndex;
224
- }
225
- }
226
- // Shrink array down to real size
227
- assembly {
228
- mstore(challenges, index)
229
- }
230
- return (challenges, hasMoreStakers);
231
- }
232
-
233
- // Worst case runtime of O(depth), as it terminates if it switches paths.
234
- function areUnresolvedNodesLinear(IRollupCore rollup) external view returns (bool) {
235
- uint256 end = rollup.latestNodeCreated();
236
- for (uint64 i = rollup.firstUnresolvedNode(); i <= end; i++) {
237
- if (i > 0 && rollup.getNode(i).prevNum != i - 1) {
238
- return false;
239
- }
240
- }
241
- return true;
242
- }
243
- }
@@ -4,7 +4,6 @@
4
4
 
5
5
  pragma solidity ^0.8.0;
6
6
 
7
- import "../challenge/IChallengeManager.sol";
8
7
  import "../libraries/DelegateCallAware.sol";
9
8
  import "../libraries/IGasRefunder.sol";
10
9
  import "../libraries/GasRefundEnabled.sol";
@@ -33,20 +32,22 @@ contract ValidatorWallet is OwnableUpgradeable, DelegateCallAware, GasRefundEnab
33
32
  mapping(address => bool) public allowedExecutorDestinations;
34
33
 
35
34
  modifier onlyExecutorOrOwner() {
36
- if (!executors[_msgSender()] && owner() != _msgSender())
35
+ if (!executors[_msgSender()] && owner() != _msgSender()) {
37
36
  revert NotExecutorOrOwner(_msgSender());
37
+ }
38
38
  _;
39
39
  }
40
40
 
41
41
  event ExecutorUpdated(address indexed executor, bool isExecutor);
42
42
 
43
43
  /// @dev updates the executor addresses
44
- function setExecutor(address[] calldata newExecutors, bool[] calldata isExecutor)
45
- external
46
- onlyOwner
47
- {
48
- if (newExecutors.length != isExecutor.length)
44
+ function setExecutor(
45
+ address[] calldata newExecutors,
46
+ bool[] calldata isExecutor
47
+ ) external onlyOwner {
48
+ if (newExecutors.length != isExecutor.length) {
49
49
  revert BadArrayLength(newExecutors.length, isExecutor.length);
50
+ }
50
51
  unchecked {
51
52
  for (uint64 i = 0; i < newExecutors.length; ++i) {
52
53
  executors[newExecutors[i]] = isExecutor[i];
@@ -77,12 +78,13 @@ contract ValidatorWallet is OwnableUpgradeable, DelegateCallAware, GasRefundEnab
77
78
  event AllowedExecutorDestinationsUpdated(address indexed destination, bool isSet);
78
79
 
79
80
  /// @notice updates the destination addresses which executors are allowed to call
80
- function setAllowedExecutorDestinations(address[] calldata destinations, bool[] calldata isSet)
81
- external
82
- onlyOwner
83
- {
84
- if (destinations.length != isSet.length)
81
+ function setAllowedExecutorDestinations(
82
+ address[] calldata destinations,
83
+ bool[] calldata isSet
84
+ ) external onlyOwner {
85
+ if (destinations.length != isSet.length) {
85
86
  revert BadArrayLength(destinations.length, isSet.length);
87
+ }
86
88
  unchecked {
87
89
  for (uint256 i = 0; i < destinations.length; ++i) {
88
90
  allowedExecutorDestinations[destinations[i]] = isSet[i];
@@ -92,9 +94,12 @@ contract ValidatorWallet is OwnableUpgradeable, DelegateCallAware, GasRefundEnab
92
94
  }
93
95
 
94
96
  /// @dev reverts if the current function can't be called
95
- function validateExecuteTransaction(address destination) public view {
96
- if (!allowedExecutorDestinations[destination] && owner() != _msgSender())
97
+ function validateExecuteTransaction(
98
+ address destination
99
+ ) public view {
100
+ if (!allowedExecutorDestinations[destination] && owner() != _msgSender()) {
97
101
  revert OnlyOwnerDestination(owner(), _msgSender(), destination);
102
+ }
98
103
  }
99
104
 
100
105
  function executeTransactions(
@@ -120,7 +125,7 @@ contract ValidatorWallet is OwnableUpgradeable, DelegateCallAware, GasRefundEnab
120
125
  validateExecuteTransaction(destination[i]);
121
126
  // We use a low level call here to allow for contract and non-contract calls
122
127
  // solhint-disable-next-line avoid-low-level-calls
123
- (bool success, ) = address(destination[i]).call{value: amount[i]}(data[i]);
128
+ (bool success,) = address(destination[i]).call{value: amount[i]}(data[i]);
124
129
  if (!success) {
125
130
  assembly {
126
131
  let ptr := mload(0x40)
@@ -150,7 +155,7 @@ contract ValidatorWallet is OwnableUpgradeable, DelegateCallAware, GasRefundEnab
150
155
  validateExecuteTransaction(destination);
151
156
  // We use a low level call here to allow for contract and non-contract calls
152
157
  // solhint-disable-next-line avoid-low-level-calls
153
- (bool success, ) = destination.call{value: amount}(data);
158
+ (bool success,) = destination.call{value: amount}(data);
154
159
  if (!success) {
155
160
  assembly {
156
161
  let ptr := mload(0x40)
@@ -161,33 +166,12 @@ contract ValidatorWallet is OwnableUpgradeable, DelegateCallAware, GasRefundEnab
161
166
  }
162
167
  }
163
168
 
164
- function timeoutChallenges(IChallengeManager manager, uint64[] calldata challenges) external {
165
- timeoutChallengesWithGasRefunder(IGasRefunder(address(0)), manager, challenges);
166
- }
167
-
168
- function timeoutChallengesWithGasRefunder(
169
- IGasRefunder gasRefunder,
170
- IChallengeManager manager,
171
- uint64[] calldata challenges
172
- ) public onlyExecutorOrOwner refundsGas(gasRefunder, IReader4844(address(0))) {
173
- uint256 challengesCount = challenges.length;
174
- for (uint256 i = 0; i < challengesCount; i++) {
175
- try manager.timeout(challenges[i]) {} catch (bytes memory error) {
176
- if (error.length == 0) {
177
- // Assume out of gas
178
- // We need to revert here so gas estimation works
179
- require(false, "GAS");
180
- }
181
- }
182
- }
183
- }
184
-
185
169
  receive() external payable {}
186
170
 
187
171
  /// @dev allows the owner to withdraw eth held by this contract
188
172
  function withdrawEth(uint256 amount, address destination) external onlyOwner {
189
173
  // solhint-disable-next-line avoid-low-level-calls
190
- (bool success, ) = destination.call{value: amount}("");
174
+ (bool success,) = destination.call{value: amount}("");
191
175
  if (!success) revert WithdrawEthFail(destination);
192
176
  }
193
177
  }
@@ -25,21 +25,21 @@ contract ValidatorWalletCreator is Ownable {
25
25
  template = address(new ValidatorWallet());
26
26
  }
27
27
 
28
- function setTemplate(address _template) external onlyOwner {
28
+ function setTemplate(
29
+ address _template
30
+ ) external onlyOwner {
29
31
  template = _template;
30
32
  emit TemplateUpdated();
31
33
  }
32
34
 
33
- function createWallet(address[] calldata initialExecutorAllowedDests)
34
- external
35
- returns (address)
36
- {
35
+ function createWallet(
36
+ address[] calldata initialExecutorAllowedDests
37
+ ) external returns (address) {
37
38
  address _executor = msg.sender;
38
39
  address _owner = msg.sender;
39
40
  ProxyAdmin admin = new ProxyAdmin();
40
- address proxy = address(
41
- new TransparentUpgradeableProxy(address(template), address(admin), "")
42
- );
41
+ address proxy =
42
+ address(new TransparentUpgradeableProxy(address(template), address(admin), ""));
43
43
  admin.transferOwnership(_owner);
44
44
  ValidatorWallet(payable(proxy)).initialize(_executor, _owner, initialExecutorAllowedDests);
45
45
  emit WalletCreated(proxy, _executor, _owner, address(admin));
@@ -16,21 +16,19 @@ import "./Module.sol";
16
16
  import "./GlobalState.sol";
17
17
 
18
18
  library Deserialize {
19
- function u8(bytes calldata proof, uint256 startOffset)
20
- internal
21
- pure
22
- returns (uint8 ret, uint256 offset)
23
- {
19
+ function u8(
20
+ bytes calldata proof,
21
+ uint256 startOffset
22
+ ) internal pure returns (uint8 ret, uint256 offset) {
24
23
  offset = startOffset;
25
24
  ret = uint8(proof[offset]);
26
25
  offset++;
27
26
  }
28
27
 
29
- function u16(bytes calldata proof, uint256 startOffset)
30
- internal
31
- pure
32
- returns (uint16 ret, uint256 offset)
33
- {
28
+ function u16(
29
+ bytes calldata proof,
30
+ uint256 startOffset
31
+ ) internal pure returns (uint16 ret, uint256 offset) {
34
32
  offset = startOffset;
35
33
  for (uint256 i = 0; i < 16 / 8; i++) {
36
34
  ret <<= 8;
@@ -39,11 +37,10 @@ library Deserialize {
39
37
  }
40
38
  }
41
39
 
42
- function u32(bytes calldata proof, uint256 startOffset)
43
- internal
44
- pure
45
- returns (uint32 ret, uint256 offset)
46
- {
40
+ function u32(
41
+ bytes calldata proof,
42
+ uint256 startOffset
43
+ ) internal pure returns (uint32 ret, uint256 offset) {
47
44
  offset = startOffset;
48
45
  for (uint256 i = 0; i < 32 / 8; i++) {
49
46
  ret <<= 8;
@@ -52,11 +49,10 @@ library Deserialize {
52
49
  }
53
50
  }
54
51
 
55
- function u64(bytes calldata proof, uint256 startOffset)
56
- internal
57
- pure
58
- returns (uint64 ret, uint256 offset)
59
- {
52
+ function u64(
53
+ bytes calldata proof,
54
+ uint256 startOffset
55
+ ) internal pure returns (uint64 ret, uint256 offset) {
60
56
  offset = startOffset;
61
57
  for (uint256 i = 0; i < 64 / 8; i++) {
62
58
  ret <<= 8;
@@ -65,11 +61,10 @@ library Deserialize {
65
61
  }
66
62
  }
67
63
 
68
- function u256(bytes calldata proof, uint256 startOffset)
69
- internal
70
- pure
71
- returns (uint256 ret, uint256 offset)
72
- {
64
+ function u256(
65
+ bytes calldata proof,
66
+ uint256 startOffset
67
+ ) internal pure returns (uint256 ret, uint256 offset) {
73
68
  offset = startOffset;
74
69
  for (uint256 i = 0; i < 256 / 8; i++) {
75
70
  ret <<= 8;
@@ -78,32 +73,29 @@ library Deserialize {
78
73
  }
79
74
  }
80
75
 
81
- function b32(bytes calldata proof, uint256 startOffset)
82
- internal
83
- pure
84
- returns (bytes32 ret, uint256 offset)
85
- {
76
+ function b32(
77
+ bytes calldata proof,
78
+ uint256 startOffset
79
+ ) internal pure returns (bytes32 ret, uint256 offset) {
86
80
  offset = startOffset;
87
81
  uint256 retInt;
88
82
  (retInt, offset) = u256(proof, offset);
89
83
  ret = bytes32(retInt);
90
84
  }
91
85
 
92
- function boolean(bytes calldata proof, uint256 startOffset)
93
- internal
94
- pure
95
- returns (bool ret, uint256 offset)
96
- {
86
+ function boolean(
87
+ bytes calldata proof,
88
+ uint256 startOffset
89
+ ) internal pure returns (bool ret, uint256 offset) {
97
90
  offset = startOffset;
98
91
  ret = uint8(proof[offset]) != 0;
99
92
  offset++;
100
93
  }
101
94
 
102
- function value(bytes calldata proof, uint256 startOffset)
103
- internal
104
- pure
105
- returns (Value memory val, uint256 offset)
106
- {
95
+ function value(
96
+ bytes calldata proof,
97
+ uint256 startOffset
98
+ ) internal pure returns (Value memory val, uint256 offset) {
107
99
  offset = startOffset;
108
100
  uint8 typeInt = uint8(proof[offset]);
109
101
  offset++;
@@ -113,11 +105,10 @@ library Deserialize {
113
105
  val = Value({valueType: ValueType(typeInt), contents: contents});
114
106
  }
115
107
 
116
- function valueStack(bytes calldata proof, uint256 startOffset)
117
- internal
118
- pure
119
- returns (ValueStack memory stack, uint256 offset)
120
- {
108
+ function valueStack(
109
+ bytes calldata proof,
110
+ uint256 startOffset
111
+ ) internal pure returns (ValueStack memory stack, uint256 offset) {
121
112
  offset = startOffset;
122
113
  bytes32 remainingHash;
123
114
  (remainingHash, offset) = b32(proof, offset);
@@ -130,27 +121,23 @@ library Deserialize {
130
121
  stack = ValueStack({proved: ValueArray(proved), remainingHash: remainingHash});
131
122
  }
132
123
 
133
- function multiStack(bytes calldata proof, uint256 startOffset)
134
- internal
135
- pure
136
- returns (MultiStack memory multistack, uint256 offset)
137
- {
124
+ function multiStack(
125
+ bytes calldata proof,
126
+ uint256 startOffset
127
+ ) internal pure returns (MultiStack memory multistack, uint256 offset) {
138
128
  offset = startOffset;
139
129
  bytes32 inactiveStackHash;
140
130
  (inactiveStackHash, offset) = b32(proof, offset);
141
131
  bytes32 remainingHash;
142
132
  (remainingHash, offset) = b32(proof, offset);
143
- multistack = MultiStack({
144
- inactiveStackHash: inactiveStackHash,
145
- remainingHash: remainingHash
146
- });
133
+ multistack =
134
+ MultiStack({inactiveStackHash: inactiveStackHash, remainingHash: remainingHash});
147
135
  }
148
136
 
149
- function instructions(bytes calldata proof, uint256 startOffset)
150
- internal
151
- pure
152
- returns (Instruction[] memory code, uint256 offset)
153
- {
137
+ function instructions(
138
+ bytes calldata proof,
139
+ uint256 startOffset
140
+ ) internal pure returns (Instruction[] memory code, uint256 offset) {
154
141
  offset = startOffset;
155
142
  uint8 count;
156
143
  (count, offset) = u8(proof, offset);
@@ -165,11 +152,10 @@ library Deserialize {
165
152
  }
166
153
  }
167
154
 
168
- function stackFrame(bytes calldata proof, uint256 startOffset)
169
- internal
170
- pure
171
- returns (StackFrame memory window, uint256 offset)
172
- {
155
+ function stackFrame(
156
+ bytes calldata proof,
157
+ uint256 startOffset
158
+ ) internal pure returns (StackFrame memory window, uint256 offset) {
173
159
  offset = startOffset;
174
160
  Value memory returnPc;
175
161
  bytes32 localsMerkleRoot;
@@ -187,11 +173,10 @@ library Deserialize {
187
173
  });
188
174
  }
189
175
 
190
- function stackFrameWindow(bytes calldata proof, uint256 startOffset)
191
- internal
192
- pure
193
- returns (StackFrameWindow memory window, uint256 offset)
194
- {
176
+ function stackFrameWindow(
177
+ bytes calldata proof,
178
+ uint256 startOffset
179
+ ) internal pure returns (StackFrameWindow memory window, uint256 offset) {
195
180
  offset = startOffset;
196
181
  bytes32 remainingHash;
197
182
  (remainingHash, offset) = b32(proof, offset);
@@ -207,11 +192,10 @@ library Deserialize {
207
192
  window = StackFrameWindow({proved: proved, remainingHash: remainingHash});
208
193
  }
209
194
 
210
- function moduleMemory(bytes calldata proof, uint256 startOffset)
211
- internal
212
- pure
213
- returns (ModuleMemory memory mem, uint256 offset)
214
- {
195
+ function moduleMemory(
196
+ bytes calldata proof,
197
+ uint256 startOffset
198
+ ) internal pure returns (ModuleMemory memory mem, uint256 offset) {
215
199
  offset = startOffset;
216
200
  uint64 size;
217
201
  uint64 maxSize;
@@ -222,11 +206,10 @@ library Deserialize {
222
206
  mem = ModuleMemory({size: size, maxSize: maxSize, merkleRoot: root});
223
207
  }
224
208
 
225
- function module(bytes calldata proof, uint256 startOffset)
226
- internal
227
- pure
228
- returns (Module memory mod, uint256 offset)
229
- {
209
+ function module(
210
+ bytes calldata proof,
211
+ uint256 startOffset
212
+ ) internal pure returns (Module memory mod, uint256 offset) {
230
213
  offset = startOffset;
231
214
  bytes32 globalsMerkleRoot;
232
215
  ModuleMemory memory mem;
@@ -250,11 +233,10 @@ library Deserialize {
250
233
  });
251
234
  }
252
235
 
253
- function globalState(bytes calldata proof, uint256 startOffset)
254
- internal
255
- pure
256
- returns (GlobalState memory state, uint256 offset)
257
- {
236
+ function globalState(
237
+ bytes calldata proof,
238
+ uint256 startOffset
239
+ ) internal pure returns (GlobalState memory state, uint256 offset) {
258
240
  offset = startOffset;
259
241
 
260
242
  // using constant ints for array size requires newer solidity
@@ -270,11 +252,10 @@ library Deserialize {
270
252
  state = GlobalState({bytes32Vals: bytes32Vals, u64Vals: u64Vals});
271
253
  }
272
254
 
273
- function machine(bytes calldata proof, uint256 startOffset)
274
- internal
275
- pure
276
- returns (Machine memory mach, uint256 offset)
277
- {
255
+ function machine(
256
+ bytes calldata proof,
257
+ uint256 startOffset
258
+ ) internal pure returns (Machine memory mach, uint256 offset) {
278
259
  offset = startOffset;
279
260
  {
280
261
  MachineStatus status;
@@ -287,8 +268,6 @@ library Deserialize {
287
268
  status = MachineStatus.FINISHED;
288
269
  } else if (statusU8 == 2) {
289
270
  status = MachineStatus.ERRORED;
290
- } else if (statusU8 == 3) {
291
- status = MachineStatus.TOO_FAR;
292
271
  } else {
293
272
  revert("UNKNOWN_MACH_STATUS");
294
273
  }
@@ -326,11 +305,10 @@ library Deserialize {
326
305
  (mach.modulesRoot, offset) = b32(proof, offset);
327
306
  }
328
307
 
329
- function merkleProof(bytes calldata proof, uint256 startOffset)
330
- internal
331
- pure
332
- returns (MerkleProof memory merkle, uint256 offset)
333
- {
308
+ function merkleProof(
309
+ bytes calldata proof,
310
+ uint256 startOffset
311
+ ) internal pure returns (MerkleProof memory merkle, uint256 offset) {
334
312
  offset = startOffset;
335
313
  uint8 length;
336
314
  (length, offset) = u8(proof, offset);