@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,10 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Creatd By: Art Blocks Inc.
3
+
4
+ pragma solidity ^0.5.0;
5
+
6
+ interface IBonusContract {
7
+ function triggerBonus(address _to) external returns (bool);
8
+
9
+ function bonusIsActive() external view returns (bool);
10
+ }
@@ -0,0 +1,91 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Created By: Art Blocks Inc.
3
+
4
+ pragma solidity ^0.5.0;
5
+
6
+ interface IGenArt721CoreContractV1 {
7
+ event Mint(
8
+ address indexed _to,
9
+ uint256 indexed _tokenId,
10
+ uint256 indexed _projectId
11
+ );
12
+
13
+ // getter function of public variable
14
+ function admin() external view returns (address);
15
+
16
+ // getter function of public variable
17
+ function nextProjectId() external view returns (uint256);
18
+
19
+ // getter function of public mapping
20
+ function tokenIdToProjectId(
21
+ uint256 tokenId
22
+ ) external view returns (uint256 projectId);
23
+
24
+ function isWhitelisted(address sender) external view returns (bool);
25
+
26
+ // @dev this is not available in V0
27
+ function isMintWhitelisted(address minter) external view returns (bool);
28
+
29
+ function projectIdToArtistAddress(
30
+ uint256 _projectId
31
+ ) external view returns (address payable);
32
+
33
+ function projectIdToAdditionalPayee(
34
+ uint256 _projectId
35
+ ) external view returns (address payable);
36
+
37
+ function projectIdToAdditionalPayeePercentage(
38
+ uint256 _projectId
39
+ ) external view returns (uint256);
40
+
41
+ function projectIdToCurrencySymbol(
42
+ uint256 _projectId
43
+ ) external view returns (string memory);
44
+
45
+ function projectIdToCurrencyAddress(
46
+ uint256 _projectId
47
+ ) external view returns (address);
48
+
49
+ function projectIdToPricePerTokenInWei(
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 artblocksAddress() external view returns (address payable);
71
+
72
+ function artblocksPercentage() 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,92 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Creatd By: Art Blocks Inc.
3
+
4
+ pragma solidity ^0.5.0;
5
+
6
+ interface IGenArt721CoreV2_PBAB {
7
+ /**
8
+ * @notice Token ID `_tokenId` minted on project ID `_projectId` to `_to`.
9
+ * @dev NatSpec for events not supported in Solidity ^0.5.0
10
+ */
11
+ event Mint(
12
+ address indexed _to,
13
+ uint256 indexed _tokenId,
14
+ uint256 indexed _projectId
15
+ );
16
+
17
+ // getter function of public variable
18
+ function admin() external view returns (address);
19
+
20
+ // getter function of public variable
21
+ function nextProjectId() external view returns (uint256);
22
+
23
+ // getter function of public mapping
24
+ function tokenIdToProjectId(
25
+ uint256 tokenId
26
+ ) external view returns (uint256 projectId);
27
+
28
+ function isWhitelisted(address sender) external view returns (bool);
29
+
30
+ function projectIdToCurrencySymbol(
31
+ uint256 _projectId
32
+ ) external view returns (string memory);
33
+
34
+ function projectIdToCurrencyAddress(
35
+ uint256 _projectId
36
+ ) external view returns (address);
37
+
38
+ function projectIdToArtistAddress(
39
+ uint256 _projectId
40
+ ) external view returns (address payable);
41
+
42
+ function projectIdToPricePerTokenInWei(
43
+ uint256 _projectId
44
+ ) external view returns (uint256);
45
+
46
+ function projectIdToAdditionalPayee(
47
+ uint256 _projectId
48
+ ) external view returns (address payable);
49
+
50
+ function projectIdToAdditionalPayeePercentage(
51
+ uint256 _projectId
52
+ ) external view returns (uint256);
53
+
54
+ function projectTokenInfo(
55
+ uint256 _projectId
56
+ )
57
+ external
58
+ view
59
+ returns (
60
+ address,
61
+ uint256,
62
+ uint256,
63
+ uint256,
64
+ bool,
65
+ address,
66
+ uint256,
67
+ string memory,
68
+ address
69
+ );
70
+
71
+ function renderProviderAddress() external view returns (address payable);
72
+
73
+ function renderProviderPercentage() external view returns (uint256);
74
+
75
+ function mint(
76
+ address _to,
77
+ uint256 _projectId,
78
+ address _by
79
+ ) external returns (uint256 tokenId);
80
+
81
+ function getRoyaltyData(
82
+ uint256 _tokenId
83
+ )
84
+ external
85
+ view
86
+ returns (
87
+ address artistAddress,
88
+ address additionalPayee,
89
+ uint256 additionalPayeePercentage,
90
+ uint256 royaltyFeeByID
91
+ );
92
+ }
@@ -0,0 +1,8 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Creatd By: Art Blocks Inc.
3
+
4
+ pragma solidity ^0.5.0;
5
+
6
+ interface IRandomizer {
7
+ function returnValue() external view returns (bytes32);
8
+ }
@@ -0,0 +1,51 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Created By: Art Blocks Inc.
3
+
4
+ pragma solidity ^0.8.0;
5
+
6
+ interface IAdminACLV0 {
7
+ /**
8
+ * @notice Token ID `_tokenId` minted to `_to`.
9
+ * @param previousSuperAdmin The previous superAdmin address.
10
+ * @param newSuperAdmin The new superAdmin address.
11
+ * @param genArt721CoreAddressesToUpdate Array of genArt721Core
12
+ * addresses to update to the new superAdmin, for indexing purposes only.
13
+ */
14
+ event SuperAdminTransferred(
15
+ address indexed previousSuperAdmin,
16
+ address indexed newSuperAdmin,
17
+ address[] genArt721CoreAddressesToUpdate
18
+ );
19
+
20
+ /// Type of the Admin ACL contract, e.g. "AdminACLV0"
21
+ function AdminACLType() external view returns (string memory);
22
+
23
+ /// super admin address
24
+ function superAdmin() external view returns (address);
25
+
26
+ /**
27
+ * @notice Calls transferOwnership on other contract from this contract.
28
+ * This is useful for updating to a new AdminACL contract.
29
+ * @dev this function should be gated to only superAdmin-like addresses.
30
+ */
31
+ function transferOwnershipOn(
32
+ address _contract,
33
+ address _newAdminACL
34
+ ) external;
35
+
36
+ /**
37
+ * @notice Calls renounceOwnership on other contract from this contract.
38
+ * @dev this function should be gated to only superAdmin-like addresses.
39
+ */
40
+ function renounceOwnershipOn(address _contract) external;
41
+
42
+ /**
43
+ * @notice Checks if sender `_sender` is allowed to call function with selector
44
+ * `_selector` on contract `_contract`.
45
+ */
46
+ function allowed(
47
+ address _sender,
48
+ address _contract,
49
+ bytes4 _selector
50
+ ) external returns (bool);
51
+ }
@@ -0,0 +1,34 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Created By: Art Blocks Inc.
3
+
4
+ import "@openzeppelin-4.5/contracts/utils/introspection/IERC165.sol";
5
+
6
+ pragma solidity ^0.8.0;
7
+
8
+ /**
9
+ * @notice Interface for Art Blocks Royalty override.
10
+ * Supported by the Royalty Registry v1 Engine.
11
+ * @dev ref: https://royaltyregistry.xyz / engine-v1.royaltyregistry.eth
12
+ */
13
+ interface IArtblocksRoyaltyOverride is IERC165 {
14
+ /**
15
+ * @notice Gets royalites of token ID `_tokenId` on token contract
16
+ * `_tokenAddress`.
17
+ * @param tokenAddress Token contract to be queried.
18
+ * @param tokenId Token ID to be queried.
19
+ * @return recipients_ array of royalty recipients
20
+ * @return bps array of basis points for each recipient, aligned by index
21
+ * @dev Interface ID:
22
+ *
23
+ * bytes4(keccak256('getRoyalties(address,uint256)')) == 0x9ca7dc7a
24
+ *
25
+ * => 0x9ca7dc7a = 0x9ca7dc7a
26
+ */
27
+ function getRoyalties(
28
+ address tokenAddress,
29
+ uint256 tokenId
30
+ )
31
+ external
32
+ view
33
+ returns (address payable[] memory recipients_, uint256[] memory bps);
34
+ }
@@ -0,0 +1,10 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Creatd By: Art Blocks Inc.
3
+
4
+ pragma solidity ^0.8.0;
5
+
6
+ interface IBonusContract {
7
+ function triggerBonus(address _to) external returns (bool);
8
+
9
+ function bonusIsActive() external view returns (bool);
10
+ }
@@ -0,0 +1,221 @@
1
+ // SPDX-License-Identifier: CC0-1.0
2
+ pragma solidity ^0.8.17;
3
+
4
+ /// @dev Source: https://github.com/0xfoobar/delegation-registry/blob/main/src/IDelegationRegistry.sol
5
+
6
+ /**
7
+ * @title An immutable registry contract to be deployed as a standalone primitive
8
+ * @dev See EIP-5639, new project launches can read previous cold wallet -> hot wallet delegations
9
+ * from here and integrate those permissions into their flow
10
+ */
11
+ interface IDelegationRegistry {
12
+ /// @notice Delegation type
13
+ enum DelegationType {
14
+ NONE,
15
+ ALL,
16
+ CONTRACT,
17
+ TOKEN
18
+ }
19
+
20
+ /// @notice Info about a single delegation, used for onchain enumeration
21
+ struct DelegationInfo {
22
+ DelegationType type_;
23
+ address vault;
24
+ address delegate;
25
+ address contract_;
26
+ uint256 tokenId;
27
+ }
28
+
29
+ /// @notice Info about a single contract-level delegation
30
+ struct ContractDelegation {
31
+ address contract_;
32
+ address delegate;
33
+ }
34
+
35
+ /// @notice Info about a single token-level delegation
36
+ struct TokenDelegation {
37
+ address contract_;
38
+ uint256 tokenId;
39
+ address delegate;
40
+ }
41
+
42
+ /// @notice Emitted when a user delegates their entire wallet
43
+ event DelegateForAll(address vault, address delegate, bool value);
44
+
45
+ /// @notice Emitted when a user delegates a specific contract
46
+ event DelegateForContract(
47
+ address vault,
48
+ address delegate,
49
+ address contract_,
50
+ bool value
51
+ );
52
+
53
+ /// @notice Emitted when a user delegates a specific token
54
+ event DelegateForToken(
55
+ address vault,
56
+ address delegate,
57
+ address contract_,
58
+ uint256 tokenId,
59
+ bool value
60
+ );
61
+
62
+ /// @notice Emitted when a user revokes all delegations
63
+ event RevokeAllDelegates(address vault);
64
+
65
+ /// @notice Emitted when a user revoes all delegations for a given delegate
66
+ event RevokeDelegate(address vault, address delegate);
67
+
68
+ /**
69
+ * ----------- WRITE -----------
70
+ */
71
+
72
+ /**
73
+ * @notice Allow the delegate to act on your behalf for all contracts
74
+ * @param delegate The hotwallet to act on your behalf
75
+ * @param value Whether to enable or disable delegation for this address, true for setting and false for revoking
76
+ */
77
+ function delegateForAll(address delegate, bool value) external;
78
+
79
+ /**
80
+ * @notice Allow the delegate to act on your behalf for a specific contract
81
+ * @param delegate The hotwallet to act on your behalf
82
+ * @param contract_ The address for the contract you're delegating
83
+ * @param value Whether to enable or disable delegation for this address, true for setting and false for revoking
84
+ */
85
+ function delegateForContract(
86
+ address delegate,
87
+ address contract_,
88
+ bool value
89
+ ) external;
90
+
91
+ /**
92
+ * @notice Allow the delegate to act on your behalf for a specific token
93
+ * @param delegate The hotwallet to act on your behalf
94
+ * @param contract_ The address for the contract you're delegating
95
+ * @param tokenId The token id for the token you're delegating
96
+ * @param value Whether to enable or disable delegation for this address, true for setting and false for revoking
97
+ */
98
+ function delegateForToken(
99
+ address delegate,
100
+ address contract_,
101
+ uint256 tokenId,
102
+ bool value
103
+ ) external;
104
+
105
+ /**
106
+ * @notice Revoke all delegates
107
+ */
108
+ function revokeAllDelegates() external;
109
+
110
+ /**
111
+ * @notice Revoke a specific delegate for all their permissions
112
+ * @param delegate The hotwallet to revoke
113
+ */
114
+ function revokeDelegate(address delegate) external;
115
+
116
+ /**
117
+ * @notice Remove yourself as a delegate for a specific vault
118
+ * @param vault The vault which delegated to the msg.sender, and should be removed
119
+ */
120
+ function revokeSelf(address vault) external;
121
+
122
+ /**
123
+ * ----------- READ -----------
124
+ */
125
+
126
+ /**
127
+ * @notice Returns all active delegations a given delegate is able to claim on behalf of
128
+ * @param delegate The delegate that you would like to retrieve delegations for
129
+ * @return info Array of DelegationInfo structs
130
+ */
131
+ function getDelegationsByDelegate(
132
+ address delegate
133
+ ) external view returns (DelegationInfo[] memory);
134
+
135
+ /**
136
+ * @notice Returns an array of wallet-level delegates for a given vault
137
+ * @param vault The cold wallet who issued the delegation
138
+ * @return addresses Array of wallet-level delegates for a given vault
139
+ */
140
+ function getDelegatesForAll(
141
+ address vault
142
+ ) external view returns (address[] memory);
143
+
144
+ /**
145
+ * @notice Returns an array of contract-level delegates for a given vault and contract
146
+ * @param vault The cold wallet who issued the delegation
147
+ * @param contract_ The address for the contract you're delegating
148
+ * @return addresses Array of contract-level delegates for a given vault and contract
149
+ */
150
+ function getDelegatesForContract(
151
+ address vault,
152
+ address contract_
153
+ ) external view returns (address[] memory);
154
+
155
+ /**
156
+ * @notice Returns an array of contract-level delegates for a given vault's token
157
+ * @param vault The cold wallet who issued the delegation
158
+ * @param contract_ The address for the contract holding the token
159
+ * @param tokenId The token id for the token you're delegating
160
+ * @return addresses Array of contract-level delegates for a given vault's token
161
+ */
162
+ function getDelegatesForToken(
163
+ address vault,
164
+ address contract_,
165
+ uint256 tokenId
166
+ ) external view returns (address[] memory);
167
+
168
+ /**
169
+ * @notice Returns all contract-level delegations for a given vault
170
+ * @param vault The cold wallet who issued the delegations
171
+ * @return delegations Array of ContractDelegation structs
172
+ */
173
+ function getContractLevelDelegations(
174
+ address vault
175
+ ) external view returns (ContractDelegation[] memory delegations);
176
+
177
+ /**
178
+ * @notice Returns all token-level delegations for a given vault
179
+ * @param vault The cold wallet who issued the delegations
180
+ * @return delegations Array of TokenDelegation structs
181
+ */
182
+ function getTokenLevelDelegations(
183
+ address vault
184
+ ) external view returns (TokenDelegation[] memory delegations);
185
+
186
+ /**
187
+ * @notice Returns true if the address is delegated to act on the entire vault
188
+ * @param delegate The hotwallet to act on your behalf
189
+ * @param vault The cold wallet who issued the delegation
190
+ */
191
+ function checkDelegateForAll(
192
+ address delegate,
193
+ address vault
194
+ ) external view returns (bool);
195
+
196
+ /**
197
+ * @notice Returns true if the address is delegated to act on your behalf for a token contract or an entire vault
198
+ * @param delegate The hotwallet to act on your behalf
199
+ * @param contract_ The address for the contract you're delegating
200
+ * @param vault The cold wallet who issued the delegation
201
+ */
202
+ function checkDelegateForContract(
203
+ address delegate,
204
+ address vault,
205
+ address contract_
206
+ ) external view returns (bool);
207
+
208
+ /**
209
+ * @notice Returns true if the address is delegated to act on your behalf for a specific token, the token's contract or an entire vault
210
+ * @param delegate The hotwallet to act on your behalf
211
+ * @param contract_ The address for the contract you're delegating
212
+ * @param tokenId The token id for the token you're delegating
213
+ * @param vault The cold wallet who issued the delegation
214
+ */
215
+ function checkDelegateForToken(
216
+ address delegate,
217
+ address vault,
218
+ address contract_,
219
+ uint256 tokenId
220
+ ) external view returns (bool);
221
+ }
@@ -0,0 +1,31 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Created By: Art Blocks Inc.
3
+ pragma solidity ^0.8.17;
4
+
5
+ interface IDependencyRegistryCompatibleV0 {
6
+ /// Dependency registry managed by Art Blocks
7
+ function artblocksDependencyRegistryAddress()
8
+ external
9
+ view
10
+ returns (address);
11
+
12
+ /**
13
+ * @notice Returns script information for project `_projectId`.
14
+ * @param _projectId Project to be queried.
15
+ * @return scriptTypeAndVersion Project's script type and version
16
+ * (e.g. "p5js(atSymbol)1.0.0")
17
+ * @return aspectRatio Aspect ratio of project (e.g. "1" for square,
18
+ * "1.77777778" for 16:9, etc.)
19
+ * @return scriptCount Count of scripts for project
20
+ */
21
+ function projectScriptDetails(
22
+ uint256 _projectId
23
+ )
24
+ external
25
+ view
26
+ returns (
27
+ string memory scriptTypeAndVersion,
28
+ string memory aspectRatio,
29
+ uint256 scriptCount
30
+ );
31
+ }
@@ -0,0 +1,95 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Created By: Art Blocks Inc.
3
+ pragma solidity ^0.8.17;
4
+
5
+ interface IDependencyRegistryV0 {
6
+ event SupportedCoreContractAdded(address indexed _coreContractAddress);
7
+
8
+ event SupportedCoreContractRemoved(address indexed _coreContractAddress);
9
+
10
+ event ProjectDependencyTypeOverrideAdded(
11
+ address indexed _coreContractAddress,
12
+ uint256 indexed _projectId,
13
+ bytes32 _dependencyType
14
+ );
15
+
16
+ event ProjectDependencyTypeOverrideRemoved(
17
+ address indexed _coreContractAddress,
18
+ uint256 indexed _projectId
19
+ );
20
+
21
+ event DependencyAdded(
22
+ bytes32 indexed _dependencyType,
23
+ string _preferredCDN,
24
+ string _preferredRepository,
25
+ string _referenceWebsite
26
+ );
27
+
28
+ event DependencyRemoved(bytes32 indexed _dependencyType);
29
+
30
+ event DependencyReferenceWebsiteUpdated(
31
+ bytes32 indexed _dependencyType,
32
+ string _referenceWebsite
33
+ );
34
+
35
+ event DependencyPreferredCDNUpdated(
36
+ bytes32 indexed _dependencyType,
37
+ string _preferredCDN
38
+ );
39
+
40
+ event DependencyPreferredRepositoryUpdated(
41
+ bytes32 indexed _dependencyType,
42
+ string _preferredRepository
43
+ );
44
+
45
+ event DependencyAdditionalCDNUpdated(
46
+ bytes32 indexed _dependencyType,
47
+ string _additionalCDN,
48
+ uint256 _additionalCDNIndex
49
+ );
50
+
51
+ event DependencyAdditionalCDNRemoved(
52
+ bytes32 indexed _dependencyType,
53
+ uint256 indexed _additionalCDNIndex
54
+ );
55
+
56
+ event DependencyAdditionalRepositoryUpdated(
57
+ bytes32 indexed _dependencyType,
58
+ string _additionalRepository,
59
+ uint256 _additionalRepositoryIndex
60
+ );
61
+
62
+ event DependencyAdditionalRepositoryRemoved(
63
+ bytes32 indexed _dependencyType,
64
+ uint256 indexed _additionalRepositoryIndex
65
+ );
66
+
67
+ event DependencyScriptUpdated(bytes32 indexed _dependencyType);
68
+
69
+ /**
70
+ * @notice Returns the count of scripts for dependency `_dependencyType`.
71
+ * @param _dependencyType Dependency type to be queried.
72
+ */
73
+ function getDependencyScriptCount(
74
+ bytes32 _dependencyType
75
+ ) external view returns (uint256);
76
+
77
+ /**
78
+ * @notice Returns address with bytecode containing script for
79
+ * dependency type `_dependencyTypes` at script index `_index`.
80
+ */
81
+ function getDependencyScriptBytecodeAddressAtIndex(
82
+ bytes32 _dependencyType,
83
+ uint256 _index
84
+ ) external view returns (address);
85
+
86
+ /**
87
+ * @notice Returns script for dependency type `_dependencyType` at script index `_index`.
88
+ * @param _dependencyType Dependency type to be queried.
89
+ * @param _index Index of script to be queried.
90
+ */
91
+ function getDependencyScriptAtIndex(
92
+ bytes32 _dependencyType,
93
+ uint256 _index
94
+ ) external view returns (string memory);
95
+ }
@@ -0,0 +1,38 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Created By: Art Blocks Inc.
3
+ pragma solidity ^0.8.17;
4
+
5
+ interface IEngineRegistryV0 {
6
+ /// ADDRESS
7
+ /**
8
+ * @notice contract has been registered as a contract that is powered by the Art Blocks Engine.
9
+ */
10
+ event ContractRegistered(
11
+ address indexed _contractAddress,
12
+ bytes32 _coreVersion,
13
+ bytes32 _coreType
14
+ );
15
+
16
+ /// ADDRESS
17
+ /**
18
+ * @notice contract has been unregistered as a contract that is powered by the Art Blocks Engine.
19
+ */
20
+ event ContractUnregistered(address indexed _contractAddress);
21
+
22
+ /**
23
+ * @notice Emits a `ContractRegistered` event with the provided information.
24
+ * @dev this function should be gated to only deployer addresses.
25
+ */
26
+ function registerContract(
27
+ address _contractAddress,
28
+ bytes32 _coreVersion,
29
+ bytes32 _coreType
30
+ ) external;
31
+
32
+ /**
33
+ * @notice Emits a `ContractUnregistered` event with the provided information, validating that the provided
34
+ * address was indeed previously registered.
35
+ * @dev this function should be gated to only deployer addresses.
36
+ */
37
+ function unregisterContract(address _contractAddress) external;
38
+ }