@artblocks/contracts 1.0.2 → 1.0.3
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 +30 -2
- 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 +22 -4
- package/artifacts/contracts/GenArt721CoreV3.sol/GenArt721CoreV3.json +42 -5
- 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/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/MinterDALin/MinterDALinV2.sol/MinterDALinV2.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV3.sol/MinterDALinV3.json +2 -2
- 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/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/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/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/engine/{GenArt721CoreV2_ENGINE_FLEX.sol → V2/GenArt721CoreV2_ENGINE_FLEX.sol}/GenArt721CoreV2_ENGINE_FLEX.json +3 -3
- package/artifacts/contracts/engine/{GenArt721CoreV2_PBAB.sol → V2/GenArt721CoreV2_PBAB.sol}/GenArt721CoreV2_PBAB.json +3 -3
- package/artifacts/contracts/engine/{GenArt721CoreV2_PRTNR.sol → V2/GenArt721CoreV2_PRTNR.sol}/GenArt721CoreV2_PRTNR.json +3 -3
- package/artifacts/contracts/engine/{GenArt721MinterBurner_PBAB.sol → V2/GenArt721MinterBurner_PBAB.sol}/GenArt721MinterBurner_PBAB.json +3 -3
- package/artifacts/contracts/engine/{GenArt721MinterDAExp_PBAB.sol → V2/GenArt721MinterDAExp_PBAB.sol}/GenArt721MinterDAExp_PBAB.json +3 -3
- package/artifacts/contracts/engine/{GenArt721Minter_PBAB.sol → V2/GenArt721Minter_PBAB.sol}/GenArt721Minter_PBAB.json +3 -3
- package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine.sol/GenArt721CoreV3_Engine.json +1960 -0
- package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol/GenArt721CoreV3_Engine_Flex.json +2247 -0
- package/artifacts/contracts/engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol/GenArt721CoreV3_Engine_Flex_PROOF.json +2247 -0
- package/artifacts/contracts/engine/V3/forks/PROHIBITION/AdminACLV0_PROHIBITION.sol/AdminACLV0_PROHIBITION.json +401 -0
- package/artifacts/contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol/GenArt721CoreV3_Engine_Flex_PROHIBITION.json +2281 -0
- package/artifacts/contracts/engine/V3/forks/PROHIBITION/interfaces/IAdminACLV0_PROHIBITION.sol/IAdminACLV0_PROHIBITION.json +359 -0
- package/artifacts/contracts/engine/V3/forks/PROHIBITION/interfaces/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.sol/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.json +1094 -0
- package/artifacts/contracts/engine-registry/CoreRegistryV1.sol/CoreRegistryV1.json +242 -0
- package/artifacts/contracts/engine-registry/EngineRegistryV0.sol/EngineRegistryV0.json +2 -2
- package/artifacts/contracts/explorations/GenArt721CoreV3_Explorations.sol/GenArt721CoreV3_Explorations.json +41 -4
- package/artifacts/contracts/interfaces/0.8.x/IBytecodeStorageReader.sol/IBytecodeStorageReader.json +111 -0
- package/artifacts/contracts/interfaces/0.8.x/ICoreRegistryV1.sol/ICoreRegistryV1.json +172 -0
- package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterSEAV0.sol/IFilteredMinterSEAV0.json +55 -53
- package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreContractExposesHashSeed.sol/IGenArt721CoreContractExposesHashSeed.json +30 -0
- package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreContractV3.sol/IGenArt721CoreContractV3.json +13 -0
- package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Base.sol/IGenArt721CoreContractV3_Base.json +13 -0
- package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Engine.sol/IGenArt721CoreContractV3_Engine.json +7 -13
- package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Engine_Flex.sol/IGenArt721CoreContractV3_Engine_Flex.json +7 -13
- package/artifacts/contracts/interfaces/0.8.x/IMinterFilterV1.sol/IMinterFilterV1.json +429 -0
- package/artifacts/contracts/interfaces/0.8.x/IPseudorandomAtomic.sol/IPseudorandomAtomic.json +30 -0
- package/artifacts/contracts/interfaces/0.8.x/IRandomizer_V3CoreBase.sol/IRandomizer_V3CoreBase.json +24 -0
- package/artifacts/contracts/interfaces/0.8.x/ISharedRandomizerV0.sol/ISharedRandomizerV0.json +207 -0
- package/artifacts/contracts/libs/0.8.x/{BytecodeStorage.sol → BytecodeStorageV0.sol}/BytecodeStorage.json +3 -3
- package/artifacts/contracts/libs/0.8.x/BytecodeStorageV1.sol/BytecodeStorageReader.json +163 -0
- package/artifacts/contracts/libs/0.8.x/BytecodeStorageV1.sol/BytecodeStorageWriter.json +10 -0
- package/artifacts/contracts/libs/0.8.x/Bytes32Strings.sol/Bytes32Strings.json +2 -2
- package/artifacts/contracts/libs/0.8.x/ERC721_PackedHashSeed.sol/ERC721_PackedHashSeed.json +2 -2
- package/artifacts/contracts/libs/0.8.x/SSTORE2.sol/SSTORE2.json +10 -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/minter-suite/MinterFilter/MinterFilterV1.sol/MinterFilterV1.json +2 -2
- package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV2.sol/MinterFilterV2.json +692 -0
- package/artifacts/contracts/minter-suite/Minters/MinterDAExpSettlementV2.sol/MinterDAExpSettlementV2.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterDAExpV4.sol/MinterDAExpV4.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterDALinV4.sol/MinterDALinV4.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterHolderV4.sol/MinterHolderV4.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterMerkleV5.sol/MinterMerkleV5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterPolyptychV0.sol/IGenArt721CoreContractV3WithRandomizer.json +10 -160
- package/artifacts/contracts/minter-suite/Minters/MinterPolyptychV0.sol/MinterPolyptychV0.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterSEAV0.sol/MinterSEAV0.json +59 -80
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20V4.sol/MinterSetPriceERC20V4.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceV4.sol/MinterSetPriceV4.json +2 -2
- package/artifacts/contracts/mock/{BytecodeTextCR_DMock.sol/BytecodeTextCR_DMock.json → BytecodeV0TextCR_DMock.sol/BytecodeV0TextCR_DMock.json} +4 -4
- package/artifacts/contracts/mock/BytecodeV1LibCallsMock.sol/BytecodeV1LibCallsMock.json +135 -0
- package/artifacts/contracts/mock/BytecodeV1TextCR_DMock.sol/BytecodeV1TextCR_DMock.json +301 -0
- package/artifacts/contracts/mock/DeadReceiverBidderMock.sol/DeadReceiverBidderMock.json +2 -2
- package/artifacts/contracts/mock/DeadReceiverMock.sol/DeadReceiverMock.json +2 -2
- package/artifacts/contracts/mock/DummySharedMinter.sol/DummySharedMinter.json +114 -0
- package/artifacts/contracts/mock/ERC20Mock.sol/ERC20Mock.json +2 -2
- package/artifacts/contracts/mock/GasLimitReceiverBidderMock.sol/GasLimitReceiverBidderMock.json +2 -2
- package/artifacts/contracts/mock/GasLimitReceiverMock.sol/GasLimitReceiverMock.json +2 -2
- package/artifacts/contracts/mock/GenArt721CoreV3_Engine_IncorrectCoreType.sol/GenArt721CoreV3_Engine_IncorrectCoreType.json +22 -4
- package/artifacts/contracts/mock/MockAdminACLV0.sol/MockAdminACLV0Events.json +2 -2
- package/artifacts/contracts/mock/MockAdminACLV0_PROHIBITION.sol/MockAdminACLV0Events_PROHIBITION.json +440 -0
- package/artifacts/contracts/mock/OriginRegisterMock.sol/OriginRegisterMock.json +39 -0
- package/artifacts/contracts/mock/RandomizerV2_NoAssignMock.sol/RandomizerV2_NoAssignMock.json +2 -2
- package/artifacts/contracts/mock/ReentrancyHolderMock.sol/ReentrancyHolderMock.json +2 -2
- package/artifacts/contracts/mock/ReentrancyMerkleMock.sol/ReentrancyMerkleMock.json +2 -2
- package/artifacts/contracts/mock/ReentrancyMock.sol/ReentrancyMock.json +2 -2
- package/artifacts/contracts/mock/ReentrancySEAMock.sol/ReentrancySEAAutoBidderMock.json +2 -2
- package/artifacts/contracts/mock/SSTORE2Mock.sol/SSTORE2Mock.json +118 -0
- package/artifacts/contracts/randomizer/{BasicRandomizer.sol → deprecated/BasicRandomizer.sol}/BasicRandomizer.json +3 -3
- package/artifacts/contracts/randomizer/{BasicRandomizerBase_v0_0_0.sol → deprecated/BasicRandomizerBase_v0_0_0.sol}/RandomizerBase.json +1 -1
- package/artifacts/contracts/randomizer/{PolyptychRandomizerV0.sol → deprecated/PolyptychRandomizerV0.sol}/BasicPolyptychRandomizerV0.json +3 -3
- package/artifacts/contracts/randomizer/{RandomizerV2.sol → deprecated/RandomizerV2.sol}/BasicRandomizerV2.json +3 -3
- package/artifacts/contracts/randomizer/primitive/PseudorandomAtomicBasic.sol/PseudorandomAtomic.json +30 -0
- package/artifacts/contracts/randomizer/shared/SharedRandomizerV0.sol/SharedRandomizerV0.json +231 -0
- package/artifacts/contracts/royalty-registry/GenArt721RoyaltyOverride.sol/GenArt721RoyaltyOverride.json +2 -2
- package/contracts/AdminACLV0.sol +1 -1
- package/contracts/AdminACLV1.sol +1 -1
- package/contracts/DependencyRegistryV0.sol +15 -28
- package/contracts/GenArt721CoreV3.sol +37 -34
- package/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV2.sol +1 -1
- package/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV3.sol +1 -1
- package/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol +1 -1
- package/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV1.sol +1 -1
- package/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV2.sol +1 -1
- package/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV3.sol +1 -1
- package/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV1.sol +1 -1
- package/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV2.sol +1 -1
- package/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV3.sol +1 -1
- package/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV1.sol +1 -1
- package/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV2.sol +1 -1
- package/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV3.sol +1 -1
- package/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV4.sol +1 -1
- package/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV2.sol +1 -1
- package/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV3.sol +1 -1
- package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V2.sol +1 -1
- package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V3.sol +1 -1
- package/contracts/engine/{GenArt721CoreV2_ENGINE_FLEX.sol → V2/GenArt721CoreV2_ENGINE_FLEX.sol} +2 -2
- package/contracts/engine/{GenArt721CoreV2_PBAB.sol → V2/GenArt721CoreV2_PBAB.sol} +2 -2
- package/contracts/engine/{GenArt721CoreV2_PRTNR.sol → V2/GenArt721CoreV2_PRTNR.sol} +3 -3
- package/contracts/engine/{GenArt721MinterBurner_PBAB.sol → V2/GenArt721MinterBurner_PBAB.sol} +2 -2
- package/contracts/engine/{GenArt721MinterDAExp_PBAB.sol → V2/GenArt721MinterDAExp_PBAB.sol} +2 -2
- package/contracts/engine/{GenArt721Minter_PBAB.sol → V2/GenArt721Minter_PBAB.sol} +2 -2
- package/contracts/{GenArt721CoreV3_Engine.sol → engine/V3/GenArt721CoreV3_Engine.sol} +29 -20
- package/contracts/{GenArt721CoreV3_Engine_Flex.sol → engine/V3/GenArt721CoreV3_Engine_Flex.sol} +30 -21
- package/contracts/engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol +2293 -0
- package/contracts/engine/V3/forks/PROHIBITION/AdminACLV0_PROHIBITION.sol +281 -0
- package/contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol +2354 -0
- package/contracts/engine/V3/forks/PROHIBITION/interfaces/IAdminACLV0_PROHIBITION.sol +123 -0
- package/contracts/engine/V3/forks/PROHIBITION/interfaces/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.sol +29 -0
- package/contracts/engine-registry/CoreRegistryV1.sol +254 -0
- package/contracts/engine-registry/EngineRegistryV0.sol +1 -1
- package/contracts/explorations/GenArt721CoreV3_Explorations.sol +34 -31
- package/contracts/interfaces/0.8.x/IBytecodeStorageReader.sol +62 -0
- package/contracts/interfaces/0.8.x/ICoreRegistryV1.sol +27 -0
- package/contracts/interfaces/0.8.x/IDelegationRegistry.sol +1 -1
- package/contracts/interfaces/0.8.x/IDependencyRegistryCompatibleV0.sol +1 -1
- package/contracts/interfaces/0.8.x/IDependencyRegistryV0.sol +1 -1
- package/contracts/interfaces/0.8.x/IEngineRegistryV0.sol +1 -1
- package/contracts/interfaces/0.8.x/IFilteredMinterSEAV0.sol +34 -15
- package/contracts/interfaces/0.8.x/IGenArt721CoreContractExposesHashSeed.sol +11 -0
- package/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Base.sol +3 -0
- package/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Engine.sol +0 -5
- package/contracts/interfaces/0.8.x/IMinterFilterV1.sol +158 -0
- package/contracts/interfaces/0.8.x/IPseudorandomAtomic.sol +16 -0
- package/contracts/interfaces/0.8.x/IRandomizerPolyptychV0.sol +1 -1
- package/contracts/interfaces/0.8.x/IRandomizerV2.sol +2 -5
- package/contracts/interfaces/0.8.x/IRandomizer_V3CoreBase.sol +10 -0
- package/contracts/interfaces/0.8.x/ISharedRandomizerV0.sol +105 -0
- package/contracts/libs/0.8.x/BytecodeStorageV1.sol +399 -0
- package/contracts/libs/0.8.x/SSTORE2.sol +109 -0
- package/contracts/libs/integration-refs/delegation-registry/DelegationRegistry.sol +1 -1
- package/contracts/libs/integration-refs/weth9/weth9.sol +2 -0
- package/contracts/minter-suite/MinterFilter/MinterFilterV1.sol +1 -1
- package/contracts/minter-suite/MinterFilter/MinterFilterV2.sol +756 -0
- package/contracts/minter-suite/Minters/MinterDAExpSettlementV2.sol +1 -1
- package/contracts/minter-suite/Minters/MinterDAExpV4.sol +1 -1
- package/contracts/minter-suite/Minters/MinterDALinV4.sol +1 -1
- package/contracts/minter-suite/Minters/MinterHolderV4.sol +1 -1
- package/contracts/minter-suite/Minters/MinterMerkleV5.sol +1 -1
- package/contracts/minter-suite/Minters/MinterPolyptychV0.sol +14 -13
- package/contracts/minter-suite/Minters/MinterSEAV0.sol +232 -183
- package/contracts/minter-suite/Minters/MinterSetPriceERC20V4.sol +1 -1
- package/contracts/minter-suite/Minters/MinterSetPriceV4.sol +1 -1
- package/contracts/mock/{BytecodeTextCR_DMock.sol → BytecodeV0TextCR_DMock.sol} +5 -5
- package/contracts/mock/BytecodeV1LibCallsMock.sol +114 -0
- package/contracts/mock/BytecodeV1TextCR_DMock.sol +233 -0
- package/contracts/mock/DeadReceiverBidderMock.sol +1 -1
- package/contracts/mock/DeadReceiverMock.sol +1 -1
- package/contracts/mock/DummySharedMinter.sol +75 -0
- package/contracts/mock/GasLimitReceiverBidderMock.sol +1 -1
- package/contracts/mock/GasLimitReceiverMock.sol +1 -1
- package/contracts/mock/GenArt721CoreV3_Engine_IncorrectCoreType.sol +14 -27
- package/contracts/mock/MockAdminACLV0.sol +1 -1
- package/contracts/mock/MockAdminACLV0_PROHIBITION.sol +207 -0
- package/contracts/mock/OriginRegisterMock.sol +27 -0
- package/contracts/mock/RandomizerV2_NoAssignMock.sol +2 -2
- package/contracts/mock/SSTORE2Mock.sol +93 -0
- package/contracts/randomizer/{BasicRandomizer.sol → deprecated/BasicRandomizer.sol} +1 -1
- package/contracts/randomizer/{BasicRandomizerBase_v0_0_0.sol → deprecated/BasicRandomizerBase_v0_0_0.sol} +1 -1
- package/contracts/randomizer/{PolyptychRandomizerV0.sol → deprecated/PolyptychRandomizerV0.sol} +3 -3
- package/contracts/randomizer/{RandomizerV2.sol → deprecated/RandomizerV2.sol} +3 -3
- package/contracts/randomizer/primitive/PseudorandomAtomicBasic.sol +30 -0
- package/contracts/randomizer/shared/SharedRandomizerV0.sol +245 -0
- package/package.json +23 -30
- package/.env.example +0 -17
- package/artifacts/contracts/GenArt721CoreV3_Engine.sol/GenArt721CoreV3_Engine.json +0 -1942
- package/artifacts/contracts/GenArt721CoreV3_Engine_Flex.sol/GenArt721CoreV3_Engine_Flex.json +0 -2229
- package/artifacts/contracts/engine-registry/future/EngineRegistryV1.sol/EngineRegistryV1.json +0 -109
- package/contracts/engine-registry/future/EngineRegistryV1.sol +0 -86
- /package/contracts/libs/0.8.x/{BytecodeStorage.sol → BytecodeStorageV0.sol} +0 -0
|
@@ -12,6 +12,37 @@ pragma solidity ^0.8.0;
|
|
|
12
12
|
* @author Art Blocks Inc.
|
|
13
13
|
*/
|
|
14
14
|
interface IFilteredMinterSEAV0 is IFilteredMinterV2 {
|
|
15
|
+
// project-specific parameters
|
|
16
|
+
struct ProjectConfig {
|
|
17
|
+
bool maxHasBeenInvoked;
|
|
18
|
+
// max uint24 ~= 1.6e7, > max possible project invocations of 1e6
|
|
19
|
+
uint24 maxInvocations;
|
|
20
|
+
// time after which new auctions may be started
|
|
21
|
+
// note: new auctions must always be started with a new bid, at which
|
|
22
|
+
// point the auction will actually start
|
|
23
|
+
// @dev this is a project-level constraint, and individual auctions
|
|
24
|
+
// will each have their own start time defined in `activeAuction`
|
|
25
|
+
// max uint64 ~= 1.8e19 sec ~= 570 billion years
|
|
26
|
+
uint64 timestampStart;
|
|
27
|
+
// duration of each new auction, before any extensions due to late bids
|
|
28
|
+
// @dev for configured auctions, this will be gt 0, so it may be used
|
|
29
|
+
// to determine if an auction is configured
|
|
30
|
+
uint32 auctionDurationSeconds;
|
|
31
|
+
// next token number to be auctioned, owned by minter
|
|
32
|
+
// @dev store token number to enable storage packing, as token ID can
|
|
33
|
+
// be derived from this value in combination with project ID
|
|
34
|
+
// max uint24 ~= 1.6e7, > max possible project invocations of 1e6
|
|
35
|
+
uint24 nextTokenNumber;
|
|
36
|
+
// bool to indicate if next token number has been populated, or is
|
|
37
|
+
// still default value of 0
|
|
38
|
+
// @dev required to handle edge case where next token number is 0
|
|
39
|
+
bool nextTokenNumberIsPopulated;
|
|
40
|
+
// reserve price, i.e. minimum starting bid price, in wei
|
|
41
|
+
uint256 basePrice;
|
|
42
|
+
// active auction for project
|
|
43
|
+
Auction activeAuction;
|
|
44
|
+
}
|
|
45
|
+
|
|
15
46
|
/// Struct that defines a single token English auction
|
|
16
47
|
struct Auction {
|
|
17
48
|
// token number of NFT being auctioned
|
|
@@ -19,15 +50,14 @@ interface IFilteredMinterSEAV0 is IFilteredMinterV2 {
|
|
|
19
50
|
// The current highest bid amount (in wei)
|
|
20
51
|
uint256 currentBid;
|
|
21
52
|
// The address of the current highest bidder
|
|
53
|
+
// @dev if this is not the zero address, then the auction is
|
|
54
|
+
// considered initialized
|
|
22
55
|
address payable currentBidder;
|
|
23
56
|
// The time that the auction is scheduled to end
|
|
24
57
|
// max uint64 ~= 1.8e19 sec ~= 570 billion years
|
|
25
58
|
uint64 endTime;
|
|
26
59
|
// Whether or not the auction has been settled
|
|
27
60
|
bool settled;
|
|
28
|
-
// Whether or not the auction has been initialized (used to determine
|
|
29
|
-
// if auction is the default struct)
|
|
30
|
-
bool initialized;
|
|
31
61
|
}
|
|
32
62
|
|
|
33
63
|
/// Admin-controlled range of allowed auction durations updated
|
|
@@ -124,18 +154,7 @@ interface IFilteredMinterSEAV0 is IFilteredMinterV2 {
|
|
|
124
154
|
|
|
125
155
|
function projectConfigurationDetails(
|
|
126
156
|
uint256 _projectId
|
|
127
|
-
)
|
|
128
|
-
external
|
|
129
|
-
view
|
|
130
|
-
returns (
|
|
131
|
-
uint24 maxInvocations,
|
|
132
|
-
uint64 timestampStart,
|
|
133
|
-
uint32 auctionDurationSeconds,
|
|
134
|
-
uint256 basePrice,
|
|
135
|
-
bool nextTokenNumberIsPopulated,
|
|
136
|
-
uint24 nextTokenNumber,
|
|
137
|
-
Auction memory auction
|
|
138
|
-
);
|
|
157
|
+
) external view returns (ProjectConfig memory projectConfiguration_);
|
|
139
158
|
|
|
140
159
|
function projectActiveAuctionDetails(
|
|
141
160
|
uint256 _projectId
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
// Created By: Art Blocks Inc.
|
|
3
|
+
|
|
4
|
+
pragma solidity ^0.8.0;
|
|
5
|
+
|
|
6
|
+
interface IGenArt721CoreContractExposesHashSeed {
|
|
7
|
+
// function to read the hash-seed for a given tokenId
|
|
8
|
+
function tokenIdToHashSeed(
|
|
9
|
+
uint256 _tokenId
|
|
10
|
+
) external view returns (bytes12);
|
|
11
|
+
}
|
|
@@ -77,6 +77,9 @@ interface IGenArt721CoreContractV3_Base is IManifold {
|
|
|
77
77
|
bytes4 _selector
|
|
78
78
|
) external returns (bool);
|
|
79
79
|
|
|
80
|
+
/// getter function of public variable
|
|
81
|
+
function startingProjectId() external view returns (uint256);
|
|
82
|
+
|
|
80
83
|
// getter function of public variable
|
|
81
84
|
function nextProjectId() external view returns (uint256);
|
|
82
85
|
|
|
@@ -69,9 +69,4 @@ interface IGenArt721CoreContractV3_Engine is IGenArt721CoreContractV3_Base {
|
|
|
69
69
|
external
|
|
70
70
|
view
|
|
71
71
|
returns (uint256);
|
|
72
|
-
|
|
73
|
-
// function to read the hash-seed for a given tokenId
|
|
74
|
-
function tokenIdToHashSeed(
|
|
75
|
-
uint256 _tokenId
|
|
76
|
-
) external view returns (bytes12);
|
|
77
72
|
}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
// Created By: Art Blocks Inc.
|
|
3
|
+
|
|
4
|
+
pragma solidity ^0.8.0;
|
|
5
|
+
|
|
6
|
+
import "./ICoreRegistryV1.sol";
|
|
7
|
+
import "./IAdminACLV0.sol";
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* @title IMinterFilterV1
|
|
11
|
+
* @author Art Blocks Inc.
|
|
12
|
+
* @notice Interface for a new minter filter contract.
|
|
13
|
+
* This interface does not extend the previous version of the minter filter
|
|
14
|
+
* interface, as the previous version is not compatible with the new
|
|
15
|
+
* minter filter architecture.
|
|
16
|
+
* @dev This interface is for a minter filter that supports multiple core
|
|
17
|
+
* contracts, and allows for a minter to be set on a per-project basis.
|
|
18
|
+
*/
|
|
19
|
+
interface IMinterFilterV1 {
|
|
20
|
+
/**
|
|
21
|
+
* @notice Emitted when contract is deployed to notify indexing services
|
|
22
|
+
* of the new contract deployment.
|
|
23
|
+
*/
|
|
24
|
+
event Deployed();
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* @notice Globally approved minter `minter`.
|
|
28
|
+
*/
|
|
29
|
+
event MinterApprovedGlobally(address indexed minter, string minterType);
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* @notice Globally revoked minter `minter`.
|
|
33
|
+
* @dev contract owner may still approve this minter on a per-contract
|
|
34
|
+
* basis.
|
|
35
|
+
*/
|
|
36
|
+
event MinterRevokedGlobally(address indexed minter);
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* @notice Approved minter `minter` on core contract
|
|
40
|
+
* `coreContract`.
|
|
41
|
+
*/
|
|
42
|
+
event MinterApprovedForContract(
|
|
43
|
+
address indexed coreContract,
|
|
44
|
+
address indexed minter,
|
|
45
|
+
string minterType
|
|
46
|
+
);
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* @notice Revoked minter `minter` on core contract `coreContract`.
|
|
50
|
+
* @dev minter filter owner may still globally approve this minter for all
|
|
51
|
+
* contracts.
|
|
52
|
+
*/
|
|
53
|
+
event MinterRevokedForContract(
|
|
54
|
+
address indexed coreContract,
|
|
55
|
+
address indexed minter
|
|
56
|
+
);
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* @notice Minter at address `minter` set as minter for project
|
|
60
|
+
* `projectId` on core contract `coreContract`.
|
|
61
|
+
*/
|
|
62
|
+
event ProjectMinterRegistered(
|
|
63
|
+
uint256 indexed projectId,
|
|
64
|
+
address indexed coreContract,
|
|
65
|
+
address indexed minter,
|
|
66
|
+
string minterType
|
|
67
|
+
);
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* @notice Minter removed for project `projectId` on core contract
|
|
71
|
+
* `coreContract`.
|
|
72
|
+
*/
|
|
73
|
+
event ProjectMinterRemoved(
|
|
74
|
+
uint256 indexed projectId,
|
|
75
|
+
address indexed coreContract
|
|
76
|
+
);
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* @notice Admin ACL contract updated to `adminACLContract`.
|
|
80
|
+
*/
|
|
81
|
+
event AdminACLUpdated(address indexed adminACLContract);
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* @notice Core Registry contract updated to `coreRegistry`.
|
|
85
|
+
*/
|
|
86
|
+
event CoreRegistryUpdated(address indexed coreRegistry);
|
|
87
|
+
|
|
88
|
+
function setMinterForProject(
|
|
89
|
+
uint256 _projectId,
|
|
90
|
+
address _coreContract,
|
|
91
|
+
address _minter
|
|
92
|
+
) external;
|
|
93
|
+
|
|
94
|
+
function removeMinterForProject(
|
|
95
|
+
uint256 _projectId,
|
|
96
|
+
address _coreContract
|
|
97
|
+
) external;
|
|
98
|
+
|
|
99
|
+
// @dev function name is optimized for gas
|
|
100
|
+
function mint_joo(
|
|
101
|
+
address _to,
|
|
102
|
+
uint256 _projectId,
|
|
103
|
+
address _coreContract,
|
|
104
|
+
address _sender
|
|
105
|
+
) external returns (uint256);
|
|
106
|
+
|
|
107
|
+
function updateCoreRegistry(address _coreRegistry) external;
|
|
108
|
+
|
|
109
|
+
function minterFilterType() external pure returns (string memory);
|
|
110
|
+
|
|
111
|
+
function getMinterForProject(
|
|
112
|
+
uint256 _projectId,
|
|
113
|
+
address _coreContract
|
|
114
|
+
) external view returns (address);
|
|
115
|
+
|
|
116
|
+
function projectHasMinter(
|
|
117
|
+
uint256 _projectId,
|
|
118
|
+
address _coreContract
|
|
119
|
+
) external view returns (bool);
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* @notice View that returns if a core contract is registered with the
|
|
123
|
+
* core registry, allowing this minter filter to service it.
|
|
124
|
+
* @param _coreContract core contract address to be checked
|
|
125
|
+
*/
|
|
126
|
+
function isRegisteredCoreContract(
|
|
127
|
+
address _coreContract
|
|
128
|
+
) external view returns (bool);
|
|
129
|
+
|
|
130
|
+
/// Address of current core registry contract
|
|
131
|
+
function coreRegistry() external view returns (ICoreRegistryV1);
|
|
132
|
+
|
|
133
|
+
/// The current admin ACL contract
|
|
134
|
+
function adminACLContract() external view returns (IAdminACLV0);
|
|
135
|
+
|
|
136
|
+
/// The quantity of projects on a core contract that have assigned minters
|
|
137
|
+
function getNumProjectsOnContractWithMinters(
|
|
138
|
+
address _coreContract
|
|
139
|
+
) external view returns (uint256);
|
|
140
|
+
|
|
141
|
+
function getProjectAndMinterInfoOnContractAt(
|
|
142
|
+
address _coreContract,
|
|
143
|
+
uint256 _index
|
|
144
|
+
)
|
|
145
|
+
external
|
|
146
|
+
view
|
|
147
|
+
returns (
|
|
148
|
+
uint256 projectId,
|
|
149
|
+
address minterAddress,
|
|
150
|
+
string memory minterType
|
|
151
|
+
);
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* Owner of contract.
|
|
155
|
+
* @dev This returns the address of the Admin ACL contract.
|
|
156
|
+
*/
|
|
157
|
+
function owner() external view returns (address);
|
|
158
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
// Creatd By: Art Blocks Inc.
|
|
3
|
+
|
|
4
|
+
pragma solidity ^0.8.0;
|
|
5
|
+
|
|
6
|
+
interface IPseudorandomAtomic {
|
|
7
|
+
/**
|
|
8
|
+
* @notice This function atomically returns a pseudorandom bytes32 value.
|
|
9
|
+
* @param _entropy entropy to be included during the pseudorandom
|
|
10
|
+
* generation process. An example of entropy might be the hash of a core
|
|
11
|
+
* contract's address, and the ID of the token being generated.
|
|
12
|
+
*/
|
|
13
|
+
function getPseudorandomAtomic(
|
|
14
|
+
bytes32 _entropy
|
|
15
|
+
) external view returns (bytes32);
|
|
16
|
+
}
|
|
@@ -4,15 +4,12 @@
|
|
|
4
4
|
pragma solidity ^0.8.0;
|
|
5
5
|
|
|
6
6
|
import "./IGenArt721CoreContractV3_Base.sol";
|
|
7
|
+
import "./IRandomizer_V3CoreBase.sol";
|
|
7
8
|
|
|
8
|
-
interface IRandomizerV2 {
|
|
9
|
+
interface IRandomizerV2 is IRandomizer_V3CoreBase {
|
|
9
10
|
// The core contract that may interact with this randomizer contract.
|
|
10
11
|
function genArt721Core()
|
|
11
12
|
external
|
|
12
13
|
view
|
|
13
14
|
returns (IGenArt721CoreContractV3_Base);
|
|
14
|
-
|
|
15
|
-
// When a core contract calls this, it can be assured that the randomizer
|
|
16
|
-
// will set a bytes32 hash for tokenId `_tokenId` on the core contract.
|
|
17
|
-
function assignTokenHash(uint256 _tokenId) external;
|
|
18
15
|
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
// Creatd By: Art Blocks Inc.
|
|
3
|
+
|
|
4
|
+
pragma solidity ^0.8.0;
|
|
5
|
+
|
|
6
|
+
interface IRandomizer_V3CoreBase {
|
|
7
|
+
// When a core contract calls this, it can be assured that the randomizer
|
|
8
|
+
// will set a bytes32 hash for tokenId `_tokenId` on the core contract.
|
|
9
|
+
function assignTokenHash(uint256 _tokenId) external;
|
|
10
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
// Creatd By: Art Blocks Inc.
|
|
3
|
+
|
|
4
|
+
pragma solidity ^0.8.0;
|
|
5
|
+
|
|
6
|
+
import "./IRandomizer_V3CoreBase.sol";
|
|
7
|
+
|
|
8
|
+
interface ISharedRandomizerV0 is IRandomizer_V3CoreBase {
|
|
9
|
+
/**
|
|
10
|
+
* @notice The pseudorandom atomic contract that is used to generate
|
|
11
|
+
* pseudorandom values for this randomizer was updated.
|
|
12
|
+
*/
|
|
13
|
+
event PseudorandomAtomicContractUpdated(
|
|
14
|
+
address indexed pseudorandomAtomicContract
|
|
15
|
+
);
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* @notice Minter contract at `_hashSeedSetterContract` allowed to assign
|
|
19
|
+
* token hash seeds on core contract `_coreContract`.
|
|
20
|
+
*/
|
|
21
|
+
event HashSeedSetterForCoreUpdated(
|
|
22
|
+
address indexed coreContract,
|
|
23
|
+
address indexed hashSeedSetterContract
|
|
24
|
+
);
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* @notice Project with ID `_projectId` is enabled/disabled for polyptych
|
|
28
|
+
* minting (i.e. allows token hash seeds to be set by hash seed setter).
|
|
29
|
+
*/
|
|
30
|
+
event ProjectIsPolyptychUpdated(
|
|
31
|
+
address coreContract,
|
|
32
|
+
uint256 projectId,
|
|
33
|
+
bool isPolyptych
|
|
34
|
+
);
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* @notice Allows the owner of a core contract to set the contract that is
|
|
38
|
+
* allowed to assign hash seeds to tokens. Typically, this is expected to
|
|
39
|
+
* be a minter contract, such as `MinterPolyptychV1`.
|
|
40
|
+
* @param _coreContract - the core contract that is being configured
|
|
41
|
+
* @param _hashSeedSetterContract - the contract that is allowed to assign
|
|
42
|
+
* hash seeds to tokens
|
|
43
|
+
*/
|
|
44
|
+
function setHashSeedSetterContract(
|
|
45
|
+
address _coreContract,
|
|
46
|
+
address _hashSeedSetterContract
|
|
47
|
+
) external;
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* @notice Allows the artist of a project to configure as as a polyptych
|
|
51
|
+
* project.
|
|
52
|
+
* @param _coreContract - The address of the core contract
|
|
53
|
+
* @param _projectId - The ID of the project that has a polyptych panel
|
|
54
|
+
* (second, third, etc.)
|
|
55
|
+
*/
|
|
56
|
+
function toggleProjectIsPolyptych(
|
|
57
|
+
address _coreContract,
|
|
58
|
+
uint256 _projectId
|
|
59
|
+
) external;
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* @notice Store the token hash seed for an existing token to be re-used in
|
|
63
|
+
* a polyptych panel.
|
|
64
|
+
* @param _coreContract - The address of the core contract of `_tokenId`
|
|
65
|
+
* @param _tokenId - The ID of the token to set the hash seed for
|
|
66
|
+
* @param _hashSeed - The hash seed to set for `_tokenId`
|
|
67
|
+
* @dev Only callable by the hash seed setter contract of `_coreContract`.
|
|
68
|
+
*/
|
|
69
|
+
function setPolyptychHashSeed(
|
|
70
|
+
address _coreContract,
|
|
71
|
+
uint256 _tokenId,
|
|
72
|
+
bytes12 _hashSeed
|
|
73
|
+
) external;
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* @notice Boolean representing whether or not project with ID `_projectId`
|
|
77
|
+
* on core contract `_coreContract` is currently enabled for polyptych
|
|
78
|
+
* minting.
|
|
79
|
+
*/
|
|
80
|
+
function projectIsPolyptych(
|
|
81
|
+
address _coreContract,
|
|
82
|
+
uint256 _projectId
|
|
83
|
+
) external view returns (bool _isPolyptych);
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Returns the hash seed setter contract for a given core contract.
|
|
87
|
+
* Returns address(0) if no hash seed setter contract is set for the core.
|
|
88
|
+
* @param _coreContract - The address of the core contract
|
|
89
|
+
*/
|
|
90
|
+
function hashSeedSetterContracts(
|
|
91
|
+
address _coreContract
|
|
92
|
+
) external view returns (address _hashSeedSetterContract);
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Returns the current hash seed for a given token ID.
|
|
96
|
+
* Returns bytes12(0) if no hash seed is set for the token.
|
|
97
|
+
* @param _coreContract - The address of the core contract of `_tokenId`
|
|
98
|
+
* @param _tokenId - The ID of the token to get the hash seed for
|
|
99
|
+
* @return _hashSeed - The stored hash seed for `_tokenId`
|
|
100
|
+
*/
|
|
101
|
+
function polyptychHashSeed(
|
|
102
|
+
address _coreContract,
|
|
103
|
+
uint256 _tokenId
|
|
104
|
+
) external view returns (bytes12 _hashSeed);
|
|
105
|
+
}
|