@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
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
-
pragma solidity 0.8.
|
|
2
|
+
pragma solidity 0.8.19;
|
|
3
3
|
|
|
4
4
|
// Created By: Art Blocks Inc.
|
|
5
5
|
|
|
@@ -13,7 +13,7 @@ import "@openzeppelin-4.8/contracts-upgradeable/access/OwnableUpgradeable.sol";
|
|
|
13
13
|
import "@openzeppelin-4.8/contracts-upgradeable/proxy/utils/Initializable.sol";
|
|
14
14
|
import "@openzeppelin-4.5/contracts/utils/math/SafeCast.sol";
|
|
15
15
|
|
|
16
|
-
import "./libs/0.8.x/
|
|
16
|
+
import "./libs/0.8.x/BytecodeStorageV1.sol";
|
|
17
17
|
import "./libs/0.8.x/Bytes32Strings.sol";
|
|
18
18
|
|
|
19
19
|
/**
|
|
@@ -33,8 +33,7 @@ contract DependencyRegistryV0 is
|
|
|
33
33
|
OwnableUpgradeable,
|
|
34
34
|
IDependencyRegistryV0
|
|
35
35
|
{
|
|
36
|
-
using
|
|
37
|
-
using BytecodeStorage for address;
|
|
36
|
+
using BytecodeStorageWriter for string;
|
|
38
37
|
using Bytes32Strings for bytes32;
|
|
39
38
|
using Strings for uint256;
|
|
40
39
|
using EnumerableSet for EnumerableSet.Bytes32Set;
|
|
@@ -211,16 +210,6 @@ contract DependencyRegistryV0 is
|
|
|
211
210
|
_scriptId < dependencyType.scriptCount,
|
|
212
211
|
"scriptId out of range"
|
|
213
212
|
);
|
|
214
|
-
// purge old contract bytecode contract from the blockchain state
|
|
215
|
-
// note: Although this does reduce usage of Ethereum state, it does not
|
|
216
|
-
// reduce the gas costs of removal transactions. We believe this is the
|
|
217
|
-
// best behavior at the time of writing, and do not expect this to
|
|
218
|
-
// result in any breaking changes in the future. All current proposals
|
|
219
|
-
// to change the self-destruct opcode are backwards compatible, but may
|
|
220
|
-
// result in not removing the bytecode from the blockchain state. This
|
|
221
|
-
// implementation is compatible with that architecture, as it does not
|
|
222
|
-
// rely on the bytecode being removed from the blockchain state.
|
|
223
|
-
dependencyType.scriptBytecodeAddresses[_scriptId].purgeBytecode();
|
|
224
213
|
// store script in contract bytecode, replacing reference address from
|
|
225
214
|
// the contract that no longer exists with the newly created one
|
|
226
215
|
dependencyType.scriptBytecodeAddresses[_scriptId] = _script
|
|
@@ -238,19 +227,7 @@ contract DependencyRegistryV0 is
|
|
|
238
227
|
_onlyExistingDependencyType(_dependencyType);
|
|
239
228
|
Dependency storage dependency = dependencyDetails[_dependencyType];
|
|
240
229
|
require(dependency.scriptCount > 0, "there are no scripts to remove");
|
|
241
|
-
//
|
|
242
|
-
// note: Although this does reduce usage of Ethereum state, it does not
|
|
243
|
-
// reduce the gas costs of removal transactions. We believe this is the
|
|
244
|
-
// best behavior at the time of writing, and do not expect this to
|
|
245
|
-
// result in any breaking changes in the future. All current proposals
|
|
246
|
-
// to change the self-destruct opcode are backwards compatible, but may
|
|
247
|
-
// result in not removing the bytecode from the blockchain state. This
|
|
248
|
-
// implementation is compatible with that architecture, as it does not
|
|
249
|
-
// rely on the bytecode being removed from the blockchain state.
|
|
250
|
-
dependency
|
|
251
|
-
.scriptBytecodeAddresses[dependency.scriptCount - 1]
|
|
252
|
-
.purgeBytecode();
|
|
253
|
-
// delete reference to contract address that no longer exists
|
|
230
|
+
// delete reference to old storage contract address
|
|
254
231
|
delete dependency.scriptBytecodeAddresses[dependency.scriptCount - 1];
|
|
255
232
|
unchecked {
|
|
256
233
|
dependency.scriptCount = dependency.scriptCount - 1;
|
|
@@ -757,7 +734,7 @@ contract DependencyRegistryV0 is
|
|
|
757
734
|
return "";
|
|
758
735
|
}
|
|
759
736
|
|
|
760
|
-
return dependency.scriptBytecodeAddresses[_index]
|
|
737
|
+
return _readFromBytecode(dependency.scriptBytecodeAddresses[_index]);
|
|
761
738
|
}
|
|
762
739
|
|
|
763
740
|
/**
|
|
@@ -851,4 +828,14 @@ contract DependencyRegistryV0 is
|
|
|
851
828
|
OwnableUpgradeable._transferOwnership(newOwner);
|
|
852
829
|
adminACLContract = IAdminACLV0(newOwner);
|
|
853
830
|
}
|
|
831
|
+
|
|
832
|
+
/**
|
|
833
|
+
* Helper for calling `BytecodeStorageReader` external library reader method,
|
|
834
|
+
* added for bytecode size reduction purposes.
|
|
835
|
+
*/
|
|
836
|
+
function _readFromBytecode(
|
|
837
|
+
address _address
|
|
838
|
+
) internal view returns (string memory) {
|
|
839
|
+
return BytecodeStorageReader.readFromBytecode(_address);
|
|
840
|
+
}
|
|
854
841
|
}
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
-
pragma solidity 0.8.
|
|
2
|
+
pragma solidity 0.8.19;
|
|
3
3
|
|
|
4
4
|
// Created By: Art Blocks Inc.
|
|
5
5
|
|
|
6
|
-
import "./interfaces/0.8.x/
|
|
6
|
+
import "./interfaces/0.8.x/IRandomizer_V3CoreBase.sol";
|
|
7
7
|
import "./interfaces/0.8.x/IAdminACLV0.sol";
|
|
8
8
|
import "./interfaces/0.8.x/IGenArt721CoreContractV3.sol";
|
|
9
|
+
import "./interfaces/0.8.x/IGenArt721CoreContractExposesHashSeed.sol";
|
|
9
10
|
import "./interfaces/0.8.x/IManifold.sol";
|
|
10
11
|
|
|
11
12
|
import "@openzeppelin-4.7/contracts/utils/Strings.sol";
|
|
12
13
|
import "@openzeppelin-4.7/contracts/access/Ownable.sol";
|
|
13
14
|
import "./libs/0.8.x/ERC721_PackedHashSeed.sol";
|
|
14
|
-
import "./libs/0.8.x/
|
|
15
|
+
import "./libs/0.8.x/BytecodeStorageV1.sol";
|
|
15
16
|
import "./libs/0.8.x/Bytes32Strings.sol";
|
|
16
17
|
|
|
17
18
|
/**
|
|
@@ -89,10 +90,10 @@ import "./libs/0.8.x/Bytes32Strings.sol";
|
|
|
89
90
|
contract GenArt721CoreV3 is
|
|
90
91
|
ERC721_PackedHashSeed,
|
|
91
92
|
Ownable,
|
|
92
|
-
IGenArt721CoreContractV3
|
|
93
|
+
IGenArt721CoreContractV3,
|
|
94
|
+
IGenArt721CoreContractExposesHashSeed
|
|
93
95
|
{
|
|
94
|
-
using
|
|
95
|
-
using BytecodeStorage for address;
|
|
96
|
+
using BytecodeStorageWriter for string;
|
|
96
97
|
using Bytes32Strings for bytes32;
|
|
97
98
|
using Strings for uint256;
|
|
98
99
|
uint256 constant ONE_HUNDRED = 100;
|
|
@@ -166,7 +167,7 @@ contract GenArt721CoreV3 is
|
|
|
166
167
|
address public artblocksDependencyRegistryAddress;
|
|
167
168
|
|
|
168
169
|
/// current randomizer contract
|
|
169
|
-
|
|
170
|
+
IRandomizer_V3CoreBase public randomizerContract;
|
|
170
171
|
|
|
171
172
|
/// append-only array of all randomizer contract addresses ever used by
|
|
172
173
|
/// this contract
|
|
@@ -240,7 +241,7 @@ contract GenArt721CoreV3 is
|
|
|
240
241
|
bool public newProjectsForbidden;
|
|
241
242
|
|
|
242
243
|
/// version & type of this core contract
|
|
243
|
-
string public constant coreVersion = "v3.0
|
|
244
|
+
string public constant coreVersion = "v3.2.0";
|
|
244
245
|
string public constant coreType = "GenArt721CoreV3";
|
|
245
246
|
|
|
246
247
|
/// default base URI to initialize all new project projectBaseURI values to
|
|
@@ -1070,18 +1071,8 @@ contract GenArt721CoreV3 is
|
|
|
1070
1071
|
_onlyNonEmptyString(_script);
|
|
1071
1072
|
Project storage project = projects[_projectId];
|
|
1072
1073
|
require(_scriptId < project.scriptCount, "scriptId out of range");
|
|
1073
|
-
// purge old contract bytecode contract from the blockchain state
|
|
1074
|
-
// note: Although this does reduce usage of Ethereum state, it does not
|
|
1075
|
-
// reduce the gas costs of removal transactions. We believe this is the
|
|
1076
|
-
// best behavior at the time of writing, and do not expect this to
|
|
1077
|
-
// result in any breaking changes in the future. All current proposals
|
|
1078
|
-
// to change the self-destruct opcode are backwards compatible, but may
|
|
1079
|
-
// result in not removing the bytecode from the blockchain state. This
|
|
1080
|
-
// implementation is compatible with that architecture, as it does not
|
|
1081
|
-
// rely on the bytecode being removed from the blockchain state.
|
|
1082
|
-
project.scriptBytecodeAddresses[_scriptId].purgeBytecode();
|
|
1083
1074
|
// store script in contract bytecode, replacing reference address from
|
|
1084
|
-
// the
|
|
1075
|
+
// the old storage contract with the newly created one
|
|
1085
1076
|
project.scriptBytecodeAddresses[_scriptId] = _script.writeToBytecode();
|
|
1086
1077
|
emit ProjectUpdated(_projectId, FIELD_PROJECT_SCRIPT);
|
|
1087
1078
|
}
|
|
@@ -1098,19 +1089,7 @@ contract GenArt721CoreV3 is
|
|
|
1098
1089
|
);
|
|
1099
1090
|
Project storage project = projects[_projectId];
|
|
1100
1091
|
require(project.scriptCount > 0, "there are no scripts to remove");
|
|
1101
|
-
//
|
|
1102
|
-
// note: Although this does reduce usage of Ethereum state, it does not
|
|
1103
|
-
// reduce the gas costs of removal transactions. We believe this is the
|
|
1104
|
-
// best behavior at the time of writing, and do not expect this to
|
|
1105
|
-
// result in any breaking changes in the future. All current proposals
|
|
1106
|
-
// to change the self-destruct opcode are backwards compatible, but may
|
|
1107
|
-
// result in not removing the bytecode from the blockchain state. This
|
|
1108
|
-
// implementation is compatible with that architecture, as it does not
|
|
1109
|
-
// rely on the bytecode being removed from the blockchain state.
|
|
1110
|
-
project
|
|
1111
|
-
.scriptBytecodeAddresses[project.scriptCount - 1]
|
|
1112
|
-
.purgeBytecode();
|
|
1113
|
-
// delete reference to contract address that no longer exists
|
|
1092
|
+
// delete reference to old storage contract address
|
|
1114
1093
|
delete project.scriptBytecodeAddresses[project.scriptCount - 1];
|
|
1115
1094
|
unchecked {
|
|
1116
1095
|
project.scriptCount = project.scriptCount - 1;
|
|
@@ -1247,6 +1226,20 @@ contract GenArt721CoreV3 is
|
|
|
1247
1226
|
return keccak256(abi.encode(_hashSeed));
|
|
1248
1227
|
}
|
|
1249
1228
|
|
|
1229
|
+
/**
|
|
1230
|
+
* @notice Returns token hash **seed** for token ID `_tokenId`. Returns
|
|
1231
|
+
* null if hash seed has not been set. The hash seed id the bytes12 value
|
|
1232
|
+
* which is hashed to produce the token hash.
|
|
1233
|
+
* @param _tokenId Token ID to be queried.
|
|
1234
|
+
* @return bytes12 Token hash seed.
|
|
1235
|
+
* @dev token hash seed is keccak256 hashed to give the token hash
|
|
1236
|
+
*/
|
|
1237
|
+
function tokenIdToHashSeed(
|
|
1238
|
+
uint256 _tokenId
|
|
1239
|
+
) external view returns (bytes12) {
|
|
1240
|
+
return _ownersAndHashSeeds[_tokenId].hashSeed;
|
|
1241
|
+
}
|
|
1242
|
+
|
|
1250
1243
|
/**
|
|
1251
1244
|
* @notice View function returning Art Blocks portion of primary sales, in
|
|
1252
1245
|
* percent.
|
|
@@ -1499,7 +1492,7 @@ contract GenArt721CoreV3 is
|
|
|
1499
1492
|
if (_index >= project.scriptCount) {
|
|
1500
1493
|
return "";
|
|
1501
1494
|
}
|
|
1502
|
-
return project.scriptBytecodeAddresses[_index]
|
|
1495
|
+
return _readFromBytecode(project.scriptBytecodeAddresses[_index]);
|
|
1503
1496
|
}
|
|
1504
1497
|
|
|
1505
1498
|
/**
|
|
@@ -1903,7 +1896,7 @@ contract GenArt721CoreV3 is
|
|
|
1903
1896
|
* perform input validation where applicable.
|
|
1904
1897
|
*/
|
|
1905
1898
|
function _updateRandomizerAddress(address _randomizerAddress) internal {
|
|
1906
|
-
randomizerContract =
|
|
1899
|
+
randomizerContract = IRandomizer_V3CoreBase(_randomizerAddress);
|
|
1907
1900
|
// populate historical randomizer array
|
|
1908
1901
|
_historicalRandomizerAddresses.push(_randomizerAddress);
|
|
1909
1902
|
emit PlatformUpdated(FIELD_RANDOMIZER_ADDRESS);
|
|
@@ -1951,4 +1944,14 @@ contract GenArt721CoreV3 is
|
|
|
1951
1944
|
(block.timestamp - projectCompletedTimestamp <
|
|
1952
1945
|
FOUR_WEEKS_IN_SECONDS);
|
|
1953
1946
|
}
|
|
1947
|
+
|
|
1948
|
+
/**
|
|
1949
|
+
* Helper for calling `BytecodeStorageReader` external library reader method,
|
|
1950
|
+
* added for bytecode size reduction purposes.
|
|
1951
|
+
*/
|
|
1952
|
+
function _readFromBytecode(
|
|
1953
|
+
address _address
|
|
1954
|
+
) internal view returns (string memory) {
|
|
1955
|
+
return BytecodeStorageReader.readFromBytecode(_address);
|
|
1956
|
+
}
|
|
1954
1957
|
}
|
|
@@ -8,7 +8,7 @@ import "../../../../interfaces/0.8.x/IFilteredMinterDAExpV0.sol";
|
|
|
8
8
|
import "@openzeppelin-4.5/contracts/security/ReentrancyGuard.sol";
|
|
9
9
|
import "@openzeppelin-4.5/contracts/utils/math/SafeCast.sol";
|
|
10
10
|
|
|
11
|
-
pragma solidity 0.8.
|
|
11
|
+
pragma solidity 0.8.19;
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* @title Filtered Minter contract that allows tokens to be minted with ETH.
|
|
@@ -8,7 +8,7 @@ import "../../../../interfaces/0.8.x/IFilteredMinterDAExpV1.sol";
|
|
|
8
8
|
import "@openzeppelin-4.5/contracts/security/ReentrancyGuard.sol";
|
|
9
9
|
import "@openzeppelin-4.5/contracts/utils/math/SafeCast.sol";
|
|
10
10
|
|
|
11
|
-
pragma solidity 0.8.
|
|
11
|
+
pragma solidity 0.8.19;
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* @title Filtered Minter contract that allows tokens to be minted with ETH.
|
package/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol
CHANGED
|
@@ -8,7 +8,7 @@ import "../../../../interfaces/0.8.x/IFilteredMinterDAExpSettlementV0.sol";
|
|
|
8
8
|
import "@openzeppelin-4.7/contracts/security/ReentrancyGuard.sol";
|
|
9
9
|
import "@openzeppelin-4.7/contracts/utils/math/SafeCast.sol";
|
|
10
10
|
|
|
11
|
-
pragma solidity 0.8.
|
|
11
|
+
pragma solidity 0.8.19;
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* @title Filtered Minter contract that allows tokens to be minted with ETH.
|
package/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV1.sol
CHANGED
|
@@ -9,7 +9,7 @@ import "../../../../minter-suite/Minters/MinterBase_v0_1_1.sol";
|
|
|
9
9
|
import "@openzeppelin-4.7/contracts/security/ReentrancyGuard.sol";
|
|
10
10
|
import "@openzeppelin-4.7/contracts/utils/math/SafeCast.sol";
|
|
11
11
|
|
|
12
|
-
pragma solidity 0.8.
|
|
12
|
+
pragma solidity 0.8.19;
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* @title Filtered Minter contract that allows tokens to be minted with ETH.
|
|
@@ -8,7 +8,7 @@ import "../../../../interfaces/0.8.x/IFilteredMinterDALinV0.sol";
|
|
|
8
8
|
import "@openzeppelin-4.5/contracts/security/ReentrancyGuard.sol";
|
|
9
9
|
import "@openzeppelin-4.5/contracts/utils/math/SafeCast.sol";
|
|
10
10
|
|
|
11
|
-
pragma solidity 0.8.
|
|
11
|
+
pragma solidity 0.8.19;
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* @title Filtered Minter contract that allows tokens to be minted with ETH.
|
|
@@ -8,7 +8,7 @@ import "../../../../interfaces/0.8.x/IFilteredMinterDALinV1.sol";
|
|
|
8
8
|
import "@openzeppelin-4.5/contracts/security/ReentrancyGuard.sol";
|
|
9
9
|
import "@openzeppelin-4.5/contracts/utils/math/SafeCast.sol";
|
|
10
10
|
|
|
11
|
-
pragma solidity 0.8.
|
|
11
|
+
pragma solidity 0.8.19;
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* @title Filtered Minter contract that allows tokens to be minted with ETH.
|
|
@@ -11,7 +11,7 @@ import "@openzeppelin-4.5/contracts/security/ReentrancyGuard.sol";
|
|
|
11
11
|
import "@openzeppelin-4.5/contracts/utils/structs/EnumerableSet.sol";
|
|
12
12
|
import "@openzeppelin-4.5/contracts/utils/structs/EnumerableMap.sol";
|
|
13
13
|
|
|
14
|
-
pragma solidity 0.8.
|
|
14
|
+
pragma solidity 0.8.19;
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
17
|
* @title Filtered Minter contract that allows tokens to be minted with ETH
|
|
@@ -11,7 +11,7 @@ import "@openzeppelin-4.5/contracts/token/ERC20/IERC20.sol";
|
|
|
11
11
|
import "@openzeppelin-4.5/contracts/security/ReentrancyGuard.sol";
|
|
12
12
|
import "@openzeppelin-4.5/contracts/utils/structs/EnumerableSet.sol";
|
|
13
13
|
|
|
14
|
-
pragma solidity 0.8.
|
|
14
|
+
pragma solidity 0.8.19;
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
17
|
* @title Filtered Minter contract that allows tokens to be minted with ETH
|
|
@@ -11,7 +11,7 @@ import "@openzeppelin-4.5/contracts/token/ERC20/IERC20.sol";
|
|
|
11
11
|
import "@openzeppelin-4.5/contracts/security/ReentrancyGuard.sol";
|
|
12
12
|
import "@openzeppelin-4.5/contracts/utils/structs/EnumerableSet.sol";
|
|
13
13
|
|
|
14
|
-
pragma solidity 0.8.
|
|
14
|
+
pragma solidity 0.8.19;
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
17
|
* @title Filtered Minter contract that allows tokens to be minted with ETH
|
|
@@ -9,7 +9,7 @@ import "@openzeppelin-4.7/contracts/utils/cryptography/MerkleProof.sol";
|
|
|
9
9
|
import "@openzeppelin-4.7/contracts/token/ERC20/IERC20.sol";
|
|
10
10
|
import "@openzeppelin-4.7/contracts/security/ReentrancyGuard.sol";
|
|
11
11
|
|
|
12
|
-
pragma solidity 0.8.
|
|
12
|
+
pragma solidity 0.8.19;
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* @title Filtered Minter contract that allows tokens to be minted with ETH
|
|
@@ -10,7 +10,7 @@ import "@openzeppelin-4.7/contracts/utils/cryptography/MerkleProof.sol";
|
|
|
10
10
|
import "@openzeppelin-4.7/contracts/token/ERC20/IERC20.sol";
|
|
11
11
|
import "@openzeppelin-4.7/contracts/security/ReentrancyGuard.sol";
|
|
12
12
|
|
|
13
|
-
pragma solidity 0.8.
|
|
13
|
+
pragma solidity 0.8.19;
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
16
|
* @title Filtered Minter contract that allows tokens to be minted with ETH
|
|
@@ -10,7 +10,7 @@ import "@openzeppelin-4.7/contracts/utils/cryptography/MerkleProof.sol";
|
|
|
10
10
|
import "@openzeppelin-4.7/contracts/token/ERC20/IERC20.sol";
|
|
11
11
|
import "@openzeppelin-4.7/contracts/security/ReentrancyGuard.sol";
|
|
12
12
|
|
|
13
|
-
pragma solidity 0.8.
|
|
13
|
+
pragma solidity 0.8.19;
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
16
|
* @title Filtered Minter contract that allows tokens to be minted with ETH
|
|
@@ -10,7 +10,7 @@ import "@openzeppelin-4.7/contracts/utils/cryptography/MerkleProof.sol";
|
|
|
10
10
|
import "@openzeppelin-4.7/contracts/token/ERC20/IERC20.sol";
|
|
11
11
|
import "@openzeppelin-4.7/contracts/security/ReentrancyGuard.sol";
|
|
12
12
|
|
|
13
|
-
pragma solidity 0.8.
|
|
13
|
+
pragma solidity 0.8.19;
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
16
|
* @title Filtered Minter contract that allows tokens to be minted with ETH
|
|
@@ -7,7 +7,7 @@ import "../../../../interfaces/0.8.x/IFilteredMinterV0.sol";
|
|
|
7
7
|
|
|
8
8
|
import "@openzeppelin-4.5/contracts/security/ReentrancyGuard.sol";
|
|
9
9
|
|
|
10
|
-
pragma solidity 0.8.
|
|
10
|
+
pragma solidity 0.8.19;
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* @title Filtered Minter contract that allows tokens to be minted with ETH.
|
|
@@ -7,7 +7,7 @@ import "../../../../interfaces/0.8.x/IFilteredMinterV2.sol";
|
|
|
7
7
|
|
|
8
8
|
import "@openzeppelin-4.5/contracts/security/ReentrancyGuard.sol";
|
|
9
9
|
|
|
10
|
-
pragma solidity 0.8.
|
|
10
|
+
pragma solidity 0.8.19;
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* @title Filtered Minter contract that allows tokens to be minted with ETH.
|
package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V2.sol
CHANGED
|
@@ -8,7 +8,7 @@ import "../../../../interfaces/0.8.x/IFilteredMinterV0.sol";
|
|
|
8
8
|
import "@openzeppelin-4.5/contracts/token/ERC20/IERC20.sol";
|
|
9
9
|
import "@openzeppelin-4.5/contracts/security/ReentrancyGuard.sol";
|
|
10
10
|
|
|
11
|
-
pragma solidity 0.8.
|
|
11
|
+
pragma solidity 0.8.19;
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* @title Filtered Minter contract that allows tokens to be minted with ETH
|
package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V3.sol
CHANGED
|
@@ -8,7 +8,7 @@ import "../../../../interfaces/0.8.x/IFilteredMinterV2.sol";
|
|
|
8
8
|
import "@openzeppelin-4.5/contracts/token/ERC20/IERC20.sol";
|
|
9
9
|
import "@openzeppelin-4.5/contracts/security/ReentrancyGuard.sol";
|
|
10
10
|
|
|
11
|
-
pragma solidity 0.8.
|
|
11
|
+
pragma solidity 0.8.19;
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* @title Filtered Minter contract that allows tokens to be minted with ETH
|
package/contracts/engine/{GenArt721CoreV2_ENGINE_FLEX.sol → V2/GenArt721CoreV2_ENGINE_FLEX.sol}
RENAMED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
2
|
// Created By: Art Blocks Inc.
|
|
3
3
|
|
|
4
|
-
import "
|
|
5
|
-
import "
|
|
4
|
+
import "../../interfaces/0.8.x/IRandomizer.sol";
|
|
5
|
+
import "../../interfaces/0.8.x/IGenArt721CoreV2_PBAB.sol";
|
|
6
6
|
import "@openzeppelin-4.5/contracts/utils/Strings.sol";
|
|
7
7
|
import "@openzeppelin-4.5/contracts/token/ERC721/ERC721.sol";
|
|
8
8
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
2
|
// Created By: Art Blocks Inc.
|
|
3
3
|
|
|
4
|
-
import "
|
|
5
|
-
import "
|
|
4
|
+
import "../../interfaces/0.8.x/IRandomizer.sol";
|
|
5
|
+
import "../../interfaces/0.8.x/IGenArt721CoreV2_PBAB.sol";
|
|
6
6
|
|
|
7
7
|
import "@openzeppelin-4.5/contracts/utils/Strings.sol";
|
|
8
8
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
2
|
// Created By: Art Blocks Inc.
|
|
3
3
|
|
|
4
|
-
import "
|
|
5
|
-
import "
|
|
6
|
-
import "
|
|
4
|
+
import "../../interfaces/0.8.x/IRandomizer.sol";
|
|
5
|
+
import "../../interfaces/0.8.x/IGenArt721CoreV2_PBAB.sol";
|
|
6
|
+
import "../../interfaces/0.8.x/IGenArt721CoreContractV1.sol";
|
|
7
7
|
|
|
8
8
|
import "@openzeppelin-4.5/contracts/utils/Strings.sol";
|
|
9
9
|
|
package/contracts/engine/{GenArt721MinterBurner_PBAB.sol → V2/GenArt721MinterBurner_PBAB.sol}
RENAMED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
2
|
// Created By: Art Blocks Inc.
|
|
3
3
|
|
|
4
|
-
import "
|
|
5
|
-
import "
|
|
4
|
+
import "../../interfaces/0.8.x/IGenArt721CoreV2_PBAB.sol";
|
|
5
|
+
import "../../interfaces/0.8.x/IBonusContract.sol";
|
|
6
6
|
|
|
7
7
|
import "@openzeppelin-4.5/contracts/security/ReentrancyGuard.sol";
|
|
8
8
|
import "@openzeppelin-4.5/contracts/utils/Strings.sol";
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
2
|
// Created By: Art Blocks Inc.
|
|
3
3
|
|
|
4
|
-
import "
|
|
4
|
+
import "../../interfaces/0.8.x/IGenArt721CoreV2_PBAB.sol";
|
|
5
5
|
|
|
6
6
|
import "@openzeppelin-4.5/contracts/security/ReentrancyGuard.sol";
|
|
7
7
|
import "@openzeppelin-4.5/contracts/utils/math/SafeCast.sol";
|
|
8
8
|
|
|
9
|
-
pragma solidity 0.8.
|
|
9
|
+
pragma solidity 0.8.19;
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* @title A minter contract that allows tokens to be minted with ETH.
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
2
|
// Created By: Art Blocks Inc.
|
|
3
3
|
|
|
4
|
-
import "
|
|
5
|
-
import "
|
|
4
|
+
import "../../interfaces/0.8.x/IGenArt721CoreV2_PBAB.sol";
|
|
5
|
+
import "../../interfaces/0.8.x/IBonusContract.sol";
|
|
6
6
|
|
|
7
7
|
import "@openzeppelin-4.5/contracts/security/ReentrancyGuard.sol";
|
|
8
8
|
import "@openzeppelin-4.5/contracts/utils/Strings.sol";
|
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
-
pragma solidity 0.8.
|
|
2
|
+
pragma solidity 0.8.19;
|
|
3
3
|
|
|
4
4
|
// Created By: Art Blocks Inc.
|
|
5
5
|
|
|
6
|
-
import "
|
|
7
|
-
import "
|
|
8
|
-
import "
|
|
9
|
-
import "
|
|
10
|
-
import "
|
|
11
|
-
import "
|
|
6
|
+
import "../../interfaces/0.8.x/IRandomizer_V3CoreBase.sol";
|
|
7
|
+
import "../../interfaces/0.8.x/IAdminACLV0.sol";
|
|
8
|
+
import "../../interfaces/0.8.x/IEngineRegistryV0.sol";
|
|
9
|
+
import "../../interfaces/0.8.x/IGenArt721CoreContractV3_Engine.sol";
|
|
10
|
+
import "../../interfaces/0.8.x/IGenArt721CoreContractExposesHashSeed.sol";
|
|
11
|
+
import "../../interfaces/0.8.x/IDependencyRegistryCompatibleV0.sol";
|
|
12
|
+
import "../../interfaces/0.8.x/IManifold.sol";
|
|
12
13
|
|
|
13
14
|
import "@openzeppelin-4.7/contracts/utils/Strings.sol";
|
|
14
15
|
import "@openzeppelin-4.7/contracts/access/Ownable.sol";
|
|
15
|
-
import "
|
|
16
|
-
import "
|
|
17
|
-
import "
|
|
16
|
+
import "../../libs/0.8.x/ERC721_PackedHashSeed.sol";
|
|
17
|
+
import "../../libs/0.8.x/BytecodeStorageV1.sol";
|
|
18
|
+
import "../../libs/0.8.x/Bytes32Strings.sol";
|
|
18
19
|
|
|
19
20
|
/**
|
|
20
21
|
* @title Art Blocks Engine ERC-721 core contract, V3.
|
|
@@ -96,10 +97,10 @@ contract GenArt721CoreV3_Engine is
|
|
|
96
97
|
Ownable,
|
|
97
98
|
IDependencyRegistryCompatibleV0,
|
|
98
99
|
IManifold,
|
|
99
|
-
IGenArt721CoreContractV3_Engine
|
|
100
|
+
IGenArt721CoreContractV3_Engine,
|
|
101
|
+
IGenArt721CoreContractExposesHashSeed
|
|
100
102
|
{
|
|
101
|
-
using
|
|
102
|
-
using BytecodeStorage for address;
|
|
103
|
+
using BytecodeStorageWriter for string;
|
|
103
104
|
using Bytes32Strings for bytes32;
|
|
104
105
|
using Strings for uint256;
|
|
105
106
|
using Strings for address;
|
|
@@ -158,7 +159,7 @@ contract GenArt721CoreV3_Engine is
|
|
|
158
159
|
address public artblocksDependencyRegistryAddress;
|
|
159
160
|
|
|
160
161
|
/// current randomizer contract
|
|
161
|
-
|
|
162
|
+
IRandomizer_V3CoreBase public randomizerContract;
|
|
162
163
|
|
|
163
164
|
/// append-only array of all randomizer contract addresses ever used by
|
|
164
165
|
/// this contract
|
|
@@ -1132,9 +1133,8 @@ contract GenArt721CoreV3_Engine is
|
|
|
1132
1133
|
_onlyNonEmptyString(_script);
|
|
1133
1134
|
Project storage project = projects[_projectId];
|
|
1134
1135
|
require(_scriptId < project.scriptCount, "scriptId out of range");
|
|
1135
|
-
|
|
1136
1136
|
// store script in contract bytecode, replacing reference address from
|
|
1137
|
-
// the
|
|
1137
|
+
// the old storage contract with the newly created one
|
|
1138
1138
|
project.scriptBytecodeAddresses[_scriptId] = _script.writeToBytecode();
|
|
1139
1139
|
emit ProjectUpdated(_projectId, FIELD_PROJECT_SCRIPT);
|
|
1140
1140
|
}
|
|
@@ -1151,8 +1151,7 @@ contract GenArt721CoreV3_Engine is
|
|
|
1151
1151
|
);
|
|
1152
1152
|
Project storage project = projects[_projectId];
|
|
1153
1153
|
require(project.scriptCount > 0, "No scripts to remove");
|
|
1154
|
-
|
|
1155
|
-
// delete reference to contract address that no longer exists
|
|
1154
|
+
// delete reference to old storage contract address
|
|
1156
1155
|
delete project.scriptBytecodeAddresses[project.scriptCount - 1];
|
|
1157
1156
|
unchecked {
|
|
1158
1157
|
project.scriptCount = project.scriptCount - 1;
|
|
@@ -1577,7 +1576,7 @@ contract GenArt721CoreV3_Engine is
|
|
|
1577
1576
|
if (_index >= project.scriptCount) {
|
|
1578
1577
|
return "";
|
|
1579
1578
|
}
|
|
1580
|
-
return project.scriptBytecodeAddresses[_index]
|
|
1579
|
+
return _readFromBytecode(project.scriptBytecodeAddresses[_index]);
|
|
1581
1580
|
}
|
|
1582
1581
|
|
|
1583
1582
|
/**
|
|
@@ -1947,7 +1946,7 @@ contract GenArt721CoreV3_Engine is
|
|
|
1947
1946
|
* perform input validation where applicable.
|
|
1948
1947
|
*/
|
|
1949
1948
|
function _updateRandomizerAddress(address _randomizerAddress) internal {
|
|
1950
|
-
randomizerContract =
|
|
1949
|
+
randomizerContract = IRandomizer_V3CoreBase(_randomizerAddress);
|
|
1951
1950
|
// populate historical randomizer array
|
|
1952
1951
|
_historicalRandomizerAddresses.push(_randomizerAddress);
|
|
1953
1952
|
emit PlatformUpdated(FIELD_RANDOMIZER_ADDRESS);
|
|
@@ -1996,4 +1995,14 @@ contract GenArt721CoreV3_Engine is
|
|
|
1996
1995
|
(block.timestamp - projectCompletedTimestamp <
|
|
1997
1996
|
FOUR_WEEKS_IN_SECONDS);
|
|
1998
1997
|
}
|
|
1998
|
+
|
|
1999
|
+
/**
|
|
2000
|
+
* Helper for calling `BytecodeStorageReader` external library reader method,
|
|
2001
|
+
* added for bytecode size reduction purposes.
|
|
2002
|
+
*/
|
|
2003
|
+
function _readFromBytecode(
|
|
2004
|
+
address _address
|
|
2005
|
+
) internal view returns (string memory) {
|
|
2006
|
+
return BytecodeStorageReader.readFromBytecode(_address);
|
|
2007
|
+
}
|
|
1999
2008
|
}
|