@arbitrum/nitro-contracts 3.0.1-beta.1 → 3.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (329) 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/AssertionStakingPool.sol/AssertionStakingPool.json +2 -2
  47. package/build/contracts/src/assertionStakingPool/AssertionStakingPoolCreator.sol/AssertionStakingPoolCreator.dbg.json +1 -1
  48. package/build/contracts/src/assertionStakingPool/AssertionStakingPoolCreator.sol/AssertionStakingPoolCreator.json +2 -2
  49. package/build/contracts/src/assertionStakingPool/EdgeStakingPool.sol/EdgeStakingPool.dbg.json +1 -1
  50. package/build/contracts/src/assertionStakingPool/EdgeStakingPool.sol/EdgeStakingPool.json +2 -2
  51. package/build/contracts/src/assertionStakingPool/EdgeStakingPoolCreator.sol/EdgeStakingPoolCreator.dbg.json +1 -1
  52. package/build/contracts/src/assertionStakingPool/EdgeStakingPoolCreator.sol/EdgeStakingPoolCreator.json +2 -2
  53. package/build/contracts/src/assertionStakingPool/StakingPoolCreatorUtils.sol/StakingPoolCreatorUtils.dbg.json +1 -1
  54. package/build/contracts/src/assertionStakingPool/interfaces/IAbsBoldStakingPool.sol/IAbsBoldStakingPool.dbg.json +1 -1
  55. package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPool.sol/IAssertionStakingPool.dbg.json +1 -1
  56. package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPoolCreator.sol/IAssertionStakingPoolCreator.dbg.json +1 -1
  57. package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPool.sol/IEdgeStakingPool.dbg.json +1 -1
  58. package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPoolCreator.sol/IEdgeStakingPoolCreator.dbg.json +1 -1
  59. package/build/contracts/src/bridge/AbsBridge.sol/AbsBridge.dbg.json +1 -1
  60. package/build/contracts/src/bridge/AbsInbox.sol/AbsInbox.dbg.json +1 -1
  61. package/build/contracts/src/bridge/AbsOutbox.sol/AbsOutbox.dbg.json +1 -1
  62. package/build/contracts/src/bridge/Bridge.sol/Bridge.dbg.json +1 -1
  63. package/build/contracts/src/bridge/Bridge.sol/Bridge.json +2 -2
  64. package/build/contracts/src/bridge/DelayBuffer.sol/DelayBuffer.dbg.json +1 -1
  65. package/build/contracts/src/bridge/ERC20Bridge.sol/ERC20Bridge.dbg.json +1 -1
  66. package/build/contracts/src/bridge/ERC20Bridge.sol/ERC20Bridge.json +2 -2
  67. package/build/contracts/src/bridge/ERC20Inbox.sol/ERC20Inbox.dbg.json +1 -1
  68. package/build/contracts/src/bridge/ERC20Inbox.sol/ERC20Inbox.json +2 -2
  69. package/build/contracts/src/bridge/ERC20Outbox.sol/ERC20Outbox.dbg.json +1 -1
  70. package/build/contracts/src/bridge/ERC20Outbox.sol/ERC20Outbox.json +2 -2
  71. package/build/contracts/src/bridge/GasRefunder.sol/GasRefunder.dbg.json +1 -1
  72. package/build/contracts/src/bridge/IBridge.sol/IBridge.dbg.json +1 -1
  73. package/build/contracts/src/bridge/IDelayedMessageProvider.sol/IDelayedMessageProvider.dbg.json +1 -1
  74. package/build/contracts/src/bridge/IERC20Bridge.sol/IERC20Bridge.dbg.json +1 -1
  75. package/build/contracts/src/bridge/IERC20Inbox.sol/IERC20Inbox.dbg.json +1 -1
  76. package/build/contracts/src/bridge/IEthBridge.sol/IEthBridge.dbg.json +1 -1
  77. package/build/contracts/src/bridge/IInbox.sol/IInbox.dbg.json +1 -1
  78. package/build/contracts/src/bridge/IInboxBase.sol/IInboxBase.dbg.json +1 -1
  79. package/build/contracts/src/bridge/IOutbox.sol/IOutbox.dbg.json +1 -1
  80. package/build/contracts/src/bridge/IOwnable.sol/IOwnable.dbg.json +1 -1
  81. package/build/contracts/src/bridge/ISequencerInbox.sol/IFeeTokenPricer.dbg.json +4 -0
  82. package/build/contracts/src/bridge/ISequencerInbox.sol/IFeeTokenPricer.json +24 -0
  83. package/build/contracts/src/bridge/ISequencerInbox.sol/ISequencerInbox.dbg.json +1 -1
  84. package/build/contracts/src/bridge/ISequencerInbox.sol/ISequencerInbox.json +44 -0
  85. package/build/contracts/src/bridge/Inbox.sol/Inbox.dbg.json +1 -1
  86. package/build/contracts/src/bridge/Inbox.sol/Inbox.json +2 -2
  87. package/build/contracts/src/bridge/Messages.sol/Messages.dbg.json +1 -1
  88. package/build/contracts/src/bridge/Outbox.sol/Outbox.dbg.json +1 -1
  89. package/build/contracts/src/bridge/Outbox.sol/Outbox.json +2 -2
  90. package/build/contracts/src/bridge/SequencerInbox.sol/SequencerInbox.dbg.json +1 -1
  91. package/build/contracts/src/bridge/SequencerInbox.sol/SequencerInbox.json +51 -2
  92. package/build/contracts/src/bridge/extra/ERC20MigrationOutbox.sol/ERC20MigrationOutbox.dbg.json +4 -0
  93. package/build/contracts/src/bridge/extra/ERC20MigrationOutbox.sol/ERC20MigrationOutbox.json +113 -0
  94. package/build/contracts/src/bridge/extra/IERC20MigrationOutbox.sol/IERC20MigrationOutbox.dbg.json +4 -0
  95. package/build/contracts/src/bridge/extra/IERC20MigrationOutbox.sol/IERC20MigrationOutbox.json +97 -0
  96. package/build/contracts/src/chain/CacheManager.sol/CacheManager.dbg.json +1 -1
  97. package/build/contracts/src/chain/CacheManager.sol/CacheManager.json +2 -2
  98. package/build/contracts/src/challengeV2/EdgeChallengeManager.sol/EdgeChallengeManager.dbg.json +1 -1
  99. package/build/contracts/src/challengeV2/EdgeChallengeManager.sol/EdgeChallengeManager.json +2 -2
  100. package/build/contracts/src/challengeV2/IAssertionChain.sol/IAssertionChain.dbg.json +1 -1
  101. package/build/contracts/src/challengeV2/IEdgeChallengeManager.sol/IEdgeChallengeManager.dbg.json +1 -1
  102. package/build/contracts/src/challengeV2/libraries/ArrayUtilsLib.sol/ArrayUtilsLib.dbg.json +1 -1
  103. package/build/contracts/src/challengeV2/libraries/ChallengeEdgeLib.sol/ChallengeEdgeLib.dbg.json +1 -1
  104. package/build/contracts/src/challengeV2/libraries/ChallengeEdgeLib.sol/ChallengeEdgeLib.json +2 -2
  105. package/build/contracts/src/challengeV2/libraries/EdgeChallengeManagerLib.sol/EdgeChallengeManagerLib.dbg.json +1 -1
  106. package/build/contracts/src/challengeV2/libraries/EdgeChallengeManagerLib.sol/EdgeChallengeManagerLib.json +2 -2
  107. package/build/contracts/src/challengeV2/libraries/MerkleTreeAccumulatorLib.sol/MerkleTreeAccumulatorLib.dbg.json +1 -1
  108. package/build/contracts/src/challengeV2/libraries/MerkleTreeAccumulatorLib.sol/MerkleTreeAccumulatorLib.json +2 -2
  109. package/build/contracts/src/challengeV2/libraries/UintUtilsLib.sol/UintUtilsLib.dbg.json +1 -1
  110. package/build/contracts/src/express-lane-auction/Balance.sol/BalanceLib.dbg.json +1 -1
  111. package/build/contracts/src/express-lane-auction/Burner.sol/Burner.dbg.json +1 -1
  112. package/build/contracts/src/express-lane-auction/ELCRound.sol/LatestELCRoundsLib.dbg.json +1 -1
  113. package/build/contracts/src/express-lane-auction/ExpressLaneAuction.sol/ExpressLaneAuction.dbg.json +1 -1
  114. package/build/contracts/src/express-lane-auction/ExpressLaneAuction.sol/ExpressLaneAuction.json +2 -2
  115. package/build/contracts/src/express-lane-auction/IExpressLaneAuction.sol/IExpressLaneAuction.dbg.json +1 -1
  116. package/build/contracts/src/express-lane-auction/RoundTimingInfo.sol/RoundTimingInfoLib.dbg.json +1 -1
  117. package/build/contracts/src/libraries/AddressAliasHelper.sol/AddressAliasHelper.dbg.json +1 -1
  118. package/build/contracts/src/libraries/AdminFallbackProxy.sol/AdminFallbackProxy.dbg.json +1 -1
  119. package/build/contracts/src/libraries/AdminFallbackProxy.sol/DoubleLogicERC1967Upgrade.dbg.json +1 -1
  120. package/build/contracts/src/libraries/ArbitrumChecker.sol/ArbitrumChecker.dbg.json +1 -1
  121. package/build/contracts/src/libraries/CallerChecker.sol/CallerChecker.dbg.json +1 -1
  122. package/build/contracts/src/libraries/CryptographyPrimitives.sol/CryptographyPrimitives.dbg.json +1 -1
  123. package/build/contracts/src/libraries/DecimalsConverterHelper.sol/DecimalsConverterHelper.dbg.json +1 -1
  124. package/build/contracts/src/libraries/DelegateCallAware.sol/DelegateCallAware.dbg.json +1 -1
  125. package/build/contracts/src/libraries/DoubleLogicUUPSUpgradeable.sol/DoubleLogicUUPSUpgradeable.dbg.json +1 -1
  126. package/build/contracts/src/libraries/GasRefundEnabled.sol/GasRefundEnabled.dbg.json +1 -1
  127. package/build/contracts/src/libraries/IGasRefunder.sol/IGasRefunder.dbg.json +1 -1
  128. package/build/contracts/src/libraries/IReader4844.sol/IReader4844.dbg.json +1 -1
  129. package/build/contracts/src/libraries/MerkleLib.sol/MerkleLib.dbg.json +1 -1
  130. package/build/contracts/src/libraries/MerkleLib.sol/MerkleLib.json +2 -2
  131. package/build/contracts/src/libraries/UUPSNotUpgradeable.sol/UUPSNotUpgradeable.dbg.json +1 -1
  132. package/build/contracts/src/mocks/BridgeStub.sol/BridgeStub.dbg.json +1 -1
  133. package/build/contracts/src/mocks/BridgeStub.sol/BridgeStub.json +2 -2
  134. package/build/contracts/src/mocks/BridgeUnproxied.sol/BridgeUnproxied.dbg.json +1 -1
  135. package/build/contracts/src/mocks/BridgeUnproxied.sol/BridgeUnproxied.json +2 -2
  136. package/build/contracts/src/mocks/InboxStub.sol/InboxStub.dbg.json +1 -1
  137. package/build/contracts/src/mocks/InboxStub.sol/InboxStub.json +2 -2
  138. package/build/contracts/src/mocks/MerkleTreeAccess.sol/MerkleTreeAccess.dbg.json +1 -1
  139. package/build/contracts/src/mocks/MerkleTreeAccess.sol/MerkleTreeAccess.json +2 -2
  140. package/build/contracts/src/mocks/MockRollupEventInbox.sol/MockRollupEventInbox.dbg.json +1 -1
  141. package/build/contracts/src/mocks/MockRollupEventInbox.sol/MockRollupEventInbox.json +2 -2
  142. package/build/contracts/src/mocks/SequencerInboxBlobMock.sol/SequencerInboxBlobMock.dbg.json +1 -1
  143. package/build/contracts/src/mocks/SequencerInboxBlobMock.sol/SequencerInboxBlobMock.json +51 -2
  144. package/build/contracts/src/mocks/SequencerInboxStub.sol/SequencerInboxStub.dbg.json +1 -1
  145. package/build/contracts/src/mocks/SequencerInboxStub.sol/SequencerInboxStub.json +51 -2
  146. package/build/contracts/src/mocks/SimpleOneStepProofEntry.sol/SimpleOneStepProofEntry.dbg.json +1 -1
  147. package/build/contracts/src/mocks/SimpleOneStepProofEntry.sol/SimpleOneStepProofEntry.json +2 -2
  148. package/build/contracts/src/mocks/TestWETH9.sol/IWETH9.dbg.json +1 -1
  149. package/build/contracts/src/mocks/TestWETH9.sol/TestWETH9.dbg.json +1 -1
  150. package/build/contracts/src/mocks/UpgradeExecutorMock.sol/UpgradeExecutorMock.dbg.json +1 -1
  151. package/build/contracts/src/node-interface/NodeInterface.sol/NodeInterface.dbg.json +1 -1
  152. package/build/contracts/src/node-interface/NodeInterfaceDebug.sol/NodeInterfaceDebug.dbg.json +1 -1
  153. package/build/contracts/src/osp/HashProofHelper.sol/HashProofHelper.dbg.json +1 -1
  154. package/build/contracts/src/osp/IOneStepProofEntry.sol/IOneStepProofEntry.dbg.json +1 -1
  155. package/build/contracts/src/osp/IOneStepProofEntry.sol/OneStepProofEntryLib.dbg.json +1 -1
  156. package/build/contracts/src/osp/IOneStepProofEntry.sol/OneStepProofEntryLib.json +2 -2
  157. package/build/contracts/src/osp/IOneStepProver.sol/IOneStepProver.dbg.json +1 -1
  158. package/build/contracts/src/osp/OneStepProofEntry.sol/OneStepProofEntry.dbg.json +1 -1
  159. package/build/contracts/src/osp/OneStepProofEntry.sol/OneStepProofEntry.json +2 -2
  160. package/build/contracts/src/osp/OneStepProver0.sol/OneStepProver0.dbg.json +1 -1
  161. package/build/contracts/src/osp/OneStepProver0.sol/OneStepProver0.json +2 -2
  162. package/build/contracts/src/osp/OneStepProverHostIo.sol/OneStepProverHostIo.dbg.json +1 -1
  163. package/build/contracts/src/osp/OneStepProverHostIo.sol/OneStepProverHostIo.json +2 -2
  164. package/build/contracts/src/osp/OneStepProverMath.sol/OneStepProverMath.dbg.json +1 -1
  165. package/build/contracts/src/osp/OneStepProverMath.sol/OneStepProverMath.json +2 -2
  166. package/build/contracts/src/osp/OneStepProverMemory.sol/OneStepProverMemory.dbg.json +1 -1
  167. package/build/contracts/src/osp/OneStepProverMemory.sol/OneStepProverMemory.json +2 -2
  168. package/build/contracts/src/precompiles/ArbAddressTable.sol/ArbAddressTable.dbg.json +1 -1
  169. package/build/contracts/src/precompiles/ArbAggregator.sol/ArbAggregator.dbg.json +1 -1
  170. package/build/contracts/src/precompiles/ArbBLS.sol/ArbBLS.dbg.json +1 -1
  171. package/build/contracts/src/precompiles/ArbDebug.sol/ArbDebug.dbg.json +1 -1
  172. package/build/contracts/src/precompiles/ArbFunctionTable.sol/ArbFunctionTable.dbg.json +1 -1
  173. package/build/contracts/src/precompiles/ArbGasInfo.sol/ArbGasInfo.dbg.json +1 -1
  174. package/build/contracts/src/precompiles/ArbInfo.sol/ArbInfo.dbg.json +1 -1
  175. package/build/contracts/src/precompiles/ArbNativeTokenManager.sol/ArbNativeTokenManager.dbg.json +4 -0
  176. package/build/contracts/src/precompiles/ArbNativeTokenManager.sol/ArbNativeTokenManager.json +75 -0
  177. package/build/contracts/src/precompiles/ArbOwner.sol/ArbOwner.dbg.json +1 -1
  178. package/build/contracts/src/precompiles/ArbOwner.sol/ArbOwner.json +71 -0
  179. package/build/contracts/src/precompiles/ArbOwnerPublic.sol/ArbOwnerPublic.dbg.json +1 -1
  180. package/build/contracts/src/precompiles/ArbOwnerPublic.sol/ArbOwnerPublic.json +32 -0
  181. package/build/contracts/src/precompiles/ArbRetryableTx.sol/ArbRetryableTx.dbg.json +1 -1
  182. package/build/contracts/src/precompiles/ArbStatistics.sol/ArbStatistics.dbg.json +1 -1
  183. package/build/contracts/src/precompiles/ArbSys.sol/ArbSys.dbg.json +1 -1
  184. package/build/contracts/src/precompiles/ArbWasm.sol/ArbWasm.dbg.json +1 -1
  185. package/build/contracts/src/precompiles/ArbWasmCache.sol/ArbWasmCache.dbg.json +1 -1
  186. package/build/contracts/src/precompiles/ArbosActs.sol/ArbosActs.dbg.json +1 -1
  187. package/build/contracts/src/precompiles/ArbosTest.sol/ArbosTest.dbg.json +1 -1
  188. package/build/contracts/src/rollup/AbsRollupEventInbox.sol/AbsRollupEventInbox.dbg.json +1 -1
  189. package/build/contracts/src/rollup/Assertion.sol/AssertionNodeLib.dbg.json +1 -1
  190. package/build/contracts/src/rollup/Assertion.sol/AssertionNodeLib.json +2 -2
  191. package/build/contracts/src/rollup/AssertionState.sol/AssertionStateLib.dbg.json +1 -1
  192. package/build/contracts/src/rollup/AssertionState.sol/AssertionStateLib.json +2 -2
  193. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/BOLDUpgradeAction.dbg.json +1 -1
  194. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/BOLDUpgradeAction.json +2 -2
  195. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ConstantArrayStorage.dbg.json +1 -1
  196. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ConstantArrayStorage.json +2 -2
  197. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollup.dbg.json +1 -1
  198. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollupAdmin.dbg.json +1 -1
  199. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ISeqInboxPostUpgradeInit.dbg.json +1 -1
  200. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/StateHashPreImageLookup.dbg.json +1 -1
  201. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/StateHashPreImageLookup.json +2 -2
  202. package/build/contracts/src/rollup/BridgeCreator.sol/BridgeCreator.dbg.json +1 -1
  203. package/build/contracts/src/rollup/BridgeCreator.sol/BridgeCreator.json +7 -2
  204. package/build/contracts/src/rollup/DeployHelper.sol/DeployHelper.dbg.json +1 -1
  205. package/build/contracts/src/rollup/DeployHelper.sol/DeployHelper.json +2 -2
  206. package/build/contracts/src/rollup/ERC20RollupEventInbox.sol/ERC20RollupEventInbox.dbg.json +1 -1
  207. package/build/contracts/src/rollup/ERC20RollupEventInbox.sol/ERC20RollupEventInbox.json +2 -2
  208. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/FactoryDeployerHelper.dbg.json +1 -1
  209. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IDeployHelper.dbg.json +1 -1
  210. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IERC20.dbg.json +1 -1
  211. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IERC20Bridge.dbg.json +1 -1
  212. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IInboxBase.dbg.json +1 -1
  213. package/build/contracts/src/rollup/IRollupAdmin.sol/IRollupAdmin.dbg.json +1 -1
  214. package/build/contracts/src/rollup/IRollupCore.sol/IRollupCore.dbg.json +1 -1
  215. package/build/contracts/src/rollup/IRollupEventInbox.sol/IRollupEventInbox.dbg.json +1 -1
  216. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUser.dbg.json +1 -1
  217. package/build/contracts/src/rollup/RollupAdminLogic.sol/RollupAdminLogic.dbg.json +1 -1
  218. package/build/contracts/src/rollup/RollupAdminLogic.sol/RollupAdminLogic.json +2 -2
  219. package/build/contracts/src/rollup/RollupCore.sol/RollupCore.dbg.json +1 -1
  220. package/build/contracts/src/rollup/RollupCreator.sol/RollupCreator.dbg.json +1 -1
  221. package/build/contracts/src/rollup/RollupCreator.sol/RollupCreator.json +7 -2
  222. package/build/contracts/src/rollup/RollupEventInbox.sol/RollupEventInbox.dbg.json +1 -1
  223. package/build/contracts/src/rollup/RollupEventInbox.sol/RollupEventInbox.json +2 -2
  224. package/build/contracts/src/rollup/RollupLib.sol/RollupLib.dbg.json +1 -1
  225. package/build/contracts/src/rollup/RollupLib.sol/RollupLib.json +2 -2
  226. package/build/contracts/src/rollup/RollupProxy.sol/RollupProxy.dbg.json +1 -1
  227. package/build/contracts/src/rollup/RollupProxy.sol/RollupProxy.json +2 -2
  228. package/build/contracts/src/rollup/RollupUserLogic.sol/RollupUserLogic.dbg.json +1 -1
  229. package/build/contracts/src/rollup/RollupUserLogic.sol/RollupUserLogic.json +2 -2
  230. package/build/contracts/src/rollup/ValidatorWallet.sol/ValidatorWallet.dbg.json +1 -1
  231. package/build/contracts/src/rollup/ValidatorWallet.sol/ValidatorWallet.json +2 -2
  232. package/build/contracts/src/rollup/ValidatorWalletCreator.sol/ValidatorWalletCreator.dbg.json +1 -1
  233. package/build/contracts/src/rollup/ValidatorWalletCreator.sol/ValidatorWalletCreator.json +2 -2
  234. package/build/contracts/src/state/Deserialize.sol/Deserialize.dbg.json +1 -1
  235. package/build/contracts/src/state/GlobalState.sol/GlobalStateLib.dbg.json +1 -1
  236. package/build/contracts/src/state/Instructions.sol/Instructions.dbg.json +1 -1
  237. package/build/contracts/src/state/Machine.sol/MachineLib.dbg.json +1 -1
  238. package/build/contracts/src/state/MerkleProof.sol/MerkleProofLib.dbg.json +1 -1
  239. package/build/contracts/src/state/Module.sol/ModuleLib.dbg.json +1 -1
  240. package/build/contracts/src/state/ModuleMemory.sol/ModuleMemoryLib.dbg.json +1 -1
  241. package/build/contracts/src/state/ModuleMemoryCompact.sol/ModuleMemoryCompactLib.dbg.json +1 -1
  242. package/build/contracts/src/state/MultiStack.sol/MultiStackLib.dbg.json +1 -1
  243. package/build/contracts/src/state/PcArray.sol/PcArrayLib.dbg.json +1 -1
  244. package/build/contracts/src/state/StackFrame.sol/StackFrameLib.dbg.json +1 -1
  245. package/build/contracts/src/state/Value.sol/ValueLib.dbg.json +1 -1
  246. package/build/contracts/src/state/ValueArray.sol/ValueArrayLib.dbg.json +1 -1
  247. package/build/contracts/src/state/ValueStack.sol/ValueStackLib.dbg.json +1 -1
  248. package/build/contracts/src/stylus/StylusDeployer.sol/StylusDeployer.dbg.json +4 -0
  249. package/build/contracts/src/stylus/StylusDeployer.sol/StylusDeployer.json +149 -0
  250. package/build/contracts/src/test-helpers/BridgeTester.sol/BridgeTester.dbg.json +1 -1
  251. package/build/contracts/src/test-helpers/BridgeTester.sol/BridgeTester.json +2 -2
  252. package/build/contracts/src/test-helpers/CryptographyPrimitivesTester.sol/CryptographyPrimitivesTester.dbg.json +1 -1
  253. package/build/contracts/src/test-helpers/EthVault.sol/EthVault.dbg.json +1 -1
  254. package/build/contracts/src/test-helpers/MessageTester.sol/MessageTester.dbg.json +1 -1
  255. package/build/contracts/src/test-helpers/NoReceiveForwarder.sol/ConstructorError.dbg.json +4 -0
  256. package/build/contracts/src/test-helpers/NoReceiveForwarder.sol/ConstructorError.json +16 -0
  257. package/build/contracts/src/test-helpers/NoReceiveForwarder.sol/ConstructorFine.dbg.json +4 -0
  258. package/build/contracts/src/test-helpers/NoReceiveForwarder.sol/ConstructorFine.json +29 -0
  259. package/build/contracts/src/test-helpers/NoReceiveForwarder.sol/NoReceiveForwarder.dbg.json +4 -0
  260. package/build/contracts/src/test-helpers/NoReceiveForwarder.sol/NoReceiveForwarder.json +29 -0
  261. package/build/contracts/src/test-helpers/NoReceiveForwarder.sol/ReceivingForwarder.dbg.json +4 -0
  262. package/build/contracts/src/test-helpers/NoReceiveForwarder.sol/ReceivingForwarder.json +33 -0
  263. package/build/contracts/src/test-helpers/OutboxWithoutOptTester.sol/OutboxWithoutOptTester.dbg.json +1 -1
  264. package/build/contracts/src/test-helpers/OutboxWithoutOptTester.sol/OutboxWithoutOptTester.json +2 -2
  265. package/build/contracts/src/test-helpers/RollupMock.sol/RollupMock.dbg.json +1 -1
  266. package/build/contracts/src/test-helpers/TestToken.sol/TestToken.dbg.json +1 -1
  267. package/build/contracts/src/test-helpers/ValueArrayTester.sol/ValueArrayTester.dbg.json +1 -1
  268. package/package.json +7 -2
  269. package/src/bridge/ISequencerInbox.sol +33 -1
  270. package/src/bridge/SequencerInbox.sol +49 -10
  271. package/src/bridge/extra/ERC20MigrationOutbox.sol +44 -0
  272. package/src/bridge/extra/IERC20MigrationOutbox.sol +38 -0
  273. package/src/express-lane-auction/IExpressLaneAuction.sol +4 -0
  274. package/src/libraries/Error.sol +3 -0
  275. package/src/precompiles/ArbNativeTokenManager.sol +39 -0
  276. package/src/precompiles/ArbOwner.sol +28 -0
  277. package/src/precompiles/ArbOwnerPublic.sol +10 -0
  278. package/src/rollup/BridgeCreator.sol +5 -2
  279. package/src/rollup/ERC20RollupEventInbox.sol +16 -2
  280. package/src/rollup/RollupAdminLogic.sol +0 -3
  281. package/src/rollup/RollupCreator.sol +3 -1
  282. package/src/stylus/StylusDeployer.sol +165 -0
  283. package/src/test-helpers/NoReceiveForwarder.sol +38 -0
  284. package/build/contracts/src/mocks/ArbOS11To32UpgradeTest.sol/ArbOS11To32UpgradeTest.dbg.json +0 -4
  285. package/build/contracts/src/mocks/ArbOS11To32UpgradeTest.sol/ArbOS11To32UpgradeTest.json +0 -24
  286. package/build/contracts/src/mocks/Benchmarks.sol/Benchmarks.dbg.json +0 -4
  287. package/build/contracts/src/mocks/Benchmarks.sol/Benchmarks.json +0 -46
  288. package/build/contracts/src/mocks/BigMap.sol/BigMap.dbg.json +0 -4
  289. package/build/contracts/src/mocks/BigMap.sol/BigMap.json +0 -48
  290. package/build/contracts/src/mocks/CreateTest.sol/CreateTest.dbg.json +0 -4
  291. package/build/contracts/src/mocks/CreateTest.sol/CreateTest.json +0 -15
  292. package/build/contracts/src/mocks/HostioTest.sol/HostioTest.dbg.json +0 -4
  293. package/build/contracts/src/mocks/HostioTest.sol/HostioTest.json +0 -513
  294. package/build/contracts/src/mocks/MultiCallTest.sol/MultiCallTest.dbg.json +0 -4
  295. package/build/contracts/src/mocks/MultiCallTest.sol/MultiCallTest.json +0 -71
  296. package/build/contracts/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol/PendingBlkTimeAndNrAdvanceCheck.dbg.json +0 -4
  297. package/build/contracts/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol/PendingBlkTimeAndNrAdvanceCheck.json +0 -36
  298. package/build/contracts/src/mocks/Program.sol/ProgramTest.dbg.json +0 -4
  299. package/build/contracts/src/mocks/Program.sol/ProgramTest.json +0 -142
  300. package/build/contracts/src/mocks/ProxyAdminForBinding.sol/ProxyAdminForBinding.dbg.json +0 -4
  301. package/build/contracts/src/mocks/ProxyAdminForBinding.sol/ProxyAdminForBinding.json +0 -160
  302. package/build/contracts/src/mocks/SdkStorage.sol/SdkStorage.dbg.json +0 -4
  303. package/build/contracts/src/mocks/SdkStorage.sol/SdkStorage.json +0 -25
  304. package/build/contracts/src/mocks/SelfDestruct.sol/SelfDestructInConstructorWithDestination.dbg.json +0 -4
  305. package/build/contracts/src/mocks/SelfDestruct.sol/SelfDestructInConstructorWithDestination.json +0 -22
  306. package/build/contracts/src/mocks/SelfDestruct.sol/SelfDestructInConstructorWithoutDestination.dbg.json +0 -4
  307. package/build/contracts/src/mocks/SelfDestruct.sol/SelfDestructInConstructorWithoutDestination.json +0 -16
  308. package/build/contracts/src/mocks/SelfDestruct.sol/SelfDestructOutsideConstructor.dbg.json +0 -4
  309. package/build/contracts/src/mocks/SelfDestruct.sol/SelfDestructOutsideConstructor.json +0 -36
  310. package/build/contracts/src/mocks/Simple.sol/Simple.dbg.json +0 -4
  311. package/build/contracts/src/mocks/Simple.sol/Simple.json +0 -303
  312. package/build/contracts/src/mocks/SimpleCacheManager.sol/SimpleCacheManager.dbg.json +0 -4
  313. package/build/contracts/src/mocks/SimpleCacheManager.sol/SimpleCacheManager.json +0 -37
  314. package/build/contracts/src/mocks/SimpleProxy.sol/SimpleProxy.dbg.json +0 -4
  315. package/build/contracts/src/mocks/SimpleProxy.sol/SimpleProxy.json +0 -30
  316. package/src/mocks/ArbOS11To32UpgradeTest.sol +0 -18
  317. package/src/mocks/Benchmarks.sol +0 -52
  318. package/src/mocks/BigMap.sol +0 -23
  319. package/src/mocks/CreateTest.sol +0 -44
  320. package/src/mocks/HostioTest.sol +0 -200
  321. package/src/mocks/MultiCallTest.sol +0 -119
  322. package/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol +0 -31
  323. package/src/mocks/Program.sol +0 -128
  324. package/src/mocks/ProxyAdminForBinding.sol +0 -9
  325. package/src/mocks/SdkStorage.sol +0 -176
  326. package/src/mocks/SelfDestruct.sol +0 -33
  327. package/src/mocks/Simple.sol +0 -168
  328. package/src/mocks/SimpleCacheManager.sol +0 -29
  329. package/src/mocks/SimpleProxy.sol +0 -21
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/05975d8ff980ada82754db53ad500688.json"
3
+ "buildInfo": "../../../build-info/db15eeb0a9cfbd6e506aecb04c404862.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/05975d8ff980ada82754db53ad500688.json"
3
+ "buildInfo": "../../../build-info/db15eeb0a9cfbd6e506aecb04c404862.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/05975d8ff980ada82754db53ad500688.json"
3
+ "buildInfo": "../../../build-info/db15eeb0a9cfbd6e506aecb04c404862.json"
4
4
  }
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../build-info/db15eeb0a9cfbd6e506aecb04c404862.json"
4
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "ConstructorError",
4
+ "sourceName": "src/test-helpers/NoReceiveForwarder.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [],
8
+ "stateMutability": "nonpayable",
9
+ "type": "constructor"
10
+ }
11
+ ],
12
+ "bytecode": "0x6080604052348015600f57600080fd5b5060405162461bcd60e51b815260206004820152601960248201527f74657374206572726f7220696e20636f6e7374727563746f7200000000000000604482015260640160405180910390fdfe",
13
+ "deployedBytecode": "0x6080604052600080fdfea264697066735822122083af1d7a96fb3c1e4989fc72d5468012dec0b653650bb3bf1bc0b07d3485a02264736f6c63430008110033",
14
+ "linkReferences": {},
15
+ "deployedLinkReferences": {}
16
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../build-info/db15eeb0a9cfbd6e506aecb04c404862.json"
4
+ }
@@ -0,0 +1,29 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "ConstructorFine",
4
+ "sourceName": "src/test-helpers/NoReceiveForwarder.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [],
8
+ "stateMutability": "nonpayable",
9
+ "type": "constructor"
10
+ },
11
+ {
12
+ "inputs": [],
13
+ "name": "number",
14
+ "outputs": [
15
+ {
16
+ "internalType": "uint256",
17
+ "name": "",
18
+ "type": "uint256"
19
+ }
20
+ ],
21
+ "stateMutability": "pure",
22
+ "type": "function"
23
+ }
24
+ ],
25
+ "bytecode": "0x6080604052348015600f57600080fd5b50607780601d6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c80638381f58a14602d575b600080fd5b600060405190815260200160405180910390f3fea2646970667358221220314de44a6d814eafb7515c4fa3590e9d08d9582ba170485ef197269a3c8fde5764736f6c63430008110033",
26
+ "deployedBytecode": "0x6080604052348015600f57600080fd5b506004361060285760003560e01c80638381f58a14602d575b600080fd5b600060405190815260200160405180910390f3fea2646970667358221220314de44a6d814eafb7515c4fa3590e9d08d9582ba170485ef197269a3c8fde5764736f6c63430008110033",
27
+ "linkReferences": {},
28
+ "deployedLinkReferences": {}
29
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../build-info/db15eeb0a9cfbd6e506aecb04c404862.json"
4
+ }
@@ -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/db15eeb0a9cfbd6e506aecb04c404862.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/05975d8ff980ada82754db53ad500688.json"
3
+ "buildInfo": "../../../build-info/db15eeb0a9cfbd6e506aecb04c404862.json"
4
4
  }
@@ -543,8 +543,8 @@
543
543
  "type": "function"
544
544
  }
545
545
  ],
546
- "bytecode": "0x60a06040523060805234801561001457600080fd5b506080516114d7610030600039600061072e01526114d76000f3fe608060405234801561001057600080fd5b506004361061016b5760003560e01c806395fcea78116100cd578063c4d66de811610081578063cb23bcb511610066578063cb23bcb5146102ed578063d5b5cc2314610300578063e78cea921461031357600080fd5b8063c4d66de8146102ba578063c75184df146102cd57600080fd5b8063a04cee60116100b2578063a04cee6014610276578063ae6dead714610289578063b0f30537146102a957600080fd5b806395fcea78146101a95780639f0c04bf1461026357600080fd5b80635a129efe1161012457806372f2a8c71161010957806372f2a8c71461021157806380648b02146102195780638515bc6a1461023e57600080fd5b80635a129efe146101d65780636ae71f121461020957600080fd5b8063119852711161015557806311985271146101ab578063288e5b10146101b257806346547790146101c557600080fd5b80627436d31461017057806308635a9514610196575b600080fd5b61018361017e366004610e37565b610326565b6040519081526020015b60405180910390f35b6101a96101a4366004610f5e565b610363565b005b6000610183565b6101a96101c0366004611053565b6106d7565b6004546001600160801b0316610183565b6101f96101e43660046110ef565b60026020526000908152604090205460ff1681565b604051901515815260200161018d565b6101a9610724565b600654610183565b6007546001600160a01b03165b6040516001600160a01b03909116815260200161018d565b60045470010000000000000000000000000000000090046001600160801b0316610183565b610183610271366004611108565b6108e0565b6101a9610284366004611197565b610925565b6101836102973660046110ef565b60036020526000908152604090205481565b6005546001600160801b0316610183565b6101a96102c83660046111b9565b610964565b6102d5600281565b6040516001600160801b03909116815260200161018d565b600054610226906001600160a01b031681565b61018361030e3660046110ef565b610a7a565b600154610226906001600160a01b031681565b600061035b84848460405160200161034091815260200190565b60405160208183030381529060405280519060200120610ac5565b949350505050565b6000806103768a8a8a8a8a8a8a8a6108e0565b90506103b88d8d808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508f9250859150610b809050565b915060008a6001600160a01b03168a6001600160a01b03167f20af7f3bbfe38132b8900ae295cd9c8d1914be7052d061a511f3f728dab189648e60405161040191815260200190565b60405180910390a450600060046040518060a00160405290816000820160009054906101000a90046001600160801b03166001600160801b03166001600160801b031681526020016000820160109054906101000a90046001600160801b03166001600160801b03166001600160801b031681526020016001820160009054906101000a90046001600160801b03166001600160801b03166001600160801b03168152602001600282015481526020016003820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152505090506040518060a00160405280896001600160801b03168152602001886001600160801b03168152602001876001600160801b031681526020018381526020018b6001600160a01b0316815250600460008201518160000160006101000a8154816001600160801b0302191690836001600160801b0316021790555060208201518160000160106101000a8154816001600160801b0302191690836001600160801b0316021790555060408201518160010160006101000a8154816001600160801b0302191690836001600160801b031602179055506060820151816002015560808201518160030160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550905050610630898686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610d0592505050565b805160208201516001600160801b0391821670010000000000000000000000000000000091831691909102176004556040820151600580547fffffffffffffffffffffffffffffffff0000000000000000000000000000000016919092161790556060810151600655608001516007805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909216919091179055505050505050505050505050565b60405162461bcd60e51b815260206004820152600f60248201527f4e6f7420696d706c656d656e746564000000000000000000000000000000000060448201526064015b60405180910390fd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107c25760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c0000000000000000000000000000000000000000606482015260840161071b565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61038054336001600160a01b03821614610838576040517f23295f0e0000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b038216602482015260440161071b565b600160009054906101000a90046001600160a01b03166001600160a01b031663cb23bcb56040518163ffffffff1660e01b8152600401602060405180830381865afa15801561088b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108af91906111dd565b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790555050565b600088888888888888886040516020016109019897969594939291906111fa565b60405160208183030381529060405280519060200120905098975050505050505050565b60008281526003602052604080822083905551829184917fb4df3847300f076a369cd76d2314b470a1194d9e8a6bb97f1860aee88a5f67489190a35050565b6001546001600160a01b0316156109a7576040517fef34ca5c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038316908117909155604080517fcb23bcb5000000000000000000000000000000000000000000000000000000008152905163cb23bcb5916004808201926020929091908290030181865afa158015610a26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4a91906111dd565b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905550565b60405162461bcd60e51b815260206004820152600e60248201527f4e4f545f494d504c454d45544544000000000000000000000000000000000000604482015260009060640161071b565b8251600090610100811115610b11576040517ffdac331e00000000000000000000000000000000000000000000000000000000815260048101829052610100602482015260440161071b565b8260005b82811015610b76576000878281518110610b3157610b31611266565b60200260200101519050816001901b8716600003610b5d57826000528060205260406000209250610b6d565b8060005282602052604060002092505b50600101610b15565b5095945050505050565b6000610100845110610bc35783516040517fab6a068300000000000000000000000000000000000000000000000000000000815260040161071b91815260200190565b8351610bd0906002611378565b8310610c20578284516002610be59190611378565b6040517f0b8a724b0000000000000000000000000000000000000000000000000000000081526004810192909252602482015260440161071b565b6000610c2d858585610326565b600081815260036020526040902054909150610c78576040517f8730d7c80000000000000000000000000000000000000000000000000000000081526004810182905260240161071b565b60008481526002602052604090205460ff1615610cc4576040517f9715b8d30000000000000000000000000000000000000000000000000000000081526004810185905260240161071b565b5050600082815260026020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055819392505050565b6001546040517f9e5d4c4900000000000000000000000000000000000000000000000000000000815260009182916001600160a01b0390911690639e5d4c4990610d57908890889088906004016113a8565b6000604051808303816000875af1158015610d76573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d9e91908101906113f2565b9150915081610de957805115610db75780518082602001fd5b6040517f376fb55a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610e2f57610e2f610df0565b604052919050565b600080600060608486031215610e4c57600080fd5b833567ffffffffffffffff80821115610e6457600080fd5b818601915086601f830112610e7857600080fd5b8135602082821115610e8c57610e8c610df0565b8160051b9250610e9d818401610e06565b828152928401810192818101908a851115610eb757600080fd5b948201945b84861015610ed557853582529482019490820190610ebc565b9a918901359950506040909701359695505050505050565b6001600160a01b0381168114610f0257600080fd5b50565b8035610f1081610eed565b919050565b60008083601f840112610f2757600080fd5b50813567ffffffffffffffff811115610f3f57600080fd5b602083019150836020828501011115610f5757600080fd5b9250929050565b60008060008060008060008060008060006101208c8e031215610f8057600080fd5b8b3567ffffffffffffffff80821115610f9857600080fd5b818e0191508e601f830112610fac57600080fd5b813581811115610fbb57600080fd5b8f60208260051b8501011115610fd057600080fd5b60208381019e50909c508e01359a50610feb60408f01610f05565b9950610ff960608f01610f05565b985060808e0135975060a08e0135965060c08e0135955060e08e013594506101008e013591508082111561102c57600080fd5b506110398e828f01610f15565b915080935050809150509295989b509295989b9093969950565b60008060008060008060008060006101008a8c03121561107257600080fd5b8935985060208a013561108481610eed565b975060408a013561109481610eed565b965060608a0135955060808a0135945060a08a0135935060c08a0135925060e08a013567ffffffffffffffff8111156110cc57600080fd5b6110d88c828d01610f15565b915080935050809150509295985092959850929598565b60006020828403121561110157600080fd5b5035919050565b60008060008060008060008060e0898b03121561112457600080fd5b883561112f81610eed565b9750602089013561113f81610eed565b965060408901359550606089013594506080890135935060a0890135925060c089013567ffffffffffffffff81111561117757600080fd5b6111838b828c01610f15565b999c989b5096995094979396929594505050565b600080604083850312156111aa57600080fd5b50508035926020909101359150565b6000602082840312156111cb57600080fd5b81356111d681610eed565b9392505050565b6000602082840312156111ef57600080fd5b81516111d681610eed565b60007fffffffffffffffffffffffffffffffffffffffff000000000000000000000000808b60601b168352808a60601b16601484015250876028830152866048830152856068830152846088830152828460a8840137506000910160a801908152979650505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600181815b808511156112cd5781600019048211156112b3576112b361127c565b808516156112c057918102915b93841c9390800290611297565b509250929050565b6000826112e457506001611372565b816112f157506000611372565b816001811461130757600281146113115761132d565b6001915050611372565b60ff8411156113225761132261127c565b50506001821b611372565b5060208310610133831016604e8410600b8410161715611350575081810a611372565b61135a8383611292565b806000190482111561136e5761136e61127c565b0290505b92915050565b60006111d683836112d5565b60005b8381101561139f578181015183820152602001611387565b50506000910152565b6001600160a01b038416815282602082015260606040820152600082518060608401526113dc816080850160208701611384565b601f01601f191691909101608001949350505050565b6000806040838503121561140557600080fd5b8251801515811461141557600080fd5b602084015190925067ffffffffffffffff8082111561143357600080fd5b818501915085601f83011261144757600080fd5b81518181111561145957611459610df0565b61146c6020601f19601f84011601610e06565b915080825286602082850101111561148357600080fd5b611494816020840160208601611384565b508092505050925092905056fea26469706673582212209134c8539ccd56bd758346b91447d71c4cf7cfc5f897dbb879185467ebd0284964736f6c63430008110033",
547
- "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061016b5760003560e01c806395fcea78116100cd578063c4d66de811610081578063cb23bcb511610066578063cb23bcb5146102ed578063d5b5cc2314610300578063e78cea921461031357600080fd5b8063c4d66de8146102ba578063c75184df146102cd57600080fd5b8063a04cee60116100b2578063a04cee6014610276578063ae6dead714610289578063b0f30537146102a957600080fd5b806395fcea78146101a95780639f0c04bf1461026357600080fd5b80635a129efe1161012457806372f2a8c71161010957806372f2a8c71461021157806380648b02146102195780638515bc6a1461023e57600080fd5b80635a129efe146101d65780636ae71f121461020957600080fd5b8063119852711161015557806311985271146101ab578063288e5b10146101b257806346547790146101c557600080fd5b80627436d31461017057806308635a9514610196575b600080fd5b61018361017e366004610e37565b610326565b6040519081526020015b60405180910390f35b6101a96101a4366004610f5e565b610363565b005b6000610183565b6101a96101c0366004611053565b6106d7565b6004546001600160801b0316610183565b6101f96101e43660046110ef565b60026020526000908152604090205460ff1681565b604051901515815260200161018d565b6101a9610724565b600654610183565b6007546001600160a01b03165b6040516001600160a01b03909116815260200161018d565b60045470010000000000000000000000000000000090046001600160801b0316610183565b610183610271366004611108565b6108e0565b6101a9610284366004611197565b610925565b6101836102973660046110ef565b60036020526000908152604090205481565b6005546001600160801b0316610183565b6101a96102c83660046111b9565b610964565b6102d5600281565b6040516001600160801b03909116815260200161018d565b600054610226906001600160a01b031681565b61018361030e3660046110ef565b610a7a565b600154610226906001600160a01b031681565b600061035b84848460405160200161034091815260200190565b60405160208183030381529060405280519060200120610ac5565b949350505050565b6000806103768a8a8a8a8a8a8a8a6108e0565b90506103b88d8d808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508f9250859150610b809050565b915060008a6001600160a01b03168a6001600160a01b03167f20af7f3bbfe38132b8900ae295cd9c8d1914be7052d061a511f3f728dab189648e60405161040191815260200190565b60405180910390a450600060046040518060a00160405290816000820160009054906101000a90046001600160801b03166001600160801b03166001600160801b031681526020016000820160109054906101000a90046001600160801b03166001600160801b03166001600160801b031681526020016001820160009054906101000a90046001600160801b03166001600160801b03166001600160801b03168152602001600282015481526020016003820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152505090506040518060a00160405280896001600160801b03168152602001886001600160801b03168152602001876001600160801b031681526020018381526020018b6001600160a01b0316815250600460008201518160000160006101000a8154816001600160801b0302191690836001600160801b0316021790555060208201518160000160106101000a8154816001600160801b0302191690836001600160801b0316021790555060408201518160010160006101000a8154816001600160801b0302191690836001600160801b031602179055506060820151816002015560808201518160030160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550905050610630898686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610d0592505050565b805160208201516001600160801b0391821670010000000000000000000000000000000091831691909102176004556040820151600580547fffffffffffffffffffffffffffffffff0000000000000000000000000000000016919092161790556060810151600655608001516007805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909216919091179055505050505050505050505050565b60405162461bcd60e51b815260206004820152600f60248201527f4e6f7420696d706c656d656e746564000000000000000000000000000000000060448201526064015b60405180910390fd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107c25760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c0000000000000000000000000000000000000000606482015260840161071b565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61038054336001600160a01b03821614610838576040517f23295f0e0000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b038216602482015260440161071b565b600160009054906101000a90046001600160a01b03166001600160a01b031663cb23bcb56040518163ffffffff1660e01b8152600401602060405180830381865afa15801561088b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108af91906111dd565b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790555050565b600088888888888888886040516020016109019897969594939291906111fa565b60405160208183030381529060405280519060200120905098975050505050505050565b60008281526003602052604080822083905551829184917fb4df3847300f076a369cd76d2314b470a1194d9e8a6bb97f1860aee88a5f67489190a35050565b6001546001600160a01b0316156109a7576040517fef34ca5c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038316908117909155604080517fcb23bcb5000000000000000000000000000000000000000000000000000000008152905163cb23bcb5916004808201926020929091908290030181865afa158015610a26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4a91906111dd565b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905550565b60405162461bcd60e51b815260206004820152600e60248201527f4e4f545f494d504c454d45544544000000000000000000000000000000000000604482015260009060640161071b565b8251600090610100811115610b11576040517ffdac331e00000000000000000000000000000000000000000000000000000000815260048101829052610100602482015260440161071b565b8260005b82811015610b76576000878281518110610b3157610b31611266565b60200260200101519050816001901b8716600003610b5d57826000528060205260406000209250610b6d565b8060005282602052604060002092505b50600101610b15565b5095945050505050565b6000610100845110610bc35783516040517fab6a068300000000000000000000000000000000000000000000000000000000815260040161071b91815260200190565b8351610bd0906002611378565b8310610c20578284516002610be59190611378565b6040517f0b8a724b0000000000000000000000000000000000000000000000000000000081526004810192909252602482015260440161071b565b6000610c2d858585610326565b600081815260036020526040902054909150610c78576040517f8730d7c80000000000000000000000000000000000000000000000000000000081526004810182905260240161071b565b60008481526002602052604090205460ff1615610cc4576040517f9715b8d30000000000000000000000000000000000000000000000000000000081526004810185905260240161071b565b5050600082815260026020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055819392505050565b6001546040517f9e5d4c4900000000000000000000000000000000000000000000000000000000815260009182916001600160a01b0390911690639e5d4c4990610d57908890889088906004016113a8565b6000604051808303816000875af1158015610d76573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d9e91908101906113f2565b9150915081610de957805115610db75780518082602001fd5b6040517f376fb55a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610e2f57610e2f610df0565b604052919050565b600080600060608486031215610e4c57600080fd5b833567ffffffffffffffff80821115610e6457600080fd5b818601915086601f830112610e7857600080fd5b8135602082821115610e8c57610e8c610df0565b8160051b9250610e9d818401610e06565b828152928401810192818101908a851115610eb757600080fd5b948201945b84861015610ed557853582529482019490820190610ebc565b9a918901359950506040909701359695505050505050565b6001600160a01b0381168114610f0257600080fd5b50565b8035610f1081610eed565b919050565b60008083601f840112610f2757600080fd5b50813567ffffffffffffffff811115610f3f57600080fd5b602083019150836020828501011115610f5757600080fd5b9250929050565b60008060008060008060008060008060006101208c8e031215610f8057600080fd5b8b3567ffffffffffffffff80821115610f9857600080fd5b818e0191508e601f830112610fac57600080fd5b813581811115610fbb57600080fd5b8f60208260051b8501011115610fd057600080fd5b60208381019e50909c508e01359a50610feb60408f01610f05565b9950610ff960608f01610f05565b985060808e0135975060a08e0135965060c08e0135955060e08e013594506101008e013591508082111561102c57600080fd5b506110398e828f01610f15565b915080935050809150509295989b509295989b9093969950565b60008060008060008060008060006101008a8c03121561107257600080fd5b8935985060208a013561108481610eed565b975060408a013561109481610eed565b965060608a0135955060808a0135945060a08a0135935060c08a0135925060e08a013567ffffffffffffffff8111156110cc57600080fd5b6110d88c828d01610f15565b915080935050809150509295985092959850929598565b60006020828403121561110157600080fd5b5035919050565b60008060008060008060008060e0898b03121561112457600080fd5b883561112f81610eed565b9750602089013561113f81610eed565b965060408901359550606089013594506080890135935060a0890135925060c089013567ffffffffffffffff81111561117757600080fd5b6111838b828c01610f15565b999c989b5096995094979396929594505050565b600080604083850312156111aa57600080fd5b50508035926020909101359150565b6000602082840312156111cb57600080fd5b81356111d681610eed565b9392505050565b6000602082840312156111ef57600080fd5b81516111d681610eed565b60007fffffffffffffffffffffffffffffffffffffffff000000000000000000000000808b60601b168352808a60601b16601484015250876028830152866048830152856068830152846088830152828460a8840137506000910160a801908152979650505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600181815b808511156112cd5781600019048211156112b3576112b361127c565b808516156112c057918102915b93841c9390800290611297565b509250929050565b6000826112e457506001611372565b816112f157506000611372565b816001811461130757600281146113115761132d565b6001915050611372565b60ff8411156113225761132261127c565b50506001821b611372565b5060208310610133831016604e8410600b8410161715611350575081810a611372565b61135a8383611292565b806000190482111561136e5761136e61127c565b0290505b92915050565b60006111d683836112d5565b60005b8381101561139f578181015183820152602001611387565b50506000910152565b6001600160a01b038416815282602082015260606040820152600082518060608401526113dc816080850160208701611384565b601f01601f191691909101608001949350505050565b6000806040838503121561140557600080fd5b8251801515811461141557600080fd5b602084015190925067ffffffffffffffff8082111561143357600080fd5b818501915085601f83011261144757600080fd5b81518181111561145957611459610df0565b61146c6020601f19601f84011601610e06565b915080825286602082850101111561148357600080fd5b611494816020840160208601611384565b508092505050925092905056fea26469706673582212209134c8539ccd56bd758346b91447d71c4cf7cfc5f897dbb879185467ebd0284964736f6c63430008110033",
546
+ "bytecode": "0x60a06040523060805234801561001457600080fd5b506080516114d7610030600039600061072e01526114d76000f3fe608060405234801561001057600080fd5b506004361061016b5760003560e01c806395fcea78116100cd578063c4d66de811610081578063cb23bcb511610066578063cb23bcb5146102ed578063d5b5cc2314610300578063e78cea921461031357600080fd5b8063c4d66de8146102ba578063c75184df146102cd57600080fd5b8063a04cee60116100b2578063a04cee6014610276578063ae6dead714610289578063b0f30537146102a957600080fd5b806395fcea78146101a95780639f0c04bf1461026357600080fd5b80635a129efe1161012457806372f2a8c71161010957806372f2a8c71461021157806380648b02146102195780638515bc6a1461023e57600080fd5b80635a129efe146101d65780636ae71f121461020957600080fd5b8063119852711161015557806311985271146101ab578063288e5b10146101b257806346547790146101c557600080fd5b80627436d31461017057806308635a9514610196575b600080fd5b61018361017e366004610e37565b610326565b6040519081526020015b60405180910390f35b6101a96101a4366004610f5e565b610363565b005b6000610183565b6101a96101c0366004611053565b6106d7565b6004546001600160801b0316610183565b6101f96101e43660046110ef565b60026020526000908152604090205460ff1681565b604051901515815260200161018d565b6101a9610724565b600654610183565b6007546001600160a01b03165b6040516001600160a01b03909116815260200161018d565b60045470010000000000000000000000000000000090046001600160801b0316610183565b610183610271366004611108565b6108e0565b6101a9610284366004611197565b610925565b6101836102973660046110ef565b60036020526000908152604090205481565b6005546001600160801b0316610183565b6101a96102c83660046111b9565b610964565b6102d5600281565b6040516001600160801b03909116815260200161018d565b600054610226906001600160a01b031681565b61018361030e3660046110ef565b610a7a565b600154610226906001600160a01b031681565b600061035b84848460405160200161034091815260200190565b60405160208183030381529060405280519060200120610ac5565b949350505050565b6000806103768a8a8a8a8a8a8a8a6108e0565b90506103b88d8d808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508f9250859150610b809050565b915060008a6001600160a01b03168a6001600160a01b03167f20af7f3bbfe38132b8900ae295cd9c8d1914be7052d061a511f3f728dab189648e60405161040191815260200190565b60405180910390a450600060046040518060a00160405290816000820160009054906101000a90046001600160801b03166001600160801b03166001600160801b031681526020016000820160109054906101000a90046001600160801b03166001600160801b03166001600160801b031681526020016001820160009054906101000a90046001600160801b03166001600160801b03166001600160801b03168152602001600282015481526020016003820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152505090506040518060a00160405280896001600160801b03168152602001886001600160801b03168152602001876001600160801b031681526020018381526020018b6001600160a01b0316815250600460008201518160000160006101000a8154816001600160801b0302191690836001600160801b0316021790555060208201518160000160106101000a8154816001600160801b0302191690836001600160801b0316021790555060408201518160010160006101000a8154816001600160801b0302191690836001600160801b031602179055506060820151816002015560808201518160030160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550905050610630898686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610d0592505050565b805160208201516001600160801b0391821670010000000000000000000000000000000091831691909102176004556040820151600580547fffffffffffffffffffffffffffffffff0000000000000000000000000000000016919092161790556060810151600655608001516007805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909216919091179055505050505050505050505050565b60405162461bcd60e51b815260206004820152600f60248201527f4e6f7420696d706c656d656e746564000000000000000000000000000000000060448201526064015b60405180910390fd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107c25760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c0000000000000000000000000000000000000000606482015260840161071b565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61038054336001600160a01b03821614610838576040517f23295f0e0000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b038216602482015260440161071b565b600160009054906101000a90046001600160a01b03166001600160a01b031663cb23bcb56040518163ffffffff1660e01b8152600401602060405180830381865afa15801561088b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108af91906111dd565b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790555050565b600088888888888888886040516020016109019897969594939291906111fa565b60405160208183030381529060405280519060200120905098975050505050505050565b60008281526003602052604080822083905551829184917fb4df3847300f076a369cd76d2314b470a1194d9e8a6bb97f1860aee88a5f67489190a35050565b6001546001600160a01b0316156109a7576040517fef34ca5c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038316908117909155604080517fcb23bcb5000000000000000000000000000000000000000000000000000000008152905163cb23bcb5916004808201926020929091908290030181865afa158015610a26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4a91906111dd565b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905550565b60405162461bcd60e51b815260206004820152600e60248201527f4e4f545f494d504c454d45544544000000000000000000000000000000000000604482015260009060640161071b565b8251600090610100811115610b11576040517ffdac331e00000000000000000000000000000000000000000000000000000000815260048101829052610100602482015260440161071b565b8260005b82811015610b76576000878281518110610b3157610b31611266565b60200260200101519050816001901b8716600003610b5d57826000528060205260406000209250610b6d565b8060005282602052604060002092505b50600101610b15565b5095945050505050565b6000610100845110610bc35783516040517fab6a068300000000000000000000000000000000000000000000000000000000815260040161071b91815260200190565b8351610bd0906002611378565b8310610c20578284516002610be59190611378565b6040517f0b8a724b0000000000000000000000000000000000000000000000000000000081526004810192909252602482015260440161071b565b6000610c2d858585610326565b600081815260036020526040902054909150610c78576040517f8730d7c80000000000000000000000000000000000000000000000000000000081526004810182905260240161071b565b60008481526002602052604090205460ff1615610cc4576040517f9715b8d30000000000000000000000000000000000000000000000000000000081526004810185905260240161071b565b5050600082815260026020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055819392505050565b6001546040517f9e5d4c4900000000000000000000000000000000000000000000000000000000815260009182916001600160a01b0390911690639e5d4c4990610d57908890889088906004016113a8565b6000604051808303816000875af1158015610d76573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d9e91908101906113f2565b9150915081610de957805115610db75780518082602001fd5b6040517f376fb55a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610e2f57610e2f610df0565b604052919050565b600080600060608486031215610e4c57600080fd5b833567ffffffffffffffff80821115610e6457600080fd5b818601915086601f830112610e7857600080fd5b8135602082821115610e8c57610e8c610df0565b8160051b9250610e9d818401610e06565b828152928401810192818101908a851115610eb757600080fd5b948201945b84861015610ed557853582529482019490820190610ebc565b9a918901359950506040909701359695505050505050565b6001600160a01b0381168114610f0257600080fd5b50565b8035610f1081610eed565b919050565b60008083601f840112610f2757600080fd5b50813567ffffffffffffffff811115610f3f57600080fd5b602083019150836020828501011115610f5757600080fd5b9250929050565b60008060008060008060008060008060006101208c8e031215610f8057600080fd5b8b3567ffffffffffffffff80821115610f9857600080fd5b818e0191508e601f830112610fac57600080fd5b813581811115610fbb57600080fd5b8f60208260051b8501011115610fd057600080fd5b60208381019e50909c508e01359a50610feb60408f01610f05565b9950610ff960608f01610f05565b985060808e0135975060a08e0135965060c08e0135955060e08e013594506101008e013591508082111561102c57600080fd5b506110398e828f01610f15565b915080935050809150509295989b509295989b9093969950565b60008060008060008060008060006101008a8c03121561107257600080fd5b8935985060208a013561108481610eed565b975060408a013561109481610eed565b965060608a0135955060808a0135945060a08a0135935060c08a0135925060e08a013567ffffffffffffffff8111156110cc57600080fd5b6110d88c828d01610f15565b915080935050809150509295985092959850929598565b60006020828403121561110157600080fd5b5035919050565b60008060008060008060008060e0898b03121561112457600080fd5b883561112f81610eed565b9750602089013561113f81610eed565b965060408901359550606089013594506080890135935060a0890135925060c089013567ffffffffffffffff81111561117757600080fd5b6111838b828c01610f15565b999c989b5096995094979396929594505050565b600080604083850312156111aa57600080fd5b50508035926020909101359150565b6000602082840312156111cb57600080fd5b81356111d681610eed565b9392505050565b6000602082840312156111ef57600080fd5b81516111d681610eed565b60007fffffffffffffffffffffffffffffffffffffffff000000000000000000000000808b60601b168352808a60601b16601484015250876028830152866048830152856068830152846088830152828460a8840137506000910160a801908152979650505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600181815b808511156112cd5781600019048211156112b3576112b361127c565b808516156112c057918102915b93841c9390800290611297565b509250929050565b6000826112e457506001611372565b816112f157506000611372565b816001811461130757600281146113115761132d565b6001915050611372565b60ff8411156113225761132261127c565b50506001821b611372565b5060208310610133831016604e8410600b8410161715611350575081810a611372565b61135a8383611292565b806000190482111561136e5761136e61127c565b0290505b92915050565b60006111d683836112d5565b60005b8381101561139f578181015183820152602001611387565b50506000910152565b6001600160a01b038416815282602082015260606040820152600082518060608401526113dc816080850160208701611384565b601f01601f191691909101608001949350505050565b6000806040838503121561140557600080fd5b8251801515811461141557600080fd5b602084015190925067ffffffffffffffff8082111561143357600080fd5b818501915085601f83011261144757600080fd5b81518181111561145957611459610df0565b61146c6020601f19601f84011601610e06565b915080825286602082850101111561148357600080fd5b611494816020840160208601611384565b508092505050925092905056fea2646970667358221220014399e92a28947a32390d6afdc097a293798951a2b0de1adba980920cda6c7964736f6c63430008110033",
547
+ "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061016b5760003560e01c806395fcea78116100cd578063c4d66de811610081578063cb23bcb511610066578063cb23bcb5146102ed578063d5b5cc2314610300578063e78cea921461031357600080fd5b8063c4d66de8146102ba578063c75184df146102cd57600080fd5b8063a04cee60116100b2578063a04cee6014610276578063ae6dead714610289578063b0f30537146102a957600080fd5b806395fcea78146101a95780639f0c04bf1461026357600080fd5b80635a129efe1161012457806372f2a8c71161010957806372f2a8c71461021157806380648b02146102195780638515bc6a1461023e57600080fd5b80635a129efe146101d65780636ae71f121461020957600080fd5b8063119852711161015557806311985271146101ab578063288e5b10146101b257806346547790146101c557600080fd5b80627436d31461017057806308635a9514610196575b600080fd5b61018361017e366004610e37565b610326565b6040519081526020015b60405180910390f35b6101a96101a4366004610f5e565b610363565b005b6000610183565b6101a96101c0366004611053565b6106d7565b6004546001600160801b0316610183565b6101f96101e43660046110ef565b60026020526000908152604090205460ff1681565b604051901515815260200161018d565b6101a9610724565b600654610183565b6007546001600160a01b03165b6040516001600160a01b03909116815260200161018d565b60045470010000000000000000000000000000000090046001600160801b0316610183565b610183610271366004611108565b6108e0565b6101a9610284366004611197565b610925565b6101836102973660046110ef565b60036020526000908152604090205481565b6005546001600160801b0316610183565b6101a96102c83660046111b9565b610964565b6102d5600281565b6040516001600160801b03909116815260200161018d565b600054610226906001600160a01b031681565b61018361030e3660046110ef565b610a7a565b600154610226906001600160a01b031681565b600061035b84848460405160200161034091815260200190565b60405160208183030381529060405280519060200120610ac5565b949350505050565b6000806103768a8a8a8a8a8a8a8a6108e0565b90506103b88d8d808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508f9250859150610b809050565b915060008a6001600160a01b03168a6001600160a01b03167f20af7f3bbfe38132b8900ae295cd9c8d1914be7052d061a511f3f728dab189648e60405161040191815260200190565b60405180910390a450600060046040518060a00160405290816000820160009054906101000a90046001600160801b03166001600160801b03166001600160801b031681526020016000820160109054906101000a90046001600160801b03166001600160801b03166001600160801b031681526020016001820160009054906101000a90046001600160801b03166001600160801b03166001600160801b03168152602001600282015481526020016003820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152505090506040518060a00160405280896001600160801b03168152602001886001600160801b03168152602001876001600160801b031681526020018381526020018b6001600160a01b0316815250600460008201518160000160006101000a8154816001600160801b0302191690836001600160801b0316021790555060208201518160000160106101000a8154816001600160801b0302191690836001600160801b0316021790555060408201518160010160006101000a8154816001600160801b0302191690836001600160801b031602179055506060820151816002015560808201518160030160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550905050610630898686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610d0592505050565b805160208201516001600160801b0391821670010000000000000000000000000000000091831691909102176004556040820151600580547fffffffffffffffffffffffffffffffff0000000000000000000000000000000016919092161790556060810151600655608001516007805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909216919091179055505050505050505050505050565b60405162461bcd60e51b815260206004820152600f60248201527f4e6f7420696d706c656d656e746564000000000000000000000000000000000060448201526064015b60405180910390fd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107c25760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c0000000000000000000000000000000000000000606482015260840161071b565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61038054336001600160a01b03821614610838576040517f23295f0e0000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b038216602482015260440161071b565b600160009054906101000a90046001600160a01b03166001600160a01b031663cb23bcb56040518163ffffffff1660e01b8152600401602060405180830381865afa15801561088b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108af91906111dd565b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790555050565b600088888888888888886040516020016109019897969594939291906111fa565b60405160208183030381529060405280519060200120905098975050505050505050565b60008281526003602052604080822083905551829184917fb4df3847300f076a369cd76d2314b470a1194d9e8a6bb97f1860aee88a5f67489190a35050565b6001546001600160a01b0316156109a7576040517fef34ca5c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038316908117909155604080517fcb23bcb5000000000000000000000000000000000000000000000000000000008152905163cb23bcb5916004808201926020929091908290030181865afa158015610a26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4a91906111dd565b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905550565b60405162461bcd60e51b815260206004820152600e60248201527f4e4f545f494d504c454d45544544000000000000000000000000000000000000604482015260009060640161071b565b8251600090610100811115610b11576040517ffdac331e00000000000000000000000000000000000000000000000000000000815260048101829052610100602482015260440161071b565b8260005b82811015610b76576000878281518110610b3157610b31611266565b60200260200101519050816001901b8716600003610b5d57826000528060205260406000209250610b6d565b8060005282602052604060002092505b50600101610b15565b5095945050505050565b6000610100845110610bc35783516040517fab6a068300000000000000000000000000000000000000000000000000000000815260040161071b91815260200190565b8351610bd0906002611378565b8310610c20578284516002610be59190611378565b6040517f0b8a724b0000000000000000000000000000000000000000000000000000000081526004810192909252602482015260440161071b565b6000610c2d858585610326565b600081815260036020526040902054909150610c78576040517f8730d7c80000000000000000000000000000000000000000000000000000000081526004810182905260240161071b565b60008481526002602052604090205460ff1615610cc4576040517f9715b8d30000000000000000000000000000000000000000000000000000000081526004810185905260240161071b565b5050600082815260026020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055819392505050565b6001546040517f9e5d4c4900000000000000000000000000000000000000000000000000000000815260009182916001600160a01b0390911690639e5d4c4990610d57908890889088906004016113a8565b6000604051808303816000875af1158015610d76573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d9e91908101906113f2565b9150915081610de957805115610db75780518082602001fd5b6040517f376fb55a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610e2f57610e2f610df0565b604052919050565b600080600060608486031215610e4c57600080fd5b833567ffffffffffffffff80821115610e6457600080fd5b818601915086601f830112610e7857600080fd5b8135602082821115610e8c57610e8c610df0565b8160051b9250610e9d818401610e06565b828152928401810192818101908a851115610eb757600080fd5b948201945b84861015610ed557853582529482019490820190610ebc565b9a918901359950506040909701359695505050505050565b6001600160a01b0381168114610f0257600080fd5b50565b8035610f1081610eed565b919050565b60008083601f840112610f2757600080fd5b50813567ffffffffffffffff811115610f3f57600080fd5b602083019150836020828501011115610f5757600080fd5b9250929050565b60008060008060008060008060008060006101208c8e031215610f8057600080fd5b8b3567ffffffffffffffff80821115610f9857600080fd5b818e0191508e601f830112610fac57600080fd5b813581811115610fbb57600080fd5b8f60208260051b8501011115610fd057600080fd5b60208381019e50909c508e01359a50610feb60408f01610f05565b9950610ff960608f01610f05565b985060808e0135975060a08e0135965060c08e0135955060e08e013594506101008e013591508082111561102c57600080fd5b506110398e828f01610f15565b915080935050809150509295989b509295989b9093969950565b60008060008060008060008060006101008a8c03121561107257600080fd5b8935985060208a013561108481610eed565b975060408a013561109481610eed565b965060608a0135955060808a0135945060a08a0135935060c08a0135925060e08a013567ffffffffffffffff8111156110cc57600080fd5b6110d88c828d01610f15565b915080935050809150509295985092959850929598565b60006020828403121561110157600080fd5b5035919050565b60008060008060008060008060e0898b03121561112457600080fd5b883561112f81610eed565b9750602089013561113f81610eed565b965060408901359550606089013594506080890135935060a0890135925060c089013567ffffffffffffffff81111561117757600080fd5b6111838b828c01610f15565b999c989b5096995094979396929594505050565b600080604083850312156111aa57600080fd5b50508035926020909101359150565b6000602082840312156111cb57600080fd5b81356111d681610eed565b9392505050565b6000602082840312156111ef57600080fd5b81516111d681610eed565b60007fffffffffffffffffffffffffffffffffffffffff000000000000000000000000808b60601b168352808a60601b16601484015250876028830152866048830152856068830152846088830152828460a8840137506000910160a801908152979650505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600181815b808511156112cd5781600019048211156112b3576112b361127c565b808516156112c057918102915b93841c9390800290611297565b509250929050565b6000826112e457506001611372565b816112f157506000611372565b816001811461130757600281146113115761132d565b6001915050611372565b60ff8411156113225761132261127c565b50506001821b611372565b5060208310610133831016604e8410600b8410161715611350575081810a611372565b61135a8383611292565b806000190482111561136e5761136e61127c565b0290505b92915050565b60006111d683836112d5565b60005b8381101561139f578181015183820152602001611387565b50506000910152565b6001600160a01b038416815282602082015260606040820152600082518060608401526113dc816080850160208701611384565b601f01601f191691909101608001949350505050565b6000806040838503121561140557600080fd5b8251801515811461141557600080fd5b602084015190925067ffffffffffffffff8082111561143357600080fd5b818501915085601f83011261144757600080fd5b81518181111561145957611459610df0565b61146c6020601f19601f84011601610e06565b915080825286602082850101111561148357600080fd5b611494816020840160208601611384565b508092505050925092905056fea2646970667358221220014399e92a28947a32390d6afdc097a293798951a2b0de1adba980920cda6c7964736f6c63430008110033",
548
548
  "linkReferences": {},
549
549
  "deployedLinkReferences": {}
550
550
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/05975d8ff980ada82754db53ad500688.json"
3
+ "buildInfo": "../../../build-info/db15eeb0a9cfbd6e506aecb04c404862.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/05975d8ff980ada82754db53ad500688.json"
3
+ "buildInfo": "../../../build-info/db15eeb0a9cfbd6e506aecb04c404862.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/05975d8ff980ada82754db53ad500688.json"
3
+ "buildInfo": "../../../build-info/db15eeb0a9cfbd6e506aecb04c404862.json"
4
4
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arbitrum/nitro-contracts",
3
- "version": "3.0.1-beta.1",
3
+ "version": "3.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,8 @@
39
39
  "test:compatibility": "yarn run build:0.6 && yarn run build:0.7",
40
40
  "test:storage": "./test/storage/test.bash",
41
41
  "test:signatures": "./test/signatures/test-sigs.bash",
42
+ "test:e2e:orbit": "hardhat test test/e2e/orbitChain.ts",
43
+ "test:e2e:orbit-fee-token-rollup": "hardhat test test/e2e/customFeeRollup.ts",
42
44
  "test:e2e": "hardhat test test/e2e/*.ts",
43
45
  "test:e2e:stylus": "hardhat test test/e2e/stylusDeployer.ts",
44
46
  "test:upgrade": "./scripts/testUpgrade.bash",
@@ -51,6 +53,7 @@
51
53
  "deploy-eth-rollup": "hardhat run scripts/createEthRollup.ts",
52
54
  "deploy-erc20-rollup": "hardhat run scripts/createERC20Rollup.ts",
53
55
  "create-rollup-testnode": "hardhat run scripts/local-deployment/deployCreatorAndCreateRollup.ts",
56
+ "slither-triage": "slither . --skip-assembly --triage-mode",
54
57
  "script:bold-prepare": "hardhat run ./scripts/prepareBoldUpgrade.ts",
55
58
  "script:bold-populate-lookup": "hardhat run ./scripts/populateLookup.ts",
56
59
  "script:bold-local-execute": "hardhat run ./scripts/executeBoldUpgrade.ts",
@@ -65,7 +68,7 @@
65
68
  },
66
69
  "private": false,
67
70
  "devDependencies": {
68
- "@arbitrum/sdk": "^3.7.2",
71
+ "@arbitrum/sdk": "^3.7.3",
69
72
  "@ethersproject/providers": "^5.8.0",
70
73
  "@nomicfoundation/hardhat-chai-matchers": "^1.0.6",
71
74
  "@nomicfoundation/hardhat-verify": "^2.0.13",
@@ -78,6 +81,8 @@
78
81
  "@typescript-eslint/eslint-plugin": "^5.62.0",
79
82
  "@typescript-eslint/eslint-plugin-tslint": "^5.62.0",
80
83
  "@typescript-eslint/parser": "^5.62.0",
84
+ "@uniswap/lib": "^4.0.1-alpha",
85
+ "@uniswap/v2-core": "^1.0.1",
81
86
  "audit-ci": "^6.6.1",
82
87
  "chai": "^4.5.0",
83
88
  "dotenv": "^16.4.7",
@@ -69,6 +69,9 @@ interface ISequencerInbox is IDelayedMessageProvider {
69
69
  /// @dev Owner set the buffer config.
70
70
  event BufferConfigSet(BufferConfig bufferConfig);
71
71
 
72
+ /// @dev Owner set the fee token pricer.
73
+ event FeeTokenPricerSet(address feeTokenPricer);
74
+
72
75
  function totalDelayedMessagesRead() external view returns (uint256);
73
76
 
74
77
  function bridge() external view returns (IBridge);
@@ -132,6 +135,15 @@ interface ISequencerInbox is IDelayedMessageProvider {
132
135
  /// This enables the batch poster to do key rotation
133
136
  function batchPosterManager() external view returns (address);
134
137
 
138
+ /// @notice The fee token pricer is used to get the exchange rate between the child chain's fee token
139
+ /// and parent chain's fee token. This is needed when the child chain uses a custom fee
140
+ /// token which is different from the parent chain's fee token. The exchange rate is
141
+ /// used to correctly report converted gas price in the batch spending reports, so
142
+ /// the batch poster can get properly reimbursed on the child chain. If the chain uses
143
+ /// a custom fee token, but the pricer is not set, then the batch poster reports won't be reported
144
+ /// and the batch poster won't get reimbursed.
145
+ function feeTokenPricer() external view returns (IFeeTokenPricer);
146
+
135
147
  struct DasKeySetInfo {
136
148
  bool isValidKeyset;
137
149
  uint64 creationBlock;
@@ -321,6 +333,15 @@ interface ISequencerInbox is IDelayedMessageProvider {
321
333
  address newBatchPosterManager
322
334
  ) external;
323
335
 
336
+ /**
337
+ * @notice Updates the fee token pricer, the contract which is used to get the exchange rate between child
338
+ * chain's fee token and parent chain's fee token in rollups that use a custom fee token.
339
+ * @param newFeeTokenPricer The new fee token pricer to be set
340
+ */
341
+ function setFeeTokenPricer(
342
+ IFeeTokenPricer newFeeTokenPricer
343
+ ) external;
344
+
324
345
  /// @notice Allows the rollup owner to sync the rollup address
325
346
  function updateRollupAddress() external;
326
347
 
@@ -329,6 +350,17 @@ interface ISequencerInbox is IDelayedMessageProvider {
329
350
  function initialize(
330
351
  IBridge bridge_,
331
352
  MaxTimeVariation calldata maxTimeVariation_,
332
- BufferConfig calldata bufferConfig_
353
+ BufferConfig calldata bufferConfig_,
354
+ IFeeTokenPricer feeTokenPricer_
333
355
  ) external;
334
356
  }
357
+
358
+ interface IFeeTokenPricer {
359
+ /**
360
+ * @notice Get the number of child chain fee tokens per 1 parent chain fee token. Exchange rate must be
361
+ * denominated in 18 decimals. Function is mutable so it allows the pricer to keep internal state.
362
+ * @dev For example, parent chain's native token is ETH, fee token is DAI. If price of 1ETH = 2000DAI, then function should return 2000*1e18.
363
+ * If fee token is USDC instead and price of 1ETH = 2000USDC, function should still return 2000*1e18, despite USDC using 6 decimals.
364
+ */
365
+ function getExchangeRate() external returns (uint256);
366
+ }
@@ -29,6 +29,7 @@ import {
29
29
  NativeTokenMismatch,
30
30
  BadMaxTimeVariation,
31
31
  Deprecated,
32
+ CannotSetFeeTokenPricer,
32
33
  NotDelayBufferable,
33
34
  InvalidDelayedAccPreimage,
34
35
  DelayProofRequired,
@@ -61,6 +62,8 @@ import "./DelayBuffer.sol";
61
62
  * sequencer within a time limit they can be force included into the rollup inbox by anyone.
62
63
  */
63
64
  contract SequencerInbox is DelegateCallAware, GasRefundEnabled, ISequencerInbox {
65
+ using DelayBuffer for BufferData;
66
+
64
67
  uint256 public totalDelayedMessagesRead;
65
68
 
66
69
  IBridge public bridge;
@@ -123,6 +126,11 @@ contract SequencerInbox is DelegateCallAware, GasRefundEnabled, ISequencerInbox
123
126
  /// @inheritdoc ISequencerInbox
124
127
  address public batchPosterManager;
125
128
 
129
+ BufferData public buffer;
130
+
131
+ /// @inheritdoc ISequencerInbox
132
+ IFeeTokenPricer public feeTokenPricer;
133
+
126
134
  // On L1 this should be set to 117964: 90% of Geth's 128KB tx size limit, leaving ~13KB for proving
127
135
  uint256 public immutable maxDataSize;
128
136
  uint256 internal immutable deployTimeChainId = block.chainid;
@@ -133,10 +141,6 @@ contract SequencerInbox is DelegateCallAware, GasRefundEnabled, ISequencerInbox
133
141
  // True if the SequencerInbox is delay bufferable
134
142
  bool public immutable isDelayBufferable;
135
143
 
136
- using DelayBuffer for BufferData;
137
-
138
- BufferData public buffer;
139
-
140
144
  constructor(
141
145
  uint256 _maxDataSize,
142
146
  IReader4844 reader4844_,
@@ -175,7 +179,8 @@ contract SequencerInbox is DelegateCallAware, GasRefundEnabled, ISequencerInbox
175
179
  function initialize(
176
180
  IBridge bridge_,
177
181
  ISequencerInbox.MaxTimeVariation calldata maxTimeVariation_,
178
- BufferConfig memory bufferConfig_
182
+ BufferConfig memory bufferConfig_,
183
+ IFeeTokenPricer feeTokenPricer_
179
184
  ) external onlyDelegated {
180
185
  if (bridge != IBridge(address(0))) revert AlreadyInit();
181
186
  if (bridge_ == IBridge(address(0))) revert HadZeroInit();
@@ -200,6 +205,11 @@ contract SequencerInbox is DelegateCallAware, GasRefundEnabled, ISequencerInbox
200
205
  if (isDelayBufferable) {
201
206
  _setBufferConfig(bufferConfig_);
202
207
  }
208
+
209
+ if (!isUsingFeeToken && feeTokenPricer_ != IFeeTokenPricer(address(0))) {
210
+ revert CannotSetFeeTokenPricer();
211
+ }
212
+ feeTokenPricer = feeTokenPricer_;
203
213
  }
204
214
 
205
215
  /// @notice Allows the rollup owner to sync the rollup address
@@ -438,7 +448,7 @@ contract SequencerInbox is DelegateCallAware, GasRefundEnabled, ISequencerInbox
438
448
  // submit a batch spending report to refund the entity that produced the blob batch data
439
449
  // same as using calldata, we only submit spending report if the caller is the origin and is codeless
440
450
  // such that one cannot "double-claim" batch posting refund in the same tx
441
- if (CallerChecker.isCallerCodelessOrigin() && !isUsingFeeToken) {
451
+ if (CallerChecker.isCallerCodelessOrigin()) {
442
452
  submitBatchSpendingReport(dataHash, seqMessageIndex, block.basefee, blobGas);
443
453
  }
444
454
  }
@@ -660,19 +670,36 @@ contract SequencerInbox is DelegateCallAware, GasRefundEnabled, ISequencerInbox
660
670
  uint256 gasPrice,
661
671
  uint256 extraGas
662
672
  ) internal {
673
+ // When using a fee token the batch poster needs to be reimbursed on the child chain in units of the child chain fee token.
674
+ // We need to get the exchange rate between the child chain fee token and the parent chain fee token using the pricer.
675
+ // If the pricer is not set, then we do not send batch reports and batch poster never gets reimbursed
676
+ IFeeTokenPricer _feeTokenPricer = feeTokenPricer;
677
+ if (isUsingFeeToken && address(_feeTokenPricer) == address(0)) {
678
+ return;
679
+ }
680
+
663
681
  // report the account who paid the gas (tx.origin) for the tx as batch poster
664
682
  // if msg.sender is used and is a contract, it might not be able to spend the refund on l2
665
683
  // solhint-disable-next-line avoid-tx-origin
666
684
  address batchPoster = tx.origin;
667
685
 
668
- // this msg isn't included in the current sequencer batch, but instead added to
669
- // the delayed messages queue that is yet to be included
670
686
  if (hostChainIsArbitrum) {
671
687
  // Include extra gas for the host chain's L1 gas charging
672
688
  uint256 l1Fees = ArbGasInfo(address(0x6c)).getCurrentTxL1GasFees();
673
689
  extraGas += l1Fees / block.basefee;
674
690
  }
675
691
  if (extraGas > type(uint64).max) revert ExtraGasNotUint64();
692
+
693
+ if (isUsingFeeToken && address(_feeTokenPricer) != address(0)) {
694
+ // gasPrice is originally denominated in parent chain's native token and we want to scale it to the child
695
+ // chain's fee token. For that we need the exchange rate which tells us how many child chain fee tokens
696
+ // we get for 1 parent chain fee token. Exchange rate is denominated in 18 decimals.
697
+ uint256 exchangeRate = _feeTokenPricer.getExchangeRate();
698
+ gasPrice = (gasPrice * exchangeRate) / 1e18;
699
+ }
700
+
701
+ // this msg isn't included in the current sequencer batch, but instead added to
702
+ // the delayed messages queue that is yet to be included
676
703
  bytes memory spendingReportMsg = abi.encodePacked(
677
704
  block.timestamp, batchPoster, dataHash, seqMessageIndex, gasPrice, uint64(extraGas)
678
705
  );
@@ -701,8 +728,7 @@ contract SequencerInbox is DelegateCallAware, GasRefundEnabled, ISequencerInbox
701
728
 
702
729
  totalDelayedMessagesRead = afterDelayedMessagesRead;
703
730
 
704
- if (calldataLengthPosted > 0 && !isUsingFeeToken) {
705
- // only report batch poster spendings if chain is using ETH as native currency
731
+ if (calldataLengthPosted > 0) {
706
732
  submitBatchSpendingReport(dataHash, seqMessageIndex, block.basefee, 0);
707
733
  }
708
734
  }
@@ -845,6 +871,19 @@ contract SequencerInbox is DelegateCallAware, GasRefundEnabled, ISequencerInbox
845
871
  emit OwnerFunctionCalled(5);
846
872
  }
847
873
 
874
+ /// @inheritdoc ISequencerInbox
875
+ function setFeeTokenPricer(
876
+ IFeeTokenPricer feeTokenPricer_
877
+ ) external onlyRollupOwner {
878
+ if (!isUsingFeeToken) {
879
+ revert CannotSetFeeTokenPricer();
880
+ }
881
+
882
+ feeTokenPricer = feeTokenPricer_;
883
+ emit FeeTokenPricerSet(address(feeTokenPricer_));
884
+ emit OwnerFunctionCalled(6);
885
+ }
886
+
848
887
  function setBufferConfig(
849
888
  BufferConfig memory bufferConfig_
850
889
  ) external onlyRollupOwner {
@@ -0,0 +1,44 @@
1
+ // Copyright 2021-2022, Offchain Labs, Inc.
2
+ // For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE
3
+ // SPDX-License-Identifier: BUSL-1.1
4
+
5
+ pragma solidity ^0.8.4;
6
+
7
+ import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
8
+ import {IERC20Bridge} from "../IERC20Bridge.sol";
9
+ import {IERC20MigrationOutbox} from "./IERC20MigrationOutbox.sol";
10
+
11
+ /**
12
+ * @title An outbox for migrating nativeToken of a rollup from the native bridge to a new address
13
+ * @notice For some custom fee token orbit chains, they might want to have their native token being managed by an external bridge. This
14
+ * contract allow permissionless migration of the native bridge collateral, without requiring any change in the vanilla outbox.
15
+ * @dev This contract should be allowed as an outbox in conjunction with the vanilla outbox contract. Nonzero value withdrawal via the
16
+ * native bridge (ArbSys) must be disabled on the child chain or funds and messages will be stuck.
17
+ */
18
+ contract ERC20MigrationOutbox is IERC20MigrationOutbox {
19
+ IERC20Bridge public immutable bridge;
20
+ address public immutable nativeToken;
21
+ address public immutable destination;
22
+
23
+ constructor(IERC20Bridge _bridge, address _destination) {
24
+ if (_destination == address(0)) {
25
+ revert InvalidDestination();
26
+ }
27
+ bridge = _bridge;
28
+ destination = _destination;
29
+ nativeToken = bridge.nativeToken();
30
+ }
31
+
32
+ /// @inheritdoc IERC20MigrationOutbox
33
+ function migrate() external {
34
+ uint256 bal = IERC20(nativeToken).balanceOf(address(bridge));
35
+ if (bal == 0) {
36
+ revert NoBalanceToMigrate();
37
+ }
38
+ (bool success, bytes memory returndata) = bridge.executeCall(destination, bal, "");
39
+ if (!success) {
40
+ revert MigrationFailed(returndata);
41
+ }
42
+ emit CollateralMigrated(destination, bal);
43
+ }
44
+ }
@@ -0,0 +1,38 @@
1
+ // Copyright 2021-2022, Offchain Labs, Inc.
2
+ // For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE
3
+ // SPDX-License-Identifier: BUSL-1.1
4
+
5
+ pragma solidity ^0.8.4;
6
+
7
+ import {IERC20Bridge} from "../IERC20Bridge.sol";
8
+
9
+ interface IERC20MigrationOutbox {
10
+ /// @notice Thrown when there is no balance to migrate.
11
+ error NoBalanceToMigrate();
12
+
13
+ /// @notice Thrown when the migration process fails.
14
+ /// @param returndata The return data from the failed migration call.
15
+ error MigrationFailed(bytes returndata);
16
+
17
+ /// @notice Thrown when the destination address is invalid.
18
+ error InvalidDestination();
19
+
20
+ /// @notice Emitted when a migration is completed.
21
+ event CollateralMigrated(address indexed destination, uint256 amount);
22
+
23
+ /// @notice Returns the address of the bridge contract.
24
+ /// @return The IERC20Bridge contract address.
25
+ function bridge() external view returns (IERC20Bridge);
26
+
27
+ /// @notice Returns the address of the native token to be migrated.
28
+ /// @return The address of the native token.
29
+ function nativeToken() external view returns (address);
30
+
31
+ /// @notice Returns the destination address for the migration.
32
+ /// @return The address where the native token will be migrated to.
33
+ function destination() external view returns (address);
34
+
35
+ /// @notice Migrate the native token of the rollup to the destination address.
36
+ /// @dev Can be called by anyone. Reverts if there is no balance to migrate or if the migration fails.
37
+ function migrate() external;
38
+ }
@@ -226,6 +226,10 @@ interface IExpressLaneAuction is IAccessControlEnumerableUpgradeable, IERC165Upg
226
226
 
227
227
  /// @notice The current auction round that we're in
228
228
  /// Bidding for control of the next round occurs in the current round
229
+ /// @dev On inactive chains without new block production, this method may return
230
+ /// stale round information using the last known block timestamp. For chains
231
+ /// with infrequent block creation, consider using off-chain timestamp calculations
232
+ /// or implementing an alternative round tracking mechanism to ensure accuracy.
229
233
  function currentRound() external view returns (uint64);
230
234
 
231
235
  /// @notice Is the current auction round closed for bidding