@artblocks/contracts 1.0.3 → 1.0.4

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 (366) hide show
  1. package/README.md +32 -25
  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 +125 -17
  5. package/artifacts/contracts/GenArt721CoreV3.sol/GenArt721CoreV3.json +6 -6
  6. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV0.sol/MinterDAExpV0.json +2 -2
  7. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV1.sol/MinterDAExpV1.json +2 -2
  8. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV2.sol/MinterDAExpV2.json +2 -2
  9. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV3.sol/MinterDAExpV3.json +2 -2
  10. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol/MinterDAExpSettlementV0.json +2 -2
  11. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV1.sol/MinterDAExpSettlementV1.json +2 -2
  12. package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV0.sol/MinterDALinV0.json +2 -2
  13. package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV1.sol/MinterDALinV1.json +2 -2
  14. package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV2.sol/MinterDALinV2.json +2 -2
  15. package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV3.sol/MinterDALinV3.json +2 -2
  16. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV0.sol/MinterHolderV0.json +2 -2
  17. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV1.sol/MinterHolderV1.json +2 -2
  18. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV2.sol/MinterHolderV2.json +2 -2
  19. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV3.sol/MinterHolderV3.json +2 -2
  20. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV0.sol/MinterMerkleV0.json +2 -2
  21. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV1.sol/MinterMerkleV1.json +2 -2
  22. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV2.sol/MinterMerkleV2.json +2 -2
  23. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV3.sol/MinterMerkleV3.json +2 -2
  24. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV4.sol/MinterMerkleV4.json +2 -2
  25. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV0.sol/MinterSetPriceV0.json +2 -2
  26. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV1.sol/MinterSetPriceV1.json +2 -2
  27. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV2.sol/MinterSetPriceV2.json +2 -2
  28. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV3.sol/MinterSetPriceV3.json +2 -2
  29. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V0.sol/MinterSetPriceERC20V0.json +2 -2
  30. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V1.sol/MinterSetPriceERC20V1.json +2 -2
  31. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V2.sol/MinterSetPriceERC20V2.json +2 -2
  32. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V3.sol/MinterSetPriceERC20V3.json +2 -2
  33. package/artifacts/contracts/engine/V2/GenArt721CoreV2_ENGINE_FLEX.sol/GenArt721CoreV2_ENGINE_FLEX.json +2 -2
  34. package/artifacts/contracts/engine/V2/GenArt721CoreV2_PBAB.sol/GenArt721CoreV2_PBAB.json +2 -2
  35. package/artifacts/contracts/engine/V2/GenArt721CoreV2_PRTNR.sol/GenArt721CoreV2_PRTNR.json +2 -2
  36. package/artifacts/contracts/engine/V2/GenArt721MinterBurner_PBAB.sol/GenArt721MinterBurner_PBAB.json +2 -2
  37. package/artifacts/contracts/engine/V2/GenArt721MinterDAExp_PBAB.sol/GenArt721MinterDAExp_PBAB.json +2 -2
  38. package/artifacts/contracts/engine/V2/GenArt721Minter_PBAB.sol/GenArt721Minter_PBAB.json +2 -2
  39. package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine.sol/GenArt721CoreV3_Engine.json +6 -6
  40. package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol/GenArt721CoreV3_Engine_Flex.json +6 -6
  41. package/artifacts/contracts/engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol/GenArt721CoreV3_Engine_Flex_PROOF.json +4 -4
  42. package/artifacts/contracts/engine/V3/forks/PROHIBITION/AdminACLV0_PROHIBITION.sol/AdminACLV0_PROHIBITION.json +2 -2
  43. package/artifacts/contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol/GenArt721CoreV3_Engine_Flex_PROHIBITION.json +6 -6
  44. package/artifacts/contracts/engine-registry/CoreRegistryV1.sol/CoreRegistryV1.json +2 -2
  45. package/artifacts/contracts/engine-registry/EngineRegistryV0.sol/EngineRegistryV0.json +2 -2
  46. package/artifacts/contracts/explorations/GenArt721CoreV3_Explorations.sol/GenArt721CoreV3_Explorations.json +6 -6
  47. package/artifacts/contracts/interfaces/{0.5.x → v0.5.x}/IBonusContract.sol/IBonusContract.json +1 -1
  48. package/artifacts/contracts/interfaces/{0.5.x → v0.5.x}/IGenArt721CoreContractV1.sol/IGenArt721CoreContractV1.json +1 -1
  49. package/artifacts/contracts/interfaces/{0.5.x → v0.5.x}/IGenArt721CoreV2_PBAB.sol/IGenArt721CoreV2_PBAB.json +1 -1
  50. package/artifacts/contracts/interfaces/{0.5.x → v0.5.x}/IRandomizer.sol/IRandomizer.json +1 -1
  51. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IAdminACLV0.sol/IAdminACLV0.json +1 -1
  52. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IArtblocksRoyaltyOverride.sol/IArtblocksRoyaltyOverride.json +1 -1
  53. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IBonusContract.sol/IBonusContract.json +1 -1
  54. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IBytecodeStorageReader.sol/IBytecodeStorageReader.json +1 -1
  55. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/ICoreRegistryV1.sol/ICoreRegistryV1.json +1 -1
  56. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IDelegationRegistry.sol/IDelegationRegistry.json +1 -1
  57. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IDependencyRegistryCompatibleV0.sol/IDependencyRegistryCompatibleV0.json +1 -1
  58. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IDependencyRegistryV0.sol/IDependencyRegistryV0.json +3 -3
  59. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IEngineRegistryV0.sol/IEngineRegistryV0.json +1 -1
  60. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDAExpSettlementV0.sol/IFilteredMinterDAExpSettlementV0.json +1 -1
  61. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDAExpSettlementV1.sol/IFilteredMinterDAExpSettlementV1.json +1 -1
  62. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDAExpSettlement_Mixin.sol/IFilteredMinterDAExpSettlement_Mixin.json +1 -1
  63. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDAExpV0.sol/IFilteredMinterDAExpV0.json +1 -1
  64. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDAExpV1.sol/IFilteredMinterDAExpV1.json +1 -1
  65. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDALinV0.sol/IFilteredMinterDALinV0.json +1 -1
  66. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDALinV1.sol/IFilteredMinterDALinV1.json +1 -1
  67. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterHolderV0.sol/IFilteredMinterHolderV0.json +1 -1
  68. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterHolderV1.sol/IFilteredMinterHolderV1.json +1 -1
  69. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterHolderV2.sol/IFilteredMinterHolderV2.json +1 -1
  70. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterMerkleV0.sol/IFilteredMinterMerkleV0.json +1 -1
  71. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterMerkleV1.sol/IFilteredMinterMerkleV1.json +1 -1
  72. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterMerkleV2.sol/IFilteredMinterMerkleV2.json +1 -1
  73. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterSEAV0.sol/IFilteredMinterSEAV0.json +1 -1
  74. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterV0.sol/IFilteredMinterV0.json +1 -1
  75. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterV1.sol/IFilteredMinterV1.json +1 -1
  76. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterV2.sol/IFilteredMinterV2.json +1 -1
  77. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractExposesHashSeed.sol/IGenArt721CoreContractExposesHashSeed.json +1 -1
  78. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV1.sol/IGenArt721CoreContractV1.json +1 -1
  79. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV3.sol/IGenArt721CoreContractV3.json +1 -1
  80. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3WithSharedRandomizer.sol/IGenArt721CoreContractV3WithSharedRandomizer.json +24 -0
  81. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV3_Base.sol/IGenArt721CoreContractV3_Base.json +1 -1
  82. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV3_Engine.sol/IGenArt721CoreContractV3_Engine.json +1 -1
  83. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV3_Engine_Flex.sol/IGenArt721CoreContractV3_Engine_Flex.json +1 -1
  84. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreV2_PBAB.sol/IGenArt721CoreV2_PBAB.json +1 -1
  85. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IManifold.sol/IManifold.json +1 -1
  86. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IMinterBaseV0.sol/IMinterBaseV0.json +1 -1
  87. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IMinterFilterV0.sol/IMinterFilterV0.json +1 -1
  88. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IMinterFilterV1.sol/IMinterFilterV1.json +86 -1
  89. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IMintingAPICoreV0.sol/IMintingAPICoreV0.json +1 -1
  90. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IMintingAPIMinterV0.sol/IMintingAPIMinterV0.json +1 -1
  91. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IPseudorandomAtomic.sol/IPseudorandomAtomic.json +1 -1
  92. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IRandomizer.sol/IRandomizer.json +1 -1
  93. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IRandomizerPolyptychV0.sol/IRandomizerPolyptychV0.json +1 -1
  94. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IRandomizerV2.sol/IRandomizerV2.json +1 -1
  95. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IRandomizer_V3CoreBase.sol/IRandomizer_V3CoreBase.json +1 -1
  96. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDAExpSettlementV0.sol/ISharedMinterDAExpSettlementV0.json +207 -0
  97. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDAExpV0.sol/ISharedMinterDAExpV0.json +93 -0
  98. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDALinV0.sol/ISharedMinterDALinV0.json +93 -0
  99. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDAV0.sol/ISharedMinterDAV0.json +69 -0
  100. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterHolderV0.sol/ISharedMinterHolderV0.json +203 -0
  101. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterMerkleV0.sol/ISharedMinterMerkleV0.json +123 -0
  102. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterSEAV0.sol/ISharedMinterSEAV0.json +261 -0
  103. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterSimplePurchaseV0.sol/ISharedMinterSimplePurchaseV0.json +64 -0
  104. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterV0.sol/ISharedMinterV0.json +533 -0
  105. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/ISharedRandomizerV0.sol/ISharedRandomizerV0.json +42 -26
  106. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IWETH.sol/IWETH.json +1 -1
  107. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/Address.json +2 -2
  108. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/Counters.json +2 -2
  109. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/CustomERC721Metadata.json +2 -2
  110. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/ERC721.json +2 -2
  111. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/ERC721Enumerable.json +2 -2
  112. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/GenArt721CoreV1.json +2 -2
  113. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/SafeMath.json +2 -2
  114. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/Strings.json +2 -2
  115. package/artifacts/contracts/legacy/GenArt721LegacyMinter.sol/GenArt721LegacyMinter.json +2 -2
  116. package/artifacts/contracts/libs/integration-refs/delegation-registry/DelegationRegistry.sol/DelegationRegistry.json +2 -2
  117. package/artifacts/contracts/libs/{0.5.x → v0.5.x}/CustomERC721Metadata.sol/CustomERC721Metadata.json +3 -3
  118. package/artifacts/contracts/libs/{0.5.x → v0.5.x}/IERC20.sol/IERC20.json +1 -1
  119. package/artifacts/contracts/libs/{0.5.x → v0.5.x}/SafeMath.sol/SafeMath.json +3 -3
  120. package/artifacts/contracts/libs/{0.5.x → v0.5.x}/Strings.sol/Strings.json +3 -3
  121. package/artifacts/contracts/libs/v0.8.x/ABHelpers.sol/ABHelpers.json +10 -0
  122. package/artifacts/contracts/libs/v0.8.x/AuthLib.sol/AuthLib.json +10 -0
  123. package/artifacts/contracts/libs/{0.8.x → v0.8.x}/BytecodeStorageV0.sol/BytecodeStorage.json +3 -3
  124. package/artifacts/contracts/libs/{0.8.x → v0.8.x}/BytecodeStorageV1.sol/BytecodeStorageReader.json +3 -3
  125. package/artifacts/contracts/libs/{0.8.x → v0.8.x}/BytecodeStorageV1.sol/BytecodeStorageWriter.json +3 -3
  126. package/artifacts/contracts/libs/{0.8.x → v0.8.x}/Bytes32Strings.sol/Bytes32Strings.json +3 -3
  127. package/artifacts/contracts/libs/{0.8.x → v0.8.x}/ERC721_PackedHashSeed.sol/ERC721_PackedHashSeed.json +3 -3
  128. package/artifacts/contracts/libs/{0.8.x → v0.8.x}/SSTORE2.sol/SSTORE2.json +3 -3
  129. package/artifacts/contracts/libs/v0.8.x/minter-libs/DAExpLib.sol/DAExpLib.json +10 -0
  130. package/artifacts/contracts/libs/v0.8.x/minter-libs/DALinLib.sol/DALinLib.json +10 -0
  131. package/artifacts/contracts/libs/v0.8.x/minter-libs/MaxInvocationsLib.sol/MaxInvocationsLib.json +10 -0
  132. package/artifacts/contracts/libs/v0.8.x/minter-libs/MerkleLib.sol/MerkleLib.json +10 -0
  133. package/artifacts/contracts/libs/v0.8.x/minter-libs/PolyptychLib.sol/PolyptychLib.json +10 -0
  134. package/artifacts/contracts/libs/v0.8.x/minter-libs/SEALib.sol/SEALib.json +10 -0
  135. package/artifacts/contracts/libs/v0.8.x/minter-libs/SetPriceLib.sol/SetPriceLib.json +10 -0
  136. package/artifacts/contracts/libs/v0.8.x/minter-libs/SettlementExpLib.sol/SettlementExpLib.json +10 -0
  137. package/artifacts/contracts/libs/v0.8.x/minter-libs/SplitFundsLib.sol/SplitFundsLib.json +10 -0
  138. package/artifacts/contracts/libs/v0.8.x/minter-libs/TokenHolderLib.sol/TokenHolderLib.json +10 -0
  139. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV0.sol/MinterFilterV0.json +2 -2
  140. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV1.sol/MinterFilterV1.json +2 -2
  141. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV2.sol/MinterFilterV2.json +58 -2
  142. package/artifacts/contracts/minter-suite/Minters/MinterDAExpHolderV5.sol/MinterDAExpHolderV5.json +1228 -0
  143. package/artifacts/contracts/minter-suite/Minters/MinterDAExpSettlementV2.sol/MinterDAExpSettlementV2.json +2 -2
  144. package/artifacts/contracts/minter-suite/Minters/MinterDAExpSettlementV3.sol/MinterDAExpSettlementV3.json +1146 -0
  145. package/artifacts/contracts/minter-suite/Minters/MinterDAExpV4.sol/MinterDAExpV4.json +2 -2
  146. package/artifacts/contracts/minter-suite/Minters/MinterDAExpV5.sol/MinterDAExpV5.json +909 -0
  147. package/artifacts/contracts/minter-suite/Minters/MinterDALinHolderV5.sol/MinterDALinHolderV5.json +1228 -0
  148. package/artifacts/contracts/minter-suite/Minters/MinterDALinV4.sol/MinterDALinV4.json +2 -2
  149. package/artifacts/contracts/minter-suite/Minters/MinterDALinV5.sol/MinterDALinV5.json +909 -0
  150. package/artifacts/contracts/minter-suite/Minters/MinterHolderV4.sol/MinterHolderV4.json +2 -2
  151. package/artifacts/contracts/minter-suite/Minters/MinterMerkleV5.sol/MinterMerkleV5.json +2 -2
  152. package/artifacts/contracts/minter-suite/Minters/MinterPolyptychV0.sol/MinterPolyptychV0.json +2 -2
  153. package/artifacts/contracts/minter-suite/Minters/MinterSEAV0.sol/MinterSEAV0.json +2 -2
  154. package/artifacts/contracts/minter-suite/Minters/MinterSEAV1.sol/MinterSEAV1.json +1325 -0
  155. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20V4.sol/MinterSetPriceERC20V4.json +2 -2
  156. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20V5.sol/MinterSetPriceERC20V5.json +848 -0
  157. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceHolderV5.sol/MinterSetPriceHolderV5.json +1091 -0
  158. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceMerkleV5.sol/MinterSetPriceMerkleV5.json +1075 -0
  159. package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychERC20V5.sol/MinterSetPricePolyptychERC20V5.json +1243 -0
  160. package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychV5.sol/MinterSetPricePolyptychV5.json +1167 -0
  161. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceV4.sol/MinterSetPriceV4.json +2 -2
  162. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceV5.sol/MinterSetPriceV5.json +772 -0
  163. package/artifacts/contracts/mock/BytecodeV0TextCR_DMock.sol/BytecodeV0TextCR_DMock.json +2 -2
  164. package/artifacts/contracts/mock/BytecodeV1LibCallsMock.sol/BytecodeV1LibCallsMock.json +2 -2
  165. package/artifacts/contracts/mock/BytecodeV1TextCR_DMock.sol/BytecodeV1TextCR_DMock.json +4 -4
  166. package/artifacts/contracts/mock/DeadReceiverBidderMock.sol/DeadReceiverBidderMock.json +25 -2
  167. package/artifacts/contracts/mock/DummySharedMinter.sol/DummySharedMinter.json +2 -2
  168. package/artifacts/contracts/mock/ERC20Mock.sol/ERC20Mock.json +28 -2
  169. package/artifacts/contracts/mock/GenArt721CoreV3_Engine_IncorrectCoreType.sol/GenArt721CoreV3_Engine_IncorrectCoreType.json +4 -4
  170. package/artifacts/contracts/mock/MockAdminACLV0.sol/MockAdminACLV0Events.json +2 -2
  171. package/artifacts/contracts/mock/MockAdminACLV0_PROHIBITION.sol/MockAdminACLV0Events_PROHIBITION.json +2 -2
  172. package/artifacts/contracts/mock/OriginRegisterMock.sol/OriginRegisterMock.json +2 -2
  173. package/artifacts/contracts/mock/RandomizerV2_NoAssignMock.sol/RandomizerV2_NoAssignMock.json +2 -2
  174. package/artifacts/contracts/mock/ReentrancyHolderMock.sol/ReentrancyHolderMock.json +2 -2
  175. package/artifacts/contracts/mock/ReentrancyMerkleMock.sol/ReentrancyMerkleMock.json +2 -2
  176. package/artifacts/contracts/mock/ReentrancyMock.sol/ReentrancyMock.json +2 -2
  177. package/artifacts/contracts/mock/ReentrancySEAMock.sol/ReentrancySEAAutoBidderMock.json +2 -2
  178. package/artifacts/contracts/mock/SSTORE2Mock.sol/SSTORE2Mock.json +2 -2
  179. package/artifacts/contracts/randomizer/deprecated/BasicRandomizer.sol/BasicRandomizer.json +2 -2
  180. package/artifacts/contracts/randomizer/deprecated/PolyptychRandomizerV0.sol/BasicPolyptychRandomizerV0.json +2 -2
  181. package/artifacts/contracts/randomizer/deprecated/RandomizerV2.sol/BasicRandomizerV2.json +2 -2
  182. package/artifacts/contracts/randomizer/primitive/PseudorandomAtomicBasic.sol/PseudorandomAtomic.json +2 -2
  183. package/artifacts/contracts/randomizer/shared/SharedRandomizerV0.sol/SharedRandomizerV0.json +48 -32
  184. package/artifacts/contracts/royalty-registry/GenArt721RoyaltyOverride.sol/GenArt721RoyaltyOverride.json +2 -2
  185. package/artifacts/contracts/royalty-registry/GenArt721RoyaltyOverride_PBAB.sol/GenArt721RoyaltyOverride_PBAB.json +2 -2
  186. package/contracts/AdminACLV0.sol +1 -1
  187. package/contracts/AdminACLV1.sol +1 -1
  188. package/contracts/DependencyRegistryV0.sol +216 -107
  189. package/contracts/GenArt721CoreV3.sol +27 -12
  190. package/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV0.sol +3 -3
  191. package/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV1.sol +3 -3
  192. package/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV2.sol +3 -3
  193. package/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV3.sol +3 -3
  194. package/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol +3 -3
  195. package/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV1.sol +3 -3
  196. package/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV0.sol +3 -3
  197. package/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV1.sol +3 -3
  198. package/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV2.sol +3 -3
  199. package/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV3.sol +3 -3
  200. package/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV0.sol +3 -3
  201. package/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV1.sol +3 -3
  202. package/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV2.sol +4 -4
  203. package/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV3.sol +4 -4
  204. package/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV0.sol +3 -3
  205. package/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV1.sol +3 -3
  206. package/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV2.sol +4 -4
  207. package/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV3.sol +4 -4
  208. package/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV4.sol +4 -4
  209. package/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV0.sol +3 -3
  210. package/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV1.sol +3 -3
  211. package/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV2.sol +3 -3
  212. package/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV3.sol +3 -3
  213. package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V0.sol +3 -3
  214. package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V1.sol +3 -3
  215. package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V2.sol +3 -3
  216. package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V3.sol +3 -3
  217. package/contracts/engine/V2/GenArt721CoreV2_ENGINE_FLEX.sol +2 -2
  218. package/contracts/engine/V2/GenArt721CoreV2_PBAB.sol +2 -2
  219. package/contracts/engine/V2/GenArt721CoreV2_PRTNR.sol +3 -3
  220. package/contracts/engine/V2/GenArt721MinterBurner_PBAB.sol +2 -2
  221. package/contracts/engine/V2/GenArt721MinterDAExp_PBAB.sol +1 -1
  222. package/contracts/engine/V2/GenArt721Minter_PBAB.sol +2 -2
  223. package/contracts/engine/V3/GenArt721CoreV3_Engine.sol +29 -14
  224. package/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol +29 -14
  225. package/contracts/engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol +9 -9
  226. package/contracts/engine/V3/forks/PROHIBITION/AdminACLV0_PROHIBITION.sol +1 -1
  227. package/contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol +20 -15
  228. package/contracts/engine/V3/forks/PROHIBITION/interfaces/IAdminACLV0_PROHIBITION.sol +1 -1
  229. package/contracts/engine/V3/forks/PROHIBITION/interfaces/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.sol +1 -1
  230. package/contracts/engine-registry/CoreRegistryV1.sol +1 -1
  231. package/contracts/engine-registry/EngineRegistryV0.sol +1 -1
  232. package/contracts/explorations/GenArt721CoreV3_Explorations.sol +27 -12
  233. package/contracts/interfaces/{0.8.x → v0.8.x}/IDependencyRegistryV0.sol +2 -2
  234. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3WithSharedRandomizer.sol +23 -0
  235. package/contracts/interfaces/{0.8.x → v0.8.x}/IMinterFilterV1.sol +26 -0
  236. package/contracts/interfaces/v0.8.x/IRandomizer_V3CoreBase.sol +23 -0
  237. package/contracts/interfaces/v0.8.x/ISharedMinterDAExpSettlementV0.sol +37 -0
  238. package/contracts/interfaces/v0.8.x/ISharedMinterDAExpV0.sol +25 -0
  239. package/contracts/interfaces/v0.8.x/ISharedMinterDALinV0.sol +26 -0
  240. package/contracts/interfaces/v0.8.x/ISharedMinterDAV0.sol +19 -0
  241. package/contracts/interfaces/v0.8.x/ISharedMinterHolderV0.sol +69 -0
  242. package/contracts/interfaces/v0.8.x/ISharedMinterMerkleV0.sol +44 -0
  243. package/contracts/interfaces/v0.8.x/ISharedMinterSEAV0.sol +78 -0
  244. package/contracts/interfaces/v0.8.x/ISharedMinterSimplePurchaseV0.sol +28 -0
  245. package/contracts/interfaces/v0.8.x/ISharedMinterV0.sol +191 -0
  246. package/contracts/interfaces/{0.8.x → v0.8.x}/ISharedRandomizerV0.sol +42 -24
  247. package/contracts/legacy/GenArt721CoreV1.sol +2 -2
  248. package/contracts/legacy/GenArt721LegacyMinter.sol +5 -5
  249. package/contracts/libs/integration-refs/delegation-registry/DelegationRegistry.sol +1 -1
  250. package/contracts/libs/v0.8.x/ABHelpers.sol +55 -0
  251. package/contracts/libs/v0.8.x/AuthLib.sol +197 -0
  252. package/contracts/libs/v0.8.x/minter-libs/DAExpLib.sol +125 -0
  253. package/contracts/libs/v0.8.x/minter-libs/DALinLib.sol +109 -0
  254. package/contracts/libs/v0.8.x/minter-libs/MaxInvocationsLib.sol +348 -0
  255. package/contracts/libs/v0.8.x/minter-libs/MerkleLib.sol +175 -0
  256. package/contracts/libs/v0.8.x/minter-libs/PolyptychLib.sol +160 -0
  257. package/contracts/libs/v0.8.x/minter-libs/SEALib.sol +320 -0
  258. package/contracts/libs/v0.8.x/minter-libs/SetPriceLib.sol +44 -0
  259. package/contracts/libs/v0.8.x/minter-libs/SettlementExpLib.sol +390 -0
  260. package/contracts/libs/v0.8.x/minter-libs/SplitFundsLib.sol +583 -0
  261. package/contracts/libs/v0.8.x/minter-libs/TokenHolderLib.sol +153 -0
  262. package/contracts/minter-suite/MinterFilter/MinterFilterV0.sol +3 -3
  263. package/contracts/minter-suite/MinterFilter/MinterFilterV1.sol +5 -5
  264. package/contracts/minter-suite/MinterFilter/MinterFilterV2.sol +83 -9
  265. package/contracts/minter-suite/Minters/MinterBase_v0_1_1.sol +4 -4
  266. package/contracts/minter-suite/Minters/MinterDAExpHolderV5.sol +966 -0
  267. package/contracts/minter-suite/Minters/MinterDAExpSettlementV2.sol +3 -3
  268. package/contracts/minter-suite/Minters/MinterDAExpSettlementV3.sol +1126 -0
  269. package/contracts/minter-suite/Minters/MinterDAExpV4.sol +3 -3
  270. package/contracts/minter-suite/Minters/MinterDAExpV5.sol +606 -0
  271. package/contracts/minter-suite/Minters/MinterDALinHolderV5.sol +952 -0
  272. package/contracts/minter-suite/Minters/MinterDALinV4.sol +3 -3
  273. package/contracts/minter-suite/Minters/MinterDALinV5.sol +591 -0
  274. package/contracts/minter-suite/Minters/MinterHolderV4.sol +4 -4
  275. package/contracts/minter-suite/Minters/MinterMerkleV5.sol +4 -4
  276. package/contracts/minter-suite/Minters/MinterPolyptychV0.sol +6 -6
  277. package/contracts/minter-suite/Minters/MinterSEAV0.sol +3 -3
  278. package/contracts/minter-suite/Minters/MinterSEAV1.sol +1190 -0
  279. package/contracts/minter-suite/Minters/MinterSetPriceERC20V4.sol +5 -5
  280. package/contracts/minter-suite/Minters/MinterSetPriceERC20V5.sol +570 -0
  281. package/contracts/minter-suite/Minters/MinterSetPriceHolderV5.sol +821 -0
  282. package/contracts/minter-suite/Minters/MinterSetPriceMerkleV5.sol +802 -0
  283. package/contracts/minter-suite/Minters/MinterSetPricePolyptychERC20V5.sol +1096 -0
  284. package/contracts/minter-suite/Minters/MinterSetPricePolyptychV5.sol +992 -0
  285. package/contracts/minter-suite/Minters/MinterSetPriceV4.sol +3 -3
  286. package/contracts/minter-suite/Minters/MinterSetPriceV5.sol +461 -0
  287. package/contracts/mock/BytecodeV0TextCR_DMock.sol +1 -1
  288. package/contracts/mock/BytecodeV1LibCallsMock.sol +1 -1
  289. package/contracts/mock/BytecodeV1TextCR_DMock.sol +1 -1
  290. package/contracts/mock/DeadReceiverBidderMock.sol +15 -0
  291. package/contracts/mock/DummySharedMinter.sol +2 -2
  292. package/contracts/mock/ERC20Mock.sol +16 -0
  293. package/contracts/mock/GenArt721CoreV3_Engine_IncorrectCoreType.sol +9 -9
  294. package/contracts/mock/MockAdminACLV0.sol +1 -1
  295. package/contracts/mock/MockAdminACLV0_PROHIBITION.sol +1 -1
  296. package/contracts/mock/OriginRegisterMock.sol +1 -1
  297. package/contracts/mock/ReentrancyHolderMock.sol +1 -1
  298. package/contracts/mock/ReentrancyMerkleMock.sol +1 -1
  299. package/contracts/mock/ReentrancyMock.sol +1 -1
  300. package/contracts/mock/ReentrancySEAMock.sol +1 -1
  301. package/contracts/mock/SSTORE2Mock.sol +1 -1
  302. package/contracts/randomizer/deprecated/BasicRandomizer.sol +1 -1
  303. package/contracts/randomizer/deprecated/PolyptychRandomizerV0.sol +2 -2
  304. package/contracts/randomizer/deprecated/RandomizerV2.sol +2 -2
  305. package/contracts/randomizer/primitive/PseudorandomAtomicBasic.sol +1 -1
  306. package/contracts/randomizer/shared/SharedRandomizerV0.sol +91 -76
  307. package/contracts/royalty-registry/GenArt721RoyaltyOverride.sol +2 -2
  308. package/contracts/royalty-registry/GenArt721RoyaltyOverride_PBAB.sol +2 -2
  309. package/package.json +46 -31
  310. package/LICENSE +0 -165
  311. package/contracts/interfaces/0.8.x/IRandomizer_V3CoreBase.sol +0 -10
  312. /package/contracts/interfaces/{0.5.x → v0.5.x}/IBonusContract.sol +0 -0
  313. /package/contracts/interfaces/{0.5.x → v0.5.x}/IGenArt721CoreContractV1.sol +0 -0
  314. /package/contracts/interfaces/{0.5.x → v0.5.x}/IGenArt721CoreV2_PBAB.sol +0 -0
  315. /package/contracts/interfaces/{0.5.x → v0.5.x}/IRandomizer.sol +0 -0
  316. /package/contracts/interfaces/{0.8.x → v0.8.x}/IAdminACLV0.sol +0 -0
  317. /package/contracts/interfaces/{0.8.x → v0.8.x}/IArtblocksRoyaltyOverride.sol +0 -0
  318. /package/contracts/interfaces/{0.8.x → v0.8.x}/IBonusContract.sol +0 -0
  319. /package/contracts/interfaces/{0.8.x → v0.8.x}/IBytecodeStorageReader.sol +0 -0
  320. /package/contracts/interfaces/{0.8.x → v0.8.x}/ICoreRegistryV1.sol +0 -0
  321. /package/contracts/interfaces/{0.8.x → v0.8.x}/IDelegationRegistry.sol +0 -0
  322. /package/contracts/interfaces/{0.8.x → v0.8.x}/IDependencyRegistryCompatibleV0.sol +0 -0
  323. /package/contracts/interfaces/{0.8.x → v0.8.x}/IEngineRegistryV0.sol +0 -0
  324. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDAExpSettlementV0.sol +0 -0
  325. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDAExpSettlementV1.sol +0 -0
  326. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDAExpSettlement_Mixin.sol +0 -0
  327. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDAExpV0.sol +0 -0
  328. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDAExpV1.sol +0 -0
  329. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDALinV0.sol +0 -0
  330. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDALinV1.sol +0 -0
  331. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterHolderV0.sol +0 -0
  332. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterHolderV1.sol +0 -0
  333. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterHolderV2.sol +0 -0
  334. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterMerkleV0.sol +0 -0
  335. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterMerkleV1.sol +0 -0
  336. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterMerkleV2.sol +0 -0
  337. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterSEAV0.sol +0 -0
  338. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterV0.sol +0 -0
  339. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterV1.sol +0 -0
  340. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterV2.sol +0 -0
  341. /package/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractExposesHashSeed.sol +0 -0
  342. /package/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV1.sol +0 -0
  343. /package/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV3.sol +0 -0
  344. /package/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV3_Base.sol +0 -0
  345. /package/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV3_Engine.sol +0 -0
  346. /package/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV3_Engine_Flex.sol +0 -0
  347. /package/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreV2_PBAB.sol +0 -0
  348. /package/contracts/interfaces/{0.8.x → v0.8.x}/IManifold.sol +0 -0
  349. /package/contracts/interfaces/{0.8.x → v0.8.x}/IMinterBaseV0.sol +0 -0
  350. /package/contracts/interfaces/{0.8.x → v0.8.x}/IMinterFilterV0.sol +0 -0
  351. /package/contracts/interfaces/{0.8.x → v0.8.x}/IMintingAPICoreV0.sol +0 -0
  352. /package/contracts/interfaces/{0.8.x → v0.8.x}/IMintingAPIMinterV0.sol +0 -0
  353. /package/contracts/interfaces/{0.8.x → v0.8.x}/IPseudorandomAtomic.sol +0 -0
  354. /package/contracts/interfaces/{0.8.x → v0.8.x}/IRandomizer.sol +0 -0
  355. /package/contracts/interfaces/{0.8.x → v0.8.x}/IRandomizerPolyptychV0.sol +0 -0
  356. /package/contracts/interfaces/{0.8.x → v0.8.x}/IRandomizerV2.sol +0 -0
  357. /package/contracts/interfaces/{0.8.x → v0.8.x}/IWETH.sol +0 -0
  358. /package/contracts/libs/{0.5.x → v0.5.x}/CustomERC721Metadata.sol +0 -0
  359. /package/contracts/libs/{0.5.x → v0.5.x}/IERC20.sol +0 -0
  360. /package/contracts/libs/{0.5.x → v0.5.x}/SafeMath.sol +0 -0
  361. /package/contracts/libs/{0.5.x → v0.5.x}/Strings.sol +0 -0
  362. /package/contracts/libs/{0.8.x → v0.8.x}/BytecodeStorageV0.sol +0 -0
  363. /package/contracts/libs/{0.8.x → v0.8.x}/BytecodeStorageV1.sol +0 -0
  364. /package/contracts/libs/{0.8.x → v0.8.x}/Bytes32Strings.sol +0 -0
  365. /package/contracts/libs/{0.8.x → v0.8.x}/ERC721_PackedHashSeed.sol +0 -0
  366. /package/contracts/libs/{0.8.x → v0.8.x}/SSTORE2.sol +0 -0
@@ -3,18 +3,18 @@ pragma solidity 0.8.19;
3
3
 
4
4
  // Created By: Art Blocks Inc.
5
5
 
6
- import "../../interfaces/0.8.x/IRandomizer_V3CoreBase.sol";
7
- import "../../interfaces/0.8.x/IAdminACLV0.sol";
8
- import "../../interfaces/0.8.x/IEngineRegistryV0.sol";
9
- import "../../interfaces/0.8.x/IGenArt721CoreContractV3_Engine_Flex.sol";
10
- import "../../interfaces/0.8.x/IGenArt721CoreContractExposesHashSeed.sol";
11
- import "../../interfaces/0.8.x/IDependencyRegistryCompatibleV0.sol";
12
- import "../../interfaces/0.8.x/IManifold.sol";
6
+ import "../../interfaces/v0.8.x/IRandomizer_V3CoreBase.sol";
7
+ import "../../interfaces/v0.8.x/IAdminACLV0.sol";
8
+ import "../../interfaces/v0.8.x/IEngineRegistryV0.sol";
9
+ import "../../interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex.sol";
10
+ import "../../interfaces/v0.8.x/IGenArt721CoreContractExposesHashSeed.sol";
11
+ import "../../interfaces/v0.8.x/IDependencyRegistryCompatibleV0.sol";
12
+ import "../../interfaces/v0.8.x/IManifold.sol";
13
13
 
14
14
  import "@openzeppelin-4.7/contracts/access/Ownable.sol";
15
- import "../../libs/0.8.x/ERC721_PackedHashSeed.sol";
16
- import "../../libs/0.8.x/BytecodeStorageV1.sol";
17
- import "../../libs/0.8.x/Bytes32Strings.sol";
15
+ import "../../libs/v0.8.x/ERC721_PackedHashSeed.sol";
16
+ import "../../libs/v0.8.x/BytecodeStorageV1.sol";
17
+ import "../../libs/v0.8.x/Bytes32Strings.sol";
18
18
 
19
19
  /**
20
20
  * @title Art Blocks Engine Flex ERC-721 core contract, V3.
@@ -184,7 +184,7 @@ contract GenArt721CoreV3_Engine_Flex is
184
184
  bool paused;
185
185
  string name;
186
186
  string artist;
187
- string description;
187
+ address descriptionAddress;
188
188
  string website;
189
189
  string license;
190
190
  string projectBaseURI;
@@ -271,7 +271,7 @@ contract GenArt721CoreV3_Engine_Flex is
271
271
  bool public immutable autoApproveArtistSplitProposals;
272
272
 
273
273
  /// version & type of this core contract
274
- bytes32 constant CORE_VERSION = "v3.1.2";
274
+ bytes32 constant CORE_VERSION = "v3.1.3";
275
275
 
276
276
  function coreVersion() external pure returns (string memory) {
277
277
  return CORE_VERSION.toString();
@@ -1195,6 +1195,13 @@ contract GenArt721CoreV3_Engine_Flex is
1195
1195
  /**
1196
1196
  * @notice Updates description of project `_projectId`.
1197
1197
  * Only artist may call when unlocked, only admin may call when locked.
1198
+ * Note: The BytecodeStorage library is used to store the description to
1199
+ * reduce initial upload cost, however, even minor edits will require an
1200
+ * expensive, entirely new bytecode storage contract to be deployed instead
1201
+ * of relatively cheap updates to already-warm storage slots. This results
1202
+ * in an increased gas cost for minor edits to the description after the
1203
+ * initial upload, but an overall decrease in gas cost for projects with
1204
+ * less than ~3-5 edits (depending on the length of the description).
1198
1205
  * @param _projectId Project ID.
1199
1206
  * @param _projectDescription New project description.
1200
1207
  */
@@ -1214,7 +1221,10 @@ contract GenArt721CoreV3_Engine_Flex is
1214
1221
  "Only artist when unlocked, owner when locked"
1215
1222
  );
1216
1223
  // effects
1217
- projects[_projectId].description = _projectDescription;
1224
+ // store description in contract bytecode, replacing reference address from
1225
+ // the old storage description with the newly created one
1226
+ projects[_projectId].descriptionAddress = _projectDescription
1227
+ .writeToBytecode();
1218
1228
  emit ProjectUpdated(_projectId, FIELD_PROJECT_DESCRIPTION);
1219
1229
  }
1220
1230
 
@@ -1622,7 +1632,12 @@ contract GenArt721CoreV3_Engine_Flex is
1622
1632
  Project storage project = projects[_projectId];
1623
1633
  projectName = project.name;
1624
1634
  artist = project.artist;
1625
- description = project.description;
1635
+ address projectDescriptionBytecodeAddress = project.descriptionAddress;
1636
+ if (projectDescriptionBytecodeAddress == address(0)) {
1637
+ description = "";
1638
+ } else {
1639
+ description = _readFromBytecode(projectDescriptionBytecodeAddress);
1640
+ }
1626
1641
  website = project.website;
1627
1642
  license = project.license;
1628
1643
  }
@@ -3,17 +3,17 @@ pragma solidity 0.8.19;
3
3
 
4
4
  // Created By: Art Blocks Inc.
5
5
 
6
- import "../../../interfaces/0.8.x/IRandomizerV2.sol";
7
- import "../../../interfaces/0.8.x/IAdminACLV0.sol";
8
- import "../../../interfaces/0.8.x/IEngineRegistryV0.sol";
9
- import "../../../interfaces/0.8.x/IGenArt721CoreContractV3_Engine_Flex.sol";
10
- import "../../../interfaces/0.8.x/IDependencyRegistryCompatibleV0.sol";
11
- import "../../../interfaces/0.8.x/IManifold.sol";
6
+ import "../../../interfaces/v0.8.x/IRandomizerV2.sol";
7
+ import "../../../interfaces/v0.8.x/IAdminACLV0.sol";
8
+ import "../../../interfaces/v0.8.x/IEngineRegistryV0.sol";
9
+ import "../../../interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex.sol";
10
+ import "../../../interfaces/v0.8.x/IDependencyRegistryCompatibleV0.sol";
11
+ import "../../../interfaces/v0.8.x/IManifold.sol";
12
12
 
13
13
  import "@openzeppelin-4.7/contracts/access/Ownable.sol";
14
- import "../../../libs/0.8.x/ERC721_PackedHashSeed.sol";
15
- import "../../../libs/0.8.x/BytecodeStorageV1.sol";
16
- import "../../../libs/0.8.x/Bytes32Strings.sol";
14
+ import "../../../libs/v0.8.x/ERC721_PackedHashSeed.sol";
15
+ import "../../../libs/v0.8.x/BytecodeStorageV1.sol";
16
+ import "../../../libs/v0.8.x/Bytes32Strings.sol";
17
17
 
18
18
  /**
19
19
  * @title Art Blocks Engine Flex ERC-721 core contract, V3.
@@ -3,7 +3,7 @@
3
3
  pragma solidity 0.8.19;
4
4
 
5
5
  import "./interfaces/IAdminACLV0_PROHIBITION.sol";
6
- import "../../../../interfaces/0.8.x/IGenArt721CoreContractV3_Base.sol";
6
+ import "../../../../interfaces/v0.8.x/IGenArt721CoreContractV3_Base.sol";
7
7
 
8
8
  import "@openzeppelin-4.7/contracts/access/Ownable.sol";
9
9
  import "@openzeppelin-4.7/contracts/utils/introspection/ERC165.sol";
@@ -6,15 +6,15 @@ pragma solidity 0.8.19;
6
6
  import "./interfaces/IAdminACLV0_PROHIBITION.sol";
7
7
  import "./interfaces/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.sol";
8
8
 
9
- import "../../../../interfaces/0.8.x/IRandomizerV2.sol";
10
- import "../../../../interfaces/0.8.x/IEngineRegistryV0.sol";
11
- import "../../../../interfaces/0.8.x/IDependencyRegistryCompatibleV0.sol";
12
- import "../../../../interfaces/0.8.x/IManifold.sol";
9
+ import "../../../../interfaces/v0.8.x/IRandomizerV2.sol";
10
+ import "../../../../interfaces/v0.8.x/IEngineRegistryV0.sol";
11
+ import "../../../../interfaces/v0.8.x/IDependencyRegistryCompatibleV0.sol";
12
+ import "../../../../interfaces/v0.8.x/IManifold.sol";
13
13
 
14
14
  import "@openzeppelin-4.7/contracts/access/Ownable.sol";
15
- import "../../../../libs/0.8.x/ERC721_PackedHashSeed.sol";
16
- import "../../../../libs/0.8.x/BytecodeStorageV1.sol";
17
- import "../../../../libs/0.8.x/Bytes32Strings.sol";
15
+ import "../../../../libs/v0.8.x/ERC721_PackedHashSeed.sol";
16
+ import "../../../../libs/v0.8.x/BytecodeStorageV1.sol";
17
+ import "../../../../libs/v0.8.x/Bytes32Strings.sol";
18
18
 
19
19
  /**
20
20
  * @title Art Blocks Engine Flex ERC-721 core contract, V3.
@@ -919,7 +919,10 @@ contract GenArt721CoreV3_Engine_Flex_PROHIBITION is
919
919
  uint256 _additionalPayeeSecondarySalesPercentage
920
920
  ) external {
921
921
  _onlyValidProjectId(_projectId);
922
- _onlyArtist(_projectId);
922
+ _onlyArtistOrAdminACL(
923
+ _projectId,
924
+ this.proposeArtistPaymentAddressesAndSplits.selector
925
+ );
923
926
  _onlyNonZeroAddress(_artistAddress);
924
927
  ProjectFinance storage projectFinance = projectIdToFinancials[
925
928
  _projectId
@@ -1124,6 +1127,14 @@ contract GenArt721CoreV3_Engine_Flex_PROHIBITION is
1124
1127
  _onlyNonEmptyString(_projectName);
1125
1128
  _onlyNonZeroAddress(_artistAddress);
1126
1129
  require(!newProjectsForbidden, "New projects forbidden");
1130
+ require(
1131
+ IAdminACLV0_PROHIBITION(address(adminACLContract)).allowed(
1132
+ msg.sender,
1133
+ address(this),
1134
+ this.addProject.selector
1135
+ ),
1136
+ "Only Admin ACL allowed"
1137
+ );
1127
1138
  uint256 projectId = _nextProjectId;
1128
1139
  projectIdToFinancials[projectId].artistAddress = _artistAddress;
1129
1140
  projects[projectId].name = _projectName;
@@ -2117,13 +2128,7 @@ contract GenArt721CoreV3_Engine_Flex_PROHIBITION is
2117
2128
  bytes4 _selector
2118
2129
  ) public returns (bool) {
2119
2130
  return
2120
- owner() != address(0) &&
2121
- IAdminACLV0_PROHIBITION(address(adminACLContract)).allowed(
2122
- _sender,
2123
- _contract,
2124
- _selector,
2125
- type(uint256).max
2126
- );
2131
+ adminACLAllowed(_sender, _contract, _selector, type(uint256).max);
2127
2132
  }
2128
2133
 
2129
2134
  /**
@@ -3,7 +3,7 @@
3
3
 
4
4
  pragma solidity ^0.8.0;
5
5
 
6
- import "../../../../../interfaces/0.8.x/IAdminACLV0.sol";
6
+ import "../../../../../interfaces/v0.8.x/IAdminACLV0.sol";
7
7
 
8
8
  interface IAdminACLV0_PROHIBITION is IAdminACLV0 {
9
9
  /**
@@ -4,7 +4,7 @@
4
4
  pragma solidity ^0.8.0;
5
5
 
6
6
  import "./IAdminACLV0_PROHIBITION.sol";
7
- import "../../../../../interfaces/0.8.x/IGenArt721CoreContractV3_Engine_Flex.sol";
7
+ import "../../../../../interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex.sol";
8
8
 
9
9
  /**
10
10
  * @title This interface is intended to house interface items that are common
@@ -2,7 +2,7 @@
2
2
 
3
3
  pragma solidity 0.8.19;
4
4
 
5
- import "../interfaces/0.8.x/ICoreRegistryV1.sol";
5
+ import "../interfaces/v0.8.x/ICoreRegistryV1.sol";
6
6
  import "@openzeppelin-4.7/contracts/access/Ownable.sol";
7
7
  import "@openzeppelin-4.7/contracts/utils/structs/EnumerableSet.sol";
8
8
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  pragma solidity 0.8.19;
4
4
 
5
- import "../interfaces/0.8.x/IEngineRegistryV0.sol";
5
+ import "../interfaces/v0.8.x/IEngineRegistryV0.sol";
6
6
  import "@openzeppelin-4.7/contracts/utils/introspection/ERC165.sol";
7
7
 
8
8
  /**
@@ -3,17 +3,17 @@ pragma solidity 0.8.19;
3
3
 
4
4
  // Created By: Art Blocks Inc.
5
5
 
6
- import "../interfaces/0.8.x/IRandomizerV2.sol";
7
- import "../interfaces/0.8.x/IAdminACLV0.sol";
8
- import "../interfaces/0.8.x/IGenArt721CoreContractV3.sol";
9
- import "../interfaces/0.8.x/IGenArt721CoreContractExposesHashSeed.sol";
10
- import "../interfaces/0.8.x/IManifold.sol";
6
+ import "../interfaces/v0.8.x/IRandomizerV2.sol";
7
+ import "../interfaces/v0.8.x/IAdminACLV0.sol";
8
+ import "../interfaces/v0.8.x/IGenArt721CoreContractV3.sol";
9
+ import "../interfaces/v0.8.x/IGenArt721CoreContractExposesHashSeed.sol";
10
+ import "../interfaces/v0.8.x/IManifold.sol";
11
11
 
12
12
  import "@openzeppelin-4.7/contracts/utils/Strings.sol";
13
13
  import "@openzeppelin-4.7/contracts/access/Ownable.sol";
14
- import "../libs/0.8.x/ERC721_PackedHashSeed.sol";
15
- import "../libs/0.8.x/BytecodeStorageV1.sol";
16
- import "../libs/0.8.x/Bytes32Strings.sol";
14
+ import "../libs/v0.8.x/ERC721_PackedHashSeed.sol";
15
+ import "../libs/v0.8.x/BytecodeStorageV1.sol";
16
+ import "../libs/v0.8.x/Bytes32Strings.sol";
17
17
 
18
18
  /**
19
19
  * @title Art Blocks ERC-721 core contract, V3_Explorations.
@@ -181,7 +181,7 @@ contract GenArt721CoreV3_Explorations is
181
181
  bool paused;
182
182
  string name;
183
183
  string artist;
184
- string description;
184
+ address descriptionAddress;
185
185
  string website;
186
186
  string license;
187
187
  string projectBaseURI;
@@ -238,7 +238,7 @@ contract GenArt721CoreV3_Explorations is
238
238
  /// version & type of this core contract
239
239
  /// coreVersion is updated from Flagship V3 core due to minor changes
240
240
  /// implemented in the Explorations version of the contract.
241
- string public constant coreVersion = "v3.2.1";
241
+ string public constant coreVersion = "v3.2.3";
242
242
  /// coreType remains consistent with flagship V3 core because external &
243
243
  /// public functions used for indexing are unchanged.
244
244
  string public constant coreType = "GenArt721CoreV3";
@@ -950,6 +950,13 @@ contract GenArt721CoreV3_Explorations is
950
950
  /**
951
951
  * @notice Updates description of project `_projectId`.
952
952
  * Only artist may call when unlocked, only admin may call when locked.
953
+ * Note: The BytecodeStorage library is used to store the description to
954
+ * reduce initial upload cost, however, even minor edits will require an
955
+ * expensive, entirely new bytecode storage contract to be deployed instead
956
+ * of relatively cheap updates to already-warm storage slots. This results
957
+ * in an increased gas cost for minor edits to the description after the
958
+ * initial upload, but an overall decrease in gas cost for projects with
959
+ * less than ~3-5 edits (depending on the length of the description).
953
960
  * @param _projectId Project ID.
954
961
  * @param _projectDescription New project description.
955
962
  */
@@ -969,7 +976,10 @@ contract GenArt721CoreV3_Explorations is
969
976
  "Only artist when unlocked, owner when locked"
970
977
  );
971
978
  // effects
972
- projects[_projectId].description = _projectDescription;
979
+ // store description in contract bytecode, replacing reference address from
980
+ // the old storage description with the newly created one
981
+ projects[_projectId].descriptionAddress = _projectDescription
982
+ .writeToBytecode();
973
983
  emit ProjectUpdated(_projectId, FIELD_PROJECT_DESCRIPTION);
974
984
  }
975
985
 
@@ -1360,7 +1370,12 @@ contract GenArt721CoreV3_Explorations is
1360
1370
  Project storage project = projects[_projectId];
1361
1371
  projectName = project.name;
1362
1372
  artist = project.artist;
1363
- description = project.description;
1373
+ address projectDescriptionBytecodeAddress = project.descriptionAddress;
1374
+ if (projectDescriptionBytecodeAddress == address(0)) {
1375
+ description = "";
1376
+ } else {
1377
+ description = _readFromBytecode(projectDescriptionBytecodeAddress);
1378
+ }
1364
1379
  website = project.website;
1365
1380
  license = project.license;
1366
1381
  }
@@ -78,7 +78,7 @@ interface IDependencyRegistryV0 {
78
78
  * @notice Returns address with bytecode containing script for
79
79
  * dependency type `_dependencyTypes` at script index `_index`.
80
80
  */
81
- function getDependencyScriptBytecodeAddressAtIndex(
81
+ function getDependencyScriptBytecodeAddress(
82
82
  bytes32 _dependencyType,
83
83
  uint256 _index
84
84
  ) external view returns (address);
@@ -88,7 +88,7 @@ interface IDependencyRegistryV0 {
88
88
  * @param _dependencyType Dependency type to be queried.
89
89
  * @param _index Index of script to be queried.
90
90
  */
91
- function getDependencyScriptAtIndex(
91
+ function getDependencyScript(
92
92
  bytes32 _dependencyType,
93
93
  uint256 _index
94
94
  ) external view returns (string memory);
@@ -0,0 +1,23 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Created By: Art Blocks Inc.
3
+
4
+ pragma solidity ^0.8.0;
5
+
6
+ import "./ISharedRandomizerV0.sol";
7
+
8
+ /**
9
+ * @title Interface for accessing a shared randomizer on a core contract.
10
+ * @notice This interface provides access to a V3 core contract's shared
11
+ * randomizer. Note that randomizers are configurable by core contract admin,
12
+ * and therefore may not currently be assigned a shared randomizer. For that
13
+ * reason, this is a separate interface from `IGenArt721CoreContractV3_Base,
14
+ * and casting a contract as this interface makes the assumption that the core
15
+ * contract's randomizer conforms to `ISharedRandomizerV0`.
16
+ * This interface is expected to be most useful for minters that explicitly
17
+ * assign hash seeds via mechanisms on the shared randomizer (e.g. Polyptych
18
+ * minters)
19
+ */
20
+ interface IGenArt721CoreContractV3WithSharedRandomizer {
21
+ /// current randomizer contract, that we cast as a shared randomizer
22
+ function randomizerContract() external returns (ISharedRandomizerV0);
23
+ }
@@ -85,6 +85,13 @@ interface IMinterFilterV1 {
85
85
  */
86
86
  event CoreRegistryUpdated(address indexed coreRegistry);
87
87
 
88
+ // struct used to return minter info
89
+ // @dev this is not used for storage of data
90
+ struct MinterWithType {
91
+ address minterAddress;
92
+ string minterType;
93
+ }
94
+
88
95
  function setMinterForProject(
89
96
  uint256 _projectId,
90
97
  address _coreContract,
@@ -106,6 +113,16 @@ interface IMinterFilterV1 {
106
113
 
107
114
  function updateCoreRegistry(address _coreRegistry) external;
108
115
 
116
+ /**
117
+ * @notice Returns if `_sender` is allowed to call function on `_contract`
118
+ * with `_selector` selector, according to the MinterFilter's Admin ACL.
119
+ */
120
+ function adminACLAllowed(
121
+ address _sender,
122
+ address _contract,
123
+ bytes4 _selector
124
+ ) external returns (bool);
125
+
109
126
  function minterFilterType() external pure returns (string memory);
110
127
 
111
128
  function getMinterForProject(
@@ -150,6 +167,15 @@ interface IMinterFilterV1 {
150
167
  string memory minterType
151
168
  );
152
169
 
170
+ function getAllGloballyApprovedMinters()
171
+ external
172
+ view
173
+ returns (MinterWithType[] memory mintersWithTypes);
174
+
175
+ function getAllContractApprovedMinters(
176
+ address _coreContract
177
+ ) external view returns (MinterWithType[] memory mintersWithTypes);
178
+
153
179
  /**
154
180
  * Owner of contract.
155
181
  * @dev This returns the address of the Admin ACL contract.
@@ -0,0 +1,23 @@
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_V3CoreBase {
7
+ /**
8
+ * @notice This function is intended to be called by a core contract, and
9
+ * the core contract can be assured that the randomizer will call back to
10
+ * the calling contract to set the token hash seed for `_tokenId` via
11
+ * `setTokenHash_8PT`.
12
+ * @dev This function may revert if hash seed generation is improperly
13
+ * configured (for example, if in polyptych mode, but no hash seed has been
14
+ * previously configured).
15
+ * @dev This function is not specifically gated to any specific caller, but
16
+ * will only call back to the calling contract, `msg.sender`, to set the
17
+ * specified token's hash seed.
18
+ * A third party contract calling this function will not be able to set the
19
+ * token hash seed on a different core contract.
20
+ * @param _tokenId The token ID must be assigned a hash.
21
+ */
22
+ function assignTokenHash(uint256 _tokenId) external;
23
+ }
@@ -0,0 +1,37 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Created By: Art Blocks Inc.
3
+
4
+ pragma solidity ^0.8.0;
5
+ import "./ISharedMinterDAExpV0.sol";
6
+
7
+ interface ISharedMinterDAExpSettlementV0 is ISharedMinterDAExpV0 {
8
+ /// receipt has an updated state
9
+ event ReceiptUpdated(
10
+ address indexed _purchaser,
11
+ uint256 indexed _projectId,
12
+ address indexed _coreContract,
13
+ uint24 _numPurchased,
14
+ uint256 _netPosted
15
+ );
16
+
17
+ /// returns latest purchase price for project `_projectId`, or 0 if no
18
+ /// purchases have been made.
19
+ function getProjectLatestPurchasePrice(
20
+ uint256 _projectId,
21
+ address _coreContract
22
+ ) external view returns (uint256 latestPurchasePrice);
23
+
24
+ /// returns the number of settleable invocations for project `_projectId`.
25
+ function getNumSettleableInvocations(
26
+ uint256 _projectId,
27
+ address _coreContract
28
+ ) external view returns (uint256 numSettleableInvocations);
29
+
30
+ /// Returns the current excess settlement funds on project `_projectId`
31
+ /// for address `_walletAddress`.
32
+ function getProjectExcessSettlementFunds(
33
+ uint256 _projectId,
34
+ address _coreContract,
35
+ address _walletAddress
36
+ ) external view returns (uint256 excessSettlementFundsInWei);
37
+ }
@@ -0,0 +1,25 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Created By: Art Blocks Inc.
3
+
4
+ pragma solidity ^0.8.0;
5
+
6
+ interface ISharedMinterDAExpV0 {
7
+ event SetAuctionDetailsExp(
8
+ uint256 indexed _projectId,
9
+ address indexed _coreContract,
10
+ uint40 _auctionTimestampStart,
11
+ uint40 _priceDecayHalfLifeSeconds,
12
+ uint256 _startPrice,
13
+ uint256 _basePrice
14
+ );
15
+ /// Minimum allowed price decay half life seconds updated.
16
+ event AuctionMinHalfLifeSecondsUpdated(
17
+ uint256 _minimumPriceDecayHalfLifeSeconds
18
+ );
19
+
20
+ function minimumPriceDecayHalfLifeSeconds() external view returns (uint256);
21
+
22
+ function setMinimumPriceDecayHalfLifeSeconds(
23
+ uint256 _minimumPriceDecayHalfLifeSeconds
24
+ ) external;
25
+ }
@@ -0,0 +1,26 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Created By: Art Blocks Inc.
3
+
4
+ pragma solidity ^0.8.0;
5
+
6
+ interface ISharedMinterDALinV0 {
7
+ event SetAuctionDetailsLin(
8
+ uint256 indexed _projectId,
9
+ address indexed _coreContract,
10
+ uint40 _auctionTimestampStart,
11
+ uint40 _auctionTimestampEnd,
12
+ uint256 _startPrice,
13
+ uint256 _basePrice
14
+ );
15
+
16
+ /// Minimum allowed auction length updated
17
+ event AuctionMinimumLengthSecondsUpdated(
18
+ uint256 _minimumAuctionLengthSeconds
19
+ );
20
+
21
+ function minimumAuctionLengthSeconds() external view returns (uint256);
22
+
23
+ function setMinimumAuctionLengthSeconds(
24
+ uint256 _minimumAuctionLengthSeconds
25
+ ) external;
26
+ }
@@ -0,0 +1,19 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Created By: Art Blocks Inc.
3
+
4
+ pragma solidity ^0.8.0;
5
+
6
+ interface ISharedMinterDAV0 {
7
+ /// Auction details cleared for project `projectId`.
8
+ event ResetAuctionDetails(
9
+ uint256 indexed _projectId,
10
+ address indexed _coreContract
11
+ );
12
+
13
+ // @dev return variables left unnamed because specific minter
14
+ // implementations may return different values for the same slots
15
+ function projectAuctionParameters(
16
+ uint256 _projectId,
17
+ address _coreContract
18
+ ) external view returns (uint40, uint40, uint256, uint256);
19
+ }
@@ -0,0 +1,69 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Created By: Art Blocks Inc.
3
+
4
+ pragma solidity ^0.8.0;
5
+
6
+ /**
7
+ * @title This interface adds support for including token holder gating when purchasing.
8
+ * @author Art Blocks Inc.
9
+ */
10
+ interface ISharedMinterHolderV0 {
11
+ event DelegationRegistryUpdated(address delegationRegistry);
12
+ /**
13
+ * @notice Allow holders of NFTs at addresses `_ownedNFTAddresses`, project
14
+ * IDs `_ownedNFTProjectIds` to mint on project `_projectId`.
15
+ * `_ownedNFTAddresses` assumed to be aligned with `_ownedNFTProjectIds`.
16
+ * e.g. Allows holders of project `_ownedNFTProjectIds[0]` on token
17
+ * contract `_ownedNFTAddresses[0]` to mint.
18
+ */
19
+ event AllowedHoldersOfProjects(
20
+ uint256 indexed _projectId,
21
+ address indexed _coreContract,
22
+ address[] _ownedNFTAddresses,
23
+ uint256[] _ownedNFTProjectIds
24
+ );
25
+ /**
26
+ * @notice Remove holders of NFTs at addresses `_ownedNFTAddresses`,
27
+ * project IDs `_ownedNFTProjectIds` to mint on project `_projectId`.
28
+ * `_ownedNFTAddresses` assumed to be aligned with `_ownedNFTProjectIds`.
29
+ * e.g. Removes holders of project `_ownedNFTProjectIds[0]` on token
30
+ * contract `_ownedNFTAddresses[0]` from mint allowlist.
31
+ */
32
+ event RemovedHoldersOfProjects(
33
+ uint256 indexed _projectId,
34
+ address indexed _coreContract,
35
+ address[] _ownedNFTAddresses,
36
+ uint256[] _ownedNFTProjectIds
37
+ );
38
+
39
+ // Triggers a purchase of a token from the desired project, to the
40
+ // TX-sending address, using owned ERC-721 NFT to claim right to purchase.
41
+ function purchase(
42
+ uint256 _projectId,
43
+ address _coreContract,
44
+ address _ownedNFTAddress,
45
+ uint256 _ownedNFTTokenId
46
+ ) external payable returns (uint256 tokenId);
47
+
48
+ // Triggers a purchase of a token from the desired project, to the specified
49
+ // receiving address, using owned ERC-721 NFT to claim right to purchase.
50
+ function purchaseTo(
51
+ address _to,
52
+ uint256 _projectId,
53
+ address _coreContract,
54
+ address _ownedNFTAddress,
55
+ uint256 _ownedNFTTokenId
56
+ ) external payable returns (uint256 tokenId);
57
+
58
+ // Triggers a purchase of a token from the desired project, on behalf of
59
+ // the provided vault, to the specified receiving address, using owned
60
+ // ERC-721 NFT to claim right to purchase.
61
+ function purchaseTo(
62
+ address _to,
63
+ uint256 _projectId,
64
+ address _coreContract,
65
+ address _ownedNFTAddress,
66
+ uint256 _ownedNFTTokenId,
67
+ address _vault
68
+ ) external payable returns (uint256 tokenId);
69
+ }
@@ -0,0 +1,44 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Created By: Art Blocks Inc.
3
+
4
+ pragma solidity ^0.8.0;
5
+
6
+ /**
7
+ * @title This interface adds support for including Merkle proofs when purchasing.
8
+ * @author Art Blocks Inc.
9
+ */
10
+ interface ISharedMinterMerkleV0 {
11
+ /**
12
+ * @notice Notifies of the contract's default maximum mints allowed per
13
+ * user for a given project, on this minter. This value can be overridden
14
+ * by the artist of any project at any time.
15
+ */
16
+ event DefaultMaxInvocationsPerAddress(
17
+ uint256 defaultMaxInvocationsPerAddress
18
+ );
19
+ event DelegationRegistryUpdated(address delegationRegistry);
20
+
21
+ // Triggers a purchase of a token from the desired project, to the
22
+ // TX-sending address. Requires Merkle proof.
23
+ function purchase(
24
+ uint256 _projectId,
25
+ address _coreContract,
26
+ bytes32[] calldata _proof
27
+ ) external payable returns (uint256 tokenId);
28
+
29
+ // Triggers a purchase of a token from the desired project, to the specified
30
+ // receiving address. Requires Merkle proof.
31
+ function purchaseTo(
32
+ address _to,
33
+ uint256 _projectId,
34
+ address _coreContract,
35
+ bytes32[] calldata _proof
36
+ ) external payable returns (uint256 tokenId);
37
+
38
+ // Updates the Merkle root for the desired project.
39
+ function updateMerkleRoot(
40
+ uint256 _projectId,
41
+ address _coreContract,
42
+ bytes32 _root
43
+ ) external;
44
+ }