@arbitrum/nitro-contracts 3.0.0-beta.1 → 3.0.1-beta.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 (223) 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/ERC1967Upgrade.sol/ERC1967Upgrade.dbg.json +1 -1
  5. package/build/contracts/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.dbg.json +1 -1
  6. package/build/contracts/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.dbg.json +1 -1
  7. package/build/contracts/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol/UpgradeableBeacon.dbg.json +1 -1
  8. package/build/contracts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.dbg.json +1 -1
  9. package/build/contracts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.dbg.json +1 -1
  10. package/build/contracts/@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol/UUPSUpgradeable.dbg.json +1 -1
  11. package/build/contracts/@openzeppelin/contracts/security/ReentrancyGuard.sol/ReentrancyGuard.dbg.json +1 -1
  12. package/build/contracts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json +1 -1
  13. package/build/contracts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json +1 -1
  14. package/build/contracts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json +1 -1
  15. package/build/contracts/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.dbg.json +1 -1
  16. package/build/contracts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.dbg.json +1 -1
  17. package/build/contracts/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json +1 -1
  18. package/build/contracts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json +1 -1
  19. package/build/contracts/@openzeppelin/contracts/utils/Create2.sol/Create2.dbg.json +1 -1
  20. package/build/contracts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.dbg.json +1 -1
  21. package/build/contracts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json +1 -1
  22. package/build/contracts/@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.dbg.json +1 -1
  23. package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlEnumerableUpgradeable.sol/AccessControlEnumerableUpgradeable.dbg.json +1 -1
  24. package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol/AccessControlUpgradeable.dbg.json +1 -1
  25. package/build/contracts/@openzeppelin/contracts-upgradeable/access/IAccessControlEnumerableUpgradeable.sol/IAccessControlEnumerableUpgradeable.dbg.json +1 -1
  26. package/build/contracts/@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol/IAccessControlUpgradeable.dbg.json +1 -1
  27. package/build/contracts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.dbg.json +1 -1
  28. package/build/contracts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.dbg.json +1 -1
  29. package/build/contracts/@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol/PausableUpgradeable.dbg.json +1 -1
  30. package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol/ERC20Upgradeable.dbg.json +1 -1
  31. package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.dbg.json +1 -1
  32. package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20BurnableUpgradeable.sol/ERC20BurnableUpgradeable.dbg.json +1 -1
  33. package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20MetadataUpgradeable.sol/IERC20MetadataUpgradeable.dbg.json +1 -1
  34. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.dbg.json +1 -1
  35. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.dbg.json +1 -1
  36. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/Create2Upgradeable.sol/Create2Upgradeable.dbg.json +1 -1
  37. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol/StorageSlotUpgradeable.dbg.json +1 -1
  38. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol/StringsUpgradeable.dbg.json +1 -1
  39. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/cryptography/ECDSAUpgradeable.sol/ECDSAUpgradeable.dbg.json +1 -1
  40. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/cryptography/draft-EIP712Upgradeable.sol/EIP712Upgradeable.dbg.json +1 -1
  41. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol/ERC165Upgradeable.dbg.json +1 -1
  42. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol/IERC165Upgradeable.dbg.json +1 -1
  43. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/structs/EnumerableSetUpgradeable.sol/EnumerableSetUpgradeable.dbg.json +1 -1
  44. package/build/contracts/src/assertionStakingPool/AbsBoldStakingPool.sol/AbsBoldStakingPool.dbg.json +1 -1
  45. package/build/contracts/src/assertionStakingPool/AssertionStakingPool.sol/AssertionStakingPool.dbg.json +1 -1
  46. package/build/contracts/src/assertionStakingPool/AssertionStakingPoolCreator.sol/AssertionStakingPoolCreator.dbg.json +1 -1
  47. package/build/contracts/src/assertionStakingPool/EdgeStakingPool.sol/EdgeStakingPool.dbg.json +1 -1
  48. package/build/contracts/src/assertionStakingPool/EdgeStakingPoolCreator.sol/EdgeStakingPoolCreator.dbg.json +1 -1
  49. package/build/contracts/src/assertionStakingPool/StakingPoolCreatorUtils.sol/StakingPoolCreatorUtils.dbg.json +1 -1
  50. package/build/contracts/src/assertionStakingPool/interfaces/IAbsBoldStakingPool.sol/IAbsBoldStakingPool.dbg.json +1 -1
  51. package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPool.sol/IAssertionStakingPool.dbg.json +1 -1
  52. package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPoolCreator.sol/IAssertionStakingPoolCreator.dbg.json +1 -1
  53. package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPool.sol/IEdgeStakingPool.dbg.json +1 -1
  54. package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPoolCreator.sol/IEdgeStakingPoolCreator.dbg.json +1 -1
  55. package/build/contracts/src/bridge/AbsBridge.sol/AbsBridge.dbg.json +1 -1
  56. package/build/contracts/src/bridge/AbsInbox.sol/AbsInbox.dbg.json +1 -1
  57. package/build/contracts/src/bridge/AbsOutbox.sol/AbsOutbox.dbg.json +1 -1
  58. package/build/contracts/src/bridge/Bridge.sol/Bridge.dbg.json +1 -1
  59. package/build/contracts/src/bridge/DelayBuffer.sol/DelayBuffer.dbg.json +1 -1
  60. package/build/contracts/src/bridge/ERC20Bridge.sol/ERC20Bridge.dbg.json +1 -1
  61. package/build/contracts/src/bridge/ERC20Inbox.sol/ERC20Inbox.dbg.json +1 -1
  62. package/build/contracts/src/bridge/ERC20Outbox.sol/ERC20Outbox.dbg.json +1 -1
  63. package/build/contracts/src/bridge/GasRefunder.sol/GasRefunder.dbg.json +1 -1
  64. package/build/contracts/src/bridge/IBridge.sol/IBridge.dbg.json +1 -1
  65. package/build/contracts/src/bridge/IDelayedMessageProvider.sol/IDelayedMessageProvider.dbg.json +1 -1
  66. package/build/contracts/src/bridge/IERC20Bridge.sol/IERC20Bridge.dbg.json +1 -1
  67. package/build/contracts/src/bridge/IERC20Inbox.sol/IERC20Inbox.dbg.json +1 -1
  68. package/build/contracts/src/bridge/IEthBridge.sol/IEthBridge.dbg.json +1 -1
  69. package/build/contracts/src/bridge/IInbox.sol/IInbox.dbg.json +1 -1
  70. package/build/contracts/src/bridge/IInboxBase.sol/IInboxBase.dbg.json +1 -1
  71. package/build/contracts/src/bridge/IOutbox.sol/IOutbox.dbg.json +1 -1
  72. package/build/contracts/src/bridge/IOwnable.sol/IOwnable.dbg.json +1 -1
  73. package/build/contracts/src/bridge/ISequencerInbox.sol/ISequencerInbox.dbg.json +1 -1
  74. package/build/contracts/src/bridge/Inbox.sol/Inbox.dbg.json +1 -1
  75. package/build/contracts/src/bridge/Messages.sol/Messages.dbg.json +1 -1
  76. package/build/contracts/src/bridge/Outbox.sol/Outbox.dbg.json +1 -1
  77. package/build/contracts/src/bridge/SequencerInbox.sol/SequencerInbox.dbg.json +1 -1
  78. package/build/contracts/src/chain/CacheManager.sol/CacheManager.dbg.json +1 -1
  79. package/build/contracts/src/challengeV2/IAssertionChain.sol/IAssertionChain.dbg.json +1 -1
  80. package/build/contracts/src/challengeV2/IEdgeChallengeManager.sol/IEdgeChallengeManager.dbg.json +1 -1
  81. package/build/contracts/src/challengeV2/libraries/ArrayUtilsLib.sol/ArrayUtilsLib.dbg.json +1 -1
  82. package/build/contracts/src/challengeV2/libraries/ChallengeEdgeLib.sol/ChallengeEdgeLib.dbg.json +1 -1
  83. package/build/contracts/src/challengeV2/libraries/EdgeChallengeManagerLib.sol/EdgeChallengeManagerLib.dbg.json +1 -1
  84. package/build/contracts/src/challengeV2/libraries/MerkleTreeAccumulatorLib.sol/MerkleTreeAccumulatorLib.dbg.json +1 -1
  85. package/build/contracts/src/challengeV2/libraries/UintUtilsLib.sol/UintUtilsLib.dbg.json +1 -1
  86. package/build/contracts/src/express-lane-auction/Balance.sol/BalanceLib.dbg.json +1 -1
  87. package/build/contracts/src/express-lane-auction/Burner.sol/Burner.dbg.json +1 -1
  88. package/build/contracts/src/express-lane-auction/ELCRound.sol/LatestELCRoundsLib.dbg.json +1 -1
  89. package/build/contracts/src/express-lane-auction/ExpressLaneAuction.sol/ExpressLaneAuction.dbg.json +1 -1
  90. package/build/contracts/src/express-lane-auction/IExpressLaneAuction.sol/IExpressLaneAuction.dbg.json +1 -1
  91. package/build/contracts/src/express-lane-auction/RoundTimingInfo.sol/RoundTimingInfoLib.dbg.json +1 -1
  92. package/build/contracts/src/libraries/AddressAliasHelper.sol/AddressAliasHelper.dbg.json +1 -1
  93. package/build/contracts/src/libraries/AdminFallbackProxy.sol/AdminFallbackProxy.dbg.json +1 -1
  94. package/build/contracts/src/libraries/AdminFallbackProxy.sol/DoubleLogicERC1967Upgrade.dbg.json +1 -1
  95. package/build/contracts/src/libraries/ArbitrumChecker.sol/ArbitrumChecker.dbg.json +1 -1
  96. package/build/contracts/src/libraries/CallerChecker.sol/CallerChecker.dbg.json +1 -1
  97. package/build/contracts/src/libraries/CryptographyPrimitives.sol/CryptographyPrimitives.dbg.json +1 -1
  98. package/build/contracts/src/libraries/DecimalsConverterHelper.sol/DecimalsConverterHelper.dbg.json +1 -1
  99. package/build/contracts/src/libraries/DelegateCallAware.sol/DelegateCallAware.dbg.json +1 -1
  100. package/build/contracts/src/libraries/DoubleLogicUUPSUpgradeable.sol/DoubleLogicUUPSUpgradeable.dbg.json +1 -1
  101. package/build/contracts/src/libraries/GasRefundEnabled.sol/GasRefundEnabled.dbg.json +1 -1
  102. package/build/contracts/src/libraries/IGasRefunder.sol/IGasRefunder.dbg.json +1 -1
  103. package/build/contracts/src/libraries/IReader4844.sol/IReader4844.dbg.json +1 -1
  104. package/build/contracts/src/libraries/MerkleLib.sol/MerkleLib.dbg.json +1 -1
  105. package/build/contracts/src/libraries/UUPSNotUpgradeable.sol/UUPSNotUpgradeable.dbg.json +1 -1
  106. package/build/contracts/src/mocks/ArbOS11To32UpgradeTest.sol/ArbOS11To32UpgradeTest.dbg.json +4 -0
  107. package/build/contracts/src/mocks/ArbOS11To32UpgradeTest.sol/ArbOS11To32UpgradeTest.json +24 -0
  108. package/build/contracts/src/mocks/Benchmarks.sol/Benchmarks.dbg.json +1 -1
  109. package/build/contracts/src/mocks/BigMap.sol/BigMap.dbg.json +4 -0
  110. package/build/contracts/src/mocks/BigMap.sol/BigMap.json +48 -0
  111. package/build/contracts/src/mocks/BridgeStub.sol/BridgeStub.dbg.json +1 -1
  112. package/build/contracts/src/mocks/BridgeUnproxied.sol/BridgeUnproxied.dbg.json +1 -1
  113. package/build/contracts/src/mocks/CreateTest.sol/CreateTest.dbg.json +1 -1
  114. package/build/contracts/src/mocks/InboxStub.sol/InboxStub.dbg.json +1 -1
  115. package/build/contracts/src/mocks/MerkleTreeAccess.sol/MerkleTreeAccess.dbg.json +1 -1
  116. package/build/contracts/src/mocks/MockRollupEventInbox.sol/MockRollupEventInbox.dbg.json +1 -1
  117. package/build/contracts/src/mocks/MultiCallTest.sol/MultiCallTest.dbg.json +1 -1
  118. package/build/contracts/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol/PendingBlkTimeAndNrAdvanceCheck.dbg.json +1 -1
  119. package/build/contracts/src/mocks/Program.sol/ProgramTest.dbg.json +1 -1
  120. package/build/contracts/src/mocks/ProxyAdminForBinding.sol/ProxyAdminForBinding.dbg.json +1 -1
  121. package/build/contracts/src/mocks/SdkStorage.sol/SdkStorage.dbg.json +1 -1
  122. package/build/contracts/src/mocks/SequencerInboxBlobMock.sol/SequencerInboxBlobMock.dbg.json +1 -1
  123. package/build/contracts/src/mocks/SequencerInboxStub.sol/SequencerInboxStub.dbg.json +1 -1
  124. package/build/contracts/src/mocks/Simple.sol/Simple.dbg.json +1 -1
  125. package/build/contracts/src/mocks/SimpleCacheManager.sol/SimpleCacheManager.dbg.json +1 -1
  126. package/build/contracts/src/mocks/SimpleOneStepProofEntry.sol/SimpleOneStepProofEntry.dbg.json +1 -1
  127. package/build/contracts/src/mocks/SimpleProxy.sol/SimpleProxy.dbg.json +1 -1
  128. package/build/contracts/src/mocks/TestWETH9.sol/IWETH9.dbg.json +1 -1
  129. package/build/contracts/src/mocks/TestWETH9.sol/TestWETH9.dbg.json +1 -1
  130. package/build/contracts/src/mocks/UpgradeExecutorMock.sol/UpgradeExecutorMock.dbg.json +1 -1
  131. package/build/contracts/src/node-interface/NodeInterface.sol/NodeInterface.dbg.json +1 -1
  132. package/build/contracts/src/node-interface/NodeInterfaceDebug.sol/NodeInterfaceDebug.dbg.json +1 -1
  133. package/build/contracts/src/osp/HashProofHelper.sol/HashProofHelper.dbg.json +1 -1
  134. package/build/contracts/src/osp/IOneStepProofEntry.sol/IOneStepProofEntry.dbg.json +1 -1
  135. package/build/contracts/src/osp/IOneStepProofEntry.sol/OneStepProofEntryLib.dbg.json +1 -1
  136. package/build/contracts/src/osp/IOneStepProver.sol/IOneStepProver.dbg.json +1 -1
  137. package/build/contracts/src/osp/OneStepProofEntry.sol/OneStepProofEntry.dbg.json +1 -1
  138. package/build/contracts/src/osp/OneStepProver0.sol/OneStepProver0.dbg.json +1 -1
  139. package/build/contracts/src/osp/OneStepProverHostIo.sol/OneStepProverHostIo.dbg.json +1 -1
  140. package/build/contracts/src/osp/OneStepProverMath.sol/OneStepProverMath.dbg.json +1 -1
  141. package/build/contracts/src/osp/OneStepProverMemory.sol/OneStepProverMemory.dbg.json +1 -1
  142. package/build/contracts/src/precompiles/ArbAddressTable.sol/ArbAddressTable.dbg.json +1 -1
  143. package/build/contracts/src/precompiles/ArbAggregator.sol/ArbAggregator.dbg.json +1 -1
  144. package/build/contracts/src/precompiles/ArbBLS.sol/ArbBLS.dbg.json +1 -1
  145. package/build/contracts/src/precompiles/ArbDebug.sol/ArbDebug.dbg.json +1 -1
  146. package/build/contracts/src/precompiles/ArbFunctionTable.sol/ArbFunctionTable.dbg.json +1 -1
  147. package/build/contracts/src/precompiles/ArbGasInfo.sol/ArbGasInfo.dbg.json +1 -1
  148. package/build/contracts/src/precompiles/ArbInfo.sol/ArbInfo.dbg.json +1 -1
  149. package/build/contracts/src/precompiles/ArbOwner.sol/ArbOwner.dbg.json +1 -1
  150. package/build/contracts/src/precompiles/ArbOwnerPublic.sol/ArbOwnerPublic.dbg.json +1 -1
  151. package/build/contracts/src/precompiles/ArbRetryableTx.sol/ArbRetryableTx.dbg.json +1 -1
  152. package/build/contracts/src/precompiles/ArbStatistics.sol/ArbStatistics.dbg.json +1 -1
  153. package/build/contracts/src/precompiles/ArbSys.sol/ArbSys.dbg.json +1 -1
  154. package/build/contracts/src/precompiles/ArbWasm.sol/ArbWasm.dbg.json +1 -1
  155. package/build/contracts/src/precompiles/ArbWasmCache.sol/ArbWasmCache.dbg.json +1 -1
  156. package/build/contracts/src/precompiles/ArbosActs.sol/ArbosActs.dbg.json +1 -1
  157. package/build/contracts/src/precompiles/ArbosTest.sol/ArbosTest.dbg.json +1 -1
  158. package/build/contracts/src/rollup/AbsRollupEventInbox.sol/AbsRollupEventInbox.dbg.json +1 -1
  159. package/build/contracts/src/rollup/Assertion.sol/AssertionNodeLib.dbg.json +1 -1
  160. package/build/contracts/src/rollup/AssertionState.sol/AssertionStateLib.dbg.json +1 -1
  161. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/BOLDUpgradeAction.dbg.json +1 -1
  162. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ConstantArrayStorage.dbg.json +1 -1
  163. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollup.dbg.json +1 -1
  164. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollupAdmin.dbg.json +1 -1
  165. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ISeqInboxPostUpgradeInit.dbg.json +1 -1
  166. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/StateHashPreImageLookup.dbg.json +1 -1
  167. package/build/contracts/src/rollup/BridgeCreator.sol/BridgeCreator.dbg.json +1 -1
  168. package/build/contracts/src/rollup/DeployHelper.sol/DeployHelper.dbg.json +1 -1
  169. package/build/contracts/src/rollup/ERC20RollupEventInbox.sol/ERC20RollupEventInbox.dbg.json +1 -1
  170. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/FactoryDeployerHelper.dbg.json +1 -1
  171. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IDeployHelper.dbg.json +1 -1
  172. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IERC20.dbg.json +1 -1
  173. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IERC20Bridge.dbg.json +1 -1
  174. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IInboxBase.dbg.json +1 -1
  175. package/build/contracts/src/rollup/IRollupAdmin.sol/IRollupAdmin.dbg.json +1 -1
  176. package/build/contracts/src/rollup/IRollupCore.sol/IRollupCore.dbg.json +1 -1
  177. package/build/contracts/src/rollup/IRollupEventInbox.sol/IRollupEventInbox.dbg.json +1 -1
  178. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUser.dbg.json +1 -1
  179. package/build/contracts/src/rollup/RollupAdminLogic.sol/RollupAdminLogic.dbg.json +1 -1
  180. package/build/contracts/src/rollup/RollupCore.sol/RollupCore.dbg.json +1 -1
  181. package/build/contracts/src/rollup/RollupCreator.sol/RollupCreator.dbg.json +1 -1
  182. package/build/contracts/src/rollup/RollupEventInbox.sol/RollupEventInbox.dbg.json +1 -1
  183. package/build/contracts/src/rollup/RollupLib.sol/RollupLib.dbg.json +1 -1
  184. package/build/contracts/src/rollup/RollupProxy.sol/RollupProxy.dbg.json +1 -1
  185. package/build/contracts/src/rollup/ValidatorWallet.sol/ValidatorWallet.dbg.json +1 -1
  186. package/build/contracts/src/rollup/ValidatorWalletCreator.sol/ValidatorWalletCreator.dbg.json +1 -1
  187. package/build/contracts/src/state/Deserialize.sol/Deserialize.dbg.json +1 -1
  188. package/build/contracts/src/state/GlobalState.sol/GlobalStateLib.dbg.json +1 -1
  189. package/build/contracts/src/state/Instructions.sol/Instructions.dbg.json +1 -1
  190. package/build/contracts/src/state/Machine.sol/MachineLib.dbg.json +1 -1
  191. package/build/contracts/src/state/MerkleProof.sol/MerkleProofLib.dbg.json +1 -1
  192. package/build/contracts/src/state/Module.sol/ModuleLib.dbg.json +1 -1
  193. package/build/contracts/src/state/ModuleMemory.sol/ModuleMemoryLib.dbg.json +1 -1
  194. package/build/contracts/src/state/ModuleMemoryCompact.sol/ModuleMemoryCompactLib.dbg.json +1 -1
  195. package/build/contracts/src/state/MultiStack.sol/MultiStackLib.dbg.json +1 -1
  196. package/build/contracts/src/state/PcArray.sol/PcArrayLib.dbg.json +1 -1
  197. package/build/contracts/src/state/StackFrame.sol/StackFrameLib.dbg.json +1 -1
  198. package/build/contracts/src/state/Value.sol/ValueLib.dbg.json +1 -1
  199. package/build/contracts/src/state/ValueArray.sol/ValueArrayLib.dbg.json +1 -1
  200. package/build/contracts/src/state/ValueStack.sol/ValueStackLib.dbg.json +1 -1
  201. package/build/contracts/src/stylus/StylusDeployer.sol/StylusDeployer.dbg.json +4 -0
  202. package/build/contracts/src/stylus/StylusDeployer.sol/StylusDeployer.json +144 -0
  203. package/build/contracts/src/test-helpers/BridgeTester.sol/BridgeTester.dbg.json +1 -1
  204. package/build/contracts/src/test-helpers/CryptographyPrimitivesTester.sol/CryptographyPrimitivesTester.dbg.json +1 -1
  205. package/build/contracts/src/test-helpers/EthVault.sol/EthVault.dbg.json +1 -1
  206. package/build/contracts/src/test-helpers/MessageTester.sol/MessageTester.dbg.json +1 -1
  207. package/build/contracts/src/test-helpers/NoReceiveForwarder.sol/ConstructorError.dbg.json +4 -0
  208. package/build/contracts/src/test-helpers/NoReceiveForwarder.sol/ConstructorError.json +16 -0
  209. package/build/contracts/src/test-helpers/NoReceiveForwarder.sol/ConstructorFine.dbg.json +4 -0
  210. package/build/contracts/src/test-helpers/NoReceiveForwarder.sol/ConstructorFine.json +29 -0
  211. package/build/contracts/src/test-helpers/NoReceiveForwarder.sol/NoReceiveForwarder.dbg.json +4 -0
  212. package/build/contracts/src/test-helpers/NoReceiveForwarder.sol/NoReceiveForwarder.json +29 -0
  213. package/build/contracts/src/test-helpers/NoReceiveForwarder.sol/ReceivingForwarder.dbg.json +4 -0
  214. package/build/contracts/src/test-helpers/NoReceiveForwarder.sol/ReceivingForwarder.json +33 -0
  215. package/build/contracts/src/test-helpers/OutboxWithoutOptTester.sol/OutboxWithoutOptTester.dbg.json +1 -1
  216. package/build/contracts/src/test-helpers/RollupMock.sol/RollupMock.dbg.json +1 -1
  217. package/build/contracts/src/test-helpers/TestToken.sol/TestToken.dbg.json +1 -1
  218. package/build/contracts/src/test-helpers/ValueArrayTester.sol/ValueArrayTester.dbg.json +1 -1
  219. package/package.json +2 -1
  220. package/src/mocks/ArbOS11To32UpgradeTest.sol +18 -0
  221. package/src/mocks/BigMap.sol +23 -0
  222. package/src/stylus/StylusDeployer.sol +164 -0
  223. package/src/test-helpers/NoReceiveForwarder.sol +38 -0
@@ -0,0 +1,29 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "NoReceiveForwarder",
4
+ "sourceName": "src/test-helpers/NoReceiveForwarder.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "to",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "bytes",
15
+ "name": "data",
16
+ "type": "bytes"
17
+ }
18
+ ],
19
+ "name": "forward",
20
+ "outputs": [],
21
+ "stateMutability": "payable",
22
+ "type": "function"
23
+ }
24
+ ],
25
+ "bytecode": "0x608060405234801561001057600080fd5b506101fd806100206000396000f3fe60806040526004361061001e5760003560e01c80636fadcf7214610023575b600080fd5b610036610031366004610119565b610038565b005b60008373ffffffffffffffffffffffffffffffffffffffff163484846040516100629291906101b7565b60006040518083038185875af1925050503d806000811461009f576040519150601f19603f3d011682016040523d82523d6000602084013e6100a4565b606091505b5050905080610113576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f63616c6c20666f7277617264206661696c656400000000000000000000000000604482015260640160405180910390fd5b50505050565b60008060006040848603121561012e57600080fd5b833573ffffffffffffffffffffffffffffffffffffffff8116811461015257600080fd5b9250602084013567ffffffffffffffff8082111561016f57600080fd5b818601915086601f83011261018357600080fd5b81358181111561019257600080fd5b8760208285010111156101a457600080fd5b6020830194508093505050509250925092565b818382376000910190815291905056fea26469706673582212203996320cdbc9b8ea355853350e9a51787af243804ec23fd90319a01c2b224d9364736f6c63430008110033",
26
+ "deployedBytecode": "0x60806040526004361061001e5760003560e01c80636fadcf7214610023575b600080fd5b610036610031366004610119565b610038565b005b60008373ffffffffffffffffffffffffffffffffffffffff163484846040516100629291906101b7565b60006040518083038185875af1925050503d806000811461009f576040519150601f19603f3d011682016040523d82523d6000602084013e6100a4565b606091505b5050905080610113576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f63616c6c20666f7277617264206661696c656400000000000000000000000000604482015260640160405180910390fd5b50505050565b60008060006040848603121561012e57600080fd5b833573ffffffffffffffffffffffffffffffffffffffff8116811461015257600080fd5b9250602084013567ffffffffffffffff8082111561016f57600080fd5b818601915086601f83011261018357600080fd5b81358181111561019257600080fd5b8760208285010111156101a457600080fd5b6020830194508093505050509250925092565b818382376000910190815291905056fea26469706673582212203996320cdbc9b8ea355853350e9a51787af243804ec23fd90319a01c2b224d9364736f6c63430008110033",
27
+ "linkReferences": {},
28
+ "deployedLinkReferences": {}
29
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../build-info/911b9fef16d3e7eaeb8dea63439959bf.json"
4
+ }
@@ -0,0 +1,33 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "ReceivingForwarder",
4
+ "sourceName": "src/test-helpers/NoReceiveForwarder.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "to",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "bytes",
15
+ "name": "data",
16
+ "type": "bytes"
17
+ }
18
+ ],
19
+ "name": "forward",
20
+ "outputs": [],
21
+ "stateMutability": "payable",
22
+ "type": "function"
23
+ },
24
+ {
25
+ "stateMutability": "payable",
26
+ "type": "receive"
27
+ }
28
+ ],
29
+ "bytecode": "0x608060405234801561001057600080fd5b50610208806100206000396000f3fe6080604052600436106100225760003560e01c80636fadcf721461002e57600080fd5b3661002957005b600080fd5b61004161003c366004610124565b610043565b005b60008373ffffffffffffffffffffffffffffffffffffffff1634848460405161006d9291906101c2565b60006040518083038185875af1925050503d80600081146100aa576040519150601f19603f3d011682016040523d82523d6000602084013e6100af565b606091505b505090508061011e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f63616c6c20666f7277617264206661696c656400000000000000000000000000604482015260640160405180910390fd5b50505050565b60008060006040848603121561013957600080fd5b833573ffffffffffffffffffffffffffffffffffffffff8116811461015d57600080fd5b9250602084013567ffffffffffffffff8082111561017a57600080fd5b818601915086601f83011261018e57600080fd5b81358181111561019d57600080fd5b8760208285010111156101af57600080fd5b6020830194508093505050509250925092565b818382376000910190815291905056fea2646970667358221220fb5da8e70caf6f2639bfbe3a4913e31755738d9142bcd77130be79d23e58c72a64736f6c63430008110033",
30
+ "deployedBytecode": "0x6080604052600436106100225760003560e01c80636fadcf721461002e57600080fd5b3661002957005b600080fd5b61004161003c366004610124565b610043565b005b60008373ffffffffffffffffffffffffffffffffffffffff1634848460405161006d9291906101c2565b60006040518083038185875af1925050503d80600081146100aa576040519150601f19603f3d011682016040523d82523d6000602084013e6100af565b606091505b505090508061011e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f63616c6c20666f7277617264206661696c656400000000000000000000000000604482015260640160405180910390fd5b50505050565b60008060006040848603121561013957600080fd5b833573ffffffffffffffffffffffffffffffffffffffff8116811461015d57600080fd5b9250602084013567ffffffffffffffff8082111561017a57600080fd5b818601915086601f83011261018e57600080fd5b81358181111561019d57600080fd5b8760208285010111156101af57600080fd5b6020830194508093505050509250925092565b818382376000910190815291905056fea2646970667358221220fb5da8e70caf6f2639bfbe3a4913e31755738d9142bcd77130be79d23e58c72a64736f6c63430008110033",
31
+ "linkReferences": {},
32
+ "deployedLinkReferences": {}
33
+ }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/333933d304b0c599711e6e34df65b848.json"
3
+ "buildInfo": "../../../build-info/911b9fef16d3e7eaeb8dea63439959bf.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/333933d304b0c599711e6e34df65b848.json"
3
+ "buildInfo": "../../../build-info/911b9fef16d3e7eaeb8dea63439959bf.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/333933d304b0c599711e6e34df65b848.json"
3
+ "buildInfo": "../../../build-info/911b9fef16d3e7eaeb8dea63439959bf.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/333933d304b0c599711e6e34df65b848.json"
3
+ "buildInfo": "../../../build-info/911b9fef16d3e7eaeb8dea63439959bf.json"
4
4
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arbitrum/nitro-contracts",
3
- "version": "3.0.0-beta.1",
3
+ "version": "3.0.1-beta.0",
4
4
  "description": "Layer 2 precompiles and rollup for Arbitrum Nitro",
5
5
  "author": "Offchain Labs, Inc.",
6
6
  "license": "BUSL-1.1",
@@ -40,6 +40,7 @@
40
40
  "test:storage": "./test/storage/test.bash",
41
41
  "test:signatures": "./test/signatures/test-sigs.bash",
42
42
  "test:e2e": "hardhat test test/e2e/*.ts",
43
+ "test:e2e:stylus": "hardhat test test/e2e/stylusDeployer.ts",
43
44
  "test:upgrade": "./scripts/testUpgrade.bash",
44
45
  "test:foundry": "forge test --gas-limit 10000000000",
45
46
  "test:update": "yarn run test:signatures || yarn run test:storage",
@@ -0,0 +1,18 @@
1
+ // Copyright 2024, Offchain Labs, Inc.
2
+ // For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE
3
+ // SPDX-License-Identifier: BUSL-1.1
4
+
5
+ pragma solidity ^0.8.24;
6
+
7
+ import "../precompiles/ArbSys.sol";
8
+
9
+ contract ArbOS11To32UpgradeTest {
10
+ function mcopy() external returns (bytes32 x) {
11
+ assembly {
12
+ mstore(0x20, 0x9) // Store 0x9 at word 1 in memory
13
+ mcopy(0, 0x20, 0x20) // Copies 0x9 to word 0 in memory
14
+ x := mload(0) // Returns 32 bytes "0x9"
15
+ }
16
+ require(ArbSys(address(0x64)).arbOSVersion() == 55 + 32, "EXPECTED_ARBOS_32");
17
+ }
18
+ }
@@ -0,0 +1,23 @@
1
+ // Copyright 2025, Offchain Labs, Inc.
2
+ // For license information, see:
3
+ // https://github.com/OffchainLabs/nitro/blob/master/LICENSE.md
4
+ // SPDX-License-Identifier: BUSL-1.1
5
+
6
+ pragma solidity ^0.8.0;
7
+
8
+ contract BigMap {
9
+ mapping(uint256 => uint256) public data;
10
+ uint256 size;
11
+
12
+ function clearAndAddValues(uint256 clear, uint256 add) external {
13
+ uint256 i = size;
14
+ while (i < size + add) {
15
+ data[i] = 8675309;
16
+ i++;
17
+ }
18
+ size = i;
19
+ for (uint256 j = 0; j < clear; j++) {
20
+ data[j] = 0;
21
+ }
22
+ }
23
+ }
@@ -0,0 +1,164 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity 0.8.17;
3
+
4
+ import {ArbWasm} from "../precompiles/ArbWasm.sol";
5
+
6
+ /// @title A Stylus contract deployer, activator and initializer
7
+ /// @author The name of the author
8
+ /// @notice Stylus contracts do not support constructors. Instead, Stylus devs can use this contract to deploy and
9
+ /// initialize their contracts atomically
10
+ contract StylusDeployer {
11
+ ArbWasm constant ARB_WASM = ArbWasm(0x0000000000000000000000000000000000000071);
12
+
13
+ event ContractDeployed(address deployedContract);
14
+
15
+ error ContractDeploymentError(bytes bytecode);
16
+ error ContractInitializationError(address newContract);
17
+ error RefundExcessValueError(uint256 excessValue);
18
+ error EmptyBytecode();
19
+ error InitValueButNotInitData();
20
+
21
+ /// @notice Deploy, activate and initialize a stylus contract
22
+ /// In order to call a stylus contract, and therefore initialize it, it must first be activated.
23
+ /// This contract provides an atomic way of deploying, activating and initializing a stylus contract.
24
+ ///
25
+ /// Initialisation will be called if initData is supplied, other initialization is skipped
26
+ /// Activation is not always necessary. If a contract has the same code has as another recently activated
27
+ /// contract then activation will be skipped.
28
+ /// If additional value remains in the contract after activation it will be transferred to the msg.sender
29
+ /// to that end the caller must ensure that they can receive eth.
30
+ ///
31
+ /// The caller should do the following before calling this contract:
32
+ /// 1. Check whether the contract will require activation, and if so what the cost will be.
33
+ /// This can be done by spoofing an address with the contract code, then calling ArbWasm.programVersion to compare the
34
+ /// the returned result against ArbWasm.stylusVersion. If activation is required ArbWasm.activateProgram can then be called
35
+ /// to find the returned dataFee.
36
+ /// 2. Next this deploy function can be called. The value of the call must be set to the previously ascertained dataFee + initValue
37
+ /// If activation is not require, the value of the call should be set to initValue
38
+ ///
39
+ /// Note: Stylus contract caching is not done by the deployer, and will have to be done separately after deployment.
40
+ /// See https://docs.arbitrum.io/stylus/how-tos/caching-contracts for more details on caching
41
+ /// @param bytecode The bytecode of the stylus contract to be deployed
42
+ /// @param initData Initialisation call data. After deployment the contract will be called with this data
43
+ /// If no initialisation data is provided then the newly deployed contract will not be called.
44
+ /// This means that the receive or dataless fallback function cannot be called from this contract.
45
+ /// @param initValue Initialisation value. After deployment, the contract will be called with the init data and this value.
46
+ /// At least as much eth as init value must be provided with this call. Init value is specified here separately
47
+ /// rather than using the msg.value since the msg.value may need to be greater than the init value to accomodate activation data fee.
48
+ /// See the @notice block above for more details.
49
+ /// @param salt If a non zero salt is provided the contract will be created using CREATE2 instead of CREATE
50
+ /// The supplied salt will be hashed with the initData so that wherever the address is observed
51
+ /// it was initialised with the same variables.
52
+ /// @return The address of the deployed conract
53
+ function deploy(
54
+ bytes calldata bytecode,
55
+ bytes calldata initData,
56
+ uint256 initValue,
57
+ bytes32 salt
58
+ ) public payable returns (address) {
59
+ if (salt != 0) {
60
+ // if a salt was supplied, hash the salt with the init data. This guarantees that
61
+ // anywhere the address of this contract is seen the same init data was used
62
+ salt = initSalt(salt, initData);
63
+ }
64
+
65
+ address newContractAddress = deployContract(bytecode, salt);
66
+ bool shouldActivate = requiresActivation(newContractAddress);
67
+ uint256 dataFee = 0;
68
+ if (shouldActivate) {
69
+ // ensure there will be enough left over for init
70
+ // activateProgram will return unused value back to this contract without an EVM call
71
+ uint256 activationValue = msg.value - initValue;
72
+ (, dataFee) = ARB_WASM.activateProgram{value: activationValue}(newContractAddress);
73
+ }
74
+
75
+ // initialize - this will fail if the program wasn't activated by this point
76
+ // we check if initData exists to avoid calling contracts unnecessarily
77
+ if (initData.length != 0) {
78
+ (bool success,) = address(newContractAddress).call{value: initValue}(initData);
79
+ if (!success) {
80
+ revert ContractInitializationError(newContractAddress);
81
+ }
82
+ } else if (initValue != 0) {
83
+ // if initValue exists init data should too
84
+ revert InitValueButNotInitData();
85
+ }
86
+
87
+ // refund any remaining value
88
+ uint256 bal = msg.value - dataFee - initValue;
89
+ if (bal != 0) {
90
+ // the caller must be payable
91
+ (bool sent,) = payable(msg.sender).call{value: bal}("");
92
+ if (!sent) {
93
+ revert RefundExcessValueError(bal);
94
+ }
95
+ }
96
+
97
+ // activation already emits the following event:
98
+ // event ProgramActivated(bytes32 indexed codehash, bytes32 moduleHash, address program, uint256 dataFee, uint16 version);
99
+ emit ContractDeployed(newContractAddress);
100
+
101
+ return newContractAddress;
102
+ }
103
+
104
+ /// @notice When using CREATE2 the deployer includes the init data and value in the salt so that callers
105
+ /// can be sure that wherever they encourter this address it was initialized with the same data and value
106
+ /// @param salt A user supplied salt
107
+ /// @param initData The init data that will be used to init the deployed contract
108
+ function initSalt(bytes32 salt, bytes calldata initData) public pure returns (bytes32) {
109
+ return keccak256(abi.encodePacked(salt, initData));
110
+ }
111
+
112
+ /// @notice Checks whether a contract requires activation
113
+ function requiresActivation(
114
+ address addr
115
+ ) public view returns (bool) {
116
+ // currently codeHashVersion returns an error when codeHashVersion != stylus version
117
+ // so we do a try/catch to to check it
118
+ uint16 codeHashVersion;
119
+ try ARB_WASM.codehashVersion(addr.codehash) returns (uint16 version) {
120
+ codeHashVersion = version;
121
+ } catch {
122
+ // stylus version is always >= 1
123
+ codeHashVersion = 0;
124
+ }
125
+
126
+ // due to the bug in ARB_WASM.codeHashVersion we know that codeHashVersion will either be 0 or the current
127
+ // version. We still check that is not equal to the stylusVersion
128
+ return codeHashVersion != ARB_WASM.stylusVersion();
129
+ }
130
+
131
+ /// @notice Deploy the a contract with the supplied bytecode.
132
+ /// Will create2 if the supplied salt is non zero
133
+ function deployContract(bytes memory bytecode, bytes32 salt) internal returns (address) {
134
+ if (bytecode.length == 0) {
135
+ revert EmptyBytecode();
136
+ }
137
+
138
+ address newContractAddress;
139
+ if (salt != 0) {
140
+ assembly {
141
+ newContractAddress := create2(0, add(bytecode, 0x20), mload(bytecode), salt)
142
+ }
143
+ } else {
144
+ assembly {
145
+ newContractAddress := create(0, add(bytecode, 0x20), mload(bytecode))
146
+ }
147
+ }
148
+
149
+ // bubble up the revert if there was one
150
+ assembly {
151
+ if and(iszero(newContractAddress), not(iszero(returndatasize()))) {
152
+ let p := mload(0x40)
153
+ returndatacopy(p, 0, returndatasize())
154
+ revert(p, returndatasize())
155
+ }
156
+ }
157
+
158
+ if (newContractAddress == address(0)) {
159
+ revert ContractDeploymentError(bytecode);
160
+ }
161
+
162
+ return newContractAddress;
163
+ }
164
+ }
@@ -0,0 +1,38 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity ^0.8.0;
3
+
4
+ /// @notice A call forward that doesnt implement the receive or fallback functions, so cant receive value
5
+ contract NoReceiveForwarder {
6
+ function forward(address to, bytes calldata data) public payable {
7
+ (bool success,) = address(to).call{value: msg.value}(data);
8
+ require(success, "call forward failed");
9
+ }
10
+ }
11
+
12
+ /// @notice A call forward that does implement the receive or fallback functions, so cant receive value
13
+ contract ReceivingForwarder {
14
+ function forward(address to, bytes calldata data) public payable {
15
+ (bool success,) = address(to).call{value: msg.value}(data);
16
+ require(success, "call forward failed");
17
+ }
18
+
19
+ receive() external payable {}
20
+ }
21
+
22
+ /// @notice Errors upon construction
23
+ contract ConstructorError {
24
+ constructor() {
25
+ require(false, "test error in constructor");
26
+ }
27
+ }
28
+
29
+ /// @notice Errors upon construction
30
+ contract ConstructorFine {
31
+ constructor() {
32
+ require(true, "test error in constructor");
33
+ }
34
+
35
+ function number() public pure returns (uint256) {
36
+ return 0;
37
+ }
38
+ }