@artblocks/contracts 1.0.4 → 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 +336 -131
- 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/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV2.sol/MinterDAExpSettlementV2.json +1109 -0
- 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 +565 -209
- package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol/GenArt721CoreV3_Engine_Flex.json +785 -227
- package/artifacts/contracts/engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol/GenArt721CoreV3_Engine_Flex_PROOF.json +40 -15
- 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 +40 -15
- package/artifacts/contracts/engine/V3/forks/PROHIBITION/interfaces/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.sol/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.json +36 -68
- package/artifacts/contracts/engine-registry/CoreRegistryV1.sol/CoreRegistryV1.json +12 -12
- 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/ICoreRegistryV1.sol/ICoreRegistryV1.json +6 -6
- package/artifacts/contracts/interfaces/v0.8.x/IDependencyRegistryV0.sol/IDependencyRegistryV0.json +71 -39
- 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/IMinterFilterV1.sol/IMinterFilterV1.json +22 -22
- package/artifacts/contracts/interfaces/v0.8.x/IPseudorandomAtomic.sol/IPseudorandomAtomic.json +1 -1
- package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDAExpSettlementV0.sol/ISharedMinterDAExpSettlementV0.json +26 -101
- package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDAExpV0.sol/ISharedMinterDAExpV0.json +1 -57
- package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDALinV0.sol/ISharedMinterDALinV0.json +1 -57
- package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDAV0.sol/ISharedMinterDAV0.json +2 -21
- package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterHolderERC20V0.sol/ISharedMinterHolderERC20V0.json +158 -0
- package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterHolderV0.sol/ISharedMinterHolderV0.json +15 -90
- package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterMerkleV0.sol/ISharedMinterMerkleV0.json +10 -36
- 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 +4 -236
- package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterSimplePurchaseV0.sol/ISharedMinterSimplePurchaseV0.json +5 -5
- package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterV0.sol/ISharedMinterV0.json +7 -423
- package/artifacts/contracts/interfaces/v0.8.x/ISharedRandomizerV0.sol/ISharedRandomizerV0.json +17 -17
- 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 +60 -3
- package/artifacts/contracts/libs/v0.8.x/minter-libs/DALib.sol/DALib.json +30 -0
- package/artifacts/contracts/libs/v0.8.x/minter-libs/DALinLib.sol/DALinLib.json +60 -3
- package/artifacts/contracts/libs/v0.8.x/minter-libs/GenericMinterEventsLib.sol/GenericMinterEventsLib.json +346 -0
- package/artifacts/contracts/libs/v0.8.x/minter-libs/MaxInvocationsLib.sol/MaxInvocationsLib.json +29 -3
- package/artifacts/contracts/libs/v0.8.x/minter-libs/MerkleLib.sol/MerkleLib.json +30 -3
- 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 +254 -3
- package/artifacts/contracts/libs/v0.8.x/minter-libs/SetPriceLib.sol/SetPriceLib.json +48 -3
- package/artifacts/contracts/libs/v0.8.x/minter-libs/SettlementExpLib.sol/SettlementExpLib.json +41 -3
- package/artifacts/contracts/libs/v0.8.x/minter-libs/SplitFundsLib.sol/SplitFundsLib.json +35 -3
- package/artifacts/contracts/libs/v0.8.x/minter-libs/TokenHolderLib.sol/TokenHolderLib.json +79 -3
- package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV1.sol/MinterFilterV1.json +2 -2
- package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV2.sol/MinterFilterV2.json +41 -41
- package/artifacts/contracts/minter-suite/Minters/MinterDAExpHolderV5.sol/MinterDAExpHolderV5.json +66 -632
- package/artifacts/contracts/minter-suite/Minters/MinterDAExpSettlementV3.sol/MinterDAExpSettlementV3.json +67 -594
- package/artifacts/contracts/minter-suite/Minters/MinterDAExpV5.sol/MinterDAExpV5.json +33 -524
- package/artifacts/contracts/minter-suite/Minters/MinterDALinHolderV5.sol/MinterDALinHolderV5.json +66 -632
- package/artifacts/contracts/minter-suite/Minters/MinterDALinV5.sol/MinterDALinV5.json +33 -524
- package/artifacts/contracts/minter-suite/Minters/MinterRAMV0.sol/MinterRAMV0.json +1374 -0
- package/artifacts/contracts/minter-suite/Minters/MinterSEAV1.sol/MinterSEAV1.json +56 -722
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20V5.sol/MinterSetPriceERC20V5.json +58 -454
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceHolderV5.sol/MinterSetPriceHolderV5.json +61 -552
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceMerkleV5.sol/MinterSetPriceMerkleV5.json +55 -497
- package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychERC20V5.sol/MinterSetPricePolyptychERC20V5.json +110 -571
- package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychV5.sol/MinterSetPricePolyptychV5.json +69 -560
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceV5.sol/MinterSetPriceV5.json +28 -444
- 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 +4 -9
- 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/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 +136 -0
- package/artifacts/contracts/mock/ReentrancyMerkleMock.sol/ReentrancyMerkleMock.json +2 -2
- package/artifacts/contracts/mock/ReentrancyMerkleMockShared.sol/ReentrancyMerkleMockShared.json +105 -0
- package/artifacts/contracts/mock/ReentrancyMock.sol/ReentrancyMock.json +2 -2
- package/artifacts/contracts/mock/ReentrancyMockShared.sol/ReentrancyMockShared.json +100 -0
- package/artifacts/contracts/mock/ReentrancySEAMock.sol/ReentrancySEAAutoBidderMock.json +2 -2
- package/artifacts/contracts/mock/ReentrancySEAMockShared.sol/ReentrancySEAAutoBidderMockShared.json +69 -0
- 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 +19 -19
- 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 +737 -390
- 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 +9 -62
- 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 +893 -493
- package/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol +1053 -655
- package/contracts/engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol +7 -13
- package/contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol +5 -11
- package/contracts/engine/V3/forks/PROHIBITION/interfaces/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.sol +2 -2
- package/contracts/engine-registry/CoreRegistryV1.sol +58 -65
- 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/ICoreRegistryV1.sol +6 -8
- package/contracts/interfaces/v0.8.x/IDependencyRegistryV0.sol +48 -43
- 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/IMinterFilterV1.sol +25 -25
- package/contracts/interfaces/v0.8.x/IPseudorandomAtomic.sol +1 -3
- package/contracts/interfaces/v0.8.x/ISharedMinterDAExpSettlementV0.sol +30 -20
- package/contracts/interfaces/v0.8.x/ISharedMinterDAExpV0.sol +1 -14
- package/contracts/interfaces/v0.8.x/ISharedMinterDALinV0.sol +1 -15
- package/contracts/interfaces/v0.8.x/ISharedMinterDAV0.sol +2 -8
- package/contracts/interfaces/v0.8.x/ISharedMinterHolderERC20V0.sol +47 -0
- package/contracts/interfaces/v0.8.x/ISharedMinterHolderV0.sol +15 -43
- package/contracts/interfaces/v0.8.x/ISharedMinterMerkleV0.sol +10 -20
- 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 -67
- package/contracts/interfaces/v0.8.x/ISharedMinterSimplePurchaseV0.sol +5 -5
- package/contracts/interfaces/v0.8.x/ISharedMinterV0.sol +18 -160
- package/contracts/interfaces/v0.8.x/ISharedRandomizerV0.sol +37 -37
- 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 +31 -17
- package/contracts/libs/v0.8.x/AuthLib.sol +101 -102
- 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 +5 -5
- 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 +162 -39
- package/contracts/libs/v0.8.x/minter-libs/DALib.sol +26 -0
- package/contracts/libs/v0.8.x/minter-libs/DALinLib.sol +139 -37
- package/contracts/libs/v0.8.x/minter-libs/GenericMinterEventsLib.sol +171 -0
- package/contracts/libs/v0.8.x/minter-libs/MaxInvocationsLib.sol +299 -158
- package/contracts/libs/v0.8.x/minter-libs/MerkleLib.sol +268 -55
- package/contracts/libs/v0.8.x/minter-libs/PolyptychLib.sol +138 -58
- package/contracts/libs/v0.8.x/minter-libs/RAMLib.sol +2927 -0
- package/contracts/libs/v0.8.x/minter-libs/SEALib.sol +796 -123
- package/contracts/libs/v0.8.x/minter-libs/SetPriceLib.sol +131 -13
- package/contracts/libs/v0.8.x/minter-libs/SettlementExpLib.sol +607 -224
- package/contracts/libs/v0.8.x/minter-libs/SplitFundsLib.sol +494 -330
- package/contracts/libs/v0.8.x/minter-libs/TokenHolderLib.sol +217 -78
- package/contracts/minter-suite/MinterFilter/MinterFilterV2.sol +358 -309
- package/contracts/minter-suite/Minters/MinterDAExpHolderV5.sol +391 -491
- package/contracts/minter-suite/Minters/MinterDAExpSettlementV3.sol +396 -632
- package/contracts/minter-suite/Minters/MinterDAExpV5.sol +212 -273
- package/contracts/minter-suite/Minters/MinterDALinHolderV5.sol +393 -488
- package/contracts/minter-suite/Minters/MinterDALinV5.sol +220 -277
- package/contracts/minter-suite/Minters/MinterRAMV0.sol +1205 -0
- package/contracts/minter-suite/Minters/MinterSEAV1.sol +329 -677
- package/contracts/minter-suite/Minters/MinterSetPriceERC20V5.sol +287 -303
- package/contracts/minter-suite/Minters/MinterSetPriceHolderV5.sol +355 -446
- package/contracts/minter-suite/Minters/MinterSetPriceMerkleV5.sol +328 -416
- package/contracts/minter-suite/Minters/MinterSetPricePolyptychERC20V5.sol +552 -622
- package/contracts/minter-suite/Minters/MinterSetPricePolyptychV5.sol +429 -553
- package/contracts/minter-suite/Minters/MinterSetPriceV5.sol +180 -227
- 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/GenArt721CoreV3_Engine_IncorrectCoreType.sol +3 -10
- 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/ReentrancyHolderMockShared.sol +59 -0
- package/contracts/mock/ReentrancyMerkleMockShared.sol +58 -0
- package/contracts/mock/ReentrancyMockShared.sol +48 -0
- package/contracts/mock/ReentrancySEAMockShared.sol +40 -0
- package/contracts/mock/ReentrancySplitterMocks.sol +67 -0
- package/contracts/randomizer/primitive/PseudorandomAtomicBasic.sol +1 -1
- package/contracts/randomizer/shared/SharedRandomizerV0.sol +79 -71
- 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 +79 -45
- 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/MinterDAExpSettlementV2.sol/MinterDAExpSettlementV2.json +0 -1127
- 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/royalty-registry/GenArt721RoyaltyOverride.sol +0 -168
- package/contracts/royalty-registry/GenArt721RoyaltyOverride_PBAB.sol +0 -221
|
@@ -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,71 +8,5 @@ pragma solidity ^0.8.0;
|
|
|
8
8
|
* @author Art Blocks Inc.
|
|
9
9
|
*/
|
|
10
10
|
interface ISharedMinterSEAV0 {
|
|
11
|
-
|
|
12
|
-
* @notice Minimum auction length, in seconds, was updated to be the
|
|
13
|
-
* provided value.
|
|
14
|
-
*/
|
|
15
|
-
event MinAuctionDurationSecondsUpdated(uint256 minAuctionDurationSeconds);
|
|
16
|
-
|
|
17
|
-
/// Admin-controlled time buffer updated
|
|
18
|
-
event MinterTimeBufferUpdated(uint32 minterTimeBufferSeconds);
|
|
19
|
-
|
|
20
|
-
// Admin-controlled refund gas limit updated
|
|
21
|
-
event MinterRefundGasLimitUpdated(uint24 refundGasLimit);
|
|
22
|
-
|
|
23
|
-
/// Artist configured future auction details
|
|
24
|
-
event ConfiguredFutureAuctions(
|
|
25
|
-
uint256 indexed projectId,
|
|
26
|
-
address indexed coreContract,
|
|
27
|
-
uint64 timestampStart,
|
|
28
|
-
uint32 auctionDurationSeconds,
|
|
29
|
-
uint256 basePrice,
|
|
30
|
-
uint8 minBidIncrementPercentage
|
|
31
|
-
);
|
|
32
|
-
|
|
33
|
-
/// New token auction created, token created and sent to minter
|
|
34
|
-
event AuctionInitialized(
|
|
35
|
-
uint256 indexed tokenId,
|
|
36
|
-
address indexed coreContract,
|
|
37
|
-
address indexed bidder,
|
|
38
|
-
uint256 bidAmount,
|
|
39
|
-
uint64 endTime,
|
|
40
|
-
uint8 minBidIncrementPercentage
|
|
41
|
-
);
|
|
42
|
-
|
|
43
|
-
/// Successful bid placed on token auction
|
|
44
|
-
event AuctionBid(
|
|
45
|
-
uint256 indexed tokenId,
|
|
46
|
-
address indexed coreContract,
|
|
47
|
-
address indexed bidder,
|
|
48
|
-
uint256 bidAmount
|
|
49
|
-
);
|
|
50
|
-
|
|
51
|
-
/// Token auction was settled (token distributed to winner)
|
|
52
|
-
event AuctionSettled(
|
|
53
|
-
uint256 indexed tokenId,
|
|
54
|
-
address indexed coreContract,
|
|
55
|
-
address indexed winner,
|
|
56
|
-
uint256 price
|
|
57
|
-
);
|
|
58
|
-
|
|
59
|
-
/// Future auction details for project `projectId` reset
|
|
60
|
-
event ResetAuctionDetails(
|
|
61
|
-
uint256 indexed projectId,
|
|
62
|
-
address indexed coreContract
|
|
63
|
-
);
|
|
64
|
-
|
|
65
|
-
// Next token ID for project `projectId` updated
|
|
66
|
-
event ProjectNextTokenUpdated(
|
|
67
|
-
uint256 indexed projectId,
|
|
68
|
-
address indexed coreContract,
|
|
69
|
-
uint256 tokenId
|
|
70
|
-
);
|
|
71
|
-
|
|
72
|
-
// Next token ID for project `projectId` was ejected from the minter
|
|
73
|
-
// and is no longer populated
|
|
74
|
-
event ProjectNextTokenEjected(
|
|
75
|
-
uint256 indexed projectId,
|
|
76
|
-
address indexed coreContract
|
|
77
|
-
);
|
|
11
|
+
function createBid(uint256 tokenId, address coreContract) external payable;
|
|
78
12
|
}
|
|
@@ -14,15 +14,15 @@ interface ISharedMinterSimplePurchaseV0 {
|
|
|
14
14
|
// Triggers a purchase of a token from the desired project, to the
|
|
15
15
|
// TX-sending address.
|
|
16
16
|
function purchase(
|
|
17
|
-
uint256
|
|
18
|
-
address
|
|
17
|
+
uint256 projectId,
|
|
18
|
+
address coreContract
|
|
19
19
|
) external payable returns (uint256 tokenId);
|
|
20
20
|
|
|
21
21
|
// Triggers a purchase of a token from the desired project, to the specified
|
|
22
22
|
// receiving address.
|
|
23
23
|
function purchaseTo(
|
|
24
|
-
address
|
|
25
|
-
uint256
|
|
26
|
-
address
|
|
24
|
+
address to,
|
|
25
|
+
uint256 projectId,
|
|
26
|
+
address coreContract
|
|
27
27
|
) external payable returns (uint256 tokenId);
|
|
28
28
|
}
|
|
@@ -3,182 +3,40 @@
|
|
|
3
3
|
|
|
4
4
|
pragma solidity ^0.8.0;
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
// This section defines events for generic project minter configuration updates
|
|
8
|
-
/**
|
|
9
|
-
* @dev Strings not supported. Recommend conversion of (short) strings to
|
|
10
|
-
* bytes32 to remain gas-efficient.
|
|
11
|
-
*/
|
|
12
|
-
/**
|
|
13
|
-
* @notice Generic project minter configuration event. Removes key `_key`
|
|
14
|
-
* for project `_projectId`.
|
|
15
|
-
*/
|
|
16
|
-
event ConfigKeyRemoved(
|
|
17
|
-
uint256 indexed _projectId,
|
|
18
|
-
address indexed _coreContract,
|
|
19
|
-
bytes32 _key
|
|
20
|
-
);
|
|
21
|
-
/// BOOL
|
|
22
|
-
/**
|
|
23
|
-
* @notice Generic project minter configuration event. Sets value of key
|
|
24
|
-
* `_key` to `_value` for project `_projectId`.
|
|
25
|
-
*/
|
|
26
|
-
event ConfigValueSet(
|
|
27
|
-
uint256 indexed _projectId,
|
|
28
|
-
address indexed _coreContract,
|
|
29
|
-
bytes32 _key,
|
|
30
|
-
bool _value
|
|
31
|
-
);
|
|
32
|
-
/// UINT256
|
|
33
|
-
/**
|
|
34
|
-
* @notice Generic project minter configuration event. Sets value of key
|
|
35
|
-
* `_key` to `_value` for project `_projectId`.
|
|
36
|
-
*/
|
|
37
|
-
event ConfigValueSet(
|
|
38
|
-
uint256 indexed _projectId,
|
|
39
|
-
address indexed _coreContract,
|
|
40
|
-
bytes32 _key,
|
|
41
|
-
uint256 _value
|
|
42
|
-
);
|
|
43
|
-
/**
|
|
44
|
-
* @notice Generic project minter configuration event. Adds value `_value`
|
|
45
|
-
* to the set of uint256 at key `_key` for project `_projectId`.
|
|
46
|
-
*/
|
|
47
|
-
event ConfigValueAddedToSet(
|
|
48
|
-
uint256 indexed _projectId,
|
|
49
|
-
address indexed _coreContract,
|
|
50
|
-
bytes32 _key,
|
|
51
|
-
uint256 _value
|
|
52
|
-
);
|
|
53
|
-
/**
|
|
54
|
-
* @notice Generic project minter configuration event. Removes value
|
|
55
|
-
* `_value` to the set of uint256 at key `_key` for project `_projectId`.
|
|
56
|
-
*/
|
|
57
|
-
event ConfigValueRemovedFromSet(
|
|
58
|
-
uint256 indexed _projectId,
|
|
59
|
-
address indexed _coreContract,
|
|
60
|
-
bytes32 _key,
|
|
61
|
-
uint256 _value
|
|
62
|
-
);
|
|
63
|
-
/// ADDRESS
|
|
64
|
-
/**
|
|
65
|
-
* @notice Generic project minter configuration event. Sets value of key
|
|
66
|
-
* `_key` to `_value` for project `_projectId`.
|
|
67
|
-
*/
|
|
68
|
-
event ConfigValueSet(
|
|
69
|
-
uint256 indexed _projectId,
|
|
70
|
-
address indexed _coreContract,
|
|
71
|
-
bytes32 _key,
|
|
72
|
-
address _value
|
|
73
|
-
);
|
|
74
|
-
/**
|
|
75
|
-
* @notice Generic project minter configuration event. Adds value `_value`
|
|
76
|
-
* to the set of addresses at key `_key` for project `_projectId`.
|
|
77
|
-
*/
|
|
78
|
-
event ConfigValueAddedToSet(
|
|
79
|
-
uint256 indexed _projectId,
|
|
80
|
-
address indexed _coreContract,
|
|
81
|
-
bytes32 _key,
|
|
82
|
-
address _value
|
|
83
|
-
);
|
|
84
|
-
/**
|
|
85
|
-
* @notice Generic project minter configuration event. Removes value
|
|
86
|
-
* `_value` to the set of addresses at key `_key` for project `_projectId`.
|
|
87
|
-
*/
|
|
88
|
-
event ConfigValueRemovedFromSet(
|
|
89
|
-
uint256 indexed _projectId,
|
|
90
|
-
address indexed _coreContract,
|
|
91
|
-
bytes32 _key,
|
|
92
|
-
address _value
|
|
93
|
-
);
|
|
94
|
-
/// BYTES32
|
|
95
|
-
/**
|
|
96
|
-
* @notice Generic project minter configuration event. Sets value of key
|
|
97
|
-
* `_key` to `_value` for project `_projectId`.
|
|
98
|
-
*/
|
|
99
|
-
event ConfigValueSet(
|
|
100
|
-
uint256 indexed _projectId,
|
|
101
|
-
address indexed _coreContract,
|
|
102
|
-
bytes32 _key,
|
|
103
|
-
bytes32 _value
|
|
104
|
-
);
|
|
105
|
-
/**
|
|
106
|
-
* @notice Generic project minter configuration event. Adds value `_value`
|
|
107
|
-
* to the set of bytes32 at key `_key` for project `_projectId`.
|
|
108
|
-
*/
|
|
109
|
-
event ConfigValueAddedToSet(
|
|
110
|
-
uint256 indexed _projectId,
|
|
111
|
-
address indexed _coreContract,
|
|
112
|
-
bytes32 _key,
|
|
113
|
-
bytes32 _value
|
|
114
|
-
);
|
|
115
|
-
/**
|
|
116
|
-
* @notice Generic project minter configuration event. Removes value
|
|
117
|
-
* `_value` to the set of bytes32 at key `_key` for project `_projectId`.
|
|
118
|
-
*/
|
|
119
|
-
event ConfigValueRemovedFromSet(
|
|
120
|
-
uint256 indexed _projectId,
|
|
121
|
-
address indexed _coreContract,
|
|
122
|
-
bytes32 _key,
|
|
123
|
-
bytes32 _value
|
|
124
|
-
);
|
|
125
|
-
///////////////////////////
|
|
126
|
-
/**
|
|
127
|
-
* @notice Price per token in wei updated for project `_projectId` to
|
|
128
|
-
* `_pricePerTokenInWei`.
|
|
129
|
-
*/
|
|
130
|
-
event PricePerTokenInWeiUpdated(
|
|
131
|
-
uint256 indexed _projectId,
|
|
132
|
-
address indexed _coreContract,
|
|
133
|
-
uint256 indexed _pricePerTokenInWei
|
|
134
|
-
);
|
|
135
|
-
/**
|
|
136
|
-
* @notice Currency updated for project `_projectId` to symbol
|
|
137
|
-
* `_currencySymbol` and address `_currencyAddress`.
|
|
138
|
-
*/
|
|
139
|
-
event ProjectCurrencyInfoUpdated(
|
|
140
|
-
uint256 indexed _projectId,
|
|
141
|
-
address indexed _coreContract,
|
|
142
|
-
address indexed _currencyAddress,
|
|
143
|
-
string _currencySymbol
|
|
144
|
-
);
|
|
145
|
-
/**
|
|
146
|
-
* @notice Local max invocations for project `_projectId`, tied to core contract `_coreContractAddress`,
|
|
147
|
-
* updated to `_maxInvocations`.
|
|
148
|
-
*/
|
|
149
|
-
event ProjectMaxInvocationsLimitUpdated(
|
|
150
|
-
uint256 indexed _projectId,
|
|
151
|
-
address indexed _coreContract,
|
|
152
|
-
uint256 _maxInvocations
|
|
153
|
-
);
|
|
6
|
+
import {ISharedMinterRequired} from "./ISharedMinterRequired.sol";
|
|
154
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 {
|
|
155
18
|
// Sets the local max invocations for a given project, checking that the provided max invocations is
|
|
156
19
|
// less than or equal to the global max invocations for the project set on the core contract.
|
|
157
20
|
// This does not impact the max invocations value defined on the core contract.
|
|
158
21
|
function manuallyLimitProjectMaxInvocations(
|
|
159
|
-
uint256
|
|
160
|
-
address
|
|
161
|
-
uint24
|
|
22
|
+
uint256 projectId,
|
|
23
|
+
address coreContract,
|
|
24
|
+
uint24 maxInvocations
|
|
162
25
|
) external;
|
|
163
26
|
|
|
164
27
|
// Called to make the minter contract aware of the max invocations for a
|
|
165
28
|
// given project.
|
|
166
29
|
function syncProjectMaxInvocationsToCore(
|
|
167
|
-
uint256
|
|
168
|
-
address
|
|
30
|
+
uint256 projectId,
|
|
31
|
+
address coreContract
|
|
169
32
|
) external;
|
|
170
33
|
|
|
171
|
-
// getter function of public variable
|
|
172
|
-
function minterType() external view returns (string memory);
|
|
173
|
-
|
|
174
|
-
function minterFilterAddress() external returns (address);
|
|
175
|
-
|
|
176
34
|
// Gets if token price is configured, token price in wei, currency symbol,
|
|
177
35
|
// and currency address, assuming this is project's minter.
|
|
178
36
|
// Supersedes any defined core price.
|
|
179
37
|
function getPriceInfo(
|
|
180
|
-
uint256
|
|
181
|
-
address
|
|
38
|
+
uint256 projectId,
|
|
39
|
+
address coreContract
|
|
182
40
|
)
|
|
183
41
|
external
|
|
184
42
|
view
|
|
@@ -15,9 +15,9 @@ interface ISharedRandomizerV0 is IRandomizer_V3CoreBase {
|
|
|
15
15
|
);
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
|
-
* @notice Contract at `
|
|
19
|
-
* token hash seeds on core contract `
|
|
20
|
-
* `
|
|
18
|
+
* @notice Contract at `hashSeedSetterContract` allowed to assign
|
|
19
|
+
* token hash seeds on core contract `coreContract` for project
|
|
20
|
+
* `projectId`.
|
|
21
21
|
*/
|
|
22
22
|
event HashSeedSetterForProjectUpdated(
|
|
23
23
|
address indexed coreContract,
|
|
@@ -26,7 +26,7 @@ interface ISharedRandomizerV0 is IRandomizer_V3CoreBase {
|
|
|
26
26
|
);
|
|
27
27
|
|
|
28
28
|
/**
|
|
29
|
-
* @notice Project with ID `
|
|
29
|
+
* @notice Project with ID `projectId` is is or is not using a hash seed
|
|
30
30
|
* setter contract to assign token hash seeds on core contract.
|
|
31
31
|
*/
|
|
32
32
|
event ProjectUsingHashSeedSetterUpdated(
|
|
@@ -39,15 +39,15 @@ interface ISharedRandomizerV0 is IRandomizer_V3CoreBase {
|
|
|
39
39
|
* @notice Allows the artist of a project to set the contract that is
|
|
40
40
|
* allowed to assign hash seeds to tokens. Typically, this is expected to
|
|
41
41
|
* be a minter contract, such as `MinterPolyptychV1`.
|
|
42
|
-
* @param
|
|
43
|
-
* @param
|
|
44
|
-
* @param
|
|
42
|
+
* @param coreContract - the core contract that is being configured
|
|
43
|
+
* @param projectId - the project ID that is being configured
|
|
44
|
+
* @param hashSeedSetterContract - the contract that is allowed to assign
|
|
45
45
|
* hash seeds to tokens
|
|
46
46
|
*/
|
|
47
47
|
function setHashSeedSetterContract(
|
|
48
|
-
address
|
|
49
|
-
uint256
|
|
50
|
-
address
|
|
48
|
+
address coreContract,
|
|
49
|
+
uint256 projectId,
|
|
50
|
+
address hashSeedSetterContract
|
|
51
51
|
) external;
|
|
52
52
|
|
|
53
53
|
/**
|
|
@@ -60,48 +60,48 @@ interface ISharedRandomizerV0 is IRandomizer_V3CoreBase {
|
|
|
60
60
|
* An example use case is where the artist wants to mint a polyptych panel
|
|
61
61
|
* (second, third, etc.) of a project, and therefore wants to re-use
|
|
62
62
|
* specific hash seeds of the original project.
|
|
63
|
-
* @param
|
|
64
|
-
* @param
|
|
63
|
+
* @param coreContract - The address of the core contract
|
|
64
|
+
* @param projectId - The ID of the project to be toggled
|
|
65
65
|
*/
|
|
66
66
|
function toggleProjectUseAssignedHashSeed(
|
|
67
|
-
address
|
|
68
|
-
uint256
|
|
67
|
+
address coreContract,
|
|
68
|
+
uint256 projectId
|
|
69
69
|
) external;
|
|
70
70
|
|
|
71
71
|
/**
|
|
72
72
|
* @notice Pre-set the hash seed for a token. This function is only
|
|
73
73
|
* callable by the hash seed setter contract of the project.
|
|
74
|
-
* @param
|
|
75
|
-
* @param
|
|
76
|
-
* @param
|
|
77
|
-
* @dev Only callable by the hash seed setter contract of `
|
|
74
|
+
* @param coreContract - The address of the core contract of `tokenId`
|
|
75
|
+
* @param tokenId - The ID of the token to set the hash seed for
|
|
76
|
+
* @param hashSeed - The hash seed to set for `tokenId`
|
|
77
|
+
* @dev Only callable by the hash seed setter contract of `coreContract`.
|
|
78
78
|
*/
|
|
79
79
|
function preSetHashSeed(
|
|
80
|
-
address
|
|
81
|
-
uint256
|
|
82
|
-
bytes12
|
|
80
|
+
address coreContract,
|
|
81
|
+
uint256 tokenId,
|
|
82
|
+
bytes12 hashSeed
|
|
83
83
|
) external;
|
|
84
84
|
|
|
85
85
|
/**
|
|
86
|
-
* @notice Boolean representing whether or not project with ID `
|
|
87
|
-
* on core contract `
|
|
86
|
+
* @notice Boolean representing whether or not project with ID `projectId`
|
|
87
|
+
* on core contract `coreContract` is currently using a hash seed setter
|
|
88
88
|
* contract to assign hash seeds to tokens.
|
|
89
89
|
*/
|
|
90
90
|
function projectUsesHashSeedSetter(
|
|
91
|
-
address
|
|
92
|
-
uint256
|
|
93
|
-
) external view returns (bool
|
|
91
|
+
address coreContract,
|
|
92
|
+
uint256 projectId
|
|
93
|
+
) external view returns (bool usingHashSeedSetter);
|
|
94
94
|
|
|
95
95
|
/**
|
|
96
96
|
* Returns the hash seed setter contract for a given core contract.
|
|
97
97
|
* Returns address(0) if no hash seed setter contract is set for the core.
|
|
98
|
-
* @param
|
|
99
|
-
* @param
|
|
98
|
+
* @param coreContract - The address of the core contract
|
|
99
|
+
* @param projectId - The ID of the project to query
|
|
100
100
|
*/
|
|
101
101
|
function hashSeedSetterContracts(
|
|
102
|
-
address
|
|
103
|
-
uint256
|
|
104
|
-
) external view returns (address
|
|
102
|
+
address coreContract,
|
|
103
|
+
uint256 projectId
|
|
104
|
+
) external view returns (address hashSeedSetterContract);
|
|
105
105
|
|
|
106
106
|
/**
|
|
107
107
|
* Returns the current pre-assigned hash seed for a given token ID.
|
|
@@ -112,12 +112,12 @@ interface ISharedRandomizerV0 is IRandomizer_V3CoreBase {
|
|
|
112
112
|
* the hash seed is generated on-chain by the pseudorandom atomic contract
|
|
113
113
|
* and is not stored on-chain in this randomizer contract, and therefore
|
|
114
114
|
* this function will return bytes12(0).
|
|
115
|
-
* @param
|
|
116
|
-
* @param
|
|
117
|
-
* @return
|
|
115
|
+
* @param coreContract - The address of the core contract of `tokenId`
|
|
116
|
+
* @param tokenId - The ID of the token to get the hash seed for
|
|
117
|
+
* @return hashSeed - The stored hash seed for `tokenId`
|
|
118
118
|
*/
|
|
119
119
|
function preAssignedHashSeed(
|
|
120
|
-
address
|
|
121
|
-
uint256
|
|
122
|
-
) external view returns (bytes12
|
|
120
|
+
address coreContract,
|
|
121
|
+
uint256 tokenId
|
|
122
|
+
) external view returns (bytes12 hashSeed);
|
|
123
123
|
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
// Creatd By: Art Blocks Inc.
|
|
3
|
+
|
|
4
|
+
pragma solidity ^0.8.0;
|
|
5
|
+
|
|
6
|
+
import {Split} from "./ISplitAtomicV0.sol";
|
|
7
|
+
|
|
8
|
+
interface ISplitAtomicFactoryV0 {
|
|
9
|
+
/**
|
|
10
|
+
* @notice This contract was deployed.
|
|
11
|
+
* @param implementation address with the implementation of the contract
|
|
12
|
+
* @param type_ type of this contract
|
|
13
|
+
* @param requiredSplitAddress address that must be included in all splits
|
|
14
|
+
* @param requiredSplitBasisPoints basis points that must be included in
|
|
15
|
+
* all splits
|
|
16
|
+
*/
|
|
17
|
+
event Deployed(
|
|
18
|
+
address indexed implementation,
|
|
19
|
+
bytes32 indexed type_,
|
|
20
|
+
address requiredSplitAddress,
|
|
21
|
+
uint16 requiredSplitBasisPoints
|
|
22
|
+
);
|
|
23
|
+
/**
|
|
24
|
+
* @notice New split atomic contract was created.
|
|
25
|
+
* @param splitAtomic address of the newly created split atomic contract
|
|
26
|
+
*/
|
|
27
|
+
event SplitAtomicCreated(address indexed splitAtomic);
|
|
28
|
+
/**
|
|
29
|
+
* @notice This contract was abandoned and no longer can be used to create
|
|
30
|
+
* new split atomic contracts.
|
|
31
|
+
*/
|
|
32
|
+
event Abandoned();
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* @notice Initializes the contract with the provided `splits`.
|
|
36
|
+
* Only callable once.
|
|
37
|
+
* @param splits Splits to configure the contract with. Must add up to
|
|
38
|
+
* 10_000 BPS.
|
|
39
|
+
* @return splitAtomic The address of the newly created split atomic
|
|
40
|
+
* contract
|
|
41
|
+
*/
|
|
42
|
+
function createSplit(
|
|
43
|
+
Split[] calldata splits
|
|
44
|
+
) external returns (address splitAtomic);
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* @notice The implementation contract that is cloned when creating new
|
|
48
|
+
* split atomic contracts.
|
|
49
|
+
*/
|
|
50
|
+
function splitAtomicImplementation() external view returns (address);
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* @notice The address that must be included in all splits.
|
|
54
|
+
*/
|
|
55
|
+
function requiredSplitAddress() external view returns (address);
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* @notice The basis points that must be included in all splits, for the
|
|
59
|
+
* required split address.
|
|
60
|
+
*/
|
|
61
|
+
function requiredSplitBasisPoints() external view returns (uint16);
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* @notice The deployer of the contract.
|
|
65
|
+
*/
|
|
66
|
+
function deployer() external view returns (address);
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* @notice Indicates whether the contract is abandoned.
|
|
70
|
+
* Once abandoned, the contract can no longer be used to create new split
|
|
71
|
+
* atomic contracts.
|
|
72
|
+
* @return bool True if the contract is abandoned, false otherwise.
|
|
73
|
+
*/
|
|
74
|
+
function isAbandoned() external view returns (bool);
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* @notice Indicates the type of the contract, e.g. `SplitAtomicFactoryV0`.
|
|
78
|
+
* @return type_ The type of the contract.
|
|
79
|
+
*/
|
|
80
|
+
function type_() external pure returns (bytes32);
|
|
81
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
// Creatd By: Art Blocks Inc.
|
|
3
|
+
|
|
4
|
+
pragma solidity ^0.8.0;
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* @notice Struct representing a split.
|
|
8
|
+
* @param recipient The address to send funds to.
|
|
9
|
+
* @param basisPoints The basis points to allocate to recipient (1-10_000).
|
|
10
|
+
*/
|
|
11
|
+
struct Split {
|
|
12
|
+
// address to send funds to
|
|
13
|
+
address payable recipient;
|
|
14
|
+
// basis points to allocate to recipient (1-10_000)
|
|
15
|
+
uint16 basisPoints;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
interface ISplitAtomicV0 {
|
|
19
|
+
/**
|
|
20
|
+
* @notice Indicates that the contract has been initialized.
|
|
21
|
+
* @param type_ The type of the contract.
|
|
22
|
+
*/
|
|
23
|
+
event Initialized(bytes32 type_);
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* @notice Indicates that the contract's balance manually was drained of
|
|
27
|
+
* ETH.
|
|
28
|
+
*/
|
|
29
|
+
event DrainedETH();
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* @notice Indicates that the contract's balance manually was drained of
|
|
33
|
+
* ERC20 token at address `ERC20TokenAddress`.
|
|
34
|
+
* @param ERC20TokenAddress The address of the ERC20 token that was
|
|
35
|
+
* drained.
|
|
36
|
+
*/
|
|
37
|
+
event DrainedERC20(address ERC20TokenAddress);
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* @notice Initializes the contract with the provided `splits`.
|
|
41
|
+
* This function should be called atomically, immediately after deployment.
|
|
42
|
+
* Only callable once.
|
|
43
|
+
* @param splits Splits to configure the contract with. Must add up to
|
|
44
|
+
* 10_000 BPS.
|
|
45
|
+
*/
|
|
46
|
+
function initialize(Split[] calldata splits) external;
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* @notice Drains the contract's ETH balance to the configured `splits`.
|
|
50
|
+
* Reverts if not initialized.
|
|
51
|
+
*/
|
|
52
|
+
function drainETH() external;
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* @notice Drains the contract's balance of an input ERC20 token to the
|
|
56
|
+
* configured `splits`. Reverts if not initialized.
|
|
57
|
+
* @param ERC20TokenAddress The address of the ERC20 token to split.
|
|
58
|
+
*/
|
|
59
|
+
function drainERC20(address ERC20TokenAddress) external;
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* @notice Returns the configured `splits`.
|
|
63
|
+
* @return Split[] memory The configured `splits`.
|
|
64
|
+
*/
|
|
65
|
+
function getSplits() external view returns (Split[] memory);
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* @notice Indicates the type of the contract, e.g. `SplitAtomicV0`.
|
|
69
|
+
* @return type_ The type of the contract.
|
|
70
|
+
*/
|
|
71
|
+
function type_() external pure returns (bytes32);
|
|
72
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
// Creatd By: Art Blocks Inc.
|
|
3
|
+
|
|
4
|
+
pragma solidity ^0.8.0;
|
|
5
|
+
|
|
6
|
+
import {ISplitFactoryV2} from "./integration-refs/splits-0x-v2/ISplitFactoryV2.sol";
|
|
7
|
+
|
|
8
|
+
interface ISplitProviderV0 {
|
|
9
|
+
/**
|
|
10
|
+
* @notice SplitInputs struct defines the inputs for requested splitters.
|
|
11
|
+
* It is defined in a way easily communicated from the Art Blocks GenArt721V3 contract,
|
|
12
|
+
* to allow for easy integration and minimal additional bytecode in the GenArt721V3 contract.
|
|
13
|
+
*/
|
|
14
|
+
struct SplitInputs {
|
|
15
|
+
address platformProviderSecondarySalesAddress;
|
|
16
|
+
uint16 platformProviderSecondarySalesBPS;
|
|
17
|
+
address renderProviderSecondarySalesAddress;
|
|
18
|
+
uint16 renderProviderSecondarySalesBPS;
|
|
19
|
+
uint8 artistTotalRoyaltyPercentage;
|
|
20
|
+
address artist;
|
|
21
|
+
address additionalPayee;
|
|
22
|
+
uint8 additionalPayeePercentage;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* @notice Emitted when a new splitter contract is created.
|
|
27
|
+
* @param splitter address of the splitter contract
|
|
28
|
+
*/
|
|
29
|
+
event SplitterCreated(address indexed splitter);
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* @notice Gets or creates an immutable splitter contract at a deterministic address.
|
|
33
|
+
* Splits in the splitter contract are determined by the input split parameters,
|
|
34
|
+
* so we can safely create the splitter contract at a deterministic address (or use
|
|
35
|
+
* the existing splitter contract if it already exists at that address).
|
|
36
|
+
* @dev Uses the 0xSplits v2 implementation to create a splitter contract
|
|
37
|
+
* @param splitInputs The split input parameters.
|
|
38
|
+
* @return splitter The newly created splitter contract address.
|
|
39
|
+
*/
|
|
40
|
+
function getOrCreateSplitter(
|
|
41
|
+
SplitInputs calldata splitInputs
|
|
42
|
+
) external returns (address);
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* @notice Indicates the type of the contract, e.g. `SplitProviderV0`.
|
|
46
|
+
* @return type_ The type of the contract.
|
|
47
|
+
*/
|
|
48
|
+
function type_() external pure returns (bytes32);
|
|
49
|
+
}
|