@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.
Files changed (196) hide show
  1. package/.env.example +10 -0
  2. package/LICENSE +165 -0
  3. package/README.md +286 -0
  4. package/artifacts/contracts/AdminACLV0.sol/AdminACLV0.json +164 -0
  5. package/artifacts/contracts/AdminACLV1.sol/AdminACLV1.json +248 -0
  6. package/artifacts/contracts/BasicRandomizer.sol/BasicRandomizer.json +24 -0
  7. package/artifacts/contracts/BasicRandomizerV2.sol/BasicRandomizerV2.json +102 -0
  8. package/artifacts/contracts/DependencyRegistryV0.sol/DependencyRegistryV0.json +1020 -0
  9. package/artifacts/contracts/GenArt721CoreV3.sol/GenArt721CoreV3.json +1928 -0
  10. package/artifacts/contracts/GenArt721CoreV3_Engine.sol/GenArt721CoreV3_Engine.json +1942 -0
  11. package/artifacts/contracts/engine/GenArt721CoreV2_ENGINE_FLEX.sol/GenArt721CoreV2_ENGINE_FLEX.json +1708 -0
  12. package/artifacts/contracts/engine/GenArt721CoreV2_PBAB.sol/GenArt721CoreV2_PBAB.json +1410 -0
  13. package/artifacts/contracts/engine/GenArt721CoreV2_PRTNR.sol/GenArt721CoreV2_PRTNR.json +1436 -0
  14. package/artifacts/contracts/engine/GenArt721MinterBurner_PBAB.sol/GenArt721MinterBurner_PBAB.json +437 -0
  15. package/artifacts/contracts/engine/GenArt721MinterDAExp_PBAB.sol/GenArt721MinterDAExp_PBAB.json +508 -0
  16. package/artifacts/contracts/engine/GenArt721Minter_PBAB.sol/GenArt721Minter_PBAB.json +381 -0
  17. package/artifacts/contracts/engine-registry/EngineRegistryV0.sol/EngineRegistryV0.json +109 -0
  18. package/artifacts/contracts/engine-registry/future/EngineRegistryV1.sol/EngineRegistryV1.json +109 -0
  19. package/artifacts/contracts/explorations/GenArt721CoreV3_Explorations.sol/GenArt721CoreV3_Explorations.json +1902 -0
  20. package/artifacts/contracts/interfaces/0.5.x/IBonusContract.sol/IBonusContract.json +47 -0
  21. package/artifacts/contracts/interfaces/0.5.x/IGenArt721CoreContractV1.sol/IGenArt721CoreContractV1.json +413 -0
  22. package/artifacts/contracts/interfaces/0.5.x/IGenArt721CoreV2_PBAB.sol/IGenArt721CoreV2_PBAB.json +392 -0
  23. package/artifacts/contracts/interfaces/0.5.x/IRandomizer.sol/IRandomizer.json +26 -0
  24. package/artifacts/contracts/interfaces/0.8.x/IAdminACLV0.sol/IAdminACLV0.json +122 -0
  25. package/artifacts/contracts/interfaces/0.8.x/IArtblocksRoyaltyOverride.sol/IArtblocksRoyaltyOverride.json +59 -0
  26. package/artifacts/contracts/interfaces/0.8.x/IBonusContract.sol/IBonusContract.json +43 -0
  27. package/artifacts/contracts/interfaces/0.8.x/IDelegationRegistry.sol/IDelegationRegistry.json +510 -0
  28. package/artifacts/contracts/interfaces/0.8.x/IDependencyRegistryCompatibleV0.sol/IDependencyRegistryCompatibleV0.json +53 -0
  29. package/artifacts/contracts/interfaces/0.8.x/IDependencyRegistryV0.sol/IDependencyRegistryV0.json +350 -0
  30. package/artifacts/contracts/interfaces/0.8.x/IEngineRegistryV0.sol/IEngineRegistryV0.json +85 -0
  31. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterDAExpSettlementV0.sol/IFilteredMinterDAExpSettlementV0.json +730 -0
  32. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterDAExpV0.sol/IFilteredMinterDAExpV0.json +311 -0
  33. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterDAExpV1.sol/IFilteredMinterDAExpV1.json +617 -0
  34. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterDALinV0.sol/IFilteredMinterDALinV0.json +292 -0
  35. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterDALinV1.sol/IFilteredMinterDALinV1.json +598 -0
  36. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterHolderV0.sol/IFilteredMinterHolderV0.json +355 -0
  37. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterHolderV1.sol/IFilteredMinterHolderV1.json +368 -0
  38. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterHolderV2.sol/IFilteredMinterHolderV2.json +674 -0
  39. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterMerkleV0.sol/IFilteredMinterMerkleV0.json +551 -0
  40. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterMerkleV1.sol/IFilteredMinterMerkleV1.json +564 -0
  41. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterMerkleV2.sol/IFilteredMinterMerkleV2.json +601 -0
  42. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterV0.sol/IFilteredMinterV0.json +216 -0
  43. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterV1.sol/IFilteredMinterV1.json +485 -0
  44. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterV2.sol/IFilteredMinterV2.json +522 -0
  45. package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreContractV1.sol/IGenArt721CoreContractV1.json +299 -0
  46. package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreContractV3.sol/IGenArt721CoreContractV3.json +609 -0
  47. package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Base.sol/IGenArt721CoreContractV3_Base.json +448 -0
  48. package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Engine.sol/IGenArt721CoreContractV3_Engine.json +649 -0
  49. package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreV2_PBAB.sol/IGenArt721CoreV2_PBAB.json +362 -0
  50. package/artifacts/contracts/interfaces/0.8.x/IManifold.sol/IManifold.json +35 -0
  51. package/artifacts/contracts/interfaces/0.8.x/IMinterFilterV0.sol/IMinterFilterV0.json +192 -0
  52. package/artifacts/contracts/interfaces/0.8.x/IRandomizer.sol/IRandomizer.json +24 -0
  53. package/artifacts/contracts/interfaces/0.8.x/IRandomizerV2.sol/IRandomizerV2.json +37 -0
  54. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/Address.json +10 -0
  55. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/Counters.json +10 -0
  56. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/CustomERC721Metadata.json +425 -0
  57. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/ERC165.json +38 -0
  58. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/ERC721.json +322 -0
  59. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/ERC721Enumerable.json +384 -0
  60. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/GenArt721CoreV1.json +1773 -0
  61. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/IERC165.json +32 -0
  62. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/IERC721.json +316 -0
  63. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/IERC721Enumerable.json +378 -0
  64. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/IERC721Receiver.json +47 -0
  65. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/SafeMath.json +10 -0
  66. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/Strings.json +10 -0
  67. package/artifacts/contracts/legacy/GenArt721LegacyMinter.sol/GenArt721LegacyMinter.json +338 -0
  68. package/artifacts/contracts/libs/0.5.x/CustomERC721Metadata.sol/CustomERC721Metadata.json +425 -0
  69. package/artifacts/contracts/libs/0.5.x/IERC20.sol/IERC20.json +206 -0
  70. package/artifacts/contracts/libs/0.5.x/SafeMath.sol/SafeMath.json +10 -0
  71. package/artifacts/contracts/libs/0.5.x/Strings.sol/Strings.json +10 -0
  72. package/artifacts/contracts/libs/0.8.x/BytecodeStorage.sol/BytecodeStorage.json +10 -0
  73. package/artifacts/contracts/libs/0.8.x/Bytes32Strings.sol/Bytes32Strings.json +10 -0
  74. package/artifacts/contracts/libs/0.8.x/ERC721_PackedHashSeed.sol/ERC721_PackedHashSeed.json +357 -0
  75. package/artifacts/contracts/libs/integration-refs/delegation-registry/DelegationRegistry.sol/DelegationRegistry.json +529 -0
  76. package/artifacts/contracts/libs/integration-refs/gnosis-safe/GnosisSafeMock.sol/GnosisSafeMock.json +1037 -0
  77. package/artifacts/contracts/libs/integration-refs/gnosis-safe/GnosisSafeProxyFactoryMock.sol/GnosisSafeProxyFactoryMock.json +172 -0
  78. package/artifacts/contracts/libs/integration-refs/gnosis-safe/MultiSendMock.sol/MultiSendMock.json +24 -0
  79. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV0.sol/MinterFilterV0.json +342 -0
  80. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV1.sol/MinterFilterV1.json +322 -0
  81. package/artifacts/contracts/minter-suite/Minters/MinterDAExp/MinterDAExpV2.sol/MinterDAExpV2.json +550 -0
  82. package/artifacts/contracts/minter-suite/Minters/MinterDAExp/MinterDAExpV3.sol/MinterDAExpV3.json +856 -0
  83. package/artifacts/contracts/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol/MinterDAExpSettlementV0.json +1053 -0
  84. package/artifacts/contracts/minter-suite/Minters/MinterDALin/MinterDALinV2.sol/MinterDALinV2.json +526 -0
  85. package/artifacts/contracts/minter-suite/Minters/MinterDALin/MinterDALinV3.sol/MinterDALinV3.json +832 -0
  86. package/artifacts/contracts/minter-suite/Minters/MinterHolder/MinterHolderV2.sol/MinterHolderV2.json +794 -0
  87. package/artifacts/contracts/minter-suite/Minters/MinterHolder/MinterHolderV3.sol/MinterHolderV3.json +1100 -0
  88. package/artifacts/contracts/minter-suite/Minters/MinterMerkle/MinterMerkleV3.sol/MinterMerkleV3.json +1002 -0
  89. package/artifacts/contracts/minter-suite/Minters/MinterMerkle/MinterMerkleV4.sol/MinterMerkleV4.json +1039 -0
  90. package/artifacts/contracts/minter-suite/Minters/MinterSetPrice/MinterSetPriceV2.sol/MinterSetPriceV2.json +365 -0
  91. package/artifacts/contracts/minter-suite/Minters/MinterSetPrice/MinterSetPriceV3.sol/MinterSetPriceV3.json +671 -0
  92. package/artifacts/contracts/minter-suite/Minters/MinterSetPrice/deprecated/MinterSetPriceV1.sol/MinterSetPriceV1.json +288 -0
  93. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V2.sol/MinterSetPriceERC20V2.json +436 -0
  94. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V3.sol/MinterSetPriceERC20V3.json +742 -0
  95. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20/deprecated/MinterSetPriceERC20V0.sol/MinterSetPriceERC20V0.json +461 -0
  96. package/artifacts/contracts/mock/BytecodeTextCR_DMock.sol/BytecodeTextCR_DMock.json +194 -0
  97. package/artifacts/contracts/mock/DeadReceiverMock.sol/DeadReceiverMock.json +15 -0
  98. package/artifacts/contracts/mock/ERC20Mock.sol/ERC20Mock.json +292 -0
  99. package/artifacts/contracts/mock/MockAdminACLV0.sol/MockAdminACLV0Events.json +165 -0
  100. package/artifacts/contracts/mock/RandomizerV2_NoAssignMock.sol/RandomizerV2_NoAssignMock.json +128 -0
  101. package/artifacts/contracts/mock/ReentrancyHolderMock.sol/ReentrancyHolderMock.json +118 -0
  102. package/artifacts/contracts/mock/ReentrancyMerkleMock.sol/ReentrancyMerkleMock.json +87 -0
  103. package/artifacts/contracts/mock/ReentrancyMock.sol/ReentrancyMock.json +82 -0
  104. package/artifacts/contracts/royalty-registry/GenArt721RoyaltyOverride.sol/GenArt721RoyaltyOverride.json +208 -0
  105. package/artifacts/contracts/royalty-registry/GenArt721RoyaltyOverride_PBAB.sol/GenArt721RoyaltyOverride_PBAB.json +301 -0
  106. package/contracts/AdminACLV0.sol +103 -0
  107. package/contracts/AdminACLV1.sol +193 -0
  108. package/contracts/BasicRandomizer.sol +23 -0
  109. package/contracts/BasicRandomizerV2.sol +36 -0
  110. package/contracts/DependencyRegistryV0.sol +893 -0
  111. package/contracts/GenArt721CoreV3.sol +2001 -0
  112. package/contracts/GenArt721CoreV3_Engine.sol +2061 -0
  113. package/contracts/engine/GenArt721CoreV2_ENGINE_FLEX.sol +887 -0
  114. package/contracts/engine/GenArt721CoreV2_PBAB.sol +695 -0
  115. package/contracts/engine/GenArt721CoreV2_PRTNR.sol +749 -0
  116. package/contracts/engine/GenArt721MinterBurner_PBAB.sol +467 -0
  117. package/contracts/engine/GenArt721MinterDAExp_PBAB.sol +614 -0
  118. package/contracts/engine/GenArt721Minter_PBAB.sol +420 -0
  119. package/contracts/engine-registry/EngineRegistryV0.sol +72 -0
  120. package/contracts/engine-registry/future/EngineRegistryV1.sol +86 -0
  121. package/contracts/explorations/GenArt721CoreV3_Explorations.sol +1989 -0
  122. package/contracts/interfaces/0.5.x/IBonusContract.sol +10 -0
  123. package/contracts/interfaces/0.5.x/IGenArt721CoreContractV1.sol +91 -0
  124. package/contracts/interfaces/0.5.x/IGenArt721CoreV2_PBAB.sol +92 -0
  125. package/contracts/interfaces/0.5.x/IRandomizer.sol +8 -0
  126. package/contracts/interfaces/0.8.x/IAdminACLV0.sol +51 -0
  127. package/contracts/interfaces/0.8.x/IArtblocksRoyaltyOverride.sol +34 -0
  128. package/contracts/interfaces/0.8.x/IBonusContract.sol +10 -0
  129. package/contracts/interfaces/0.8.x/IDelegationRegistry.sol +221 -0
  130. package/contracts/interfaces/0.8.x/IDependencyRegistryCompatibleV0.sol +31 -0
  131. package/contracts/interfaces/0.8.x/IDependencyRegistryV0.sol +95 -0
  132. package/contracts/interfaces/0.8.x/IEngineRegistryV0.sol +38 -0
  133. package/contracts/interfaces/0.8.x/IFilteredMinterDAExpSettlementV0.sol +70 -0
  134. package/contracts/interfaces/0.8.x/IFilteredMinterDAExpV0.sol +35 -0
  135. package/contracts/interfaces/0.8.x/IFilteredMinterDAExpV1.sol +16 -0
  136. package/contracts/interfaces/0.8.x/IFilteredMinterDALinV0.sol +32 -0
  137. package/contracts/interfaces/0.8.x/IFilteredMinterDALinV1.sol +16 -0
  138. package/contracts/interfaces/0.8.x/IFilteredMinterHolderV0.sol +68 -0
  139. package/contracts/interfaces/0.8.x/IFilteredMinterHolderV1.sol +19 -0
  140. package/contracts/interfaces/0.8.x/IFilteredMinterHolderV2.sol +19 -0
  141. package/contracts/interfaces/0.8.x/IFilteredMinterMerkleV0.sol +37 -0
  142. package/contracts/interfaces/0.8.x/IFilteredMinterMerkleV1.sol +19 -0
  143. package/contracts/interfaces/0.8.x/IFilteredMinterMerkleV2.sol +19 -0
  144. package/contracts/interfaces/0.8.x/IFilteredMinterV0.sol +74 -0
  145. package/contracts/interfaces/0.8.x/IFilteredMinterV1.sol +127 -0
  146. package/contracts/interfaces/0.8.x/IFilteredMinterV2.sol +30 -0
  147. package/contracts/interfaces/0.8.x/IGenArt721CoreContractV1.sol +73 -0
  148. package/contracts/interfaces/0.8.x/IGenArt721CoreContractV3.sol +79 -0
  149. package/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Base.sol +127 -0
  150. package/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Engine.sol +80 -0
  151. package/contracts/interfaces/0.8.x/IGenArt721CoreV2_PBAB.sol +91 -0
  152. package/contracts/interfaces/0.8.x/IManifold.sol +24 -0
  153. package/contracts/interfaces/0.8.x/IMinterFilterV0.sol +47 -0
  154. package/contracts/interfaces/0.8.x/IRandomizer.sol +8 -0
  155. package/contracts/interfaces/0.8.x/IRandomizerV2.sol +15 -0
  156. package/contracts/legacy/GenArt721CoreV1.sol +1593 -0
  157. package/contracts/legacy/GenArt721LegacyMinter.sol +275 -0
  158. package/contracts/libs/0.5.x/CustomERC721Metadata.sol +52 -0
  159. package/contracts/libs/0.5.x/IERC20.sol +96 -0
  160. package/contracts/libs/0.5.x/SafeMath.sol +98 -0
  161. package/contracts/libs/0.5.x/Strings.sol +92 -0
  162. package/contracts/libs/0.8.x/BytecodeStorage.sol +314 -0
  163. package/contracts/libs/0.8.x/Bytes32Strings.sol +66 -0
  164. package/contracts/libs/0.8.x/ERC721_PackedHashSeed.sol +514 -0
  165. package/contracts/libs/integration-refs/delegation-registry/DelegationRegistry.sol +663 -0
  166. package/contracts/libs/integration-refs/gnosis-safe/GnosisSafeMock.sol +6 -0
  167. package/contracts/libs/integration-refs/gnosis-safe/GnosisSafeProxyFactoryMock.sol +6 -0
  168. package/contracts/libs/integration-refs/gnosis-safe/MultiSendMock.sol +6 -0
  169. package/contracts/minter-suite/MinterFilter/MinterFilterV0.sol +291 -0
  170. package/contracts/minter-suite/MinterFilter/MinterFilterV1.sol +320 -0
  171. package/contracts/minter-suite/Minters/MinterDAExp/MinterDAExpV2.sol +571 -0
  172. package/contracts/minter-suite/Minters/MinterDAExp/MinterDAExpV3.sol +622 -0
  173. package/contracts/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol +1066 -0
  174. package/contracts/minter-suite/Minters/MinterDALin/MinterDALinV2.sol +527 -0
  175. package/contracts/minter-suite/Minters/MinterDALin/MinterDALinV3.sol +576 -0
  176. package/contracts/minter-suite/Minters/MinterHolder/MinterHolderV2.sol +749 -0
  177. package/contracts/minter-suite/Minters/MinterHolder/MinterHolderV3.sol +798 -0
  178. package/contracts/minter-suite/Minters/MinterMerkle/MinterMerkleV3.sol +682 -0
  179. package/contracts/minter-suite/Minters/MinterMerkle/MinterMerkleV4.sol +733 -0
  180. package/contracts/minter-suite/Minters/MinterSetPrice/MinterSetPriceV2.sol +350 -0
  181. package/contracts/minter-suite/Minters/MinterSetPrice/MinterSetPriceV3.sol +401 -0
  182. package/contracts/minter-suite/Minters/MinterSetPrice/deprecated/MinterSetPriceV1.sol +274 -0
  183. package/contracts/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V2.sol +491 -0
  184. package/contracts/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V3.sol +542 -0
  185. package/contracts/minter-suite/Minters/MinterSetPriceERC20/deprecated/MinterSetPriceERC20V0.sol +470 -0
  186. package/contracts/mock/BytecodeTextCR_DMock.sol +184 -0
  187. package/contracts/mock/DeadReceiverMock.sol +13 -0
  188. package/contracts/mock/ERC20Mock.sol +11 -0
  189. package/contracts/mock/MockAdminACLV0.sol +65 -0
  190. package/contracts/mock/RandomizerV2_NoAssignMock.sol +43 -0
  191. package/contracts/mock/ReentrancyHolderMock.sol +50 -0
  192. package/contracts/mock/ReentrancyMerkleMock.sol +64 -0
  193. package/contracts/mock/ReentrancyMock.sol +44 -0
  194. package/contracts/royalty-registry/GenArt721RoyaltyOverride.sol +168 -0
  195. package/contracts/royalty-registry/GenArt721RoyaltyOverride_PBAB.sol +221 -0
  196. 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
+ }