@artblocks/contracts 1.1.0 → 1.2.1
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 +86 -34
- package/artifacts/contracts/AdminACLV0.sol/AdminACLV0.json +2 -2
- package/artifacts/contracts/AdminACLV1.sol/AdminACLV1.json +2 -2
- package/artifacts/contracts/BytecodeStorageReaders/BytecodeStorageReaderContractV2.sol/BytecodeStorageReaderContractV2.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 +403 -155
- 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 +2060 -0
- package/artifacts/contracts/archive/GenArt721CoreV3_Explorations.sol/GenArt721CoreV3_Explorations.json +2034 -0
- package/artifacts/contracts/{minter-suite → archive/minter-suite}/Minters/MinterBase_v0_1_1.sol/MinterBase.json +1 -1
- 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/{minter-suite/Minters → archive/minter-suite/Minters/MinterDAExp}/MinterDAExpV4.sol/MinterDAExpV4.json +3 -3
- 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/{minter-suite/Minters → archive/minter-suite/Minters/MinterDAExpSettlement}/MinterDAExpSettlementV2.sol/MinterDAExpSettlementV2.json +3 -3
- 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/{minter-suite/Minters → archive/minter-suite/Minters/MinterDALin}/MinterDALinV4.sol/MinterDALinV4.json +3 -3
- 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/{minter-suite/Minters → archive/minter-suite/Minters/MinterHolder}/MinterHolderV4.sol/MinterHolderV4.json +3 -3
- 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/{minter-suite/Minters → archive/minter-suite/Minters/MinterMerkle}/MinterMerkleV5.sol/MinterMerkleV5.json +3 -3
- package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterPolyptych}/MinterPolyptychV0.sol/IGenArt721CoreContractV3WithRandomizer.json +54 -49
- package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterPolyptych}/MinterPolyptychV0.sol/MinterPolyptychV0.json +3 -3
- package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterSEA}/MinterSEAV0.sol/MinterSEAV0.json +3 -3
- 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/{minter-suite/Minters → archive/minter-suite/Minters/MinterSetPrice}/MinterSetPriceV4.sol/MinterSetPriceV4.json +3 -3
- package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V0.sol/MinterSetPriceERC20V0.json +65 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V1.sol/MinterSetPriceERC20V1.json +65 -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 +807 -0
- package/artifacts/contracts/engine/V2/GenArt721MinterBurner_PBAB.sol/GenArt721MinterBurner_PBAB.json +65 -2
- package/artifacts/contracts/engine/V2/GenArt721Minter_PBAB.sol/GenArt721Minter_PBAB.json +65 -2
- package/artifacts/contracts/engine/V3/EngineFactoryV0.sol/EngineFactoryV0.json +624 -0
- package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine.sol/GenArt721CoreV3_Engine.json +613 -216
- package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol/GenArt721CoreV3_Engine_Flex.json +805 -206
- package/artifacts/contracts/engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol/GenArt721CoreV3_Engine_Flex_PROOF.json +51 -8
- 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 +51 -8
- package/artifacts/contracts/engine/V3/forks/PROHIBITION/interfaces/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.sol/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.json +59 -54
- 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/IAdminACLV0_Extended.sol/IAdminACLV0_Extended.json +140 -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 +130 -0
- 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/IDependencyRegistryV0.sol/IDependencyRegistryV0.json +228 -45
- package/artifacts/contracts/interfaces/v0.8.x/IEngineFactoryV0.sol/IEngineFactoryV0.json +283 -0
- package/artifacts/contracts/interfaces/v0.8.x/IFilteredMinterDAExpSettlementV0.sol/IFilteredMinterDAExpSettlementV0.json +12 -12
- package/artifacts/contracts/interfaces/v0.8.x/IFilteredMinterDAExpSettlementV1.sol/IFilteredMinterDAExpSettlementV1.json +12 -12
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3.sol/IGenArt721CoreContractV3.json +53 -48
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Base.sol/IGenArt721CoreContractV3_Base.json +53 -48
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine.sol/IGenArt721CoreContractV3_Engine.json +198 -90
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex.sol/IGenArt721CoreContractV3_Engine_Flex.json +198 -90
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex_PreV3p2.sol/IGenArt721CoreContractV3_Engine_Flex_PreV3p2.json +1065 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_PreV3p2.sol/IGenArt721CoreContractV3_Engine_PreV3p2.json +778 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_ProjectFinance.sol/IGenArt721CoreContractV3_ProjectFinance.json +87 -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/IGenArt721Minter_PBAB.sol/IGenArt721Minter_PBAB.json +279 -0
- package/artifacts/contracts/interfaces/v0.8.x/IOwnedCreate2FactoryV0.sol/IOwnedCreate2FactoryV0.json +74 -0
- package/artifacts/contracts/interfaces/v0.8.x/IPseudorandomAtomic.sol/IPseudorandomAtomic.json +1 -1
- package/artifacts/contracts/interfaces/v0.8.x/ISeaDropShimForContract.sol/ISeaDropShimForContract.json +37 -0
- package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDAExpSettlementV0.sol/ISharedMinterDAExpSettlementV0.json +18 -0
- package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterMinPriceV0.sol/ISharedMinterMinPriceV0.json +37 -0
- package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterRAMV0.sol/ISharedMinterRAMV0.json +62 -0
- package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterRequired.sol/ISharedMinterRequired.json +37 -0
- package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterSEAV0.sol/ISharedMinterSEAV0.json +1 -1
- package/artifacts/contracts/interfaces/v0.8.x/ISplitAtomicFactoryV0.sol/ISplitAtomicFactoryV0.json +170 -0
- package/artifacts/contracts/interfaces/v0.8.x/ISplitAtomicV0.sol/ISplitAtomicV0.json +126 -0
- package/artifacts/contracts/interfaces/v0.8.x/ISplitProviderV0.sol/ISplitProviderV0.json +98 -0
- package/artifacts/contracts/interfaces/v0.8.x/IUniversalBytecodeStorageReader.sol/IUniversalBytecodeStorageReader.json +56 -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/interfaces/v0.8.x/integration-refs/splits-0x-v2/ISplitFactoryV2.sol/ISplitFactoryV2.json +123 -0
- package/artifacts/contracts/libs/integration-refs/delegation-registry/DelegationRegistry.sol/DelegationRegistry.json +2 -2
- package/artifacts/contracts/libs/integration-refs/gnosis-safe/GnosisSafeMock.sol/GnosisSafeMock.json +2 -2
- package/artifacts/contracts/libs/integration-refs/gnosis-safe/GnosisSafeProxyFactoryMock.sol/GnosisSafeProxyFactoryMock.json +2 -2
- package/artifacts/contracts/libs/integration-refs/gnosis-safe/MultiSendMock.sol/MultiSendMock.json +2 -2
- package/artifacts/contracts/libs/integration-refs/weth9/weth9.sol/WETH9_.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/ABHelpers.sol/ABHelpers.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/AuthLib.sol/AuthLib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/BitMap.sol/BitMaps256.json +10 -0
- package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV0.sol/BytecodeStorage.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV1.sol/BytecodeStorageReader.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV1.sol/BytecodeStorageWriter.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV2.sol/BytecodeStorageReader.json +214 -0
- package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV2.sol/BytecodeStorageWriter.json +10 -0
- package/artifacts/contracts/libs/v0.8.x/Bytes32Strings.sol/Bytes32Strings.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/DependencyRegistryStorageLib.sol/DependencyRegistryStorageLib.json +10 -0
- package/artifacts/contracts/libs/v0.8.x/ERC721_PackedHashSeed.sol/ERC721_PackedHashSeed.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/ERC721_PackedHashSeedV1.sol/ERC721_PackedHashSeedV1.json +444 -0
- package/artifacts/contracts/libs/v0.8.x/JsonStatic.sol/JsonStatic.json +10 -0
- package/artifacts/contracts/libs/v0.8.x/PackedBools.sol/PackedBools.json +10 -0
- package/artifacts/contracts/libs/v0.8.x/SSTORE2.sol/SSTORE2.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/V3FlexLib.sol/V3FlexLib.json +195 -0
- package/artifacts/contracts/libs/v0.8.x/minter-libs/DAExpLib.sol/DAExpLib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/minter-libs/DALib.sol/DALib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/minter-libs/DALinLib.sol/DALinLib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/minter-libs/GenericMinterEventsLib.sol/GenericMinterEventsLib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/minter-libs/MaxInvocationsLib.sol/MaxInvocationsLib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/minter-libs/MerkleLib.sol/MerkleLib.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 +398 -0
- package/artifacts/contracts/libs/v0.8.x/minter-libs/SEALib.sol/SEALib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/minter-libs/SetPriceLib.sol/SetPriceLib.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/libs/v0.8.x/minter-libs/TokenHolderLib.sol/TokenHolderLib.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 +1374 -0
- package/artifacts/contracts/minter-suite/Minters/MinterSEAV1.sol/MinterSEAV1.json +7 -7
- 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 +417 -0
- 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 +154 -0
- package/artifacts/contracts/mock/BytecodeV2TextCR_DMock.sol/BytecodeV2TextCR_DMock.json +428 -0
- package/artifacts/contracts/mock/DummySharedMinter.sol/DummySharedMinter.json +2 -2
- package/artifacts/contracts/mock/ERC20Mock.sol/ERC20Mock.json +2 -2
- package/artifacts/contracts/mock/ERC20MockAltDecimals.sol/ERC20MockAltDecimals.json +318 -0
- package/artifacts/contracts/mock/ForceSendMock.sol/ForceSendMock.json +24 -0
- package/artifacts/contracts/mock/GenArt721CoreV3_Engine_IncorrectCoreType.sol/GenArt721CoreV3_Engine_IncorrectCoreType.json +2 -2
- package/artifacts/contracts/mock/Mock0xSplitsV2PullFactory.sol/Mock0xSplitsV2PullFactory.json +149 -0
- package/artifacts/contracts/mock/Mock0xSplitsV2Splitter.sol/Mock0xSplitsV2Splitter.json +99 -0
- package/artifacts/contracts/mock/MockAdminACLV0.sol/MockAdminACLV0Events.json +20 -2
- package/artifacts/contracts/mock/MockAdminACLV0_PROHIBITION.sol/MockAdminACLV0Events_PROHIBITION.json +20 -2
- package/artifacts/contracts/mock/MockFileStore.sol/MockFileStore.json +35 -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/mock/ReentrancyGenArt721MinterMock.sol/ReentrancyGenArt721MinterMock.json +100 -0
- package/artifacts/contracts/mock/ReentrancyHolderMock.sol/ReentrancyHolderMock.json +2 -2
- package/artifacts/contracts/mock/ReentrancyHolderMockShared.sol/ReentrancyHolderMockShared.json +2 -2
- package/artifacts/contracts/mock/ReentrancyMerkleMock.sol/ReentrancyMerkleMock.json +2 -2
- package/artifacts/contracts/mock/ReentrancyMerkleMockShared.sol/ReentrancyMerkleMockShared.json +2 -2
- package/artifacts/contracts/mock/ReentrancyMock.sol/ReentrancyMock.json +2 -2
- package/artifacts/contracts/mock/ReentrancyMockShared.sol/ReentrancyMockShared.json +2 -2
- package/artifacts/contracts/mock/ReentrancySEAMock.sol/ReentrancySEAAutoBidderMock.json +2 -2
- package/artifacts/contracts/mock/ReentrancySEAMockShared.sol/ReentrancySEAAutoBidderMockShared.json +2 -2
- package/artifacts/contracts/mock/ReentrancySplitterMocks.sol/ReentrancySplitterDrainETHMock.json +54 -0
- package/artifacts/contracts/mock/ReentrancySplitterMocks.sol/ReentrancySplitterSendETHMock.json +54 -0
- 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/primitive/PseudorandomAtomicBasic.sol/PseudorandomAtomic.json +2 -2
- package/artifacts/contracts/randomizer/shared/SharedRandomizerV0.sol/SharedRandomizerV0.json +2 -2
- package/artifacts/contracts/split/SplitAtomicFactoryV0.sol/SplitAtomicFactoryV0.json +203 -0
- package/artifacts/contracts/split/SplitAtomicV0.sol/SplitAtomicV0.json +168 -0
- package/artifacts/contracts/split/split-provider/SplitProviderV0.sol/SplitProviderV0.json +141 -0
- package/contracts/AdminACLV0.sol +6 -2
- package/contracts/AdminACLV1.sol +2 -2
- package/contracts/BytecodeStorageReaders/BytecodeStorageReaderContractV2.sol +103 -0
- package/contracts/BytecodeStorageReaders/UniversalBytecodeStorageReader.sol +70 -0
- package/contracts/BytecodeStorageV2Writer.sol +69 -0
- package/contracts/DependencyRegistryV0.sol +878 -430
- package/contracts/GenArt721CoreV3_Curated.sol +133 -0
- package/contracts/OwnedCreate2FactoryV0.sol +173 -0
- package/contracts/{GenArt721CoreV3.sol → archive/GenArt721CoreV3.sol} +56 -20
- package/contracts/{explorations → archive}/GenArt721CoreV3_Explorations.sol +49 -13
- package/contracts/{minter-suite → archive/minter-suite}/Minters/MinterBase_v0_1_1.sol +4 -4
- package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterDAExp}/MinterDAExpV4.sol +4 -4
- package/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol +4 -4
- package/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV1.sol +5 -5
- package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterDAExpSettlement}/MinterDAExpSettlementV2.sol +8 -8
- package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterDALin}/MinterDALinV4.sol +4 -4
- package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterHolder}/MinterHolderV4.sol +5 -5
- package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterMerkle}/MinterMerkleV5.sol +5 -5
- package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterPolyptych}/MinterPolyptychV0.sol +7 -7
- package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterSEA}/MinterSEAV0.sol +13 -13
- package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterSetPrice}/MinterSetPriceV4.sol +4 -4
- package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V0.sol +82 -10
- package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V1.sol +82 -10
- package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterSetPriceERC20}/MinterSetPriceERC20V4.sol +88 -21
- package/contracts/engine/V2/GenArt721MinterBurner_PBAB.sol +81 -22
- package/contracts/engine/V2/GenArt721Minter_PBAB.sol +80 -22
- package/contracts/engine/V3/EngineFactoryV0.sol +427 -0
- package/contracts/engine/V3/GenArt721CoreV3_Engine.sol +977 -502
- package/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol +1137 -663
- package/contracts/engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol +3 -3
- package/contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol +1 -1
- package/contracts/engine/V3/forks/PROHIBITION/interfaces/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.sol +2 -2
- package/contracts/generator/AddressChunks.sol +106 -0
- package/contracts/generator/GenArt721GeneratorV0.sol +1094 -0
- package/contracts/generator/scripty-support/Scripty.sol +5 -0
- package/contracts/interfaces/v0.8.x/IAdminACLV0_Extended.sol +20 -0
- package/contracts/interfaces/v0.8.x/IBytecodeStorageReader.sol +34 -36
- package/contracts/interfaces/v0.8.x/IBytecodeStorageReaderV2.sol +25 -0
- 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/IDependencyRegistryV0.sol +141 -45
- package/contracts/interfaces/v0.8.x/IEngineFactoryV0.sol +124 -0
- package/contracts/interfaces/v0.8.x/IFilteredMinterDAExpSettlementV0.sol +1 -3
- package/contracts/interfaces/v0.8.x/IFilteredMinterDAExpSettlementV1.sol +1 -3
- package/contracts/interfaces/v0.8.x/IFilteredMinterDAExpV1.sol +1 -3
- package/contracts/interfaces/v0.8.x/IFilteredMinterDALinV1.sol +1 -3
- package/contracts/interfaces/v0.8.x/IFilteredMinterHolderV2.sol +1 -3
- package/contracts/interfaces/v0.8.x/IFilteredMinterMerkleV2.sol +1 -3
- package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Base.sol +126 -11
- package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine.sol +86 -8
- package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex.sol +26 -8
- package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex_PreV3p2.sol +141 -0
- package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_PreV3p2.sol +78 -0
- package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_ProjectFinance.sol +47 -0
- 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/IGenArt721Minter_PBAB.sol +91 -0
- package/contracts/interfaces/v0.8.x/IOwnedCreate2FactoryV0.sol +40 -0
- package/contracts/interfaces/v0.8.x/IPseudorandomAtomic.sol +1 -3
- package/contracts/interfaces/v0.8.x/ISeaDropShimForContract.sol +19 -0
- package/contracts/interfaces/v0.8.x/ISharedMinterDAExpSettlementV0.sol +19 -0
- package/contracts/interfaces/v0.8.x/ISharedMinterMinPriceV0.sol +22 -0
- package/contracts/interfaces/v0.8.x/ISharedMinterRAMV0.sol +23 -0
- package/contracts/interfaces/v0.8.x/ISharedMinterRequired.sol +26 -0
- package/contracts/interfaces/v0.8.x/ISharedMinterSEAV0.sol +1 -4
- package/contracts/interfaces/v0.8.x/ISharedMinterV0.sol +12 -6
- package/contracts/interfaces/v0.8.x/ISplitAtomicFactoryV0.sol +81 -0
- package/contracts/interfaces/v0.8.x/ISplitAtomicV0.sol +72 -0
- package/contracts/interfaces/v0.8.x/ISplitProviderV0.sol +49 -0
- package/contracts/interfaces/v0.8.x/IUniversalBytecodeStorageReader.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/interfaces/v0.8.x/integration-refs/splits-0x-v2/ISplitFactoryV2.sol +62 -0
- package/contracts/libs/v0.8.x/ABHelpers.sol +18 -4
- package/contracts/libs/v0.8.x/BitMap.sol +112 -0
- package/contracts/libs/v0.8.x/BytecodeStorageV2.sol +593 -0
- package/contracts/libs/v0.8.x/Bytes32Strings.sol +20 -0
- package/contracts/libs/v0.8.x/DependencyRegistryStorageLib.sol +98 -0
- package/contracts/libs/v0.8.x/ERC721_PackedHashSeedV1.sol +591 -0
- package/contracts/libs/v0.8.x/JsonStatic.sol +373 -0
- package/contracts/libs/v0.8.x/PackedBools.sol +42 -0
- package/contracts/libs/v0.8.x/V3FlexLib.sol +597 -0
- package/contracts/libs/v0.8.x/minter-libs/DAExpLib.sol +10 -12
- package/contracts/libs/v0.8.x/minter-libs/DALinLib.sol +4 -9
- package/contracts/libs/v0.8.x/minter-libs/GenericMinterEventsLib.sol +44 -44
- package/contracts/libs/v0.8.x/minter-libs/MaxInvocationsLib.sol +64 -63
- package/contracts/libs/v0.8.x/minter-libs/MerkleLib.sol +14 -10
- package/contracts/libs/v0.8.x/minter-libs/MinPriceLib.sol +64 -0
- package/contracts/libs/v0.8.x/minter-libs/RAMLib.sol +2927 -0
- package/contracts/libs/v0.8.x/minter-libs/SEALib.sol +60 -62
- package/contracts/libs/v0.8.x/minter-libs/SetPriceLib.sol +4 -8
- package/contracts/libs/v0.8.x/minter-libs/SettlementExpLib.sol +92 -89
- package/contracts/libs/v0.8.x/minter-libs/SplitFundsLib.sol +128 -15
- package/contracts/libs/v0.8.x/minter-libs/TokenHolderLib.sol +5 -4
- package/contracts/minter-suite/MinterFilter/MinterFilterV2.sol +16 -10
- package/contracts/minter-suite/Minters/MinterDAExpHolderV5.sol +2 -2
- package/contracts/minter-suite/Minters/MinterDAExpSettlementV3.sol +19 -15
- package/contracts/minter-suite/Minters/MinterDAExpV5.sol +2 -2
- package/contracts/minter-suite/Minters/MinterDALinHolderV5.sol +2 -2
- package/contracts/minter-suite/Minters/MinterDALinV5.sol +2 -2
- package/contracts/minter-suite/Minters/MinterMinPriceMerkleV0.sol +765 -0
- package/contracts/minter-suite/Minters/MinterMinPriceV0.sol +462 -0
- package/contracts/minter-suite/Minters/MinterRAMV0.sol +1205 -0
- package/contracts/minter-suite/Minters/MinterSEAV1.sol +21 -32
- package/contracts/minter-suite/Minters/MinterSetPriceERC20V5.sol +17 -8
- package/contracts/minter-suite/Minters/MinterSetPriceHolderV5.sol +2 -2
- package/contracts/minter-suite/Minters/MinterSetPriceMerkleV5.sol +2 -2
- package/contracts/minter-suite/Minters/MinterSetPricePolyptychERC20V5.sol +23 -9
- package/contracts/minter-suite/Minters/MinterSetPricePolyptychV5.sol +2 -2
- package/contracts/minter-suite/Minters/MinterSetPriceV5.sol +2 -2
- package/contracts/minter-suite/Minters/one-off/MinterSetPriceV5_SingleCore.sol +446 -0
- package/contracts/minter-suite/Minters/one-off/SeaDropXArtBlocksShim.sol +869 -0
- package/contracts/mock/BytecodeV2LibCallsMock.sol +128 -0
- package/contracts/mock/BytecodeV2TextCR_DMock.sol +316 -0
- package/contracts/mock/ERC20MockAltDecimals.sol +31 -0
- package/contracts/mock/ForceSendMock.sol +22 -0
- package/contracts/mock/Mock0xSplitsV2PullFactory.sol +75 -0
- package/contracts/mock/Mock0xSplitsV2Splitter.sol +47 -0
- package/contracts/mock/MockAdminACLV0.sol +21 -0
- package/contracts/mock/MockAdminACLV0_PROHIBITION.sol +21 -0
- package/contracts/mock/MockFileStore.sol +22 -0
- package/contracts/mock/ReentrancyGenArt721MinterMock.sol +47 -0
- package/contracts/mock/ReentrancySplitterMocks.sol +67 -0
- package/contracts/randomizer/primitive/PseudorandomAtomicBasic.sol +1 -1
- package/contracts/randomizer/shared/SharedRandomizerV0.sol +1 -1
- package/contracts/split/SplitAtomicFactoryV0.sol +121 -0
- package/contracts/split/SplitAtomicV0.sol +265 -0
- package/contracts/split/split-provider/SplitProviderV0.sol +201 -0
- package/package.json +66 -36
- package/artifacts/contracts/GenArt721CoreV3.sol/GenArt721CoreV3.json +0 -1965
- package/artifacts/contracts/explorations/GenArt721CoreV3_Explorations.sol/GenArt721CoreV3_Explorations.json +0 -1939
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20V4.sol/MinterSetPriceERC20V4.json +0 -768
- package/artifacts/contracts/royalty-registry/GenArt721RoyaltyOverride.sol/GenArt721RoyaltyOverride.json +0 -208
- package/artifacts/contracts/royalty-registry/GenArt721RoyaltyOverride_PBAB.sol/GenArt721RoyaltyOverride_PBAB.json +0 -301
- package/contracts/archive/readme.md +0 -16
- package/contracts/engine/README.md +0 -21
- package/contracts/royalty-registry/GenArt721RoyaltyOverride.sol +0 -168
- package/contracts/royalty-registry/GenArt721RoyaltyOverride_PBAB.sol +0 -221
|
@@ -4,8 +4,7 @@
|
|
|
4
4
|
pragma solidity ^0.8.0;
|
|
5
5
|
|
|
6
6
|
import "./IAdminACLV0.sol";
|
|
7
|
-
|
|
8
|
-
import "./IManifold.sol";
|
|
7
|
+
import "./IGenArt721CoreProjectScriptV1.sol";
|
|
9
8
|
|
|
10
9
|
/**
|
|
11
10
|
* @title This interface is intended to house interface items that are common
|
|
@@ -14,7 +13,131 @@ import "./IManifold.sol";
|
|
|
14
13
|
* add support the Royalty Registry by default.
|
|
15
14
|
* @author Art Blocks Inc.
|
|
16
15
|
*/
|
|
17
|
-
interface IGenArt721CoreContractV3_Base is
|
|
16
|
+
interface IGenArt721CoreContractV3_Base is IGenArt721CoreProjectScriptV1 {
|
|
17
|
+
// This interface emits generic events that contain fields that indicate
|
|
18
|
+
// which parameter has been updated. This is sufficient for application
|
|
19
|
+
// state management, while also simplifying the contract and indexing code.
|
|
20
|
+
// This was done as an alternative to having custom events that emit what
|
|
21
|
+
// field-values have changed for each event, given that changed values can
|
|
22
|
+
// be introspected by indexers due to the design of this smart contract
|
|
23
|
+
// exposing these state changes via publicly viewable fields.
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* @notice Event emitted when the Art Blocks Curation Registry contract is updated.
|
|
27
|
+
* @dev only utilized by subset of V3 core contracts (Art Blocks Curated contracts)
|
|
28
|
+
* @param artblocksCurationRegistryAddress Address of Art Blocks Curation Registry contract.
|
|
29
|
+
*/
|
|
30
|
+
event ArtBlocksCurationRegistryContractUpdated(
|
|
31
|
+
address indexed artblocksCurationRegistryAddress
|
|
32
|
+
);
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* @notice Project's royalty splitter was updated to `_splitter`.
|
|
36
|
+
* @dev New event in v3.2
|
|
37
|
+
* @param projectId The project ID.
|
|
38
|
+
* @param royaltySplitter The new splitter address to receive royalties.
|
|
39
|
+
*/
|
|
40
|
+
event ProjectRoyaltySplitterUpdated(
|
|
41
|
+
uint256 indexed projectId,
|
|
42
|
+
address indexed royaltySplitter
|
|
43
|
+
);
|
|
44
|
+
|
|
45
|
+
// The following fields are used to indicate which contract-level parameter
|
|
46
|
+
// has been updated in the `PlatformUpdated` event:
|
|
47
|
+
// @dev only append to the end of this enum in the case of future updates
|
|
48
|
+
enum PlatformUpdatedFields {
|
|
49
|
+
FIELD_NEXT_PROJECT_ID, // 0
|
|
50
|
+
FIELD_NEW_PROJECTS_FORBIDDEN, // 1
|
|
51
|
+
FIELD_DEFAULT_BASE_URI, // 2
|
|
52
|
+
FIELD_RANDOMIZER_ADDRESS, // 3
|
|
53
|
+
FIELD_NEXT_CORE_CONTRACT, // 4
|
|
54
|
+
FIELD_ARTBLOCKS_DEPENDENCY_REGISTRY_ADDRESS, // 5
|
|
55
|
+
FIELD_ARTBLOCKS_ON_CHAIN_GENERATOR_ADDRESS, // 6
|
|
56
|
+
FIELD_PROVIDER_SALES_ADDRESSES, // 7
|
|
57
|
+
FIELD_PROVIDER_PRIMARY_SALES_PERCENTAGES, // 8
|
|
58
|
+
FIELD_PROVIDER_SECONDARY_SALES_BPS, // 9
|
|
59
|
+
FIELD_SPLIT_PROVIDER, // 10
|
|
60
|
+
FIELD_BYTECODE_STORAGE_READER // 11
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// The following fields are used to indicate which project-level parameter
|
|
64
|
+
// has been updated in the `ProjectUpdated` event:
|
|
65
|
+
// @dev only append to the end of this enum in the case of future updates
|
|
66
|
+
enum ProjectUpdatedFields {
|
|
67
|
+
FIELD_PROJECT_COMPLETED, // 0
|
|
68
|
+
FIELD_PROJECT_ACTIVE, // 1
|
|
69
|
+
FIELD_PROJECT_ARTIST_ADDRESS, // 2
|
|
70
|
+
FIELD_PROJECT_PAUSED, // 3
|
|
71
|
+
FIELD_PROJECT_CREATED, // 4
|
|
72
|
+
FIELD_PROJECT_NAME, // 5
|
|
73
|
+
FIELD_PROJECT_ARTIST_NAME, // 6
|
|
74
|
+
FIELD_PROJECT_SECONDARY_MARKET_ROYALTY_PERCENTAGE, // 7
|
|
75
|
+
FIELD_PROJECT_DESCRIPTION, // 8
|
|
76
|
+
FIELD_PROJECT_WEBSITE, // 9
|
|
77
|
+
FIELD_PROJECT_LICENSE, // 10
|
|
78
|
+
FIELD_PROJECT_MAX_INVOCATIONS, // 11
|
|
79
|
+
FIELD_PROJECT_SCRIPT, // 12
|
|
80
|
+
FIELD_PROJECT_SCRIPT_TYPE, // 13
|
|
81
|
+
FIELD_PROJECT_ASPECT_RATIO, // 14
|
|
82
|
+
FIELD_PROJECT_BASE_URI, // 15
|
|
83
|
+
FIELD_PROJECT_PROVIDER_SECONDARY_FINANCIALS // 16
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* @notice Error codes for the GenArt721 contract. Used by the GenArt721Error
|
|
88
|
+
* custom error.
|
|
89
|
+
* @dev only append to the end of this enum in the case of future updates
|
|
90
|
+
*/
|
|
91
|
+
enum ErrorCodes {
|
|
92
|
+
OnlyNonZeroAddress, // 0
|
|
93
|
+
OnlyNonEmptyString, // 1
|
|
94
|
+
OnlyNonEmptyBytes, // 2
|
|
95
|
+
TokenDoesNotExist, // 3
|
|
96
|
+
ProjectDoesNotExist, // 4
|
|
97
|
+
OnlyUnlockedProjects, // 5
|
|
98
|
+
OnlyAdminACL, // 6
|
|
99
|
+
OnlyArtist, // 7
|
|
100
|
+
OnlyArtistOrAdminACL, // 8
|
|
101
|
+
OnlyAdminACLOrRenouncedArtist, // 9
|
|
102
|
+
OnlyMinterContract, // 10
|
|
103
|
+
MaxInvocationsReached, // 11
|
|
104
|
+
ProjectMustExistAndBeActive, // 12
|
|
105
|
+
PurchasesPaused, // 13
|
|
106
|
+
OnlyRandomizer, // 14
|
|
107
|
+
TokenHashAlreadySet, // 15
|
|
108
|
+
NoZeroHashSeed, // 16
|
|
109
|
+
OverMaxSumOfPercentages, // 17
|
|
110
|
+
IndexOutOfBounds, // 18
|
|
111
|
+
OverMaxSumOfBPS, // 19
|
|
112
|
+
MaxOf100Percent, // 20
|
|
113
|
+
PrimaryPayeeIsZeroAddress, // 21
|
|
114
|
+
SecondaryPayeeIsZeroAddress, // 22
|
|
115
|
+
MustMatchArtistProposal, // 23
|
|
116
|
+
NewProjectsForbidden, // 24
|
|
117
|
+
NewProjectsAlreadyForbidden, // 25
|
|
118
|
+
OnlyArtistOrAdminIfLocked, // 26
|
|
119
|
+
OverMaxSecondaryRoyaltyPercentage, // 27
|
|
120
|
+
OnlyMaxInvocationsDecrease, // 28
|
|
121
|
+
OnlyGteInvocations, // 29
|
|
122
|
+
ScriptIdOutOfRange, // 30
|
|
123
|
+
NoScriptsToRemove, // 31
|
|
124
|
+
ScriptTypeAndVersionFormat, // 32
|
|
125
|
+
AspectRatioTooLong, // 33
|
|
126
|
+
AspectRatioNoNumbers, // 34
|
|
127
|
+
AspectRatioImproperFormat, // 35
|
|
128
|
+
OnlyNullPlatformProvider, // 36
|
|
129
|
+
ContractInitialized // 37
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* @notice Emits an error code `_errorCode` in the GenArt721Error event.
|
|
134
|
+
* @dev Emitting error codes instead of error strings saves significant
|
|
135
|
+
* contract bytecode size, allowing for more contract functionality within
|
|
136
|
+
* the 24KB contract size limit.
|
|
137
|
+
* @param _errorCode The error code to emit. See ErrorCodes enum.
|
|
138
|
+
*/
|
|
139
|
+
error GenArt721Error(ErrorCodes _errorCode);
|
|
140
|
+
|
|
18
141
|
/**
|
|
19
142
|
* @notice Token ID `_tokenId` minted to `_to`.
|
|
20
143
|
*/
|
|
@@ -95,14 +218,6 @@ interface IGenArt721CoreContractV3_Base is IManifold {
|
|
|
95
218
|
uint256 _projectId
|
|
96
219
|
) external view returns (address payable);
|
|
97
220
|
|
|
98
|
-
function projectIdToAdditionalPayeePrimarySales(
|
|
99
|
-
uint256 _projectId
|
|
100
|
-
) external view returns (address payable);
|
|
101
|
-
|
|
102
|
-
function projectIdToAdditionalPayeePrimarySalesPercentage(
|
|
103
|
-
uint256 _projectId
|
|
104
|
-
) external view returns (uint256);
|
|
105
|
-
|
|
106
221
|
function projectIdToSecondaryMarketRoyaltyPercentage(
|
|
107
222
|
uint256 _projectId
|
|
108
223
|
) external view returns (uint256);
|
|
@@ -5,8 +5,61 @@ pragma solidity ^0.8.0;
|
|
|
5
5
|
|
|
6
6
|
import "./IAdminACLV0.sol";
|
|
7
7
|
import "./IGenArt721CoreContractV3_Base.sol";
|
|
8
|
+
import "./ISplitProviderV0.sol";
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* @notice Struct representing Engine contract configuration.
|
|
12
|
+
* @param tokenName Name of token.
|
|
13
|
+
* @param tokenSymbol Token symbol.
|
|
14
|
+
* @param renderProviderAddress address to send render provider revenue to
|
|
15
|
+
* @param randomizerContract Randomizer contract.
|
|
16
|
+
* @param splitProviderAddress Address to use as royalty splitter provider for the contract.
|
|
17
|
+
* @param minterFilterAddress Address of the Minter Filter to set as the Minter
|
|
18
|
+
* on the contract.
|
|
19
|
+
* @param startingProjectId The initial next project ID.
|
|
20
|
+
* @param autoApproveArtistSplitProposals Whether or not to always
|
|
21
|
+
* auto-approve proposed artist split updates.
|
|
22
|
+
* @param nullPlatformProvider Enforce always setting zero platform provider fees and addresses.
|
|
23
|
+
* @param allowArtistProjectActivation Allow artist to activate their own projects.
|
|
24
|
+
* @dev _startingProjectId should be set to a value much, much less than
|
|
25
|
+
* max(uint248), but an explicit input type of `uint248` is used as it is
|
|
26
|
+
* safer to cast up to `uint256` than it is to cast down for the purposes
|
|
27
|
+
* of setting `_nextProjectId`.
|
|
28
|
+
*/
|
|
29
|
+
struct EngineConfiguration {
|
|
30
|
+
string tokenName;
|
|
31
|
+
string tokenSymbol;
|
|
32
|
+
address renderProviderAddress;
|
|
33
|
+
address platformProviderAddress;
|
|
34
|
+
address newSuperAdminAddress;
|
|
35
|
+
address randomizerContract;
|
|
36
|
+
address splitProviderAddress;
|
|
37
|
+
address minterFilterAddress;
|
|
38
|
+
uint248 startingProjectId;
|
|
39
|
+
bool autoApproveArtistSplitProposals;
|
|
40
|
+
bool nullPlatformProvider;
|
|
41
|
+
bool allowArtistProjectActivation;
|
|
42
|
+
}
|
|
8
43
|
|
|
9
44
|
interface IGenArt721CoreContractV3_Engine is IGenArt721CoreContractV3_Base {
|
|
45
|
+
// @dev new function in V3.2
|
|
46
|
+
/**
|
|
47
|
+
* @notice Initializes the contract with the provided `engineConfiguration`.
|
|
48
|
+
* This function should be called atomically, immediately after deployment.
|
|
49
|
+
* Only callable once. Validation on `engineConfiguration` is performed by caller.
|
|
50
|
+
* @param engineConfiguration EngineConfiguration to configure the contract with.
|
|
51
|
+
* @param adminACLContract_ Address of admin access control contract, to be
|
|
52
|
+
* set as contract owner.
|
|
53
|
+
* @param defaultBaseURIHost Base URI prefix to initialize default base URI with.
|
|
54
|
+
* @param bytecodeStorageReaderContract_ Address of the bytecode storage reader contract.
|
|
55
|
+
*/
|
|
56
|
+
function initialize(
|
|
57
|
+
EngineConfiguration calldata engineConfiguration,
|
|
58
|
+
address adminACLContract_,
|
|
59
|
+
string memory defaultBaseURIHost,
|
|
60
|
+
address bytecodeStorageReaderContract_
|
|
61
|
+
) external;
|
|
62
|
+
|
|
10
63
|
// @dev new function in V3
|
|
11
64
|
function getPrimaryRevenueSplits(
|
|
12
65
|
uint256 _projectId,
|
|
@@ -49,24 +102,49 @@ interface IGenArt721CoreContractV3_Engine is IGenArt721CoreContractV3_Base {
|
|
|
49
102
|
view
|
|
50
103
|
returns (uint256);
|
|
51
104
|
|
|
52
|
-
|
|
53
|
-
|
|
105
|
+
/** @notice The default render provider payment address for all secondary sales royalty
|
|
106
|
+
* revenues, for all new projects. Individual project payment info is defined
|
|
107
|
+
* in each project's ProjectFinance struct.
|
|
108
|
+
* @return The default render provider payment address for secondary sales royalties.
|
|
109
|
+
*/
|
|
110
|
+
function defaultRenderProviderSecondarySalesAddress()
|
|
54
111
|
external
|
|
55
112
|
view
|
|
56
113
|
returns (address payable);
|
|
57
114
|
|
|
58
|
-
|
|
59
|
-
|
|
115
|
+
/** @notice The default platform provider payment address for all secondary sales royalty
|
|
116
|
+
* revenues, for all new projects. Individual project payment info is defined
|
|
117
|
+
* in each project's ProjectFinance struct.
|
|
118
|
+
* @return The default platform provider payment address for secondary sales royalties.
|
|
119
|
+
*/
|
|
120
|
+
function defaultPlatformProviderSecondarySalesAddress()
|
|
60
121
|
external
|
|
61
122
|
view
|
|
62
123
|
returns (address payable);
|
|
63
124
|
|
|
64
|
-
|
|
65
|
-
|
|
125
|
+
/** @notice The default render provider payment basis points for all secondary sales royalty
|
|
126
|
+
* revenues, for all new projects. Individual project payment info is defined
|
|
127
|
+
* in each project's ProjectFinance struct.
|
|
128
|
+
* @return The default render provider payment basis points for secondary sales royalties.
|
|
129
|
+
*/
|
|
130
|
+
function defaultRenderProviderSecondarySalesBPS()
|
|
131
|
+
external
|
|
132
|
+
view
|
|
133
|
+
returns (uint256);
|
|
66
134
|
|
|
67
|
-
|
|
68
|
-
|
|
135
|
+
/** @notice The default platform provider payment basis points for all secondary sales royalty
|
|
136
|
+
* revenues, for all new projects. Individual project payment info is defined
|
|
137
|
+
* in each project's ProjectFinance struct.
|
|
138
|
+
* @return The default platform provider payment basis points for secondary sales royalties.
|
|
139
|
+
*/
|
|
140
|
+
function defaultPlatformProviderSecondarySalesBPS()
|
|
69
141
|
external
|
|
70
142
|
view
|
|
71
143
|
returns (uint256);
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* @notice The address of the current split provider being used by the contract.
|
|
147
|
+
* @return The address of the current split provider.
|
|
148
|
+
*/
|
|
149
|
+
function splitProvider() external view returns (ISplitProviderV0);
|
|
72
150
|
}
|
|
@@ -18,8 +18,8 @@ interface IGenArt721CoreContractV3_Engine_Flex is
|
|
|
18
18
|
* @notice When an external asset dependency is updated or added, this event is emitted.
|
|
19
19
|
* @param _projectId The project ID of the project that was updated.
|
|
20
20
|
* @param _index The index of the external asset dependency that was updated.
|
|
21
|
-
* @param _cid
|
|
22
|
-
*
|
|
21
|
+
* @param _cid Field that contains the CID of the dependency if IPFS or ARWEAVE, empty string of ONCHAIN, or a string representation
|
|
22
|
+
* of the Art Blocks Dependency Registry's `dependencyNameAndVersion` if ART_BLOCKS_DEPENDENCY_REGISTRY.
|
|
23
23
|
* @param _dependencyType The type of the external asset dependency.
|
|
24
24
|
* @param _externalAssetDependencyCount The number of external asset dependencies.
|
|
25
25
|
*/
|
|
@@ -54,17 +54,31 @@ interface IGenArt721CoreContractV3_Engine_Flex is
|
|
|
54
54
|
event ProjectExternalAssetDependenciesLocked(uint256 indexed _projectId);
|
|
55
55
|
|
|
56
56
|
/**
|
|
57
|
-
* @notice An external asset dependency type. Can be one of IPFS, ARWEAVE, or
|
|
57
|
+
* @notice An external asset dependency type. Can be one of IPFS, ARWEAVE, ONCHAIN, or ART_BLOCKS_DEPENDENCY_REGISTRY.
|
|
58
58
|
*/
|
|
59
59
|
enum ExternalAssetDependencyType {
|
|
60
60
|
IPFS,
|
|
61
61
|
ARWEAVE,
|
|
62
|
-
ONCHAIN
|
|
62
|
+
ONCHAIN,
|
|
63
|
+
ART_BLOCKS_DEPENDENCY_REGISTRY
|
|
63
64
|
}
|
|
64
65
|
|
|
65
66
|
/**
|
|
66
|
-
* @notice
|
|
67
|
-
|
|
67
|
+
* @notice Project storage that relate to Flex data.
|
|
68
|
+
*/
|
|
69
|
+
struct ProjectFlex {
|
|
70
|
+
bool externalAssetDependenciesLocked;
|
|
71
|
+
uint24 externalAssetDependencyCount;
|
|
72
|
+
mapping(uint256 => ExternalAssetDependency) externalAssetDependencies;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* @notice An external asset dependency, without the retrieved data of any ONCHAIN assets. This reflects what is
|
|
77
|
+
* stored in this contract's storage.
|
|
78
|
+
* @param CID field that contains the CID of the dependency if IPFS or ARWEAVE, empty string of ONCHAIN, or a string representation
|
|
79
|
+
* of the Art Blocks Dependency Registry's `dependencyNameAndVersion` if ART_BLOCKS_DEPENDENCY_REGISTRY.
|
|
80
|
+
* @param dependencyType field that contains the type of the dependency.
|
|
81
|
+
* @param bytecodeAddress field that contains the address of the bytecode for this dependency if ONCHAIN, null address otherwise.
|
|
68
82
|
*/
|
|
69
83
|
struct ExternalAssetDependency {
|
|
70
84
|
string cid;
|
|
@@ -73,8 +87,12 @@ interface IGenArt721CoreContractV3_Engine_Flex is
|
|
|
73
87
|
}
|
|
74
88
|
|
|
75
89
|
/**
|
|
76
|
-
* @notice An external asset dependency with data. This is a convenience struct
|
|
77
|
-
*
|
|
90
|
+
* @notice An external asset dependency with data. This is a convenience struct.
|
|
91
|
+
* @param CID field that contains the CID of the dependency if IPFS or ARWEAVE, empty string of ONCHAIN, or a string representation
|
|
92
|
+
* of the Art Blocks Dependency Registry's `dependencyNameAndVersion` if ART_BLOCKS_DEPENDENCY_REGISTRY.
|
|
93
|
+
* @param dependencyType field that contains the type of the dependency.
|
|
94
|
+
* @param bytecodeAddress field that contains the address of the bytecode for this dependency if ONCHAIN, null address otherwise.
|
|
95
|
+
* @param data field that contains the data retrieved from this bytecode address if ONCHAIN, empty string otherwise.
|
|
78
96
|
*/
|
|
79
97
|
struct ExternalAssetDependencyWithData {
|
|
80
98
|
string cid;
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
// Created By: Art Blocks Inc.
|
|
3
|
+
|
|
4
|
+
pragma solidity ^0.8.0;
|
|
5
|
+
|
|
6
|
+
import "./IAdminACLV0.sol";
|
|
7
|
+
import "./IGenArt721CoreContractV3_Engine_PreV3p2.sol";
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* @title This interface is intended to house interface items that are common
|
|
11
|
+
* across all GenArt721CoreContractV3 Engine Flex and derivative implementations.
|
|
12
|
+
* @author Art Blocks Inc.
|
|
13
|
+
*/
|
|
14
|
+
interface IGenArt721CoreContractV3_Engine_Flex_PreV3p2 is
|
|
15
|
+
IGenArt721CoreContractV3_Engine_PreV3p2
|
|
16
|
+
{
|
|
17
|
+
/**
|
|
18
|
+
* @notice When an external asset dependency is updated or added, this event is emitted.
|
|
19
|
+
* @param _projectId The project ID of the project that was updated.
|
|
20
|
+
* @param _index The index of the external asset dependency that was updated.
|
|
21
|
+
* @param _cid The content ID of the external asset dependency. This is an empty string
|
|
22
|
+
* if the dependency type is ONCHAIN.
|
|
23
|
+
* @param _dependencyType The type of the external asset dependency.
|
|
24
|
+
* @param _externalAssetDependencyCount The number of external asset dependencies.
|
|
25
|
+
*/
|
|
26
|
+
event ExternalAssetDependencyUpdated(
|
|
27
|
+
uint256 indexed _projectId,
|
|
28
|
+
uint256 indexed _index,
|
|
29
|
+
string _cid,
|
|
30
|
+
ExternalAssetDependencyType _dependencyType,
|
|
31
|
+
uint24 _externalAssetDependencyCount
|
|
32
|
+
);
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* @notice The project id `_projectId` has had an external asset dependency removed at index `_index`.
|
|
36
|
+
*/
|
|
37
|
+
event ExternalAssetDependencyRemoved(
|
|
38
|
+
uint256 indexed _projectId,
|
|
39
|
+
uint256 indexed _index
|
|
40
|
+
);
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* @notice The preferred gateway for dependency type `_dependencyType` has been updated to `_gatewayAddress`.
|
|
44
|
+
*/
|
|
45
|
+
event GatewayUpdated(
|
|
46
|
+
ExternalAssetDependencyType indexed _dependencyType,
|
|
47
|
+
string _gatewayAddress
|
|
48
|
+
);
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* @notice The project id `_projectId` has had all external asset dependencies locked.
|
|
52
|
+
* @dev This is a one-way operation. Once locked, the external asset dependencies cannot be updated.
|
|
53
|
+
*/
|
|
54
|
+
event ProjectExternalAssetDependenciesLocked(uint256 indexed _projectId);
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* @notice An external asset dependency type. Can be one of IPFS, ARWEAVE, or ONCHAIN.
|
|
58
|
+
*/
|
|
59
|
+
enum ExternalAssetDependencyType {
|
|
60
|
+
IPFS,
|
|
61
|
+
ARWEAVE,
|
|
62
|
+
ONCHAIN
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* @notice Project storage that relate to Flex data.
|
|
67
|
+
*/
|
|
68
|
+
struct ProjectFlex {
|
|
69
|
+
bool externalAssetDependenciesLocked;
|
|
70
|
+
uint24 externalAssetDependencyCount;
|
|
71
|
+
mapping(uint256 => ExternalAssetDependency) externalAssetDependencies;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* @notice An external asset dependency. This is a struct that contains the CID of the dependency,
|
|
76
|
+
* the type of the dependency, and the address of the bytecode for this dependency.
|
|
77
|
+
*/
|
|
78
|
+
struct ExternalAssetDependency {
|
|
79
|
+
string cid;
|
|
80
|
+
ExternalAssetDependencyType dependencyType;
|
|
81
|
+
address bytecodeAddress;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* @notice An external asset dependency with data. This is a convenience struct that contains the CID of the dependency,
|
|
86
|
+
* the type of the dependency, the address of the bytecode for this dependency, and the data retrieved from this bytecode address.
|
|
87
|
+
*/
|
|
88
|
+
struct ExternalAssetDependencyWithData {
|
|
89
|
+
string cid;
|
|
90
|
+
ExternalAssetDependencyType dependencyType;
|
|
91
|
+
address bytecodeAddress;
|
|
92
|
+
string data;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
// preferredIPFSGateway is a url string
|
|
96
|
+
function preferredIPFSGateway() external view returns (string memory);
|
|
97
|
+
|
|
98
|
+
// preferredArweaveGateway is a url string
|
|
99
|
+
function preferredArweaveGateway() external view returns (string memory);
|
|
100
|
+
|
|
101
|
+
// updates the preferred IPFS gateway
|
|
102
|
+
function updateIPFSGateway(string calldata _gateway) external;
|
|
103
|
+
|
|
104
|
+
// updates the preferred Arweave gateway
|
|
105
|
+
function updateArweaveGateway(string calldata _gateway) external;
|
|
106
|
+
|
|
107
|
+
// locks the external asset dependencies for a project
|
|
108
|
+
function lockProjectExternalAssetDependencies(uint256 _projectId) external;
|
|
109
|
+
|
|
110
|
+
// updates the external asset dependency for a project at a given index
|
|
111
|
+
function updateProjectExternalAssetDependency(
|
|
112
|
+
uint256 _projectId,
|
|
113
|
+
uint256 _index,
|
|
114
|
+
string memory _cidOrData,
|
|
115
|
+
ExternalAssetDependencyType _dependencyType
|
|
116
|
+
) external;
|
|
117
|
+
|
|
118
|
+
// adds an external asset dependency for a project
|
|
119
|
+
function addProjectExternalAssetDependency(
|
|
120
|
+
uint256 _projectId,
|
|
121
|
+
string memory _cidOrData,
|
|
122
|
+
ExternalAssetDependencyType _dependencyType
|
|
123
|
+
) external;
|
|
124
|
+
|
|
125
|
+
// removes an external asset dependency for a project at a given index
|
|
126
|
+
function removeProjectExternalAssetDependency(
|
|
127
|
+
uint256 _projectId,
|
|
128
|
+
uint256 _index
|
|
129
|
+
) external;
|
|
130
|
+
|
|
131
|
+
// getter function for project external asset dependencies
|
|
132
|
+
function projectExternalAssetDependencyByIndex(
|
|
133
|
+
uint256 _projectId,
|
|
134
|
+
uint256 _index
|
|
135
|
+
) external view returns (ExternalAssetDependencyWithData memory);
|
|
136
|
+
|
|
137
|
+
// getter function project external asset dependency count
|
|
138
|
+
function projectExternalAssetDependencyCount(
|
|
139
|
+
uint256 _projectId
|
|
140
|
+
) external view returns (uint256);
|
|
141
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
// Created By: Art Blocks Inc.
|
|
3
|
+
|
|
4
|
+
pragma solidity ^0.8.0;
|
|
5
|
+
|
|
6
|
+
import "./IAdminACLV0.sol";
|
|
7
|
+
import "./IGenArt721CoreContractV3_Base.sol";
|
|
8
|
+
|
|
9
|
+
// @title This interface is intended to house interface items that were used on the
|
|
10
|
+
// GenArt721CoreContractV3 Engine and derivative implementations prior to v3.2.0.
|
|
11
|
+
// Namely, the platform and render provider secondary sales functions are exposed at the contract-level
|
|
12
|
+
// instead of having only defaults defined at the contract level.
|
|
13
|
+
interface IGenArt721CoreContractV3_Engine_PreV3p2 is
|
|
14
|
+
IGenArt721CoreContractV3_Base
|
|
15
|
+
{
|
|
16
|
+
// @dev new function in V3
|
|
17
|
+
function getPrimaryRevenueSplits(
|
|
18
|
+
uint256 _projectId,
|
|
19
|
+
uint256 _price
|
|
20
|
+
)
|
|
21
|
+
external
|
|
22
|
+
view
|
|
23
|
+
returns (
|
|
24
|
+
uint256 renderProviderRevenue_,
|
|
25
|
+
address payable renderProviderAddress_,
|
|
26
|
+
uint256 platformProviderRevenue_,
|
|
27
|
+
address payable platformProviderAddress_,
|
|
28
|
+
uint256 artistRevenue_,
|
|
29
|
+
address payable artistAddress_,
|
|
30
|
+
uint256 additionalPayeePrimaryRevenue_,
|
|
31
|
+
address payable additionalPayeePrimaryAddress_
|
|
32
|
+
);
|
|
33
|
+
|
|
34
|
+
// @dev The render provider primary sales payment address
|
|
35
|
+
function renderProviderPrimarySalesAddress()
|
|
36
|
+
external
|
|
37
|
+
view
|
|
38
|
+
returns (address payable);
|
|
39
|
+
|
|
40
|
+
// @dev The platform provider primary sales payment address
|
|
41
|
+
function platformProviderPrimarySalesAddress()
|
|
42
|
+
external
|
|
43
|
+
view
|
|
44
|
+
returns (address payable);
|
|
45
|
+
|
|
46
|
+
// @dev Percentage of primary sales allocated to the render provider
|
|
47
|
+
function renderProviderPrimarySalesPercentage()
|
|
48
|
+
external
|
|
49
|
+
view
|
|
50
|
+
returns (uint256);
|
|
51
|
+
|
|
52
|
+
// @dev Percentage of primary sales allocated to the platform provider
|
|
53
|
+
function platformProviderPrimarySalesPercentage()
|
|
54
|
+
external
|
|
55
|
+
view
|
|
56
|
+
returns (uint256);
|
|
57
|
+
|
|
58
|
+
// @dev The render provider secondary sales royalties payment address
|
|
59
|
+
function renderProviderSecondarySalesAddress()
|
|
60
|
+
external
|
|
61
|
+
view
|
|
62
|
+
returns (address payable);
|
|
63
|
+
|
|
64
|
+
// @dev The platform provider secondary sales royalties payment address
|
|
65
|
+
function platformProviderSecondarySalesAddress()
|
|
66
|
+
external
|
|
67
|
+
view
|
|
68
|
+
returns (address payable);
|
|
69
|
+
|
|
70
|
+
// @dev Basis points of secondary sales allocated to the render provider
|
|
71
|
+
function renderProviderSecondarySalesBPS() external view returns (uint256);
|
|
72
|
+
|
|
73
|
+
// @dev Basis points of secondary sales allocated to the platform provider
|
|
74
|
+
function platformProviderSecondarySalesBPS()
|
|
75
|
+
external
|
|
76
|
+
view
|
|
77
|
+
returns (uint256);
|
|
78
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
// Created By: Art Blocks Inc.
|
|
3
|
+
|
|
4
|
+
pragma solidity ^0.8.0;
|
|
5
|
+
|
|
6
|
+
import "./IAdminACLV0.sol";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @title This interface defines a project finance struct that is used in the
|
|
10
|
+
* GenArt721CoreContractV3 flagship and derivative implementations beginning
|
|
11
|
+
* with v3.2.0. This struct is intended to house all financial information
|
|
12
|
+
* related to a project, including royalties, artist splits, and platform
|
|
13
|
+
* provider splits.
|
|
14
|
+
* @author Art Blocks Inc.
|
|
15
|
+
*/
|
|
16
|
+
interface IGenArt721CoreContractV3_ProjectFinance {
|
|
17
|
+
/// packed struct containing project financial information
|
|
18
|
+
struct ProjectFinance {
|
|
19
|
+
address payable additionalPayeePrimarySales;
|
|
20
|
+
// packed uint: max of 95, max uint8 = 255
|
|
21
|
+
uint8 secondaryMarketRoyaltyPercentage;
|
|
22
|
+
address payable additionalPayeeSecondarySales;
|
|
23
|
+
// packed uint: max of 100, max uint8 = 255
|
|
24
|
+
uint8 additionalPayeeSecondarySalesPercentage;
|
|
25
|
+
address payable artistAddress;
|
|
26
|
+
// packed uint: max of 100, max uint8 = 255
|
|
27
|
+
uint8 additionalPayeePrimarySalesPercentage;
|
|
28
|
+
address platformProviderSecondarySalesAddress;
|
|
29
|
+
// packed uint: max of 10_000 max uint16 = 65_535
|
|
30
|
+
uint16 platformProviderSecondarySalesBPS;
|
|
31
|
+
address renderProviderSecondarySalesAddress;
|
|
32
|
+
// packed uint: max of 10_000 max uint16 = 65_535
|
|
33
|
+
uint16 renderProviderSecondarySalesBPS;
|
|
34
|
+
// address to send ERC-2981 royalties to
|
|
35
|
+
address royaltySplitter;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* @notice View function returning project financial details for project
|
|
40
|
+
* `_projectId`.
|
|
41
|
+
* @param _projectId Project ID to be queried.
|
|
42
|
+
* @return ProjectFinance Project financial details.
|
|
43
|
+
*/
|
|
44
|
+
function projectIdToFinancials(
|
|
45
|
+
uint256 _projectId
|
|
46
|
+
) external view returns (ProjectFinance memory);
|
|
47
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
pragma solidity ^0.8.0;
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @dev This interface is implemented by GenArt721CoreV0, GenArt721CoreV1, and GenArt721CoreV2
|
|
6
|
+
*/
|
|
7
|
+
interface IGenArt721CoreProjectScriptV0 {
|
|
8
|
+
function projectScriptByIndex(
|
|
9
|
+
uint256 _projectId,
|
|
10
|
+
uint256 _index
|
|
11
|
+
) external view returns (string memory);
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* @dev the return specified here is common across all
|
|
15
|
+
* pre-v3 core contracts. They all return additional
|
|
16
|
+
* data as well that varies between contracts but is not
|
|
17
|
+
* used by the dependency registry.
|
|
18
|
+
*/
|
|
19
|
+
function projectScriptInfo(
|
|
20
|
+
uint256 _projectId
|
|
21
|
+
) external view returns (string memory scriptJSON, uint256 scriptCount);
|
|
22
|
+
}
|
|
@@ -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
|
+
}
|