@artblocks/contracts 0.0.1
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/.env.example +10 -0
- package/LICENSE +165 -0
- package/README.md +286 -0
- package/artifacts/contracts/AdminACLV0.sol/AdminACLV0.json +164 -0
- package/artifacts/contracts/AdminACLV1.sol/AdminACLV1.json +248 -0
- package/artifacts/contracts/BasicRandomizer.sol/BasicRandomizer.json +24 -0
- package/artifacts/contracts/BasicRandomizerV2.sol/BasicRandomizerV2.json +102 -0
- package/artifacts/contracts/DependencyRegistryV0.sol/DependencyRegistryV0.json +1020 -0
- package/artifacts/contracts/GenArt721CoreV3.sol/GenArt721CoreV3.json +1928 -0
- package/artifacts/contracts/GenArt721CoreV3_Engine.sol/GenArt721CoreV3_Engine.json +1942 -0
- package/artifacts/contracts/engine/GenArt721CoreV2_ENGINE_FLEX.sol/GenArt721CoreV2_ENGINE_FLEX.json +1708 -0
- package/artifacts/contracts/engine/GenArt721CoreV2_PBAB.sol/GenArt721CoreV2_PBAB.json +1410 -0
- package/artifacts/contracts/engine/GenArt721CoreV2_PRTNR.sol/GenArt721CoreV2_PRTNR.json +1436 -0
- package/artifacts/contracts/engine/GenArt721MinterBurner_PBAB.sol/GenArt721MinterBurner_PBAB.json +437 -0
- package/artifacts/contracts/engine/GenArt721MinterDAExp_PBAB.sol/GenArt721MinterDAExp_PBAB.json +508 -0
- package/artifacts/contracts/engine/GenArt721Minter_PBAB.sol/GenArt721Minter_PBAB.json +381 -0
- package/artifacts/contracts/engine-registry/EngineRegistryV0.sol/EngineRegistryV0.json +109 -0
- package/artifacts/contracts/engine-registry/future/EngineRegistryV1.sol/EngineRegistryV1.json +109 -0
- package/artifacts/contracts/explorations/GenArt721CoreV3_Explorations.sol/GenArt721CoreV3_Explorations.json +1902 -0
- package/artifacts/contracts/interfaces/0.5.x/IBonusContract.sol/IBonusContract.json +47 -0
- package/artifacts/contracts/interfaces/0.5.x/IGenArt721CoreContractV1.sol/IGenArt721CoreContractV1.json +413 -0
- package/artifacts/contracts/interfaces/0.5.x/IGenArt721CoreV2_PBAB.sol/IGenArt721CoreV2_PBAB.json +392 -0
- package/artifacts/contracts/interfaces/0.5.x/IRandomizer.sol/IRandomizer.json +26 -0
- package/artifacts/contracts/interfaces/0.8.x/IAdminACLV0.sol/IAdminACLV0.json +122 -0
- package/artifacts/contracts/interfaces/0.8.x/IArtblocksRoyaltyOverride.sol/IArtblocksRoyaltyOverride.json +59 -0
- package/artifacts/contracts/interfaces/0.8.x/IBonusContract.sol/IBonusContract.json +43 -0
- package/artifacts/contracts/interfaces/0.8.x/IDelegationRegistry.sol/IDelegationRegistry.json +510 -0
- package/artifacts/contracts/interfaces/0.8.x/IDependencyRegistryCompatibleV0.sol/IDependencyRegistryCompatibleV0.json +53 -0
- package/artifacts/contracts/interfaces/0.8.x/IDependencyRegistryV0.sol/IDependencyRegistryV0.json +350 -0
- package/artifacts/contracts/interfaces/0.8.x/IEngineRegistryV0.sol/IEngineRegistryV0.json +85 -0
- package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterDAExpSettlementV0.sol/IFilteredMinterDAExpSettlementV0.json +730 -0
- package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterDAExpV0.sol/IFilteredMinterDAExpV0.json +311 -0
- package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterDAExpV1.sol/IFilteredMinterDAExpV1.json +617 -0
- package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterDALinV0.sol/IFilteredMinterDALinV0.json +292 -0
- package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterDALinV1.sol/IFilteredMinterDALinV1.json +598 -0
- package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterHolderV0.sol/IFilteredMinterHolderV0.json +355 -0
- package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterHolderV1.sol/IFilteredMinterHolderV1.json +368 -0
- package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterHolderV2.sol/IFilteredMinterHolderV2.json +674 -0
- package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterMerkleV0.sol/IFilteredMinterMerkleV0.json +551 -0
- package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterMerkleV1.sol/IFilteredMinterMerkleV1.json +564 -0
- package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterMerkleV2.sol/IFilteredMinterMerkleV2.json +601 -0
- package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterV0.sol/IFilteredMinterV0.json +216 -0
- package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterV1.sol/IFilteredMinterV1.json +485 -0
- package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterV2.sol/IFilteredMinterV2.json +522 -0
- package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreContractV1.sol/IGenArt721CoreContractV1.json +299 -0
- package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreContractV3.sol/IGenArt721CoreContractV3.json +609 -0
- package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Base.sol/IGenArt721CoreContractV3_Base.json +448 -0
- package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Engine.sol/IGenArt721CoreContractV3_Engine.json +649 -0
- package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreV2_PBAB.sol/IGenArt721CoreV2_PBAB.json +362 -0
- package/artifacts/contracts/interfaces/0.8.x/IManifold.sol/IManifold.json +35 -0
- package/artifacts/contracts/interfaces/0.8.x/IMinterFilterV0.sol/IMinterFilterV0.json +192 -0
- package/artifacts/contracts/interfaces/0.8.x/IRandomizer.sol/IRandomizer.json +24 -0
- package/artifacts/contracts/interfaces/0.8.x/IRandomizerV2.sol/IRandomizerV2.json +37 -0
- package/artifacts/contracts/legacy/GenArt721CoreV1.sol/Address.json +10 -0
- package/artifacts/contracts/legacy/GenArt721CoreV1.sol/Counters.json +10 -0
- package/artifacts/contracts/legacy/GenArt721CoreV1.sol/CustomERC721Metadata.json +425 -0
- package/artifacts/contracts/legacy/GenArt721CoreV1.sol/ERC165.json +38 -0
- package/artifacts/contracts/legacy/GenArt721CoreV1.sol/ERC721.json +322 -0
- package/artifacts/contracts/legacy/GenArt721CoreV1.sol/ERC721Enumerable.json +384 -0
- package/artifacts/contracts/legacy/GenArt721CoreV1.sol/GenArt721CoreV1.json +1773 -0
- package/artifacts/contracts/legacy/GenArt721CoreV1.sol/IERC165.json +32 -0
- package/artifacts/contracts/legacy/GenArt721CoreV1.sol/IERC721.json +316 -0
- package/artifacts/contracts/legacy/GenArt721CoreV1.sol/IERC721Enumerable.json +378 -0
- package/artifacts/contracts/legacy/GenArt721CoreV1.sol/IERC721Receiver.json +47 -0
- package/artifacts/contracts/legacy/GenArt721CoreV1.sol/SafeMath.json +10 -0
- package/artifacts/contracts/legacy/GenArt721CoreV1.sol/Strings.json +10 -0
- package/artifacts/contracts/legacy/GenArt721LegacyMinter.sol/GenArt721LegacyMinter.json +338 -0
- package/artifacts/contracts/libs/0.5.x/CustomERC721Metadata.sol/CustomERC721Metadata.json +425 -0
- package/artifacts/contracts/libs/0.5.x/IERC20.sol/IERC20.json +206 -0
- package/artifacts/contracts/libs/0.5.x/SafeMath.sol/SafeMath.json +10 -0
- package/artifacts/contracts/libs/0.5.x/Strings.sol/Strings.json +10 -0
- package/artifacts/contracts/libs/0.8.x/BytecodeStorage.sol/BytecodeStorage.json +10 -0
- package/artifacts/contracts/libs/0.8.x/Bytes32Strings.sol/Bytes32Strings.json +10 -0
- package/artifacts/contracts/libs/0.8.x/ERC721_PackedHashSeed.sol/ERC721_PackedHashSeed.json +357 -0
- package/artifacts/contracts/libs/integration-refs/delegation-registry/DelegationRegistry.sol/DelegationRegistry.json +529 -0
- package/artifacts/contracts/libs/integration-refs/gnosis-safe/GnosisSafeMock.sol/GnosisSafeMock.json +1037 -0
- package/artifacts/contracts/libs/integration-refs/gnosis-safe/GnosisSafeProxyFactoryMock.sol/GnosisSafeProxyFactoryMock.json +172 -0
- package/artifacts/contracts/libs/integration-refs/gnosis-safe/MultiSendMock.sol/MultiSendMock.json +24 -0
- package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV0.sol/MinterFilterV0.json +342 -0
- package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV1.sol/MinterFilterV1.json +322 -0
- package/artifacts/contracts/minter-suite/Minters/MinterDAExp/MinterDAExpV2.sol/MinterDAExpV2.json +550 -0
- package/artifacts/contracts/minter-suite/Minters/MinterDAExp/MinterDAExpV3.sol/MinterDAExpV3.json +856 -0
- package/artifacts/contracts/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol/MinterDAExpSettlementV0.json +1053 -0
- package/artifacts/contracts/minter-suite/Minters/MinterDALin/MinterDALinV2.sol/MinterDALinV2.json +526 -0
- package/artifacts/contracts/minter-suite/Minters/MinterDALin/MinterDALinV3.sol/MinterDALinV3.json +832 -0
- package/artifacts/contracts/minter-suite/Minters/MinterHolder/MinterHolderV2.sol/MinterHolderV2.json +794 -0
- package/artifacts/contracts/minter-suite/Minters/MinterHolder/MinterHolderV3.sol/MinterHolderV3.json +1100 -0
- package/artifacts/contracts/minter-suite/Minters/MinterMerkle/MinterMerkleV3.sol/MinterMerkleV3.json +1002 -0
- package/artifacts/contracts/minter-suite/Minters/MinterMerkle/MinterMerkleV4.sol/MinterMerkleV4.json +1039 -0
- package/artifacts/contracts/minter-suite/Minters/MinterSetPrice/MinterSetPriceV2.sol/MinterSetPriceV2.json +365 -0
- package/artifacts/contracts/minter-suite/Minters/MinterSetPrice/MinterSetPriceV3.sol/MinterSetPriceV3.json +671 -0
- package/artifacts/contracts/minter-suite/Minters/MinterSetPrice/deprecated/MinterSetPriceV1.sol/MinterSetPriceV1.json +288 -0
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V2.sol/MinterSetPriceERC20V2.json +436 -0
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V3.sol/MinterSetPriceERC20V3.json +742 -0
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20/deprecated/MinterSetPriceERC20V0.sol/MinterSetPriceERC20V0.json +461 -0
- package/artifacts/contracts/mock/BytecodeTextCR_DMock.sol/BytecodeTextCR_DMock.json +194 -0
- package/artifacts/contracts/mock/DeadReceiverMock.sol/DeadReceiverMock.json +15 -0
- package/artifacts/contracts/mock/ERC20Mock.sol/ERC20Mock.json +292 -0
- package/artifacts/contracts/mock/MockAdminACLV0.sol/MockAdminACLV0Events.json +165 -0
- package/artifacts/contracts/mock/RandomizerV2_NoAssignMock.sol/RandomizerV2_NoAssignMock.json +128 -0
- package/artifacts/contracts/mock/ReentrancyHolderMock.sol/ReentrancyHolderMock.json +118 -0
- package/artifacts/contracts/mock/ReentrancyMerkleMock.sol/ReentrancyMerkleMock.json +87 -0
- package/artifacts/contracts/mock/ReentrancyMock.sol/ReentrancyMock.json +82 -0
- package/artifacts/contracts/royalty-registry/GenArt721RoyaltyOverride.sol/GenArt721RoyaltyOverride.json +208 -0
- package/artifacts/contracts/royalty-registry/GenArt721RoyaltyOverride_PBAB.sol/GenArt721RoyaltyOverride_PBAB.json +301 -0
- package/contracts/AdminACLV0.sol +103 -0
- package/contracts/AdminACLV1.sol +193 -0
- package/contracts/BasicRandomizer.sol +23 -0
- package/contracts/BasicRandomizerV2.sol +36 -0
- package/contracts/DependencyRegistryV0.sol +893 -0
- package/contracts/GenArt721CoreV3.sol +2001 -0
- package/contracts/GenArt721CoreV3_Engine.sol +2061 -0
- package/contracts/engine/GenArt721CoreV2_ENGINE_FLEX.sol +887 -0
- package/contracts/engine/GenArt721CoreV2_PBAB.sol +695 -0
- package/contracts/engine/GenArt721CoreV2_PRTNR.sol +749 -0
- package/contracts/engine/GenArt721MinterBurner_PBAB.sol +467 -0
- package/contracts/engine/GenArt721MinterDAExp_PBAB.sol +614 -0
- package/contracts/engine/GenArt721Minter_PBAB.sol +420 -0
- package/contracts/engine-registry/EngineRegistryV0.sol +72 -0
- package/contracts/engine-registry/future/EngineRegistryV1.sol +86 -0
- package/contracts/explorations/GenArt721CoreV3_Explorations.sol +1989 -0
- package/contracts/interfaces/0.5.x/IBonusContract.sol +10 -0
- package/contracts/interfaces/0.5.x/IGenArt721CoreContractV1.sol +91 -0
- package/contracts/interfaces/0.5.x/IGenArt721CoreV2_PBAB.sol +92 -0
- package/contracts/interfaces/0.5.x/IRandomizer.sol +8 -0
- package/contracts/interfaces/0.8.x/IAdminACLV0.sol +51 -0
- package/contracts/interfaces/0.8.x/IArtblocksRoyaltyOverride.sol +34 -0
- package/contracts/interfaces/0.8.x/IBonusContract.sol +10 -0
- package/contracts/interfaces/0.8.x/IDelegationRegistry.sol +221 -0
- package/contracts/interfaces/0.8.x/IDependencyRegistryCompatibleV0.sol +31 -0
- package/contracts/interfaces/0.8.x/IDependencyRegistryV0.sol +95 -0
- package/contracts/interfaces/0.8.x/IEngineRegistryV0.sol +38 -0
- package/contracts/interfaces/0.8.x/IFilteredMinterDAExpSettlementV0.sol +70 -0
- package/contracts/interfaces/0.8.x/IFilteredMinterDAExpV0.sol +35 -0
- package/contracts/interfaces/0.8.x/IFilteredMinterDAExpV1.sol +16 -0
- package/contracts/interfaces/0.8.x/IFilteredMinterDALinV0.sol +32 -0
- package/contracts/interfaces/0.8.x/IFilteredMinterDALinV1.sol +16 -0
- package/contracts/interfaces/0.8.x/IFilteredMinterHolderV0.sol +68 -0
- package/contracts/interfaces/0.8.x/IFilteredMinterHolderV1.sol +19 -0
- package/contracts/interfaces/0.8.x/IFilteredMinterHolderV2.sol +19 -0
- package/contracts/interfaces/0.8.x/IFilteredMinterMerkleV0.sol +37 -0
- package/contracts/interfaces/0.8.x/IFilteredMinterMerkleV1.sol +19 -0
- package/contracts/interfaces/0.8.x/IFilteredMinterMerkleV2.sol +19 -0
- package/contracts/interfaces/0.8.x/IFilteredMinterV0.sol +74 -0
- package/contracts/interfaces/0.8.x/IFilteredMinterV1.sol +127 -0
- package/contracts/interfaces/0.8.x/IFilteredMinterV2.sol +30 -0
- package/contracts/interfaces/0.8.x/IGenArt721CoreContractV1.sol +73 -0
- package/contracts/interfaces/0.8.x/IGenArt721CoreContractV3.sol +79 -0
- package/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Base.sol +127 -0
- package/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Engine.sol +80 -0
- package/contracts/interfaces/0.8.x/IGenArt721CoreV2_PBAB.sol +91 -0
- package/contracts/interfaces/0.8.x/IManifold.sol +24 -0
- package/contracts/interfaces/0.8.x/IMinterFilterV0.sol +47 -0
- package/contracts/interfaces/0.8.x/IRandomizer.sol +8 -0
- package/contracts/interfaces/0.8.x/IRandomizerV2.sol +15 -0
- package/contracts/legacy/GenArt721CoreV1.sol +1593 -0
- package/contracts/legacy/GenArt721LegacyMinter.sol +275 -0
- package/contracts/libs/0.5.x/CustomERC721Metadata.sol +52 -0
- package/contracts/libs/0.5.x/IERC20.sol +96 -0
- package/contracts/libs/0.5.x/SafeMath.sol +98 -0
- package/contracts/libs/0.5.x/Strings.sol +92 -0
- package/contracts/libs/0.8.x/BytecodeStorage.sol +314 -0
- package/contracts/libs/0.8.x/Bytes32Strings.sol +66 -0
- package/contracts/libs/0.8.x/ERC721_PackedHashSeed.sol +514 -0
- package/contracts/libs/integration-refs/delegation-registry/DelegationRegistry.sol +663 -0
- package/contracts/libs/integration-refs/gnosis-safe/GnosisSafeMock.sol +6 -0
- package/contracts/libs/integration-refs/gnosis-safe/GnosisSafeProxyFactoryMock.sol +6 -0
- package/contracts/libs/integration-refs/gnosis-safe/MultiSendMock.sol +6 -0
- package/contracts/minter-suite/MinterFilter/MinterFilterV0.sol +291 -0
- package/contracts/minter-suite/MinterFilter/MinterFilterV1.sol +320 -0
- package/contracts/minter-suite/Minters/MinterDAExp/MinterDAExpV2.sol +571 -0
- package/contracts/minter-suite/Minters/MinterDAExp/MinterDAExpV3.sol +622 -0
- package/contracts/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol +1066 -0
- package/contracts/minter-suite/Minters/MinterDALin/MinterDALinV2.sol +527 -0
- package/contracts/minter-suite/Minters/MinterDALin/MinterDALinV3.sol +576 -0
- package/contracts/minter-suite/Minters/MinterHolder/MinterHolderV2.sol +749 -0
- package/contracts/minter-suite/Minters/MinterHolder/MinterHolderV3.sol +798 -0
- package/contracts/minter-suite/Minters/MinterMerkle/MinterMerkleV3.sol +682 -0
- package/contracts/minter-suite/Minters/MinterMerkle/MinterMerkleV4.sol +733 -0
- package/contracts/minter-suite/Minters/MinterSetPrice/MinterSetPriceV2.sol +350 -0
- package/contracts/minter-suite/Minters/MinterSetPrice/MinterSetPriceV3.sol +401 -0
- package/contracts/minter-suite/Minters/MinterSetPrice/deprecated/MinterSetPriceV1.sol +274 -0
- package/contracts/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V2.sol +491 -0
- package/contracts/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V3.sol +542 -0
- package/contracts/minter-suite/Minters/MinterSetPriceERC20/deprecated/MinterSetPriceERC20V0.sol +470 -0
- package/contracts/mock/BytecodeTextCR_DMock.sol +184 -0
- package/contracts/mock/DeadReceiverMock.sol +13 -0
- package/contracts/mock/ERC20Mock.sol +11 -0
- package/contracts/mock/MockAdminACLV0.sol +65 -0
- package/contracts/mock/RandomizerV2_NoAssignMock.sol +43 -0
- package/contracts/mock/ReentrancyHolderMock.sol +50 -0
- package/contracts/mock/ReentrancyMerkleMock.sol +64 -0
- package/contracts/mock/ReentrancyMock.sol +44 -0
- package/contracts/royalty-registry/GenArt721RoyaltyOverride.sol +168 -0
- package/contracts/royalty-registry/GenArt721RoyaltyOverride_PBAB.sol +221 -0
- package/package.json +83 -0
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
// Created By: Art Blocks Inc.
|
|
3
|
+
|
|
4
|
+
import "./IFilteredMinterV1.sol";
|
|
5
|
+
import "./IFilteredMinterDAExpV0.sol";
|
|
6
|
+
|
|
7
|
+
pragma solidity ^0.8.0;
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* @title This interface extends the IFilteredMinterV1 interface in order to
|
|
11
|
+
* add support for Dutch Auction with Settlement minter updates.
|
|
12
|
+
* @dev keys represent strings of finite length encoded in bytes32 to minimize
|
|
13
|
+
* gas.
|
|
14
|
+
* @author Art Blocks Inc.
|
|
15
|
+
*/
|
|
16
|
+
interface IFilteredMinterDAExpSettlementV0 is
|
|
17
|
+
IFilteredMinterV1,
|
|
18
|
+
IFilteredMinterDAExpV0
|
|
19
|
+
{
|
|
20
|
+
/// Auction details cleared for project `projectId`.
|
|
21
|
+
/// At time of reset, the project has had `numPurchases` purchases on this
|
|
22
|
+
/// minter, with a most recent purchase price of `latestPurchasePrice`. If
|
|
23
|
+
/// the number of purchases is 0, the latest purchase price will have a
|
|
24
|
+
/// dummy value of 0.
|
|
25
|
+
event ResetAuctionDetails(
|
|
26
|
+
uint256 indexed projectId,
|
|
27
|
+
uint256 numPurchases,
|
|
28
|
+
uint256 latestPurchasePrice
|
|
29
|
+
);
|
|
30
|
+
|
|
31
|
+
/// sellout price updated for project `projectId`.
|
|
32
|
+
/// @dev does not use generic event because likely will trigger additional
|
|
33
|
+
/// actions in indexing layer
|
|
34
|
+
event SelloutPriceUpdated(
|
|
35
|
+
uint256 indexed _projectId,
|
|
36
|
+
uint256 _selloutPrice
|
|
37
|
+
);
|
|
38
|
+
|
|
39
|
+
/// artist and admin have withdrawn revenues from settleable purchases for
|
|
40
|
+
/// project `projectId`.
|
|
41
|
+
/// @dev does not use generic event because likely will trigger additional
|
|
42
|
+
/// actions in indexing layer
|
|
43
|
+
event ArtistAndAdminRevenuesWithdrawn(uint256 indexed _projectId);
|
|
44
|
+
|
|
45
|
+
/// receipt has an updated state
|
|
46
|
+
event ReceiptUpdated(
|
|
47
|
+
address indexed _purchaser,
|
|
48
|
+
uint256 indexed _projectId,
|
|
49
|
+
uint256 _numPurchased,
|
|
50
|
+
uint256 _netPosted
|
|
51
|
+
);
|
|
52
|
+
|
|
53
|
+
/// returns latest purchase price for project `_projectId`, or 0 if no
|
|
54
|
+
/// purchases have been made.
|
|
55
|
+
function getProjectLatestPurchasePrice(
|
|
56
|
+
uint256 _projectId
|
|
57
|
+
) external view returns (uint256 latestPurchasePrice);
|
|
58
|
+
|
|
59
|
+
/// returns the number of settleable invocations for project `_projectId`.
|
|
60
|
+
function getNumSettleableInvocations(
|
|
61
|
+
uint256 _projectId
|
|
62
|
+
) external view returns (uint256 numSettleableInvocations);
|
|
63
|
+
|
|
64
|
+
/// Returns the current excess settlement funds on project `_projectId`
|
|
65
|
+
/// for address `_walletAddress`.
|
|
66
|
+
function getProjectExcessSettlementFunds(
|
|
67
|
+
uint256 _projectId,
|
|
68
|
+
address _walletAddress
|
|
69
|
+
) external view returns (uint256 excessSettlementFundsInWei);
|
|
70
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
// Created By: Art Blocks Inc.
|
|
3
|
+
|
|
4
|
+
import "./IFilteredMinterV0.sol";
|
|
5
|
+
|
|
6
|
+
pragma solidity ^0.8.0;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @title This interface extends the IFilteredMinterV0 interface in order to
|
|
10
|
+
* add support for exponential descending auctions.
|
|
11
|
+
* @author Art Blocks Inc.
|
|
12
|
+
*/
|
|
13
|
+
interface IFilteredMinterDAExpV0 is IFilteredMinterV0 {
|
|
14
|
+
/// Auction details updated for project `projectId`.
|
|
15
|
+
event SetAuctionDetails(
|
|
16
|
+
uint256 indexed projectId,
|
|
17
|
+
uint256 _auctionTimestampStart,
|
|
18
|
+
uint256 _priceDecayHalfLifeSeconds,
|
|
19
|
+
uint256 _startPrice,
|
|
20
|
+
uint256 _basePrice
|
|
21
|
+
);
|
|
22
|
+
|
|
23
|
+
/// Auction details cleared for project `projectId`.
|
|
24
|
+
event ResetAuctionDetails(uint256 indexed projectId);
|
|
25
|
+
|
|
26
|
+
/// Maximum and minimum allowed price decay half lifes updated.
|
|
27
|
+
event AuctionHalfLifeRangeSecondsUpdated(
|
|
28
|
+
uint256 _minimumPriceDecayHalfLifeSeconds,
|
|
29
|
+
uint256 _maximumPriceDecayHalfLifeSeconds
|
|
30
|
+
);
|
|
31
|
+
|
|
32
|
+
function minimumPriceDecayHalfLifeSeconds() external view returns (uint256);
|
|
33
|
+
|
|
34
|
+
function maximumPriceDecayHalfLifeSeconds() external view returns (uint256);
|
|
35
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
// Created By: Art Blocks Inc.
|
|
3
|
+
|
|
4
|
+
import "./IFilteredMinterDAExpV0.sol";
|
|
5
|
+
import "./IFilteredMinterV2.sol";
|
|
6
|
+
|
|
7
|
+
pragma solidity ^0.8.0;
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* @title This interface extends the IFilteredMinterDAExpV0 interface in order to
|
|
11
|
+
* add support for manually setting project max invocations.
|
|
12
|
+
* @author Art Blocks Inc.
|
|
13
|
+
*/
|
|
14
|
+
interface IFilteredMinterDAExpV1 is IFilteredMinterDAExpV0, IFilteredMinterV2 {
|
|
15
|
+
|
|
16
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
// Created By: Art Blocks Inc.
|
|
3
|
+
|
|
4
|
+
import "./IFilteredMinterV0.sol";
|
|
5
|
+
|
|
6
|
+
pragma solidity ^0.8.0;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @title This interface extends the IFilteredMinterV0 interface in order to
|
|
10
|
+
* add support for linear descending auctions.
|
|
11
|
+
* @author Art Blocks Inc.
|
|
12
|
+
*/
|
|
13
|
+
interface IFilteredMinterDALinV0 is IFilteredMinterV0 {
|
|
14
|
+
/// Auction details updated for project `projectId`.
|
|
15
|
+
event SetAuctionDetails(
|
|
16
|
+
uint256 indexed projectId,
|
|
17
|
+
uint256 _auctionTimestampStart,
|
|
18
|
+
uint256 _auctionTimestampEnd,
|
|
19
|
+
uint256 _startPrice,
|
|
20
|
+
uint256 _basePrice
|
|
21
|
+
);
|
|
22
|
+
|
|
23
|
+
/// Auction details cleared for project `projectId`.
|
|
24
|
+
event ResetAuctionDetails(uint256 indexed projectId);
|
|
25
|
+
|
|
26
|
+
/// Minimum allowed auction length updated
|
|
27
|
+
event MinimumAuctionLengthSecondsUpdated(
|
|
28
|
+
uint256 _minimumAuctionLengthSeconds
|
|
29
|
+
);
|
|
30
|
+
|
|
31
|
+
function minimumAuctionLengthSeconds() external view returns (uint256);
|
|
32
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
// Created By: Art Blocks Inc.
|
|
3
|
+
|
|
4
|
+
import "./IFilteredMinterDALinV0.sol";
|
|
5
|
+
import "./IFilteredMinterV2.sol";
|
|
6
|
+
|
|
7
|
+
pragma solidity ^0.8.0;
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* @title This interface extends the IFilteredMinterDALinV0 interface in order to
|
|
11
|
+
* add support for manually setting project max invocations.
|
|
12
|
+
* @author Art Blocks Inc.
|
|
13
|
+
*/
|
|
14
|
+
interface IFilteredMinterDALinV1 is IFilteredMinterDALinV0, IFilteredMinterV2 {
|
|
15
|
+
|
|
16
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
// Created By: Art Blocks Inc.
|
|
3
|
+
|
|
4
|
+
import "./IFilteredMinterV0.sol";
|
|
5
|
+
|
|
6
|
+
pragma solidity ^0.8.0;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @title This interface extends the IFilteredMinterV0 interface in order to
|
|
10
|
+
* add support for including owned NFT token address and token ID information.
|
|
11
|
+
* @author Art Blocks Inc.
|
|
12
|
+
*/
|
|
13
|
+
interface IFilteredMinterHolderV0 is IFilteredMinterV0 {
|
|
14
|
+
/**
|
|
15
|
+
* @notice Registered holders of NFTs at address `_NFTAddress` to be
|
|
16
|
+
* considered for minting.
|
|
17
|
+
*/
|
|
18
|
+
event RegisteredNFTAddress(address indexed _NFTAddress);
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* @notice Unregistered holders of NFTs at address `_NFTAddress` to be
|
|
22
|
+
* considered for minting.
|
|
23
|
+
*/
|
|
24
|
+
event UnregisteredNFTAddress(address indexed _NFTAddress);
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* @notice Allow holders of NFTs at addresses `_ownedNFTAddresses`, project
|
|
28
|
+
* IDs `_ownedNFTProjectIds` to mint on project `_projectId`.
|
|
29
|
+
* `_ownedNFTAddresses` assumed to be aligned with `_ownedNFTProjectIds`.
|
|
30
|
+
* e.g. Allows holders of project `_ownedNFTProjectIds[0]` on token
|
|
31
|
+
* contract `_ownedNFTAddresses[0]` to mint.
|
|
32
|
+
*/
|
|
33
|
+
event AllowedHoldersOfProjects(
|
|
34
|
+
uint256 indexed _projectId,
|
|
35
|
+
address[] _ownedNFTAddresses,
|
|
36
|
+
uint256[] _ownedNFTProjectIds
|
|
37
|
+
);
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* @notice Remove holders of NFTs at addresses `_ownedNFTAddresses`,
|
|
41
|
+
* project IDs `_ownedNFTProjectIds` to mint on project `_projectId`.
|
|
42
|
+
* `_ownedNFTAddresses` assumed to be aligned with `_ownedNFTProjectIds`.
|
|
43
|
+
* e.g. Removes holders of project `_ownedNFTProjectIds[0]` on token
|
|
44
|
+
* contract `_ownedNFTAddresses[0]` from mint allowlist.
|
|
45
|
+
*/
|
|
46
|
+
event RemovedHoldersOfProjects(
|
|
47
|
+
uint256 indexed _projectId,
|
|
48
|
+
address[] _ownedNFTAddresses,
|
|
49
|
+
uint256[] _ownedNFTProjectIds
|
|
50
|
+
);
|
|
51
|
+
|
|
52
|
+
// Triggers a purchase of a token from the desired project, to the
|
|
53
|
+
// TX-sending address, using owned ERC-721 NFT to claim right to purchase.
|
|
54
|
+
function purchase(
|
|
55
|
+
uint256 _projectId,
|
|
56
|
+
address _ownedNftAddress,
|
|
57
|
+
uint256 _ownedNftTokenId
|
|
58
|
+
) external payable returns (uint256 tokenId);
|
|
59
|
+
|
|
60
|
+
// Triggers a purchase of a token from the desired project, to the specified
|
|
61
|
+
// receiving address, using owned ERC-721 NFT to claim right to purchase.
|
|
62
|
+
function purchaseTo(
|
|
63
|
+
address _to,
|
|
64
|
+
uint256 _projectId,
|
|
65
|
+
address _ownedNftAddress,
|
|
66
|
+
uint256 _ownedNftTokenId
|
|
67
|
+
) external payable returns (uint256 tokenId);
|
|
68
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
// Created By: Art Blocks Inc.
|
|
3
|
+
|
|
4
|
+
import "./IFilteredMinterHolderV0.sol";
|
|
5
|
+
|
|
6
|
+
pragma solidity ^0.8.0;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @title This interface extends the IFilteredMinterHolderV0 interface in order
|
|
10
|
+
* to add support for configuring and indexing the delegation registry address.
|
|
11
|
+
* @author Art Blocks Inc.
|
|
12
|
+
*/
|
|
13
|
+
interface IFilteredMinterHolderV1 is IFilteredMinterHolderV0 {
|
|
14
|
+
/**
|
|
15
|
+
* @notice Notifies of the contract's configured delegation registry
|
|
16
|
+
* address.
|
|
17
|
+
*/
|
|
18
|
+
event DelegationRegistryUpdated(address delegationRegistryAddress);
|
|
19
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
// Created By: Art Blocks Inc.
|
|
3
|
+
|
|
4
|
+
import "./IFilteredMinterHolderV1.sol";
|
|
5
|
+
import "./IFilteredMinterV2.sol";
|
|
6
|
+
|
|
7
|
+
pragma solidity ^0.8.0;
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* @title This interface extends the IFilteredMinterHolderV1 interface in order to
|
|
11
|
+
* add support for manually setting project max invocations.
|
|
12
|
+
* @author Art Blocks Inc.
|
|
13
|
+
*/
|
|
14
|
+
interface IFilteredMinterHolderV2 is
|
|
15
|
+
IFilteredMinterHolderV1,
|
|
16
|
+
IFilteredMinterV2
|
|
17
|
+
{
|
|
18
|
+
|
|
19
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
// Created By: Art Blocks Inc.
|
|
3
|
+
|
|
4
|
+
import "./IFilteredMinterV1.sol";
|
|
5
|
+
|
|
6
|
+
pragma solidity ^0.8.0;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @title This interface extends the IFilteredMinterV1 interface in order to
|
|
10
|
+
* add support for including Merkle proofs when purchasing.
|
|
11
|
+
* @author Art Blocks Inc.
|
|
12
|
+
*/
|
|
13
|
+
interface IFilteredMinterMerkleV0 is IFilteredMinterV1 {
|
|
14
|
+
/**
|
|
15
|
+
* @notice Notifies of the contract's default maximum mints allowed per
|
|
16
|
+
* user for a given project, on this minter. This value can be overridden
|
|
17
|
+
* by the artist of any project at any time.
|
|
18
|
+
*/
|
|
19
|
+
event DefaultMaxInvocationsPerAddress(
|
|
20
|
+
uint256 defaultMaxInvocationsPerAddress
|
|
21
|
+
);
|
|
22
|
+
|
|
23
|
+
// Triggers a purchase of a token from the desired project, to the
|
|
24
|
+
// TX-sending address. Requires Merkle proof.
|
|
25
|
+
function purchase(
|
|
26
|
+
uint256 _projectId,
|
|
27
|
+
bytes32[] memory _proof
|
|
28
|
+
) external payable returns (uint256 tokenId);
|
|
29
|
+
|
|
30
|
+
// Triggers a purchase of a token from the desired project, to the specified
|
|
31
|
+
// receiving address. Requires Merkle proof.
|
|
32
|
+
function purchaseTo(
|
|
33
|
+
address _to,
|
|
34
|
+
uint256 _projectId,
|
|
35
|
+
bytes32[] memory _proof
|
|
36
|
+
) external payable returns (uint256 tokenId);
|
|
37
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
// Created By: Art Blocks Inc.
|
|
3
|
+
|
|
4
|
+
import "./IFilteredMinterMerkleV0.sol";
|
|
5
|
+
|
|
6
|
+
pragma solidity ^0.8.0;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @title This interface extends the IFilteredMinterMerkleV0 interface in order
|
|
10
|
+
* to add support for configuring and indexing the delegation registry address.
|
|
11
|
+
* @author Art Blocks Inc.
|
|
12
|
+
*/
|
|
13
|
+
interface IFilteredMinterMerkleV1 is IFilteredMinterMerkleV0 {
|
|
14
|
+
/**
|
|
15
|
+
* @notice Notifies of the contract's configured delegation registry
|
|
16
|
+
* address.
|
|
17
|
+
*/
|
|
18
|
+
event DelegationRegistryUpdated(address delegationRegistryAddress);
|
|
19
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
// Created By: Art Blocks Inc.
|
|
3
|
+
|
|
4
|
+
import "./IFilteredMinterMerkleV1.sol";
|
|
5
|
+
import "./IFilteredMinterV2.sol";
|
|
6
|
+
|
|
7
|
+
pragma solidity ^0.8.0;
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* @title This interface extends the IFilteredMinterMerkleV0 interface in order to
|
|
11
|
+
* add support for manually setting project max invocations.
|
|
12
|
+
* @author Art Blocks Inc.
|
|
13
|
+
*/
|
|
14
|
+
interface IFilteredMinterMerkleV2 is
|
|
15
|
+
IFilteredMinterMerkleV1,
|
|
16
|
+
IFilteredMinterV2
|
|
17
|
+
{
|
|
18
|
+
|
|
19
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
// Created By: Art Blocks Inc.
|
|
3
|
+
|
|
4
|
+
pragma solidity ^0.8.0;
|
|
5
|
+
|
|
6
|
+
interface IFilteredMinterV0 {
|
|
7
|
+
/**
|
|
8
|
+
* @notice Price per token in wei updated for project `_projectId` to
|
|
9
|
+
* `_pricePerTokenInWei`.
|
|
10
|
+
*/
|
|
11
|
+
event PricePerTokenInWeiUpdated(
|
|
12
|
+
uint256 indexed _projectId,
|
|
13
|
+
uint256 indexed _pricePerTokenInWei
|
|
14
|
+
);
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* @notice Currency updated for project `_projectId` to symbol
|
|
18
|
+
* `_currencySymbol` and address `_currencyAddress`.
|
|
19
|
+
*/
|
|
20
|
+
event ProjectCurrencyInfoUpdated(
|
|
21
|
+
uint256 indexed _projectId,
|
|
22
|
+
address indexed _currencyAddress,
|
|
23
|
+
string _currencySymbol
|
|
24
|
+
);
|
|
25
|
+
|
|
26
|
+
/// togglePurchaseToDisabled updated
|
|
27
|
+
event PurchaseToDisabledUpdated(
|
|
28
|
+
uint256 indexed _projectId,
|
|
29
|
+
bool _purchaseToDisabled
|
|
30
|
+
);
|
|
31
|
+
|
|
32
|
+
// getter function of public variable
|
|
33
|
+
function minterType() external view returns (string memory);
|
|
34
|
+
|
|
35
|
+
function genArt721CoreAddress() external returns (address);
|
|
36
|
+
|
|
37
|
+
function minterFilterAddress() external returns (address);
|
|
38
|
+
|
|
39
|
+
// Triggers a purchase of a token from the desired project, to the
|
|
40
|
+
// TX-sending address.
|
|
41
|
+
function purchase(
|
|
42
|
+
uint256 _projectId
|
|
43
|
+
) external payable returns (uint256 tokenId);
|
|
44
|
+
|
|
45
|
+
// Triggers a purchase of a token from the desired project, to the specified
|
|
46
|
+
// receiving address.
|
|
47
|
+
function purchaseTo(
|
|
48
|
+
address _to,
|
|
49
|
+
uint256 _projectId
|
|
50
|
+
) external payable returns (uint256 tokenId);
|
|
51
|
+
|
|
52
|
+
// Toggles the ability for `purchaseTo` to be called directly with a
|
|
53
|
+
// specified receiving address that differs from the TX-sending address.
|
|
54
|
+
function togglePurchaseToDisabled(uint256 _projectId) external;
|
|
55
|
+
|
|
56
|
+
// Called to make the minter contract aware of the max invocations for a
|
|
57
|
+
// given project.
|
|
58
|
+
function setProjectMaxInvocations(uint256 _projectId) external;
|
|
59
|
+
|
|
60
|
+
// Gets if token price is configured, token price in wei, currency symbol,
|
|
61
|
+
// and currency address, assuming this is project's minter.
|
|
62
|
+
// Supersedes any defined core price.
|
|
63
|
+
function getPriceInfo(
|
|
64
|
+
uint256 _projectId
|
|
65
|
+
)
|
|
66
|
+
external
|
|
67
|
+
view
|
|
68
|
+
returns (
|
|
69
|
+
bool isConfigured,
|
|
70
|
+
uint256 tokenPriceInWei,
|
|
71
|
+
string memory currencySymbol,
|
|
72
|
+
address currencyAddress
|
|
73
|
+
);
|
|
74
|
+
}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
// Created By: Art Blocks Inc.
|
|
3
|
+
|
|
4
|
+
import "./IFilteredMinterV0.sol";
|
|
5
|
+
|
|
6
|
+
pragma solidity ^0.8.0;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @title This interface extends the IFilteredMinterV0 interface in order to
|
|
10
|
+
* add support for generic project minter configuration updates.
|
|
11
|
+
* @dev keys represent strings of finite length encoded in bytes32 to minimize
|
|
12
|
+
* gas.
|
|
13
|
+
* @author Art Blocks Inc.
|
|
14
|
+
*/
|
|
15
|
+
interface IFilteredMinterV1 is IFilteredMinterV0 {
|
|
16
|
+
/// ANY
|
|
17
|
+
/**
|
|
18
|
+
* @notice Generic project minter configuration event. Removes key `_key`
|
|
19
|
+
* for project `_projectId`.
|
|
20
|
+
*/
|
|
21
|
+
event ConfigKeyRemoved(uint256 indexed _projectId, bytes32 _key);
|
|
22
|
+
|
|
23
|
+
/// BOOL
|
|
24
|
+
/**
|
|
25
|
+
* @notice Generic project minter configuration event. Sets value of key
|
|
26
|
+
* `_key` to `_value` for project `_projectId`.
|
|
27
|
+
*/
|
|
28
|
+
event ConfigValueSet(uint256 indexed _projectId, bytes32 _key, bool _value);
|
|
29
|
+
|
|
30
|
+
/// UINT256
|
|
31
|
+
/**
|
|
32
|
+
* @notice Generic project minter configuration event. Sets value of key
|
|
33
|
+
* `_key` to `_value` for project `_projectId`.
|
|
34
|
+
*/
|
|
35
|
+
event ConfigValueSet(
|
|
36
|
+
uint256 indexed _projectId,
|
|
37
|
+
bytes32 _key,
|
|
38
|
+
uint256 _value
|
|
39
|
+
);
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* @notice Generic project minter configuration event. Adds value `_value`
|
|
43
|
+
* to the set of uint256 at key `_key` for project `_projectId`.
|
|
44
|
+
*/
|
|
45
|
+
event ConfigValueAddedToSet(
|
|
46
|
+
uint256 indexed _projectId,
|
|
47
|
+
bytes32 _key,
|
|
48
|
+
uint256 _value
|
|
49
|
+
);
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* @notice Generic project minter configuration event. Removes value
|
|
53
|
+
* `_value` to the set of uint256 at key `_key` for project `_projectId`.
|
|
54
|
+
*/
|
|
55
|
+
event ConfigValueRemovedFromSet(
|
|
56
|
+
uint256 indexed _projectId,
|
|
57
|
+
bytes32 _key,
|
|
58
|
+
uint256 _value
|
|
59
|
+
);
|
|
60
|
+
|
|
61
|
+
/// ADDRESS
|
|
62
|
+
/**
|
|
63
|
+
* @notice Generic project minter configuration event. Sets value of key
|
|
64
|
+
* `_key` to `_value` for project `_projectId`.
|
|
65
|
+
*/
|
|
66
|
+
event ConfigValueSet(
|
|
67
|
+
uint256 indexed _projectId,
|
|
68
|
+
bytes32 _key,
|
|
69
|
+
address _value
|
|
70
|
+
);
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* @notice Generic project minter configuration event. Adds value `_value`
|
|
74
|
+
* to the set of addresses at key `_key` for project `_projectId`.
|
|
75
|
+
*/
|
|
76
|
+
event ConfigValueAddedToSet(
|
|
77
|
+
uint256 indexed _projectId,
|
|
78
|
+
bytes32 _key,
|
|
79
|
+
address _value
|
|
80
|
+
);
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* @notice Generic project minter configuration event. Removes value
|
|
84
|
+
* `_value` to the set of addresses at key `_key` for project `_projectId`.
|
|
85
|
+
*/
|
|
86
|
+
event ConfigValueRemovedFromSet(
|
|
87
|
+
uint256 indexed _projectId,
|
|
88
|
+
bytes32 _key,
|
|
89
|
+
address _value
|
|
90
|
+
);
|
|
91
|
+
|
|
92
|
+
/// BYTES32
|
|
93
|
+
/**
|
|
94
|
+
* @notice Generic project minter configuration event. Sets value of key
|
|
95
|
+
* `_key` to `_value` for project `_projectId`.
|
|
96
|
+
*/
|
|
97
|
+
event ConfigValueSet(
|
|
98
|
+
uint256 indexed _projectId,
|
|
99
|
+
bytes32 _key,
|
|
100
|
+
bytes32 _value
|
|
101
|
+
);
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* @notice Generic project minter configuration event. Adds value `_value`
|
|
105
|
+
* to the set of bytes32 at key `_key` for project `_projectId`.
|
|
106
|
+
*/
|
|
107
|
+
event ConfigValueAddedToSet(
|
|
108
|
+
uint256 indexed _projectId,
|
|
109
|
+
bytes32 _key,
|
|
110
|
+
bytes32 _value
|
|
111
|
+
);
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* @notice Generic project minter configuration event. Removes value
|
|
115
|
+
* `_value` to the set of bytes32 at key `_key` for project `_projectId`.
|
|
116
|
+
*/
|
|
117
|
+
event ConfigValueRemovedFromSet(
|
|
118
|
+
uint256 indexed _projectId,
|
|
119
|
+
bytes32 _key,
|
|
120
|
+
bytes32 _value
|
|
121
|
+
);
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* @dev Strings not supported. Recommend conversion of (short) strings to
|
|
125
|
+
* bytes32 to remain gas-efficient.
|
|
126
|
+
*/
|
|
127
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
// Created By: Art Blocks Inc.
|
|
3
|
+
|
|
4
|
+
import "./IFilteredMinterV1.sol";
|
|
5
|
+
|
|
6
|
+
pragma solidity ^0.8.0;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @title This interface extends the IFilteredMinterV1 interface in order to
|
|
10
|
+
* add support for manually setting project max invocations.
|
|
11
|
+
* @author Art Blocks Inc.
|
|
12
|
+
*/
|
|
13
|
+
interface IFilteredMinterV2 is IFilteredMinterV1 {
|
|
14
|
+
/**
|
|
15
|
+
* @notice Local max invocations for project `_projectId`, tied to core contract `_coreContractAddress`,
|
|
16
|
+
* updated to `_maxInvocations`.
|
|
17
|
+
*/
|
|
18
|
+
event ProjectMaxInvocationsLimitUpdated(
|
|
19
|
+
uint256 indexed _projectId,
|
|
20
|
+
uint256 _maxInvocations
|
|
21
|
+
);
|
|
22
|
+
|
|
23
|
+
// Sets the local max invocations for a given project, checking that the provided max invocations is
|
|
24
|
+
// less than or equal to the global max invocations for the project set on the core contract.
|
|
25
|
+
// This does not impact the max invocations value defined on the core contract.
|
|
26
|
+
function manuallyLimitProjectMaxInvocations(
|
|
27
|
+
uint256 _projectId,
|
|
28
|
+
uint256 _maxInvocations
|
|
29
|
+
) external;
|
|
30
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
// Created By: Art Blocks Inc.
|
|
3
|
+
|
|
4
|
+
pragma solidity ^0.8.0;
|
|
5
|
+
|
|
6
|
+
interface IGenArt721CoreContractV1 {
|
|
7
|
+
// getter function of public variable
|
|
8
|
+
function admin() external view returns (address);
|
|
9
|
+
|
|
10
|
+
// getter function of public variable
|
|
11
|
+
function nextProjectId() external view returns (uint256);
|
|
12
|
+
|
|
13
|
+
// getter function of public mapping
|
|
14
|
+
function tokenIdToProjectId(
|
|
15
|
+
uint256 tokenId
|
|
16
|
+
) external view returns (uint256 projectId);
|
|
17
|
+
|
|
18
|
+
function isWhitelisted(address sender) external view returns (bool);
|
|
19
|
+
|
|
20
|
+
// @dev this is not available in V0
|
|
21
|
+
function isMintWhitelisted(address minter) external view returns (bool);
|
|
22
|
+
|
|
23
|
+
function projectIdToArtistAddress(
|
|
24
|
+
uint256 _projectId
|
|
25
|
+
) external view returns (address payable);
|
|
26
|
+
|
|
27
|
+
function projectIdToAdditionalPayee(
|
|
28
|
+
uint256 _projectId
|
|
29
|
+
) external view returns (address payable);
|
|
30
|
+
|
|
31
|
+
function projectIdToAdditionalPayeePercentage(
|
|
32
|
+
uint256 _projectId
|
|
33
|
+
) external view returns (uint256);
|
|
34
|
+
|
|
35
|
+
function projectTokenInfo(
|
|
36
|
+
uint256 _projectId
|
|
37
|
+
)
|
|
38
|
+
external
|
|
39
|
+
view
|
|
40
|
+
returns (
|
|
41
|
+
address,
|
|
42
|
+
uint256,
|
|
43
|
+
uint256,
|
|
44
|
+
uint256,
|
|
45
|
+
bool,
|
|
46
|
+
address,
|
|
47
|
+
uint256,
|
|
48
|
+
string memory,
|
|
49
|
+
address
|
|
50
|
+
);
|
|
51
|
+
|
|
52
|
+
function artblocksAddress() external view returns (address payable);
|
|
53
|
+
|
|
54
|
+
function artblocksPercentage() external view returns (uint256);
|
|
55
|
+
|
|
56
|
+
function mint(
|
|
57
|
+
address _to,
|
|
58
|
+
uint256 _projectId,
|
|
59
|
+
address _by
|
|
60
|
+
) external returns (uint256 tokenId);
|
|
61
|
+
|
|
62
|
+
function getRoyaltyData(
|
|
63
|
+
uint256 _tokenId
|
|
64
|
+
)
|
|
65
|
+
external
|
|
66
|
+
view
|
|
67
|
+
returns (
|
|
68
|
+
address artistAddress,
|
|
69
|
+
address additionalPayee,
|
|
70
|
+
uint256 additionalPayeePercentage,
|
|
71
|
+
uint256 royaltyFeeByID
|
|
72
|
+
);
|
|
73
|
+
}
|