@arbitrum/nitro-contracts 1.2.1 → 2.0.0-beta.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (300) hide show
  1. package/README.md +1 -1
  2. package/build/contracts/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json +1 -1
  3. package/build/contracts/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.dbg.json +1 -1
  4. package/build/contracts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.dbg.json +1 -1
  5. package/build/contracts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.dbg.json +1 -1
  6. package/build/contracts/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.dbg.json +1 -1
  7. package/build/contracts/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.dbg.json +1 -1
  8. package/build/contracts/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol/UpgradeableBeacon.dbg.json +1 -1
  9. package/build/contracts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.dbg.json +1 -1
  10. package/build/contracts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.dbg.json +1 -1
  11. package/build/contracts/@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol/UUPSUpgradeable.dbg.json +1 -1
  12. package/build/contracts/@openzeppelin/contracts/security/ReentrancyGuard.sol/ReentrancyGuard.dbg.json +1 -1
  13. package/build/contracts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json +1 -1
  14. package/build/contracts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json +1 -1
  15. package/build/contracts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json +1 -1
  16. package/build/contracts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.dbg.json +1 -1
  17. package/build/contracts/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json +1 -1
  18. package/build/contracts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json +1 -1
  19. package/build/contracts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.dbg.json +1 -1
  20. package/build/contracts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json +4 -0
  21. package/build/contracts/@openzeppelin/contracts/utils/Strings.sol/Strings.json +10 -0
  22. package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol/AccessControlUpgradeable.dbg.json +1 -1
  23. package/build/contracts/@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol/IAccessControlUpgradeable.dbg.json +1 -1
  24. package/build/contracts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.dbg.json +1 -1
  25. package/build/contracts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.dbg.json +1 -1
  26. package/build/contracts/@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol/PausableUpgradeable.dbg.json +1 -1
  27. package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.dbg.json +1 -1
  28. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.dbg.json +1 -1
  29. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.dbg.json +1 -1
  30. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol/StorageSlotUpgradeable.dbg.json +1 -1
  31. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol/StringsUpgradeable.dbg.json +1 -1
  32. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol/ERC165Upgradeable.dbg.json +1 -1
  33. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol/IERC165Upgradeable.dbg.json +1 -1
  34. package/build/contracts/src/bridge/AbsBridge.sol/AbsBridge.dbg.json +1 -1
  35. package/build/contracts/src/bridge/AbsInbox.sol/AbsInbox.dbg.json +1 -1
  36. package/build/contracts/src/bridge/AbsOutbox.sol/AbsOutbox.dbg.json +1 -1
  37. package/build/contracts/src/bridge/Bridge.sol/Bridge.dbg.json +1 -1
  38. package/build/contracts/src/bridge/Bridge.sol/Bridge.json +2 -2
  39. package/build/contracts/src/bridge/ERC20Bridge.sol/ERC20Bridge.dbg.json +1 -1
  40. package/build/contracts/src/bridge/ERC20Bridge.sol/ERC20Bridge.json +26 -2
  41. package/build/contracts/src/bridge/ERC20Inbox.sol/ERC20Inbox.dbg.json +1 -1
  42. package/build/contracts/src/bridge/ERC20Inbox.sol/ERC20Inbox.json +13 -2
  43. package/build/contracts/src/bridge/ERC20Outbox.sol/ERC20Outbox.dbg.json +1 -1
  44. package/build/contracts/src/bridge/ERC20Outbox.sol/ERC20Outbox.json +2 -2
  45. package/build/contracts/src/bridge/GasRefunder.sol/GasRefunder.dbg.json +1 -1
  46. package/build/contracts/src/bridge/IBridge.sol/IBridge.dbg.json +1 -1
  47. package/build/contracts/src/bridge/IDelayedMessageProvider.sol/IDelayedMessageProvider.dbg.json +1 -1
  48. package/build/contracts/src/bridge/IERC20Bridge.sol/IERC20Bridge.dbg.json +1 -1
  49. package/build/contracts/src/bridge/IERC20Bridge.sol/IERC20Bridge.json +13 -0
  50. package/build/contracts/src/bridge/IERC20Inbox.sol/IERC20Inbox.dbg.json +1 -1
  51. package/build/contracts/src/bridge/IEthBridge.sol/IEthBridge.dbg.json +1 -1
  52. package/build/contracts/src/bridge/IInbox.sol/IInbox.dbg.json +1 -1
  53. package/build/contracts/src/bridge/IInboxBase.sol/IInboxBase.dbg.json +1 -1
  54. package/build/contracts/src/bridge/IOutbox.sol/IOutbox.dbg.json +1 -1
  55. package/build/contracts/src/bridge/IOwnable.sol/IOwnable.dbg.json +1 -1
  56. package/build/contracts/src/bridge/ISequencerInbox.sol/ISequencerInbox.dbg.json +1 -1
  57. package/build/contracts/src/bridge/Inbox.sol/Inbox.dbg.json +1 -1
  58. package/build/contracts/src/bridge/Inbox.sol/Inbox.json +2 -2
  59. package/build/contracts/src/bridge/Messages.sol/Messages.dbg.json +1 -1
  60. package/build/contracts/src/bridge/Outbox.sol/Outbox.dbg.json +1 -1
  61. package/build/contracts/src/bridge/Outbox.sol/Outbox.json +2 -2
  62. package/build/contracts/src/bridge/SequencerInbox.sol/SequencerInbox.dbg.json +1 -1
  63. package/build/contracts/src/bridge/SequencerInbox.sol/SequencerInbox.json +2 -2
  64. package/build/contracts/src/chain/CacheManager.sol/CacheManager.dbg.json +4 -0
  65. package/build/contracts/src/chain/CacheManager.sol/CacheManager.json +517 -0
  66. package/build/contracts/src/challenge/ChallengeLib.sol/ChallengeLib.dbg.json +1 -1
  67. package/build/contracts/src/challenge/ChallengeLib.sol/ChallengeLib.json +2 -2
  68. package/build/contracts/src/challenge/ChallengeManager.sol/ChallengeManager.dbg.json +1 -1
  69. package/build/contracts/src/challenge/ChallengeManager.sol/ChallengeManager.json +50 -2
  70. package/build/contracts/src/challenge/IChallengeManager.sol/IChallengeManager.dbg.json +1 -1
  71. package/build/contracts/src/challenge/IChallengeManager.sol/IChallengeManager.json +55 -0
  72. package/build/contracts/src/challenge/IChallengeResultReceiver.sol/IChallengeResultReceiver.dbg.json +1 -1
  73. package/build/contracts/src/libraries/AddressAliasHelper.sol/AddressAliasHelper.dbg.json +1 -1
  74. package/build/contracts/src/libraries/AdminFallbackProxy.sol/AdminFallbackProxy.dbg.json +1 -1
  75. package/build/contracts/src/libraries/AdminFallbackProxy.sol/DoubleLogicERC1967Upgrade.dbg.json +1 -1
  76. package/build/contracts/src/libraries/ArbitrumChecker.sol/ArbitrumChecker.dbg.json +1 -1
  77. package/build/contracts/src/libraries/CryptographyPrimitives.sol/CryptographyPrimitives.dbg.json +1 -1
  78. package/build/contracts/src/libraries/DecimalsConverterHelper.sol/DecimalsConverterHelper.dbg.json +4 -0
  79. package/build/contracts/src/libraries/DecimalsConverterHelper.sol/DecimalsConverterHelper.json +10 -0
  80. package/build/contracts/src/libraries/DelegateCallAware.sol/DelegateCallAware.dbg.json +1 -1
  81. package/build/contracts/src/libraries/DoubleLogicUUPSUpgradeable.sol/DoubleLogicUUPSUpgradeable.dbg.json +1 -1
  82. package/build/contracts/src/libraries/GasRefundEnabled.sol/GasRefundEnabled.dbg.json +1 -1
  83. package/build/contracts/src/libraries/IGasRefunder.sol/IGasRefunder.dbg.json +1 -1
  84. package/build/contracts/src/libraries/IReader4844.sol/IReader4844.dbg.json +1 -1
  85. package/build/contracts/src/libraries/MerkleLib.sol/MerkleLib.dbg.json +1 -1
  86. package/build/contracts/src/libraries/MerkleLib.sol/MerkleLib.json +2 -2
  87. package/build/contracts/src/libraries/UUPSNotUpgradeable.sol/UUPSNotUpgradeable.dbg.json +1 -1
  88. package/build/contracts/src/mocks/Benchmarks.sol/Benchmarks.dbg.json +4 -0
  89. package/build/contracts/src/mocks/Benchmarks.sol/Benchmarks.json +46 -0
  90. package/build/contracts/src/mocks/BridgeStub.sol/BridgeStub.dbg.json +1 -1
  91. package/build/contracts/src/mocks/BridgeStub.sol/BridgeStub.json +28 -2
  92. package/build/contracts/src/mocks/BridgeUnproxied.sol/BridgeUnproxied.dbg.json +1 -1
  93. package/build/contracts/src/mocks/BridgeUnproxied.sol/BridgeUnproxied.json +2 -2
  94. package/build/contracts/src/mocks/InboxStub.sol/InboxStub.dbg.json +1 -1
  95. package/build/contracts/src/mocks/InboxStub.sol/InboxStub.json +2 -2
  96. package/build/contracts/src/mocks/MockResultReceiver.sol/MockResultReceiver.dbg.json +1 -1
  97. package/build/contracts/src/mocks/MockResultReceiver.sol/MockResultReceiver.json +2 -2
  98. package/build/contracts/src/mocks/MultiCallTest.sol/MultiCallTest.dbg.json +4 -0
  99. package/build/contracts/src/mocks/MultiCallTest.sol/MultiCallTest.json +71 -0
  100. package/build/contracts/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol/PendingBlkTimeAndNrAdvanceCheck.dbg.json +4 -0
  101. package/build/contracts/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol/PendingBlkTimeAndNrAdvanceCheck.json +36 -0
  102. package/build/contracts/src/mocks/Program.sol/ProgramTest.dbg.json +4 -0
  103. package/build/contracts/src/mocks/Program.sol/ProgramTest.json +142 -0
  104. package/build/contracts/src/mocks/ProxyAdminForBinding.sol/ProxyAdminForBinding.dbg.json +1 -1
  105. package/build/contracts/src/mocks/SdkStorage.sol/SdkStorage.dbg.json +4 -0
  106. package/build/contracts/src/mocks/SdkStorage.sol/SdkStorage.json +25 -0
  107. package/build/contracts/src/mocks/SequencerInboxStub.sol/SequencerInboxStub.dbg.json +1 -1
  108. package/build/contracts/src/mocks/SequencerInboxStub.sol/SequencerInboxStub.json +2 -2
  109. package/build/contracts/src/mocks/Simple.sol/Simple.dbg.json +1 -1
  110. package/build/contracts/src/mocks/SimpleCacheManager.sol/SimpleCacheManager.dbg.json +4 -0
  111. package/build/contracts/src/mocks/SimpleCacheManager.sol/SimpleCacheManager.json +37 -0
  112. package/build/contracts/src/mocks/SimpleProxy.sol/SimpleProxy.dbg.json +1 -1
  113. package/build/contracts/src/mocks/SingleExecutionChallenge.sol/SingleExecutionChallenge.dbg.json +1 -1
  114. package/build/contracts/src/mocks/SingleExecutionChallenge.sol/SingleExecutionChallenge.json +50 -2
  115. package/build/contracts/src/mocks/TimedOutChallengeManager.sol/TimedOutChallengeManager.dbg.json +1 -1
  116. package/build/contracts/src/mocks/TimedOutChallengeManager.sol/TimedOutChallengeManager.json +50 -2
  117. package/build/contracts/src/mocks/UpgradeExecutorMock.sol/UpgradeExecutorMock.dbg.json +1 -1
  118. package/build/contracts/src/node-interface/NodeInterface.sol/NodeInterface.dbg.json +1 -1
  119. package/build/contracts/src/node-interface/NodeInterfaceDebug.sol/NodeInterfaceDebug.dbg.json +1 -1
  120. package/build/contracts/src/osp/HashProofHelper.sol/HashProofHelper.dbg.json +1 -1
  121. package/build/contracts/src/osp/IOneStepProofEntry.sol/IOneStepProofEntry.dbg.json +1 -1
  122. package/build/contracts/src/osp/IOneStepProofEntry.sol/IOneStepProofEntry.json +48 -0
  123. package/build/contracts/src/osp/IOneStepProofEntry.sol/OneStepProofEntryLib.dbg.json +1 -1
  124. package/build/contracts/src/osp/IOneStepProofEntry.sol/OneStepProofEntryLib.json +2 -2
  125. package/build/contracts/src/osp/IOneStepProver.sol/IOneStepProver.dbg.json +1 -1
  126. package/build/contracts/src/osp/IOneStepProver.sol/IOneStepProver.json +88 -0
  127. package/build/contracts/src/osp/OneStepProofEntry.sol/OneStepProofEntry.dbg.json +1 -1
  128. package/build/contracts/src/osp/OneStepProofEntry.sol/OneStepProofEntry.json +50 -2
  129. package/build/contracts/src/osp/OneStepProver0.sol/OneStepProver0.dbg.json +1 -1
  130. package/build/contracts/src/osp/OneStepProver0.sol/OneStepProver0.json +90 -2
  131. package/build/contracts/src/osp/OneStepProverHostIo.sol/OneStepProverHostIo.dbg.json +1 -1
  132. package/build/contracts/src/osp/OneStepProverHostIo.sol/OneStepProverHostIo.json +90 -2
  133. package/build/contracts/src/osp/OneStepProverMath.sol/OneStepProverMath.dbg.json +1 -1
  134. package/build/contracts/src/osp/OneStepProverMath.sol/OneStepProverMath.json +90 -2
  135. package/build/contracts/src/osp/OneStepProverMemory.sol/OneStepProverMemory.dbg.json +1 -1
  136. package/build/contracts/src/osp/OneStepProverMemory.sol/OneStepProverMemory.json +90 -2
  137. package/build/contracts/src/precompiles/ArbAddressTable.sol/ArbAddressTable.dbg.json +1 -1
  138. package/build/contracts/src/precompiles/ArbAggregator.sol/ArbAggregator.dbg.json +1 -1
  139. package/build/contracts/src/precompiles/ArbBLS.sol/ArbBLS.dbg.json +1 -1
  140. package/build/contracts/src/precompiles/ArbDebug.sol/ArbDebug.dbg.json +1 -1
  141. package/build/contracts/src/precompiles/ArbDebug.sol/ArbDebug.json +7 -0
  142. package/build/contracts/src/precompiles/ArbFunctionTable.sol/ArbFunctionTable.dbg.json +1 -1
  143. package/build/contracts/src/precompiles/ArbGasInfo.sol/ArbGasInfo.dbg.json +1 -1
  144. package/build/contracts/src/precompiles/ArbInfo.sol/ArbInfo.dbg.json +1 -1
  145. package/build/contracts/src/precompiles/ArbOwner.sol/ArbOwner.dbg.json +1 -1
  146. package/build/contracts/src/precompiles/ArbOwner.sol/ArbOwner.json +161 -0
  147. package/build/contracts/src/precompiles/ArbOwnerPublic.sol/ArbOwnerPublic.dbg.json +1 -1
  148. package/build/contracts/src/precompiles/ArbRetryableTx.sol/ArbRetryableTx.dbg.json +1 -1
  149. package/build/contracts/src/precompiles/ArbStatistics.sol/ArbStatistics.dbg.json +1 -1
  150. package/build/contracts/src/precompiles/ArbSys.sol/ArbSys.dbg.json +1 -1
  151. package/build/contracts/src/precompiles/ArbWasm.sol/ArbWasm.dbg.json +4 -0
  152. package/build/contracts/src/precompiles/ArbWasm.sol/ArbWasm.json +453 -0
  153. package/build/contracts/src/precompiles/ArbWasmCache.sol/ArbWasmCache.dbg.json +4 -0
  154. package/build/contracts/src/precompiles/ArbWasmCache.sol/ArbWasmCache.json +126 -0
  155. package/build/contracts/src/precompiles/ArbosActs.sol/ArbosActs.dbg.json +1 -1
  156. package/build/contracts/src/precompiles/ArbosTest.sol/ArbosTest.dbg.json +1 -1
  157. package/build/contracts/src/rollup/AbsRollupEventInbox.sol/AbsRollupEventInbox.dbg.json +1 -1
  158. package/build/contracts/src/rollup/BridgeCreator.sol/BridgeCreator.dbg.json +1 -1
  159. package/build/contracts/src/rollup/BridgeCreator.sol/BridgeCreator.json +2 -2
  160. package/build/contracts/src/rollup/DeployHelper.sol/DeployHelper.dbg.json +1 -1
  161. package/build/contracts/src/rollup/DeployHelper.sol/DeployHelper.json +2 -2
  162. package/build/contracts/src/rollup/ERC20RollupEventInbox.sol/ERC20RollupEventInbox.dbg.json +1 -1
  163. package/build/contracts/src/rollup/ERC20RollupEventInbox.sol/ERC20RollupEventInbox.json +2 -2
  164. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/FactoryDeployerHelper.dbg.json +4 -0
  165. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/FactoryDeployerHelper.json +68 -0
  166. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IDeployHelper.dbg.json +4 -0
  167. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IDeployHelper.json +58 -0
  168. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IERC20.dbg.json +4 -0
  169. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IERC20.json +40 -0
  170. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IERC20Bridge.dbg.json +4 -0
  171. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IERC20Bridge.json +24 -0
  172. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IInboxBase.dbg.json +4 -0
  173. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IInboxBase.json +24 -0
  174. package/build/contracts/src/rollup/IRollupAdmin.sol/IRollupAdmin.dbg.json +1 -1
  175. package/build/contracts/src/rollup/IRollupCore.sol/IRollupCore.dbg.json +1 -1
  176. package/build/contracts/src/rollup/IRollupEventInbox.sol/IRollupEventInbox.dbg.json +1 -1
  177. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUser.dbg.json +1 -1
  178. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUser.json +18 -0
  179. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserAbs.dbg.json +1 -1
  180. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserAbs.json +18 -0
  181. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserERC20.dbg.json +1 -1
  182. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserERC20.json +18 -0
  183. package/build/contracts/src/rollup/Node.sol/NodeLib.dbg.json +1 -1
  184. package/build/contracts/src/rollup/Node.sol/NodeLib.json +2 -2
  185. package/build/contracts/src/rollup/RollupAdminLogic.sol/RollupAdminLogic.dbg.json +1 -1
  186. package/build/contracts/src/rollup/RollupAdminLogic.sol/RollupAdminLogic.json +28 -2
  187. package/build/contracts/src/rollup/RollupCore.sol/RollupCore.dbg.json +1 -1
  188. package/build/contracts/src/rollup/RollupCore.sol/RollupCore.json +13 -0
  189. package/build/contracts/src/rollup/RollupCreator.sol/RollupCreator.dbg.json +1 -1
  190. package/build/contracts/src/rollup/RollupCreator.sol/RollupCreator.json +2 -2
  191. package/build/contracts/src/rollup/RollupEventInbox.sol/RollupEventInbox.dbg.json +1 -1
  192. package/build/contracts/src/rollup/RollupEventInbox.sol/RollupEventInbox.json +2 -2
  193. package/build/contracts/src/rollup/RollupLib.sol/RollupLib.dbg.json +1 -1
  194. package/build/contracts/src/rollup/RollupLib.sol/RollupLib.json +2 -2
  195. package/build/contracts/src/rollup/RollupProxy.sol/RollupProxy.dbg.json +1 -1
  196. package/build/contracts/src/rollup/RollupProxy.sol/RollupProxy.json +2 -2
  197. package/build/contracts/src/rollup/RollupUserLogic.sol/AbsRollupUserLogic.dbg.json +1 -1
  198. package/build/contracts/src/rollup/RollupUserLogic.sol/AbsRollupUserLogic.json +31 -0
  199. package/build/contracts/src/rollup/RollupUserLogic.sol/ERC20RollupUserLogic.dbg.json +1 -1
  200. package/build/contracts/src/rollup/RollupUserLogic.sol/ERC20RollupUserLogic.json +33 -2
  201. package/build/contracts/src/rollup/RollupUserLogic.sol/RollupUserLogic.dbg.json +1 -1
  202. package/build/contracts/src/rollup/RollupUserLogic.sol/RollupUserLogic.json +33 -2
  203. package/build/contracts/src/rollup/ValidatorUtils.sol/ValidatorUtils.dbg.json +1 -1
  204. package/build/contracts/src/rollup/ValidatorUtils.sol/ValidatorUtils.json +2 -2
  205. package/build/contracts/src/rollup/ValidatorWallet.sol/ValidatorWallet.dbg.json +1 -1
  206. package/build/contracts/src/rollup/ValidatorWallet.sol/ValidatorWallet.json +2 -2
  207. package/build/contracts/src/rollup/ValidatorWalletCreator.sol/ValidatorWalletCreator.dbg.json +1 -1
  208. package/build/contracts/src/rollup/ValidatorWalletCreator.sol/ValidatorWalletCreator.json +2 -2
  209. package/build/contracts/src/state/Deserialize.sol/Deserialize.dbg.json +1 -1
  210. package/build/contracts/src/state/Deserialize.sol/Deserialize.json +2 -2
  211. package/build/contracts/src/state/GlobalState.sol/GlobalStateLib.dbg.json +1 -1
  212. package/build/contracts/src/state/Instructions.sol/Instructions.dbg.json +1 -1
  213. package/build/contracts/src/state/Instructions.sol/Instructions.json +2 -2
  214. package/build/contracts/src/state/Machine.sol/MachineLib.dbg.json +1 -1
  215. package/build/contracts/src/state/Machine.sol/MachineLib.json +2 -2
  216. package/build/contracts/src/state/MerkleProof.sol/MerkleProofLib.dbg.json +1 -1
  217. package/build/contracts/src/state/MerkleProof.sol/MerkleProofLib.json +2 -2
  218. package/build/contracts/src/state/Module.sol/ModuleLib.dbg.json +1 -1
  219. package/build/contracts/src/state/Module.sol/ModuleLib.json +2 -2
  220. package/build/contracts/src/state/ModuleMemory.sol/ModuleMemoryLib.dbg.json +1 -1
  221. package/build/contracts/src/state/ModuleMemory.sol/ModuleMemoryLib.json +2 -2
  222. package/build/contracts/src/state/ModuleMemoryCompact.sol/ModuleMemoryCompactLib.dbg.json +1 -1
  223. package/build/contracts/src/state/MultiStack.sol/MultiStackLib.dbg.json +4 -0
  224. package/build/contracts/src/state/MultiStack.sol/MultiStackLib.json +10 -0
  225. package/build/contracts/src/state/PcArray.sol/PcArrayLib.dbg.json +1 -1
  226. package/build/contracts/src/state/StackFrame.sol/StackFrameLib.dbg.json +1 -1
  227. package/build/contracts/src/state/StackFrame.sol/StackFrameLib.json +2 -2
  228. package/build/contracts/src/state/Value.sol/ValueLib.dbg.json +1 -1
  229. package/build/contracts/src/state/Value.sol/ValueLib.json +2 -2
  230. package/build/contracts/src/state/ValueArray.sol/ValueArrayLib.dbg.json +1 -1
  231. package/build/contracts/src/state/ValueArray.sol/ValueArrayLib.json +2 -2
  232. package/build/contracts/src/state/ValueStack.sol/ValueStackLib.dbg.json +1 -1
  233. package/build/contracts/src/state/ValueStack.sol/ValueStackLib.json +2 -2
  234. package/build/contracts/src/test-helpers/BridgeTester.sol/BridgeTester.dbg.json +1 -1
  235. package/build/contracts/src/test-helpers/BridgeTester.sol/BridgeTester.json +28 -2
  236. package/build/contracts/src/test-helpers/CryptographyPrimitivesTester.sol/CryptographyPrimitivesTester.dbg.json +1 -1
  237. package/build/contracts/src/test-helpers/EthVault.sol/EthVault.dbg.json +1 -1
  238. package/build/contracts/src/test-helpers/MessageTester.sol/MessageTester.dbg.json +1 -1
  239. package/build/contracts/src/test-helpers/OutboxWithoutOptTester.sol/OutboxWithoutOptTester.dbg.json +1 -1
  240. package/build/contracts/src/test-helpers/OutboxWithoutOptTester.sol/OutboxWithoutOptTester.json +2 -2
  241. package/build/contracts/src/test-helpers/RollupMock.sol/RollupMock.dbg.json +1 -1
  242. package/build/contracts/src/test-helpers/TestToken.sol/TestToken.dbg.json +1 -1
  243. package/build/contracts/src/test-helpers/ValueArrayTester.sol/ValueArrayTester.dbg.json +1 -1
  244. package/build/contracts/src/test-helpers/ValueArrayTester.sol/ValueArrayTester.json +2 -2
  245. package/package.json +17 -8
  246. package/src/bridge/AbsInbox.sol +16 -4
  247. package/src/bridge/AbsOutbox.sol +11 -2
  248. package/src/bridge/ERC20Bridge.sol +30 -3
  249. package/src/bridge/ERC20Inbox.sol +28 -4
  250. package/src/bridge/ERC20Outbox.sol +10 -1
  251. package/src/bridge/IERC20Bridge.sol +7 -0
  252. package/src/bridge/IERC20Inbox.sol +4 -3
  253. package/src/bridge/IInbox.sol +3 -3
  254. package/src/bridge/Inbox.sol +6 -1
  255. package/src/bridge/Outbox.sol +5 -0
  256. package/src/chain/CacheManager.sol +293 -0
  257. package/src/challenge/ChallengeLib.sol +0 -45
  258. package/src/challenge/ChallengeManager.sol +24 -9
  259. package/src/challenge/IChallengeManager.sol +13 -0
  260. package/src/libraries/Constants.sol +11 -0
  261. package/src/libraries/DecimalsConverterHelper.sol +33 -0
  262. package/src/libraries/Error.sol +6 -0
  263. package/src/mocks/Benchmarks.sol +52 -0
  264. package/src/mocks/BridgeStub.sol +3 -0
  265. package/src/mocks/MultiCallTest.sol +117 -0
  266. package/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol +29 -0
  267. package/src/mocks/Program.sol +126 -0
  268. package/src/mocks/SdkStorage.sol +176 -0
  269. package/src/mocks/SimpleCacheManager.sol +22 -0
  270. package/src/node-interface/NodeInterface.sol +1 -1
  271. package/src/osp/IOneStepProofEntry.sol +10 -0
  272. package/src/osp/OneStepProofEntry.sol +81 -7
  273. package/src/osp/OneStepProver0.sol +64 -20
  274. package/src/osp/OneStepProverHostIo.sol +201 -2
  275. package/src/osp/OneStepProverMemory.sol +4 -33
  276. package/src/precompiles/ArbDebug.sol +2 -0
  277. package/src/precompiles/ArbOwner.sol +51 -9
  278. package/src/precompiles/ArbWasm.sol +119 -0
  279. package/src/precompiles/ArbWasmCache.sol +36 -0
  280. package/src/rollup/AbsRollupEventInbox.sol +3 -4
  281. package/src/rollup/DeployHelper.sol +22 -11
  282. package/src/rollup/ERC20RollupEventInbox.sol +5 -0
  283. package/src/rollup/FactoryDeployerHelper.sol +54 -0
  284. package/src/rollup/IRollupLogic.sol +2 -0
  285. package/src/rollup/RollupAdminLogic.sol +11 -0
  286. package/src/rollup/RollupCore.sol +1 -0
  287. package/src/rollup/RollupCreator.sol +49 -1
  288. package/src/rollup/RollupEventInbox.sol +8 -0
  289. package/src/rollup/RollupUserLogic.sol +35 -13
  290. package/src/state/Deserialize.sol +88 -47
  291. package/src/state/Instructions.sol +38 -3
  292. package/src/state/Machine.sol +92 -15
  293. package/src/state/MerkleProof.sol +22 -4
  294. package/src/state/Module.sol +3 -1
  295. package/src/state/ModuleMemory.sol +54 -0
  296. package/src/state/MultiStack.sol +58 -0
  297. package/src/state/StackFrame.sol +6 -1
  298. package/src/state/Value.sol +13 -1
  299. package/src/state/ValueStack.sol +6 -1
  300. package/src/test-helpers/BridgeTester.sol +3 -0
@@ -0,0 +1,517 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "CacheManager",
4
+ "sourceName": "src/chain/CacheManager.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "bytes32",
10
+ "name": "codehash",
11
+ "type": "bytes32"
12
+ }
13
+ ],
14
+ "name": "AlreadyCached",
15
+ "type": "error"
16
+ },
17
+ {
18
+ "inputs": [
19
+ {
20
+ "internalType": "uint256",
21
+ "name": "asm",
22
+ "type": "uint256"
23
+ },
24
+ {
25
+ "internalType": "uint256",
26
+ "name": "queueSize",
27
+ "type": "uint256"
28
+ },
29
+ {
30
+ "internalType": "uint256",
31
+ "name": "cacheSize",
32
+ "type": "uint256"
33
+ }
34
+ ],
35
+ "name": "AsmTooLarge",
36
+ "type": "error"
37
+ },
38
+ {
39
+ "inputs": [
40
+ {
41
+ "internalType": "uint256",
42
+ "name": "bid",
43
+ "type": "uint256"
44
+ }
45
+ ],
46
+ "name": "BidTooLarge",
47
+ "type": "error"
48
+ },
49
+ {
50
+ "inputs": [
51
+ {
52
+ "internalType": "uint192",
53
+ "name": "bid",
54
+ "type": "uint192"
55
+ },
56
+ {
57
+ "internalType": "uint192",
58
+ "name": "min",
59
+ "type": "uint192"
60
+ }
61
+ ],
62
+ "name": "BidTooSmall",
63
+ "type": "error"
64
+ },
65
+ {
66
+ "inputs": [],
67
+ "name": "BidsArePaused",
68
+ "type": "error"
69
+ },
70
+ {
71
+ "inputs": [
72
+ {
73
+ "internalType": "uint64",
74
+ "name": "size",
75
+ "type": "uint64"
76
+ },
77
+ {
78
+ "internalType": "uint64",
79
+ "name": "limit",
80
+ "type": "uint64"
81
+ }
82
+ ],
83
+ "name": "MakeSpaceTooLarge",
84
+ "type": "error"
85
+ },
86
+ {
87
+ "inputs": [
88
+ {
89
+ "internalType": "address",
90
+ "name": "sender",
91
+ "type": "address"
92
+ }
93
+ ],
94
+ "name": "NotChainOwner",
95
+ "type": "error"
96
+ },
97
+ {
98
+ "anonymous": false,
99
+ "inputs": [
100
+ {
101
+ "indexed": true,
102
+ "internalType": "bytes32",
103
+ "name": "codehash",
104
+ "type": "bytes32"
105
+ },
106
+ {
107
+ "indexed": false,
108
+ "internalType": "uint192",
109
+ "name": "bid",
110
+ "type": "uint192"
111
+ },
112
+ {
113
+ "indexed": false,
114
+ "internalType": "uint64",
115
+ "name": "size",
116
+ "type": "uint64"
117
+ }
118
+ ],
119
+ "name": "DeleteBid",
120
+ "type": "event"
121
+ },
122
+ {
123
+ "anonymous": false,
124
+ "inputs": [
125
+ {
126
+ "indexed": true,
127
+ "internalType": "bytes32",
128
+ "name": "codehash",
129
+ "type": "bytes32"
130
+ },
131
+ {
132
+ "indexed": false,
133
+ "internalType": "address",
134
+ "name": "program",
135
+ "type": "address"
136
+ },
137
+ {
138
+ "indexed": false,
139
+ "internalType": "uint192",
140
+ "name": "bid",
141
+ "type": "uint192"
142
+ },
143
+ {
144
+ "indexed": false,
145
+ "internalType": "uint64",
146
+ "name": "size",
147
+ "type": "uint64"
148
+ }
149
+ ],
150
+ "name": "InsertBid",
151
+ "type": "event"
152
+ },
153
+ {
154
+ "anonymous": false,
155
+ "inputs": [],
156
+ "name": "Pause",
157
+ "type": "event"
158
+ },
159
+ {
160
+ "anonymous": false,
161
+ "inputs": [
162
+ {
163
+ "indexed": false,
164
+ "internalType": "uint64",
165
+ "name": "size",
166
+ "type": "uint64"
167
+ }
168
+ ],
169
+ "name": "SetCacheSize",
170
+ "type": "event"
171
+ },
172
+ {
173
+ "anonymous": false,
174
+ "inputs": [
175
+ {
176
+ "indexed": false,
177
+ "internalType": "uint64",
178
+ "name": "decay",
179
+ "type": "uint64"
180
+ }
181
+ ],
182
+ "name": "SetDecayRate",
183
+ "type": "event"
184
+ },
185
+ {
186
+ "anonymous": false,
187
+ "inputs": [],
188
+ "name": "Unpause",
189
+ "type": "event"
190
+ },
191
+ {
192
+ "inputs": [],
193
+ "name": "cacheSize",
194
+ "outputs": [
195
+ {
196
+ "internalType": "uint64",
197
+ "name": "",
198
+ "type": "uint64"
199
+ }
200
+ ],
201
+ "stateMutability": "view",
202
+ "type": "function"
203
+ },
204
+ {
205
+ "inputs": [],
206
+ "name": "decay",
207
+ "outputs": [
208
+ {
209
+ "internalType": "uint64",
210
+ "name": "",
211
+ "type": "uint64"
212
+ }
213
+ ],
214
+ "stateMutability": "view",
215
+ "type": "function"
216
+ },
217
+ {
218
+ "inputs": [
219
+ {
220
+ "internalType": "uint256",
221
+ "name": "",
222
+ "type": "uint256"
223
+ }
224
+ ],
225
+ "name": "entries",
226
+ "outputs": [
227
+ {
228
+ "internalType": "bytes32",
229
+ "name": "code",
230
+ "type": "bytes32"
231
+ },
232
+ {
233
+ "internalType": "uint64",
234
+ "name": "size",
235
+ "type": "uint64"
236
+ },
237
+ {
238
+ "internalType": "uint192",
239
+ "name": "bid",
240
+ "type": "uint192"
241
+ }
242
+ ],
243
+ "stateMutability": "view",
244
+ "type": "function"
245
+ },
246
+ {
247
+ "inputs": [],
248
+ "name": "evictAll",
249
+ "outputs": [],
250
+ "stateMutability": "nonpayable",
251
+ "type": "function"
252
+ },
253
+ {
254
+ "inputs": [
255
+ {
256
+ "internalType": "uint256",
257
+ "name": "count",
258
+ "type": "uint256"
259
+ }
260
+ ],
261
+ "name": "evictPrograms",
262
+ "outputs": [],
263
+ "stateMutability": "nonpayable",
264
+ "type": "function"
265
+ },
266
+ {
267
+ "inputs": [],
268
+ "name": "getEntries",
269
+ "outputs": [
270
+ {
271
+ "components": [
272
+ {
273
+ "internalType": "bytes32",
274
+ "name": "code",
275
+ "type": "bytes32"
276
+ },
277
+ {
278
+ "internalType": "uint64",
279
+ "name": "size",
280
+ "type": "uint64"
281
+ },
282
+ {
283
+ "internalType": "uint192",
284
+ "name": "bid",
285
+ "type": "uint192"
286
+ }
287
+ ],
288
+ "internalType": "struct CacheManager.Entry[]",
289
+ "name": "",
290
+ "type": "tuple[]"
291
+ }
292
+ ],
293
+ "stateMutability": "view",
294
+ "type": "function"
295
+ },
296
+ {
297
+ "inputs": [
298
+ {
299
+ "internalType": "address",
300
+ "name": "program",
301
+ "type": "address"
302
+ }
303
+ ],
304
+ "name": "getMinBid",
305
+ "outputs": [
306
+ {
307
+ "internalType": "uint192",
308
+ "name": "min",
309
+ "type": "uint192"
310
+ }
311
+ ],
312
+ "stateMutability": "view",
313
+ "type": "function"
314
+ },
315
+ {
316
+ "inputs": [
317
+ {
318
+ "internalType": "bytes32",
319
+ "name": "codehash",
320
+ "type": "bytes32"
321
+ }
322
+ ],
323
+ "name": "getMinBid",
324
+ "outputs": [
325
+ {
326
+ "internalType": "uint192",
327
+ "name": "min",
328
+ "type": "uint192"
329
+ }
330
+ ],
331
+ "stateMutability": "view",
332
+ "type": "function"
333
+ },
334
+ {
335
+ "inputs": [
336
+ {
337
+ "internalType": "uint64",
338
+ "name": "size",
339
+ "type": "uint64"
340
+ }
341
+ ],
342
+ "name": "getMinBid",
343
+ "outputs": [
344
+ {
345
+ "internalType": "uint192",
346
+ "name": "min",
347
+ "type": "uint192"
348
+ }
349
+ ],
350
+ "stateMutability": "view",
351
+ "type": "function"
352
+ },
353
+ {
354
+ "inputs": [
355
+ {
356
+ "internalType": "uint256",
357
+ "name": "k",
358
+ "type": "uint256"
359
+ }
360
+ ],
361
+ "name": "getSmallestEntries",
362
+ "outputs": [
363
+ {
364
+ "components": [
365
+ {
366
+ "internalType": "bytes32",
367
+ "name": "code",
368
+ "type": "bytes32"
369
+ },
370
+ {
371
+ "internalType": "uint64",
372
+ "name": "size",
373
+ "type": "uint64"
374
+ },
375
+ {
376
+ "internalType": "uint192",
377
+ "name": "bid",
378
+ "type": "uint192"
379
+ }
380
+ ],
381
+ "internalType": "struct CacheManager.Entry[]",
382
+ "name": "result",
383
+ "type": "tuple[]"
384
+ }
385
+ ],
386
+ "stateMutability": "view",
387
+ "type": "function"
388
+ },
389
+ {
390
+ "inputs": [
391
+ {
392
+ "internalType": "uint64",
393
+ "name": "initCacheSize",
394
+ "type": "uint64"
395
+ },
396
+ {
397
+ "internalType": "uint64",
398
+ "name": "initDecay",
399
+ "type": "uint64"
400
+ }
401
+ ],
402
+ "name": "initialize",
403
+ "outputs": [],
404
+ "stateMutability": "nonpayable",
405
+ "type": "function"
406
+ },
407
+ {
408
+ "inputs": [],
409
+ "name": "isPaused",
410
+ "outputs": [
411
+ {
412
+ "internalType": "bool",
413
+ "name": "",
414
+ "type": "bool"
415
+ }
416
+ ],
417
+ "stateMutability": "view",
418
+ "type": "function"
419
+ },
420
+ {
421
+ "inputs": [
422
+ {
423
+ "internalType": "uint64",
424
+ "name": "size",
425
+ "type": "uint64"
426
+ }
427
+ ],
428
+ "name": "makeSpace",
429
+ "outputs": [
430
+ {
431
+ "internalType": "uint64",
432
+ "name": "space",
433
+ "type": "uint64"
434
+ }
435
+ ],
436
+ "stateMutability": "payable",
437
+ "type": "function"
438
+ },
439
+ {
440
+ "inputs": [],
441
+ "name": "paused",
442
+ "outputs": [],
443
+ "stateMutability": "nonpayable",
444
+ "type": "function"
445
+ },
446
+ {
447
+ "inputs": [
448
+ {
449
+ "internalType": "address",
450
+ "name": "program",
451
+ "type": "address"
452
+ }
453
+ ],
454
+ "name": "placeBid",
455
+ "outputs": [],
456
+ "stateMutability": "payable",
457
+ "type": "function"
458
+ },
459
+ {
460
+ "inputs": [],
461
+ "name": "queueSize",
462
+ "outputs": [
463
+ {
464
+ "internalType": "uint64",
465
+ "name": "",
466
+ "type": "uint64"
467
+ }
468
+ ],
469
+ "stateMutability": "view",
470
+ "type": "function"
471
+ },
472
+ {
473
+ "inputs": [
474
+ {
475
+ "internalType": "uint64",
476
+ "name": "newSize",
477
+ "type": "uint64"
478
+ }
479
+ ],
480
+ "name": "setCacheSize",
481
+ "outputs": [],
482
+ "stateMutability": "nonpayable",
483
+ "type": "function"
484
+ },
485
+ {
486
+ "inputs": [
487
+ {
488
+ "internalType": "uint64",
489
+ "name": "newDecay",
490
+ "type": "uint64"
491
+ }
492
+ ],
493
+ "name": "setDecayRate",
494
+ "outputs": [],
495
+ "stateMutability": "nonpayable",
496
+ "type": "function"
497
+ },
498
+ {
499
+ "inputs": [],
500
+ "name": "sweepFunds",
501
+ "outputs": [],
502
+ "stateMutability": "nonpayable",
503
+ "type": "function"
504
+ },
505
+ {
506
+ "inputs": [],
507
+ "name": "unpause",
508
+ "outputs": [],
509
+ "stateMutability": "nonpayable",
510
+ "type": "function"
511
+ }
512
+ ],
513
+ "bytecode": "0x60a06040523060805234801561001457600080fd5b50608051611dda61003060003960006105270152611dda6000f3fe60806040526004361061011f5760003560e01c8063b187bd26116100a0578063c77ed13e11610064578063c77ed13e14610353578063cadb43e214610373578063d29b303e14610393578063e4940157146103b3578063e9c1bc0f146103c657600080fd5b8063b187bd261461027c578063b30906d4146102ad578063bae6c2ad146102f9578063c1c013c414610320578063c565a2081461033357600080fd5b806354fac919116100e757806354fac919146101de5780635c32e9431461021d5780635c975abb14610232578063674a64e014610247578063a8d6fe041461026757600080fd5b806317be85c31461012457806320f2f3451461014f5780632dd4f5661461017157806332052a9b146101915780633f4ba83a146101c9575b600080fd5b34801561013057600080fd5b506101396103e6565b6040516101469190611acb565b60405180910390f35b34801561015b57600080fd5b5061016f61016a366004611b52565b610473565b005b34801561017d57600080fd5b5061016f61018c366004611b85565b6105fa565b34801561019d57600080fd5b506101b16101ac366004611bb5565b6106e3565b6040516001600160c01b039091168152602001610146565b3480156101d557600080fd5b5061016f6106fe565b3480156101ea57600080fd5b5060035461020590600160801b90046001600160401b031681565b6040516001600160401b039091168152602001610146565b34801561022957600080fd5b5061016f6107c9565b34801561023e57600080fd5b5061016f610875565b34801561025357600080fd5b50600354610205906001600160401b031681565b34801561027357600080fd5b5061016f610946565b34801561028857600080fd5b5060035461029d90600160c01b900460ff1681565b6040519015158152602001610146565b3480156102b957600080fd5b506102cd6102c8366004611bd2565b610a20565b604080519384526001600160401b0390921660208401526001600160c01b031690820152606001610146565b34801561030557600080fd5b5060035461020590600160401b90046001600160401b031681565b61020561032e366004611b85565b610a69565b34801561033f57600080fd5b506101b161034e366004611bd2565b610b02565b34801561035f57600080fd5b5061016f61036e366004611b85565b610b10565b34801561037f57600080fd5b5061016f61038e366004611bd2565b610bfe565b34801561039f57600080fd5b506101b16103ae366004611b85565b610ce4565b61016f6103c1366004611bb5565b610ec9565b3480156103d257600080fd5b506101396103e1366004611bd2565b610f5a565b60606002805480602002602001604051908101604052809291908181526020016000905b8282101561046a5760008481526020908190206040805160608101825260028602909201805483526001908101546001600160401b03811684860152600160401b90046001600160c01b031691830191909152908352909201910161040a565b50505050905090565b600054610100900460ff1661048e5760005460ff1615610492565b303b155b6104fa5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b600054610100900460ff1615801561051c576000805461ffff19166101011790555b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156105aa5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b60648201526084016104f1565b600380546001600160401b03848116600160801b0277ffffffffffffffff0000000000000000ffffffffffffffff199092169086161717905580156105f5576000805461ff00191690555b505050565b6040516304ddefed60e31b8152606b906326ef7f689061061e903390600401611beb565b60206040518083038186803b15801561063657600080fd5b505afa15801561064a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066e9190611bff565b61068d5733604051639531eff160e01b81526004016104f19190611beb565b6003805467ffffffffffffffff19166001600160401b0383169081179091556040519081527fca22875e098f3b9c06ff3950c0cded621c968253a16623e890165451094c1839906020015b60405180910390a150565b60006106f8826001600160a01b03163f610b02565b92915050565b6040516304ddefed60e31b8152606b906326ef7f6890610722903390600401611beb565b60206040518083038186803b15801561073a57600080fd5b505afa15801561074e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107729190611bff565b6107915733604051639531eff160e01b81526004016104f19190611beb565b6003805460ff60c01b191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b6040516304ddefed60e31b8152606b906326ef7f68906107ed903390600401611beb565b60206040518083038186803b15801561080557600080fd5b505afa158015610819573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083d9190611bff565b61085c5733604051639531eff160e01b81526004016104f19190611beb565b610867600019610bfe565b61087360026000611a90565b565b6040516304ddefed60e31b8152606b906326ef7f6890610899903390600401611beb565b60206040518083038186803b1580156108b157600080fd5b505afa1580156108c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e99190611bff565b6109085733604051639531eff160e01b81526004016104f19190611beb565b6003805460ff60c01b1916600160c01b1790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b600080606b6001600160a01b0316632d9125e96040518163ffffffff1660e01b815260040160206040518083038186803b15801561098357600080fd5b505afa158015610997573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109bb9190611c21565b6001600160a01b03164760405160006040518083038185875af1925050503d8060008114610a05576040519150601f19603f3d011682016040523d82523d6000602084013e610a0a565b606091505b509150915081610a1c57805160208201fd5b5050565b60028181548110610a3057600080fd5b6000918252602090912060029091020180546001909101549091506001600160401b03811690600160401b90046001600160c01b031683565b600354600090600160c01b900460ff1615610a97576040516323d5725b60e21b815260040160405180910390fd5b625000006001600160401b0383161115610ad85760405163e6b801f360e01b81526001600160401b03831660048201526250000060248201526044016104f1565b610ae1826110c3565b50506003546106f8906001600160401b03600160401b820481169116611c54565b60006106f86103ae83611185565b6040516304ddefed60e31b8152606b906326ef7f6890610b34903390600401611beb565b60206040518083038186803b158015610b4c57600080fd5b505afa158015610b60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b849190611bff565b610ba35733604051639531eff160e01b81526004016104f19190611beb565b6003805467ffffffffffffffff60801b1916600160801b6001600160401b038416908102919091179091556040519081527fd5ad38a519f54c97117f5a79fa7e82b03f32d2719f3ce4a27d4b561217cfea0c906020016106d8565b6040516304ddefed60e31b8152606b906326ef7f6890610c22903390600401611beb565b60206040518083038186803b158015610c3a57600080fd5b505afa158015610c4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c729190611bff565b610c915733604051639531eff160e01b81526004016104f19190611beb565b60015415801590610ca25750600081115b15610ce157600080610cbf610cb76001611223565b604081901c91565b91509150610ccd8282611233565b610cd8600184611c7c565b92505050610c91565b50565b6003546000906001600160401b039081169083161115610d355760035460405163bcc27c3760e01b81526001600160401b0380851660048301526000602483015290911660448201526064016104f1565b6110006001600160401b0383161015610d5057611000610d52565b815b600354909250600090610d76908490600160401b90046001600160401b0316611c93565b6003546001600160401b039182169250168111610d965750600092915050565b600354600090610daf906001600160401b031683611c7c565b905060006110006001610dc28285611cbe565b610dcc9190611c7c565b610dd69190611cd6565b90506000610de382610f5a565b905060005b8151811015610e8957818181518110610e0357610e03611cf8565b6020026020010151602001516001600160401b03168411610e4357818181518110610e3057610e30611cf8565b6020026020010151604001519550610e89565b818181518110610e5557610e55611cf8565b6020026020010151602001516001600160401b031684610e759190611c7c565b935080610e8181611d0e565b915050610de8565b506000610e946113d5565b905080866001600160c01b03161015610eb4575060009695505050505050565b610ebe8187611d29565b979650505050505050565b600354600160c01b900460ff1615610ef4576040516323d5725b60e21b815260040160405180910390fd5b6001600160a01b0381163f610f08816113fa565b15610f295760405163c7e2d8e560e01b8152600481018290526024016104f1565b6000610f3482611185565b9050600080610f42836110c3565b91509150610f53828686868561146d565b5050505050565b606081610f6660015490565b1015610f725760015491505b6000610f7f60018461172f565b905080516001600160401b03811115610f9a57610f9a611d49565b604051908082528060200260200182016040528015610fe557816020015b6040805160608101825260008082526020808301829052928201528252600019909201910181610fb85790505b50915060005b81518110156110bc57600061101b83838151811061100b5761100b611cf8565b6020026020010151604081901c91565b9150506002816001600160401b03168154811061103a5761103a611cf8565b60009182526020918290206040805160608101825260029390930290910180548352600101546001600160401b03811693830193909352600160401b9092046001600160c01b031691810191909152845185908490811061109d5761109d611cf8565b60200260200101819052505080806110b490611d0e565b915050610feb565b5050919050565b6000806110cf346118d4565b60025460035491935091506000906001600160401b03165b6003546001600160401b0380831691611109918891600160401b900416611c93565b6001600160401b0316111561113857611125610cb76001611223565b935091506111338284611233565b6110e7565b816001600160c01b0316846001600160c01b0316101561117e57604051631be6e1c960e31b81526001600160c01b038086166004830152831660248201526044016104f1565b5050915091565b604051634089267f60e01b8152600481018290526000908190607190634089267f9060240160206040518083038186803b1580156111c257600080fd5b505afa1580156111d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111fa9190611d5f565b905061100063ffffffff821610156112145761100061121c565b8063ffffffff165b9392505050565b600061121c826000806002611916565b60006002826001600160401b03168154811061125157611251611cf8565b60009182526020918290206040805160608101825260029390930290910180548084526001909101546001600160401b03811694840194909452600160401b9093046001600160c01b0316828201525163ce97201360e01b81526004810192909252915060729063ce97201390602401600060405180830381600087803b1580156112db57600080fd5b505af11580156112ef573d6000803e3d6000fd5b505050508060200151600360088282829054906101000a90046001600160401b031661131b9190611c54565b92506101000a8154816001600160401b0302191690836001600160401b0316021790555080600001517f65905594d332f592fa6d4b86efc250c300a286b9d4f07f2ae89c3147dc4f39e78483602001516040516113969291906001600160c01b039290921682526001600160401b0316602082015260400190565b60405180910390a26002826001600160401b0316815481106113ba576113ba611cf8565b60009182526020822060029091020181815560010155505050565b6003546000906113f590600160801b90046001600160401b031642611d85565b905090565b60405163a72f179b60e01b81526004810182905260009060729063a72f179b9060240160206040518083038186803b15801561143557600080fd5b505afa158015611449573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f89190611bff565b6003546001600160401b038082169161148f918591600160401b900416611c93565b6001600160401b031611156114dc5760035460405163bcc27c3760e01b81526001600160401b038085166004830152600160401b83048116602483015290911660448201526064016104f1565b604080516060810182528481526001600160401b03841660208201526001600160c01b03871681830152905163739d64f960e11b815260729063e73ac9f290611529908890600401611beb565b600060405180830381600087803b15801561154357600080fd5b505af1158015611557573d6000803e3d6000fd5b506115829250505067ffffffffffffffff19604088901b166001600160401b03841617600190611a82565b82600360088282829054906101000a90046001600160401b03166115a69190611c93565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550600280549050826001600160401b0316141561166957600280546001810182556000829052825191027f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace810191909155602082015160408301516001600160c01b0316600160401b026001600160401b03909116177f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5acf909101556116cb565b806002836001600160401b03168154811061168657611686611cf8565b60009182526020918290208351600290920201908155908201516040909201516001600160c01b0316600160401b026001600160401b03909216919091176001909101555b604080516001600160a01b03871681526001600160c01b03881660208201526001600160401b03851681830152905185917fb9271ce6a232cb5e0010e10fc10b38fe5d25dd27f8c03beef068a581cfc21bec919081900360600190a2505050505050565b60606117ef565b6001820360011c61174d818360069190911b015190565b8510830261175b575061177c565b600681811b830180516020918201519286901b850190815201529150611736565b600682901b81018481526020018390525b50505050565b600060015b838110156117e2576001810184118101600690811b84015182821b8501511190910180821b840180516020918201519385901b860190815201919091529050600181811b01611798565b50610f5385858385611736565b5060408051600084815260208082208654815487821882891002821860051b86018085019182529096019390935292939084019190808314155b80156118bb578151845283602001935081841415611846576118bb565b602082015160019060011b0183811061188a57600182039150611884611872838560069190911b015190565b600684901b8501602001518486611793565b50611829565b61189981870154828486611793565b600101838114611884576118b281870154828486611736565b50600101611829565b505050601f198382030160051c83526040525092915050565b6000806118df6113d5565b6118e99084611cbe565b90506001600160c01b038111156106f857604051631edd0da560e31b8152600481018290526024016104f1565b6000808554866000526020600020600080198661196e5787611937576119f0565b87841461195057505060018281018955935081816119fe565b825489811061195f57506119fe565b600396509450600190506119fe565b600287116119b15783611980576119f0565b60028714156119a557600184039350838a55838301549850889450836119a5576119fe565b508154935060016119fe565b60038714156119c957505060018201885581816119fe565b889450836119d6576119fe565b82548981106119e557506119fe565b9450600190506119fe565b63a6ca772e6000526004601cfd5b5b83811015611a385780830154600182018085015480831087831011611a245750829050815b938501939093555050600181811b016119ff565b8115611a66576001820360011c935083830154808a10611a585750611a66565b808385015550839150611a38565b6001810115611a755788828401555b5050505094509492505050565b61178d828260006003611916565b5080546000825560020290600052602060002090810190610ce191905b80821115611ac75760008082556001820155600201611aad565b5090565b602080825282518282018190526000919060409081850190868401855b82811015611b2957815180518552868101516001600160401b0316878601528501516001600160c01b03168585015260609093019290850190600101611ae8565b5091979650505050505050565b80356001600160401b0381168114611b4d57600080fd5b919050565b60008060408385031215611b6557600080fd5b611b6e83611b36565b9150611b7c60208401611b36565b90509250929050565b600060208284031215611b9757600080fd5b61121c82611b36565b6001600160a01b0381168114610ce157600080fd5b600060208284031215611bc757600080fd5b813561121c81611ba0565b600060208284031215611be457600080fd5b5035919050565b6001600160a01b0391909116815260200190565b600060208284031215611c1157600080fd5b8151801515811461121c57600080fd5b600060208284031215611c3357600080fd5b815161121c81611ba0565b634e487b7160e01b600052601160045260246000fd5b60006001600160401b0383811690831681811015611c7457611c74611c3e565b039392505050565b600082821015611c8e57611c8e611c3e565b500390565b60006001600160401b03808316818516808303821115611cb557611cb5611c3e565b01949350505050565b60008219821115611cd157611cd1611c3e565b500190565b600082611cf357634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b6000600019821415611d2257611d22611c3e565b5060010190565b60006001600160c01b0383811690831681811015611c7457611c74611c3e565b634e487b7160e01b600052604160045260246000fd5b600060208284031215611d7157600080fd5b815163ffffffff8116811461121c57600080fd5b6000816000190483118215151615611d9f57611d9f611c3e565b50029056fea2646970667358221220d7ed98768aa449a7866f396db73379cc3dd387848af7a0bb3023d924f36d4cea64736f6c63430008090033",
514
+ "deployedBytecode": "0x60806040526004361061011f5760003560e01c8063b187bd26116100a0578063c77ed13e11610064578063c77ed13e14610353578063cadb43e214610373578063d29b303e14610393578063e4940157146103b3578063e9c1bc0f146103c657600080fd5b8063b187bd261461027c578063b30906d4146102ad578063bae6c2ad146102f9578063c1c013c414610320578063c565a2081461033357600080fd5b806354fac919116100e757806354fac919146101de5780635c32e9431461021d5780635c975abb14610232578063674a64e014610247578063a8d6fe041461026757600080fd5b806317be85c31461012457806320f2f3451461014f5780632dd4f5661461017157806332052a9b146101915780633f4ba83a146101c9575b600080fd5b34801561013057600080fd5b506101396103e6565b6040516101469190611acb565b60405180910390f35b34801561015b57600080fd5b5061016f61016a366004611b52565b610473565b005b34801561017d57600080fd5b5061016f61018c366004611b85565b6105fa565b34801561019d57600080fd5b506101b16101ac366004611bb5565b6106e3565b6040516001600160c01b039091168152602001610146565b3480156101d557600080fd5b5061016f6106fe565b3480156101ea57600080fd5b5060035461020590600160801b90046001600160401b031681565b6040516001600160401b039091168152602001610146565b34801561022957600080fd5b5061016f6107c9565b34801561023e57600080fd5b5061016f610875565b34801561025357600080fd5b50600354610205906001600160401b031681565b34801561027357600080fd5b5061016f610946565b34801561028857600080fd5b5060035461029d90600160c01b900460ff1681565b6040519015158152602001610146565b3480156102b957600080fd5b506102cd6102c8366004611bd2565b610a20565b604080519384526001600160401b0390921660208401526001600160c01b031690820152606001610146565b34801561030557600080fd5b5060035461020590600160401b90046001600160401b031681565b61020561032e366004611b85565b610a69565b34801561033f57600080fd5b506101b161034e366004611bd2565b610b02565b34801561035f57600080fd5b5061016f61036e366004611b85565b610b10565b34801561037f57600080fd5b5061016f61038e366004611bd2565b610bfe565b34801561039f57600080fd5b506101b16103ae366004611b85565b610ce4565b61016f6103c1366004611bb5565b610ec9565b3480156103d257600080fd5b506101396103e1366004611bd2565b610f5a565b60606002805480602002602001604051908101604052809291908181526020016000905b8282101561046a5760008481526020908190206040805160608101825260028602909201805483526001908101546001600160401b03811684860152600160401b90046001600160c01b031691830191909152908352909201910161040a565b50505050905090565b600054610100900460ff1661048e5760005460ff1615610492565b303b155b6104fa5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b600054610100900460ff1615801561051c576000805461ffff19166101011790555b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156105aa5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b60648201526084016104f1565b600380546001600160401b03848116600160801b0277ffffffffffffffff0000000000000000ffffffffffffffff199092169086161717905580156105f5576000805461ff00191690555b505050565b6040516304ddefed60e31b8152606b906326ef7f689061061e903390600401611beb565b60206040518083038186803b15801561063657600080fd5b505afa15801561064a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066e9190611bff565b61068d5733604051639531eff160e01b81526004016104f19190611beb565b6003805467ffffffffffffffff19166001600160401b0383169081179091556040519081527fca22875e098f3b9c06ff3950c0cded621c968253a16623e890165451094c1839906020015b60405180910390a150565b60006106f8826001600160a01b03163f610b02565b92915050565b6040516304ddefed60e31b8152606b906326ef7f6890610722903390600401611beb565b60206040518083038186803b15801561073a57600080fd5b505afa15801561074e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107729190611bff565b6107915733604051639531eff160e01b81526004016104f19190611beb565b6003805460ff60c01b191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b6040516304ddefed60e31b8152606b906326ef7f68906107ed903390600401611beb565b60206040518083038186803b15801561080557600080fd5b505afa158015610819573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083d9190611bff565b61085c5733604051639531eff160e01b81526004016104f19190611beb565b610867600019610bfe565b61087360026000611a90565b565b6040516304ddefed60e31b8152606b906326ef7f6890610899903390600401611beb565b60206040518083038186803b1580156108b157600080fd5b505afa1580156108c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e99190611bff565b6109085733604051639531eff160e01b81526004016104f19190611beb565b6003805460ff60c01b1916600160c01b1790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b600080606b6001600160a01b0316632d9125e96040518163ffffffff1660e01b815260040160206040518083038186803b15801561098357600080fd5b505afa158015610997573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109bb9190611c21565b6001600160a01b03164760405160006040518083038185875af1925050503d8060008114610a05576040519150601f19603f3d011682016040523d82523d6000602084013e610a0a565b606091505b509150915081610a1c57805160208201fd5b5050565b60028181548110610a3057600080fd5b6000918252602090912060029091020180546001909101549091506001600160401b03811690600160401b90046001600160c01b031683565b600354600090600160c01b900460ff1615610a97576040516323d5725b60e21b815260040160405180910390fd5b625000006001600160401b0383161115610ad85760405163e6b801f360e01b81526001600160401b03831660048201526250000060248201526044016104f1565b610ae1826110c3565b50506003546106f8906001600160401b03600160401b820481169116611c54565b60006106f86103ae83611185565b6040516304ddefed60e31b8152606b906326ef7f6890610b34903390600401611beb565b60206040518083038186803b158015610b4c57600080fd5b505afa158015610b60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b849190611bff565b610ba35733604051639531eff160e01b81526004016104f19190611beb565b6003805467ffffffffffffffff60801b1916600160801b6001600160401b038416908102919091179091556040519081527fd5ad38a519f54c97117f5a79fa7e82b03f32d2719f3ce4a27d4b561217cfea0c906020016106d8565b6040516304ddefed60e31b8152606b906326ef7f6890610c22903390600401611beb565b60206040518083038186803b158015610c3a57600080fd5b505afa158015610c4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c729190611bff565b610c915733604051639531eff160e01b81526004016104f19190611beb565b60015415801590610ca25750600081115b15610ce157600080610cbf610cb76001611223565b604081901c91565b91509150610ccd8282611233565b610cd8600184611c7c565b92505050610c91565b50565b6003546000906001600160401b039081169083161115610d355760035460405163bcc27c3760e01b81526001600160401b0380851660048301526000602483015290911660448201526064016104f1565b6110006001600160401b0383161015610d5057611000610d52565b815b600354909250600090610d76908490600160401b90046001600160401b0316611c93565b6003546001600160401b039182169250168111610d965750600092915050565b600354600090610daf906001600160401b031683611c7c565b905060006110006001610dc28285611cbe565b610dcc9190611c7c565b610dd69190611cd6565b90506000610de382610f5a565b905060005b8151811015610e8957818181518110610e0357610e03611cf8565b6020026020010151602001516001600160401b03168411610e4357818181518110610e3057610e30611cf8565b6020026020010151604001519550610e89565b818181518110610e5557610e55611cf8565b6020026020010151602001516001600160401b031684610e759190611c7c565b935080610e8181611d0e565b915050610de8565b506000610e946113d5565b905080866001600160c01b03161015610eb4575060009695505050505050565b610ebe8187611d29565b979650505050505050565b600354600160c01b900460ff1615610ef4576040516323d5725b60e21b815260040160405180910390fd5b6001600160a01b0381163f610f08816113fa565b15610f295760405163c7e2d8e560e01b8152600481018290526024016104f1565b6000610f3482611185565b9050600080610f42836110c3565b91509150610f53828686868561146d565b5050505050565b606081610f6660015490565b1015610f725760015491505b6000610f7f60018461172f565b905080516001600160401b03811115610f9a57610f9a611d49565b604051908082528060200260200182016040528015610fe557816020015b6040805160608101825260008082526020808301829052928201528252600019909201910181610fb85790505b50915060005b81518110156110bc57600061101b83838151811061100b5761100b611cf8565b6020026020010151604081901c91565b9150506002816001600160401b03168154811061103a5761103a611cf8565b60009182526020918290206040805160608101825260029390930290910180548352600101546001600160401b03811693830193909352600160401b9092046001600160c01b031691810191909152845185908490811061109d5761109d611cf8565b60200260200101819052505080806110b490611d0e565b915050610feb565b5050919050565b6000806110cf346118d4565b60025460035491935091506000906001600160401b03165b6003546001600160401b0380831691611109918891600160401b900416611c93565b6001600160401b0316111561113857611125610cb76001611223565b935091506111338284611233565b6110e7565b816001600160c01b0316846001600160c01b0316101561117e57604051631be6e1c960e31b81526001600160c01b038086166004830152831660248201526044016104f1565b5050915091565b604051634089267f60e01b8152600481018290526000908190607190634089267f9060240160206040518083038186803b1580156111c257600080fd5b505afa1580156111d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111fa9190611d5f565b905061100063ffffffff821610156112145761100061121c565b8063ffffffff165b9392505050565b600061121c826000806002611916565b60006002826001600160401b03168154811061125157611251611cf8565b60009182526020918290206040805160608101825260029390930290910180548084526001909101546001600160401b03811694840194909452600160401b9093046001600160c01b0316828201525163ce97201360e01b81526004810192909252915060729063ce97201390602401600060405180830381600087803b1580156112db57600080fd5b505af11580156112ef573d6000803e3d6000fd5b505050508060200151600360088282829054906101000a90046001600160401b031661131b9190611c54565b92506101000a8154816001600160401b0302191690836001600160401b0316021790555080600001517f65905594d332f592fa6d4b86efc250c300a286b9d4f07f2ae89c3147dc4f39e78483602001516040516113969291906001600160c01b039290921682526001600160401b0316602082015260400190565b60405180910390a26002826001600160401b0316815481106113ba576113ba611cf8565b60009182526020822060029091020181815560010155505050565b6003546000906113f590600160801b90046001600160401b031642611d85565b905090565b60405163a72f179b60e01b81526004810182905260009060729063a72f179b9060240160206040518083038186803b15801561143557600080fd5b505afa158015611449573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f89190611bff565b6003546001600160401b038082169161148f918591600160401b900416611c93565b6001600160401b031611156114dc5760035460405163bcc27c3760e01b81526001600160401b038085166004830152600160401b83048116602483015290911660448201526064016104f1565b604080516060810182528481526001600160401b03841660208201526001600160c01b03871681830152905163739d64f960e11b815260729063e73ac9f290611529908890600401611beb565b600060405180830381600087803b15801561154357600080fd5b505af1158015611557573d6000803e3d6000fd5b506115829250505067ffffffffffffffff19604088901b166001600160401b03841617600190611a82565b82600360088282829054906101000a90046001600160401b03166115a69190611c93565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550600280549050826001600160401b0316141561166957600280546001810182556000829052825191027f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace810191909155602082015160408301516001600160c01b0316600160401b026001600160401b03909116177f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5acf909101556116cb565b806002836001600160401b03168154811061168657611686611cf8565b60009182526020918290208351600290920201908155908201516040909201516001600160c01b0316600160401b026001600160401b03909216919091176001909101555b604080516001600160a01b03871681526001600160c01b03881660208201526001600160401b03851681830152905185917fb9271ce6a232cb5e0010e10fc10b38fe5d25dd27f8c03beef068a581cfc21bec919081900360600190a2505050505050565b60606117ef565b6001820360011c61174d818360069190911b015190565b8510830261175b575061177c565b600681811b830180516020918201519286901b850190815201529150611736565b600682901b81018481526020018390525b50505050565b600060015b838110156117e2576001810184118101600690811b84015182821b8501511190910180821b840180516020918201519385901b860190815201919091529050600181811b01611798565b50610f5385858385611736565b5060408051600084815260208082208654815487821882891002821860051b86018085019182529096019390935292939084019190808314155b80156118bb578151845283602001935081841415611846576118bb565b602082015160019060011b0183811061188a57600182039150611884611872838560069190911b015190565b600684901b8501602001518486611793565b50611829565b61189981870154828486611793565b600101838114611884576118b281870154828486611736565b50600101611829565b505050601f198382030160051c83526040525092915050565b6000806118df6113d5565b6118e99084611cbe565b90506001600160c01b038111156106f857604051631edd0da560e31b8152600481018290526024016104f1565b6000808554866000526020600020600080198661196e5787611937576119f0565b87841461195057505060018281018955935081816119fe565b825489811061195f57506119fe565b600396509450600190506119fe565b600287116119b15783611980576119f0565b60028714156119a557600184039350838a55838301549850889450836119a5576119fe565b508154935060016119fe565b60038714156119c957505060018201885581816119fe565b889450836119d6576119fe565b82548981106119e557506119fe565b9450600190506119fe565b63a6ca772e6000526004601cfd5b5b83811015611a385780830154600182018085015480831087831011611a245750829050815b938501939093555050600181811b016119ff565b8115611a66576001820360011c935083830154808a10611a585750611a66565b808385015550839150611a38565b6001810115611a755788828401555b5050505094509492505050565b61178d828260006003611916565b5080546000825560020290600052602060002090810190610ce191905b80821115611ac75760008082556001820155600201611aad565b5090565b602080825282518282018190526000919060409081850190868401855b82811015611b2957815180518552868101516001600160401b0316878601528501516001600160c01b03168585015260609093019290850190600101611ae8565b5091979650505050505050565b80356001600160401b0381168114611b4d57600080fd5b919050565b60008060408385031215611b6557600080fd5b611b6e83611b36565b9150611b7c60208401611b36565b90509250929050565b600060208284031215611b9757600080fd5b61121c82611b36565b6001600160a01b0381168114610ce157600080fd5b600060208284031215611bc757600080fd5b813561121c81611ba0565b600060208284031215611be457600080fd5b5035919050565b6001600160a01b0391909116815260200190565b600060208284031215611c1157600080fd5b8151801515811461121c57600080fd5b600060208284031215611c3357600080fd5b815161121c81611ba0565b634e487b7160e01b600052601160045260246000fd5b60006001600160401b0383811690831681811015611c7457611c74611c3e565b039392505050565b600082821015611c8e57611c8e611c3e565b500390565b60006001600160401b03808316818516808303821115611cb557611cb5611c3e565b01949350505050565b60008219821115611cd157611cd1611c3e565b500190565b600082611cf357634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b6000600019821415611d2257611d22611c3e565b5060010190565b60006001600160c01b0383811690831681811015611c7457611c74611c3e565b634e487b7160e01b600052604160045260246000fd5b600060208284031215611d7157600080fd5b815163ffffffff8116811461121c57600080fd5b6000816000190483118215151615611d9f57611d9f611c3e565b50029056fea2646970667358221220d7ed98768aa449a7866f396db73379cc3dd387848af7a0bb3023d924f36d4cea64736f6c63430008090033",
515
+ "linkReferences": {},
516
+ "deployedLinkReferences": {}
517
+ }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/7de232cc334b063903f669aaef0a3136.json"
3
+ "buildInfo": "../../../build-info/c1d194c598f27e74e5febef0e822787e.json"
4
4
  }
@@ -3,8 +3,8 @@
3
3
  "contractName": "ChallengeLib",
4
4
  "sourceName": "src/challenge/ChallengeLib.sol",
5
5
  "abi": [],
6
- "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220be45a96ce6243b77a059183fe5e02a3439a1cffd58f2017cfb910ec79b578a3c64736f6c63430008090033",
7
- "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220be45a96ce6243b77a059183fe5e02a3439a1cffd58f2017cfb910ec79b578a3c64736f6c63430008090033",
6
+ "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122061be17751f5e97fb60b2309e008b8d79e1acd48d559da96540694217eab782c864736f6c63430008090033",
7
+ "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122061be17751f5e97fb60b2309e008b8d79e1acd48d559da96540694217eab782c864736f6c63430008090033",
8
8
  "linkReferences": {},
9
9
  "deployedLinkReferences": {}
10
10
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/7de232cc334b063903f669aaef0a3136.json"
3
+ "buildInfo": "../../../build-info/c1d194c598f27e74e5febef0e822787e.json"
4
4
  }