@artblocks/contracts 1.2.0 → 1.3.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 +22 -38
- package/artifacts/contracts/AdminACLV1.sol/AdminACLV1.json +2 -2
- package/artifacts/contracts/BytecodeStorageReaders/BytecodeStorageReaderContractV2.sol/BytecodeStorageReaderContractV2.json +201 -0
- package/artifacts/contracts/BytecodeStorageReaders/BytecodeStorageReaderContractV2_Web3Call.sol/BytecodeStorageReaderContractV2_Web3Call.json +201 -0
- package/artifacts/contracts/BytecodeStorageReaders/UniversalBytecodeStorageReader.sol/UniversalBytecodeStorageReader.json +154 -0
- package/artifacts/contracts/BytecodeStorageV2Writer.sol/BytecodeStorageV2Writer.json +87 -0
- package/artifacts/contracts/DependencyRegistryV0.sol/DependencyRegistryV0.json +174 -55
- package/artifacts/contracts/GenArt721CoreV3_Curated.sol/GenArt721CoreV3_Curated.json +2493 -0
- package/artifacts/contracts/OwnedCreate2FactoryV0.sol/OwnedCreate2FactoryV0.json +311 -0
- package/artifacts/contracts/archive/GenArt721CoreV3.sol/GenArt721CoreV3.json +15 -2
- package/artifacts/contracts/archive/GenArt721CoreV3_Explorations.sol/GenArt721CoreV3_Explorations.json +15 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV2.sol/MinterDAExpV2.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV3.sol/MinterDAExpV3.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV4.sol/MinterDAExpV4.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol/MinterDAExpSettlementV0.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV1.sol/MinterDAExpSettlementV1.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV2.sol/MinterDAExpSettlementV2.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV2.sol/MinterDALinV2.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV3.sol/MinterDALinV3.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV4.sol/MinterDALinV4.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV1.sol/MinterHolderV1.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV2.sol/MinterHolderV2.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV3.sol/MinterHolderV3.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV4.sol/MinterHolderV4.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV1.sol/MinterMerkleV1.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV2.sol/MinterMerkleV2.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV3.sol/MinterMerkleV3.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV4.sol/MinterMerkleV4.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV5.sol/MinterMerkleV5.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterPolyptych/MinterPolyptychV0.sol/IGenArt721CoreContractV3WithRandomizer.json +37 -0
- package/artifacts/contracts/archive/minter-suite/Minters/MinterPolyptych/MinterPolyptychV0.sol/MinterPolyptychV0.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterSEA/MinterSEAV0.sol/MinterSEAV0.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV2.sol/MinterSetPriceV2.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV3.sol/MinterSetPriceV3.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV4.sol/MinterSetPriceV4.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V2.sol/MinterSetPriceERC20V2.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V3.sol/MinterSetPriceERC20V3.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V4.sol/MinterSetPriceERC20V4.json +2 -2
- package/artifacts/contracts/engine/V3/EngineFactoryV0.sol/EngineFactoryV0.json +20 -2
- package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine.sol/GenArt721CoreV3_Engine.json +48 -12
- package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol/GenArt721CoreV3_Engine_Flex.json +76 -40
- package/artifacts/contracts/engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol/GenArt721CoreV3_Engine_Flex_PROOF.json +15 -2
- package/artifacts/contracts/engine/V3/forks/PROHIBITION/AdminACLV0_PROHIBITION.sol/AdminACLV0_PROHIBITION.json +2 -2
- package/artifacts/contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol/GenArt721CoreV3_Engine_Flex_PROHIBITION.json +15 -2
- package/artifacts/contracts/engine/V3/forks/PROHIBITION/interfaces/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.sol/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.json +37 -0
- package/artifacts/contracts/engine-registry/CoreRegistryV1.sol/CoreRegistryV1.json +2 -2
- package/artifacts/contracts/generator/AddressChunks.sol/AddressChunks.json +10 -0
- package/artifacts/contracts/generator/GenArt721GeneratorV0.sol/GenArt721GeneratorV0.json +333 -0
- package/artifacts/contracts/generator/GenArt721GeneratorV0.sol/ILegacyGenArt721CoreV2_PBAB_Flex.json +47 -0
- package/artifacts/contracts/interfaces/v0.8.x/IBytecodeStorageReader.sol/IBytecodeStorageReader.json +7 -7
- package/artifacts/contracts/interfaces/v0.8.x/IBytecodeStorageReaderV2.sol/IBytecodeStorageReaderV2.json +7 -7
- package/artifacts/contracts/interfaces/v0.8.x/IBytecodeStorageReader_Base.sol/IBytecodeStorageReader_Base.json +30 -0
- package/artifacts/contracts/interfaces/v0.8.x/ICoreRegistryV1.sol/ICoreRegistryV1.json +13 -0
- package/artifacts/contracts/interfaces/v0.8.x/IDelegateRegistry.sol/IDelegateRegistry.json +820 -0
- package/artifacts/contracts/interfaces/v0.8.x/IDependencyRegistryV0.sol/IDependencyRegistryV0.json +183 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3.sol/IGenArt721CoreContractV3.json +37 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Base.sol/IGenArt721CoreContractV3_Base.json +37 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine.sol/IGenArt721CoreContractV3_Engine.json +42 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex.sol/IGenArt721CoreContractV3_Engine_Flex.json +42 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex_PreV3p2.sol/IGenArt721CoreContractV3_Engine_Flex_PreV3p2.json +37 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_PreV3p2.sol/IGenArt721CoreContractV3_Engine_PreV3p2.json +37 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreProjectScriptV0.sol/IGenArt721CoreProjectScriptV0.json +59 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreProjectScriptV1.sol/IGenArt721CoreProjectScriptV1.json +64 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreTokenHashProviderV0.sol/IGenArt721CoreTokenHashProviderV0.json +30 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreTokenHashProviderV1.sol/IGenArt721CoreTokenHashProviderV1.json +30 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721GeneratorV0.sol/IGenArt721GeneratorV0.json +63 -0
- package/artifacts/contracts/interfaces/v0.8.x/IOwnedCreate2FactoryV0.sol/IOwnedCreate2FactoryV0.json +74 -0
- package/artifacts/contracts/interfaces/v0.8.x/IPMPAugmentHook.sol/IPMPAugmentHook.json +83 -0
- package/artifacts/contracts/interfaces/v0.8.x/IPMPConfigureHook.sol/IPMPConfigureHook.json +80 -0
- package/artifacts/contracts/interfaces/v0.8.x/IPMPV0.sol/IPMPV0.json +402 -0
- package/artifacts/contracts/interfaces/v0.8.x/ISeaDropShimForContract.sol/ISeaDropShimForContract.json +37 -0
- package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterMinPriceV0.sol/ISharedMinterMinPriceV0.json +37 -0
- package/artifacts/contracts/interfaces/v0.8.x/IUniversalBytecodeStorageReader.sol/IUniversalBytecodeStorageReader.json +69 -0
- package/artifacts/contracts/interfaces/v0.8.x/IWeb3Call.sol/IWeb3Call.json +47 -0
- package/artifacts/contracts/interfaces/v0.8.x/integration-refs/OpenSea/ERC721SeaDropStructsErrorsAndEvents.sol/ERC721SeaDropStructsErrorsAndEvents.json +43 -0
- package/artifacts/contracts/interfaces/v0.8.x/integration-refs/OpenSea/INonFungibleSeaDropToken.sol/INonFungibleSeaDropToken.json +715 -0
- package/artifacts/contracts/interfaces/v0.8.x/integration-refs/OpenSea/ISeaDrop.sol/ISeaDrop.json +1571 -0
- package/artifacts/contracts/interfaces/v0.8.x/integration-refs/OpenSea/ISeaDropTokenContractMetadata.sol/ISeaDropTokenContractMetadata.json +345 -0
- package/artifacts/contracts/interfaces/v0.8.x/integration-refs/OpenSea/SeaDropErrorsAndEvents.sol/SeaDropErrorsAndEvents.json +717 -0
- package/artifacts/contracts/libs/integration-refs/delegation-registry/DelegateRegistry.sol/DelegateRegistry.json +846 -0
- package/artifacts/contracts/libs/integration-refs/delegation-registry/libraries/RegistryHashes.sol/RegistryHashes.json +10 -0
- package/artifacts/contracts/libs/integration-refs/delegation-registry/libraries/RegistryOps.sol/RegistryOps.json +10 -0
- package/artifacts/contracts/libs/integration-refs/delegation-registry/libraries/RegistryStorage.sol/RegistryStorage.json +10 -0
- package/artifacts/contracts/libs/v0.8.x/AuthLib.sol/AuthLib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/Bytes32Strings.sol/Bytes32Strings.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/DependencyRegistryStorageLib.sol/DependencyRegistryStorageLib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/ImmutableStringArray.sol/ImmutableStringArray.json +10 -0
- package/artifacts/contracts/libs/v0.8.x/JsonStatic.sol/JsonStatic.json +10 -0
- package/artifacts/contracts/libs/v0.8.x/V3FlexLib.sol/V3FlexLib.json +9 -22
- package/artifacts/contracts/libs/v0.8.x/minter-libs/MaxInvocationsLib.sol/MaxInvocationsLib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/minter-libs/MinPriceLib.sol/MinPriceLib.json +24 -0
- package/artifacts/contracts/libs/v0.8.x/minter-libs/PolyptychLib.sol/PolyptychLib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/minter-libs/RAMLib.sol/RAMLib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/minter-libs/SEALib.sol/SEALib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/minter-libs/SettlementExpLib.sol/SettlementExpLib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/minter-libs/SplitFundsLib.sol/SplitFundsLib.json +2 -2
- package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV1.sol/MinterFilterV1.json +2 -2
- package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV2.sol/MinterFilterV2.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterDAExpHolderV5.sol/MinterDAExpHolderV5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterDAExpSettlementV3.sol/MinterDAExpSettlementV3.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterDAExpV5.sol/MinterDAExpV5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterDALinHolderV5.sol/MinterDALinHolderV5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterDALinV5.sol/MinterDALinV5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterMinPriceMerkleV0.sol/MinterMinPriceMerkleV0.json +664 -0
- package/artifacts/contracts/minter-suite/Minters/MinterMinPriceV0.sol/MinterMinPriceV0.json +387 -0
- package/artifacts/contracts/minter-suite/Minters/MinterRAMV0.sol/MinterRAMV0.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterSEAV1.sol/MinterSEAV1.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20V5.sol/MinterSetPriceERC20V5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceHolderV5.sol/MinterSetPriceHolderV5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceMerkleV5.sol/MinterSetPriceMerkleV5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychERC20V5.sol/MinterSetPricePolyptychERC20V5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychV5.sol/MinterSetPricePolyptychV5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceV5.sol/MinterSetPriceV5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/one-off/MinterSetPriceV5_SingleCore.sol/MinterSetPriceV5_SingleCore.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/one-off/SeaDropXArtBlocksShim.sol/SeaDropXArtBlocksShim.json +1206 -0
- package/artifacts/contracts/mock/BytecodeV1LibCallsMock.sol/BytecodeV1LibCallsMock.json +2 -2
- package/artifacts/contracts/mock/BytecodeV2LibCallsMock.sol/BytecodeV2LibCallsMock.json +2 -2
- package/artifacts/contracts/mock/DummySharedMinter.sol/DummySharedMinter.json +2 -2
- package/artifacts/contracts/mock/ERC20MockAltDecimals.sol/ERC20MockAltDecimals.json +318 -0
- package/artifacts/contracts/mock/ForceSendMock.sol/ForceSendMock.json +2 -2
- package/artifacts/contracts/mock/GenArt721CoreV3_Engine_IncorrectCoreType.sol/GenArt721CoreV3_Engine_IncorrectCoreType.json +2 -2
- package/artifacts/contracts/mock/ImmutableStringArrayMock.sol/ImmutableStringArrayMock.json +69 -0
- package/artifacts/contracts/mock/MockAdminACLV0_PROHIBITION.sol/MockAdminACLV0Events_PROHIBITION.json +2 -2
- package/artifacts/contracts/mock/MockFileStore.sol/MockFileStore.json +35 -0
- package/artifacts/contracts/mock/MockPMPAugmentHook.sol/MockPMPAugmentHook.json +214 -0
- package/artifacts/contracts/mock/MockPMPConfigureHook.sol/MockPMPConfigureHook.json +236 -0
- package/artifacts/contracts/mock/OriginRegisterMock.sol/OriginRegisterMock.json +2 -2
- package/artifacts/contracts/mock/RandomizerV2_NoAssignMock.sol/RandomizerV2_NoAssignMock.json +2 -2
- package/artifacts/contracts/randomizer/deprecated/PolyptychRandomizerV0.sol/BasicPolyptychRandomizerV0.json +2 -2
- package/artifacts/contracts/randomizer/deprecated/RandomizerV2.sol/BasicRandomizerV2.json +2 -2
- package/artifacts/contracts/randomizer/shared/SharedRandomizerV0.sol/SharedRandomizerV0.json +2 -2
- package/artifacts/contracts/web3call/PMPV0.sol/PMPV0.json +629 -0
- package/artifacts/contracts/web3call/Web3Call.sol/Web3Call.json +66 -0
- package/artifacts/contracts/web3call/augment-hooks/AbstractPMPAugmentHook.sol/AbstractPMPAugmentHook.json +83 -0
- package/artifacts/contracts/web3call/augment-hooks/InjectBaseGasFee.sol/InjectBaseGasFee.json +83 -0
- package/artifacts/contracts/web3call/augment-hooks/InjectChromieSquiggleFloorPrice.sol/IUniswapV2Pair.json +60 -0
- package/artifacts/contracts/web3call/augment-hooks/InjectChromieSquiggleFloorPrice.sol/InjectChromieSquiggleFloorPrice.json +107 -0
- package/artifacts/contracts/web3call/augment-hooks/InjectIsNounsDaoMember.sol/InjectIsNounsDaoMember.json +96 -0
- package/artifacts/contracts/web3call/augment-hooks/InjectIsProjectFullyMinted.sol/InjectIsProjectFullyMinted.json +83 -0
- package/artifacts/contracts/web3call/augment-hooks/InjectPolyptychTokenHash.sol/InjectPolyptychTokenHash.json +141 -0
- package/artifacts/contracts/web3call/augment-hooks/InjectTokenHashSeed.sol/InjectTokenHashSeed.json +99 -0
- package/artifacts/contracts/web3call/augment-hooks/InjectTokenOwner.sol/InjectTokenOwner.json +99 -0
- package/artifacts/contracts/web3call/augment-hooks/InjectTokenOwnerEthBalance.sol/InjectTokenOwnerEthBalance.json +83 -0
- package/artifacts/contracts/web3call/augment-hooks/InjectUSDCTotalSupply.sol/InjectUSDCTotalSupply.json +107 -0
- package/artifacts/contracts/web3call/configure-hooks/abstractPMPConfigureHook.sol/AbstractPMPConfigureHook.json +80 -0
- package/contracts/BytecodeStorageReaders/BytecodeStorageReaderContractV2.sol +103 -0
- package/contracts/BytecodeStorageReaders/BytecodeStorageReaderContractV2_Web3Call.sol +128 -0
- package/contracts/BytecodeStorageReaders/UniversalBytecodeStorageReader.sol +70 -0
- package/contracts/BytecodeStorageV2Writer.sol +69 -0
- package/contracts/DependencyRegistryV0.sol +296 -88
- package/contracts/GenArt721CoreV3_Curated.sol +133 -0
- package/contracts/OwnedCreate2FactoryV0.sol +173 -0
- package/contracts/engine/V3/EngineFactoryV0.sol +10 -2
- package/contracts/engine/V3/GenArt721CoreV3_Engine.sol +139 -70
- package/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol +148 -72
- package/contracts/generator/AddressChunks.sol +106 -0
- package/contracts/generator/GenArt721GeneratorV0.sol +1163 -0
- package/contracts/generator/scripty-support/Scripty.sol +5 -0
- package/contracts/interfaces/v0.8.x/IBytecodeStorageReader.sol +34 -36
- package/contracts/interfaces/v0.8.x/IBytecodeStorageReaderV2.sol +5 -3
- package/contracts/interfaces/v0.8.x/IBytecodeStorageReader_Base.sol +20 -0
- package/contracts/interfaces/v0.8.x/ICoreRegistryV1.sol +5 -0
- package/contracts/interfaces/v0.8.x/IDelegateRegistry.sol +318 -0
- package/contracts/interfaces/v0.8.x/IDependencyRegistryV0.sol +96 -0
- package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Base.sol +13 -2
- package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine.sol +3 -1
- package/contracts/interfaces/v0.8.x/IGenArt721CoreProjectScriptV0.sol +22 -0
- package/contracts/interfaces/v0.8.x/IGenArt721CoreProjectScriptV1.sol +23 -0
- package/contracts/interfaces/v0.8.x/IGenArt721CoreTokenHashProviderV0.sol +11 -0
- package/contracts/interfaces/v0.8.x/IGenArt721CoreTokenHashProviderV1.sol +9 -0
- package/contracts/interfaces/v0.8.x/IGenArt721GeneratorV0.sol +14 -0
- package/contracts/interfaces/v0.8.x/IOwnedCreate2FactoryV0.sol +40 -0
- package/contracts/interfaces/v0.8.x/IPMPAugmentHook.sol +31 -0
- package/contracts/interfaces/v0.8.x/IPMPConfigureHook.sol +25 -0
- package/contracts/interfaces/v0.8.x/IPMPV0.sol +224 -0
- package/contracts/interfaces/v0.8.x/ISeaDropShimForContract.sol +19 -0
- package/contracts/interfaces/v0.8.x/ISharedMinterMinPriceV0.sol +22 -0
- package/contracts/interfaces/v0.8.x/ISharedMinterRequired.sol +10 -4
- package/contracts/interfaces/v0.8.x/IUniversalBytecodeStorageReader.sol +33 -0
- package/contracts/interfaces/v0.8.x/IWeb3Call.sol +28 -0
- package/contracts/interfaces/v0.8.x/integration-refs/OpenSea/ERC721SeaDropStructsErrorsAndEvents.sol +58 -0
- package/contracts/interfaces/v0.8.x/integration-refs/OpenSea/INonFungibleSeaDropToken.sol +186 -0
- package/contracts/interfaces/v0.8.x/integration-refs/OpenSea/ISeaDrop.sol +337 -0
- package/contracts/interfaces/v0.8.x/integration-refs/OpenSea/ISeaDropTokenContractMetadata.sol +152 -0
- package/contracts/interfaces/v0.8.x/integration-refs/OpenSea/SeaDropErrorsAndEvents.sol +320 -0
- package/contracts/interfaces/v0.8.x/integration-refs/OpenSea/SeaDropStructs.sol +146 -0
- package/contracts/libs/integration-refs/delegation-registry/DelegateRegistry.sol +753 -0
- package/contracts/libs/integration-refs/delegation-registry/libraries/RegistryHashes.sol +359 -0
- package/contracts/libs/integration-refs/delegation-registry/libraries/RegistryOps.sol +31 -0
- package/contracts/libs/integration-refs/delegation-registry/libraries/RegistryStorage.sol +87 -0
- package/contracts/libs/v0.8.x/Bytes32Strings.sol +20 -0
- package/contracts/libs/v0.8.x/DependencyRegistryStorageLib.sol +14 -3
- package/contracts/libs/v0.8.x/ImmutableStringArray.sol +289 -0
- package/contracts/libs/v0.8.x/JsonStatic.sol +373 -0
- package/contracts/libs/v0.8.x/V3FlexLib.sol +16 -4
- package/contracts/libs/v0.8.x/minter-libs/MinPriceLib.sol +64 -0
- package/contracts/libs/v0.8.x/minter-libs/SplitFundsLib.sol +107 -0
- package/contracts/minter-suite/Minters/MinterMinPriceMerkleV0.sol +765 -0
- package/contracts/minter-suite/Minters/MinterMinPriceV0.sol +462 -0
- package/contracts/minter-suite/Minters/one-off/SeaDropXArtBlocksShim.sol +869 -0
- package/contracts/mock/ERC20MockAltDecimals.sol +31 -0
- package/contracts/mock/ImmutableStringArrayMock.sol +47 -0
- package/contracts/mock/MockFileStore.sol +22 -0
- package/contracts/mock/MockPMPAugmentHook.sol +170 -0
- package/contracts/mock/MockPMPConfigureHook.sol +78 -0
- package/contracts/web3call/PMPV0.sol +1125 -0
- package/contracts/web3call/Web3Call.sol +25 -0
- package/contracts/web3call/augment-hooks/AbstractPMPAugmentHook.sol +46 -0
- package/contracts/web3call/augment-hooks/InjectBaseGasFee.sol +57 -0
- package/contracts/web3call/augment-hooks/InjectChromieSquiggleFloorPrice.sol +103 -0
- package/contracts/web3call/augment-hooks/InjectIsNounsDaoMember.sol +66 -0
- package/contracts/web3call/augment-hooks/InjectIsProjectFullyMinted.sol +73 -0
- package/contracts/web3call/augment-hooks/InjectPolyptychTokenHash.sol +88 -0
- package/contracts/web3call/augment-hooks/InjectTokenHashSeed.sol +62 -0
- package/contracts/web3call/augment-hooks/InjectTokenOwner.sol +60 -0
- package/contracts/web3call/augment-hooks/InjectTokenOwnerEthBalance.sol +61 -0
- package/contracts/web3call/augment-hooks/InjectUSDCTotalSupply.sol +69 -0
- package/contracts/web3call/configure-hooks/abstractPMPConfigureHook.sol +41 -0
- package/package.json +23 -21
|
@@ -3,60 +3,58 @@
|
|
|
3
3
|
|
|
4
4
|
pragma solidity ^0.8.0;
|
|
5
5
|
|
|
6
|
+
import {IBytecodeStorageReader_Base} from "./IBytecodeStorageReader_Base.sol";
|
|
7
|
+
|
|
6
8
|
/**
|
|
7
|
-
* @title Art Blocks Script Storage Library
|
|
8
|
-
* @notice This interface defines the expected read functions for the Art Blocks Script Storage Library
|
|
9
|
+
* @title Art Blocks Script Storage Library - Reader Contract
|
|
10
|
+
* @notice This interface defines the expected read functions for the Art Blocks Script Storage Library's Reader
|
|
11
|
+
* Contracts. It is extended from the base interface to add additional read functions for further introspection of
|
|
12
|
+
* stored data.
|
|
9
13
|
*/
|
|
10
|
-
interface IBytecodeStorageReader {
|
|
11
|
-
/**
|
|
12
|
-
* @notice Read a string from contract bytecode
|
|
13
|
-
* @param _address address of deployed contract with bytecode stored in the V0 or V1 format
|
|
14
|
-
* @return data string read from contract bytecode
|
|
15
|
-
* @dev This function performs input validation that the contract to read is in an expected format
|
|
16
|
-
*/
|
|
17
|
-
function readFromBytecode(
|
|
18
|
-
address _address
|
|
19
|
-
) external view returns (string memory data);
|
|
20
|
-
|
|
14
|
+
interface IBytecodeStorageReader is IBytecodeStorageReader_Base {
|
|
21
15
|
/**
|
|
22
|
-
* @notice Read
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
* @dev
|
|
26
|
-
*
|
|
16
|
+
* @notice Read a bytes array from the SSTORE2-formatted bytecode of a contract.
|
|
17
|
+
* Note that this function is only compatible with contracts that have been deployed using the popular SSTORE2
|
|
18
|
+
* library.
|
|
19
|
+
* @dev see versioned BytecodeStorageReader implementation details to understand which data are being returned,
|
|
20
|
+
* espcially in the context of EOF updates.
|
|
21
|
+
* @param address_ address of contract with SSTORE2-formatted bytecode to be read
|
|
22
|
+
* @return data The bytes data stored at the specific address.
|
|
27
23
|
*/
|
|
28
24
|
function readBytesFromSSTORE2Bytecode(
|
|
29
|
-
address
|
|
25
|
+
address address_
|
|
30
26
|
) external view returns (bytes memory data);
|
|
31
27
|
|
|
32
28
|
/**
|
|
33
|
-
* @notice Read
|
|
34
|
-
* @
|
|
35
|
-
*
|
|
36
|
-
* @
|
|
37
|
-
* @
|
|
38
|
-
*
|
|
29
|
+
* @notice Read a bytes array from the a contract deployed via BytecodeStorage.
|
|
30
|
+
* @dev see versioned BytecodeStorageReader implementation details to understand which data are being returned, and
|
|
31
|
+
* how offset is interpreted, especially in the context of EOF updates.
|
|
32
|
+
* @param address_ address of contract with valid bytecode to be read
|
|
33
|
+
* @param offset offset to read from in contract bytecode, explicitly provided (not calculated)
|
|
34
|
+
* @return The bytes data stored at the specific address.
|
|
39
35
|
*/
|
|
40
36
|
function readBytesFromBytecode(
|
|
41
|
-
address
|
|
42
|
-
uint256
|
|
43
|
-
) external view returns (bytes memory
|
|
37
|
+
address address_,
|
|
38
|
+
uint256 offset
|
|
39
|
+
) external view returns (bytes memory);
|
|
40
|
+
|
|
41
|
+
//------ Metadata Functions ------//
|
|
44
42
|
|
|
45
43
|
/**
|
|
46
|
-
* @notice Get address
|
|
47
|
-
* @param
|
|
48
|
-
* @return writerAddress address
|
|
44
|
+
* @notice Get address of deployer for given contract deployed via BytecodeStorage.
|
|
45
|
+
* @param address_ address of deployed contract
|
|
46
|
+
* @return writerAddress address of deployer
|
|
49
47
|
*/
|
|
50
48
|
function getWriterAddressForBytecode(
|
|
51
|
-
address
|
|
49
|
+
address address_
|
|
52
50
|
) external view returns (address);
|
|
53
51
|
|
|
54
52
|
/**
|
|
55
|
-
* @notice Get version for given contract
|
|
56
|
-
* @param
|
|
57
|
-
* @return version version
|
|
53
|
+
* @notice Get version for given contract deployed via BytecodeStorage.
|
|
54
|
+
* @param address_ address of deployed contract
|
|
55
|
+
* @return version version of the contract
|
|
58
56
|
*/
|
|
59
57
|
function getLibraryVersionForBytecode(
|
|
60
|
-
address
|
|
58
|
+
address address_
|
|
61
59
|
) external view returns (bytes32);
|
|
62
60
|
}
|
|
@@ -7,14 +7,16 @@ import {IBytecodeStorageReader} from "./IBytecodeStorageReader.sol";
|
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* @title Art Blocks Script Storage Library (Reader)
|
|
10
|
-
* @notice This interface defines the expected read functions for
|
|
10
|
+
* @notice This interface defines the expected read functions for a Bytecode Storage Reader contract.
|
|
11
11
|
* @dev This interface extends the V1 interface to add a function to get if data are stored in compressed format,
|
|
12
12
|
* which is functionality added in the V2 format of the bytecode storage.
|
|
13
13
|
*/
|
|
14
14
|
interface IBytecodeStorageReaderV2 is IBytecodeStorageReader {
|
|
15
|
+
//------ Metadata Functions ------//
|
|
16
|
+
|
|
15
17
|
/**
|
|
16
|
-
* @notice Get if data are stored in compressed format for given contract
|
|
17
|
-
* @param _address address of deployed contract
|
|
18
|
+
* @notice Get if data are stored in compressed format for given contract deployed via BytecodeStorage.
|
|
19
|
+
* @param _address address of deployed contract
|
|
18
20
|
* @return isCompressed boolean indicating if the stored data are compressed
|
|
19
21
|
*/
|
|
20
22
|
function getIsCompressedForBytecode(
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
// Creatd By: Art Blocks Inc.
|
|
3
|
+
|
|
4
|
+
pragma solidity ^0.8.0;
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* @title Art Blocks Script Storage Library - Minimal Interface for Reader Contracts
|
|
8
|
+
* @notice This interface defines the minimal expected read function(s) for a Bytecode Storage Reader contract.
|
|
9
|
+
*/
|
|
10
|
+
interface IBytecodeStorageReader_Base {
|
|
11
|
+
/**
|
|
12
|
+
* @notice Read a string from a data contract deployed via BytecodeStorage.
|
|
13
|
+
* @dev may also support reading additional stored data formats in the future.
|
|
14
|
+
* @param address_ address of contract deployed via BytecodeStorage to be read
|
|
15
|
+
* @return data The string data stored at the specific address.
|
|
16
|
+
*/
|
|
17
|
+
function readFromBytecode(
|
|
18
|
+
address address_
|
|
19
|
+
) external view returns (string memory data);
|
|
20
|
+
}
|
|
@@ -0,0 +1,318 @@
|
|
|
1
|
+
// SPDX-License-Identifier: CC0-1.0
|
|
2
|
+
pragma solidity >=0.8.13;
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @title IDelegateRegistry
|
|
6
|
+
* @custom:version 2.0
|
|
7
|
+
* @custom:author foobar (0xfoobar)
|
|
8
|
+
* @notice A standalone immutable registry storing delegated permissions from one address to another
|
|
9
|
+
*/
|
|
10
|
+
interface IDelegateRegistry {
|
|
11
|
+
/// @notice Delegation type, NONE is used when a delegation does not exist or is revoked
|
|
12
|
+
enum DelegationType {
|
|
13
|
+
NONE,
|
|
14
|
+
ALL,
|
|
15
|
+
CONTRACT,
|
|
16
|
+
ERC721,
|
|
17
|
+
ERC20,
|
|
18
|
+
ERC1155
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/// @notice Struct for returning delegations
|
|
22
|
+
struct Delegation {
|
|
23
|
+
DelegationType type_;
|
|
24
|
+
address to;
|
|
25
|
+
address from;
|
|
26
|
+
bytes32 rights;
|
|
27
|
+
address contract_;
|
|
28
|
+
uint256 tokenId;
|
|
29
|
+
uint256 amount;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/// @notice Emitted when an address delegates or revokes rights for their entire wallet
|
|
33
|
+
event DelegateAll(
|
|
34
|
+
address indexed from,
|
|
35
|
+
address indexed to,
|
|
36
|
+
bytes32 rights,
|
|
37
|
+
bool enable
|
|
38
|
+
);
|
|
39
|
+
|
|
40
|
+
/// @notice Emitted when an address delegates or revokes rights for a contract address
|
|
41
|
+
event DelegateContract(
|
|
42
|
+
address indexed from,
|
|
43
|
+
address indexed to,
|
|
44
|
+
address indexed contract_,
|
|
45
|
+
bytes32 rights,
|
|
46
|
+
bool enable
|
|
47
|
+
);
|
|
48
|
+
|
|
49
|
+
/// @notice Emitted when an address delegates or revokes rights for an ERC721 tokenId
|
|
50
|
+
event DelegateERC721(
|
|
51
|
+
address indexed from,
|
|
52
|
+
address indexed to,
|
|
53
|
+
address indexed contract_,
|
|
54
|
+
uint256 tokenId,
|
|
55
|
+
bytes32 rights,
|
|
56
|
+
bool enable
|
|
57
|
+
);
|
|
58
|
+
|
|
59
|
+
/// @notice Emitted when an address delegates or revokes rights for an amount of ERC20 tokens
|
|
60
|
+
event DelegateERC20(
|
|
61
|
+
address indexed from,
|
|
62
|
+
address indexed to,
|
|
63
|
+
address indexed contract_,
|
|
64
|
+
bytes32 rights,
|
|
65
|
+
uint256 amount
|
|
66
|
+
);
|
|
67
|
+
|
|
68
|
+
/// @notice Emitted when an address delegates or revokes rights for an amount of an ERC1155 tokenId
|
|
69
|
+
event DelegateERC1155(
|
|
70
|
+
address indexed from,
|
|
71
|
+
address indexed to,
|
|
72
|
+
address indexed contract_,
|
|
73
|
+
uint256 tokenId,
|
|
74
|
+
bytes32 rights,
|
|
75
|
+
uint256 amount
|
|
76
|
+
);
|
|
77
|
+
|
|
78
|
+
/// @notice Thrown if multicall calldata is malformed
|
|
79
|
+
error MulticallFailed();
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* ----------- WRITE -----------
|
|
83
|
+
*/
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* @notice Call multiple functions in the current contract and return the data from all of them if they all succeed
|
|
87
|
+
* @param data The encoded function data for each of the calls to make to this contract
|
|
88
|
+
* @return results The results from each of the calls passed in via data
|
|
89
|
+
*/
|
|
90
|
+
function multicall(
|
|
91
|
+
bytes[] calldata data
|
|
92
|
+
) external payable returns (bytes[] memory results);
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* @notice Allow the delegate to act on behalf of `msg.sender` for all contracts
|
|
96
|
+
* @param to The address to act as delegate
|
|
97
|
+
* @param rights Specific subdelegation rights granted to the delegate, pass an empty bytestring to encompass all rights
|
|
98
|
+
* @param enable Whether to enable or disable this delegation, true delegates and false revokes
|
|
99
|
+
* @return delegationHash The unique identifier of the delegation
|
|
100
|
+
*/
|
|
101
|
+
function delegateAll(
|
|
102
|
+
address to,
|
|
103
|
+
bytes32 rights,
|
|
104
|
+
bool enable
|
|
105
|
+
) external payable returns (bytes32 delegationHash);
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* @notice Allow the delegate to act on behalf of `msg.sender` for a specific contract
|
|
109
|
+
* @param to The address to act as delegate
|
|
110
|
+
* @param contract_ The contract whose rights are being delegated
|
|
111
|
+
* @param rights Specific subdelegation rights granted to the delegate, pass an empty bytestring to encompass all rights
|
|
112
|
+
* @param enable Whether to enable or disable this delegation, true delegates and false revokes
|
|
113
|
+
* @return delegationHash The unique identifier of the delegation
|
|
114
|
+
*/
|
|
115
|
+
function delegateContract(
|
|
116
|
+
address to,
|
|
117
|
+
address contract_,
|
|
118
|
+
bytes32 rights,
|
|
119
|
+
bool enable
|
|
120
|
+
) external payable returns (bytes32 delegationHash);
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* @notice Allow the delegate to act on behalf of `msg.sender` for a specific ERC721 token
|
|
124
|
+
* @param to The address to act as delegate
|
|
125
|
+
* @param contract_ The contract whose rights are being delegated
|
|
126
|
+
* @param tokenId The token id to delegate
|
|
127
|
+
* @param rights Specific subdelegation rights granted to the delegate, pass an empty bytestring to encompass all rights
|
|
128
|
+
* @param enable Whether to enable or disable this delegation, true delegates and false revokes
|
|
129
|
+
* @return delegationHash The unique identifier of the delegation
|
|
130
|
+
*/
|
|
131
|
+
function delegateERC721(
|
|
132
|
+
address to,
|
|
133
|
+
address contract_,
|
|
134
|
+
uint256 tokenId,
|
|
135
|
+
bytes32 rights,
|
|
136
|
+
bool enable
|
|
137
|
+
) external payable returns (bytes32 delegationHash);
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* @notice Allow the delegate to act on behalf of `msg.sender` for a specific amount of ERC20 tokens
|
|
141
|
+
* @dev The actual amount is not encoded in the hash, just the existence of a amount (since it is an upper bound)
|
|
142
|
+
* @param to The address to act as delegate
|
|
143
|
+
* @param contract_ The address for the fungible token contract
|
|
144
|
+
* @param rights Specific subdelegation rights granted to the delegate, pass an empty bytestring to encompass all rights
|
|
145
|
+
* @param amount The amount to delegate, > 0 delegates and 0 revokes
|
|
146
|
+
* @return delegationHash The unique identifier of the delegation
|
|
147
|
+
*/
|
|
148
|
+
function delegateERC20(
|
|
149
|
+
address to,
|
|
150
|
+
address contract_,
|
|
151
|
+
bytes32 rights,
|
|
152
|
+
uint256 amount
|
|
153
|
+
) external payable returns (bytes32 delegationHash);
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* @notice Allow the delegate to act on behalf of `msg.sender` for a specific amount of ERC1155 tokens
|
|
157
|
+
* @dev The actual amount is not encoded in the hash, just the existence of a amount (since it is an upper bound)
|
|
158
|
+
* @param to The address to act as delegate
|
|
159
|
+
* @param contract_ The address of the contract that holds the token
|
|
160
|
+
* @param tokenId The token id to delegate
|
|
161
|
+
* @param rights Specific subdelegation rights granted to the delegate, pass an empty bytestring to encompass all rights
|
|
162
|
+
* @param amount The amount of that token id to delegate, > 0 delegates and 0 revokes
|
|
163
|
+
* @return delegationHash The unique identifier of the delegation
|
|
164
|
+
*/
|
|
165
|
+
function delegateERC1155(
|
|
166
|
+
address to,
|
|
167
|
+
address contract_,
|
|
168
|
+
uint256 tokenId,
|
|
169
|
+
bytes32 rights,
|
|
170
|
+
uint256 amount
|
|
171
|
+
) external payable returns (bytes32 delegationHash);
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* ----------- CHECKS -----------
|
|
175
|
+
*/
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* @notice Check if `to` is a delegate of `from` for the entire wallet
|
|
179
|
+
* @param to The potential delegate address
|
|
180
|
+
* @param from The potential address who delegated rights
|
|
181
|
+
* @param rights Specific rights to check for, pass the zero value to ignore subdelegations and check full delegations only
|
|
182
|
+
* @return valid Whether delegate is granted to act on the from's behalf
|
|
183
|
+
*/
|
|
184
|
+
function checkDelegateForAll(
|
|
185
|
+
address to,
|
|
186
|
+
address from,
|
|
187
|
+
bytes32 rights
|
|
188
|
+
) external view returns (bool);
|
|
189
|
+
|
|
190
|
+
/**
|
|
191
|
+
* @notice Check if `to` is a delegate of `from` for the specified `contract_` or the entire wallet
|
|
192
|
+
* @param to The delegated address to check
|
|
193
|
+
* @param contract_ The specific contract address being checked
|
|
194
|
+
* @param from The cold wallet who issued the delegation
|
|
195
|
+
* @param rights Specific rights to check for, pass the zero value to ignore subdelegations and check full delegations only
|
|
196
|
+
* @return valid Whether delegate is granted to act on from's behalf for entire wallet or that specific contract
|
|
197
|
+
*/
|
|
198
|
+
function checkDelegateForContract(
|
|
199
|
+
address to,
|
|
200
|
+
address from,
|
|
201
|
+
address contract_,
|
|
202
|
+
bytes32 rights
|
|
203
|
+
) external view returns (bool);
|
|
204
|
+
|
|
205
|
+
/**
|
|
206
|
+
* @notice Check if `to` is a delegate of `from` for the specific `contract` and `tokenId`, the entire `contract_`, or the entire wallet
|
|
207
|
+
* @param to The delegated address to check
|
|
208
|
+
* @param contract_ The specific contract address being checked
|
|
209
|
+
* @param tokenId The token id for the token to delegating
|
|
210
|
+
* @param from The wallet that issued the delegation
|
|
211
|
+
* @param rights Specific rights to check for, pass the zero value to ignore subdelegations and check full delegations only
|
|
212
|
+
* @return valid Whether delegate is granted to act on from's behalf for entire wallet, that contract, or that specific tokenId
|
|
213
|
+
*/
|
|
214
|
+
function checkDelegateForERC721(
|
|
215
|
+
address to,
|
|
216
|
+
address from,
|
|
217
|
+
address contract_,
|
|
218
|
+
uint256 tokenId,
|
|
219
|
+
bytes32 rights
|
|
220
|
+
) external view returns (bool);
|
|
221
|
+
|
|
222
|
+
/**
|
|
223
|
+
* @notice Returns the amount of ERC20 tokens the delegate is granted rights to act on the behalf of
|
|
224
|
+
* @param to The delegated address to check
|
|
225
|
+
* @param contract_ The address of the token contract
|
|
226
|
+
* @param from The cold wallet who issued the delegation
|
|
227
|
+
* @param rights Specific rights to check for, pass the zero value to ignore subdelegations and check full delegations only
|
|
228
|
+
* @return balance The delegated balance, which will be 0 if the delegation does not exist
|
|
229
|
+
*/
|
|
230
|
+
function checkDelegateForERC20(
|
|
231
|
+
address to,
|
|
232
|
+
address from,
|
|
233
|
+
address contract_,
|
|
234
|
+
bytes32 rights
|
|
235
|
+
) external view returns (uint256);
|
|
236
|
+
|
|
237
|
+
/**
|
|
238
|
+
* @notice Returns the amount of a ERC1155 tokens the delegate is granted rights to act on the behalf of
|
|
239
|
+
* @param to The delegated address to check
|
|
240
|
+
* @param contract_ The address of the token contract
|
|
241
|
+
* @param tokenId The token id to check the delegated amount of
|
|
242
|
+
* @param from The cold wallet who issued the delegation
|
|
243
|
+
* @param rights Specific rights to check for, pass the zero value to ignore subdelegations and check full delegations only
|
|
244
|
+
* @return balance The delegated balance, which will be 0 if the delegation does not exist
|
|
245
|
+
*/
|
|
246
|
+
function checkDelegateForERC1155(
|
|
247
|
+
address to,
|
|
248
|
+
address from,
|
|
249
|
+
address contract_,
|
|
250
|
+
uint256 tokenId,
|
|
251
|
+
bytes32 rights
|
|
252
|
+
) external view returns (uint256);
|
|
253
|
+
|
|
254
|
+
/**
|
|
255
|
+
* ----------- ENUMERATIONS -----------
|
|
256
|
+
*/
|
|
257
|
+
|
|
258
|
+
/**
|
|
259
|
+
* @notice Returns all enabled delegations a given delegate has received
|
|
260
|
+
* @param to The address to retrieve delegations for
|
|
261
|
+
* @return delegations Array of Delegation structs
|
|
262
|
+
*/
|
|
263
|
+
function getIncomingDelegations(
|
|
264
|
+
address to
|
|
265
|
+
) external view returns (Delegation[] memory delegations);
|
|
266
|
+
|
|
267
|
+
/**
|
|
268
|
+
* @notice Returns all enabled delegations an address has given out
|
|
269
|
+
* @param from The address to retrieve delegations for
|
|
270
|
+
* @return delegations Array of Delegation structs
|
|
271
|
+
*/
|
|
272
|
+
function getOutgoingDelegations(
|
|
273
|
+
address from
|
|
274
|
+
) external view returns (Delegation[] memory delegations);
|
|
275
|
+
|
|
276
|
+
/**
|
|
277
|
+
* @notice Returns all hashes associated with enabled delegations an address has received
|
|
278
|
+
* @param to The address to retrieve incoming delegation hashes for
|
|
279
|
+
* @return delegationHashes Array of delegation hashes
|
|
280
|
+
*/
|
|
281
|
+
function getIncomingDelegationHashes(
|
|
282
|
+
address to
|
|
283
|
+
) external view returns (bytes32[] memory delegationHashes);
|
|
284
|
+
|
|
285
|
+
/**
|
|
286
|
+
* @notice Returns all hashes associated with enabled delegations an address has given out
|
|
287
|
+
* @param from The address to retrieve outgoing delegation hashes for
|
|
288
|
+
* @return delegationHashes Array of delegation hashes
|
|
289
|
+
*/
|
|
290
|
+
function getOutgoingDelegationHashes(
|
|
291
|
+
address from
|
|
292
|
+
) external view returns (bytes32[] memory delegationHashes);
|
|
293
|
+
|
|
294
|
+
/**
|
|
295
|
+
* @notice Returns the delegations for a given array of delegation hashes
|
|
296
|
+
* @param delegationHashes is an array of hashes that correspond to delegations
|
|
297
|
+
* @return delegations Array of Delegation structs, return empty structs for nonexistent or revoked delegations
|
|
298
|
+
*/
|
|
299
|
+
function getDelegationsFromHashes(
|
|
300
|
+
bytes32[] calldata delegationHashes
|
|
301
|
+
) external view returns (Delegation[] memory delegations);
|
|
302
|
+
|
|
303
|
+
/**
|
|
304
|
+
* ----------- STORAGE ACCESS -----------
|
|
305
|
+
*/
|
|
306
|
+
|
|
307
|
+
/**
|
|
308
|
+
* @notice Allows external contracts to read arbitrary storage slots
|
|
309
|
+
*/
|
|
310
|
+
function readSlot(bytes32 location) external view returns (bytes32);
|
|
311
|
+
|
|
312
|
+
/**
|
|
313
|
+
* @notice Allows external contracts to read an arbitrary array of storage slots
|
|
314
|
+
*/
|
|
315
|
+
function readSlots(
|
|
316
|
+
bytes32[] calldata locations
|
|
317
|
+
) external view returns (bytes32[] memory);
|
|
318
|
+
}
|
|
@@ -3,10 +3,22 @@
|
|
|
3
3
|
pragma solidity ^0.8.19;
|
|
4
4
|
|
|
5
5
|
interface IDependencyRegistryV0 {
|
|
6
|
+
// legacy event used before deferring to core registry for allowlist
|
|
6
7
|
event SupportedCoreContractAdded(address indexed coreContractAddress);
|
|
7
8
|
|
|
9
|
+
// legacy event used before deferring to core registry for allowlist
|
|
8
10
|
event SupportedCoreContractRemoved(address indexed coreContractAddress);
|
|
9
11
|
|
|
12
|
+
// active event used to add additional supported contracts beyond what core registry allows
|
|
13
|
+
event SupportedCoreContractOverrideAdded(
|
|
14
|
+
address indexed coreContractAddress
|
|
15
|
+
);
|
|
16
|
+
|
|
17
|
+
// active event used to remove additional supported contracts beyond what core registry allows
|
|
18
|
+
event SupportedCoreContractOverrideRemoved(
|
|
19
|
+
address indexed coreContractAddress
|
|
20
|
+
);
|
|
21
|
+
|
|
10
22
|
event ProjectDependencyOverrideAdded(
|
|
11
23
|
address indexed coreContractAddress,
|
|
12
24
|
uint256 indexed projectId,
|
|
@@ -71,6 +83,10 @@ interface IDependencyRegistryV0 {
|
|
|
71
83
|
|
|
72
84
|
event DependencyScriptUpdated(bytes32 indexed dependencyNameAndVersion);
|
|
73
85
|
|
|
86
|
+
event CoreRegistryAddressUpdated(address indexed coreRegistryAddress);
|
|
87
|
+
|
|
88
|
+
event UniversalBytecodeStorageReaderUpdated(address indexed newReader);
|
|
89
|
+
|
|
74
90
|
/**
|
|
75
91
|
* @notice Returns the count of scripts for dependency `dependencyNameAndVersion`.
|
|
76
92
|
* @param dependencyNameAndVersion Dependency type to be queried.
|
|
@@ -97,4 +113,84 @@ interface IDependencyRegistryV0 {
|
|
|
97
113
|
bytes32 dependencyNameAndVersion,
|
|
98
114
|
uint256 index
|
|
99
115
|
) external view returns (string memory);
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* @notice Returns details for a given dependency type `dependencyNameAndVersion`.
|
|
119
|
+
* @param dependencyNameAndVersion Name and version of dependency (i.e. "name@version") used to identify dependency.
|
|
120
|
+
* @return nameAndVersion String representation of `dependencyNameAndVersion`.
|
|
121
|
+
* (e.g. "p5js(atSymbol)1.0.0")
|
|
122
|
+
* @return licenseType License type for dependency
|
|
123
|
+
* @return preferredCDN Preferred CDN URL for dependency
|
|
124
|
+
* @return additionalCDNCount Count of additional CDN URLs for dependency
|
|
125
|
+
* @return preferredRepository Preferred repository URL for dependency
|
|
126
|
+
* @return additionalRepositoryCount Count of additional repository URLs for dependency
|
|
127
|
+
* @return dependencyWebsite Project website URL for dependency
|
|
128
|
+
* @return availableOnChain Whether dependency is available on chain
|
|
129
|
+
* @return scriptCount Count of on-chain scripts for dependency
|
|
130
|
+
*/
|
|
131
|
+
function getDependencyDetails(
|
|
132
|
+
bytes32 dependencyNameAndVersion
|
|
133
|
+
)
|
|
134
|
+
external
|
|
135
|
+
view
|
|
136
|
+
returns (
|
|
137
|
+
string memory nameAndVersion,
|
|
138
|
+
string memory licenseType,
|
|
139
|
+
string memory preferredCDN,
|
|
140
|
+
uint24 additionalCDNCount,
|
|
141
|
+
string memory preferredRepository,
|
|
142
|
+
uint24 additionalRepositoryCount,
|
|
143
|
+
string memory dependencyWebsite,
|
|
144
|
+
bool availableOnChain,
|
|
145
|
+
uint24 scriptCount
|
|
146
|
+
);
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* @notice Returns the dependency name and version for a given project (`projectId`)
|
|
150
|
+
* on a given core contract (`_contractAddress`). If no override is set,
|
|
151
|
+
* the core contract is called to retrieve the script type and version as
|
|
152
|
+
* dependency type. For any contract earlier than v3, that does not have
|
|
153
|
+
* an override set, this will revert.
|
|
154
|
+
* @param contractAddress Core contract address.
|
|
155
|
+
* @param projectId Project to return dependency type for.
|
|
156
|
+
* @return dependencyType Identifier for the dependency (i.e. "name@version") used by project.
|
|
157
|
+
*/
|
|
158
|
+
function getDependencyNameAndVersionForProject(
|
|
159
|
+
address contractAddress,
|
|
160
|
+
uint256 projectId
|
|
161
|
+
) external view returns (string memory);
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* @notice Returns whether the given contract address is a supported core contract.
|
|
165
|
+
* @param coreContractAddress Address of the core contract to be queried.
|
|
166
|
+
* @return True if the given contract address is a supported core contract.
|
|
167
|
+
*/
|
|
168
|
+
function isSupportedCoreContract(
|
|
169
|
+
address coreContractAddress
|
|
170
|
+
) external view returns (bool);
|
|
171
|
+
|
|
172
|
+
/**
|
|
173
|
+
* @notice Convenience function that returns whether `_sender` is allowed
|
|
174
|
+
* to call function with selector `_selector` on contract `_contract`, as
|
|
175
|
+
* determined by this contract's current Admin ACL contract. Expected use
|
|
176
|
+
* cases include minter contracts checking if caller is allowed to call
|
|
177
|
+
* admin-gated functions on minter contracts.
|
|
178
|
+
* @param sender Address of the sender calling function with selector
|
|
179
|
+
* `selector` on contract `contract_`.
|
|
180
|
+
* @param contract_ Address of the contract being called by `sender`.
|
|
181
|
+
* @param selector Function selector of the function being called by
|
|
182
|
+
* `sender`.
|
|
183
|
+
* @return bool Whether `sender` is allowed to call function with selector
|
|
184
|
+
* `selector` on contract `contract_`.
|
|
185
|
+
* @dev assumes the Admin ACL contract is the owner of this contract, which
|
|
186
|
+
* is expected to always be true.
|
|
187
|
+
* @dev adminACLContract is expected to either be null address (if owner
|
|
188
|
+
* has renounced ownership), or conform to IAdminACLV0 interface. Check for
|
|
189
|
+
* null address first to avoid revert when admin has renounced ownership.
|
|
190
|
+
*/
|
|
191
|
+
function adminACLAllowed(
|
|
192
|
+
address sender,
|
|
193
|
+
address contract_,
|
|
194
|
+
bytes4 selector
|
|
195
|
+
) external returns (bool);
|
|
100
196
|
}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
pragma solidity ^0.8.0;
|
|
5
5
|
|
|
6
6
|
import "./IAdminACLV0.sol";
|
|
7
|
+
import "./IGenArt721CoreProjectScriptV1.sol";
|
|
7
8
|
|
|
8
9
|
/**
|
|
9
10
|
* @title This interface is intended to house interface items that are common
|
|
@@ -12,7 +13,7 @@ import "./IAdminACLV0.sol";
|
|
|
12
13
|
* add support the Royalty Registry by default.
|
|
13
14
|
* @author Art Blocks Inc.
|
|
14
15
|
*/
|
|
15
|
-
interface IGenArt721CoreContractV3_Base {
|
|
16
|
+
interface IGenArt721CoreContractV3_Base is IGenArt721CoreProjectScriptV1 {
|
|
16
17
|
// This interface emits generic events that contain fields that indicate
|
|
17
18
|
// which parameter has been updated. This is sufficient for application
|
|
18
19
|
// state management, while also simplifying the contract and indexing code.
|
|
@@ -21,6 +22,15 @@ interface IGenArt721CoreContractV3_Base {
|
|
|
21
22
|
// be introspected by indexers due to the design of this smart contract
|
|
22
23
|
// exposing these state changes via publicly viewable fields.
|
|
23
24
|
|
|
25
|
+
/**
|
|
26
|
+
* @notice Event emitted when the Art Blocks Curation Registry contract is updated.
|
|
27
|
+
* @dev only utilized by subset of V3 core contracts (Art Blocks Curated contracts)
|
|
28
|
+
* @param artblocksCurationRegistryAddress Address of Art Blocks Curation Registry contract.
|
|
29
|
+
*/
|
|
30
|
+
event ArtBlocksCurationRegistryContractUpdated(
|
|
31
|
+
address indexed artblocksCurationRegistryAddress
|
|
32
|
+
);
|
|
33
|
+
|
|
24
34
|
/**
|
|
25
35
|
* @notice Project's royalty splitter was updated to `_splitter`.
|
|
26
36
|
* @dev New event in v3.2
|
|
@@ -46,7 +56,8 @@ interface IGenArt721CoreContractV3_Base {
|
|
|
46
56
|
FIELD_PROVIDER_SALES_ADDRESSES, // 7
|
|
47
57
|
FIELD_PROVIDER_PRIMARY_SALES_PERCENTAGES, // 8
|
|
48
58
|
FIELD_PROVIDER_SECONDARY_SALES_BPS, // 9
|
|
49
|
-
FIELD_SPLIT_PROVIDER // 10
|
|
59
|
+
FIELD_SPLIT_PROVIDER, // 10
|
|
60
|
+
FIELD_BYTECODE_STORAGE_READER // 11
|
|
50
61
|
}
|
|
51
62
|
|
|
52
63
|
// The following fields are used to indicate which project-level parameter
|
|
@@ -51,11 +51,13 @@ interface IGenArt721CoreContractV3_Engine is IGenArt721CoreContractV3_Base {
|
|
|
51
51
|
* @param adminACLContract_ Address of admin access control contract, to be
|
|
52
52
|
* set as contract owner.
|
|
53
53
|
* @param defaultBaseURIHost Base URI prefix to initialize default base URI with.
|
|
54
|
+
* @param bytecodeStorageReaderContract_ Address of the bytecode storage reader contract.
|
|
54
55
|
*/
|
|
55
56
|
function initialize(
|
|
56
57
|
EngineConfiguration calldata engineConfiguration,
|
|
57
58
|
address adminACLContract_,
|
|
58
|
-
string memory defaultBaseURIHost
|
|
59
|
+
string memory defaultBaseURIHost,
|
|
60
|
+
address bytecodeStorageReaderContract_
|
|
59
61
|
) external;
|
|
60
62
|
|
|
61
63
|
// @dev new function in V3
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
pragma solidity ^0.8.0;
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @dev This interface is implemented by GenArt721CoreV0, GenArt721CoreV1, and GenArt721CoreV2
|
|
6
|
+
*/
|
|
7
|
+
interface IGenArt721CoreProjectScriptV0 {
|
|
8
|
+
function projectScriptByIndex(
|
|
9
|
+
uint256 _projectId,
|
|
10
|
+
uint256 _index
|
|
11
|
+
) external view returns (string memory);
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* @dev the return specified here is common across all
|
|
15
|
+
* pre-v3 core contracts. They all return additional
|
|
16
|
+
* data as well that varies between contracts but is not
|
|
17
|
+
* used by the dependency registry.
|
|
18
|
+
*/
|
|
19
|
+
function projectScriptInfo(
|
|
20
|
+
uint256 _projectId
|
|
21
|
+
) external view returns (string memory scriptJSON, uint256 scriptCount);
|
|
22
|
+
}
|