@arbitrum/nitro-contracts 1.2.0 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (202) 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/utils/SafeERC20.sol/SafeERC20.dbg.json +1 -1
  16. package/build/contracts/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json +1 -1
  17. package/build/contracts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json +1 -1
  18. package/build/contracts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.dbg.json +1 -1
  19. package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol/AccessControlUpgradeable.dbg.json +1 -1
  20. package/build/contracts/@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol/IAccessControlUpgradeable.dbg.json +1 -1
  21. package/build/contracts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.dbg.json +1 -1
  22. package/build/contracts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.dbg.json +1 -1
  23. package/build/contracts/@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol/PausableUpgradeable.dbg.json +1 -1
  24. package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.dbg.json +1 -1
  25. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.dbg.json +1 -1
  26. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.dbg.json +1 -1
  27. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol/StorageSlotUpgradeable.dbg.json +1 -1
  28. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol/StringsUpgradeable.dbg.json +1 -1
  29. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol/ERC165Upgradeable.dbg.json +1 -1
  30. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol/IERC165Upgradeable.dbg.json +1 -1
  31. package/build/contracts/src/bridge/AbsBridge.sol/AbsBridge.dbg.json +1 -1
  32. package/build/contracts/src/bridge/AbsInbox.sol/AbsInbox.dbg.json +1 -1
  33. package/build/contracts/src/bridge/AbsOutbox.sol/AbsOutbox.dbg.json +1 -1
  34. package/build/contracts/src/bridge/Bridge.sol/Bridge.dbg.json +1 -1
  35. package/build/contracts/src/bridge/Bridge.sol/Bridge.json +2 -2
  36. package/build/contracts/src/bridge/ERC20Bridge.sol/ERC20Bridge.dbg.json +1 -1
  37. package/build/contracts/src/bridge/ERC20Bridge.sol/ERC20Bridge.json +2 -2
  38. package/build/contracts/src/bridge/ERC20Inbox.sol/ERC20Inbox.dbg.json +1 -1
  39. package/build/contracts/src/bridge/ERC20Inbox.sol/ERC20Inbox.json +2 -2
  40. package/build/contracts/src/bridge/ERC20Outbox.sol/ERC20Outbox.dbg.json +1 -1
  41. package/build/contracts/src/bridge/ERC20Outbox.sol/ERC20Outbox.json +2 -2
  42. package/build/contracts/src/bridge/GasRefunder.sol/GasRefunder.dbg.json +1 -1
  43. package/build/contracts/src/bridge/IBridge.sol/IBridge.dbg.json +1 -1
  44. package/build/contracts/src/bridge/IDelayedMessageProvider.sol/IDelayedMessageProvider.dbg.json +1 -1
  45. package/build/contracts/src/bridge/IERC20Bridge.sol/IERC20Bridge.dbg.json +1 -1
  46. package/build/contracts/src/bridge/IERC20Inbox.sol/IERC20Inbox.dbg.json +1 -1
  47. package/build/contracts/src/bridge/IEthBridge.sol/IEthBridge.dbg.json +1 -1
  48. package/build/contracts/src/bridge/IInbox.sol/IInbox.dbg.json +1 -1
  49. package/build/contracts/src/bridge/IInboxBase.sol/IInboxBase.dbg.json +1 -1
  50. package/build/contracts/src/bridge/IOutbox.sol/IOutbox.dbg.json +1 -1
  51. package/build/contracts/src/bridge/IOwnable.sol/IOwnable.dbg.json +1 -1
  52. package/build/contracts/src/bridge/ISequencerInbox.sol/ISequencerInbox.dbg.json +1 -1
  53. package/build/contracts/src/bridge/ISequencerInbox.sol/ISequencerInbox.json +16 -16
  54. package/build/contracts/src/bridge/Inbox.sol/Inbox.dbg.json +1 -1
  55. package/build/contracts/src/bridge/Inbox.sol/Inbox.json +2 -2
  56. package/build/contracts/src/bridge/Messages.sol/Messages.dbg.json +1 -1
  57. package/build/contracts/src/bridge/Outbox.sol/Outbox.dbg.json +1 -1
  58. package/build/contracts/src/bridge/Outbox.sol/Outbox.json +2 -2
  59. package/build/contracts/src/bridge/SequencerInbox.sol/SequencerInbox.dbg.json +1 -1
  60. package/build/contracts/src/bridge/SequencerInbox.sol/SequencerInbox.json +23 -18
  61. package/build/contracts/src/challenge/ChallengeLib.sol/ChallengeLib.dbg.json +1 -1
  62. package/build/contracts/src/challenge/ChallengeLib.sol/ChallengeLib.json +2 -2
  63. package/build/contracts/src/challenge/ChallengeManager.sol/ChallengeManager.dbg.json +1 -1
  64. package/build/contracts/src/challenge/ChallengeManager.sol/ChallengeManager.json +2 -2
  65. package/build/contracts/src/challenge/IChallengeManager.sol/IChallengeManager.dbg.json +1 -1
  66. package/build/contracts/src/challenge/IChallengeResultReceiver.sol/IChallengeResultReceiver.dbg.json +1 -1
  67. package/build/contracts/src/libraries/AddressAliasHelper.sol/AddressAliasHelper.dbg.json +1 -1
  68. package/build/contracts/src/libraries/AdminFallbackProxy.sol/AdminFallbackProxy.dbg.json +1 -1
  69. package/build/contracts/src/libraries/AdminFallbackProxy.sol/DoubleLogicERC1967Upgrade.dbg.json +1 -1
  70. package/build/contracts/src/libraries/ArbitrumChecker.sol/ArbitrumChecker.dbg.json +1 -1
  71. package/build/contracts/src/libraries/CryptographyPrimitives.sol/CryptographyPrimitives.dbg.json +1 -1
  72. package/build/contracts/src/libraries/DelegateCallAware.sol/DelegateCallAware.dbg.json +1 -1
  73. package/build/contracts/src/libraries/DoubleLogicUUPSUpgradeable.sol/DoubleLogicUUPSUpgradeable.dbg.json +1 -1
  74. package/build/contracts/src/libraries/GasRefundEnabled.sol/GasRefundEnabled.dbg.json +1 -1
  75. package/build/contracts/src/libraries/IGasRefunder.sol/IGasRefunder.dbg.json +1 -1
  76. package/build/contracts/src/libraries/IReader4844.sol/IReader4844.dbg.json +1 -1
  77. package/build/contracts/src/libraries/MerkleLib.sol/MerkleLib.dbg.json +1 -1
  78. package/build/contracts/src/libraries/MerkleLib.sol/MerkleLib.json +2 -2
  79. package/build/contracts/src/libraries/UUPSNotUpgradeable.sol/UUPSNotUpgradeable.dbg.json +1 -1
  80. package/build/contracts/src/mocks/BridgeStub.sol/BridgeStub.dbg.json +1 -1
  81. package/build/contracts/src/mocks/BridgeStub.sol/BridgeStub.json +2 -2
  82. package/build/contracts/src/mocks/BridgeUnproxied.sol/BridgeUnproxied.dbg.json +1 -1
  83. package/build/contracts/src/mocks/BridgeUnproxied.sol/BridgeUnproxied.json +2 -2
  84. package/build/contracts/src/mocks/InboxStub.sol/InboxStub.dbg.json +1 -1
  85. package/build/contracts/src/mocks/InboxStub.sol/InboxStub.json +2 -2
  86. package/build/contracts/src/mocks/MockResultReceiver.sol/MockResultReceiver.dbg.json +1 -1
  87. package/build/contracts/src/mocks/MockResultReceiver.sol/MockResultReceiver.json +2 -2
  88. package/build/contracts/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol/PendingBlkTimeAndNrAdvanceCheck.dbg.json +4 -0
  89. package/build/contracts/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol/PendingBlkTimeAndNrAdvanceCheck.json +36 -0
  90. package/build/contracts/src/mocks/ProxyAdminForBinding.sol/ProxyAdminForBinding.dbg.json +1 -1
  91. package/build/contracts/src/mocks/SequencerInboxStub.sol/SequencerInboxStub.dbg.json +1 -1
  92. package/build/contracts/src/mocks/SequencerInboxStub.sol/SequencerInboxStub.json +31 -26
  93. package/build/contracts/src/mocks/Simple.sol/Simple.dbg.json +1 -1
  94. package/build/contracts/src/mocks/Simple.sol/Simple.json +2 -2
  95. package/build/contracts/src/mocks/SimpleProxy.sol/SimpleProxy.dbg.json +1 -1
  96. package/build/contracts/src/mocks/SingleExecutionChallenge.sol/SingleExecutionChallenge.dbg.json +1 -1
  97. package/build/contracts/src/mocks/SingleExecutionChallenge.sol/SingleExecutionChallenge.json +2 -2
  98. package/build/contracts/src/mocks/TimedOutChallengeManager.sol/TimedOutChallengeManager.dbg.json +1 -1
  99. package/build/contracts/src/mocks/TimedOutChallengeManager.sol/TimedOutChallengeManager.json +2 -2
  100. package/build/contracts/src/mocks/UpgradeExecutorMock.sol/UpgradeExecutorMock.dbg.json +1 -1
  101. package/build/contracts/src/node-interface/NodeInterface.sol/NodeInterface.dbg.json +1 -1
  102. package/build/contracts/src/node-interface/NodeInterfaceDebug.sol/NodeInterfaceDebug.dbg.json +1 -1
  103. package/build/contracts/src/osp/HashProofHelper.sol/HashProofHelper.dbg.json +1 -1
  104. package/build/contracts/src/osp/IOneStepProofEntry.sol/IOneStepProofEntry.dbg.json +1 -1
  105. package/build/contracts/src/osp/IOneStepProofEntry.sol/IOneStepProofEntry.json +48 -0
  106. package/build/contracts/src/osp/IOneStepProofEntry.sol/OneStepProofEntryLib.dbg.json +1 -1
  107. package/build/contracts/src/osp/IOneStepProofEntry.sol/OneStepProofEntryLib.json +2 -2
  108. package/build/contracts/src/osp/IOneStepProver.sol/IOneStepProver.dbg.json +1 -1
  109. package/build/contracts/src/osp/OneStepProofEntry.sol/OneStepProofEntry.dbg.json +1 -1
  110. package/build/contracts/src/osp/OneStepProofEntry.sol/OneStepProofEntry.json +50 -2
  111. package/build/contracts/src/osp/OneStepProver0.sol/OneStepProver0.dbg.json +1 -1
  112. package/build/contracts/src/osp/OneStepProver0.sol/OneStepProver0.json +2 -2
  113. package/build/contracts/src/osp/OneStepProverHostIo.sol/OneStepProverHostIo.dbg.json +1 -1
  114. package/build/contracts/src/osp/OneStepProverHostIo.sol/OneStepProverHostIo.json +2 -2
  115. package/build/contracts/src/osp/OneStepProverMath.sol/OneStepProverMath.dbg.json +1 -1
  116. package/build/contracts/src/osp/OneStepProverMath.sol/OneStepProverMath.json +2 -2
  117. package/build/contracts/src/osp/OneStepProverMemory.sol/OneStepProverMemory.dbg.json +1 -1
  118. package/build/contracts/src/osp/OneStepProverMemory.sol/OneStepProverMemory.json +2 -2
  119. package/build/contracts/src/precompiles/ArbAddressTable.sol/ArbAddressTable.dbg.json +1 -1
  120. package/build/contracts/src/precompiles/ArbAggregator.sol/ArbAggregator.dbg.json +1 -1
  121. package/build/contracts/src/precompiles/ArbBLS.sol/ArbBLS.dbg.json +1 -1
  122. package/build/contracts/src/precompiles/ArbDebug.sol/ArbDebug.dbg.json +1 -1
  123. package/build/contracts/src/precompiles/ArbFunctionTable.sol/ArbFunctionTable.dbg.json +1 -1
  124. package/build/contracts/src/precompiles/ArbGasInfo.sol/ArbGasInfo.dbg.json +1 -1
  125. package/build/contracts/src/precompiles/ArbInfo.sol/ArbInfo.dbg.json +1 -1
  126. package/build/contracts/src/precompiles/ArbOwner.sol/ArbOwner.dbg.json +1 -1
  127. package/build/contracts/src/precompiles/ArbOwnerPublic.sol/ArbOwnerPublic.dbg.json +1 -1
  128. package/build/contracts/src/precompiles/ArbRetryableTx.sol/ArbRetryableTx.dbg.json +1 -1
  129. package/build/contracts/src/precompiles/ArbStatistics.sol/ArbStatistics.dbg.json +1 -1
  130. package/build/contracts/src/precompiles/ArbSys.sol/ArbSys.dbg.json +1 -1
  131. package/build/contracts/src/precompiles/ArbosActs.sol/ArbosActs.dbg.json +1 -1
  132. package/build/contracts/src/precompiles/ArbosTest.sol/ArbosTest.dbg.json +1 -1
  133. package/build/contracts/src/rollup/AbsRollupEventInbox.sol/AbsRollupEventInbox.dbg.json +1 -1
  134. package/build/contracts/src/rollup/BridgeCreator.sol/BridgeCreator.dbg.json +1 -1
  135. package/build/contracts/src/rollup/BridgeCreator.sol/BridgeCreator.json +10 -10
  136. package/build/contracts/src/rollup/DeployHelper.sol/DeployHelper.dbg.json +1 -1
  137. package/build/contracts/src/rollup/DeployHelper.sol/DeployHelper.json +2 -2
  138. package/build/contracts/src/rollup/ERC20RollupEventInbox.sol/ERC20RollupEventInbox.dbg.json +1 -1
  139. package/build/contracts/src/rollup/ERC20RollupEventInbox.sol/ERC20RollupEventInbox.json +2 -2
  140. package/build/contracts/src/rollup/IRollupAdmin.sol/IRollupAdmin.dbg.json +1 -1
  141. package/build/contracts/src/rollup/IRollupAdmin.sol/IRollupAdmin.json +8 -8
  142. package/build/contracts/src/rollup/IRollupCore.sol/IRollupCore.dbg.json +1 -1
  143. package/build/contracts/src/rollup/IRollupEventInbox.sol/IRollupEventInbox.dbg.json +1 -1
  144. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUser.dbg.json +1 -1
  145. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserAbs.dbg.json +1 -1
  146. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserERC20.dbg.json +1 -1
  147. package/build/contracts/src/rollup/Node.sol/NodeLib.dbg.json +1 -1
  148. package/build/contracts/src/rollup/RollupAdminLogic.sol/RollupAdminLogic.dbg.json +1 -1
  149. package/build/contracts/src/rollup/RollupAdminLogic.sol/RollupAdminLogic.json +10 -10
  150. package/build/contracts/src/rollup/RollupCore.sol/RollupCore.dbg.json +1 -1
  151. package/build/contracts/src/rollup/RollupCreator.sol/RollupCreator.dbg.json +1 -1
  152. package/build/contracts/src/rollup/RollupCreator.sol/RollupCreator.json +10 -10
  153. package/build/contracts/src/rollup/RollupEventInbox.sol/RollupEventInbox.dbg.json +1 -1
  154. package/build/contracts/src/rollup/RollupEventInbox.sol/RollupEventInbox.json +2 -2
  155. package/build/contracts/src/rollup/RollupLib.sol/RollupLib.dbg.json +1 -1
  156. package/build/contracts/src/rollup/RollupLib.sol/RollupLib.json +2 -2
  157. package/build/contracts/src/rollup/RollupProxy.sol/RollupProxy.dbg.json +1 -1
  158. package/build/contracts/src/rollup/RollupProxy.sol/RollupProxy.json +10 -10
  159. package/build/contracts/src/rollup/RollupUserLogic.sol/AbsRollupUserLogic.dbg.json +1 -1
  160. package/build/contracts/src/rollup/RollupUserLogic.sol/ERC20RollupUserLogic.dbg.json +1 -1
  161. package/build/contracts/src/rollup/RollupUserLogic.sol/ERC20RollupUserLogic.json +2 -2
  162. package/build/contracts/src/rollup/RollupUserLogic.sol/RollupUserLogic.dbg.json +1 -1
  163. package/build/contracts/src/rollup/RollupUserLogic.sol/RollupUserLogic.json +2 -2
  164. package/build/contracts/src/rollup/ValidatorUtils.sol/ValidatorUtils.dbg.json +1 -1
  165. package/build/contracts/src/rollup/ValidatorUtils.sol/ValidatorUtils.json +2 -2
  166. package/build/contracts/src/rollup/ValidatorWallet.sol/ValidatorWallet.dbg.json +1 -1
  167. package/build/contracts/src/rollup/ValidatorWallet.sol/ValidatorWallet.json +2 -2
  168. package/build/contracts/src/rollup/ValidatorWalletCreator.sol/ValidatorWalletCreator.dbg.json +1 -1
  169. package/build/contracts/src/rollup/ValidatorWalletCreator.sol/ValidatorWalletCreator.json +2 -2
  170. package/build/contracts/src/state/Deserialize.sol/Deserialize.dbg.json +1 -1
  171. package/build/contracts/src/state/GlobalState.sol/GlobalStateLib.dbg.json +1 -1
  172. package/build/contracts/src/state/Instructions.sol/Instructions.dbg.json +1 -1
  173. package/build/contracts/src/state/Machine.sol/MachineLib.dbg.json +1 -1
  174. package/build/contracts/src/state/MerkleProof.sol/MerkleProofLib.dbg.json +1 -1
  175. package/build/contracts/src/state/Module.sol/ModuleLib.dbg.json +1 -1
  176. package/build/contracts/src/state/ModuleMemory.sol/ModuleMemoryLib.dbg.json +1 -1
  177. package/build/contracts/src/state/ModuleMemoryCompact.sol/ModuleMemoryCompactLib.dbg.json +1 -1
  178. package/build/contracts/src/state/PcArray.sol/PcArrayLib.dbg.json +1 -1
  179. package/build/contracts/src/state/StackFrame.sol/StackFrameLib.dbg.json +1 -1
  180. package/build/contracts/src/state/Value.sol/ValueLib.dbg.json +1 -1
  181. package/build/contracts/src/state/ValueArray.sol/ValueArrayLib.dbg.json +1 -1
  182. package/build/contracts/src/state/ValueStack.sol/ValueStackLib.dbg.json +1 -1
  183. package/build/contracts/src/test-helpers/BridgeTester.sol/BridgeTester.dbg.json +1 -1
  184. package/build/contracts/src/test-helpers/BridgeTester.sol/BridgeTester.json +2 -2
  185. package/build/contracts/src/test-helpers/CryptographyPrimitivesTester.sol/CryptographyPrimitivesTester.dbg.json +1 -1
  186. package/build/contracts/src/test-helpers/EthVault.sol/EthVault.dbg.json +1 -1
  187. package/build/contracts/src/test-helpers/MessageTester.sol/MessageTester.dbg.json +1 -1
  188. package/build/contracts/src/test-helpers/OutboxWithoutOptTester.sol/OutboxWithoutOptTester.dbg.json +1 -1
  189. package/build/contracts/src/test-helpers/OutboxWithoutOptTester.sol/OutboxWithoutOptTester.json +2 -2
  190. package/build/contracts/src/test-helpers/RollupMock.sol/RollupMock.dbg.json +1 -1
  191. package/build/contracts/src/test-helpers/TestToken.sol/TestToken.dbg.json +1 -1
  192. package/build/contracts/src/test-helpers/ValueArrayTester.sol/ValueArrayTester.dbg.json +1 -1
  193. package/package.json +12 -6
  194. package/src/bridge/ISequencerInbox.sol +4 -4
  195. package/src/bridge/SequencerInbox.sol +38 -30
  196. package/src/challenge/ChallengeLib.sol +0 -45
  197. package/src/challenge/ChallengeManager.sol +2 -5
  198. package/src/libraries/Error.sol +3 -9
  199. package/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol +29 -0
  200. package/src/mocks/SequencerInboxStub.sol +4 -4
  201. package/src/osp/IOneStepProofEntry.sol +10 -0
  202. package/src/osp/OneStepProofEntry.sol +47 -0
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/06c4d509e20993c3089a7fd027c7b28b.json"
3
+ "buildInfo": "../../../build-info/239eb2848a7b622fb5b92eeb732909cf.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/06c4d509e20993c3089a7fd027c7b28b.json"
3
+ "buildInfo": "../../../build-info/239eb2848a7b622fb5b92eeb732909cf.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/06c4d509e20993c3089a7fd027c7b28b.json"
3
+ "buildInfo": "../../../build-info/239eb2848a7b622fb5b92eeb732909cf.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/06c4d509e20993c3089a7fd027c7b28b.json"
3
+ "buildInfo": "../../../build-info/239eb2848a7b622fb5b92eeb732909cf.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/06c4d509e20993c3089a7fd027c7b28b.json"
3
+ "buildInfo": "../../../build-info/239eb2848a7b622fb5b92eeb732909cf.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/06c4d509e20993c3089a7fd027c7b28b.json"
3
+ "buildInfo": "../../../build-info/239eb2848a7b622fb5b92eeb732909cf.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/06c4d509e20993c3089a7fd027c7b28b.json"
3
+ "buildInfo": "../../../build-info/239eb2848a7b622fb5b92eeb732909cf.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/06c4d509e20993c3089a7fd027c7b28b.json"
3
+ "buildInfo": "../../../build-info/239eb2848a7b622fb5b92eeb732909cf.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/06c4d509e20993c3089a7fd027c7b28b.json"
3
+ "buildInfo": "../../../build-info/239eb2848a7b622fb5b92eeb732909cf.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/06c4d509e20993c3089a7fd027c7b28b.json"
3
+ "buildInfo": "../../../build-info/239eb2848a7b622fb5b92eeb732909cf.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/06c4d509e20993c3089a7fd027c7b28b.json"
3
+ "buildInfo": "../../../build-info/239eb2848a7b622fb5b92eeb732909cf.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/06c4d509e20993c3089a7fd027c7b28b.json"
3
+ "buildInfo": "../../../build-info/239eb2848a7b622fb5b92eeb732909cf.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/06c4d509e20993c3089a7fd027c7b28b.json"
3
+ "buildInfo": "../../../build-info/239eb2848a7b622fb5b92eeb732909cf.json"
4
4
  }
@@ -622,8 +622,8 @@
622
622
  "type": "receive"
623
623
  }
624
624
  ],
625
- "bytecode": "0x60a06040523060805234801561001457600080fd5b5060805161138e61002d6000396000505061138e6000f3fe6080604052600436106101385760003560e01c80639e5d4c49116100ab578063cee3d7281161006f578063cee3d728146103d6578063d5719dc2146103f6578063e76f5c8d14610416578063e77145f4146101f4578063eca067ad14610436578063ee35f3271461044b57600080fd5b80639e5d4c4914610316578063ab5d894314610344578063ae60bd1314610359578063c4d66de814610396578063cb23bcb5146103b657600080fd5b80635fca4a16116100fd5780635fca4a16146102165780637a88b1071461022c57806386598a561461024f5780638db5993b14610299578063919cc706146102ac578063945e1147146102e957600080fd5b806284120c1461014457806316bf557914610168578063413b35bd1461018857806347fb24c5146101d45780634f61f850146101f657600080fd5b3661013f57005b600080fd5b34801561015057600080fd5b506009545b6040519081526020015b60405180910390f35b34801561017457600080fd5b5061015561018336600461104d565b61046b565b34801561019457600080fd5b506101c46101a336600461107e565b6001600160a01b031660009081526002602052604090206001015460ff1690565b604051901515815260200161015f565b3480156101e057600080fd5b506101f46101ef3660046110a2565b61048c565b005b34801561020257600080fd5b506101f461021136600461107e565b610797565b34801561022257600080fd5b50610155600a5481565b34801561023857600080fd5b506101556102473660046110e0565b600092915050565b34801561025b57600080fd5b5061027961026a36600461110c565b50600093849350839250829150565b60408051948552602085019390935291830152606082015260800161015f565b6101556102a736600461113e565b6108bc565b3480156102b857600080fd5b506101f46102c736600461107e565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b3480156102f557600080fd5b5061030961030436600461104d565b610907565b60405161015f9190611185565b34801561032257600080fd5b50610336610331366004611199565b610931565b60405161015f929190611222565b34801561035057600080fd5b50610309610a89565b34801561036557600080fd5b506101c461037436600461107e565b6001600160a01b03166000908152600160208190526040909120015460ff1690565b3480156103a257600080fd5b506101f46103b136600461107e565b610ab6565b3480156103c257600080fd5b50600654610309906001600160a01b031681565b3480156103e257600080fd5b506101f46103f13660046110a2565b610b9c565b34801561040257600080fd5b5061015561041136600461104d565b610e9e565b34801561042257600080fd5b5061030961043136600461104d565b610eae565b34801561044257600080fd5b50600854610155565b34801561045757600080fd5b50600754610309906001600160a01b031681565b6009818154811061047b57600080fd5b600091825260209091200154905081565b6006546001600160a01b031633146105645760065460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b1580156104e357600080fd5b505afa1580156104f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051b9190611281565b9050336001600160a01b0382161461056257600654604051630739600760e01b81526105599133916001600160a01b0390911690849060040161129e565b60405180910390fd5b505b6001600160a01b0382166000818152600160208181526040928390209182015492518515158152919360ff90931692917f6675ce8882cb71637de5903a193d218cc0544be9c0650cb83e0955f6aa2bf521910160405180910390a28080156105c95750825b806105db5750801580156105db575082155b156105e65750505050565b821561067457604080518082018252600380548252600160208084018281526001600160a01b038a166000818152928490529582209451855551938201805460ff1916941515949094179093558154908101825591527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180546001600160a01b0319169091179055610790565b60038054610684906001906112c1565b81548110610694576106946112e6565b6000918252602090912001548254600380546001600160a01b039093169290919081106106c3576106c36112e6565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508160000154600160006003856000015481548110610711576107116112e6565b60009182526020808320909101546001600160a01b031683528201929092526040019020556003805480610747576107476112fc565b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b03861682526001908190526040822091825501805460ff191690555b50505b5050565b6006546001600160a01b031633146108665760065460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b1580156107ee57600080fd5b505afa158015610802573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108269190611281565b9050336001600160a01b0382161461086457600654604051630739600760e01b81526105599133916001600160a01b0390911690849060040161129e565b505b600780546001600160a01b0319166001600160a01b0383161790556040517f8c1e6003ed33ca6748d4ad3dd4ecc949065c89dceb31fdf546a5289202763c6a906108b1908390611185565b60405180910390a150565b3360009081526001602081905260408220015460ff166108f1573360405163b6c60ea360e01b81526004016105599190611185565b6108ff848443424887610ebe565b949350505050565b6004818154811061091757600080fd5b6000918252602090912001546001600160a01b0316905081565b3360009081526002602052604081206001015460609060ff1661096957336040516332ea82ab60e01b81526004016105599190611185565b821580159061098057506001600160a01b0386163b155b156109a0578560405163b5cf5b8f60e01b81526004016105599190611185565b600580546001600160a01b0319811633179091556040516001600160a01b039182169188169087906109d59088908890611312565b60006040518083038185875af1925050503d8060008114610a12576040519150601f19603f3d011682016040523d82523d6000602084013e610a17565b606091505b50600580546001600160a01b0319166001600160a01b038581169190911790915560405192955090935088169033907f2d9d115ef3e4a606d698913b1eae831a3cdfe20d9a83d48007b0526749c3d46690610a77908a908a908a90611322565b60405180910390a35094509492505050565b6005546000906001600160a01b039081161415610aa65750600090565b506005546001600160a01b031690565b600054610100900460ff16610ad15760005460ff1615610ad5565b303b155b610b385760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610559565b600054610100900460ff16158015610b5a576000805461ffff19166101011790555b600580546001600160a01b036001600160a01b03199182168117909255600680549091169184169190911790558015610793576000805461ff00191690555050565b6006546001600160a01b03163314610c6b5760065460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b158015610bf357600080fd5b505afa158015610c07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c2b9190611281565b9050336001600160a01b03821614610c6957600654604051630739600760e01b81526105599133916001600160a01b0390911690849060040161129e565b505b6001600160a01b038216600081815260026020908152604091829020600181015492518515158152909360ff90931692917f49477e7356dbcb654ab85d7534b50126772d938130d1350e23e2540370c8dffa910160405180910390a2808015610cd15750825b80610ce3575080158015610ce3575082155b15610cee5750505050565b8215610d7d57604080518082018252600480548252600160208084018281526001600160a01b038a16600081815260029093529582209451855551938201805460ff1916941515949094179093558154908101825591527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b0319169091179055610790565b60048054610d8d906001906112c1565b81548110610d9d57610d9d6112e6565b6000918252602090912001548254600480546001600160a01b03909316929091908110610dcc57610dcc6112e6565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508160000154600260006004856000015481548110610e1a57610e1a6112e6565b60009182526020808320909101546001600160a01b031683528201929092526040019020556004805480610e5057610e506112fc565b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b03861682526002905260408120908155600101805460ff1916905550505050565b6008818154811061047b57600080fd5b6003818154811061091757600080fd5b600854604080516001600160f81b031960f88a901b166020808301919091526bffffffffffffffffffffffff1960608a901b1660218301526001600160c01b031960c089811b8216603585015288901b16603d830152604582018490526065820186905260858083018690528351808403909101815260a590920190925280519101206000919060008215610f78576008610f5a6001856112c1565b81548110610f6a57610f6a6112e6565b906000526020600020015490505b6040805160208082018490528183018590528251808303840181526060830180855281519190920120600880546001810182556000919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3015533905260ff8c1660808201526001600160a01b038b1660a082015260c0810187905260e0810188905267ffffffffffffffff89166101008201529051829185917f5e3c1311ea442664e8b1611bfabef659120ea7a0a2cfc0667700bebc69cbffe1918190036101200190a3509098975050505050505050565b60006020828403121561105f57600080fd5b5035919050565b6001600160a01b038116811461107b57600080fd5b50565b60006020828403121561109057600080fd5b813561109b81611066565b9392505050565b600080604083850312156110b557600080fd5b82356110c081611066565b9150602083013580151581146110d557600080fd5b809150509250929050565b600080604083850312156110f357600080fd5b82356110fe81611066565b946020939093013593505050565b6000806000806080858703121561112257600080fd5b5050823594602084013594506040840135936060013592509050565b60008060006060848603121561115357600080fd5b833560ff8116811461116457600080fd5b9250602084013561117481611066565b929592945050506040919091013590565b6001600160a01b0391909116815260200190565b600080600080606085870312156111af57600080fd5b84356111ba81611066565b935060208501359250604085013567ffffffffffffffff808211156111de57600080fd5b818701915087601f8301126111f257600080fd5b81358181111561120157600080fd5b88602082850101111561121357600080fd5b95989497505060200194505050565b821515815260006020604081840152835180604085015260005b818110156112585785810183015185820160600152820161123c565b8181111561126a576000606083870101525b50601f01601f191692909201606001949350505050565b60006020828403121561129357600080fd5b815161109b81611066565b6001600160a01b0393841681529183166020830152909116604082015260600190565b6000828210156112e157634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b8183823760009101908152919050565b83815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f191601019291505056fea2646970667358221220ad04d5e95485e4279d0ecb7d099ec4cf61faeda210a8c32e45e8023b97f1e35b64736f6c63430008090033",
626
- "deployedBytecode": "0x6080604052600436106101385760003560e01c80639e5d4c49116100ab578063cee3d7281161006f578063cee3d728146103d6578063d5719dc2146103f6578063e76f5c8d14610416578063e77145f4146101f4578063eca067ad14610436578063ee35f3271461044b57600080fd5b80639e5d4c4914610316578063ab5d894314610344578063ae60bd1314610359578063c4d66de814610396578063cb23bcb5146103b657600080fd5b80635fca4a16116100fd5780635fca4a16146102165780637a88b1071461022c57806386598a561461024f5780638db5993b14610299578063919cc706146102ac578063945e1147146102e957600080fd5b806284120c1461014457806316bf557914610168578063413b35bd1461018857806347fb24c5146101d45780634f61f850146101f657600080fd5b3661013f57005b600080fd5b34801561015057600080fd5b506009545b6040519081526020015b60405180910390f35b34801561017457600080fd5b5061015561018336600461104d565b61046b565b34801561019457600080fd5b506101c46101a336600461107e565b6001600160a01b031660009081526002602052604090206001015460ff1690565b604051901515815260200161015f565b3480156101e057600080fd5b506101f46101ef3660046110a2565b61048c565b005b34801561020257600080fd5b506101f461021136600461107e565b610797565b34801561022257600080fd5b50610155600a5481565b34801561023857600080fd5b506101556102473660046110e0565b600092915050565b34801561025b57600080fd5b5061027961026a36600461110c565b50600093849350839250829150565b60408051948552602085019390935291830152606082015260800161015f565b6101556102a736600461113e565b6108bc565b3480156102b857600080fd5b506101f46102c736600461107e565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b3480156102f557600080fd5b5061030961030436600461104d565b610907565b60405161015f9190611185565b34801561032257600080fd5b50610336610331366004611199565b610931565b60405161015f929190611222565b34801561035057600080fd5b50610309610a89565b34801561036557600080fd5b506101c461037436600461107e565b6001600160a01b03166000908152600160208190526040909120015460ff1690565b3480156103a257600080fd5b506101f46103b136600461107e565b610ab6565b3480156103c257600080fd5b50600654610309906001600160a01b031681565b3480156103e257600080fd5b506101f46103f13660046110a2565b610b9c565b34801561040257600080fd5b5061015561041136600461104d565b610e9e565b34801561042257600080fd5b5061030961043136600461104d565b610eae565b34801561044257600080fd5b50600854610155565b34801561045757600080fd5b50600754610309906001600160a01b031681565b6009818154811061047b57600080fd5b600091825260209091200154905081565b6006546001600160a01b031633146105645760065460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b1580156104e357600080fd5b505afa1580156104f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051b9190611281565b9050336001600160a01b0382161461056257600654604051630739600760e01b81526105599133916001600160a01b0390911690849060040161129e565b60405180910390fd5b505b6001600160a01b0382166000818152600160208181526040928390209182015492518515158152919360ff90931692917f6675ce8882cb71637de5903a193d218cc0544be9c0650cb83e0955f6aa2bf521910160405180910390a28080156105c95750825b806105db5750801580156105db575082155b156105e65750505050565b821561067457604080518082018252600380548252600160208084018281526001600160a01b038a166000818152928490529582209451855551938201805460ff1916941515949094179093558154908101825591527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180546001600160a01b0319169091179055610790565b60038054610684906001906112c1565b81548110610694576106946112e6565b6000918252602090912001548254600380546001600160a01b039093169290919081106106c3576106c36112e6565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508160000154600160006003856000015481548110610711576107116112e6565b60009182526020808320909101546001600160a01b031683528201929092526040019020556003805480610747576107476112fc565b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b03861682526001908190526040822091825501805460ff191690555b50505b5050565b6006546001600160a01b031633146108665760065460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b1580156107ee57600080fd5b505afa158015610802573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108269190611281565b9050336001600160a01b0382161461086457600654604051630739600760e01b81526105599133916001600160a01b0390911690849060040161129e565b505b600780546001600160a01b0319166001600160a01b0383161790556040517f8c1e6003ed33ca6748d4ad3dd4ecc949065c89dceb31fdf546a5289202763c6a906108b1908390611185565b60405180910390a150565b3360009081526001602081905260408220015460ff166108f1573360405163b6c60ea360e01b81526004016105599190611185565b6108ff848443424887610ebe565b949350505050565b6004818154811061091757600080fd5b6000918252602090912001546001600160a01b0316905081565b3360009081526002602052604081206001015460609060ff1661096957336040516332ea82ab60e01b81526004016105599190611185565b821580159061098057506001600160a01b0386163b155b156109a0578560405163b5cf5b8f60e01b81526004016105599190611185565b600580546001600160a01b0319811633179091556040516001600160a01b039182169188169087906109d59088908890611312565b60006040518083038185875af1925050503d8060008114610a12576040519150601f19603f3d011682016040523d82523d6000602084013e610a17565b606091505b50600580546001600160a01b0319166001600160a01b038581169190911790915560405192955090935088169033907f2d9d115ef3e4a606d698913b1eae831a3cdfe20d9a83d48007b0526749c3d46690610a77908a908a908a90611322565b60405180910390a35094509492505050565b6005546000906001600160a01b039081161415610aa65750600090565b506005546001600160a01b031690565b600054610100900460ff16610ad15760005460ff1615610ad5565b303b155b610b385760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610559565b600054610100900460ff16158015610b5a576000805461ffff19166101011790555b600580546001600160a01b036001600160a01b03199182168117909255600680549091169184169190911790558015610793576000805461ff00191690555050565b6006546001600160a01b03163314610c6b5760065460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b158015610bf357600080fd5b505afa158015610c07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c2b9190611281565b9050336001600160a01b03821614610c6957600654604051630739600760e01b81526105599133916001600160a01b0390911690849060040161129e565b505b6001600160a01b038216600081815260026020908152604091829020600181015492518515158152909360ff90931692917f49477e7356dbcb654ab85d7534b50126772d938130d1350e23e2540370c8dffa910160405180910390a2808015610cd15750825b80610ce3575080158015610ce3575082155b15610cee5750505050565b8215610d7d57604080518082018252600480548252600160208084018281526001600160a01b038a16600081815260029093529582209451855551938201805460ff1916941515949094179093558154908101825591527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b0319169091179055610790565b60048054610d8d906001906112c1565b81548110610d9d57610d9d6112e6565b6000918252602090912001548254600480546001600160a01b03909316929091908110610dcc57610dcc6112e6565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508160000154600260006004856000015481548110610e1a57610e1a6112e6565b60009182526020808320909101546001600160a01b031683528201929092526040019020556004805480610e5057610e506112fc565b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b03861682526002905260408120908155600101805460ff1916905550505050565b6008818154811061047b57600080fd5b6003818154811061091757600080fd5b600854604080516001600160f81b031960f88a901b166020808301919091526bffffffffffffffffffffffff1960608a901b1660218301526001600160c01b031960c089811b8216603585015288901b16603d830152604582018490526065820186905260858083018690528351808403909101815260a590920190925280519101206000919060008215610f78576008610f5a6001856112c1565b81548110610f6a57610f6a6112e6565b906000526020600020015490505b6040805160208082018490528183018590528251808303840181526060830180855281519190920120600880546001810182556000919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3015533905260ff8c1660808201526001600160a01b038b1660a082015260c0810187905260e0810188905267ffffffffffffffff89166101008201529051829185917f5e3c1311ea442664e8b1611bfabef659120ea7a0a2cfc0667700bebc69cbffe1918190036101200190a3509098975050505050505050565b60006020828403121561105f57600080fd5b5035919050565b6001600160a01b038116811461107b57600080fd5b50565b60006020828403121561109057600080fd5b813561109b81611066565b9392505050565b600080604083850312156110b557600080fd5b82356110c081611066565b9150602083013580151581146110d557600080fd5b809150509250929050565b600080604083850312156110f357600080fd5b82356110fe81611066565b946020939093013593505050565b6000806000806080858703121561112257600080fd5b5050823594602084013594506040840135936060013592509050565b60008060006060848603121561115357600080fd5b833560ff8116811461116457600080fd5b9250602084013561117481611066565b929592945050506040919091013590565b6001600160a01b0391909116815260200190565b600080600080606085870312156111af57600080fd5b84356111ba81611066565b935060208501359250604085013567ffffffffffffffff808211156111de57600080fd5b818701915087601f8301126111f257600080fd5b81358181111561120157600080fd5b88602082850101111561121357600080fd5b95989497505060200194505050565b821515815260006020604081840152835180604085015260005b818110156112585785810183015185820160600152820161123c565b8181111561126a576000606083870101525b50601f01601f191692909201606001949350505050565b60006020828403121561129357600080fd5b815161109b81611066565b6001600160a01b0393841681529183166020830152909116604082015260600190565b6000828210156112e157634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b8183823760009101908152919050565b83815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f191601019291505056fea2646970667358221220ad04d5e95485e4279d0ecb7d099ec4cf61faeda210a8c32e45e8023b97f1e35b64736f6c63430008090033",
625
+ "bytecode": "0x60a06040523060805234801561001457600080fd5b5060805161138e61002d6000396000505061138e6000f3fe6080604052600436106101385760003560e01c80639e5d4c49116100ab578063cee3d7281161006f578063cee3d728146103d6578063d5719dc2146103f6578063e76f5c8d14610416578063e77145f4146101f4578063eca067ad14610436578063ee35f3271461044b57600080fd5b80639e5d4c4914610316578063ab5d894314610344578063ae60bd1314610359578063c4d66de814610396578063cb23bcb5146103b657600080fd5b80635fca4a16116100fd5780635fca4a16146102165780637a88b1071461022c57806386598a561461024f5780638db5993b14610299578063919cc706146102ac578063945e1147146102e957600080fd5b806284120c1461014457806316bf557914610168578063413b35bd1461018857806347fb24c5146101d45780634f61f850146101f657600080fd5b3661013f57005b600080fd5b34801561015057600080fd5b506009545b6040519081526020015b60405180910390f35b34801561017457600080fd5b5061015561018336600461104d565b61046b565b34801561019457600080fd5b506101c46101a336600461107e565b6001600160a01b031660009081526002602052604090206001015460ff1690565b604051901515815260200161015f565b3480156101e057600080fd5b506101f46101ef3660046110a2565b61048c565b005b34801561020257600080fd5b506101f461021136600461107e565b610797565b34801561022257600080fd5b50610155600a5481565b34801561023857600080fd5b506101556102473660046110e0565b600092915050565b34801561025b57600080fd5b5061027961026a36600461110c565b50600093849350839250829150565b60408051948552602085019390935291830152606082015260800161015f565b6101556102a736600461113e565b6108bc565b3480156102b857600080fd5b506101f46102c736600461107e565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b3480156102f557600080fd5b5061030961030436600461104d565b610907565b60405161015f9190611185565b34801561032257600080fd5b50610336610331366004611199565b610931565b60405161015f929190611222565b34801561035057600080fd5b50610309610a89565b34801561036557600080fd5b506101c461037436600461107e565b6001600160a01b03166000908152600160208190526040909120015460ff1690565b3480156103a257600080fd5b506101f46103b136600461107e565b610ab6565b3480156103c257600080fd5b50600654610309906001600160a01b031681565b3480156103e257600080fd5b506101f46103f13660046110a2565b610b9c565b34801561040257600080fd5b5061015561041136600461104d565b610e9e565b34801561042257600080fd5b5061030961043136600461104d565b610eae565b34801561044257600080fd5b50600854610155565b34801561045757600080fd5b50600754610309906001600160a01b031681565b6009818154811061047b57600080fd5b600091825260209091200154905081565b6006546001600160a01b031633146105645760065460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b1580156104e357600080fd5b505afa1580156104f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051b9190611281565b9050336001600160a01b0382161461056257600654604051630739600760e01b81526105599133916001600160a01b0390911690849060040161129e565b60405180910390fd5b505b6001600160a01b0382166000818152600160208181526040928390209182015492518515158152919360ff90931692917f6675ce8882cb71637de5903a193d218cc0544be9c0650cb83e0955f6aa2bf521910160405180910390a28080156105c95750825b806105db5750801580156105db575082155b156105e65750505050565b821561067457604080518082018252600380548252600160208084018281526001600160a01b038a166000818152928490529582209451855551938201805460ff1916941515949094179093558154908101825591527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180546001600160a01b0319169091179055610790565b60038054610684906001906112c1565b81548110610694576106946112e6565b6000918252602090912001548254600380546001600160a01b039093169290919081106106c3576106c36112e6565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508160000154600160006003856000015481548110610711576107116112e6565b60009182526020808320909101546001600160a01b031683528201929092526040019020556003805480610747576107476112fc565b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b03861682526001908190526040822091825501805460ff191690555b50505b5050565b6006546001600160a01b031633146108665760065460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b1580156107ee57600080fd5b505afa158015610802573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108269190611281565b9050336001600160a01b0382161461086457600654604051630739600760e01b81526105599133916001600160a01b0390911690849060040161129e565b505b600780546001600160a01b0319166001600160a01b0383161790556040517f8c1e6003ed33ca6748d4ad3dd4ecc949065c89dceb31fdf546a5289202763c6a906108b1908390611185565b60405180910390a150565b3360009081526001602081905260408220015460ff166108f1573360405163b6c60ea360e01b81526004016105599190611185565b6108ff848443424887610ebe565b949350505050565b6004818154811061091757600080fd5b6000918252602090912001546001600160a01b0316905081565b3360009081526002602052604081206001015460609060ff1661096957336040516332ea82ab60e01b81526004016105599190611185565b821580159061098057506001600160a01b0386163b155b156109a0578560405163b5cf5b8f60e01b81526004016105599190611185565b600580546001600160a01b0319811633179091556040516001600160a01b039182169188169087906109d59088908890611312565b60006040518083038185875af1925050503d8060008114610a12576040519150601f19603f3d011682016040523d82523d6000602084013e610a17565b606091505b50600580546001600160a01b0319166001600160a01b038581169190911790915560405192955090935088169033907f2d9d115ef3e4a606d698913b1eae831a3cdfe20d9a83d48007b0526749c3d46690610a77908a908a908a90611322565b60405180910390a35094509492505050565b6005546000906001600160a01b039081161415610aa65750600090565b506005546001600160a01b031690565b600054610100900460ff16610ad15760005460ff1615610ad5565b303b155b610b385760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610559565b600054610100900460ff16158015610b5a576000805461ffff19166101011790555b600580546001600160a01b036001600160a01b03199182168117909255600680549091169184169190911790558015610793576000805461ff00191690555050565b6006546001600160a01b03163314610c6b5760065460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b158015610bf357600080fd5b505afa158015610c07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c2b9190611281565b9050336001600160a01b03821614610c6957600654604051630739600760e01b81526105599133916001600160a01b0390911690849060040161129e565b505b6001600160a01b038216600081815260026020908152604091829020600181015492518515158152909360ff90931692917f49477e7356dbcb654ab85d7534b50126772d938130d1350e23e2540370c8dffa910160405180910390a2808015610cd15750825b80610ce3575080158015610ce3575082155b15610cee5750505050565b8215610d7d57604080518082018252600480548252600160208084018281526001600160a01b038a16600081815260029093529582209451855551938201805460ff1916941515949094179093558154908101825591527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b0319169091179055610790565b60048054610d8d906001906112c1565b81548110610d9d57610d9d6112e6565b6000918252602090912001548254600480546001600160a01b03909316929091908110610dcc57610dcc6112e6565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508160000154600260006004856000015481548110610e1a57610e1a6112e6565b60009182526020808320909101546001600160a01b031683528201929092526040019020556004805480610e5057610e506112fc565b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b03861682526002905260408120908155600101805460ff1916905550505050565b6008818154811061047b57600080fd5b6003818154811061091757600080fd5b600854604080516001600160f81b031960f88a901b166020808301919091526bffffffffffffffffffffffff1960608a901b1660218301526001600160c01b031960c089811b8216603585015288901b16603d830152604582018490526065820186905260858083018690528351808403909101815260a590920190925280519101206000919060008215610f78576008610f5a6001856112c1565b81548110610f6a57610f6a6112e6565b906000526020600020015490505b6040805160208082018490528183018590528251808303840181526060830180855281519190920120600880546001810182556000919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3015533905260ff8c1660808201526001600160a01b038b1660a082015260c0810187905260e0810188905267ffffffffffffffff89166101008201529051829185917f5e3c1311ea442664e8b1611bfabef659120ea7a0a2cfc0667700bebc69cbffe1918190036101200190a3509098975050505050505050565b60006020828403121561105f57600080fd5b5035919050565b6001600160a01b038116811461107b57600080fd5b50565b60006020828403121561109057600080fd5b813561109b81611066565b9392505050565b600080604083850312156110b557600080fd5b82356110c081611066565b9150602083013580151581146110d557600080fd5b809150509250929050565b600080604083850312156110f357600080fd5b82356110fe81611066565b946020939093013593505050565b6000806000806080858703121561112257600080fd5b5050823594602084013594506040840135936060013592509050565b60008060006060848603121561115357600080fd5b833560ff8116811461116457600080fd5b9250602084013561117481611066565b929592945050506040919091013590565b6001600160a01b0391909116815260200190565b600080600080606085870312156111af57600080fd5b84356111ba81611066565b935060208501359250604085013567ffffffffffffffff808211156111de57600080fd5b818701915087601f8301126111f257600080fd5b81358181111561120157600080fd5b88602082850101111561121357600080fd5b95989497505060200194505050565b821515815260006020604081840152835180604085015260005b818110156112585785810183015185820160600152820161123c565b8181111561126a576000606083870101525b50601f01601f191692909201606001949350505050565b60006020828403121561129357600080fd5b815161109b81611066565b6001600160a01b0393841681529183166020830152909116604082015260600190565b6000828210156112e157634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b8183823760009101908152919050565b83815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f191601019291505056fea26469706673582212200222d1d4c0f68ae17395bf00cd2960d3d1a4659dc906f1affe50de5af307abb664736f6c63430008090033",
626
+ "deployedBytecode": "0x6080604052600436106101385760003560e01c80639e5d4c49116100ab578063cee3d7281161006f578063cee3d728146103d6578063d5719dc2146103f6578063e76f5c8d14610416578063e77145f4146101f4578063eca067ad14610436578063ee35f3271461044b57600080fd5b80639e5d4c4914610316578063ab5d894314610344578063ae60bd1314610359578063c4d66de814610396578063cb23bcb5146103b657600080fd5b80635fca4a16116100fd5780635fca4a16146102165780637a88b1071461022c57806386598a561461024f5780638db5993b14610299578063919cc706146102ac578063945e1147146102e957600080fd5b806284120c1461014457806316bf557914610168578063413b35bd1461018857806347fb24c5146101d45780634f61f850146101f657600080fd5b3661013f57005b600080fd5b34801561015057600080fd5b506009545b6040519081526020015b60405180910390f35b34801561017457600080fd5b5061015561018336600461104d565b61046b565b34801561019457600080fd5b506101c46101a336600461107e565b6001600160a01b031660009081526002602052604090206001015460ff1690565b604051901515815260200161015f565b3480156101e057600080fd5b506101f46101ef3660046110a2565b61048c565b005b34801561020257600080fd5b506101f461021136600461107e565b610797565b34801561022257600080fd5b50610155600a5481565b34801561023857600080fd5b506101556102473660046110e0565b600092915050565b34801561025b57600080fd5b5061027961026a36600461110c565b50600093849350839250829150565b60408051948552602085019390935291830152606082015260800161015f565b6101556102a736600461113e565b6108bc565b3480156102b857600080fd5b506101f46102c736600461107e565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b3480156102f557600080fd5b5061030961030436600461104d565b610907565b60405161015f9190611185565b34801561032257600080fd5b50610336610331366004611199565b610931565b60405161015f929190611222565b34801561035057600080fd5b50610309610a89565b34801561036557600080fd5b506101c461037436600461107e565b6001600160a01b03166000908152600160208190526040909120015460ff1690565b3480156103a257600080fd5b506101f46103b136600461107e565b610ab6565b3480156103c257600080fd5b50600654610309906001600160a01b031681565b3480156103e257600080fd5b506101f46103f13660046110a2565b610b9c565b34801561040257600080fd5b5061015561041136600461104d565b610e9e565b34801561042257600080fd5b5061030961043136600461104d565b610eae565b34801561044257600080fd5b50600854610155565b34801561045757600080fd5b50600754610309906001600160a01b031681565b6009818154811061047b57600080fd5b600091825260209091200154905081565b6006546001600160a01b031633146105645760065460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b1580156104e357600080fd5b505afa1580156104f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051b9190611281565b9050336001600160a01b0382161461056257600654604051630739600760e01b81526105599133916001600160a01b0390911690849060040161129e565b60405180910390fd5b505b6001600160a01b0382166000818152600160208181526040928390209182015492518515158152919360ff90931692917f6675ce8882cb71637de5903a193d218cc0544be9c0650cb83e0955f6aa2bf521910160405180910390a28080156105c95750825b806105db5750801580156105db575082155b156105e65750505050565b821561067457604080518082018252600380548252600160208084018281526001600160a01b038a166000818152928490529582209451855551938201805460ff1916941515949094179093558154908101825591527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180546001600160a01b0319169091179055610790565b60038054610684906001906112c1565b81548110610694576106946112e6565b6000918252602090912001548254600380546001600160a01b039093169290919081106106c3576106c36112e6565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508160000154600160006003856000015481548110610711576107116112e6565b60009182526020808320909101546001600160a01b031683528201929092526040019020556003805480610747576107476112fc565b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b03861682526001908190526040822091825501805460ff191690555b50505b5050565b6006546001600160a01b031633146108665760065460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b1580156107ee57600080fd5b505afa158015610802573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108269190611281565b9050336001600160a01b0382161461086457600654604051630739600760e01b81526105599133916001600160a01b0390911690849060040161129e565b505b600780546001600160a01b0319166001600160a01b0383161790556040517f8c1e6003ed33ca6748d4ad3dd4ecc949065c89dceb31fdf546a5289202763c6a906108b1908390611185565b60405180910390a150565b3360009081526001602081905260408220015460ff166108f1573360405163b6c60ea360e01b81526004016105599190611185565b6108ff848443424887610ebe565b949350505050565b6004818154811061091757600080fd5b6000918252602090912001546001600160a01b0316905081565b3360009081526002602052604081206001015460609060ff1661096957336040516332ea82ab60e01b81526004016105599190611185565b821580159061098057506001600160a01b0386163b155b156109a0578560405163b5cf5b8f60e01b81526004016105599190611185565b600580546001600160a01b0319811633179091556040516001600160a01b039182169188169087906109d59088908890611312565b60006040518083038185875af1925050503d8060008114610a12576040519150601f19603f3d011682016040523d82523d6000602084013e610a17565b606091505b50600580546001600160a01b0319166001600160a01b038581169190911790915560405192955090935088169033907f2d9d115ef3e4a606d698913b1eae831a3cdfe20d9a83d48007b0526749c3d46690610a77908a908a908a90611322565b60405180910390a35094509492505050565b6005546000906001600160a01b039081161415610aa65750600090565b506005546001600160a01b031690565b600054610100900460ff16610ad15760005460ff1615610ad5565b303b155b610b385760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610559565b600054610100900460ff16158015610b5a576000805461ffff19166101011790555b600580546001600160a01b036001600160a01b03199182168117909255600680549091169184169190911790558015610793576000805461ff00191690555050565b6006546001600160a01b03163314610c6b5760065460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b158015610bf357600080fd5b505afa158015610c07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c2b9190611281565b9050336001600160a01b03821614610c6957600654604051630739600760e01b81526105599133916001600160a01b0390911690849060040161129e565b505b6001600160a01b038216600081815260026020908152604091829020600181015492518515158152909360ff90931692917f49477e7356dbcb654ab85d7534b50126772d938130d1350e23e2540370c8dffa910160405180910390a2808015610cd15750825b80610ce3575080158015610ce3575082155b15610cee5750505050565b8215610d7d57604080518082018252600480548252600160208084018281526001600160a01b038a16600081815260029093529582209451855551938201805460ff1916941515949094179093558154908101825591527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b0319169091179055610790565b60048054610d8d906001906112c1565b81548110610d9d57610d9d6112e6565b6000918252602090912001548254600480546001600160a01b03909316929091908110610dcc57610dcc6112e6565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508160000154600260006004856000015481548110610e1a57610e1a6112e6565b60009182526020808320909101546001600160a01b031683528201929092526040019020556004805480610e5057610e506112fc565b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b03861682526002905260408120908155600101805460ff1916905550505050565b6008818154811061047b57600080fd5b6003818154811061091757600080fd5b600854604080516001600160f81b031960f88a901b166020808301919091526bffffffffffffffffffffffff1960608a901b1660218301526001600160c01b031960c089811b8216603585015288901b16603d830152604582018490526065820186905260858083018690528351808403909101815260a590920190925280519101206000919060008215610f78576008610f5a6001856112c1565b81548110610f6a57610f6a6112e6565b906000526020600020015490505b6040805160208082018490528183018590528251808303840181526060830180855281519190920120600880546001810182556000919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3015533905260ff8c1660808201526001600160a01b038b1660a082015260c0810187905260e0810188905267ffffffffffffffff89166101008201529051829185917f5e3c1311ea442664e8b1611bfabef659120ea7a0a2cfc0667700bebc69cbffe1918190036101200190a3509098975050505050505050565b60006020828403121561105f57600080fd5b5035919050565b6001600160a01b038116811461107b57600080fd5b50565b60006020828403121561109057600080fd5b813561109b81611066565b9392505050565b600080604083850312156110b557600080fd5b82356110c081611066565b9150602083013580151581146110d557600080fd5b809150509250929050565b600080604083850312156110f357600080fd5b82356110fe81611066565b946020939093013593505050565b6000806000806080858703121561112257600080fd5b5050823594602084013594506040840135936060013592509050565b60008060006060848603121561115357600080fd5b833560ff8116811461116457600080fd5b9250602084013561117481611066565b929592945050506040919091013590565b6001600160a01b0391909116815260200190565b600080600080606085870312156111af57600080fd5b84356111ba81611066565b935060208501359250604085013567ffffffffffffffff808211156111de57600080fd5b818701915087601f8301126111f257600080fd5b81358181111561120157600080fd5b88602082850101111561121357600080fd5b95989497505060200194505050565b821515815260006020604081840152835180604085015260005b818110156112585785810183015185820160600152820161123c565b8181111561126a576000606083870101525b50601f01601f191692909201606001949350505050565b60006020828403121561129357600080fd5b815161109b81611066565b6001600160a01b0393841681529183166020830152909116604082015260600190565b6000828210156112e157634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b8183823760009101908152919050565b83815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f191601019291505056fea26469706673582212200222d1d4c0f68ae17395bf00cd2960d3d1a4659dc906f1affe50de5af307abb664736f6c63430008090033",
627
627
  "linkReferences": {},
628
628
  "deployedLinkReferences": {}
629
629
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/06c4d509e20993c3089a7fd027c7b28b.json"
3
+ "buildInfo": "../../../build-info/239eb2848a7b622fb5b92eeb732909cf.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/06c4d509e20993c3089a7fd027c7b28b.json"
3
+ "buildInfo": "../../../build-info/239eb2848a7b622fb5b92eeb732909cf.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/06c4d509e20993c3089a7fd027c7b28b.json"
3
+ "buildInfo": "../../../build-info/239eb2848a7b622fb5b92eeb732909cf.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/06c4d509e20993c3089a7fd027c7b28b.json"
3
+ "buildInfo": "../../../build-info/239eb2848a7b622fb5b92eeb732909cf.json"
4
4
  }
@@ -543,8 +543,8 @@
543
543
  "type": "function"
544
544
  }
545
545
  ],
546
- "bytecode": "0x60a06040523060805234801561001457600080fd5b5060805161130b61003060003960006106a2015261130b6000f3fe608060405234801561001057600080fd5b506004361061012b5760003560e01c806395fcea78116100ad578063c4d66de811610071578063c4d66de81461026d578063c75184df14610280578063cb23bcb5146102a0578063d5b5cc23146102b3578063e78cea92146102c657600080fd5b806395fcea78146101695780639f0c04bf14610216578063a04cee6014610229578063ae6dead71461023c578063b0f305371461025c57600080fd5b80635a129efe116100f45780635a129efe146101965780636ae71f12146101c957806372f2a8c7146101d157806380648b02146101d95780638515bc6a146101fe57600080fd5b80627436d31461013057806308635a9514610156578063119852711461016b578063288e5b10146101725780634654779014610185575b600080fd5b61014361013e366004610c79565b6102d9565b6040519081526020015b60405180910390f35b610169610164366004610d9e565b610316565b005b6000610143565b610169610180366004610e92565b610658565b6004546001600160801b0316610143565b6101b96101a4366004610f2d565b60026020526000908152604090205460ff1681565b604051901515815260200161014d565b610169610697565b600654610143565b6007546001600160a01b03165b6040516001600160a01b03909116815260200161014d565b600454600160801b90046001600160801b0316610143565b610143610224366004610f46565b61082c565b610169610237366004610fd4565b610871565b61014361024a366004610f2d565b60036020526000908152604090205481565b6005546001600160801b0316610143565b61016961027b366004610ff6565b6108b0565b610288600281565b6040516001600160801b03909116815260200161014d565b6000546101e6906001600160a01b031681565b6101436102c1366004610f2d565b610989565b6001546101e6906001600160a01b031681565b600061030e8484846040516020016102f391815260200190565b604051602081830303815290604052805190602001206109c5565b949350505050565b6000806103298a8a8a8a8a8a8a8a61082c565b905061036b8d8d808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508f9250859150610a689050565b915060008a6001600160a01b03168a6001600160a01b03167f20af7f3bbfe38132b8900ae295cd9c8d1914be7052d061a511f3f728dab189648e6040516103b491815260200190565b60405180910390a450600060046040518060a00160405290816000820160009054906101000a90046001600160801b03166001600160801b03166001600160801b031681526020016000820160109054906101000a90046001600160801b03166001600160801b03166001600160801b031681526020016001820160009054906101000a90046001600160801b03166001600160801b03166001600160801b03168152602001600282015481526020016003820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152505090506040518060a00160405280896001600160801b03168152602001886001600160801b03168152602001876001600160801b031681526020018381526020018b6001600160a01b0316815250600460008201518160000160006101000a8154816001600160801b0302191690836001600160801b0316021790555060208201518160000160106101000a8154816001600160801b0302191690836001600160801b0316021790555060408201518160010160006101000a8154816001600160801b0302191690836001600160801b031602179055506060820151816002015560808201518160030160006101000a8154816001600160a01b0302191690836001600160a01b031602179055509050506105e3898686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610b6b92505050565b805160208201516001600160801b03918216600160801b91831691909102176004556040820151600580546001600160801b03191691909216179055606081015160065560800151600780546001600160a01b0319166001600160a01b03909216919091179055505050505050505050505050565b60405162461bcd60e51b815260206004820152600f60248201526e139bdd081a5b5c1b195b595b9d1959608a1b60448201526064015b60405180910390fd5b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156107255760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b606482015260840161068e565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61038054336001600160a01b0382161461078257604051631194af8760e11b81523360048201526001600160a01b038216602482015260440161068e565b600160009054906101000a90046001600160a01b03166001600160a01b031663cb23bcb56040518163ffffffff1660e01b815260040160206040518083038186803b1580156107d057600080fd5b505afa1580156107e4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610808919061101a565b600080546001600160a01b0319166001600160a01b03929092169190911790555050565b6000888888888888888860405160200161084d989796959493929190611037565b60405160208183030381529060405280519060200120905098975050505050505050565b60008281526003602052604080822083905551829184917fb4df3847300f076a369cd76d2314b470a1194d9e8a6bb97f1860aee88a5f67489190a35050565b6001546001600160a01b0316156108da57604051633bcd329760e21b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040805163cb23bcb560e01b8152905163cb23bcb591600480820192602092909190829003018186803b15801561092e57600080fd5b505afa158015610942573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610966919061101a565b600080546001600160a01b0319166001600160a01b039290921691909117905550565b60405162461bcd60e51b815260206004820152600e60248201526d1393d517d253541311535155115160921b604482015260009060640161068e565b82516000906101008111156109f857604051637ed6198f60e11b815260048101829052610100602482015260440161068e565b8260005b82811015610a5e576000878281518110610a1857610a18611090565b60200260200101519050816001901b871660001415610a4557826000528060205260406000209250610a55565b8060005282602052604060002092505b506001016109fc565b5095945050505050565b6000610100845110610a9257835160405163ab6a068360e01b815260040161068e91815260200190565b8351610a9f9060026111a2565b8310610ad6578284516002610ab491906111a2565b604051630b8a724b60e01b81526004810192909252602482015260440161068e565b6000610ae38585856102d9565b600081815260036020526040902054909150610b15576040516310e61af960e31b81526004810182905260240161068e565b60008481526002602052604090205460ff1615610b4857604051639715b8d360e01b81526004810185905260240161068e565b50506000828152600260205260409020805460ff19166001179055819392505050565b600154604051639e5d4c4960e01b815260009182916001600160a01b0390911690639e5d4c4990610ba4908890889088906004016111de565b600060405180830381600087803b158015610bbe57600080fd5b505af1158015610bd2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610bfa9190810190611227565b9150915081610c2c57805115610c135780518082602001fd5b604051631bb7daad60e11b815260040160405180910390fd5b5050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715610c7157610c71610c33565b604052919050565b600080600060608486031215610c8e57600080fd5b83356001600160401b0380821115610ca557600080fd5b818601915086601f830112610cb957600080fd5b8135602082821115610ccd57610ccd610c33565b8160051b9250610cde818401610c49565b828152928401810192818101908a851115610cf857600080fd5b948201945b84861015610d1657853582529482019490820190610cfd565b9a918901359950506040909701359695505050505050565b6001600160a01b0381168114610d4357600080fd5b50565b8035610d5181610d2e565b919050565b60008083601f840112610d6857600080fd5b5081356001600160401b03811115610d7f57600080fd5b602083019150836020828501011115610d9757600080fd5b9250929050565b60008060008060008060008060008060006101208c8e031215610dc057600080fd5b8b356001600160401b0380821115610dd757600080fd5b818e0191508e601f830112610deb57600080fd5b813581811115610dfa57600080fd5b8f60208260051b8501011115610e0f57600080fd5b60208381019e50909c508e01359a50610e2a60408f01610d46565b9950610e3860608f01610d46565b985060808e0135975060a08e0135965060c08e0135955060e08e013594506101008e0135915080821115610e6b57600080fd5b50610e788e828f01610d56565b915080935050809150509295989b509295989b9093969950565b60008060008060008060008060006101008a8c031215610eb157600080fd5b8935985060208a0135610ec381610d2e565b975060408a0135610ed381610d2e565b965060608a0135955060808a0135945060a08a0135935060c08a0135925060e08a01356001600160401b03811115610f0a57600080fd5b610f168c828d01610d56565b915080935050809150509295985092959850929598565b600060208284031215610f3f57600080fd5b5035919050565b60008060008060008060008060e0898b031215610f6257600080fd5b8835610f6d81610d2e565b97506020890135610f7d81610d2e565b965060408901359550606089013594506080890135935060a0890135925060c08901356001600160401b03811115610fb457600080fd5b610fc08b828c01610d56565b999c989b5096995094979396929594505050565b60008060408385031215610fe757600080fd5b50508035926020909101359150565b60006020828403121561100857600080fd5b813561101381610d2e565b9392505050565b60006020828403121561102c57600080fd5b815161101381610d2e565b60006bffffffffffffffffffffffff19808b60601b168352808a60601b16601484015250876028830152866048830152856068830152846088830152828460a8840137506000910160a801908152979650505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600181815b808511156110f75781600019048211156110dd576110dd6110a6565b808516156110ea57918102915b93841c93908002906110c1565b509250929050565b60008261110e5750600161119c565b8161111b5750600061119c565b8160018114611131576002811461113b57611157565b600191505061119c565b60ff84111561114c5761114c6110a6565b50506001821b61119c565b5060208310610133831016604e8410600b841016171561117a575081810a61119c565b61118483836110bc565b8060001904821115611198576111986110a6565b0290505b92915050565b600061101383836110ff565b60005b838110156111c95781810151838201526020016111b1565b838111156111d8576000848401525b50505050565b60018060a01b038416815282602082015260606040820152600082518060608401526112118160808501602087016111ae565b601f01601f191691909101608001949350505050565b6000806040838503121561123a57600080fd5b8251801515811461124a57600080fd5b60208401519092506001600160401b038082111561126757600080fd5b818501915085601f83011261127b57600080fd5b81518181111561128d5761128d610c33565b6112a0601f8201601f1916602001610c49565b91508082528660208285010111156112b757600080fd5b6112c88160208401602086016111ae565b508092505050925092905056fea264697066735822122096119f7767ee3817d68a64e1be82a615729646723b41aec60c93c91cbe221a7c64736f6c63430008090033",
547
- "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061012b5760003560e01c806395fcea78116100ad578063c4d66de811610071578063c4d66de81461026d578063c75184df14610280578063cb23bcb5146102a0578063d5b5cc23146102b3578063e78cea92146102c657600080fd5b806395fcea78146101695780639f0c04bf14610216578063a04cee6014610229578063ae6dead71461023c578063b0f305371461025c57600080fd5b80635a129efe116100f45780635a129efe146101965780636ae71f12146101c957806372f2a8c7146101d157806380648b02146101d95780638515bc6a146101fe57600080fd5b80627436d31461013057806308635a9514610156578063119852711461016b578063288e5b10146101725780634654779014610185575b600080fd5b61014361013e366004610c79565b6102d9565b6040519081526020015b60405180910390f35b610169610164366004610d9e565b610316565b005b6000610143565b610169610180366004610e92565b610658565b6004546001600160801b0316610143565b6101b96101a4366004610f2d565b60026020526000908152604090205460ff1681565b604051901515815260200161014d565b610169610697565b600654610143565b6007546001600160a01b03165b6040516001600160a01b03909116815260200161014d565b600454600160801b90046001600160801b0316610143565b610143610224366004610f46565b61082c565b610169610237366004610fd4565b610871565b61014361024a366004610f2d565b60036020526000908152604090205481565b6005546001600160801b0316610143565b61016961027b366004610ff6565b6108b0565b610288600281565b6040516001600160801b03909116815260200161014d565b6000546101e6906001600160a01b031681565b6101436102c1366004610f2d565b610989565b6001546101e6906001600160a01b031681565b600061030e8484846040516020016102f391815260200190565b604051602081830303815290604052805190602001206109c5565b949350505050565b6000806103298a8a8a8a8a8a8a8a61082c565b905061036b8d8d808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508f9250859150610a689050565b915060008a6001600160a01b03168a6001600160a01b03167f20af7f3bbfe38132b8900ae295cd9c8d1914be7052d061a511f3f728dab189648e6040516103b491815260200190565b60405180910390a450600060046040518060a00160405290816000820160009054906101000a90046001600160801b03166001600160801b03166001600160801b031681526020016000820160109054906101000a90046001600160801b03166001600160801b03166001600160801b031681526020016001820160009054906101000a90046001600160801b03166001600160801b03166001600160801b03168152602001600282015481526020016003820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152505090506040518060a00160405280896001600160801b03168152602001886001600160801b03168152602001876001600160801b031681526020018381526020018b6001600160a01b0316815250600460008201518160000160006101000a8154816001600160801b0302191690836001600160801b0316021790555060208201518160000160106101000a8154816001600160801b0302191690836001600160801b0316021790555060408201518160010160006101000a8154816001600160801b0302191690836001600160801b031602179055506060820151816002015560808201518160030160006101000a8154816001600160a01b0302191690836001600160a01b031602179055509050506105e3898686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610b6b92505050565b805160208201516001600160801b03918216600160801b91831691909102176004556040820151600580546001600160801b03191691909216179055606081015160065560800151600780546001600160a01b0319166001600160a01b03909216919091179055505050505050505050505050565b60405162461bcd60e51b815260206004820152600f60248201526e139bdd081a5b5c1b195b595b9d1959608a1b60448201526064015b60405180910390fd5b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156107255760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b606482015260840161068e565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61038054336001600160a01b0382161461078257604051631194af8760e11b81523360048201526001600160a01b038216602482015260440161068e565b600160009054906101000a90046001600160a01b03166001600160a01b031663cb23bcb56040518163ffffffff1660e01b815260040160206040518083038186803b1580156107d057600080fd5b505afa1580156107e4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610808919061101a565b600080546001600160a01b0319166001600160a01b03929092169190911790555050565b6000888888888888888860405160200161084d989796959493929190611037565b60405160208183030381529060405280519060200120905098975050505050505050565b60008281526003602052604080822083905551829184917fb4df3847300f076a369cd76d2314b470a1194d9e8a6bb97f1860aee88a5f67489190a35050565b6001546001600160a01b0316156108da57604051633bcd329760e21b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040805163cb23bcb560e01b8152905163cb23bcb591600480820192602092909190829003018186803b15801561092e57600080fd5b505afa158015610942573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610966919061101a565b600080546001600160a01b0319166001600160a01b039290921691909117905550565b60405162461bcd60e51b815260206004820152600e60248201526d1393d517d253541311535155115160921b604482015260009060640161068e565b82516000906101008111156109f857604051637ed6198f60e11b815260048101829052610100602482015260440161068e565b8260005b82811015610a5e576000878281518110610a1857610a18611090565b60200260200101519050816001901b871660001415610a4557826000528060205260406000209250610a55565b8060005282602052604060002092505b506001016109fc565b5095945050505050565b6000610100845110610a9257835160405163ab6a068360e01b815260040161068e91815260200190565b8351610a9f9060026111a2565b8310610ad6578284516002610ab491906111a2565b604051630b8a724b60e01b81526004810192909252602482015260440161068e565b6000610ae38585856102d9565b600081815260036020526040902054909150610b15576040516310e61af960e31b81526004810182905260240161068e565b60008481526002602052604090205460ff1615610b4857604051639715b8d360e01b81526004810185905260240161068e565b50506000828152600260205260409020805460ff19166001179055819392505050565b600154604051639e5d4c4960e01b815260009182916001600160a01b0390911690639e5d4c4990610ba4908890889088906004016111de565b600060405180830381600087803b158015610bbe57600080fd5b505af1158015610bd2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610bfa9190810190611227565b9150915081610c2c57805115610c135780518082602001fd5b604051631bb7daad60e11b815260040160405180910390fd5b5050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715610c7157610c71610c33565b604052919050565b600080600060608486031215610c8e57600080fd5b83356001600160401b0380821115610ca557600080fd5b818601915086601f830112610cb957600080fd5b8135602082821115610ccd57610ccd610c33565b8160051b9250610cde818401610c49565b828152928401810192818101908a851115610cf857600080fd5b948201945b84861015610d1657853582529482019490820190610cfd565b9a918901359950506040909701359695505050505050565b6001600160a01b0381168114610d4357600080fd5b50565b8035610d5181610d2e565b919050565b60008083601f840112610d6857600080fd5b5081356001600160401b03811115610d7f57600080fd5b602083019150836020828501011115610d9757600080fd5b9250929050565b60008060008060008060008060008060006101208c8e031215610dc057600080fd5b8b356001600160401b0380821115610dd757600080fd5b818e0191508e601f830112610deb57600080fd5b813581811115610dfa57600080fd5b8f60208260051b8501011115610e0f57600080fd5b60208381019e50909c508e01359a50610e2a60408f01610d46565b9950610e3860608f01610d46565b985060808e0135975060a08e0135965060c08e0135955060e08e013594506101008e0135915080821115610e6b57600080fd5b50610e788e828f01610d56565b915080935050809150509295989b509295989b9093969950565b60008060008060008060008060006101008a8c031215610eb157600080fd5b8935985060208a0135610ec381610d2e565b975060408a0135610ed381610d2e565b965060608a0135955060808a0135945060a08a0135935060c08a0135925060e08a01356001600160401b03811115610f0a57600080fd5b610f168c828d01610d56565b915080935050809150509295985092959850929598565b600060208284031215610f3f57600080fd5b5035919050565b60008060008060008060008060e0898b031215610f6257600080fd5b8835610f6d81610d2e565b97506020890135610f7d81610d2e565b965060408901359550606089013594506080890135935060a0890135925060c08901356001600160401b03811115610fb457600080fd5b610fc08b828c01610d56565b999c989b5096995094979396929594505050565b60008060408385031215610fe757600080fd5b50508035926020909101359150565b60006020828403121561100857600080fd5b813561101381610d2e565b9392505050565b60006020828403121561102c57600080fd5b815161101381610d2e565b60006bffffffffffffffffffffffff19808b60601b168352808a60601b16601484015250876028830152866048830152856068830152846088830152828460a8840137506000910160a801908152979650505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600181815b808511156110f75781600019048211156110dd576110dd6110a6565b808516156110ea57918102915b93841c93908002906110c1565b509250929050565b60008261110e5750600161119c565b8161111b5750600061119c565b8160018114611131576002811461113b57611157565b600191505061119c565b60ff84111561114c5761114c6110a6565b50506001821b61119c565b5060208310610133831016604e8410600b841016171561117a575081810a61119c565b61118483836110bc565b8060001904821115611198576111986110a6565b0290505b92915050565b600061101383836110ff565b60005b838110156111c95781810151838201526020016111b1565b838111156111d8576000848401525b50505050565b60018060a01b038416815282602082015260606040820152600082518060608401526112118160808501602087016111ae565b601f01601f191691909101608001949350505050565b6000806040838503121561123a57600080fd5b8251801515811461124a57600080fd5b60208401519092506001600160401b038082111561126757600080fd5b818501915085601f83011261127b57600080fd5b81518181111561128d5761128d610c33565b6112a0601f8201601f1916602001610c49565b91508082528660208285010111156112b757600080fd5b6112c88160208401602086016111ae565b508092505050925092905056fea264697066735822122096119f7767ee3817d68a64e1be82a615729646723b41aec60c93c91cbe221a7c64736f6c63430008090033",
546
+ "bytecode": "0x60a06040523060805234801561001457600080fd5b5060805161130b61003060003960006106a2015261130b6000f3fe608060405234801561001057600080fd5b506004361061012b5760003560e01c806395fcea78116100ad578063c4d66de811610071578063c4d66de81461026d578063c75184df14610280578063cb23bcb5146102a0578063d5b5cc23146102b3578063e78cea92146102c657600080fd5b806395fcea78146101695780639f0c04bf14610216578063a04cee6014610229578063ae6dead71461023c578063b0f305371461025c57600080fd5b80635a129efe116100f45780635a129efe146101965780636ae71f12146101c957806372f2a8c7146101d157806380648b02146101d95780638515bc6a146101fe57600080fd5b80627436d31461013057806308635a9514610156578063119852711461016b578063288e5b10146101725780634654779014610185575b600080fd5b61014361013e366004610c79565b6102d9565b6040519081526020015b60405180910390f35b610169610164366004610d9e565b610316565b005b6000610143565b610169610180366004610e92565b610658565b6004546001600160801b0316610143565b6101b96101a4366004610f2d565b60026020526000908152604090205460ff1681565b604051901515815260200161014d565b610169610697565b600654610143565b6007546001600160a01b03165b6040516001600160a01b03909116815260200161014d565b600454600160801b90046001600160801b0316610143565b610143610224366004610f46565b61082c565b610169610237366004610fd4565b610871565b61014361024a366004610f2d565b60036020526000908152604090205481565b6005546001600160801b0316610143565b61016961027b366004610ff6565b6108b0565b610288600281565b6040516001600160801b03909116815260200161014d565b6000546101e6906001600160a01b031681565b6101436102c1366004610f2d565b610989565b6001546101e6906001600160a01b031681565b600061030e8484846040516020016102f391815260200190565b604051602081830303815290604052805190602001206109c5565b949350505050565b6000806103298a8a8a8a8a8a8a8a61082c565b905061036b8d8d808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508f9250859150610a689050565b915060008a6001600160a01b03168a6001600160a01b03167f20af7f3bbfe38132b8900ae295cd9c8d1914be7052d061a511f3f728dab189648e6040516103b491815260200190565b60405180910390a450600060046040518060a00160405290816000820160009054906101000a90046001600160801b03166001600160801b03166001600160801b031681526020016000820160109054906101000a90046001600160801b03166001600160801b03166001600160801b031681526020016001820160009054906101000a90046001600160801b03166001600160801b03166001600160801b03168152602001600282015481526020016003820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152505090506040518060a00160405280896001600160801b03168152602001886001600160801b03168152602001876001600160801b031681526020018381526020018b6001600160a01b0316815250600460008201518160000160006101000a8154816001600160801b0302191690836001600160801b0316021790555060208201518160000160106101000a8154816001600160801b0302191690836001600160801b0316021790555060408201518160010160006101000a8154816001600160801b0302191690836001600160801b031602179055506060820151816002015560808201518160030160006101000a8154816001600160a01b0302191690836001600160a01b031602179055509050506105e3898686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610b6b92505050565b805160208201516001600160801b03918216600160801b91831691909102176004556040820151600580546001600160801b03191691909216179055606081015160065560800151600780546001600160a01b0319166001600160a01b03909216919091179055505050505050505050505050565b60405162461bcd60e51b815260206004820152600f60248201526e139bdd081a5b5c1b195b595b9d1959608a1b60448201526064015b60405180910390fd5b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156107255760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b606482015260840161068e565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61038054336001600160a01b0382161461078257604051631194af8760e11b81523360048201526001600160a01b038216602482015260440161068e565b600160009054906101000a90046001600160a01b03166001600160a01b031663cb23bcb56040518163ffffffff1660e01b815260040160206040518083038186803b1580156107d057600080fd5b505afa1580156107e4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610808919061101a565b600080546001600160a01b0319166001600160a01b03929092169190911790555050565b6000888888888888888860405160200161084d989796959493929190611037565b60405160208183030381529060405280519060200120905098975050505050505050565b60008281526003602052604080822083905551829184917fb4df3847300f076a369cd76d2314b470a1194d9e8a6bb97f1860aee88a5f67489190a35050565b6001546001600160a01b0316156108da57604051633bcd329760e21b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040805163cb23bcb560e01b8152905163cb23bcb591600480820192602092909190829003018186803b15801561092e57600080fd5b505afa158015610942573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610966919061101a565b600080546001600160a01b0319166001600160a01b039290921691909117905550565b60405162461bcd60e51b815260206004820152600e60248201526d1393d517d253541311535155115160921b604482015260009060640161068e565b82516000906101008111156109f857604051637ed6198f60e11b815260048101829052610100602482015260440161068e565b8260005b82811015610a5e576000878281518110610a1857610a18611090565b60200260200101519050816001901b871660001415610a4557826000528060205260406000209250610a55565b8060005282602052604060002092505b506001016109fc565b5095945050505050565b6000610100845110610a9257835160405163ab6a068360e01b815260040161068e91815260200190565b8351610a9f9060026111a2565b8310610ad6578284516002610ab491906111a2565b604051630b8a724b60e01b81526004810192909252602482015260440161068e565b6000610ae38585856102d9565b600081815260036020526040902054909150610b15576040516310e61af960e31b81526004810182905260240161068e565b60008481526002602052604090205460ff1615610b4857604051639715b8d360e01b81526004810185905260240161068e565b50506000828152600260205260409020805460ff19166001179055819392505050565b600154604051639e5d4c4960e01b815260009182916001600160a01b0390911690639e5d4c4990610ba4908890889088906004016111de565b600060405180830381600087803b158015610bbe57600080fd5b505af1158015610bd2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610bfa9190810190611227565b9150915081610c2c57805115610c135780518082602001fd5b604051631bb7daad60e11b815260040160405180910390fd5b5050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715610c7157610c71610c33565b604052919050565b600080600060608486031215610c8e57600080fd5b83356001600160401b0380821115610ca557600080fd5b818601915086601f830112610cb957600080fd5b8135602082821115610ccd57610ccd610c33565b8160051b9250610cde818401610c49565b828152928401810192818101908a851115610cf857600080fd5b948201945b84861015610d1657853582529482019490820190610cfd565b9a918901359950506040909701359695505050505050565b6001600160a01b0381168114610d4357600080fd5b50565b8035610d5181610d2e565b919050565b60008083601f840112610d6857600080fd5b5081356001600160401b03811115610d7f57600080fd5b602083019150836020828501011115610d9757600080fd5b9250929050565b60008060008060008060008060008060006101208c8e031215610dc057600080fd5b8b356001600160401b0380821115610dd757600080fd5b818e0191508e601f830112610deb57600080fd5b813581811115610dfa57600080fd5b8f60208260051b8501011115610e0f57600080fd5b60208381019e50909c508e01359a50610e2a60408f01610d46565b9950610e3860608f01610d46565b985060808e0135975060a08e0135965060c08e0135955060e08e013594506101008e0135915080821115610e6b57600080fd5b50610e788e828f01610d56565b915080935050809150509295989b509295989b9093969950565b60008060008060008060008060006101008a8c031215610eb157600080fd5b8935985060208a0135610ec381610d2e565b975060408a0135610ed381610d2e565b965060608a0135955060808a0135945060a08a0135935060c08a0135925060e08a01356001600160401b03811115610f0a57600080fd5b610f168c828d01610d56565b915080935050809150509295985092959850929598565b600060208284031215610f3f57600080fd5b5035919050565b60008060008060008060008060e0898b031215610f6257600080fd5b8835610f6d81610d2e565b97506020890135610f7d81610d2e565b965060408901359550606089013594506080890135935060a0890135925060c08901356001600160401b03811115610fb457600080fd5b610fc08b828c01610d56565b999c989b5096995094979396929594505050565b60008060408385031215610fe757600080fd5b50508035926020909101359150565b60006020828403121561100857600080fd5b813561101381610d2e565b9392505050565b60006020828403121561102c57600080fd5b815161101381610d2e565b60006bffffffffffffffffffffffff19808b60601b168352808a60601b16601484015250876028830152866048830152856068830152846088830152828460a8840137506000910160a801908152979650505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600181815b808511156110f75781600019048211156110dd576110dd6110a6565b808516156110ea57918102915b93841c93908002906110c1565b509250929050565b60008261110e5750600161119c565b8161111b5750600061119c565b8160018114611131576002811461113b57611157565b600191505061119c565b60ff84111561114c5761114c6110a6565b50506001821b61119c565b5060208310610133831016604e8410600b841016171561117a575081810a61119c565b61118483836110bc565b8060001904821115611198576111986110a6565b0290505b92915050565b600061101383836110ff565b60005b838110156111c95781810151838201526020016111b1565b838111156111d8576000848401525b50505050565b60018060a01b038416815282602082015260606040820152600082518060608401526112118160808501602087016111ae565b601f01601f191691909101608001949350505050565b6000806040838503121561123a57600080fd5b8251801515811461124a57600080fd5b60208401519092506001600160401b038082111561126757600080fd5b818501915085601f83011261127b57600080fd5b81518181111561128d5761128d610c33565b6112a0601f8201601f1916602001610c49565b91508082528660208285010111156112b757600080fd5b6112c88160208401602086016111ae565b508092505050925092905056fea2646970667358221220173cbb3e5a80866102fe447f054268093048c75617ef53dc170453713061b76264736f6c63430008090033",
547
+ "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061012b5760003560e01c806395fcea78116100ad578063c4d66de811610071578063c4d66de81461026d578063c75184df14610280578063cb23bcb5146102a0578063d5b5cc23146102b3578063e78cea92146102c657600080fd5b806395fcea78146101695780639f0c04bf14610216578063a04cee6014610229578063ae6dead71461023c578063b0f305371461025c57600080fd5b80635a129efe116100f45780635a129efe146101965780636ae71f12146101c957806372f2a8c7146101d157806380648b02146101d95780638515bc6a146101fe57600080fd5b80627436d31461013057806308635a9514610156578063119852711461016b578063288e5b10146101725780634654779014610185575b600080fd5b61014361013e366004610c79565b6102d9565b6040519081526020015b60405180910390f35b610169610164366004610d9e565b610316565b005b6000610143565b610169610180366004610e92565b610658565b6004546001600160801b0316610143565b6101b96101a4366004610f2d565b60026020526000908152604090205460ff1681565b604051901515815260200161014d565b610169610697565b600654610143565b6007546001600160a01b03165b6040516001600160a01b03909116815260200161014d565b600454600160801b90046001600160801b0316610143565b610143610224366004610f46565b61082c565b610169610237366004610fd4565b610871565b61014361024a366004610f2d565b60036020526000908152604090205481565b6005546001600160801b0316610143565b61016961027b366004610ff6565b6108b0565b610288600281565b6040516001600160801b03909116815260200161014d565b6000546101e6906001600160a01b031681565b6101436102c1366004610f2d565b610989565b6001546101e6906001600160a01b031681565b600061030e8484846040516020016102f391815260200190565b604051602081830303815290604052805190602001206109c5565b949350505050565b6000806103298a8a8a8a8a8a8a8a61082c565b905061036b8d8d808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508f9250859150610a689050565b915060008a6001600160a01b03168a6001600160a01b03167f20af7f3bbfe38132b8900ae295cd9c8d1914be7052d061a511f3f728dab189648e6040516103b491815260200190565b60405180910390a450600060046040518060a00160405290816000820160009054906101000a90046001600160801b03166001600160801b03166001600160801b031681526020016000820160109054906101000a90046001600160801b03166001600160801b03166001600160801b031681526020016001820160009054906101000a90046001600160801b03166001600160801b03166001600160801b03168152602001600282015481526020016003820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152505090506040518060a00160405280896001600160801b03168152602001886001600160801b03168152602001876001600160801b031681526020018381526020018b6001600160a01b0316815250600460008201518160000160006101000a8154816001600160801b0302191690836001600160801b0316021790555060208201518160000160106101000a8154816001600160801b0302191690836001600160801b0316021790555060408201518160010160006101000a8154816001600160801b0302191690836001600160801b031602179055506060820151816002015560808201518160030160006101000a8154816001600160a01b0302191690836001600160a01b031602179055509050506105e3898686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610b6b92505050565b805160208201516001600160801b03918216600160801b91831691909102176004556040820151600580546001600160801b03191691909216179055606081015160065560800151600780546001600160a01b0319166001600160a01b03909216919091179055505050505050505050505050565b60405162461bcd60e51b815260206004820152600f60248201526e139bdd081a5b5c1b195b595b9d1959608a1b60448201526064015b60405180910390fd5b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156107255760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b606482015260840161068e565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61038054336001600160a01b0382161461078257604051631194af8760e11b81523360048201526001600160a01b038216602482015260440161068e565b600160009054906101000a90046001600160a01b03166001600160a01b031663cb23bcb56040518163ffffffff1660e01b815260040160206040518083038186803b1580156107d057600080fd5b505afa1580156107e4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610808919061101a565b600080546001600160a01b0319166001600160a01b03929092169190911790555050565b6000888888888888888860405160200161084d989796959493929190611037565b60405160208183030381529060405280519060200120905098975050505050505050565b60008281526003602052604080822083905551829184917fb4df3847300f076a369cd76d2314b470a1194d9e8a6bb97f1860aee88a5f67489190a35050565b6001546001600160a01b0316156108da57604051633bcd329760e21b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040805163cb23bcb560e01b8152905163cb23bcb591600480820192602092909190829003018186803b15801561092e57600080fd5b505afa158015610942573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610966919061101a565b600080546001600160a01b0319166001600160a01b039290921691909117905550565b60405162461bcd60e51b815260206004820152600e60248201526d1393d517d253541311535155115160921b604482015260009060640161068e565b82516000906101008111156109f857604051637ed6198f60e11b815260048101829052610100602482015260440161068e565b8260005b82811015610a5e576000878281518110610a1857610a18611090565b60200260200101519050816001901b871660001415610a4557826000528060205260406000209250610a55565b8060005282602052604060002092505b506001016109fc565b5095945050505050565b6000610100845110610a9257835160405163ab6a068360e01b815260040161068e91815260200190565b8351610a9f9060026111a2565b8310610ad6578284516002610ab491906111a2565b604051630b8a724b60e01b81526004810192909252602482015260440161068e565b6000610ae38585856102d9565b600081815260036020526040902054909150610b15576040516310e61af960e31b81526004810182905260240161068e565b60008481526002602052604090205460ff1615610b4857604051639715b8d360e01b81526004810185905260240161068e565b50506000828152600260205260409020805460ff19166001179055819392505050565b600154604051639e5d4c4960e01b815260009182916001600160a01b0390911690639e5d4c4990610ba4908890889088906004016111de565b600060405180830381600087803b158015610bbe57600080fd5b505af1158015610bd2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610bfa9190810190611227565b9150915081610c2c57805115610c135780518082602001fd5b604051631bb7daad60e11b815260040160405180910390fd5b5050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715610c7157610c71610c33565b604052919050565b600080600060608486031215610c8e57600080fd5b83356001600160401b0380821115610ca557600080fd5b818601915086601f830112610cb957600080fd5b8135602082821115610ccd57610ccd610c33565b8160051b9250610cde818401610c49565b828152928401810192818101908a851115610cf857600080fd5b948201945b84861015610d1657853582529482019490820190610cfd565b9a918901359950506040909701359695505050505050565b6001600160a01b0381168114610d4357600080fd5b50565b8035610d5181610d2e565b919050565b60008083601f840112610d6857600080fd5b5081356001600160401b03811115610d7f57600080fd5b602083019150836020828501011115610d9757600080fd5b9250929050565b60008060008060008060008060008060006101208c8e031215610dc057600080fd5b8b356001600160401b0380821115610dd757600080fd5b818e0191508e601f830112610deb57600080fd5b813581811115610dfa57600080fd5b8f60208260051b8501011115610e0f57600080fd5b60208381019e50909c508e01359a50610e2a60408f01610d46565b9950610e3860608f01610d46565b985060808e0135975060a08e0135965060c08e0135955060e08e013594506101008e0135915080821115610e6b57600080fd5b50610e788e828f01610d56565b915080935050809150509295989b509295989b9093969950565b60008060008060008060008060006101008a8c031215610eb157600080fd5b8935985060208a0135610ec381610d2e565b975060408a0135610ed381610d2e565b965060608a0135955060808a0135945060a08a0135935060c08a0135925060e08a01356001600160401b03811115610f0a57600080fd5b610f168c828d01610d56565b915080935050809150509295985092959850929598565b600060208284031215610f3f57600080fd5b5035919050565b60008060008060008060008060e0898b031215610f6257600080fd5b8835610f6d81610d2e565b97506020890135610f7d81610d2e565b965060408901359550606089013594506080890135935060a0890135925060c08901356001600160401b03811115610fb457600080fd5b610fc08b828c01610d56565b999c989b5096995094979396929594505050565b60008060408385031215610fe757600080fd5b50508035926020909101359150565b60006020828403121561100857600080fd5b813561101381610d2e565b9392505050565b60006020828403121561102c57600080fd5b815161101381610d2e565b60006bffffffffffffffffffffffff19808b60601b168352808a60601b16601484015250876028830152866048830152856068830152846088830152828460a8840137506000910160a801908152979650505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600181815b808511156110f75781600019048211156110dd576110dd6110a6565b808516156110ea57918102915b93841c93908002906110c1565b509250929050565b60008261110e5750600161119c565b8161111b5750600061119c565b8160018114611131576002811461113b57611157565b600191505061119c565b60ff84111561114c5761114c6110a6565b50506001821b61119c565b5060208310610133831016604e8410600b841016171561117a575081810a61119c565b61118483836110bc565b8060001904821115611198576111986110a6565b0290505b92915050565b600061101383836110ff565b60005b838110156111c95781810151838201526020016111b1565b838111156111d8576000848401525b50505050565b60018060a01b038416815282602082015260606040820152600082518060608401526112118160808501602087016111ae565b601f01601f191691909101608001949350505050565b6000806040838503121561123a57600080fd5b8251801515811461124a57600080fd5b60208401519092506001600160401b038082111561126757600080fd5b818501915085601f83011261127b57600080fd5b81518181111561128d5761128d610c33565b6112a0601f8201601f1916602001610c49565b91508082528660208285010111156112b757600080fd5b6112c88160208401602086016111ae565b508092505050925092905056fea2646970667358221220173cbb3e5a80866102fe447f054268093048c75617ef53dc170453713061b76264736f6c63430008090033",
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/06c4d509e20993c3089a7fd027c7b28b.json"
3
+ "buildInfo": "../../../build-info/239eb2848a7b622fb5b92eeb732909cf.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/06c4d509e20993c3089a7fd027c7b28b.json"
3
+ "buildInfo": "../../../build-info/239eb2848a7b622fb5b92eeb732909cf.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/06c4d509e20993c3089a7fd027c7b28b.json"
3
+ "buildInfo": "../../../build-info/239eb2848a7b622fb5b92eeb732909cf.json"
4
4
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arbitrum/nitro-contracts",
3
- "version": "1.2.0",
3
+ "version": "1.3.0",
4
4
  "description": "Layer 2 precompiles and rollup for Arbitrum Nitro",
5
5
  "author": "Offchain Labs, Inc.",
6
6
  "license": "BUSL-1.1",
@@ -18,6 +18,8 @@
18
18
  "url": "https://github.com/offchainlabs/nitro-contracts/issues"
19
19
  },
20
20
  "scripts": {
21
+ "audit:ci": "audit-ci --config ./audit-ci.jsonc",
22
+ "audit:fix": "yarn-audit-fix",
21
23
  "prepublishOnly": "hardhat clean && forge clean && hardhat compile && yarn build:forge:yul",
22
24
  "build:all": "yarn build && yarn build:forge",
23
25
  "build": "hardhat compile",
@@ -34,11 +36,13 @@
34
36
  "test:4844": "DISABLE_GAS_REPORTER=true hardhat --network hardhat test test/contract/*.spec.4844.ts",
35
37
  "test:compatibility": "yarn run build:0.6 && yarn run build:0.7",
36
38
  "test:storage": "./test/storage/test.bash",
39
+ "test:signatures": "./test/signatures/test-sigs.bash",
37
40
  "test:e2e": "hardhat test test/e2e/*.ts",
38
41
  "postinstall": "patch-package",
39
42
  "deploy-factory": "hardhat run scripts/deployment.ts",
40
43
  "deploy-eth-rollup": "hardhat run scripts/createEthRollup.ts",
41
- "deploy-erc20-rollup": "hardhat run scripts/createERC20Rollup.ts"
44
+ "deploy-erc20-rollup": "hardhat run scripts/createERC20Rollup.ts",
45
+ "create-rollup-testnode": "hardhat run scripts/local-deployment/deployCreatorAndCreateRollup.ts"
42
46
  },
43
47
  "dependencies": {
44
48
  "@offchainlabs/upgrade-executor": "1.1.0-beta.0",
@@ -62,14 +66,15 @@
62
66
  "@typescript-eslint/eslint-plugin": "^5.14.0",
63
67
  "@typescript-eslint/eslint-plugin-tslint": "^5.27.1",
64
68
  "@typescript-eslint/parser": "^5.14.0",
69
+ "audit-ci": "^6.6.1",
65
70
  "chai": "^4.3.4",
66
71
  "dotenv": "^16.3.1",
67
72
  "eslint": "^8.23.1",
68
73
  "eslint-config-prettier": "^8.3.0",
69
74
  "eslint-plugin-mocha": "^9.0.0",
70
75
  "eslint-plugin-prettier": "^4.0.0",
71
- "ethereum-waffle": "^3.4.0",
72
- "ethers": "^5.5.2",
76
+ "ethereum-waffle": "^4.0.10",
77
+ "ethers": "^5.5.4",
73
78
  "hardhat": "^2.17.2",
74
79
  "hardhat-deploy": "^0.11.37",
75
80
  "hardhat-gas-reporter": "^1.0.9",
@@ -82,7 +87,8 @@
82
87
  "solidity-coverage": "^0.8.4",
83
88
  "ts-node": "^10.4.0",
84
89
  "tslint": "^6.1.3",
85
- "typechain": "^8.0.0",
86
- "typescript": "^4.5.4"
90
+ "typechain": "^8.3.2",
91
+ "typescript": "^4.5.4",
92
+ "yarn-audit-fix": "^10.0.7"
87
93
  }
88
94
  }
@@ -12,10 +12,10 @@ import "./IBridge.sol";
12
12
 
13
13
  interface ISequencerInbox is IDelayedMessageProvider {
14
14
  struct MaxTimeVariation {
15
- uint64 delayBlocks;
16
- uint64 futureBlocks;
17
- uint64 delaySeconds;
18
- uint64 futureSeconds;
15
+ uint256 delayBlocks;
16
+ uint256 futureBlocks;
17
+ uint256 delaySeconds;
18
+ uint256 futureSeconds;
19
19
  }
20
20
 
21
21
  event SequencerBatchDelivered(
@@ -10,7 +10,6 @@ import {
10
10
  BadPostUpgradeInit,
11
11
  NotOrigin,
12
12
  DataTooLarge,
13
- NotRollup,
14
13
  DelayedBackwards,
15
14
  DelayedTooFar,
16
15
  ForceIncludeBlockTooSoon,
@@ -18,7 +17,6 @@ import {
18
17
  IncorrectMessagePreimage,
19
18
  NotBatchPoster,
20
19
  BadSequencerNumber,
21
- DataNotAuthenticated,
22
20
  AlreadyValidDASKeyset,
23
21
  NoSuchKeyset,
24
22
  NotForked,
@@ -27,12 +25,10 @@ import {
27
25
  DataBlobsNotSupported,
28
26
  InitParamZero,
29
27
  MissingDataHashes,
30
- InvalidBlobMetadata,
31
28
  NotOwner,
32
- RollupNotChanged,
33
- EmptyBatchData,
34
29
  InvalidHeaderFlag,
35
30
  NativeTokenMismatch,
31
+ BadMaxTimeVariation,
36
32
  Deprecated
37
33
  } from "../libraries/Error.sol";
38
34
  import "./IBridge.sol";
@@ -93,7 +89,7 @@ contract SequencerInbox is DelegateCallAware, GasRefundEnabled, ISequencerInbox
93
89
 
94
90
  // we previously stored the max time variation in a (uint,uint,uint,uint) struct here
95
91
  // solhint-disable-next-line var-name-mixedcase
96
- uint256[4] private __LEGACY_MAX_TIME_VARIATION;
92
+ ISequencerInbox.MaxTimeVariation private __LEGACY_MAX_TIME_VARIATION;
97
93
 
98
94
  mapping(bytes32 => DasKeySetInfo) public dasKeySetInfo;
99
95
 
@@ -152,32 +148,32 @@ contract SequencerInbox is DelegateCallAware, GasRefundEnabled, ISequencerInbox
152
148
  // Assuming we would not upgrade from a version that have MaxTimeVariation all set to zero
153
149
  // If that is the case, postUpgradeInit do not need to be called
154
150
  if (
155
- __LEGACY_MAX_TIME_VARIATION[0] == 0 &&
156
- __LEGACY_MAX_TIME_VARIATION[1] == 0 &&
157
- __LEGACY_MAX_TIME_VARIATION[2] == 0 &&
158
- __LEGACY_MAX_TIME_VARIATION[3] == 0
151
+ __LEGACY_MAX_TIME_VARIATION.delayBlocks == 0 &&
152
+ __LEGACY_MAX_TIME_VARIATION.futureBlocks == 0 &&
153
+ __LEGACY_MAX_TIME_VARIATION.delaySeconds == 0 &&
154
+ __LEGACY_MAX_TIME_VARIATION.futureSeconds == 0
159
155
  ) {
160
156
  revert AlreadyInit();
161
157
  }
162
158
 
163
159
  if (
164
- __LEGACY_MAX_TIME_VARIATION[0] > type(uint64).max ||
165
- __LEGACY_MAX_TIME_VARIATION[1] > type(uint64).max ||
166
- __LEGACY_MAX_TIME_VARIATION[2] > type(uint64).max ||
167
- __LEGACY_MAX_TIME_VARIATION[3] > type(uint64).max
160
+ __LEGACY_MAX_TIME_VARIATION.delayBlocks > type(uint64).max ||
161
+ __LEGACY_MAX_TIME_VARIATION.futureBlocks > type(uint64).max ||
162
+ __LEGACY_MAX_TIME_VARIATION.delaySeconds > type(uint64).max ||
163
+ __LEGACY_MAX_TIME_VARIATION.futureSeconds > type(uint64).max
168
164
  ) {
169
165
  revert BadPostUpgradeInit();
170
166
  }
171
167
 
172
- delayBlocks = uint64(__LEGACY_MAX_TIME_VARIATION[0]);
173
- futureBlocks = uint64(__LEGACY_MAX_TIME_VARIATION[1]);
174
- delaySeconds = uint64(__LEGACY_MAX_TIME_VARIATION[2]);
175
- futureSeconds = uint64(__LEGACY_MAX_TIME_VARIATION[3]);
168
+ delayBlocks = uint64(__LEGACY_MAX_TIME_VARIATION.delayBlocks);
169
+ futureBlocks = uint64(__LEGACY_MAX_TIME_VARIATION.futureBlocks);
170
+ delaySeconds = uint64(__LEGACY_MAX_TIME_VARIATION.delaySeconds);
171
+ futureSeconds = uint64(__LEGACY_MAX_TIME_VARIATION.futureSeconds);
176
172
 
177
- __LEGACY_MAX_TIME_VARIATION[0] = 0;
178
- __LEGACY_MAX_TIME_VARIATION[1] = 0;
179
- __LEGACY_MAX_TIME_VARIATION[2] = 0;
180
- __LEGACY_MAX_TIME_VARIATION[3] = 0;
173
+ __LEGACY_MAX_TIME_VARIATION.delayBlocks = 0;
174
+ __LEGACY_MAX_TIME_VARIATION.futureBlocks = 0;
175
+ __LEGACY_MAX_TIME_VARIATION.delaySeconds = 0;
176
+ __LEGACY_MAX_TIME_VARIATION.futureSeconds = 0;
181
177
  }
182
178
 
183
179
  function initialize(
@@ -201,10 +197,8 @@ contract SequencerInbox is DelegateCallAware, GasRefundEnabled, ISequencerInbox
201
197
 
202
198
  bridge = bridge_;
203
199
  rollup = bridge_.rollup();
204
- delayBlocks = maxTimeVariation_.delayBlocks;
205
- futureBlocks = maxTimeVariation_.futureBlocks;
206
- delaySeconds = maxTimeVariation_.delaySeconds;
207
- futureSeconds = maxTimeVariation_.futureSeconds;
200
+
201
+ _setMaxTimeVariation(maxTimeVariation_);
208
202
  }
209
203
 
210
204
  /// @notice Allows the rollup owner to sync the rollup address
@@ -718,15 +712,29 @@ contract SequencerInbox is DelegateCallAware, GasRefundEnabled, ISequencerInbox
718
712
  return bridge.sequencerMessageCount();
719
713
  }
720
714
 
715
+ function _setMaxTimeVariation(ISequencerInbox.MaxTimeVariation memory maxTimeVariation_)
716
+ internal
717
+ {
718
+ if (
719
+ maxTimeVariation_.delayBlocks > type(uint64).max ||
720
+ maxTimeVariation_.futureBlocks > type(uint64).max ||
721
+ maxTimeVariation_.delaySeconds > type(uint64).max ||
722
+ maxTimeVariation_.futureSeconds > type(uint64).max
723
+ ) {
724
+ revert BadMaxTimeVariation();
725
+ }
726
+ delayBlocks = uint64(maxTimeVariation_.delayBlocks);
727
+ futureBlocks = uint64(maxTimeVariation_.futureBlocks);
728
+ delaySeconds = uint64(maxTimeVariation_.delaySeconds);
729
+ futureSeconds = uint64(maxTimeVariation_.futureSeconds);
730
+ }
731
+
721
732
  /// @inheritdoc ISequencerInbox
722
733
  function setMaxTimeVariation(ISequencerInbox.MaxTimeVariation memory maxTimeVariation_)
723
734
  external
724
735
  onlyRollupOwner
725
736
  {
726
- delayBlocks = maxTimeVariation_.delayBlocks;
727
- futureBlocks = maxTimeVariation_.futureBlocks;
728
- delaySeconds = maxTimeVariation_.delaySeconds;
729
- futureSeconds = maxTimeVariation_.futureSeconds;
737
+ _setMaxTimeVariation(maxTimeVariation_);
730
738
  emit OwnerFunctionCalled(0);
731
739
  }
732
740
 
@@ -48,51 +48,6 @@ library ChallengeLib {
48
48
  return challenge.timeUsedSinceLastMove() > challenge.current.timeLeft;
49
49
  }
50
50
 
51
- function getStartMachineHash(bytes32 globalStateHash, bytes32 wasmModuleRoot)
52
- internal
53
- pure
54
- returns (bytes32)
55
- {
56
- // Start the value stack with the function call ABI for the entrypoint
57
- Value[] memory startingValues = new Value[](3);
58
- startingValues[0] = ValueLib.newRefNull();
59
- startingValues[1] = ValueLib.newI32(0);
60
- startingValues[2] = ValueLib.newI32(0);
61
- ValueArray memory valuesArray = ValueArray({inner: startingValues});
62
- ValueStack memory values = ValueStack({proved: valuesArray, remainingHash: 0});
63
- ValueStack memory internalStack;
64
- StackFrameWindow memory frameStack;
65
-
66
- Machine memory mach = Machine({
67
- status: MachineStatus.RUNNING,
68
- valueStack: values,
69
- internalStack: internalStack,
70
- frameStack: frameStack,
71
- globalStateHash: globalStateHash,
72
- moduleIdx: 0,
73
- functionIdx: 0,
74
- functionPc: 0,
75
- modulesRoot: wasmModuleRoot
76
- });
77
- return mach.hash();
78
- }
79
-
80
- function getEndMachineHash(MachineStatus status, bytes32 globalStateHash)
81
- internal
82
- pure
83
- returns (bytes32)
84
- {
85
- if (status == MachineStatus.FINISHED) {
86
- return keccak256(abi.encodePacked("Machine finished:", globalStateHash));
87
- } else if (status == MachineStatus.ERRORED) {
88
- return keccak256(abi.encodePacked("Machine errored:"));
89
- } else if (status == MachineStatus.TOO_FAR) {
90
- return keccak256(abi.encodePacked("Machine too far:"));
91
- } else {
92
- revert("BAD_BLOCK_STATUS");
93
- }
94
- }
95
-
96
51
  function extractChallengeSegment(SegmentSelection calldata selection)
97
52
  internal
98
53
  pure
@@ -233,11 +233,8 @@ contract ChallengeManager is DelegateCallAware, IChallengeManager {
233
233
  }
234
234
 
235
235
  bytes32[] memory segments = new bytes32[](2);
236
- segments[0] = ChallengeLib.getStartMachineHash(
237
- globalStateHashes[0],
238
- challenge.wasmModuleRoot
239
- );
240
- segments[1] = ChallengeLib.getEndMachineHash(machineStatuses[1], globalStateHashes[1]);
236
+ segments[0] = osp.getStartMachineHash(globalStateHashes[0], challenge.wasmModuleRoot);
237
+ segments[1] = osp.getEndMachineHash(machineStatuses[1], globalStateHashes[1]);
241
238
 
242
239
  challenge.mode = ChallengeLib.ChallengeMode.EXECUTION;
243
240