@artblocks/contracts 1.1.0 → 1.2.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 +75 -7
- package/artifacts/contracts/AdminACLV0.sol/AdminACLV0.json +2 -2
- package/artifacts/contracts/AdminACLV1.sol/AdminACLV1.json +2 -2
- package/artifacts/contracts/DependencyRegistryV0.sol/DependencyRegistryV0.json +273 -155
- package/artifacts/contracts/archive/GenArt721CoreV3.sol/GenArt721CoreV3.json +2047 -0
- package/artifacts/contracts/archive/GenArt721CoreV3_Explorations.sol/GenArt721CoreV3_Explorations.json +2021 -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 +31 -63
- 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 +606 -0
- package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine.sol/GenArt721CoreV3_Engine.json +567 -206
- package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol/GenArt721CoreV3_Engine_Flex.json +787 -224
- package/artifacts/contracts/engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol/GenArt721CoreV3_Engine_Flex_PROOF.json +38 -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 +38 -8
- package/artifacts/contracts/engine/V3/forks/PROHIBITION/interfaces/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.sol/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.json +36 -68
- package/artifacts/contracts/interfaces/v0.8.x/IAdminACLV0_Extended.sol/IAdminACLV0_Extended.json +140 -0
- package/artifacts/contracts/interfaces/v0.8.x/IBytecodeStorageReaderV2.sol/IBytecodeStorageReaderV2.json +130 -0
- package/artifacts/contracts/interfaces/v0.8.x/IDependencyRegistryV0.sol/IDependencyRegistryV0.json +58 -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 +30 -62
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Base.sol/IGenArt721CoreContractV3_Base.json +30 -62
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine.sol/IGenArt721CoreContractV3_Engine.json +170 -104
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex.sol/IGenArt721CoreContractV3_Engine_Flex.json +170 -104
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex_PreV3p2.sol/IGenArt721CoreContractV3_Engine_Flex_PreV3p2.json +1028 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_PreV3p2.sol/IGenArt721CoreContractV3_Engine_PreV3p2.json +741 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_ProjectFinance.sol/IGenArt721CoreContractV3_ProjectFinance.json +87 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721Minter_PBAB.sol/IGenArt721Minter_PBAB.json +279 -0
- package/artifacts/contracts/interfaces/v0.8.x/IPseudorandomAtomic.sol/IPseudorandomAtomic.json +1 -1
- package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDAExpSettlementV0.sol/ISharedMinterDAExpSettlementV0.json +18 -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/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/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 +208 -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/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/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/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/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/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/DependencyRegistryV0.sol +687 -408
- 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 +419 -0
- package/contracts/engine/V3/GenArt721CoreV3_Engine.sol +894 -488
- package/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol +1054 -650
- 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/interfaces/v0.8.x/IAdminACLV0_Extended.sol +20 -0
- package/contracts/interfaces/v0.8.x/IBytecodeStorageReaderV2.sol +23 -0
- package/contracts/interfaces/v0.8.x/IDependencyRegistryV0.sol +47 -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 +115 -11
- package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine.sol +84 -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/IGenArt721Minter_PBAB.sol +91 -0
- package/contracts/interfaces/v0.8.x/IPseudorandomAtomic.sol +1 -3
- package/contracts/interfaces/v0.8.x/ISharedMinterDAExpSettlementV0.sol +19 -0
- package/contracts/interfaces/v0.8.x/ISharedMinterRAMV0.sol +23 -0
- package/contracts/interfaces/v0.8.x/ISharedMinterRequired.sol +20 -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/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/DependencyRegistryStorageLib.sol +90 -0
- package/contracts/libs/v0.8.x/ERC721_PackedHashSeedV1.sol +591 -0
- package/contracts/libs/v0.8.x/PackedBools.sol +42 -0
- package/contracts/libs/v0.8.x/V3FlexLib.sol +591 -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/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 +21 -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/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/mock/BytecodeV2LibCallsMock.sol +128 -0
- package/contracts/mock/BytecodeV2TextCR_DMock.sol +316 -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/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 +62 -34
- 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
|
@@ -5,8 +5,59 @@ 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
|
+
*/
|
|
55
|
+
function initialize(
|
|
56
|
+
EngineConfiguration calldata engineConfiguration,
|
|
57
|
+
address adminACLContract_,
|
|
58
|
+
string memory defaultBaseURIHost
|
|
59
|
+
) external;
|
|
60
|
+
|
|
10
61
|
// @dev new function in V3
|
|
11
62
|
function getPrimaryRevenueSplits(
|
|
12
63
|
uint256 _projectId,
|
|
@@ -49,24 +100,49 @@ interface IGenArt721CoreContractV3_Engine is IGenArt721CoreContractV3_Base {
|
|
|
49
100
|
view
|
|
50
101
|
returns (uint256);
|
|
51
102
|
|
|
52
|
-
|
|
53
|
-
|
|
103
|
+
/** @notice The default render provider payment address for all secondary sales royalty
|
|
104
|
+
* revenues, for all new projects. Individual project payment info is defined
|
|
105
|
+
* in each project's ProjectFinance struct.
|
|
106
|
+
* @return The default render provider payment address for secondary sales royalties.
|
|
107
|
+
*/
|
|
108
|
+
function defaultRenderProviderSecondarySalesAddress()
|
|
54
109
|
external
|
|
55
110
|
view
|
|
56
111
|
returns (address payable);
|
|
57
112
|
|
|
58
|
-
|
|
59
|
-
|
|
113
|
+
/** @notice The default platform provider payment address for all secondary sales royalty
|
|
114
|
+
* revenues, for all new projects. Individual project payment info is defined
|
|
115
|
+
* in each project's ProjectFinance struct.
|
|
116
|
+
* @return The default platform provider payment address for secondary sales royalties.
|
|
117
|
+
*/
|
|
118
|
+
function defaultPlatformProviderSecondarySalesAddress()
|
|
60
119
|
external
|
|
61
120
|
view
|
|
62
121
|
returns (address payable);
|
|
63
122
|
|
|
64
|
-
|
|
65
|
-
|
|
123
|
+
/** @notice The default render provider payment basis points for all secondary sales royalty
|
|
124
|
+
* revenues, for all new projects. Individual project payment info is defined
|
|
125
|
+
* in each project's ProjectFinance struct.
|
|
126
|
+
* @return The default render provider payment basis points for secondary sales royalties.
|
|
127
|
+
*/
|
|
128
|
+
function defaultRenderProviderSecondarySalesBPS()
|
|
129
|
+
external
|
|
130
|
+
view
|
|
131
|
+
returns (uint256);
|
|
66
132
|
|
|
67
|
-
|
|
68
|
-
|
|
133
|
+
/** @notice The default platform provider payment basis points for all secondary sales royalty
|
|
134
|
+
* revenues, for all new projects. Individual project payment info is defined
|
|
135
|
+
* in each project's ProjectFinance struct.
|
|
136
|
+
* @return The default platform provider payment basis points for secondary sales royalties.
|
|
137
|
+
*/
|
|
138
|
+
function defaultPlatformProviderSecondarySalesBPS()
|
|
69
139
|
external
|
|
70
140
|
view
|
|
71
141
|
returns (uint256);
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* @notice The address of the current split provider being used by the contract.
|
|
145
|
+
* @return The address of the current split provider.
|
|
146
|
+
*/
|
|
147
|
+
function splitProvider() external view returns (ISplitProviderV0);
|
|
72
148
|
}
|
|
@@ -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,91 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
// Created By: Art Blocks Inc.
|
|
3
|
+
|
|
4
|
+
pragma solidity ^0.8.0;
|
|
5
|
+
|
|
6
|
+
interface IGenArt721Minter_PBAB {
|
|
7
|
+
/**
|
|
8
|
+
* @notice Price per token in wei updated for project `_projectId` to
|
|
9
|
+
* `_pricePerTokenInWei`.
|
|
10
|
+
*/
|
|
11
|
+
event PricePerTokenInWeiUpdated(
|
|
12
|
+
uint256 indexed _projectId,
|
|
13
|
+
uint256 indexed _pricePerTokenInWei
|
|
14
|
+
);
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* @notice Currency updated for project `_projectId` to symbol
|
|
18
|
+
* `_currencySymbol` and address `_currencyAddress`.
|
|
19
|
+
*/
|
|
20
|
+
event ProjectCurrencyInfoUpdated(
|
|
21
|
+
uint256 indexed _projectId,
|
|
22
|
+
address indexed _currencyAddress,
|
|
23
|
+
string _currencySymbol
|
|
24
|
+
);
|
|
25
|
+
|
|
26
|
+
/// togglePurchaseToDisabled updated
|
|
27
|
+
event PurchaseToDisabledUpdated(
|
|
28
|
+
uint256 indexed _projectId,
|
|
29
|
+
bool _purchaseToDisabled
|
|
30
|
+
);
|
|
31
|
+
|
|
32
|
+
// getter function of public variable
|
|
33
|
+
function minterType() external view returns (string memory);
|
|
34
|
+
|
|
35
|
+
function genArt721CoreAddress() external returns (address);
|
|
36
|
+
|
|
37
|
+
function minterFilterAddress() external returns (address);
|
|
38
|
+
|
|
39
|
+
// Triggers a purchase of a token from the desired project with ETH, to the
|
|
40
|
+
// TX-sending address.
|
|
41
|
+
function purchase(
|
|
42
|
+
uint256 _projectId
|
|
43
|
+
) external payable returns (uint256 tokenId);
|
|
44
|
+
|
|
45
|
+
// Triggers a purchase of a token from the desired project with ETH or any ERC-20 token, to the
|
|
46
|
+
// TX-sending address.
|
|
47
|
+
function purchase(
|
|
48
|
+
uint256 _projectId,
|
|
49
|
+
uint256 _maxPricePerToken,
|
|
50
|
+
address _currencyAddress
|
|
51
|
+
) external payable returns (uint256 tokenId);
|
|
52
|
+
|
|
53
|
+
// Triggers a purchase of a token from the desired project with ETH, to the specified
|
|
54
|
+
// receiving address.
|
|
55
|
+
function purchaseTo(
|
|
56
|
+
address _to,
|
|
57
|
+
uint256 _projectId
|
|
58
|
+
) external payable returns (uint256 tokenId);
|
|
59
|
+
|
|
60
|
+
// Triggers a purchase of a token from the desired project with ETH or any ERC-20 token, to the specified
|
|
61
|
+
// receiving address.
|
|
62
|
+
function purchaseTo(
|
|
63
|
+
address _to,
|
|
64
|
+
uint256 _projectId,
|
|
65
|
+
uint256 _maxPricePerToken,
|
|
66
|
+
address _currencyAddress
|
|
67
|
+
) external payable returns (uint256 tokenId);
|
|
68
|
+
|
|
69
|
+
// Toggles the ability for `purchaseTo` to be called directly with a
|
|
70
|
+
// specified receiving address that differs from the TX-sending address.
|
|
71
|
+
function togglePurchaseToDisabled(uint256 _projectId) external;
|
|
72
|
+
|
|
73
|
+
// Called to make the minter contract aware of the max invocations for a
|
|
74
|
+
// given project.
|
|
75
|
+
function setProjectMaxInvocations(uint256 _projectId) external;
|
|
76
|
+
|
|
77
|
+
// Gets if token price is configured, token price in wei, currency symbol,
|
|
78
|
+
// and currency address, assuming this is project's minter.
|
|
79
|
+
// Supersedes any defined core price.
|
|
80
|
+
function getPriceInfo(
|
|
81
|
+
uint256 _projectId
|
|
82
|
+
)
|
|
83
|
+
external
|
|
84
|
+
view
|
|
85
|
+
returns (
|
|
86
|
+
bool isConfigured,
|
|
87
|
+
uint256 tokenPriceInWei,
|
|
88
|
+
string memory currencySymbol,
|
|
89
|
+
address currencyAddress
|
|
90
|
+
);
|
|
91
|
+
}
|
|
@@ -10,7 +10,5 @@ interface IPseudorandomAtomic {
|
|
|
10
10
|
* generation process. An example of entropy might be the hash of a core
|
|
11
11
|
* contract's address, and the ID of the token being generated.
|
|
12
12
|
*/
|
|
13
|
-
function getPseudorandomAtomic(
|
|
14
|
-
bytes32 _entropy
|
|
15
|
-
) external view returns (bytes32);
|
|
13
|
+
function getPseudorandomAtomic(bytes32 _entropy) external returns (bytes32);
|
|
16
14
|
}
|
|
@@ -25,4 +25,23 @@ interface ISharedMinterDAExpSettlementV0 is ISharedMinterDAExpV0 {
|
|
|
25
25
|
address coreContract,
|
|
26
26
|
address walletAddress
|
|
27
27
|
) external view returns (uint256 excessSettlementFundsInWei);
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* @notice Reclaims the sender's payment above current settled price for
|
|
31
|
+
* project `projectId` on core contract `coreContract`.
|
|
32
|
+
* The current settled price is the price paid for the most recently
|
|
33
|
+
* purchased token, or the base price if the artist has withdrawn revenues
|
|
34
|
+
* after the auction reached base price.
|
|
35
|
+
* This function is callable at any point, but is expected to typically be
|
|
36
|
+
* called after auction has sold out above base price or after the auction
|
|
37
|
+
* has been purchased at base price. This minimizes the amount of gas
|
|
38
|
+
* required to send all excess settlement funds to the sender.
|
|
39
|
+
* Sends excess settlement funds to msg.sender.
|
|
40
|
+
* @param projectId Project ID to reclaim excess settlement funds on.
|
|
41
|
+
* @param coreContract Contract address of the core contract
|
|
42
|
+
*/
|
|
43
|
+
function reclaimProjectExcessSettlementFunds(
|
|
44
|
+
uint256 projectId,
|
|
45
|
+
address coreContract
|
|
46
|
+
) external;
|
|
28
47
|
}
|
|
@@ -0,0 +1,23 @@
|
|
|
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 ranked auction minting.
|
|
8
|
+
* @author Art Blocks Inc.
|
|
9
|
+
*/
|
|
10
|
+
interface ISharedMinterRAMV0 {
|
|
11
|
+
function createBid(
|
|
12
|
+
uint256 projectId,
|
|
13
|
+
address coreContract,
|
|
14
|
+
uint16 slotIndex
|
|
15
|
+
) external payable;
|
|
16
|
+
|
|
17
|
+
function topUpBid(
|
|
18
|
+
uint256 projectId,
|
|
19
|
+
address coreContract,
|
|
20
|
+
uint32 bidId,
|
|
21
|
+
uint16 newSlotIndex
|
|
22
|
+
) external payable;
|
|
23
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
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 ISharedMinterRequired
|
|
8
|
+
* @notice This interface contains the minimum required interface for a shared
|
|
9
|
+
* minter contract. All custom, one-off minter contracts should implement this
|
|
10
|
+
* interface.
|
|
11
|
+
*/
|
|
12
|
+
interface ISharedMinterRequired {
|
|
13
|
+
// Function returns the minter type, and is called by the MinterFilter for
|
|
14
|
+
// metadata purposes.
|
|
15
|
+
function minterType() external view returns (string memory);
|
|
16
|
+
|
|
17
|
+
// Function returns the minter's associated shared minter filter address,
|
|
18
|
+
// and is called by subgraph indexing service for entity relation purposes.
|
|
19
|
+
function minterFilterAddress() external returns (address);
|
|
20
|
+
}
|
|
@@ -8,8 +8,5 @@ pragma solidity ^0.8.0;
|
|
|
8
8
|
* @author Art Blocks Inc.
|
|
9
9
|
*/
|
|
10
10
|
interface ISharedMinterSEAV0 {
|
|
11
|
-
function createBid(
|
|
12
|
-
uint256 projectId,
|
|
13
|
-
address coreContract
|
|
14
|
-
) external payable;
|
|
11
|
+
function createBid(uint256 tokenId, address coreContract) external payable;
|
|
15
12
|
}
|
|
@@ -3,7 +3,18 @@
|
|
|
3
3
|
|
|
4
4
|
pragma solidity ^0.8.0;
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
import {ISharedMinterRequired} from "./ISharedMinterRequired.sol";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @title ISharedMinterV0
|
|
10
|
+
* @notice This interface extends the minimum required interface for a shared
|
|
11
|
+
* minter contract to add additional functionality that is generally available
|
|
12
|
+
* for all shared minter contracts on the shared minter filter.
|
|
13
|
+
* @dev Custom, one-off minter contracts that are not globally approved may
|
|
14
|
+
* choose to not implement this interface, but should still implement the
|
|
15
|
+
* ISharedMinterRequired interface.
|
|
16
|
+
*/
|
|
17
|
+
interface ISharedMinterV0 is ISharedMinterRequired {
|
|
7
18
|
// Sets the local max invocations for a given project, checking that the provided max invocations is
|
|
8
19
|
// less than or equal to the global max invocations for the project set on the core contract.
|
|
9
20
|
// This does not impact the max invocations value defined on the core contract.
|
|
@@ -20,11 +31,6 @@ interface ISharedMinterV0 {
|
|
|
20
31
|
address coreContract
|
|
21
32
|
) external;
|
|
22
33
|
|
|
23
|
-
// getter function of public variable
|
|
24
|
-
function minterType() external view returns (string memory);
|
|
25
|
-
|
|
26
|
-
function minterFilterAddress() external returns (address);
|
|
27
|
-
|
|
28
34
|
// Gets if token price is configured, token price in wei, currency symbol,
|
|
29
35
|
// and currency address, assuming this is project's minter.
|
|
30
36
|
// Supersedes any defined core price.
|