@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,79 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Created By: Art Blocks Inc.
3
+
4
+ pragma solidity ^0.8.0;
5
+
6
+ import "./IAdminACLV0.sol";
7
+ import "./IGenArt721CoreContractV3_Base.sol";
8
+
9
+ /**
10
+ * @title This interface extends IGenArt721CoreContractV3_Base with functions
11
+ * that are part of the Art Blocks Flagship core contract.
12
+ * @author Art Blocks Inc.
13
+ */
14
+ // This interface extends IGenArt721CoreContractV3_Base with functions that are
15
+ // in part of the Art Blocks Flagship core contract.
16
+ interface IGenArt721CoreContractV3 is IGenArt721CoreContractV3_Base {
17
+ // @dev new function in V3
18
+ function getPrimaryRevenueSplits(
19
+ uint256 _projectId,
20
+ uint256 _price
21
+ )
22
+ external
23
+ view
24
+ returns (
25
+ uint256 artblocksRevenue_,
26
+ address payable artblocksAddress_,
27
+ uint256 artistRevenue_,
28
+ address payable artistAddress_,
29
+ uint256 additionalPayeePrimaryRevenue_,
30
+ address payable additionalPayeePrimaryAddress_
31
+ );
32
+
33
+ // @dev Art Blocks primary sales payment address
34
+ function artblocksPrimarySalesAddress()
35
+ external
36
+ view
37
+ returns (address payable);
38
+
39
+ /**
40
+ * @notice Backwards-compatible (pre-V3) function returning Art Blocks
41
+ * primary sales payment address (now called artblocksPrimarySalesAddress).
42
+ */
43
+ function artblocksAddress() external view returns (address payable);
44
+
45
+ // @dev Percentage of primary sales allocated to Art Blocks
46
+ function artblocksPrimarySalesPercentage() external view returns (uint256);
47
+
48
+ /**
49
+ * @notice Backwards-compatible (pre-V3) function returning Art Blocks
50
+ * primary sales percentage (now called artblocksPrimarySalesPercentage).
51
+ */
52
+ function artblocksPercentage() external view returns (uint256);
53
+
54
+ // @dev Art Blocks secondary sales royalties payment address
55
+ function artblocksSecondarySalesAddress()
56
+ external
57
+ view
58
+ returns (address payable);
59
+
60
+ // @dev Basis points of secondary sales allocated to Art Blocks
61
+ function artblocksSecondarySalesBPS() external view returns (uint256);
62
+
63
+ /**
64
+ * @notice Backwards-compatible (pre-V3) function that gets artist +
65
+ * artist's additional payee royalty data for token ID `_tokenId`.
66
+ * WARNING: Does not include Art Blocks portion of royalties.
67
+ */
68
+ function getRoyaltyData(
69
+ uint256 _tokenId
70
+ )
71
+ external
72
+ view
73
+ returns (
74
+ address artistAddress,
75
+ address additionalPayee,
76
+ uint256 additionalPayeePercentage,
77
+ uint256 royaltyFeeByID
78
+ );
79
+ }
@@ -0,0 +1,127 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Created By: Art Blocks Inc.
3
+
4
+ pragma solidity ^0.8.0;
5
+
6
+ import "./IAdminACLV0.sol";
7
+ /// use the Royalty Registry's IManifold interface for token royalties
8
+ import "./IManifold.sol";
9
+
10
+ /**
11
+ * @title This interface is intended to house interface items that are common
12
+ * across all GenArt721CoreContractV3 flagship and derivative implementations.
13
+ * This interface extends the IManifold royalty interface in order to
14
+ * add support the Royalty Registry by default.
15
+ * @author Art Blocks Inc.
16
+ */
17
+ interface IGenArt721CoreContractV3_Base is IManifold {
18
+ /**
19
+ * @notice Token ID `_tokenId` minted to `_to`.
20
+ */
21
+ event Mint(address indexed _to, uint256 indexed _tokenId);
22
+
23
+ /**
24
+ * @notice currentMinter updated to `_currentMinter`.
25
+ * @dev Implemented starting with V3 core
26
+ */
27
+ event MinterUpdated(address indexed _currentMinter);
28
+
29
+ /**
30
+ * @notice Platform updated on bytes32-encoded field `_field`.
31
+ */
32
+ event PlatformUpdated(bytes32 indexed _field);
33
+
34
+ /**
35
+ * @notice Project ID `_projectId` updated on bytes32-encoded field
36
+ * `_update`.
37
+ */
38
+ event ProjectUpdated(uint256 indexed _projectId, bytes32 indexed _update);
39
+
40
+ event ProposedArtistAddressesAndSplits(
41
+ uint256 indexed _projectId,
42
+ address _artistAddress,
43
+ address _additionalPayeePrimarySales,
44
+ uint256 _additionalPayeePrimarySalesPercentage,
45
+ address _additionalPayeeSecondarySales,
46
+ uint256 _additionalPayeeSecondarySalesPercentage
47
+ );
48
+
49
+ event AcceptedArtistAddressesAndSplits(uint256 indexed _projectId);
50
+
51
+ // version and type of the core contract
52
+ // coreVersion is a string of the form "0.x.y"
53
+ function coreVersion() external view returns (string memory);
54
+
55
+ // coreType is a string of the form "GenArt721CoreV3"
56
+ function coreType() external view returns (string memory);
57
+
58
+ // owner (pre-V3 was named admin) of contract
59
+ // this is expected to be an Admin ACL contract for V3
60
+ function owner() external view returns (address);
61
+
62
+ // Admin ACL contract for V3, will be at the address owner()
63
+ function adminACLContract() external returns (IAdminACLV0);
64
+
65
+ // backwards-compatible (pre-V3) admin - equal to owner()
66
+ function admin() external view returns (address);
67
+
68
+ /**
69
+ * Function determining if _sender is allowed to call function with
70
+ * selector _selector on contract `_contract`. Intended to be used with
71
+ * peripheral contracts such as minters, as well as internally by the
72
+ * core contract itself.
73
+ */
74
+ function adminACLAllowed(
75
+ address _sender,
76
+ address _contract,
77
+ bytes4 _selector
78
+ ) external returns (bool);
79
+
80
+ // getter function of public variable
81
+ function nextProjectId() external view returns (uint256);
82
+
83
+ // getter function of public mapping
84
+ function tokenIdToProjectId(
85
+ uint256 tokenId
86
+ ) external view returns (uint256 projectId);
87
+
88
+ // @dev this is not available in V0
89
+ function isMintWhitelisted(address minter) external view returns (bool);
90
+
91
+ function projectIdToArtistAddress(
92
+ uint256 _projectId
93
+ ) external view returns (address payable);
94
+
95
+ function projectIdToAdditionalPayeePrimarySales(
96
+ uint256 _projectId
97
+ ) external view returns (address payable);
98
+
99
+ function projectIdToAdditionalPayeePrimarySalesPercentage(
100
+ uint256 _projectId
101
+ ) external view returns (uint256);
102
+
103
+ // @dev new function in V3
104
+ function projectStateData(
105
+ uint256 _projectId
106
+ )
107
+ external
108
+ view
109
+ returns (
110
+ uint256 invocations,
111
+ uint256 maxInvocations,
112
+ bool active,
113
+ bool paused,
114
+ uint256 completedTimestamp,
115
+ bool locked
116
+ );
117
+
118
+ // function to set a token's hash (must be guarded)
119
+ function setTokenHash_8PT(uint256 _tokenId, bytes32 _hash) external;
120
+
121
+ // @dev gas-optimized signature in V3 for `mint`
122
+ function mint_Ecf(
123
+ address _to,
124
+ uint256 _projectId,
125
+ address _by
126
+ ) external returns (uint256 tokenId);
127
+ }
@@ -0,0 +1,80 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Created By: Art Blocks Inc.
3
+
4
+ pragma solidity ^0.8.0;
5
+
6
+ import "./IAdminACLV0.sol";
7
+ import "./IGenArt721CoreContractV3_Base.sol";
8
+
9
+ interface IGenArt721CoreContractV3_Engine is IGenArt721CoreContractV3_Base {
10
+ // @dev new function in V3
11
+ function getPrimaryRevenueSplits(
12
+ uint256 _projectId,
13
+ uint256 _price
14
+ )
15
+ external
16
+ view
17
+ returns (
18
+ uint256 renderProviderRevenue_,
19
+ address payable renderProviderAddress_,
20
+ uint256 platformProviderRevenue_,
21
+ address payable platformProviderAddress_,
22
+ uint256 artistRevenue_,
23
+ address payable artistAddress_,
24
+ uint256 additionalPayeePrimaryRevenue_,
25
+ address payable additionalPayeePrimaryAddress_
26
+ );
27
+
28
+ // @dev The render provider primary sales payment address
29
+ function renderProviderPrimarySalesAddress()
30
+ external
31
+ view
32
+ returns (address payable);
33
+
34
+ // @dev The platform provider primary sales payment address
35
+ function platformProviderPrimarySalesAddress()
36
+ external
37
+ view
38
+ returns (address payable);
39
+
40
+ // @dev Percentage of primary sales allocated to the render provider
41
+ function renderProviderPrimarySalesPercentage()
42
+ external
43
+ view
44
+ returns (uint256);
45
+
46
+ // @dev Percentage of primary sales allocated to the platform provider
47
+ function platformProviderPrimarySalesPercentage()
48
+ external
49
+ view
50
+ returns (uint256);
51
+
52
+ // @dev The render provider secondary sales royalties payment address
53
+ function renderProviderSecondarySalesAddress()
54
+ external
55
+ view
56
+ returns (address payable);
57
+
58
+ // @dev The platform provider secondary sales royalties payment address
59
+ function platformProviderSecondarySalesAddress()
60
+ external
61
+ view
62
+ returns (address payable);
63
+
64
+ // @dev Basis points of secondary sales allocated to the render provider
65
+ function renderProviderSecondarySalesBPS() external view returns (uint256);
66
+
67
+ // @dev Basis points of secondary sales allocated to the platform provider
68
+ function platformProviderSecondarySalesBPS()
69
+ external
70
+ view
71
+ returns (uint256);
72
+
73
+ // function to read the hash for a given tokenId
74
+ function tokenIdToHash(uint256 _tokenId) external view returns (bytes32);
75
+
76
+ // function to read the hash-seed for a given tokenId
77
+ function tokenIdToHashSeed(
78
+ uint256 _tokenId
79
+ ) external view returns (bytes12);
80
+ }
@@ -0,0 +1,91 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Created By: Art Blocks Inc.
3
+
4
+ pragma solidity ^0.8.0;
5
+
6
+ interface IGenArt721CoreV2_PBAB {
7
+ /**
8
+ * @notice Token ID `_tokenId` minted on project ID `_projectId` to `_to`.
9
+ */
10
+ event Mint(
11
+ address indexed _to,
12
+ uint256 indexed _tokenId,
13
+ uint256 indexed _projectId
14
+ );
15
+
16
+ // getter function of public variable
17
+ function admin() external view returns (address);
18
+
19
+ // getter function of public variable
20
+ function nextProjectId() external view returns (uint256);
21
+
22
+ // getter function of public mapping
23
+ function tokenIdToProjectId(
24
+ uint256 tokenId
25
+ ) external view returns (uint256 projectId);
26
+
27
+ function isWhitelisted(address sender) external view returns (bool);
28
+
29
+ function projectIdToCurrencySymbol(
30
+ uint256 _projectId
31
+ ) external view returns (string memory);
32
+
33
+ function projectIdToCurrencyAddress(
34
+ uint256 _projectId
35
+ ) external view returns (address);
36
+
37
+ function projectIdToArtistAddress(
38
+ uint256 _projectId
39
+ ) external view returns (address payable);
40
+
41
+ function projectIdToPricePerTokenInWei(
42
+ uint256 _projectId
43
+ ) external view returns (uint256);
44
+
45
+ function projectIdToAdditionalPayee(
46
+ uint256 _projectId
47
+ ) external view returns (address payable);
48
+
49
+ function projectIdToAdditionalPayeePercentage(
50
+ uint256 _projectId
51
+ ) external view returns (uint256);
52
+
53
+ function projectTokenInfo(
54
+ uint256 _projectId
55
+ )
56
+ external
57
+ view
58
+ returns (
59
+ address,
60
+ uint256,
61
+ uint256,
62
+ uint256,
63
+ bool,
64
+ address,
65
+ uint256,
66
+ string memory,
67
+ address
68
+ );
69
+
70
+ function renderProviderAddress() external view returns (address payable);
71
+
72
+ function renderProviderPercentage() external view returns (uint256);
73
+
74
+ function mint(
75
+ address _to,
76
+ uint256 _projectId,
77
+ address _by
78
+ ) external returns (uint256 tokenId);
79
+
80
+ function getRoyaltyData(
81
+ uint256 _tokenId
82
+ )
83
+ external
84
+ view
85
+ returns (
86
+ address artistAddress,
87
+ address additionalPayee,
88
+ uint256 additionalPayeePercentage,
89
+ uint256 royaltyFeeByID
90
+ );
91
+ }
@@ -0,0 +1,24 @@
1
+ // SPDX-License-Identifier: MIT
2
+
3
+ pragma solidity ^0.8.0;
4
+
5
+ /// @dev Royalty Registry interface, used to support the Royalty Registry.
6
+ /// @dev Source: https://github.com/manifoldxyz/royalty-registry-solidity/blob/main/contracts/specs/IManifold.sol
7
+
8
+ /// @author: manifold.xyz
9
+
10
+ /**
11
+ * @dev Royalty interface for creator core classes
12
+ */
13
+ interface IManifold {
14
+ /**
15
+ * @dev Get royalites of a token. Returns list of receivers and basisPoints
16
+ *
17
+ * bytes4(keccak256('getRoyalties(uint256)')) == 0xbb3bafd6
18
+ *
19
+ * => 0xbb3bafd6 = 0xbb3bafd6
20
+ */
21
+ function getRoyalties(
22
+ uint256 tokenId
23
+ ) external view returns (address payable[] memory, uint256[] memory);
24
+ }
@@ -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
+ interface IMinterFilterV0 {
7
+ /**
8
+ * @notice Approved minter `_minterAddress`.
9
+ */
10
+ event MinterApproved(address indexed _minterAddress, string _minterType);
11
+
12
+ /**
13
+ * @notice Revoked approval for minter `_minterAddress`
14
+ */
15
+ event MinterRevoked(address indexed _minterAddress);
16
+
17
+ /**
18
+ * @notice Minter `_minterAddress` of type `_minterType`
19
+ * registered for project `_projectId`.
20
+ */
21
+ event ProjectMinterRegistered(
22
+ uint256 indexed _projectId,
23
+ address indexed _minterAddress,
24
+ string _minterType
25
+ );
26
+
27
+ /**
28
+ * @notice Any active minter removed for project `_projectId`.
29
+ */
30
+ event ProjectMinterRemoved(uint256 indexed _projectId);
31
+
32
+ function genArt721CoreAddress() external returns (address);
33
+
34
+ function setMinterForProject(uint256, address) external;
35
+
36
+ function removeMinterForProject(uint256) external;
37
+
38
+ function mint(
39
+ address _to,
40
+ uint256 _projectId,
41
+ address sender
42
+ ) external returns (uint256);
43
+
44
+ function getMinterForProject(uint256) external view returns (address);
45
+
46
+ function projectHasMinter(uint256) external view returns (bool);
47
+ }
@@ -0,0 +1,8 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Creatd By: Art Blocks Inc.
3
+
4
+ pragma solidity ^0.8.0;
5
+
6
+ interface IRandomizer {
7
+ function returnValue() external view returns (bytes32);
8
+ }
@@ -0,0 +1,15 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Creatd By: Art Blocks Inc.
3
+
4
+ pragma solidity ^0.8.0;
5
+
6
+ import "./IGenArt721CoreContractV3.sol";
7
+
8
+ interface IRandomizerV2 {
9
+ // The core contract that may interact with this randomizer contract.
10
+ function genArt721Core() external view returns (IGenArt721CoreContractV3);
11
+
12
+ // When a core contract calls this, it can be assured that the randomizer
13
+ // will set a bytes32 hash for tokenId `_tokenId` on the core contract.
14
+ function assignTokenHash(uint256 _tokenId) external;
15
+ }