@arbitrum/nitro-contracts 2.1.1-beta.0 → 3.0.0-alpha.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (541) 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/ERC1967Proxy.sol/ERC1967Proxy.json +2 -2
  5. package/build/contracts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.dbg.json +1 -1
  6. package/build/contracts/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.dbg.json +1 -1
  7. package/build/contracts/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.dbg.json +1 -1
  8. package/build/contracts/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol/UpgradeableBeacon.dbg.json +1 -1
  9. package/build/contracts/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol/UpgradeableBeacon.json +2 -2
  10. package/build/contracts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.dbg.json +1 -1
  11. package/build/contracts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.json +2 -2
  12. package/build/contracts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.dbg.json +1 -1
  13. package/build/contracts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +2 -2
  14. package/build/contracts/@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol/UUPSUpgradeable.dbg.json +1 -1
  15. package/build/contracts/@openzeppelin/contracts/security/ReentrancyGuard.sol/ReentrancyGuard.dbg.json +1 -1
  16. package/build/contracts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json +1 -1
  17. package/build/contracts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json +2 -2
  18. package/build/contracts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json +1 -1
  19. package/build/contracts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json +1 -1
  20. package/build/contracts/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.dbg.json +4 -0
  21. package/build/contracts/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.json +86 -0
  22. package/build/contracts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.dbg.json +1 -1
  23. package/build/contracts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.json +2 -2
  24. package/build/contracts/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json +1 -1
  25. package/build/contracts/@openzeppelin/contracts/utils/Address.sol/Address.json +2 -2
  26. package/build/contracts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json +1 -1
  27. package/build/contracts/@openzeppelin/contracts/utils/Create2.sol/Create2.dbg.json +4 -0
  28. package/build/contracts/{src/express-lane-auction/ELCRound.sol/LatestELCRoundsLib.json → @openzeppelin/contracts/utils/Create2.sol/Create2.json} +4 -4
  29. package/build/contracts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.dbg.json +1 -1
  30. package/build/contracts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.json +2 -2
  31. package/build/contracts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json +1 -1
  32. package/build/contracts/@openzeppelin/contracts/utils/Strings.sol/Strings.json +2 -2
  33. package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol/AccessControlUpgradeable.dbg.json +1 -1
  34. package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol/AccessControlUpgradeable.json +13 -0
  35. package/build/contracts/@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol/IAccessControlUpgradeable.dbg.json +1 -1
  36. package/build/contracts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.dbg.json +1 -1
  37. package/build/contracts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.json +13 -0
  38. package/build/contracts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.dbg.json +1 -1
  39. package/build/contracts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.json +15 -1
  40. package/build/contracts/@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol/PausableUpgradeable.dbg.json +1 -1
  41. package/build/contracts/@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol/PausableUpgradeable.json +13 -0
  42. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.dbg.json +1 -1
  43. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.json +2 -2
  44. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.dbg.json +1 -1
  45. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.json +15 -1
  46. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/Create2Upgradeable.sol/Create2Upgradeable.dbg.json +4 -0
  47. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/Create2Upgradeable.sol/Create2Upgradeable.json +10 -0
  48. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol/StorageSlotUpgradeable.dbg.json +1 -1
  49. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol/StorageSlotUpgradeable.json +2 -2
  50. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol/StringsUpgradeable.dbg.json +1 -1
  51. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol/StringsUpgradeable.json +2 -2
  52. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol/ERC165Upgradeable.dbg.json +1 -1
  53. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol/ERC165Upgradeable.json +13 -0
  54. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol/IERC165Upgradeable.dbg.json +1 -1
  55. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/structs/EnumerableSetUpgradeable.sol/EnumerableSetUpgradeable.dbg.json +1 -1
  56. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/structs/EnumerableSetUpgradeable.sol/EnumerableSetUpgradeable.json +2 -2
  57. package/build/contracts/src/assertionStakingPool/AbsBoldStakingPool.sol/AbsBoldStakingPool.dbg.json +4 -0
  58. package/build/contracts/{@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.json → src/assertionStakingPool/AbsBoldStakingPool.sol/AbsBoldStakingPool.json} +41 -95
  59. package/build/contracts/src/assertionStakingPool/AssertionStakingPool.sol/AssertionStakingPool.dbg.json +4 -0
  60. package/build/contracts/src/assertionStakingPool/AssertionStakingPool.sol/AssertionStakingPool.json +340 -0
  61. package/build/contracts/src/assertionStakingPool/AssertionStakingPoolCreator.sol/AssertionStakingPoolCreator.dbg.json +4 -0
  62. package/build/contracts/src/assertionStakingPool/AssertionStakingPoolCreator.sol/AssertionStakingPoolCreator.json +89 -0
  63. package/build/contracts/src/assertionStakingPool/EdgeStakingPool.sol/EdgeStakingPool.dbg.json +4 -0
  64. package/build/contracts/src/assertionStakingPool/EdgeStakingPool.sol/EdgeStakingPool.json +248 -0
  65. package/build/contracts/src/assertionStakingPool/EdgeStakingPoolCreator.sol/EdgeStakingPoolCreator.dbg.json +4 -0
  66. package/build/contracts/src/assertionStakingPool/EdgeStakingPoolCreator.sol/EdgeStakingPoolCreator.json +83 -0
  67. package/build/contracts/src/assertionStakingPool/StakingPoolCreatorUtils.sol/StakingPoolCreatorUtils.dbg.json +4 -0
  68. package/build/contracts/src/assertionStakingPool/StakingPoolCreatorUtils.sol/StakingPoolCreatorUtils.json +16 -0
  69. package/build/contracts/src/assertionStakingPool/interfaces/IAbsBoldStakingPool.sol/IAbsBoldStakingPool.dbg.json +4 -0
  70. package/build/contracts/src/assertionStakingPool/interfaces/IAbsBoldStakingPool.sol/IAbsBoldStakingPool.json +140 -0
  71. package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPool.sol/IAssertionStakingPool.dbg.json +4 -0
  72. package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPool.sol/IAssertionStakingPool.json +324 -0
  73. package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPoolCreator.sol/IAssertionStakingPoolCreator.dbg.json +4 -0
  74. package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPoolCreator.sol/IAssertionStakingPoolCreator.json +84 -0
  75. package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPool.sol/IEdgeStakingPool.dbg.json +4 -0
  76. package/build/contracts/{@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20MetadataUpgradeable.sol/IERC20MetadataUpgradeable.json → src/assertionStakingPool/interfaces/IEdgeStakingPool.sol/IEdgeStakingPool.json} +109 -110
  77. package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPoolCreator.sol/IEdgeStakingPoolCreator.dbg.json +4 -0
  78. package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPoolCreator.sol/IEdgeStakingPoolCreator.json +78 -0
  79. package/build/contracts/src/bridge/AbsBridge.sol/AbsBridge.dbg.json +1 -1
  80. package/build/contracts/src/bridge/AbsBridge.sol/AbsBridge.json +13 -0
  81. package/build/contracts/src/bridge/AbsInbox.sol/AbsInbox.dbg.json +1 -1
  82. package/build/contracts/src/bridge/AbsInbox.sol/AbsInbox.json +14 -1
  83. package/build/contracts/src/bridge/AbsOutbox.sol/AbsOutbox.dbg.json +1 -1
  84. package/build/contracts/src/bridge/Bridge.sol/Bridge.dbg.json +1 -1
  85. package/build/contracts/src/bridge/Bridge.sol/Bridge.json +15 -2
  86. package/build/contracts/src/bridge/DelayBuffer.sol/DelayBuffer.dbg.json +4 -0
  87. package/build/contracts/src/bridge/DelayBuffer.sol/DelayBuffer.json +24 -0
  88. package/build/contracts/src/bridge/ERC20Bridge.sol/ERC20Bridge.dbg.json +1 -1
  89. package/build/contracts/src/bridge/ERC20Bridge.sol/ERC20Bridge.json +15 -2
  90. package/build/contracts/src/bridge/ERC20Inbox.sol/ERC20Inbox.dbg.json +1 -1
  91. package/build/contracts/src/bridge/ERC20Inbox.sol/ERC20Inbox.json +16 -3
  92. package/build/contracts/src/bridge/ERC20Outbox.sol/ERC20Outbox.dbg.json +1 -1
  93. package/build/contracts/src/bridge/ERC20Outbox.sol/ERC20Outbox.json +2 -2
  94. package/build/contracts/src/bridge/GasRefunder.sol/GasRefunder.dbg.json +1 -1
  95. package/build/contracts/src/bridge/GasRefunder.sol/GasRefunder.json +2 -2
  96. package/build/contracts/src/bridge/IBridge.sol/IBridge.dbg.json +1 -1
  97. package/build/contracts/src/bridge/IDelayedMessageProvider.sol/IDelayedMessageProvider.dbg.json +1 -1
  98. package/build/contracts/src/bridge/IERC20Bridge.sol/IERC20Bridge.dbg.json +1 -1
  99. package/build/contracts/src/bridge/IERC20Inbox.sol/IERC20Inbox.dbg.json +1 -1
  100. package/build/contracts/src/bridge/IEthBridge.sol/IEthBridge.dbg.json +1 -1
  101. package/build/contracts/src/bridge/IInbox.sol/IInbox.dbg.json +1 -1
  102. package/build/contracts/src/bridge/IInboxBase.sol/IInboxBase.dbg.json +1 -1
  103. package/build/contracts/src/bridge/IOutbox.sol/IOutbox.dbg.json +1 -1
  104. package/build/contracts/src/bridge/IOwnable.sol/IOwnable.dbg.json +1 -1
  105. package/build/contracts/src/bridge/ISequencerInbox.sol/ISequencerInbox.dbg.json +1 -1
  106. package/build/contracts/src/bridge/ISequencerInbox.sol/ISequencerInbox.json +441 -0
  107. package/build/contracts/src/bridge/Inbox.sol/Inbox.dbg.json +1 -1
  108. package/build/contracts/src/bridge/Inbox.sol/Inbox.json +20 -2
  109. package/build/contracts/src/bridge/Messages.sol/Messages.dbg.json +1 -1
  110. package/build/contracts/src/bridge/Messages.sol/Messages.json +2 -2
  111. package/build/contracts/src/bridge/Outbox.sol/Outbox.dbg.json +1 -1
  112. package/build/contracts/src/bridge/Outbox.sol/Outbox.json +2 -2
  113. package/build/contracts/src/bridge/SequencerInbox.sol/SequencerInbox.dbg.json +1 -1
  114. package/build/contracts/src/bridge/SequencerInbox.sol/SequencerInbox.json +566 -9
  115. package/build/contracts/src/chain/CacheManager.sol/CacheManager.dbg.json +1 -1
  116. package/build/contracts/src/chain/CacheManager.sol/CacheManager.json +15 -2
  117. package/build/contracts/src/challengeV2/EdgeChallengeManager.sol/EdgeChallengeManager.dbg.json +4 -0
  118. package/build/contracts/src/challengeV2/EdgeChallengeManager.sol/EdgeChallengeManager.json +1631 -0
  119. package/build/contracts/src/challengeV2/IAssertionChain.sol/IAssertionChain.dbg.json +4 -0
  120. package/build/contracts/src/challengeV2/IAssertionChain.sol/IAssertionChain.json +247 -0
  121. package/build/contracts/src/challengeV2/IEdgeChallengeManager.sol/IEdgeChallengeManager.dbg.json +4 -0
  122. package/build/contracts/src/challengeV2/IEdgeChallengeManager.sol/IEdgeChallengeManager.json +762 -0
  123. package/build/contracts/src/challengeV2/libraries/ArrayUtilsLib.sol/ArrayUtilsLib.dbg.json +4 -0
  124. package/build/contracts/src/challengeV2/libraries/ArrayUtilsLib.sol/ArrayUtilsLib.json +10 -0
  125. package/build/contracts/src/challengeV2/libraries/ChallengeEdgeLib.sol/ChallengeEdgeLib.dbg.json +4 -0
  126. package/build/contracts/{@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.json → src/challengeV2/libraries/ChallengeEdgeLib.sol/ChallengeEdgeLib.json} +4 -4
  127. package/build/contracts/src/challengeV2/libraries/EdgeChallengeManagerLib.sol/EdgeChallengeManagerLib.dbg.json +4 -0
  128. package/build/contracts/src/challengeV2/libraries/EdgeChallengeManagerLib.sol/EdgeChallengeManagerLib.json +24 -0
  129. package/build/contracts/src/challengeV2/libraries/MerkleTreeAccumulatorLib.sol/MerkleTreeAccumulatorLib.dbg.json +4 -0
  130. package/build/contracts/src/challengeV2/libraries/MerkleTreeAccumulatorLib.sol/MerkleTreeAccumulatorLib.json +24 -0
  131. package/build/contracts/src/challengeV2/libraries/UintUtilsLib.sol/UintUtilsLib.dbg.json +4 -0
  132. package/build/contracts/src/challengeV2/libraries/UintUtilsLib.sol/UintUtilsLib.json +10 -0
  133. package/build/contracts/src/libraries/AddressAliasHelper.sol/AddressAliasHelper.dbg.json +1 -1
  134. package/build/contracts/src/libraries/AddressAliasHelper.sol/AddressAliasHelper.json +2 -2
  135. package/build/contracts/src/libraries/AdminFallbackProxy.sol/AdminFallbackProxy.dbg.json +1 -1
  136. package/build/contracts/src/libraries/AdminFallbackProxy.sol/AdminFallbackProxy.json +2 -2
  137. package/build/contracts/src/libraries/AdminFallbackProxy.sol/DoubleLogicERC1967Upgrade.dbg.json +1 -1
  138. package/build/contracts/src/libraries/ArbitrumChecker.sol/ArbitrumChecker.dbg.json +1 -1
  139. package/build/contracts/src/libraries/ArbitrumChecker.sol/ArbitrumChecker.json +2 -2
  140. package/build/contracts/src/libraries/CallerChecker.sol/CallerChecker.dbg.json +4 -0
  141. package/build/contracts/src/{challenge/ChallengeLib.sol/ChallengeLib.json → libraries/CallerChecker.sol/CallerChecker.json} +4 -4
  142. package/build/contracts/src/libraries/CryptographyPrimitives.sol/CryptographyPrimitives.dbg.json +1 -1
  143. package/build/contracts/src/libraries/CryptographyPrimitives.sol/CryptographyPrimitives.json +2 -2
  144. package/build/contracts/src/libraries/DecimalsConverterHelper.sol/DecimalsConverterHelper.dbg.json +1 -1
  145. package/build/contracts/src/libraries/DecimalsConverterHelper.sol/DecimalsConverterHelper.json +2 -2
  146. package/build/contracts/src/libraries/DelegateCallAware.sol/DelegateCallAware.dbg.json +1 -1
  147. package/build/contracts/src/libraries/DoubleLogicUUPSUpgradeable.sol/DoubleLogicUUPSUpgradeable.dbg.json +1 -1
  148. package/build/contracts/src/libraries/GasRefundEnabled.sol/GasRefundEnabled.dbg.json +1 -1
  149. package/build/contracts/src/libraries/IGasRefunder.sol/IGasRefunder.dbg.json +1 -1
  150. package/build/contracts/src/libraries/IReader4844.sol/IReader4844.dbg.json +1 -1
  151. package/build/contracts/src/libraries/MerkleLib.sol/MerkleLib.dbg.json +1 -1
  152. package/build/contracts/src/libraries/MerkleLib.sol/MerkleLib.json +2 -2
  153. package/build/contracts/src/libraries/UUPSNotUpgradeable.sol/UUPSNotUpgradeable.dbg.json +1 -1
  154. package/build/contracts/src/mocks/Benchmarks.sol/Benchmarks.dbg.json +1 -1
  155. package/build/contracts/src/mocks/Benchmarks.sol/Benchmarks.json +2 -2
  156. package/build/contracts/src/mocks/BridgeStub.sol/BridgeStub.dbg.json +1 -1
  157. package/build/contracts/src/mocks/BridgeStub.sol/BridgeStub.json +8 -8
  158. package/build/contracts/src/mocks/BridgeUnproxied.sol/BridgeUnproxied.dbg.json +1 -1
  159. package/build/contracts/src/mocks/BridgeUnproxied.sol/BridgeUnproxied.json +15 -2
  160. package/build/contracts/src/mocks/CreateTest.sol/CreateTest.dbg.json +1 -1
  161. package/build/contracts/src/mocks/CreateTest.sol/CreateTest.json +2 -2
  162. package/build/contracts/src/mocks/HostioTest.sol/HostioTest.dbg.json +1 -1
  163. package/build/contracts/src/mocks/HostioTest.sol/HostioTest.json +2 -2
  164. package/build/contracts/src/mocks/InboxStub.sol/InboxStub.dbg.json +1 -1
  165. package/build/contracts/src/mocks/InboxStub.sol/InboxStub.json +2 -2
  166. package/build/contracts/src/mocks/MerkleTreeAccess.sol/MerkleTreeAccess.dbg.json +4 -0
  167. package/build/contracts/src/mocks/MerkleTreeAccess.sol/MerkleTreeAccess.json +227 -0
  168. package/build/contracts/src/mocks/MockRollupEventInbox.sol/MockRollupEventInbox.dbg.json +4 -0
  169. package/build/contracts/src/mocks/MockRollupEventInbox.sol/MockRollupEventInbox.json +133 -0
  170. package/build/contracts/src/mocks/MultiCallTest.sol/MultiCallTest.dbg.json +1 -1
  171. package/build/contracts/src/mocks/MultiCallTest.sol/MultiCallTest.json +2 -2
  172. package/build/contracts/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol/PendingBlkTimeAndNrAdvanceCheck.dbg.json +1 -1
  173. package/build/contracts/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol/PendingBlkTimeAndNrAdvanceCheck.json +2 -2
  174. package/build/contracts/src/mocks/Program.sol/ProgramTest.dbg.json +1 -1
  175. package/build/contracts/src/mocks/Program.sol/ProgramTest.json +2 -2
  176. package/build/contracts/src/mocks/ProxyAdminForBinding.sol/ProxyAdminForBinding.dbg.json +1 -1
  177. package/build/contracts/src/mocks/ProxyAdminForBinding.sol/ProxyAdminForBinding.json +2 -2
  178. package/build/contracts/src/mocks/SdkStorage.sol/SdkStorage.dbg.json +1 -1
  179. package/build/contracts/src/mocks/SdkStorage.sol/SdkStorage.json +2 -2
  180. package/build/contracts/src/mocks/SequencerInboxBlobMock.sol/SequencerInboxBlobMock.dbg.json +4 -0
  181. package/build/contracts/src/mocks/SequencerInboxBlobMock.sol/SequencerInboxBlobMock.json +1632 -0
  182. package/build/contracts/src/mocks/SequencerInboxStub.sol/SequencerInboxStub.dbg.json +1 -1
  183. package/build/contracts/src/mocks/SequencerInboxStub.sol/SequencerInboxStub.json +566 -9
  184. package/build/contracts/src/mocks/Simple.sol/Simple.dbg.json +1 -1
  185. package/build/contracts/src/mocks/Simple.sol/Simple.json +2 -2
  186. package/build/contracts/src/mocks/SimpleCacheManager.sol/SimpleCacheManager.dbg.json +1 -1
  187. package/build/contracts/src/mocks/SimpleCacheManager.sol/SimpleCacheManager.json +2 -2
  188. package/build/contracts/src/mocks/SimpleOneStepProofEntry.sol/SimpleOneStepProofEntry.dbg.json +4 -0
  189. package/build/contracts/src/mocks/SimpleOneStepProofEntry.sol/SimpleOneStepProofEntry.json +142 -0
  190. package/build/contracts/src/mocks/SimpleProxy.sol/SimpleProxy.dbg.json +1 -1
  191. package/build/contracts/src/mocks/SimpleProxy.sol/SimpleProxy.json +2 -2
  192. package/build/contracts/src/mocks/TestWETH9.sol/IWETH9.dbg.json +4 -0
  193. package/build/contracts/src/mocks/TestWETH9.sol/IWETH9.json +31 -0
  194. package/build/contracts/src/mocks/TestWETH9.sol/TestWETH9.dbg.json +4 -0
  195. package/build/contracts/src/mocks/TestWETH9.sol/TestWETH9.json +317 -0
  196. package/build/contracts/src/mocks/UpgradeExecutorMock.sol/UpgradeExecutorMock.dbg.json +1 -1
  197. package/build/contracts/src/mocks/UpgradeExecutorMock.sol/UpgradeExecutorMock.json +15 -2
  198. package/build/contracts/src/node-interface/NodeInterface.sol/NodeInterface.dbg.json +1 -1
  199. package/build/contracts/src/node-interface/NodeInterfaceDebug.sol/NodeInterfaceDebug.dbg.json +1 -1
  200. package/build/contracts/src/osp/HashProofHelper.sol/HashProofHelper.dbg.json +1 -1
  201. package/build/contracts/src/osp/HashProofHelper.sol/HashProofHelper.json +2 -2
  202. package/build/contracts/src/osp/IOneStepProofEntry.sol/IOneStepProofEntry.dbg.json +1 -1
  203. package/build/contracts/src/osp/IOneStepProofEntry.sol/IOneStepProofEntry.json +33 -9
  204. package/build/contracts/src/osp/IOneStepProofEntry.sol/OneStepProofEntryLib.dbg.json +1 -1
  205. package/build/contracts/src/osp/IOneStepProofEntry.sol/OneStepProofEntryLib.json +2 -2
  206. package/build/contracts/src/osp/IOneStepProver.sol/IOneStepProver.dbg.json +1 -1
  207. package/build/contracts/src/osp/IOneStepProver.sol/IOneStepProver.json +5 -0
  208. package/build/contracts/src/osp/OneStepProofEntry.sol/OneStepProofEntry.dbg.json +1 -1
  209. package/build/contracts/src/osp/OneStepProofEntry.sol/OneStepProofEntry.json +35 -11
  210. package/build/contracts/src/osp/OneStepProver0.sol/OneStepProver0.dbg.json +1 -1
  211. package/build/contracts/src/osp/OneStepProver0.sol/OneStepProver0.json +7 -2
  212. package/build/contracts/src/osp/OneStepProverHostIo.sol/OneStepProverHostIo.dbg.json +1 -1
  213. package/build/contracts/src/osp/OneStepProverHostIo.sol/OneStepProverHostIo.json +7 -2
  214. package/build/contracts/src/osp/OneStepProverMath.sol/OneStepProverMath.dbg.json +1 -1
  215. package/build/contracts/src/osp/OneStepProverMath.sol/OneStepProverMath.json +7 -2
  216. package/build/contracts/src/osp/OneStepProverMemory.sol/OneStepProverMemory.dbg.json +1 -1
  217. package/build/contracts/src/osp/OneStepProverMemory.sol/OneStepProverMemory.json +7 -2
  218. package/build/contracts/src/precompiles/ArbAddressTable.sol/ArbAddressTable.dbg.json +1 -1
  219. package/build/contracts/src/precompiles/ArbAggregator.sol/ArbAggregator.dbg.json +1 -1
  220. package/build/contracts/src/precompiles/ArbBLS.sol/ArbBLS.dbg.json +1 -1
  221. package/build/contracts/src/precompiles/ArbDebug.sol/ArbDebug.dbg.json +1 -1
  222. package/build/contracts/src/precompiles/ArbFunctionTable.sol/ArbFunctionTable.dbg.json +1 -1
  223. package/build/contracts/src/precompiles/ArbGasInfo.sol/ArbGasInfo.dbg.json +1 -1
  224. package/build/contracts/src/precompiles/ArbInfo.sol/ArbInfo.dbg.json +1 -1
  225. package/build/contracts/src/precompiles/ArbOwner.sol/ArbOwner.dbg.json +1 -1
  226. package/build/contracts/src/precompiles/ArbOwnerPublic.sol/ArbOwnerPublic.dbg.json +1 -1
  227. package/build/contracts/src/precompiles/ArbRetryableTx.sol/ArbRetryableTx.dbg.json +1 -1
  228. package/build/contracts/src/precompiles/ArbStatistics.sol/ArbStatistics.dbg.json +1 -1
  229. package/build/contracts/src/precompiles/ArbSys.sol/ArbSys.dbg.json +1 -1
  230. package/build/contracts/src/precompiles/ArbWasm.sol/ArbWasm.dbg.json +1 -1
  231. package/build/contracts/src/precompiles/ArbWasmCache.sol/ArbWasmCache.dbg.json +1 -1
  232. package/build/contracts/src/precompiles/ArbosActs.sol/ArbosActs.dbg.json +1 -1
  233. package/build/contracts/src/precompiles/ArbosTest.sol/ArbosTest.dbg.json +1 -1
  234. package/build/contracts/src/rollup/AbsRollupEventInbox.sol/AbsRollupEventInbox.dbg.json +1 -1
  235. package/build/contracts/src/rollup/Assertion.sol/AssertionNodeLib.dbg.json +4 -0
  236. package/build/contracts/src/rollup/{Node.sol/NodeLib.json → Assertion.sol/AssertionNodeLib.json} +4 -4
  237. package/build/contracts/src/rollup/AssertionState.sol/AssertionStateLib.dbg.json +4 -0
  238. package/build/contracts/src/{express-lane-auction/Balance.sol/BalanceLib.json → rollup/AssertionState.sol/AssertionStateLib.json} +4 -4
  239. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/BOLDUpgradeAction.dbg.json +4 -0
  240. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/BOLDUpgradeAction.json +807 -0
  241. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ConstantArrayStorage.dbg.json +4 -0
  242. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ConstantArrayStorage.json +35 -0
  243. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollup.dbg.json +4 -0
  244. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollup.json +361 -0
  245. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollupAdmin.dbg.json +4 -0
  246. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollupAdmin.json +38 -0
  247. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ISeqInboxPostUpgradeInit.dbg.json +4 -0
  248. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ISeqInboxPostUpgradeInit.json +41 -0
  249. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/RollupReader.dbg.json +4 -0
  250. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/RollupReader.json +385 -0
  251. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/StateHashPreImageLookup.dbg.json +4 -0
  252. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/StateHashPreImageLookup.json +203 -0
  253. package/build/contracts/src/rollup/BridgeCreator.sol/BridgeCreator.dbg.json +1 -1
  254. package/build/contracts/src/rollup/BridgeCreator.sol/BridgeCreator.json +62 -10
  255. package/build/contracts/src/rollup/DeployHelper.sol/DeployHelper.dbg.json +1 -1
  256. package/build/contracts/src/rollup/DeployHelper.sol/DeployHelper.json +2 -2
  257. package/build/contracts/src/rollup/ERC20RollupEventInbox.sol/ERC20RollupEventInbox.dbg.json +1 -1
  258. package/build/contracts/src/rollup/ERC20RollupEventInbox.sol/ERC20RollupEventInbox.json +2 -2
  259. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/FactoryDeployerHelper.dbg.json +1 -1
  260. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/FactoryDeployerHelper.json +2 -2
  261. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IDeployHelper.dbg.json +1 -1
  262. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IERC20.dbg.json +1 -1
  263. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IERC20Bridge.dbg.json +1 -1
  264. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IInboxBase.dbg.json +1 -1
  265. package/build/contracts/src/rollup/IRollupAdmin.sol/IRollupAdmin.dbg.json +1 -1
  266. package/build/contracts/src/rollup/IRollupAdmin.sol/IRollupAdmin.json +473 -99
  267. package/build/contracts/src/rollup/IRollupCore.sol/IRollupCore.dbg.json +1 -1
  268. package/build/contracts/src/rollup/IRollupCore.sol/IRollupCore.json +315 -221
  269. package/build/contracts/src/rollup/IRollupEventInbox.sol/IRollupEventInbox.dbg.json +1 -1
  270. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUser.dbg.json +1 -1
  271. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUser.json +678 -499
  272. package/build/contracts/src/rollup/RollupAdminLogic.sol/RollupAdminLogic.dbg.json +1 -1
  273. package/build/contracts/src/rollup/RollupAdminLogic.sol/RollupAdminLogic.json +806 -435
  274. package/build/contracts/src/rollup/RollupCore.sol/RollupCore.dbg.json +1 -1
  275. package/build/contracts/src/rollup/RollupCore.sol/RollupCore.json +323 -235
  276. package/build/contracts/src/rollup/RollupCreator.sol/RollupCreator.dbg.json +1 -1
  277. package/build/contracts/src/rollup/RollupCreator.sol/RollupCreator.json +98 -36
  278. package/build/contracts/src/rollup/RollupEventInbox.sol/RollupEventInbox.dbg.json +1 -1
  279. package/build/contracts/src/rollup/RollupEventInbox.sol/RollupEventInbox.json +2 -2
  280. package/build/contracts/src/rollup/RollupLib.sol/RollupLib.dbg.json +1 -1
  281. package/build/contracts/src/rollup/RollupLib.sol/RollupLib.json +2 -2
  282. package/build/contracts/src/rollup/RollupProxy.sol/RollupProxy.dbg.json +1 -1
  283. package/build/contracts/src/rollup/RollupProxy.sol/RollupProxy.json +97 -16
  284. package/build/contracts/src/rollup/RollupUserLogic.sol/RollupUserLogic.dbg.json +1 -1
  285. package/build/contracts/src/rollup/RollupUserLogic.sol/RollupUserLogic.json +924 -535
  286. package/build/contracts/src/rollup/ValidatorWallet.sol/ValidatorWallet.dbg.json +1 -1
  287. package/build/contracts/src/rollup/ValidatorWallet.sol/ValidatorWallet.json +15 -43
  288. package/build/contracts/src/rollup/ValidatorWalletCreator.sol/ValidatorWalletCreator.dbg.json +1 -1
  289. package/build/contracts/src/rollup/ValidatorWalletCreator.sol/ValidatorWalletCreator.json +2 -2
  290. package/build/contracts/src/state/Deserialize.sol/Deserialize.dbg.json +1 -1
  291. package/build/contracts/src/state/Deserialize.sol/Deserialize.json +2 -2
  292. package/build/contracts/src/state/GlobalState.sol/GlobalStateLib.dbg.json +1 -1
  293. package/build/contracts/src/state/GlobalState.sol/GlobalStateLib.json +2 -2
  294. package/build/contracts/src/state/Instructions.sol/Instructions.dbg.json +1 -1
  295. package/build/contracts/src/state/Instructions.sol/Instructions.json +2 -2
  296. package/build/contracts/src/state/Machine.sol/MachineLib.dbg.json +1 -1
  297. package/build/contracts/src/state/Machine.sol/MachineLib.json +2 -2
  298. package/build/contracts/src/state/MerkleProof.sol/MerkleProofLib.dbg.json +1 -1
  299. package/build/contracts/src/state/MerkleProof.sol/MerkleProofLib.json +2 -2
  300. package/build/contracts/src/state/Module.sol/ModuleLib.dbg.json +1 -1
  301. package/build/contracts/src/state/Module.sol/ModuleLib.json +2 -2
  302. package/build/contracts/src/state/ModuleMemory.sol/ModuleMemoryLib.dbg.json +1 -1
  303. package/build/contracts/src/state/ModuleMemory.sol/ModuleMemoryLib.json +2 -2
  304. package/build/contracts/src/state/ModuleMemoryCompact.sol/ModuleMemoryCompactLib.dbg.json +1 -1
  305. package/build/contracts/src/state/ModuleMemoryCompact.sol/ModuleMemoryCompactLib.json +2 -2
  306. package/build/contracts/src/state/MultiStack.sol/MultiStackLib.dbg.json +1 -1
  307. package/build/contracts/src/state/MultiStack.sol/MultiStackLib.json +2 -2
  308. package/build/contracts/src/state/PcArray.sol/PcArrayLib.dbg.json +1 -1
  309. package/build/contracts/src/state/PcArray.sol/PcArrayLib.json +2 -2
  310. package/build/contracts/src/state/StackFrame.sol/StackFrameLib.dbg.json +1 -1
  311. package/build/contracts/src/state/StackFrame.sol/StackFrameLib.json +2 -2
  312. package/build/contracts/src/state/Value.sol/ValueLib.dbg.json +1 -1
  313. package/build/contracts/src/state/Value.sol/ValueLib.json +2 -2
  314. package/build/contracts/src/state/ValueArray.sol/ValueArrayLib.dbg.json +1 -1
  315. package/build/contracts/src/state/ValueArray.sol/ValueArrayLib.json +2 -2
  316. package/build/contracts/src/state/ValueStack.sol/ValueStackLib.dbg.json +1 -1
  317. package/build/contracts/src/state/ValueStack.sol/ValueStackLib.json +2 -2
  318. package/build/contracts/src/test-helpers/BridgeTester.sol/BridgeTester.dbg.json +1 -1
  319. package/build/contracts/src/test-helpers/BridgeTester.sol/BridgeTester.json +15 -2
  320. package/build/contracts/src/test-helpers/CryptographyPrimitivesTester.sol/CryptographyPrimitivesTester.dbg.json +1 -1
  321. package/build/contracts/src/test-helpers/CryptographyPrimitivesTester.sol/CryptographyPrimitivesTester.json +2 -2
  322. package/build/contracts/src/test-helpers/EthVault.sol/EthVault.dbg.json +1 -1
  323. package/build/contracts/src/test-helpers/EthVault.sol/EthVault.json +2 -2
  324. package/build/contracts/src/test-helpers/MessageTester.sol/MessageTester.dbg.json +1 -1
  325. package/build/contracts/src/test-helpers/MessageTester.sol/MessageTester.json +2 -2
  326. package/build/contracts/src/test-helpers/OutboxWithoutOptTester.sol/OutboxWithoutOptTester.dbg.json +1 -1
  327. package/build/contracts/src/test-helpers/OutboxWithoutOptTester.sol/OutboxWithoutOptTester.json +2 -2
  328. package/build/contracts/src/test-helpers/RollupMock.sol/RollupMock.dbg.json +1 -1
  329. package/build/contracts/src/test-helpers/RollupMock.sol/RollupMock.json +2 -15
  330. package/build/contracts/src/test-helpers/TestToken.sol/TestToken.dbg.json +1 -1
  331. package/build/contracts/src/test-helpers/TestToken.sol/TestToken.json +2 -2
  332. package/build/contracts/src/test-helpers/ValueArrayTester.sol/ValueArrayTester.dbg.json +1 -1
  333. package/build/contracts/src/test-helpers/ValueArrayTester.sol/ValueArrayTester.json +2 -2
  334. package/out/yul/Reader4844.yul/Reader4844.json +1 -1
  335. package/package.json +11 -4
  336. package/src/assertionStakingPool/AbsBoldStakingPool.sol +66 -0
  337. package/src/assertionStakingPool/AssertionStakingPool.sol +70 -0
  338. package/src/assertionStakingPool/AssertionStakingPoolCreator.sol +35 -0
  339. package/src/assertionStakingPool/EdgeStakingPool.sol +57 -0
  340. package/src/assertionStakingPool/EdgeStakingPoolCreator.sol +34 -0
  341. package/src/assertionStakingPool/StakingPoolCreatorUtils.sol +25 -0
  342. package/src/assertionStakingPool/interfaces/IAbsBoldStakingPool.sol +41 -0
  343. package/src/assertionStakingPool/interfaces/IAssertionStakingPool.sol +36 -0
  344. package/src/assertionStakingPool/interfaces/IAssertionStakingPoolCreator.sol +31 -0
  345. package/src/assertionStakingPool/interfaces/IEdgeStakingPool.sol +27 -0
  346. package/src/assertionStakingPool/interfaces/IEdgeStakingPoolCreator.sol +28 -0
  347. package/src/bridge/AbsBridge.sol +38 -48
  348. package/src/bridge/AbsInbox.sol +89 -92
  349. package/src/bridge/AbsOutbox.sol +23 -37
  350. package/src/bridge/Bridge.sol +6 -4
  351. package/src/bridge/DelayBuffer.sol +123 -0
  352. package/src/bridge/DelayBufferTypes.sol +38 -0
  353. package/src/bridge/ERC20Bridge.sol +8 -4
  354. package/src/bridge/ERC20Inbox.sol +46 -53
  355. package/src/bridge/ERC20Outbox.sol +7 -3
  356. package/src/bridge/GasRefunder.sol +38 -24
  357. package/src/bridge/IBridge.sol +30 -21
  358. package/src/bridge/IERC20Bridge.sol +1 -1
  359. package/src/bridge/IERC20Inbox.sol +4 -2
  360. package/src/bridge/IEthBridge.sol +4 -2
  361. package/src/bridge/IInbox.sol +4 -2
  362. package/src/bridge/IInboxBase.sol +16 -8
  363. package/src/bridge/IOutbox.sol +13 -8
  364. package/src/bridge/ISequencerInbox.sol +118 -13
  365. package/src/bridge/Inbox.sol +134 -151
  366. package/src/bridge/Messages.sol +48 -18
  367. package/src/bridge/Outbox.sol +6 -2
  368. package/src/bridge/SequencerInbox.sol +343 -279
  369. package/src/chain/CacheManager.sol +49 -18
  370. package/src/challengeV2/EdgeChallengeManager.sol +559 -0
  371. package/src/challengeV2/IAssertionChain.sol +39 -0
  372. package/src/challengeV2/IEdgeChallengeManager.sol +233 -0
  373. package/src/challengeV2/libraries/ArrayUtilsLib.sol +61 -0
  374. package/src/challengeV2/libraries/ChallengeEdgeLib.sol +277 -0
  375. package/src/challengeV2/libraries/ChallengeErrors.sol +108 -0
  376. package/src/challengeV2/libraries/EdgeChallengeManagerLib.sol +819 -0
  377. package/src/challengeV2/libraries/Enums.sol +26 -0
  378. package/src/challengeV2/libraries/MerkleTreeAccumulatorLib.sol +390 -0
  379. package/src/challengeV2/libraries/Structs.sol +176 -0
  380. package/src/challengeV2/libraries/UintUtilsLib.sol +74 -0
  381. package/src/libraries/AddressAliasHelper.sol +6 -2
  382. package/src/libraries/AdminFallbackProxy.sol +8 -4
  383. package/src/libraries/ArbitrumChecker.sol +3 -4
  384. package/src/libraries/CallerChecker.sol +18 -0
  385. package/src/libraries/CryptographyPrimitives.sol +39 -46
  386. package/src/libraries/DecimalsConverterHelper.sol +2 -4
  387. package/src/libraries/DoubleLogicUUPSUpgradeable.sol +10 -7
  388. package/src/libraries/Error.sol +21 -3
  389. package/src/libraries/GasRefundEnabled.sol +5 -6
  390. package/src/libraries/MerkleLib.sol +6 -5
  391. package/src/libraries/UUPSNotUpgradeable.sol +2 -4
  392. package/src/mocks/BridgeStub.sol +50 -48
  393. package/src/mocks/CreateTest.sol +3 -1
  394. package/src/mocks/HostioTest.sol +20 -16
  395. package/src/mocks/InboxStub.sol +22 -17
  396. package/src/mocks/MerkleTreeAccess.sol +72 -0
  397. package/src/mocks/MockRollupEventInbox.sol +59 -0
  398. package/src/mocks/MultiCallTest.sol +3 -1
  399. package/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol +3 -1
  400. package/src/mocks/Program.sol +9 -7
  401. package/src/mocks/SequencerInboxBlobMock.sol +38 -0
  402. package/src/mocks/SequencerInboxStub.sol +9 -12
  403. package/src/mocks/Simple.sol +13 -25
  404. package/src/mocks/SimpleCacheManager.sol +10 -3
  405. package/src/mocks/SimpleOneStepProofEntry.sol +60 -0
  406. package/src/mocks/SimpleProxy.sol +3 -1
  407. package/src/mocks/TestWETH9.sol +30 -0
  408. package/src/mocks/UpgradeExecutorMock.sol +10 -17
  409. package/src/node-interface/NodeInterface.sol +23 -22
  410. package/src/node-interface/NodeInterfaceDebug.sol +5 -3
  411. package/src/osp/HashProofHelper.sol +9 -10
  412. package/src/osp/IOneStepProofEntry.sol +14 -9
  413. package/src/osp/IOneStepProver.sol +1 -0
  414. package/src/osp/OneStepProofEntry.sol +63 -54
  415. package/src/osp/OneStepProver0.sol +14 -27
  416. package/src/osp/OneStepProverHostIo.sol +31 -58
  417. package/src/osp/OneStepProverMath.sol +15 -23
  418. package/src/osp/OneStepProverMemory.sol +9 -23
  419. package/src/precompiles/ArbAddressTable.sol +19 -9
  420. package/src/precompiles/ArbAggregator.sol +12 -4
  421. package/src/precompiles/ArbBLS.sol +1 -3
  422. package/src/precompiles/ArbDebug.sol +5 -11
  423. package/src/precompiles/ArbFunctionTable.sol +7 -10
  424. package/src/precompiles/ArbGasInfo.sol +9 -43
  425. package/src/precompiles/ArbInfo.sol +6 -2
  426. package/src/precompiles/ArbOwner.sol +101 -34
  427. package/src/precompiles/ArbOwnerPublic.sol +6 -2
  428. package/src/precompiles/ArbRetryableTx.sol +15 -5
  429. package/src/precompiles/ArbStatistics.sol +1 -8
  430. package/src/precompiles/ArbSys.sol +16 -18
  431. package/src/precompiles/ArbWasm.sol +24 -14
  432. package/src/precompiles/ArbWasmCache.sol +15 -5
  433. package/src/precompiles/ArbosTest.sol +3 -1
  434. package/src/rollup/AbsRollupEventInbox.sol +15 -16
  435. package/src/rollup/Assertion.sol +100 -0
  436. package/src/rollup/AssertionState.sol +29 -0
  437. package/src/rollup/BOLDUpgradeAction.sol +631 -0
  438. package/src/rollup/BridgeCreator.sol +42 -15
  439. package/src/rollup/Config.sol +15 -7
  440. package/src/rollup/DeployHelper.sol +12 -31
  441. package/src/rollup/ERC20RollupEventInbox.sol +8 -9
  442. package/src/rollup/FactoryDeployerHelper.sol +8 -10
  443. package/src/rollup/IRollupAdmin.sol +127 -45
  444. package/src/rollup/IRollupCore.sol +64 -84
  445. package/src/rollup/IRollupEventInbox.sol +3 -1
  446. package/src/rollup/IRollupLogic.sol +35 -72
  447. package/src/rollup/RollupAdminLogic.sol +224 -203
  448. package/src/rollup/RollupCore.sol +407 -428
  449. package/src/rollup/RollupCreator.sol +84 -71
  450. package/src/rollup/RollupEventInbox.sol +7 -7
  451. package/src/rollup/RollupLib.sol +50 -86
  452. package/src/rollup/RollupProxy.sol +8 -12
  453. package/src/rollup/RollupUserLogic.sol +279 -644
  454. package/src/rollup/ValidatorUtils.sol +0 -242
  455. package/src/rollup/ValidatorWallet.sol +22 -38
  456. package/src/rollup/ValidatorWalletCreator.sol +8 -8
  457. package/src/state/Deserialize.sol +74 -96
  458. package/src/state/GlobalState.sol +74 -20
  459. package/src/state/Instructions.sol +4 -3
  460. package/src/state/Machine.sol +18 -19
  461. package/src/state/Module.sol +14 -13
  462. package/src/state/ModuleMemory.sol +6 -25
  463. package/src/state/ModuleMemoryCompact.sol +3 -1
  464. package/src/state/MultiStack.sol +16 -20
  465. package/src/state/PcArray.sol +7 -7
  466. package/src/state/StackFrame.sol +21 -14
  467. package/src/state/Value.sol +18 -6
  468. package/src/state/ValueArray.sol +7 -7
  469. package/src/state/ValueStack.sol +9 -3
  470. package/src/test-helpers/BridgeTester.sol +32 -42
  471. package/src/test-helpers/CryptographyPrimitivesTester.sol +12 -13
  472. package/src/test-helpers/EthVault.sol +4 -2
  473. package/src/test-helpers/InterfaceCompatibilityTester.sol +1 -1
  474. package/src/test-helpers/MessageTester.sol +3 -10
  475. package/src/test-helpers/OutboxWithoutOptTester.sol +12 -19
  476. package/src/test-helpers/RollupMock.sol +3 -7
  477. package/src/test-helpers/TestToken.sol +4 -2
  478. package/build/contracts/@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.dbg.json +0 -4
  479. package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlEnumerableUpgradeable.sol/AccessControlEnumerableUpgradeable.dbg.json +0 -4
  480. package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlEnumerableUpgradeable.sol/AccessControlEnumerableUpgradeable.json +0 -258
  481. package/build/contracts/@openzeppelin/contracts-upgradeable/access/IAccessControlEnumerableUpgradeable.sol/IAccessControlEnumerableUpgradeable.dbg.json +0 -4
  482. package/build/contracts/@openzeppelin/contracts-upgradeable/access/IAccessControlEnumerableUpgradeable.sol/IAccessControlEnumerableUpgradeable.json +0 -226
  483. package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol/ERC20Upgradeable.dbg.json +0 -4
  484. package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol/ERC20Upgradeable.json +0 -281
  485. package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.dbg.json +0 -4
  486. package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20BurnableUpgradeable.sol/ERC20BurnableUpgradeable.dbg.json +0 -4
  487. package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20BurnableUpgradeable.sol/ERC20BurnableUpgradeable.json +0 -312
  488. package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20MetadataUpgradeable.sol/IERC20MetadataUpgradeable.dbg.json +0 -4
  489. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/cryptography/ECDSAUpgradeable.sol/ECDSAUpgradeable.dbg.json +0 -4
  490. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/cryptography/ECDSAUpgradeable.sol/ECDSAUpgradeable.json +0 -10
  491. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/cryptography/draft-EIP712Upgradeable.sol/EIP712Upgradeable.dbg.json +0 -4
  492. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/cryptography/draft-EIP712Upgradeable.sol/EIP712Upgradeable.json +0 -10
  493. package/build/contracts/src/challenge/ChallengeLib.sol/ChallengeLib.dbg.json +0 -4
  494. package/build/contracts/src/challenge/ChallengeManager.sol/ChallengeManager.dbg.json +0 -4
  495. package/build/contracts/src/challenge/ChallengeManager.sol/ChallengeManager.json +0 -746
  496. package/build/contracts/src/challenge/IChallengeManager.sol/IChallengeManager.dbg.json +0 -4
  497. package/build/contracts/src/challenge/IChallengeManager.sol/IChallengeManager.json +0 -441
  498. package/build/contracts/src/challenge/IChallengeResultReceiver.sol/IChallengeResultReceiver.dbg.json +0 -4
  499. package/build/contracts/src/challenge/IChallengeResultReceiver.sol/IChallengeResultReceiver.json +0 -34
  500. package/build/contracts/src/express-lane-auction/Balance.sol/BalanceLib.dbg.json +0 -4
  501. package/build/contracts/src/express-lane-auction/Burner.sol/Burner.dbg.json +0 -4
  502. package/build/contracts/src/express-lane-auction/Burner.sol/Burner.json +0 -47
  503. package/build/contracts/src/express-lane-auction/ELCRound.sol/LatestELCRoundsLib.dbg.json +0 -4
  504. package/build/contracts/src/express-lane-auction/ExpressLaneAuction.sol/ExpressLaneAuction.dbg.json +0 -4
  505. package/build/contracts/src/express-lane-auction/ExpressLaneAuction.sol/ExpressLaneAuction.json +0 -1588
  506. package/build/contracts/src/express-lane-auction/IExpressLaneAuction.sol/IExpressLaneAuction.dbg.json +0 -4
  507. package/build/contracts/src/express-lane-auction/IExpressLaneAuction.sol/IExpressLaneAuction.json +0 -1296
  508. package/build/contracts/src/express-lane-auction/RoundTimingInfo.sol/RoundTimingInfoLib.dbg.json +0 -4
  509. package/build/contracts/src/express-lane-auction/RoundTimingInfo.sol/RoundTimingInfoLib.json +0 -10
  510. package/build/contracts/src/mocks/MockResultReceiver.sol/MockResultReceiver.dbg.json +0 -4
  511. package/build/contracts/src/mocks/MockResultReceiver.sol/MockResultReceiver.json +0 -188
  512. package/build/contracts/src/mocks/SingleExecutionChallenge.sol/SingleExecutionChallenge.dbg.json +0 -4
  513. package/build/contracts/src/mocks/SingleExecutionChallenge.sol/SingleExecutionChallenge.json +0 -797
  514. package/build/contracts/src/mocks/TimedOutChallengeManager.sol/TimedOutChallengeManager.dbg.json +0 -4
  515. package/build/contracts/src/mocks/TimedOutChallengeManager.sol/TimedOutChallengeManager.json +0 -746
  516. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserAbs.dbg.json +0 -4
  517. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserAbs.json +0 -1332
  518. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserERC20.dbg.json +0 -4
  519. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserERC20.json +0 -1466
  520. package/build/contracts/src/rollup/Node.sol/NodeLib.dbg.json +0 -4
  521. package/build/contracts/src/rollup/RollupUserLogic.sol/AbsRollupUserLogic.dbg.json +0 -4
  522. package/build/contracts/src/rollup/RollupUserLogic.sol/AbsRollupUserLogic.json +0 -1614
  523. package/build/contracts/src/rollup/RollupUserLogic.sol/ERC20RollupUserLogic.dbg.json +0 -4
  524. package/build/contracts/src/rollup/RollupUserLogic.sol/ERC20RollupUserLogic.json +0 -1748
  525. package/build/contracts/src/rollup/ValidatorUtils.sol/ValidatorUtils.dbg.json +0 -4
  526. package/build/contracts/src/rollup/ValidatorUtils.sol/ValidatorUtils.json +0 -379
  527. package/src/challenge/ChallengeLib.sol +0 -88
  528. package/src/challenge/ChallengeManager.sol +0 -375
  529. package/src/challenge/IChallengeManager.sol +0 -86
  530. package/src/challenge/IChallengeResultReceiver.sol +0 -13
  531. package/src/express-lane-auction/Balance.sol +0 -142
  532. package/src/express-lane-auction/Burner.sol +0 -25
  533. package/src/express-lane-auction/ELCRound.sol +0 -73
  534. package/src/express-lane-auction/Errors.sol +0 -31
  535. package/src/express-lane-auction/ExpressLaneAuction.sol +0 -565
  536. package/src/express-lane-auction/IExpressLaneAuction.sol +0 -421
  537. package/src/express-lane-auction/RoundTimingInfo.sol +0 -115
  538. package/src/mocks/MockResultReceiver.sol +0 -59
  539. package/src/mocks/SingleExecutionChallenge.sol +0 -41
  540. package/src/mocks/TimedOutChallengeManager.sol +0 -13
  541. package/src/rollup/Node.sol +0 -113
@@ -1,1588 +0,0 @@
1
- {
2
- "_format": "hh-sol-artifact-1",
3
- "contractName": "ExpressLaneAuction",
4
- "sourceName": "src/express-lane-auction/ExpressLaneAuction.sol",
5
- "abi": [
6
- {
7
- "inputs": [],
8
- "name": "AuctionNotClosed",
9
- "type": "error"
10
- },
11
- {
12
- "inputs": [],
13
- "name": "BidsWrongOrder",
14
- "type": "error"
15
- },
16
- {
17
- "inputs": [
18
- {
19
- "internalType": "uint64",
20
- "name": "fixedUntilRound",
21
- "type": "uint64"
22
- }
23
- ],
24
- "name": "FixedTransferor",
25
- "type": "error"
26
- },
27
- {
28
- "inputs": [
29
- {
30
- "internalType": "uint256",
31
- "name": "amountRequested",
32
- "type": "uint256"
33
- },
34
- {
35
- "internalType": "uint256",
36
- "name": "balance",
37
- "type": "uint256"
38
- }
39
- ],
40
- "name": "InsufficientBalance",
41
- "type": "error"
42
- },
43
- {
44
- "inputs": [
45
- {
46
- "internalType": "address",
47
- "name": "account",
48
- "type": "address"
49
- },
50
- {
51
- "internalType": "uint256",
52
- "name": "amountRequested",
53
- "type": "uint256"
54
- },
55
- {
56
- "internalType": "uint256",
57
- "name": "balance",
58
- "type": "uint256"
59
- }
60
- ],
61
- "name": "InsufficientBalanceAcc",
62
- "type": "error"
63
- },
64
- {
65
- "inputs": [
66
- {
67
- "internalType": "uint64",
68
- "name": "currentRound",
69
- "type": "uint64"
70
- },
71
- {
72
- "internalType": "uint64",
73
- "name": "newRound",
74
- "type": "uint64"
75
- }
76
- ],
77
- "name": "InvalidNewRound",
78
- "type": "error"
79
- },
80
- {
81
- "inputs": [
82
- {
83
- "internalType": "uint64",
84
- "name": "currentStart",
85
- "type": "uint64"
86
- },
87
- {
88
- "internalType": "uint64",
89
- "name": "newStart",
90
- "type": "uint64"
91
- }
92
- ],
93
- "name": "InvalidNewStart",
94
- "type": "error"
95
- },
96
- {
97
- "inputs": [],
98
- "name": "NegativeOffset",
99
- "type": "error"
100
- },
101
- {
102
- "inputs": [
103
- {
104
- "internalType": "int64",
105
- "name": "roundStart",
106
- "type": "int64"
107
- }
108
- ],
109
- "name": "NegativeRoundStart",
110
- "type": "error"
111
- },
112
- {
113
- "inputs": [
114
- {
115
- "internalType": "uint64",
116
- "name": "round",
117
- "type": "uint64"
118
- },
119
- {
120
- "internalType": "address",
121
- "name": "controller",
122
- "type": "address"
123
- },
124
- {
125
- "internalType": "address",
126
- "name": "sender",
127
- "type": "address"
128
- }
129
- ],
130
- "name": "NotExpressLaneController",
131
- "type": "error"
132
- },
133
- {
134
- "inputs": [
135
- {
136
- "internalType": "uint64",
137
- "name": "round",
138
- "type": "uint64"
139
- },
140
- {
141
- "internalType": "address",
142
- "name": "expectedTransferor",
143
- "type": "address"
144
- },
145
- {
146
- "internalType": "address",
147
- "name": "msgSender",
148
- "type": "address"
149
- }
150
- ],
151
- "name": "NotTransferor",
152
- "type": "error"
153
- },
154
- {
155
- "inputs": [],
156
- "name": "NothingToWithdraw",
157
- "type": "error"
158
- },
159
- {
160
- "inputs": [],
161
- "name": "ReserveBlackout",
162
- "type": "error"
163
- },
164
- {
165
- "inputs": [
166
- {
167
- "internalType": "uint256",
168
- "name": "bidAmount",
169
- "type": "uint256"
170
- },
171
- {
172
- "internalType": "uint256",
173
- "name": "reservePrice",
174
- "type": "uint256"
175
- }
176
- ],
177
- "name": "ReservePriceNotMet",
178
- "type": "error"
179
- },
180
- {
181
- "inputs": [
182
- {
183
- "internalType": "uint256",
184
- "name": "reservePrice",
185
- "type": "uint256"
186
- },
187
- {
188
- "internalType": "uint256",
189
- "name": "minReservePrice",
190
- "type": "uint256"
191
- }
192
- ],
193
- "name": "ReservePriceTooLow",
194
- "type": "error"
195
- },
196
- {
197
- "inputs": [
198
- {
199
- "internalType": "uint64",
200
- "name": "round",
201
- "type": "uint64"
202
- }
203
- ],
204
- "name": "RoundAlreadyResolved",
205
- "type": "error"
206
- },
207
- {
208
- "inputs": [],
209
- "name": "RoundDurationTooShort",
210
- "type": "error"
211
- },
212
- {
213
- "inputs": [
214
- {
215
- "internalType": "uint64",
216
- "name": "round",
217
- "type": "uint64"
218
- }
219
- ],
220
- "name": "RoundNotResolved",
221
- "type": "error"
222
- },
223
- {
224
- "inputs": [
225
- {
226
- "internalType": "uint64",
227
- "name": "roundDurationSeconds",
228
- "type": "uint64"
229
- }
230
- ],
231
- "name": "RoundTooLong",
232
- "type": "error"
233
- },
234
- {
235
- "inputs": [
236
- {
237
- "internalType": "uint64",
238
- "name": "round",
239
- "type": "uint64"
240
- },
241
- {
242
- "internalType": "uint64",
243
- "name": "currentRound",
244
- "type": "uint64"
245
- }
246
- ],
247
- "name": "RoundTooOld",
248
- "type": "error"
249
- },
250
- {
251
- "inputs": [],
252
- "name": "SameBidder",
253
- "type": "error"
254
- },
255
- {
256
- "inputs": [],
257
- "name": "TieBidsWrongOrder",
258
- "type": "error"
259
- },
260
- {
261
- "inputs": [],
262
- "name": "WithdrawalInProgress",
263
- "type": "error"
264
- },
265
- {
266
- "inputs": [],
267
- "name": "WithdrawalMaxRound",
268
- "type": "error"
269
- },
270
- {
271
- "inputs": [],
272
- "name": "ZeroAmount",
273
- "type": "error"
274
- },
275
- {
276
- "inputs": [],
277
- "name": "ZeroAuctionClosingSeconds",
278
- "type": "error"
279
- },
280
- {
281
- "inputs": [],
282
- "name": "ZeroBiddingToken",
283
- "type": "error"
284
- },
285
- {
286
- "anonymous": false,
287
- "inputs": [
288
- {
289
- "indexed": true,
290
- "internalType": "bool",
291
- "name": "isMultiBidAuction",
292
- "type": "bool"
293
- },
294
- {
295
- "indexed": false,
296
- "internalType": "uint64",
297
- "name": "round",
298
- "type": "uint64"
299
- },
300
- {
301
- "indexed": true,
302
- "internalType": "address",
303
- "name": "firstPriceBidder",
304
- "type": "address"
305
- },
306
- {
307
- "indexed": true,
308
- "internalType": "address",
309
- "name": "firstPriceExpressLaneController",
310
- "type": "address"
311
- },
312
- {
313
- "indexed": false,
314
- "internalType": "uint256",
315
- "name": "firstPriceAmount",
316
- "type": "uint256"
317
- },
318
- {
319
- "indexed": false,
320
- "internalType": "uint256",
321
- "name": "price",
322
- "type": "uint256"
323
- },
324
- {
325
- "indexed": false,
326
- "internalType": "uint64",
327
- "name": "roundStartTimestamp",
328
- "type": "uint64"
329
- },
330
- {
331
- "indexed": false,
332
- "internalType": "uint64",
333
- "name": "roundEndTimestamp",
334
- "type": "uint64"
335
- }
336
- ],
337
- "name": "AuctionResolved",
338
- "type": "event"
339
- },
340
- {
341
- "anonymous": false,
342
- "inputs": [
343
- {
344
- "indexed": true,
345
- "internalType": "address",
346
- "name": "account",
347
- "type": "address"
348
- },
349
- {
350
- "indexed": false,
351
- "internalType": "uint256",
352
- "name": "amount",
353
- "type": "uint256"
354
- }
355
- ],
356
- "name": "Deposit",
357
- "type": "event"
358
- },
359
- {
360
- "anonymous": false,
361
- "inputs": [
362
- {
363
- "indexed": true,
364
- "internalType": "bytes32",
365
- "name": "role",
366
- "type": "bytes32"
367
- },
368
- {
369
- "indexed": true,
370
- "internalType": "bytes32",
371
- "name": "previousAdminRole",
372
- "type": "bytes32"
373
- },
374
- {
375
- "indexed": true,
376
- "internalType": "bytes32",
377
- "name": "newAdminRole",
378
- "type": "bytes32"
379
- }
380
- ],
381
- "name": "RoleAdminChanged",
382
- "type": "event"
383
- },
384
- {
385
- "anonymous": false,
386
- "inputs": [
387
- {
388
- "indexed": true,
389
- "internalType": "bytes32",
390
- "name": "role",
391
- "type": "bytes32"
392
- },
393
- {
394
- "indexed": true,
395
- "internalType": "address",
396
- "name": "account",
397
- "type": "address"
398
- },
399
- {
400
- "indexed": true,
401
- "internalType": "address",
402
- "name": "sender",
403
- "type": "address"
404
- }
405
- ],
406
- "name": "RoleGranted",
407
- "type": "event"
408
- },
409
- {
410
- "anonymous": false,
411
- "inputs": [
412
- {
413
- "indexed": true,
414
- "internalType": "bytes32",
415
- "name": "role",
416
- "type": "bytes32"
417
- },
418
- {
419
- "indexed": true,
420
- "internalType": "address",
421
- "name": "account",
422
- "type": "address"
423
- },
424
- {
425
- "indexed": true,
426
- "internalType": "address",
427
- "name": "sender",
428
- "type": "address"
429
- }
430
- ],
431
- "name": "RoleRevoked",
432
- "type": "event"
433
- },
434
- {
435
- "anonymous": false,
436
- "inputs": [
437
- {
438
- "indexed": false,
439
- "internalType": "address",
440
- "name": "oldBeneficiary",
441
- "type": "address"
442
- },
443
- {
444
- "indexed": false,
445
- "internalType": "address",
446
- "name": "newBeneficiary",
447
- "type": "address"
448
- }
449
- ],
450
- "name": "SetBeneficiary",
451
- "type": "event"
452
- },
453
- {
454
- "anonymous": false,
455
- "inputs": [
456
- {
457
- "indexed": false,
458
- "internalType": "uint64",
459
- "name": "round",
460
- "type": "uint64"
461
- },
462
- {
463
- "indexed": true,
464
- "internalType": "address",
465
- "name": "previousExpressLaneController",
466
- "type": "address"
467
- },
468
- {
469
- "indexed": true,
470
- "internalType": "address",
471
- "name": "newExpressLaneController",
472
- "type": "address"
473
- },
474
- {
475
- "indexed": true,
476
- "internalType": "address",
477
- "name": "transferor",
478
- "type": "address"
479
- },
480
- {
481
- "indexed": false,
482
- "internalType": "uint64",
483
- "name": "startTimestamp",
484
- "type": "uint64"
485
- },
486
- {
487
- "indexed": false,
488
- "internalType": "uint64",
489
- "name": "endTimestamp",
490
- "type": "uint64"
491
- }
492
- ],
493
- "name": "SetExpressLaneController",
494
- "type": "event"
495
- },
496
- {
497
- "anonymous": false,
498
- "inputs": [
499
- {
500
- "indexed": false,
501
- "internalType": "uint256",
502
- "name": "oldPrice",
503
- "type": "uint256"
504
- },
505
- {
506
- "indexed": false,
507
- "internalType": "uint256",
508
- "name": "newPrice",
509
- "type": "uint256"
510
- }
511
- ],
512
- "name": "SetMinReservePrice",
513
- "type": "event"
514
- },
515
- {
516
- "anonymous": false,
517
- "inputs": [
518
- {
519
- "indexed": false,
520
- "internalType": "uint256",
521
- "name": "oldReservePrice",
522
- "type": "uint256"
523
- },
524
- {
525
- "indexed": false,
526
- "internalType": "uint256",
527
- "name": "newReservePrice",
528
- "type": "uint256"
529
- }
530
- ],
531
- "name": "SetReservePrice",
532
- "type": "event"
533
- },
534
- {
535
- "anonymous": false,
536
- "inputs": [
537
- {
538
- "indexed": false,
539
- "internalType": "uint64",
540
- "name": "currentRound",
541
- "type": "uint64"
542
- },
543
- {
544
- "indexed": false,
545
- "internalType": "int64",
546
- "name": "offsetTimestamp",
547
- "type": "int64"
548
- },
549
- {
550
- "indexed": false,
551
- "internalType": "uint64",
552
- "name": "roundDurationSeconds",
553
- "type": "uint64"
554
- },
555
- {
556
- "indexed": false,
557
- "internalType": "uint64",
558
- "name": "auctionClosingSeconds",
559
- "type": "uint64"
560
- },
561
- {
562
- "indexed": false,
563
- "internalType": "uint64",
564
- "name": "reserveSubmissionSeconds",
565
- "type": "uint64"
566
- }
567
- ],
568
- "name": "SetRoundTimingInfo",
569
- "type": "event"
570
- },
571
- {
572
- "anonymous": false,
573
- "inputs": [
574
- {
575
- "indexed": true,
576
- "internalType": "address",
577
- "name": "expressLaneController",
578
- "type": "address"
579
- },
580
- {
581
- "indexed": true,
582
- "internalType": "address",
583
- "name": "transferor",
584
- "type": "address"
585
- },
586
- {
587
- "indexed": false,
588
- "internalType": "uint64",
589
- "name": "fixedUntilRound",
590
- "type": "uint64"
591
- }
592
- ],
593
- "name": "SetTransferor",
594
- "type": "event"
595
- },
596
- {
597
- "anonymous": false,
598
- "inputs": [
599
- {
600
- "indexed": true,
601
- "internalType": "address",
602
- "name": "account",
603
- "type": "address"
604
- },
605
- {
606
- "indexed": false,
607
- "internalType": "uint256",
608
- "name": "withdrawalAmount",
609
- "type": "uint256"
610
- }
611
- ],
612
- "name": "WithdrawalFinalized",
613
- "type": "event"
614
- },
615
- {
616
- "anonymous": false,
617
- "inputs": [
618
- {
619
- "indexed": true,
620
- "internalType": "address",
621
- "name": "account",
622
- "type": "address"
623
- },
624
- {
625
- "indexed": false,
626
- "internalType": "uint256",
627
- "name": "withdrawalAmount",
628
- "type": "uint256"
629
- },
630
- {
631
- "indexed": false,
632
- "internalType": "uint256",
633
- "name": "roundWithdrawable",
634
- "type": "uint256"
635
- }
636
- ],
637
- "name": "WithdrawalInitiated",
638
- "type": "event"
639
- },
640
- {
641
- "inputs": [],
642
- "name": "AUCTIONEER_ADMIN_ROLE",
643
- "outputs": [
644
- {
645
- "internalType": "bytes32",
646
- "name": "",
647
- "type": "bytes32"
648
- }
649
- ],
650
- "stateMutability": "view",
651
- "type": "function"
652
- },
653
- {
654
- "inputs": [],
655
- "name": "AUCTIONEER_ROLE",
656
- "outputs": [
657
- {
658
- "internalType": "bytes32",
659
- "name": "",
660
- "type": "bytes32"
661
- }
662
- ],
663
- "stateMutability": "view",
664
- "type": "function"
665
- },
666
- {
667
- "inputs": [],
668
- "name": "BENEFICIARY_SETTER_ROLE",
669
- "outputs": [
670
- {
671
- "internalType": "bytes32",
672
- "name": "",
673
- "type": "bytes32"
674
- }
675
- ],
676
- "stateMutability": "view",
677
- "type": "function"
678
- },
679
- {
680
- "inputs": [],
681
- "name": "DEFAULT_ADMIN_ROLE",
682
- "outputs": [
683
- {
684
- "internalType": "bytes32",
685
- "name": "",
686
- "type": "bytes32"
687
- }
688
- ],
689
- "stateMutability": "view",
690
- "type": "function"
691
- },
692
- {
693
- "inputs": [],
694
- "name": "MIN_RESERVE_SETTER_ROLE",
695
- "outputs": [
696
- {
697
- "internalType": "bytes32",
698
- "name": "",
699
- "type": "bytes32"
700
- }
701
- ],
702
- "stateMutability": "view",
703
- "type": "function"
704
- },
705
- {
706
- "inputs": [],
707
- "name": "RESERVE_SETTER_ADMIN_ROLE",
708
- "outputs": [
709
- {
710
- "internalType": "bytes32",
711
- "name": "",
712
- "type": "bytes32"
713
- }
714
- ],
715
- "stateMutability": "view",
716
- "type": "function"
717
- },
718
- {
719
- "inputs": [],
720
- "name": "RESERVE_SETTER_ROLE",
721
- "outputs": [
722
- {
723
- "internalType": "bytes32",
724
- "name": "",
725
- "type": "bytes32"
726
- }
727
- ],
728
- "stateMutability": "view",
729
- "type": "function"
730
- },
731
- {
732
- "inputs": [],
733
- "name": "ROUND_TIMING_SETTER_ROLE",
734
- "outputs": [
735
- {
736
- "internalType": "bytes32",
737
- "name": "",
738
- "type": "bytes32"
739
- }
740
- ],
741
- "stateMutability": "view",
742
- "type": "function"
743
- },
744
- {
745
- "inputs": [
746
- {
747
- "internalType": "address",
748
- "name": "account",
749
- "type": "address"
750
- }
751
- ],
752
- "name": "balanceOf",
753
- "outputs": [
754
- {
755
- "internalType": "uint256",
756
- "name": "",
757
- "type": "uint256"
758
- }
759
- ],
760
- "stateMutability": "view",
761
- "type": "function"
762
- },
763
- {
764
- "inputs": [
765
- {
766
- "internalType": "address",
767
- "name": "account",
768
- "type": "address"
769
- },
770
- {
771
- "internalType": "uint64",
772
- "name": "round",
773
- "type": "uint64"
774
- }
775
- ],
776
- "name": "balanceOfAtRound",
777
- "outputs": [
778
- {
779
- "internalType": "uint256",
780
- "name": "",
781
- "type": "uint256"
782
- }
783
- ],
784
- "stateMutability": "view",
785
- "type": "function"
786
- },
787
- {
788
- "inputs": [],
789
- "name": "beneficiary",
790
- "outputs": [
791
- {
792
- "internalType": "address",
793
- "name": "",
794
- "type": "address"
795
- }
796
- ],
797
- "stateMutability": "view",
798
- "type": "function"
799
- },
800
- {
801
- "inputs": [],
802
- "name": "beneficiaryBalance",
803
- "outputs": [
804
- {
805
- "internalType": "uint256",
806
- "name": "",
807
- "type": "uint256"
808
- }
809
- ],
810
- "stateMutability": "view",
811
- "type": "function"
812
- },
813
- {
814
- "inputs": [],
815
- "name": "biddingToken",
816
- "outputs": [
817
- {
818
- "internalType": "contract IERC20",
819
- "name": "",
820
- "type": "address"
821
- }
822
- ],
823
- "stateMutability": "view",
824
- "type": "function"
825
- },
826
- {
827
- "inputs": [],
828
- "name": "currentRound",
829
- "outputs": [
830
- {
831
- "internalType": "uint64",
832
- "name": "",
833
- "type": "uint64"
834
- }
835
- ],
836
- "stateMutability": "view",
837
- "type": "function"
838
- },
839
- {
840
- "inputs": [
841
- {
842
- "internalType": "uint256",
843
- "name": "amount",
844
- "type": "uint256"
845
- }
846
- ],
847
- "name": "deposit",
848
- "outputs": [],
849
- "stateMutability": "nonpayable",
850
- "type": "function"
851
- },
852
- {
853
- "inputs": [],
854
- "name": "domainSeparator",
855
- "outputs": [
856
- {
857
- "internalType": "bytes32",
858
- "name": "",
859
- "type": "bytes32"
860
- }
861
- ],
862
- "stateMutability": "view",
863
- "type": "function"
864
- },
865
- {
866
- "inputs": [],
867
- "name": "finalizeWithdrawal",
868
- "outputs": [],
869
- "stateMutability": "nonpayable",
870
- "type": "function"
871
- },
872
- {
873
- "inputs": [],
874
- "name": "flushBeneficiaryBalance",
875
- "outputs": [],
876
- "stateMutability": "nonpayable",
877
- "type": "function"
878
- },
879
- {
880
- "inputs": [
881
- {
882
- "internalType": "uint64",
883
- "name": "round",
884
- "type": "uint64"
885
- },
886
- {
887
- "internalType": "address",
888
- "name": "expressLaneController",
889
- "type": "address"
890
- },
891
- {
892
- "internalType": "uint256",
893
- "name": "amount",
894
- "type": "uint256"
895
- }
896
- ],
897
- "name": "getBidHash",
898
- "outputs": [
899
- {
900
- "internalType": "bytes32",
901
- "name": "",
902
- "type": "bytes32"
903
- }
904
- ],
905
- "stateMutability": "view",
906
- "type": "function"
907
- },
908
- {
909
- "inputs": [
910
- {
911
- "internalType": "bytes32",
912
- "name": "role",
913
- "type": "bytes32"
914
- }
915
- ],
916
- "name": "getRoleAdmin",
917
- "outputs": [
918
- {
919
- "internalType": "bytes32",
920
- "name": "",
921
- "type": "bytes32"
922
- }
923
- ],
924
- "stateMutability": "view",
925
- "type": "function"
926
- },
927
- {
928
- "inputs": [
929
- {
930
- "internalType": "bytes32",
931
- "name": "role",
932
- "type": "bytes32"
933
- },
934
- {
935
- "internalType": "uint256",
936
- "name": "index",
937
- "type": "uint256"
938
- }
939
- ],
940
- "name": "getRoleMember",
941
- "outputs": [
942
- {
943
- "internalType": "address",
944
- "name": "",
945
- "type": "address"
946
- }
947
- ],
948
- "stateMutability": "view",
949
- "type": "function"
950
- },
951
- {
952
- "inputs": [
953
- {
954
- "internalType": "bytes32",
955
- "name": "role",
956
- "type": "bytes32"
957
- }
958
- ],
959
- "name": "getRoleMemberCount",
960
- "outputs": [
961
- {
962
- "internalType": "uint256",
963
- "name": "",
964
- "type": "uint256"
965
- }
966
- ],
967
- "stateMutability": "view",
968
- "type": "function"
969
- },
970
- {
971
- "inputs": [
972
- {
973
- "internalType": "bytes32",
974
- "name": "role",
975
- "type": "bytes32"
976
- },
977
- {
978
- "internalType": "address",
979
- "name": "account",
980
- "type": "address"
981
- }
982
- ],
983
- "name": "grantRole",
984
- "outputs": [],
985
- "stateMutability": "nonpayable",
986
- "type": "function"
987
- },
988
- {
989
- "inputs": [
990
- {
991
- "internalType": "bytes32",
992
- "name": "role",
993
- "type": "bytes32"
994
- },
995
- {
996
- "internalType": "address",
997
- "name": "account",
998
- "type": "address"
999
- }
1000
- ],
1001
- "name": "hasRole",
1002
- "outputs": [
1003
- {
1004
- "internalType": "bool",
1005
- "name": "",
1006
- "type": "bool"
1007
- }
1008
- ],
1009
- "stateMutability": "view",
1010
- "type": "function"
1011
- },
1012
- {
1013
- "inputs": [
1014
- {
1015
- "components": [
1016
- {
1017
- "internalType": "address",
1018
- "name": "_auctioneer",
1019
- "type": "address"
1020
- },
1021
- {
1022
- "internalType": "address",
1023
- "name": "_biddingToken",
1024
- "type": "address"
1025
- },
1026
- {
1027
- "internalType": "address",
1028
- "name": "_beneficiary",
1029
- "type": "address"
1030
- },
1031
- {
1032
- "components": [
1033
- {
1034
- "internalType": "int64",
1035
- "name": "offsetTimestamp",
1036
- "type": "int64"
1037
- },
1038
- {
1039
- "internalType": "uint64",
1040
- "name": "roundDurationSeconds",
1041
- "type": "uint64"
1042
- },
1043
- {
1044
- "internalType": "uint64",
1045
- "name": "auctionClosingSeconds",
1046
- "type": "uint64"
1047
- },
1048
- {
1049
- "internalType": "uint64",
1050
- "name": "reserveSubmissionSeconds",
1051
- "type": "uint64"
1052
- }
1053
- ],
1054
- "internalType": "struct RoundTimingInfo",
1055
- "name": "_roundTimingInfo",
1056
- "type": "tuple"
1057
- },
1058
- {
1059
- "internalType": "uint256",
1060
- "name": "_minReservePrice",
1061
- "type": "uint256"
1062
- },
1063
- {
1064
- "internalType": "address",
1065
- "name": "_auctioneerAdmin",
1066
- "type": "address"
1067
- },
1068
- {
1069
- "internalType": "address",
1070
- "name": "_minReservePriceSetter",
1071
- "type": "address"
1072
- },
1073
- {
1074
- "internalType": "address",
1075
- "name": "_reservePriceSetter",
1076
- "type": "address"
1077
- },
1078
- {
1079
- "internalType": "address",
1080
- "name": "_reservePriceSetterAdmin",
1081
- "type": "address"
1082
- },
1083
- {
1084
- "internalType": "address",
1085
- "name": "_beneficiarySetter",
1086
- "type": "address"
1087
- },
1088
- {
1089
- "internalType": "address",
1090
- "name": "_roundTimingSetter",
1091
- "type": "address"
1092
- },
1093
- {
1094
- "internalType": "address",
1095
- "name": "_masterAdmin",
1096
- "type": "address"
1097
- }
1098
- ],
1099
- "internalType": "struct InitArgs",
1100
- "name": "args",
1101
- "type": "tuple"
1102
- }
1103
- ],
1104
- "name": "initialize",
1105
- "outputs": [],
1106
- "stateMutability": "nonpayable",
1107
- "type": "function"
1108
- },
1109
- {
1110
- "inputs": [],
1111
- "name": "initiateWithdrawal",
1112
- "outputs": [],
1113
- "stateMutability": "nonpayable",
1114
- "type": "function"
1115
- },
1116
- {
1117
- "inputs": [],
1118
- "name": "isAuctionRoundClosed",
1119
- "outputs": [
1120
- {
1121
- "internalType": "bool",
1122
- "name": "",
1123
- "type": "bool"
1124
- }
1125
- ],
1126
- "stateMutability": "view",
1127
- "type": "function"
1128
- },
1129
- {
1130
- "inputs": [],
1131
- "name": "isReserveBlackout",
1132
- "outputs": [
1133
- {
1134
- "internalType": "bool",
1135
- "name": "",
1136
- "type": "bool"
1137
- }
1138
- ],
1139
- "stateMutability": "view",
1140
- "type": "function"
1141
- },
1142
- {
1143
- "inputs": [],
1144
- "name": "minReservePrice",
1145
- "outputs": [
1146
- {
1147
- "internalType": "uint256",
1148
- "name": "",
1149
- "type": "uint256"
1150
- }
1151
- ],
1152
- "stateMutability": "view",
1153
- "type": "function"
1154
- },
1155
- {
1156
- "inputs": [
1157
- {
1158
- "internalType": "bytes32",
1159
- "name": "role",
1160
- "type": "bytes32"
1161
- },
1162
- {
1163
- "internalType": "address",
1164
- "name": "account",
1165
- "type": "address"
1166
- }
1167
- ],
1168
- "name": "renounceRole",
1169
- "outputs": [],
1170
- "stateMutability": "nonpayable",
1171
- "type": "function"
1172
- },
1173
- {
1174
- "inputs": [],
1175
- "name": "reservePrice",
1176
- "outputs": [
1177
- {
1178
- "internalType": "uint256",
1179
- "name": "",
1180
- "type": "uint256"
1181
- }
1182
- ],
1183
- "stateMutability": "view",
1184
- "type": "function"
1185
- },
1186
- {
1187
- "inputs": [
1188
- {
1189
- "components": [
1190
- {
1191
- "internalType": "address",
1192
- "name": "expressLaneController",
1193
- "type": "address"
1194
- },
1195
- {
1196
- "internalType": "uint256",
1197
- "name": "amount",
1198
- "type": "uint256"
1199
- },
1200
- {
1201
- "internalType": "bytes",
1202
- "name": "signature",
1203
- "type": "bytes"
1204
- }
1205
- ],
1206
- "internalType": "struct Bid",
1207
- "name": "firstPriceBid",
1208
- "type": "tuple"
1209
- },
1210
- {
1211
- "components": [
1212
- {
1213
- "internalType": "address",
1214
- "name": "expressLaneController",
1215
- "type": "address"
1216
- },
1217
- {
1218
- "internalType": "uint256",
1219
- "name": "amount",
1220
- "type": "uint256"
1221
- },
1222
- {
1223
- "internalType": "bytes",
1224
- "name": "signature",
1225
- "type": "bytes"
1226
- }
1227
- ],
1228
- "internalType": "struct Bid",
1229
- "name": "secondPriceBid",
1230
- "type": "tuple"
1231
- }
1232
- ],
1233
- "name": "resolveMultiBidAuction",
1234
- "outputs": [],
1235
- "stateMutability": "nonpayable",
1236
- "type": "function"
1237
- },
1238
- {
1239
- "inputs": [
1240
- {
1241
- "components": [
1242
- {
1243
- "internalType": "address",
1244
- "name": "expressLaneController",
1245
- "type": "address"
1246
- },
1247
- {
1248
- "internalType": "uint256",
1249
- "name": "amount",
1250
- "type": "uint256"
1251
- },
1252
- {
1253
- "internalType": "bytes",
1254
- "name": "signature",
1255
- "type": "bytes"
1256
- }
1257
- ],
1258
- "internalType": "struct Bid",
1259
- "name": "firstPriceBid",
1260
- "type": "tuple"
1261
- }
1262
- ],
1263
- "name": "resolveSingleBidAuction",
1264
- "outputs": [],
1265
- "stateMutability": "nonpayable",
1266
- "type": "function"
1267
- },
1268
- {
1269
- "inputs": [],
1270
- "name": "resolvedRounds",
1271
- "outputs": [
1272
- {
1273
- "components": [
1274
- {
1275
- "internalType": "address",
1276
- "name": "expressLaneController",
1277
- "type": "address"
1278
- },
1279
- {
1280
- "internalType": "uint64",
1281
- "name": "round",
1282
- "type": "uint64"
1283
- }
1284
- ],
1285
- "internalType": "struct ELCRound",
1286
- "name": "",
1287
- "type": "tuple"
1288
- },
1289
- {
1290
- "components": [
1291
- {
1292
- "internalType": "address",
1293
- "name": "expressLaneController",
1294
- "type": "address"
1295
- },
1296
- {
1297
- "internalType": "uint64",
1298
- "name": "round",
1299
- "type": "uint64"
1300
- }
1301
- ],
1302
- "internalType": "struct ELCRound",
1303
- "name": "",
1304
- "type": "tuple"
1305
- }
1306
- ],
1307
- "stateMutability": "view",
1308
- "type": "function"
1309
- },
1310
- {
1311
- "inputs": [
1312
- {
1313
- "internalType": "bytes32",
1314
- "name": "role",
1315
- "type": "bytes32"
1316
- },
1317
- {
1318
- "internalType": "address",
1319
- "name": "account",
1320
- "type": "address"
1321
- }
1322
- ],
1323
- "name": "revokeRole",
1324
- "outputs": [],
1325
- "stateMutability": "nonpayable",
1326
- "type": "function"
1327
- },
1328
- {
1329
- "inputs": [
1330
- {
1331
- "internalType": "uint64",
1332
- "name": "round",
1333
- "type": "uint64"
1334
- }
1335
- ],
1336
- "name": "roundTimestamps",
1337
- "outputs": [
1338
- {
1339
- "internalType": "uint64",
1340
- "name": "",
1341
- "type": "uint64"
1342
- },
1343
- {
1344
- "internalType": "uint64",
1345
- "name": "",
1346
- "type": "uint64"
1347
- }
1348
- ],
1349
- "stateMutability": "view",
1350
- "type": "function"
1351
- },
1352
- {
1353
- "inputs": [],
1354
- "name": "roundTimingInfo",
1355
- "outputs": [
1356
- {
1357
- "internalType": "int64",
1358
- "name": "offsetTimestamp",
1359
- "type": "int64"
1360
- },
1361
- {
1362
- "internalType": "uint64",
1363
- "name": "roundDurationSeconds",
1364
- "type": "uint64"
1365
- },
1366
- {
1367
- "internalType": "uint64",
1368
- "name": "auctionClosingSeconds",
1369
- "type": "uint64"
1370
- },
1371
- {
1372
- "internalType": "uint64",
1373
- "name": "reserveSubmissionSeconds",
1374
- "type": "uint64"
1375
- }
1376
- ],
1377
- "stateMutability": "view",
1378
- "type": "function"
1379
- },
1380
- {
1381
- "inputs": [
1382
- {
1383
- "internalType": "address",
1384
- "name": "newBeneficiary",
1385
- "type": "address"
1386
- }
1387
- ],
1388
- "name": "setBeneficiary",
1389
- "outputs": [],
1390
- "stateMutability": "nonpayable",
1391
- "type": "function"
1392
- },
1393
- {
1394
- "inputs": [
1395
- {
1396
- "internalType": "uint256",
1397
- "name": "newMinReservePrice",
1398
- "type": "uint256"
1399
- }
1400
- ],
1401
- "name": "setMinReservePrice",
1402
- "outputs": [],
1403
- "stateMutability": "nonpayable",
1404
- "type": "function"
1405
- },
1406
- {
1407
- "inputs": [
1408
- {
1409
- "internalType": "uint256",
1410
- "name": "newReservePrice",
1411
- "type": "uint256"
1412
- }
1413
- ],
1414
- "name": "setReservePrice",
1415
- "outputs": [],
1416
- "stateMutability": "nonpayable",
1417
- "type": "function"
1418
- },
1419
- {
1420
- "inputs": [
1421
- {
1422
- "components": [
1423
- {
1424
- "internalType": "int64",
1425
- "name": "offsetTimestamp",
1426
- "type": "int64"
1427
- },
1428
- {
1429
- "internalType": "uint64",
1430
- "name": "roundDurationSeconds",
1431
- "type": "uint64"
1432
- },
1433
- {
1434
- "internalType": "uint64",
1435
- "name": "auctionClosingSeconds",
1436
- "type": "uint64"
1437
- },
1438
- {
1439
- "internalType": "uint64",
1440
- "name": "reserveSubmissionSeconds",
1441
- "type": "uint64"
1442
- }
1443
- ],
1444
- "internalType": "struct RoundTimingInfo",
1445
- "name": "newRoundTimingInfo",
1446
- "type": "tuple"
1447
- }
1448
- ],
1449
- "name": "setRoundTimingInfo",
1450
- "outputs": [],
1451
- "stateMutability": "nonpayable",
1452
- "type": "function"
1453
- },
1454
- {
1455
- "inputs": [
1456
- {
1457
- "components": [
1458
- {
1459
- "internalType": "address",
1460
- "name": "addr",
1461
- "type": "address"
1462
- },
1463
- {
1464
- "internalType": "uint64",
1465
- "name": "fixedUntilRound",
1466
- "type": "uint64"
1467
- }
1468
- ],
1469
- "internalType": "struct Transferor",
1470
- "name": "transferor",
1471
- "type": "tuple"
1472
- }
1473
- ],
1474
- "name": "setTransferor",
1475
- "outputs": [],
1476
- "stateMutability": "nonpayable",
1477
- "type": "function"
1478
- },
1479
- {
1480
- "inputs": [
1481
- {
1482
- "internalType": "bytes4",
1483
- "name": "interfaceId",
1484
- "type": "bytes4"
1485
- }
1486
- ],
1487
- "name": "supportsInterface",
1488
- "outputs": [
1489
- {
1490
- "internalType": "bool",
1491
- "name": "",
1492
- "type": "bool"
1493
- }
1494
- ],
1495
- "stateMutability": "view",
1496
- "type": "function"
1497
- },
1498
- {
1499
- "inputs": [
1500
- {
1501
- "internalType": "uint64",
1502
- "name": "round",
1503
- "type": "uint64"
1504
- },
1505
- {
1506
- "internalType": "address",
1507
- "name": "newExpressLaneController",
1508
- "type": "address"
1509
- }
1510
- ],
1511
- "name": "transferExpressLaneController",
1512
- "outputs": [],
1513
- "stateMutability": "nonpayable",
1514
- "type": "function"
1515
- },
1516
- {
1517
- "inputs": [
1518
- {
1519
- "internalType": "address",
1520
- "name": "",
1521
- "type": "address"
1522
- }
1523
- ],
1524
- "name": "transferorOf",
1525
- "outputs": [
1526
- {
1527
- "internalType": "address",
1528
- "name": "addr",
1529
- "type": "address"
1530
- },
1531
- {
1532
- "internalType": "uint64",
1533
- "name": "fixedUntilRound",
1534
- "type": "uint64"
1535
- }
1536
- ],
1537
- "stateMutability": "view",
1538
- "type": "function"
1539
- },
1540
- {
1541
- "inputs": [
1542
- {
1543
- "internalType": "address",
1544
- "name": "account",
1545
- "type": "address"
1546
- }
1547
- ],
1548
- "name": "withdrawableBalance",
1549
- "outputs": [
1550
- {
1551
- "internalType": "uint256",
1552
- "name": "",
1553
- "type": "uint256"
1554
- }
1555
- ],
1556
- "stateMutability": "view",
1557
- "type": "function"
1558
- },
1559
- {
1560
- "inputs": [
1561
- {
1562
- "internalType": "address",
1563
- "name": "account",
1564
- "type": "address"
1565
- },
1566
- {
1567
- "internalType": "uint64",
1568
- "name": "round",
1569
- "type": "uint64"
1570
- }
1571
- ],
1572
- "name": "withdrawableBalanceAtRound",
1573
- "outputs": [
1574
- {
1575
- "internalType": "uint256",
1576
- "name": "",
1577
- "type": "uint256"
1578
- }
1579
- ],
1580
- "stateMutability": "view",
1581
- "type": "function"
1582
- }
1583
- ],
1584
- "bytecode": "0x60a06040523060805234801561001457600080fd5b50608051613ffc61003060003960006114220152613ffc6000f3fe608060405234801561001057600080fd5b50600436106102945760003560e01c80637b617f9411610167578063c5b6aa2f116100ce578063e2fc6f6811610087578063e2fc6f681461069f578063e3f7bb55146106a9578063e460d2c5146106d0578063e4d20c1d146106d8578063f698da25146106eb578063fed87be8146106f357600080fd5b8063c5b6aa2f1461063f578063ca15c87314610647578063ce9c7c0d1461065a578063cfe9232b1461066d578063d547741f14610682578063db2e1eed1461069557600080fd5b80639a1fadd3116101205780639a1fadd3146105e1578063a217fddf146105f4578063b3ee252f146105fc578063b51d1d4f14610611578063b6b55f2514610619578063bef0ec741461062c57600080fd5b80637b617f941461054957806383af0a1f1461057c5780638948cc4e146105865780638a19c8bc1461059b5780639010d07c146105bb57806391d14854146105ce57600080fd5b80632f2ff15d1161020b578063639d7566116101c4578063639d7566146104915780636a514beb146104a55780636ad72517146105085780636dc4fc4e146105105780636e8cace51461052357806370a082311461053657600080fd5b80632f2ff15d14610404578063336a5b5e1461041757806336568abe1461042c57806338af3eed1461043f578063447a709e1461046b5780635633c3371461047e57600080fd5b80630d253fbe1161025d5780630d253fbe1461037457806314d963161461038a5780631682e50b146103b15780631c31f710146103c6578063248a9ca3146103d95780632d668ce7146103fc57600080fd5b80627be2fe146102995780630152682d146102ae57806301ffc9a71461031d57806302b629381461034057806304c584ad14610361575b600080fd5b6102ac6102a73660046135c1565b610706565b005b610104546102e490600781900b906001600160401b03600160401b8204811691600160801b8104821691600160c01b9091041684565b6040805160079590950b85526001600160401b039384166020860152918316918401919091521660608201526080015b60405180910390f35b61033061032b3660046135fa565b610917565b6040519015158152602001610314565b61035361034e366004613624565b610942565b604051908152602001610314565b61035361036f366004613641565b6109ba565b61037c610a3a565b6040516103149291906136a3565b6103537f3fb9f0655b78e8eabe9e0f51d65db56c7690d4329012c3faf1fbd6d43f65826181565b610353600080516020613f4783398151915281565b6102ac6103d4366004613624565b610aea565b6103536103e73660046136be565b60009081526065602052604090206001015490565b610330610b6f565b6102ac6104123660046136d7565b610bca565b610353600080516020613f6783398151915281565b6102ac61043a3660046136d7565b610bf5565b61010054610453906001600160a01b031681565b6040516001600160a01b039091168152602001610314565b6102ac610479366004613714565b610c73565b61035361048c366004613777565b610e9a565b61010154610453906001600160a01b031681565b6104e16104b3366004613624565b610106602052600090815260409020546001600160a01b03811690600160a01b90046001600160401b031682565b604080516001600160a01b0390931683526001600160401b03909116602083015201610314565b6102ac610fac565b6102ac61051e3660046137a5565b610ff6565b610353610531366004613777565b61111a565b610353610544366004613624565b611200565b61055c6105573660046137e1565b611278565b604080516001600160401b03938416815292909116602083015201610314565b6103536101035481565b610353600080516020613fa783398151915281565b6105a36112da565b6040516001600160401b039091168152602001610314565b6104536105c93660046137fe565b611330565b6103306105dc3660046136d7565b611348565b6102ac6105ef366004613820565b611373565b610353600081565b610353600080516020613f2783398151915281565b6102ac611803565b6102ac6106273660046136be565b6118c9565b6102ac61063a366004613833565b611934565b6102ac611a7d565b6103536106553660046136be565b611b39565b6102ac6106683660046136be565b611b50565b610353600080516020613f8783398151915281565b6102ac6106903660046136d7565b611bfd565b6103536101025481565b6103536101055481565b6103537fa8131bb4589277d6866d942849029b416b39e61eb3969a32787130bbdd292a9681565b610330611c23565b6102ac6106e63660046136be565b611c97565b610353611d07565b6102ac610701366004613845565b611d11565b6040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152600061075b82611e7a565b9050806001600160401b0316846001600160401b031610156107a857604051631cafa7eb60e11b81526001600160401b038086166004830152821660248201526044015b60405180910390fd5b60006107b560fe86611eb0565b80546001600160a01b039081166000818152610106602052604090205492935091168015610811576001600160a01b038116331461080c57868133604051633b10eca560e11b815260040161079f93929190613857565b610840565b6001600160a01b0382163314610840578682336040516333057b6960e11b815260040161079f93929190613857565b82546001600160a01b0319166001600160a01b038716178355600080610866878a611f33565b90925090506001600160a01b03831661087f5783610881565b825b6001600160a01b0316886001600160a01b0316856001600160a01b03167fb59adc820ca642dad493a0a6e0bdf979dcae037dea114b70d5c66b1c0b791c4b8c426001600160401b0316876001600160401b0316106108df57866108e1565b425b604080516001600160401b03938416815291831660208301529187168183015290519081900360600190a4505050505050505050565b60006001600160e01b03198216635a05180f60e01b148061093c575061093c82611fb2565b92915050565b6040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b9004909116606082015260009061093c9061099c90611e7a565b6001600160a01b038416600090815260fd6020526040902090611fe7565b604080517f0358b2b705d5c5ef47651be44f418326852a390f3b4c933661a5f4f0d8fa1ee360208201526001600160401b038516918101919091526001600160a01b038316606082015260808101829052600090610a309060a00160405160208183030381529060405280519060200120612010565b90505b9392505050565b6040805180820190915260008082526020820152604080518082019091526000808252602082015260ff5460fe546001600160401b03600160a01b928390048116929091041611610a8e5760ff60fe610a93565b60fe60ff5b60408051808201825292546001600160a01b0380821685526001600160401b03600160a01b928390048116602080880191909152845180860190955294549182168452919004169181019190915290939092509050565b600080516020613f67833981519152610b03813361205e565b61010054604080516001600160a01b03928316815291841660208301527f8a0149b2f3ddf2c9ee85738165131d82babbb938f749321d59f75750afa7f4e6910160405180910390a15061010080546001600160a01b0319166001600160a01b0392909216919091179055565b6040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152600090610bc5906120c2565b905090565b600082815260656020526040902060010154610be6813361205e565b610bf0838361212d565b505050565b6001600160a01b0381163314610c655760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b606482015260840161079f565b610c6f828261214f565b5050565b600080516020613f87833981519152610c8c813361205e565b6040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152610cdf816120c2565b610cfc5760405163b9adeefd60e01b815260040160405180910390fd5b826020013584602001351015610d255760405163a234cb1960e01b815260040160405180910390fd5b6101025483602001351015610d5f5761010254604051632b7cdbad60e11b815260208501356004820152602481019190915260440161079f565b6000610d6a82611e7a565b90506000610d798260016138ad565b9050600080610d90610d8a89613946565b84612171565b91509150600080610daa89610da490613946565b86612171565b91509150816001600160a01b0316846001600160a01b03161415610de15760405163f4a3e48560e01b815260040160405180910390fd5b88602001358a60200135148015610e4957508181604051602001610e069291906139fe565b60408051601f1981840301815290829052805160209182012091610e2e9187918791016139fe565b6040516020818303038152906040528051906020012060001c105b15610e67576040516348c2d05760e11b815260040160405180910390fd5b600080610e748988611f33565b91509150610e8c60018d888e602001358c878761224f565b505050505050505050505050565b6040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152600090610ef090611e7a565b6001600160401b0316826001600160401b03161015610f8a576040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b900490911660608201528290610f5e90611e7a565b604051631cafa7eb60e11b81526001600160401b0392831660048201529116602482015260440161079f565b6001600160a01b038316600090815260fd60205260409020610a3390836123a5565b6101055480610fce57604051631f2a200560e01b815260040160405180910390fd5b6000610105556101005461010154610ff3916001600160a01b039182169116836123bd565b50565b600080516020613f8783398151915261100f813361205e565b6040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152611062816120c2565b61107f5760405163b9adeefd60e01b815260040160405180910390fd5b61010254836020013510156110b95761010254604051632b7cdbad60e11b815260208501356004820152602481019190915260440161079f565b60006110c482611e7a565b905060006110d38260016138ad565b905060006110e96110e387613946565b83612171565b5090506000806110f98685611f33565b91509150611110600089856101025489878761224f565b5050505050505050565b6040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b9004909116606082015260009061117090611e7a565b6001600160401b0316826001600160401b031610156111de576040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b900490911660608201528290610f5e90611e7a565b6001600160a01b038316600090815260fd60205260409020610a339083611fe7565b6040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b9004909116606082015260009061093c9061125a90611e7a565b6001600160a01b038416600090815260fd60205260409020906123a5565b6040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b9004909116606082015260009081906112d19084611f33565b91509150915091565b6040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152600090610bc590611e7a565b6000828152609760205260408120610a339083612420565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600054610100900460ff1661138e5760005460ff1615611392565b303b155b6113f55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161079f565b600054610100900460ff16158015611417576000805461ffff19166101011790555b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156114a55760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b606482015260840161079f565b6114ad61242c565b6114fa6040518060400160405280601281526020017122bc383932b9b9a630b732a0bab1ba34b7b760711b815250604051806040016040528060018152602001603160f81b815250612455565b600061150c6040840160208501613624565b6001600160a01b0316141561153457604051633fb3c7af60e01b815260040160405180910390fd5b6115446040830160208401613624565b61010180546001600160a01b0319166001600160a01b03929092169190911790556115756060830160408401613624565b61010080546001600160a01b0319166001600160a01b03929092169190911790557f8a0149b2f3ddf2c9ee85738165131d82babbb938f749321d59f75750afa7f4e660006115c96060850160408601613624565b604080516001600160a01b0393841681529290911660208301520160405180910390a160e0820135610103819055604080516000815260208101929092527f5848068f11aa3ba9fe3fc33c5f9f2a3cd1aed67986b85b5e0cedc67dbe96f0f0910160405180910390a160e0820135610102819055604080516000815260208101929092527f9725e37e079c5bda6009a8f54d86265849f30acf61c630f9e1ac91e67de98794910160405180910390a1600061168a6080840160608501613a2f565b60070b12156116ac57604051630b7a36ff60e11b815260040160405180910390fd5b6116b882606001612486565b6116d460006116cf6101e085016101c08601613624565b61212d565b6116f8600080516020613fa78339815191526116cf61014085016101208601613624565b61171c600080516020613f678339815191526116cf6101a085016101808601613624565b611773600080516020613f8783398151915261173b6020850185613624565b7f3fb9f0655b78e8eabe9e0f51d65db56c7690d4329012c3faf1fbd6d43f65826161176e61012087016101008801613624565b612641565b6117ca600080516020613f2783398151915261179761016085016101408601613624565b7fa8131bb4589277d6866d942849029b416b39e61eb3969a32787130bbdd292a9661176e61018087016101608801613624565b6117ee600080516020613f478339815191526116cf6101c085016101a08601613624565b8015610c6f576000805461ff00191690555050565b6040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b9004909116606082015260009061185990611e7a565b6118649060026138ad565b33600090815260fd6020526040902080549192506118829083612665565b604080518281526001600160401b038416602082015233917f31f69201fab7912e3ec9850e3ab705964bf46d9d4276bdcbb6d05e965e5f5401910160405180910390a25050565b33600090815260fd602052604090206118e29082612702565b610101546118fb906001600160a01b031633308461276f565b60405181815233907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c906020015b60405180910390a250565b3360009081526101066020526040902080546001600160a01b0316158015906119c557506040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b900490911660608201526119ab90611e7a565b81546001600160401b03918216600160a01b909104909116115b156119f7578054604051633aec4cf960e11b8152600160a01b9091046001600160401b0316600482015260240161079f565b336000908152610106602052604090208290611a138282613a4c565b50611a2390506020830183613624565b6001600160a01b0316337ff6d28df235d9fa45a42d45dbb7c4f4ac76edb51e528f09f25a0650d32b8b33c0611a5e60408601602087016137e1565b6040516001600160401b03909116815260200160405180910390a35050565b6040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152600090611aec90611ad790611e7a565b33600090815260fd60205260409020906127a7565b61010154909150611b07906001600160a01b031633836123bd565b60405181815233907f9e5c4f9f4e46b8629d3dda85f43a69194f50254404a72dc62b9e932d9c94eda890602001611929565b600081815260976020526040812061093c9061280b565b600080516020613f27833981519152611b69813361205e565b6000611b7560fe612815565b5080546040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b900482166060820152929350611bd69291600160a01b900416612858565b15611bf4576040516309e00d2f60e31b815260040160405180910390fd5b610bf08361290e565b600082815260656020526040902060010154611c19813361205e565b610bf0838361214f565b600080611c3060fe612815565b5080546040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b900482166060820152929350611c919291600160a01b900416612858565b91505090565b600080516020613fa7833981519152611cb0813361205e565b6101035460408051918252602082018490527f5848068f11aa3ba9fe3fc33c5f9f2a3cd1aed67986b85b5e0cedc67dbe96f0f0910160405180910390a161010382905561010254821115610c6f57610c6f8261290e565b6000610bc5612984565b600080516020613f47833981519152611d2a813361205e565b6040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b900490911660608201526000611d7f82611e7a565b90506000611d9a611d9536879003870187613aac565b611e7a565b9050806001600160401b0316826001600160401b031614611de1576040516368c18ca960e01b81526001600160401b0380841660048301528216602482015260440161079f565b6000611df8611df18460016138ad565b8590611f33565b5090506000611e20611e0b8460016138ad565b611e1a368a90038a018a613aac565b90611f33565b509050806001600160401b0316826001600160401b031614611e685760405163141c4d3b60e31b81526001600160401b0380841660048301528216602482015260440161079f565b611e7187612486565b50505050505050565b8051600090600790810b4290910b1215611e9657506000919050565b60208201518251611ea6906129ff565b61093c9190613b46565b60006001600160401b03821683820154600160a01b90046001600160401b03161415611ee2578260005b01905061093c565b6001600160401b0382168360010154600160a01b90046001600160401b03161415611f0f57826001611eda565b604051631f760a5b60e31b81526001600160401b038316600482015260240161079f565b6000806000838560200151611f489190613b6c565b8551611f549190613b9b565b905060008160070b1215611f815760405163f160ad7960e01b8152600782900b600482015260240161079f565b60208501518190600090600190611f9890846138ad565b611fa29190613bec565b91945090925050505b9250929050565b60006001600160e01b03198216637965db0b60e01b148061093c57506301ffc9a760e01b6001600160e01b031983161461093c565b60018201546000906001600160401b03908116908316101561200a576000610a33565b50505490565b600061093c61201d612984565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b6120688282611348565b610c6f57612080816001600160a01b03166014612a0b565b61208b836020612a0b565b60405160200161209c929190613c40565b60408051601f198184030181529082905262461bcd60e51b825261079f91600401613caf565b8051600090600790810b4290910b12156120de57506000919050565b60006120ed83600001516129ff565b905060008360200151826121019190613ce2565b9050836040015184602001516121179190613bec565b6001600160401b03908116911610159392505050565b6121378282612ba6565b6000828152609760205260409020610bf09082612c2c565b6121598282612c41565b6000828152609760205260409020610bf09082612ca8565b600080600061218984866000015187602001516109ba565b905060006121a4866040015183612cbd90919063ffffffff16565b905060006121b3600187613bec565b6020808901516001600160a01b038516600090815260fd9092526040909120919250906121e090836123a5565b1015612244576020808801516001600160a01b038416600090815260fd909252604090912083919061221290846123a5565b604051630dac930560e21b81526001600160a01b0390931660048401526024830191909152604482015260640161079f565b509590945092505050565b600061225c8460016138ad565b90506122788161226f60208a018a613624565b60fe9190612ce1565b6001600160a01b038616600090815260fd6020526040902061229b908686612db4565b8461010560008282546122ae9190613d08565b90915550600090506122c36020890189613624565b604080516001600160401b038581168252878116602083015286168183015290516001600160a01b0392909216916000917fb59adc820ca642dad493a0a6e0bdf979dcae037dea114b70d5c66b1c0b791c4b919081900360600190a461232c6020880188613624565b604080516001600160401b03848116825260208b8101359083015281830189905286811660608301528516608082015290516001600160a01b03928316928916918b1515917f7f5bdabbd27a8fc572781b177055488d7c6729a2bade4f57da9d200f31c15d479181900360a00190a45050505050505050565b60006123b18383611fe7565b8354610a339190613d20565b6040516001600160a01b038316602482015260448101829052610bf090849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612e15565b6000610a338383612ee7565b600054610100900460ff166124535760405162461bcd60e51b815260040161079f90613d37565b565b600054610100900460ff1661247c5760405162461bcd60e51b815260040161079f90613d37565b610c6f8282612f11565b61249660608201604083016137e1565b6001600160401b03166124bc5760405163023dd6a960e11b815260040160405180910390fd5b620151806124d060408301602084016137e1565b6001600160401b03161115612514576124ef60408201602083016137e1565b60405163c34a76cf60e01b81526001600160401b03909116600482015260240161079f565b61252460408201602083016137e1565b6001600160401b031661253d60608301604084016137e1565b61254d60808401606085016137e1565b61255791906138ad565b6001600160401b0316111561257f576040516301936f1b60e51b815260040160405180910390fd5b8061010461258d8282613d82565b507f982cfb73783b8c64455c76cdeb1351467c4f1e6b3615fec07df232c1b46ffd4790506125c3611d9536849003840184613aac565b6125d06020840184613a2f565b6125e060408501602086016137e1565b6125f060608601604087016137e1565b61260060808701606088016137e1565b604080516001600160401b03968716815260079590950b6020860152928516848401529084166060840152909216608082015290519081900360a00190a150565b61264b848461212d565b612655828261212d565b61265f8483612f52565b50505050565b815461268457604051631f2a200560e01b815260040160405180910390fd5b6001600160401b0381811614156126ae57604051631ec4eeef60e11b815260040160405180910390fd5b60018201546001600160401b03908116146126dc576040516304eb6b3f60e01b815260040160405180910390fd5b600191909101805467ffffffffffffffff19166001600160401b03909216919091179055565b8061272057604051631f2a200560e01b815260040160405180910390fd5b60018201546001600160401b03908116146127525760018201805467ffffffffffffffff19166001600160401b031790555b808260000160008282546127669190613d08565b90915550505050565b6040516001600160a01b038085166024830152831660448201526064810182905261265f9085906323b872dd60e01b906084016123e9565b60006001600160401b0382811614156127d357604051631ec4eeef60e11b815260040160405180910390fd5b60006127df8484611fe7565b9050806127ff57604051630686827b60e51b815260040160405180910390fd5b60008455905092915050565b600061093c825490565b6000808083810190506000846001015482546001600160401b03600160a01b9283900481169290910416101561284e5750506001808401905b9094909350915050565b8151600090600790810b4290910b12156128745750600061093c565b600061287f84611e7a565b905061288c8160016138ad565b6001600160401b0316836001600160401b0316106128ae57600091505061093c565b60006128bd85600001516129ff565b905060008560200151826128d19190613ce2565b90508560600151866040015187602001516128ec9190613bec565b6128f69190613bec565b6001600160401b039081169116101595945050505050565b610103548110156129415761010354604051636d27939760e11b815261079f918391600401918252602082015260400190565b6101025460408051918252602082018390527f9725e37e079c5bda6009a8f54d86265849f30acf61c630f9e1ac91e67de98794910160405180910390a161010255565b6000610bc57f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6129b360c95490565b60ca546040805160208101859052908101839052606081018290524660808201523060a082015260009060c0016040516020818303038152906040528051906020012090509392505050565b600061093c8242613e34565b60606000612a1a836002613e86565b612a25906002613d08565b6001600160401b03811115612a3c57612a3c6138d8565b6040519080825280601f01601f191660200182016040528015612a66576020820181803683370190505b509050600360fc1b81600081518110612a8157612a81613881565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110612ab057612ab0613881565b60200101906001600160f81b031916908160001a9053506000612ad4846002613e86565b612adf906001613d08565b90505b6001811115612b57576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110612b1357612b13613881565b1a60f81b828281518110612b2957612b29613881565b60200101906001600160f81b031916908160001a90535060049490941c93612b5081613ea5565b9050612ae2565b508315610a335760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161079f565b612bb08282611348565b610c6f5760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055612be83390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610a33836001600160a01b038416612f9d565b612c4b8282611348565b15610c6f5760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610a33836001600160a01b038416612fec565b6000806000612ccc85856130df565b91509150612cd98161314c565b509392505050565b600080612ced85612815565b815491935091506001600160401b03808616600160a01b9092041610612d3157604051631147e1cd60e21b81526001600160401b038516600482015260240161079f565b604080518082019091526001600160a01b03841681526001600160401b038516602082015260018218908660ff831660028110612d7057612d70613881565b8251910180546020909301516001600160401b0316600160a01b026001600160e01b03199093166001600160a01b0390921691909117919091179055505050505050565b6000612dc084836123a5565b9050801580612dce57508281105b15612df65760405163cf47918160e01b8152600481018490526024810182905260440161079f565b82846000016000828254612e0a9190613d20565b909155505050505050565b6000612e6a826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166133029092919063ffffffff16565b805190915015610bf05780806020019051810190612e889190613ebc565b610bf05760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161079f565b6000826000018281548110612efe57612efe613881565b9060005260206000200154905092915050565b600054610100900460ff16612f385760405162461bcd60e51b815260040161079f90613d37565b81516020928301208151919092012060c99190915560ca55565b600082815260656020526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6000818152600183016020526040812054612fe45750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561093c565b50600061093c565b600081815260018301602052604081205480156130d5576000613010600183613d20565b855490915060009061302490600190613d20565b905081811461308957600086600001828154811061304457613044613881565b906000526020600020015490508087600001848154811061306757613067613881565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061309a5761309a613ede565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061093c565b600091505061093c565b6000808251604114156131165760208301516040840151606085015160001a61310a87828585613311565b94509450505050611fab565b82516040141561314057602083015160408401516131358683836133f4565b935093505050611fab565b50600090506002611fab565b600081600481111561316057613160613ef4565b14156131695750565b600181600481111561317d5761317d613ef4565b14156131c65760405162461bcd60e51b815260206004820152601860248201527745434453413a20696e76616c6964207369676e617475726560401b604482015260640161079f565b60028160048111156131da576131da613ef4565b14156132285760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161079f565b600381600481111561323c5761323c613ef4565b14156132955760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161079f565b60048160048111156132a9576132a9613ef4565b1415610ff35760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b606482015260840161079f565b6060610a30848460008561342d565b6000806fa2a8918ca85bafe22016d0b997e4df60600160ff1b0383111561333e57506000905060036133eb565b8460ff16601b1415801561335657508460ff16601c14155b1561336757506000905060046133eb565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156133bb573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166133e4576000600192509250506133eb565b9150600090505b94509492505050565b6000806001600160ff1b0383168161341160ff86901c601b613d08565b905061341f87828885613311565b935093505050935093915050565b60608247101561348e5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161079f565b6001600160a01b0385163b6134e55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161079f565b600080866001600160a01b031685876040516135019190613f0a565b60006040518083038185875af1925050503d806000811461353e576040519150601f19603f3d011682016040523d82523d6000602084013e613543565b606091505b509150915061355382828661355e565b979650505050505050565b6060831561356d575081610a33565b82511561357d5782518084602001fd5b8160405162461bcd60e51b815260040161079f9190613caf565b6001600160401b0381168114610ff357600080fd5b6001600160a01b0381168114610ff357600080fd5b600080604083850312156135d457600080fd5b82356135df81613597565b915060208301356135ef816135ac565b809150509250929050565b60006020828403121561360c57600080fd5b81356001600160e01b031981168114610a3357600080fd5b60006020828403121561363657600080fd5b8135610a33816135ac565b60008060006060848603121561365657600080fd5b833561366181613597565b92506020840135613671816135ac565b929592945050506040919091013590565b80516001600160a01b031682526020908101516001600160401b0316910152565b608081016136b18285613682565b610a336040830184613682565b6000602082840312156136d057600080fd5b5035919050565b600080604083850312156136ea57600080fd5b8235915060208301356135ef816135ac565b60006060828403121561370e57600080fd5b50919050565b6000806040838503121561372757600080fd5b82356001600160401b038082111561373e57600080fd5b61374a868387016136fc565b9350602085013591508082111561376057600080fd5b5061376d858286016136fc565b9150509250929050565b6000806040838503121561378a57600080fd5b8235613795816135ac565b915060208301356135ef81613597565b6000602082840312156137b757600080fd5b81356001600160401b038111156137cd57600080fd5b6137d9848285016136fc565b949350505050565b6000602082840312156137f357600080fd5b8135610a3381613597565b6000806040838503121561381157600080fd5b50508035926020909101359150565b60006101e0828403121561370e57600080fd5b60006040828403121561370e57600080fd5b60006080828403121561370e57600080fd5b6001600160401b039390931683526001600160a01b03918216602084015216604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001600160401b038083168185168083038211156138cf576138cf613897565b01949350505050565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b0381118282101715613910576139106138d8565b60405290565b604051601f8201601f191681016001600160401b038111828210171561393e5761393e6138d8565b604052919050565b60006060823603121561395857600080fd5b6139606138ee565b823561396b816135ac565b81526020838101358183015260408401356001600160401b038082111561399157600080fd5b9085019036601f8301126139a457600080fd5b8135818111156139b6576139b66138d8565b6139c8601f8201601f19168501613916565b915080825236848285010111156139de57600080fd5b808484018584013760009082019093019290925250604082015292915050565b60609290921b6bffffffffffffffffffffffff19168252601482015260340190565b8060070b8114610ff357600080fd5b600060208284031215613a4157600080fd5b8135610a3381613a20565b8135613a57816135ac565b81546001600160a01b031981166001600160a01b039290921691821783556020840135613a8381613597565b6001600160e01b03199190911690911760a09190911b67ffffffffffffffff60a01b1617905550565b600060808284031215613abe57600080fd5b604051608081018181106001600160401b0382111715613ae057613ae06138d8565b6040528235613aee81613a20565b81526020830135613afe81613597565b60208201526040830135613b1181613597565b60408201526060830135613b2481613597565b60608201529392505050565b634e487b7160e01b600052601260045260246000fd5b60006001600160401b0380841680613b6057613b60613b30565b92169190910492915050565b60006001600160401b0380831681851681830481118215151615613b9257613b92613897565b02949350505050565b60008160070b8360070b6000821282677fffffffffffffff03821381151615613bc657613bc6613897565b82677fffffffffffffff19038212811615613be357613be3613897565b50019392505050565b60006001600160401b0383811690831681811015613c0c57613c0c613897565b039392505050565b60005b83811015613c2f578181015183820152602001613c17565b8381111561265f5750506000910152565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b815260008351613c72816017850160208801613c14565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351613ca3816028840160208801613c14565b01602801949350505050565b6020815260008251806020840152613cce816040850160208701613c14565b601f01601f19169190910160400192915050565b60006001600160401b0380841680613cfc57613cfc613b30565b92169190910692915050565b60008219821115613d1b57613d1b613897565b500190565b600082821015613d3257613d32613897565b500390565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b8135613d8d81613a20565b81546001600160401b038281166001600160401b031983161784556020850135613db681613597565b67ffffffffffffffff60401b604091821b16919093166001600160801b031983168117821785559285013590613deb82613597565b6001600160c01b03199283168417811760809290921b67ffffffffffffffff60801b169182178555606086013592613e2284613597565b93171760c09190911b90911617905550565b60008160070b8360070b6000811281677fffffffffffffff1901831281151615613e6057613e60613897565b81677fffffffffffffff018313811615613e7c57613e7c613897565b5090039392505050565b6000816000190483118215151615613ea057613ea0613897565b500290565b600081613eb457613eb4613897565b506000190190565b600060208284031215613ece57600080fd5b81518015158114610a3357600080fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b60008251613f1c818460208701613c14565b919091019291505056fe19e6f23df7275b48d1c33822c6ad041a743378552246ac819f578ae1d6709cf96d8dad7188c7ed005c55bf77fbf589583d8668b0dad30a9b9dd016321a5c256fc1b97c934675624ef2089089ac12ae8922988c11dc8a578dfbac10d9eecf47611d693f62a755e2b3c6494da41af454605b9006057cb3c79b6adda1378f2a50a7b07567e7223e21f7dce4c0a89131ce9c32d0d3484085f3f331dea8caef56d141a26469706673582212209f51e02124f32723d3a2f129637bcced41953624c5f087712d8517a7f9b2ab7764736f6c63430008090033",
1585
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102945760003560e01c80637b617f9411610167578063c5b6aa2f116100ce578063e2fc6f6811610087578063e2fc6f681461069f578063e3f7bb55146106a9578063e460d2c5146106d0578063e4d20c1d146106d8578063f698da25146106eb578063fed87be8146106f357600080fd5b8063c5b6aa2f1461063f578063ca15c87314610647578063ce9c7c0d1461065a578063cfe9232b1461066d578063d547741f14610682578063db2e1eed1461069557600080fd5b80639a1fadd3116101205780639a1fadd3146105e1578063a217fddf146105f4578063b3ee252f146105fc578063b51d1d4f14610611578063b6b55f2514610619578063bef0ec741461062c57600080fd5b80637b617f941461054957806383af0a1f1461057c5780638948cc4e146105865780638a19c8bc1461059b5780639010d07c146105bb57806391d14854146105ce57600080fd5b80632f2ff15d1161020b578063639d7566116101c4578063639d7566146104915780636a514beb146104a55780636ad72517146105085780636dc4fc4e146105105780636e8cace51461052357806370a082311461053657600080fd5b80632f2ff15d14610404578063336a5b5e1461041757806336568abe1461042c57806338af3eed1461043f578063447a709e1461046b5780635633c3371461047e57600080fd5b80630d253fbe1161025d5780630d253fbe1461037457806314d963161461038a5780631682e50b146103b15780631c31f710146103c6578063248a9ca3146103d95780632d668ce7146103fc57600080fd5b80627be2fe146102995780630152682d146102ae57806301ffc9a71461031d57806302b629381461034057806304c584ad14610361575b600080fd5b6102ac6102a73660046135c1565b610706565b005b610104546102e490600781900b906001600160401b03600160401b8204811691600160801b8104821691600160c01b9091041684565b6040805160079590950b85526001600160401b039384166020860152918316918401919091521660608201526080015b60405180910390f35b61033061032b3660046135fa565b610917565b6040519015158152602001610314565b61035361034e366004613624565b610942565b604051908152602001610314565b61035361036f366004613641565b6109ba565b61037c610a3a565b6040516103149291906136a3565b6103537f3fb9f0655b78e8eabe9e0f51d65db56c7690d4329012c3faf1fbd6d43f65826181565b610353600080516020613f4783398151915281565b6102ac6103d4366004613624565b610aea565b6103536103e73660046136be565b60009081526065602052604090206001015490565b610330610b6f565b6102ac6104123660046136d7565b610bca565b610353600080516020613f6783398151915281565b6102ac61043a3660046136d7565b610bf5565b61010054610453906001600160a01b031681565b6040516001600160a01b039091168152602001610314565b6102ac610479366004613714565b610c73565b61035361048c366004613777565b610e9a565b61010154610453906001600160a01b031681565b6104e16104b3366004613624565b610106602052600090815260409020546001600160a01b03811690600160a01b90046001600160401b031682565b604080516001600160a01b0390931683526001600160401b03909116602083015201610314565b6102ac610fac565b6102ac61051e3660046137a5565b610ff6565b610353610531366004613777565b61111a565b610353610544366004613624565b611200565b61055c6105573660046137e1565b611278565b604080516001600160401b03938416815292909116602083015201610314565b6103536101035481565b610353600080516020613fa783398151915281565b6105a36112da565b6040516001600160401b039091168152602001610314565b6104536105c93660046137fe565b611330565b6103306105dc3660046136d7565b611348565b6102ac6105ef366004613820565b611373565b610353600081565b610353600080516020613f2783398151915281565b6102ac611803565b6102ac6106273660046136be565b6118c9565b6102ac61063a366004613833565b611934565b6102ac611a7d565b6103536106553660046136be565b611b39565b6102ac6106683660046136be565b611b50565b610353600080516020613f8783398151915281565b6102ac6106903660046136d7565b611bfd565b6103536101025481565b6103536101055481565b6103537fa8131bb4589277d6866d942849029b416b39e61eb3969a32787130bbdd292a9681565b610330611c23565b6102ac6106e63660046136be565b611c97565b610353611d07565b6102ac610701366004613845565b611d11565b6040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152600061075b82611e7a565b9050806001600160401b0316846001600160401b031610156107a857604051631cafa7eb60e11b81526001600160401b038086166004830152821660248201526044015b60405180910390fd5b60006107b560fe86611eb0565b80546001600160a01b039081166000818152610106602052604090205492935091168015610811576001600160a01b038116331461080c57868133604051633b10eca560e11b815260040161079f93929190613857565b610840565b6001600160a01b0382163314610840578682336040516333057b6960e11b815260040161079f93929190613857565b82546001600160a01b0319166001600160a01b038716178355600080610866878a611f33565b90925090506001600160a01b03831661087f5783610881565b825b6001600160a01b0316886001600160a01b0316856001600160a01b03167fb59adc820ca642dad493a0a6e0bdf979dcae037dea114b70d5c66b1c0b791c4b8c426001600160401b0316876001600160401b0316106108df57866108e1565b425b604080516001600160401b03938416815291831660208301529187168183015290519081900360600190a4505050505050505050565b60006001600160e01b03198216635a05180f60e01b148061093c575061093c82611fb2565b92915050565b6040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b9004909116606082015260009061093c9061099c90611e7a565b6001600160a01b038416600090815260fd6020526040902090611fe7565b604080517f0358b2b705d5c5ef47651be44f418326852a390f3b4c933661a5f4f0d8fa1ee360208201526001600160401b038516918101919091526001600160a01b038316606082015260808101829052600090610a309060a00160405160208183030381529060405280519060200120612010565b90505b9392505050565b6040805180820190915260008082526020820152604080518082019091526000808252602082015260ff5460fe546001600160401b03600160a01b928390048116929091041611610a8e5760ff60fe610a93565b60fe60ff5b60408051808201825292546001600160a01b0380821685526001600160401b03600160a01b928390048116602080880191909152845180860190955294549182168452919004169181019190915290939092509050565b600080516020613f67833981519152610b03813361205e565b61010054604080516001600160a01b03928316815291841660208301527f8a0149b2f3ddf2c9ee85738165131d82babbb938f749321d59f75750afa7f4e6910160405180910390a15061010080546001600160a01b0319166001600160a01b0392909216919091179055565b6040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152600090610bc5906120c2565b905090565b600082815260656020526040902060010154610be6813361205e565b610bf0838361212d565b505050565b6001600160a01b0381163314610c655760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b606482015260840161079f565b610c6f828261214f565b5050565b600080516020613f87833981519152610c8c813361205e565b6040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152610cdf816120c2565b610cfc5760405163b9adeefd60e01b815260040160405180910390fd5b826020013584602001351015610d255760405163a234cb1960e01b815260040160405180910390fd5b6101025483602001351015610d5f5761010254604051632b7cdbad60e11b815260208501356004820152602481019190915260440161079f565b6000610d6a82611e7a565b90506000610d798260016138ad565b9050600080610d90610d8a89613946565b84612171565b91509150600080610daa89610da490613946565b86612171565b91509150816001600160a01b0316846001600160a01b03161415610de15760405163f4a3e48560e01b815260040160405180910390fd5b88602001358a60200135148015610e4957508181604051602001610e069291906139fe565b60408051601f1981840301815290829052805160209182012091610e2e9187918791016139fe565b6040516020818303038152906040528051906020012060001c105b15610e67576040516348c2d05760e11b815260040160405180910390fd5b600080610e748988611f33565b91509150610e8c60018d888e602001358c878761224f565b505050505050505050505050565b6040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152600090610ef090611e7a565b6001600160401b0316826001600160401b03161015610f8a576040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b900490911660608201528290610f5e90611e7a565b604051631cafa7eb60e11b81526001600160401b0392831660048201529116602482015260440161079f565b6001600160a01b038316600090815260fd60205260409020610a3390836123a5565b6101055480610fce57604051631f2a200560e01b815260040160405180910390fd5b6000610105556101005461010154610ff3916001600160a01b039182169116836123bd565b50565b600080516020613f8783398151915261100f813361205e565b6040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152611062816120c2565b61107f5760405163b9adeefd60e01b815260040160405180910390fd5b61010254836020013510156110b95761010254604051632b7cdbad60e11b815260208501356004820152602481019190915260440161079f565b60006110c482611e7a565b905060006110d38260016138ad565b905060006110e96110e387613946565b83612171565b5090506000806110f98685611f33565b91509150611110600089856101025489878761224f565b5050505050505050565b6040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b9004909116606082015260009061117090611e7a565b6001600160401b0316826001600160401b031610156111de576040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b900490911660608201528290610f5e90611e7a565b6001600160a01b038316600090815260fd60205260409020610a339083611fe7565b6040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b9004909116606082015260009061093c9061125a90611e7a565b6001600160a01b038416600090815260fd60205260409020906123a5565b6040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b9004909116606082015260009081906112d19084611f33565b91509150915091565b6040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152600090610bc590611e7a565b6000828152609760205260408120610a339083612420565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600054610100900460ff1661138e5760005460ff1615611392565b303b155b6113f55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161079f565b600054610100900460ff16158015611417576000805461ffff19166101011790555b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156114a55760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b606482015260840161079f565b6114ad61242c565b6114fa6040518060400160405280601281526020017122bc383932b9b9a630b732a0bab1ba34b7b760711b815250604051806040016040528060018152602001603160f81b815250612455565b600061150c6040840160208501613624565b6001600160a01b0316141561153457604051633fb3c7af60e01b815260040160405180910390fd5b6115446040830160208401613624565b61010180546001600160a01b0319166001600160a01b03929092169190911790556115756060830160408401613624565b61010080546001600160a01b0319166001600160a01b03929092169190911790557f8a0149b2f3ddf2c9ee85738165131d82babbb938f749321d59f75750afa7f4e660006115c96060850160408601613624565b604080516001600160a01b0393841681529290911660208301520160405180910390a160e0820135610103819055604080516000815260208101929092527f5848068f11aa3ba9fe3fc33c5f9f2a3cd1aed67986b85b5e0cedc67dbe96f0f0910160405180910390a160e0820135610102819055604080516000815260208101929092527f9725e37e079c5bda6009a8f54d86265849f30acf61c630f9e1ac91e67de98794910160405180910390a1600061168a6080840160608501613a2f565b60070b12156116ac57604051630b7a36ff60e11b815260040160405180910390fd5b6116b882606001612486565b6116d460006116cf6101e085016101c08601613624565b61212d565b6116f8600080516020613fa78339815191526116cf61014085016101208601613624565b61171c600080516020613f678339815191526116cf6101a085016101808601613624565b611773600080516020613f8783398151915261173b6020850185613624565b7f3fb9f0655b78e8eabe9e0f51d65db56c7690d4329012c3faf1fbd6d43f65826161176e61012087016101008801613624565b612641565b6117ca600080516020613f2783398151915261179761016085016101408601613624565b7fa8131bb4589277d6866d942849029b416b39e61eb3969a32787130bbdd292a9661176e61018087016101608801613624565b6117ee600080516020613f478339815191526116cf6101c085016101a08601613624565b8015610c6f576000805461ff00191690555050565b6040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b9004909116606082015260009061185990611e7a565b6118649060026138ad565b33600090815260fd6020526040902080549192506118829083612665565b604080518281526001600160401b038416602082015233917f31f69201fab7912e3ec9850e3ab705964bf46d9d4276bdcbb6d05e965e5f5401910160405180910390a25050565b33600090815260fd602052604090206118e29082612702565b610101546118fb906001600160a01b031633308461276f565b60405181815233907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c906020015b60405180910390a250565b3360009081526101066020526040902080546001600160a01b0316158015906119c557506040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b900490911660608201526119ab90611e7a565b81546001600160401b03918216600160a01b909104909116115b156119f7578054604051633aec4cf960e11b8152600160a01b9091046001600160401b0316600482015260240161079f565b336000908152610106602052604090208290611a138282613a4c565b50611a2390506020830183613624565b6001600160a01b0316337ff6d28df235d9fa45a42d45dbb7c4f4ac76edb51e528f09f25a0650d32b8b33c0611a5e60408601602087016137e1565b6040516001600160401b03909116815260200160405180910390a35050565b6040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152600090611aec90611ad790611e7a565b33600090815260fd60205260409020906127a7565b61010154909150611b07906001600160a01b031633836123bd565b60405181815233907f9e5c4f9f4e46b8629d3dda85f43a69194f50254404a72dc62b9e932d9c94eda890602001611929565b600081815260976020526040812061093c9061280b565b600080516020613f27833981519152611b69813361205e565b6000611b7560fe612815565b5080546040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b900482166060820152929350611bd69291600160a01b900416612858565b15611bf4576040516309e00d2f60e31b815260040160405180910390fd5b610bf08361290e565b600082815260656020526040902060010154611c19813361205e565b610bf0838361214f565b600080611c3060fe612815565b5080546040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b900482166060820152929350611c919291600160a01b900416612858565b91505090565b600080516020613fa7833981519152611cb0813361205e565b6101035460408051918252602082018490527f5848068f11aa3ba9fe3fc33c5f9f2a3cd1aed67986b85b5e0cedc67dbe96f0f0910160405180910390a161010382905561010254821115610c6f57610c6f8261290e565b6000610bc5612984565b600080516020613f47833981519152611d2a813361205e565b6040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b900490911660608201526000611d7f82611e7a565b90506000611d9a611d9536879003870187613aac565b611e7a565b9050806001600160401b0316826001600160401b031614611de1576040516368c18ca960e01b81526001600160401b0380841660048301528216602482015260440161079f565b6000611df8611df18460016138ad565b8590611f33565b5090506000611e20611e0b8460016138ad565b611e1a368a90038a018a613aac565b90611f33565b509050806001600160401b0316826001600160401b031614611e685760405163141c4d3b60e31b81526001600160401b0380841660048301528216602482015260440161079f565b611e7187612486565b50505050505050565b8051600090600790810b4290910b1215611e9657506000919050565b60208201518251611ea6906129ff565b61093c9190613b46565b60006001600160401b03821683820154600160a01b90046001600160401b03161415611ee2578260005b01905061093c565b6001600160401b0382168360010154600160a01b90046001600160401b03161415611f0f57826001611eda565b604051631f760a5b60e31b81526001600160401b038316600482015260240161079f565b6000806000838560200151611f489190613b6c565b8551611f549190613b9b565b905060008160070b1215611f815760405163f160ad7960e01b8152600782900b600482015260240161079f565b60208501518190600090600190611f9890846138ad565b611fa29190613bec565b91945090925050505b9250929050565b60006001600160e01b03198216637965db0b60e01b148061093c57506301ffc9a760e01b6001600160e01b031983161461093c565b60018201546000906001600160401b03908116908316101561200a576000610a33565b50505490565b600061093c61201d612984565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b6120688282611348565b610c6f57612080816001600160a01b03166014612a0b565b61208b836020612a0b565b60405160200161209c929190613c40565b60408051601f198184030181529082905262461bcd60e51b825261079f91600401613caf565b8051600090600790810b4290910b12156120de57506000919050565b60006120ed83600001516129ff565b905060008360200151826121019190613ce2565b9050836040015184602001516121179190613bec565b6001600160401b03908116911610159392505050565b6121378282612ba6565b6000828152609760205260409020610bf09082612c2c565b6121598282612c41565b6000828152609760205260409020610bf09082612ca8565b600080600061218984866000015187602001516109ba565b905060006121a4866040015183612cbd90919063ffffffff16565b905060006121b3600187613bec565b6020808901516001600160a01b038516600090815260fd9092526040909120919250906121e090836123a5565b1015612244576020808801516001600160a01b038416600090815260fd909252604090912083919061221290846123a5565b604051630dac930560e21b81526001600160a01b0390931660048401526024830191909152604482015260640161079f565b509590945092505050565b600061225c8460016138ad565b90506122788161226f60208a018a613624565b60fe9190612ce1565b6001600160a01b038616600090815260fd6020526040902061229b908686612db4565b8461010560008282546122ae9190613d08565b90915550600090506122c36020890189613624565b604080516001600160401b038581168252878116602083015286168183015290516001600160a01b0392909216916000917fb59adc820ca642dad493a0a6e0bdf979dcae037dea114b70d5c66b1c0b791c4b919081900360600190a461232c6020880188613624565b604080516001600160401b03848116825260208b8101359083015281830189905286811660608301528516608082015290516001600160a01b03928316928916918b1515917f7f5bdabbd27a8fc572781b177055488d7c6729a2bade4f57da9d200f31c15d479181900360a00190a45050505050505050565b60006123b18383611fe7565b8354610a339190613d20565b6040516001600160a01b038316602482015260448101829052610bf090849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612e15565b6000610a338383612ee7565b600054610100900460ff166124535760405162461bcd60e51b815260040161079f90613d37565b565b600054610100900460ff1661247c5760405162461bcd60e51b815260040161079f90613d37565b610c6f8282612f11565b61249660608201604083016137e1565b6001600160401b03166124bc5760405163023dd6a960e11b815260040160405180910390fd5b620151806124d060408301602084016137e1565b6001600160401b03161115612514576124ef60408201602083016137e1565b60405163c34a76cf60e01b81526001600160401b03909116600482015260240161079f565b61252460408201602083016137e1565b6001600160401b031661253d60608301604084016137e1565b61254d60808401606085016137e1565b61255791906138ad565b6001600160401b0316111561257f576040516301936f1b60e51b815260040160405180910390fd5b8061010461258d8282613d82565b507f982cfb73783b8c64455c76cdeb1351467c4f1e6b3615fec07df232c1b46ffd4790506125c3611d9536849003840184613aac565b6125d06020840184613a2f565b6125e060408501602086016137e1565b6125f060608601604087016137e1565b61260060808701606088016137e1565b604080516001600160401b03968716815260079590950b6020860152928516848401529084166060840152909216608082015290519081900360a00190a150565b61264b848461212d565b612655828261212d565b61265f8483612f52565b50505050565b815461268457604051631f2a200560e01b815260040160405180910390fd5b6001600160401b0381811614156126ae57604051631ec4eeef60e11b815260040160405180910390fd5b60018201546001600160401b03908116146126dc576040516304eb6b3f60e01b815260040160405180910390fd5b600191909101805467ffffffffffffffff19166001600160401b03909216919091179055565b8061272057604051631f2a200560e01b815260040160405180910390fd5b60018201546001600160401b03908116146127525760018201805467ffffffffffffffff19166001600160401b031790555b808260000160008282546127669190613d08565b90915550505050565b6040516001600160a01b038085166024830152831660448201526064810182905261265f9085906323b872dd60e01b906084016123e9565b60006001600160401b0382811614156127d357604051631ec4eeef60e11b815260040160405180910390fd5b60006127df8484611fe7565b9050806127ff57604051630686827b60e51b815260040160405180910390fd5b60008455905092915050565b600061093c825490565b6000808083810190506000846001015482546001600160401b03600160a01b9283900481169290910416101561284e5750506001808401905b9094909350915050565b8151600090600790810b4290910b12156128745750600061093c565b600061287f84611e7a565b905061288c8160016138ad565b6001600160401b0316836001600160401b0316106128ae57600091505061093c565b60006128bd85600001516129ff565b905060008560200151826128d19190613ce2565b90508560600151866040015187602001516128ec9190613bec565b6128f69190613bec565b6001600160401b039081169116101595945050505050565b610103548110156129415761010354604051636d27939760e11b815261079f918391600401918252602082015260400190565b6101025460408051918252602082018390527f9725e37e079c5bda6009a8f54d86265849f30acf61c630f9e1ac91e67de98794910160405180910390a161010255565b6000610bc57f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6129b360c95490565b60ca546040805160208101859052908101839052606081018290524660808201523060a082015260009060c0016040516020818303038152906040528051906020012090509392505050565b600061093c8242613e34565b60606000612a1a836002613e86565b612a25906002613d08565b6001600160401b03811115612a3c57612a3c6138d8565b6040519080825280601f01601f191660200182016040528015612a66576020820181803683370190505b509050600360fc1b81600081518110612a8157612a81613881565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110612ab057612ab0613881565b60200101906001600160f81b031916908160001a9053506000612ad4846002613e86565b612adf906001613d08565b90505b6001811115612b57576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110612b1357612b13613881565b1a60f81b828281518110612b2957612b29613881565b60200101906001600160f81b031916908160001a90535060049490941c93612b5081613ea5565b9050612ae2565b508315610a335760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161079f565b612bb08282611348565b610c6f5760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055612be83390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610a33836001600160a01b038416612f9d565b612c4b8282611348565b15610c6f5760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610a33836001600160a01b038416612fec565b6000806000612ccc85856130df565b91509150612cd98161314c565b509392505050565b600080612ced85612815565b815491935091506001600160401b03808616600160a01b9092041610612d3157604051631147e1cd60e21b81526001600160401b038516600482015260240161079f565b604080518082019091526001600160a01b03841681526001600160401b038516602082015260018218908660ff831660028110612d7057612d70613881565b8251910180546020909301516001600160401b0316600160a01b026001600160e01b03199093166001600160a01b0390921691909117919091179055505050505050565b6000612dc084836123a5565b9050801580612dce57508281105b15612df65760405163cf47918160e01b8152600481018490526024810182905260440161079f565b82846000016000828254612e0a9190613d20565b909155505050505050565b6000612e6a826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166133029092919063ffffffff16565b805190915015610bf05780806020019051810190612e889190613ebc565b610bf05760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161079f565b6000826000018281548110612efe57612efe613881565b9060005260206000200154905092915050565b600054610100900460ff16612f385760405162461bcd60e51b815260040161079f90613d37565b81516020928301208151919092012060c99190915560ca55565b600082815260656020526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6000818152600183016020526040812054612fe45750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561093c565b50600061093c565b600081815260018301602052604081205480156130d5576000613010600183613d20565b855490915060009061302490600190613d20565b905081811461308957600086600001828154811061304457613044613881565b906000526020600020015490508087600001848154811061306757613067613881565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061309a5761309a613ede565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061093c565b600091505061093c565b6000808251604114156131165760208301516040840151606085015160001a61310a87828585613311565b94509450505050611fab565b82516040141561314057602083015160408401516131358683836133f4565b935093505050611fab565b50600090506002611fab565b600081600481111561316057613160613ef4565b14156131695750565b600181600481111561317d5761317d613ef4565b14156131c65760405162461bcd60e51b815260206004820152601860248201527745434453413a20696e76616c6964207369676e617475726560401b604482015260640161079f565b60028160048111156131da576131da613ef4565b14156132285760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161079f565b600381600481111561323c5761323c613ef4565b14156132955760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161079f565b60048160048111156132a9576132a9613ef4565b1415610ff35760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b606482015260840161079f565b6060610a30848460008561342d565b6000806fa2a8918ca85bafe22016d0b997e4df60600160ff1b0383111561333e57506000905060036133eb565b8460ff16601b1415801561335657508460ff16601c14155b1561336757506000905060046133eb565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156133bb573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166133e4576000600192509250506133eb565b9150600090505b94509492505050565b6000806001600160ff1b0383168161341160ff86901c601b613d08565b905061341f87828885613311565b935093505050935093915050565b60608247101561348e5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161079f565b6001600160a01b0385163b6134e55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161079f565b600080866001600160a01b031685876040516135019190613f0a565b60006040518083038185875af1925050503d806000811461353e576040519150601f19603f3d011682016040523d82523d6000602084013e613543565b606091505b509150915061355382828661355e565b979650505050505050565b6060831561356d575081610a33565b82511561357d5782518084602001fd5b8160405162461bcd60e51b815260040161079f9190613caf565b6001600160401b0381168114610ff357600080fd5b6001600160a01b0381168114610ff357600080fd5b600080604083850312156135d457600080fd5b82356135df81613597565b915060208301356135ef816135ac565b809150509250929050565b60006020828403121561360c57600080fd5b81356001600160e01b031981168114610a3357600080fd5b60006020828403121561363657600080fd5b8135610a33816135ac565b60008060006060848603121561365657600080fd5b833561366181613597565b92506020840135613671816135ac565b929592945050506040919091013590565b80516001600160a01b031682526020908101516001600160401b0316910152565b608081016136b18285613682565b610a336040830184613682565b6000602082840312156136d057600080fd5b5035919050565b600080604083850312156136ea57600080fd5b8235915060208301356135ef816135ac565b60006060828403121561370e57600080fd5b50919050565b6000806040838503121561372757600080fd5b82356001600160401b038082111561373e57600080fd5b61374a868387016136fc565b9350602085013591508082111561376057600080fd5b5061376d858286016136fc565b9150509250929050565b6000806040838503121561378a57600080fd5b8235613795816135ac565b915060208301356135ef81613597565b6000602082840312156137b757600080fd5b81356001600160401b038111156137cd57600080fd5b6137d9848285016136fc565b949350505050565b6000602082840312156137f357600080fd5b8135610a3381613597565b6000806040838503121561381157600080fd5b50508035926020909101359150565b60006101e0828403121561370e57600080fd5b60006040828403121561370e57600080fd5b60006080828403121561370e57600080fd5b6001600160401b039390931683526001600160a01b03918216602084015216604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001600160401b038083168185168083038211156138cf576138cf613897565b01949350505050565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b0381118282101715613910576139106138d8565b60405290565b604051601f8201601f191681016001600160401b038111828210171561393e5761393e6138d8565b604052919050565b60006060823603121561395857600080fd5b6139606138ee565b823561396b816135ac565b81526020838101358183015260408401356001600160401b038082111561399157600080fd5b9085019036601f8301126139a457600080fd5b8135818111156139b6576139b66138d8565b6139c8601f8201601f19168501613916565b915080825236848285010111156139de57600080fd5b808484018584013760009082019093019290925250604082015292915050565b60609290921b6bffffffffffffffffffffffff19168252601482015260340190565b8060070b8114610ff357600080fd5b600060208284031215613a4157600080fd5b8135610a3381613a20565b8135613a57816135ac565b81546001600160a01b031981166001600160a01b039290921691821783556020840135613a8381613597565b6001600160e01b03199190911690911760a09190911b67ffffffffffffffff60a01b1617905550565b600060808284031215613abe57600080fd5b604051608081018181106001600160401b0382111715613ae057613ae06138d8565b6040528235613aee81613a20565b81526020830135613afe81613597565b60208201526040830135613b1181613597565b60408201526060830135613b2481613597565b60608201529392505050565b634e487b7160e01b600052601260045260246000fd5b60006001600160401b0380841680613b6057613b60613b30565b92169190910492915050565b60006001600160401b0380831681851681830481118215151615613b9257613b92613897565b02949350505050565b60008160070b8360070b6000821282677fffffffffffffff03821381151615613bc657613bc6613897565b82677fffffffffffffff19038212811615613be357613be3613897565b50019392505050565b60006001600160401b0383811690831681811015613c0c57613c0c613897565b039392505050565b60005b83811015613c2f578181015183820152602001613c17565b8381111561265f5750506000910152565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b815260008351613c72816017850160208801613c14565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351613ca3816028840160208801613c14565b01602801949350505050565b6020815260008251806020840152613cce816040850160208701613c14565b601f01601f19169190910160400192915050565b60006001600160401b0380841680613cfc57613cfc613b30565b92169190910692915050565b60008219821115613d1b57613d1b613897565b500190565b600082821015613d3257613d32613897565b500390565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b8135613d8d81613a20565b81546001600160401b038281166001600160401b031983161784556020850135613db681613597565b67ffffffffffffffff60401b604091821b16919093166001600160801b031983168117821785559285013590613deb82613597565b6001600160c01b03199283168417811760809290921b67ffffffffffffffff60801b169182178555606086013592613e2284613597565b93171760c09190911b90911617905550565b60008160070b8360070b6000811281677fffffffffffffff1901831281151615613e6057613e60613897565b81677fffffffffffffff018313811615613e7c57613e7c613897565b5090039392505050565b6000816000190483118215151615613ea057613ea0613897565b500290565b600081613eb457613eb4613897565b506000190190565b600060208284031215613ece57600080fd5b81518015158114610a3357600080fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b60008251613f1c818460208701613c14565b919091019291505056fe19e6f23df7275b48d1c33822c6ad041a743378552246ac819f578ae1d6709cf96d8dad7188c7ed005c55bf77fbf589583d8668b0dad30a9b9dd016321a5c256fc1b97c934675624ef2089089ac12ae8922988c11dc8a578dfbac10d9eecf47611d693f62a755e2b3c6494da41af454605b9006057cb3c79b6adda1378f2a50a7b07567e7223e21f7dce4c0a89131ce9c32d0d3484085f3f331dea8caef56d141a26469706673582212209f51e02124f32723d3a2f129637bcced41953624c5f087712d8517a7f9b2ab7764736f6c63430008090033",
1586
- "linkReferences": {},
1587
- "deployedLinkReferences": {}
1588
- }