@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
|
@@ -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;
|
|
@@ -65,38 +64,37 @@ contract DependencyRegistryV0 is
|
|
|
65
64
|
EnumerableSet.AddressSet private _supportedCoreContracts;
|
|
66
65
|
mapping(address => mapping(uint256 => bytes32)) projectDependencyTypeOverrides;
|
|
67
66
|
|
|
68
|
-
|
|
67
|
+
function _onlyNonZeroAddress(address _address) internal pure {
|
|
69
68
|
require(_address != address(0), "Must input non-zero address");
|
|
70
|
-
_;
|
|
71
69
|
}
|
|
72
70
|
|
|
73
|
-
|
|
71
|
+
function _onlyNonEmptyString(string memory _string) internal pure {
|
|
74
72
|
require(bytes(_string).length != 0, "Must input non-empty string");
|
|
75
|
-
_;
|
|
76
73
|
}
|
|
77
74
|
|
|
78
|
-
|
|
75
|
+
function _onlyAdminACL(bytes4 _selector) internal {
|
|
79
76
|
require(
|
|
80
77
|
adminACLAllowed(msg.sender, address(this), _selector),
|
|
81
78
|
"Only Admin ACL allowed"
|
|
82
79
|
);
|
|
83
|
-
_;
|
|
84
80
|
}
|
|
85
81
|
|
|
86
|
-
|
|
82
|
+
function _onlySupportedCoreContract(
|
|
83
|
+
address _coreContractAddress
|
|
84
|
+
) internal view {
|
|
87
85
|
require(
|
|
88
86
|
_supportedCoreContracts.contains(_coreContractAddress),
|
|
89
87
|
"Core contract not supported"
|
|
90
88
|
);
|
|
91
|
-
_;
|
|
92
89
|
}
|
|
93
90
|
|
|
94
|
-
|
|
91
|
+
function _onlyExistingDependencyType(
|
|
92
|
+
bytes32 _dependencyType
|
|
93
|
+
) internal view {
|
|
95
94
|
require(
|
|
96
95
|
_dependencyTypes.contains(_dependencyType),
|
|
97
96
|
"Dependency type does not exist"
|
|
98
97
|
);
|
|
99
|
-
_;
|
|
100
98
|
}
|
|
101
99
|
|
|
102
100
|
/**
|
|
@@ -121,7 +119,8 @@ contract DependencyRegistryV0 is
|
|
|
121
119
|
string memory _preferredCDN,
|
|
122
120
|
string memory _preferredRepository,
|
|
123
121
|
string memory _referenceWebsite
|
|
124
|
-
) external
|
|
122
|
+
) external {
|
|
123
|
+
_onlyAdminACL(this.addDependency.selector);
|
|
125
124
|
require(
|
|
126
125
|
!_dependencyTypes.contains(_dependencyType),
|
|
127
126
|
"Dependency type already exists"
|
|
@@ -152,13 +151,9 @@ contract DependencyRegistryV0 is
|
|
|
152
151
|
* @notice Removes a dependency.
|
|
153
152
|
* @param _dependencyType Name of dependency type (i.e. "type@version")
|
|
154
153
|
*/
|
|
155
|
-
function removeDependency(
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
external
|
|
159
|
-
onlyAdminACL(this.removeDependency.selector)
|
|
160
|
-
onlyExistingDependencyType(_dependencyType)
|
|
161
|
-
{
|
|
154
|
+
function removeDependency(bytes32 _dependencyType) external {
|
|
155
|
+
_onlyAdminACL(this.removeDependency.selector);
|
|
156
|
+
_onlyExistingDependencyType(_dependencyType);
|
|
162
157
|
Dependency storage dependency = dependencyDetails[_dependencyType];
|
|
163
158
|
require(
|
|
164
159
|
dependency.additionalCDNCount == 0 &&
|
|
@@ -182,12 +177,10 @@ contract DependencyRegistryV0 is
|
|
|
182
177
|
function addDependencyScript(
|
|
183
178
|
bytes32 _dependencyType,
|
|
184
179
|
string memory _script
|
|
185
|
-
)
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
onlyExistingDependencyType(_dependencyType)
|
|
190
|
-
{
|
|
180
|
+
) external {
|
|
181
|
+
_onlyAdminACL(this.addDependencyScript.selector);
|
|
182
|
+
_onlyNonEmptyString(_script);
|
|
183
|
+
_onlyExistingDependencyType(_dependencyType);
|
|
191
184
|
Dependency storage dependency = dependencyDetails[_dependencyType];
|
|
192
185
|
// store script in contract bytecode
|
|
193
186
|
dependency.scriptBytecodeAddresses[dependency.scriptCount] = _script
|
|
@@ -208,27 +201,15 @@ contract DependencyRegistryV0 is
|
|
|
208
201
|
bytes32 _dependencyType,
|
|
209
202
|
uint256 _scriptId,
|
|
210
203
|
string memory _script
|
|
211
|
-
)
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
onlyExistingDependencyType(_dependencyType)
|
|
216
|
-
{
|
|
204
|
+
) external {
|
|
205
|
+
_onlyAdminACL(this.updateDependencyScript.selector);
|
|
206
|
+
_onlyNonEmptyString(_script);
|
|
207
|
+
_onlyExistingDependencyType(_dependencyType);
|
|
217
208
|
Dependency storage dependencyType = dependencyDetails[_dependencyType];
|
|
218
209
|
require(
|
|
219
210
|
_scriptId < dependencyType.scriptCount,
|
|
220
211
|
"scriptId out of range"
|
|
221
212
|
);
|
|
222
|
-
// purge old contract bytecode contract from the blockchain state
|
|
223
|
-
// note: Although this does reduce usage of Ethereum state, it does not
|
|
224
|
-
// reduce the gas costs of removal transactions. We believe this is the
|
|
225
|
-
// best behavior at the time of writing, and do not expect this to
|
|
226
|
-
// result in any breaking changes in the future. All current proposals
|
|
227
|
-
// to change the self-destruct opcode are backwards compatible, but may
|
|
228
|
-
// result in not removing the bytecode from the blockchain state. This
|
|
229
|
-
// implementation is compatible with that architecture, as it does not
|
|
230
|
-
// rely on the bytecode being removed from the blockchain state.
|
|
231
|
-
dependencyType.scriptBytecodeAddresses[_scriptId].purgeBytecode();
|
|
232
213
|
// store script in contract bytecode, replacing reference address from
|
|
233
214
|
// the contract that no longer exists with the newly created one
|
|
234
215
|
dependencyType.scriptBytecodeAddresses[_scriptId] = _script
|
|
@@ -241,28 +222,12 @@ contract DependencyRegistryV0 is
|
|
|
241
222
|
* @notice Removes last script from dependency `_dependencyType`.
|
|
242
223
|
* @param _dependencyType dependency to be updated.
|
|
243
224
|
*/
|
|
244
|
-
function removeDependencyLastScript(
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
external
|
|
248
|
-
onlyAdminACL(this.removeDependencyLastScript.selector)
|
|
249
|
-
onlyExistingDependencyType(_dependencyType)
|
|
250
|
-
{
|
|
225
|
+
function removeDependencyLastScript(bytes32 _dependencyType) external {
|
|
226
|
+
_onlyAdminACL(this.removeDependencyLastScript.selector);
|
|
227
|
+
_onlyExistingDependencyType(_dependencyType);
|
|
251
228
|
Dependency storage dependency = dependencyDetails[_dependencyType];
|
|
252
229
|
require(dependency.scriptCount > 0, "there are no scripts to remove");
|
|
253
|
-
//
|
|
254
|
-
// note: Although this does reduce usage of Ethereum state, it does not
|
|
255
|
-
// reduce the gas costs of removal transactions. We believe this is the
|
|
256
|
-
// best behavior at the time of writing, and do not expect this to
|
|
257
|
-
// result in any breaking changes in the future. All current proposals
|
|
258
|
-
// to change the self-destruct opcode are backwards compatible, but may
|
|
259
|
-
// result in not removing the bytecode from the blockchain state. This
|
|
260
|
-
// implementation is compatible with that architecture, as it does not
|
|
261
|
-
// rely on the bytecode being removed from the blockchain state.
|
|
262
|
-
dependency
|
|
263
|
-
.scriptBytecodeAddresses[dependency.scriptCount - 1]
|
|
264
|
-
.purgeBytecode();
|
|
265
|
-
// delete reference to contract address that no longer exists
|
|
230
|
+
// delete reference to old storage contract address
|
|
266
231
|
delete dependency.scriptBytecodeAddresses[dependency.scriptCount - 1];
|
|
267
232
|
unchecked {
|
|
268
233
|
dependency.scriptCount = dependency.scriptCount - 1;
|
|
@@ -279,11 +244,9 @@ contract DependencyRegistryV0 is
|
|
|
279
244
|
function updateDependencyPreferredCDN(
|
|
280
245
|
bytes32 _dependencyType,
|
|
281
246
|
string memory _preferredCDN
|
|
282
|
-
)
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
onlyExistingDependencyType(_dependencyType)
|
|
286
|
-
{
|
|
247
|
+
) external {
|
|
248
|
+
_onlyAdminACL(this.updateDependencyPreferredCDN.selector);
|
|
249
|
+
_onlyExistingDependencyType(_dependencyType);
|
|
287
250
|
dependencyDetails[_dependencyType].preferredCDN = _preferredCDN;
|
|
288
251
|
|
|
289
252
|
emit DependencyPreferredCDNUpdated(_dependencyType, _preferredCDN);
|
|
@@ -297,11 +260,9 @@ contract DependencyRegistryV0 is
|
|
|
297
260
|
function updateDependencyPreferredRepository(
|
|
298
261
|
bytes32 _dependencyType,
|
|
299
262
|
string memory _preferredRepository
|
|
300
|
-
)
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
onlyExistingDependencyType(_dependencyType)
|
|
304
|
-
{
|
|
263
|
+
) external {
|
|
264
|
+
_onlyAdminACL(this.updateDependencyPreferredRepository.selector);
|
|
265
|
+
_onlyExistingDependencyType(_dependencyType);
|
|
305
266
|
dependencyDetails[_dependencyType]
|
|
306
267
|
.preferredRepository = _preferredRepository;
|
|
307
268
|
|
|
@@ -319,11 +280,9 @@ contract DependencyRegistryV0 is
|
|
|
319
280
|
function updateDependencyReferenceWebsite(
|
|
320
281
|
bytes32 _dependencyType,
|
|
321
282
|
string memory _referenceWebsite
|
|
322
|
-
)
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
onlyExistingDependencyType(_dependencyType)
|
|
326
|
-
{
|
|
283
|
+
) external {
|
|
284
|
+
_onlyAdminACL(this.updateDependencyReferenceWebsite.selector);
|
|
285
|
+
_onlyExistingDependencyType(_dependencyType);
|
|
327
286
|
dependencyDetails[_dependencyType].referenceWebsite = _referenceWebsite;
|
|
328
287
|
|
|
329
288
|
emit DependencyReferenceWebsiteUpdated(
|
|
@@ -341,12 +300,10 @@ contract DependencyRegistryV0 is
|
|
|
341
300
|
function addDependencyAdditionalCDN(
|
|
342
301
|
bytes32 _dependencyType,
|
|
343
302
|
string memory _additionalCDN
|
|
344
|
-
)
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
onlyExistingDependencyType(_dependencyType)
|
|
349
|
-
{
|
|
303
|
+
) external {
|
|
304
|
+
_onlyAdminACL(this.addDependencyAdditionalCDN.selector);
|
|
305
|
+
_onlyNonEmptyString(_additionalCDN);
|
|
306
|
+
_onlyExistingDependencyType(_dependencyType);
|
|
350
307
|
Dependency storage dependency = dependencyDetails[_dependencyType];
|
|
351
308
|
|
|
352
309
|
uint256 additionalCDNCount = uint256(dependency.additionalCDNCount);
|
|
@@ -370,11 +327,9 @@ contract DependencyRegistryV0 is
|
|
|
370
327
|
function removeDependencyAdditionalCDNAtIndex(
|
|
371
328
|
bytes32 _dependencyType,
|
|
372
329
|
uint256 _index
|
|
373
|
-
)
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
onlyExistingDependencyType(_dependencyType)
|
|
377
|
-
{
|
|
330
|
+
) external {
|
|
331
|
+
_onlyAdminACL(this.removeDependencyAdditionalCDNAtIndex.selector);
|
|
332
|
+
_onlyExistingDependencyType(_dependencyType);
|
|
378
333
|
Dependency storage dependency = dependencyDetails[_dependencyType];
|
|
379
334
|
|
|
380
335
|
uint256 additionalCDNCount = dependency.additionalCDNCount;
|
|
@@ -402,12 +357,10 @@ contract DependencyRegistryV0 is
|
|
|
402
357
|
bytes32 _dependencyType,
|
|
403
358
|
uint256 _index,
|
|
404
359
|
string memory _additionalCDN
|
|
405
|
-
)
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
onlyExistingDependencyType(_dependencyType)
|
|
410
|
-
{
|
|
360
|
+
) external {
|
|
361
|
+
_onlyAdminACL(this.updateDependencyAdditionalCDNAtIndex.selector);
|
|
362
|
+
_onlyNonEmptyString(_additionalCDN);
|
|
363
|
+
_onlyExistingDependencyType(_dependencyType);
|
|
411
364
|
Dependency storage dependency = dependencyDetails[_dependencyType];
|
|
412
365
|
uint24 additionalCDNCount = dependency.additionalCDNCount;
|
|
413
366
|
require(_index < additionalCDNCount, "Asset index out of range");
|
|
@@ -430,12 +383,10 @@ contract DependencyRegistryV0 is
|
|
|
430
383
|
function addDependencyAdditionalRepository(
|
|
431
384
|
bytes32 _dependencyType,
|
|
432
385
|
string memory _additionalRepository
|
|
433
|
-
)
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
onlyExistingDependencyType(_dependencyType)
|
|
438
|
-
{
|
|
386
|
+
) external {
|
|
387
|
+
_onlyAdminACL(this.addDependencyAdditionalRepository.selector);
|
|
388
|
+
_onlyNonEmptyString(_additionalRepository);
|
|
389
|
+
_onlyExistingDependencyType(_dependencyType);
|
|
439
390
|
Dependency storage dependency = dependencyDetails[_dependencyType];
|
|
440
391
|
uint256 additionalRepositoryCount = uint256(
|
|
441
392
|
dependency.additionalRepositoryCount
|
|
@@ -464,11 +415,11 @@ contract DependencyRegistryV0 is
|
|
|
464
415
|
function removeDependencyAdditionalRepositoryAtIndex(
|
|
465
416
|
bytes32 _dependencyType,
|
|
466
417
|
uint256 _index
|
|
467
|
-
)
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
418
|
+
) external {
|
|
419
|
+
_onlyAdminACL(
|
|
420
|
+
this.removeDependencyAdditionalRepositoryAtIndex.selector
|
|
421
|
+
);
|
|
422
|
+
_onlyExistingDependencyType(_dependencyType);
|
|
472
423
|
Dependency storage dependency = dependencyDetails[_dependencyType];
|
|
473
424
|
uint256 additionalRepositoryCount = uint256(
|
|
474
425
|
dependency.additionalRepositoryCount
|
|
@@ -497,12 +448,12 @@ contract DependencyRegistryV0 is
|
|
|
497
448
|
bytes32 _dependencyType,
|
|
498
449
|
uint256 _index,
|
|
499
450
|
string memory _additionalRepository
|
|
500
|
-
)
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
451
|
+
) external {
|
|
452
|
+
_onlyAdminACL(
|
|
453
|
+
this.updateDependencyAdditionalRepositoryAtIndex.selector
|
|
454
|
+
);
|
|
455
|
+
_onlyNonEmptyString(_additionalRepository);
|
|
456
|
+
_onlyExistingDependencyType(_dependencyType);
|
|
506
457
|
Dependency storage dependency = dependencyDetails[_dependencyType];
|
|
507
458
|
uint24 additionalRepositoryCount = dependency.additionalRepositoryCount;
|
|
508
459
|
require(_index < additionalRepositoryCount, "Asset index out of range");
|
|
@@ -520,13 +471,9 @@ contract DependencyRegistryV0 is
|
|
|
520
471
|
* @notice Adds a new core contract to the list of supported core contracts.
|
|
521
472
|
* @param _contractAddress Address of the core contract to be added.
|
|
522
473
|
*/
|
|
523
|
-
function addSupportedCoreContract(
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
external
|
|
527
|
-
onlyAdminACL(this.addSupportedCoreContract.selector)
|
|
528
|
-
onlyNonZeroAddress(_contractAddress)
|
|
529
|
-
{
|
|
474
|
+
function addSupportedCoreContract(address _contractAddress) external {
|
|
475
|
+
_onlyAdminACL(this.addSupportedCoreContract.selector);
|
|
476
|
+
_onlyNonZeroAddress(_contractAddress);
|
|
530
477
|
require(
|
|
531
478
|
!_supportedCoreContracts.contains(_contractAddress),
|
|
532
479
|
"Contract already supported"
|
|
@@ -541,13 +488,9 @@ contract DependencyRegistryV0 is
|
|
|
541
488
|
* @notice Removes a core contract from the list of supported core contracts.
|
|
542
489
|
* @param _contractAddress Address of the core contract to be removed.
|
|
543
490
|
*/
|
|
544
|
-
function removeSupportedCoreContract(
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
external
|
|
548
|
-
onlyAdminACL(this.removeSupportedCoreContract.selector)
|
|
549
|
-
onlySupportedCoreContract(_contractAddress)
|
|
550
|
-
{
|
|
491
|
+
function removeSupportedCoreContract(address _contractAddress) external {
|
|
492
|
+
_onlyAdminACL(this.removeSupportedCoreContract.selector);
|
|
493
|
+
_onlySupportedCoreContract(_contractAddress);
|
|
551
494
|
_supportedCoreContracts.remove(_contractAddress);
|
|
552
495
|
|
|
553
496
|
emit SupportedCoreContractRemoved(_contractAddress);
|
|
@@ -566,12 +509,10 @@ contract DependencyRegistryV0 is
|
|
|
566
509
|
address _contractAddress,
|
|
567
510
|
uint256 _projectId,
|
|
568
511
|
bytes32 _dependencyType
|
|
569
|
-
)
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
onlySupportedCoreContract(_contractAddress)
|
|
574
|
-
{
|
|
512
|
+
) external {
|
|
513
|
+
_onlyAdminACL(this.addProjectDependencyTypeOverride.selector);
|
|
514
|
+
_onlyExistingDependencyType(_dependencyType);
|
|
515
|
+
_onlySupportedCoreContract(_contractAddress);
|
|
575
516
|
projectDependencyTypeOverrides[_contractAddress][
|
|
576
517
|
_projectId
|
|
577
518
|
] = _dependencyType;
|
|
@@ -592,7 +533,8 @@ contract DependencyRegistryV0 is
|
|
|
592
533
|
function removeProjectDependencyTypeOverride(
|
|
593
534
|
address _contractAddress,
|
|
594
535
|
uint256 _projectId
|
|
595
|
-
) external
|
|
536
|
+
) external {
|
|
537
|
+
_onlyAdminACL(this.removeProjectDependencyTypeOverride.selector);
|
|
596
538
|
require(
|
|
597
539
|
projectDependencyTypeOverrides[_contractAddress][_projectId] !=
|
|
598
540
|
bytes32(""),
|
|
@@ -792,7 +734,7 @@ contract DependencyRegistryV0 is
|
|
|
792
734
|
return "";
|
|
793
735
|
}
|
|
794
736
|
|
|
795
|
-
return dependency.scriptBytecodeAddresses[_index]
|
|
737
|
+
return _readFromBytecode(dependency.scriptBytecodeAddresses[_index]);
|
|
796
738
|
}
|
|
797
739
|
|
|
798
740
|
/**
|
|
@@ -808,12 +750,8 @@ contract DependencyRegistryV0 is
|
|
|
808
750
|
function getDependencyTypeForProject(
|
|
809
751
|
address _contractAddress,
|
|
810
752
|
uint256 _projectId
|
|
811
|
-
)
|
|
812
|
-
|
|
813
|
-
view
|
|
814
|
-
onlySupportedCoreContract(_contractAddress)
|
|
815
|
-
returns (string memory)
|
|
816
|
-
{
|
|
753
|
+
) external view returns (string memory) {
|
|
754
|
+
_onlySupportedCoreContract(_contractAddress);
|
|
817
755
|
bytes32 dependencyType = projectDependencyTypeOverrides[
|
|
818
756
|
_contractAddress
|
|
819
757
|
][_projectId];
|
|
@@ -890,4 +828,14 @@ contract DependencyRegistryV0 is
|
|
|
890
828
|
OwnableUpgradeable._transferOwnership(newOwner);
|
|
891
829
|
adminACLContract = IAdminACLV0(newOwner);
|
|
892
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
|
+
}
|
|
893
841
|
}
|