@artblocks/contracts 1.0.3 → 1.1.0

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 (383) 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 +212 -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 -11
  40. package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol/GenArt721CoreV3_Engine_Flex.json +6 -11
  41. package/artifacts/contracts/engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol/GenArt721CoreV3_Engine_Flex_PROOF.json +6 -11
  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 -11
  44. package/artifacts/contracts/engine-registry/CoreRegistryV1.sol/CoreRegistryV1.json +12 -12
  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 +7 -7
  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 +22 -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 +104 -19
  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 +114 -0
  97. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDAExpV0.sol/ISharedMinterDAExpV0.json +37 -0
  98. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDALinV0.sol/ISharedMinterDALinV0.json +37 -0
  99. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDAV0.sol/ISharedMinterDAV0.json +50 -0
  100. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterHolderERC20V0.sol/ISharedMinterHolderERC20V0.json +158 -0
  101. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterHolderV0.sol/ISharedMinterHolderV0.json +128 -0
  102. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterMerkleV0.sol/ISharedMinterMerkleV0.json +97 -0
  103. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterSEAV0.sol/ISharedMinterSEAV0.json +29 -0
  104. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterSimplePurchaseV0.sol/ISharedMinterSimplePurchaseV0.json +64 -0
  105. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterV0.sol/ISharedMinterV0.json +117 -0
  106. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/ISharedRandomizerV0.sol/ISharedRandomizerV0.json +52 -36
  107. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IWETH.sol/IWETH.json +1 -1
  108. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/Address.json +2 -2
  109. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/Counters.json +2 -2
  110. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/CustomERC721Metadata.json +2 -2
  111. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/ERC721.json +2 -2
  112. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/ERC721Enumerable.json +2 -2
  113. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/GenArt721CoreV1.json +2 -2
  114. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/SafeMath.json +2 -2
  115. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/Strings.json +2 -2
  116. package/artifacts/contracts/legacy/GenArt721LegacyMinter.sol/GenArt721LegacyMinter.json +2 -2
  117. package/artifacts/contracts/libs/integration-refs/delegation-registry/DelegationRegistry.sol/DelegationRegistry.json +2 -2
  118. package/artifacts/contracts/libs/{0.5.x → v0.5.x}/CustomERC721Metadata.sol/CustomERC721Metadata.json +3 -3
  119. package/artifacts/contracts/libs/{0.5.x → v0.5.x}/IERC20.sol/IERC20.json +1 -1
  120. package/artifacts/contracts/libs/{0.5.x → v0.5.x}/SafeMath.sol/SafeMath.json +3 -3
  121. package/artifacts/contracts/libs/{0.5.x → v0.5.x}/Strings.sol/Strings.json +3 -3
  122. package/artifacts/contracts/libs/v0.8.x/ABHelpers.sol/ABHelpers.json +10 -0
  123. package/artifacts/contracts/libs/v0.8.x/AuthLib.sol/AuthLib.json +10 -0
  124. package/artifacts/contracts/libs/{0.8.x → v0.8.x}/BytecodeStorageV0.sol/BytecodeStorage.json +3 -3
  125. package/artifacts/contracts/libs/{0.8.x → v0.8.x}/BytecodeStorageV1.sol/BytecodeStorageReader.json +3 -3
  126. package/artifacts/contracts/libs/{0.8.x → v0.8.x}/BytecodeStorageV1.sol/BytecodeStorageWriter.json +3 -3
  127. package/artifacts/contracts/libs/{0.8.x → v0.8.x}/Bytes32Strings.sol/Bytes32Strings.json +3 -3
  128. package/artifacts/contracts/libs/{0.8.x → v0.8.x}/ERC721_PackedHashSeed.sol/ERC721_PackedHashSeed.json +3 -3
  129. package/artifacts/contracts/libs/{0.8.x → v0.8.x}/SSTORE2.sol/SSTORE2.json +3 -3
  130. package/artifacts/contracts/libs/v0.8.x/minter-libs/DAExpLib.sol/DAExpLib.json +67 -0
  131. package/artifacts/contracts/libs/v0.8.x/minter-libs/DALib.sol/DALib.json +30 -0
  132. package/artifacts/contracts/libs/v0.8.x/minter-libs/DALinLib.sol/DALinLib.json +67 -0
  133. package/artifacts/contracts/libs/v0.8.x/minter-libs/GenericMinterEventsLib.sol/GenericMinterEventsLib.json +346 -0
  134. package/artifacts/contracts/libs/v0.8.x/minter-libs/MaxInvocationsLib.sol/MaxInvocationsLib.json +36 -0
  135. package/artifacts/contracts/libs/v0.8.x/minter-libs/MerkleLib.sol/MerkleLib.json +37 -0
  136. package/artifacts/contracts/libs/v0.8.x/minter-libs/PolyptychLib.sol/PolyptychLib.json +10 -0
  137. package/artifacts/contracts/libs/v0.8.x/minter-libs/SEALib.sol/SEALib.json +261 -0
  138. package/artifacts/contracts/libs/v0.8.x/minter-libs/SetPriceLib.sol/SetPriceLib.json +55 -0
  139. package/artifacts/contracts/libs/v0.8.x/minter-libs/SettlementExpLib.sol/SettlementExpLib.json +48 -0
  140. package/artifacts/contracts/libs/v0.8.x/minter-libs/SplitFundsLib.sol/SplitFundsLib.json +42 -0
  141. package/artifacts/contracts/libs/v0.8.x/minter-libs/TokenHolderLib.sol/TokenHolderLib.json +86 -0
  142. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV0.sol/MinterFilterV0.json +2 -2
  143. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV1.sol/MinterFilterV1.json +2 -2
  144. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV2.sol/MinterFilterV2.json +96 -40
  145. package/artifacts/contracts/minter-suite/Minters/MinterDAExpHolderV5.sol/MinterDAExpHolderV5.json +662 -0
  146. package/artifacts/contracts/minter-suite/Minters/MinterDAExpSettlementV2.sol/MinterDAExpSettlementV2.json +2 -20
  147. package/artifacts/contracts/minter-suite/Minters/MinterDAExpSettlementV3.sol/MinterDAExpSettlementV3.json +619 -0
  148. package/artifacts/contracts/minter-suite/Minters/MinterDAExpV4.sol/MinterDAExpV4.json +2 -2
  149. package/artifacts/contracts/minter-suite/Minters/MinterDAExpV5.sol/MinterDAExpV5.json +418 -0
  150. package/artifacts/contracts/minter-suite/Minters/MinterDALinHolderV5.sol/MinterDALinHolderV5.json +662 -0
  151. package/artifacts/contracts/minter-suite/Minters/MinterDALinV4.sol/MinterDALinV4.json +2 -2
  152. package/artifacts/contracts/minter-suite/Minters/MinterDALinV5.sol/MinterDALinV5.json +418 -0
  153. package/artifacts/contracts/minter-suite/Minters/MinterHolderV4.sol/MinterHolderV4.json +2 -2
  154. package/artifacts/contracts/minter-suite/Minters/MinterMerkleV5.sol/MinterMerkleV5.json +2 -2
  155. package/artifacts/contracts/minter-suite/Minters/MinterPolyptychV0.sol/MinterPolyptychV0.json +2 -2
  156. package/artifacts/contracts/minter-suite/Minters/MinterSEAV0.sol/MinterSEAV0.json +2 -2
  157. package/artifacts/contracts/minter-suite/Minters/MinterSEAV1.sol/MinterSEAV1.json +659 -0
  158. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20V4.sol/MinterSetPriceERC20V4.json +2 -2
  159. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20V5.sol/MinterSetPriceERC20V5.json +452 -0
  160. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceHolderV5.sol/MinterSetPriceHolderV5.json +600 -0
  161. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceMerkleV5.sol/MinterSetPriceMerkleV5.json +633 -0
  162. package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychERC20V5.sol/MinterSetPricePolyptychERC20V5.json +782 -0
  163. package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychV5.sol/MinterSetPricePolyptychV5.json +676 -0
  164. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceV4.sol/MinterSetPriceV4.json +2 -2
  165. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceV5.sol/MinterSetPriceV5.json +356 -0
  166. package/artifacts/contracts/mock/BytecodeV0TextCR_DMock.sol/BytecodeV0TextCR_DMock.json +2 -2
  167. package/artifacts/contracts/mock/BytecodeV1LibCallsMock.sol/BytecodeV1LibCallsMock.json +2 -2
  168. package/artifacts/contracts/mock/BytecodeV1TextCR_DMock.sol/BytecodeV1TextCR_DMock.json +4 -4
  169. package/artifacts/contracts/mock/DeadReceiverBidderMock.sol/DeadReceiverBidderMock.json +25 -2
  170. package/artifacts/contracts/mock/DummySharedMinter.sol/DummySharedMinter.json +2 -2
  171. package/artifacts/contracts/mock/ERC20Mock.sol/ERC20Mock.json +28 -2
  172. package/artifacts/contracts/mock/GenArt721CoreV3_Engine_IncorrectCoreType.sol/GenArt721CoreV3_Engine_IncorrectCoreType.json +6 -11
  173. package/artifacts/contracts/mock/MockAdminACLV0.sol/MockAdminACLV0Events.json +2 -2
  174. package/artifacts/contracts/mock/MockAdminACLV0_PROHIBITION.sol/MockAdminACLV0Events_PROHIBITION.json +2 -2
  175. package/artifacts/contracts/mock/OriginRegisterMock.sol/OriginRegisterMock.json +2 -2
  176. package/artifacts/contracts/mock/RandomizerV2_NoAssignMock.sol/RandomizerV2_NoAssignMock.json +2 -2
  177. package/artifacts/contracts/mock/ReentrancyHolderMock.sol/ReentrancyHolderMock.json +2 -2
  178. package/artifacts/contracts/mock/ReentrancyHolderMockShared.sol/ReentrancyHolderMockShared.json +136 -0
  179. package/artifacts/contracts/mock/ReentrancyMerkleMock.sol/ReentrancyMerkleMock.json +2 -2
  180. package/artifacts/contracts/mock/ReentrancyMerkleMockShared.sol/ReentrancyMerkleMockShared.json +105 -0
  181. package/artifacts/contracts/mock/ReentrancyMock.sol/ReentrancyMock.json +2 -2
  182. package/artifacts/contracts/mock/ReentrancyMockShared.sol/ReentrancyMockShared.json +100 -0
  183. package/artifacts/contracts/mock/ReentrancySEAMock.sol/ReentrancySEAAutoBidderMock.json +2 -2
  184. package/artifacts/contracts/mock/ReentrancySEAMockShared.sol/ReentrancySEAAutoBidderMockShared.json +69 -0
  185. package/artifacts/contracts/mock/SSTORE2Mock.sol/SSTORE2Mock.json +2 -2
  186. package/artifacts/contracts/randomizer/deprecated/BasicRandomizer.sol/BasicRandomizer.json +2 -2
  187. package/artifacts/contracts/randomizer/deprecated/PolyptychRandomizerV0.sol/BasicPolyptychRandomizerV0.json +2 -2
  188. package/artifacts/contracts/randomizer/deprecated/RandomizerV2.sol/BasicRandomizerV2.json +2 -2
  189. package/artifacts/contracts/randomizer/primitive/PseudorandomAtomicBasic.sol/PseudorandomAtomic.json +2 -2
  190. package/artifacts/contracts/randomizer/shared/SharedRandomizerV0.sol/SharedRandomizerV0.json +58 -42
  191. package/artifacts/contracts/royalty-registry/GenArt721RoyaltyOverride.sol/GenArt721RoyaltyOverride.json +2 -2
  192. package/artifacts/contracts/royalty-registry/GenArt721RoyaltyOverride_PBAB.sol/GenArt721RoyaltyOverride_PBAB.json +2 -2
  193. package/contracts/AdminACLV0.sol +1 -1
  194. package/contracts/AdminACLV1.sol +1 -1
  195. package/contracts/DependencyRegistryV0.sol +300 -123
  196. package/contracts/GenArt721CoreV3.sol +27 -12
  197. package/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV0.sol +3 -3
  198. package/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV1.sol +3 -3
  199. package/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV2.sol +3 -3
  200. package/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV3.sol +3 -3
  201. package/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol +3 -3
  202. package/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV1.sol +3 -3
  203. package/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV0.sol +3 -3
  204. package/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV1.sol +3 -3
  205. package/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV2.sol +3 -3
  206. package/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV3.sol +3 -3
  207. package/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV0.sol +3 -3
  208. package/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV1.sol +3 -3
  209. package/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV2.sol +4 -4
  210. package/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV3.sol +4 -4
  211. package/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV0.sol +3 -3
  212. package/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV1.sol +3 -3
  213. package/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV2.sol +4 -4
  214. package/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV3.sol +4 -4
  215. package/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV4.sol +4 -4
  216. package/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV0.sol +3 -3
  217. package/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV1.sol +3 -3
  218. package/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV2.sol +3 -3
  219. package/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV3.sol +3 -3
  220. package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V0.sol +3 -3
  221. package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V1.sol +3 -3
  222. package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V2.sol +3 -3
  223. package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V3.sol +3 -3
  224. package/contracts/archive/readme.md +16 -0
  225. package/contracts/engine/README.md +21 -0
  226. package/contracts/engine/V2/GenArt721CoreV2_ENGINE_FLEX.sol +2 -2
  227. package/contracts/engine/V2/GenArt721CoreV2_PBAB.sol +2 -2
  228. package/contracts/engine/V2/GenArt721CoreV2_PRTNR.sol +3 -3
  229. package/contracts/engine/V2/GenArt721MinterBurner_PBAB.sol +2 -2
  230. package/contracts/engine/V2/GenArt721MinterDAExp_PBAB.sol +1 -1
  231. package/contracts/engine/V2/GenArt721Minter_PBAB.sol +2 -2
  232. package/contracts/engine/V3/GenArt721CoreV3_Engine.sol +31 -22
  233. package/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol +31 -22
  234. package/contracts/engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol +12 -18
  235. package/contracts/engine/V3/forks/PROHIBITION/AdminACLV0_PROHIBITION.sol +1 -1
  236. package/contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol +23 -24
  237. package/contracts/engine/V3/forks/PROHIBITION/interfaces/IAdminACLV0_PROHIBITION.sol +1 -1
  238. package/contracts/engine/V3/forks/PROHIBITION/interfaces/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.sol +1 -1
  239. package/contracts/engine-registry/CoreRegistryV1.sol +58 -65
  240. package/contracts/engine-registry/EngineRegistryV0.sol +1 -1
  241. package/contracts/explorations/GenArt721CoreV3_Explorations.sol +27 -12
  242. package/contracts/interfaces/{0.8.x → v0.8.x}/ICoreRegistryV1.sol +6 -8
  243. package/contracts/interfaces/{0.8.x → v0.8.x}/IDependencyRegistryV0.sol +5 -2
  244. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3WithSharedRandomizer.sol +23 -0
  245. package/contracts/interfaces/{0.8.x → v0.8.x}/IMinterFilterV1.sol +45 -19
  246. package/contracts/interfaces/v0.8.x/IRandomizer_V3CoreBase.sol +23 -0
  247. package/contracts/interfaces/v0.8.x/ISharedMinterDAExpSettlementV0.sol +28 -0
  248. package/contracts/interfaces/v0.8.x/ISharedMinterDAExpV0.sol +12 -0
  249. package/contracts/interfaces/v0.8.x/ISharedMinterDALinV0.sol +12 -0
  250. package/contracts/interfaces/v0.8.x/ISharedMinterDAV0.sol +13 -0
  251. package/contracts/interfaces/v0.8.x/ISharedMinterHolderERC20V0.sol +47 -0
  252. package/contracts/interfaces/v0.8.x/ISharedMinterHolderV0.sol +41 -0
  253. package/contracts/interfaces/v0.8.x/ISharedMinterMerkleV0.sol +34 -0
  254. package/contracts/interfaces/v0.8.x/ISharedMinterSEAV0.sol +15 -0
  255. package/contracts/interfaces/v0.8.x/ISharedMinterSimplePurchaseV0.sol +28 -0
  256. package/contracts/interfaces/v0.8.x/ISharedMinterV0.sol +43 -0
  257. package/contracts/interfaces/v0.8.x/ISharedRandomizerV0.sol +123 -0
  258. package/contracts/legacy/GenArt721CoreV1.sol +2 -2
  259. package/contracts/legacy/GenArt721LegacyMinter.sol +5 -5
  260. package/contracts/libs/integration-refs/delegation-registry/DelegationRegistry.sol +1 -1
  261. package/contracts/libs/v0.8.x/ABHelpers.sol +55 -0
  262. package/contracts/libs/v0.8.x/AuthLib.sol +196 -0
  263. package/contracts/libs/{0.8.x → v0.8.x}/Bytes32Strings.sol +5 -5
  264. package/contracts/libs/v0.8.x/minter-libs/DAExpLib.sol +250 -0
  265. package/contracts/libs/v0.8.x/minter-libs/DALib.sol +26 -0
  266. package/contracts/libs/v0.8.x/minter-libs/DALinLib.sol +216 -0
  267. package/contracts/libs/v0.8.x/minter-libs/GenericMinterEventsLib.sol +171 -0
  268. package/contracts/libs/v0.8.x/minter-libs/MaxInvocationsLib.sol +488 -0
  269. package/contracts/libs/v0.8.x/minter-libs/MerkleLib.sol +384 -0
  270. package/contracts/libs/v0.8.x/minter-libs/PolyptychLib.sol +240 -0
  271. package/contracts/libs/v0.8.x/minter-libs/SEALib.sol +995 -0
  272. package/contracts/libs/v0.8.x/minter-libs/SetPriceLib.sol +166 -0
  273. package/contracts/libs/v0.8.x/minter-libs/SettlementExpLib.sol +770 -0
  274. package/contracts/libs/v0.8.x/minter-libs/SplitFundsLib.sol +741 -0
  275. package/contracts/libs/v0.8.x/minter-libs/TokenHolderLib.sol +291 -0
  276. package/contracts/minter-suite/MinterFilter/MinterFilterV0.sol +3 -3
  277. package/contracts/minter-suite/MinterFilter/MinterFilterV1.sol +5 -5
  278. package/contracts/minter-suite/MinterFilter/MinterFilterV2.sol +414 -297
  279. package/contracts/minter-suite/Minters/MinterBase_v0_1_1.sol +4 -4
  280. package/contracts/minter-suite/Minters/MinterDAExpHolderV5.sol +866 -0
  281. package/contracts/minter-suite/Minters/MinterDAExpSettlementV2.sol +4 -57
  282. package/contracts/minter-suite/Minters/MinterDAExpSettlementV3.sol +886 -0
  283. package/contracts/minter-suite/Minters/MinterDAExpV4.sol +3 -3
  284. package/contracts/minter-suite/Minters/MinterDAExpV5.sol +545 -0
  285. package/contracts/minter-suite/Minters/MinterDALinHolderV5.sol +857 -0
  286. package/contracts/minter-suite/Minters/MinterDALinV4.sol +3 -3
  287. package/contracts/minter-suite/Minters/MinterDALinV5.sol +534 -0
  288. package/contracts/minter-suite/Minters/MinterHolderV4.sol +4 -4
  289. package/contracts/minter-suite/Minters/MinterMerkleV5.sol +4 -4
  290. package/contracts/minter-suite/Minters/MinterPolyptychV0.sol +6 -6
  291. package/contracts/minter-suite/Minters/MinterSEAV0.sol +3 -3
  292. package/contracts/minter-suite/Minters/MinterSEAV1.sol +853 -0
  293. package/contracts/minter-suite/Minters/MinterSetPriceERC20V4.sol +5 -5
  294. package/contracts/minter-suite/Minters/MinterSetPriceERC20V5.sol +545 -0
  295. package/contracts/minter-suite/Minters/MinterSetPriceHolderV5.sol +730 -0
  296. package/contracts/minter-suite/Minters/MinterSetPriceMerkleV5.sol +714 -0
  297. package/contracts/minter-suite/Minters/MinterSetPricePolyptychERC20V5.sol +1012 -0
  298. package/contracts/minter-suite/Minters/MinterSetPricePolyptychV5.sol +868 -0
  299. package/contracts/minter-suite/Minters/MinterSetPriceV4.sol +3 -3
  300. package/contracts/minter-suite/Minters/MinterSetPriceV5.sol +414 -0
  301. package/contracts/mock/BytecodeV0TextCR_DMock.sol +1 -1
  302. package/contracts/mock/BytecodeV1LibCallsMock.sol +1 -1
  303. package/contracts/mock/BytecodeV1TextCR_DMock.sol +1 -1
  304. package/contracts/mock/DeadReceiverBidderMock.sol +15 -0
  305. package/contracts/mock/DummySharedMinter.sol +2 -2
  306. package/contracts/mock/ERC20Mock.sol +16 -0
  307. package/contracts/mock/GenArt721CoreV3_Engine_IncorrectCoreType.sol +11 -18
  308. package/contracts/mock/MockAdminACLV0.sol +1 -1
  309. package/contracts/mock/MockAdminACLV0_PROHIBITION.sol +1 -1
  310. package/contracts/mock/OriginRegisterMock.sol +1 -1
  311. package/contracts/mock/ReentrancyHolderMock.sol +1 -1
  312. package/contracts/mock/ReentrancyHolderMockShared.sol +59 -0
  313. package/contracts/mock/ReentrancyMerkleMock.sol +1 -1
  314. package/contracts/mock/ReentrancyMerkleMockShared.sol +58 -0
  315. package/contracts/mock/ReentrancyMock.sol +1 -1
  316. package/contracts/mock/ReentrancyMockShared.sol +48 -0
  317. package/contracts/mock/ReentrancySEAMock.sol +1 -1
  318. package/contracts/mock/ReentrancySEAMockShared.sol +40 -0
  319. package/contracts/mock/SSTORE2Mock.sol +1 -1
  320. package/contracts/randomizer/deprecated/BasicRandomizer.sol +1 -1
  321. package/contracts/randomizer/deprecated/PolyptychRandomizerV0.sol +2 -2
  322. package/contracts/randomizer/deprecated/RandomizerV2.sol +2 -2
  323. package/contracts/randomizer/primitive/PseudorandomAtomicBasic.sol +1 -1
  324. package/contracts/randomizer/shared/SharedRandomizerV0.sol +134 -111
  325. package/contracts/royalty-registry/GenArt721RoyaltyOverride.sol +2 -2
  326. package/contracts/royalty-registry/GenArt721RoyaltyOverride_PBAB.sol +2 -2
  327. package/package.json +57 -36
  328. package/LICENSE +0 -165
  329. package/contracts/interfaces/0.8.x/IRandomizer_V3CoreBase.sol +0 -10
  330. package/contracts/interfaces/0.8.x/ISharedRandomizerV0.sol +0 -105
  331. /package/contracts/interfaces/{0.5.x → v0.5.x}/IBonusContract.sol +0 -0
  332. /package/contracts/interfaces/{0.5.x → v0.5.x}/IGenArt721CoreContractV1.sol +0 -0
  333. /package/contracts/interfaces/{0.5.x → v0.5.x}/IGenArt721CoreV2_PBAB.sol +0 -0
  334. /package/contracts/interfaces/{0.5.x → v0.5.x}/IRandomizer.sol +0 -0
  335. /package/contracts/interfaces/{0.8.x → v0.8.x}/IAdminACLV0.sol +0 -0
  336. /package/contracts/interfaces/{0.8.x → v0.8.x}/IArtblocksRoyaltyOverride.sol +0 -0
  337. /package/contracts/interfaces/{0.8.x → v0.8.x}/IBonusContract.sol +0 -0
  338. /package/contracts/interfaces/{0.8.x → v0.8.x}/IBytecodeStorageReader.sol +0 -0
  339. /package/contracts/interfaces/{0.8.x → v0.8.x}/IDelegationRegistry.sol +0 -0
  340. /package/contracts/interfaces/{0.8.x → v0.8.x}/IDependencyRegistryCompatibleV0.sol +0 -0
  341. /package/contracts/interfaces/{0.8.x → v0.8.x}/IEngineRegistryV0.sol +0 -0
  342. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDAExpSettlementV0.sol +0 -0
  343. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDAExpSettlementV1.sol +0 -0
  344. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDAExpSettlement_Mixin.sol +0 -0
  345. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDAExpV0.sol +0 -0
  346. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDAExpV1.sol +0 -0
  347. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDALinV0.sol +0 -0
  348. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDALinV1.sol +0 -0
  349. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterHolderV0.sol +0 -0
  350. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterHolderV1.sol +0 -0
  351. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterHolderV2.sol +0 -0
  352. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterMerkleV0.sol +0 -0
  353. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterMerkleV1.sol +0 -0
  354. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterMerkleV2.sol +0 -0
  355. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterSEAV0.sol +0 -0
  356. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterV0.sol +0 -0
  357. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterV1.sol +0 -0
  358. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterV2.sol +0 -0
  359. /package/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractExposesHashSeed.sol +0 -0
  360. /package/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV1.sol +0 -0
  361. /package/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV3.sol +0 -0
  362. /package/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV3_Base.sol +0 -0
  363. /package/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV3_Engine.sol +0 -0
  364. /package/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV3_Engine_Flex.sol +0 -0
  365. /package/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreV2_PBAB.sol +0 -0
  366. /package/contracts/interfaces/{0.8.x → v0.8.x}/IManifold.sol +0 -0
  367. /package/contracts/interfaces/{0.8.x → v0.8.x}/IMinterBaseV0.sol +0 -0
  368. /package/contracts/interfaces/{0.8.x → v0.8.x}/IMinterFilterV0.sol +0 -0
  369. /package/contracts/interfaces/{0.8.x → v0.8.x}/IMintingAPICoreV0.sol +0 -0
  370. /package/contracts/interfaces/{0.8.x → v0.8.x}/IMintingAPIMinterV0.sol +0 -0
  371. /package/contracts/interfaces/{0.8.x → v0.8.x}/IPseudorandomAtomic.sol +0 -0
  372. /package/contracts/interfaces/{0.8.x → v0.8.x}/IRandomizer.sol +0 -0
  373. /package/contracts/interfaces/{0.8.x → v0.8.x}/IRandomizerPolyptychV0.sol +0 -0
  374. /package/contracts/interfaces/{0.8.x → v0.8.x}/IRandomizerV2.sol +0 -0
  375. /package/contracts/interfaces/{0.8.x → v0.8.x}/IWETH.sol +0 -0
  376. /package/contracts/libs/{0.5.x → v0.5.x}/CustomERC721Metadata.sol +0 -0
  377. /package/contracts/libs/{0.5.x → v0.5.x}/IERC20.sol +0 -0
  378. /package/contracts/libs/{0.5.x → v0.5.x}/SafeMath.sol +0 -0
  379. /package/contracts/libs/{0.5.x → v0.5.x}/Strings.sol +0 -0
  380. /package/contracts/libs/{0.8.x → v0.8.x}/BytecodeStorageV0.sol +0 -0
  381. /package/contracts/libs/{0.8.x → v0.8.x}/BytecodeStorageV1.sol +0 -0
  382. /package/contracts/libs/{0.8.x → v0.8.x}/ERC721_PackedHashSeed.sol +0 -0
  383. /package/contracts/libs/{0.8.x → v0.8.x}/SSTORE2.sol +0 -0
@@ -0,0 +1,250 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Created By: Art Blocks Inc.
3
+
4
+ pragma solidity ^0.8.0;
5
+
6
+ import {DALib} from "./DALib.sol";
7
+
8
+ /**
9
+ * @title Art Blocks Dutch Auction (exponential price curve) Library
10
+ * @notice This library is designed to implement logic and checks for Art
11
+ * Blocks projects using an exponential Dutch auctionprice curve for minting
12
+ * tokens.
13
+ * @author Art Blocks Inc.
14
+ */
15
+
16
+ library DAExpLib {
17
+ /**
18
+ * @notice Auction details set for project `projectId` on core contract
19
+ * `coreContract`.
20
+ * @param projectId Project Id for which auction details were set
21
+ * @param coreContract Core contract address for which auction details were
22
+ * set
23
+ * @param auctionTimestampStart Timestamp when auction will start
24
+ * @param priceDecayHalfLifeSeconds Half life of price decay, in seconds
25
+ * @param startPrice Start price of auction
26
+ * @param basePrice Base price of auction (end price)
27
+ */
28
+ event SetAuctionDetailsExp(
29
+ uint256 indexed projectId,
30
+ address indexed coreContract,
31
+ uint40 auctionTimestampStart,
32
+ uint40 priceDecayHalfLifeSeconds,
33
+ uint256 startPrice,
34
+ uint256 basePrice
35
+ );
36
+ /// Minimum allowed price decay half life seconds updated.
37
+
38
+ /**
39
+ * @notice Minimum allowed price decay half life on the minter updated to
40
+ * `minimumPriceDecayHalfLifeSeconds`.
41
+ * @param minimumPriceDecayHalfLifeSeconds minimum price decay half life
42
+ * for new auctions, in seconds
43
+ */
44
+ event AuctionMinHalfLifeSecondsUpdated(
45
+ uint256 minimumPriceDecayHalfLifeSeconds
46
+ );
47
+
48
+ // position of DA Exp Lib storage, using a diamond storage pattern
49
+ // for this library
50
+ bytes32 constant DAE_EXP_LIB_STORAGE_POSITION =
51
+ keccak256("daexplib.storage");
52
+
53
+ struct DAProjectConfig {
54
+ // @dev max uint40 ~= 1.1e12 sec ~= 34 thousand years
55
+ uint40 timestampStart;
56
+ uint40 priceDecayHalfLifeSeconds;
57
+ // @dev max uint88 ~= 3e26 Wei = ~300 million ETH, which is well above
58
+ // the expected prices of any NFT mint in the foreseeable future.
59
+ uint88 startPrice;
60
+ uint88 basePrice;
61
+ }
62
+
63
+ // Diamond storage pattern is used in this library
64
+ struct DAExpLibStorage {
65
+ mapping(address coreContract => mapping(uint256 projectId => DAProjectConfig)) DAProjectConfigs_;
66
+ }
67
+
68
+ /**
69
+ * @notice Sets auction details for an exponential-price auction type.
70
+ * @dev The function sets the auction start timestamp, price decay
71
+ * half-life, starting, and base prices for an exponential-price auction.
72
+ * @dev Minter implementations should ensure that any additional guard-
73
+ * rails are properly checked outside of this function. For example, the
74
+ * minter should check that _priceDecayHalfLifeSeconds is greater than the
75
+ * minter's minimum allowable value for price decay half-life (if the
76
+ * minter chooses to include that guard-rail).
77
+ * @param projectId The project Id to set auction details for.
78
+ * @param coreContract The core contract address to set auction details.
79
+ * @param auctionTimestampStart The timestamp when the auction will start.
80
+ * @param priceDecayHalfLifeSeconds The half-life time for price decay in
81
+ * seconds.
82
+ * @param startPrice The starting price of the auction.
83
+ * @param basePrice The base price of the auction.
84
+ * @param allowReconfigureAfterStart Bool indicating whether the auction
85
+ * can be reconfigured after it has started. This is sometimes useful for
86
+ * minter implementations that want to allow an artist to reconfigure the
87
+ * auction after it has reached minter-local max invocations, for example.
88
+ */
89
+ function setAuctionDetailsExp(
90
+ uint256 projectId,
91
+ address coreContract,
92
+ uint40 auctionTimestampStart,
93
+ uint40 priceDecayHalfLifeSeconds,
94
+ uint88 startPrice,
95
+ uint88 basePrice,
96
+ bool allowReconfigureAfterStart
97
+ ) internal {
98
+ DAProjectConfig storage DAProjectConfig_ = getDAProjectConfig({
99
+ projectId: projectId,
100
+ coreContract: coreContract
101
+ });
102
+ require(
103
+ DAProjectConfig_.timestampStart == 0 || // uninitialized
104
+ block.timestamp < DAProjectConfig_.timestampStart || // auction not yet started
105
+ allowReconfigureAfterStart, // specifically allowing reconfiguration after start
106
+ "No modifications mid-auction"
107
+ );
108
+ require(
109
+ block.timestamp < auctionTimestampStart,
110
+ "Only future auctions"
111
+ );
112
+ require(
113
+ startPrice > basePrice,
114
+ "Auction start price must be greater than auction end price"
115
+ );
116
+
117
+ // EFFECTS
118
+ DAProjectConfig_.timestampStart = auctionTimestampStart;
119
+ DAProjectConfig_.priceDecayHalfLifeSeconds = priceDecayHalfLifeSeconds;
120
+ DAProjectConfig_.startPrice = startPrice;
121
+ DAProjectConfig_.basePrice = basePrice;
122
+
123
+ emit SetAuctionDetailsExp({
124
+ projectId: projectId,
125
+ coreContract: coreContract,
126
+ auctionTimestampStart: auctionTimestampStart,
127
+ priceDecayHalfLifeSeconds: priceDecayHalfLifeSeconds,
128
+ startPrice: startPrice,
129
+ basePrice: basePrice
130
+ });
131
+ }
132
+
133
+ function resetAuctionDetails(
134
+ uint256 projectId,
135
+ address coreContract
136
+ ) internal {
137
+ DAProjectConfig storage DAProjectConfig_ = getDAProjectConfig({
138
+ projectId: projectId,
139
+ coreContract: coreContract
140
+ });
141
+
142
+ DAProjectConfig_.timestampStart = 0;
143
+ DAProjectConfig_.priceDecayHalfLifeSeconds = 0;
144
+ DAProjectConfig_.startPrice = 0;
145
+ DAProjectConfig_.basePrice = 0;
146
+
147
+ emit DALib.ResetAuctionDetails({
148
+ projectId: projectId,
149
+ coreContract: coreContract
150
+ });
151
+ }
152
+
153
+ /**
154
+ * @notice Gets price of minting a token given the project's
155
+ * DAProjectConfig.
156
+ * This function reverts if auction has not yet started, or if auction is
157
+ * unconfigured, which is relied upon by certain minter implications for
158
+ * security.
159
+ * @param projectId Project Id to get price for
160
+ * @param coreContract Core contract address to get price for
161
+ * @return uint256 current price of token in Wei
162
+ */
163
+ function getPriceExp(
164
+ uint256 projectId,
165
+ address coreContract
166
+ ) internal view returns (uint256) {
167
+ DAProjectConfig storage DAProjectConfig_ = getDAProjectConfig({
168
+ projectId: projectId,
169
+ coreContract: coreContract
170
+ });
171
+ // move parameters to memory if used more than once
172
+ uint256 timestampStart = DAProjectConfig_.timestampStart;
173
+ uint256 priceDecayHalfLifeSeconds = DAProjectConfig_
174
+ .priceDecayHalfLifeSeconds;
175
+
176
+ require(block.timestamp >= timestampStart, "Auction not yet started");
177
+ require(priceDecayHalfLifeSeconds > 0, "Only configured auctions");
178
+ uint256 decayedPrice = DAProjectConfig_.startPrice;
179
+ uint256 elapsedTimeSeconds;
180
+ unchecked {
181
+ // already checked that block.timestamp > _timestampStart above
182
+ elapsedTimeSeconds = block.timestamp - timestampStart;
183
+ }
184
+ // Divide by two (via bit-shifting) for the number of entirely completed
185
+ // half-lives that have elapsed since auction start time.
186
+ unchecked {
187
+ // already required priceDecayHalfLifeSeconds > 0
188
+ decayedPrice >>= elapsedTimeSeconds / priceDecayHalfLifeSeconds;
189
+ }
190
+ // Perform a linear interpolation between partial half-life points, to
191
+ // approximate the current place on a perfect exponential decay curve.
192
+ unchecked {
193
+ // value of expression is provably always less than decayedPrice,
194
+ // so no underflow is possible when the subtraction assignment
195
+ // operator is used on decayedPrice.
196
+ decayedPrice -=
197
+ ((decayedPrice *
198
+ (elapsedTimeSeconds % priceDecayHalfLifeSeconds)) /
199
+ priceDecayHalfLifeSeconds) >>
200
+ 1; // divide by 2 via bitshift 1
201
+ }
202
+ uint256 basePrice = DAProjectConfig_.basePrice;
203
+ if (decayedPrice < basePrice) {
204
+ // Price may not decay below stay `basePrice`.
205
+ return basePrice;
206
+ }
207
+ return decayedPrice;
208
+ }
209
+
210
+ /**
211
+ * Gets auction base price for project `projectId` on core contract
212
+ * `coreContract`.
213
+ * @param projectId Project Id to get price for
214
+ * @param coreContract Core contract address to get price for
215
+ */
216
+ function getAuctionBasePrice(
217
+ uint256 projectId,
218
+ address coreContract
219
+ ) internal view returns (uint256) {
220
+ return
221
+ getDAProjectConfig({
222
+ projectId: projectId,
223
+ coreContract: coreContract
224
+ }).basePrice;
225
+ }
226
+
227
+ /**
228
+ * Loads the DAProjectConfig for a given project and core contract.
229
+ * @param projectId Project Id to get config for
230
+ * @param coreContract Core contract address to get config for
231
+ */
232
+ function getDAProjectConfig(
233
+ uint256 projectId,
234
+ address coreContract
235
+ ) internal view returns (DAProjectConfig storage) {
236
+ return s().DAProjectConfigs_[coreContract][projectId];
237
+ }
238
+
239
+ /**
240
+ * @notice Return the storage struct for reading and writing. This library
241
+ * uses a diamond storage pattern when managing storage.
242
+ * @return storageStruct The DAExpLibStorage struct.
243
+ */
244
+ function s() internal pure returns (DAExpLibStorage storage storageStruct) {
245
+ bytes32 position = DAE_EXP_LIB_STORAGE_POSITION;
246
+ assembly ("memory-safe") {
247
+ storageStruct.slot := position
248
+ }
249
+ }
250
+ }
@@ -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
+ /**
7
+ * @title Art Blocks Dutch Auction (exponential price curve) Library
8
+ * @notice This library is designed to implement logic and checks for Art
9
+ * Blocks projects using an exponential Dutch auctionprice curve for minting
10
+ * tokens.
11
+ * @author Art Blocks Inc.
12
+ */
13
+
14
+ library DALib {
15
+ /**
16
+ * @notice Auction details cleared for project `projectId` on core contract
17
+ * `coreContract`.
18
+ * @param projectId Project Id for which auction details were cleared
19
+ * @param coreContract Core contract address for which auction details were
20
+ * cleared
21
+ */
22
+ event ResetAuctionDetails(
23
+ uint256 indexed projectId,
24
+ address indexed coreContract
25
+ );
26
+ }
@@ -0,0 +1,216 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Created By: Art Blocks Inc.
3
+
4
+ pragma solidity ^0.8.0;
5
+
6
+ import {DALib} from "./DALib.sol";
7
+
8
+ /**
9
+ * @title Art Blocks Dutch Auction (linear price curve) Library
10
+ * @notice This library is designed to implement logic and checks for Art
11
+ * Blocks projects using an linear Dutch auctionprice curve for minting
12
+ * tokens.
13
+ * @author Art Blocks Inc.
14
+ */
15
+
16
+ library DALinLib {
17
+ /**
18
+ * @notice Auction details set for project `projectId` on core contract
19
+ * `coreContract`.
20
+ * @param projectId Project Id for which auction details were set
21
+ * @param coreContract Core contract address for which auction details were
22
+ * set
23
+ * @param auctionTimestampStart Timestamp when auction will start
24
+ * @param auctionTimestampEnd Timestamp when auction will end
25
+ * @param startPrice Start price of auction
26
+ * @param basePrice Base price of auction (end price)
27
+ */
28
+ event SetAuctionDetailsLin(
29
+ uint256 indexed projectId,
30
+ address indexed coreContract,
31
+ uint40 auctionTimestampStart,
32
+ uint40 auctionTimestampEnd,
33
+ uint256 startPrice,
34
+ uint256 basePrice
35
+ );
36
+
37
+ /**
38
+ * @notice Minimum allowed auction length updated to
39
+ * `minimumAuctionLengthSeconds` on the minter.
40
+ * @param minimumAuctionLengthSeconds minimum auction length for new
41
+ * auctions, in seconds
42
+ */
43
+ event AuctionMinimumLengthSecondsUpdated(
44
+ uint256 minimumAuctionLengthSeconds
45
+ );
46
+
47
+ // position of DA Lin Lib storage, using a diamond storage pattern
48
+ // for this library
49
+ bytes32 constant DAE_LIN_LIB_STORAGE_POSITION =
50
+ keccak256("dalinlib.storage");
51
+
52
+ struct DAProjectConfig {
53
+ // @dev max uint40 ~= 1.1e12 sec ~= 34 thousand years
54
+ uint40 timestampStart;
55
+ uint40 timestampEnd;
56
+ // @dev max uint88 ~= 3e26 Wei = ~300 million ETH, which is well above
57
+ // the expected prices of any NFT mint in the foreseeable future.
58
+ uint88 startPrice;
59
+ uint88 basePrice;
60
+ }
61
+
62
+ // Diamond storage pattern is used in this library
63
+ struct DALinLibStorage {
64
+ mapping(address coreContract => mapping(uint256 projectId => DAProjectConfig)) DAProjectConfigs_;
65
+ }
66
+
67
+ /**
68
+ * @notice Sets auction details for a linear-price auction type.
69
+ * @dev The function sets the auction start timestamp, auction end
70
+ * timestamp, starting, and base prices for a linear-price auction.
71
+ * @dev Minter implementations should ensure that any additional guard-
72
+ * rails are properly checked outside of this function. For example, the
73
+ * minter should check that auction length is greater than the minter's
74
+ * minimum allowable value (if the minter chooses to include that guard-
75
+ * rail).
76
+ * @param projectId The project Id to set auction details for.
77
+ * @param coreContract The core contract address to set auction details.
78
+ * @param auctionTimestampStart The timestamp when the auction will start.
79
+ * @param auctionTimestampEnd The timestamp when the auction will end.
80
+ * @param startPrice The starting price of the auction.
81
+ * @param basePrice The base price of the auction.
82
+ * @param allowReconfigureAfterStart Bool indicating whether the auction
83
+ * can be reconfigured after it has started. This is sometimes useful for
84
+ * minter implementations that want to allow an artist to reconfigure the
85
+ * auction after it has reached minter-local max invocations, for example.
86
+ */
87
+ function setAuctionDetailsLin(
88
+ uint256 projectId,
89
+ address coreContract,
90
+ uint40 auctionTimestampStart,
91
+ uint40 auctionTimestampEnd,
92
+ uint88 startPrice,
93
+ uint88 basePrice,
94
+ bool allowReconfigureAfterStart
95
+ ) internal {
96
+ DAProjectConfig storage DAProjectConfig_ = getDAProjectConfig({
97
+ projectId: projectId,
98
+ coreContract: coreContract
99
+ });
100
+ require(
101
+ DAProjectConfig_.timestampStart == 0 || // uninitialized
102
+ block.timestamp < DAProjectConfig_.timestampStart || // auction not yet started
103
+ allowReconfigureAfterStart, // specifically allowing reconfiguration after start
104
+ "No modifications mid-auction"
105
+ );
106
+ require(
107
+ block.timestamp < auctionTimestampStart,
108
+ "Only future auctions"
109
+ );
110
+ require(
111
+ startPrice > basePrice,
112
+ "Auction start price must be greater than auction end price"
113
+ );
114
+
115
+ // EFFECTS
116
+ DAProjectConfig_.timestampStart = auctionTimestampStart;
117
+ DAProjectConfig_.timestampEnd = auctionTimestampEnd;
118
+ DAProjectConfig_.startPrice = startPrice;
119
+ DAProjectConfig_.basePrice = basePrice;
120
+
121
+ emit SetAuctionDetailsLin({
122
+ projectId: projectId,
123
+ coreContract: coreContract,
124
+ auctionTimestampStart: auctionTimestampStart,
125
+ auctionTimestampEnd: auctionTimestampEnd,
126
+ startPrice: startPrice,
127
+ basePrice: basePrice
128
+ });
129
+ }
130
+
131
+ function resetAuctionDetails(
132
+ uint256 projectId,
133
+ address coreContract
134
+ ) internal {
135
+ DAProjectConfig storage DAProjectConfig_ = getDAProjectConfig({
136
+ projectId: projectId,
137
+ coreContract: coreContract
138
+ });
139
+
140
+ DAProjectConfig_.timestampStart = 0;
141
+ DAProjectConfig_.timestampEnd = 0;
142
+ DAProjectConfig_.startPrice = 0;
143
+ DAProjectConfig_.basePrice = 0;
144
+
145
+ emit DALib.ResetAuctionDetails({
146
+ projectId: projectId,
147
+ coreContract: coreContract
148
+ });
149
+ }
150
+
151
+ /**
152
+ * @notice Gets price of minting a token given the project's
153
+ * DAProjectConfig.
154
+ * This function reverts if auction has not yet started, or if auction is
155
+ * unconfigured.
156
+ * @param projectId Project Id to get price for
157
+ * @param coreContract Core contract address to get price for
158
+ * @return current price of token in Wei
159
+ */
160
+ function getPriceLin(
161
+ uint256 projectId,
162
+ address coreContract
163
+ ) internal view returns (uint256) {
164
+ DAProjectConfig storage _DAProjectConfig = getDAProjectConfig({
165
+ projectId: projectId,
166
+ coreContract: coreContract
167
+ });
168
+ // move parameters to memory if used more than once
169
+ uint256 timestampStart = _DAProjectConfig.timestampStart;
170
+ uint256 timestampEnd = _DAProjectConfig.timestampEnd;
171
+ uint256 startPrice = _DAProjectConfig.startPrice;
172
+ uint256 basePrice = _DAProjectConfig.basePrice;
173
+
174
+ require(block.timestamp > timestampStart, "Auction not yet started");
175
+ if (block.timestamp >= timestampEnd) {
176
+ require(timestampEnd > 0, "Only configured auctions");
177
+ return basePrice;
178
+ }
179
+ uint256 elapsedTime;
180
+ uint256 duration;
181
+ uint256 startToEndDiff;
182
+ unchecked {
183
+ // already checked that block.timestamp > _timestampStart
184
+ elapsedTime = block.timestamp - timestampStart;
185
+ // _timestampEnd > _timestampStart enforced during assignment
186
+ duration = timestampEnd - timestampStart;
187
+ // _startPrice > _basePrice enforced during assignment
188
+ startToEndDiff = startPrice - basePrice;
189
+ }
190
+ return startPrice - ((elapsedTime * startToEndDiff) / duration);
191
+ }
192
+
193
+ /**
194
+ * Loads the DAProjectConfig for a given project and core contract.
195
+ * @param projectId Project Id to get config for
196
+ * @param coreContract Core contract address to get config for
197
+ */
198
+ function getDAProjectConfig(
199
+ uint256 projectId,
200
+ address coreContract
201
+ ) internal view returns (DAProjectConfig storage) {
202
+ return s().DAProjectConfigs_[coreContract][projectId];
203
+ }
204
+
205
+ /**
206
+ * @notice Return the storage struct for reading and writing. This library
207
+ * uses a diamond storage pattern when managing storage.
208
+ * @return storageStruct The DALinLibStorage struct.
209
+ */
210
+ function s() internal pure returns (DALinLibStorage storage storageStruct) {
211
+ bytes32 position = DAE_LIN_LIB_STORAGE_POSITION;
212
+ assembly ("memory-safe") {
213
+ storageStruct.slot := position
214
+ }
215
+ }
216
+ }
@@ -0,0 +1,171 @@
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 Art Blocks Generic Events Library
8
+ * @notice This library is designed to define a set of generic events that all
9
+ * shared minter libraries may utilize to populate indexed extra minter details
10
+ * @dev Strings not supported. Recommend conversion of (short) strings to
11
+ * bytes32 to remain gas-efficient.
12
+ * @author Art Blocks Inc.
13
+ */
14
+ library GenericMinterEventsLib {
15
+ /**
16
+ * @notice Generic project minter configuration event. Removes key `key`
17
+ * for project `projectId`.
18
+ * @param projectId Project ID to remove key for
19
+ * @param coreContract Core contract address that projectId is on
20
+ * @param key Key to remove
21
+ */
22
+ event ConfigKeyRemoved(
23
+ uint256 indexed projectId,
24
+ address indexed coreContract,
25
+ bytes32 key
26
+ );
27
+ /// BOOL
28
+ /**
29
+ * @notice Generic project minter configuration event. Sets value of key
30
+ * `key` to `value` for project `projectId`.
31
+ * @param projectId Project ID to set key for
32
+ * @param coreContract Core contract address that projectId is on
33
+ * @param key Key to set
34
+ * @param value Value to set key to
35
+ */
36
+ event ConfigValueSet(
37
+ uint256 indexed projectId,
38
+ address indexed coreContract,
39
+ bytes32 key,
40
+ bool value
41
+ );
42
+ /// UINT256
43
+ /**
44
+ * @notice Generic project minter configuration event. Sets value of key
45
+ * `key` to `value` for project `projectId`.
46
+ * @param projectId Project ID to set key for
47
+ * @param coreContract Core contract address that projectId is on
48
+ * @param key Key to set
49
+ * @param value Value to set key to
50
+ */
51
+ event ConfigValueSet(
52
+ uint256 indexed projectId,
53
+ address indexed coreContract,
54
+ bytes32 key,
55
+ uint256 value
56
+ );
57
+ /**
58
+ * @notice Generic project minter configuration event. Adds value `value`
59
+ * to the set of uint256 at key `key` for project `projectId`.
60
+ * @param projectId Project ID to set key for
61
+ * @param coreContract Core contract address that projectId is on
62
+ * @param key Key to modify
63
+ * @param value Value to add to the key's set
64
+ */
65
+ event ConfigValueAddedToSet(
66
+ uint256 indexed projectId,
67
+ address indexed coreContract,
68
+ bytes32 key,
69
+ uint256 value
70
+ );
71
+ /**
72
+ * @notice Generic project minter configuration event. Removes value
73
+ * `value` to the set of uint256 at key `key` for project `projectId`.
74
+ * @param projectId Project ID to set key for
75
+ * @param coreContract Core contract address that projectId is on
76
+ * @param key Key to modify
77
+ * @param value Value removed from the key's set
78
+ */
79
+ event ConfigValueRemovedFromSet(
80
+ uint256 indexed projectId,
81
+ address indexed coreContract,
82
+ bytes32 key,
83
+ uint256 value
84
+ );
85
+ /// ADDRESS
86
+ /**
87
+ * @notice Generic project minter configuration event. Sets value of key
88
+ * `key` to `value` for project `projectId`.
89
+ * @param projectId Project ID to set key for
90
+ * @param coreContract Core contract address that projectId is on
91
+ * @param key Key to set
92
+ * @param value Value to set key to
93
+ */
94
+ event ConfigValueSet(
95
+ uint256 indexed projectId,
96
+ address indexed coreContract,
97
+ bytes32 key,
98
+ address value
99
+ );
100
+ /**
101
+ * @notice Generic project minter configuration event. Adds value `value`
102
+ * to the set of addresses at key `key` for project `projectId`.
103
+ * @param projectId Project ID to set key for
104
+ * @param coreContract Core contract address that projectId is on
105
+ * @param key Key to modify
106
+ * @param value Value to add to the key's set
107
+ */
108
+ event ConfigValueAddedToSet(
109
+ uint256 indexed projectId,
110
+ address indexed coreContract,
111
+ bytes32 key,
112
+ address value
113
+ );
114
+ /**
115
+ * @notice Generic project minter configuration event. Removes value
116
+ * `value` to the set of addresses at key `key` for project `projectId`.
117
+ * @param projectId Project ID to set key for
118
+ * @param coreContract Core contract address that projectId is on
119
+ * @param key Key to modify
120
+ * @param value Value removed from the key's set
121
+ */
122
+ event ConfigValueRemovedFromSet(
123
+ uint256 indexed projectId,
124
+ address indexed coreContract,
125
+ bytes32 key,
126
+ address value
127
+ );
128
+ /// BYTES32
129
+ /**
130
+ * @notice Generic project minter configuration event. Sets value of key
131
+ * `key` to `value` for project `projectId`.
132
+ * @param projectId Project ID to set key for
133
+ * @param coreContract Core contract address that projectId is on
134
+ * @param key Key to set
135
+ * @param value Value to set key to
136
+ */
137
+ event ConfigValueSet(
138
+ uint256 indexed projectId,
139
+ address indexed coreContract,
140
+ bytes32 key,
141
+ bytes32 value
142
+ );
143
+ /**
144
+ * @notice Generic project minter configuration event. Adds value `value`
145
+ * to the set of bytes32 at key `key` for project `projectId`.
146
+ * @param projectId Project ID to set key for
147
+ * @param coreContract Core contract address that projectId is on
148
+ * @param key Key to modify
149
+ * @param value Value to add to the key's set
150
+ */
151
+ event ConfigValueAddedToSet(
152
+ uint256 indexed projectId,
153
+ address indexed coreContract,
154
+ bytes32 key,
155
+ bytes32 value
156
+ );
157
+ /**
158
+ * @notice Generic project minter configuration event. Removes value
159
+ * `value` to the set of bytes32 at key `key` for project `projectId`.
160
+ * @param projectId Project ID to set key for
161
+ * @param coreContract Core contract address that projectId is on
162
+ * @param key Key to modify
163
+ * @param value Value removed from the key's set
164
+ */
165
+ event ConfigValueRemovedFromSet(
166
+ uint256 indexed projectId,
167
+ address indexed coreContract,
168
+ bytes32 key,
169
+ bytes32 value
170
+ );
171
+ }