@artblocks/contracts 1.0.1 → 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 +67 -154
- 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 +1034 -0
- package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreContractExposesHashSeed.sol/IGenArt721CoreContractExposesHashSeed.json +30 -0
- package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreContractV3.sol/IGenArt721CoreContractV3.json +162 -0
- package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Base.sol/IGenArt721CoreContractV3_Base.json +162 -0
- package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Engine.sol/IGenArt721CoreContractV3_Engine.json +137 -13
- package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Engine_Flex.sol/IGenArt721CoreContractV3_Engine_Flex.json +1060 -0
- 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/interfaces/0.8.x/IWETH.sol/IWETH.json +55 -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 +295 -0
- 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 +104 -124
- package/artifacts/contracts/minter-suite/Minters/MinterPolyptychV0.sol/MinterPolyptychV0.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterSEAV0.sol/MinterSEAV0.json +1289 -0
- 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 +33 -0
- 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 +46 -0
- package/artifacts/contracts/mock/GasLimitReceiverMock.sol/GasLimitReceiverMock.json +28 -0
- 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 +51 -0
- package/artifacts/contracts/mock/SSTORE2Mock.sol/SSTORE2Mock.json +118 -0
- package/artifacts/contracts/{BasicRandomizer.sol → randomizer/deprecated/BasicRandomizer.sol}/BasicRandomizer.json +3 -3
- package/artifacts/contracts/randomizer/deprecated/BasicRandomizerBase_v0_0_0.sol/RandomizerBase.json +10 -0
- package/artifacts/contracts/randomizer/deprecated/PolyptychRandomizerV0.sol/BasicPolyptychRandomizerV0.json +229 -0
- package/artifacts/contracts/randomizer/deprecated/RandomizerV2.sol/BasicRandomizerV2.json +102 -0
- 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 +89 -141
- package/contracts/GenArt721CoreV3.sol +160 -204
- 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} +163 -216
- package/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol +2283 -0
- 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 +164 -190
- 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 +164 -0
- package/contracts/interfaces/0.8.x/IGenArt721CoreContractExposesHashSeed.sol +11 -0
- package/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Base.sol +42 -0
- package/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Engine.sol +0 -8
- package/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Engine_Flex.sol +132 -0
- 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/interfaces/0.8.x/IWETH.sol +11 -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 +765 -0
- package/contracts/minter-suite/MinterFilter/MinterFilterV1.sol +36 -48
- package/contracts/minter-suite/MinterFilter/MinterFilterV2.sol +756 -0
- package/contracts/minter-suite/Minters/MinterDAExpSettlementV2.sol +27 -35
- package/contracts/minter-suite/Minters/MinterDAExpV4.sol +17 -22
- package/contracts/minter-suite/Minters/MinterDALinV4.sol +16 -18
- package/contracts/minter-suite/Minters/MinterHolderV4.sol +20 -20
- package/contracts/minter-suite/Minters/MinterMerkleV5.sol +14 -16
- package/contracts/minter-suite/Minters/MinterPolyptychV0.sol +37 -36
- package/contracts/minter-suite/Minters/MinterSEAV0.sol +1273 -0
- package/contracts/minter-suite/Minters/MinterSetPriceERC20V4.sol +12 -12
- package/contracts/minter-suite/Minters/MinterSetPriceV4.sol +10 -11
- 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 +23 -0
- package/contracts/mock/DeadReceiverMock.sol +1 -1
- package/contracts/mock/DummySharedMinter.sol +75 -0
- package/contracts/mock/GasLimitReceiverBidderMock.sol +23 -0
- package/contracts/mock/GasLimitReceiverMock.sol +19 -0
- 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 +3 -12
- package/contracts/mock/ReentrancySEAMock.sol +36 -0
- package/contracts/mock/SSTORE2Mock.sol +93 -0
- package/contracts/{BasicRandomizer.sol → randomizer/deprecated/BasicRandomizer.sol} +1 -1
- package/contracts/randomizer/deprecated/BasicRandomizerBase_v0_0_0.sol +23 -0
- package/contracts/{BasicPolyptychRandomizerV0.sol → randomizer/deprecated/PolyptychRandomizerV0.sol} +20 -29
- package/contracts/{BasicRandomizerV2.sol → randomizer/deprecated/RandomizerV2.sol} +6 -14
- package/contracts/randomizer/primitive/PseudorandomAtomicBasic.sol +30 -0
- package/contracts/randomizer/shared/SharedRandomizerV0.sol +245 -0
- package/package.json +36 -30
- package/.env.example +0 -10
- package/artifacts/contracts/BasicPolyptychRandomizerV0.sol/BasicPolyptychRandomizerV0.json +0 -229
- package/artifacts/contracts/BasicRandomizerV2.sol/BasicRandomizerV2.json +0 -102
- package/artifacts/contracts/GenArt721CoreV3_Engine.sol/GenArt721CoreV3_Engine.json +0 -1942
- 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
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
// Creatd By: Art Blocks Inc.
|
|
3
|
+
|
|
4
|
+
pragma solidity ^0.8.0;
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* @title Art Blocks Script Storage Library (Reader)
|
|
8
|
+
* @notice This interface defines the expected read functions for the Art Blocks Script Storage Library (Reader).
|
|
9
|
+
*/
|
|
10
|
+
interface IBytecodeStorageReader {
|
|
11
|
+
/**
|
|
12
|
+
* @notice Read a string from contract bytecode
|
|
13
|
+
* @param _address address of deployed contract with bytecode stored in the V0 or V1 format
|
|
14
|
+
* @return data string read from contract bytecode
|
|
15
|
+
* @dev This function performs input validation that the contract to read is in an expected format
|
|
16
|
+
*/
|
|
17
|
+
function readFromBytecode(
|
|
18
|
+
address _address
|
|
19
|
+
) external view returns (string memory data);
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* @notice Read the bytes from contract bytecode that was written to the EVM using SSTORE2
|
|
23
|
+
* @param _address address of deployed contract with bytecode stored in the SSTORE2 format
|
|
24
|
+
* @return data bytes read from contract bytecode
|
|
25
|
+
* @dev This function performs no input validation on the provided contract,
|
|
26
|
+
* other than that there is content to read (but not that its a "storage contract")
|
|
27
|
+
*/
|
|
28
|
+
function readBytesFromSSTORE2Bytecode(
|
|
29
|
+
address _address
|
|
30
|
+
) external view returns (bytes memory data);
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* @notice Read the bytes from contract bytecode, with an explicitly provided starting offset
|
|
34
|
+
* @param _address address of deployed contract with bytecode stored in the V0 or V1 format
|
|
35
|
+
* @param _offset offset to read from in contract bytecode, explicitly provided (not calculated)
|
|
36
|
+
* @return data bytes read from contract bytecode
|
|
37
|
+
* @dev This function performs no input validation on the provided contract,
|
|
38
|
+
* other than that there is content to read (but not that its a "storage contract")
|
|
39
|
+
*/
|
|
40
|
+
function readBytesFromBytecode(
|
|
41
|
+
address _address,
|
|
42
|
+
uint256 _offset
|
|
43
|
+
) external view returns (bytes memory data);
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* @notice Get address for deployer for given contract bytecode
|
|
47
|
+
* @param _address address of deployed contract with bytecode stored in the V0 or V1 format
|
|
48
|
+
* @return writerAddress address read from contract bytecode
|
|
49
|
+
*/
|
|
50
|
+
function getWriterAddressForBytecode(
|
|
51
|
+
address _address
|
|
52
|
+
) external view returns (address);
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* @notice Get version for given contract bytecode
|
|
56
|
+
* @param _address address of deployed contract with bytecode stored in the V0 or V1 format
|
|
57
|
+
* @return version version read from contract bytecode
|
|
58
|
+
*/
|
|
59
|
+
function getLibraryVersionForBytecode(
|
|
60
|
+
address _address
|
|
61
|
+
) external view returns (bytes32);
|
|
62
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
// Created By: Art Blocks Inc.
|
|
3
|
+
pragma solidity ^0.8.0;
|
|
4
|
+
|
|
5
|
+
import "./IEngineRegistryV0.sol";
|
|
6
|
+
|
|
7
|
+
interface ICoreRegistryV1 is IEngineRegistryV0 {
|
|
8
|
+
function registerContracts(
|
|
9
|
+
address[] calldata _contractAddresses,
|
|
10
|
+
bytes32[] calldata _coreVersions,
|
|
11
|
+
bytes32[] calldata _coreTypes
|
|
12
|
+
) external;
|
|
13
|
+
|
|
14
|
+
function unregisterContracts(
|
|
15
|
+
address[] calldata _contractAddresses
|
|
16
|
+
) external;
|
|
17
|
+
|
|
18
|
+
function getNumRegisteredContracts() external view returns (uint256);
|
|
19
|
+
|
|
20
|
+
function getRegisteredContractAt(
|
|
21
|
+
uint256 _index
|
|
22
|
+
) external view returns (address);
|
|
23
|
+
|
|
24
|
+
function isRegisteredContract(
|
|
25
|
+
address _contractAddress
|
|
26
|
+
) external view returns (bool isRegistered);
|
|
27
|
+
}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
// SPDX-License-Identifier: GPL-3.0
|
|
2
|
+
// Created By: Art Blocks Inc.
|
|
3
|
+
|
|
4
|
+
import "./IFilteredMinterV2.sol";
|
|
5
|
+
|
|
6
|
+
pragma solidity ^0.8.0;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @title Interface for MinterSEA, inspired by nouns.wtf.
|
|
10
|
+
* This interface combines the set of interfaces that add support for
|
|
11
|
+
* a Serial English Auction Minter.
|
|
12
|
+
* @author Art Blocks Inc.
|
|
13
|
+
*/
|
|
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
|
+
|
|
46
|
+
/// Struct that defines a single token English auction
|
|
47
|
+
struct Auction {
|
|
48
|
+
// token number of NFT being auctioned
|
|
49
|
+
uint256 tokenId;
|
|
50
|
+
// The current highest bid amount (in wei)
|
|
51
|
+
uint256 currentBid;
|
|
52
|
+
// The address of the current highest bidder
|
|
53
|
+
// @dev if this is not the zero address, then the auction is
|
|
54
|
+
// considered initialized
|
|
55
|
+
address payable currentBidder;
|
|
56
|
+
// The time that the auction is scheduled to end
|
|
57
|
+
// max uint64 ~= 1.8e19 sec ~= 570 billion years
|
|
58
|
+
uint64 endTime;
|
|
59
|
+
// Whether or not the auction has been settled
|
|
60
|
+
bool settled;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/// Admin-controlled range of allowed auction durations updated
|
|
64
|
+
event AuctionDurationSecondsRangeUpdated(
|
|
65
|
+
uint32 minAuctionDurationSeconds,
|
|
66
|
+
uint32 maxAuctionDurationSeconds
|
|
67
|
+
);
|
|
68
|
+
|
|
69
|
+
/// Admin-controlled minimum bid increment percentage updated
|
|
70
|
+
event MinterMinBidIncrementPercentageUpdated(
|
|
71
|
+
uint8 minterMinBidIncrementPercentage
|
|
72
|
+
);
|
|
73
|
+
|
|
74
|
+
/// Admin-controlled time buffer updated
|
|
75
|
+
event MinterTimeBufferUpdated(uint32 minterTimeBufferSeconds);
|
|
76
|
+
|
|
77
|
+
// Admin-controlled refund gas limit updated
|
|
78
|
+
event MinterRefundGasLimitUpdated(uint16 refundGasLimit);
|
|
79
|
+
|
|
80
|
+
/// Artist configured future auction details
|
|
81
|
+
event ConfiguredFutureAuctions(
|
|
82
|
+
uint256 indexed projectId,
|
|
83
|
+
uint64 timestampStart,
|
|
84
|
+
uint32 auctionDurationSeconds,
|
|
85
|
+
uint256 basePrice
|
|
86
|
+
);
|
|
87
|
+
|
|
88
|
+
/// Future auction details for project `projectId` reset
|
|
89
|
+
event ResetAuctionDetails(uint256 indexed projectId);
|
|
90
|
+
|
|
91
|
+
/// New token auction created, token created and sent to minter
|
|
92
|
+
event AuctionInitialized(
|
|
93
|
+
uint256 indexed tokenId,
|
|
94
|
+
address indexed bidder,
|
|
95
|
+
uint256 bidAmount,
|
|
96
|
+
uint64 endTime
|
|
97
|
+
);
|
|
98
|
+
|
|
99
|
+
/// Successful bid placed on token auction
|
|
100
|
+
event AuctionBid(
|
|
101
|
+
uint256 indexed tokenId,
|
|
102
|
+
address indexed bidder,
|
|
103
|
+
uint256 bidAmount
|
|
104
|
+
);
|
|
105
|
+
|
|
106
|
+
/// Token auction was settled (token distributed to winner)
|
|
107
|
+
event AuctionSettled(
|
|
108
|
+
uint256 indexed tokenId,
|
|
109
|
+
address indexed winner,
|
|
110
|
+
uint256 price
|
|
111
|
+
);
|
|
112
|
+
|
|
113
|
+
// Next token ID for project `projectId` updated
|
|
114
|
+
event ProjectNextTokenUpdated(uint256 indexed projectId, uint256 tokenId);
|
|
115
|
+
|
|
116
|
+
// Next token ID for project `projectId` was ejected from the minter
|
|
117
|
+
// and is no longer populated
|
|
118
|
+
event ProjectNextTokenEjected(uint256 indexed projectId);
|
|
119
|
+
|
|
120
|
+
function configureFutureAuctions(
|
|
121
|
+
uint256 _projectId,
|
|
122
|
+
uint256 _timestampStart,
|
|
123
|
+
uint256 _auctionDurationSeconds,
|
|
124
|
+
uint256 _basePrice
|
|
125
|
+
) external;
|
|
126
|
+
|
|
127
|
+
function resetAuctionDetails(uint256 _projectId) external;
|
|
128
|
+
|
|
129
|
+
// artist-only function that populates the next token ID to be auctioned
|
|
130
|
+
// for project `projectId`
|
|
131
|
+
function tryPopulateNextToken(uint256 _projectId) external;
|
|
132
|
+
|
|
133
|
+
function settleAuctionAndCreateBid(
|
|
134
|
+
uint256 _settleTokenId,
|
|
135
|
+
uint256 _bidTokenId
|
|
136
|
+
) external payable;
|
|
137
|
+
|
|
138
|
+
function settleAuction(uint256 _tokenId) external;
|
|
139
|
+
|
|
140
|
+
function createBid(uint256 _tokenId) external payable;
|
|
141
|
+
|
|
142
|
+
function createBid_l34(uint256 _tokenId) external payable;
|
|
143
|
+
|
|
144
|
+
function minterConfigurationDetails()
|
|
145
|
+
external
|
|
146
|
+
view
|
|
147
|
+
returns (
|
|
148
|
+
uint32 minAuctionDurationSeconds_,
|
|
149
|
+
uint32 maxAuctionDurationSeconds_,
|
|
150
|
+
uint8 minterMinBidIncrementPercentage_,
|
|
151
|
+
uint32 minterTimeBufferSeconds_,
|
|
152
|
+
uint16 minterRefundGasLimit_
|
|
153
|
+
);
|
|
154
|
+
|
|
155
|
+
function projectConfigurationDetails(
|
|
156
|
+
uint256 _projectId
|
|
157
|
+
) external view returns (ProjectConfig memory projectConfiguration_);
|
|
158
|
+
|
|
159
|
+
function projectActiveAuctionDetails(
|
|
160
|
+
uint256 _projectId
|
|
161
|
+
) external view returns (Auction memory);
|
|
162
|
+
|
|
163
|
+
function getTokenToBid(uint256 _projectId) external view returns (uint256);
|
|
164
|
+
}
|
|
@@ -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
|
|
|
@@ -100,6 +103,14 @@ interface IGenArt721CoreContractV3_Base is IManifold {
|
|
|
100
103
|
uint256 _projectId
|
|
101
104
|
) external view returns (uint256);
|
|
102
105
|
|
|
106
|
+
function projectIdToSecondaryMarketRoyaltyPercentage(
|
|
107
|
+
uint256 _projectId
|
|
108
|
+
) external view returns (uint256);
|
|
109
|
+
|
|
110
|
+
function projectURIInfo(
|
|
111
|
+
uint256 _projectId
|
|
112
|
+
) external view returns (string memory projectBaseURI);
|
|
113
|
+
|
|
103
114
|
// @dev new function in V3
|
|
104
115
|
function projectStateData(
|
|
105
116
|
uint256 _projectId
|
|
@@ -115,6 +126,37 @@ interface IGenArt721CoreContractV3_Base is IManifold {
|
|
|
115
126
|
bool locked
|
|
116
127
|
);
|
|
117
128
|
|
|
129
|
+
function projectDetails(
|
|
130
|
+
uint256 _projectId
|
|
131
|
+
)
|
|
132
|
+
external
|
|
133
|
+
view
|
|
134
|
+
returns (
|
|
135
|
+
string memory projectName,
|
|
136
|
+
string memory artist,
|
|
137
|
+
string memory description,
|
|
138
|
+
string memory website,
|
|
139
|
+
string memory license
|
|
140
|
+
);
|
|
141
|
+
|
|
142
|
+
function projectScriptDetails(
|
|
143
|
+
uint256 _projectId
|
|
144
|
+
)
|
|
145
|
+
external
|
|
146
|
+
view
|
|
147
|
+
returns (
|
|
148
|
+
string memory scriptTypeAndVersion,
|
|
149
|
+
string memory aspectRatio,
|
|
150
|
+
uint256 scriptCount
|
|
151
|
+
);
|
|
152
|
+
|
|
153
|
+
function projectScriptByIndex(
|
|
154
|
+
uint256 _projectId,
|
|
155
|
+
uint256 _index
|
|
156
|
+
) external view returns (string memory);
|
|
157
|
+
|
|
158
|
+
function tokenIdToHash(uint256 _tokenId) external view returns (bytes32);
|
|
159
|
+
|
|
118
160
|
// function to set a token's hash (must be guarded)
|
|
119
161
|
function setTokenHash_8PT(uint256 _tokenId, bytes32 _hash) external;
|
|
120
162
|
|
|
@@ -69,12 +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 for a given tokenId
|
|
74
|
-
function tokenIdToHash(uint256 _tokenId) external view returns (bytes32);
|
|
75
|
-
|
|
76
|
-
// function to read the hash-seed for a given tokenId
|
|
77
|
-
function tokenIdToHashSeed(
|
|
78
|
-
uint256 _tokenId
|
|
79
|
-
) external view returns (bytes12);
|
|
80
72
|
}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
// Created By: Art Blocks Inc.
|
|
3
|
+
|
|
4
|
+
pragma solidity ^0.8.0;
|
|
5
|
+
|
|
6
|
+
import "./IAdminACLV0.sol";
|
|
7
|
+
import "./IGenArt721CoreContractV3_Engine.sol";
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* @title This interface is intended to house interface items that are common
|
|
11
|
+
* across all GenArt721CoreContractV3 Engine Flex and derivative implementations.
|
|
12
|
+
* @author Art Blocks Inc.
|
|
13
|
+
*/
|
|
14
|
+
interface IGenArt721CoreContractV3_Engine_Flex is
|
|
15
|
+
IGenArt721CoreContractV3_Engine
|
|
16
|
+
{
|
|
17
|
+
/**
|
|
18
|
+
* @notice When an external asset dependency is updated or added, this event is emitted.
|
|
19
|
+
* @param _projectId The project ID of the project that was updated.
|
|
20
|
+
* @param _index The index of the external asset dependency that was updated.
|
|
21
|
+
* @param _cid The content ID of the external asset dependency. This is an empty string
|
|
22
|
+
* if the dependency type is ONCHAIN.
|
|
23
|
+
* @param _dependencyType The type of the external asset dependency.
|
|
24
|
+
* @param _externalAssetDependencyCount The number of external asset dependencies.
|
|
25
|
+
*/
|
|
26
|
+
event ExternalAssetDependencyUpdated(
|
|
27
|
+
uint256 indexed _projectId,
|
|
28
|
+
uint256 indexed _index,
|
|
29
|
+
string _cid,
|
|
30
|
+
ExternalAssetDependencyType _dependencyType,
|
|
31
|
+
uint24 _externalAssetDependencyCount
|
|
32
|
+
);
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* @notice The project id `_projectId` has had an external asset dependency removed at index `_index`.
|
|
36
|
+
*/
|
|
37
|
+
event ExternalAssetDependencyRemoved(
|
|
38
|
+
uint256 indexed _projectId,
|
|
39
|
+
uint256 indexed _index
|
|
40
|
+
);
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* @notice The preferred gateway for dependency type `_dependencyType` has been updated to `_gatewayAddress`.
|
|
44
|
+
*/
|
|
45
|
+
event GatewayUpdated(
|
|
46
|
+
ExternalAssetDependencyType indexed _dependencyType,
|
|
47
|
+
string _gatewayAddress
|
|
48
|
+
);
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* @notice The project id `_projectId` has had all external asset dependencies locked.
|
|
52
|
+
* @dev This is a one-way operation. Once locked, the external asset dependencies cannot be updated.
|
|
53
|
+
*/
|
|
54
|
+
event ProjectExternalAssetDependenciesLocked(uint256 indexed _projectId);
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* @notice An external asset dependency type. Can be one of IPFS, ARWEAVE, or ONCHAIN.
|
|
58
|
+
*/
|
|
59
|
+
enum ExternalAssetDependencyType {
|
|
60
|
+
IPFS,
|
|
61
|
+
ARWEAVE,
|
|
62
|
+
ONCHAIN
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* @notice An external asset dependency. This is a struct that contains the CID of the dependency,
|
|
67
|
+
* the type of the dependency, and the address of the bytecode for this dependency.
|
|
68
|
+
*/
|
|
69
|
+
struct ExternalAssetDependency {
|
|
70
|
+
string cid;
|
|
71
|
+
ExternalAssetDependencyType dependencyType;
|
|
72
|
+
address bytecodeAddress;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* @notice An external asset dependency with data. This is a convenience struct that contains the CID of the dependency,
|
|
77
|
+
* the type of the dependency, the address of the bytecode for this dependency, and the data retrieved from this bytecode address.
|
|
78
|
+
*/
|
|
79
|
+
struct ExternalAssetDependencyWithData {
|
|
80
|
+
string cid;
|
|
81
|
+
ExternalAssetDependencyType dependencyType;
|
|
82
|
+
address bytecodeAddress;
|
|
83
|
+
string data;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
// preferredIPFSGateway is a url string
|
|
87
|
+
function preferredIPFSGateway() external view returns (string memory);
|
|
88
|
+
|
|
89
|
+
// preferredArweaveGateway is a url string
|
|
90
|
+
function preferredArweaveGateway() external view returns (string memory);
|
|
91
|
+
|
|
92
|
+
// updates the preferred IPFS gateway
|
|
93
|
+
function updateIPFSGateway(string calldata _gateway) external;
|
|
94
|
+
|
|
95
|
+
// updates the preferred Arweave gateway
|
|
96
|
+
function updateArweaveGateway(string calldata _gateway) external;
|
|
97
|
+
|
|
98
|
+
// locks the external asset dependencies for a project
|
|
99
|
+
function lockProjectExternalAssetDependencies(uint256 _projectId) external;
|
|
100
|
+
|
|
101
|
+
// updates the external asset dependency for a project at a given index
|
|
102
|
+
function updateProjectExternalAssetDependency(
|
|
103
|
+
uint256 _projectId,
|
|
104
|
+
uint256 _index,
|
|
105
|
+
string memory _cidOrData,
|
|
106
|
+
ExternalAssetDependencyType _dependencyType
|
|
107
|
+
) external;
|
|
108
|
+
|
|
109
|
+
// adds an external asset dependency for a project
|
|
110
|
+
function addProjectExternalAssetDependency(
|
|
111
|
+
uint256 _projectId,
|
|
112
|
+
string memory _cidOrData,
|
|
113
|
+
ExternalAssetDependencyType _dependencyType
|
|
114
|
+
) external;
|
|
115
|
+
|
|
116
|
+
// removes an external asset dependency for a project at a given index
|
|
117
|
+
function removeProjectExternalAssetDependency(
|
|
118
|
+
uint256 _projectId,
|
|
119
|
+
uint256 _index
|
|
120
|
+
) external;
|
|
121
|
+
|
|
122
|
+
// getter function for project external asset dependencies
|
|
123
|
+
function projectExternalAssetDependencyByIndex(
|
|
124
|
+
uint256 _projectId,
|
|
125
|
+
uint256 _index
|
|
126
|
+
) external view returns (ExternalAssetDependencyWithData memory);
|
|
127
|
+
|
|
128
|
+
// getter function project external asset dependency count
|
|
129
|
+
function projectExternalAssetDependencyCount(
|
|
130
|
+
uint256 _projectId
|
|
131
|
+
) external view returns (uint256);
|
|
132
|
+
}
|
|
@@ -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
|
+
}
|