@artblocks/contracts 1.2.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 +22 -38
- 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 +144 -14
- 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 +15 -2
- package/artifacts/contracts/archive/GenArt721CoreV3_Explorations.sol/GenArt721CoreV3_Explorations.json +15 -2
- 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/MinterDAExp/MinterDAExpV4.sol/MinterDAExpV4.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/MinterDAExpSettlement/MinterDAExpSettlementV2.sol/MinterDAExpSettlementV2.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/MinterDALin/MinterDALinV4.sol/MinterDALinV4.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/MinterHolder/MinterHolderV4.sol/MinterHolderV4.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/MinterMerkle/MinterMerkleV5.sol/MinterMerkleV5.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterPolyptych/MinterPolyptychV0.sol/IGenArt721CoreContractV3WithRandomizer.json +37 -0
- package/artifacts/contracts/archive/minter-suite/Minters/MinterPolyptych/MinterPolyptychV0.sol/MinterPolyptychV0.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterSEA/MinterSEAV0.sol/MinterSEAV0.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/MinterSetPrice/MinterSetPriceV4.sol/MinterSetPriceV4.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/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V4.sol/MinterSetPriceERC20V4.json +2 -2
- package/artifacts/contracts/engine/V3/EngineFactoryV0.sol/EngineFactoryV0.json +20 -2
- package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine.sol/GenArt721CoreV3_Engine.json +48 -12
- package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol/GenArt721CoreV3_Engine_Flex.json +76 -40
- package/artifacts/contracts/engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol/GenArt721CoreV3_Engine_Flex_PROOF.json +15 -2
- 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 +15 -2
- package/artifacts/contracts/engine/V3/forks/PROHIBITION/interfaces/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.sol/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.json +37 -0
- 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/IBytecodeStorageReader.sol/IBytecodeStorageReader.json +7 -7
- package/artifacts/contracts/interfaces/v0.8.x/IBytecodeStorageReaderV2.sol/IBytecodeStorageReaderV2.json +7 -7
- 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 +170 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3.sol/IGenArt721CoreContractV3.json +37 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Base.sol/IGenArt721CoreContractV3_Base.json +37 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine.sol/IGenArt721CoreContractV3_Engine.json +42 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex.sol/IGenArt721CoreContractV3_Engine_Flex.json +42 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex_PreV3p2.sol/IGenArt721CoreContractV3_Engine_Flex_PreV3p2.json +37 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_PreV3p2.sol/IGenArt721CoreContractV3_Engine_PreV3p2.json +37 -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/IOwnedCreate2FactoryV0.sol/IOwnedCreate2FactoryV0.json +74 -0
- package/artifacts/contracts/interfaces/v0.8.x/ISeaDropShimForContract.sol/ISeaDropShimForContract.json +37 -0
- package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterMinPriceV0.sol/ISharedMinterMinPriceV0.json +37 -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/libs/v0.8.x/AuthLib.sol/AuthLib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/Bytes32Strings.sol/Bytes32Strings.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/DependencyRegistryStorageLib.sol/DependencyRegistryStorageLib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/JsonStatic.sol/JsonStatic.json +10 -0
- package/artifacts/contracts/libs/v0.8.x/V3FlexLib.sol/V3FlexLib.json +9 -22
- package/artifacts/contracts/libs/v0.8.x/minter-libs/MaxInvocationsLib.sol/MaxInvocationsLib.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 +2 -2
- package/artifacts/contracts/libs/v0.8.x/minter-libs/SEALib.sol/SEALib.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/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 +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterSEAV1.sol/MinterSEAV1.json +2 -2
- 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 +2 -2
- 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 +2 -2
- package/artifacts/contracts/mock/DummySharedMinter.sol/DummySharedMinter.json +2 -2
- package/artifacts/contracts/mock/ERC20MockAltDecimals.sol/ERC20MockAltDecimals.json +318 -0
- package/artifacts/contracts/mock/ForceSendMock.sol/ForceSendMock.json +2 -2
- package/artifacts/contracts/mock/GenArt721CoreV3_Engine_IncorrectCoreType.sol/GenArt721CoreV3_Engine_IncorrectCoreType.json +2 -2
- package/artifacts/contracts/mock/MockAdminACLV0_PROHIBITION.sol/MockAdminACLV0Events_PROHIBITION.json +2 -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/randomizer/deprecated/PolyptychRandomizerV0.sol/BasicPolyptychRandomizerV0.json +2 -2
- package/artifacts/contracts/randomizer/deprecated/RandomizerV2.sol/BasicRandomizerV2.json +2 -2
- package/artifacts/contracts/randomizer/shared/SharedRandomizerV0.sol/SharedRandomizerV0.json +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 +229 -60
- package/contracts/GenArt721CoreV3_Curated.sol +133 -0
- package/contracts/OwnedCreate2FactoryV0.sol +173 -0
- package/contracts/engine/V3/EngineFactoryV0.sol +10 -2
- package/contracts/engine/V3/GenArt721CoreV3_Engine.sol +139 -70
- package/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol +141 -71
- 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/IBytecodeStorageReader.sol +34 -36
- package/contracts/interfaces/v0.8.x/IBytecodeStorageReaderV2.sol +5 -3
- 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 +94 -0
- package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Base.sol +13 -2
- package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine.sol +3 -1
- 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/IOwnedCreate2FactoryV0.sol +40 -0
- package/contracts/interfaces/v0.8.x/ISeaDropShimForContract.sol +19 -0
- package/contracts/interfaces/v0.8.x/ISharedMinterMinPriceV0.sol +22 -0
- package/contracts/interfaces/v0.8.x/ISharedMinterRequired.sol +10 -4
- 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/libs/v0.8.x/Bytes32Strings.sol +20 -0
- package/contracts/libs/v0.8.x/DependencyRegistryStorageLib.sol +11 -3
- package/contracts/libs/v0.8.x/JsonStatic.sol +373 -0
- package/contracts/libs/v0.8.x/V3FlexLib.sol +9 -3
- package/contracts/libs/v0.8.x/minter-libs/MinPriceLib.sol +64 -0
- package/contracts/libs/v0.8.x/minter-libs/SplitFundsLib.sol +107 -0
- package/contracts/minter-suite/Minters/MinterMinPriceMerkleV0.sol +765 -0
- package/contracts/minter-suite/Minters/MinterMinPriceV0.sol +462 -0
- package/contracts/minter-suite/Minters/one-off/SeaDropXArtBlocksShim.sol +869 -0
- package/contracts/mock/ERC20MockAltDecimals.sol +31 -0
- package/contracts/mock/MockFileStore.sol +22 -0
- package/package.json +20 -18
|
@@ -3,60 +3,58 @@
|
|
|
3
3
|
|
|
4
4
|
pragma solidity ^0.8.0;
|
|
5
5
|
|
|
6
|
+
import {IBytecodeStorageReader_Base} from "./IBytecodeStorageReader_Base.sol";
|
|
7
|
+
|
|
6
8
|
/**
|
|
7
|
-
* @title Art Blocks Script Storage Library
|
|
8
|
-
* @notice This interface defines the expected read functions for the Art Blocks Script Storage Library
|
|
9
|
+
* @title Art Blocks Script Storage Library - Reader Contract
|
|
10
|
+
* @notice This interface defines the expected read functions for the Art Blocks Script Storage Library's Reader
|
|
11
|
+
* Contracts. It is extended from the base interface to add additional read functions for further introspection of
|
|
12
|
+
* stored data.
|
|
9
13
|
*/
|
|
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
|
-
|
|
14
|
+
interface IBytecodeStorageReader is IBytecodeStorageReader_Base {
|
|
21
15
|
/**
|
|
22
|
-
* @notice Read
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
* @dev
|
|
26
|
-
*
|
|
16
|
+
* @notice Read a bytes array from the SSTORE2-formatted bytecode of a contract.
|
|
17
|
+
* Note that this function is only compatible with contracts that have been deployed using the popular SSTORE2
|
|
18
|
+
* library.
|
|
19
|
+
* @dev see versioned BytecodeStorageReader implementation details to understand which data are being returned,
|
|
20
|
+
* espcially in the context of EOF updates.
|
|
21
|
+
* @param address_ address of contract with SSTORE2-formatted bytecode to be read
|
|
22
|
+
* @return data The bytes data stored at the specific address.
|
|
27
23
|
*/
|
|
28
24
|
function readBytesFromSSTORE2Bytecode(
|
|
29
|
-
address
|
|
25
|
+
address address_
|
|
30
26
|
) external view returns (bytes memory data);
|
|
31
27
|
|
|
32
28
|
/**
|
|
33
|
-
* @notice Read
|
|
34
|
-
* @
|
|
35
|
-
*
|
|
36
|
-
* @
|
|
37
|
-
* @
|
|
38
|
-
*
|
|
29
|
+
* @notice Read a bytes array from the a contract deployed via BytecodeStorage.
|
|
30
|
+
* @dev see versioned BytecodeStorageReader implementation details to understand which data are being returned, and
|
|
31
|
+
* how offset is interpreted, especially in the context of EOF updates.
|
|
32
|
+
* @param address_ address of contract with valid bytecode to be read
|
|
33
|
+
* @param offset offset to read from in contract bytecode, explicitly provided (not calculated)
|
|
34
|
+
* @return The bytes data stored at the specific address.
|
|
39
35
|
*/
|
|
40
36
|
function readBytesFromBytecode(
|
|
41
|
-
address
|
|
42
|
-
uint256
|
|
43
|
-
) external view returns (bytes memory
|
|
37
|
+
address address_,
|
|
38
|
+
uint256 offset
|
|
39
|
+
) external view returns (bytes memory);
|
|
40
|
+
|
|
41
|
+
//------ Metadata Functions ------//
|
|
44
42
|
|
|
45
43
|
/**
|
|
46
|
-
* @notice Get address
|
|
47
|
-
* @param
|
|
48
|
-
* @return writerAddress address
|
|
44
|
+
* @notice Get address of deployer for given contract deployed via BytecodeStorage.
|
|
45
|
+
* @param address_ address of deployed contract
|
|
46
|
+
* @return writerAddress address of deployer
|
|
49
47
|
*/
|
|
50
48
|
function getWriterAddressForBytecode(
|
|
51
|
-
address
|
|
49
|
+
address address_
|
|
52
50
|
) external view returns (address);
|
|
53
51
|
|
|
54
52
|
/**
|
|
55
|
-
* @notice Get version for given contract
|
|
56
|
-
* @param
|
|
57
|
-
* @return version version
|
|
53
|
+
* @notice Get version for given contract deployed via BytecodeStorage.
|
|
54
|
+
* @param address_ address of deployed contract
|
|
55
|
+
* @return version version of the contract
|
|
58
56
|
*/
|
|
59
57
|
function getLibraryVersionForBytecode(
|
|
60
|
-
address
|
|
58
|
+
address address_
|
|
61
59
|
) external view returns (bytes32);
|
|
62
60
|
}
|
|
@@ -7,14 +7,16 @@ import {IBytecodeStorageReader} from "./IBytecodeStorageReader.sol";
|
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* @title Art Blocks Script Storage Library (Reader)
|
|
10
|
-
* @notice This interface defines the expected read functions for
|
|
10
|
+
* @notice This interface defines the expected read functions for a Bytecode Storage Reader contract.
|
|
11
11
|
* @dev This interface extends the V1 interface to add a function to get if data are stored in compressed format,
|
|
12
12
|
* which is functionality added in the V2 format of the bytecode storage.
|
|
13
13
|
*/
|
|
14
14
|
interface IBytecodeStorageReaderV2 is IBytecodeStorageReader {
|
|
15
|
+
//------ Metadata Functions ------//
|
|
16
|
+
|
|
15
17
|
/**
|
|
16
|
-
* @notice Get if data are stored in compressed format for given contract
|
|
17
|
-
* @param _address address of deployed contract
|
|
18
|
+
* @notice Get if data are stored in compressed format for given contract deployed via BytecodeStorage.
|
|
19
|
+
* @param _address address of deployed contract
|
|
18
20
|
* @return isCompressed boolean indicating if the stored data are compressed
|
|
19
21
|
*/
|
|
20
22
|
function getIsCompressedForBytecode(
|
|
@@ -0,0 +1,20 @@
|
|
|
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 - Minimal Interface for Reader Contracts
|
|
8
|
+
* @notice This interface defines the minimal expected read function(s) for a Bytecode Storage Reader contract.
|
|
9
|
+
*/
|
|
10
|
+
interface IBytecodeStorageReader_Base {
|
|
11
|
+
/**
|
|
12
|
+
* @notice Read a string from a data contract deployed via BytecodeStorage.
|
|
13
|
+
* @dev may also support reading additional stored data formats in the future.
|
|
14
|
+
* @param address_ address of contract deployed via BytecodeStorage to be read
|
|
15
|
+
* @return data The string data stored at the specific address.
|
|
16
|
+
*/
|
|
17
|
+
function readFromBytecode(
|
|
18
|
+
address address_
|
|
19
|
+
) external view returns (string memory data);
|
|
20
|
+
}
|
|
@@ -3,10 +3,22 @@
|
|
|
3
3
|
pragma solidity ^0.8.19;
|
|
4
4
|
|
|
5
5
|
interface IDependencyRegistryV0 {
|
|
6
|
+
// legacy event used before deferring to core registry for allowlist
|
|
6
7
|
event SupportedCoreContractAdded(address indexed coreContractAddress);
|
|
7
8
|
|
|
9
|
+
// legacy event used before deferring to core registry for allowlist
|
|
8
10
|
event SupportedCoreContractRemoved(address indexed coreContractAddress);
|
|
9
11
|
|
|
12
|
+
// active event used to add additional supported contracts beyond what core registry allows
|
|
13
|
+
event SupportedCoreContractOverrideAdded(
|
|
14
|
+
address indexed coreContractAddress
|
|
15
|
+
);
|
|
16
|
+
|
|
17
|
+
// active event used to remove additional supported contracts beyond what core registry allows
|
|
18
|
+
event SupportedCoreContractOverrideRemoved(
|
|
19
|
+
address indexed coreContractAddress
|
|
20
|
+
);
|
|
21
|
+
|
|
10
22
|
event ProjectDependencyOverrideAdded(
|
|
11
23
|
address indexed coreContractAddress,
|
|
12
24
|
uint256 indexed projectId,
|
|
@@ -71,6 +83,8 @@ interface IDependencyRegistryV0 {
|
|
|
71
83
|
|
|
72
84
|
event DependencyScriptUpdated(bytes32 indexed dependencyNameAndVersion);
|
|
73
85
|
|
|
86
|
+
event CoreRegistryAddressUpdated(address indexed coreRegistryAddress);
|
|
87
|
+
|
|
74
88
|
/**
|
|
75
89
|
* @notice Returns the count of scripts for dependency `dependencyNameAndVersion`.
|
|
76
90
|
* @param dependencyNameAndVersion Dependency type to be queried.
|
|
@@ -97,4 +111,84 @@ interface IDependencyRegistryV0 {
|
|
|
97
111
|
bytes32 dependencyNameAndVersion,
|
|
98
112
|
uint256 index
|
|
99
113
|
) external view returns (string memory);
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* @notice Returns details for a given dependency type `dependencyNameAndVersion`.
|
|
117
|
+
* @param dependencyNameAndVersion Name and version of dependency (i.e. "name@version") used to identify dependency.
|
|
118
|
+
* @return nameAndVersion String representation of `dependencyNameAndVersion`.
|
|
119
|
+
* (e.g. "p5js(atSymbol)1.0.0")
|
|
120
|
+
* @return licenseType License type for dependency
|
|
121
|
+
* @return preferredCDN Preferred CDN URL for dependency
|
|
122
|
+
* @return additionalCDNCount Count of additional CDN URLs for dependency
|
|
123
|
+
* @return preferredRepository Preferred repository URL for dependency
|
|
124
|
+
* @return additionalRepositoryCount Count of additional repository URLs for dependency
|
|
125
|
+
* @return dependencyWebsite Project website URL for dependency
|
|
126
|
+
* @return availableOnChain Whether dependency is available on chain
|
|
127
|
+
* @return scriptCount Count of on-chain scripts for dependency
|
|
128
|
+
*/
|
|
129
|
+
function getDependencyDetails(
|
|
130
|
+
bytes32 dependencyNameAndVersion
|
|
131
|
+
)
|
|
132
|
+
external
|
|
133
|
+
view
|
|
134
|
+
returns (
|
|
135
|
+
string memory nameAndVersion,
|
|
136
|
+
string memory licenseType,
|
|
137
|
+
string memory preferredCDN,
|
|
138
|
+
uint24 additionalCDNCount,
|
|
139
|
+
string memory preferredRepository,
|
|
140
|
+
uint24 additionalRepositoryCount,
|
|
141
|
+
string memory dependencyWebsite,
|
|
142
|
+
bool availableOnChain,
|
|
143
|
+
uint24 scriptCount
|
|
144
|
+
);
|
|
145
|
+
|
|
146
|
+
/**
|
|
147
|
+
* @notice Returns the dependency name and version for a given project (`projectId`)
|
|
148
|
+
* on a given core contract (`_contractAddress`). If no override is set,
|
|
149
|
+
* the core contract is called to retrieve the script type and version as
|
|
150
|
+
* dependency type. For any contract earlier than v3, that does not have
|
|
151
|
+
* an override set, this will revert.
|
|
152
|
+
* @param contractAddress Core contract address.
|
|
153
|
+
* @param projectId Project to return dependency type for.
|
|
154
|
+
* @return dependencyType Identifier for the dependency (i.e. "name@version") used by project.
|
|
155
|
+
*/
|
|
156
|
+
function getDependencyNameAndVersionForProject(
|
|
157
|
+
address contractAddress,
|
|
158
|
+
uint256 projectId
|
|
159
|
+
) external view returns (string memory);
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* @notice Returns whether the given contract address is a supported core contract.
|
|
163
|
+
* @param coreContractAddress Address of the core contract to be queried.
|
|
164
|
+
* @return True if the given contract address is a supported core contract.
|
|
165
|
+
*/
|
|
166
|
+
function isSupportedCoreContract(
|
|
167
|
+
address coreContractAddress
|
|
168
|
+
) external view returns (bool);
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
* @notice Convenience function that returns whether `_sender` is allowed
|
|
172
|
+
* to call function with selector `_selector` on contract `_contract`, as
|
|
173
|
+
* determined by this contract's current Admin ACL contract. Expected use
|
|
174
|
+
* cases include minter contracts checking if caller is allowed to call
|
|
175
|
+
* admin-gated functions on minter contracts.
|
|
176
|
+
* @param sender Address of the sender calling function with selector
|
|
177
|
+
* `selector` on contract `contract_`.
|
|
178
|
+
* @param contract_ Address of the contract being called by `sender`.
|
|
179
|
+
* @param selector Function selector of the function being called by
|
|
180
|
+
* `sender`.
|
|
181
|
+
* @return bool Whether `sender` is allowed to call function with selector
|
|
182
|
+
* `selector` on contract `contract_`.
|
|
183
|
+
* @dev assumes the Admin ACL contract is the owner of this contract, which
|
|
184
|
+
* is expected to always be true.
|
|
185
|
+
* @dev adminACLContract is expected to either be null address (if owner
|
|
186
|
+
* has renounced ownership), or conform to IAdminACLV0 interface. Check for
|
|
187
|
+
* null address first to avoid revert when admin has renounced ownership.
|
|
188
|
+
*/
|
|
189
|
+
function adminACLAllowed(
|
|
190
|
+
address sender,
|
|
191
|
+
address contract_,
|
|
192
|
+
bytes4 selector
|
|
193
|
+
) external returns (bool);
|
|
100
194
|
}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
pragma solidity ^0.8.0;
|
|
5
5
|
|
|
6
6
|
import "./IAdminACLV0.sol";
|
|
7
|
+
import "./IGenArt721CoreProjectScriptV1.sol";
|
|
7
8
|
|
|
8
9
|
/**
|
|
9
10
|
* @title This interface is intended to house interface items that are common
|
|
@@ -12,7 +13,7 @@ import "./IAdminACLV0.sol";
|
|
|
12
13
|
* add support the Royalty Registry by default.
|
|
13
14
|
* @author Art Blocks Inc.
|
|
14
15
|
*/
|
|
15
|
-
interface IGenArt721CoreContractV3_Base {
|
|
16
|
+
interface IGenArt721CoreContractV3_Base is IGenArt721CoreProjectScriptV1 {
|
|
16
17
|
// This interface emits generic events that contain fields that indicate
|
|
17
18
|
// which parameter has been updated. This is sufficient for application
|
|
18
19
|
// state management, while also simplifying the contract and indexing code.
|
|
@@ -21,6 +22,15 @@ interface IGenArt721CoreContractV3_Base {
|
|
|
21
22
|
// be introspected by indexers due to the design of this smart contract
|
|
22
23
|
// exposing these state changes via publicly viewable fields.
|
|
23
24
|
|
|
25
|
+
/**
|
|
26
|
+
* @notice Event emitted when the Art Blocks Curation Registry contract is updated.
|
|
27
|
+
* @dev only utilized by subset of V3 core contracts (Art Blocks Curated contracts)
|
|
28
|
+
* @param artblocksCurationRegistryAddress Address of Art Blocks Curation Registry contract.
|
|
29
|
+
*/
|
|
30
|
+
event ArtBlocksCurationRegistryContractUpdated(
|
|
31
|
+
address indexed artblocksCurationRegistryAddress
|
|
32
|
+
);
|
|
33
|
+
|
|
24
34
|
/**
|
|
25
35
|
* @notice Project's royalty splitter was updated to `_splitter`.
|
|
26
36
|
* @dev New event in v3.2
|
|
@@ -46,7 +56,8 @@ interface IGenArt721CoreContractV3_Base {
|
|
|
46
56
|
FIELD_PROVIDER_SALES_ADDRESSES, // 7
|
|
47
57
|
FIELD_PROVIDER_PRIMARY_SALES_PERCENTAGES, // 8
|
|
48
58
|
FIELD_PROVIDER_SECONDARY_SALES_BPS, // 9
|
|
49
|
-
FIELD_SPLIT_PROVIDER // 10
|
|
59
|
+
FIELD_SPLIT_PROVIDER, // 10
|
|
60
|
+
FIELD_BYTECODE_STORAGE_READER // 11
|
|
50
61
|
}
|
|
51
62
|
|
|
52
63
|
// The following fields are used to indicate which project-level parameter
|
|
@@ -51,11 +51,13 @@ interface IGenArt721CoreContractV3_Engine is IGenArt721CoreContractV3_Base {
|
|
|
51
51
|
* @param adminACLContract_ Address of admin access control contract, to be
|
|
52
52
|
* set as contract owner.
|
|
53
53
|
* @param defaultBaseURIHost Base URI prefix to initialize default base URI with.
|
|
54
|
+
* @param bytecodeStorageReaderContract_ Address of the bytecode storage reader contract.
|
|
54
55
|
*/
|
|
55
56
|
function initialize(
|
|
56
57
|
EngineConfiguration calldata engineConfiguration,
|
|
57
58
|
address adminACLContract_,
|
|
58
|
-
string memory defaultBaseURIHost
|
|
59
|
+
string memory defaultBaseURIHost,
|
|
60
|
+
address bytecodeStorageReaderContract_
|
|
59
61
|
) external;
|
|
60
62
|
|
|
61
63
|
// @dev new function in V3
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
pragma solidity ^0.8.0;
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @dev This interface is implemented by GenArt721CoreV0, GenArt721CoreV1, and GenArt721CoreV2
|
|
6
|
+
*/
|
|
7
|
+
interface IGenArt721CoreProjectScriptV0 {
|
|
8
|
+
function projectScriptByIndex(
|
|
9
|
+
uint256 _projectId,
|
|
10
|
+
uint256 _index
|
|
11
|
+
) external view returns (string memory);
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* @dev the return specified here is common across all
|
|
15
|
+
* pre-v3 core contracts. They all return additional
|
|
16
|
+
* data as well that varies between contracts but is not
|
|
17
|
+
* used by the dependency registry.
|
|
18
|
+
*/
|
|
19
|
+
function projectScriptInfo(
|
|
20
|
+
uint256 _projectId
|
|
21
|
+
) external view returns (string memory scriptJSON, uint256 scriptCount);
|
|
22
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
pragma solidity ^0.8.0;
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @dev This interface is implemented by GenArt721CoreV3 and above
|
|
6
|
+
*/
|
|
7
|
+
interface IGenArt721CoreProjectScriptV1 {
|
|
8
|
+
function projectScriptDetails(
|
|
9
|
+
uint256 _projectId
|
|
10
|
+
)
|
|
11
|
+
external
|
|
12
|
+
view
|
|
13
|
+
returns (
|
|
14
|
+
string memory scriptTypeAndVersion,
|
|
15
|
+
string memory aspectRatio,
|
|
16
|
+
uint256 scriptCount
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
function projectScriptBytecodeAddressByIndex(
|
|
20
|
+
uint256 _projectId,
|
|
21
|
+
uint256 _index
|
|
22
|
+
) external view returns (address);
|
|
23
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
pragma solidity ^0.8.0;
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @dev This interface is implemented by the GenArt721 (GenArt721CoreV0)
|
|
6
|
+
*/
|
|
7
|
+
interface IGenArt721CoreTokenHashProviderV0 {
|
|
8
|
+
function showTokenHashes(
|
|
9
|
+
uint256 _tokenId
|
|
10
|
+
) external view returns (bytes32[] memory);
|
|
11
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
pragma solidity ^0.8.0;
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @dev This interface is implemented by GenArt721CoreV1 and above.
|
|
6
|
+
*/
|
|
7
|
+
interface IGenArt721CoreTokenHashProviderV1 {
|
|
8
|
+
function tokenIdToHash(uint256 tokenId) external view returns (bytes32);
|
|
9
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
// Created By: Art Blocks Inc.
|
|
3
|
+
pragma solidity ^0.8.22;
|
|
4
|
+
|
|
5
|
+
interface IGenArt721GeneratorV0 {
|
|
6
|
+
event DependencyRegistryUpdated(address indexed _dependencyRegistry);
|
|
7
|
+
event ScriptyBuilderUpdated(address indexed _scriptyBuilder);
|
|
8
|
+
event GunzipScriptBytecodeAddressUpdated(
|
|
9
|
+
address indexed _gunzipScriptBytecodeAddress
|
|
10
|
+
);
|
|
11
|
+
event UniversalBytecodeStorageReaderUpdated(
|
|
12
|
+
address indexed _universalBytecodeStorageReader
|
|
13
|
+
);
|
|
14
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
// Creatd By: Art Blocks Inc.
|
|
3
|
+
|
|
4
|
+
pragma solidity ^0.8.0;
|
|
5
|
+
|
|
6
|
+
import {EngineConfiguration} from "./IGenArt721CoreContractV3_Engine.sol";
|
|
7
|
+
|
|
8
|
+
interface IOwnedCreate2FactoryV0 {
|
|
9
|
+
/**
|
|
10
|
+
* @notice This contract was deployed.
|
|
11
|
+
*/
|
|
12
|
+
event Deployed();
|
|
13
|
+
/**
|
|
14
|
+
* @notice New curated core contract was created.
|
|
15
|
+
* @param newContract new contract
|
|
16
|
+
*/
|
|
17
|
+
event ContractCreated(address indexed newContract);
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* @notice Drains the contract's balance to the `recipient`.
|
|
21
|
+
* @param recipient The address to send funds to.
|
|
22
|
+
* Only callable by the owner.
|
|
23
|
+
*/
|
|
24
|
+
function drainETH(address payable recipient) external;
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* @notice Drains the contract's balance of an input ERC20 token to
|
|
28
|
+
* the `recipient`.
|
|
29
|
+
* @param ERC20TokenAddress The address of the ERC20 token to withdraw.
|
|
30
|
+
* @param recipient The address to send ERC20 tokens to.
|
|
31
|
+
* Only callable by the owner.
|
|
32
|
+
*/
|
|
33
|
+
function drainERC20(address ERC20TokenAddress, address recipient) external;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* @notice Indicates the type of the contract, e.g. `EngineFactoryV0`.
|
|
37
|
+
* @return type_ The type of the contract.
|
|
38
|
+
*/
|
|
39
|
+
function type_() external pure returns (bytes32);
|
|
40
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
|
|
3
|
+
// @dev file adds event for indicating a shim contract compatible with SeaDrop, and points to the corresponding NFT
|
|
4
|
+
// contract
|
|
5
|
+
pragma solidity ^0.8.22;
|
|
6
|
+
|
|
7
|
+
interface ISeaDropShimForContract {
|
|
8
|
+
/**
|
|
9
|
+
* @dev Emit event when a shim-minter compatible with SeaDrop that mints tokens on a different contract is deployed
|
|
10
|
+
* @param nftContract The address of the NFT contract that this shim contract is compatible with
|
|
11
|
+
*/
|
|
12
|
+
event SeaDropShimForContract(address nftContract);
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* @dev Emit event when the local max supply is updated
|
|
16
|
+
* @param newLocalMaxSupply The new local max supply
|
|
17
|
+
*/
|
|
18
|
+
event LocalMaxSupplyUpdated(uint256 newLocalMaxSupply);
|
|
19
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
// Created By: Art Blocks Inc.
|
|
3
|
+
|
|
4
|
+
pragma solidity ^0.8.0;
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* @title This interface adds support for minimum price minting.
|
|
8
|
+
* @author Art Blocks Inc.
|
|
9
|
+
*/
|
|
10
|
+
interface ISharedMinterMinPriceV0 {
|
|
11
|
+
/**
|
|
12
|
+
* @notice Update the default minimum mint fee for the minter.
|
|
13
|
+
* @param newDefaultMinMintFee New default minimum mint fee, in wei
|
|
14
|
+
*/
|
|
15
|
+
function updateDefaultMinMintFee(uint256 newDefaultMinMintFee) external;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* @notice Get the default mint fee for the minter.
|
|
19
|
+
* @return defaultMinMintFee Default minimum mint fee, in wei
|
|
20
|
+
*/
|
|
21
|
+
function defaultMinMintFee() external view returns (uint256);
|
|
22
|
+
}
|
|
@@ -10,11 +10,17 @@ pragma solidity ^0.8.0;
|
|
|
10
10
|
* interface.
|
|
11
11
|
*/
|
|
12
12
|
interface ISharedMinterRequired {
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
/**
|
|
14
|
+
* @notice Returns the minter's type, used by the minter filter for metadata
|
|
15
|
+
* purposes.
|
|
16
|
+
* @return The minter type.
|
|
17
|
+
*/
|
|
15
18
|
function minterType() external view returns (string memory);
|
|
16
19
|
|
|
17
|
-
|
|
18
|
-
|
|
20
|
+
/**
|
|
21
|
+
* @notice Returns the minter's associated shared minter filter address.
|
|
22
|
+
* @dev used by subgraph indexing service for entity relation purposes.
|
|
23
|
+
* @return The minter filter address.
|
|
24
|
+
*/
|
|
19
25
|
function minterFilterAddress() external returns (address);
|
|
20
26
|
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
// Created By: Art Blocks Inc.
|
|
3
|
+
|
|
4
|
+
pragma solidity ^0.8.0;
|
|
5
|
+
|
|
6
|
+
import {IBytecodeStorageReader_Base} from "./IBytecodeStorageReader_Base.sol";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @title This interface extends the IBytecodeStorageReader_Base interface with relevant events and functions used on the
|
|
10
|
+
* universal bytecode storage reader contract.
|
|
11
|
+
* @author Art Blocks Inc.
|
|
12
|
+
*/
|
|
13
|
+
interface IUniversalBytecodeStorageReader is IBytecodeStorageReader_Base {
|
|
14
|
+
/**
|
|
15
|
+
* @notice The active bytecode storage reader contract being used by this universal reader was updated.
|
|
16
|
+
* @param activeReader The address of the new active bytecode storage reader contract.
|
|
17
|
+
*/
|
|
18
|
+
event ReaderUpdated(address indexed activeReader);
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* @notice Update the active bytecode storage reader contract being used by this universal reader.
|
|
22
|
+
* @dev emits a ReaderUpdated event when successful.
|
|
23
|
+
* @param newBytecodeStorageReaderContract The address of the new active bytecode storage reader contract.
|
|
24
|
+
*/
|
|
25
|
+
function updateBytecodeStorageReaderContract(
|
|
26
|
+
IBytecodeStorageReader_Base newBytecodeStorageReaderContract
|
|
27
|
+
) external;
|
|
28
|
+
}
|
package/contracts/interfaces/v0.8.x/integration-refs/OpenSea/ERC721SeaDropStructsErrorsAndEvents.sol
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
// @dev file is sourced from OpenSea's repository: https://github.com/ProjectOpenSea/seadrop/blob/main/src/lib/ERC721SeaDropStructsErrorsAndEvents.sol
|
|
3
|
+
// @dev modified to not lock to specific version, as well as updated imports for this repository
|
|
4
|
+
pragma solidity ^0.8.17;
|
|
5
|
+
|
|
6
|
+
import {AllowListData, PublicDrop, SignedMintValidationParams, TokenGatedDropStage} from "./SeaDropStructs.sol";
|
|
7
|
+
|
|
8
|
+
interface ERC721SeaDropStructsErrorsAndEvents {
|
|
9
|
+
/**
|
|
10
|
+
* @notice Revert with an error if mint exceeds the max supply.
|
|
11
|
+
*/
|
|
12
|
+
error MintQuantityExceedsMaxSupply(uint256 total, uint256 maxSupply);
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* @notice Revert with an error if the number of token gated
|
|
16
|
+
* allowedNftTokens doesn't match the length of supplied
|
|
17
|
+
* drop stages.
|
|
18
|
+
*/
|
|
19
|
+
error TokenGatedMismatch();
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* @notice Revert with an error if the number of signers doesn't match
|
|
23
|
+
* the length of supplied signedMintValidationParams
|
|
24
|
+
*/
|
|
25
|
+
error SignersMismatch();
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* @notice An event to signify that a SeaDrop token contract was deployed.
|
|
29
|
+
*/
|
|
30
|
+
event SeaDropTokenDeployed();
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* @notice A struct to configure multiple contract options at a time.
|
|
34
|
+
*/
|
|
35
|
+
struct MultiConfigureStruct {
|
|
36
|
+
uint256 maxSupply;
|
|
37
|
+
string baseURI;
|
|
38
|
+
string contractURI;
|
|
39
|
+
address seaDropImpl;
|
|
40
|
+
PublicDrop publicDrop;
|
|
41
|
+
string dropURI;
|
|
42
|
+
AllowListData allowListData;
|
|
43
|
+
address creatorPayoutAddress;
|
|
44
|
+
bytes32 provenanceHash;
|
|
45
|
+
address[] allowedFeeRecipients;
|
|
46
|
+
address[] disallowedFeeRecipients;
|
|
47
|
+
address[] allowedPayers;
|
|
48
|
+
address[] disallowedPayers;
|
|
49
|
+
// Token-gated
|
|
50
|
+
address[] tokenGatedAllowedNftTokens;
|
|
51
|
+
TokenGatedDropStage[] tokenGatedDropStages;
|
|
52
|
+
address[] disallowedTokenGatedAllowedNftTokens;
|
|
53
|
+
// Server-signed
|
|
54
|
+
address[] signers;
|
|
55
|
+
SignedMintValidationParams[] signedMintValidationParams;
|
|
56
|
+
address[] disallowedSigners;
|
|
57
|
+
}
|
|
58
|
+
}
|