@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
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
// Created By: Art Blocks Inc.
|
|
3
|
+
|
|
4
|
+
pragma solidity ^0.8.0;
|
|
5
|
+
|
|
6
|
+
import {DALib} from "./DALib.sol";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @title Art Blocks Dutch Auction (exponential price curve) Library
|
|
10
|
+
* @notice This library is designed to implement logic and checks for Art
|
|
11
|
+
* Blocks projects using an exponential Dutch auctionprice curve for minting
|
|
12
|
+
* tokens.
|
|
13
|
+
* @author Art Blocks Inc.
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
library DAExpLib {
|
|
17
|
+
/**
|
|
18
|
+
* @notice Auction details set for project `projectId` on core contract
|
|
19
|
+
* `coreContract`.
|
|
20
|
+
* @param projectId Project Id for which auction details were set
|
|
21
|
+
* @param coreContract Core contract address for which auction details were
|
|
22
|
+
* set
|
|
23
|
+
* @param auctionTimestampStart Timestamp when auction will start
|
|
24
|
+
* @param priceDecayHalfLifeSeconds Half life of price decay, in seconds
|
|
25
|
+
* @param startPrice Start price of auction
|
|
26
|
+
* @param basePrice Base price of auction (end price)
|
|
27
|
+
*/
|
|
28
|
+
event SetAuctionDetailsExp(
|
|
29
|
+
uint256 indexed projectId,
|
|
30
|
+
address indexed coreContract,
|
|
31
|
+
uint40 auctionTimestampStart,
|
|
32
|
+
uint40 priceDecayHalfLifeSeconds,
|
|
33
|
+
uint256 startPrice,
|
|
34
|
+
uint256 basePrice
|
|
35
|
+
);
|
|
36
|
+
/// Minimum allowed price decay half life seconds updated.
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* @notice Minimum allowed price decay half life on the minter updated to
|
|
40
|
+
* `minimumPriceDecayHalfLifeSeconds`.
|
|
41
|
+
* @param minimumPriceDecayHalfLifeSeconds minimum price decay half life
|
|
42
|
+
* for new auctions, in seconds
|
|
43
|
+
*/
|
|
44
|
+
event AuctionMinHalfLifeSecondsUpdated(
|
|
45
|
+
uint256 minimumPriceDecayHalfLifeSeconds
|
|
46
|
+
);
|
|
47
|
+
|
|
48
|
+
// position of DA Exp Lib storage, using a diamond storage pattern
|
|
49
|
+
// for this library
|
|
50
|
+
bytes32 constant DAE_EXP_LIB_STORAGE_POSITION =
|
|
51
|
+
keccak256("daexplib.storage");
|
|
52
|
+
|
|
53
|
+
struct DAProjectConfig {
|
|
54
|
+
// @dev max uint40 ~= 1.1e12 sec ~= 34 thousand years
|
|
55
|
+
uint40 timestampStart;
|
|
56
|
+
uint40 priceDecayHalfLifeSeconds;
|
|
57
|
+
// @dev max uint88 ~= 3e26 Wei = ~300 million ETH, which is well above
|
|
58
|
+
// the expected prices of any NFT mint in the foreseeable future.
|
|
59
|
+
uint88 startPrice;
|
|
60
|
+
uint88 basePrice;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// Diamond storage pattern is used in this library
|
|
64
|
+
struct DAExpLibStorage {
|
|
65
|
+
mapping(address coreContract => mapping(uint256 projectId => DAProjectConfig)) DAProjectConfigs_;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* @notice Sets auction details for an exponential-price auction type.
|
|
70
|
+
* @dev The function sets the auction start timestamp, price decay
|
|
71
|
+
* half-life, starting, and base prices for an exponential-price auction.
|
|
72
|
+
* @dev Minter implementations should ensure that any additional guard-
|
|
73
|
+
* rails are properly checked outside of this function. For example, the
|
|
74
|
+
* minter should check that _priceDecayHalfLifeSeconds is greater than the
|
|
75
|
+
* minter's minimum allowable value for price decay half-life (if the
|
|
76
|
+
* minter chooses to include that guard-rail).
|
|
77
|
+
* @param projectId The project Id to set auction details for.
|
|
78
|
+
* @param coreContract The core contract address to set auction details.
|
|
79
|
+
* @param auctionTimestampStart The timestamp when the auction will start.
|
|
80
|
+
* @param priceDecayHalfLifeSeconds The half-life time for price decay in
|
|
81
|
+
* seconds.
|
|
82
|
+
* @param startPrice The starting price of the auction.
|
|
83
|
+
* @param basePrice The base price of the auction.
|
|
84
|
+
* @param allowReconfigureAfterStart Bool indicating whether the auction
|
|
85
|
+
* can be reconfigured after it has started. This is sometimes useful for
|
|
86
|
+
* minter implementations that want to allow an artist to reconfigure the
|
|
87
|
+
* auction after it has reached minter-local max invocations, for example.
|
|
88
|
+
*/
|
|
89
|
+
function setAuctionDetailsExp(
|
|
90
|
+
uint256 projectId,
|
|
91
|
+
address coreContract,
|
|
92
|
+
uint40 auctionTimestampStart,
|
|
93
|
+
uint40 priceDecayHalfLifeSeconds,
|
|
94
|
+
uint88 startPrice,
|
|
95
|
+
uint88 basePrice,
|
|
96
|
+
bool allowReconfigureAfterStart
|
|
97
|
+
) internal {
|
|
98
|
+
DAProjectConfig storage DAProjectConfig_ = getDAProjectConfig({
|
|
99
|
+
projectId: projectId,
|
|
100
|
+
coreContract: coreContract
|
|
101
|
+
});
|
|
102
|
+
require(
|
|
103
|
+
DAProjectConfig_.timestampStart == 0 || // uninitialized
|
|
104
|
+
block.timestamp < DAProjectConfig_.timestampStart || // auction not yet started
|
|
105
|
+
allowReconfigureAfterStart, // specifically allowing reconfiguration after start
|
|
106
|
+
"No modifications mid-auction"
|
|
107
|
+
);
|
|
108
|
+
require(
|
|
109
|
+
block.timestamp < auctionTimestampStart,
|
|
110
|
+
"Only future auctions"
|
|
111
|
+
);
|
|
112
|
+
require(
|
|
113
|
+
startPrice > basePrice,
|
|
114
|
+
"Auction start price must be greater than auction end price"
|
|
115
|
+
);
|
|
116
|
+
|
|
117
|
+
// EFFECTS
|
|
118
|
+
DAProjectConfig_.timestampStart = auctionTimestampStart;
|
|
119
|
+
DAProjectConfig_.priceDecayHalfLifeSeconds = priceDecayHalfLifeSeconds;
|
|
120
|
+
DAProjectConfig_.startPrice = startPrice;
|
|
121
|
+
DAProjectConfig_.basePrice = basePrice;
|
|
122
|
+
|
|
123
|
+
emit SetAuctionDetailsExp({
|
|
124
|
+
projectId: projectId,
|
|
125
|
+
coreContract: coreContract,
|
|
126
|
+
auctionTimestampStart: auctionTimestampStart,
|
|
127
|
+
priceDecayHalfLifeSeconds: priceDecayHalfLifeSeconds,
|
|
128
|
+
startPrice: startPrice,
|
|
129
|
+
basePrice: basePrice
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
function resetAuctionDetails(
|
|
134
|
+
uint256 projectId,
|
|
135
|
+
address coreContract
|
|
136
|
+
) internal {
|
|
137
|
+
DAProjectConfig storage DAProjectConfig_ = getDAProjectConfig({
|
|
138
|
+
projectId: projectId,
|
|
139
|
+
coreContract: coreContract
|
|
140
|
+
});
|
|
141
|
+
|
|
142
|
+
DAProjectConfig_.timestampStart = 0;
|
|
143
|
+
DAProjectConfig_.priceDecayHalfLifeSeconds = 0;
|
|
144
|
+
DAProjectConfig_.startPrice = 0;
|
|
145
|
+
DAProjectConfig_.basePrice = 0;
|
|
146
|
+
|
|
147
|
+
emit DALib.ResetAuctionDetails({
|
|
148
|
+
projectId: projectId,
|
|
149
|
+
coreContract: coreContract
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* @notice Gets price of minting a token given the project's
|
|
155
|
+
* DAProjectConfig.
|
|
156
|
+
* This function reverts if auction has not yet started, or if auction is
|
|
157
|
+
* unconfigured, which is relied upon by certain minter implications for
|
|
158
|
+
* security.
|
|
159
|
+
* @param projectId Project Id to get price for
|
|
160
|
+
* @param coreContract Core contract address to get price for
|
|
161
|
+
* @return uint256 current price of token in Wei
|
|
162
|
+
*/
|
|
163
|
+
function getPriceExp(
|
|
164
|
+
uint256 projectId,
|
|
165
|
+
address coreContract
|
|
166
|
+
) internal view returns (uint256) {
|
|
167
|
+
DAProjectConfig storage DAProjectConfig_ = getDAProjectConfig({
|
|
168
|
+
projectId: projectId,
|
|
169
|
+
coreContract: coreContract
|
|
170
|
+
});
|
|
171
|
+
// move parameters to memory if used more than once
|
|
172
|
+
uint256 timestampStart = DAProjectConfig_.timestampStart;
|
|
173
|
+
uint256 priceDecayHalfLifeSeconds = DAProjectConfig_
|
|
174
|
+
.priceDecayHalfLifeSeconds;
|
|
175
|
+
|
|
176
|
+
require(block.timestamp >= timestampStart, "Auction not yet started");
|
|
177
|
+
require(priceDecayHalfLifeSeconds > 0, "Only configured auctions");
|
|
178
|
+
uint256 decayedPrice = DAProjectConfig_.startPrice;
|
|
179
|
+
uint256 elapsedTimeSeconds;
|
|
180
|
+
unchecked {
|
|
181
|
+
// already checked that block.timestamp > _timestampStart above
|
|
182
|
+
elapsedTimeSeconds = block.timestamp - timestampStart;
|
|
183
|
+
}
|
|
184
|
+
// Divide by two (via bit-shifting) for the number of entirely completed
|
|
185
|
+
// half-lives that have elapsed since auction start time.
|
|
186
|
+
unchecked {
|
|
187
|
+
// already required priceDecayHalfLifeSeconds > 0
|
|
188
|
+
decayedPrice >>= elapsedTimeSeconds / priceDecayHalfLifeSeconds;
|
|
189
|
+
}
|
|
190
|
+
// Perform a linear interpolation between partial half-life points, to
|
|
191
|
+
// approximate the current place on a perfect exponential decay curve.
|
|
192
|
+
unchecked {
|
|
193
|
+
// value of expression is provably always less than decayedPrice,
|
|
194
|
+
// so no underflow is possible when the subtraction assignment
|
|
195
|
+
// operator is used on decayedPrice.
|
|
196
|
+
decayedPrice -=
|
|
197
|
+
((decayedPrice *
|
|
198
|
+
(elapsedTimeSeconds % priceDecayHalfLifeSeconds)) /
|
|
199
|
+
priceDecayHalfLifeSeconds) >>
|
|
200
|
+
1; // divide by 2 via bitshift 1
|
|
201
|
+
}
|
|
202
|
+
uint256 basePrice = DAProjectConfig_.basePrice;
|
|
203
|
+
if (decayedPrice < basePrice) {
|
|
204
|
+
// Price may not decay below stay `basePrice`.
|
|
205
|
+
return basePrice;
|
|
206
|
+
}
|
|
207
|
+
return decayedPrice;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
/**
|
|
211
|
+
* Gets auction base price for project `projectId` on core contract
|
|
212
|
+
* `coreContract`.
|
|
213
|
+
* @param projectId Project Id to get price for
|
|
214
|
+
* @param coreContract Core contract address to get price for
|
|
215
|
+
*/
|
|
216
|
+
function getAuctionBasePrice(
|
|
217
|
+
uint256 projectId,
|
|
218
|
+
address coreContract
|
|
219
|
+
) internal view returns (uint256) {
|
|
220
|
+
return
|
|
221
|
+
getDAProjectConfig({
|
|
222
|
+
projectId: projectId,
|
|
223
|
+
coreContract: coreContract
|
|
224
|
+
}).basePrice;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
/**
|
|
228
|
+
* Loads the DAProjectConfig for a given project and core contract.
|
|
229
|
+
* @param projectId Project Id to get config for
|
|
230
|
+
* @param coreContract Core contract address to get config for
|
|
231
|
+
*/
|
|
232
|
+
function getDAProjectConfig(
|
|
233
|
+
uint256 projectId,
|
|
234
|
+
address coreContract
|
|
235
|
+
) internal view returns (DAProjectConfig storage) {
|
|
236
|
+
return s().DAProjectConfigs_[coreContract][projectId];
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
/**
|
|
240
|
+
* @notice Return the storage struct for reading and writing. This library
|
|
241
|
+
* uses a diamond storage pattern when managing storage.
|
|
242
|
+
* @return storageStruct The DAExpLibStorage struct.
|
|
243
|
+
*/
|
|
244
|
+
function s() internal pure returns (DAExpLibStorage storage storageStruct) {
|
|
245
|
+
bytes32 position = DAE_EXP_LIB_STORAGE_POSITION;
|
|
246
|
+
assembly ("memory-safe") {
|
|
247
|
+
storageStruct.slot := position
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
// Created By: Art Blocks Inc.
|
|
3
|
+
|
|
4
|
+
pragma solidity ^0.8.0;
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* @title Art Blocks Dutch Auction (exponential price curve) Library
|
|
8
|
+
* @notice This library is designed to implement logic and checks for Art
|
|
9
|
+
* Blocks projects using an exponential Dutch auctionprice curve for minting
|
|
10
|
+
* tokens.
|
|
11
|
+
* @author Art Blocks Inc.
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
library DALib {
|
|
15
|
+
/**
|
|
16
|
+
* @notice Auction details cleared for project `projectId` on core contract
|
|
17
|
+
* `coreContract`.
|
|
18
|
+
* @param projectId Project Id for which auction details were cleared
|
|
19
|
+
* @param coreContract Core contract address for which auction details were
|
|
20
|
+
* cleared
|
|
21
|
+
*/
|
|
22
|
+
event ResetAuctionDetails(
|
|
23
|
+
uint256 indexed projectId,
|
|
24
|
+
address indexed coreContract
|
|
25
|
+
);
|
|
26
|
+
}
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
// Created By: Art Blocks Inc.
|
|
3
|
+
|
|
4
|
+
pragma solidity ^0.8.0;
|
|
5
|
+
|
|
6
|
+
import {DALib} from "./DALib.sol";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @title Art Blocks Dutch Auction (linear price curve) Library
|
|
10
|
+
* @notice This library is designed to implement logic and checks for Art
|
|
11
|
+
* Blocks projects using an linear Dutch auctionprice curve for minting
|
|
12
|
+
* tokens.
|
|
13
|
+
* @author Art Blocks Inc.
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
library DALinLib {
|
|
17
|
+
/**
|
|
18
|
+
* @notice Auction details set for project `projectId` on core contract
|
|
19
|
+
* `coreContract`.
|
|
20
|
+
* @param projectId Project Id for which auction details were set
|
|
21
|
+
* @param coreContract Core contract address for which auction details were
|
|
22
|
+
* set
|
|
23
|
+
* @param auctionTimestampStart Timestamp when auction will start
|
|
24
|
+
* @param auctionTimestampEnd Timestamp when auction will end
|
|
25
|
+
* @param startPrice Start price of auction
|
|
26
|
+
* @param basePrice Base price of auction (end price)
|
|
27
|
+
*/
|
|
28
|
+
event SetAuctionDetailsLin(
|
|
29
|
+
uint256 indexed projectId,
|
|
30
|
+
address indexed coreContract,
|
|
31
|
+
uint40 auctionTimestampStart,
|
|
32
|
+
uint40 auctionTimestampEnd,
|
|
33
|
+
uint256 startPrice,
|
|
34
|
+
uint256 basePrice
|
|
35
|
+
);
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* @notice Minimum allowed auction length updated to
|
|
39
|
+
* `minimumAuctionLengthSeconds` on the minter.
|
|
40
|
+
* @param minimumAuctionLengthSeconds minimum auction length for new
|
|
41
|
+
* auctions, in seconds
|
|
42
|
+
*/
|
|
43
|
+
event AuctionMinimumLengthSecondsUpdated(
|
|
44
|
+
uint256 minimumAuctionLengthSeconds
|
|
45
|
+
);
|
|
46
|
+
|
|
47
|
+
// position of DA Lin Lib storage, using a diamond storage pattern
|
|
48
|
+
// for this library
|
|
49
|
+
bytes32 constant DAE_LIN_LIB_STORAGE_POSITION =
|
|
50
|
+
keccak256("dalinlib.storage");
|
|
51
|
+
|
|
52
|
+
struct DAProjectConfig {
|
|
53
|
+
// @dev max uint40 ~= 1.1e12 sec ~= 34 thousand years
|
|
54
|
+
uint40 timestampStart;
|
|
55
|
+
uint40 timestampEnd;
|
|
56
|
+
// @dev max uint88 ~= 3e26 Wei = ~300 million ETH, which is well above
|
|
57
|
+
// the expected prices of any NFT mint in the foreseeable future.
|
|
58
|
+
uint88 startPrice;
|
|
59
|
+
uint88 basePrice;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// Diamond storage pattern is used in this library
|
|
63
|
+
struct DALinLibStorage {
|
|
64
|
+
mapping(address coreContract => mapping(uint256 projectId => DAProjectConfig)) DAProjectConfigs_;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* @notice Sets auction details for a linear-price auction type.
|
|
69
|
+
* @dev The function sets the auction start timestamp, auction end
|
|
70
|
+
* timestamp, starting, and base prices for a linear-price auction.
|
|
71
|
+
* @dev Minter implementations should ensure that any additional guard-
|
|
72
|
+
* rails are properly checked outside of this function. For example, the
|
|
73
|
+
* minter should check that auction length is greater than the minter's
|
|
74
|
+
* minimum allowable value (if the minter chooses to include that guard-
|
|
75
|
+
* rail).
|
|
76
|
+
* @param projectId The project Id to set auction details for.
|
|
77
|
+
* @param coreContract The core contract address to set auction details.
|
|
78
|
+
* @param auctionTimestampStart The timestamp when the auction will start.
|
|
79
|
+
* @param auctionTimestampEnd The timestamp when the auction will end.
|
|
80
|
+
* @param startPrice The starting price of the auction.
|
|
81
|
+
* @param basePrice The base price of the auction.
|
|
82
|
+
* @param allowReconfigureAfterStart Bool indicating whether the auction
|
|
83
|
+
* can be reconfigured after it has started. This is sometimes useful for
|
|
84
|
+
* minter implementations that want to allow an artist to reconfigure the
|
|
85
|
+
* auction after it has reached minter-local max invocations, for example.
|
|
86
|
+
*/
|
|
87
|
+
function setAuctionDetailsLin(
|
|
88
|
+
uint256 projectId,
|
|
89
|
+
address coreContract,
|
|
90
|
+
uint40 auctionTimestampStart,
|
|
91
|
+
uint40 auctionTimestampEnd,
|
|
92
|
+
uint88 startPrice,
|
|
93
|
+
uint88 basePrice,
|
|
94
|
+
bool allowReconfigureAfterStart
|
|
95
|
+
) internal {
|
|
96
|
+
DAProjectConfig storage DAProjectConfig_ = getDAProjectConfig({
|
|
97
|
+
projectId: projectId,
|
|
98
|
+
coreContract: coreContract
|
|
99
|
+
});
|
|
100
|
+
require(
|
|
101
|
+
DAProjectConfig_.timestampStart == 0 || // uninitialized
|
|
102
|
+
block.timestamp < DAProjectConfig_.timestampStart || // auction not yet started
|
|
103
|
+
allowReconfigureAfterStart, // specifically allowing reconfiguration after start
|
|
104
|
+
"No modifications mid-auction"
|
|
105
|
+
);
|
|
106
|
+
require(
|
|
107
|
+
block.timestamp < auctionTimestampStart,
|
|
108
|
+
"Only future auctions"
|
|
109
|
+
);
|
|
110
|
+
require(
|
|
111
|
+
startPrice > basePrice,
|
|
112
|
+
"Auction start price must be greater than auction end price"
|
|
113
|
+
);
|
|
114
|
+
|
|
115
|
+
// EFFECTS
|
|
116
|
+
DAProjectConfig_.timestampStart = auctionTimestampStart;
|
|
117
|
+
DAProjectConfig_.timestampEnd = auctionTimestampEnd;
|
|
118
|
+
DAProjectConfig_.startPrice = startPrice;
|
|
119
|
+
DAProjectConfig_.basePrice = basePrice;
|
|
120
|
+
|
|
121
|
+
emit SetAuctionDetailsLin({
|
|
122
|
+
projectId: projectId,
|
|
123
|
+
coreContract: coreContract,
|
|
124
|
+
auctionTimestampStart: auctionTimestampStart,
|
|
125
|
+
auctionTimestampEnd: auctionTimestampEnd,
|
|
126
|
+
startPrice: startPrice,
|
|
127
|
+
basePrice: basePrice
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
function resetAuctionDetails(
|
|
132
|
+
uint256 projectId,
|
|
133
|
+
address coreContract
|
|
134
|
+
) internal {
|
|
135
|
+
DAProjectConfig storage DAProjectConfig_ = getDAProjectConfig({
|
|
136
|
+
projectId: projectId,
|
|
137
|
+
coreContract: coreContract
|
|
138
|
+
});
|
|
139
|
+
|
|
140
|
+
DAProjectConfig_.timestampStart = 0;
|
|
141
|
+
DAProjectConfig_.timestampEnd = 0;
|
|
142
|
+
DAProjectConfig_.startPrice = 0;
|
|
143
|
+
DAProjectConfig_.basePrice = 0;
|
|
144
|
+
|
|
145
|
+
emit DALib.ResetAuctionDetails({
|
|
146
|
+
projectId: projectId,
|
|
147
|
+
coreContract: coreContract
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* @notice Gets price of minting a token given the project's
|
|
153
|
+
* DAProjectConfig.
|
|
154
|
+
* This function reverts if auction has not yet started, or if auction is
|
|
155
|
+
* unconfigured.
|
|
156
|
+
* @param projectId Project Id to get price for
|
|
157
|
+
* @param coreContract Core contract address to get price for
|
|
158
|
+
* @return current price of token in Wei
|
|
159
|
+
*/
|
|
160
|
+
function getPriceLin(
|
|
161
|
+
uint256 projectId,
|
|
162
|
+
address coreContract
|
|
163
|
+
) internal view returns (uint256) {
|
|
164
|
+
DAProjectConfig storage _DAProjectConfig = getDAProjectConfig({
|
|
165
|
+
projectId: projectId,
|
|
166
|
+
coreContract: coreContract
|
|
167
|
+
});
|
|
168
|
+
// move parameters to memory if used more than once
|
|
169
|
+
uint256 timestampStart = _DAProjectConfig.timestampStart;
|
|
170
|
+
uint256 timestampEnd = _DAProjectConfig.timestampEnd;
|
|
171
|
+
uint256 startPrice = _DAProjectConfig.startPrice;
|
|
172
|
+
uint256 basePrice = _DAProjectConfig.basePrice;
|
|
173
|
+
|
|
174
|
+
require(block.timestamp > timestampStart, "Auction not yet started");
|
|
175
|
+
if (block.timestamp >= timestampEnd) {
|
|
176
|
+
require(timestampEnd > 0, "Only configured auctions");
|
|
177
|
+
return basePrice;
|
|
178
|
+
}
|
|
179
|
+
uint256 elapsedTime;
|
|
180
|
+
uint256 duration;
|
|
181
|
+
uint256 startToEndDiff;
|
|
182
|
+
unchecked {
|
|
183
|
+
// already checked that block.timestamp > _timestampStart
|
|
184
|
+
elapsedTime = block.timestamp - timestampStart;
|
|
185
|
+
// _timestampEnd > _timestampStart enforced during assignment
|
|
186
|
+
duration = timestampEnd - timestampStart;
|
|
187
|
+
// _startPrice > _basePrice enforced during assignment
|
|
188
|
+
startToEndDiff = startPrice - basePrice;
|
|
189
|
+
}
|
|
190
|
+
return startPrice - ((elapsedTime * startToEndDiff) / duration);
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* Loads the DAProjectConfig for a given project and core contract.
|
|
195
|
+
* @param projectId Project Id to get config for
|
|
196
|
+
* @param coreContract Core contract address to get config for
|
|
197
|
+
*/
|
|
198
|
+
function getDAProjectConfig(
|
|
199
|
+
uint256 projectId,
|
|
200
|
+
address coreContract
|
|
201
|
+
) internal view returns (DAProjectConfig storage) {
|
|
202
|
+
return s().DAProjectConfigs_[coreContract][projectId];
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
/**
|
|
206
|
+
* @notice Return the storage struct for reading and writing. This library
|
|
207
|
+
* uses a diamond storage pattern when managing storage.
|
|
208
|
+
* @return storageStruct The DALinLibStorage struct.
|
|
209
|
+
*/
|
|
210
|
+
function s() internal pure returns (DALinLibStorage storage storageStruct) {
|
|
211
|
+
bytes32 position = DAE_LIN_LIB_STORAGE_POSITION;
|
|
212
|
+
assembly ("memory-safe") {
|
|
213
|
+
storageStruct.slot := position
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
// Created By: Art Blocks Inc.
|
|
3
|
+
|
|
4
|
+
pragma solidity ^0.8.0;
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* @title Art Blocks Generic Events Library
|
|
8
|
+
* @notice This library is designed to define a set of generic events that all
|
|
9
|
+
* shared minter libraries may utilize to populate indexed extra minter details
|
|
10
|
+
* @dev Strings not supported. Recommend conversion of (short) strings to
|
|
11
|
+
* bytes32 to remain gas-efficient.
|
|
12
|
+
* @author Art Blocks Inc.
|
|
13
|
+
*/
|
|
14
|
+
library GenericMinterEventsLib {
|
|
15
|
+
/**
|
|
16
|
+
* @notice Generic project minter configuration event. Removes key `key`
|
|
17
|
+
* for project `projectId`.
|
|
18
|
+
* @param projectId Project ID to remove key for
|
|
19
|
+
* @param coreContract Core contract address that projectId is on
|
|
20
|
+
* @param key Key to remove
|
|
21
|
+
*/
|
|
22
|
+
event ConfigKeyRemoved(
|
|
23
|
+
uint256 indexed projectId,
|
|
24
|
+
address indexed coreContract,
|
|
25
|
+
bytes32 key
|
|
26
|
+
);
|
|
27
|
+
/// BOOL
|
|
28
|
+
/**
|
|
29
|
+
* @notice Generic project minter configuration event. Sets value of key
|
|
30
|
+
* `key` to `value` for project `projectId`.
|
|
31
|
+
* @param projectId Project ID to set key for
|
|
32
|
+
* @param coreContract Core contract address that projectId is on
|
|
33
|
+
* @param key Key to set
|
|
34
|
+
* @param value Value to set key to
|
|
35
|
+
*/
|
|
36
|
+
event ConfigValueSet(
|
|
37
|
+
uint256 indexed projectId,
|
|
38
|
+
address indexed coreContract,
|
|
39
|
+
bytes32 key,
|
|
40
|
+
bool value
|
|
41
|
+
);
|
|
42
|
+
/// UINT256
|
|
43
|
+
/**
|
|
44
|
+
* @notice Generic project minter configuration event. Sets value of key
|
|
45
|
+
* `key` to `value` for project `projectId`.
|
|
46
|
+
* @param projectId Project ID to set key for
|
|
47
|
+
* @param coreContract Core contract address that projectId is on
|
|
48
|
+
* @param key Key to set
|
|
49
|
+
* @param value Value to set key to
|
|
50
|
+
*/
|
|
51
|
+
event ConfigValueSet(
|
|
52
|
+
uint256 indexed projectId,
|
|
53
|
+
address indexed coreContract,
|
|
54
|
+
bytes32 key,
|
|
55
|
+
uint256 value
|
|
56
|
+
);
|
|
57
|
+
/**
|
|
58
|
+
* @notice Generic project minter configuration event. Adds value `value`
|
|
59
|
+
* to the set of uint256 at key `key` for project `projectId`.
|
|
60
|
+
* @param projectId Project ID to set key for
|
|
61
|
+
* @param coreContract Core contract address that projectId is on
|
|
62
|
+
* @param key Key to modify
|
|
63
|
+
* @param value Value to add to the key's set
|
|
64
|
+
*/
|
|
65
|
+
event ConfigValueAddedToSet(
|
|
66
|
+
uint256 indexed projectId,
|
|
67
|
+
address indexed coreContract,
|
|
68
|
+
bytes32 key,
|
|
69
|
+
uint256 value
|
|
70
|
+
);
|
|
71
|
+
/**
|
|
72
|
+
* @notice Generic project minter configuration event. Removes value
|
|
73
|
+
* `value` to the set of uint256 at key `key` for project `projectId`.
|
|
74
|
+
* @param projectId Project ID to set key for
|
|
75
|
+
* @param coreContract Core contract address that projectId is on
|
|
76
|
+
* @param key Key to modify
|
|
77
|
+
* @param value Value removed from the key's set
|
|
78
|
+
*/
|
|
79
|
+
event ConfigValueRemovedFromSet(
|
|
80
|
+
uint256 indexed projectId,
|
|
81
|
+
address indexed coreContract,
|
|
82
|
+
bytes32 key,
|
|
83
|
+
uint256 value
|
|
84
|
+
);
|
|
85
|
+
/// ADDRESS
|
|
86
|
+
/**
|
|
87
|
+
* @notice Generic project minter configuration event. Sets value of key
|
|
88
|
+
* `key` to `value` for project `projectId`.
|
|
89
|
+
* @param projectId Project ID to set key for
|
|
90
|
+
* @param coreContract Core contract address that projectId is on
|
|
91
|
+
* @param key Key to set
|
|
92
|
+
* @param value Value to set key to
|
|
93
|
+
*/
|
|
94
|
+
event ConfigValueSet(
|
|
95
|
+
uint256 indexed projectId,
|
|
96
|
+
address indexed coreContract,
|
|
97
|
+
bytes32 key,
|
|
98
|
+
address value
|
|
99
|
+
);
|
|
100
|
+
/**
|
|
101
|
+
* @notice Generic project minter configuration event. Adds value `value`
|
|
102
|
+
* to the set of addresses at key `key` for project `projectId`.
|
|
103
|
+
* @param projectId Project ID to set key for
|
|
104
|
+
* @param coreContract Core contract address that projectId is on
|
|
105
|
+
* @param key Key to modify
|
|
106
|
+
* @param value Value to add to the key's set
|
|
107
|
+
*/
|
|
108
|
+
event ConfigValueAddedToSet(
|
|
109
|
+
uint256 indexed projectId,
|
|
110
|
+
address indexed coreContract,
|
|
111
|
+
bytes32 key,
|
|
112
|
+
address value
|
|
113
|
+
);
|
|
114
|
+
/**
|
|
115
|
+
* @notice Generic project minter configuration event. Removes value
|
|
116
|
+
* `value` to the set of addresses at key `key` for project `projectId`.
|
|
117
|
+
* @param projectId Project ID to set key for
|
|
118
|
+
* @param coreContract Core contract address that projectId is on
|
|
119
|
+
* @param key Key to modify
|
|
120
|
+
* @param value Value removed from the key's set
|
|
121
|
+
*/
|
|
122
|
+
event ConfigValueRemovedFromSet(
|
|
123
|
+
uint256 indexed projectId,
|
|
124
|
+
address indexed coreContract,
|
|
125
|
+
bytes32 key,
|
|
126
|
+
address value
|
|
127
|
+
);
|
|
128
|
+
/// BYTES32
|
|
129
|
+
/**
|
|
130
|
+
* @notice Generic project minter configuration event. Sets value of key
|
|
131
|
+
* `key` to `value` for project `projectId`.
|
|
132
|
+
* @param projectId Project ID to set key for
|
|
133
|
+
* @param coreContract Core contract address that projectId is on
|
|
134
|
+
* @param key Key to set
|
|
135
|
+
* @param value Value to set key to
|
|
136
|
+
*/
|
|
137
|
+
event ConfigValueSet(
|
|
138
|
+
uint256 indexed projectId,
|
|
139
|
+
address indexed coreContract,
|
|
140
|
+
bytes32 key,
|
|
141
|
+
bytes32 value
|
|
142
|
+
);
|
|
143
|
+
/**
|
|
144
|
+
* @notice Generic project minter configuration event. Adds value `value`
|
|
145
|
+
* to the set of bytes32 at key `key` for project `projectId`.
|
|
146
|
+
* @param projectId Project ID to set key for
|
|
147
|
+
* @param coreContract Core contract address that projectId is on
|
|
148
|
+
* @param key Key to modify
|
|
149
|
+
* @param value Value to add to the key's set
|
|
150
|
+
*/
|
|
151
|
+
event ConfigValueAddedToSet(
|
|
152
|
+
uint256 indexed projectId,
|
|
153
|
+
address indexed coreContract,
|
|
154
|
+
bytes32 key,
|
|
155
|
+
bytes32 value
|
|
156
|
+
);
|
|
157
|
+
/**
|
|
158
|
+
* @notice Generic project minter configuration event. Removes value
|
|
159
|
+
* `value` to the set of bytes32 at key `key` for project `projectId`.
|
|
160
|
+
* @param projectId Project ID to set key for
|
|
161
|
+
* @param coreContract Core contract address that projectId is on
|
|
162
|
+
* @param key Key to modify
|
|
163
|
+
* @param value Value removed from the key's set
|
|
164
|
+
*/
|
|
165
|
+
event ConfigValueRemovedFromSet(
|
|
166
|
+
uint256 indexed projectId,
|
|
167
|
+
address indexed coreContract,
|
|
168
|
+
bytes32 key,
|
|
169
|
+
bytes32 value
|
|
170
|
+
);
|
|
171
|
+
}
|