@artblocks/contracts 1.0.2 → 1.0.4
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 +56 -21
- 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 +141 -15
- package/artifacts/contracts/GenArt721CoreV3.sol/GenArt721CoreV3.json +42 -5
- package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV0.sol/MinterDAExpV0.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV1.sol/MinterDAExpV1.json +2 -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/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/MinterDALinV0.sol/MinterDALinV0.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV1.sol/MinterDALinV1.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/MinterHolderV0.sol/MinterHolderV0.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/MinterMerkleV0.sol/MinterMerkleV0.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/MinterSetPriceV0.sol/MinterSetPriceV0.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV1.sol/MinterSetPriceV1.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/MinterSetPriceERC20V0.sol/MinterSetPriceERC20V0.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V1.sol/MinterSetPriceERC20V1.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.5.x → v0.5.x}/IBonusContract.sol/IBonusContract.json +1 -1
- package/artifacts/contracts/interfaces/{0.5.x → v0.5.x}/IGenArt721CoreContractV1.sol/IGenArt721CoreContractV1.json +1 -1
- package/artifacts/contracts/interfaces/{0.5.x → v0.5.x}/IGenArt721CoreV2_PBAB.sol/IGenArt721CoreV2_PBAB.json +1 -1
- package/artifacts/contracts/interfaces/{0.5.x → v0.5.x}/IRandomizer.sol/IRandomizer.json +1 -1
- package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IAdminACLV0.sol/IAdminACLV0.json +1 -1
- package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IArtblocksRoyaltyOverride.sol/IArtblocksRoyaltyOverride.json +1 -1
- package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IBonusContract.sol/IBonusContract.json +1 -1
- package/artifacts/contracts/interfaces/v0.8.x/IBytecodeStorageReader.sol/IBytecodeStorageReader.json +111 -0
- package/artifacts/contracts/interfaces/v0.8.x/ICoreRegistryV1.sol/ICoreRegistryV1.json +172 -0
- package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IDelegationRegistry.sol/IDelegationRegistry.json +1 -1
- package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IDependencyRegistryCompatibleV0.sol/IDependencyRegistryCompatibleV0.json +1 -1
- package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IDependencyRegistryV0.sol/IDependencyRegistryV0.json +3 -3
- package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IEngineRegistryV0.sol/IEngineRegistryV0.json +1 -1
- package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDAExpSettlementV0.sol/IFilteredMinterDAExpSettlementV0.json +1 -1
- package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDAExpSettlementV1.sol/IFilteredMinterDAExpSettlementV1.json +1 -1
- package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDAExpSettlement_Mixin.sol/IFilteredMinterDAExpSettlement_Mixin.json +1 -1
- package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDAExpV0.sol/IFilteredMinterDAExpV0.json +1 -1
- package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDAExpV1.sol/IFilteredMinterDAExpV1.json +1 -1
- package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDALinV0.sol/IFilteredMinterDALinV0.json +1 -1
- package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDALinV1.sol/IFilteredMinterDALinV1.json +1 -1
- package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterHolderV0.sol/IFilteredMinterHolderV0.json +1 -1
- package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterHolderV1.sol/IFilteredMinterHolderV1.json +1 -1
- package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterHolderV2.sol/IFilteredMinterHolderV2.json +1 -1
- package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterMerkleV0.sol/IFilteredMinterMerkleV0.json +1 -1
- package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterMerkleV1.sol/IFilteredMinterMerkleV1.json +1 -1
- package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterMerkleV2.sol/IFilteredMinterMerkleV2.json +1 -1
- package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterSEAV0.sol/IFilteredMinterSEAV0.json +56 -54
- package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterV0.sol/IFilteredMinterV0.json +1 -1
- package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterV1.sol/IFilteredMinterV1.json +1 -1
- package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterV2.sol/IFilteredMinterV2.json +1 -1
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractExposesHashSeed.sol/IGenArt721CoreContractExposesHashSeed.json +30 -0
- package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV1.sol/IGenArt721CoreContractV1.json +1 -1
- package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV3.sol/IGenArt721CoreContractV3.json +14 -1
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3WithSharedRandomizer.sol/IGenArt721CoreContractV3WithSharedRandomizer.json +24 -0
- package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV3_Base.sol/IGenArt721CoreContractV3_Base.json +14 -1
- package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV3_Engine.sol/IGenArt721CoreContractV3_Engine.json +8 -14
- package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV3_Engine_Flex.sol/IGenArt721CoreContractV3_Engine_Flex.json +8 -14
- package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreV2_PBAB.sol/IGenArt721CoreV2_PBAB.json +1 -1
- package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IManifold.sol/IManifold.json +1 -1
- package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IMinterBaseV0.sol/IMinterBaseV0.json +1 -1
- package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IMinterFilterV0.sol/IMinterFilterV0.json +1 -1
- package/artifacts/contracts/interfaces/v0.8.x/IMinterFilterV1.sol/IMinterFilterV1.json +514 -0
- package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IMintingAPICoreV0.sol/IMintingAPICoreV0.json +1 -1
- package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IMintingAPIMinterV0.sol/IMintingAPIMinterV0.json +1 -1
- package/artifacts/contracts/interfaces/v0.8.x/IPseudorandomAtomic.sol/IPseudorandomAtomic.json +30 -0
- package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IRandomizer.sol/IRandomizer.json +1 -1
- package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IRandomizerPolyptychV0.sol/IRandomizerPolyptychV0.json +1 -1
- package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IRandomizerV2.sol/IRandomizerV2.json +1 -1
- package/artifacts/contracts/interfaces/v0.8.x/IRandomizer_V3CoreBase.sol/IRandomizer_V3CoreBase.json +24 -0
- package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDAExpSettlementV0.sol/ISharedMinterDAExpSettlementV0.json +207 -0
- package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDAExpV0.sol/ISharedMinterDAExpV0.json +93 -0
- package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDALinV0.sol/ISharedMinterDALinV0.json +93 -0
- package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDAV0.sol/ISharedMinterDAV0.json +69 -0
- package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterHolderV0.sol/ISharedMinterHolderV0.json +203 -0
- package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterMerkleV0.sol/ISharedMinterMerkleV0.json +123 -0
- package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterSEAV0.sol/ISharedMinterSEAV0.json +261 -0
- package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterSimplePurchaseV0.sol/ISharedMinterSimplePurchaseV0.json +64 -0
- package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterV0.sol/ISharedMinterV0.json +533 -0
- package/artifacts/contracts/interfaces/v0.8.x/ISharedRandomizerV0.sol/ISharedRandomizerV0.json +223 -0
- package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IWETH.sol/IWETH.json +1 -1
- package/artifacts/contracts/legacy/GenArt721CoreV1.sol/Address.json +2 -2
- package/artifacts/contracts/legacy/GenArt721CoreV1.sol/Counters.json +2 -2
- package/artifacts/contracts/legacy/GenArt721CoreV1.sol/CustomERC721Metadata.json +2 -2
- package/artifacts/contracts/legacy/GenArt721CoreV1.sol/ERC721.json +2 -2
- package/artifacts/contracts/legacy/GenArt721CoreV1.sol/ERC721Enumerable.json +2 -2
- package/artifacts/contracts/legacy/GenArt721CoreV1.sol/GenArt721CoreV1.json +2 -2
- package/artifacts/contracts/legacy/GenArt721CoreV1.sol/SafeMath.json +2 -2
- package/artifacts/contracts/legacy/GenArt721CoreV1.sol/Strings.json +2 -2
- package/artifacts/contracts/legacy/GenArt721LegacyMinter.sol/GenArt721LegacyMinter.json +2 -2
- 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/libs/{0.5.x → v0.5.x}/CustomERC721Metadata.sol/CustomERC721Metadata.json +3 -3
- package/artifacts/contracts/libs/{0.5.x → v0.5.x}/IERC20.sol/IERC20.json +1 -1
- package/artifacts/contracts/libs/{0.5.x → v0.5.x}/SafeMath.sol/SafeMath.json +3 -3
- package/artifacts/contracts/libs/{0.5.x → v0.5.x}/Strings.sol/Strings.json +3 -3
- package/artifacts/contracts/libs/v0.8.x/ABHelpers.sol/ABHelpers.json +10 -0
- package/artifacts/contracts/libs/v0.8.x/AuthLib.sol/AuthLib.json +10 -0
- package/artifacts/contracts/libs/{0.8.x/BytecodeStorage.sol → v0.8.x/BytecodeStorageV0.sol}/BytecodeStorage.json +3 -3
- package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV1.sol/BytecodeStorageReader.json +163 -0
- package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV1.sol/BytecodeStorageWriter.json +10 -0
- package/artifacts/contracts/libs/{0.8.x → v0.8.x}/Bytes32Strings.sol/Bytes32Strings.json +3 -3
- package/artifacts/contracts/libs/{0.8.x → v0.8.x}/ERC721_PackedHashSeed.sol/ERC721_PackedHashSeed.json +3 -3
- package/artifacts/contracts/libs/v0.8.x/SSTORE2.sol/SSTORE2.json +10 -0
- package/artifacts/contracts/libs/v0.8.x/minter-libs/DAExpLib.sol/DAExpLib.json +10 -0
- package/artifacts/contracts/libs/v0.8.x/minter-libs/DALinLib.sol/DALinLib.json +10 -0
- package/artifacts/contracts/libs/v0.8.x/minter-libs/MaxInvocationsLib.sol/MaxInvocationsLib.json +10 -0
- package/artifacts/contracts/libs/v0.8.x/minter-libs/MerkleLib.sol/MerkleLib.json +10 -0
- package/artifacts/contracts/libs/v0.8.x/minter-libs/PolyptychLib.sol/PolyptychLib.json +10 -0
- package/artifacts/contracts/libs/v0.8.x/minter-libs/SEALib.sol/SEALib.json +10 -0
- package/artifacts/contracts/libs/v0.8.x/minter-libs/SetPriceLib.sol/SetPriceLib.json +10 -0
- package/artifacts/contracts/libs/v0.8.x/minter-libs/SettlementExpLib.sol/SettlementExpLib.json +10 -0
- package/artifacts/contracts/libs/v0.8.x/minter-libs/SplitFundsLib.sol/SplitFundsLib.json +10 -0
- package/artifacts/contracts/libs/v0.8.x/minter-libs/TokenHolderLib.sol/TokenHolderLib.json +10 -0
- package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV0.sol/MinterFilterV0.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 +748 -0
- package/artifacts/contracts/minter-suite/Minters/MinterDAExpHolderV5.sol/MinterDAExpHolderV5.json +1228 -0
- package/artifacts/contracts/minter-suite/Minters/MinterDAExpSettlementV2.sol/MinterDAExpSettlementV2.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterDAExpSettlementV3.sol/MinterDAExpSettlementV3.json +1146 -0
- package/artifacts/contracts/minter-suite/Minters/MinterDAExpV4.sol/MinterDAExpV4.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterDAExpV5.sol/MinterDAExpV5.json +909 -0
- package/artifacts/contracts/minter-suite/Minters/MinterDALinHolderV5.sol/MinterDALinHolderV5.json +1228 -0
- package/artifacts/contracts/minter-suite/Minters/MinterDALinV4.sol/MinterDALinV4.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterDALinV5.sol/MinterDALinV5.json +909 -0
- 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/MinterSEAV1.sol/MinterSEAV1.json +1325 -0
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20V4.sol/MinterSetPriceERC20V4.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20V5.sol/MinterSetPriceERC20V5.json +848 -0
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceHolderV5.sol/MinterSetPriceHolderV5.json +1091 -0
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceMerkleV5.sol/MinterSetPriceMerkleV5.json +1075 -0
- package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychERC20V5.sol/MinterSetPricePolyptychERC20V5.json +1243 -0
- package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychV5.sol/MinterSetPricePolyptychV5.json +1167 -0
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceV4.sol/MinterSetPriceV4.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceV5.sol/MinterSetPriceV5.json +772 -0
- 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 +25 -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 +28 -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 +247 -0
- package/artifacts/contracts/royalty-registry/GenArt721RoyaltyOverride.sol/GenArt721RoyaltyOverride.json +2 -2
- package/artifacts/contracts/royalty-registry/GenArt721RoyaltyOverride_PBAB.sol/GenArt721RoyaltyOverride_PBAB.json +2 -2
- package/contracts/AdminACLV0.sol +2 -2
- package/contracts/AdminACLV1.sol +2 -2
- package/contracts/DependencyRegistryV0.sol +219 -123
- package/contracts/GenArt721CoreV3.sol +60 -42
- package/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV0.sol +3 -3
- package/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV1.sol +3 -3
- package/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV2.sol +4 -4
- package/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV3.sol +4 -4
- package/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol +4 -4
- package/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV1.sol +4 -4
- package/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV0.sol +3 -3
- package/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV1.sol +3 -3
- package/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV2.sol +4 -4
- package/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV3.sol +4 -4
- package/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV0.sol +3 -3
- package/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV1.sol +4 -4
- package/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV2.sol +5 -5
- package/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV3.sol +5 -5
- package/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV0.sol +3 -3
- package/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV1.sol +4 -4
- package/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV2.sol +5 -5
- package/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV3.sol +5 -5
- package/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV4.sol +5 -5
- package/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV0.sol +3 -3
- package/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV1.sol +3 -3
- package/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV2.sol +4 -4
- package/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV3.sol +4 -4
- package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V0.sol +3 -3
- package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V1.sol +3 -3
- package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V2.sol +4 -4
- package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V3.sol +4 -4
- 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} +48 -24
- package/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol +2298 -0
- package/contracts/{GenArt721CoreV3_Engine_Flex.sol → engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol} +50 -31
- package/contracts/engine/V3/forks/PROHIBITION/AdminACLV0_PROHIBITION.sol +281 -0
- package/contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol +2359 -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 +2 -2
- package/contracts/explorations/GenArt721CoreV3_Explorations.sol +58 -40
- package/contracts/interfaces/v0.8.x/IBytecodeStorageReader.sol +62 -0
- package/contracts/interfaces/v0.8.x/ICoreRegistryV1.sol +27 -0
- package/contracts/interfaces/{0.8.x → v0.8.x}/IDelegationRegistry.sol +1 -1
- package/contracts/interfaces/{0.8.x → v0.8.x}/IDependencyRegistryCompatibleV0.sol +1 -1
- package/contracts/interfaces/{0.8.x → v0.8.x}/IDependencyRegistryV0.sol +3 -3
- package/contracts/interfaces/{0.8.x → v0.8.x}/IEngineRegistryV0.sol +1 -1
- package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterSEAV0.sol +34 -15
- package/contracts/interfaces/v0.8.x/IGenArt721CoreContractExposesHashSeed.sol +11 -0
- package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3WithSharedRandomizer.sol +23 -0
- package/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV3_Base.sol +3 -0
- package/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV3_Engine.sol +0 -5
- package/contracts/interfaces/v0.8.x/IMinterFilterV1.sol +184 -0
- package/contracts/interfaces/v0.8.x/IPseudorandomAtomic.sol +16 -0
- package/contracts/interfaces/{0.8.x → v0.8.x}/IRandomizerPolyptychV0.sol +1 -1
- package/contracts/interfaces/{0.8.x → v0.8.x}/IRandomizerV2.sol +2 -5
- package/contracts/interfaces/v0.8.x/IRandomizer_V3CoreBase.sol +23 -0
- package/contracts/interfaces/v0.8.x/ISharedMinterDAExpSettlementV0.sol +37 -0
- package/contracts/interfaces/v0.8.x/ISharedMinterDAExpV0.sol +25 -0
- package/contracts/interfaces/v0.8.x/ISharedMinterDALinV0.sol +26 -0
- package/contracts/interfaces/v0.8.x/ISharedMinterDAV0.sol +19 -0
- package/contracts/interfaces/v0.8.x/ISharedMinterHolderV0.sol +69 -0
- package/contracts/interfaces/v0.8.x/ISharedMinterMerkleV0.sol +44 -0
- package/contracts/interfaces/v0.8.x/ISharedMinterSEAV0.sol +78 -0
- package/contracts/interfaces/v0.8.x/ISharedMinterSimplePurchaseV0.sol +28 -0
- package/contracts/interfaces/v0.8.x/ISharedMinterV0.sol +191 -0
- package/contracts/interfaces/v0.8.x/ISharedRandomizerV0.sol +123 -0
- package/contracts/legacy/GenArt721CoreV1.sol +2 -2
- package/contracts/legacy/GenArt721LegacyMinter.sol +5 -5
- package/contracts/libs/integration-refs/delegation-registry/DelegationRegistry.sol +2 -2
- package/contracts/libs/integration-refs/weth9/weth9.sol +2 -0
- package/contracts/libs/v0.8.x/ABHelpers.sol +55 -0
- package/contracts/libs/v0.8.x/AuthLib.sol +197 -0
- package/contracts/libs/v0.8.x/BytecodeStorageV1.sol +399 -0
- package/contracts/libs/v0.8.x/SSTORE2.sol +109 -0
- package/contracts/libs/v0.8.x/minter-libs/DAExpLib.sol +125 -0
- package/contracts/libs/v0.8.x/minter-libs/DALinLib.sol +109 -0
- package/contracts/libs/v0.8.x/minter-libs/MaxInvocationsLib.sol +348 -0
- package/contracts/libs/v0.8.x/minter-libs/MerkleLib.sol +175 -0
- package/contracts/libs/v0.8.x/minter-libs/PolyptychLib.sol +160 -0
- package/contracts/libs/v0.8.x/minter-libs/SEALib.sol +320 -0
- package/contracts/libs/v0.8.x/minter-libs/SetPriceLib.sol +44 -0
- package/contracts/libs/v0.8.x/minter-libs/SettlementExpLib.sol +390 -0
- package/contracts/libs/v0.8.x/minter-libs/SplitFundsLib.sol +583 -0
- package/contracts/libs/v0.8.x/minter-libs/TokenHolderLib.sol +153 -0
- package/contracts/minter-suite/MinterFilter/MinterFilterV0.sol +3 -3
- package/contracts/minter-suite/MinterFilter/MinterFilterV1.sol +6 -6
- package/contracts/minter-suite/MinterFilter/MinterFilterV2.sol +830 -0
- package/contracts/minter-suite/Minters/MinterBase_v0_1_1.sol +4 -4
- package/contracts/minter-suite/Minters/MinterDAExpHolderV5.sol +966 -0
- package/contracts/minter-suite/Minters/MinterDAExpSettlementV2.sol +4 -4
- package/contracts/minter-suite/Minters/MinterDAExpSettlementV3.sol +1126 -0
- package/contracts/minter-suite/Minters/MinterDAExpV4.sol +4 -4
- package/contracts/minter-suite/Minters/MinterDAExpV5.sol +606 -0
- package/contracts/minter-suite/Minters/MinterDALinHolderV5.sol +952 -0
- package/contracts/minter-suite/Minters/MinterDALinV4.sol +4 -4
- package/contracts/minter-suite/Minters/MinterDALinV5.sol +591 -0
- package/contracts/minter-suite/Minters/MinterHolderV4.sol +5 -5
- package/contracts/minter-suite/Minters/MinterMerkleV5.sol +5 -5
- package/contracts/minter-suite/Minters/MinterPolyptychV0.sol +18 -17
- package/contracts/minter-suite/Minters/MinterSEAV0.sol +235 -186
- package/contracts/minter-suite/Minters/MinterSEAV1.sol +1190 -0
- package/contracts/minter-suite/Minters/MinterSetPriceERC20V4.sol +6 -6
- package/contracts/minter-suite/Minters/MinterSetPriceERC20V5.sol +570 -0
- package/contracts/minter-suite/Minters/MinterSetPriceHolderV5.sol +821 -0
- package/contracts/minter-suite/Minters/MinterSetPriceMerkleV5.sol +802 -0
- package/contracts/minter-suite/Minters/MinterSetPricePolyptychERC20V5.sol +1096 -0
- package/contracts/minter-suite/Minters/MinterSetPricePolyptychV5.sol +992 -0
- package/contracts/minter-suite/Minters/MinterSetPriceV4.sol +4 -4
- package/contracts/minter-suite/Minters/MinterSetPriceV5.sol +461 -0
- 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 +16 -1
- package/contracts/mock/DeadReceiverMock.sol +1 -1
- package/contracts/mock/DummySharedMinter.sol +75 -0
- package/contracts/mock/ERC20Mock.sol +16 -0
- package/contracts/mock/GasLimitReceiverBidderMock.sol +1 -1
- package/contracts/mock/GasLimitReceiverMock.sol +1 -1
- package/contracts/mock/GenArt721CoreV3_Engine_IncorrectCoreType.sol +22 -35
- package/contracts/mock/MockAdminACLV0.sol +2 -2
- 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/ReentrancyHolderMock.sol +1 -1
- package/contracts/mock/ReentrancyMerkleMock.sol +1 -1
- package/contracts/mock/ReentrancyMock.sol +1 -1
- package/contracts/mock/ReentrancySEAMock.sol +1 -1
- 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 +260 -0
- package/contracts/royalty-registry/GenArt721RoyaltyOverride.sol +2 -2
- package/contracts/royalty-registry/GenArt721RoyaltyOverride_PBAB.sol +2 -2
- package/package.json +51 -43
- package/.env.example +0 -17
- package/LICENSE +0 -165
- 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/interfaces/{0.5.x → v0.5.x}/IBonusContract.sol +0 -0
- /package/contracts/interfaces/{0.5.x → v0.5.x}/IGenArt721CoreContractV1.sol +0 -0
- /package/contracts/interfaces/{0.5.x → v0.5.x}/IGenArt721CoreV2_PBAB.sol +0 -0
- /package/contracts/interfaces/{0.5.x → v0.5.x}/IRandomizer.sol +0 -0
- /package/contracts/interfaces/{0.8.x → v0.8.x}/IAdminACLV0.sol +0 -0
- /package/contracts/interfaces/{0.8.x → v0.8.x}/IArtblocksRoyaltyOverride.sol +0 -0
- /package/contracts/interfaces/{0.8.x → v0.8.x}/IBonusContract.sol +0 -0
- /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDAExpSettlementV0.sol +0 -0
- /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDAExpSettlementV1.sol +0 -0
- /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDAExpSettlement_Mixin.sol +0 -0
- /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDAExpV0.sol +0 -0
- /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDAExpV1.sol +0 -0
- /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDALinV0.sol +0 -0
- /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDALinV1.sol +0 -0
- /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterHolderV0.sol +0 -0
- /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterHolderV1.sol +0 -0
- /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterHolderV2.sol +0 -0
- /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterMerkleV0.sol +0 -0
- /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterMerkleV1.sol +0 -0
- /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterMerkleV2.sol +0 -0
- /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterV0.sol +0 -0
- /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterV1.sol +0 -0
- /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterV2.sol +0 -0
- /package/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV1.sol +0 -0
- /package/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV3.sol +0 -0
- /package/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV3_Engine_Flex.sol +0 -0
- /package/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreV2_PBAB.sol +0 -0
- /package/contracts/interfaces/{0.8.x → v0.8.x}/IManifold.sol +0 -0
- /package/contracts/interfaces/{0.8.x → v0.8.x}/IMinterBaseV0.sol +0 -0
- /package/contracts/interfaces/{0.8.x → v0.8.x}/IMinterFilterV0.sol +0 -0
- /package/contracts/interfaces/{0.8.x → v0.8.x}/IMintingAPICoreV0.sol +0 -0
- /package/contracts/interfaces/{0.8.x → v0.8.x}/IMintingAPIMinterV0.sol +0 -0
- /package/contracts/interfaces/{0.8.x → v0.8.x}/IRandomizer.sol +0 -0
- /package/contracts/interfaces/{0.8.x → v0.8.x}/IWETH.sol +0 -0
- /package/contracts/libs/{0.5.x → v0.5.x}/CustomERC721Metadata.sol +0 -0
- /package/contracts/libs/{0.5.x → v0.5.x}/IERC20.sol +0 -0
- /package/contracts/libs/{0.5.x → v0.5.x}/SafeMath.sol +0 -0
- /package/contracts/libs/{0.5.x → v0.5.x}/Strings.sol +0 -0
- /package/contracts/libs/{0.8.x/BytecodeStorage.sol → v0.8.x/BytecodeStorageV0.sol} +0 -0
- /package/contracts/libs/{0.8.x → v0.8.x}/Bytes32Strings.sol +0 -0
- /package/contracts/libs/{0.8.x → v0.8.x}/ERC721_PackedHashSeed.sol +0 -0
|
@@ -1,19 +1,19 @@
|
|
|
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/v0.8.x/IRandomizerV2.sol";
|
|
7
|
+
import "../../../interfaces/v0.8.x/IAdminACLV0.sol";
|
|
8
|
+
import "../../../interfaces/v0.8.x/IEngineRegistryV0.sol";
|
|
9
|
+
import "../../../interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex.sol";
|
|
10
|
+
import "../../../interfaces/v0.8.x/IDependencyRegistryCompatibleV0.sol";
|
|
11
|
+
import "../../../interfaces/v0.8.x/IManifold.sol";
|
|
12
12
|
|
|
13
13
|
import "@openzeppelin-4.7/contracts/access/Ownable.sol";
|
|
14
|
-
import "
|
|
15
|
-
import "
|
|
16
|
-
import "
|
|
14
|
+
import "../../../libs/v0.8.x/ERC721_PackedHashSeed.sol";
|
|
15
|
+
import "../../../libs/v0.8.x/BytecodeStorageV1.sol";
|
|
16
|
+
import "../../../libs/v0.8.x/Bytes32Strings.sol";
|
|
17
17
|
|
|
18
18
|
/**
|
|
19
19
|
* @title Art Blocks Engine Flex ERC-721 core contract, V3.
|
|
@@ -54,7 +54,8 @@ import "./libs/0.8.x/Bytes32Strings.sol";
|
|
|
54
54
|
* - updateProjectScriptType
|
|
55
55
|
* - updateProjectAspectRatio
|
|
56
56
|
* ----------------------------------------------------------------------------
|
|
57
|
-
* The following functions are restricted to only the Artist
|
|
57
|
+
* The following functions are restricted to only the Artist or Admin ACL
|
|
58
|
+
* contract of a valid project ID:
|
|
58
59
|
* - proposeArtistPaymentAddressesAndSplits (Note that this has to be accepted
|
|
59
60
|
* by adminAcceptArtistAddressesAndSplits to take effect, which is restricted
|
|
60
61
|
* to the Admin ACL contract, or the artist if the core contract owner has
|
|
@@ -64,7 +65,7 @@ import "./libs/0.8.x/Bytes32Strings.sol";
|
|
|
64
65
|
* if the global config `autoApproveArtistSplitProposals` is set to `true`.)
|
|
65
66
|
* - toggleProjectIsPaused (note the artist can still mint while paused)
|
|
66
67
|
* - updateProjectSecondaryMarketRoyaltyPercentage (up to
|
|
67
|
-
|
|
68
|
+
* ARTIST_MAX_SECONDARY_ROYALTY_PERCENTAGE percent)
|
|
68
69
|
* - updateProjectWebsite
|
|
69
70
|
* - updateProjectMaxInvocations (to a number greater than or equal to the
|
|
70
71
|
* current number of invocations, and less than current project maximum
|
|
@@ -83,7 +84,7 @@ import "./libs/0.8.x/Bytes32Strings.sol";
|
|
|
83
84
|
* ----------------------------------------------------------------------------
|
|
84
85
|
* The following functions for managing external asset dependencies are restricted
|
|
85
86
|
* to projects with external asset dependencies that are unlocked:
|
|
86
|
-
* - lockProjectExternalAssetDependencies
|
|
87
|
+
* - lockProjectExternalAssetDependencies
|
|
87
88
|
* - updateProjectExternalAssetDependency
|
|
88
89
|
* - removeProjectExternalAssetDependency
|
|
89
90
|
* - addProjectExternalAssetDependency
|
|
@@ -99,16 +100,16 @@ import "./libs/0.8.x/Bytes32Strings.sol";
|
|
|
99
100
|
* Additional admin and artist privileged roles may be described on minters,
|
|
100
101
|
* registries, and other contracts that may interact with this core contract.
|
|
101
102
|
*/
|
|
102
|
-
contract
|
|
103
|
+
contract GenArt721CoreV3_Engine_Flex_PROOF is
|
|
103
104
|
ERC721_PackedHashSeed,
|
|
104
105
|
Ownable,
|
|
105
106
|
IDependencyRegistryCompatibleV0,
|
|
106
107
|
IManifold,
|
|
107
108
|
IGenArt721CoreContractV3_Engine_Flex
|
|
108
109
|
{
|
|
109
|
-
using
|
|
110
|
-
using BytecodeStorage for address;
|
|
110
|
+
using BytecodeStorageWriter for string;
|
|
111
111
|
using Bytes32Strings for bytes32;
|
|
112
|
+
|
|
112
113
|
uint256 constant ONE_HUNDRED = 100;
|
|
113
114
|
uint256 constant ONE_MILLION = 1_000_000;
|
|
114
115
|
uint24 constant ONE_MILLION_UINT24 = 1_000_000;
|
|
@@ -214,6 +215,7 @@ contract GenArt721CoreV3_Engine_Flex is
|
|
|
214
215
|
uint8 additionalPayeePrimarySalesPercentage;
|
|
215
216
|
}
|
|
216
217
|
// Project financials mapping
|
|
218
|
+
|
|
217
219
|
mapping(uint256 => ProjectFinance) projectIdToFinancials;
|
|
218
220
|
|
|
219
221
|
/// hash of artist's proposed payment updates to be approved by admin
|
|
@@ -326,13 +328,6 @@ contract GenArt721CoreV3_Engine_Flex is
|
|
|
326
328
|
);
|
|
327
329
|
}
|
|
328
330
|
|
|
329
|
-
function _onlyArtist(uint256 _projectId) internal view {
|
|
330
|
-
require(
|
|
331
|
-
msg.sender == projectIdToFinancials[_projectId].artistAddress,
|
|
332
|
-
"Only artist"
|
|
333
|
-
);
|
|
334
|
-
}
|
|
335
|
-
|
|
336
331
|
function _onlyArtistOrAdminACL(
|
|
337
332
|
uint256 _projectId,
|
|
338
333
|
bytes4 _selector
|
|
@@ -901,7 +896,10 @@ contract GenArt721CoreV3_Engine_Flex is
|
|
|
901
896
|
uint256 _additionalPayeeSecondarySalesPercentage
|
|
902
897
|
) external {
|
|
903
898
|
_onlyValidProjectId(_projectId);
|
|
904
|
-
|
|
899
|
+
_onlyArtistOrAdminACL(
|
|
900
|
+
_projectId,
|
|
901
|
+
this.proposeArtistPaymentAddressesAndSplits.selector
|
|
902
|
+
);
|
|
905
903
|
_onlyNonZeroAddress(_artistAddress);
|
|
906
904
|
ProjectFinance storage projectFinance = projectIdToFinancials[
|
|
907
905
|
_projectId
|
|
@@ -1088,7 +1086,8 @@ contract GenArt721CoreV3_Engine_Flex is
|
|
|
1088
1086
|
* @param _projectId Project ID to be toggled.
|
|
1089
1087
|
*/
|
|
1090
1088
|
function toggleProjectIsPaused(uint256 _projectId) external {
|
|
1091
|
-
|
|
1089
|
+
_onlyValidProjectId(_projectId);
|
|
1090
|
+
_onlyArtistOrAdminACL(_projectId, this.toggleProjectIsPaused.selector);
|
|
1092
1091
|
projects[_projectId].paused = !projects[_projectId].paused;
|
|
1093
1092
|
emit ProjectUpdated(_projectId, FIELD_PROJECT_PAUSED);
|
|
1094
1093
|
}
|
|
@@ -1178,7 +1177,11 @@ contract GenArt721CoreV3_Engine_Flex is
|
|
|
1178
1177
|
uint256 _projectId,
|
|
1179
1178
|
uint256 _secondMarketRoyalty
|
|
1180
1179
|
) external {
|
|
1181
|
-
|
|
1180
|
+
_onlyValidProjectId(_projectId);
|
|
1181
|
+
_onlyArtistOrAdminACL(
|
|
1182
|
+
_projectId,
|
|
1183
|
+
this.updateProjectSecondaryMarketRoyaltyPercentage.selector
|
|
1184
|
+
);
|
|
1182
1185
|
require(
|
|
1183
1186
|
_secondMarketRoyalty <= ARTIST_MAX_SECONDARY_ROYALTY_PERCENTAGE,
|
|
1184
1187
|
"Over max percent"
|
|
@@ -1227,7 +1230,8 @@ contract GenArt721CoreV3_Engine_Flex is
|
|
|
1227
1230
|
uint256 _projectId,
|
|
1228
1231
|
string memory _projectWebsite
|
|
1229
1232
|
) external {
|
|
1230
|
-
|
|
1233
|
+
_onlyValidProjectId(_projectId);
|
|
1234
|
+
_onlyArtistOrAdminACL(_projectId, this.updateProjectWebsite.selector);
|
|
1231
1235
|
projects[_projectId].website = _projectWebsite;
|
|
1232
1236
|
emit ProjectUpdated(_projectId, FIELD_PROJECT_WEBSITE);
|
|
1233
1237
|
}
|
|
@@ -1261,7 +1265,11 @@ contract GenArt721CoreV3_Engine_Flex is
|
|
|
1261
1265
|
uint256 _projectId,
|
|
1262
1266
|
uint24 _maxInvocations
|
|
1263
1267
|
) external {
|
|
1264
|
-
|
|
1268
|
+
_onlyValidProjectId(_projectId);
|
|
1269
|
+
_onlyArtistOrAdminACL(
|
|
1270
|
+
_projectId,
|
|
1271
|
+
this.updateProjectMaxInvocations.selector
|
|
1272
|
+
);
|
|
1265
1273
|
// CHECKS
|
|
1266
1274
|
Project storage project = projects[_projectId];
|
|
1267
1275
|
uint256 _invocations = project.invocations;
|
|
@@ -1434,7 +1442,8 @@ contract GenArt721CoreV3_Engine_Flex is
|
|
|
1434
1442
|
uint256 _projectId,
|
|
1435
1443
|
string memory _newBaseURI
|
|
1436
1444
|
) external {
|
|
1437
|
-
|
|
1445
|
+
_onlyValidProjectId(_projectId);
|
|
1446
|
+
_onlyArtistOrAdminACL(_projectId, this.updateProjectBaseURI.selector);
|
|
1438
1447
|
_onlyNonEmptyString(_newBaseURI);
|
|
1439
1448
|
projects[_projectId].projectBaseURI = _newBaseURI;
|
|
1440
1449
|
emit ProjectUpdated(_projectId, FIELD_PROJECT_BASE_URI);
|
|
@@ -1763,7 +1772,7 @@ contract GenArt721CoreV3_Engine_Flex is
|
|
|
1763
1772
|
if (_index >= project.scriptCount) {
|
|
1764
1773
|
return "";
|
|
1765
1774
|
}
|
|
1766
|
-
return project.scriptBytecodeAddresses[_index]
|
|
1775
|
+
return _readFromBytecode(project.scriptBytecodeAddresses[_index]);
|
|
1767
1776
|
}
|
|
1768
1777
|
|
|
1769
1778
|
/**
|
|
@@ -1994,7 +2003,7 @@ contract GenArt721CoreV3_Engine_Flex is
|
|
|
1994
2003
|
bytecodeAddress: _bytecodeAddress,
|
|
1995
2004
|
data: (_dependency.dependencyType ==
|
|
1996
2005
|
ExternalAssetDependencyType.ONCHAIN)
|
|
1997
|
-
? _bytecodeAddress
|
|
2006
|
+
? _readFromBytecode(_bytecodeAddress)
|
|
1998
2007
|
: ""
|
|
1999
2008
|
});
|
|
2000
2009
|
}
|
|
@@ -2217,6 +2226,16 @@ contract GenArt721CoreV3_Engine_Flex is
|
|
|
2217
2226
|
FOUR_WEEKS_IN_SECONDS);
|
|
2218
2227
|
}
|
|
2219
2228
|
|
|
2229
|
+
/**
|
|
2230
|
+
* Helper for calling `BytecodeStorageReader` external library reader method,
|
|
2231
|
+
* added for bytecode size reduction purposes.
|
|
2232
|
+
*/
|
|
2233
|
+
function _readFromBytecode(
|
|
2234
|
+
address _address
|
|
2235
|
+
) internal view returns (string memory) {
|
|
2236
|
+
return BytecodeStorageReader.readFromBytecode(_address);
|
|
2237
|
+
}
|
|
2238
|
+
|
|
2220
2239
|
// strings library from OpenZeppelin, modified for no constants
|
|
2221
2240
|
|
|
2222
2241
|
bytes16 private _HEX_SYMBOLS = "0123456789abcdef";
|
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
|
|
3
|
+
pragma solidity 0.8.19;
|
|
4
|
+
|
|
5
|
+
import "./interfaces/IAdminACLV0_PROHIBITION.sol";
|
|
6
|
+
import "../../../../interfaces/v0.8.x/IGenArt721CoreContractV3_Base.sol";
|
|
7
|
+
|
|
8
|
+
import "@openzeppelin-4.7/contracts/access/Ownable.sol";
|
|
9
|
+
import "@openzeppelin-4.7/contracts/utils/introspection/ERC165.sol";
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* @title Admin ACL contract, V0.
|
|
13
|
+
* @author Art Blocks Inc.
|
|
14
|
+
* @notice Privileged Roles and Ownership:
|
|
15
|
+
* This contract has a single superAdmin that passes all ACL checks. All checks
|
|
16
|
+
* for any other address will return false.
|
|
17
|
+
* The superAdmin can be changed by the current superAdmin.
|
|
18
|
+
* Care must be taken to ensure that the admin ACL contract is secure behind a
|
|
19
|
+
* multi-sig or other secure access control mechanism.
|
|
20
|
+
*/
|
|
21
|
+
contract AdminACLV0_PROHIBITION is IAdminACLV0_PROHIBITION, ERC165 {
|
|
22
|
+
string public AdminACLType = "AdminACLV0_PROHIBITION";
|
|
23
|
+
|
|
24
|
+
/// superAdmin is the only address that passes any and all ACL checks
|
|
25
|
+
address public superAdmin;
|
|
26
|
+
|
|
27
|
+
/// contractSelectorApprovals is a mapping of:
|
|
28
|
+
/// keccak256(contracts, selectors, account) -> approved to call.
|
|
29
|
+
/// It is used to determine if an account is approved to call a function on specific contracts.
|
|
30
|
+
mapping(bytes32 => bool) contractSelectorApprovals;
|
|
31
|
+
|
|
32
|
+
/// contractArtistApprovals is a mapping of:
|
|
33
|
+
/// keccak256(contracts, artist) -> approved to call.
|
|
34
|
+
/// It is used to determine if an account is approved to call a functions for specific projects.
|
|
35
|
+
mapping(bytes32 => bool) contractArtistApprovals;
|
|
36
|
+
|
|
37
|
+
constructor() {
|
|
38
|
+
superAdmin = msg.sender;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* @notice Allows superAdmin change the superAdmin address.
|
|
43
|
+
* @param _newSuperAdmin The new superAdmin address.
|
|
44
|
+
* @param _genArt721CoreAddressesToUpdate Array of genArt721Core
|
|
45
|
+
* addresses to update to the new superAdmin, for indexing purposes only.
|
|
46
|
+
* @dev this function is gated to only superAdmin address.
|
|
47
|
+
*/
|
|
48
|
+
function changeSuperAdmin(
|
|
49
|
+
address _newSuperAdmin,
|
|
50
|
+
address[] calldata _genArt721CoreAddressesToUpdate
|
|
51
|
+
) external {
|
|
52
|
+
require(msg.sender == superAdmin, "Only superAdmin");
|
|
53
|
+
address previousSuperAdmin = superAdmin;
|
|
54
|
+
superAdmin = _newSuperAdmin;
|
|
55
|
+
emit SuperAdminTransferred(
|
|
56
|
+
previousSuperAdmin,
|
|
57
|
+
_newSuperAdmin,
|
|
58
|
+
_genArt721CoreAddressesToUpdate
|
|
59
|
+
);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Calls transferOwnership on other contract from this contract.
|
|
64
|
+
* This is useful for updating to a new AdminACL contract.
|
|
65
|
+
* @param _contract The contract address.
|
|
66
|
+
* @param _newAdminACL The new AdminACL contract address.
|
|
67
|
+
* @dev This function is gated to only superAdmin address.
|
|
68
|
+
* @dev This implementation requires that the new AdminACL contract
|
|
69
|
+
* broadcasts support of IAdminACLV0 via ERC165 interface detection.
|
|
70
|
+
*/
|
|
71
|
+
function transferOwnershipOn(
|
|
72
|
+
address _contract,
|
|
73
|
+
address _newAdminACL
|
|
74
|
+
) external {
|
|
75
|
+
require(msg.sender == superAdmin, "Only superAdmin");
|
|
76
|
+
// ensure new AdminACL contract supports IAdminACLV0
|
|
77
|
+
require(
|
|
78
|
+
ERC165(_newAdminACL).supportsInterface(
|
|
79
|
+
type(IAdminACLV0).interfaceId
|
|
80
|
+
),
|
|
81
|
+
"AdminACLV0: new admin ACL does not support IAdminACLV0"
|
|
82
|
+
);
|
|
83
|
+
Ownable(_contract).transferOwnership(_newAdminACL);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* @notice Calls renounceOwnership on other contract from this contract.
|
|
88
|
+
* @param _contract The contract address.
|
|
89
|
+
* @dev this function is gated to only superAdmin address.
|
|
90
|
+
*/
|
|
91
|
+
function renounceOwnershipOn(address _contract) external {
|
|
92
|
+
require(msg.sender == superAdmin, "Only superAdmin");
|
|
93
|
+
Ownable(_contract).renounceOwnership();
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* @notice Retrieve the address of the caller that is allowed to call a contract's function
|
|
98
|
+
* @param _contract The contract address.
|
|
99
|
+
* @param _selector The function selector.
|
|
100
|
+
* @param _caller The caller address.
|
|
101
|
+
* @return isApproved The approval status.
|
|
102
|
+
*/
|
|
103
|
+
function getContractSelectorApproval(
|
|
104
|
+
address _contract,
|
|
105
|
+
bytes4 _selector,
|
|
106
|
+
address _caller
|
|
107
|
+
) public view returns (bool) {
|
|
108
|
+
return
|
|
109
|
+
contractSelectorApprovals[
|
|
110
|
+
hashSelectorApprovalKey(_contract, _selector, _caller)
|
|
111
|
+
];
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* @notice Retrieve whether of the caller is allowed to call a functions for a project
|
|
116
|
+
* @param _contract The contract address.
|
|
117
|
+
* @param _caller The caller address.
|
|
118
|
+
* @return isApproved The approval status.
|
|
119
|
+
*/
|
|
120
|
+
function getContractArtistApproval(
|
|
121
|
+
address _contract,
|
|
122
|
+
address _caller
|
|
123
|
+
) public view returns (bool) {
|
|
124
|
+
return
|
|
125
|
+
contractArtistApprovals[hashArtistApprovalKey(_contract, _caller)];
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* @notice Toggles ability for caller to call specific function on a contract
|
|
130
|
+
* @param _contract The contract address.
|
|
131
|
+
* @param _selector The function selector.
|
|
132
|
+
* @param _caller The caller address.
|
|
133
|
+
* @dev this function is gated to only allwed addressed.
|
|
134
|
+
*/
|
|
135
|
+
function toggleContractSelectorApproval(
|
|
136
|
+
address _contract,
|
|
137
|
+
bytes4 _selector,
|
|
138
|
+
address _caller
|
|
139
|
+
) external {
|
|
140
|
+
require(
|
|
141
|
+
allowed(
|
|
142
|
+
msg.sender,
|
|
143
|
+
address(this),
|
|
144
|
+
this.toggleContractSelectorApproval.selector
|
|
145
|
+
),
|
|
146
|
+
"Only allowed caller"
|
|
147
|
+
);
|
|
148
|
+
|
|
149
|
+
bytes32 approvalHash = hashSelectorApprovalKey(
|
|
150
|
+
_contract,
|
|
151
|
+
_selector,
|
|
152
|
+
_caller
|
|
153
|
+
);
|
|
154
|
+
contractSelectorApprovals[approvalHash] = !contractSelectorApprovals[
|
|
155
|
+
approvalHash
|
|
156
|
+
];
|
|
157
|
+
emit ContractSelectorApprovalUpdated(
|
|
158
|
+
_contract,
|
|
159
|
+
_selector,
|
|
160
|
+
_caller,
|
|
161
|
+
contractSelectorApprovals[approvalHash]
|
|
162
|
+
);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
/**
|
|
166
|
+
* @notice Toggles verification for artists to call functions relating to their projects
|
|
167
|
+
* on a contract
|
|
168
|
+
* @param _contract The contract address.
|
|
169
|
+
* @param _caller The caller address.
|
|
170
|
+
* @dev this function is gated to only allwed addressed.
|
|
171
|
+
*/
|
|
172
|
+
function toggleContractArtistApproval(
|
|
173
|
+
address _contract,
|
|
174
|
+
address _caller
|
|
175
|
+
) external {
|
|
176
|
+
require(
|
|
177
|
+
allowed(
|
|
178
|
+
msg.sender,
|
|
179
|
+
address(this),
|
|
180
|
+
this.toggleContractArtistApproval.selector
|
|
181
|
+
),
|
|
182
|
+
"Only allowed caller"
|
|
183
|
+
);
|
|
184
|
+
|
|
185
|
+
bytes32 approvalHash = hashArtistApprovalKey(_contract, _caller);
|
|
186
|
+
contractArtistApprovals[approvalHash] = !contractArtistApprovals[
|
|
187
|
+
approvalHash
|
|
188
|
+
];
|
|
189
|
+
emit ContractArtistApprovalUpdated(
|
|
190
|
+
_contract,
|
|
191
|
+
_caller,
|
|
192
|
+
contractArtistApprovals[approvalHash]
|
|
193
|
+
);
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
/**
|
|
197
|
+
* @notice Checks if sender `_sender` is allowed to call function with method
|
|
198
|
+
* `_selector` on `_contract`. Returns true if sender is superAdmin.
|
|
199
|
+
* @param _sender The sender address.
|
|
200
|
+
* @param _contract The contract address.
|
|
201
|
+
* @param _selector The function selector.
|
|
202
|
+
* @return isApproved The approval status.
|
|
203
|
+
* @dev this function is public insteaad of internal so that the right to toggle approvals
|
|
204
|
+
* can also be delegated
|
|
205
|
+
*/
|
|
206
|
+
function allowed(
|
|
207
|
+
address _sender,
|
|
208
|
+
address _contract,
|
|
209
|
+
bytes4 _selector
|
|
210
|
+
) public view returns (bool) {
|
|
211
|
+
return
|
|
212
|
+
superAdmin == _sender ||
|
|
213
|
+
getContractSelectorApproval(_contract, _selector, _sender);
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
/**
|
|
217
|
+
* @notice Checks if sender `_sender` is allowed to call function (or functions) for projects
|
|
218
|
+
* `projectId` with method `_selector` on `_contract`. Returns true if sender is superAdmin.
|
|
219
|
+
* @param _sender The sender address.
|
|
220
|
+
* @param _contract The contract address.
|
|
221
|
+
* @param _selector The function selector.
|
|
222
|
+
* @param _projectId The project ID.
|
|
223
|
+
* @return isApproved The approval status.
|
|
224
|
+
* @dev this function is public insteaad of internal so that the right to toggle approvals
|
|
225
|
+
* can also be delegated
|
|
226
|
+
*/
|
|
227
|
+
function allowed(
|
|
228
|
+
address _sender,
|
|
229
|
+
address _contract,
|
|
230
|
+
bytes4 _selector,
|
|
231
|
+
uint256 _projectId
|
|
232
|
+
) external view returns (bool) {
|
|
233
|
+
IGenArt721CoreContractV3_Base coreV3 = IGenArt721CoreContractV3_Base(
|
|
234
|
+
_contract
|
|
235
|
+
);
|
|
236
|
+
return
|
|
237
|
+
allowed(_sender, _contract, _selector) ||
|
|
238
|
+
(getContractArtistApproval(_contract, _sender) &&
|
|
239
|
+
coreV3.projectIdToArtistAddress(_projectId) == _sender);
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
/**
|
|
243
|
+
* @notice Hash the contract address, selector, and caller address.
|
|
244
|
+
* @param _contract The contract address.
|
|
245
|
+
* @param _selector The function selector.
|
|
246
|
+
* @param _caller The caller address.
|
|
247
|
+
* @return hash The hash.
|
|
248
|
+
*/
|
|
249
|
+
function hashSelectorApprovalKey(
|
|
250
|
+
address _contract,
|
|
251
|
+
bytes4 _selector,
|
|
252
|
+
address _caller
|
|
253
|
+
) public pure returns (bytes32) {
|
|
254
|
+
return keccak256(abi.encodePacked(_contract, _selector, _caller));
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
/**
|
|
258
|
+
* @notice Hash the contract address and artist address.
|
|
259
|
+
* @param _contract The contract address.
|
|
260
|
+
* @param _caller The artist address.
|
|
261
|
+
* @return hash The hash.
|
|
262
|
+
*/
|
|
263
|
+
function hashArtistApprovalKey(
|
|
264
|
+
address _contract,
|
|
265
|
+
address _caller
|
|
266
|
+
) public pure returns (bytes32) {
|
|
267
|
+
return keccak256(abi.encodePacked(_contract, _caller));
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
/**
|
|
271
|
+
* @inheritdoc ERC165
|
|
272
|
+
*/
|
|
273
|
+
function supportsInterface(
|
|
274
|
+
bytes4 interfaceId
|
|
275
|
+
) public view virtual override(ERC165) returns (bool) {
|
|
276
|
+
return
|
|
277
|
+
interfaceId == type(IAdminACLV0_PROHIBITION).interfaceId ||
|
|
278
|
+
interfaceId == type(IAdminACLV0).interfaceId ||
|
|
279
|
+
super.supportsInterface(interfaceId);
|
|
280
|
+
}
|
|
281
|
+
}
|