@arbitrum/nitro-contracts 2.1.0 → 2.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (232) hide show
  1. package/LICENSE.md +1 -1
  2. package/build/contracts/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json +1 -1
  3. package/build/contracts/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.dbg.json +1 -1
  4. package/build/contracts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.dbg.json +1 -1
  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/transparent/ProxyAdmin.sol/ProxyAdmin.dbg.json +1 -1
  10. package/build/contracts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.dbg.json +1 -1
  11. package/build/contracts/@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol/UUPSUpgradeable.dbg.json +1 -1
  12. package/build/contracts/@openzeppelin/contracts/security/ReentrancyGuard.sol/ReentrancyGuard.dbg.json +1 -1
  13. package/build/contracts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json +1 -1
  14. package/build/contracts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json +1 -1
  15. package/build/contracts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.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/StorageSlot.sol/StorageSlot.dbg.json +1 -1
  20. package/build/contracts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json +1 -1
  21. package/build/contracts/@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.dbg.json +4 -0
  22. package/build/contracts/@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.json +10 -0
  23. package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlEnumerableUpgradeable.sol/AccessControlEnumerableUpgradeable.dbg.json +4 -0
  24. package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlEnumerableUpgradeable.sol/AccessControlEnumerableUpgradeable.json +258 -0
  25. package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol/AccessControlUpgradeable.dbg.json +1 -1
  26. package/build/contracts/@openzeppelin/contracts-upgradeable/access/IAccessControlEnumerableUpgradeable.sol/IAccessControlEnumerableUpgradeable.dbg.json +4 -0
  27. package/build/contracts/@openzeppelin/contracts-upgradeable/access/IAccessControlEnumerableUpgradeable.sol/IAccessControlEnumerableUpgradeable.json +226 -0
  28. package/build/contracts/@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol/IAccessControlUpgradeable.dbg.json +1 -1
  29. package/build/contracts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.dbg.json +1 -1
  30. package/build/contracts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.dbg.json +1 -1
  31. package/build/contracts/@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol/PausableUpgradeable.dbg.json +1 -1
  32. package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol/ERC20Upgradeable.dbg.json +4 -0
  33. package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol/ERC20Upgradeable.json +281 -0
  34. package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.dbg.json +1 -1
  35. package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20BurnableUpgradeable.sol/ERC20BurnableUpgradeable.dbg.json +4 -0
  36. package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20BurnableUpgradeable.sol/ERC20BurnableUpgradeable.json +312 -0
  37. package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20MetadataUpgradeable.sol/IERC20MetadataUpgradeable.dbg.json +4 -0
  38. package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20MetadataUpgradeable.sol/IERC20MetadataUpgradeable.json +233 -0
  39. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.dbg.json +1 -1
  40. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.dbg.json +1 -1
  41. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol/StorageSlotUpgradeable.dbg.json +1 -1
  42. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol/StringsUpgradeable.dbg.json +1 -1
  43. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/cryptography/ECDSAUpgradeable.sol/ECDSAUpgradeable.dbg.json +4 -0
  44. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/cryptography/ECDSAUpgradeable.sol/ECDSAUpgradeable.json +10 -0
  45. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/cryptography/draft-EIP712Upgradeable.sol/EIP712Upgradeable.dbg.json +4 -0
  46. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/cryptography/draft-EIP712Upgradeable.sol/EIP712Upgradeable.json +10 -0
  47. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol/ERC165Upgradeable.dbg.json +1 -1
  48. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol/IERC165Upgradeable.dbg.json +1 -1
  49. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/structs/EnumerableSetUpgradeable.sol/EnumerableSetUpgradeable.dbg.json +4 -0
  50. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/structs/EnumerableSetUpgradeable.sol/EnumerableSetUpgradeable.json +10 -0
  51. package/build/contracts/src/bridge/AbsBridge.sol/AbsBridge.dbg.json +1 -1
  52. package/build/contracts/src/bridge/AbsInbox.sol/AbsInbox.dbg.json +1 -1
  53. package/build/contracts/src/bridge/AbsOutbox.sol/AbsOutbox.dbg.json +1 -1
  54. package/build/contracts/src/bridge/Bridge.sol/Bridge.dbg.json +1 -1
  55. package/build/contracts/src/bridge/ERC20Bridge.sol/ERC20Bridge.dbg.json +1 -1
  56. package/build/contracts/src/bridge/ERC20Inbox.sol/ERC20Inbox.dbg.json +1 -1
  57. package/build/contracts/src/bridge/ERC20Outbox.sol/ERC20Outbox.dbg.json +1 -1
  58. package/build/contracts/src/bridge/GasRefunder.sol/GasRefunder.dbg.json +1 -1
  59. package/build/contracts/src/bridge/IBridge.sol/IBridge.dbg.json +1 -1
  60. package/build/contracts/src/bridge/IDelayedMessageProvider.sol/IDelayedMessageProvider.dbg.json +1 -1
  61. package/build/contracts/src/bridge/IERC20Bridge.sol/IERC20Bridge.dbg.json +1 -1
  62. package/build/contracts/src/bridge/IERC20Inbox.sol/IERC20Inbox.dbg.json +1 -1
  63. package/build/contracts/src/bridge/IEthBridge.sol/IEthBridge.dbg.json +1 -1
  64. package/build/contracts/src/bridge/IInbox.sol/IInbox.dbg.json +1 -1
  65. package/build/contracts/src/bridge/IInboxBase.sol/IInboxBase.dbg.json +1 -1
  66. package/build/contracts/src/bridge/IOutbox.sol/IOutbox.dbg.json +1 -1
  67. package/build/contracts/src/bridge/IOwnable.sol/IOwnable.dbg.json +1 -1
  68. package/build/contracts/src/bridge/ISequencerInbox.sol/ISequencerInbox.dbg.json +1 -1
  69. package/build/contracts/src/bridge/Inbox.sol/Inbox.dbg.json +1 -1
  70. package/build/contracts/src/bridge/Inbox.sol/Inbox.json +2 -2
  71. package/build/contracts/src/bridge/Messages.sol/Messages.dbg.json +1 -1
  72. package/build/contracts/src/bridge/Outbox.sol/Outbox.dbg.json +1 -1
  73. package/build/contracts/src/bridge/SequencerInbox.sol/SequencerInbox.dbg.json +1 -1
  74. package/build/contracts/src/bridge/SequencerInbox.sol/SequencerInbox.json +2 -2
  75. package/build/contracts/src/chain/CacheManager.sol/CacheManager.dbg.json +1 -1
  76. package/build/contracts/src/chain/CacheManager.sol/CacheManager.json +2 -2
  77. package/build/contracts/src/challenge/ChallengeLib.sol/ChallengeLib.dbg.json +1 -1
  78. package/build/contracts/src/challenge/ChallengeManager.sol/ChallengeManager.dbg.json +1 -1
  79. package/build/contracts/src/challenge/IChallengeManager.sol/IChallengeManager.dbg.json +1 -1
  80. package/build/contracts/src/challenge/IChallengeResultReceiver.sol/IChallengeResultReceiver.dbg.json +1 -1
  81. package/build/contracts/src/express-lane-auction/Balance.sol/BalanceLib.dbg.json +4 -0
  82. package/build/contracts/src/express-lane-auction/Balance.sol/BalanceLib.json +10 -0
  83. package/build/contracts/src/express-lane-auction/Burner.sol/Burner.dbg.json +4 -0
  84. package/build/contracts/src/express-lane-auction/Burner.sol/Burner.json +47 -0
  85. package/build/contracts/src/express-lane-auction/ELCRound.sol/LatestELCRoundsLib.dbg.json +4 -0
  86. package/build/contracts/src/express-lane-auction/ELCRound.sol/LatestELCRoundsLib.json +10 -0
  87. package/build/contracts/src/express-lane-auction/ExpressLaneAuction.sol/ExpressLaneAuction.dbg.json +4 -0
  88. package/build/contracts/src/express-lane-auction/ExpressLaneAuction.sol/ExpressLaneAuction.json +1588 -0
  89. package/build/contracts/src/express-lane-auction/IExpressLaneAuction.sol/IExpressLaneAuction.dbg.json +4 -0
  90. package/build/contracts/src/express-lane-auction/IExpressLaneAuction.sol/IExpressLaneAuction.json +1296 -0
  91. package/build/contracts/src/express-lane-auction/RoundTimingInfo.sol/RoundTimingInfoLib.dbg.json +4 -0
  92. package/build/contracts/src/express-lane-auction/RoundTimingInfo.sol/RoundTimingInfoLib.json +10 -0
  93. package/build/contracts/src/libraries/AddressAliasHelper.sol/AddressAliasHelper.dbg.json +1 -1
  94. package/build/contracts/src/libraries/AdminFallbackProxy.sol/AdminFallbackProxy.dbg.json +1 -1
  95. package/build/contracts/src/libraries/AdminFallbackProxy.sol/DoubleLogicERC1967Upgrade.dbg.json +1 -1
  96. package/build/contracts/src/libraries/ArbitrumChecker.sol/ArbitrumChecker.dbg.json +1 -1
  97. package/build/contracts/src/libraries/ArbitrumChecker.sol/ArbitrumChecker.json +2 -2
  98. package/build/contracts/src/libraries/CryptographyPrimitives.sol/CryptographyPrimitives.dbg.json +1 -1
  99. package/build/contracts/src/libraries/DecimalsConverterHelper.sol/DecimalsConverterHelper.dbg.json +1 -1
  100. package/build/contracts/src/libraries/DelegateCallAware.sol/DelegateCallAware.dbg.json +1 -1
  101. package/build/contracts/src/libraries/DoubleLogicUUPSUpgradeable.sol/DoubleLogicUUPSUpgradeable.dbg.json +1 -1
  102. package/build/contracts/src/libraries/GasRefundEnabled.sol/GasRefundEnabled.dbg.json +1 -1
  103. package/build/contracts/src/libraries/IGasRefunder.sol/IGasRefunder.dbg.json +1 -1
  104. package/build/contracts/src/libraries/IReader4844.sol/IReader4844.dbg.json +1 -1
  105. package/build/contracts/src/libraries/MerkleLib.sol/MerkleLib.dbg.json +1 -1
  106. package/build/contracts/src/libraries/UUPSNotUpgradeable.sol/UUPSNotUpgradeable.dbg.json +1 -1
  107. package/build/contracts/src/mocks/Benchmarks.sol/Benchmarks.dbg.json +1 -1
  108. package/build/contracts/src/mocks/BridgeStub.sol/BridgeStub.dbg.json +1 -1
  109. package/build/contracts/src/mocks/BridgeUnproxied.sol/BridgeUnproxied.dbg.json +1 -1
  110. package/build/contracts/src/mocks/BridgeUnproxied.sol/BridgeUnproxied.json +15 -2
  111. package/build/contracts/src/mocks/CreateTest.sol/CreateTest.dbg.json +4 -0
  112. package/build/contracts/src/mocks/CreateTest.sol/CreateTest.json +15 -0
  113. package/build/contracts/src/mocks/HostioTest.sol/HostioTest.dbg.json +4 -0
  114. package/build/contracts/src/mocks/HostioTest.sol/HostioTest.json +513 -0
  115. package/build/contracts/src/mocks/InboxStub.sol/InboxStub.dbg.json +1 -1
  116. package/build/contracts/src/mocks/MockResultReceiver.sol/MockResultReceiver.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/PendingBlkTimeAndNrAdvanceCheck.sol/PendingBlkTimeAndNrAdvanceCheck.json +2 -2
  120. package/build/contracts/src/mocks/Program.sol/ProgramTest.dbg.json +1 -1
  121. package/build/contracts/src/mocks/Program.sol/ProgramTest.json +2 -2
  122. package/build/contracts/src/mocks/ProxyAdminForBinding.sol/ProxyAdminForBinding.dbg.json +1 -1
  123. package/build/contracts/src/mocks/SdkStorage.sol/SdkStorage.dbg.json +1 -1
  124. package/build/contracts/src/mocks/SequencerInboxStub.sol/SequencerInboxStub.dbg.json +1 -1
  125. package/build/contracts/src/mocks/SequencerInboxStub.sol/SequencerInboxStub.json +2 -2
  126. package/build/contracts/src/mocks/Simple.sol/Simple.dbg.json +1 -1
  127. package/build/contracts/src/mocks/Simple.sol/Simple.json +2 -2
  128. package/build/contracts/src/mocks/SimpleCacheManager.sol/SimpleCacheManager.dbg.json +1 -1
  129. package/build/contracts/src/mocks/SimpleProxy.sol/SimpleProxy.dbg.json +1 -1
  130. package/build/contracts/src/mocks/SingleExecutionChallenge.sol/SingleExecutionChallenge.dbg.json +1 -1
  131. package/build/contracts/src/mocks/TimedOutChallengeManager.sol/TimedOutChallengeManager.dbg.json +1 -1
  132. package/build/contracts/src/mocks/UpgradeExecutorMock.sol/UpgradeExecutorMock.dbg.json +1 -1
  133. package/build/contracts/src/node-interface/NodeInterface.sol/NodeInterface.dbg.json +1 -1
  134. package/build/contracts/src/node-interface/NodeInterfaceDebug.sol/NodeInterfaceDebug.dbg.json +1 -1
  135. package/build/contracts/src/osp/HashProofHelper.sol/HashProofHelper.dbg.json +1 -1
  136. package/build/contracts/src/osp/IOneStepProofEntry.sol/IOneStepProofEntry.dbg.json +1 -1
  137. package/build/contracts/src/osp/IOneStepProofEntry.sol/OneStepProofEntryLib.dbg.json +1 -1
  138. package/build/contracts/src/osp/IOneStepProver.sol/IOneStepProver.dbg.json +1 -1
  139. package/build/contracts/src/osp/OneStepProofEntry.sol/OneStepProofEntry.dbg.json +1 -1
  140. package/build/contracts/src/osp/OneStepProver0.sol/OneStepProver0.dbg.json +1 -1
  141. package/build/contracts/src/osp/OneStepProverHostIo.sol/OneStepProverHostIo.dbg.json +1 -1
  142. package/build/contracts/src/osp/OneStepProverMath.sol/OneStepProverMath.dbg.json +1 -1
  143. package/build/contracts/src/osp/OneStepProverMemory.sol/OneStepProverMemory.dbg.json +1 -1
  144. package/build/contracts/src/precompiles/ArbAddressTable.sol/ArbAddressTable.dbg.json +1 -1
  145. package/build/contracts/src/precompiles/ArbAggregator.sol/ArbAggregator.dbg.json +1 -1
  146. package/build/contracts/src/precompiles/ArbBLS.sol/ArbBLS.dbg.json +1 -1
  147. package/build/contracts/src/precompiles/ArbDebug.sol/ArbDebug.dbg.json +1 -1
  148. package/build/contracts/src/precompiles/ArbFunctionTable.sol/ArbFunctionTable.dbg.json +1 -1
  149. package/build/contracts/src/precompiles/ArbGasInfo.sol/ArbGasInfo.dbg.json +1 -1
  150. package/build/contracts/src/precompiles/ArbInfo.sol/ArbInfo.dbg.json +1 -1
  151. package/build/contracts/src/precompiles/ArbOwner.sol/ArbOwner.dbg.json +1 -1
  152. package/build/contracts/src/precompiles/ArbOwnerPublic.sol/ArbOwnerPublic.dbg.json +1 -1
  153. package/build/contracts/src/precompiles/ArbRetryableTx.sol/ArbRetryableTx.dbg.json +1 -1
  154. package/build/contracts/src/precompiles/ArbStatistics.sol/ArbStatistics.dbg.json +1 -1
  155. package/build/contracts/src/precompiles/ArbSys.sol/ArbSys.dbg.json +1 -1
  156. package/build/contracts/src/precompiles/ArbWasm.sol/ArbWasm.dbg.json +1 -1
  157. package/build/contracts/src/precompiles/ArbWasm.sol/ArbWasm.json +4 -4
  158. package/build/contracts/src/precompiles/ArbWasmCache.sol/ArbWasmCache.dbg.json +1 -1
  159. package/build/contracts/src/precompiles/ArbosActs.sol/ArbosActs.dbg.json +1 -1
  160. package/build/contracts/src/precompiles/ArbosTest.sol/ArbosTest.dbg.json +1 -1
  161. package/build/contracts/src/rollup/AbsRollupEventInbox.sol/AbsRollupEventInbox.dbg.json +1 -1
  162. package/build/contracts/src/rollup/BridgeCreator.sol/BridgeCreator.dbg.json +1 -1
  163. package/build/contracts/src/rollup/BridgeCreator.sol/BridgeCreator.json +2 -2
  164. package/build/contracts/src/rollup/DeployHelper.sol/DeployHelper.dbg.json +1 -1
  165. package/build/contracts/src/rollup/ERC20RollupEventInbox.sol/ERC20RollupEventInbox.dbg.json +1 -1
  166. package/build/contracts/src/rollup/ERC20RollupEventInbox.sol/ERC20RollupEventInbox.json +2 -2
  167. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/FactoryDeployerHelper.dbg.json +1 -1
  168. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IDeployHelper.dbg.json +1 -1
  169. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IERC20.dbg.json +1 -1
  170. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IERC20Bridge.dbg.json +1 -1
  171. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IInboxBase.dbg.json +1 -1
  172. package/build/contracts/src/rollup/IRollupAdmin.sol/IRollupAdmin.dbg.json +1 -1
  173. package/build/contracts/src/rollup/IRollupCore.sol/IRollupCore.dbg.json +1 -1
  174. package/build/contracts/src/rollup/IRollupEventInbox.sol/IRollupEventInbox.dbg.json +1 -1
  175. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUser.dbg.json +1 -1
  176. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserAbs.dbg.json +1 -1
  177. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserERC20.dbg.json +1 -1
  178. package/build/contracts/src/rollup/Node.sol/NodeLib.dbg.json +1 -1
  179. package/build/contracts/src/rollup/RollupAdminLogic.sol/RollupAdminLogic.dbg.json +1 -1
  180. package/build/contracts/src/rollup/RollupAdminLogic.sol/RollupAdminLogic.json +2 -2
  181. package/build/contracts/src/rollup/RollupCore.sol/RollupCore.dbg.json +1 -1
  182. package/build/contracts/src/rollup/RollupCreator.sol/RollupCreator.dbg.json +1 -1
  183. package/build/contracts/src/rollup/RollupCreator.sol/RollupCreator.json +2 -2
  184. package/build/contracts/src/rollup/RollupEventInbox.sol/RollupEventInbox.dbg.json +1 -1
  185. package/build/contracts/src/rollup/RollupEventInbox.sol/RollupEventInbox.json +2 -2
  186. package/build/contracts/src/rollup/RollupLib.sol/RollupLib.dbg.json +1 -1
  187. package/build/contracts/src/rollup/RollupProxy.sol/RollupProxy.dbg.json +1 -1
  188. package/build/contracts/src/rollup/RollupUserLogic.sol/AbsRollupUserLogic.dbg.json +1 -1
  189. package/build/contracts/src/rollup/RollupUserLogic.sol/ERC20RollupUserLogic.dbg.json +1 -1
  190. package/build/contracts/src/rollup/RollupUserLogic.sol/ERC20RollupUserLogic.json +2 -2
  191. package/build/contracts/src/rollup/RollupUserLogic.sol/RollupUserLogic.dbg.json +1 -1
  192. package/build/contracts/src/rollup/RollupUserLogic.sol/RollupUserLogic.json +2 -2
  193. package/build/contracts/src/rollup/ValidatorUtils.sol/ValidatorUtils.dbg.json +1 -1
  194. package/build/contracts/src/rollup/ValidatorWallet.sol/ValidatorWallet.dbg.json +1 -1
  195. package/build/contracts/src/rollup/ValidatorWalletCreator.sol/ValidatorWalletCreator.dbg.json +1 -1
  196. package/build/contracts/src/state/Deserialize.sol/Deserialize.dbg.json +1 -1
  197. package/build/contracts/src/state/GlobalState.sol/GlobalStateLib.dbg.json +1 -1
  198. package/build/contracts/src/state/Instructions.sol/Instructions.dbg.json +1 -1
  199. package/build/contracts/src/state/Machine.sol/MachineLib.dbg.json +1 -1
  200. package/build/contracts/src/state/MerkleProof.sol/MerkleProofLib.dbg.json +1 -1
  201. package/build/contracts/src/state/Module.sol/ModuleLib.dbg.json +1 -1
  202. package/build/contracts/src/state/ModuleMemory.sol/ModuleMemoryLib.dbg.json +1 -1
  203. package/build/contracts/src/state/ModuleMemoryCompact.sol/ModuleMemoryCompactLib.dbg.json +1 -1
  204. package/build/contracts/src/state/MultiStack.sol/MultiStackLib.dbg.json +1 -1
  205. package/build/contracts/src/state/PcArray.sol/PcArrayLib.dbg.json +1 -1
  206. package/build/contracts/src/state/StackFrame.sol/StackFrameLib.dbg.json +1 -1
  207. package/build/contracts/src/state/Value.sol/ValueLib.dbg.json +1 -1
  208. package/build/contracts/src/state/ValueArray.sol/ValueArrayLib.dbg.json +1 -1
  209. package/build/contracts/src/state/ValueStack.sol/ValueStackLib.dbg.json +1 -1
  210. package/build/contracts/src/test-helpers/BridgeTester.sol/BridgeTester.dbg.json +1 -1
  211. package/build/contracts/src/test-helpers/CryptographyPrimitivesTester.sol/CryptographyPrimitivesTester.dbg.json +1 -1
  212. package/build/contracts/src/test-helpers/EthVault.sol/EthVault.dbg.json +1 -1
  213. package/build/contracts/src/test-helpers/MessageTester.sol/MessageTester.dbg.json +1 -1
  214. package/build/contracts/src/test-helpers/OutboxWithoutOptTester.sol/OutboxWithoutOptTester.dbg.json +1 -1
  215. package/build/contracts/src/test-helpers/RollupMock.sol/RollupMock.dbg.json +1 -1
  216. package/build/contracts/src/test-helpers/TestToken.sol/TestToken.dbg.json +1 -1
  217. package/build/contracts/src/test-helpers/ValueArrayTester.sol/ValueArrayTester.dbg.json +1 -1
  218. package/out/yul/Reader4844.yul/Reader4844.json +1 -1
  219. package/package.json +5 -2
  220. package/src/express-lane-auction/Balance.sol +142 -0
  221. package/src/express-lane-auction/Burner.sol +25 -0
  222. package/src/express-lane-auction/ELCRound.sol +73 -0
  223. package/src/express-lane-auction/Errors.sol +31 -0
  224. package/src/express-lane-auction/ExpressLaneAuction.sol +565 -0
  225. package/src/express-lane-auction/IExpressLaneAuction.sol +421 -0
  226. package/src/express-lane-auction/RoundTimingInfo.sol +115 -0
  227. package/src/mocks/BridgeUnproxied.sol +2 -0
  228. package/src/mocks/CreateTest.sol +42 -0
  229. package/src/mocks/HostioTest.sol +196 -0
  230. package/src/precompiles/ArbSys.sol +2 -1
  231. package/src/precompiles/ArbWasm.sol +1 -1
  232. package/src/rollup/RollupCreator.sol +4 -4
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/9ec5aeba34e8f7c0c281e147a2954d13.json"
3
+ "buildInfo": "../../../build-info/671b0778dc33f2c1b20cf41504c8e4d9.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/9ec5aeba34e8f7c0c281e147a2954d13.json"
3
+ "buildInfo": "../../../build-info/671b0778dc33f2c1b20cf41504c8e4d9.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/9ec5aeba34e8f7c0c281e147a2954d13.json"
3
+ "buildInfo": "../../../build-info/671b0778dc33f2c1b20cf41504c8e4d9.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/9ec5aeba34e8f7c0c281e147a2954d13.json"
3
+ "buildInfo": "../../../build-info/671b0778dc33f2c1b20cf41504c8e4d9.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/9ec5aeba34e8f7c0c281e147a2954d13.json"
3
+ "buildInfo": "../../../build-info/671b0778dc33f2c1b20cf41504c8e4d9.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/9ec5aeba34e8f7c0c281e147a2954d13.json"
3
+ "buildInfo": "../../../build-info/671b0778dc33f2c1b20cf41504c8e4d9.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/9ec5aeba34e8f7c0c281e147a2954d13.json"
3
+ "buildInfo": "../../../build-info/671b0778dc33f2c1b20cf41504c8e4d9.json"
4
4
  }
@@ -1 +1 @@
1
- {"abi":null,"bytecode":{"object":"0x605f80600d600039806000f3fe3415600957600080fd5b6000803560e01c63e83a2d828114602857631f6d6ef781146057578182fd5b815b804980603557506045565b600582901b60400152600101602a565b602083528060205260408160051b0183f35b4a8252602082f3","sourceMap":"76:19:0:-:0;;53:21;50:1;41:55;115:19;50:1;105:30","linkReferences":{}},"deployedBytecode":{"object":"0x3415600957600080fd5b6000803560e01c63e83a2d828114602857631f6d6ef781146057578182fd5b815b804980603557506045565b600582901b60400152600101602a565b602083528060205260408160051b0183f35b4a8252602082f3","sourceMap":"250:11:0:-:0;247:31;;;274:1;;264:12;247:31;400:1;;387:15;381:4;377:26;470:10;465:486;;;;1019:10;1014:216;;;;400:1;;1294:12;465:486;400:1;526:304;675:1;651:26;708:4;698:25;;716:5;;;698:25;755:10;;;;767:2;751:19;744:33;810:1;803:9;526:304;;;762:2;400:1;847:13;888:1;762:2;877:13;767:2;925:1;755:10;921;917:19;400:1;907:30;1014:216;1124:23;400:1;1164:22;1213:2;400:1;1203:13","linkReferences":{}},"methodIdentifiers":{}}
1
+ {"abi":null,"bytecode":{"object":"0x605780600a5f395ff3fe346053575f3560e01c8063e83a2d8214602757631f6d6ef714601f575f80fd5b4a5f5260205ff35b5f5b804990811560415760019160408260051b0152016029565b60409060205f528060205260051b015ff35b5f80fd","sourceMap":"65:19:0:-:0;109:21;;106:1;97:38;155:1;148:13","linkReferences":{}},"deployedBytecode":{"object":"0x346053575f3560e01c8063e83a2d8214602757631f6d6ef714601f575f80fd5b4a5f5260205ff35b5f5b804990811560415760019160408260051b0152016029565b60409060205f528060205260051b015ff35b5f80fd","sourceMap":"249:11:0:-:0;246:31;;324:1;311:15;305:4;301:26;344:467;349:10;344:467;;;833:10;828:120;;;985:1;975:12;;844:104;876:19;873:1;866:30;927:2;924:1;917:13;360:451;391:1;447:228;485:22;;535:12;;;532:25;;651:1;593:9;604:2;593:9;597:1;593:9;589:18;582:32;644:9;423:3;;548:9;789:2;550:5;706:2;703:1;696:13;730;737:2;730:13;782:1;778:9;774:18;771:1;764:29;261:16;273:1;263:12;","linkReferences":{}},"methodIdentifiers":{}}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arbitrum/nitro-contracts",
3
- "version": "2.1.0",
3
+ "version": "2.1.1",
4
4
  "description": "Layer 2 precompiles and rollup for Arbitrum Nitro",
5
5
  "author": "Offchain Labs, Inc.",
6
6
  "license": "BUSL-1.1",
@@ -39,6 +39,9 @@
39
39
  "test:storage": "./test/storage/test.bash",
40
40
  "test:signatures": "./test/signatures/test-sigs.bash",
41
41
  "test:e2e": "hardhat test test/e2e/*.ts",
42
+ "test:update": "yarn run test:signatures || yarn run test:storage",
43
+ "metadatahash": "yarn build:all && hardhat run scripts/printMetadataHashes.ts",
44
+ "upload-4bytes": "forge build && find ./out -type f -name \"*.json\" -exec cast upload-signature {} + | grep -v Duplicated:",
42
45
  "postinstall": "patch-package",
43
46
  "deploy-factory": "hardhat run scripts/deployment.ts",
44
47
  "deploy-eth-rollup": "hardhat run scripts/createEthRollup.ts",
@@ -57,8 +60,8 @@
57
60
  "devDependencies": {
58
61
  "@arbitrum/sdk": "^3.4.1",
59
62
  "@ethersproject/providers": "^5.7.2",
63
+ "@nomicfoundation/hardhat-verify": "^2.0.9",
60
64
  "@nomiclabs/hardhat-ethers": "npm:hardhat-deploy-ethers@^0.3.0-beta.13",
61
- "@nomiclabs/hardhat-etherscan": "^3.1.0",
62
65
  "@nomiclabs/hardhat-waffle": "^2.0.1",
63
66
  "@tovarishfin/hardhat-yul": "^3.0.5",
64
67
  "@typechain/ethers-v5": "^10.0.0",
@@ -0,0 +1,142 @@
1
+ // SPDX-License-Identifier: BUSL-1.1
2
+ pragma solidity ^0.8.0;
3
+
4
+ import "./Errors.sol";
5
+
6
+ /// @notice Account balance and the round at which it can be withdrawn
7
+ /// Balances are withdrawn as part of a two step process - initiation and finalization
8
+ /// This is so that a bidder can't withdraw their balance after making a bid
9
+ /// Instead, if they initiate their withdrawal in round r, they must wait until the beginning of
10
+ /// round r+2 before they can withdraw the balance. In the mean time their balance can be used to
11
+ /// resolve an auction if it is part of a valid bid, however the auctioneer may choose to
12
+ /// reject bids from accounts with an initiated balance withdrawal
13
+ struct Balance {
14
+ /// @notice The amount of balance in the account
15
+ uint256 balance;
16
+ /// @notice The round at which all of the balance can be withdrawn
17
+ /// Is set to uint64.max when no withdrawal has been intiated
18
+ uint64 withdrawalRound;
19
+ }
20
+
21
+ /// @notice Balance mutation and view functionality. This is in it's own library so that we can
22
+ // reason about and test how the different ways balance mutations interact with each other
23
+ library BalanceLib {
24
+ /// @notice The available balance at the supplied round. Returns 0 if a withdrawal has been initiated and has
25
+ /// past the withdrawal round.
26
+ /// @param bal The balance to query
27
+ /// @param round The round to check the balance in
28
+ function balanceAtRound(Balance storage bal, uint64 round) internal view returns (uint256) {
29
+ return bal.balance - withdrawableBalanceAtRound(bal, round);
30
+ }
31
+
32
+ /// @notice The withdrawable balance at the supplied round. If a withdrawal has been initiated, the
33
+ /// supplied round is past the withdrawal round and has yet to be finalized, then the balance
34
+ /// of this account is returned. Otherwise 0.
35
+ /// @param bal The balance to query
36
+ /// @param round The round to check the withdrawable balance in
37
+ function withdrawableBalanceAtRound(Balance storage bal, uint64 round)
38
+ internal
39
+ view
40
+ returns (uint256)
41
+ {
42
+ return round >= bal.withdrawalRound ? bal.balance : 0;
43
+ }
44
+
45
+ /// @notice Increase a balance by a specified amount
46
+ /// Will cancel a withdrawal if called after a withdrawal has been initiated
47
+ /// @param bal The balance info
48
+ /// @param amount The amount to increase the balance by
49
+ function increase(Balance storage bal, uint256 amount) internal {
50
+ // no point increasing if no amount is being supplied
51
+ if (amount == 0) {
52
+ revert ZeroAmount();
53
+ }
54
+
55
+ // if the balance have never been used before then balance and withdrawal round will be 0
56
+ // in this case we initialize the balance by setting the withdrawal round into the future
57
+ // if a withdrawal for the balance has been initialized (withdrawal round != 0 and != max)
58
+ // then we cancel that initiated withdrawal. We do this since if a increase is being made that
59
+ // means a user wishes to increase their balance, not withdraw it.
60
+ if (bal.withdrawalRound != type(uint64).max) {
61
+ bal.withdrawalRound = type(uint64).max;
62
+ }
63
+
64
+ bal.balance += amount;
65
+ }
66
+
67
+ /// @notice Reduce a balance immediately. The balance must already be greater than the amount
68
+ /// and a withdrawal has been initiated for this balance it must be occuring in
69
+ /// a round after the supplied round. Withdrawals earlier than that will block this reduce.
70
+ /// @param bal The balance to reduce
71
+ /// @param amount The amount to reduce by
72
+ /// @param round The round to check withdrawals against. A withdrawal after this round will be ignored
73
+ /// and the balance reduced anyway, withdrawals before or on this round will be respected
74
+ /// and the reduce will revert
75
+ function reduce(
76
+ Balance storage bal,
77
+ uint256 amount,
78
+ uint64 round
79
+ ) internal {
80
+ uint256 balRnd = balanceAtRound(bal, round);
81
+ // we add a zero check since it's possible for the amount to be zero
82
+ // but even in that case the user must have some balance
83
+ // to enforce that parties that havent done the deposit step cannot take part in the auction
84
+ if (balRnd == 0 || balRnd < amount) {
85
+ revert InsufficientBalance(amount, balRnd);
86
+ }
87
+
88
+ bal.balance -= amount;
89
+ }
90
+
91
+ /// @notice Initiate a withdrawal. A withdrawal is a reduction of the full amount.
92
+ /// Withdrawal is a two step process initialization and finalization. Finalization is only
93
+ /// after the supplied round parameter. The expected usage is to specify a round that is 2
94
+ /// in the future to ensure that the balance cannot be reduced unexpectedly without notice.
95
+ // An external observer can see that a withdrawal has been initiated, and will therefore
96
+ /// be able to take it into account and not rely on the balance being there.
97
+ /// In the case of the auction contract this allows the bidders to withdraw their
98
+ /// balance, but an auctioneer will know not to accept there bids in the mean time
99
+ /// @param bal The balance to iniate a reduction on
100
+ /// @param round The round that the withdrawal will be available in. Cannot be specified as the max round
101
+ function initiateWithdrawal(Balance storage bal, uint64 round) internal {
102
+ if (bal.balance == 0) {
103
+ revert ZeroAmount();
104
+ }
105
+
106
+ if (round == type(uint64).max) {
107
+ // we use max round to specify that a withdrawal is not taking place
108
+ // so we dont allow it as a withdrawal round. In practice max round should never
109
+ // be reached so this isnt an issue, we just put this here as an additional
110
+ // safety check
111
+ revert WithdrawalMaxRound();
112
+ }
113
+
114
+ if (bal.withdrawalRound != type(uint64).max) {
115
+ revert WithdrawalInProgress();
116
+ }
117
+
118
+ bal.withdrawalRound = round;
119
+ }
120
+
121
+ /// @notice Finalize an already initialized withdrawal. Reduces the balance to 0.
122
+ /// Can only be called two round after the withdrawal was initiated.
123
+ /// @param bal The balance to finalize
124
+ /// @param round The round to check whether withdrawal is valid in. Usually the current round. Cannot be max round.
125
+ function finalizeWithdrawal(Balance storage bal, uint64 round) internal returns (uint256) {
126
+ if (round == type(uint64).max) {
127
+ // we use max round to specify that a withdrawal is not taking place
128
+ // so we dont allow it as a withdrawal round. In practice max round should never
129
+ // be reached so this isnt an issue, we just put this here as an additional
130
+ // safety check
131
+ revert WithdrawalMaxRound();
132
+ }
133
+
134
+ uint256 withdrawableBalance = withdrawableBalanceAtRound(bal, round);
135
+ if (withdrawableBalance == 0) {
136
+ revert NothingToWithdraw();
137
+ }
138
+
139
+ bal.balance = 0;
140
+ return withdrawableBalance;
141
+ }
142
+ }
@@ -0,0 +1,25 @@
1
+ // SPDX-License-Identifier: BUSL-1.1
2
+ pragma solidity ^0.8.0;
3
+
4
+ import {
5
+ ERC20BurnableUpgradeable
6
+ } from "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20BurnableUpgradeable.sol";
7
+ import "./Errors.sol";
8
+
9
+ /// @notice A simple contract that can burn any tokens that are transferred to it
10
+ /// Token must support the ERC20BurnableUpgradeable.burn(uint256) interface
11
+ contract Burner {
12
+ ERC20BurnableUpgradeable public immutable token;
13
+
14
+ constructor(address _token) {
15
+ if (_token == address(0)) {
16
+ revert ZeroAddress();
17
+ }
18
+ token = ERC20BurnableUpgradeable(_token);
19
+ }
20
+
21
+ /// @notice Can be called at any time by anyone to burn any tokens held by this burner
22
+ function burn() external {
23
+ token.burn(token.balanceOf(address(this)));
24
+ }
25
+ }
@@ -0,0 +1,73 @@
1
+ // SPDX-License-Identifier: BUSL-1.1
2
+ pragma solidity ^0.8.0;
3
+
4
+ import "./Errors.sol";
5
+
6
+ /// @notice When an auction round is resolved a new express lane controller is chosen for that round
7
+ /// An elc round stores that selected express lane controller against the round number
8
+ struct ELCRound {
9
+ /// @notice The express lane controller for this round
10
+ address expressLaneController;
11
+ /// @notice The round number
12
+ uint64 round;
13
+ }
14
+
15
+ /// @notice Latest resolved express lane controller auction rounds
16
+ // Only the two latest resolved rounds are stored
17
+ library LatestELCRoundsLib {
18
+ /// @notice The last resolved express lane controller round, and its index in the array
19
+ /// @param rounds The stored resolved rounds
20
+ /// @return The last resolved elc round
21
+ /// @return The index of that last resolved round within the supplied array
22
+ function latestELCRound(ELCRound[2] storage rounds)
23
+ internal
24
+ view
25
+ returns (ELCRound storage, uint8)
26
+ {
27
+ ELCRound storage latestRound = rounds[0];
28
+ uint8 index = 0;
29
+ if (latestRound.round < rounds[1].round) {
30
+ latestRound = rounds[1];
31
+ index = 1;
32
+ }
33
+ return (latestRound, index);
34
+ }
35
+
36
+ /// @notice Finds the elc round that matches the supplied round. Reverts if no matching round found.
37
+ /// @param latestResolvedRounds The resolved elc rounds
38
+ /// @param round The round number to find a resolved round for
39
+ function resolvedRound(ELCRound[2] storage latestResolvedRounds, uint64 round)
40
+ internal
41
+ view
42
+ returns (ELCRound storage)
43
+ {
44
+ if (latestResolvedRounds[0].round == round) {
45
+ return latestResolvedRounds[0];
46
+ } else if (latestResolvedRounds[1].round == round) {
47
+ return latestResolvedRounds[1];
48
+ } else {
49
+ // not resolved or too old
50
+ revert RoundNotResolved(round);
51
+ }
52
+ }
53
+
54
+ /// @notice Set a resolved round into the array, overwriting the oldest resolved round
55
+ /// in the array.
56
+ /// @param latestResolvedRounds The resolved rounds aray
57
+ /// @param round The round to resolve
58
+ /// @param expressLaneController The new express lane controller for that round
59
+ function setResolvedRound(
60
+ ELCRound[2] storage latestResolvedRounds,
61
+ uint64 round,
62
+ address expressLaneController
63
+ ) internal {
64
+ (ELCRound storage lastRoundResolved, uint8 index) = latestELCRound(latestResolvedRounds);
65
+ if (lastRoundResolved.round >= round) {
66
+ revert RoundAlreadyResolved(round);
67
+ }
68
+
69
+ // dont replace the newest round, use the oldest slot
70
+ uint8 oldestRoundIndex = index ^ 1;
71
+ latestResolvedRounds[oldestRoundIndex] = ELCRound(expressLaneController, round);
72
+ }
73
+ }
@@ -0,0 +1,31 @@
1
+ // SPDX-License-Identifier: BUSL-1.1
2
+ pragma solidity ^0.8.0;
3
+
4
+ error InsufficientBalance(uint256 amountRequested, uint256 balance);
5
+ error InsufficientBalanceAcc(address account, uint256 amountRequested, uint256 balance);
6
+ error RoundDurationTooShort();
7
+ error NothingToWithdraw();
8
+ error ZeroAmount();
9
+ error ZeroBiddingToken();
10
+ error WithdrawalInProgress();
11
+ error WithdrawalMaxRound();
12
+ error RoundAlreadyResolved(uint64 round);
13
+ error SameBidder();
14
+ error BidsWrongOrder();
15
+ error TieBidsWrongOrder();
16
+ error AuctionNotClosed();
17
+ error ReservePriceTooLow(uint256 reservePrice, uint256 minReservePrice);
18
+ error ReservePriceNotMet(uint256 bidAmount, uint256 reservePrice);
19
+ error ReserveBlackout();
20
+ error RoundTooOld(uint64 round, uint64 currentRound);
21
+ error RoundNotResolved(uint64 round);
22
+ error NotExpressLaneController(uint64 round, address controller, address sender);
23
+ error FixedTransferor(uint64 fixedUntilRound);
24
+ error NotTransferor(uint64 round, address expectedTransferor, address msgSender);
25
+ error InvalidNewRound(uint64 currentRound, uint64 newRound);
26
+ error InvalidNewStart(uint64 currentStart, uint64 newStart);
27
+ error RoundTooLong(uint64 roundDurationSeconds);
28
+ error ZeroAuctionClosingSeconds();
29
+ error NegativeOffset();
30
+ error NegativeRoundStart(int64 roundStart);
31
+ error ZeroAddress();