@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
|
@@ -1,21 +1,23 @@
|
|
|
1
1
|
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
2
|
// Created By: Art Blocks Inc.
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
import "../../interfaces/v0.8.x/ISharedMinterDALinV0.sol";
|
|
8
|
-
import "../../interfaces/v0.8.x/IMinterFilterV1.sol";
|
|
4
|
+
// @dev fixed to specific solidity version for clarity and for more clear
|
|
5
|
+
// source code verification purposes.
|
|
6
|
+
pragma solidity 0.8.19;
|
|
9
7
|
|
|
10
|
-
import "../../
|
|
11
|
-
import "../../
|
|
12
|
-
import "../../
|
|
13
|
-
import "../../
|
|
8
|
+
import {ISharedMinterSimplePurchaseV0} from "../../interfaces/v0.8.x/ISharedMinterSimplePurchaseV0.sol";
|
|
9
|
+
import {ISharedMinterDAV0} from "../../interfaces/v0.8.x/ISharedMinterDAV0.sol";
|
|
10
|
+
import {ISharedMinterV0} from "../../interfaces/v0.8.x/ISharedMinterV0.sol";
|
|
11
|
+
import {ISharedMinterDALinV0} from "../../interfaces/v0.8.x/ISharedMinterDALinV0.sol";
|
|
12
|
+
import {IMinterFilterV1} from "../../interfaces/v0.8.x/IMinterFilterV1.sol";
|
|
14
13
|
|
|
15
|
-
import "
|
|
16
|
-
import "
|
|
14
|
+
import {SplitFundsLib} from "../../libs/v0.8.x/minter-libs/SplitFundsLib.sol";
|
|
15
|
+
import {MaxInvocationsLib} from "../../libs/v0.8.x/minter-libs/MaxInvocationsLib.sol";
|
|
16
|
+
import {DALinLib} from "../../libs/v0.8.x/minter-libs/DALinLib.sol";
|
|
17
|
+
import {AuthLib} from "../../libs/v0.8.x/AuthLib.sol";
|
|
17
18
|
|
|
18
|
-
|
|
19
|
+
import {SafeCast} from "@openzeppelin-4.7/contracts/utils/math/SafeCast.sol";
|
|
20
|
+
import {ReentrancyGuard} from "@openzeppelin-4.5/contracts/security/ReentrancyGuard.sol";
|
|
19
21
|
|
|
20
22
|
/**
|
|
21
23
|
* @title Shared, filtered Minter contract that allows tokens to be minted with
|
|
@@ -48,6 +50,13 @@ pragma solidity 0.8.19;
|
|
|
48
50
|
* ----------------------------------------------------------------------------
|
|
49
51
|
* Additional admin and artist privileged roles may be described on other
|
|
50
52
|
* contracts that this minter integrates with.
|
|
53
|
+
* ----------------------------------------------------------------------------
|
|
54
|
+
* @notice Caution: While Engine projects must be registered on the Art Blocks
|
|
55
|
+
* Core Registry to assign this minter, this minter does not enforce that a
|
|
56
|
+
* project is registered when configured or queried. This is primarily for gas
|
|
57
|
+
* optimization purposes. It is, therefore, possible that fake projects may be
|
|
58
|
+
* configured on this minter, but they will not be able to mint tokens due to
|
|
59
|
+
* checks performed by this minter's Minter Filter.
|
|
51
60
|
*
|
|
52
61
|
* @dev Note that while this minter makes use of `block.timestamp` and it is
|
|
53
62
|
* technically possible that this value is manipulated by block producers, such
|
|
@@ -69,7 +78,7 @@ contract MinterDALinV5 is
|
|
|
69
78
|
address public immutable minterFilterAddress;
|
|
70
79
|
|
|
71
80
|
/// Minter filter this minter may interact with.
|
|
72
|
-
IMinterFilterV1 private immutable
|
|
81
|
+
IMinterFilterV1 private immutable _minterFilter;
|
|
73
82
|
|
|
74
83
|
/// minterType for this minter
|
|
75
84
|
string public constant minterType = "MinterDALinV5";
|
|
@@ -77,230 +86,179 @@ contract MinterDALinV5 is
|
|
|
77
86
|
/// minter version for this minter
|
|
78
87
|
string public constant minterVersion = "v5.0.0";
|
|
79
88
|
|
|
80
|
-
uint256 constant ONE_MILLION = 1_000_000;
|
|
81
89
|
/// Minimum auction length in seconds
|
|
82
90
|
uint256 public minimumAuctionLengthSeconds = 600; // 10 minutes
|
|
83
91
|
|
|
84
|
-
////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
85
|
-
// STATE VARIABLES FOR SplitFundsLib begin here
|
|
86
|
-
////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
87
|
-
|
|
88
|
-
// contractAddress => IsEngineCache
|
|
89
|
-
mapping(address => SplitFundsLib.IsEngineCache) private _isEngineCaches;
|
|
90
|
-
|
|
91
|
-
////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
92
|
-
// STATE VARIABLES FOR SplitFundsLib end here
|
|
93
|
-
////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
94
|
-
|
|
95
|
-
////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
96
|
-
// STATE VARIABLES FOR DALinLib begin here
|
|
97
|
-
////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
98
|
-
|
|
99
|
-
mapping(address => mapping(uint256 => DALinLib.DAProjectConfig))
|
|
100
|
-
private _auctionProjectConfigMapping;
|
|
101
|
-
|
|
102
|
-
////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
103
|
-
// STATE VARIABLES FOR DALinLib end here
|
|
104
|
-
////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
105
|
-
|
|
106
|
-
////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
107
|
-
// STATE VARIABLES FOR MaxInvocationsLib begin here
|
|
108
|
-
////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
109
|
-
|
|
110
|
-
// contractAddress => projectId => max invocations specific project config
|
|
111
|
-
mapping(address => mapping(uint256 => MaxInvocationsLib.MaxInvocationsProjectConfig))
|
|
112
|
-
private _maxInvocationsProjectConfigMapping;
|
|
113
|
-
|
|
114
|
-
////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
115
|
-
// STATE VARIABLES FOR MaxInvocationsLib end here
|
|
116
|
-
////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
117
|
-
|
|
118
92
|
/**
|
|
119
93
|
* @notice Initializes contract to be a Filtered Minter for
|
|
120
|
-
* `
|
|
121
|
-
* @param
|
|
94
|
+
* `minterFilter` minter filter.
|
|
95
|
+
* @param minterFilter Minter filter for which this will be a
|
|
122
96
|
* filtered minter.
|
|
123
97
|
*/
|
|
124
|
-
constructor(address
|
|
125
|
-
minterFilterAddress =
|
|
126
|
-
|
|
127
|
-
emit AuctionMinimumLengthSecondsUpdated(
|
|
98
|
+
constructor(address minterFilter) ReentrancyGuard() {
|
|
99
|
+
minterFilterAddress = minterFilter;
|
|
100
|
+
_minterFilter = IMinterFilterV1(minterFilter);
|
|
101
|
+
emit DALinLib.AuctionMinimumLengthSecondsUpdated(
|
|
102
|
+
minimumAuctionLengthSeconds
|
|
103
|
+
);
|
|
128
104
|
}
|
|
129
105
|
|
|
130
106
|
/**
|
|
131
|
-
* @notice Manually sets the local maximum invocations of project `
|
|
132
|
-
* with the provided `
|
|
133
|
-
* than or equal to the value of project `
|
|
107
|
+
* @notice Manually sets the local maximum invocations of project `projectId`
|
|
108
|
+
* with the provided `maxInvocations`, checking that `maxInvocations` is less
|
|
109
|
+
* than or equal to the value of project `project_id`'s maximum invocations that is
|
|
134
110
|
* set on the core contract.
|
|
135
|
-
* @dev Note that a `
|
|
111
|
+
* @dev Note that a `maxInvocations` of 0 can only be set if the current `invocations`
|
|
136
112
|
* value is also 0 and this would also set `maxHasBeenInvoked` to true, correctly short-circuiting
|
|
137
113
|
* this minter's purchase function, avoiding extra gas costs from the core contract's maxInvocations check.
|
|
138
|
-
* @param
|
|
139
|
-
* @param
|
|
140
|
-
* @param
|
|
114
|
+
* @param projectId Project ID to set the maximum invocations for.
|
|
115
|
+
* @param coreContract Core contract address for the given project.
|
|
116
|
+
* @param maxInvocations Maximum invocations to set for the project.
|
|
141
117
|
*/
|
|
142
118
|
function manuallyLimitProjectMaxInvocations(
|
|
143
|
-
uint256
|
|
144
|
-
address
|
|
145
|
-
uint24
|
|
119
|
+
uint256 projectId,
|
|
120
|
+
address coreContract,
|
|
121
|
+
uint24 maxInvocations
|
|
146
122
|
) external {
|
|
147
123
|
AuthLib.onlyArtist({
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
124
|
+
projectId: projectId,
|
|
125
|
+
coreContract: coreContract,
|
|
126
|
+
sender: msg.sender
|
|
151
127
|
});
|
|
152
128
|
MaxInvocationsLib.manuallyLimitProjectMaxInvocations({
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
maxInvocationsProjectConfig: _maxInvocationsProjectConfigMapping[
|
|
157
|
-
_coreContract
|
|
158
|
-
][_projectId]
|
|
129
|
+
projectId: projectId,
|
|
130
|
+
coreContract: coreContract,
|
|
131
|
+
maxInvocations: maxInvocations
|
|
159
132
|
});
|
|
160
|
-
|
|
161
|
-
emit ProjectMaxInvocationsLimitUpdated(
|
|
162
|
-
_projectId,
|
|
163
|
-
_coreContract,
|
|
164
|
-
_maxInvocations
|
|
165
|
-
);
|
|
166
133
|
}
|
|
167
134
|
|
|
168
135
|
/**
|
|
169
|
-
* @notice Sets auction details for project `
|
|
136
|
+
* @notice Sets auction details for project `projectId`.
|
|
170
137
|
* @dev Note that allowing the artist to set auction details after reaching
|
|
171
138
|
* max invocations effectively grants the artist the ability to set a new
|
|
172
139
|
* auction at any point, since minter-local max invocations can be set by
|
|
173
140
|
* the artist.
|
|
174
|
-
* @param
|
|
175
|
-
* @param
|
|
176
|
-
* @param
|
|
177
|
-
* @param
|
|
178
|
-
* @param
|
|
179
|
-
* @param
|
|
141
|
+
* @param projectId Project ID to set auction details for.
|
|
142
|
+
* @param coreContract Core contract address for the given project.
|
|
143
|
+
* @param auctionTimestampStart Timestamp at which to start the auction.
|
|
144
|
+
* @param auctionTimestampEnd Timestamp at which to end the auction.
|
|
145
|
+
* @param startPrice Price at which to start the auction, in Wei.
|
|
146
|
+
* @param basePrice Resting price of the auction, in Wei.
|
|
180
147
|
* @dev Note that it is intentionally supported here that the configured
|
|
181
148
|
* price may be explicitly set to `0`.
|
|
182
149
|
*/
|
|
183
150
|
function setAuctionDetails(
|
|
184
|
-
uint256
|
|
185
|
-
address
|
|
186
|
-
uint40
|
|
187
|
-
uint40
|
|
188
|
-
uint256
|
|
189
|
-
uint256
|
|
151
|
+
uint256 projectId,
|
|
152
|
+
address coreContract,
|
|
153
|
+
uint40 auctionTimestampStart,
|
|
154
|
+
uint40 auctionTimestampEnd,
|
|
155
|
+
uint256 startPrice,
|
|
156
|
+
uint256 basePrice
|
|
190
157
|
) external {
|
|
191
158
|
AuthLib.onlyArtist({
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
159
|
+
projectId: projectId,
|
|
160
|
+
coreContract: coreContract,
|
|
161
|
+
sender: msg.sender
|
|
195
162
|
});
|
|
196
163
|
// CHECKS
|
|
197
|
-
DALinLib.DAProjectConfig
|
|
198
|
-
storage _auctionProjectConfig = _auctionProjectConfigMapping[
|
|
199
|
-
_coreContract
|
|
200
|
-
][_projectId];
|
|
201
|
-
MaxInvocationsLib.MaxInvocationsProjectConfig
|
|
202
|
-
storage _maxInvocationsProjectConfig = _maxInvocationsProjectConfigMapping[
|
|
203
|
-
_coreContract
|
|
204
|
-
][_projectId];
|
|
205
|
-
|
|
206
164
|
require(
|
|
207
|
-
|
|
208
|
-
|
|
165
|
+
auctionTimestampEnd >=
|
|
166
|
+
auctionTimestampStart + minimumAuctionLengthSeconds,
|
|
209
167
|
"Auction length must be at least minimumAuctionLengthSeconds"
|
|
210
168
|
);
|
|
211
169
|
|
|
212
170
|
// EFFECTS
|
|
213
|
-
bool maxHasBeenInvoked = MaxInvocationsLib.getMaxHasBeenInvoked(
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
DALinLib.setAuctionDetailsLin({
|
|
217
|
-
_DAProjectConfig: _auctionProjectConfig,
|
|
218
|
-
_auctionTimestampStart: _auctionTimestampStart,
|
|
219
|
-
_auctionTimestampEnd: _auctionTimestampEnd,
|
|
220
|
-
_startPrice: _startPrice.toUint88(),
|
|
221
|
-
_basePrice: _basePrice.toUint88(),
|
|
222
|
-
_allowReconfigureAfterStart: maxHasBeenInvoked
|
|
171
|
+
bool maxHasBeenInvoked = MaxInvocationsLib.getMaxHasBeenInvoked({
|
|
172
|
+
projectId: projectId,
|
|
173
|
+
coreContract: coreContract
|
|
223
174
|
});
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
175
|
+
DALinLib.setAuctionDetailsLin({
|
|
176
|
+
projectId: projectId,
|
|
177
|
+
coreContract: coreContract,
|
|
178
|
+
auctionTimestampStart: auctionTimestampStart,
|
|
179
|
+
auctionTimestampEnd: auctionTimestampEnd,
|
|
180
|
+
startPrice: startPrice.toUint88(),
|
|
181
|
+
basePrice: basePrice.toUint88(),
|
|
182
|
+
allowReconfigureAfterStart: maxHasBeenInvoked
|
|
232
183
|
});
|
|
233
184
|
|
|
234
185
|
// sync local max invocations if not initially populated
|
|
235
186
|
// @dev if local max invocations and maxHasBeenInvoked are both
|
|
236
187
|
// initial values, we know they have not been populated.
|
|
237
188
|
if (
|
|
238
|
-
MaxInvocationsLib.maxInvocationsIsUnconfigured(
|
|
239
|
-
|
|
240
|
-
|
|
189
|
+
MaxInvocationsLib.maxInvocationsIsUnconfigured({
|
|
190
|
+
projectId: projectId,
|
|
191
|
+
coreContract: coreContract
|
|
192
|
+
})
|
|
241
193
|
) {
|
|
242
|
-
syncProjectMaxInvocationsToCore(
|
|
194
|
+
MaxInvocationsLib.syncProjectMaxInvocationsToCore({
|
|
195
|
+
projectId: projectId,
|
|
196
|
+
coreContract: coreContract
|
|
197
|
+
});
|
|
243
198
|
}
|
|
244
199
|
}
|
|
245
200
|
|
|
246
201
|
/**
|
|
247
|
-
* @notice Sets minimum auction length to `
|
|
202
|
+
* @notice Sets minimum auction length to `minimumAuctionLengthSeconds`
|
|
248
203
|
* for all projects.
|
|
249
|
-
* @param
|
|
204
|
+
* @param minimumAuctionLengthSeconds_ Minimum auction length in seconds.
|
|
250
205
|
*/
|
|
251
206
|
function setMinimumAuctionLengthSeconds(
|
|
252
|
-
uint256
|
|
207
|
+
uint256 minimumAuctionLengthSeconds_
|
|
253
208
|
) external {
|
|
254
209
|
AuthLib.onlyMinterFilterAdminACL({
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
210
|
+
minterFilterAddress: minterFilterAddress,
|
|
211
|
+
sender: msg.sender,
|
|
212
|
+
contract_: address(this),
|
|
213
|
+
selector: this.setMinimumAuctionLengthSeconds.selector
|
|
259
214
|
});
|
|
260
|
-
minimumAuctionLengthSeconds =
|
|
261
|
-
emit AuctionMinimumLengthSecondsUpdated(
|
|
215
|
+
minimumAuctionLengthSeconds = minimumAuctionLengthSeconds_;
|
|
216
|
+
emit DALinLib.AuctionMinimumLengthSecondsUpdated(
|
|
217
|
+
minimumAuctionLengthSeconds_
|
|
218
|
+
);
|
|
262
219
|
}
|
|
263
220
|
|
|
264
221
|
/**
|
|
265
|
-
* @notice Resets auction details for project `
|
|
222
|
+
* @notice Resets auction details for project `projectId`, zero-ing out all
|
|
266
223
|
* relevant auction fields. Not intended to be used in normal auction
|
|
267
224
|
* operation, but rather only in case of the need to halt an auction.
|
|
268
|
-
* @param
|
|
269
|
-
* @param
|
|
225
|
+
* @param projectId Project ID to set auction details for.
|
|
226
|
+
* @param coreContract Core contract address for the given project.
|
|
270
227
|
*/
|
|
271
228
|
function resetAuctionDetails(
|
|
272
|
-
uint256
|
|
273
|
-
address
|
|
229
|
+
uint256 projectId,
|
|
230
|
+
address coreContract
|
|
274
231
|
) external {
|
|
275
232
|
AuthLib.onlyCoreAdminACL({
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
233
|
+
coreContract: coreContract,
|
|
234
|
+
sender: msg.sender,
|
|
235
|
+
contract_: address(this),
|
|
236
|
+
selector: this.resetAuctionDetails.selector
|
|
280
237
|
});
|
|
281
238
|
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
239
|
+
DALinLib.resetAuctionDetails({
|
|
240
|
+
projectId: projectId,
|
|
241
|
+
coreContract: coreContract
|
|
242
|
+
});
|
|
285
243
|
}
|
|
286
244
|
|
|
287
245
|
/**
|
|
288
|
-
* @notice Purchases a token from project `
|
|
246
|
+
* @notice Purchases a token from project `projectId`.
|
|
289
247
|
* Note: Collectors should not send excessive value with their purchase
|
|
290
248
|
* transaction, because the artist has the ability to change the auction
|
|
291
249
|
* details at any time, including the price.
|
|
292
|
-
* @param
|
|
293
|
-
* @param
|
|
250
|
+
* @param projectId Project ID to mint a token on.
|
|
251
|
+
* @param coreContract Core contract address for the given project.
|
|
294
252
|
* @return tokenId Token ID of minted token
|
|
295
253
|
*/
|
|
296
254
|
function purchase(
|
|
297
|
-
uint256
|
|
298
|
-
address
|
|
255
|
+
uint256 projectId,
|
|
256
|
+
address coreContract
|
|
299
257
|
) external payable returns (uint256 tokenId) {
|
|
300
258
|
tokenId = purchaseTo({
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
259
|
+
to: msg.sender,
|
|
260
|
+
projectId: projectId,
|
|
261
|
+
coreContract: coreContract
|
|
304
262
|
});
|
|
305
263
|
|
|
306
264
|
return tokenId;
|
|
@@ -309,34 +267,38 @@ contract MinterDALinV5 is
|
|
|
309
267
|
// public getter functions
|
|
310
268
|
/**
|
|
311
269
|
* @notice Gets the maximum invocations project configuration.
|
|
312
|
-
* @param
|
|
313
|
-
* @param
|
|
270
|
+
* @param projectId The ID of the project whose data needs to be fetched.
|
|
271
|
+
* @param coreContract The address of the core contract.
|
|
314
272
|
* @return MaxInvocationsLib.MaxInvocationsProjectConfig instance with the
|
|
315
273
|
* configuration data.
|
|
316
274
|
*/
|
|
317
275
|
function maxInvocationsProjectConfig(
|
|
318
|
-
uint256
|
|
319
|
-
address
|
|
276
|
+
uint256 projectId,
|
|
277
|
+
address coreContract
|
|
320
278
|
)
|
|
321
279
|
external
|
|
322
280
|
view
|
|
323
281
|
returns (MaxInvocationsLib.MaxInvocationsProjectConfig memory)
|
|
324
282
|
{
|
|
325
|
-
return
|
|
283
|
+
return
|
|
284
|
+
MaxInvocationsLib.getMaxInvocationsProjectConfig({
|
|
285
|
+
projectId: projectId,
|
|
286
|
+
coreContract: coreContract
|
|
287
|
+
});
|
|
326
288
|
}
|
|
327
289
|
|
|
328
290
|
/**
|
|
329
291
|
* @notice Retrieves the auction parameters for a specific project.
|
|
330
|
-
* @param
|
|
331
|
-
* @param
|
|
292
|
+
* @param projectId The unique identifier for the project.
|
|
293
|
+
* @param coreContract The address of the core contract for the project.
|
|
332
294
|
* @return timestampStart The start timestamp for the auction.
|
|
333
295
|
* @return timestampEnd The end timestamp for the auction.
|
|
334
296
|
* @return startPrice The starting price of the auction.
|
|
335
297
|
* @return basePrice The base price of the auction.
|
|
336
298
|
*/
|
|
337
299
|
function projectAuctionParameters(
|
|
338
|
-
uint256
|
|
339
|
-
address
|
|
300
|
+
uint256 projectId,
|
|
301
|
+
address coreContract
|
|
340
302
|
)
|
|
341
303
|
external
|
|
342
304
|
view
|
|
@@ -347,37 +309,34 @@ contract MinterDALinV5 is
|
|
|
347
309
|
uint256 basePrice
|
|
348
310
|
)
|
|
349
311
|
{
|
|
350
|
-
DALinLib.DAProjectConfig
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
startPrice = _auctionProjectConfig.startPrice;
|
|
357
|
-
basePrice = _auctionProjectConfig.basePrice;
|
|
312
|
+
DALinLib.DAProjectConfig storage auctionProjectConfig = DALinLib
|
|
313
|
+
.getDAProjectConfig(projectId, coreContract);
|
|
314
|
+
timestampStart = auctionProjectConfig.timestampStart;
|
|
315
|
+
timestampEnd = auctionProjectConfig.timestampEnd;
|
|
316
|
+
startPrice = auctionProjectConfig.startPrice;
|
|
317
|
+
basePrice = auctionProjectConfig.basePrice;
|
|
358
318
|
}
|
|
359
319
|
|
|
360
320
|
/**
|
|
361
|
-
* @notice Checks if the specified `
|
|
362
|
-
* @dev This function retrieves the cached value of `
|
|
321
|
+
* @notice Checks if the specified `coreContract` is a valid engine contract.
|
|
322
|
+
* @dev This function retrieves the cached value of `coreContract` from
|
|
363
323
|
* the `isEngineCache` mapping. If the cached value is already set, it
|
|
364
|
-
* returns the cached value. Otherwise, it calls the `
|
|
365
|
-
* function from the `SplitFundsLib` library to check if `
|
|
324
|
+
* returns the cached value. Otherwise, it calls the `getV3CoreIsEngineView`
|
|
325
|
+
* function from the `SplitFundsLib` library to check if `coreContract`
|
|
366
326
|
* is a valid engine contract.
|
|
367
|
-
* @dev This function will revert if the provided `
|
|
327
|
+
* @dev This function will revert if the provided `coreContract` is not
|
|
368
328
|
* a valid Engine or V3 Flagship contract.
|
|
369
|
-
* @param
|
|
370
|
-
* @return bool indicating if `
|
|
329
|
+
* @param coreContract The address of the contract to check.
|
|
330
|
+
* @return bool indicating if `coreContract` is a valid engine contract.
|
|
371
331
|
*/
|
|
372
|
-
function isEngineView(address
|
|
373
|
-
SplitFundsLib.IsEngineCache storage isEngineCache =
|
|
374
|
-
|
|
375
|
-
];
|
|
332
|
+
function isEngineView(address coreContract) external view returns (bool) {
|
|
333
|
+
SplitFundsLib.IsEngineCache storage isEngineCache = SplitFundsLib
|
|
334
|
+
.getIsEngineCacheConfig(coreContract);
|
|
376
335
|
if (isEngineCache.isCached) {
|
|
377
336
|
return isEngineCache.isEngine;
|
|
378
337
|
} else {
|
|
379
|
-
// @dev this calls the non-modifying variant of
|
|
380
|
-
return SplitFundsLib.getV3CoreIsEngineView(
|
|
338
|
+
// @dev this calls the non-state-modifying variant of isEngine
|
|
339
|
+
return SplitFundsLib.getV3CoreIsEngineView(coreContract);
|
|
381
340
|
}
|
|
382
341
|
}
|
|
383
342
|
|
|
@@ -392,17 +351,18 @@ contract MinterDALinV5 is
|
|
|
392
351
|
* possible because the V3 core contract only allows maximum invocations
|
|
393
352
|
* to be reduced, not increased. Based on this rationale, we intentionally
|
|
394
353
|
* do not do input validation in this method as to whether or not the input
|
|
395
|
-
* @param
|
|
396
|
-
* @param
|
|
354
|
+
* @param projectId is an existing project ID.
|
|
355
|
+
* @param coreContract is an existing core contract address.
|
|
397
356
|
*/
|
|
398
357
|
function projectMaxHasBeenInvoked(
|
|
399
|
-
uint256
|
|
400
|
-
address
|
|
358
|
+
uint256 projectId,
|
|
359
|
+
address coreContract
|
|
401
360
|
) external view returns (bool) {
|
|
402
361
|
return
|
|
403
|
-
MaxInvocationsLib.getMaxHasBeenInvoked(
|
|
404
|
-
|
|
405
|
-
|
|
362
|
+
MaxInvocationsLib.getMaxHasBeenInvoked({
|
|
363
|
+
projectId: projectId,
|
|
364
|
+
coreContract: coreContract
|
|
365
|
+
});
|
|
406
366
|
}
|
|
407
367
|
|
|
408
368
|
/**
|
|
@@ -421,26 +381,27 @@ contract MinterDALinV5 is
|
|
|
421
381
|
* increased. When this happens, the minter will enable minting, allowing
|
|
422
382
|
* the core contract to enforce the max invocations check. Based on this
|
|
423
383
|
* rationale, we intentionally do not do input validation in this method as
|
|
424
|
-
* to whether or not the input `
|
|
425
|
-
* @param
|
|
426
|
-
* @param
|
|
384
|
+
* to whether or not the input `projectId` is an existing project ID.
|
|
385
|
+
* @param projectId is an existing project ID.
|
|
386
|
+
* @param coreContract is an existing core contract address.
|
|
427
387
|
*/
|
|
428
388
|
function projectMaxInvocations(
|
|
429
|
-
uint256
|
|
430
|
-
address
|
|
389
|
+
uint256 projectId,
|
|
390
|
+
address coreContract
|
|
431
391
|
) external view returns (uint256) {
|
|
432
392
|
return
|
|
433
|
-
MaxInvocationsLib.getMaxInvocations(
|
|
434
|
-
|
|
435
|
-
|
|
393
|
+
MaxInvocationsLib.getMaxInvocations({
|
|
394
|
+
projectId: projectId,
|
|
395
|
+
coreContract: coreContract
|
|
396
|
+
});
|
|
436
397
|
}
|
|
437
398
|
|
|
438
399
|
/**
|
|
439
400
|
* @notice Gets if price of token is configured, price of minting a
|
|
440
|
-
* token on project `
|
|
401
|
+
* token on project `projectId`, and currency symbol and address to be
|
|
441
402
|
* used as payment. Supersedes any core contract price information.
|
|
442
|
-
* @param
|
|
443
|
-
* @param
|
|
403
|
+
* @param projectId Project ID to get price information for
|
|
404
|
+
* @param coreContract Contract address of the core contract
|
|
444
405
|
* @return isConfigured true only if token price has been configured on
|
|
445
406
|
* this minter
|
|
446
407
|
* @return tokenPriceInWei current price of token on this minter - invalid
|
|
@@ -451,8 +412,8 @@ contract MinterDALinV5 is
|
|
|
451
412
|
* this minter. This minter always returns null address, reserved for ether
|
|
452
413
|
*/
|
|
453
414
|
function getPriceInfo(
|
|
454
|
-
uint256
|
|
455
|
-
address
|
|
415
|
+
uint256 projectId,
|
|
416
|
+
address coreContract
|
|
456
417
|
)
|
|
457
418
|
external
|
|
458
419
|
view
|
|
@@ -463,10 +424,11 @@ contract MinterDALinV5 is
|
|
|
463
424
|
address currencyAddress
|
|
464
425
|
)
|
|
465
426
|
{
|
|
466
|
-
DALinLib.DAProjectConfig
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
427
|
+
DALinLib.DAProjectConfig storage auctionProjectConfig = DALinLib
|
|
428
|
+
.getDAProjectConfig({
|
|
429
|
+
projectId: projectId,
|
|
430
|
+
coreContract: coreContract
|
|
431
|
+
});
|
|
470
432
|
isConfigured = (auctionProjectConfig.startPrice > 0);
|
|
471
433
|
if (!isConfigured) {
|
|
472
434
|
// In the case of unconfigured auction, return price of zero when
|
|
@@ -478,112 +440,93 @@ contract MinterDALinV5 is
|
|
|
478
440
|
// before auction starts.
|
|
479
441
|
tokenPriceInWei = auctionProjectConfig.startPrice;
|
|
480
442
|
} else {
|
|
481
|
-
tokenPriceInWei = DALinLib.getPriceLin(
|
|
443
|
+
tokenPriceInWei = DALinLib.getPriceLin({
|
|
444
|
+
projectId: projectId,
|
|
445
|
+
coreContract: coreContract
|
|
446
|
+
});
|
|
482
447
|
}
|
|
483
448
|
currencySymbol = "ETH";
|
|
484
449
|
currencyAddress = address(0);
|
|
485
450
|
}
|
|
486
451
|
|
|
487
452
|
/**
|
|
488
|
-
* @notice Syncs local maximum invocations of project `
|
|
453
|
+
* @notice Syncs local maximum invocations of project `projectId` based on
|
|
489
454
|
* the value currently defined in the core contract.
|
|
490
|
-
* @param
|
|
491
|
-
* @param
|
|
455
|
+
* @param projectId Project ID to set the maximum invocations for.
|
|
456
|
+
* @param coreContract Core contract address for the given project.
|
|
492
457
|
* @dev this enables gas reduction after maxInvocations have been reached -
|
|
493
458
|
* core contracts shall still enforce a maxInvocation check during mint.
|
|
494
459
|
*/
|
|
495
460
|
function syncProjectMaxInvocationsToCore(
|
|
496
|
-
uint256
|
|
497
|
-
address
|
|
461
|
+
uint256 projectId,
|
|
462
|
+
address coreContract
|
|
498
463
|
) public {
|
|
499
464
|
AuthLib.onlyArtist({
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
465
|
+
projectId: projectId,
|
|
466
|
+
coreContract: coreContract,
|
|
467
|
+
sender: msg.sender
|
|
503
468
|
});
|
|
504
469
|
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
maxInvocationsProjectConfig: _maxInvocationsProjectConfigMapping[
|
|
510
|
-
_coreContract
|
|
511
|
-
][_projectId]
|
|
512
|
-
});
|
|
513
|
-
emit ProjectMaxInvocationsLimitUpdated(
|
|
514
|
-
_projectId,
|
|
515
|
-
_coreContract,
|
|
516
|
-
maxInvocations
|
|
517
|
-
);
|
|
470
|
+
MaxInvocationsLib.syncProjectMaxInvocationsToCore({
|
|
471
|
+
projectId: projectId,
|
|
472
|
+
coreContract: coreContract
|
|
473
|
+
});
|
|
518
474
|
}
|
|
519
475
|
|
|
520
476
|
/**
|
|
521
|
-
* @notice Purchases a token from project `
|
|
522
|
-
* the token's owner to `
|
|
477
|
+
* @notice Purchases a token from project `projectId` and sets
|
|
478
|
+
* the token's owner to `to`.
|
|
523
479
|
* Note: Collectors should not send excessive value with their purchase
|
|
524
480
|
* transaction, because the artist has the ability to change the auction
|
|
525
481
|
* details at any time, including the price.
|
|
526
|
-
* @param
|
|
527
|
-
* @param
|
|
528
|
-
* @param
|
|
482
|
+
* @param to Address to be the new token's owner.
|
|
483
|
+
* @param projectId Project ID to mint a token on.
|
|
484
|
+
* @param coreContract Core contract address for the given project.
|
|
529
485
|
* @return tokenId Token ID of minted token
|
|
530
486
|
*/
|
|
531
487
|
function purchaseTo(
|
|
532
|
-
address
|
|
533
|
-
uint256
|
|
534
|
-
address
|
|
488
|
+
address to,
|
|
489
|
+
uint256 projectId,
|
|
490
|
+
address coreContract
|
|
535
491
|
) public payable nonReentrant returns (uint256 tokenId) {
|
|
536
492
|
// CHECKS
|
|
537
|
-
MaxInvocationsLib
|
|
538
|
-
storage _maxInvocationsProjectConfig = _maxInvocationsProjectConfigMapping[
|
|
539
|
-
_coreContract
|
|
540
|
-
][_projectId];
|
|
541
|
-
|
|
542
|
-
DALinLib.DAProjectConfig
|
|
543
|
-
storage _auctionProjectConfig = _auctionProjectConfigMapping[
|
|
544
|
-
_coreContract
|
|
545
|
-
][_projectId];
|
|
546
|
-
|
|
493
|
+
// pre-mint MaxInvocationsLib checks
|
|
547
494
|
// Note that `maxHasBeenInvoked` is only checked here to reduce gas
|
|
548
495
|
// consumption after a project has been fully minted.
|
|
549
|
-
// `
|
|
496
|
+
// `maxInvocationsProjectConfig.maxHasBeenInvoked` is locally cached to reduce
|
|
550
497
|
// gas consumption, but if not in sync with the core contract's value,
|
|
551
498
|
// the core contract also enforces its own max invocation check during
|
|
552
499
|
// minting.
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
);
|
|
500
|
+
MaxInvocationsLib.preMintChecks({
|
|
501
|
+
projectId: projectId,
|
|
502
|
+
coreContract: coreContract
|
|
503
|
+
});
|
|
557
504
|
|
|
558
505
|
// getPriceLin reverts if auction is unconfigured or has not started
|
|
559
|
-
uint256 pricePerTokenInWei = DALinLib.getPriceLin(
|
|
560
|
-
|
|
561
|
-
|
|
506
|
+
uint256 pricePerTokenInWei = DALinLib.getPriceLin({
|
|
507
|
+
projectId: projectId,
|
|
508
|
+
coreContract: coreContract
|
|
509
|
+
});
|
|
562
510
|
require(msg.value >= pricePerTokenInWei, "Min value to mint req.");
|
|
563
511
|
|
|
564
512
|
// EFFECTS
|
|
565
|
-
tokenId =
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
513
|
+
tokenId = _minterFilter.mint_joo({
|
|
514
|
+
to: to,
|
|
515
|
+
projectId: projectId,
|
|
516
|
+
coreContract: coreContract,
|
|
517
|
+
sender: msg.sender
|
|
570
518
|
});
|
|
571
519
|
|
|
572
|
-
MaxInvocationsLib.
|
|
573
|
-
tokenId,
|
|
574
|
-
|
|
575
|
-
);
|
|
520
|
+
MaxInvocationsLib.validateMintEffectsInvocations({
|
|
521
|
+
tokenId: tokenId,
|
|
522
|
+
coreContract: coreContract
|
|
523
|
+
});
|
|
576
524
|
|
|
577
525
|
// INTERACTIONS
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
SplitFundsLib.splitFundsETH({
|
|
583
|
-
_projectId: _projectId,
|
|
584
|
-
_pricePerTokenInWei: pricePerTokenInWei,
|
|
585
|
-
_coreContract: _coreContract,
|
|
586
|
-
_isEngine: isEngine
|
|
526
|
+
SplitFundsLib.splitFundsETHRefundSender({
|
|
527
|
+
projectId: projectId,
|
|
528
|
+
pricePerTokenInWei: pricePerTokenInWei,
|
|
529
|
+
coreContract: coreContract
|
|
587
530
|
});
|
|
588
531
|
|
|
589
532
|
return tokenId;
|