@artblocks/contracts 1.0.1 → 1.0.3

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 (199) hide show
  1. package/README.md +67 -154
  2. package/artifacts/contracts/AdminACLV0.sol/AdminACLV0.json +2 -2
  3. package/artifacts/contracts/AdminACLV1.sol/AdminACLV1.json +2 -2
  4. package/artifacts/contracts/DependencyRegistryV0.sol/DependencyRegistryV0.json +22 -4
  5. package/artifacts/contracts/GenArt721CoreV3.sol/GenArt721CoreV3.json +42 -5
  6. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV2.sol/MinterDAExpV2.json +2 -2
  7. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV3.sol/MinterDAExpV3.json +2 -2
  8. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol/MinterDAExpSettlementV0.json +2 -2
  9. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV1.sol/MinterDAExpSettlementV1.json +2 -2
  10. package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV2.sol/MinterDALinV2.json +2 -2
  11. package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV3.sol/MinterDALinV3.json +2 -2
  12. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV1.sol/MinterHolderV1.json +2 -2
  13. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV2.sol/MinterHolderV2.json +2 -2
  14. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV3.sol/MinterHolderV3.json +2 -2
  15. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV1.sol/MinterMerkleV1.json +2 -2
  16. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV2.sol/MinterMerkleV2.json +2 -2
  17. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV3.sol/MinterMerkleV3.json +2 -2
  18. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV4.sol/MinterMerkleV4.json +2 -2
  19. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV2.sol/MinterSetPriceV2.json +2 -2
  20. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV3.sol/MinterSetPriceV3.json +2 -2
  21. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V2.sol/MinterSetPriceERC20V2.json +2 -2
  22. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V3.sol/MinterSetPriceERC20V3.json +2 -2
  23. package/artifacts/contracts/engine/{GenArt721CoreV2_ENGINE_FLEX.sol → V2/GenArt721CoreV2_ENGINE_FLEX.sol}/GenArt721CoreV2_ENGINE_FLEX.json +3 -3
  24. package/artifacts/contracts/engine/{GenArt721CoreV2_PBAB.sol → V2/GenArt721CoreV2_PBAB.sol}/GenArt721CoreV2_PBAB.json +3 -3
  25. package/artifacts/contracts/engine/{GenArt721CoreV2_PRTNR.sol → V2/GenArt721CoreV2_PRTNR.sol}/GenArt721CoreV2_PRTNR.json +3 -3
  26. package/artifacts/contracts/engine/{GenArt721MinterBurner_PBAB.sol → V2/GenArt721MinterBurner_PBAB.sol}/GenArt721MinterBurner_PBAB.json +3 -3
  27. package/artifacts/contracts/engine/{GenArt721MinterDAExp_PBAB.sol → V2/GenArt721MinterDAExp_PBAB.sol}/GenArt721MinterDAExp_PBAB.json +3 -3
  28. package/artifacts/contracts/engine/{GenArt721Minter_PBAB.sol → V2/GenArt721Minter_PBAB.sol}/GenArt721Minter_PBAB.json +3 -3
  29. package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine.sol/GenArt721CoreV3_Engine.json +1960 -0
  30. package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol/GenArt721CoreV3_Engine_Flex.json +2247 -0
  31. package/artifacts/contracts/engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol/GenArt721CoreV3_Engine_Flex_PROOF.json +2247 -0
  32. package/artifacts/contracts/engine/V3/forks/PROHIBITION/AdminACLV0_PROHIBITION.sol/AdminACLV0_PROHIBITION.json +401 -0
  33. package/artifacts/contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol/GenArt721CoreV3_Engine_Flex_PROHIBITION.json +2281 -0
  34. package/artifacts/contracts/engine/V3/forks/PROHIBITION/interfaces/IAdminACLV0_PROHIBITION.sol/IAdminACLV0_PROHIBITION.json +359 -0
  35. package/artifacts/contracts/engine/V3/forks/PROHIBITION/interfaces/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.sol/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.json +1094 -0
  36. package/artifacts/contracts/engine-registry/CoreRegistryV1.sol/CoreRegistryV1.json +242 -0
  37. package/artifacts/contracts/engine-registry/EngineRegistryV0.sol/EngineRegistryV0.json +2 -2
  38. package/artifacts/contracts/explorations/GenArt721CoreV3_Explorations.sol/GenArt721CoreV3_Explorations.json +41 -4
  39. package/artifacts/contracts/interfaces/0.8.x/IBytecodeStorageReader.sol/IBytecodeStorageReader.json +111 -0
  40. package/artifacts/contracts/interfaces/0.8.x/ICoreRegistryV1.sol/ICoreRegistryV1.json +172 -0
  41. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterSEAV0.sol/IFilteredMinterSEAV0.json +1034 -0
  42. package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreContractExposesHashSeed.sol/IGenArt721CoreContractExposesHashSeed.json +30 -0
  43. package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreContractV3.sol/IGenArt721CoreContractV3.json +162 -0
  44. package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Base.sol/IGenArt721CoreContractV3_Base.json +162 -0
  45. package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Engine.sol/IGenArt721CoreContractV3_Engine.json +137 -13
  46. package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Engine_Flex.sol/IGenArt721CoreContractV3_Engine_Flex.json +1060 -0
  47. package/artifacts/contracts/interfaces/0.8.x/IMinterFilterV1.sol/IMinterFilterV1.json +429 -0
  48. package/artifacts/contracts/interfaces/0.8.x/IPseudorandomAtomic.sol/IPseudorandomAtomic.json +30 -0
  49. package/artifacts/contracts/interfaces/0.8.x/IRandomizer_V3CoreBase.sol/IRandomizer_V3CoreBase.json +24 -0
  50. package/artifacts/contracts/interfaces/0.8.x/ISharedRandomizerV0.sol/ISharedRandomizerV0.json +207 -0
  51. package/artifacts/contracts/interfaces/0.8.x/IWETH.sol/IWETH.json +55 -0
  52. package/artifacts/contracts/libs/0.8.x/{BytecodeStorage.sol → BytecodeStorageV0.sol}/BytecodeStorage.json +3 -3
  53. package/artifacts/contracts/libs/0.8.x/BytecodeStorageV1.sol/BytecodeStorageReader.json +163 -0
  54. package/artifacts/contracts/libs/0.8.x/BytecodeStorageV1.sol/BytecodeStorageWriter.json +10 -0
  55. package/artifacts/contracts/libs/0.8.x/Bytes32Strings.sol/Bytes32Strings.json +2 -2
  56. package/artifacts/contracts/libs/0.8.x/ERC721_PackedHashSeed.sol/ERC721_PackedHashSeed.json +2 -2
  57. package/artifacts/contracts/libs/0.8.x/SSTORE2.sol/SSTORE2.json +10 -0
  58. package/artifacts/contracts/libs/integration-refs/delegation-registry/DelegationRegistry.sol/DelegationRegistry.json +2 -2
  59. package/artifacts/contracts/libs/integration-refs/gnosis-safe/GnosisSafeMock.sol/GnosisSafeMock.json +2 -2
  60. package/artifacts/contracts/libs/integration-refs/gnosis-safe/GnosisSafeProxyFactoryMock.sol/GnosisSafeProxyFactoryMock.json +2 -2
  61. package/artifacts/contracts/libs/integration-refs/gnosis-safe/MultiSendMock.sol/MultiSendMock.json +2 -2
  62. package/artifacts/contracts/libs/integration-refs/weth9/weth9.sol/WETH9_.json +295 -0
  63. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV1.sol/MinterFilterV1.json +2 -2
  64. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV2.sol/MinterFilterV2.json +692 -0
  65. package/artifacts/contracts/minter-suite/Minters/MinterDAExpSettlementV2.sol/MinterDAExpSettlementV2.json +2 -2
  66. package/artifacts/contracts/minter-suite/Minters/MinterDAExpV4.sol/MinterDAExpV4.json +2 -2
  67. package/artifacts/contracts/minter-suite/Minters/MinterDALinV4.sol/MinterDALinV4.json +2 -2
  68. package/artifacts/contracts/minter-suite/Minters/MinterHolderV4.sol/MinterHolderV4.json +2 -2
  69. package/artifacts/contracts/minter-suite/Minters/MinterMerkleV5.sol/MinterMerkleV5.json +2 -2
  70. package/artifacts/contracts/minter-suite/Minters/MinterPolyptychV0.sol/IGenArt721CoreContractV3WithRandomizer.json +104 -124
  71. package/artifacts/contracts/minter-suite/Minters/MinterPolyptychV0.sol/MinterPolyptychV0.json +2 -2
  72. package/artifacts/contracts/minter-suite/Minters/MinterSEAV0.sol/MinterSEAV0.json +1289 -0
  73. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20V4.sol/MinterSetPriceERC20V4.json +2 -2
  74. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceV4.sol/MinterSetPriceV4.json +2 -2
  75. package/artifacts/contracts/mock/{BytecodeTextCR_DMock.sol/BytecodeTextCR_DMock.json → BytecodeV0TextCR_DMock.sol/BytecodeV0TextCR_DMock.json} +4 -4
  76. package/artifacts/contracts/mock/BytecodeV1LibCallsMock.sol/BytecodeV1LibCallsMock.json +135 -0
  77. package/artifacts/contracts/mock/BytecodeV1TextCR_DMock.sol/BytecodeV1TextCR_DMock.json +301 -0
  78. package/artifacts/contracts/mock/DeadReceiverBidderMock.sol/DeadReceiverBidderMock.json +33 -0
  79. package/artifacts/contracts/mock/DeadReceiverMock.sol/DeadReceiverMock.json +2 -2
  80. package/artifacts/contracts/mock/DummySharedMinter.sol/DummySharedMinter.json +114 -0
  81. package/artifacts/contracts/mock/ERC20Mock.sol/ERC20Mock.json +2 -2
  82. package/artifacts/contracts/mock/GasLimitReceiverBidderMock.sol/GasLimitReceiverBidderMock.json +46 -0
  83. package/artifacts/contracts/mock/GasLimitReceiverMock.sol/GasLimitReceiverMock.json +28 -0
  84. package/artifacts/contracts/mock/GenArt721CoreV3_Engine_IncorrectCoreType.sol/GenArt721CoreV3_Engine_IncorrectCoreType.json +22 -4
  85. package/artifacts/contracts/mock/MockAdminACLV0.sol/MockAdminACLV0Events.json +2 -2
  86. package/artifacts/contracts/mock/MockAdminACLV0_PROHIBITION.sol/MockAdminACLV0Events_PROHIBITION.json +440 -0
  87. package/artifacts/contracts/mock/OriginRegisterMock.sol/OriginRegisterMock.json +39 -0
  88. package/artifacts/contracts/mock/RandomizerV2_NoAssignMock.sol/RandomizerV2_NoAssignMock.json +2 -2
  89. package/artifacts/contracts/mock/ReentrancyHolderMock.sol/ReentrancyHolderMock.json +2 -2
  90. package/artifacts/contracts/mock/ReentrancyMerkleMock.sol/ReentrancyMerkleMock.json +2 -2
  91. package/artifacts/contracts/mock/ReentrancyMock.sol/ReentrancyMock.json +2 -2
  92. package/artifacts/contracts/mock/ReentrancySEAMock.sol/ReentrancySEAAutoBidderMock.json +51 -0
  93. package/artifacts/contracts/mock/SSTORE2Mock.sol/SSTORE2Mock.json +118 -0
  94. package/artifacts/contracts/{BasicRandomizer.sol → randomizer/deprecated/BasicRandomizer.sol}/BasicRandomizer.json +3 -3
  95. package/artifacts/contracts/randomizer/deprecated/BasicRandomizerBase_v0_0_0.sol/RandomizerBase.json +10 -0
  96. package/artifacts/contracts/randomizer/deprecated/PolyptychRandomizerV0.sol/BasicPolyptychRandomizerV0.json +229 -0
  97. package/artifacts/contracts/randomizer/deprecated/RandomizerV2.sol/BasicRandomizerV2.json +102 -0
  98. package/artifacts/contracts/randomizer/primitive/PseudorandomAtomicBasic.sol/PseudorandomAtomic.json +30 -0
  99. package/artifacts/contracts/randomizer/shared/SharedRandomizerV0.sol/SharedRandomizerV0.json +231 -0
  100. package/artifacts/contracts/royalty-registry/GenArt721RoyaltyOverride.sol/GenArt721RoyaltyOverride.json +2 -2
  101. package/contracts/AdminACLV0.sol +1 -1
  102. package/contracts/AdminACLV1.sol +1 -1
  103. package/contracts/DependencyRegistryV0.sol +89 -141
  104. package/contracts/GenArt721CoreV3.sol +160 -204
  105. package/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV2.sol +1 -1
  106. package/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV3.sol +1 -1
  107. package/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol +1 -1
  108. package/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV1.sol +1 -1
  109. package/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV2.sol +1 -1
  110. package/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV3.sol +1 -1
  111. package/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV1.sol +1 -1
  112. package/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV2.sol +1 -1
  113. package/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV3.sol +1 -1
  114. package/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV1.sol +1 -1
  115. package/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV2.sol +1 -1
  116. package/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV3.sol +1 -1
  117. package/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV4.sol +1 -1
  118. package/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV2.sol +1 -1
  119. package/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV3.sol +1 -1
  120. package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V2.sol +1 -1
  121. package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V3.sol +1 -1
  122. package/contracts/engine/{GenArt721CoreV2_ENGINE_FLEX.sol → V2/GenArt721CoreV2_ENGINE_FLEX.sol} +2 -2
  123. package/contracts/engine/{GenArt721CoreV2_PBAB.sol → V2/GenArt721CoreV2_PBAB.sol} +2 -2
  124. package/contracts/engine/{GenArt721CoreV2_PRTNR.sol → V2/GenArt721CoreV2_PRTNR.sol} +3 -3
  125. package/contracts/engine/{GenArt721MinterBurner_PBAB.sol → V2/GenArt721MinterBurner_PBAB.sol} +2 -2
  126. package/contracts/engine/{GenArt721MinterDAExp_PBAB.sol → V2/GenArt721MinterDAExp_PBAB.sol} +2 -2
  127. package/contracts/engine/{GenArt721Minter_PBAB.sol → V2/GenArt721Minter_PBAB.sol} +2 -2
  128. package/contracts/{GenArt721CoreV3_Engine.sol → engine/V3/GenArt721CoreV3_Engine.sol} +163 -216
  129. package/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol +2283 -0
  130. package/contracts/engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol +2293 -0
  131. package/contracts/engine/V3/forks/PROHIBITION/AdminACLV0_PROHIBITION.sol +281 -0
  132. package/contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol +2354 -0
  133. package/contracts/engine/V3/forks/PROHIBITION/interfaces/IAdminACLV0_PROHIBITION.sol +123 -0
  134. package/contracts/engine/V3/forks/PROHIBITION/interfaces/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.sol +29 -0
  135. package/contracts/engine-registry/CoreRegistryV1.sol +254 -0
  136. package/contracts/engine-registry/EngineRegistryV0.sol +1 -1
  137. package/contracts/explorations/GenArt721CoreV3_Explorations.sol +164 -190
  138. package/contracts/interfaces/0.8.x/IBytecodeStorageReader.sol +62 -0
  139. package/contracts/interfaces/0.8.x/ICoreRegistryV1.sol +27 -0
  140. package/contracts/interfaces/0.8.x/IDelegationRegistry.sol +1 -1
  141. package/contracts/interfaces/0.8.x/IDependencyRegistryCompatibleV0.sol +1 -1
  142. package/contracts/interfaces/0.8.x/IDependencyRegistryV0.sol +1 -1
  143. package/contracts/interfaces/0.8.x/IEngineRegistryV0.sol +1 -1
  144. package/contracts/interfaces/0.8.x/IFilteredMinterSEAV0.sol +164 -0
  145. package/contracts/interfaces/0.8.x/IGenArt721CoreContractExposesHashSeed.sol +11 -0
  146. package/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Base.sol +42 -0
  147. package/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Engine.sol +0 -8
  148. package/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Engine_Flex.sol +132 -0
  149. package/contracts/interfaces/0.8.x/IMinterFilterV1.sol +158 -0
  150. package/contracts/interfaces/0.8.x/IPseudorandomAtomic.sol +16 -0
  151. package/contracts/interfaces/0.8.x/IRandomizerPolyptychV0.sol +1 -1
  152. package/contracts/interfaces/0.8.x/IRandomizerV2.sol +2 -5
  153. package/contracts/interfaces/0.8.x/IRandomizer_V3CoreBase.sol +10 -0
  154. package/contracts/interfaces/0.8.x/ISharedRandomizerV0.sol +105 -0
  155. package/contracts/interfaces/0.8.x/IWETH.sol +11 -0
  156. package/contracts/libs/0.8.x/BytecodeStorageV1.sol +399 -0
  157. package/contracts/libs/0.8.x/SSTORE2.sol +109 -0
  158. package/contracts/libs/integration-refs/delegation-registry/DelegationRegistry.sol +1 -1
  159. package/contracts/libs/integration-refs/weth9/weth9.sol +765 -0
  160. package/contracts/minter-suite/MinterFilter/MinterFilterV1.sol +36 -48
  161. package/contracts/minter-suite/MinterFilter/MinterFilterV2.sol +756 -0
  162. package/contracts/minter-suite/Minters/MinterDAExpSettlementV2.sol +27 -35
  163. package/contracts/minter-suite/Minters/MinterDAExpV4.sol +17 -22
  164. package/contracts/minter-suite/Minters/MinterDALinV4.sol +16 -18
  165. package/contracts/minter-suite/Minters/MinterHolderV4.sol +20 -20
  166. package/contracts/minter-suite/Minters/MinterMerkleV5.sol +14 -16
  167. package/contracts/minter-suite/Minters/MinterPolyptychV0.sol +37 -36
  168. package/contracts/minter-suite/Minters/MinterSEAV0.sol +1273 -0
  169. package/contracts/minter-suite/Minters/MinterSetPriceERC20V4.sol +12 -12
  170. package/contracts/minter-suite/Minters/MinterSetPriceV4.sol +10 -11
  171. package/contracts/mock/{BytecodeTextCR_DMock.sol → BytecodeV0TextCR_DMock.sol} +5 -5
  172. package/contracts/mock/BytecodeV1LibCallsMock.sol +114 -0
  173. package/contracts/mock/BytecodeV1TextCR_DMock.sol +233 -0
  174. package/contracts/mock/DeadReceiverBidderMock.sol +23 -0
  175. package/contracts/mock/DeadReceiverMock.sol +1 -1
  176. package/contracts/mock/DummySharedMinter.sol +75 -0
  177. package/contracts/mock/GasLimitReceiverBidderMock.sol +23 -0
  178. package/contracts/mock/GasLimitReceiverMock.sol +19 -0
  179. package/contracts/mock/GenArt721CoreV3_Engine_IncorrectCoreType.sol +14 -27
  180. package/contracts/mock/MockAdminACLV0.sol +1 -1
  181. package/contracts/mock/MockAdminACLV0_PROHIBITION.sol +207 -0
  182. package/contracts/mock/OriginRegisterMock.sol +27 -0
  183. package/contracts/mock/RandomizerV2_NoAssignMock.sol +3 -12
  184. package/contracts/mock/ReentrancySEAMock.sol +36 -0
  185. package/contracts/mock/SSTORE2Mock.sol +93 -0
  186. package/contracts/{BasicRandomizer.sol → randomizer/deprecated/BasicRandomizer.sol} +1 -1
  187. package/contracts/randomizer/deprecated/BasicRandomizerBase_v0_0_0.sol +23 -0
  188. package/contracts/{BasicPolyptychRandomizerV0.sol → randomizer/deprecated/PolyptychRandomizerV0.sol} +20 -29
  189. package/contracts/{BasicRandomizerV2.sol → randomizer/deprecated/RandomizerV2.sol} +6 -14
  190. package/contracts/randomizer/primitive/PseudorandomAtomicBasic.sol +30 -0
  191. package/contracts/randomizer/shared/SharedRandomizerV0.sol +245 -0
  192. package/package.json +36 -30
  193. package/.env.example +0 -10
  194. package/artifacts/contracts/BasicPolyptychRandomizerV0.sol/BasicPolyptychRandomizerV0.json +0 -229
  195. package/artifacts/contracts/BasicRandomizerV2.sol/BasicRandomizerV2.json +0 -102
  196. package/artifacts/contracts/GenArt721CoreV3_Engine.sol/GenArt721CoreV3_Engine.json +0 -1942
  197. package/artifacts/contracts/engine-registry/future/EngineRegistryV1.sol/EngineRegistryV1.json +0 -109
  198. package/contracts/engine-registry/future/EngineRegistryV1.sol +0 -86
  199. /package/contracts/libs/0.8.x/{BytecodeStorage.sol → BytecodeStorageV0.sol} +0 -0
@@ -0,0 +1,62 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Creatd By: Art Blocks Inc.
3
+
4
+ pragma solidity ^0.8.0;
5
+
6
+ /**
7
+ * @title Art Blocks Script Storage Library (Reader)
8
+ * @notice This interface defines the expected read functions for the Art Blocks Script Storage Library (Reader).
9
+ */
10
+ interface IBytecodeStorageReader {
11
+ /**
12
+ * @notice Read a string from contract bytecode
13
+ * @param _address address of deployed contract with bytecode stored in the V0 or V1 format
14
+ * @return data string read from contract bytecode
15
+ * @dev This function performs input validation that the contract to read is in an expected format
16
+ */
17
+ function readFromBytecode(
18
+ address _address
19
+ ) external view returns (string memory data);
20
+
21
+ /**
22
+ * @notice Read the bytes from contract bytecode that was written to the EVM using SSTORE2
23
+ * @param _address address of deployed contract with bytecode stored in the SSTORE2 format
24
+ * @return data bytes read from contract bytecode
25
+ * @dev This function performs no input validation on the provided contract,
26
+ * other than that there is content to read (but not that its a "storage contract")
27
+ */
28
+ function readBytesFromSSTORE2Bytecode(
29
+ address _address
30
+ ) external view returns (bytes memory data);
31
+
32
+ /**
33
+ * @notice Read the bytes from contract bytecode, with an explicitly provided starting offset
34
+ * @param _address address of deployed contract with bytecode stored in the V0 or V1 format
35
+ * @param _offset offset to read from in contract bytecode, explicitly provided (not calculated)
36
+ * @return data bytes read from contract bytecode
37
+ * @dev This function performs no input validation on the provided contract,
38
+ * other than that there is content to read (but not that its a "storage contract")
39
+ */
40
+ function readBytesFromBytecode(
41
+ address _address,
42
+ uint256 _offset
43
+ ) external view returns (bytes memory data);
44
+
45
+ /**
46
+ * @notice Get address for deployer for given contract bytecode
47
+ * @param _address address of deployed contract with bytecode stored in the V0 or V1 format
48
+ * @return writerAddress address read from contract bytecode
49
+ */
50
+ function getWriterAddressForBytecode(
51
+ address _address
52
+ ) external view returns (address);
53
+
54
+ /**
55
+ * @notice Get version for given contract bytecode
56
+ * @param _address address of deployed contract with bytecode stored in the V0 or V1 format
57
+ * @return version version read from contract bytecode
58
+ */
59
+ function getLibraryVersionForBytecode(
60
+ address _address
61
+ ) external view returns (bytes32);
62
+ }
@@ -0,0 +1,27 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Created By: Art Blocks Inc.
3
+ pragma solidity ^0.8.0;
4
+
5
+ import "./IEngineRegistryV0.sol";
6
+
7
+ interface ICoreRegistryV1 is IEngineRegistryV0 {
8
+ function registerContracts(
9
+ address[] calldata _contractAddresses,
10
+ bytes32[] calldata _coreVersions,
11
+ bytes32[] calldata _coreTypes
12
+ ) external;
13
+
14
+ function unregisterContracts(
15
+ address[] calldata _contractAddresses
16
+ ) external;
17
+
18
+ function getNumRegisteredContracts() external view returns (uint256);
19
+
20
+ function getRegisteredContractAt(
21
+ uint256 _index
22
+ ) external view returns (address);
23
+
24
+ function isRegisteredContract(
25
+ address _contractAddress
26
+ ) external view returns (bool isRegistered);
27
+ }
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: CC0-1.0
2
- pragma solidity ^0.8.17;
2
+ pragma solidity ^0.8.19;
3
3
 
4
4
  /// @dev Source: https://github.com/0xfoobar/delegation-registry/blob/main/src/IDelegationRegistry.sol
5
5
 
@@ -1,6 +1,6 @@
1
1
  // SPDX-License-Identifier: LGPL-3.0-only
2
2
  // Created By: Art Blocks Inc.
3
- pragma solidity ^0.8.17;
3
+ pragma solidity ^0.8.19;
4
4
 
5
5
  interface IDependencyRegistryCompatibleV0 {
6
6
  /// Dependency registry managed by Art Blocks
@@ -1,6 +1,6 @@
1
1
  // SPDX-License-Identifier: LGPL-3.0-only
2
2
  // Created By: Art Blocks Inc.
3
- pragma solidity ^0.8.17;
3
+ pragma solidity ^0.8.19;
4
4
 
5
5
  interface IDependencyRegistryV0 {
6
6
  event SupportedCoreContractAdded(address indexed _coreContractAddress);
@@ -1,6 +1,6 @@
1
1
  // SPDX-License-Identifier: LGPL-3.0-only
2
2
  // Created By: Art Blocks Inc.
3
- pragma solidity ^0.8.17;
3
+ pragma solidity ^0.8.0;
4
4
 
5
5
  interface IEngineRegistryV0 {
6
6
  /// ADDRESS
@@ -0,0 +1,164 @@
1
+ // SPDX-License-Identifier: GPL-3.0
2
+ // Created By: Art Blocks Inc.
3
+
4
+ import "./IFilteredMinterV2.sol";
5
+
6
+ pragma solidity ^0.8.0;
7
+
8
+ /**
9
+ * @title Interface for MinterSEA, inspired by nouns.wtf.
10
+ * This interface combines the set of interfaces that add support for
11
+ * a Serial English Auction Minter.
12
+ * @author Art Blocks Inc.
13
+ */
14
+ interface IFilteredMinterSEAV0 is IFilteredMinterV2 {
15
+ // project-specific parameters
16
+ struct ProjectConfig {
17
+ bool maxHasBeenInvoked;
18
+ // max uint24 ~= 1.6e7, > max possible project invocations of 1e6
19
+ uint24 maxInvocations;
20
+ // time after which new auctions may be started
21
+ // note: new auctions must always be started with a new bid, at which
22
+ // point the auction will actually start
23
+ // @dev this is a project-level constraint, and individual auctions
24
+ // will each have their own start time defined in `activeAuction`
25
+ // max uint64 ~= 1.8e19 sec ~= 570 billion years
26
+ uint64 timestampStart;
27
+ // duration of each new auction, before any extensions due to late bids
28
+ // @dev for configured auctions, this will be gt 0, so it may be used
29
+ // to determine if an auction is configured
30
+ uint32 auctionDurationSeconds;
31
+ // next token number to be auctioned, owned by minter
32
+ // @dev store token number to enable storage packing, as token ID can
33
+ // be derived from this value in combination with project ID
34
+ // max uint24 ~= 1.6e7, > max possible project invocations of 1e6
35
+ uint24 nextTokenNumber;
36
+ // bool to indicate if next token number has been populated, or is
37
+ // still default value of 0
38
+ // @dev required to handle edge case where next token number is 0
39
+ bool nextTokenNumberIsPopulated;
40
+ // reserve price, i.e. minimum starting bid price, in wei
41
+ uint256 basePrice;
42
+ // active auction for project
43
+ Auction activeAuction;
44
+ }
45
+
46
+ /// Struct that defines a single token English auction
47
+ struct Auction {
48
+ // token number of NFT being auctioned
49
+ uint256 tokenId;
50
+ // The current highest bid amount (in wei)
51
+ uint256 currentBid;
52
+ // The address of the current highest bidder
53
+ // @dev if this is not the zero address, then the auction is
54
+ // considered initialized
55
+ address payable currentBidder;
56
+ // The time that the auction is scheduled to end
57
+ // max uint64 ~= 1.8e19 sec ~= 570 billion years
58
+ uint64 endTime;
59
+ // Whether or not the auction has been settled
60
+ bool settled;
61
+ }
62
+
63
+ /// Admin-controlled range of allowed auction durations updated
64
+ event AuctionDurationSecondsRangeUpdated(
65
+ uint32 minAuctionDurationSeconds,
66
+ uint32 maxAuctionDurationSeconds
67
+ );
68
+
69
+ /// Admin-controlled minimum bid increment percentage updated
70
+ event MinterMinBidIncrementPercentageUpdated(
71
+ uint8 minterMinBidIncrementPercentage
72
+ );
73
+
74
+ /// Admin-controlled time buffer updated
75
+ event MinterTimeBufferUpdated(uint32 minterTimeBufferSeconds);
76
+
77
+ // Admin-controlled refund gas limit updated
78
+ event MinterRefundGasLimitUpdated(uint16 refundGasLimit);
79
+
80
+ /// Artist configured future auction details
81
+ event ConfiguredFutureAuctions(
82
+ uint256 indexed projectId,
83
+ uint64 timestampStart,
84
+ uint32 auctionDurationSeconds,
85
+ uint256 basePrice
86
+ );
87
+
88
+ /// Future auction details for project `projectId` reset
89
+ event ResetAuctionDetails(uint256 indexed projectId);
90
+
91
+ /// New token auction created, token created and sent to minter
92
+ event AuctionInitialized(
93
+ uint256 indexed tokenId,
94
+ address indexed bidder,
95
+ uint256 bidAmount,
96
+ uint64 endTime
97
+ );
98
+
99
+ /// Successful bid placed on token auction
100
+ event AuctionBid(
101
+ uint256 indexed tokenId,
102
+ address indexed bidder,
103
+ uint256 bidAmount
104
+ );
105
+
106
+ /// Token auction was settled (token distributed to winner)
107
+ event AuctionSettled(
108
+ uint256 indexed tokenId,
109
+ address indexed winner,
110
+ uint256 price
111
+ );
112
+
113
+ // Next token ID for project `projectId` updated
114
+ event ProjectNextTokenUpdated(uint256 indexed projectId, uint256 tokenId);
115
+
116
+ // Next token ID for project `projectId` was ejected from the minter
117
+ // and is no longer populated
118
+ event ProjectNextTokenEjected(uint256 indexed projectId);
119
+
120
+ function configureFutureAuctions(
121
+ uint256 _projectId,
122
+ uint256 _timestampStart,
123
+ uint256 _auctionDurationSeconds,
124
+ uint256 _basePrice
125
+ ) external;
126
+
127
+ function resetAuctionDetails(uint256 _projectId) external;
128
+
129
+ // artist-only function that populates the next token ID to be auctioned
130
+ // for project `projectId`
131
+ function tryPopulateNextToken(uint256 _projectId) external;
132
+
133
+ function settleAuctionAndCreateBid(
134
+ uint256 _settleTokenId,
135
+ uint256 _bidTokenId
136
+ ) external payable;
137
+
138
+ function settleAuction(uint256 _tokenId) external;
139
+
140
+ function createBid(uint256 _tokenId) external payable;
141
+
142
+ function createBid_l34(uint256 _tokenId) external payable;
143
+
144
+ function minterConfigurationDetails()
145
+ external
146
+ view
147
+ returns (
148
+ uint32 minAuctionDurationSeconds_,
149
+ uint32 maxAuctionDurationSeconds_,
150
+ uint8 minterMinBidIncrementPercentage_,
151
+ uint32 minterTimeBufferSeconds_,
152
+ uint16 minterRefundGasLimit_
153
+ );
154
+
155
+ function projectConfigurationDetails(
156
+ uint256 _projectId
157
+ ) external view returns (ProjectConfig memory projectConfiguration_);
158
+
159
+ function projectActiveAuctionDetails(
160
+ uint256 _projectId
161
+ ) external view returns (Auction memory);
162
+
163
+ function getTokenToBid(uint256 _projectId) external view returns (uint256);
164
+ }
@@ -0,0 +1,11 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Created By: Art Blocks Inc.
3
+
4
+ pragma solidity ^0.8.0;
5
+
6
+ interface IGenArt721CoreContractExposesHashSeed {
7
+ // function to read the hash-seed for a given tokenId
8
+ function tokenIdToHashSeed(
9
+ uint256 _tokenId
10
+ ) external view returns (bytes12);
11
+ }
@@ -77,6 +77,9 @@ interface IGenArt721CoreContractV3_Base is IManifold {
77
77
  bytes4 _selector
78
78
  ) external returns (bool);
79
79
 
80
+ /// getter function of public variable
81
+ function startingProjectId() external view returns (uint256);
82
+
80
83
  // getter function of public variable
81
84
  function nextProjectId() external view returns (uint256);
82
85
 
@@ -100,6 +103,14 @@ interface IGenArt721CoreContractV3_Base is IManifold {
100
103
  uint256 _projectId
101
104
  ) external view returns (uint256);
102
105
 
106
+ function projectIdToSecondaryMarketRoyaltyPercentage(
107
+ uint256 _projectId
108
+ ) external view returns (uint256);
109
+
110
+ function projectURIInfo(
111
+ uint256 _projectId
112
+ ) external view returns (string memory projectBaseURI);
113
+
103
114
  // @dev new function in V3
104
115
  function projectStateData(
105
116
  uint256 _projectId
@@ -115,6 +126,37 @@ interface IGenArt721CoreContractV3_Base is IManifold {
115
126
  bool locked
116
127
  );
117
128
 
129
+ function projectDetails(
130
+ uint256 _projectId
131
+ )
132
+ external
133
+ view
134
+ returns (
135
+ string memory projectName,
136
+ string memory artist,
137
+ string memory description,
138
+ string memory website,
139
+ string memory license
140
+ );
141
+
142
+ function projectScriptDetails(
143
+ uint256 _projectId
144
+ )
145
+ external
146
+ view
147
+ returns (
148
+ string memory scriptTypeAndVersion,
149
+ string memory aspectRatio,
150
+ uint256 scriptCount
151
+ );
152
+
153
+ function projectScriptByIndex(
154
+ uint256 _projectId,
155
+ uint256 _index
156
+ ) external view returns (string memory);
157
+
158
+ function tokenIdToHash(uint256 _tokenId) external view returns (bytes32);
159
+
118
160
  // function to set a token's hash (must be guarded)
119
161
  function setTokenHash_8PT(uint256 _tokenId, bytes32 _hash) external;
120
162
 
@@ -69,12 +69,4 @@ interface IGenArt721CoreContractV3_Engine is IGenArt721CoreContractV3_Base {
69
69
  external
70
70
  view
71
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
72
  }
@@ -0,0 +1,132 @@
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_Engine.sol";
8
+
9
+ /**
10
+ * @title This interface is intended to house interface items that are common
11
+ * across all GenArt721CoreContractV3 Engine Flex and derivative implementations.
12
+ * @author Art Blocks Inc.
13
+ */
14
+ interface IGenArt721CoreContractV3_Engine_Flex is
15
+ IGenArt721CoreContractV3_Engine
16
+ {
17
+ /**
18
+ * @notice When an external asset dependency is updated or added, this event is emitted.
19
+ * @param _projectId The project ID of the project that was updated.
20
+ * @param _index The index of the external asset dependency that was updated.
21
+ * @param _cid The content ID of the external asset dependency. This is an empty string
22
+ * if the dependency type is ONCHAIN.
23
+ * @param _dependencyType The type of the external asset dependency.
24
+ * @param _externalAssetDependencyCount The number of external asset dependencies.
25
+ */
26
+ event ExternalAssetDependencyUpdated(
27
+ uint256 indexed _projectId,
28
+ uint256 indexed _index,
29
+ string _cid,
30
+ ExternalAssetDependencyType _dependencyType,
31
+ uint24 _externalAssetDependencyCount
32
+ );
33
+
34
+ /**
35
+ * @notice The project id `_projectId` has had an external asset dependency removed at index `_index`.
36
+ */
37
+ event ExternalAssetDependencyRemoved(
38
+ uint256 indexed _projectId,
39
+ uint256 indexed _index
40
+ );
41
+
42
+ /**
43
+ * @notice The preferred gateway for dependency type `_dependencyType` has been updated to `_gatewayAddress`.
44
+ */
45
+ event GatewayUpdated(
46
+ ExternalAssetDependencyType indexed _dependencyType,
47
+ string _gatewayAddress
48
+ );
49
+
50
+ /**
51
+ * @notice The project id `_projectId` has had all external asset dependencies locked.
52
+ * @dev This is a one-way operation. Once locked, the external asset dependencies cannot be updated.
53
+ */
54
+ event ProjectExternalAssetDependenciesLocked(uint256 indexed _projectId);
55
+
56
+ /**
57
+ * @notice An external asset dependency type. Can be one of IPFS, ARWEAVE, or ONCHAIN.
58
+ */
59
+ enum ExternalAssetDependencyType {
60
+ IPFS,
61
+ ARWEAVE,
62
+ ONCHAIN
63
+ }
64
+
65
+ /**
66
+ * @notice An external asset dependency. This is a struct that contains the CID of the dependency,
67
+ * the type of the dependency, and the address of the bytecode for this dependency.
68
+ */
69
+ struct ExternalAssetDependency {
70
+ string cid;
71
+ ExternalAssetDependencyType dependencyType;
72
+ address bytecodeAddress;
73
+ }
74
+
75
+ /**
76
+ * @notice An external asset dependency with data. This is a convenience struct that contains the CID of the dependency,
77
+ * the type of the dependency, the address of the bytecode for this dependency, and the data retrieved from this bytecode address.
78
+ */
79
+ struct ExternalAssetDependencyWithData {
80
+ string cid;
81
+ ExternalAssetDependencyType dependencyType;
82
+ address bytecodeAddress;
83
+ string data;
84
+ }
85
+
86
+ // preferredIPFSGateway is a url string
87
+ function preferredIPFSGateway() external view returns (string memory);
88
+
89
+ // preferredArweaveGateway is a url string
90
+ function preferredArweaveGateway() external view returns (string memory);
91
+
92
+ // updates the preferred IPFS gateway
93
+ function updateIPFSGateway(string calldata _gateway) external;
94
+
95
+ // updates the preferred Arweave gateway
96
+ function updateArweaveGateway(string calldata _gateway) external;
97
+
98
+ // locks the external asset dependencies for a project
99
+ function lockProjectExternalAssetDependencies(uint256 _projectId) external;
100
+
101
+ // updates the external asset dependency for a project at a given index
102
+ function updateProjectExternalAssetDependency(
103
+ uint256 _projectId,
104
+ uint256 _index,
105
+ string memory _cidOrData,
106
+ ExternalAssetDependencyType _dependencyType
107
+ ) external;
108
+
109
+ // adds an external asset dependency for a project
110
+ function addProjectExternalAssetDependency(
111
+ uint256 _projectId,
112
+ string memory _cidOrData,
113
+ ExternalAssetDependencyType _dependencyType
114
+ ) external;
115
+
116
+ // removes an external asset dependency for a project at a given index
117
+ function removeProjectExternalAssetDependency(
118
+ uint256 _projectId,
119
+ uint256 _index
120
+ ) external;
121
+
122
+ // getter function for project external asset dependencies
123
+ function projectExternalAssetDependencyByIndex(
124
+ uint256 _projectId,
125
+ uint256 _index
126
+ ) external view returns (ExternalAssetDependencyWithData memory);
127
+
128
+ // getter function project external asset dependency count
129
+ function projectExternalAssetDependencyCount(
130
+ uint256 _projectId
131
+ ) external view returns (uint256);
132
+ }
@@ -0,0 +1,158 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Created By: Art Blocks Inc.
3
+
4
+ pragma solidity ^0.8.0;
5
+
6
+ import "./ICoreRegistryV1.sol";
7
+ import "./IAdminACLV0.sol";
8
+
9
+ /**
10
+ * @title IMinterFilterV1
11
+ * @author Art Blocks Inc.
12
+ * @notice Interface for a new minter filter contract.
13
+ * This interface does not extend the previous version of the minter filter
14
+ * interface, as the previous version is not compatible with the new
15
+ * minter filter architecture.
16
+ * @dev This interface is for a minter filter that supports multiple core
17
+ * contracts, and allows for a minter to be set on a per-project basis.
18
+ */
19
+ interface IMinterFilterV1 {
20
+ /**
21
+ * @notice Emitted when contract is deployed to notify indexing services
22
+ * of the new contract deployment.
23
+ */
24
+ event Deployed();
25
+
26
+ /**
27
+ * @notice Globally approved minter `minter`.
28
+ */
29
+ event MinterApprovedGlobally(address indexed minter, string minterType);
30
+
31
+ /**
32
+ * @notice Globally revoked minter `minter`.
33
+ * @dev contract owner may still approve this minter on a per-contract
34
+ * basis.
35
+ */
36
+ event MinterRevokedGlobally(address indexed minter);
37
+
38
+ /**
39
+ * @notice Approved minter `minter` on core contract
40
+ * `coreContract`.
41
+ */
42
+ event MinterApprovedForContract(
43
+ address indexed coreContract,
44
+ address indexed minter,
45
+ string minterType
46
+ );
47
+
48
+ /**
49
+ * @notice Revoked minter `minter` on core contract `coreContract`.
50
+ * @dev minter filter owner may still globally approve this minter for all
51
+ * contracts.
52
+ */
53
+ event MinterRevokedForContract(
54
+ address indexed coreContract,
55
+ address indexed minter
56
+ );
57
+
58
+ /**
59
+ * @notice Minter at address `minter` set as minter for project
60
+ * `projectId` on core contract `coreContract`.
61
+ */
62
+ event ProjectMinterRegistered(
63
+ uint256 indexed projectId,
64
+ address indexed coreContract,
65
+ address indexed minter,
66
+ string minterType
67
+ );
68
+
69
+ /**
70
+ * @notice Minter removed for project `projectId` on core contract
71
+ * `coreContract`.
72
+ */
73
+ event ProjectMinterRemoved(
74
+ uint256 indexed projectId,
75
+ address indexed coreContract
76
+ );
77
+
78
+ /**
79
+ * @notice Admin ACL contract updated to `adminACLContract`.
80
+ */
81
+ event AdminACLUpdated(address indexed adminACLContract);
82
+
83
+ /**
84
+ * @notice Core Registry contract updated to `coreRegistry`.
85
+ */
86
+ event CoreRegistryUpdated(address indexed coreRegistry);
87
+
88
+ function setMinterForProject(
89
+ uint256 _projectId,
90
+ address _coreContract,
91
+ address _minter
92
+ ) external;
93
+
94
+ function removeMinterForProject(
95
+ uint256 _projectId,
96
+ address _coreContract
97
+ ) external;
98
+
99
+ // @dev function name is optimized for gas
100
+ function mint_joo(
101
+ address _to,
102
+ uint256 _projectId,
103
+ address _coreContract,
104
+ address _sender
105
+ ) external returns (uint256);
106
+
107
+ function updateCoreRegistry(address _coreRegistry) external;
108
+
109
+ function minterFilterType() external pure returns (string memory);
110
+
111
+ function getMinterForProject(
112
+ uint256 _projectId,
113
+ address _coreContract
114
+ ) external view returns (address);
115
+
116
+ function projectHasMinter(
117
+ uint256 _projectId,
118
+ address _coreContract
119
+ ) external view returns (bool);
120
+
121
+ /**
122
+ * @notice View that returns if a core contract is registered with the
123
+ * core registry, allowing this minter filter to service it.
124
+ * @param _coreContract core contract address to be checked
125
+ */
126
+ function isRegisteredCoreContract(
127
+ address _coreContract
128
+ ) external view returns (bool);
129
+
130
+ /// Address of current core registry contract
131
+ function coreRegistry() external view returns (ICoreRegistryV1);
132
+
133
+ /// The current admin ACL contract
134
+ function adminACLContract() external view returns (IAdminACLV0);
135
+
136
+ /// The quantity of projects on a core contract that have assigned minters
137
+ function getNumProjectsOnContractWithMinters(
138
+ address _coreContract
139
+ ) external view returns (uint256);
140
+
141
+ function getProjectAndMinterInfoOnContractAt(
142
+ address _coreContract,
143
+ uint256 _index
144
+ )
145
+ external
146
+ view
147
+ returns (
148
+ uint256 projectId,
149
+ address minterAddress,
150
+ string memory minterType
151
+ );
152
+
153
+ /**
154
+ * Owner of contract.
155
+ * @dev This returns the address of the Admin ACL contract.
156
+ */
157
+ function owner() external view returns (address);
158
+ }
@@ -0,0 +1,16 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Creatd By: Art Blocks Inc.
3
+
4
+ pragma solidity ^0.8.0;
5
+
6
+ interface IPseudorandomAtomic {
7
+ /**
8
+ * @notice This function atomically returns a pseudorandom bytes32 value.
9
+ * @param _entropy entropy to be included during the pseudorandom
10
+ * generation process. An example of entropy might be the hash of a core
11
+ * contract's address, and the ID of the token being generated.
12
+ */
13
+ function getPseudorandomAtomic(
14
+ bytes32 _entropy
15
+ ) external view returns (bytes32);
16
+ }