@artblocks/contracts 1.0.3 → 1.1.0
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 +32 -25
- 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 +212 -17
- package/artifacts/contracts/GenArt721CoreV3.sol/GenArt721CoreV3.json +6 -6
- 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/V2/GenArt721CoreV2_ENGINE_FLEX.sol/GenArt721CoreV2_ENGINE_FLEX.json +2 -2
- package/artifacts/contracts/engine/V2/GenArt721CoreV2_PBAB.sol/GenArt721CoreV2_PBAB.json +2 -2
- package/artifacts/contracts/engine/V2/GenArt721CoreV2_PRTNR.sol/GenArt721CoreV2_PRTNR.json +2 -2
- package/artifacts/contracts/engine/V2/GenArt721MinterBurner_PBAB.sol/GenArt721MinterBurner_PBAB.json +2 -2
- package/artifacts/contracts/engine/V2/GenArt721MinterDAExp_PBAB.sol/GenArt721MinterDAExp_PBAB.json +2 -2
- package/artifacts/contracts/engine/V2/GenArt721Minter_PBAB.sol/GenArt721Minter_PBAB.json +2 -2
- package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine.sol/GenArt721CoreV3_Engine.json +6 -11
- package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol/GenArt721CoreV3_Engine_Flex.json +6 -11
- package/artifacts/contracts/engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol/GenArt721CoreV3_Engine_Flex_PROOF.json +6 -11
- package/artifacts/contracts/engine/V3/forks/PROHIBITION/AdminACLV0_PROHIBITION.sol/AdminACLV0_PROHIBITION.json +2 -2
- package/artifacts/contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol/GenArt721CoreV3_Engine_Flex_PROHIBITION.json +6 -11
- package/artifacts/contracts/engine-registry/CoreRegistryV1.sol/CoreRegistryV1.json +12 -12
- package/artifacts/contracts/engine-registry/EngineRegistryV0.sol/EngineRegistryV0.json +2 -2
- package/artifacts/contracts/explorations/GenArt721CoreV3_Explorations.sol/GenArt721CoreV3_Explorations.json +6 -6
- 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/{0.8.x → v0.8.x}/IBytecodeStorageReader.sol/IBytecodeStorageReader.json +1 -1
- package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/ICoreRegistryV1.sol/ICoreRegistryV1.json +7 -7
- 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 +22 -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 +1 -1
- 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/{0.8.x → v0.8.x}/IGenArt721CoreContractExposesHashSeed.sol/IGenArt721CoreContractExposesHashSeed.json +1 -1
- 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 +1 -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 +1 -1
- package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV3_Engine.sol/IGenArt721CoreContractV3_Engine.json +1 -1
- package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV3_Engine_Flex.sol/IGenArt721CoreContractV3_Engine_Flex.json +1 -1
- 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/{0.8.x → v0.8.x}/IMinterFilterV1.sol/IMinterFilterV1.json +104 -19
- 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/{0.8.x → v0.8.x}/IPseudorandomAtomic.sol/IPseudorandomAtomic.json +1 -1
- 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/{0.8.x → v0.8.x}/IRandomizer_V3CoreBase.sol/IRandomizer_V3CoreBase.json +1 -1
- package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDAExpSettlementV0.sol/ISharedMinterDAExpSettlementV0.json +114 -0
- package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDAExpV0.sol/ISharedMinterDAExpV0.json +37 -0
- package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDALinV0.sol/ISharedMinterDALinV0.json +37 -0
- package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDAV0.sol/ISharedMinterDAV0.json +50 -0
- package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterHolderERC20V0.sol/ISharedMinterHolderERC20V0.json +158 -0
- package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterHolderV0.sol/ISharedMinterHolderV0.json +128 -0
- package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterMerkleV0.sol/ISharedMinterMerkleV0.json +97 -0
- package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterSEAV0.sol/ISharedMinterSEAV0.json +29 -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 +117 -0
- package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/ISharedRandomizerV0.sol/ISharedRandomizerV0.json +52 -36
- 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/{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 → v0.8.x}/BytecodeStorageV0.sol/BytecodeStorage.json +3 -3
- package/artifacts/contracts/libs/{0.8.x → v0.8.x}/BytecodeStorageV1.sol/BytecodeStorageReader.json +3 -3
- package/artifacts/contracts/libs/{0.8.x → v0.8.x}/BytecodeStorageV1.sol/BytecodeStorageWriter.json +3 -3
- 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/{0.8.x → v0.8.x}/SSTORE2.sol/SSTORE2.json +3 -3
- package/artifacts/contracts/libs/v0.8.x/minter-libs/DAExpLib.sol/DAExpLib.json +67 -0
- package/artifacts/contracts/libs/v0.8.x/minter-libs/DALib.sol/DALib.json +30 -0
- package/artifacts/contracts/libs/v0.8.x/minter-libs/DALinLib.sol/DALinLib.json +67 -0
- package/artifacts/contracts/libs/v0.8.x/minter-libs/GenericMinterEventsLib.sol/GenericMinterEventsLib.json +346 -0
- package/artifacts/contracts/libs/v0.8.x/minter-libs/MaxInvocationsLib.sol/MaxInvocationsLib.json +36 -0
- package/artifacts/contracts/libs/v0.8.x/minter-libs/MerkleLib.sol/MerkleLib.json +37 -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 +261 -0
- package/artifacts/contracts/libs/v0.8.x/minter-libs/SetPriceLib.sol/SetPriceLib.json +55 -0
- package/artifacts/contracts/libs/v0.8.x/minter-libs/SettlementExpLib.sol/SettlementExpLib.json +48 -0
- package/artifacts/contracts/libs/v0.8.x/minter-libs/SplitFundsLib.sol/SplitFundsLib.json +42 -0
- package/artifacts/contracts/libs/v0.8.x/minter-libs/TokenHolderLib.sol/TokenHolderLib.json +86 -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 +96 -40
- package/artifacts/contracts/minter-suite/Minters/MinterDAExpHolderV5.sol/MinterDAExpHolderV5.json +662 -0
- package/artifacts/contracts/minter-suite/Minters/MinterDAExpSettlementV2.sol/MinterDAExpSettlementV2.json +2 -20
- package/artifacts/contracts/minter-suite/Minters/MinterDAExpSettlementV3.sol/MinterDAExpSettlementV3.json +619 -0
- package/artifacts/contracts/minter-suite/Minters/MinterDAExpV4.sol/MinterDAExpV4.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterDAExpV5.sol/MinterDAExpV5.json +418 -0
- package/artifacts/contracts/minter-suite/Minters/MinterDALinHolderV5.sol/MinterDALinHolderV5.json +662 -0
- package/artifacts/contracts/minter-suite/Minters/MinterDALinV4.sol/MinterDALinV4.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterDALinV5.sol/MinterDALinV5.json +418 -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/MinterPolyptychV0.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterSEAV0.sol/MinterSEAV0.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterSEAV1.sol/MinterSEAV1.json +659 -0
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20V4.sol/MinterSetPriceERC20V4.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20V5.sol/MinterSetPriceERC20V5.json +452 -0
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceHolderV5.sol/MinterSetPriceHolderV5.json +600 -0
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceMerkleV5.sol/MinterSetPriceMerkleV5.json +633 -0
- package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychERC20V5.sol/MinterSetPricePolyptychERC20V5.json +782 -0
- package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychV5.sol/MinterSetPricePolyptychV5.json +676 -0
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceV4.sol/MinterSetPriceV4.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceV5.sol/MinterSetPriceV5.json +356 -0
- package/artifacts/contracts/mock/BytecodeV0TextCR_DMock.sol/BytecodeV0TextCR_DMock.json +2 -2
- package/artifacts/contracts/mock/BytecodeV1LibCallsMock.sol/BytecodeV1LibCallsMock.json +2 -2
- package/artifacts/contracts/mock/BytecodeV1TextCR_DMock.sol/BytecodeV1TextCR_DMock.json +4 -4
- package/artifacts/contracts/mock/DeadReceiverBidderMock.sol/DeadReceiverBidderMock.json +25 -2
- package/artifacts/contracts/mock/DummySharedMinter.sol/DummySharedMinter.json +2 -2
- package/artifacts/contracts/mock/ERC20Mock.sol/ERC20Mock.json +28 -2
- package/artifacts/contracts/mock/GenArt721CoreV3_Engine_IncorrectCoreType.sol/GenArt721CoreV3_Engine_IncorrectCoreType.json +6 -11
- package/artifacts/contracts/mock/MockAdminACLV0.sol/MockAdminACLV0Events.json +2 -2
- package/artifacts/contracts/mock/MockAdminACLV0_PROHIBITION.sol/MockAdminACLV0Events_PROHIBITION.json +2 -2
- package/artifacts/contracts/mock/OriginRegisterMock.sol/OriginRegisterMock.json +2 -2
- package/artifacts/contracts/mock/RandomizerV2_NoAssignMock.sol/RandomizerV2_NoAssignMock.json +2 -2
- package/artifacts/contracts/mock/ReentrancyHolderMock.sol/ReentrancyHolderMock.json +2 -2
- package/artifacts/contracts/mock/ReentrancyHolderMockShared.sol/ReentrancyHolderMockShared.json +136 -0
- package/artifacts/contracts/mock/ReentrancyMerkleMock.sol/ReentrancyMerkleMock.json +2 -2
- package/artifacts/contracts/mock/ReentrancyMerkleMockShared.sol/ReentrancyMerkleMockShared.json +105 -0
- package/artifacts/contracts/mock/ReentrancyMock.sol/ReentrancyMock.json +2 -2
- package/artifacts/contracts/mock/ReentrancyMockShared.sol/ReentrancyMockShared.json +100 -0
- package/artifacts/contracts/mock/ReentrancySEAMock.sol/ReentrancySEAAutoBidderMock.json +2 -2
- package/artifacts/contracts/mock/ReentrancySEAMockShared.sol/ReentrancySEAAutoBidderMockShared.json +69 -0
- package/artifacts/contracts/mock/SSTORE2Mock.sol/SSTORE2Mock.json +2 -2
- package/artifacts/contracts/randomizer/deprecated/BasicRandomizer.sol/BasicRandomizer.json +2 -2
- package/artifacts/contracts/randomizer/deprecated/PolyptychRandomizerV0.sol/BasicPolyptychRandomizerV0.json +2 -2
- package/artifacts/contracts/randomizer/deprecated/RandomizerV2.sol/BasicRandomizerV2.json +2 -2
- package/artifacts/contracts/randomizer/primitive/PseudorandomAtomicBasic.sol/PseudorandomAtomic.json +2 -2
- package/artifacts/contracts/randomizer/shared/SharedRandomizerV0.sol/SharedRandomizerV0.json +58 -42
- 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 +1 -1
- package/contracts/AdminACLV1.sol +1 -1
- package/contracts/DependencyRegistryV0.sol +300 -123
- package/contracts/GenArt721CoreV3.sol +27 -12
- 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 +3 -3
- package/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV3.sol +3 -3
- package/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol +3 -3
- package/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV1.sol +3 -3
- 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 +3 -3
- package/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV3.sol +3 -3
- package/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV0.sol +3 -3
- package/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV1.sol +3 -3
- package/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV2.sol +4 -4
- package/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV3.sol +4 -4
- package/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV0.sol +3 -3
- package/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV1.sol +3 -3
- package/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV2.sol +4 -4
- package/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV3.sol +4 -4
- package/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV4.sol +4 -4
- 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 +3 -3
- package/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV3.sol +3 -3
- 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 +3 -3
- package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V3.sol +3 -3
- package/contracts/archive/readme.md +16 -0
- package/contracts/engine/README.md +21 -0
- package/contracts/engine/V2/GenArt721CoreV2_ENGINE_FLEX.sol +2 -2
- package/contracts/engine/V2/GenArt721CoreV2_PBAB.sol +2 -2
- package/contracts/engine/V2/GenArt721CoreV2_PRTNR.sol +3 -3
- package/contracts/engine/V2/GenArt721MinterBurner_PBAB.sol +2 -2
- package/contracts/engine/V2/GenArt721MinterDAExp_PBAB.sol +1 -1
- package/contracts/engine/V2/GenArt721Minter_PBAB.sol +2 -2
- package/contracts/engine/V3/GenArt721CoreV3_Engine.sol +31 -22
- package/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol +31 -22
- package/contracts/engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol +12 -18
- package/contracts/engine/V3/forks/PROHIBITION/AdminACLV0_PROHIBITION.sol +1 -1
- package/contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol +23 -24
- package/contracts/engine/V3/forks/PROHIBITION/interfaces/IAdminACLV0_PROHIBITION.sol +1 -1
- package/contracts/engine/V3/forks/PROHIBITION/interfaces/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.sol +1 -1
- package/contracts/engine-registry/CoreRegistryV1.sol +58 -65
- package/contracts/engine-registry/EngineRegistryV0.sol +1 -1
- package/contracts/explorations/GenArt721CoreV3_Explorations.sol +27 -12
- package/contracts/interfaces/{0.8.x → v0.8.x}/ICoreRegistryV1.sol +6 -8
- package/contracts/interfaces/{0.8.x → v0.8.x}/IDependencyRegistryV0.sol +5 -2
- package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3WithSharedRandomizer.sol +23 -0
- package/contracts/interfaces/{0.8.x → v0.8.x}/IMinterFilterV1.sol +45 -19
- package/contracts/interfaces/v0.8.x/IRandomizer_V3CoreBase.sol +23 -0
- package/contracts/interfaces/v0.8.x/ISharedMinterDAExpSettlementV0.sol +28 -0
- package/contracts/interfaces/v0.8.x/ISharedMinterDAExpV0.sol +12 -0
- package/contracts/interfaces/v0.8.x/ISharedMinterDALinV0.sol +12 -0
- package/contracts/interfaces/v0.8.x/ISharedMinterDAV0.sol +13 -0
- package/contracts/interfaces/v0.8.x/ISharedMinterHolderERC20V0.sol +47 -0
- package/contracts/interfaces/v0.8.x/ISharedMinterHolderV0.sol +41 -0
- package/contracts/interfaces/v0.8.x/ISharedMinterMerkleV0.sol +34 -0
- package/contracts/interfaces/v0.8.x/ISharedMinterSEAV0.sol +15 -0
- package/contracts/interfaces/v0.8.x/ISharedMinterSimplePurchaseV0.sol +28 -0
- package/contracts/interfaces/v0.8.x/ISharedMinterV0.sol +43 -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 +1 -1
- package/contracts/libs/v0.8.x/ABHelpers.sol +55 -0
- package/contracts/libs/v0.8.x/AuthLib.sol +196 -0
- package/contracts/libs/{0.8.x → v0.8.x}/Bytes32Strings.sol +5 -5
- package/contracts/libs/v0.8.x/minter-libs/DAExpLib.sol +250 -0
- package/contracts/libs/v0.8.x/minter-libs/DALib.sol +26 -0
- package/contracts/libs/v0.8.x/minter-libs/DALinLib.sol +216 -0
- package/contracts/libs/v0.8.x/minter-libs/GenericMinterEventsLib.sol +171 -0
- package/contracts/libs/v0.8.x/minter-libs/MaxInvocationsLib.sol +488 -0
- package/contracts/libs/v0.8.x/minter-libs/MerkleLib.sol +384 -0
- package/contracts/libs/v0.8.x/minter-libs/PolyptychLib.sol +240 -0
- package/contracts/libs/v0.8.x/minter-libs/SEALib.sol +995 -0
- package/contracts/libs/v0.8.x/minter-libs/SetPriceLib.sol +166 -0
- package/contracts/libs/v0.8.x/minter-libs/SettlementExpLib.sol +770 -0
- package/contracts/libs/v0.8.x/minter-libs/SplitFundsLib.sol +741 -0
- package/contracts/libs/v0.8.x/minter-libs/TokenHolderLib.sol +291 -0
- package/contracts/minter-suite/MinterFilter/MinterFilterV0.sol +3 -3
- package/contracts/minter-suite/MinterFilter/MinterFilterV1.sol +5 -5
- package/contracts/minter-suite/MinterFilter/MinterFilterV2.sol +414 -297
- package/contracts/minter-suite/Minters/MinterBase_v0_1_1.sol +4 -4
- package/contracts/minter-suite/Minters/MinterDAExpHolderV5.sol +866 -0
- package/contracts/minter-suite/Minters/MinterDAExpSettlementV2.sol +4 -57
- package/contracts/minter-suite/Minters/MinterDAExpSettlementV3.sol +886 -0
- package/contracts/minter-suite/Minters/MinterDAExpV4.sol +3 -3
- package/contracts/minter-suite/Minters/MinterDAExpV5.sol +545 -0
- package/contracts/minter-suite/Minters/MinterDALinHolderV5.sol +857 -0
- package/contracts/minter-suite/Minters/MinterDALinV4.sol +3 -3
- package/contracts/minter-suite/Minters/MinterDALinV5.sol +534 -0
- package/contracts/minter-suite/Minters/MinterHolderV4.sol +4 -4
- package/contracts/minter-suite/Minters/MinterMerkleV5.sol +4 -4
- package/contracts/minter-suite/Minters/MinterPolyptychV0.sol +6 -6
- package/contracts/minter-suite/Minters/MinterSEAV0.sol +3 -3
- package/contracts/minter-suite/Minters/MinterSEAV1.sol +853 -0
- package/contracts/minter-suite/Minters/MinterSetPriceERC20V4.sol +5 -5
- package/contracts/minter-suite/Minters/MinterSetPriceERC20V5.sol +545 -0
- package/contracts/minter-suite/Minters/MinterSetPriceHolderV5.sol +730 -0
- package/contracts/minter-suite/Minters/MinterSetPriceMerkleV5.sol +714 -0
- package/contracts/minter-suite/Minters/MinterSetPricePolyptychERC20V5.sol +1012 -0
- package/contracts/minter-suite/Minters/MinterSetPricePolyptychV5.sol +868 -0
- package/contracts/minter-suite/Minters/MinterSetPriceV4.sol +3 -3
- package/contracts/minter-suite/Minters/MinterSetPriceV5.sol +414 -0
- package/contracts/mock/BytecodeV0TextCR_DMock.sol +1 -1
- package/contracts/mock/BytecodeV1LibCallsMock.sol +1 -1
- package/contracts/mock/BytecodeV1TextCR_DMock.sol +1 -1
- package/contracts/mock/DeadReceiverBidderMock.sol +15 -0
- package/contracts/mock/DummySharedMinter.sol +2 -2
- package/contracts/mock/ERC20Mock.sol +16 -0
- package/contracts/mock/GenArt721CoreV3_Engine_IncorrectCoreType.sol +11 -18
- package/contracts/mock/MockAdminACLV0.sol +1 -1
- package/contracts/mock/MockAdminACLV0_PROHIBITION.sol +1 -1
- package/contracts/mock/OriginRegisterMock.sol +1 -1
- package/contracts/mock/ReentrancyHolderMock.sol +1 -1
- package/contracts/mock/ReentrancyHolderMockShared.sol +59 -0
- package/contracts/mock/ReentrancyMerkleMock.sol +1 -1
- package/contracts/mock/ReentrancyMerkleMockShared.sol +58 -0
- package/contracts/mock/ReentrancyMock.sol +1 -1
- package/contracts/mock/ReentrancyMockShared.sol +48 -0
- package/contracts/mock/ReentrancySEAMock.sol +1 -1
- package/contracts/mock/ReentrancySEAMockShared.sol +40 -0
- package/contracts/mock/SSTORE2Mock.sol +1 -1
- package/contracts/randomizer/deprecated/BasicRandomizer.sol +1 -1
- package/contracts/randomizer/deprecated/PolyptychRandomizerV0.sol +2 -2
- package/contracts/randomizer/deprecated/RandomizerV2.sol +2 -2
- package/contracts/randomizer/primitive/PseudorandomAtomicBasic.sol +1 -1
- package/contracts/randomizer/shared/SharedRandomizerV0.sol +134 -111
- package/contracts/royalty-registry/GenArt721RoyaltyOverride.sol +2 -2
- package/contracts/royalty-registry/GenArt721RoyaltyOverride_PBAB.sol +2 -2
- package/package.json +57 -36
- package/LICENSE +0 -165
- package/contracts/interfaces/0.8.x/IRandomizer_V3CoreBase.sol +0 -10
- package/contracts/interfaces/0.8.x/ISharedRandomizerV0.sol +0 -105
- /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}/IBytecodeStorageReader.sol +0 -0
- /package/contracts/interfaces/{0.8.x → v0.8.x}/IDelegationRegistry.sol +0 -0
- /package/contracts/interfaces/{0.8.x → v0.8.x}/IDependencyRegistryCompatibleV0.sol +0 -0
- /package/contracts/interfaces/{0.8.x → v0.8.x}/IEngineRegistryV0.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}/IFilteredMinterSEAV0.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}/IGenArt721CoreContractExposesHashSeed.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_Base.sol +0 -0
- /package/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV3_Engine.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}/IPseudorandomAtomic.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}/IRandomizerPolyptychV0.sol +0 -0
- /package/contracts/interfaces/{0.8.x → v0.8.x}/IRandomizerV2.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 → v0.8.x}/BytecodeStorageV0.sol +0 -0
- /package/contracts/libs/{0.8.x → v0.8.x}/BytecodeStorageV1.sol +0 -0
- /package/contracts/libs/{0.8.x → v0.8.x}/ERC721_PackedHashSeed.sol +0 -0
- /package/contracts/libs/{0.8.x → v0.8.x}/SSTORE2.sol +0 -0
|
@@ -3,9 +3,9 @@ pragma solidity 0.8.19;
|
|
|
3
3
|
|
|
4
4
|
// Created By: Art Blocks Inc.
|
|
5
5
|
|
|
6
|
-
import "./interfaces/
|
|
7
|
-
import "./interfaces/
|
|
8
|
-
import "./interfaces/
|
|
6
|
+
import "./interfaces/v0.8.x/IAdminACLV0.sol";
|
|
7
|
+
import "./interfaces/v0.8.x/IDependencyRegistryCompatibleV0.sol";
|
|
8
|
+
import "./interfaces/v0.8.x/IDependencyRegistryV0.sol";
|
|
9
9
|
|
|
10
10
|
import "@openzeppelin-4.7/contracts/utils/Strings.sol";
|
|
11
11
|
import "@openzeppelin-4.7/contracts/utils/structs/EnumerableSet.sol";
|
|
@@ -13,8 +13,8 @@ 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/
|
|
17
|
-
import "./libs/
|
|
16
|
+
import "./libs/v0.8.x/BytecodeStorageV1.sol";
|
|
17
|
+
import "./libs/v0.8.x/Bytes32Strings.sol";
|
|
18
18
|
|
|
19
19
|
/**
|
|
20
20
|
* @title Art Blocks Dependency Registry, V0.
|
|
@@ -23,7 +23,7 @@ import "./libs/0.8.x/Bytes32Strings.sol";
|
|
|
23
23
|
* Permissions managed by ACL contract. If/when we ever call
|
|
24
24
|
* renounceOwnership() this will becom a frozen, immutable registry
|
|
25
25
|
* as no upgrades will be possible.
|
|
26
|
-
* This contract
|
|
26
|
+
* This contract is intended to be an auxiliary reference registry
|
|
27
27
|
* to our non-upgradeable and immutable ERC-721 conforming core contracts,
|
|
28
28
|
* and has been made upgradeable as we expect its required functionality in
|
|
29
29
|
* relation to the Art Blocks ecosystem to evolve over time.
|
|
@@ -46,9 +46,12 @@ contract DependencyRegistryV0 is
|
|
|
46
46
|
IAdminACLV0 public adminACLContract;
|
|
47
47
|
|
|
48
48
|
struct Dependency {
|
|
49
|
+
bytes32 licenseType;
|
|
49
50
|
string preferredCDN;
|
|
51
|
+
// mapping from additional CDN index to CDN URLr
|
|
50
52
|
mapping(uint256 => string) additionalCDNs;
|
|
51
53
|
string preferredRepository;
|
|
54
|
+
// mapping from additional repository index to repository URL
|
|
52
55
|
mapping(uint256 => string) additionalRepositories;
|
|
53
56
|
string referenceWebsite;
|
|
54
57
|
// mapping from script index to address storing script in bytecode
|
|
@@ -58,9 +61,14 @@ contract DependencyRegistryV0 is
|
|
|
58
61
|
uint24 scriptCount;
|
|
59
62
|
}
|
|
60
63
|
|
|
64
|
+
// dependency types, i.e. "type@version"
|
|
61
65
|
EnumerableSet.Bytes32Set private _dependencyTypes;
|
|
66
|
+
// mapping from dependencyTypes to Dependency, which stores the properties of each dependency
|
|
62
67
|
mapping(bytes32 => Dependency) dependencyDetails;
|
|
68
|
+
// source code license types, MIT, GPL, etc.
|
|
69
|
+
EnumerableSet.Bytes32Set private _licenseTypes;
|
|
63
70
|
|
|
71
|
+
// set of supported core ArtBlocks contracts
|
|
64
72
|
EnumerableSet.AddressSet private _supportedCoreContracts;
|
|
65
73
|
mapping(address => mapping(uint256 => bytes32)) projectDependencyTypeOverrides;
|
|
66
74
|
|
|
@@ -97,6 +105,17 @@ contract DependencyRegistryV0 is
|
|
|
97
105
|
);
|
|
98
106
|
}
|
|
99
107
|
|
|
108
|
+
function _onlyInRangeIndex(uint256 _index, uint256 _length) internal pure {
|
|
109
|
+
require(_index < _length, "Index out of range");
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
function _onlyExistingLicenseType(bytes32 _licenseType) internal view {
|
|
113
|
+
require(
|
|
114
|
+
_licenseTypes.contains(_licenseType),
|
|
115
|
+
"License type does not exist"
|
|
116
|
+
);
|
|
117
|
+
}
|
|
118
|
+
|
|
100
119
|
/**
|
|
101
120
|
* @notice Initializes contract.
|
|
102
121
|
* @param _adminACLContract Address of admin access control contract, to be
|
|
@@ -108,23 +127,36 @@ contract DependencyRegistryV0 is
|
|
|
108
127
|
_transferOwnership(_adminACLContract);
|
|
109
128
|
}
|
|
110
129
|
|
|
130
|
+
/**
|
|
131
|
+
* @notice Adds a new license type that can be used by dependencies.
|
|
132
|
+
*/
|
|
133
|
+
function addLicenseType(bytes32 _licenseType) external {
|
|
134
|
+
_onlyAdminACL(this.addLicenseType.selector);
|
|
135
|
+
// @dev the add function returns false if set already contains value
|
|
136
|
+
require(_licenseTypes.add(_licenseType), "License type already exists");
|
|
137
|
+
require(
|
|
138
|
+
_licenseType != bytes32(""),
|
|
139
|
+
"License type cannot be empty string"
|
|
140
|
+
);
|
|
141
|
+
emit LicenseTypeAdded(_licenseType);
|
|
142
|
+
}
|
|
143
|
+
|
|
111
144
|
/**
|
|
112
145
|
* @notice Adds a new dependency.
|
|
113
146
|
* @param _dependencyType Name of dependency type (i.e. "type@version") used to identify dependency.
|
|
147
|
+
* @param _licenseType License type for dependency, must be a registered license type.
|
|
114
148
|
* @param _preferredCDN Preferred CDN for dependency.
|
|
115
149
|
* @param _preferredRepository Preferred repository for dependency.
|
|
116
150
|
*/
|
|
117
151
|
function addDependency(
|
|
118
152
|
bytes32 _dependencyType,
|
|
153
|
+
bytes32 _licenseType,
|
|
119
154
|
string memory _preferredCDN,
|
|
120
155
|
string memory _preferredRepository,
|
|
121
156
|
string memory _referenceWebsite
|
|
122
157
|
) external {
|
|
123
158
|
_onlyAdminACL(this.addDependency.selector);
|
|
124
|
-
|
|
125
|
-
!_dependencyTypes.contains(_dependencyType),
|
|
126
|
-
"Dependency type already exists"
|
|
127
|
-
);
|
|
159
|
+
_onlyExistingLicenseType(_licenseType);
|
|
128
160
|
require(
|
|
129
161
|
_dependencyType.containsExactCharacterQty(
|
|
130
162
|
AT_CHARACTER_CODE,
|
|
@@ -132,15 +164,21 @@ contract DependencyRegistryV0 is
|
|
|
132
164
|
),
|
|
133
165
|
"must contain exactly one @"
|
|
134
166
|
);
|
|
167
|
+
require(
|
|
168
|
+
// @dev the add function returns false if set already contains value
|
|
169
|
+
_dependencyTypes.add(_dependencyType),
|
|
170
|
+
"Dependency type already exists"
|
|
171
|
+
);
|
|
135
172
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
173
|
+
Dependency storage dependency = dependencyDetails[_dependencyType];
|
|
174
|
+
dependency.licenseType = _licenseType;
|
|
175
|
+
dependency.preferredCDN = _preferredCDN;
|
|
176
|
+
dependency.preferredRepository = _preferredRepository;
|
|
177
|
+
dependency.referenceWebsite = _referenceWebsite;
|
|
141
178
|
|
|
142
179
|
emit DependencyAdded(
|
|
143
180
|
_dependencyType,
|
|
181
|
+
_licenseType,
|
|
144
182
|
_preferredCDN,
|
|
145
183
|
_preferredRepository,
|
|
146
184
|
_referenceWebsite
|
|
@@ -149,7 +187,7 @@ contract DependencyRegistryV0 is
|
|
|
149
187
|
|
|
150
188
|
/**
|
|
151
189
|
* @notice Removes a dependency.
|
|
152
|
-
* @param _dependencyType Name of dependency type (i.e. "type@version")
|
|
190
|
+
* @param _dependencyType Name of dependency type (i.e. "type@version") used to identify dependency.
|
|
153
191
|
*/
|
|
154
192
|
function removeDependency(bytes32 _dependencyType) external {
|
|
155
193
|
_onlyAdminACL(this.removeDependency.selector);
|
|
@@ -169,10 +207,11 @@ contract DependencyRegistryV0 is
|
|
|
169
207
|
}
|
|
170
208
|
|
|
171
209
|
/**
|
|
172
|
-
* @notice Adds a script to dependency `_dependencyType
|
|
173
|
-
*
|
|
210
|
+
* @notice Adds a script to dependency `_dependencyType`, by way of
|
|
211
|
+
* providing a string to write to bytecode storage.
|
|
212
|
+
* @param _dependencyType Name of dependency type (i.e. "type@version") used to identify dependency.
|
|
174
213
|
* @param _script Script to be added. Required to be a non-empty string,
|
|
175
|
-
*
|
|
214
|
+
* but no further validation is performed.
|
|
176
215
|
*/
|
|
177
216
|
function addDependencyScript(
|
|
178
217
|
bytes32 _dependencyType,
|
|
@@ -191,36 +230,80 @@ contract DependencyRegistryV0 is
|
|
|
191
230
|
}
|
|
192
231
|
|
|
193
232
|
/**
|
|
194
|
-
* @notice Updates script for dependencyType `_dependencyType` at script
|
|
195
|
-
*
|
|
196
|
-
* @param
|
|
233
|
+
* @notice Updates script for dependencyType `_dependencyType` at script `_index`,
|
|
234
|
+
* by way of providing a string to write to bytecode storage.
|
|
235
|
+
* @param _dependencyType Name of dependency type (i.e. "type@version") used to identify dependency.
|
|
236
|
+
* @param _index The index of a given script, relative to the overall `scriptCount`.
|
|
197
237
|
* @param _script The updated script value. Required to be a non-empty
|
|
198
|
-
*
|
|
238
|
+
* string, but no further validation is performed.
|
|
199
239
|
*/
|
|
200
240
|
function updateDependencyScript(
|
|
201
241
|
bytes32 _dependencyType,
|
|
202
|
-
uint256
|
|
242
|
+
uint256 _index,
|
|
203
243
|
string memory _script
|
|
204
244
|
) external {
|
|
205
245
|
_onlyAdminACL(this.updateDependencyScript.selector);
|
|
206
246
|
_onlyNonEmptyString(_script);
|
|
207
247
|
_onlyExistingDependencyType(_dependencyType);
|
|
208
|
-
Dependency storage
|
|
209
|
-
|
|
210
|
-
_scriptId < dependencyType.scriptCount,
|
|
211
|
-
"scriptId out of range"
|
|
212
|
-
);
|
|
248
|
+
Dependency storage dependency = dependencyDetails[_dependencyType];
|
|
249
|
+
_onlyInRangeIndex({_index: _index, _length: dependency.scriptCount});
|
|
213
250
|
// store script in contract bytecode, replacing reference address from
|
|
214
251
|
// the contract that no longer exists with the newly created one
|
|
215
|
-
|
|
216
|
-
|
|
252
|
+
dependency.scriptBytecodeAddresses[_index] = _script.writeToBytecode();
|
|
253
|
+
|
|
254
|
+
emit DependencyScriptUpdated(_dependencyType);
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
/**
|
|
258
|
+
* @notice Adds a script to dependency `_dependencyType`, by way of
|
|
259
|
+
* providing an already written chunk of bytecode storage.
|
|
260
|
+
* @param _dependencyType Name of dependency type (i.e. "type@version") used to identify dependency.
|
|
261
|
+
* @param _scriptPointer Address of script to be added. Required to be a non-zero address,
|
|
262
|
+
* but no further validation is performed.
|
|
263
|
+
*/
|
|
264
|
+
function addDependencyScriptPointer(
|
|
265
|
+
bytes32 _dependencyType,
|
|
266
|
+
address _scriptPointer
|
|
267
|
+
) external {
|
|
268
|
+
_onlyAdminACL(this.addDependencyScriptPointer.selector);
|
|
269
|
+
_onlyNonZeroAddress(_scriptPointer);
|
|
270
|
+
_onlyExistingDependencyType(_dependencyType);
|
|
271
|
+
Dependency storage dependency = dependencyDetails[_dependencyType];
|
|
272
|
+
// store script in contract bytecode
|
|
273
|
+
dependency.scriptBytecodeAddresses[
|
|
274
|
+
dependency.scriptCount
|
|
275
|
+
] = _scriptPointer;
|
|
276
|
+
dependency.scriptCount = dependency.scriptCount + 1;
|
|
277
|
+
|
|
278
|
+
emit DependencyScriptUpdated(_dependencyType);
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
/**
|
|
282
|
+
* @notice Updates script for dependencyType `_dependencyType` at script `_index`,
|
|
283
|
+
* by way of providing an already written chunk of bytecode storage.
|
|
284
|
+
* @param _dependencyType Name of dependency type (i.e. "type@version") used to identify dependency.
|
|
285
|
+
* @param _index The index of a given script, relative to the overall `scriptCount`.
|
|
286
|
+
* @param _scriptPointer The updated script pointer (address of bytecode storage).
|
|
287
|
+
* Required to be a non-zero address, but no further validation is performed.
|
|
288
|
+
*/
|
|
289
|
+
function updateDependencyScriptPointer(
|
|
290
|
+
bytes32 _dependencyType,
|
|
291
|
+
uint256 _index,
|
|
292
|
+
address _scriptPointer
|
|
293
|
+
) external {
|
|
294
|
+
_onlyAdminACL(this.updateDependencyScriptPointer.selector);
|
|
295
|
+
_onlyNonZeroAddress(_scriptPointer);
|
|
296
|
+
_onlyExistingDependencyType(_dependencyType);
|
|
297
|
+
Dependency storage dependency = dependencyDetails[_dependencyType];
|
|
298
|
+
_onlyInRangeIndex({_index: _index, _length: dependency.scriptCount});
|
|
299
|
+
dependency.scriptBytecodeAddresses[_index] = _scriptPointer;
|
|
217
300
|
|
|
218
301
|
emit DependencyScriptUpdated(_dependencyType);
|
|
219
302
|
}
|
|
220
303
|
|
|
221
304
|
/**
|
|
222
305
|
* @notice Removes last script from dependency `_dependencyType`.
|
|
223
|
-
* @param _dependencyType dependency to
|
|
306
|
+
* @param _dependencyType Name of dependency type (i.e. "type@version") used to identify dependency.
|
|
224
307
|
*/
|
|
225
308
|
function removeDependencyLastScript(bytes32 _dependencyType) external {
|
|
226
309
|
_onlyAdminACL(this.removeDependencyLastScript.selector);
|
|
@@ -238,7 +321,7 @@ contract DependencyRegistryV0 is
|
|
|
238
321
|
|
|
239
322
|
/**
|
|
240
323
|
* @notice Updates preferred CDN for dependency `_dependencyType`.
|
|
241
|
-
* @param _dependencyType dependency to
|
|
324
|
+
* @param _dependencyType Name of dependency type (i.e. "type@version") used to identify dependency.
|
|
242
325
|
* @param _preferredCDN URL for preferred CDN.
|
|
243
326
|
*/
|
|
244
327
|
function updateDependencyPreferredCDN(
|
|
@@ -254,7 +337,7 @@ contract DependencyRegistryV0 is
|
|
|
254
337
|
|
|
255
338
|
/**
|
|
256
339
|
* @notice Updates preferred repository for dependency `_dependencyType`.
|
|
257
|
-
* @param _dependencyType dependency to
|
|
340
|
+
* @param _dependencyType Name of dependency type (i.e. "type@version") used to identify dependency.
|
|
258
341
|
* @param _preferredRepository URL for preferred repository.
|
|
259
342
|
*/
|
|
260
343
|
function updateDependencyPreferredRepository(
|
|
@@ -274,7 +357,7 @@ contract DependencyRegistryV0 is
|
|
|
274
357
|
|
|
275
358
|
/**
|
|
276
359
|
* @notice Updates project website for dependency `_dependencyType`.
|
|
277
|
-
* @param _dependencyType dependency to
|
|
360
|
+
* @param _dependencyType Name of dependency type (i.e. "type@version") used to identify dependency.
|
|
278
361
|
* @param _referenceWebsite URL for project website.
|
|
279
362
|
*/
|
|
280
363
|
function updateDependencyReferenceWebsite(
|
|
@@ -293,9 +376,9 @@ contract DependencyRegistryV0 is
|
|
|
293
376
|
|
|
294
377
|
/**
|
|
295
378
|
* @notice Adds a new CDN url to `_dependencyType`.
|
|
296
|
-
* @param _dependencyType dependency to
|
|
379
|
+
* @param _dependencyType Name of dependency type (i.e. "type@version") used to identify dependency.
|
|
297
380
|
* @param _additionalCDN CDN URL to be added. Required to be a non-empty string,
|
|
298
|
-
*
|
|
381
|
+
* but no further validation is performed.
|
|
299
382
|
*/
|
|
300
383
|
function addDependencyAdditionalCDN(
|
|
301
384
|
bytes32 _dependencyType,
|
|
@@ -321,19 +404,19 @@ contract DependencyRegistryV0 is
|
|
|
321
404
|
* @notice Removes additional CDN for dependency `_dependencyId` at index `_index`.
|
|
322
405
|
* Removal is done by swapping the element to be removed with the last element in the array, then deleting this last element.
|
|
323
406
|
* Assets with indices higher than `_index` can have their indices adjusted as a result of this operation.
|
|
324
|
-
* @param _dependencyType dependency to
|
|
325
|
-
* @param _index
|
|
407
|
+
* @param _dependencyType Name of dependency type (i.e. "type@version") used to identify dependency.
|
|
408
|
+
* @param _index The index of an additional CDN, relative to the overall `additionalCDNCount`.
|
|
326
409
|
*/
|
|
327
|
-
function
|
|
410
|
+
function removeDependencyAdditionalCDN(
|
|
328
411
|
bytes32 _dependencyType,
|
|
329
412
|
uint256 _index
|
|
330
413
|
) external {
|
|
331
|
-
_onlyAdminACL(this.
|
|
414
|
+
_onlyAdminACL(this.removeDependencyAdditionalCDN.selector);
|
|
332
415
|
_onlyExistingDependencyType(_dependencyType);
|
|
333
416
|
Dependency storage dependency = dependencyDetails[_dependencyType];
|
|
334
417
|
|
|
335
418
|
uint256 additionalCDNCount = dependency.additionalCDNCount;
|
|
336
|
-
|
|
419
|
+
_onlyInRangeIndex({_index: _index, _length: additionalCDNCount});
|
|
337
420
|
|
|
338
421
|
uint256 lastElementIndex = additionalCDNCount - 1;
|
|
339
422
|
|
|
@@ -349,21 +432,23 @@ contract DependencyRegistryV0 is
|
|
|
349
432
|
|
|
350
433
|
/**
|
|
351
434
|
* @notice Updates additional CDN for dependency `_dependencyType` at `_index`.
|
|
352
|
-
* @param _dependencyType dependency to
|
|
353
|
-
* @param _index
|
|
435
|
+
* @param _dependencyType Name of dependency type (i.e. "type@version") used to identify dependency.
|
|
436
|
+
* @param _index The index of an additional CDN, relative to the overall `additionalCDNCount`.
|
|
354
437
|
* @param _additionalCDN New CDN URL.
|
|
355
438
|
*/
|
|
356
|
-
function
|
|
439
|
+
function updateDependencyAdditionalCDN(
|
|
357
440
|
bytes32 _dependencyType,
|
|
358
441
|
uint256 _index,
|
|
359
442
|
string memory _additionalCDN
|
|
360
443
|
) external {
|
|
361
|
-
_onlyAdminACL(this.
|
|
444
|
+
_onlyAdminACL(this.updateDependencyAdditionalCDN.selector);
|
|
362
445
|
_onlyNonEmptyString(_additionalCDN);
|
|
363
446
|
_onlyExistingDependencyType(_dependencyType);
|
|
364
447
|
Dependency storage dependency = dependencyDetails[_dependencyType];
|
|
365
|
-
|
|
366
|
-
|
|
448
|
+
_onlyInRangeIndex({
|
|
449
|
+
_index: _index,
|
|
450
|
+
_length: dependency.additionalCDNCount
|
|
451
|
+
});
|
|
367
452
|
|
|
368
453
|
dependency.additionalCDNs[_index] = _additionalCDN;
|
|
369
454
|
|
|
@@ -376,7 +461,7 @@ contract DependencyRegistryV0 is
|
|
|
376
461
|
|
|
377
462
|
/**
|
|
378
463
|
* @notice Adds a new repository URL to dependency `_dependencyType`.
|
|
379
|
-
* @param _dependencyType dependency to
|
|
464
|
+
* @param _dependencyType Name of dependency type (i.e. "type@version") used to identify dependency.
|
|
380
465
|
* @param _additionalRepository Repository URL to be added. Required to be a non-empty string,
|
|
381
466
|
* but no further validation is performed.
|
|
382
467
|
*/
|
|
@@ -409,22 +494,19 @@ contract DependencyRegistryV0 is
|
|
|
409
494
|
* @notice Removes additional repository for depenency `_dependencyId` at index `_index`.
|
|
410
495
|
* Removal is done by swapping the element to be removed with the last element in the array, then deleting this last element.
|
|
411
496
|
* Assets with indices higher than `_index` can have their indices adjusted as a result of this operation.
|
|
412
|
-
* @param _dependencyType dependency to
|
|
413
|
-
* @param _index
|
|
497
|
+
* @param _dependencyType Name of dependency type (i.e. "type@version") used to identify dependency.
|
|
498
|
+
* @param _index The index of an additional repository, relative to the overall `additionalRepositoryCount`.
|
|
414
499
|
*/
|
|
415
|
-
function
|
|
500
|
+
function removeDependencyAdditionalRepository(
|
|
416
501
|
bytes32 _dependencyType,
|
|
417
502
|
uint256 _index
|
|
418
503
|
) external {
|
|
419
|
-
_onlyAdminACL(
|
|
420
|
-
this.removeDependencyAdditionalRepositoryAtIndex.selector
|
|
421
|
-
);
|
|
504
|
+
_onlyAdminACL(this.removeDependencyAdditionalRepository.selector);
|
|
422
505
|
_onlyExistingDependencyType(_dependencyType);
|
|
423
506
|
Dependency storage dependency = dependencyDetails[_dependencyType];
|
|
424
|
-
uint256 additionalRepositoryCount =
|
|
425
|
-
|
|
426
|
-
);
|
|
427
|
-
require(_index < additionalRepositoryCount, "Asset index out of range");
|
|
507
|
+
uint256 additionalRepositoryCount = dependency
|
|
508
|
+
.additionalRepositoryCount;
|
|
509
|
+
_onlyInRangeIndex({_index: _index, _length: additionalRepositoryCount});
|
|
428
510
|
|
|
429
511
|
uint256 lastElementIndex = additionalRepositoryCount - 1;
|
|
430
512
|
|
|
@@ -440,23 +522,23 @@ contract DependencyRegistryV0 is
|
|
|
440
522
|
|
|
441
523
|
/**
|
|
442
524
|
* @notice Updates additional repository for dependency `_dependencyType` at `_index`.
|
|
443
|
-
* @param _dependencyType dependency to
|
|
444
|
-
* @param _index
|
|
525
|
+
* @param _dependencyType Name of dependency type (i.e. "type@version") used to identify dependency.
|
|
526
|
+
* @param _index The index of an additional repository, relative to the overall `additionalRepositoryCount`.
|
|
445
527
|
* @param _additionalRepository New Repository URL.
|
|
446
528
|
*/
|
|
447
|
-
function
|
|
529
|
+
function updateDependencyAdditionalRepository(
|
|
448
530
|
bytes32 _dependencyType,
|
|
449
531
|
uint256 _index,
|
|
450
532
|
string memory _additionalRepository
|
|
451
533
|
) external {
|
|
452
|
-
_onlyAdminACL(
|
|
453
|
-
this.updateDependencyAdditionalRepositoryAtIndex.selector
|
|
454
|
-
);
|
|
534
|
+
_onlyAdminACL(this.updateDependencyAdditionalRepository.selector);
|
|
455
535
|
_onlyNonEmptyString(_additionalRepository);
|
|
456
536
|
_onlyExistingDependencyType(_dependencyType);
|
|
457
537
|
Dependency storage dependency = dependencyDetails[_dependencyType];
|
|
458
|
-
|
|
459
|
-
|
|
538
|
+
_onlyInRangeIndex({
|
|
539
|
+
_index: _index,
|
|
540
|
+
_length: dependency.additionalRepositoryCount
|
|
541
|
+
});
|
|
460
542
|
|
|
461
543
|
dependency.additionalRepositories[_index] = _additionalRepository;
|
|
462
544
|
|
|
@@ -475,12 +557,10 @@ contract DependencyRegistryV0 is
|
|
|
475
557
|
_onlyAdminACL(this.addSupportedCoreContract.selector);
|
|
476
558
|
_onlyNonZeroAddress(_contractAddress);
|
|
477
559
|
require(
|
|
478
|
-
|
|
560
|
+
// @dev the add function returns false if set already contains value
|
|
561
|
+
_supportedCoreContracts.add(_contractAddress),
|
|
479
562
|
"Contract already supported"
|
|
480
563
|
);
|
|
481
|
-
|
|
482
|
-
_supportedCoreContracts.add(_contractAddress);
|
|
483
|
-
|
|
484
564
|
emit SupportedCoreContractAdded(_contractAddress);
|
|
485
565
|
}
|
|
486
566
|
|
|
@@ -490,9 +570,11 @@ contract DependencyRegistryV0 is
|
|
|
490
570
|
*/
|
|
491
571
|
function removeSupportedCoreContract(address _contractAddress) external {
|
|
492
572
|
_onlyAdminACL(this.removeSupportedCoreContract.selector);
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
573
|
+
require(
|
|
574
|
+
// @dev the remove function returns false if set does not contain value
|
|
575
|
+
_supportedCoreContracts.remove(_contractAddress),
|
|
576
|
+
"Core contract already removed or not in set"
|
|
577
|
+
);
|
|
496
578
|
emit SupportedCoreContractRemoved(_contractAddress);
|
|
497
579
|
}
|
|
498
580
|
|
|
@@ -503,7 +585,7 @@ contract DependencyRegistryV0 is
|
|
|
503
585
|
* type (`_dependencyType`).
|
|
504
586
|
* @param _contractAddress Core contract address.
|
|
505
587
|
* @param _projectId Project to override script type and version for.
|
|
506
|
-
* @param _dependencyType
|
|
588
|
+
* @param _dependencyType Name of dependency type (i.e. "type@version") used to identify dependency.
|
|
507
589
|
*/
|
|
508
590
|
function addProjectDependencyTypeOverride(
|
|
509
591
|
address _contractAddress,
|
|
@@ -553,10 +635,8 @@ contract DependencyRegistryV0 is
|
|
|
553
635
|
* execution where there is no gas limit.
|
|
554
636
|
*/
|
|
555
637
|
function getDependencyTypes() external view returns (string[] memory) {
|
|
556
|
-
string[] memory dependencyTypes = new string[](
|
|
557
|
-
_dependencyTypes.length()
|
|
558
|
-
);
|
|
559
638
|
uint256 numDependencyTypes = _dependencyTypes.length();
|
|
639
|
+
string[] memory dependencyTypes = new string[](numDependencyTypes);
|
|
560
640
|
|
|
561
641
|
for (uint256 i = 0; i < numDependencyTypes; i++) {
|
|
562
642
|
dependencyTypes[i] = _dependencyTypes.at(i).toString();
|
|
@@ -574,20 +654,56 @@ contract DependencyRegistryV0 is
|
|
|
574
654
|
|
|
575
655
|
/**
|
|
576
656
|
* @notice Returns registered depenedency type at index `_index`.
|
|
577
|
-
* @return Registered dependency at `_index
|
|
657
|
+
* @return Registered dependency at `_index`, relative to the overall length of the dependency type set.
|
|
578
658
|
*/
|
|
579
|
-
function
|
|
659
|
+
function getDependencyType(
|
|
580
660
|
uint256 _index
|
|
581
661
|
) external view returns (string memory) {
|
|
582
|
-
|
|
662
|
+
_onlyInRangeIndex({_index: _index, _length: _dependencyTypes.length()});
|
|
583
663
|
return _dependencyTypes.at(_index).toString();
|
|
584
664
|
}
|
|
585
665
|
|
|
586
666
|
/**
|
|
587
|
-
* @notice Returns
|
|
588
|
-
* @
|
|
667
|
+
* @notice Returns number of registered license types
|
|
668
|
+
* @return Number of registered license types.
|
|
669
|
+
* @dev This is only intended to be called outside of block
|
|
670
|
+
* execution where there is no gas limit.
|
|
671
|
+
*/
|
|
672
|
+
function getLicenseTypes() external view returns (string[] memory) {
|
|
673
|
+
uint256 numLicenseTypes = _licenseTypes.length();
|
|
674
|
+
string[] memory licenseTypes = new string[](numLicenseTypes);
|
|
675
|
+
|
|
676
|
+
for (uint256 i = 0; i < numLicenseTypes; i++) {
|
|
677
|
+
licenseTypes[i] = _licenseTypes.at(i).toString();
|
|
678
|
+
}
|
|
679
|
+
return licenseTypes;
|
|
680
|
+
}
|
|
681
|
+
|
|
682
|
+
/**
|
|
683
|
+
* @notice Returns number of registered license types
|
|
684
|
+
* @return Number of registered license types.
|
|
685
|
+
*/
|
|
686
|
+
function getLicenseTypeCount() external view returns (uint256) {
|
|
687
|
+
return _licenseTypes.length();
|
|
688
|
+
}
|
|
689
|
+
|
|
690
|
+
/**
|
|
691
|
+
* @notice Returns registered license type at index `_index`.
|
|
692
|
+
* @return Registered license type at `_index`, relative to the overall length of the license type set.
|
|
693
|
+
*/
|
|
694
|
+
function getLicenseType(
|
|
695
|
+
uint256 _index
|
|
696
|
+
) external view returns (string memory) {
|
|
697
|
+
_onlyInRangeIndex({_index: _index, _length: _licenseTypes.length()});
|
|
698
|
+
return _licenseTypes.at(_index).toString();
|
|
699
|
+
}
|
|
700
|
+
|
|
701
|
+
/**
|
|
702
|
+
* @notice Returns details for a given depedency type `_dependencyType`.
|
|
703
|
+
* @param _dependencyType Name of dependency type (i.e. "type@version") used to identify dependency.
|
|
589
704
|
* @return typeAndVersion String representation of `_dependencyType`.
|
|
590
|
-
*
|
|
705
|
+
* (e.g. "p5js(atSymbol)1.0.0")
|
|
706
|
+
* @return licenseType License type for dependency
|
|
591
707
|
* @return preferredCDN Preferred CDN URL for dependency
|
|
592
708
|
* @return additionalCDNCount Count of additional CDN URLs for dependency
|
|
593
709
|
* @return preferredRepository Preferred repository URL for dependency
|
|
@@ -603,6 +719,7 @@ contract DependencyRegistryV0 is
|
|
|
603
719
|
view
|
|
604
720
|
returns (
|
|
605
721
|
string memory typeAndVersion,
|
|
722
|
+
string memory licenseType,
|
|
606
723
|
string memory preferredCDN,
|
|
607
724
|
uint24 additionalCDNCount,
|
|
608
725
|
string memory preferredRepository,
|
|
@@ -616,6 +733,7 @@ contract DependencyRegistryV0 is
|
|
|
616
733
|
|
|
617
734
|
return (
|
|
618
735
|
_dependencyType.toString(),
|
|
736
|
+
dependency.licenseType.toString(),
|
|
619
737
|
dependency.preferredCDN,
|
|
620
738
|
dependency.additionalCDNCount,
|
|
621
739
|
dependency.preferredRepository,
|
|
@@ -636,19 +754,31 @@ contract DependencyRegistryV0 is
|
|
|
636
754
|
|
|
637
755
|
/**
|
|
638
756
|
* @notice Returns the address of the supported core contract at index `_index`.
|
|
639
|
-
* @param _index Index of the core contract to be returned
|
|
757
|
+
* @param _index Index of the core contract to be returned, relative to the overall
|
|
758
|
+
* list of supported core contracts.
|
|
640
759
|
* @return address of the core contract.
|
|
641
760
|
*/
|
|
642
|
-
function
|
|
761
|
+
function getSupportedCoreContract(
|
|
643
762
|
uint256 _index
|
|
644
763
|
) external view returns (address) {
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
);
|
|
764
|
+
_onlyInRangeIndex({
|
|
765
|
+
_index: _index,
|
|
766
|
+
_length: _supportedCoreContracts.length()
|
|
767
|
+
});
|
|
649
768
|
return _supportedCoreContracts.at(_index);
|
|
650
769
|
}
|
|
651
770
|
|
|
771
|
+
/**
|
|
772
|
+
* @notice Returns whether the given contract address is a supported core contract.
|
|
773
|
+
* @param coreContractAddress Address of the core contract to be queried.
|
|
774
|
+
* @return True if the given contract address is a supported core contract.
|
|
775
|
+
*/
|
|
776
|
+
function isSupportedCoreContract(
|
|
777
|
+
address coreContractAddress
|
|
778
|
+
) external view returns (bool) {
|
|
779
|
+
return _supportedCoreContracts.contains(coreContractAddress);
|
|
780
|
+
}
|
|
781
|
+
|
|
652
782
|
/**
|
|
653
783
|
* @notice Returns a list of supported core contracts.
|
|
654
784
|
* @return List of supported core contracts.
|
|
@@ -674,32 +804,41 @@ contract DependencyRegistryV0 is
|
|
|
674
804
|
|
|
675
805
|
/**
|
|
676
806
|
* @notice Returns the additional CDN URL at index `_index` for dependency `_dependencyType`.
|
|
677
|
-
* @param _dependencyType
|
|
678
|
-
* @param _index
|
|
807
|
+
* @param _dependencyType Name of dependency type (i.e. "type@version") used to identify dependency.
|
|
808
|
+
* @param _index The index of an additional CDN, relative to the overall `additionalCDNCount`.
|
|
679
809
|
*/
|
|
680
|
-
function
|
|
810
|
+
function getDependencyAdditionalCDN(
|
|
681
811
|
bytes32 _dependencyType,
|
|
682
812
|
uint256 _index
|
|
683
813
|
) external view returns (string memory) {
|
|
684
|
-
|
|
814
|
+
Dependency storage dependency = dependencyDetails[_dependencyType];
|
|
815
|
+
_onlyInRangeIndex({
|
|
816
|
+
_index: _index,
|
|
817
|
+
_length: dependency.additionalCDNCount
|
|
818
|
+
});
|
|
819
|
+
return dependency.additionalCDNs[_index];
|
|
685
820
|
}
|
|
686
821
|
|
|
687
822
|
/**
|
|
688
823
|
* @notice Returns the additional repository URL at index `_index` for dependency `_dependencyType`.
|
|
689
|
-
* @param _dependencyType
|
|
690
|
-
* @param _index
|
|
824
|
+
* @param _dependencyType Name of dependency type (i.e. "type@version") used to identify dependency.
|
|
825
|
+
* @param _index The index of an additional repository, relative to the overall `additionalRepositoryCount`.
|
|
691
826
|
*/
|
|
692
|
-
function
|
|
827
|
+
function getDependencyAdditionalRepository(
|
|
693
828
|
bytes32 _dependencyType,
|
|
694
829
|
uint256 _index
|
|
695
830
|
) external view returns (string memory) {
|
|
696
|
-
|
|
697
|
-
|
|
831
|
+
Dependency storage dependency = dependencyDetails[_dependencyType];
|
|
832
|
+
_onlyInRangeIndex({
|
|
833
|
+
_index: _index,
|
|
834
|
+
_length: dependency.additionalRepositoryCount
|
|
835
|
+
});
|
|
836
|
+
return dependency.additionalRepositories[_index];
|
|
698
837
|
}
|
|
699
838
|
|
|
700
839
|
/**
|
|
701
840
|
* @notice Returns the count of scripts for dependency `_dependencyType`.
|
|
702
|
-
* @param _dependencyType
|
|
841
|
+
* @param _dependencyType Name of dependency type (i.e. "type@version") used to identify dependency.
|
|
703
842
|
*/
|
|
704
843
|
function getDependencyScriptCount(
|
|
705
844
|
bytes32 _dependencyType
|
|
@@ -709,32 +848,80 @@ contract DependencyRegistryV0 is
|
|
|
709
848
|
|
|
710
849
|
/**
|
|
711
850
|
* @notice Returns address with bytecode containing script for
|
|
712
|
-
*
|
|
851
|
+
* dependency `_dependencyTypes` at script index `_index`.
|
|
852
|
+
* @param _dependencyType Name of dependency type (i.e. "type@version") used to identify dependency.
|
|
853
|
+
* @param _index The index of a given script, relative to the overall `scriptCount`.
|
|
854
|
+
* @return The address of the bytecode storage for the script at the given index, if it can be determined.
|
|
713
855
|
*/
|
|
714
|
-
function
|
|
856
|
+
function getDependencyScriptBytecodeAddress(
|
|
715
857
|
bytes32 _dependencyType,
|
|
716
858
|
uint256 _index
|
|
717
859
|
) external view returns (address) {
|
|
860
|
+
Dependency storage dependency = dependencyDetails[_dependencyType];
|
|
861
|
+
_onlyInRangeIndex({_index: _index, _length: dependency.scriptCount});
|
|
862
|
+
return dependency.scriptBytecodeAddresses[_index];
|
|
863
|
+
}
|
|
864
|
+
|
|
865
|
+
/**
|
|
866
|
+
* @notice Returns the storage library version for
|
|
867
|
+
* dependency `_dependencyTypes` at script index `_index`.
|
|
868
|
+
* @param _dependencyType Name of dependency type (i.e. "type@version") used to identify dependency.
|
|
869
|
+
* @param _index The index of a given script, relative to the overall `scriptCount`.
|
|
870
|
+
* @return The storage library version for the script at the given index, if it can be determined.
|
|
871
|
+
* @dev Note that we only expect this to be determinable if the script was written using a version
|
|
872
|
+
* of the Art Blocks `BytecodeStorage` library, and in other cases the fallback will be the
|
|
873
|
+
* unknown version string, as defined by the `BytecodeStorage` UNKNOWN_VERSION_STRING – this
|
|
874
|
+
* is inclusive of the in the case of `SSTORE2` written data blobs, which are an unknown version
|
|
875
|
+
* that can be fallback-read optimistically.
|
|
876
|
+
*/
|
|
877
|
+
function getDependencyScriptBytecodeStorageVersion(
|
|
878
|
+
bytes32 _dependencyType,
|
|
879
|
+
uint256 _index
|
|
880
|
+
) external view returns (bytes32) {
|
|
881
|
+
Dependency storage dependency = dependencyDetails[_dependencyType];
|
|
882
|
+
_onlyInRangeIndex({_index: _index, _length: dependency.scriptCount});
|
|
718
883
|
return
|
|
719
|
-
|
|
884
|
+
BytecodeStorageReader.getLibraryVersionForBytecode(
|
|
885
|
+
dependencyDetails[_dependencyType].scriptBytecodeAddresses[
|
|
886
|
+
_index
|
|
887
|
+
]
|
|
888
|
+
);
|
|
720
889
|
}
|
|
721
890
|
|
|
722
891
|
/**
|
|
723
892
|
* @notice Returns script for dependency `_dependencyType` at script index `_index`.
|
|
724
|
-
* @param _dependencyType dependency to
|
|
725
|
-
* @param _index
|
|
726
|
-
|
|
727
|
-
|
|
893
|
+
* @param _dependencyType Name of dependency type (i.e. "type@version") used to identify dependency.
|
|
894
|
+
* @param _index The index of a given script, relative to the overall `scriptCount`.
|
|
895
|
+
* @return A string containing the script content at the given script chunk index for a given dependency.
|
|
896
|
+
* @dev This method attempts to introspectively determine which library version of
|
|
897
|
+
* `BytecodeStorage` was used to write the stored script string that is being
|
|
898
|
+
* read back, in order to use the proper read approach. If the version is
|
|
899
|
+
* non-determinate, a fall-back to reading using the assumption that the bytes
|
|
900
|
+
* were written with `SSTORE2` is used.
|
|
901
|
+
* Also note that in this `SSTORE2` fallback handling, the approach of casting bytes to string
|
|
902
|
+
* can cause failure (e.g. unexpected continuation byte).
|
|
903
|
+
*/
|
|
904
|
+
function getDependencyScript(
|
|
728
905
|
bytes32 _dependencyType,
|
|
729
906
|
uint256 _index
|
|
730
907
|
) external view returns (string memory) {
|
|
731
908
|
Dependency storage dependency = dependencyDetails[_dependencyType];
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
909
|
+
_onlyInRangeIndex({_index: _index, _length: dependency.scriptCount});
|
|
910
|
+
|
|
911
|
+
address scriptAddress = dependency.scriptBytecodeAddresses[_index];
|
|
912
|
+
bytes32 storageVersion = BytecodeStorageReader
|
|
913
|
+
.getLibraryVersionForBytecode(scriptAddress);
|
|
914
|
+
|
|
915
|
+
if (storageVersion == BytecodeStorageReader.UNKNOWN_VERSION_STRING) {
|
|
916
|
+
return
|
|
917
|
+
string(
|
|
918
|
+
BytecodeStorageReader.readBytesFromSSTORE2Bytecode(
|
|
919
|
+
scriptAddress
|
|
920
|
+
)
|
|
921
|
+
);
|
|
922
|
+
} else {
|
|
923
|
+
return BytecodeStorageReader.readFromBytecode(scriptAddress);
|
|
735
924
|
}
|
|
736
|
-
|
|
737
|
-
return _readFromBytecode(dependency.scriptBytecodeAddresses[_index]);
|
|
738
925
|
}
|
|
739
926
|
|
|
740
927
|
/**
|
|
@@ -745,7 +932,7 @@ contract DependencyRegistryV0 is
|
|
|
745
932
|
* an override set, this will revert.
|
|
746
933
|
* @param _contractAddress Core contract address.
|
|
747
934
|
* @param _projectId Project to return dependency type for.
|
|
748
|
-
* @return dependencyType
|
|
935
|
+
* @return dependencyType Identifier for the dependency (i.e. "type@version") used by project.
|
|
749
936
|
*/
|
|
750
937
|
function getDependencyTypeForProject(
|
|
751
938
|
address _contractAddress,
|
|
@@ -828,14 +1015,4 @@ contract DependencyRegistryV0 is
|
|
|
828
1015
|
OwnableUpgradeable._transferOwnership(newOwner);
|
|
829
1016
|
adminACLContract = IAdminACLV0(newOwner);
|
|
830
1017
|
}
|
|
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
|
-
}
|
|
841
1018
|
}
|