@artblocks/contracts 1.1.0 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +86 -34
- package/artifacts/contracts/AdminACLV0.sol/AdminACLV0.json +2 -2
- package/artifacts/contracts/AdminACLV1.sol/AdminACLV1.json +2 -2
- package/artifacts/contracts/BytecodeStorageReaders/BytecodeStorageReaderContractV2.sol/BytecodeStorageReaderContractV2.json +201 -0
- package/artifacts/contracts/BytecodeStorageReaders/UniversalBytecodeStorageReader.sol/UniversalBytecodeStorageReader.json +154 -0
- package/artifacts/contracts/BytecodeStorageV2Writer.sol/BytecodeStorageV2Writer.json +87 -0
- package/artifacts/contracts/DependencyRegistryV0.sol/DependencyRegistryV0.json +403 -155
- package/artifacts/contracts/GenArt721CoreV3_Curated.sol/GenArt721CoreV3_Curated.json +2493 -0
- package/artifacts/contracts/OwnedCreate2FactoryV0.sol/OwnedCreate2FactoryV0.json +311 -0
- package/artifacts/contracts/archive/GenArt721CoreV3.sol/GenArt721CoreV3.json +2060 -0
- package/artifacts/contracts/archive/GenArt721CoreV3_Explorations.sol/GenArt721CoreV3_Explorations.json +2034 -0
- package/artifacts/contracts/{minter-suite → archive/minter-suite}/Minters/MinterBase_v0_1_1.sol/MinterBase.json +1 -1
- package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV2.sol/MinterDAExpV2.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV3.sol/MinterDAExpV3.json +2 -2
- package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterDAExp}/MinterDAExpV4.sol/MinterDAExpV4.json +3 -3
- package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol/MinterDAExpSettlementV0.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV1.sol/MinterDAExpSettlementV1.json +2 -2
- package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterDAExpSettlement}/MinterDAExpSettlementV2.sol/MinterDAExpSettlementV2.json +3 -3
- package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV2.sol/MinterDALinV2.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV3.sol/MinterDALinV3.json +2 -2
- package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterDALin}/MinterDALinV4.sol/MinterDALinV4.json +3 -3
- package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV1.sol/MinterHolderV1.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV2.sol/MinterHolderV2.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV3.sol/MinterHolderV3.json +2 -2
- package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterHolder}/MinterHolderV4.sol/MinterHolderV4.json +3 -3
- package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV1.sol/MinterMerkleV1.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV2.sol/MinterMerkleV2.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV3.sol/MinterMerkleV3.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV4.sol/MinterMerkleV4.json +2 -2
- package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterMerkle}/MinterMerkleV5.sol/MinterMerkleV5.json +3 -3
- package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterPolyptych}/MinterPolyptychV0.sol/IGenArt721CoreContractV3WithRandomizer.json +54 -49
- package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterPolyptych}/MinterPolyptychV0.sol/MinterPolyptychV0.json +3 -3
- package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterSEA}/MinterSEAV0.sol/MinterSEAV0.json +3 -3
- package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV2.sol/MinterSetPriceV2.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV3.sol/MinterSetPriceV3.json +2 -2
- package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterSetPrice}/MinterSetPriceV4.sol/MinterSetPriceV4.json +3 -3
- package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V0.sol/MinterSetPriceERC20V0.json +65 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V1.sol/MinterSetPriceERC20V1.json +65 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V2.sol/MinterSetPriceERC20V2.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V3.sol/MinterSetPriceERC20V3.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V4.sol/MinterSetPriceERC20V4.json +807 -0
- package/artifacts/contracts/engine/V2/GenArt721MinterBurner_PBAB.sol/GenArt721MinterBurner_PBAB.json +65 -2
- package/artifacts/contracts/engine/V2/GenArt721Minter_PBAB.sol/GenArt721Minter_PBAB.json +65 -2
- package/artifacts/contracts/engine/V3/EngineFactoryV0.sol/EngineFactoryV0.json +624 -0
- package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine.sol/GenArt721CoreV3_Engine.json +613 -216
- package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol/GenArt721CoreV3_Engine_Flex.json +805 -206
- package/artifacts/contracts/engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol/GenArt721CoreV3_Engine_Flex_PROOF.json +51 -8
- package/artifacts/contracts/engine/V3/forks/PROHIBITION/AdminACLV0_PROHIBITION.sol/AdminACLV0_PROHIBITION.json +2 -2
- package/artifacts/contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol/GenArt721CoreV3_Engine_Flex_PROHIBITION.json +51 -8
- package/artifacts/contracts/engine/V3/forks/PROHIBITION/interfaces/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.sol/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.json +59 -54
- package/artifacts/contracts/engine-registry/CoreRegistryV1.sol/CoreRegistryV1.json +2 -2
- package/artifacts/contracts/generator/AddressChunks.sol/AddressChunks.json +10 -0
- package/artifacts/contracts/generator/GenArt721GeneratorV0.sol/GenArt721GeneratorV0.json +333 -0
- package/artifacts/contracts/generator/GenArt721GeneratorV0.sol/ILegacyGenArt721CoreV2_PBAB_Flex.json +47 -0
- package/artifacts/contracts/interfaces/v0.8.x/IAdminACLV0_Extended.sol/IAdminACLV0_Extended.json +140 -0
- package/artifacts/contracts/interfaces/v0.8.x/IBytecodeStorageReader.sol/IBytecodeStorageReader.json +7 -7
- package/artifacts/contracts/interfaces/v0.8.x/IBytecodeStorageReaderV2.sol/IBytecodeStorageReaderV2.json +130 -0
- package/artifacts/contracts/interfaces/v0.8.x/IBytecodeStorageReader_Base.sol/IBytecodeStorageReader_Base.json +30 -0
- package/artifacts/contracts/interfaces/v0.8.x/ICoreRegistryV1.sol/ICoreRegistryV1.json +13 -0
- package/artifacts/contracts/interfaces/v0.8.x/IDependencyRegistryV0.sol/IDependencyRegistryV0.json +228 -45
- package/artifacts/contracts/interfaces/v0.8.x/IEngineFactoryV0.sol/IEngineFactoryV0.json +283 -0
- package/artifacts/contracts/interfaces/v0.8.x/IFilteredMinterDAExpSettlementV0.sol/IFilteredMinterDAExpSettlementV0.json +12 -12
- package/artifacts/contracts/interfaces/v0.8.x/IFilteredMinterDAExpSettlementV1.sol/IFilteredMinterDAExpSettlementV1.json +12 -12
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3.sol/IGenArt721CoreContractV3.json +53 -48
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Base.sol/IGenArt721CoreContractV3_Base.json +53 -48
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine.sol/IGenArt721CoreContractV3_Engine.json +198 -90
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex.sol/IGenArt721CoreContractV3_Engine_Flex.json +198 -90
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex_PreV3p2.sol/IGenArt721CoreContractV3_Engine_Flex_PreV3p2.json +1065 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_PreV3p2.sol/IGenArt721CoreContractV3_Engine_PreV3p2.json +778 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_ProjectFinance.sol/IGenArt721CoreContractV3_ProjectFinance.json +87 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreProjectScriptV0.sol/IGenArt721CoreProjectScriptV0.json +59 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreProjectScriptV1.sol/IGenArt721CoreProjectScriptV1.json +64 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreTokenHashProviderV0.sol/IGenArt721CoreTokenHashProviderV0.json +30 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreTokenHashProviderV1.sol/IGenArt721CoreTokenHashProviderV1.json +30 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721GeneratorV0.sol/IGenArt721GeneratorV0.json +63 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721Minter_PBAB.sol/IGenArt721Minter_PBAB.json +279 -0
- package/artifacts/contracts/interfaces/v0.8.x/IOwnedCreate2FactoryV0.sol/IOwnedCreate2FactoryV0.json +74 -0
- package/artifacts/contracts/interfaces/v0.8.x/IPseudorandomAtomic.sol/IPseudorandomAtomic.json +1 -1
- package/artifacts/contracts/interfaces/v0.8.x/ISeaDropShimForContract.sol/ISeaDropShimForContract.json +37 -0
- package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDAExpSettlementV0.sol/ISharedMinterDAExpSettlementV0.json +18 -0
- package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterMinPriceV0.sol/ISharedMinterMinPriceV0.json +37 -0
- package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterRAMV0.sol/ISharedMinterRAMV0.json +62 -0
- package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterRequired.sol/ISharedMinterRequired.json +37 -0
- package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterSEAV0.sol/ISharedMinterSEAV0.json +1 -1
- package/artifacts/contracts/interfaces/v0.8.x/ISplitAtomicFactoryV0.sol/ISplitAtomicFactoryV0.json +170 -0
- package/artifacts/contracts/interfaces/v0.8.x/ISplitAtomicV0.sol/ISplitAtomicV0.json +126 -0
- package/artifacts/contracts/interfaces/v0.8.x/ISplitProviderV0.sol/ISplitProviderV0.json +98 -0
- package/artifacts/contracts/interfaces/v0.8.x/IUniversalBytecodeStorageReader.sol/IUniversalBytecodeStorageReader.json +56 -0
- package/artifacts/contracts/interfaces/v0.8.x/integration-refs/OpenSea/ERC721SeaDropStructsErrorsAndEvents.sol/ERC721SeaDropStructsErrorsAndEvents.json +43 -0
- package/artifacts/contracts/interfaces/v0.8.x/integration-refs/OpenSea/INonFungibleSeaDropToken.sol/INonFungibleSeaDropToken.json +715 -0
- package/artifacts/contracts/interfaces/v0.8.x/integration-refs/OpenSea/ISeaDrop.sol/ISeaDrop.json +1571 -0
- package/artifacts/contracts/interfaces/v0.8.x/integration-refs/OpenSea/ISeaDropTokenContractMetadata.sol/ISeaDropTokenContractMetadata.json +345 -0
- package/artifacts/contracts/interfaces/v0.8.x/integration-refs/OpenSea/SeaDropErrorsAndEvents.sol/SeaDropErrorsAndEvents.json +717 -0
- package/artifacts/contracts/interfaces/v0.8.x/integration-refs/splits-0x-v2/ISplitFactoryV2.sol/ISplitFactoryV2.json +123 -0
- package/artifacts/contracts/libs/integration-refs/delegation-registry/DelegationRegistry.sol/DelegationRegistry.json +2 -2
- package/artifacts/contracts/libs/integration-refs/gnosis-safe/GnosisSafeMock.sol/GnosisSafeMock.json +2 -2
- package/artifacts/contracts/libs/integration-refs/gnosis-safe/GnosisSafeProxyFactoryMock.sol/GnosisSafeProxyFactoryMock.json +2 -2
- package/artifacts/contracts/libs/integration-refs/gnosis-safe/MultiSendMock.sol/MultiSendMock.json +2 -2
- package/artifacts/contracts/libs/integration-refs/weth9/weth9.sol/WETH9_.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/ABHelpers.sol/ABHelpers.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/AuthLib.sol/AuthLib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/BitMap.sol/BitMaps256.json +10 -0
- package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV0.sol/BytecodeStorage.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV1.sol/BytecodeStorageReader.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV1.sol/BytecodeStorageWriter.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV2.sol/BytecodeStorageReader.json +214 -0
- package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV2.sol/BytecodeStorageWriter.json +10 -0
- package/artifacts/contracts/libs/v0.8.x/Bytes32Strings.sol/Bytes32Strings.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/DependencyRegistryStorageLib.sol/DependencyRegistryStorageLib.json +10 -0
- package/artifacts/contracts/libs/v0.8.x/ERC721_PackedHashSeed.sol/ERC721_PackedHashSeed.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/ERC721_PackedHashSeedV1.sol/ERC721_PackedHashSeedV1.json +444 -0
- package/artifacts/contracts/libs/v0.8.x/JsonStatic.sol/JsonStatic.json +10 -0
- package/artifacts/contracts/libs/v0.8.x/PackedBools.sol/PackedBools.json +10 -0
- package/artifacts/contracts/libs/v0.8.x/SSTORE2.sol/SSTORE2.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/V3FlexLib.sol/V3FlexLib.json +195 -0
- package/artifacts/contracts/libs/v0.8.x/minter-libs/DAExpLib.sol/DAExpLib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/minter-libs/DALib.sol/DALib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/minter-libs/DALinLib.sol/DALinLib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/minter-libs/GenericMinterEventsLib.sol/GenericMinterEventsLib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/minter-libs/MaxInvocationsLib.sol/MaxInvocationsLib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/minter-libs/MerkleLib.sol/MerkleLib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/minter-libs/MinPriceLib.sol/MinPriceLib.json +24 -0
- package/artifacts/contracts/libs/v0.8.x/minter-libs/PolyptychLib.sol/PolyptychLib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/minter-libs/RAMLib.sol/RAMLib.json +398 -0
- package/artifacts/contracts/libs/v0.8.x/minter-libs/SEALib.sol/SEALib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/minter-libs/SetPriceLib.sol/SetPriceLib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/minter-libs/SettlementExpLib.sol/SettlementExpLib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/minter-libs/SplitFundsLib.sol/SplitFundsLib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/minter-libs/TokenHolderLib.sol/TokenHolderLib.json +2 -2
- package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV1.sol/MinterFilterV1.json +2 -2
- package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV2.sol/MinterFilterV2.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterDAExpHolderV5.sol/MinterDAExpHolderV5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterDAExpSettlementV3.sol/MinterDAExpSettlementV3.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterDAExpV5.sol/MinterDAExpV5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterDALinHolderV5.sol/MinterDALinHolderV5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterDALinV5.sol/MinterDALinV5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterMinPriceMerkleV0.sol/MinterMinPriceMerkleV0.json +664 -0
- package/artifacts/contracts/minter-suite/Minters/MinterMinPriceV0.sol/MinterMinPriceV0.json +387 -0
- package/artifacts/contracts/minter-suite/Minters/MinterRAMV0.sol/MinterRAMV0.json +1374 -0
- package/artifacts/contracts/minter-suite/Minters/MinterSEAV1.sol/MinterSEAV1.json +7 -7
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20V5.sol/MinterSetPriceERC20V5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceHolderV5.sol/MinterSetPriceHolderV5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceMerkleV5.sol/MinterSetPriceMerkleV5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychERC20V5.sol/MinterSetPricePolyptychERC20V5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychV5.sol/MinterSetPricePolyptychV5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceV5.sol/MinterSetPriceV5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/one-off/MinterSetPriceV5_SingleCore.sol/MinterSetPriceV5_SingleCore.json +417 -0
- package/artifacts/contracts/minter-suite/Minters/one-off/SeaDropXArtBlocksShim.sol/SeaDropXArtBlocksShim.json +1206 -0
- package/artifacts/contracts/mock/BytecodeV1LibCallsMock.sol/BytecodeV1LibCallsMock.json +2 -2
- package/artifacts/contracts/mock/BytecodeV2LibCallsMock.sol/BytecodeV2LibCallsMock.json +154 -0
- package/artifacts/contracts/mock/BytecodeV2TextCR_DMock.sol/BytecodeV2TextCR_DMock.json +428 -0
- package/artifacts/contracts/mock/DummySharedMinter.sol/DummySharedMinter.json +2 -2
- package/artifacts/contracts/mock/ERC20Mock.sol/ERC20Mock.json +2 -2
- package/artifacts/contracts/mock/ERC20MockAltDecimals.sol/ERC20MockAltDecimals.json +318 -0
- package/artifacts/contracts/mock/ForceSendMock.sol/ForceSendMock.json +24 -0
- package/artifacts/contracts/mock/GenArt721CoreV3_Engine_IncorrectCoreType.sol/GenArt721CoreV3_Engine_IncorrectCoreType.json +2 -2
- package/artifacts/contracts/mock/Mock0xSplitsV2PullFactory.sol/Mock0xSplitsV2PullFactory.json +149 -0
- package/artifacts/contracts/mock/Mock0xSplitsV2Splitter.sol/Mock0xSplitsV2Splitter.json +99 -0
- package/artifacts/contracts/mock/MockAdminACLV0.sol/MockAdminACLV0Events.json +20 -2
- package/artifacts/contracts/mock/MockAdminACLV0_PROHIBITION.sol/MockAdminACLV0Events_PROHIBITION.json +20 -2
- package/artifacts/contracts/mock/MockFileStore.sol/MockFileStore.json +35 -0
- package/artifacts/contracts/mock/OriginRegisterMock.sol/OriginRegisterMock.json +2 -2
- package/artifacts/contracts/mock/RandomizerV2_NoAssignMock.sol/RandomizerV2_NoAssignMock.json +2 -2
- package/artifacts/contracts/mock/ReentrancyGenArt721MinterMock.sol/ReentrancyGenArt721MinterMock.json +100 -0
- package/artifacts/contracts/mock/ReentrancyHolderMock.sol/ReentrancyHolderMock.json +2 -2
- package/artifacts/contracts/mock/ReentrancyHolderMockShared.sol/ReentrancyHolderMockShared.json +2 -2
- package/artifacts/contracts/mock/ReentrancyMerkleMock.sol/ReentrancyMerkleMock.json +2 -2
- package/artifacts/contracts/mock/ReentrancyMerkleMockShared.sol/ReentrancyMerkleMockShared.json +2 -2
- package/artifacts/contracts/mock/ReentrancyMock.sol/ReentrancyMock.json +2 -2
- package/artifacts/contracts/mock/ReentrancyMockShared.sol/ReentrancyMockShared.json +2 -2
- package/artifacts/contracts/mock/ReentrancySEAMock.sol/ReentrancySEAAutoBidderMock.json +2 -2
- package/artifacts/contracts/mock/ReentrancySEAMockShared.sol/ReentrancySEAAutoBidderMockShared.json +2 -2
- package/artifacts/contracts/mock/ReentrancySplitterMocks.sol/ReentrancySplitterDrainETHMock.json +54 -0
- package/artifacts/contracts/mock/ReentrancySplitterMocks.sol/ReentrancySplitterSendETHMock.json +54 -0
- package/artifacts/contracts/randomizer/deprecated/PolyptychRandomizerV0.sol/BasicPolyptychRandomizerV0.json +2 -2
- package/artifacts/contracts/randomizer/deprecated/RandomizerV2.sol/BasicRandomizerV2.json +2 -2
- package/artifacts/contracts/randomizer/primitive/PseudorandomAtomicBasic.sol/PseudorandomAtomic.json +2 -2
- package/artifacts/contracts/randomizer/shared/SharedRandomizerV0.sol/SharedRandomizerV0.json +2 -2
- package/artifacts/contracts/split/SplitAtomicFactoryV0.sol/SplitAtomicFactoryV0.json +203 -0
- package/artifacts/contracts/split/SplitAtomicV0.sol/SplitAtomicV0.json +168 -0
- package/artifacts/contracts/split/split-provider/SplitProviderV0.sol/SplitProviderV0.json +141 -0
- package/contracts/AdminACLV0.sol +6 -2
- package/contracts/AdminACLV1.sol +2 -2
- package/contracts/BytecodeStorageReaders/BytecodeStorageReaderContractV2.sol +103 -0
- package/contracts/BytecodeStorageReaders/UniversalBytecodeStorageReader.sol +70 -0
- package/contracts/BytecodeStorageV2Writer.sol +69 -0
- package/contracts/DependencyRegistryV0.sol +878 -430
- package/contracts/GenArt721CoreV3_Curated.sol +133 -0
- package/contracts/OwnedCreate2FactoryV0.sol +173 -0
- package/contracts/{GenArt721CoreV3.sol → archive/GenArt721CoreV3.sol} +56 -20
- package/contracts/{explorations → archive}/GenArt721CoreV3_Explorations.sol +49 -13
- package/contracts/{minter-suite → archive/minter-suite}/Minters/MinterBase_v0_1_1.sol +4 -4
- package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterDAExp}/MinterDAExpV4.sol +4 -4
- package/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol +4 -4
- package/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV1.sol +5 -5
- package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterDAExpSettlement}/MinterDAExpSettlementV2.sol +8 -8
- package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterDALin}/MinterDALinV4.sol +4 -4
- package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterHolder}/MinterHolderV4.sol +5 -5
- package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterMerkle}/MinterMerkleV5.sol +5 -5
- package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterPolyptych}/MinterPolyptychV0.sol +7 -7
- package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterSEA}/MinterSEAV0.sol +13 -13
- package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterSetPrice}/MinterSetPriceV4.sol +4 -4
- package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V0.sol +82 -10
- package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V1.sol +82 -10
- package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterSetPriceERC20}/MinterSetPriceERC20V4.sol +88 -21
- package/contracts/engine/V2/GenArt721MinterBurner_PBAB.sol +81 -22
- package/contracts/engine/V2/GenArt721Minter_PBAB.sol +80 -22
- package/contracts/engine/V3/EngineFactoryV0.sol +427 -0
- package/contracts/engine/V3/GenArt721CoreV3_Engine.sol +977 -502
- package/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol +1137 -663
- package/contracts/engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol +3 -3
- package/contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol +1 -1
- package/contracts/engine/V3/forks/PROHIBITION/interfaces/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.sol +2 -2
- package/contracts/generator/AddressChunks.sol +106 -0
- package/contracts/generator/GenArt721GeneratorV0.sol +1094 -0
- package/contracts/generator/scripty-support/Scripty.sol +5 -0
- package/contracts/interfaces/v0.8.x/IAdminACLV0_Extended.sol +20 -0
- package/contracts/interfaces/v0.8.x/IBytecodeStorageReader.sol +34 -36
- package/contracts/interfaces/v0.8.x/IBytecodeStorageReaderV2.sol +25 -0
- package/contracts/interfaces/v0.8.x/IBytecodeStorageReader_Base.sol +20 -0
- package/contracts/interfaces/v0.8.x/ICoreRegistryV1.sol +5 -0
- package/contracts/interfaces/v0.8.x/IDependencyRegistryV0.sol +141 -45
- package/contracts/interfaces/v0.8.x/IEngineFactoryV0.sol +124 -0
- package/contracts/interfaces/v0.8.x/IFilteredMinterDAExpSettlementV0.sol +1 -3
- package/contracts/interfaces/v0.8.x/IFilteredMinterDAExpSettlementV1.sol +1 -3
- package/contracts/interfaces/v0.8.x/IFilteredMinterDAExpV1.sol +1 -3
- package/contracts/interfaces/v0.8.x/IFilteredMinterDALinV1.sol +1 -3
- package/contracts/interfaces/v0.8.x/IFilteredMinterHolderV2.sol +1 -3
- package/contracts/interfaces/v0.8.x/IFilteredMinterMerkleV2.sol +1 -3
- package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Base.sol +126 -11
- package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine.sol +86 -8
- package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex.sol +26 -8
- package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex_PreV3p2.sol +141 -0
- package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_PreV3p2.sol +78 -0
- package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_ProjectFinance.sol +47 -0
- package/contracts/interfaces/v0.8.x/IGenArt721CoreProjectScriptV0.sol +22 -0
- package/contracts/interfaces/v0.8.x/IGenArt721CoreProjectScriptV1.sol +23 -0
- package/contracts/interfaces/v0.8.x/IGenArt721CoreTokenHashProviderV0.sol +11 -0
- package/contracts/interfaces/v0.8.x/IGenArt721CoreTokenHashProviderV1.sol +9 -0
- package/contracts/interfaces/v0.8.x/IGenArt721GeneratorV0.sol +14 -0
- package/contracts/interfaces/v0.8.x/IGenArt721Minter_PBAB.sol +91 -0
- package/contracts/interfaces/v0.8.x/IOwnedCreate2FactoryV0.sol +40 -0
- package/contracts/interfaces/v0.8.x/IPseudorandomAtomic.sol +1 -3
- package/contracts/interfaces/v0.8.x/ISeaDropShimForContract.sol +19 -0
- package/contracts/interfaces/v0.8.x/ISharedMinterDAExpSettlementV0.sol +19 -0
- package/contracts/interfaces/v0.8.x/ISharedMinterMinPriceV0.sol +22 -0
- package/contracts/interfaces/v0.8.x/ISharedMinterRAMV0.sol +23 -0
- package/contracts/interfaces/v0.8.x/ISharedMinterRequired.sol +26 -0
- package/contracts/interfaces/v0.8.x/ISharedMinterSEAV0.sol +1 -4
- package/contracts/interfaces/v0.8.x/ISharedMinterV0.sol +12 -6
- package/contracts/interfaces/v0.8.x/ISplitAtomicFactoryV0.sol +81 -0
- package/contracts/interfaces/v0.8.x/ISplitAtomicV0.sol +72 -0
- package/contracts/interfaces/v0.8.x/ISplitProviderV0.sol +49 -0
- package/contracts/interfaces/v0.8.x/IUniversalBytecodeStorageReader.sol +28 -0
- package/contracts/interfaces/v0.8.x/integration-refs/OpenSea/ERC721SeaDropStructsErrorsAndEvents.sol +58 -0
- package/contracts/interfaces/v0.8.x/integration-refs/OpenSea/INonFungibleSeaDropToken.sol +186 -0
- package/contracts/interfaces/v0.8.x/integration-refs/OpenSea/ISeaDrop.sol +337 -0
- package/contracts/interfaces/v0.8.x/integration-refs/OpenSea/ISeaDropTokenContractMetadata.sol +152 -0
- package/contracts/interfaces/v0.8.x/integration-refs/OpenSea/SeaDropErrorsAndEvents.sol +320 -0
- package/contracts/interfaces/v0.8.x/integration-refs/OpenSea/SeaDropStructs.sol +146 -0
- package/contracts/interfaces/v0.8.x/integration-refs/splits-0x-v2/ISplitFactoryV2.sol +62 -0
- package/contracts/libs/v0.8.x/ABHelpers.sol +18 -4
- package/contracts/libs/v0.8.x/BitMap.sol +112 -0
- package/contracts/libs/v0.8.x/BytecodeStorageV2.sol +593 -0
- package/contracts/libs/v0.8.x/Bytes32Strings.sol +20 -0
- package/contracts/libs/v0.8.x/DependencyRegistryStorageLib.sol +98 -0
- package/contracts/libs/v0.8.x/ERC721_PackedHashSeedV1.sol +591 -0
- package/contracts/libs/v0.8.x/JsonStatic.sol +373 -0
- package/contracts/libs/v0.8.x/PackedBools.sol +42 -0
- package/contracts/libs/v0.8.x/V3FlexLib.sol +597 -0
- package/contracts/libs/v0.8.x/minter-libs/DAExpLib.sol +10 -12
- package/contracts/libs/v0.8.x/minter-libs/DALinLib.sol +4 -9
- package/contracts/libs/v0.8.x/minter-libs/GenericMinterEventsLib.sol +44 -44
- package/contracts/libs/v0.8.x/minter-libs/MaxInvocationsLib.sol +64 -63
- package/contracts/libs/v0.8.x/minter-libs/MerkleLib.sol +14 -10
- package/contracts/libs/v0.8.x/minter-libs/MinPriceLib.sol +64 -0
- package/contracts/libs/v0.8.x/minter-libs/RAMLib.sol +2927 -0
- package/contracts/libs/v0.8.x/minter-libs/SEALib.sol +60 -62
- package/contracts/libs/v0.8.x/minter-libs/SetPriceLib.sol +4 -8
- package/contracts/libs/v0.8.x/minter-libs/SettlementExpLib.sol +92 -89
- package/contracts/libs/v0.8.x/minter-libs/SplitFundsLib.sol +128 -15
- package/contracts/libs/v0.8.x/minter-libs/TokenHolderLib.sol +5 -4
- package/contracts/minter-suite/MinterFilter/MinterFilterV2.sol +16 -10
- package/contracts/minter-suite/Minters/MinterDAExpHolderV5.sol +2 -2
- package/contracts/minter-suite/Minters/MinterDAExpSettlementV3.sol +19 -15
- package/contracts/minter-suite/Minters/MinterDAExpV5.sol +2 -2
- package/contracts/minter-suite/Minters/MinterDALinHolderV5.sol +2 -2
- package/contracts/minter-suite/Minters/MinterDALinV5.sol +2 -2
- package/contracts/minter-suite/Minters/MinterMinPriceMerkleV0.sol +765 -0
- package/contracts/minter-suite/Minters/MinterMinPriceV0.sol +462 -0
- package/contracts/minter-suite/Minters/MinterRAMV0.sol +1205 -0
- package/contracts/minter-suite/Minters/MinterSEAV1.sol +21 -32
- package/contracts/minter-suite/Minters/MinterSetPriceERC20V5.sol +17 -8
- package/contracts/minter-suite/Minters/MinterSetPriceHolderV5.sol +2 -2
- package/contracts/minter-suite/Minters/MinterSetPriceMerkleV5.sol +2 -2
- package/contracts/minter-suite/Minters/MinterSetPricePolyptychERC20V5.sol +23 -9
- package/contracts/minter-suite/Minters/MinterSetPricePolyptychV5.sol +2 -2
- package/contracts/minter-suite/Minters/MinterSetPriceV5.sol +2 -2
- package/contracts/minter-suite/Minters/one-off/MinterSetPriceV5_SingleCore.sol +446 -0
- package/contracts/minter-suite/Minters/one-off/SeaDropXArtBlocksShim.sol +869 -0
- package/contracts/mock/BytecodeV2LibCallsMock.sol +128 -0
- package/contracts/mock/BytecodeV2TextCR_DMock.sol +316 -0
- package/contracts/mock/ERC20MockAltDecimals.sol +31 -0
- package/contracts/mock/ForceSendMock.sol +22 -0
- package/contracts/mock/Mock0xSplitsV2PullFactory.sol +75 -0
- package/contracts/mock/Mock0xSplitsV2Splitter.sol +47 -0
- package/contracts/mock/MockAdminACLV0.sol +21 -0
- package/contracts/mock/MockAdminACLV0_PROHIBITION.sol +21 -0
- package/contracts/mock/MockFileStore.sol +22 -0
- package/contracts/mock/ReentrancyGenArt721MinterMock.sol +47 -0
- package/contracts/mock/ReentrancySplitterMocks.sol +67 -0
- package/contracts/randomizer/primitive/PseudorandomAtomicBasic.sol +1 -1
- package/contracts/randomizer/shared/SharedRandomizerV0.sol +1 -1
- package/contracts/split/SplitAtomicFactoryV0.sol +121 -0
- package/contracts/split/SplitAtomicV0.sol +265 -0
- package/contracts/split/split-provider/SplitProviderV0.sol +201 -0
- package/package.json +66 -36
- package/artifacts/contracts/GenArt721CoreV3.sol/GenArt721CoreV3.json +0 -1965
- package/artifacts/contracts/explorations/GenArt721CoreV3_Explorations.sol/GenArt721CoreV3_Explorations.json +0 -1939
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20V4.sol/MinterSetPriceERC20V4.json +0 -768
- package/artifacts/contracts/royalty-registry/GenArt721RoyaltyOverride.sol/GenArt721RoyaltyOverride.json +0 -208
- package/artifacts/contracts/royalty-registry/GenArt721RoyaltyOverride_PBAB.sol/GenArt721RoyaltyOverride_PBAB.json +0 -301
- package/contracts/archive/readme.md +0 -16
- package/contracts/engine/README.md +0 -21
- package/contracts/royalty-registry/GenArt721RoyaltyOverride.sol +0 -168
- package/contracts/royalty-registry/GenArt721RoyaltyOverride_PBAB.sol +0 -221
package/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol
CHANGED
|
@@ -678,7 +678,7 @@ contract MinterDAExpSettlementV0 is
|
|
|
678
678
|
|
|
679
679
|
/**
|
|
680
680
|
* @notice Reclaims the sender's payment above current settled price for
|
|
681
|
-
* project `_projectId`. The current settled price is the
|
|
681
|
+
* project `_projectId`. The current settled price is the price paid
|
|
682
682
|
* for the most recently purchased token, or the base price if the artist
|
|
683
683
|
* has withdrawn revenues after the auction reached base price.
|
|
684
684
|
* This function is callable at any point, but is expected to typically be
|
|
@@ -694,7 +694,7 @@ contract MinterDAExpSettlementV0 is
|
|
|
694
694
|
|
|
695
695
|
/**
|
|
696
696
|
* @notice Reclaims the sender's payment above current settled price for
|
|
697
|
-
* project `_projectId`. The current settled price is the
|
|
697
|
+
* project `_projectId`. The current settled price is the price paid
|
|
698
698
|
* for the most recently purchased token, or the base price if the artist
|
|
699
699
|
* has withdrawn revenues after the auction reached base price.
|
|
700
700
|
* This function is callable at any point, but is expected to typically be
|
|
@@ -750,7 +750,7 @@ contract MinterDAExpSettlementV0 is
|
|
|
750
750
|
|
|
751
751
|
/**
|
|
752
752
|
* @notice Reclaims the sender's payment above current settled price for
|
|
753
|
-
* projects in `_projectIds`. The current settled price is the
|
|
753
|
+
* projects in `_projectIds`. The current settled price is the price
|
|
754
754
|
* paid for the most recently purchased token, or the base price if the
|
|
755
755
|
* artist has withdrawn revenues after the auction reached base price.
|
|
756
756
|
* This function is callable at any point, but is expected to typically be
|
|
@@ -774,7 +774,7 @@ contract MinterDAExpSettlementV0 is
|
|
|
774
774
|
|
|
775
775
|
/**
|
|
776
776
|
* @notice Reclaims the sender's payment above current settled price for
|
|
777
|
-
* projects in `_projectIds`. The current settled price is the
|
|
777
|
+
* projects in `_projectIds`. The current settled price is the price
|
|
778
778
|
* paid for the most recently purchased token, or the base price if the
|
|
779
779
|
* artist has withdrawn revenues after the auction reached base price.
|
|
780
780
|
* This function is callable at any point, but is expected to typically be
|
package/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV1.sol
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
import "../../../../interfaces/v0.8.x/IGenArt721CoreContractV3_Base.sol";
|
|
5
5
|
import "../../../../interfaces/v0.8.x/IMinterFilterV0.sol";
|
|
6
6
|
import "../../../../interfaces/v0.8.x/IFilteredMinterDAExpSettlementV0.sol";
|
|
7
|
-
import "
|
|
7
|
+
import "../MinterBase_v0_1_1.sol";
|
|
8
8
|
|
|
9
9
|
import "@openzeppelin-4.7/contracts/security/ReentrancyGuard.sol";
|
|
10
10
|
import "@openzeppelin-4.7/contracts/utils/math/SafeCast.sol";
|
|
@@ -688,7 +688,7 @@ contract MinterDAExpSettlementV1 is
|
|
|
688
688
|
|
|
689
689
|
/**
|
|
690
690
|
* @notice Reclaims the sender's payment above current settled price for
|
|
691
|
-
* project `_projectId`. The current settled price is the
|
|
691
|
+
* project `_projectId`. The current settled price is the price paid
|
|
692
692
|
* for the most recently purchased token, or the base price if the artist
|
|
693
693
|
* has withdrawn revenues after the auction reached base price.
|
|
694
694
|
* This function is callable at any point, but is expected to typically be
|
|
@@ -704,7 +704,7 @@ contract MinterDAExpSettlementV1 is
|
|
|
704
704
|
|
|
705
705
|
/**
|
|
706
706
|
* @notice Reclaims the sender's payment above current settled price for
|
|
707
|
-
* project `_projectId`. The current settled price is the
|
|
707
|
+
* project `_projectId`. The current settled price is the price paid
|
|
708
708
|
* for the most recently purchased token, or the base price if the artist
|
|
709
709
|
* has withdrawn revenues after the auction reached base price.
|
|
710
710
|
* This function is callable at any point, but is expected to typically be
|
|
@@ -760,7 +760,7 @@ contract MinterDAExpSettlementV1 is
|
|
|
760
760
|
|
|
761
761
|
/**
|
|
762
762
|
* @notice Reclaims the sender's payment above current settled price for
|
|
763
|
-
* projects in `_projectIds`. The current settled price is the
|
|
763
|
+
* projects in `_projectIds`. The current settled price is the price
|
|
764
764
|
* paid for the most recently purchased token, or the base price if the
|
|
765
765
|
* artist has withdrawn revenues after the auction reached base price.
|
|
766
766
|
* This function is callable at any point, but is expected to typically be
|
|
@@ -784,7 +784,7 @@ contract MinterDAExpSettlementV1 is
|
|
|
784
784
|
|
|
785
785
|
/**
|
|
786
786
|
* @notice Reclaims the sender's payment above current settled price for
|
|
787
|
-
* projects in `_projectIds`. The current settled price is the
|
|
787
|
+
* projects in `_projectIds`. The current settled price is the price
|
|
788
788
|
* paid for the most recently purchased token, or the base price if the
|
|
789
789
|
* artist has withdrawn revenues after the auction reached base price.
|
|
790
790
|
* This function is callable at any point, but is expected to typically be
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
2
|
// Created By: Art Blocks Inc.
|
|
3
3
|
|
|
4
|
-
import "
|
|
5
|
-
import "
|
|
6
|
-
import "
|
|
7
|
-
import "
|
|
4
|
+
import "../../../../interfaces/v0.8.x/IGenArt721CoreContractV3_Base.sol";
|
|
5
|
+
import "../../../../interfaces/v0.8.x/IMinterFilterV0.sol";
|
|
6
|
+
import "../../../../interfaces/v0.8.x/IFilteredMinterDAExpSettlementV1.sol";
|
|
7
|
+
import "../MinterBase_v0_1_1.sol";
|
|
8
8
|
|
|
9
9
|
import "@openzeppelin-4.7/contracts/security/ReentrancyGuard.sol";
|
|
10
10
|
import "@openzeppelin-4.7/contracts/utils/math/SafeCast.sol";
|
|
@@ -727,7 +727,7 @@ contract MinterDAExpSettlementV2 is
|
|
|
727
727
|
|
|
728
728
|
/**
|
|
729
729
|
* @notice Reclaims the sender's payment above current settled price for
|
|
730
|
-
* project `_projectId`. The current settled price is the
|
|
730
|
+
* project `_projectId`. The current settled price is the price paid
|
|
731
731
|
* for the most recently purchased token, or the base price if the artist
|
|
732
732
|
* has withdrawn revenues after the auction reached base price.
|
|
733
733
|
* This function is callable at any point, but is expected to typically be
|
|
@@ -743,7 +743,7 @@ contract MinterDAExpSettlementV2 is
|
|
|
743
743
|
|
|
744
744
|
/**
|
|
745
745
|
* @notice Reclaims the sender's payment above current settled price for
|
|
746
|
-
* project `_projectId`. The current settled price is the
|
|
746
|
+
* project `_projectId`. The current settled price is the price paid
|
|
747
747
|
* for the most recently purchased token, or the base price if the artist
|
|
748
748
|
* has withdrawn revenues after the auction reached base price.
|
|
749
749
|
* This function is callable at any point, but is expected to typically be
|
|
@@ -799,7 +799,7 @@ contract MinterDAExpSettlementV2 is
|
|
|
799
799
|
|
|
800
800
|
/**
|
|
801
801
|
* @notice Reclaims the sender's payment above current settled price for
|
|
802
|
-
* projects in `_projectIds`. The current settled price is the
|
|
802
|
+
* projects in `_projectIds`. The current settled price is the price
|
|
803
803
|
* paid for the most recently purchased token, or the base price if the
|
|
804
804
|
* artist has withdrawn revenues after the auction reached base price.
|
|
805
805
|
* This function is callable at any point, but is expected to typically be
|
|
@@ -823,7 +823,7 @@ contract MinterDAExpSettlementV2 is
|
|
|
823
823
|
|
|
824
824
|
/**
|
|
825
825
|
* @notice Reclaims the sender's payment above current settled price for
|
|
826
|
-
* projects in `_projectIds`. The current settled price is the
|
|
826
|
+
* projects in `_projectIds`. The current settled price is the price
|
|
827
827
|
* paid for the most recently purchased token, or the base price if the
|
|
828
828
|
* artist has withdrawn revenues after the auction reached base price.
|
|
829
829
|
* This function is callable at any point, but is expected to typically be
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
2
|
// Created By: Art Blocks Inc.
|
|
3
3
|
|
|
4
|
-
import "
|
|
5
|
-
import "
|
|
6
|
-
import "
|
|
7
|
-
import "
|
|
4
|
+
import "../../../../interfaces/v0.8.x/IGenArt721CoreContractV3_Base.sol";
|
|
5
|
+
import "../../../../interfaces/v0.8.x/IMinterFilterV0.sol";
|
|
6
|
+
import "../../../../interfaces/v0.8.x/IFilteredMinterDALinV1.sol";
|
|
7
|
+
import "../MinterBase_v0_1_1.sol";
|
|
8
8
|
|
|
9
9
|
import "@openzeppelin-4.5/contracts/security/ReentrancyGuard.sol";
|
|
10
10
|
import "@openzeppelin-4.5/contracts/utils/math/SafeCast.sol";
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
2
|
// Created By: Art Blocks Inc.
|
|
3
3
|
|
|
4
|
-
import "
|
|
5
|
-
import "
|
|
6
|
-
import "
|
|
7
|
-
import "
|
|
8
|
-
import "
|
|
4
|
+
import "../../../../interfaces/v0.8.x/IGenArt721CoreContractV3_Base.sol";
|
|
5
|
+
import "../../../../interfaces/v0.8.x/IMinterFilterV0.sol";
|
|
6
|
+
import "../../../../interfaces/v0.8.x/IFilteredMinterHolderV2.sol";
|
|
7
|
+
import "../MinterBase_v0_1_1.sol";
|
|
8
|
+
import "../../../../interfaces/v0.8.x/IDelegationRegistry.sol";
|
|
9
9
|
|
|
10
10
|
import "@openzeppelin-4.5/contracts/token/ERC721/IERC721.sol";
|
|
11
11
|
import "@openzeppelin-4.5/contracts/security/ReentrancyGuard.sol";
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
2
|
// Created By: Art Blocks Inc.
|
|
3
3
|
|
|
4
|
-
import "
|
|
5
|
-
import "
|
|
6
|
-
import "
|
|
7
|
-
import "
|
|
8
|
-
import "
|
|
4
|
+
import "../../../../interfaces/v0.8.x/IGenArt721CoreContractV3_Base.sol";
|
|
5
|
+
import "../../../../interfaces/v0.8.x/IMinterFilterV0.sol";
|
|
6
|
+
import "../../../../interfaces/v0.8.x/IFilteredMinterMerkleV2.sol";
|
|
7
|
+
import "../../../../interfaces/v0.8.x/IDelegationRegistry.sol";
|
|
8
|
+
import "../MinterBase_v0_1_1.sol";
|
|
9
9
|
|
|
10
10
|
import "@openzeppelin-4.7/contracts/utils/cryptography/MerkleProof.sol";
|
|
11
11
|
import "@openzeppelin-4.7/contracts/token/ERC20/IERC20.sol";
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
2
|
// Created By: Art Blocks Inc.
|
|
3
3
|
|
|
4
|
-
import "
|
|
5
|
-
import "
|
|
6
|
-
import "
|
|
7
|
-
import "
|
|
8
|
-
import "
|
|
9
|
-
import "
|
|
10
|
-
import "
|
|
4
|
+
import "../../../../interfaces/v0.8.x/IGenArt721CoreContractV3_Base.sol";
|
|
5
|
+
import "../../../../interfaces/v0.8.x/IGenArt721CoreContractExposesHashSeed.sol";
|
|
6
|
+
import "../../../../interfaces/v0.8.x/IMinterFilterV0.sol";
|
|
7
|
+
import "../../../../interfaces/v0.8.x/IFilteredMinterHolderV2.sol";
|
|
8
|
+
import "../../../../interfaces/v0.8.x/IRandomizerPolyptychV0.sol";
|
|
9
|
+
import "../../../../interfaces/v0.8.x/IDelegationRegistry.sol";
|
|
10
|
+
import "../MinterBase_v0_1_1.sol";
|
|
11
11
|
|
|
12
12
|
import "@openzeppelin-4.5/contracts/token/ERC721/IERC721.sol";
|
|
13
13
|
import "@openzeppelin-4.5/contracts/security/ReentrancyGuard.sol";
|
package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterSEA}/MinterSEAV0.sol
RENAMED
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
|
|
4
4
|
pragma solidity 0.8.19;
|
|
5
5
|
|
|
6
|
-
import "
|
|
7
|
-
import "
|
|
8
|
-
import "
|
|
9
|
-
import "
|
|
6
|
+
import "../../../../interfaces/v0.8.x/IGenArt721CoreContractV3_Base.sol";
|
|
7
|
+
import "../../../../interfaces/v0.8.x/IMinterFilterV0.sol";
|
|
8
|
+
import "../../../../interfaces/v0.8.x/IFilteredMinterSEAV0.sol";
|
|
9
|
+
import "../MinterBase_v0_1_1.sol";
|
|
10
10
|
|
|
11
11
|
import "@openzeppelin-4.7/contracts/token/ERC721/IERC721.sol";
|
|
12
12
|
import "@openzeppelin-4.7/contracts/security/ReentrancyGuard.sol";
|
|
@@ -119,23 +119,23 @@ contract MinterSEAV0 is ReentrancyGuard, MinterBase, IFilteredMinterSEAV0 {
|
|
|
119
119
|
|
|
120
120
|
// minter-wide, admin-configurable parameters
|
|
121
121
|
// ----------------------------------------
|
|
122
|
-
// minimum
|
|
122
|
+
// minimum initial auction length, in seconds; configurable by admin
|
|
123
123
|
// max uint32 ~= 4.3e9 sec ~= 136 years
|
|
124
124
|
// @dev enforced only when artist configures a project
|
|
125
125
|
// @dev default to 10 minutes
|
|
126
126
|
uint32 minAuctionDurationSeconds = 600;
|
|
127
|
-
// maximum
|
|
127
|
+
// maximum initial auction length, in seconds; configurable by admin
|
|
128
128
|
// @dev enforced only when artist configures a project
|
|
129
129
|
// @dev default to 1 month (1/12 of a year)
|
|
130
130
|
uint32 maxAuctionDurationSeconds = 2_629_746;
|
|
131
131
|
// the minimum percent increase for new bids above the current bid
|
|
132
|
-
//
|
|
132
|
+
// configurable by admin
|
|
133
133
|
// max uint8 ~= 255, > 100 percent
|
|
134
134
|
// @dev used when determining the increment percentage for any new bid on
|
|
135
135
|
// the minter, across all projects
|
|
136
136
|
uint8 minterMinBidIncrementPercentage = 5;
|
|
137
137
|
// minimum time remaining in auction after a new bid is placed
|
|
138
|
-
//
|
|
138
|
+
// configurable by admin
|
|
139
139
|
// max uint32 ~= 4.3e9 sec ~= 136 years
|
|
140
140
|
// @dev used when determining the buffer time for any new bid on the
|
|
141
141
|
// minter, across all projects
|
|
@@ -406,7 +406,7 @@ contract MinterSEAV0 is ReentrancyGuard, MinterBase, IFilteredMinterSEAV0 {
|
|
|
406
406
|
* @param _projectId Project ID to set future auction details for.
|
|
407
407
|
* @param _timestampStart Timestamp after which new auctions may be
|
|
408
408
|
* started. Note that this is not the timestamp of the auction start, but
|
|
409
|
-
* rather the timestamp after which
|
|
409
|
+
* rather the timestamp after which an auction may be started. Also note
|
|
410
410
|
* that the passed value here must either be in the future, or `0` (which
|
|
411
411
|
* indicates that auctions are immediately startable).
|
|
412
412
|
* @param _auctionDurationSeconds Duration of new auctions, in seconds,
|
|
@@ -499,7 +499,7 @@ contract MinterSEAV0 is ReentrancyGuard, MinterBase, IFilteredMinterSEAV0 {
|
|
|
499
499
|
* has a "next token" assigned to a project, but the project has been reset
|
|
500
500
|
* via `resetAuctionDetails`, and the artist does not want an auction to be
|
|
501
501
|
* started for the "next token". This function also protects against the
|
|
502
|
-
*
|
|
502
|
+
* unforeseen case where the minter is in an unexpected state where it has a
|
|
503
503
|
* "next token" assigned to a project, but for some reason the project is
|
|
504
504
|
* unable to begin a new auction due to a bug.
|
|
505
505
|
* @dev only a single token may be actively assigned to a project's "next
|
|
@@ -541,11 +541,11 @@ contract MinterSEAV0 is ReentrancyGuard, MinterBase, IFilteredMinterSEAV0 {
|
|
|
541
541
|
|
|
542
542
|
/**
|
|
543
543
|
* @notice Emergency, Artist-only function that attempts to mint a new
|
|
544
|
-
* token and set it as the
|
|
544
|
+
* token and set it as the next token to be auctioned for project
|
|
545
545
|
* `_projectId`.
|
|
546
|
-
* Note: This function is only included for emergency,
|
|
546
|
+
* Note: This function is only included for emergency, unforeseen use cases,
|
|
547
547
|
* and should not be used in normal operation. It is here only for
|
|
548
|
-
* redundant protection against an
|
|
548
|
+
* redundant protection against an unforeseen edge case where the minter
|
|
549
549
|
* does not have a populated "next token", but there are still invocations
|
|
550
550
|
* remaining on the project.
|
|
551
551
|
* This function reverts if the project is not configured on this minter.
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
2
|
// Created By: Art Blocks Inc.
|
|
3
3
|
|
|
4
|
-
import "
|
|
5
|
-
import "
|
|
6
|
-
import "
|
|
7
|
-
import "
|
|
4
|
+
import "../../../../interfaces/v0.8.x/IGenArt721CoreContractV3_Base.sol";
|
|
5
|
+
import "../../../../interfaces/v0.8.x/IMinterFilterV0.sol";
|
|
6
|
+
import "../../../../interfaces/v0.8.x/IFilteredMinterV2.sol";
|
|
7
|
+
import "../MinterBase_v0_1_1.sol";
|
|
8
8
|
|
|
9
9
|
import "@openzeppelin-4.5/contracts/security/ReentrancyGuard.sol";
|
|
10
10
|
|
package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V0.sol
CHANGED
|
@@ -231,19 +231,46 @@ contract MinterSetPriceERC20V0 is ReentrancyGuard, IFilteredMinterV0 {
|
|
|
231
231
|
}
|
|
232
232
|
|
|
233
233
|
/**
|
|
234
|
-
* @notice Purchases a token from project `_projectId
|
|
234
|
+
* @notice Purchases a token from project `_projectId` with ETH.
|
|
235
235
|
* @param _projectId Project ID to mint a token on.
|
|
236
236
|
* @return tokenId Token ID of minted token
|
|
237
237
|
*/
|
|
238
238
|
function purchase(
|
|
239
239
|
uint256 _projectId
|
|
240
240
|
) external payable returns (uint256 tokenId) {
|
|
241
|
-
|
|
241
|
+
// pass max price as msg.value, currency address as ETH
|
|
242
|
+
tokenId = purchaseTo({
|
|
243
|
+
_to: msg.sender,
|
|
244
|
+
_projectId: _projectId,
|
|
245
|
+
_maxPricePerToken: msg.value,
|
|
246
|
+
_currencyAddress: address(0)
|
|
247
|
+
});
|
|
242
248
|
return tokenId;
|
|
243
249
|
}
|
|
244
250
|
|
|
245
251
|
/**
|
|
246
|
-
* @notice Purchases a token from project `_projectId`
|
|
252
|
+
* @notice Purchases a token from project `_projectId` with ETH or any ERC-20 token.
|
|
253
|
+
* @param _projectId Project ID to mint a token on.
|
|
254
|
+
* @param _maxPricePerToken Maximum price of token being allowed by the purchaser, no decimal places.
|
|
255
|
+
* @param _currencyAddress Currency address of token. `address(0)` if minting with ETH.
|
|
256
|
+
* @return tokenId Token ID of minted token
|
|
257
|
+
*/
|
|
258
|
+
function purchase(
|
|
259
|
+
uint256 _projectId,
|
|
260
|
+
uint256 _maxPricePerToken,
|
|
261
|
+
address _currencyAddress
|
|
262
|
+
) external payable returns (uint256 tokenId) {
|
|
263
|
+
tokenId = purchaseTo({
|
|
264
|
+
_to: msg.sender,
|
|
265
|
+
_projectId: _projectId,
|
|
266
|
+
_maxPricePerToken: _maxPricePerToken,
|
|
267
|
+
_currencyAddress: _currencyAddress
|
|
268
|
+
});
|
|
269
|
+
return tokenId;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
/**
|
|
273
|
+
* @notice Purchases a token from project `_projectId` with ETH and sets
|
|
247
274
|
* the token's owner to `_to`.
|
|
248
275
|
* @param _to Address to be the new token's owner.
|
|
249
276
|
* @param _projectId Project ID to mint a token on.
|
|
@@ -252,6 +279,31 @@ contract MinterSetPriceERC20V0 is ReentrancyGuard, IFilteredMinterV0 {
|
|
|
252
279
|
function purchaseTo(
|
|
253
280
|
address _to,
|
|
254
281
|
uint256 _projectId
|
|
282
|
+
) public payable returns (uint256 tokenId) {
|
|
283
|
+
// pass max price as msg.value, currency address as ETH
|
|
284
|
+
return
|
|
285
|
+
purchaseTo({
|
|
286
|
+
_to: _to,
|
|
287
|
+
_projectId: _projectId,
|
|
288
|
+
_maxPricePerToken: msg.value,
|
|
289
|
+
_currencyAddress: address(0)
|
|
290
|
+
});
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
/**
|
|
294
|
+
* @notice Purchases a token from project `_projectId` with ETH or any ERC-20 token and sets
|
|
295
|
+
* the token's owner to `_to`.
|
|
296
|
+
* @param _to Address to be the new token's owner.
|
|
297
|
+
* @param _projectId Project ID to mint a token on.
|
|
298
|
+
* @param _maxPricePerToken Maximum price of token being allowed by the purchaser, no decimal places. Required if currency is ERC20.
|
|
299
|
+
* @param _currencyAddress Currency address of token. `address(0)` if minting with ETH.
|
|
300
|
+
* @return tokenId Token ID of minted token
|
|
301
|
+
*/
|
|
302
|
+
function purchaseTo(
|
|
303
|
+
address _to,
|
|
304
|
+
uint256 _projectId,
|
|
305
|
+
uint256 _maxPricePerToken,
|
|
306
|
+
address _currencyAddress
|
|
255
307
|
) public payable nonReentrant returns (uint256 tokenId) {
|
|
256
308
|
// CHECKS
|
|
257
309
|
require(
|
|
@@ -265,6 +317,22 @@ contract MinterSetPriceERC20V0 is ReentrancyGuard, IFilteredMinterV0 {
|
|
|
265
317
|
"Price not configured"
|
|
266
318
|
);
|
|
267
319
|
|
|
320
|
+
uint256 pricePerTokenInWei = projectIdToPricePerTokenInWei[_projectId];
|
|
321
|
+
address configuredCurrencyAddress = projectIdToCurrencyAddress[
|
|
322
|
+
_projectId
|
|
323
|
+
];
|
|
324
|
+
|
|
325
|
+
// validate that the currency address matches the project configured currency
|
|
326
|
+
require(
|
|
327
|
+
_currencyAddress == configuredCurrencyAddress,
|
|
328
|
+
"Currency addresses must match"
|
|
329
|
+
);
|
|
330
|
+
|
|
331
|
+
// if configured currency is ETH validate that msg.value is the same as max price per token
|
|
332
|
+
if (configuredCurrencyAddress == address(0)) {
|
|
333
|
+
require(msg.value == _maxPricePerToken, "inconsistent msg.value");
|
|
334
|
+
}
|
|
335
|
+
|
|
268
336
|
// if contract filter is off, allow calls from another contract
|
|
269
337
|
if (!contractMintable[_projectId]) {
|
|
270
338
|
require(msg.sender == tx.origin, "No Contract Buys");
|
|
@@ -300,28 +368,32 @@ contract MinterSetPriceERC20V0 is ReentrancyGuard, IFilteredMinterV0 {
|
|
|
300
368
|
}
|
|
301
369
|
|
|
302
370
|
// INTERACTIONS
|
|
303
|
-
if (
|
|
371
|
+
if (configuredCurrencyAddress != address(0)) {
|
|
372
|
+
// validate that the specified maximum price is greater than or equal to the price per token
|
|
373
|
+
require(
|
|
374
|
+
_maxPricePerToken >= pricePerTokenInWei,
|
|
375
|
+
"Only max price gte token price"
|
|
376
|
+
);
|
|
304
377
|
require(
|
|
305
378
|
msg.value == 0,
|
|
306
379
|
"this project accepts a different currency and cannot accept ETH"
|
|
307
380
|
);
|
|
308
381
|
require(
|
|
309
|
-
IERC20(
|
|
382
|
+
IERC20(configuredCurrencyAddress).allowance(
|
|
310
383
|
msg.sender,
|
|
311
384
|
address(this)
|
|
312
|
-
) >=
|
|
385
|
+
) >= pricePerTokenInWei,
|
|
313
386
|
"Insufficient Funds Approved for TX"
|
|
314
387
|
);
|
|
315
388
|
require(
|
|
316
|
-
IERC20(
|
|
317
|
-
|
|
318
|
-
) >= projectIdToPricePerTokenInWei[_projectId],
|
|
389
|
+
IERC20(configuredCurrencyAddress).balanceOf(msg.sender) >=
|
|
390
|
+
pricePerTokenInWei,
|
|
319
391
|
"Insufficient balance."
|
|
320
392
|
);
|
|
321
393
|
_splitFundsERC20(_projectId);
|
|
322
394
|
} else {
|
|
323
395
|
require(
|
|
324
|
-
msg.value >=
|
|
396
|
+
msg.value >= pricePerTokenInWei,
|
|
325
397
|
"Must send minimum value to mint!"
|
|
326
398
|
);
|
|
327
399
|
_splitFundsETH(_projectId);
|
package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V1.sol
CHANGED
|
@@ -193,19 +193,46 @@ contract MinterSetPriceERC20V1 is ReentrancyGuard, IFilteredMinterV0 {
|
|
|
193
193
|
}
|
|
194
194
|
|
|
195
195
|
/**
|
|
196
|
-
* @notice Purchases a token from project `_projectId
|
|
196
|
+
* @notice Purchases a token from project `_projectId` with ETH.
|
|
197
197
|
* @param _projectId Project ID to mint a token on.
|
|
198
198
|
* @return tokenId Token ID of minted token
|
|
199
199
|
*/
|
|
200
200
|
function purchase(
|
|
201
201
|
uint256 _projectId
|
|
202
202
|
) external payable returns (uint256 tokenId) {
|
|
203
|
-
|
|
203
|
+
// pass max price as msg.value, currency address as ETH
|
|
204
|
+
tokenId = purchaseTo({
|
|
205
|
+
_to: msg.sender,
|
|
206
|
+
_projectId: _projectId,
|
|
207
|
+
_maxPricePerToken: msg.value,
|
|
208
|
+
_currencyAddress: address(0)
|
|
209
|
+
});
|
|
204
210
|
return tokenId;
|
|
205
211
|
}
|
|
206
212
|
|
|
207
213
|
/**
|
|
208
|
-
* @notice Purchases a token from project `_projectId`
|
|
214
|
+
* @notice Purchases a token from project `_projectId` with ETH or any ERC-20 token.
|
|
215
|
+
* @param _projectId Project ID to mint a token on.
|
|
216
|
+
* @param _maxPricePerToken Maximum price of token being allowed by the purchaser, no decimal places.
|
|
217
|
+
* @param _currencyAddress Currency address of token. `address(0)` if minting with ETH.
|
|
218
|
+
* @return tokenId Token ID of minted token
|
|
219
|
+
*/
|
|
220
|
+
function purchase(
|
|
221
|
+
uint256 _projectId,
|
|
222
|
+
uint256 _maxPricePerToken,
|
|
223
|
+
address _currencyAddress
|
|
224
|
+
) external payable returns (uint256 tokenId) {
|
|
225
|
+
tokenId = purchaseTo({
|
|
226
|
+
_to: msg.sender,
|
|
227
|
+
_projectId: _projectId,
|
|
228
|
+
_maxPricePerToken: _maxPricePerToken,
|
|
229
|
+
_currencyAddress: _currencyAddress
|
|
230
|
+
});
|
|
231
|
+
return tokenId;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
/**
|
|
235
|
+
* @notice Purchases a token from project `_projectId` with ETH and sets
|
|
209
236
|
* the token's owner to `_to`.
|
|
210
237
|
* @param _to Address to be the new token's owner.
|
|
211
238
|
* @param _projectId Project ID to mint a token on.
|
|
@@ -214,6 +241,31 @@ contract MinterSetPriceERC20V1 is ReentrancyGuard, IFilteredMinterV0 {
|
|
|
214
241
|
function purchaseTo(
|
|
215
242
|
address _to,
|
|
216
243
|
uint256 _projectId
|
|
244
|
+
) public payable returns (uint256 tokenId) {
|
|
245
|
+
// pass max price as msg.value, currency address as ETH
|
|
246
|
+
return
|
|
247
|
+
purchaseTo({
|
|
248
|
+
_to: _to,
|
|
249
|
+
_projectId: _projectId,
|
|
250
|
+
_maxPricePerToken: msg.value,
|
|
251
|
+
_currencyAddress: address(0)
|
|
252
|
+
});
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
/**
|
|
256
|
+
* @notice Purchases a token from project `_projectId` with ETH or any ERC-20 token and sets
|
|
257
|
+
* the token's owner to `_to`.
|
|
258
|
+
* @param _to Address to be the new token's owner.
|
|
259
|
+
* @param _projectId Project ID to mint a token on.
|
|
260
|
+
* @param _maxPricePerToken Maximum price of token being allowed by the purchaser, no decimal places. Required if currency is ERC20.
|
|
261
|
+
* @param _currencyAddress Currency address of token. `address(0)` if minting with ETH.
|
|
262
|
+
* @return tokenId Token ID of minted token
|
|
263
|
+
*/
|
|
264
|
+
function purchaseTo(
|
|
265
|
+
address _to,
|
|
266
|
+
uint256 _projectId,
|
|
267
|
+
uint256 _maxPricePerToken,
|
|
268
|
+
address _currencyAddress
|
|
217
269
|
) public payable nonReentrant returns (uint256 tokenId) {
|
|
218
270
|
// CHECKS
|
|
219
271
|
require(
|
|
@@ -227,6 +279,22 @@ contract MinterSetPriceERC20V1 is ReentrancyGuard, IFilteredMinterV0 {
|
|
|
227
279
|
"Price not configured"
|
|
228
280
|
);
|
|
229
281
|
|
|
282
|
+
uint256 pricePerTokenInWei = projectIdToPricePerTokenInWei[_projectId];
|
|
283
|
+
address configuredCurrencyAddress = projectIdToCurrencyAddress[
|
|
284
|
+
_projectId
|
|
285
|
+
];
|
|
286
|
+
|
|
287
|
+
// validate that the currency address matches the project configured currency
|
|
288
|
+
require(
|
|
289
|
+
_currencyAddress == configuredCurrencyAddress,
|
|
290
|
+
"Currency addresses must match"
|
|
291
|
+
);
|
|
292
|
+
|
|
293
|
+
// if configured currency is ETH validate that msg.value is the same as max price per token
|
|
294
|
+
if (configuredCurrencyAddress == address(0)) {
|
|
295
|
+
require(msg.value == _maxPricePerToken, "inconsistent msg.value");
|
|
296
|
+
}
|
|
297
|
+
|
|
230
298
|
// EFFECTS
|
|
231
299
|
tokenId = minterFilter.mint(_to, _projectId, msg.sender);
|
|
232
300
|
// what if projectMaxInvocations[_projectId] is 0 (default value)?
|
|
@@ -241,28 +309,32 @@ contract MinterSetPriceERC20V1 is ReentrancyGuard, IFilteredMinterV0 {
|
|
|
241
309
|
}
|
|
242
310
|
|
|
243
311
|
// INTERACTIONS
|
|
244
|
-
if (
|
|
312
|
+
if (configuredCurrencyAddress != address(0)) {
|
|
313
|
+
// validate that the specified maximum price is greater than or equal to the price per token
|
|
314
|
+
require(
|
|
315
|
+
_maxPricePerToken >= pricePerTokenInWei,
|
|
316
|
+
"Only max price gte token price"
|
|
317
|
+
);
|
|
245
318
|
require(
|
|
246
319
|
msg.value == 0,
|
|
247
320
|
"this project accepts a different currency and cannot accept ETH"
|
|
248
321
|
);
|
|
249
322
|
require(
|
|
250
|
-
IERC20(
|
|
323
|
+
IERC20(configuredCurrencyAddress).allowance(
|
|
251
324
|
msg.sender,
|
|
252
325
|
address(this)
|
|
253
|
-
) >=
|
|
326
|
+
) >= pricePerTokenInWei,
|
|
254
327
|
"Insufficient Funds Approved for TX"
|
|
255
328
|
);
|
|
256
329
|
require(
|
|
257
|
-
IERC20(
|
|
258
|
-
|
|
259
|
-
) >= projectIdToPricePerTokenInWei[_projectId],
|
|
330
|
+
IERC20(configuredCurrencyAddress).balanceOf(msg.sender) >=
|
|
331
|
+
pricePerTokenInWei,
|
|
260
332
|
"Insufficient balance."
|
|
261
333
|
);
|
|
262
334
|
_splitFundsERC20(_projectId);
|
|
263
335
|
} else {
|
|
264
336
|
require(
|
|
265
|
-
msg.value >=
|
|
337
|
+
msg.value >= pricePerTokenInWei,
|
|
266
338
|
"Must send minimum value to mint!"
|
|
267
339
|
);
|
|
268
340
|
_splitFundsETH(_projectId);
|