@artblocks/contracts 1.0.4 → 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 +2 -2
- package/artifacts/contracts/AdminACLV1.sol/AdminACLV1.json +2 -2
- package/artifacts/contracts/DependencyRegistryV0.sol/DependencyRegistryV0.json +97 -10
- package/artifacts/contracts/GenArt721CoreV3.sol/GenArt721CoreV3.json +4 -4
- package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine.sol/GenArt721CoreV3_Engine.json +4 -9
- package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol/GenArt721CoreV3_Engine_Flex.json +4 -9
- package/artifacts/contracts/engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol/GenArt721CoreV3_Engine_Flex_PROOF.json +4 -9
- package/artifacts/contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol/GenArt721CoreV3_Engine_Flex_PROHIBITION.json +4 -9
- package/artifacts/contracts/engine-registry/CoreRegistryV1.sol/CoreRegistryV1.json +12 -12
- package/artifacts/contracts/explorations/GenArt721CoreV3_Explorations.sol/GenArt721CoreV3_Explorations.json +4 -4
- package/artifacts/contracts/interfaces/v0.8.x/ICoreRegistryV1.sol/ICoreRegistryV1.json +6 -6
- package/artifacts/contracts/interfaces/v0.8.x/IDependencyRegistryV0.sol/IDependencyRegistryV0.json +19 -0
- package/artifacts/contracts/interfaces/v0.8.x/IMinterFilterV1.sol/IMinterFilterV1.json +22 -22
- package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDAExpSettlementV0.sol/ISharedMinterDAExpSettlementV0.json +8 -101
- package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDAExpV0.sol/ISharedMinterDAExpV0.json +1 -57
- package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDALinV0.sol/ISharedMinterDALinV0.json +1 -57
- package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDAV0.sol/ISharedMinterDAV0.json +2 -21
- package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterHolderERC20V0.sol/ISharedMinterHolderERC20V0.json +158 -0
- package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterHolderV0.sol/ISharedMinterHolderV0.json +15 -90
- package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterMerkleV0.sol/ISharedMinterMerkleV0.json +10 -36
- package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterSEAV0.sol/ISharedMinterSEAV0.json +4 -236
- package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterSimplePurchaseV0.sol/ISharedMinterSimplePurchaseV0.json +5 -5
- package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterV0.sol/ISharedMinterV0.json +7 -423
- package/artifacts/contracts/interfaces/v0.8.x/ISharedRandomizerV0.sol/ISharedRandomizerV0.json +17 -17
- package/artifacts/contracts/libs/v0.8.x/ABHelpers.sol/ABHelpers.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/AuthLib.sol/AuthLib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/Bytes32Strings.sol/Bytes32Strings.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/minter-libs/DAExpLib.sol/DAExpLib.json +60 -3
- 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 +60 -3
- 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 +29 -3
- package/artifacts/contracts/libs/v0.8.x/minter-libs/MerkleLib.sol/MerkleLib.json +30 -3
- package/artifacts/contracts/libs/v0.8.x/minter-libs/PolyptychLib.sol/PolyptychLib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/minter-libs/SEALib.sol/SEALib.json +254 -3
- package/artifacts/contracts/libs/v0.8.x/minter-libs/SetPriceLib.sol/SetPriceLib.json +48 -3
- package/artifacts/contracts/libs/v0.8.x/minter-libs/SettlementExpLib.sol/SettlementExpLib.json +41 -3
- package/artifacts/contracts/libs/v0.8.x/minter-libs/SplitFundsLib.sol/SplitFundsLib.json +35 -3
- package/artifacts/contracts/libs/v0.8.x/minter-libs/TokenHolderLib.sol/TokenHolderLib.json +79 -3
- package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV1.sol/MinterFilterV1.json +2 -2
- package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV2.sol/MinterFilterV2.json +41 -41
- package/artifacts/contracts/minter-suite/Minters/MinterDAExpHolderV5.sol/MinterDAExpHolderV5.json +66 -632
- package/artifacts/contracts/minter-suite/Minters/MinterDAExpSettlementV2.sol/MinterDAExpSettlementV2.json +2 -20
- package/artifacts/contracts/minter-suite/Minters/MinterDAExpSettlementV3.sol/MinterDAExpSettlementV3.json +67 -594
- package/artifacts/contracts/minter-suite/Minters/MinterDAExpV5.sol/MinterDAExpV5.json +33 -524
- package/artifacts/contracts/minter-suite/Minters/MinterDALinHolderV5.sol/MinterDALinHolderV5.json +66 -632
- package/artifacts/contracts/minter-suite/Minters/MinterDALinV5.sol/MinterDALinV5.json +33 -524
- package/artifacts/contracts/minter-suite/Minters/MinterSEAV1.sol/MinterSEAV1.json +51 -717
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20V5.sol/MinterSetPriceERC20V5.json +58 -454
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceHolderV5.sol/MinterSetPriceHolderV5.json +61 -552
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceMerkleV5.sol/MinterSetPriceMerkleV5.json +55 -497
- package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychERC20V5.sol/MinterSetPricePolyptychERC20V5.json +110 -571
- package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychV5.sol/MinterSetPricePolyptychV5.json +69 -560
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceV5.sol/MinterSetPriceV5.json +28 -444
- package/artifacts/contracts/mock/DummySharedMinter.sol/DummySharedMinter.json +2 -2
- package/artifacts/contracts/mock/GenArt721CoreV3_Engine_IncorrectCoreType.sol/GenArt721CoreV3_Engine_IncorrectCoreType.json +4 -9
- package/artifacts/contracts/mock/OriginRegisterMock.sol/OriginRegisterMock.json +2 -2
- package/artifacts/contracts/mock/ReentrancyHolderMockShared.sol/ReentrancyHolderMockShared.json +136 -0
- package/artifacts/contracts/mock/ReentrancyMerkleMockShared.sol/ReentrancyMerkleMockShared.json +105 -0
- package/artifacts/contracts/mock/ReentrancyMockShared.sol/ReentrancyMockShared.json +100 -0
- package/artifacts/contracts/mock/ReentrancySEAMockShared.sol/ReentrancySEAAutoBidderMockShared.json +69 -0
- package/artifacts/contracts/randomizer/shared/SharedRandomizerV0.sol/SharedRandomizerV0.json +19 -19
- package/contracts/DependencyRegistryV0.sol +84 -16
- package/contracts/archive/readme.md +16 -0
- package/contracts/engine/README.md +21 -0
- package/contracts/engine/V3/GenArt721CoreV3_Engine.sol +4 -10
- package/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol +4 -10
- package/contracts/engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol +4 -10
- package/contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol +4 -10
- package/contracts/engine-registry/CoreRegistryV1.sol +58 -65
- package/contracts/interfaces/v0.8.x/ICoreRegistryV1.sol +6 -8
- package/contracts/interfaces/v0.8.x/IDependencyRegistryV0.sol +3 -0
- package/contracts/interfaces/v0.8.x/IMinterFilterV1.sol +25 -25
- package/contracts/interfaces/v0.8.x/ISharedMinterDAExpSettlementV0.sol +11 -20
- package/contracts/interfaces/v0.8.x/ISharedMinterDAExpV0.sol +1 -14
- package/contracts/interfaces/v0.8.x/ISharedMinterDALinV0.sol +1 -15
- package/contracts/interfaces/v0.8.x/ISharedMinterDAV0.sol +2 -8
- package/contracts/interfaces/v0.8.x/ISharedMinterHolderERC20V0.sol +47 -0
- package/contracts/interfaces/v0.8.x/ISharedMinterHolderV0.sol +15 -43
- package/contracts/interfaces/v0.8.x/ISharedMinterMerkleV0.sol +10 -20
- package/contracts/interfaces/v0.8.x/ISharedMinterSEAV0.sol +4 -67
- package/contracts/interfaces/v0.8.x/ISharedMinterSimplePurchaseV0.sol +5 -5
- package/contracts/interfaces/v0.8.x/ISharedMinterV0.sol +7 -155
- package/contracts/interfaces/v0.8.x/ISharedRandomizerV0.sol +37 -37
- package/contracts/libs/v0.8.x/ABHelpers.sol +14 -14
- package/contracts/libs/v0.8.x/AuthLib.sol +101 -102
- package/contracts/libs/v0.8.x/Bytes32Strings.sol +5 -5
- package/contracts/libs/v0.8.x/minter-libs/DAExpLib.sol +163 -38
- package/contracts/libs/v0.8.x/minter-libs/DALib.sol +26 -0
- package/contracts/libs/v0.8.x/minter-libs/DALinLib.sol +144 -37
- package/contracts/libs/v0.8.x/minter-libs/GenericMinterEventsLib.sol +171 -0
- package/contracts/libs/v0.8.x/minter-libs/MaxInvocationsLib.sol +250 -110
- package/contracts/libs/v0.8.x/minter-libs/MerkleLib.sol +257 -48
- package/contracts/libs/v0.8.x/minter-libs/PolyptychLib.sol +138 -58
- package/contracts/libs/v0.8.x/minter-libs/SEALib.sol +778 -103
- package/contracts/libs/v0.8.x/minter-libs/SetPriceLib.sol +135 -13
- package/contracts/libs/v0.8.x/minter-libs/SettlementExpLib.sol +567 -187
- package/contracts/libs/v0.8.x/minter-libs/SplitFundsLib.sol +480 -322
- package/contracts/libs/v0.8.x/minter-libs/TokenHolderLib.sol +214 -76
- package/contracts/minter-suite/MinterFilter/MinterFilterV2.sol +347 -304
- package/contracts/minter-suite/Minters/MinterDAExpHolderV5.sol +391 -491
- package/contracts/minter-suite/Minters/MinterDAExpSettlementV2.sol +1 -54
- package/contracts/minter-suite/Minters/MinterDAExpSettlementV3.sol +388 -628
- package/contracts/minter-suite/Minters/MinterDAExpV5.sol +212 -273
- package/contracts/minter-suite/Minters/MinterDALinHolderV5.sol +393 -488
- package/contracts/minter-suite/Minters/MinterDALinV5.sol +220 -277
- package/contracts/minter-suite/Minters/MinterSEAV1.sol +327 -664
- package/contracts/minter-suite/Minters/MinterSetPriceERC20V5.sol +278 -303
- package/contracts/minter-suite/Minters/MinterSetPriceHolderV5.sol +355 -446
- package/contracts/minter-suite/Minters/MinterSetPriceMerkleV5.sol +328 -416
- package/contracts/minter-suite/Minters/MinterSetPricePolyptychERC20V5.sol +538 -622
- package/contracts/minter-suite/Minters/MinterSetPricePolyptychV5.sol +429 -553
- package/contracts/minter-suite/Minters/MinterSetPriceV5.sol +180 -227
- package/contracts/mock/GenArt721CoreV3_Engine_IncorrectCoreType.sol +3 -10
- package/contracts/mock/ReentrancyHolderMockShared.sol +59 -0
- package/contracts/mock/ReentrancyMerkleMockShared.sol +58 -0
- package/contracts/mock/ReentrancyMockShared.sol +48 -0
- package/contracts/mock/ReentrancySEAMockShared.sol +40 -0
- package/contracts/randomizer/shared/SharedRandomizerV0.sol +78 -70
- package/package.json +39 -33
|
@@ -6,22 +6,20 @@ import "./IEngineRegistryV0.sol";
|
|
|
6
6
|
|
|
7
7
|
interface ICoreRegistryV1 is IEngineRegistryV0 {
|
|
8
8
|
function registerContracts(
|
|
9
|
-
address[] calldata
|
|
10
|
-
bytes32[] calldata
|
|
11
|
-
bytes32[] calldata
|
|
9
|
+
address[] calldata contractAddresses,
|
|
10
|
+
bytes32[] calldata coreVersions,
|
|
11
|
+
bytes32[] calldata coreTypes
|
|
12
12
|
) external;
|
|
13
13
|
|
|
14
|
-
function unregisterContracts(
|
|
15
|
-
address[] calldata _contractAddresses
|
|
16
|
-
) external;
|
|
14
|
+
function unregisterContracts(address[] calldata contractAddresses) external;
|
|
17
15
|
|
|
18
16
|
function getNumRegisteredContracts() external view returns (uint256);
|
|
19
17
|
|
|
20
18
|
function getRegisteredContractAt(
|
|
21
|
-
uint256
|
|
19
|
+
uint256 index
|
|
22
20
|
) external view returns (address);
|
|
23
21
|
|
|
24
22
|
function isRegisteredContract(
|
|
25
|
-
address
|
|
23
|
+
address contractAddress
|
|
26
24
|
) external view returns (bool isRegistered);
|
|
27
25
|
}
|
|
@@ -18,8 +18,11 @@ interface IDependencyRegistryV0 {
|
|
|
18
18
|
uint256 indexed _projectId
|
|
19
19
|
);
|
|
20
20
|
|
|
21
|
+
event LicenseTypeAdded(bytes32 indexed _licenseType);
|
|
22
|
+
|
|
21
23
|
event DependencyAdded(
|
|
22
24
|
bytes32 indexed _dependencyType,
|
|
25
|
+
bytes32 indexed _licenseType,
|
|
23
26
|
string _preferredCDN,
|
|
24
27
|
string _preferredRepository,
|
|
25
28
|
string _referenceWebsite
|
|
@@ -93,55 +93,55 @@ interface IMinterFilterV1 {
|
|
|
93
93
|
}
|
|
94
94
|
|
|
95
95
|
function setMinterForProject(
|
|
96
|
-
uint256
|
|
97
|
-
address
|
|
98
|
-
address
|
|
96
|
+
uint256 projectId,
|
|
97
|
+
address coreContract,
|
|
98
|
+
address minter
|
|
99
99
|
) external;
|
|
100
100
|
|
|
101
101
|
function removeMinterForProject(
|
|
102
|
-
uint256
|
|
103
|
-
address
|
|
102
|
+
uint256 projectId,
|
|
103
|
+
address coreContract
|
|
104
104
|
) external;
|
|
105
105
|
|
|
106
106
|
// @dev function name is optimized for gas
|
|
107
107
|
function mint_joo(
|
|
108
|
-
address
|
|
109
|
-
uint256
|
|
110
|
-
address
|
|
111
|
-
address
|
|
108
|
+
address to,
|
|
109
|
+
uint256 projectId,
|
|
110
|
+
address coreContract,
|
|
111
|
+
address sender
|
|
112
112
|
) external returns (uint256);
|
|
113
113
|
|
|
114
|
-
function updateCoreRegistry(address
|
|
114
|
+
function updateCoreRegistry(address coreRegistry) external;
|
|
115
115
|
|
|
116
116
|
/**
|
|
117
|
-
* @notice Returns if `
|
|
118
|
-
* with `
|
|
117
|
+
* @notice Returns if `sender` is allowed to call function on `contract`
|
|
118
|
+
* with `selector` selector, according to the MinterFilter's Admin ACL.
|
|
119
119
|
*/
|
|
120
120
|
function adminACLAllowed(
|
|
121
|
-
address
|
|
122
|
-
address
|
|
123
|
-
bytes4
|
|
121
|
+
address sender,
|
|
122
|
+
address contract_,
|
|
123
|
+
bytes4 selector
|
|
124
124
|
) external returns (bool);
|
|
125
125
|
|
|
126
126
|
function minterFilterType() external pure returns (string memory);
|
|
127
127
|
|
|
128
128
|
function getMinterForProject(
|
|
129
|
-
uint256
|
|
130
|
-
address
|
|
129
|
+
uint256 projectId,
|
|
130
|
+
address coreContract
|
|
131
131
|
) external view returns (address);
|
|
132
132
|
|
|
133
133
|
function projectHasMinter(
|
|
134
|
-
uint256
|
|
135
|
-
address
|
|
134
|
+
uint256 projectId,
|
|
135
|
+
address coreContract
|
|
136
136
|
) external view returns (bool);
|
|
137
137
|
|
|
138
138
|
/**
|
|
139
139
|
* @notice View that returns if a core contract is registered with the
|
|
140
140
|
* core registry, allowing this minter filter to service it.
|
|
141
|
-
* @param
|
|
141
|
+
* @param coreContract core contract address to be checked
|
|
142
142
|
*/
|
|
143
143
|
function isRegisteredCoreContract(
|
|
144
|
-
address
|
|
144
|
+
address coreContract
|
|
145
145
|
) external view returns (bool);
|
|
146
146
|
|
|
147
147
|
/// Address of current core registry contract
|
|
@@ -152,12 +152,12 @@ interface IMinterFilterV1 {
|
|
|
152
152
|
|
|
153
153
|
/// The quantity of projects on a core contract that have assigned minters
|
|
154
154
|
function getNumProjectsOnContractWithMinters(
|
|
155
|
-
address
|
|
155
|
+
address coreContract
|
|
156
156
|
) external view returns (uint256);
|
|
157
157
|
|
|
158
158
|
function getProjectAndMinterInfoOnContractAt(
|
|
159
|
-
address
|
|
160
|
-
uint256
|
|
159
|
+
address coreContract,
|
|
160
|
+
uint256 index
|
|
161
161
|
)
|
|
162
162
|
external
|
|
163
163
|
view
|
|
@@ -173,7 +173,7 @@ interface IMinterFilterV1 {
|
|
|
173
173
|
returns (MinterWithType[] memory mintersWithTypes);
|
|
174
174
|
|
|
175
175
|
function getAllContractApprovedMinters(
|
|
176
|
-
address
|
|
176
|
+
address coreContract
|
|
177
177
|
) external view returns (MinterWithType[] memory mintersWithTypes);
|
|
178
178
|
|
|
179
179
|
/**
|
|
@@ -5,33 +5,24 @@ pragma solidity ^0.8.0;
|
|
|
5
5
|
import "./ISharedMinterDAExpV0.sol";
|
|
6
6
|
|
|
7
7
|
interface ISharedMinterDAExpSettlementV0 is ISharedMinterDAExpV0 {
|
|
8
|
-
///
|
|
9
|
-
event ReceiptUpdated(
|
|
10
|
-
address indexed _purchaser,
|
|
11
|
-
uint256 indexed _projectId,
|
|
12
|
-
address indexed _coreContract,
|
|
13
|
-
uint24 _numPurchased,
|
|
14
|
-
uint256 _netPosted
|
|
15
|
-
);
|
|
16
|
-
|
|
17
|
-
/// returns latest purchase price for project `_projectId`, or 0 if no
|
|
8
|
+
/// returns latest purchase price for project `projectId`, or 0 if no
|
|
18
9
|
/// purchases have been made.
|
|
19
10
|
function getProjectLatestPurchasePrice(
|
|
20
|
-
uint256
|
|
21
|
-
address
|
|
11
|
+
uint256 projectId,
|
|
12
|
+
address coreContract
|
|
22
13
|
) external view returns (uint256 latestPurchasePrice);
|
|
23
14
|
|
|
24
|
-
/// returns the number of settleable invocations for project `
|
|
15
|
+
/// returns the number of settleable invocations for project `projectId`.
|
|
25
16
|
function getNumSettleableInvocations(
|
|
26
|
-
uint256
|
|
27
|
-
address
|
|
17
|
+
uint256 projectId,
|
|
18
|
+
address coreContract
|
|
28
19
|
) external view returns (uint256 numSettleableInvocations);
|
|
29
20
|
|
|
30
|
-
/// Returns the current excess settlement funds on project `
|
|
31
|
-
/// for address `
|
|
21
|
+
/// Returns the current excess settlement funds on project `projectId`
|
|
22
|
+
/// for address `walletAddress`.
|
|
32
23
|
function getProjectExcessSettlementFunds(
|
|
33
|
-
uint256
|
|
34
|
-
address
|
|
35
|
-
address
|
|
24
|
+
uint256 projectId,
|
|
25
|
+
address coreContract,
|
|
26
|
+
address walletAddress
|
|
36
27
|
) external view returns (uint256 excessSettlementFundsInWei);
|
|
37
28
|
}
|
|
@@ -4,22 +4,9 @@
|
|
|
4
4
|
pragma solidity ^0.8.0;
|
|
5
5
|
|
|
6
6
|
interface ISharedMinterDAExpV0 {
|
|
7
|
-
event SetAuctionDetailsExp(
|
|
8
|
-
uint256 indexed _projectId,
|
|
9
|
-
address indexed _coreContract,
|
|
10
|
-
uint40 _auctionTimestampStart,
|
|
11
|
-
uint40 _priceDecayHalfLifeSeconds,
|
|
12
|
-
uint256 _startPrice,
|
|
13
|
-
uint256 _basePrice
|
|
14
|
-
);
|
|
15
|
-
/// Minimum allowed price decay half life seconds updated.
|
|
16
|
-
event AuctionMinHalfLifeSecondsUpdated(
|
|
17
|
-
uint256 _minimumPriceDecayHalfLifeSeconds
|
|
18
|
-
);
|
|
19
|
-
|
|
20
7
|
function minimumPriceDecayHalfLifeSeconds() external view returns (uint256);
|
|
21
8
|
|
|
22
9
|
function setMinimumPriceDecayHalfLifeSeconds(
|
|
23
|
-
uint256
|
|
10
|
+
uint256 minimumPriceDecayHalfLifeSeconds
|
|
24
11
|
) external;
|
|
25
12
|
}
|
|
@@ -4,23 +4,9 @@
|
|
|
4
4
|
pragma solidity ^0.8.0;
|
|
5
5
|
|
|
6
6
|
interface ISharedMinterDALinV0 {
|
|
7
|
-
event SetAuctionDetailsLin(
|
|
8
|
-
uint256 indexed _projectId,
|
|
9
|
-
address indexed _coreContract,
|
|
10
|
-
uint40 _auctionTimestampStart,
|
|
11
|
-
uint40 _auctionTimestampEnd,
|
|
12
|
-
uint256 _startPrice,
|
|
13
|
-
uint256 _basePrice
|
|
14
|
-
);
|
|
15
|
-
|
|
16
|
-
/// Minimum allowed auction length updated
|
|
17
|
-
event AuctionMinimumLengthSecondsUpdated(
|
|
18
|
-
uint256 _minimumAuctionLengthSeconds
|
|
19
|
-
);
|
|
20
|
-
|
|
21
7
|
function minimumAuctionLengthSeconds() external view returns (uint256);
|
|
22
8
|
|
|
23
9
|
function setMinimumAuctionLengthSeconds(
|
|
24
|
-
uint256
|
|
10
|
+
uint256 minimumAuctionLengthSeconds
|
|
25
11
|
) external;
|
|
26
12
|
}
|
|
@@ -4,16 +4,10 @@
|
|
|
4
4
|
pragma solidity ^0.8.0;
|
|
5
5
|
|
|
6
6
|
interface ISharedMinterDAV0 {
|
|
7
|
-
/// Auction details cleared for project `projectId`.
|
|
8
|
-
event ResetAuctionDetails(
|
|
9
|
-
uint256 indexed _projectId,
|
|
10
|
-
address indexed _coreContract
|
|
11
|
-
);
|
|
12
|
-
|
|
13
7
|
// @dev return variables left unnamed because specific minter
|
|
14
8
|
// implementations may return different values for the same slots
|
|
15
9
|
function projectAuctionParameters(
|
|
16
|
-
uint256
|
|
17
|
-
address
|
|
10
|
+
uint256 projectId,
|
|
11
|
+
address coreContract
|
|
18
12
|
) external view returns (uint40, uint40, uint256, uint256);
|
|
19
13
|
}
|
|
@@ -0,0 +1,47 @@
|
|
|
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 This interface adds support for including token holder gating when purchasing with ERC20 tokens.
|
|
8
|
+
* @author Art Blocks Inc.
|
|
9
|
+
*/
|
|
10
|
+
interface ISharedMinterHolderERC20V0 {
|
|
11
|
+
// Triggers a purchase of a token from the desired project, to the
|
|
12
|
+
// TX-sending address, using owned ERC-721 NFT to claim right to purchase.
|
|
13
|
+
function purchase(
|
|
14
|
+
uint256 projectId,
|
|
15
|
+
address coreContract,
|
|
16
|
+
uint256 maxPricePerToken,
|
|
17
|
+
address currencyAddress,
|
|
18
|
+
address ownedNFTAddress,
|
|
19
|
+
uint256 ownedNFTTokenId
|
|
20
|
+
) external returns (uint256 tokenId);
|
|
21
|
+
|
|
22
|
+
// Triggers a purchase of a token from the desired project, to the specified
|
|
23
|
+
// receiving address, using owned ERC-721 NFT to claim right to purchase.
|
|
24
|
+
function purchaseTo(
|
|
25
|
+
address to,
|
|
26
|
+
uint256 projectId,
|
|
27
|
+
address coreContract,
|
|
28
|
+
uint256 maxPricePerToken,
|
|
29
|
+
address currencyAddress,
|
|
30
|
+
address ownedNFTAddress,
|
|
31
|
+
uint256 ownedNFTTokenId
|
|
32
|
+
) external returns (uint256 tokenId);
|
|
33
|
+
|
|
34
|
+
// Triggers a purchase of a token from the desired project, on behalf of
|
|
35
|
+
// the provided vault, to the specified receiving address, using owned
|
|
36
|
+
// ERC-721 NFT to claim right to purchase.
|
|
37
|
+
function purchaseTo(
|
|
38
|
+
address to,
|
|
39
|
+
uint256 projectId,
|
|
40
|
+
address coreContract,
|
|
41
|
+
uint256 maxPricePerToken,
|
|
42
|
+
address currencyAddress,
|
|
43
|
+
address ownedNFTAddress,
|
|
44
|
+
uint256 ownedNFTTokenId,
|
|
45
|
+
address vault
|
|
46
|
+
) external returns (uint256 tokenId);
|
|
47
|
+
}
|
|
@@ -8,62 +8,34 @@ pragma solidity ^0.8.0;
|
|
|
8
8
|
* @author Art Blocks Inc.
|
|
9
9
|
*/
|
|
10
10
|
interface ISharedMinterHolderV0 {
|
|
11
|
-
event DelegationRegistryUpdated(address delegationRegistry);
|
|
12
|
-
/**
|
|
13
|
-
* @notice Allow holders of NFTs at addresses `_ownedNFTAddresses`, project
|
|
14
|
-
* IDs `_ownedNFTProjectIds` to mint on project `_projectId`.
|
|
15
|
-
* `_ownedNFTAddresses` assumed to be aligned with `_ownedNFTProjectIds`.
|
|
16
|
-
* e.g. Allows holders of project `_ownedNFTProjectIds[0]` on token
|
|
17
|
-
* contract `_ownedNFTAddresses[0]` to mint.
|
|
18
|
-
*/
|
|
19
|
-
event AllowedHoldersOfProjects(
|
|
20
|
-
uint256 indexed _projectId,
|
|
21
|
-
address indexed _coreContract,
|
|
22
|
-
address[] _ownedNFTAddresses,
|
|
23
|
-
uint256[] _ownedNFTProjectIds
|
|
24
|
-
);
|
|
25
|
-
/**
|
|
26
|
-
* @notice Remove holders of NFTs at addresses `_ownedNFTAddresses`,
|
|
27
|
-
* project IDs `_ownedNFTProjectIds` to mint on project `_projectId`.
|
|
28
|
-
* `_ownedNFTAddresses` assumed to be aligned with `_ownedNFTProjectIds`.
|
|
29
|
-
* e.g. Removes holders of project `_ownedNFTProjectIds[0]` on token
|
|
30
|
-
* contract `_ownedNFTAddresses[0]` from mint allowlist.
|
|
31
|
-
*/
|
|
32
|
-
event RemovedHoldersOfProjects(
|
|
33
|
-
uint256 indexed _projectId,
|
|
34
|
-
address indexed _coreContract,
|
|
35
|
-
address[] _ownedNFTAddresses,
|
|
36
|
-
uint256[] _ownedNFTProjectIds
|
|
37
|
-
);
|
|
38
|
-
|
|
39
11
|
// Triggers a purchase of a token from the desired project, to the
|
|
40
12
|
// TX-sending address, using owned ERC-721 NFT to claim right to purchase.
|
|
41
13
|
function purchase(
|
|
42
|
-
uint256
|
|
43
|
-
address
|
|
44
|
-
address
|
|
45
|
-
uint256
|
|
14
|
+
uint256 projectId,
|
|
15
|
+
address coreContract,
|
|
16
|
+
address ownedNFTAddress,
|
|
17
|
+
uint256 ownedNFTTokenId
|
|
46
18
|
) external payable returns (uint256 tokenId);
|
|
47
19
|
|
|
48
20
|
// Triggers a purchase of a token from the desired project, to the specified
|
|
49
21
|
// receiving address, using owned ERC-721 NFT to claim right to purchase.
|
|
50
22
|
function purchaseTo(
|
|
51
|
-
address
|
|
52
|
-
uint256
|
|
53
|
-
address
|
|
54
|
-
address
|
|
55
|
-
uint256
|
|
23
|
+
address to,
|
|
24
|
+
uint256 projectId,
|
|
25
|
+
address coreContract,
|
|
26
|
+
address ownedNFTAddress,
|
|
27
|
+
uint256 ownedNFTTokenId
|
|
56
28
|
) external payable returns (uint256 tokenId);
|
|
57
29
|
|
|
58
30
|
// Triggers a purchase of a token from the desired project, on behalf of
|
|
59
31
|
// the provided vault, to the specified receiving address, using owned
|
|
60
32
|
// ERC-721 NFT to claim right to purchase.
|
|
61
33
|
function purchaseTo(
|
|
62
|
-
address
|
|
63
|
-
uint256
|
|
64
|
-
address
|
|
65
|
-
address
|
|
66
|
-
uint256
|
|
67
|
-
address
|
|
34
|
+
address to,
|
|
35
|
+
uint256 projectId,
|
|
36
|
+
address coreContract,
|
|
37
|
+
address ownedNFTAddress,
|
|
38
|
+
uint256 ownedNFTTokenId,
|
|
39
|
+
address vault
|
|
68
40
|
) external payable returns (uint256 tokenId);
|
|
69
41
|
}
|
|
@@ -8,37 +8,27 @@ pragma solidity ^0.8.0;
|
|
|
8
8
|
* @author Art Blocks Inc.
|
|
9
9
|
*/
|
|
10
10
|
interface ISharedMinterMerkleV0 {
|
|
11
|
-
/**
|
|
12
|
-
* @notice Notifies of the contract's default maximum mints allowed per
|
|
13
|
-
* user for a given project, on this minter. This value can be overridden
|
|
14
|
-
* by the artist of any project at any time.
|
|
15
|
-
*/
|
|
16
|
-
event DefaultMaxInvocationsPerAddress(
|
|
17
|
-
uint256 defaultMaxInvocationsPerAddress
|
|
18
|
-
);
|
|
19
|
-
event DelegationRegistryUpdated(address delegationRegistry);
|
|
20
|
-
|
|
21
11
|
// Triggers a purchase of a token from the desired project, to the
|
|
22
12
|
// TX-sending address. Requires Merkle proof.
|
|
23
13
|
function purchase(
|
|
24
|
-
uint256
|
|
25
|
-
address
|
|
26
|
-
bytes32[] calldata
|
|
14
|
+
uint256 projectId,
|
|
15
|
+
address coreContract,
|
|
16
|
+
bytes32[] calldata proof
|
|
27
17
|
) external payable returns (uint256 tokenId);
|
|
28
18
|
|
|
29
19
|
// Triggers a purchase of a token from the desired project, to the specified
|
|
30
20
|
// receiving address. Requires Merkle proof.
|
|
31
21
|
function purchaseTo(
|
|
32
|
-
address
|
|
33
|
-
uint256
|
|
34
|
-
address
|
|
35
|
-
bytes32[] calldata
|
|
22
|
+
address to,
|
|
23
|
+
uint256 projectId,
|
|
24
|
+
address coreContract,
|
|
25
|
+
bytes32[] calldata proof
|
|
36
26
|
) external payable returns (uint256 tokenId);
|
|
37
27
|
|
|
38
28
|
// Updates the Merkle root for the desired project.
|
|
39
29
|
function updateMerkleRoot(
|
|
40
|
-
uint256
|
|
41
|
-
address
|
|
42
|
-
bytes32
|
|
30
|
+
uint256 projectId,
|
|
31
|
+
address coreContract,
|
|
32
|
+
bytes32 root
|
|
43
33
|
) external;
|
|
44
34
|
}
|
|
@@ -8,71 +8,8 @@ pragma solidity ^0.8.0;
|
|
|
8
8
|
* @author Art Blocks Inc.
|
|
9
9
|
*/
|
|
10
10
|
interface ISharedMinterSEAV0 {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
event MinAuctionDurationSecondsUpdated(uint256 minAuctionDurationSeconds);
|
|
16
|
-
|
|
17
|
-
/// Admin-controlled time buffer updated
|
|
18
|
-
event MinterTimeBufferUpdated(uint32 minterTimeBufferSeconds);
|
|
19
|
-
|
|
20
|
-
// Admin-controlled refund gas limit updated
|
|
21
|
-
event MinterRefundGasLimitUpdated(uint24 refundGasLimit);
|
|
22
|
-
|
|
23
|
-
/// Artist configured future auction details
|
|
24
|
-
event ConfiguredFutureAuctions(
|
|
25
|
-
uint256 indexed projectId,
|
|
26
|
-
address indexed coreContract,
|
|
27
|
-
uint64 timestampStart,
|
|
28
|
-
uint32 auctionDurationSeconds,
|
|
29
|
-
uint256 basePrice,
|
|
30
|
-
uint8 minBidIncrementPercentage
|
|
31
|
-
);
|
|
32
|
-
|
|
33
|
-
/// New token auction created, token created and sent to minter
|
|
34
|
-
event AuctionInitialized(
|
|
35
|
-
uint256 indexed tokenId,
|
|
36
|
-
address indexed coreContract,
|
|
37
|
-
address indexed bidder,
|
|
38
|
-
uint256 bidAmount,
|
|
39
|
-
uint64 endTime,
|
|
40
|
-
uint8 minBidIncrementPercentage
|
|
41
|
-
);
|
|
42
|
-
|
|
43
|
-
/// Successful bid placed on token auction
|
|
44
|
-
event AuctionBid(
|
|
45
|
-
uint256 indexed tokenId,
|
|
46
|
-
address indexed coreContract,
|
|
47
|
-
address indexed bidder,
|
|
48
|
-
uint256 bidAmount
|
|
49
|
-
);
|
|
50
|
-
|
|
51
|
-
/// Token auction was settled (token distributed to winner)
|
|
52
|
-
event AuctionSettled(
|
|
53
|
-
uint256 indexed tokenId,
|
|
54
|
-
address indexed coreContract,
|
|
55
|
-
address indexed winner,
|
|
56
|
-
uint256 price
|
|
57
|
-
);
|
|
58
|
-
|
|
59
|
-
/// Future auction details for project `projectId` reset
|
|
60
|
-
event ResetAuctionDetails(
|
|
61
|
-
uint256 indexed projectId,
|
|
62
|
-
address indexed coreContract
|
|
63
|
-
);
|
|
64
|
-
|
|
65
|
-
// Next token ID for project `projectId` updated
|
|
66
|
-
event ProjectNextTokenUpdated(
|
|
67
|
-
uint256 indexed projectId,
|
|
68
|
-
address indexed coreContract,
|
|
69
|
-
uint256 tokenId
|
|
70
|
-
);
|
|
71
|
-
|
|
72
|
-
// Next token ID for project `projectId` was ejected from the minter
|
|
73
|
-
// and is no longer populated
|
|
74
|
-
event ProjectNextTokenEjected(
|
|
75
|
-
uint256 indexed projectId,
|
|
76
|
-
address indexed coreContract
|
|
77
|
-
);
|
|
11
|
+
function createBid(
|
|
12
|
+
uint256 projectId,
|
|
13
|
+
address coreContract
|
|
14
|
+
) external payable;
|
|
78
15
|
}
|
|
@@ -14,15 +14,15 @@ interface ISharedMinterSimplePurchaseV0 {
|
|
|
14
14
|
// Triggers a purchase of a token from the desired project, to the
|
|
15
15
|
// TX-sending address.
|
|
16
16
|
function purchase(
|
|
17
|
-
uint256
|
|
18
|
-
address
|
|
17
|
+
uint256 projectId,
|
|
18
|
+
address coreContract
|
|
19
19
|
) external payable returns (uint256 tokenId);
|
|
20
20
|
|
|
21
21
|
// Triggers a purchase of a token from the desired project, to the specified
|
|
22
22
|
// receiving address.
|
|
23
23
|
function purchaseTo(
|
|
24
|
-
address
|
|
25
|
-
uint256
|
|
26
|
-
address
|
|
24
|
+
address to,
|
|
25
|
+
uint256 projectId,
|
|
26
|
+
address coreContract
|
|
27
27
|
) external payable returns (uint256 tokenId);
|
|
28
28
|
}
|