@artblocks/contracts 1.3.1 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (234) hide show
  1. package/README.md +11 -10
  2. package/artifacts/contracts/AdminACLV0RoyaltyRegistry.sol/AdminACLV0RoyaltyRegistry.json +193 -0
  3. package/artifacts/contracts/AdminACLV0RoyaltyRegistry.sol/IRoyaltyRegistry.json +35 -0
  4. package/artifacts/contracts/AdminACLV1.sol/AdminACLV1.json +2 -2
  5. package/artifacts/contracts/BytecodeStorageReaders/BytecodeStorageReaderContractV2.sol/BytecodeStorageReaderContractV2.json +2 -2
  6. package/artifacts/contracts/BytecodeStorageReaders/BytecodeStorageReaderContractV2_Web3Call.sol/BytecodeStorageReaderContractV2_Web3Call.json +2 -2
  7. package/artifacts/contracts/BytecodeStorageV2Writer.sol/BytecodeStorageV2Writer.json +2 -2
  8. package/artifacts/contracts/DependencyRegistryV0.sol/DependencyRegistryV0.json +210 -2
  9. package/artifacts/contracts/GenArt721CoreV3_Curated.sol/GenArt721CoreV3_Curated.json +235 -20
  10. package/artifacts/contracts/GenArt721CoreV3_Curated_Flex.sol/GenArt721CoreV3_Curated_Flex.json +3197 -0
  11. package/artifacts/contracts/GenArt721CoreV3_Explorations_Flex.sol/GenArt721CoreV3_Explorations_Flex.json +3192 -0
  12. package/artifacts/contracts/OwnedCreate2FactoryV0.sol/OwnedCreate2FactoryV0.json +2 -2
  13. package/artifacts/contracts/archive/GenArt721CoreV3.sol/GenArt721CoreV3.json +27 -2
  14. package/artifacts/contracts/archive/GenArt721CoreV3_Explorations.sol/GenArt721CoreV3_Explorations.json +27 -2
  15. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV2.sol/MinterDAExpV2.json +2 -2
  16. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV3.sol/MinterDAExpV3.json +2 -2
  17. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV4.sol/MinterDAExpV4.json +2 -2
  18. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol/MinterDAExpSettlementV0.json +2 -2
  19. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV1.sol/MinterDAExpSettlementV1.json +2 -2
  20. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV2.sol/MinterDAExpSettlementV2.json +2 -2
  21. package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV2.sol/MinterDALinV2.json +2 -2
  22. package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV3.sol/MinterDALinV3.json +2 -2
  23. package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV4.sol/MinterDALinV4.json +2 -2
  24. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV1.sol/MinterHolderV1.json +2 -2
  25. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV2.sol/MinterHolderV2.json +2 -2
  26. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV3.sol/MinterHolderV3.json +2 -2
  27. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV4.sol/MinterHolderV4.json +2 -2
  28. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV1.sol/MinterMerkleV1.json +2 -2
  29. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV2.sol/MinterMerkleV2.json +2 -2
  30. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV3.sol/MinterMerkleV3.json +2 -2
  31. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV4.sol/MinterMerkleV4.json +2 -2
  32. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV5.sol/MinterMerkleV5.json +2 -2
  33. package/artifacts/contracts/archive/minter-suite/Minters/MinterPolyptych/MinterPolyptychV0.sol/IGenArt721CoreContractV3WithRandomizer.json +25 -0
  34. package/artifacts/contracts/archive/minter-suite/Minters/MinterPolyptych/MinterPolyptychV0.sol/MinterPolyptychV0.json +2 -2
  35. package/artifacts/contracts/archive/minter-suite/Minters/MinterSEA/MinterSEAV0.sol/MinterSEAV0.json +2 -2
  36. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV2.sol/MinterSetPriceV2.json +2 -2
  37. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV3.sol/MinterSetPriceV3.json +2 -2
  38. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV4.sol/MinterSetPriceV4.json +2 -2
  39. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V2.sol/MinterSetPriceERC20V2.json +2 -2
  40. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V3.sol/MinterSetPriceERC20V3.json +2 -2
  41. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V4.sol/MinterSetPriceERC20V4.json +2 -2
  42. package/artifacts/contracts/engine/V3/EngineFactoryV0.sol/EngineFactoryV0.json +28 -2
  43. package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine.sol/GenArt721CoreV3_Engine.json +239 -20
  44. package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol/GenArt721CoreV3_Engine_Flex.json +267 -48
  45. package/artifacts/contracts/engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol/GenArt721CoreV3_Engine_Flex_PROOF.json +27 -2
  46. package/artifacts/contracts/engine/V3/forks/PROHIBITION/AdminACLV0_PROHIBITION.sol/AdminACLV0_PROHIBITION.json +2 -2
  47. package/artifacts/contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol/GenArt721CoreV3_Engine_Flex_PROHIBITION.json +27 -2
  48. package/artifacts/contracts/engine/V3/forks/PROHIBITION/interfaces/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.sol/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.json +25 -0
  49. package/artifacts/contracts/engine/V3/transfer-hooks/AbstractTransferHook.sol/AbstractTransferHook.json +79 -0
  50. package/artifacts/contracts/engine/V3/transfer-hooks/OwnerHistoryTransferHook.sol/OwnerHistoryTransferHook.json +315 -0
  51. package/artifacts/contracts/generator/GenArt721GeneratorV0.sol/GenArt721GeneratorV0.json +2 -2
  52. package/artifacts/contracts/interfaces/v0.8.x/IClaimMinter.sol/IClaimMinter.json +189 -0
  53. package/artifacts/contracts/interfaces/v0.8.x/IDependencyRegistryV0.sol/IDependencyRegistryV0.json +149 -0
  54. package/artifacts/contracts/interfaces/v0.8.x/IEngineFactoryV0.sol/IEngineFactoryV0.json +26 -0
  55. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3.sol/IGenArt721CoreContractV3.json +25 -0
  56. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Base.sol/IGenArt721CoreContractV3_Base.json +25 -0
  57. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine.sol/IGenArt721CoreContractV3_Engine.json +123 -0
  58. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex.sol/IGenArt721CoreContractV3_Engine_Flex.json +123 -0
  59. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex_PreV3p2.sol/IGenArt721CoreContractV3_Engine_Flex_PreV3p2.json +25 -0
  60. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_PreV3p2.sol/IGenArt721CoreContractV3_Engine_PreV3p2.json +25 -0
  61. package/artifacts/contracts/interfaces/v0.8.x/IOwnerHistoryTransferHook.sol/IOwnerHistoryTransferHook.json +299 -0
  62. package/artifacts/contracts/interfaces/v0.8.x/IPMPV0.sol/IPMPV0.json +7 -1
  63. package/artifacts/contracts/interfaces/v0.8.x/ISRHooks.sol/ISRHooks.json +432 -0
  64. package/artifacts/contracts/interfaces/v0.8.x/ISeaDropShimForContract.sol/ISeaDropShimForContract.json +0 -13
  65. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterTieredAllowV0.sol/ISharedMinterTieredAllowV0.json +94 -0
  66. package/artifacts/contracts/interfaces/v0.8.x/ITransferHook.sol/ITransferHook.json +63 -0
  67. package/artifacts/contracts/libs/v0.8.x/AuthLib.sol/AuthLib.json +2 -2
  68. package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV2.sol/BytecodeStorageReader.json +2 -2
  69. package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV2.sol/BytecodeStorageWriter.json +2 -2
  70. package/artifacts/contracts/libs/v0.8.x/DependencyRegistryStorageLib.sol/DependencyRegistryStorageLib.json +2 -2
  71. package/artifacts/contracts/libs/v0.8.x/ENSLib.sol/ENSLib.json +10 -0
  72. package/artifacts/contracts/libs/v0.8.x/ENSLib.sol/IUniversalResolver.json +45 -0
  73. package/artifacts/contracts/libs/v0.8.x/EnumerableSetUint16.sol/EnumerableSetUint16.json +10 -0
  74. package/artifacts/contracts/libs/v0.8.x/FeistelWalkLib.sol/FeistelWalkLib.json +10 -0
  75. package/artifacts/contracts/libs/v0.8.x/ImmutableUint16Array.sol/ImmutableUint16Array.json +10 -0
  76. package/artifacts/contracts/libs/v0.8.x/V3EngineLib.sol/V3EngineLib.json +163 -0
  77. package/artifacts/contracts/libs/v0.8.x/V3FlexLib.sol/V3FlexLib.json +2 -2
  78. package/artifacts/contracts/libs/v0.8.x/V3TransferHookLib.sol/V3TransferHookLib.json +79 -0
  79. package/artifacts/contracts/libs/v0.8.x/minter-libs/MaxInvocationsLib.sol/MaxInvocationsLib.json +2 -2
  80. package/artifacts/contracts/libs/v0.8.x/minter-libs/OnChainAllowlistLib.sol/OnChainAllowlistLib.json +10 -0
  81. package/artifacts/contracts/libs/v0.8.x/minter-libs/PolyptychLib.sol/PolyptychLib.json +2 -2
  82. package/artifacts/contracts/libs/v0.8.x/minter-libs/RAMLib.sol/RAMLib.json +2 -2
  83. package/artifacts/contracts/libs/v0.8.x/minter-libs/SEALib.sol/SEALib.json +2 -2
  84. package/artifacts/contracts/libs/v0.8.x/minter-libs/SettlementExpLib.sol/SettlementExpLib.json +2 -2
  85. package/artifacts/contracts/libs/v0.8.x/minter-libs/SplitFundsLib.sol/SplitFundsLib.json +2 -2
  86. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV1.sol/MinterFilterV1.json +2 -2
  87. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV2.sol/MinterFilterV2.json +2 -2
  88. package/artifacts/contracts/minter-suite/Minters/MinterDAExpHolderV5.sol/MinterDAExpHolderV5.json +2 -2
  89. package/artifacts/contracts/minter-suite/Minters/MinterDAExpSettlementV3.sol/MinterDAExpSettlementV3.json +2 -2
  90. package/artifacts/contracts/minter-suite/Minters/MinterDAExpV5.sol/MinterDAExpV5.json +2 -2
  91. package/artifacts/contracts/minter-suite/Minters/MinterDALinHolderV5.sol/MinterDALinHolderV5.json +2 -2
  92. package/artifacts/contracts/minter-suite/Minters/MinterDALinV5.sol/MinterDALinV5.json +2 -2
  93. package/artifacts/contracts/minter-suite/Minters/MinterMinPriceMerkleV0.sol/MinterMinPriceMerkleV0.json +2 -2
  94. package/artifacts/contracts/minter-suite/Minters/MinterMinPriceV0.sol/MinterMinPriceV0.json +2 -2
  95. package/artifacts/contracts/minter-suite/Minters/MinterRAMV0.sol/MinterRAMV0.json +2 -2
  96. package/artifacts/contracts/minter-suite/Minters/MinterSEAV1.sol/MinterSEAV1.json +2 -2
  97. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20V5.sol/MinterSetPriceERC20V5.json +2 -2
  98. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceHolderV5.sol/MinterSetPriceHolderV5.json +2 -2
  99. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceMerkleV5.sol/MinterSetPriceMerkleV5.json +2 -2
  100. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceOnChainAllowV0.sol/MinterSetPriceOnChainAllowV0.json +522 -0
  101. package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychERC20V5.sol/MinterSetPricePolyptychERC20V5.json +2 -2
  102. package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychV5.sol/MinterSetPricePolyptychV5.json +2 -2
  103. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceTieredAllowV1.sol/MinterSetPriceTieredAllowV1.json +715 -0
  104. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceV5.sol/MinterSetPriceV5.json +2 -2
  105. package/artifacts/contracts/minter-suite/Minters/MinterSlidingScaleV0.sol/MinterSlidingScaleV0.json +431 -0
  106. package/artifacts/contracts/minter-suite/Minters/one-off/ClaimMinter.sol/ClaimMinter.json +502 -0
  107. package/artifacts/contracts/minter-suite/Minters/one-off/MinterSetPriceTieredOnChainAllowV0.sol/MinterSetPriceTieredOnChainAllowV0.json +673 -0
  108. package/artifacts/contracts/minter-suite/Minters/one-off/MinterSetPriceV5_SingleCore.sol/MinterSetPriceV5_SingleCore.json +2 -2
  109. package/artifacts/contracts/minter-suite/Minters/one-off/SeaDropXArtBlocksShim.sol/SeaDropXArtBlocksShim.json +6 -19
  110. package/artifacts/contracts/mock/BytecodeV2TextCR_DMock.sol/BytecodeV2TextCR_DMock.json +2 -2
  111. package/artifacts/contracts/mock/DummySharedMinter.sol/DummySharedMinter.json +2 -2
  112. package/artifacts/contracts/mock/ENSLibMock.sol/ENSLibMock.json +30 -0
  113. package/artifacts/contracts/mock/EnumerableSetUint16Mock.sol/EnumerableSetUint16Mock.json +146 -0
  114. package/artifacts/contracts/mock/FeistelWalkLibMock.sol/FeistelWalkLibMock.json +142 -0
  115. package/artifacts/contracts/mock/ForceSendMock.sol/ForceSendMock.json +2 -2
  116. package/artifacts/contracts/mock/GenArt721CoreV3_Engine_IncorrectCoreType.sol/GenArt721CoreV3_Engine_IncorrectCoreType.json +2 -2
  117. package/artifacts/contracts/mock/ImmutableUint16ArrayMock.sol/ImmutableUint16ArrayMock.json +89 -0
  118. package/artifacts/contracts/mock/MockAdminACLV0_PROHIBITION.sol/MockAdminACLV0Events_PROHIBITION.json +2 -2
  119. package/artifacts/contracts/mock/MockGenArt721V3Core.sol/MockGenArt721V3Core.json +490 -0
  120. package/artifacts/contracts/mock/MockPMP.sol/MockPMP.json +523 -0
  121. package/artifacts/contracts/mock/MockPMPAugmentHook.sol/MockPMPAugmentHook.json +2 -2
  122. package/artifacts/contracts/mock/MockPMPConfigureHook.sol/MockPMPConfigureHook.json +2 -2
  123. package/artifacts/contracts/mock/MockTransferHook.sol/MockTransferHook.json +453 -0
  124. package/artifacts/contracts/mock/MockTransferHookTestHelpers.sol/MockBatchTransferrer.json +39 -0
  125. package/artifacts/contracts/mock/MockTransferHookTestHelpers.sol/MockForwardingERC721Receiver.json +71 -0
  126. package/artifacts/contracts/mock/MockTransferHookTestHelpers.sol/MockSpoofingCore.json +94 -0
  127. package/artifacts/contracts/mock/RandomizerV2_NoAssignMock.sol/RandomizerV2_NoAssignMock.json +2 -2
  128. package/artifacts/contracts/mock/ReentrancyBatchMockShared.sol/IBatchMinter.json +64 -0
  129. package/artifacts/contracts/mock/ReentrancyBatchMockShared.sol/ReentrancyBatchMockShared.json +113 -0
  130. package/artifacts/contracts/mock/RelayExecutorTestHelper.sol/MockTarget.json +74 -0
  131. package/artifacts/contracts/mock/RelayExecutorTestHelper.sol/RelayExecutorPartialRevertsTestHelper.json +138 -0
  132. package/artifacts/contracts/mock/RelayExecutorTestHelper.sol/RelayExecutorTestHelper.json +119 -0
  133. package/artifacts/contracts/randomizer/deprecated/PolyptychRandomizerV0.sol/BasicPolyptychRandomizerV0.json +2 -2
  134. package/artifacts/contracts/randomizer/deprecated/RandomizerV2.sol/BasicRandomizerV2.json +2 -2
  135. package/artifacts/contracts/randomizer/shared/SharedRandomizerV0.sol/SharedRandomizerV0.json +2 -2
  136. package/artifacts/contracts/relay/RelayExecutor.sol/RelayExecutor.json +101 -0
  137. package/artifacts/contracts/relay/RelayExecutorPartialReverts.sol/RelayExecutorPartialReverts.json +120 -0
  138. package/artifacts/contracts/royalty-registry/GenArt721RoyaltyOverrideSplits.sol/GenArt721RoyaltyOverrideSplits.json +263 -0
  139. package/artifacts/contracts/utils/MintMulticallUtil.sol/IMinterSetPriceV5.json +40 -0
  140. package/artifacts/contracts/utils/MintMulticallUtil.sol/MintMulticallUtil.json +163 -0
  141. package/artifacts/contracts/web3call/PMPV0.sol/PMPV0.json +9 -3
  142. package/artifacts/contracts/web3call/PMPV1.sol/PMPV1.json +648 -0
  143. package/artifacts/contracts/web3call/augment-hooks/InjectBaseGasFee.sol/InjectBaseGasFee.json +2 -2
  144. package/artifacts/contracts/web3call/augment-hooks/InjectBlockHeight.sol/InjectBlockHeight.json +83 -0
  145. package/artifacts/contracts/web3call/augment-hooks/InjectBlockHeightAndArtistProjectOverrides.sol/InjectBlockHeightAndArtistProjectOverrides.json +226 -0
  146. package/artifacts/contracts/web3call/augment-hooks/InjectBlockHeightAndNumOwnedProjectTokens.sol/InjectBlockHeightAndNumOwnedProjectTokens.json +182 -0
  147. package/artifacts/contracts/web3call/augment-hooks/InjectBlockHeightProjectInvocationsAndArtistProjectOverrides.sol/InjectBlockHeightProjectInvocationsAndArtistProjectOverrides.json +226 -0
  148. package/artifacts/contracts/web3call/augment-hooks/InjectBlockTimestamp.sol/InjectBlockTimestamp.json +83 -0
  149. package/artifacts/contracts/web3call/augment-hooks/InjectBytesPerToken.sol/InjectBytesPerToken.json +358 -0
  150. package/artifacts/contracts/web3call/augment-hooks/InjectChromieSquiggleFloorPrice.sol/InjectChromieSquiggleFloorPrice.json +2 -2
  151. package/artifacts/contracts/web3call/augment-hooks/InjectIsNounsDaoMember.sol/InjectIsNounsDaoMember.json +2 -2
  152. package/artifacts/contracts/web3call/augment-hooks/InjectIsProjectFullyMinted.sol/InjectIsProjectFullyMinted.json +2 -2
  153. package/artifacts/contracts/web3call/augment-hooks/InjectPolyptychTokenHash.sol/InjectPolyptychTokenHash.json +2 -2
  154. package/artifacts/contracts/web3call/augment-hooks/InjectTokenHashSeed.sol/InjectTokenHashSeed.json +2 -2
  155. package/artifacts/contracts/web3call/augment-hooks/InjectTokenOwner.sol/InjectTokenOwner.json +2 -2
  156. package/artifacts/contracts/web3call/augment-hooks/InjectTokenOwnerEthBalance.sol/InjectTokenOwnerEthBalance.json +2 -2
  157. package/artifacts/contracts/web3call/augment-hooks/InjectUSDCTotalSupply.sol/InjectUSDCTotalSupply.json +2 -2
  158. package/artifacts/contracts/web3call/augment-hooks/SRHooks.sol/SRHooks.json +899 -0
  159. package/artifacts/contracts/web3call/combined-hooks/LiftHooks.sol/IGenArt721V0_Minimal.json +30 -0
  160. package/artifacts/contracts/web3call/combined-hooks/LiftHooks.sol/IRelic.json +35 -0
  161. package/artifacts/contracts/web3call/combined-hooks/LiftHooks.sol/LiftHooks.json +256 -0
  162. package/artifacts/contracts/web3call/configure-hooks/{abstractPMPConfigureHook.sol → AbstractPMPConfigureHook.sol}/AbstractPMPConfigureHook.json +1 -1
  163. package/artifacts/contracts/web3call/configure-hooks/PMPConfigureLockHook.sol/PMPConfigureLockHook.json +195 -0
  164. package/contracts/AdminACLV0RoyaltyRegistry.sol +142 -0
  165. package/contracts/DependencyRegistryV0.sol +143 -13
  166. package/contracts/GenArt721CoreV3_Curated.sol +1 -1
  167. package/contracts/GenArt721CoreV3_Curated_Flex.sol +173 -0
  168. package/contracts/GenArt721CoreV3_Explorations_Flex.sol +159 -0
  169. package/contracts/engine/V3/EngineFactoryV0.sol +20 -1
  170. package/contracts/engine/V3/GenArt721CoreV3_Engine.sol +286 -299
  171. package/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol +292 -301
  172. package/contracts/engine/V3/transfer-hooks/AbstractTransferHook.sol +101 -0
  173. package/contracts/engine/V3/transfer-hooks/OwnerHistoryTransferHook.sol +291 -0
  174. package/contracts/generator/GenArt721GeneratorV0.sol +145 -47
  175. package/contracts/helpers/ERC1967ProxyImport.sol +5 -0
  176. package/contracts/interfaces/v0.8.x/IArtblocksRoyaltyOverride.sol +1 -1
  177. package/contracts/interfaces/v0.8.x/IClaimMinter.sol +70 -0
  178. package/contracts/interfaces/v0.8.x/IDependencyRegistryV0.sol +95 -0
  179. package/contracts/interfaces/v0.8.x/IEngineFactoryV0.sol +15 -0
  180. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Base.sol +21 -2
  181. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine.sol +72 -0
  182. package/contracts/interfaces/v0.8.x/IOwnerHistoryTransferHook.sol +119 -0
  183. package/contracts/interfaces/v0.8.x/IPMPV0.sol +5 -3
  184. package/contracts/interfaces/v0.8.x/ISRHooks.sol +229 -0
  185. package/contracts/interfaces/v0.8.x/ISeaDropShimForContract.sol +0 -6
  186. package/contracts/interfaces/v0.8.x/ISharedMinterTieredAllowV0.sol +69 -0
  187. package/contracts/interfaces/v0.8.x/ITransferHook.sol +48 -0
  188. package/contracts/libs/v0.8.x/DependencyRegistryStorageLib.sol +12 -0
  189. package/contracts/libs/v0.8.x/ENSLib.sol +85 -0
  190. package/contracts/libs/v0.8.x/EnumerableSetUint16.sol +429 -0
  191. package/contracts/libs/v0.8.x/FeistelWalkLib.sol +221 -0
  192. package/contracts/libs/v0.8.x/ImmutableUint16Array.sol +201 -0
  193. package/contracts/libs/v0.8.x/V3EngineLib.sol +490 -0
  194. package/contracts/libs/v0.8.x/V3TransferHookLib.sol +251 -0
  195. package/contracts/libs/v0.8.x/minter-libs/OnChainAllowlistLib.sol +165 -0
  196. package/contracts/minter-suite/Minters/MinterSetPriceOnChainAllowV0.sol +632 -0
  197. package/contracts/minter-suite/Minters/MinterSetPriceTieredAllowV1.sol +871 -0
  198. package/contracts/minter-suite/Minters/MinterSlidingScaleV0.sol +493 -0
  199. package/contracts/minter-suite/Minters/one-off/ClaimMinter.sol +595 -0
  200. package/contracts/minter-suite/Minters/one-off/MinterSetPriceTieredOnChainAllowV0.sol +894 -0
  201. package/contracts/minter-suite/Minters/one-off/SeaDropXArtBlocksShim.sol +59 -41
  202. package/contracts/mock/ENSLibMock.sol +25 -0
  203. package/contracts/mock/EnumerableSetUint16Mock.sol +88 -0
  204. package/contracts/mock/FeistelWalkLibMock.sol +81 -0
  205. package/contracts/mock/ImmutableUint16ArrayMock.sol +62 -0
  206. package/contracts/mock/MockGenArt721V3Core.sol +416 -0
  207. package/contracts/mock/MockPMP.sol +287 -0
  208. package/contracts/mock/MockTransferHook.sol +160 -0
  209. package/contracts/mock/MockTransferHookTestHelpers.sol +96 -0
  210. package/contracts/mock/ReentrancyBatchMockShared.sol +53 -0
  211. package/contracts/mock/RelayExecutorTestHelper.sol +44 -0
  212. package/contracts/relay/RelayExecutor.sol +61 -0
  213. package/contracts/relay/RelayExecutorPartialReverts.sol +79 -0
  214. package/contracts/royalty-registry/GenArt721RoyaltyOverrideSplits.sol +130 -0
  215. package/contracts/utils/MintMulticallUtil.sol +103 -0
  216. package/contracts/web3call/PMPV0.sol +92 -98
  217. package/contracts/web3call/PMPV1.sol +1204 -0
  218. package/contracts/web3call/augment-hooks/AbstractPMPAugmentHook.sol +1 -1
  219. package/contracts/web3call/augment-hooks/InjectBaseGasFee.sol +1 -1
  220. package/contracts/web3call/augment-hooks/InjectBlockHeight.sol +57 -0
  221. package/contracts/web3call/augment-hooks/InjectBlockHeightAndArtistProjectOverrides.sol +310 -0
  222. package/contracts/web3call/augment-hooks/InjectBlockHeightAndNumOwnedProjectTokens.sol +141 -0
  223. package/contracts/web3call/augment-hooks/InjectBlockHeightProjectInvocationsAndArtistProjectOverrides.sol +326 -0
  224. package/contracts/web3call/augment-hooks/InjectBlockTimestamp.sol +57 -0
  225. package/contracts/web3call/augment-hooks/InjectBytesPerToken.sol +279 -0
  226. package/contracts/web3call/augment-hooks/InjectIsProjectFullyMinted.sol +1 -1
  227. package/contracts/web3call/augment-hooks/InjectTokenHashSeed.sol +1 -1
  228. package/contracts/web3call/augment-hooks/InjectTokenOwner.sol +1 -1
  229. package/contracts/web3call/augment-hooks/InjectTokenOwnerEthBalance.sol +1 -1
  230. package/contracts/web3call/augment-hooks/SRHooks.sol +1722 -0
  231. package/contracts/web3call/combined-hooks/LiftHooks.sol +304 -0
  232. package/contracts/web3call/configure-hooks/{abstractPMPConfigureHook.sol → AbstractPMPConfigureHook.sol} +1 -1
  233. package/contracts/web3call/configure-hooks/PMPConfigureLockHook.sol +107 -0
  234. package/package.json +40 -25
@@ -0,0 +1,523 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "MockPMP",
4
+ "sourceName": "contracts/mock/MockPMP.sol",
5
+ "abi": [
6
+ {
7
+ "anonymous": false,
8
+ "inputs": [
9
+ {
10
+ "indexed": false,
11
+ "internalType": "address",
12
+ "name": "delegationRegistry",
13
+ "type": "address"
14
+ }
15
+ ],
16
+ "name": "DelegationRegistryUpdated",
17
+ "type": "event"
18
+ },
19
+ {
20
+ "anonymous": false,
21
+ "inputs": [
22
+ {
23
+ "indexed": false,
24
+ "internalType": "address",
25
+ "name": "coreContract",
26
+ "type": "address"
27
+ },
28
+ {
29
+ "indexed": false,
30
+ "internalType": "uint256",
31
+ "name": "projectId",
32
+ "type": "uint256"
33
+ },
34
+ {
35
+ "components": [
36
+ {
37
+ "internalType": "string",
38
+ "name": "key",
39
+ "type": "string"
40
+ },
41
+ {
42
+ "components": [
43
+ {
44
+ "internalType": "enum IPMPV0.AuthOption",
45
+ "name": "authOption",
46
+ "type": "uint8"
47
+ },
48
+ {
49
+ "internalType": "enum IPMPV0.ParamType",
50
+ "name": "paramType",
51
+ "type": "uint8"
52
+ },
53
+ {
54
+ "internalType": "uint48",
55
+ "name": "pmpLockedAfterTimestamp",
56
+ "type": "uint48"
57
+ },
58
+ {
59
+ "internalType": "address",
60
+ "name": "authAddress",
61
+ "type": "address"
62
+ },
63
+ {
64
+ "internalType": "string[]",
65
+ "name": "selectOptions",
66
+ "type": "string[]"
67
+ },
68
+ {
69
+ "internalType": "bytes32",
70
+ "name": "minRange",
71
+ "type": "bytes32"
72
+ },
73
+ {
74
+ "internalType": "bytes32",
75
+ "name": "maxRange",
76
+ "type": "bytes32"
77
+ }
78
+ ],
79
+ "internalType": "struct IPMPV0.PMPConfig",
80
+ "name": "pmpConfig",
81
+ "type": "tuple"
82
+ }
83
+ ],
84
+ "indexed": false,
85
+ "internalType": "struct IPMPV0.PMPInputConfig[]",
86
+ "name": "pmpInputConfigs",
87
+ "type": "tuple[]"
88
+ },
89
+ {
90
+ "indexed": false,
91
+ "internalType": "uint8",
92
+ "name": "projectConfigNonce",
93
+ "type": "uint8"
94
+ }
95
+ ],
96
+ "name": "ProjectConfigured",
97
+ "type": "event"
98
+ },
99
+ {
100
+ "anonymous": false,
101
+ "inputs": [
102
+ {
103
+ "indexed": false,
104
+ "internalType": "address",
105
+ "name": "coreContract",
106
+ "type": "address"
107
+ },
108
+ {
109
+ "indexed": false,
110
+ "internalType": "uint256",
111
+ "name": "projectId",
112
+ "type": "uint256"
113
+ },
114
+ {
115
+ "indexed": false,
116
+ "internalType": "contract IPMPConfigureHook",
117
+ "name": "tokenPMPPostConfigHook",
118
+ "type": "address"
119
+ },
120
+ {
121
+ "indexed": false,
122
+ "internalType": "contract IPMPAugmentHook",
123
+ "name": "tokenPMPReadAugmentationHook",
124
+ "type": "address"
125
+ }
126
+ ],
127
+ "name": "ProjectHooksConfigured",
128
+ "type": "event"
129
+ },
130
+ {
131
+ "anonymous": false,
132
+ "inputs": [
133
+ {
134
+ "indexed": false,
135
+ "internalType": "address",
136
+ "name": "coreContract",
137
+ "type": "address"
138
+ },
139
+ {
140
+ "indexed": false,
141
+ "internalType": "uint256",
142
+ "name": "tokenId",
143
+ "type": "uint256"
144
+ },
145
+ {
146
+ "components": [
147
+ {
148
+ "internalType": "string",
149
+ "name": "key",
150
+ "type": "string"
151
+ },
152
+ {
153
+ "internalType": "enum IPMPV0.ParamType",
154
+ "name": "configuredParamType",
155
+ "type": "uint8"
156
+ },
157
+ {
158
+ "internalType": "bytes32",
159
+ "name": "configuredValue",
160
+ "type": "bytes32"
161
+ },
162
+ {
163
+ "internalType": "bool",
164
+ "name": "configuringArtistString",
165
+ "type": "bool"
166
+ },
167
+ {
168
+ "internalType": "string",
169
+ "name": "configuredValueString",
170
+ "type": "string"
171
+ }
172
+ ],
173
+ "indexed": false,
174
+ "internalType": "struct IPMPV0.PMPInput[]",
175
+ "name": "pmpInputs",
176
+ "type": "tuple[]"
177
+ },
178
+ {
179
+ "indexed": false,
180
+ "internalType": "address[]",
181
+ "name": "authAddresses",
182
+ "type": "address[]"
183
+ }
184
+ ],
185
+ "name": "TokenParamsConfigured",
186
+ "type": "event"
187
+ },
188
+ {
189
+ "inputs": [
190
+ {
191
+ "internalType": "address",
192
+ "name": "coreContract",
193
+ "type": "address"
194
+ },
195
+ {
196
+ "internalType": "uint256",
197
+ "name": "projectId",
198
+ "type": "uint256"
199
+ },
200
+ {
201
+ "components": [
202
+ {
203
+ "internalType": "string",
204
+ "name": "key",
205
+ "type": "string"
206
+ },
207
+ {
208
+ "components": [
209
+ {
210
+ "internalType": "enum IPMPV0.AuthOption",
211
+ "name": "authOption",
212
+ "type": "uint8"
213
+ },
214
+ {
215
+ "internalType": "enum IPMPV0.ParamType",
216
+ "name": "paramType",
217
+ "type": "uint8"
218
+ },
219
+ {
220
+ "internalType": "uint48",
221
+ "name": "pmpLockedAfterTimestamp",
222
+ "type": "uint48"
223
+ },
224
+ {
225
+ "internalType": "address",
226
+ "name": "authAddress",
227
+ "type": "address"
228
+ },
229
+ {
230
+ "internalType": "string[]",
231
+ "name": "selectOptions",
232
+ "type": "string[]"
233
+ },
234
+ {
235
+ "internalType": "bytes32",
236
+ "name": "minRange",
237
+ "type": "bytes32"
238
+ },
239
+ {
240
+ "internalType": "bytes32",
241
+ "name": "maxRange",
242
+ "type": "bytes32"
243
+ }
244
+ ],
245
+ "internalType": "struct IPMPV0.PMPConfig",
246
+ "name": "pmpConfig",
247
+ "type": "tuple"
248
+ }
249
+ ],
250
+ "internalType": "struct IPMPV0.PMPInputConfig[]",
251
+ "name": "pmpInputConfigs",
252
+ "type": "tuple[]"
253
+ }
254
+ ],
255
+ "name": "configureProject",
256
+ "outputs": [],
257
+ "stateMutability": "pure",
258
+ "type": "function"
259
+ },
260
+ {
261
+ "inputs": [
262
+ {
263
+ "internalType": "address",
264
+ "name": "coreContract",
265
+ "type": "address"
266
+ },
267
+ {
268
+ "internalType": "uint256",
269
+ "name": "projectId",
270
+ "type": "uint256"
271
+ },
272
+ {
273
+ "internalType": "contract IPMPConfigureHook",
274
+ "name": "tokenPMPPostConfigHook",
275
+ "type": "address"
276
+ },
277
+ {
278
+ "internalType": "contract IPMPAugmentHook",
279
+ "name": "tokenPMPReadAugmentationHook",
280
+ "type": "address"
281
+ }
282
+ ],
283
+ "name": "configureProjectHooks",
284
+ "outputs": [],
285
+ "stateMutability": "pure",
286
+ "type": "function"
287
+ },
288
+ {
289
+ "inputs": [
290
+ {
291
+ "internalType": "address",
292
+ "name": "coreContract",
293
+ "type": "address"
294
+ },
295
+ {
296
+ "internalType": "uint256",
297
+ "name": "tokenId",
298
+ "type": "uint256"
299
+ },
300
+ {
301
+ "components": [
302
+ {
303
+ "internalType": "string",
304
+ "name": "key",
305
+ "type": "string"
306
+ },
307
+ {
308
+ "internalType": "enum IPMPV0.ParamType",
309
+ "name": "configuredParamType",
310
+ "type": "uint8"
311
+ },
312
+ {
313
+ "internalType": "bytes32",
314
+ "name": "configuredValue",
315
+ "type": "bytes32"
316
+ },
317
+ {
318
+ "internalType": "bool",
319
+ "name": "configuringArtistString",
320
+ "type": "bool"
321
+ },
322
+ {
323
+ "internalType": "string",
324
+ "name": "configuredValueString",
325
+ "type": "string"
326
+ }
327
+ ],
328
+ "internalType": "struct IPMPV0.PMPInput[]",
329
+ "name": "pmpInputs",
330
+ "type": "tuple[]"
331
+ }
332
+ ],
333
+ "name": "configureTokenParams",
334
+ "outputs": [],
335
+ "stateMutability": "pure",
336
+ "type": "function"
337
+ },
338
+ {
339
+ "inputs": [
340
+ {
341
+ "internalType": "address",
342
+ "name": "coreContract",
343
+ "type": "address"
344
+ },
345
+ {
346
+ "internalType": "uint256",
347
+ "name": "projectId",
348
+ "type": "uint256"
349
+ }
350
+ ],
351
+ "name": "getProjectConfig",
352
+ "outputs": [
353
+ {
354
+ "internalType": "string[]",
355
+ "name": "pmpKeys",
356
+ "type": "string[]"
357
+ },
358
+ {
359
+ "internalType": "uint8",
360
+ "name": "configNonce",
361
+ "type": "uint8"
362
+ },
363
+ {
364
+ "internalType": "contract IPMPConfigureHook",
365
+ "name": "tokenPMPPostConfigHook",
366
+ "type": "address"
367
+ },
368
+ {
369
+ "internalType": "contract IPMPAugmentHook",
370
+ "name": "tokenPMPReadAugmentationHook",
371
+ "type": "address"
372
+ }
373
+ ],
374
+ "stateMutability": "pure",
375
+ "type": "function"
376
+ },
377
+ {
378
+ "inputs": [
379
+ {
380
+ "internalType": "address",
381
+ "name": "coreContract",
382
+ "type": "address"
383
+ },
384
+ {
385
+ "internalType": "uint256",
386
+ "name": "projectId",
387
+ "type": "uint256"
388
+ },
389
+ {
390
+ "internalType": "string",
391
+ "name": "pmpKey",
392
+ "type": "string"
393
+ }
394
+ ],
395
+ "name": "getProjectPMPConfig",
396
+ "outputs": [
397
+ {
398
+ "components": [
399
+ {
400
+ "internalType": "uint8",
401
+ "name": "highestConfigNonce",
402
+ "type": "uint8"
403
+ },
404
+ {
405
+ "internalType": "enum IPMPV0.AuthOption",
406
+ "name": "authOption",
407
+ "type": "uint8"
408
+ },
409
+ {
410
+ "internalType": "enum IPMPV0.ParamType",
411
+ "name": "paramType",
412
+ "type": "uint8"
413
+ },
414
+ {
415
+ "internalType": "uint48",
416
+ "name": "pmpLockedAfterTimestamp",
417
+ "type": "uint48"
418
+ },
419
+ {
420
+ "internalType": "address",
421
+ "name": "authAddress",
422
+ "type": "address"
423
+ },
424
+ {
425
+ "internalType": "uint8",
426
+ "name": "selectOptionsLength",
427
+ "type": "uint8"
428
+ },
429
+ {
430
+ "internalType": "string[]",
431
+ "name": "selectOptions",
432
+ "type": "string[]"
433
+ },
434
+ {
435
+ "internalType": "bytes32",
436
+ "name": "minRange",
437
+ "type": "bytes32"
438
+ },
439
+ {
440
+ "internalType": "bytes32",
441
+ "name": "maxRange",
442
+ "type": "bytes32"
443
+ }
444
+ ],
445
+ "internalType": "struct IPMPV0.PMPConfigView",
446
+ "name": "pmpConfigView",
447
+ "type": "tuple"
448
+ }
449
+ ],
450
+ "stateMutability": "pure",
451
+ "type": "function"
452
+ },
453
+ {
454
+ "inputs": [
455
+ {
456
+ "internalType": "address",
457
+ "name": "coreContract",
458
+ "type": "address"
459
+ },
460
+ {
461
+ "internalType": "uint256",
462
+ "name": "tokenId",
463
+ "type": "uint256"
464
+ }
465
+ ],
466
+ "name": "getTokenParams",
467
+ "outputs": [
468
+ {
469
+ "components": [
470
+ {
471
+ "internalType": "string",
472
+ "name": "key",
473
+ "type": "string"
474
+ },
475
+ {
476
+ "internalType": "string",
477
+ "name": "value",
478
+ "type": "string"
479
+ }
480
+ ],
481
+ "internalType": "struct IWeb3Call.TokenParam[]",
482
+ "name": "tokenParams",
483
+ "type": "tuple[]"
484
+ }
485
+ ],
486
+ "stateMutability": "pure",
487
+ "type": "function"
488
+ },
489
+ {
490
+ "inputs": [
491
+ {
492
+ "internalType": "address",
493
+ "name": "wallet",
494
+ "type": "address"
495
+ },
496
+ {
497
+ "internalType": "address",
498
+ "name": "coreContract",
499
+ "type": "address"
500
+ },
501
+ {
502
+ "internalType": "uint256",
503
+ "name": "tokenId",
504
+ "type": "uint256"
505
+ }
506
+ ],
507
+ "name": "isTokenOwnerOrDelegate",
508
+ "outputs": [
509
+ {
510
+ "internalType": "bool",
511
+ "name": "isTokenOwnerOrDelegate_",
512
+ "type": "bool"
513
+ }
514
+ ],
515
+ "stateMutability": "pure",
516
+ "type": "function"
517
+ }
518
+ ],
519
+ "bytecode": "0x608060405234801561001057600080fd5b50610e3f806100206000396000f3fe608060405234801561001057600080fd5b506004361061006d5760003560e01c80633c303afb1461007257806354ca2237146100885780636f8637a014610072578063af544a61146100b4578063b69c984d146100d7578063ba8dba48146100e5578063c2b4f41114610105575b600080fd5b610086610080366004610938565b50505050565b005b61009b610096366004610993565b610125565b6040516100ab9493929190610a0f565b60405180910390f35b6100c76100c2366004610a96565b6102de565b60405190151581526020016100ab565b610086610080366004610ad7565b6100f86100f3366004610b40565b6102e8565b6040516100ab9190610ca0565b610118610113366004610993565b610616565b6040516100ab9190610d50565b606060008080841561016f57604080516000808252602082019092529061015c565b60608152602001906001900390816101475790505b50600080600093509350935093506102d5565b60408051600580825260c0820190925290816020015b60608152602001906001900390816101855790505093506040518060400160405280600581526020016431b7b637b960d91b815250846000815181106101cd576101cd610dd7565b60200260200101819052506040518060400160405280600481526020016373697a6560e01b8152508460018151811061020857610208610dd7565b602002602001018190525060405180604001604052806007815260200166195b98589b195960ca1b8152508460028151811061024657610246610dd7565b6020026020010181905250604051806040016040528060048152602001636d6f646560e01b8152508460038151811061028157610281610dd7565b6020026020010181905250604051806040016040528060058152602001641b1858995b60da1b815250846004815181106102bd576102bd610dd7565b60200260200101819052506001925060009150600090505b92959194509250565b60015b9392505050565b61033760408051610120810190915260008082526020820190815260200160008152600060208201819052604082018190526060808301829052608083015260a0820181905260c09091015290565b60008260405160200161034a9190610ded565b60408051601f1981840301815291815281516020928301206001808652858401526000606086018190526080860181905260a08601819052825181815293840190925292506103a9565b60608152602001906001900390816103945790505b5060c0830152600060e083018190526101008301526040516431b7b637b960d91b6020820152602501604051602081830303815290604052805190602001208103610412576040820160065b9081600881111561040857610408610c0c565b81525050506102e1565b6040516373697a6560e01b602082015260240160405160208183030381529060405280519060200120810361045d575060036040820152600060e082015260646101008201526102e1565b60405166195b98589b195960ca1b602082015260270160405160208183030381529060405280519060200120810361049a576040820160026103f5565b604051636d6f646560e01b60208201526024016040516020818303038152906040528051906020012081036105c8576001604083810191909152600360a08401819052815181815260808101909252602082015b60608152602001906001900390816104ee57505060c083019081526040805180820190915260068152651b9bdc9b585b60d21b60208201529051805160009061053957610539610dd7565b602002602001018190525060405180604001604052806005815260200164747572626f60d81b8152508260c0015160018151811061057957610579610dd7565b60200260200101819052506040518060400160405280600381526020016265636f60e81b8152508260c001516002815181106105b7576105b7610dd7565b6020026020010181905250506102e1565b604051641b1858995b60da1b6020820152602501604051602081830303815290604052805190602001208103610603576040820160086103f5565b5060006040820181905281529392505050565b6060811561065757604080516000808252602082019092529061064f565b61063c6108bb565b8152602001906001900390816106345790505b5090506108b5565b60408051600580825260c0820190925290816020015b6106756108bb565b81526020019060019003908161066d57905050905060405180604001604052806040518060400160405280600581526020016431b7b637b960d91b8152508152602001604051806040016040528060078152602001662346463537333360c81b815250815250816000815181106106ee576106ee610dd7565b602002602001018190525060405180604001604052806040518060400160405280600481526020016373697a6560e01b8152508152602001604051806040016040528060028152602001611a1960f11b8152508152508160018151811061075757610757610dd7565b6020026020010181905250604051806040016040528060405180604001604052806007815260200166195b98589b195960ca1b8152508152602001604051806040016040528060048152602001637472756560e01b815250815250816002815181106107c5576107c5610dd7565b60200260200101819052506040518060400160405280604051806040016040528060048152602001636d6f646560e01b815250815260200160405180604001604052806005815260200164747572626f60d81b8152508152508160038151811061083157610831610dd7565b60200260200101819052506040518060400160405280604051806040016040528060058152602001641b1858995b60da1b81525081526020016040518060400160405280601081526020016f135bd8dac8151bdad95b88131858995b60821b815250815250816004815181106108a9576108a9610dd7565b60200260200101819052505b92915050565b604051806040016040528060608152602001606081525090565b6001600160a01b03811681146108ea57600080fd5b50565b60008083601f8401126108ff57600080fd5b5081356001600160401b0381111561091657600080fd5b6020830191508360208260051b850101111561093157600080fd5b9250929050565b6000806000806060858703121561094e57600080fd5b8435610959816108d5565b93506020850135925060408501356001600160401b0381111561097b57600080fd5b610987878288016108ed565b95989497509550505050565b600080604083850312156109a657600080fd5b82356109b1816108d5565b946020939093013593505050565b60005b838110156109da5781810151838201526020016109c2565b50506000910152565b600081518084526109fb8160208601602086016109bf565b601f01601f19169290920160200192915050565b6000608082016080835280875180835260a08501915060a08160051b86010192506020808a0160005b83811015610a6657609f19888703018552610a548683516109e3565b95509382019390820190600101610a38565b5050505060ff9690961660208401526001600160a01b039485166040840152929093166060909101529392505050565b600080600060608486031215610aab57600080fd5b8335610ab6816108d5565b92506020840135610ac6816108d5565b929592945050506040919091013590565b60008060008060808587031215610aed57600080fd5b8435610af8816108d5565b9350602085013592506040850135610b0f816108d5565b91506060850135610b1f816108d5565b939692955090935050565b634e487b7160e01b600052604160045260246000fd5b600080600060608486031215610b5557600080fd5b8335610b60816108d5565b92506020840135915060408401356001600160401b0380821115610b8357600080fd5b818601915086601f830112610b9757600080fd5b813581811115610ba957610ba9610b2a565b604051601f8201601f19908116603f01168101908382118183101715610bd157610bd1610b2a565b81604052828152896020848701011115610bea57600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b634e487b7160e01b600052602160045260246000fd5b60078110610c3257610c32610c0c565b9052565b60098110610c3257610c32610c0c565b60008282518085526020808601955060208260051b8401016020860160005b84811015610c9357601f19868403018952610c818383516109e3565b98840198925090830190600101610c65565b5090979650505050505050565b60208152610cb460208201835160ff169052565b60006020830151610cc86040840182610c22565b506040830151610cdb6060840182610c36565b50606083015165ffffffffffff811660808401525060808301516001600160a01b03811660a08401525060a083015160ff811660c08401525060c08301516101208060e0850152610d30610140850183610c46565b60e086015161010086810191909152909501519301929092525090919050565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b83811015610dc957888303603f1901855281518051878552610d9d888601826109e3565b91890151858303868b0152919050610db581836109e3565b968901969450505090860190600101610d79565b509098975050505050505050565b634e487b7160e01b600052603260045260246000fd5b60008251610dff8184602087016109bf565b919091019291505056fea264697066735822122036cfa5fe64f6a5c688af69e24b1041b46309d51f9ec011d3e8ca9f01686d2f8864736f6c63430008160033",
520
+ "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061006d5760003560e01c80633c303afb1461007257806354ca2237146100885780636f8637a014610072578063af544a61146100b4578063b69c984d146100d7578063ba8dba48146100e5578063c2b4f41114610105575b600080fd5b610086610080366004610938565b50505050565b005b61009b610096366004610993565b610125565b6040516100ab9493929190610a0f565b60405180910390f35b6100c76100c2366004610a96565b6102de565b60405190151581526020016100ab565b610086610080366004610ad7565b6100f86100f3366004610b40565b6102e8565b6040516100ab9190610ca0565b610118610113366004610993565b610616565b6040516100ab9190610d50565b606060008080841561016f57604080516000808252602082019092529061015c565b60608152602001906001900390816101475790505b50600080600093509350935093506102d5565b60408051600580825260c0820190925290816020015b60608152602001906001900390816101855790505093506040518060400160405280600581526020016431b7b637b960d91b815250846000815181106101cd576101cd610dd7565b60200260200101819052506040518060400160405280600481526020016373697a6560e01b8152508460018151811061020857610208610dd7565b602002602001018190525060405180604001604052806007815260200166195b98589b195960ca1b8152508460028151811061024657610246610dd7565b6020026020010181905250604051806040016040528060048152602001636d6f646560e01b8152508460038151811061028157610281610dd7565b6020026020010181905250604051806040016040528060058152602001641b1858995b60da1b815250846004815181106102bd576102bd610dd7565b60200260200101819052506001925060009150600090505b92959194509250565b60015b9392505050565b61033760408051610120810190915260008082526020820190815260200160008152600060208201819052604082018190526060808301829052608083015260a0820181905260c09091015290565b60008260405160200161034a9190610ded565b60408051601f1981840301815291815281516020928301206001808652858401526000606086018190526080860181905260a08601819052825181815293840190925292506103a9565b60608152602001906001900390816103945790505b5060c0830152600060e083018190526101008301526040516431b7b637b960d91b6020820152602501604051602081830303815290604052805190602001208103610412576040820160065b9081600881111561040857610408610c0c565b81525050506102e1565b6040516373697a6560e01b602082015260240160405160208183030381529060405280519060200120810361045d575060036040820152600060e082015260646101008201526102e1565b60405166195b98589b195960ca1b602082015260270160405160208183030381529060405280519060200120810361049a576040820160026103f5565b604051636d6f646560e01b60208201526024016040516020818303038152906040528051906020012081036105c8576001604083810191909152600360a08401819052815181815260808101909252602082015b60608152602001906001900390816104ee57505060c083019081526040805180820190915260068152651b9bdc9b585b60d21b60208201529051805160009061053957610539610dd7565b602002602001018190525060405180604001604052806005815260200164747572626f60d81b8152508260c0015160018151811061057957610579610dd7565b60200260200101819052506040518060400160405280600381526020016265636f60e81b8152508260c001516002815181106105b7576105b7610dd7565b6020026020010181905250506102e1565b604051641b1858995b60da1b6020820152602501604051602081830303815290604052805190602001208103610603576040820160086103f5565b5060006040820181905281529392505050565b6060811561065757604080516000808252602082019092529061064f565b61063c6108bb565b8152602001906001900390816106345790505b5090506108b5565b60408051600580825260c0820190925290816020015b6106756108bb565b81526020019060019003908161066d57905050905060405180604001604052806040518060400160405280600581526020016431b7b637b960d91b8152508152602001604051806040016040528060078152602001662346463537333360c81b815250815250816000815181106106ee576106ee610dd7565b602002602001018190525060405180604001604052806040518060400160405280600481526020016373697a6560e01b8152508152602001604051806040016040528060028152602001611a1960f11b8152508152508160018151811061075757610757610dd7565b6020026020010181905250604051806040016040528060405180604001604052806007815260200166195b98589b195960ca1b8152508152602001604051806040016040528060048152602001637472756560e01b815250815250816002815181106107c5576107c5610dd7565b60200260200101819052506040518060400160405280604051806040016040528060048152602001636d6f646560e01b815250815260200160405180604001604052806005815260200164747572626f60d81b8152508152508160038151811061083157610831610dd7565b60200260200101819052506040518060400160405280604051806040016040528060058152602001641b1858995b60da1b81525081526020016040518060400160405280601081526020016f135bd8dac8151bdad95b88131858995b60821b815250815250816004815181106108a9576108a9610dd7565b60200260200101819052505b92915050565b604051806040016040528060608152602001606081525090565b6001600160a01b03811681146108ea57600080fd5b50565b60008083601f8401126108ff57600080fd5b5081356001600160401b0381111561091657600080fd5b6020830191508360208260051b850101111561093157600080fd5b9250929050565b6000806000806060858703121561094e57600080fd5b8435610959816108d5565b93506020850135925060408501356001600160401b0381111561097b57600080fd5b610987878288016108ed565b95989497509550505050565b600080604083850312156109a657600080fd5b82356109b1816108d5565b946020939093013593505050565b60005b838110156109da5781810151838201526020016109c2565b50506000910152565b600081518084526109fb8160208601602086016109bf565b601f01601f19169290920160200192915050565b6000608082016080835280875180835260a08501915060a08160051b86010192506020808a0160005b83811015610a6657609f19888703018552610a548683516109e3565b95509382019390820190600101610a38565b5050505060ff9690961660208401526001600160a01b039485166040840152929093166060909101529392505050565b600080600060608486031215610aab57600080fd5b8335610ab6816108d5565b92506020840135610ac6816108d5565b929592945050506040919091013590565b60008060008060808587031215610aed57600080fd5b8435610af8816108d5565b9350602085013592506040850135610b0f816108d5565b91506060850135610b1f816108d5565b939692955090935050565b634e487b7160e01b600052604160045260246000fd5b600080600060608486031215610b5557600080fd5b8335610b60816108d5565b92506020840135915060408401356001600160401b0380821115610b8357600080fd5b818601915086601f830112610b9757600080fd5b813581811115610ba957610ba9610b2a565b604051601f8201601f19908116603f01168101908382118183101715610bd157610bd1610b2a565b81604052828152896020848701011115610bea57600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b634e487b7160e01b600052602160045260246000fd5b60078110610c3257610c32610c0c565b9052565b60098110610c3257610c32610c0c565b60008282518085526020808601955060208260051b8401016020860160005b84811015610c9357601f19868403018952610c818383516109e3565b98840198925090830190600101610c65565b5090979650505050505050565b60208152610cb460208201835160ff169052565b60006020830151610cc86040840182610c22565b506040830151610cdb6060840182610c36565b50606083015165ffffffffffff811660808401525060808301516001600160a01b03811660a08401525060a083015160ff811660c08401525060c08301516101208060e0850152610d30610140850183610c46565b60e086015161010086810191909152909501519301929092525090919050565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b83811015610dc957888303603f1901855281518051878552610d9d888601826109e3565b91890151858303868b0152919050610db581836109e3565b968901969450505090860190600101610d79565b509098975050505050505050565b634e487b7160e01b600052603260045260246000fd5b60008251610dff8184602087016109bf565b919091019291505056fea264697066735822122036cfa5fe64f6a5c688af69e24b1041b46309d51f9ec011d3e8ca9f01686d2f8864736f6c63430008160033",
521
+ "linkReferences": {},
522
+ "deployedLinkReferences": {}
523
+ }
@@ -207,8 +207,8 @@
207
207
  "type": "function"
208
208
  }
209
209
  ],
210
- "bytecode": "0x6000805462ffffff1916905560c0604052600e60809081526d6175676d656e746564506172616d60901b60a0526001906200003b90826200012c565b5060408051808201909152600e81526d6175676d656e74656456616c756560901b60208201526002906200007090826200012c565b503480156200007e57600080fd5b50620001f8565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620000b057607f821691505b602082108103620000d157634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000127576000816000526020600020601f850160051c81016020861015620001025750805b601f850160051c820191505b8181101562000123578281556001016200010e565b5050505b505050565b81516001600160401b0381111562000148576200014862000085565b62000160816200015984546200009b565b84620000d7565b602080601f8311600181146200019857600084156200017f5750858301515b600019600386901b1c1916600185901b17855562000123565b600085815260208120601f198616915b82811015620001c957888601518255948401946001909101908401620001a8565b5085821015620001e85787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b610f7880620002086000396000f3fe608060405234801561001057600080fd5b50600436106100835760003560e01c806301ffc9a7146100885780630e78584c146100b05780632e37ba74146100c557806358f8699f146100d757806364481db1146100f757806368b8500c146100ff578063a14a1ae714610148578063a48c2d4e1461015b578063d3072d8214610168575b600080fd5b61009b6100963660046109a6565b61017b565b60405190151581526020015b60405180910390f35b6100b86101b2565b6040516100a79190610a1d565b60005461009b90610100900460ff1681565b6100ea6100e5366004610a30565b610240565b6040516100a79190610ac7565b6100b8610961565b61014661010d366004610b63565b6000805461ffff191693151561ff00191693909317610100921515929092029190911762ff000019166201000091151591909102179055565b005b610146610156366004610c48565b61096e565b60005461009b9060ff1681565b60005461009b9062010000900460ff1681565b60006001600160e01b031982166358f8699f60e01b14806101ac57506301ffc9a760e01b6001600160e01b03198316145b92915050565b600180546101bf90610cab565b80601f01602080910402602001604051908101604052809291908181526020018280546101eb90610cab565b80156102385780601f1061020d57610100808354040283529160200191610238565b820191906000526020600020905b81548152906001019060200180831161021b57829003601f168201915b505050505081565b60005460609062010000900460ff16156102b05760405162461bcd60e51b815260206004820152602660248201527f4d6f636b504d504175676d656e74486f6f6b3a20496e74656e74696f6e616c206044820152651c995d995c9d60d21b60648201526084015b60405180910390fd5b60005460ff161580156102cb5750600054610100900460ff16155b1561038b576000826001600160401b038111156102ea576102ea610ba6565b60405190808252806020026020018201604052801561032357816020015b61031061098c565b8152602001906001900390816103085790505b50905060005b838110156103835784848281811061034357610343610ce5565b90506020028101906103559190610cfb565b61035e90610d1b565b82828151811061037057610370610ce5565b6020908102919091010152600101610329565b509050610959565b600054610100900460ff1680156103a157508115155b156106e8576000826001600160401b038111156103c0576103c0610ba6565b6040519080825280602002602001820160405280156103f957816020015b6103e661098c565b8152602001906001900390816103de5790505b50905060005b838110156104595784848281811061041957610419610ce5565b905060200281019061042b9190610cfb565b61043490610d1b565b82828151811061044657610446610ce5565b60209081029190910101526001016103ff565b5082156104d6578383600081811061047357610473610ce5565b90506020028101906104859190610cfb565b610493906020810190610da0565b6040516020016104a4929190610ded565b604051602081830303815290604052816000815181106104c6576104c6610ce5565b6020026020010151602001819052505b60005460ff16156106e1576000815160016104f19190610e12565b6001600160401b0381111561050857610508610ba6565b60405190808252806020026020018201604052801561054157816020015b61052e61098c565b8152602001906001900390816105265790505b50905060005b825181101561058f5782818151811061056257610562610ce5565b602002602001015182828151811061057c5761057c610ce5565b6020908102919091010152600101610547565b506040518060400160405280600180546105a890610cab565b80601f01602080910402602001604051908101604052809291908181526020018280546105d490610cab565b80156106215780601f106105f657610100808354040283529160200191610621565b820191906000526020600020905b81548152906001019060200180831161060457829003601f168201915b505050505081526020016002805461063890610cab565b80601f016020809104026020016040519081016040528092919081815260200182805461066490610cab565b80156106b15780601f10610686576101008083540402835291602001916106b1565b820191906000526020600020905b81548152906001019060200180831161069457829003601f168201915b5050505050815250818351815181106106cc576106cc610ce5565b60200260200101819052508092505050610959565b9050610959565b60005460ff1615610901576000610700836001610e12565b6001600160401b0381111561071757610717610ba6565b60405190808252806020026020018201604052801561075057816020015b61073d61098c565b8152602001906001900390816107355790505b50905060005b838110156107b05784848281811061077057610770610ce5565b90506020028101906107829190610cfb565b61078b90610d1b565b82828151811061079d5761079d610ce5565b6020908102919091010152600101610756565b506040518060400160405280600180546107c990610cab565b80601f01602080910402602001604051908101604052809291908181526020018280546107f590610cab565b80156108425780601f1061081757610100808354040283529160200191610842565b820191906000526020600020905b81548152906001019060200180831161082557829003601f168201915b505050505081526020016002805461085990610cab565b80601f016020809104026020016040519081016040528092919081815260200182805461088590610cab565b80156108d25780601f106108a7576101008083540402835291602001916108d2565b820191906000526020600020905b8154815290600101906020018083116108b557829003601f168201915b50505050508152508185859050815181106108ef576108ef610ce5565b60209081029190910101529050610959565b60405162461bcd60e51b815260206004820152602760248201527f4d6f636b504d504175676d656e74486f6f6b3a20556e6578706563746564206260448201526632b430bb34b7b960c91b60648201526084016102a7565b949350505050565b600280546101bf90610cab565b600161097a8382610e83565b5060026109878282610e83565b505050565b604051806040016040528060608152602001606081525090565b6000602082840312156109b857600080fd5b81356001600160e01b0319811681146109d057600080fd5b9392505050565b6000815180845260005b818110156109fd576020818501810151868301820152016109e1565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006109d060208301846109d7565b60008060008060608587031215610a4657600080fd5b84356001600160a01b0381168114610a5d57600080fd5b93506020850135925060408501356001600160401b0380821115610a8057600080fd5b818701915087601f830112610a9457600080fd5b813581811115610aa357600080fd5b8860208260051b8501011115610ab857600080fd5b95989497505060200194505050565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b83811015610b4057888303603f1901855281518051878552610b14888601826109d7565b91890151858303868b0152919050610b2c81836109d7565b968901969450505090860190600101610af0565b509098975050505050505050565b80358015158114610b5e57600080fd5b919050565b600080600060608486031215610b7857600080fd5b610b8184610b4e565b9250610b8f60208501610b4e565b9150610b9d60408501610b4e565b90509250925092565b634e487b7160e01b600052604160045260246000fd5b600082601f830112610bcd57600080fd5b81356001600160401b0380821115610be757610be7610ba6565b604051601f8301601f19908116603f01168101908282118183101715610c0f57610c0f610ba6565b81604052838152866020858801011115610c2857600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060408385031215610c5b57600080fd5b82356001600160401b0380821115610c7257600080fd5b610c7e86838701610bbc565b93506020850135915080821115610c9457600080fd5b50610ca185828601610bbc565b9150509250929050565b600181811c90821680610cbf57607f821691505b602082108103610cdf57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b60008235603e19833603018112610d1157600080fd5b9190910192915050565b600060408236031215610d2d57600080fd5b604080519081016001600160401b038082118383101715610d5057610d50610ba6565b816040528435915080821115610d6557600080fd5b610d7136838701610bbc565b83526020850135915080821115610d8757600080fd5b50610d9436828601610bbc565b60208301525092915050565b6000808335601e19843603018112610db757600080fd5b8301803591506001600160401b03821115610dd157600080fd5b602001915036819003821315610de657600080fd5b9250929050565b686d6f6469666965645f60b81b81528183600983013760009101600901908152919050565b808201808211156101ac57634e487b7160e01b600052601160045260246000fd5b601f821115610987576000816000526020600020601f850160051c81016020861015610e5c5750805b601f850160051c820191505b81811015610e7b57828155600101610e68565b505050505050565b81516001600160401b03811115610e9c57610e9c610ba6565b610eb081610eaa8454610cab565b84610e33565b602080601f831160018114610ee55760008415610ecd5750858301515b600019600386901b1c1916600185901b178555610e7b565b600085815260208120601f198616915b82811015610f1457888601518255948401946001909101908401610ef5565b5085821015610f325787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fea26469706673582212206872b87715911299d49dea2419656dd3be08840f5fd43df16fcc845bc550875464736f6c63430008160033",
211
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100835760003560e01c806301ffc9a7146100885780630e78584c146100b05780632e37ba74146100c557806358f8699f146100d757806364481db1146100f757806368b8500c146100ff578063a14a1ae714610148578063a48c2d4e1461015b578063d3072d8214610168575b600080fd5b61009b6100963660046109a6565b61017b565b60405190151581526020015b60405180910390f35b6100b86101b2565b6040516100a79190610a1d565b60005461009b90610100900460ff1681565b6100ea6100e5366004610a30565b610240565b6040516100a79190610ac7565b6100b8610961565b61014661010d366004610b63565b6000805461ffff191693151561ff00191693909317610100921515929092029190911762ff000019166201000091151591909102179055565b005b610146610156366004610c48565b61096e565b60005461009b9060ff1681565b60005461009b9062010000900460ff1681565b60006001600160e01b031982166358f8699f60e01b14806101ac57506301ffc9a760e01b6001600160e01b03198316145b92915050565b600180546101bf90610cab565b80601f01602080910402602001604051908101604052809291908181526020018280546101eb90610cab565b80156102385780601f1061020d57610100808354040283529160200191610238565b820191906000526020600020905b81548152906001019060200180831161021b57829003601f168201915b505050505081565b60005460609062010000900460ff16156102b05760405162461bcd60e51b815260206004820152602660248201527f4d6f636b504d504175676d656e74486f6f6b3a20496e74656e74696f6e616c206044820152651c995d995c9d60d21b60648201526084015b60405180910390fd5b60005460ff161580156102cb5750600054610100900460ff16155b1561038b576000826001600160401b038111156102ea576102ea610ba6565b60405190808252806020026020018201604052801561032357816020015b61031061098c565b8152602001906001900390816103085790505b50905060005b838110156103835784848281811061034357610343610ce5565b90506020028101906103559190610cfb565b61035e90610d1b565b82828151811061037057610370610ce5565b6020908102919091010152600101610329565b509050610959565b600054610100900460ff1680156103a157508115155b156106e8576000826001600160401b038111156103c0576103c0610ba6565b6040519080825280602002602001820160405280156103f957816020015b6103e661098c565b8152602001906001900390816103de5790505b50905060005b838110156104595784848281811061041957610419610ce5565b905060200281019061042b9190610cfb565b61043490610d1b565b82828151811061044657610446610ce5565b60209081029190910101526001016103ff565b5082156104d6578383600081811061047357610473610ce5565b90506020028101906104859190610cfb565b610493906020810190610da0565b6040516020016104a4929190610ded565b604051602081830303815290604052816000815181106104c6576104c6610ce5565b6020026020010151602001819052505b60005460ff16156106e1576000815160016104f19190610e12565b6001600160401b0381111561050857610508610ba6565b60405190808252806020026020018201604052801561054157816020015b61052e61098c565b8152602001906001900390816105265790505b50905060005b825181101561058f5782818151811061056257610562610ce5565b602002602001015182828151811061057c5761057c610ce5565b6020908102919091010152600101610547565b506040518060400160405280600180546105a890610cab565b80601f01602080910402602001604051908101604052809291908181526020018280546105d490610cab565b80156106215780601f106105f657610100808354040283529160200191610621565b820191906000526020600020905b81548152906001019060200180831161060457829003601f168201915b505050505081526020016002805461063890610cab565b80601f016020809104026020016040519081016040528092919081815260200182805461066490610cab565b80156106b15780601f10610686576101008083540402835291602001916106b1565b820191906000526020600020905b81548152906001019060200180831161069457829003601f168201915b5050505050815250818351815181106106cc576106cc610ce5565b60200260200101819052508092505050610959565b9050610959565b60005460ff1615610901576000610700836001610e12565b6001600160401b0381111561071757610717610ba6565b60405190808252806020026020018201604052801561075057816020015b61073d61098c565b8152602001906001900390816107355790505b50905060005b838110156107b05784848281811061077057610770610ce5565b90506020028101906107829190610cfb565b61078b90610d1b565b82828151811061079d5761079d610ce5565b6020908102919091010152600101610756565b506040518060400160405280600180546107c990610cab565b80601f01602080910402602001604051908101604052809291908181526020018280546107f590610cab565b80156108425780601f1061081757610100808354040283529160200191610842565b820191906000526020600020905b81548152906001019060200180831161082557829003601f168201915b505050505081526020016002805461085990610cab565b80601f016020809104026020016040519081016040528092919081815260200182805461088590610cab565b80156108d25780601f106108a7576101008083540402835291602001916108d2565b820191906000526020600020905b8154815290600101906020018083116108b557829003601f168201915b50505050508152508185859050815181106108ef576108ef610ce5565b60209081029190910101529050610959565b60405162461bcd60e51b815260206004820152602760248201527f4d6f636b504d504175676d656e74486f6f6b3a20556e6578706563746564206260448201526632b430bb34b7b960c91b60648201526084016102a7565b949350505050565b600280546101bf90610cab565b600161097a8382610e83565b5060026109878282610e83565b505050565b604051806040016040528060608152602001606081525090565b6000602082840312156109b857600080fd5b81356001600160e01b0319811681146109d057600080fd5b9392505050565b6000815180845260005b818110156109fd576020818501810151868301820152016109e1565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006109d060208301846109d7565b60008060008060608587031215610a4657600080fd5b84356001600160a01b0381168114610a5d57600080fd5b93506020850135925060408501356001600160401b0380821115610a8057600080fd5b818701915087601f830112610a9457600080fd5b813581811115610aa357600080fd5b8860208260051b8501011115610ab857600080fd5b95989497505060200194505050565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b83811015610b4057888303603f1901855281518051878552610b14888601826109d7565b91890151858303868b0152919050610b2c81836109d7565b968901969450505090860190600101610af0565b509098975050505050505050565b80358015158114610b5e57600080fd5b919050565b600080600060608486031215610b7857600080fd5b610b8184610b4e565b9250610b8f60208501610b4e565b9150610b9d60408501610b4e565b90509250925092565b634e487b7160e01b600052604160045260246000fd5b600082601f830112610bcd57600080fd5b81356001600160401b0380821115610be757610be7610ba6565b604051601f8301601f19908116603f01168101908282118183101715610c0f57610c0f610ba6565b81604052838152866020858801011115610c2857600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060408385031215610c5b57600080fd5b82356001600160401b0380821115610c7257600080fd5b610c7e86838701610bbc565b93506020850135915080821115610c9457600080fd5b50610ca185828601610bbc565b9150509250929050565b600181811c90821680610cbf57607f821691505b602082108103610cdf57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b60008235603e19833603018112610d1157600080fd5b9190910192915050565b600060408236031215610d2d57600080fd5b604080519081016001600160401b038082118383101715610d5057610d50610ba6565b816040528435915080821115610d6557600080fd5b610d7136838701610bbc565b83526020850135915080821115610d8757600080fd5b50610d9436828601610bbc565b60208301525092915050565b6000808335601e19843603018112610db757600080fd5b8301803591506001600160401b03821115610dd157600080fd5b602001915036819003821315610de657600080fd5b9250929050565b686d6f6469666965645f60b81b81528183600983013760009101600901908152919050565b808201808211156101ac57634e487b7160e01b600052601160045260246000fd5b601f821115610987576000816000526020600020601f850160051c81016020861015610e5c5750805b601f850160051c820191505b81811015610e7b57828155600101610e68565b505050505050565b81516001600160401b03811115610e9c57610e9c610ba6565b610eb081610eaa8454610cab565b84610e33565b602080601f831160018114610ee55760008415610ecd5750858301515b600019600386901b1c1916600185901b178555610e7b565b600085815260208120601f198616915b82811015610f1457888601518255948401946001909101908401610ef5565b5085821015610f325787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fea26469706673582212206872b87715911299d49dea2419656dd3be08840f5fd43df16fcc845bc550875464736f6c63430008160033",
210
+ "bytecode": "0x6000805462ffffff1916905560c0604052600e60809081526d6175676d656e746564506172616d60901b60a0526001906200003b90826200012c565b5060408051808201909152600e81526d6175676d656e74656456616c756560901b60208201526002906200007090826200012c565b503480156200007e57600080fd5b50620001f8565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620000b057607f821691505b602082108103620000d157634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000127576000816000526020600020601f850160051c81016020861015620001025750805b601f850160051c820191505b8181101562000123578281556001016200010e565b5050505b505050565b81516001600160401b0381111562000148576200014862000085565b62000160816200015984546200009b565b84620000d7565b602080601f8311600181146200019857600084156200017f5750858301515b600019600386901b1c1916600185901b17855562000123565b600085815260208120601f198616915b82811015620001c957888601518255948401946001909101908401620001a8565b5085821015620001e85787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b610f7880620002086000396000f3fe608060405234801561001057600080fd5b50600436106100835760003560e01c806301ffc9a7146100885780630e78584c146100b05780632e37ba74146100c557806358f8699f146100d757806364481db1146100f757806368b8500c146100ff578063a14a1ae714610148578063a48c2d4e1461015b578063d3072d8214610168575b600080fd5b61009b6100963660046109a6565b61017b565b60405190151581526020015b60405180910390f35b6100b86101b2565b6040516100a79190610a1d565b60005461009b90610100900460ff1681565b6100ea6100e5366004610a30565b610240565b6040516100a79190610ac7565b6100b8610961565b61014661010d366004610b63565b6000805461ffff191693151561ff00191693909317610100921515929092029190911762ff000019166201000091151591909102179055565b005b610146610156366004610c48565b61096e565b60005461009b9060ff1681565b60005461009b9062010000900460ff1681565b60006001600160e01b031982166358f8699f60e01b14806101ac57506301ffc9a760e01b6001600160e01b03198316145b92915050565b600180546101bf90610cab565b80601f01602080910402602001604051908101604052809291908181526020018280546101eb90610cab565b80156102385780601f1061020d57610100808354040283529160200191610238565b820191906000526020600020905b81548152906001019060200180831161021b57829003601f168201915b505050505081565b60005460609062010000900460ff16156102b05760405162461bcd60e51b815260206004820152602660248201527f4d6f636b504d504175676d656e74486f6f6b3a20496e74656e74696f6e616c206044820152651c995d995c9d60d21b60648201526084015b60405180910390fd5b60005460ff161580156102cb5750600054610100900460ff16155b1561038b576000826001600160401b038111156102ea576102ea610ba6565b60405190808252806020026020018201604052801561032357816020015b61031061098c565b8152602001906001900390816103085790505b50905060005b838110156103835784848281811061034357610343610ce5565b90506020028101906103559190610cfb565b61035e90610d1b565b82828151811061037057610370610ce5565b6020908102919091010152600101610329565b509050610959565b600054610100900460ff1680156103a157508115155b156106e8576000826001600160401b038111156103c0576103c0610ba6565b6040519080825280602002602001820160405280156103f957816020015b6103e661098c565b8152602001906001900390816103de5790505b50905060005b838110156104595784848281811061041957610419610ce5565b905060200281019061042b9190610cfb565b61043490610d1b565b82828151811061044657610446610ce5565b60209081029190910101526001016103ff565b5082156104d6578383600081811061047357610473610ce5565b90506020028101906104859190610cfb565b610493906020810190610da0565b6040516020016104a4929190610ded565b604051602081830303815290604052816000815181106104c6576104c6610ce5565b6020026020010151602001819052505b60005460ff16156106e1576000815160016104f19190610e12565b6001600160401b0381111561050857610508610ba6565b60405190808252806020026020018201604052801561054157816020015b61052e61098c565b8152602001906001900390816105265790505b50905060005b825181101561058f5782818151811061056257610562610ce5565b602002602001015182828151811061057c5761057c610ce5565b6020908102919091010152600101610547565b506040518060400160405280600180546105a890610cab565b80601f01602080910402602001604051908101604052809291908181526020018280546105d490610cab565b80156106215780601f106105f657610100808354040283529160200191610621565b820191906000526020600020905b81548152906001019060200180831161060457829003601f168201915b505050505081526020016002805461063890610cab565b80601f016020809104026020016040519081016040528092919081815260200182805461066490610cab565b80156106b15780601f10610686576101008083540402835291602001916106b1565b820191906000526020600020905b81548152906001019060200180831161069457829003601f168201915b5050505050815250818351815181106106cc576106cc610ce5565b60200260200101819052508092505050610959565b9050610959565b60005460ff1615610901576000610700836001610e12565b6001600160401b0381111561071757610717610ba6565b60405190808252806020026020018201604052801561075057816020015b61073d61098c565b8152602001906001900390816107355790505b50905060005b838110156107b05784848281811061077057610770610ce5565b90506020028101906107829190610cfb565b61078b90610d1b565b82828151811061079d5761079d610ce5565b6020908102919091010152600101610756565b506040518060400160405280600180546107c990610cab565b80601f01602080910402602001604051908101604052809291908181526020018280546107f590610cab565b80156108425780601f1061081757610100808354040283529160200191610842565b820191906000526020600020905b81548152906001019060200180831161082557829003601f168201915b505050505081526020016002805461085990610cab565b80601f016020809104026020016040519081016040528092919081815260200182805461088590610cab565b80156108d25780601f106108a7576101008083540402835291602001916108d2565b820191906000526020600020905b8154815290600101906020018083116108b557829003601f168201915b50505050508152508185859050815181106108ef576108ef610ce5565b60209081029190910101529050610959565b60405162461bcd60e51b815260206004820152602760248201527f4d6f636b504d504175676d656e74486f6f6b3a20556e6578706563746564206260448201526632b430bb34b7b960c91b60648201526084016102a7565b949350505050565b600280546101bf90610cab565b600161097a8382610e83565b5060026109878282610e83565b505050565b604051806040016040528060608152602001606081525090565b6000602082840312156109b857600080fd5b81356001600160e01b0319811681146109d057600080fd5b9392505050565b6000815180845260005b818110156109fd576020818501810151868301820152016109e1565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006109d060208301846109d7565b60008060008060608587031215610a4657600080fd5b84356001600160a01b0381168114610a5d57600080fd5b93506020850135925060408501356001600160401b0380821115610a8057600080fd5b818701915087601f830112610a9457600080fd5b813581811115610aa357600080fd5b8860208260051b8501011115610ab857600080fd5b95989497505060200194505050565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b83811015610b4057888303603f1901855281518051878552610b14888601826109d7565b91890151858303868b0152919050610b2c81836109d7565b968901969450505090860190600101610af0565b509098975050505050505050565b80358015158114610b5e57600080fd5b919050565b600080600060608486031215610b7857600080fd5b610b8184610b4e565b9250610b8f60208501610b4e565b9150610b9d60408501610b4e565b90509250925092565b634e487b7160e01b600052604160045260246000fd5b600082601f830112610bcd57600080fd5b81356001600160401b0380821115610be757610be7610ba6565b604051601f8301601f19908116603f01168101908282118183101715610c0f57610c0f610ba6565b81604052838152866020858801011115610c2857600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060408385031215610c5b57600080fd5b82356001600160401b0380821115610c7257600080fd5b610c7e86838701610bbc565b93506020850135915080821115610c9457600080fd5b50610ca185828601610bbc565b9150509250929050565b600181811c90821680610cbf57607f821691505b602082108103610cdf57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b60008235603e19833603018112610d1157600080fd5b9190910192915050565b600060408236031215610d2d57600080fd5b604080519081016001600160401b038082118383101715610d5057610d50610ba6565b816040528435915080821115610d6557600080fd5b610d7136838701610bbc565b83526020850135915080821115610d8757600080fd5b50610d9436828601610bbc565b60208301525092915050565b6000808335601e19843603018112610db757600080fd5b8301803591506001600160401b03821115610dd157600080fd5b602001915036819003821315610de657600080fd5b9250929050565b686d6f6469666965645f60b81b81528183600983013760009101600901908152919050565b808201808211156101ac57634e487b7160e01b600052601160045260246000fd5b601f821115610987576000816000526020600020601f850160051c81016020861015610e5c5750805b601f850160051c820191505b81811015610e7b57828155600101610e68565b505050505050565b81516001600160401b03811115610e9c57610e9c610ba6565b610eb081610eaa8454610cab565b84610e33565b602080601f831160018114610ee55760008415610ecd5750858301515b600019600386901b1c1916600185901b178555610e7b565b600085815260208120601f198616915b82811015610f1457888601518255948401946001909101908401610ef5565b5085821015610f325787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fea2646970667358221220818cdafcb68bccb8f7a7dc7dae7f499bad9efbc7ed56aafe874db7b921d0a1a064736f6c63430008160033",
211
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100835760003560e01c806301ffc9a7146100885780630e78584c146100b05780632e37ba74146100c557806358f8699f146100d757806364481db1146100f757806368b8500c146100ff578063a14a1ae714610148578063a48c2d4e1461015b578063d3072d8214610168575b600080fd5b61009b6100963660046109a6565b61017b565b60405190151581526020015b60405180910390f35b6100b86101b2565b6040516100a79190610a1d565b60005461009b90610100900460ff1681565b6100ea6100e5366004610a30565b610240565b6040516100a79190610ac7565b6100b8610961565b61014661010d366004610b63565b6000805461ffff191693151561ff00191693909317610100921515929092029190911762ff000019166201000091151591909102179055565b005b610146610156366004610c48565b61096e565b60005461009b9060ff1681565b60005461009b9062010000900460ff1681565b60006001600160e01b031982166358f8699f60e01b14806101ac57506301ffc9a760e01b6001600160e01b03198316145b92915050565b600180546101bf90610cab565b80601f01602080910402602001604051908101604052809291908181526020018280546101eb90610cab565b80156102385780601f1061020d57610100808354040283529160200191610238565b820191906000526020600020905b81548152906001019060200180831161021b57829003601f168201915b505050505081565b60005460609062010000900460ff16156102b05760405162461bcd60e51b815260206004820152602660248201527f4d6f636b504d504175676d656e74486f6f6b3a20496e74656e74696f6e616c206044820152651c995d995c9d60d21b60648201526084015b60405180910390fd5b60005460ff161580156102cb5750600054610100900460ff16155b1561038b576000826001600160401b038111156102ea576102ea610ba6565b60405190808252806020026020018201604052801561032357816020015b61031061098c565b8152602001906001900390816103085790505b50905060005b838110156103835784848281811061034357610343610ce5565b90506020028101906103559190610cfb565b61035e90610d1b565b82828151811061037057610370610ce5565b6020908102919091010152600101610329565b509050610959565b600054610100900460ff1680156103a157508115155b156106e8576000826001600160401b038111156103c0576103c0610ba6565b6040519080825280602002602001820160405280156103f957816020015b6103e661098c565b8152602001906001900390816103de5790505b50905060005b838110156104595784848281811061041957610419610ce5565b905060200281019061042b9190610cfb565b61043490610d1b565b82828151811061044657610446610ce5565b60209081029190910101526001016103ff565b5082156104d6578383600081811061047357610473610ce5565b90506020028101906104859190610cfb565b610493906020810190610da0565b6040516020016104a4929190610ded565b604051602081830303815290604052816000815181106104c6576104c6610ce5565b6020026020010151602001819052505b60005460ff16156106e1576000815160016104f19190610e12565b6001600160401b0381111561050857610508610ba6565b60405190808252806020026020018201604052801561054157816020015b61052e61098c565b8152602001906001900390816105265790505b50905060005b825181101561058f5782818151811061056257610562610ce5565b602002602001015182828151811061057c5761057c610ce5565b6020908102919091010152600101610547565b506040518060400160405280600180546105a890610cab565b80601f01602080910402602001604051908101604052809291908181526020018280546105d490610cab565b80156106215780601f106105f657610100808354040283529160200191610621565b820191906000526020600020905b81548152906001019060200180831161060457829003601f168201915b505050505081526020016002805461063890610cab565b80601f016020809104026020016040519081016040528092919081815260200182805461066490610cab565b80156106b15780601f10610686576101008083540402835291602001916106b1565b820191906000526020600020905b81548152906001019060200180831161069457829003601f168201915b5050505050815250818351815181106106cc576106cc610ce5565b60200260200101819052508092505050610959565b9050610959565b60005460ff1615610901576000610700836001610e12565b6001600160401b0381111561071757610717610ba6565b60405190808252806020026020018201604052801561075057816020015b61073d61098c565b8152602001906001900390816107355790505b50905060005b838110156107b05784848281811061077057610770610ce5565b90506020028101906107829190610cfb565b61078b90610d1b565b82828151811061079d5761079d610ce5565b6020908102919091010152600101610756565b506040518060400160405280600180546107c990610cab565b80601f01602080910402602001604051908101604052809291908181526020018280546107f590610cab565b80156108425780601f1061081757610100808354040283529160200191610842565b820191906000526020600020905b81548152906001019060200180831161082557829003601f168201915b505050505081526020016002805461085990610cab565b80601f016020809104026020016040519081016040528092919081815260200182805461088590610cab565b80156108d25780601f106108a7576101008083540402835291602001916108d2565b820191906000526020600020905b8154815290600101906020018083116108b557829003601f168201915b50505050508152508185859050815181106108ef576108ef610ce5565b60209081029190910101529050610959565b60405162461bcd60e51b815260206004820152602760248201527f4d6f636b504d504175676d656e74486f6f6b3a20556e6578706563746564206260448201526632b430bb34b7b960c91b60648201526084016102a7565b949350505050565b600280546101bf90610cab565b600161097a8382610e83565b5060026109878282610e83565b505050565b604051806040016040528060608152602001606081525090565b6000602082840312156109b857600080fd5b81356001600160e01b0319811681146109d057600080fd5b9392505050565b6000815180845260005b818110156109fd576020818501810151868301820152016109e1565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006109d060208301846109d7565b60008060008060608587031215610a4657600080fd5b84356001600160a01b0381168114610a5d57600080fd5b93506020850135925060408501356001600160401b0380821115610a8057600080fd5b818701915087601f830112610a9457600080fd5b813581811115610aa357600080fd5b8860208260051b8501011115610ab857600080fd5b95989497505060200194505050565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b83811015610b4057888303603f1901855281518051878552610b14888601826109d7565b91890151858303868b0152919050610b2c81836109d7565b968901969450505090860190600101610af0565b509098975050505050505050565b80358015158114610b5e57600080fd5b919050565b600080600060608486031215610b7857600080fd5b610b8184610b4e565b9250610b8f60208501610b4e565b9150610b9d60408501610b4e565b90509250925092565b634e487b7160e01b600052604160045260246000fd5b600082601f830112610bcd57600080fd5b81356001600160401b0380821115610be757610be7610ba6565b604051601f8301601f19908116603f01168101908282118183101715610c0f57610c0f610ba6565b81604052838152866020858801011115610c2857600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060408385031215610c5b57600080fd5b82356001600160401b0380821115610c7257600080fd5b610c7e86838701610bbc565b93506020850135915080821115610c9457600080fd5b50610ca185828601610bbc565b9150509250929050565b600181811c90821680610cbf57607f821691505b602082108103610cdf57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b60008235603e19833603018112610d1157600080fd5b9190910192915050565b600060408236031215610d2d57600080fd5b604080519081016001600160401b038082118383101715610d5057610d50610ba6565b816040528435915080821115610d6557600080fd5b610d7136838701610bbc565b83526020850135915080821115610d8757600080fd5b50610d9436828601610bbc565b60208301525092915050565b6000808335601e19843603018112610db757600080fd5b8301803591506001600160401b03821115610dd157600080fd5b602001915036819003821315610de657600080fd5b9250929050565b686d6f6469666965645f60b81b81528183600983013760009101600901908152919050565b808201808211156101ac57634e487b7160e01b600052601160045260246000fd5b601f821115610987576000816000526020600020601f850160051c81016020861015610e5c5750805b601f850160051c820191505b81811015610e7b57828155600101610e68565b505050505050565b81516001600160401b03811115610e9c57610e9c610ba6565b610eb081610eaa8454610cab565b84610e33565b602080601f831160018114610ee55760008415610ecd5750858301515b600019600386901b1c1916600185901b178555610e7b565b600085815260208120601f198616915b82811015610f1457888601518255948401946001909101908401610ef5565b5085821015610f325787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fea2646970667358221220818cdafcb68bccb8f7a7dc7dae7f499bad9efbc7ed56aafe874db7b921d0a1a064736f6c63430008160033",
212
212
  "linkReferences": {},
213
213
  "deployedLinkReferences": {}
214
214
  }