@artblocks/contracts 1.2.0 → 1.3.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.
- package/README.md +22 -38
- package/artifacts/contracts/AdminACLV1.sol/AdminACLV1.json +2 -2
- package/artifacts/contracts/BytecodeStorageReaders/BytecodeStorageReaderContractV2.sol/BytecodeStorageReaderContractV2.json +201 -0
- package/artifacts/contracts/BytecodeStorageReaders/BytecodeStorageReaderContractV2_Web3Call.sol/BytecodeStorageReaderContractV2_Web3Call.json +201 -0
- package/artifacts/contracts/BytecodeStorageReaders/UniversalBytecodeStorageReader.sol/UniversalBytecodeStorageReader.json +154 -0
- package/artifacts/contracts/BytecodeStorageV2Writer.sol/BytecodeStorageV2Writer.json +87 -0
- package/artifacts/contracts/DependencyRegistryV0.sol/DependencyRegistryV0.json +174 -55
- package/artifacts/contracts/GenArt721CoreV3_Curated.sol/GenArt721CoreV3_Curated.json +2493 -0
- package/artifacts/contracts/OwnedCreate2FactoryV0.sol/OwnedCreate2FactoryV0.json +311 -0
- package/artifacts/contracts/archive/GenArt721CoreV3.sol/GenArt721CoreV3.json +15 -2
- package/artifacts/contracts/archive/GenArt721CoreV3_Explorations.sol/GenArt721CoreV3_Explorations.json +15 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV2.sol/MinterDAExpV2.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV3.sol/MinterDAExpV3.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV4.sol/MinterDAExpV4.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol/MinterDAExpSettlementV0.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV1.sol/MinterDAExpSettlementV1.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV2.sol/MinterDAExpSettlementV2.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV2.sol/MinterDALinV2.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV3.sol/MinterDALinV3.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV4.sol/MinterDALinV4.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV1.sol/MinterHolderV1.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV2.sol/MinterHolderV2.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV3.sol/MinterHolderV3.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV4.sol/MinterHolderV4.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV1.sol/MinterMerkleV1.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV2.sol/MinterMerkleV2.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV3.sol/MinterMerkleV3.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV4.sol/MinterMerkleV4.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV5.sol/MinterMerkleV5.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterPolyptych/MinterPolyptychV0.sol/IGenArt721CoreContractV3WithRandomizer.json +37 -0
- package/artifacts/contracts/archive/minter-suite/Minters/MinterPolyptych/MinterPolyptychV0.sol/MinterPolyptychV0.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterSEA/MinterSEAV0.sol/MinterSEAV0.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV2.sol/MinterSetPriceV2.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV3.sol/MinterSetPriceV3.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV4.sol/MinterSetPriceV4.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V2.sol/MinterSetPriceERC20V2.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V3.sol/MinterSetPriceERC20V3.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V4.sol/MinterSetPriceERC20V4.json +2 -2
- package/artifacts/contracts/engine/V3/EngineFactoryV0.sol/EngineFactoryV0.json +20 -2
- package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine.sol/GenArt721CoreV3_Engine.json +48 -12
- package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol/GenArt721CoreV3_Engine_Flex.json +76 -40
- package/artifacts/contracts/engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol/GenArt721CoreV3_Engine_Flex_PROOF.json +15 -2
- package/artifacts/contracts/engine/V3/forks/PROHIBITION/AdminACLV0_PROHIBITION.sol/AdminACLV0_PROHIBITION.json +2 -2
- package/artifacts/contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol/GenArt721CoreV3_Engine_Flex_PROHIBITION.json +15 -2
- package/artifacts/contracts/engine/V3/forks/PROHIBITION/interfaces/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.sol/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.json +37 -0
- package/artifacts/contracts/engine-registry/CoreRegistryV1.sol/CoreRegistryV1.json +2 -2
- package/artifacts/contracts/generator/AddressChunks.sol/AddressChunks.json +10 -0
- package/artifacts/contracts/generator/GenArt721GeneratorV0.sol/GenArt721GeneratorV0.json +333 -0
- package/artifacts/contracts/generator/GenArt721GeneratorV0.sol/ILegacyGenArt721CoreV2_PBAB_Flex.json +47 -0
- package/artifacts/contracts/interfaces/v0.8.x/IBytecodeStorageReader.sol/IBytecodeStorageReader.json +7 -7
- package/artifacts/contracts/interfaces/v0.8.x/IBytecodeStorageReaderV2.sol/IBytecodeStorageReaderV2.json +7 -7
- package/artifacts/contracts/interfaces/v0.8.x/IBytecodeStorageReader_Base.sol/IBytecodeStorageReader_Base.json +30 -0
- package/artifacts/contracts/interfaces/v0.8.x/ICoreRegistryV1.sol/ICoreRegistryV1.json +13 -0
- package/artifacts/contracts/interfaces/v0.8.x/IDelegateRegistry.sol/IDelegateRegistry.json +820 -0
- package/artifacts/contracts/interfaces/v0.8.x/IDependencyRegistryV0.sol/IDependencyRegistryV0.json +183 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3.sol/IGenArt721CoreContractV3.json +37 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Base.sol/IGenArt721CoreContractV3_Base.json +37 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine.sol/IGenArt721CoreContractV3_Engine.json +42 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex.sol/IGenArt721CoreContractV3_Engine_Flex.json +42 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex_PreV3p2.sol/IGenArt721CoreContractV3_Engine_Flex_PreV3p2.json +37 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_PreV3p2.sol/IGenArt721CoreContractV3_Engine_PreV3p2.json +37 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreProjectScriptV0.sol/IGenArt721CoreProjectScriptV0.json +59 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreProjectScriptV1.sol/IGenArt721CoreProjectScriptV1.json +64 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreTokenHashProviderV0.sol/IGenArt721CoreTokenHashProviderV0.json +30 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreTokenHashProviderV1.sol/IGenArt721CoreTokenHashProviderV1.json +30 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721GeneratorV0.sol/IGenArt721GeneratorV0.json +63 -0
- package/artifacts/contracts/interfaces/v0.8.x/IOwnedCreate2FactoryV0.sol/IOwnedCreate2FactoryV0.json +74 -0
- package/artifacts/contracts/interfaces/v0.8.x/IPMPAugmentHook.sol/IPMPAugmentHook.json +83 -0
- package/artifacts/contracts/interfaces/v0.8.x/IPMPConfigureHook.sol/IPMPConfigureHook.json +80 -0
- package/artifacts/contracts/interfaces/v0.8.x/IPMPV0.sol/IPMPV0.json +402 -0
- package/artifacts/contracts/interfaces/v0.8.x/ISeaDropShimForContract.sol/ISeaDropShimForContract.json +37 -0
- package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterMinPriceV0.sol/ISharedMinterMinPriceV0.json +37 -0
- package/artifacts/contracts/interfaces/v0.8.x/IUniversalBytecodeStorageReader.sol/IUniversalBytecodeStorageReader.json +69 -0
- package/artifacts/contracts/interfaces/v0.8.x/IWeb3Call.sol/IWeb3Call.json +47 -0
- package/artifacts/contracts/interfaces/v0.8.x/integration-refs/OpenSea/ERC721SeaDropStructsErrorsAndEvents.sol/ERC721SeaDropStructsErrorsAndEvents.json +43 -0
- package/artifacts/contracts/interfaces/v0.8.x/integration-refs/OpenSea/INonFungibleSeaDropToken.sol/INonFungibleSeaDropToken.json +715 -0
- package/artifacts/contracts/interfaces/v0.8.x/integration-refs/OpenSea/ISeaDrop.sol/ISeaDrop.json +1571 -0
- package/artifacts/contracts/interfaces/v0.8.x/integration-refs/OpenSea/ISeaDropTokenContractMetadata.sol/ISeaDropTokenContractMetadata.json +345 -0
- package/artifacts/contracts/interfaces/v0.8.x/integration-refs/OpenSea/SeaDropErrorsAndEvents.sol/SeaDropErrorsAndEvents.json +717 -0
- package/artifacts/contracts/libs/integration-refs/delegation-registry/DelegateRegistry.sol/DelegateRegistry.json +846 -0
- package/artifacts/contracts/libs/integration-refs/delegation-registry/libraries/RegistryHashes.sol/RegistryHashes.json +10 -0
- package/artifacts/contracts/libs/integration-refs/delegation-registry/libraries/RegistryOps.sol/RegistryOps.json +10 -0
- package/artifacts/contracts/libs/integration-refs/delegation-registry/libraries/RegistryStorage.sol/RegistryStorage.json +10 -0
- package/artifacts/contracts/libs/v0.8.x/AuthLib.sol/AuthLib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/Bytes32Strings.sol/Bytes32Strings.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/DependencyRegistryStorageLib.sol/DependencyRegistryStorageLib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/ImmutableStringArray.sol/ImmutableStringArray.json +10 -0
- package/artifacts/contracts/libs/v0.8.x/JsonStatic.sol/JsonStatic.json +10 -0
- package/artifacts/contracts/libs/v0.8.x/V3FlexLib.sol/V3FlexLib.json +9 -22
- package/artifacts/contracts/libs/v0.8.x/minter-libs/MaxInvocationsLib.sol/MaxInvocationsLib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/minter-libs/MinPriceLib.sol/MinPriceLib.json +24 -0
- package/artifacts/contracts/libs/v0.8.x/minter-libs/PolyptychLib.sol/PolyptychLib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/minter-libs/RAMLib.sol/RAMLib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/minter-libs/SEALib.sol/SEALib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/minter-libs/SettlementExpLib.sol/SettlementExpLib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/minter-libs/SplitFundsLib.sol/SplitFundsLib.json +2 -2
- package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV1.sol/MinterFilterV1.json +2 -2
- package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV2.sol/MinterFilterV2.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterDAExpHolderV5.sol/MinterDAExpHolderV5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterDAExpSettlementV3.sol/MinterDAExpSettlementV3.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterDAExpV5.sol/MinterDAExpV5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterDALinHolderV5.sol/MinterDALinHolderV5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterDALinV5.sol/MinterDALinV5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterMinPriceMerkleV0.sol/MinterMinPriceMerkleV0.json +664 -0
- package/artifacts/contracts/minter-suite/Minters/MinterMinPriceV0.sol/MinterMinPriceV0.json +387 -0
- package/artifacts/contracts/minter-suite/Minters/MinterRAMV0.sol/MinterRAMV0.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterSEAV1.sol/MinterSEAV1.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20V5.sol/MinterSetPriceERC20V5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceHolderV5.sol/MinterSetPriceHolderV5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceMerkleV5.sol/MinterSetPriceMerkleV5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychERC20V5.sol/MinterSetPricePolyptychERC20V5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychV5.sol/MinterSetPricePolyptychV5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceV5.sol/MinterSetPriceV5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/one-off/MinterSetPriceV5_SingleCore.sol/MinterSetPriceV5_SingleCore.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/one-off/SeaDropXArtBlocksShim.sol/SeaDropXArtBlocksShim.json +1206 -0
- package/artifacts/contracts/mock/BytecodeV1LibCallsMock.sol/BytecodeV1LibCallsMock.json +2 -2
- package/artifacts/contracts/mock/BytecodeV2LibCallsMock.sol/BytecodeV2LibCallsMock.json +2 -2
- package/artifacts/contracts/mock/DummySharedMinter.sol/DummySharedMinter.json +2 -2
- package/artifacts/contracts/mock/ERC20MockAltDecimals.sol/ERC20MockAltDecimals.json +318 -0
- package/artifacts/contracts/mock/ForceSendMock.sol/ForceSendMock.json +2 -2
- package/artifacts/contracts/mock/GenArt721CoreV3_Engine_IncorrectCoreType.sol/GenArt721CoreV3_Engine_IncorrectCoreType.json +2 -2
- package/artifacts/contracts/mock/ImmutableStringArrayMock.sol/ImmutableStringArrayMock.json +69 -0
- package/artifacts/contracts/mock/MockAdminACLV0_PROHIBITION.sol/MockAdminACLV0Events_PROHIBITION.json +2 -2
- package/artifacts/contracts/mock/MockFileStore.sol/MockFileStore.json +35 -0
- package/artifacts/contracts/mock/MockPMPAugmentHook.sol/MockPMPAugmentHook.json +214 -0
- package/artifacts/contracts/mock/MockPMPConfigureHook.sol/MockPMPConfigureHook.json +236 -0
- package/artifacts/contracts/mock/OriginRegisterMock.sol/OriginRegisterMock.json +2 -2
- package/artifacts/contracts/mock/RandomizerV2_NoAssignMock.sol/RandomizerV2_NoAssignMock.json +2 -2
- package/artifacts/contracts/randomizer/deprecated/PolyptychRandomizerV0.sol/BasicPolyptychRandomizerV0.json +2 -2
- package/artifacts/contracts/randomizer/deprecated/RandomizerV2.sol/BasicRandomizerV2.json +2 -2
- package/artifacts/contracts/randomizer/shared/SharedRandomizerV0.sol/SharedRandomizerV0.json +2 -2
- package/artifacts/contracts/web3call/PMPV0.sol/PMPV0.json +629 -0
- package/artifacts/contracts/web3call/Web3Call.sol/Web3Call.json +66 -0
- package/artifacts/contracts/web3call/augment-hooks/AbstractPMPAugmentHook.sol/AbstractPMPAugmentHook.json +83 -0
- package/artifacts/contracts/web3call/augment-hooks/InjectBaseGasFee.sol/InjectBaseGasFee.json +83 -0
- package/artifacts/contracts/web3call/augment-hooks/InjectChromieSquiggleFloorPrice.sol/IUniswapV2Pair.json +60 -0
- package/artifacts/contracts/web3call/augment-hooks/InjectChromieSquiggleFloorPrice.sol/InjectChromieSquiggleFloorPrice.json +107 -0
- package/artifacts/contracts/web3call/augment-hooks/InjectIsNounsDaoMember.sol/InjectIsNounsDaoMember.json +96 -0
- package/artifacts/contracts/web3call/augment-hooks/InjectIsProjectFullyMinted.sol/InjectIsProjectFullyMinted.json +83 -0
- package/artifacts/contracts/web3call/augment-hooks/InjectPolyptychTokenHash.sol/InjectPolyptychTokenHash.json +141 -0
- package/artifacts/contracts/web3call/augment-hooks/InjectTokenHashSeed.sol/InjectTokenHashSeed.json +99 -0
- package/artifacts/contracts/web3call/augment-hooks/InjectTokenOwner.sol/InjectTokenOwner.json +99 -0
- package/artifacts/contracts/web3call/augment-hooks/InjectTokenOwnerEthBalance.sol/InjectTokenOwnerEthBalance.json +83 -0
- package/artifacts/contracts/web3call/augment-hooks/InjectUSDCTotalSupply.sol/InjectUSDCTotalSupply.json +107 -0
- package/artifacts/contracts/web3call/configure-hooks/abstractPMPConfigureHook.sol/AbstractPMPConfigureHook.json +80 -0
- package/contracts/BytecodeStorageReaders/BytecodeStorageReaderContractV2.sol +103 -0
- package/contracts/BytecodeStorageReaders/BytecodeStorageReaderContractV2_Web3Call.sol +128 -0
- package/contracts/BytecodeStorageReaders/UniversalBytecodeStorageReader.sol +70 -0
- package/contracts/BytecodeStorageV2Writer.sol +69 -0
- package/contracts/DependencyRegistryV0.sol +296 -88
- package/contracts/GenArt721CoreV3_Curated.sol +133 -0
- package/contracts/OwnedCreate2FactoryV0.sol +173 -0
- package/contracts/engine/V3/EngineFactoryV0.sol +10 -2
- package/contracts/engine/V3/GenArt721CoreV3_Engine.sol +139 -70
- package/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol +148 -72
- package/contracts/generator/AddressChunks.sol +106 -0
- package/contracts/generator/GenArt721GeneratorV0.sol +1163 -0
- package/contracts/generator/scripty-support/Scripty.sol +5 -0
- package/contracts/interfaces/v0.8.x/IBytecodeStorageReader.sol +34 -36
- package/contracts/interfaces/v0.8.x/IBytecodeStorageReaderV2.sol +5 -3
- package/contracts/interfaces/v0.8.x/IBytecodeStorageReader_Base.sol +20 -0
- package/contracts/interfaces/v0.8.x/ICoreRegistryV1.sol +5 -0
- package/contracts/interfaces/v0.8.x/IDelegateRegistry.sol +318 -0
- package/contracts/interfaces/v0.8.x/IDependencyRegistryV0.sol +96 -0
- package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Base.sol +13 -2
- package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine.sol +3 -1
- package/contracts/interfaces/v0.8.x/IGenArt721CoreProjectScriptV0.sol +22 -0
- package/contracts/interfaces/v0.8.x/IGenArt721CoreProjectScriptV1.sol +23 -0
- package/contracts/interfaces/v0.8.x/IGenArt721CoreTokenHashProviderV0.sol +11 -0
- package/contracts/interfaces/v0.8.x/IGenArt721CoreTokenHashProviderV1.sol +9 -0
- package/contracts/interfaces/v0.8.x/IGenArt721GeneratorV0.sol +14 -0
- package/contracts/interfaces/v0.8.x/IOwnedCreate2FactoryV0.sol +40 -0
- package/contracts/interfaces/v0.8.x/IPMPAugmentHook.sol +31 -0
- package/contracts/interfaces/v0.8.x/IPMPConfigureHook.sol +25 -0
- package/contracts/interfaces/v0.8.x/IPMPV0.sol +224 -0
- package/contracts/interfaces/v0.8.x/ISeaDropShimForContract.sol +19 -0
- package/contracts/interfaces/v0.8.x/ISharedMinterMinPriceV0.sol +22 -0
- package/contracts/interfaces/v0.8.x/ISharedMinterRequired.sol +10 -4
- package/contracts/interfaces/v0.8.x/IUniversalBytecodeStorageReader.sol +33 -0
- package/contracts/interfaces/v0.8.x/IWeb3Call.sol +28 -0
- package/contracts/interfaces/v0.8.x/integration-refs/OpenSea/ERC721SeaDropStructsErrorsAndEvents.sol +58 -0
- package/contracts/interfaces/v0.8.x/integration-refs/OpenSea/INonFungibleSeaDropToken.sol +186 -0
- package/contracts/interfaces/v0.8.x/integration-refs/OpenSea/ISeaDrop.sol +337 -0
- package/contracts/interfaces/v0.8.x/integration-refs/OpenSea/ISeaDropTokenContractMetadata.sol +152 -0
- package/contracts/interfaces/v0.8.x/integration-refs/OpenSea/SeaDropErrorsAndEvents.sol +320 -0
- package/contracts/interfaces/v0.8.x/integration-refs/OpenSea/SeaDropStructs.sol +146 -0
- package/contracts/libs/integration-refs/delegation-registry/DelegateRegistry.sol +753 -0
- package/contracts/libs/integration-refs/delegation-registry/libraries/RegistryHashes.sol +359 -0
- package/contracts/libs/integration-refs/delegation-registry/libraries/RegistryOps.sol +31 -0
- package/contracts/libs/integration-refs/delegation-registry/libraries/RegistryStorage.sol +87 -0
- package/contracts/libs/v0.8.x/Bytes32Strings.sol +20 -0
- package/contracts/libs/v0.8.x/DependencyRegistryStorageLib.sol +14 -3
- package/contracts/libs/v0.8.x/ImmutableStringArray.sol +289 -0
- package/contracts/libs/v0.8.x/JsonStatic.sol +373 -0
- package/contracts/libs/v0.8.x/V3FlexLib.sol +16 -4
- package/contracts/libs/v0.8.x/minter-libs/MinPriceLib.sol +64 -0
- package/contracts/libs/v0.8.x/minter-libs/SplitFundsLib.sol +107 -0
- package/contracts/minter-suite/Minters/MinterMinPriceMerkleV0.sol +765 -0
- package/contracts/minter-suite/Minters/MinterMinPriceV0.sol +462 -0
- package/contracts/minter-suite/Minters/one-off/SeaDropXArtBlocksShim.sol +869 -0
- package/contracts/mock/ERC20MockAltDecimals.sol +31 -0
- package/contracts/mock/ImmutableStringArrayMock.sol +47 -0
- package/contracts/mock/MockFileStore.sol +22 -0
- package/contracts/mock/MockPMPAugmentHook.sol +170 -0
- package/contracts/mock/MockPMPConfigureHook.sol +78 -0
- package/contracts/web3call/PMPV0.sol +1125 -0
- package/contracts/web3call/Web3Call.sol +25 -0
- package/contracts/web3call/augment-hooks/AbstractPMPAugmentHook.sol +46 -0
- package/contracts/web3call/augment-hooks/InjectBaseGasFee.sol +57 -0
- package/contracts/web3call/augment-hooks/InjectChromieSquiggleFloorPrice.sol +103 -0
- package/contracts/web3call/augment-hooks/InjectIsNounsDaoMember.sol +66 -0
- package/contracts/web3call/augment-hooks/InjectIsProjectFullyMinted.sol +73 -0
- package/contracts/web3call/augment-hooks/InjectPolyptychTokenHash.sol +88 -0
- package/contracts/web3call/augment-hooks/InjectTokenHashSeed.sol +62 -0
- package/contracts/web3call/augment-hooks/InjectTokenOwner.sol +60 -0
- package/contracts/web3call/augment-hooks/InjectTokenOwnerEthBalance.sol +61 -0
- package/contracts/web3call/augment-hooks/InjectUSDCTotalSupply.sol +69 -0
- package/contracts/web3call/configure-hooks/abstractPMPConfigureHook.sol +41 -0
- package/package.json +23 -21
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
pragma solidity ^0.8.0;
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @dev This interface is implemented by GenArt721CoreV3 and above
|
|
6
|
+
*/
|
|
7
|
+
interface IGenArt721CoreProjectScriptV1 {
|
|
8
|
+
function projectScriptDetails(
|
|
9
|
+
uint256 _projectId
|
|
10
|
+
)
|
|
11
|
+
external
|
|
12
|
+
view
|
|
13
|
+
returns (
|
|
14
|
+
string memory scriptTypeAndVersion,
|
|
15
|
+
string memory aspectRatio,
|
|
16
|
+
uint256 scriptCount
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
function projectScriptBytecodeAddressByIndex(
|
|
20
|
+
uint256 _projectId,
|
|
21
|
+
uint256 _index
|
|
22
|
+
) external view returns (address);
|
|
23
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
pragma solidity ^0.8.0;
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @dev This interface is implemented by the GenArt721 (GenArt721CoreV0)
|
|
6
|
+
*/
|
|
7
|
+
interface IGenArt721CoreTokenHashProviderV0 {
|
|
8
|
+
function showTokenHashes(
|
|
9
|
+
uint256 _tokenId
|
|
10
|
+
) external view returns (bytes32[] memory);
|
|
11
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
pragma solidity ^0.8.0;
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @dev This interface is implemented by GenArt721CoreV1 and above.
|
|
6
|
+
*/
|
|
7
|
+
interface IGenArt721CoreTokenHashProviderV1 {
|
|
8
|
+
function tokenIdToHash(uint256 tokenId) external view returns (bytes32);
|
|
9
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
// Created By: Art Blocks Inc.
|
|
3
|
+
pragma solidity ^0.8.22;
|
|
4
|
+
|
|
5
|
+
interface IGenArt721GeneratorV0 {
|
|
6
|
+
event DependencyRegistryUpdated(address indexed _dependencyRegistry);
|
|
7
|
+
event ScriptyBuilderUpdated(address indexed _scriptyBuilder);
|
|
8
|
+
event GunzipScriptBytecodeAddressUpdated(
|
|
9
|
+
address indexed _gunzipScriptBytecodeAddress
|
|
10
|
+
);
|
|
11
|
+
event UniversalBytecodeStorageReaderUpdated(
|
|
12
|
+
address indexed _universalBytecodeStorageReader
|
|
13
|
+
);
|
|
14
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
// Creatd By: Art Blocks Inc.
|
|
3
|
+
|
|
4
|
+
pragma solidity ^0.8.0;
|
|
5
|
+
|
|
6
|
+
import {EngineConfiguration} from "./IGenArt721CoreContractV3_Engine.sol";
|
|
7
|
+
|
|
8
|
+
interface IOwnedCreate2FactoryV0 {
|
|
9
|
+
/**
|
|
10
|
+
* @notice This contract was deployed.
|
|
11
|
+
*/
|
|
12
|
+
event Deployed();
|
|
13
|
+
/**
|
|
14
|
+
* @notice New curated core contract was created.
|
|
15
|
+
* @param newContract new contract
|
|
16
|
+
*/
|
|
17
|
+
event ContractCreated(address indexed newContract);
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* @notice Drains the contract's balance to the `recipient`.
|
|
21
|
+
* @param recipient The address to send funds to.
|
|
22
|
+
* Only callable by the owner.
|
|
23
|
+
*/
|
|
24
|
+
function drainETH(address payable recipient) external;
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* @notice Drains the contract's balance of an input ERC20 token to
|
|
28
|
+
* the `recipient`.
|
|
29
|
+
* @param ERC20TokenAddress The address of the ERC20 token to withdraw.
|
|
30
|
+
* @param recipient The address to send ERC20 tokens to.
|
|
31
|
+
* Only callable by the owner.
|
|
32
|
+
*/
|
|
33
|
+
function drainERC20(address ERC20TokenAddress, address recipient) external;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* @notice Indicates the type of the contract, e.g. `EngineFactoryV0`.
|
|
37
|
+
* @return type_ The type of the contract.
|
|
38
|
+
*/
|
|
39
|
+
function type_() external pure returns (bytes32);
|
|
40
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
// Creatd By: Art Blocks Inc.
|
|
3
|
+
|
|
4
|
+
pragma solidity ^0.8.0;
|
|
5
|
+
|
|
6
|
+
import {IPMPV0} from "./IPMPV0.sol";
|
|
7
|
+
import {IWeb3Call} from "./IWeb3Call.sol";
|
|
8
|
+
|
|
9
|
+
import {IERC165} from "@openzeppelin-5.0/contracts/interfaces/IERC165.sol";
|
|
10
|
+
|
|
11
|
+
interface IPMPAugmentHook is IERC165 {
|
|
12
|
+
/**
|
|
13
|
+
* @notice Augment the token parameters for a given token.
|
|
14
|
+
* @dev This hook is called when a token's PMPs are read.
|
|
15
|
+
* @dev This must return all desired tokenParams, not just additional data.
|
|
16
|
+
* @param coreContract The address of the core contract to call.
|
|
17
|
+
* @param tokenId The tokenId of the token to get data for.
|
|
18
|
+
* @param tokenParams The token parameters for the queried token.
|
|
19
|
+
* @return augmentedTokenParams The augmented token parameters.
|
|
20
|
+
*/
|
|
21
|
+
function onTokenPMPReadAugmentation(
|
|
22
|
+
address coreContract,
|
|
23
|
+
uint256 tokenId,
|
|
24
|
+
IWeb3Call.TokenParam[] calldata tokenParams
|
|
25
|
+
)
|
|
26
|
+
external
|
|
27
|
+
view
|
|
28
|
+
returns (IWeb3Call.TokenParam[] memory augmentedTokenParams);
|
|
29
|
+
|
|
30
|
+
// @dev ERC156 function supportsInterface must be implemented and broadcast true for this interfaceId
|
|
31
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
// Creatd By: Art Blocks Inc.
|
|
3
|
+
|
|
4
|
+
pragma solidity ^0.8.0;
|
|
5
|
+
|
|
6
|
+
import {IPMPV0} from "./IPMPV0.sol";
|
|
7
|
+
|
|
8
|
+
import {IERC165} from "@openzeppelin-5.0/contracts/interfaces/IERC165.sol";
|
|
9
|
+
|
|
10
|
+
interface IPMPConfigureHook is IERC165 {
|
|
11
|
+
/**
|
|
12
|
+
* @notice Execution logic to be executed when a token's PMP is configured.
|
|
13
|
+
* @dev This hook is executed after the PMP is configured.
|
|
14
|
+
* @param coreContract The address of the core contract that was configured.
|
|
15
|
+
* @param tokenId The tokenId of the token that was configured.
|
|
16
|
+
* @param pmpInput The PMP input that was used to successfully configure the token.
|
|
17
|
+
*/
|
|
18
|
+
function onTokenPMPConfigure(
|
|
19
|
+
address coreContract,
|
|
20
|
+
uint256 tokenId,
|
|
21
|
+
IPMPV0.PMPInput calldata pmpInput
|
|
22
|
+
) external;
|
|
23
|
+
|
|
24
|
+
// @dev ERC156 function supportsInterface must be implemented and broadcast true for this interfaceId
|
|
25
|
+
}
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
// Created By: Art Blocks Inc.
|
|
3
|
+
|
|
4
|
+
pragma solidity ^0.8.0;
|
|
5
|
+
|
|
6
|
+
import {IPMPConfigureHook} from "./IPMPConfigureHook.sol";
|
|
7
|
+
import {IPMPAugmentHook} from "./IPMPAugmentHook.sol";
|
|
8
|
+
import {IWeb3Call} from "./IWeb3Call.sol";
|
|
9
|
+
|
|
10
|
+
import {ImmutableStringArray} from "../../libs/v0.8.x/ImmutableStringArray.sol";
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* @title Project Metadata Parameters (PMP) Interface, V0
|
|
14
|
+
* @author Art Blocks Inc.
|
|
15
|
+
* @notice Interface for the Project Metadata Parameters (PMP) contract that defines
|
|
16
|
+
* how projects can expose configurable parameters for tokens. This interface establishes
|
|
17
|
+
* the standard for parameter configuration, validation, and retrieval.
|
|
18
|
+
* @dev This interface extends the IWeb3Call interface to provide compatibility with
|
|
19
|
+
* existing Web3 infrastructure.
|
|
20
|
+
*/
|
|
21
|
+
interface IPMPV0 is IWeb3Call {
|
|
22
|
+
/**
|
|
23
|
+
* @notice Emitted when project hooks are configured.
|
|
24
|
+
* @param coreContract The address of the core contract.
|
|
25
|
+
* @param projectId The project ID for which hooks were configured.
|
|
26
|
+
* @param tokenPMPPostConfigHook The hook to call after a token's PMP is configured.
|
|
27
|
+
* @param tokenPMPReadAugmentationHook The hook to call when reading a token's PMPs.
|
|
28
|
+
*/
|
|
29
|
+
event ProjectHooksConfigured(
|
|
30
|
+
address coreContract,
|
|
31
|
+
uint256 projectId,
|
|
32
|
+
IPMPConfigureHook tokenPMPPostConfigHook,
|
|
33
|
+
IPMPAugmentHook tokenPMPReadAugmentationHook
|
|
34
|
+
);
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* @notice Emitted when a project's available parameters are configured.
|
|
38
|
+
* @param coreContract The address of the core contract.
|
|
39
|
+
* @param projectId The project ID for which parameters were configured.
|
|
40
|
+
* @param pmpInputConfigs Array of parameter configurations defining the available parameters.
|
|
41
|
+
* @param projectConfigNonce The nonce of the project configuration.
|
|
42
|
+
*/
|
|
43
|
+
event ProjectConfigured(
|
|
44
|
+
address coreContract,
|
|
45
|
+
uint256 projectId,
|
|
46
|
+
PMPInputConfig[] pmpInputConfigs,
|
|
47
|
+
uint8 projectConfigNonce
|
|
48
|
+
);
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* @notice Emitted when a token's parameters are configured.
|
|
52
|
+
* @param coreContract The address of the core contract.
|
|
53
|
+
* @param tokenId The token ID for which parameters were configured.
|
|
54
|
+
* @param pmpInputs Array of parameter inputs that were configured.
|
|
55
|
+
*/
|
|
56
|
+
event TokenParamsConfigured(
|
|
57
|
+
address coreContract,
|
|
58
|
+
uint256 tokenId,
|
|
59
|
+
PMPInput[] pmpInputs
|
|
60
|
+
);
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* @notice Emitted when the delegation registry is updated.
|
|
64
|
+
* @dev At the time of writing, the delegate.xyz v2 contract is the only
|
|
65
|
+
* delegate registry contract that is supported.
|
|
66
|
+
* @param delegationRegistry The address of the new delegation registry.
|
|
67
|
+
*/
|
|
68
|
+
event DelegationRegistryUpdated(address delegationRegistry);
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* @notice Defines who can configure a parameter for a token.
|
|
72
|
+
* @dev Enum ordering is relied on (ArtistAndTokenOwnerAndAddress being last).
|
|
73
|
+
*/
|
|
74
|
+
enum AuthOption {
|
|
75
|
+
Artist,
|
|
76
|
+
TokenOwner,
|
|
77
|
+
Address,
|
|
78
|
+
ArtistAndTokenOwner,
|
|
79
|
+
ArtistAndAddress,
|
|
80
|
+
TokenOwnerAndAddress,
|
|
81
|
+
ArtistAndTokenOwnerAndAddress
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* @notice Defines the type of parameter that can be configured.
|
|
86
|
+
* @dev Enum ordering is relied on (String being last).
|
|
87
|
+
*/
|
|
88
|
+
enum ParamType {
|
|
89
|
+
Unconfigured, // @dev default value, used to check if PMP is configured
|
|
90
|
+
Select,
|
|
91
|
+
Bool,
|
|
92
|
+
Uint256Range,
|
|
93
|
+
Int256Range,
|
|
94
|
+
DecimalRange,
|
|
95
|
+
HexColor,
|
|
96
|
+
Timestamp,
|
|
97
|
+
String // utilizes string in PMP struct, all other param types utilize the generic bytes32 param
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* @notice Structure for a parameter configuration input.
|
|
102
|
+
* @dev Used when configuring a project's available parameters.
|
|
103
|
+
*/
|
|
104
|
+
struct PMPInputConfig {
|
|
105
|
+
string key; // slot 0: 32 bytes
|
|
106
|
+
PMPConfig pmpConfig; // slot 1: 32 bytes
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* @notice Structure for a parameter configuration.
|
|
111
|
+
* @dev Defines the constraints and options for a parameter.
|
|
112
|
+
*/
|
|
113
|
+
struct PMPConfig {
|
|
114
|
+
AuthOption authOption; // slot 0: 1 byte
|
|
115
|
+
ParamType paramType; // slot 0: 1 byte
|
|
116
|
+
uint48 pmpLockedAfterTimestamp; // slot 0: 6 bytes
|
|
117
|
+
address authAddress; // slot 0: 20 bytes
|
|
118
|
+
string[] selectOptions; // slot 1: 32 bytes
|
|
119
|
+
// @dev use bytes32 for all range types for SSTORE efficiency
|
|
120
|
+
// @dev minRange and maxRange cast to defined numeric type when verifying assigned PMP values
|
|
121
|
+
bytes32 minRange; // slot 2: 32 bytes
|
|
122
|
+
bytes32 maxRange; // slot 3: 32 bytes
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* @notice View structure for a parameter configuration.
|
|
127
|
+
* @dev Used when reading a project's available parameters.
|
|
128
|
+
* @dev any populated select options are loaded and returned as a string array
|
|
129
|
+
* instead of remaining as a pointer to a data contract
|
|
130
|
+
*/
|
|
131
|
+
struct PMPConfigView {
|
|
132
|
+
uint8 highestConfigNonce;
|
|
133
|
+
AuthOption authOption;
|
|
134
|
+
ParamType paramType;
|
|
135
|
+
uint48 pmpLockedAfterTimestamp;
|
|
136
|
+
address authAddress;
|
|
137
|
+
uint8 selectOptionsLength;
|
|
138
|
+
string[] selectOptions;
|
|
139
|
+
bytes32 minRange;
|
|
140
|
+
bytes32 maxRange;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* @notice Structure for a parameter input.
|
|
145
|
+
* @dev Used when configuring a token's parameters.
|
|
146
|
+
*/
|
|
147
|
+
struct PMPInput {
|
|
148
|
+
string key; // slot 0: 32 bytes
|
|
149
|
+
ParamType configuredParamType;
|
|
150
|
+
// @dev store values as bytes32 for efficiency, cast appropriately when reading
|
|
151
|
+
bytes32 configuredValue;
|
|
152
|
+
bool configuringArtistString;
|
|
153
|
+
string configuredValueString;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* @notice Storage structure for a configured parameter.
|
|
158
|
+
* @dev Includes both artist and non-artist configured string values.
|
|
159
|
+
*/
|
|
160
|
+
struct PMPStorage {
|
|
161
|
+
ParamType configuredParamType; // slot 0: 1 byte
|
|
162
|
+
// @dev store values as bytes32 for efficiency, cast appropriately when reading
|
|
163
|
+
bytes32 configuredValue; // slot 1: 32 bytes
|
|
164
|
+
string artistConfiguredValueString; // slot 2: 32 bytes
|
|
165
|
+
string nonArtistConfiguredValueString; // slot 3: 32 bytes
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* @notice Configure the hooks for a project.
|
|
170
|
+
* @param coreContract The address of the core contract.
|
|
171
|
+
* @param projectId The project ID to configure hooks for.
|
|
172
|
+
* @param tokenPMPPostConfigHook The hook to call after a token's PMP is configured.
|
|
173
|
+
* @param tokenPMPReadAugmentationHook The hook to call when reading a token's PMPs.
|
|
174
|
+
*/
|
|
175
|
+
function configureProjectHooks(
|
|
176
|
+
address coreContract,
|
|
177
|
+
uint256 projectId,
|
|
178
|
+
IPMPConfigureHook tokenPMPPostConfigHook,
|
|
179
|
+
IPMPAugmentHook tokenPMPReadAugmentationHook
|
|
180
|
+
) external;
|
|
181
|
+
|
|
182
|
+
/**
|
|
183
|
+
* @notice Configure the available parameters for a project.
|
|
184
|
+
* @param coreContract The address of the core contract.
|
|
185
|
+
* @param projectId The project ID to configure parameters for.
|
|
186
|
+
* @param pmpInputConfigs Array of parameter configurations defining the available parameters.
|
|
187
|
+
*/
|
|
188
|
+
function configureProject(
|
|
189
|
+
address coreContract,
|
|
190
|
+
uint256 projectId,
|
|
191
|
+
PMPInputConfig[] calldata pmpInputConfigs
|
|
192
|
+
) external;
|
|
193
|
+
|
|
194
|
+
/**
|
|
195
|
+
* @notice Configure the parameters for a specific token.
|
|
196
|
+
* @param coreContract The address of the core contract.
|
|
197
|
+
* @param tokenId The token ID to configure parameters for.
|
|
198
|
+
* @param pmpInputs Array of parameter inputs to configure.
|
|
199
|
+
*/
|
|
200
|
+
function configureTokenParams(
|
|
201
|
+
address coreContract,
|
|
202
|
+
uint256 tokenId,
|
|
203
|
+
PMPInput[] calldata pmpInputs
|
|
204
|
+
) external;
|
|
205
|
+
|
|
206
|
+
/**
|
|
207
|
+
* @notice Checks if the given wallet has the owner role for the given token.
|
|
208
|
+
* It returns true if the wallet is the owner of the token or if the wallet
|
|
209
|
+
* is a delegate of the token owner; otherwise it returns false.
|
|
210
|
+
* Reverts if an invalid coreContract or tokenId is provided.
|
|
211
|
+
* Provided for convenience, as the same check is performed in the
|
|
212
|
+
* configureTokenParams function.
|
|
213
|
+
* @param wallet The wallet address to check.
|
|
214
|
+
* @param coreContract The address of the core contract to call.
|
|
215
|
+
* @param tokenId The tokenId of the token to check.
|
|
216
|
+
* @return isTokenOwnerOrDelegate True if the wallet is the owner or a delegate of the token,
|
|
217
|
+
* false otherwise.
|
|
218
|
+
*/
|
|
219
|
+
function isTokenOwnerOrDelegate(
|
|
220
|
+
address wallet,
|
|
221
|
+
address coreContract,
|
|
222
|
+
uint256 tokenId
|
|
223
|
+
) external view returns (bool);
|
|
224
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
|
|
3
|
+
// @dev file adds event for indicating a shim contract compatible with SeaDrop, and points to the corresponding NFT
|
|
4
|
+
// contract
|
|
5
|
+
pragma solidity ^0.8.22;
|
|
6
|
+
|
|
7
|
+
interface ISeaDropShimForContract {
|
|
8
|
+
/**
|
|
9
|
+
* @dev Emit event when a shim-minter compatible with SeaDrop that mints tokens on a different contract is deployed
|
|
10
|
+
* @param nftContract The address of the NFT contract that this shim contract is compatible with
|
|
11
|
+
*/
|
|
12
|
+
event SeaDropShimForContract(address nftContract);
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* @dev Emit event when the local max supply is updated
|
|
16
|
+
* @param newLocalMaxSupply The new local max supply
|
|
17
|
+
*/
|
|
18
|
+
event LocalMaxSupplyUpdated(uint256 newLocalMaxSupply);
|
|
19
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
// Created By: Art Blocks Inc.
|
|
3
|
+
|
|
4
|
+
pragma solidity ^0.8.0;
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* @title This interface adds support for minimum price minting.
|
|
8
|
+
* @author Art Blocks Inc.
|
|
9
|
+
*/
|
|
10
|
+
interface ISharedMinterMinPriceV0 {
|
|
11
|
+
/**
|
|
12
|
+
* @notice Update the default minimum mint fee for the minter.
|
|
13
|
+
* @param newDefaultMinMintFee New default minimum mint fee, in wei
|
|
14
|
+
*/
|
|
15
|
+
function updateDefaultMinMintFee(uint256 newDefaultMinMintFee) external;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* @notice Get the default mint fee for the minter.
|
|
19
|
+
* @return defaultMinMintFee Default minimum mint fee, in wei
|
|
20
|
+
*/
|
|
21
|
+
function defaultMinMintFee() external view returns (uint256);
|
|
22
|
+
}
|
|
@@ -10,11 +10,17 @@ pragma solidity ^0.8.0;
|
|
|
10
10
|
* interface.
|
|
11
11
|
*/
|
|
12
12
|
interface ISharedMinterRequired {
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
/**
|
|
14
|
+
* @notice Returns the minter's type, used by the minter filter for metadata
|
|
15
|
+
* purposes.
|
|
16
|
+
* @return The minter type.
|
|
17
|
+
*/
|
|
15
18
|
function minterType() external view returns (string memory);
|
|
16
19
|
|
|
17
|
-
|
|
18
|
-
|
|
20
|
+
/**
|
|
21
|
+
* @notice Returns the minter's associated shared minter filter address.
|
|
22
|
+
* @dev used by subgraph indexing service for entity relation purposes.
|
|
23
|
+
* @return The minter filter address.
|
|
24
|
+
*/
|
|
19
25
|
function minterFilterAddress() external returns (address);
|
|
20
26
|
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
// Created By: Art Blocks Inc.
|
|
3
|
+
|
|
4
|
+
pragma solidity ^0.8.0;
|
|
5
|
+
|
|
6
|
+
import {IBytecodeStorageReader_Base} from "./IBytecodeStorageReader_Base.sol";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @title This interface extends the IBytecodeStorageReader_Base interface with relevant events and functions used on the
|
|
10
|
+
* universal bytecode storage reader contract.
|
|
11
|
+
* @author Art Blocks Inc.
|
|
12
|
+
*/
|
|
13
|
+
interface IUniversalBytecodeStorageReader is IBytecodeStorageReader_Base {
|
|
14
|
+
/**
|
|
15
|
+
* @notice The active bytecode storage reader contract being used by this universal reader was updated.
|
|
16
|
+
* @param activeReader The address of the new active bytecode storage reader contract.
|
|
17
|
+
*/
|
|
18
|
+
event ReaderUpdated(address indexed activeReader);
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* @notice Update the active bytecode storage reader contract being used by this universal reader.
|
|
22
|
+
* @dev emits a ReaderUpdated event when successful.
|
|
23
|
+
* @param newBytecodeStorageReaderContract The address of the new active bytecode storage reader contract.
|
|
24
|
+
*/
|
|
25
|
+
function updateBytecodeStorageReaderContract(
|
|
26
|
+
IBytecodeStorageReader_Base newBytecodeStorageReaderContract
|
|
27
|
+
) external;
|
|
28
|
+
|
|
29
|
+
function activeBytecodeStorageReaderContract()
|
|
30
|
+
external
|
|
31
|
+
view
|
|
32
|
+
returns (IBytecodeStorageReader_Base);
|
|
33
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
// Creatd By: Art Blocks Inc.
|
|
3
|
+
|
|
4
|
+
pragma solidity ^0.8.0;
|
|
5
|
+
|
|
6
|
+
interface IWeb3Call {
|
|
7
|
+
/**
|
|
8
|
+
* @notice TokenParam struct defines the parameters for a given token.
|
|
9
|
+
* @param key The key of the token parameter.
|
|
10
|
+
* @param value The value of the token parameter.
|
|
11
|
+
*/
|
|
12
|
+
struct TokenParam {
|
|
13
|
+
string key;
|
|
14
|
+
string value;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* @notice Get the token parameters for a given token.
|
|
19
|
+
* If none are configured, the tokenParams should be empty.
|
|
20
|
+
* @param coreContract The address of the core contract to call.
|
|
21
|
+
* @param tokenId The tokenId of the token to get data for.
|
|
22
|
+
* @return tokenParams An array of token parameters for the queried token.
|
|
23
|
+
*/
|
|
24
|
+
function getTokenParams(
|
|
25
|
+
address coreContract,
|
|
26
|
+
uint256 tokenId
|
|
27
|
+
) external view returns (TokenParam[] memory tokenParams);
|
|
28
|
+
}
|
package/contracts/interfaces/v0.8.x/integration-refs/OpenSea/ERC721SeaDropStructsErrorsAndEvents.sol
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
// @dev file is sourced from OpenSea's repository: https://github.com/ProjectOpenSea/seadrop/blob/main/src/lib/ERC721SeaDropStructsErrorsAndEvents.sol
|
|
3
|
+
// @dev modified to not lock to specific version, as well as updated imports for this repository
|
|
4
|
+
pragma solidity ^0.8.17;
|
|
5
|
+
|
|
6
|
+
import {AllowListData, PublicDrop, SignedMintValidationParams, TokenGatedDropStage} from "./SeaDropStructs.sol";
|
|
7
|
+
|
|
8
|
+
interface ERC721SeaDropStructsErrorsAndEvents {
|
|
9
|
+
/**
|
|
10
|
+
* @notice Revert with an error if mint exceeds the max supply.
|
|
11
|
+
*/
|
|
12
|
+
error MintQuantityExceedsMaxSupply(uint256 total, uint256 maxSupply);
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* @notice Revert with an error if the number of token gated
|
|
16
|
+
* allowedNftTokens doesn't match the length of supplied
|
|
17
|
+
* drop stages.
|
|
18
|
+
*/
|
|
19
|
+
error TokenGatedMismatch();
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* @notice Revert with an error if the number of signers doesn't match
|
|
23
|
+
* the length of supplied signedMintValidationParams
|
|
24
|
+
*/
|
|
25
|
+
error SignersMismatch();
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* @notice An event to signify that a SeaDrop token contract was deployed.
|
|
29
|
+
*/
|
|
30
|
+
event SeaDropTokenDeployed();
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* @notice A struct to configure multiple contract options at a time.
|
|
34
|
+
*/
|
|
35
|
+
struct MultiConfigureStruct {
|
|
36
|
+
uint256 maxSupply;
|
|
37
|
+
string baseURI;
|
|
38
|
+
string contractURI;
|
|
39
|
+
address seaDropImpl;
|
|
40
|
+
PublicDrop publicDrop;
|
|
41
|
+
string dropURI;
|
|
42
|
+
AllowListData allowListData;
|
|
43
|
+
address creatorPayoutAddress;
|
|
44
|
+
bytes32 provenanceHash;
|
|
45
|
+
address[] allowedFeeRecipients;
|
|
46
|
+
address[] disallowedFeeRecipients;
|
|
47
|
+
address[] allowedPayers;
|
|
48
|
+
address[] disallowedPayers;
|
|
49
|
+
// Token-gated
|
|
50
|
+
address[] tokenGatedAllowedNftTokens;
|
|
51
|
+
TokenGatedDropStage[] tokenGatedDropStages;
|
|
52
|
+
address[] disallowedTokenGatedAllowedNftTokens;
|
|
53
|
+
// Server-signed
|
|
54
|
+
address[] signers;
|
|
55
|
+
SignedMintValidationParams[] signedMintValidationParams;
|
|
56
|
+
address[] disallowedSigners;
|
|
57
|
+
}
|
|
58
|
+
}
|