@artblocks/contracts 1.0.2 → 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 (387) hide show
  1. package/README.md +56 -21
  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 +141 -15
  5. package/artifacts/contracts/GenArt721CoreV3.sol/GenArt721CoreV3.json +42 -5
  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/{GenArt721CoreV2_ENGINE_FLEX.sol → V2/GenArt721CoreV2_ENGINE_FLEX.sol}/GenArt721CoreV2_ENGINE_FLEX.json +3 -3
  34. package/artifacts/contracts/engine/{GenArt721CoreV2_PBAB.sol → V2/GenArt721CoreV2_PBAB.sol}/GenArt721CoreV2_PBAB.json +3 -3
  35. package/artifacts/contracts/engine/{GenArt721CoreV2_PRTNR.sol → V2/GenArt721CoreV2_PRTNR.sol}/GenArt721CoreV2_PRTNR.json +3 -3
  36. package/artifacts/contracts/engine/{GenArt721MinterBurner_PBAB.sol → V2/GenArt721MinterBurner_PBAB.sol}/GenArt721MinterBurner_PBAB.json +3 -3
  37. package/artifacts/contracts/engine/{GenArt721MinterDAExp_PBAB.sol → V2/GenArt721MinterDAExp_PBAB.sol}/GenArt721MinterDAExp_PBAB.json +3 -3
  38. package/artifacts/contracts/engine/{GenArt721Minter_PBAB.sol → V2/GenArt721Minter_PBAB.sol}/GenArt721Minter_PBAB.json +3 -3
  39. package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine.sol/GenArt721CoreV3_Engine.json +1960 -0
  40. package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol/GenArt721CoreV3_Engine_Flex.json +2247 -0
  41. package/artifacts/contracts/engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol/GenArt721CoreV3_Engine_Flex_PROOF.json +2247 -0
  42. package/artifacts/contracts/engine/V3/forks/PROHIBITION/AdminACLV0_PROHIBITION.sol/AdminACLV0_PROHIBITION.json +401 -0
  43. package/artifacts/contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol/GenArt721CoreV3_Engine_Flex_PROHIBITION.json +2281 -0
  44. package/artifacts/contracts/engine/V3/forks/PROHIBITION/interfaces/IAdminACLV0_PROHIBITION.sol/IAdminACLV0_PROHIBITION.json +359 -0
  45. package/artifacts/contracts/engine/V3/forks/PROHIBITION/interfaces/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.sol/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.json +1094 -0
  46. package/artifacts/contracts/engine-registry/CoreRegistryV1.sol/CoreRegistryV1.json +242 -0
  47. package/artifacts/contracts/engine-registry/EngineRegistryV0.sol/EngineRegistryV0.json +2 -2
  48. package/artifacts/contracts/explorations/GenArt721CoreV3_Explorations.sol/GenArt721CoreV3_Explorations.json +41 -4
  49. package/artifacts/contracts/interfaces/{0.5.x → v0.5.x}/IBonusContract.sol/IBonusContract.json +1 -1
  50. package/artifacts/contracts/interfaces/{0.5.x → v0.5.x}/IGenArt721CoreContractV1.sol/IGenArt721CoreContractV1.json +1 -1
  51. package/artifacts/contracts/interfaces/{0.5.x → v0.5.x}/IGenArt721CoreV2_PBAB.sol/IGenArt721CoreV2_PBAB.json +1 -1
  52. package/artifacts/contracts/interfaces/{0.5.x → v0.5.x}/IRandomizer.sol/IRandomizer.json +1 -1
  53. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IAdminACLV0.sol/IAdminACLV0.json +1 -1
  54. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IArtblocksRoyaltyOverride.sol/IArtblocksRoyaltyOverride.json +1 -1
  55. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IBonusContract.sol/IBonusContract.json +1 -1
  56. package/artifacts/contracts/interfaces/v0.8.x/IBytecodeStorageReader.sol/IBytecodeStorageReader.json +111 -0
  57. package/artifacts/contracts/interfaces/v0.8.x/ICoreRegistryV1.sol/ICoreRegistryV1.json +172 -0
  58. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IDelegationRegistry.sol/IDelegationRegistry.json +1 -1
  59. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IDependencyRegistryCompatibleV0.sol/IDependencyRegistryCompatibleV0.json +1 -1
  60. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IDependencyRegistryV0.sol/IDependencyRegistryV0.json +3 -3
  61. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IEngineRegistryV0.sol/IEngineRegistryV0.json +1 -1
  62. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDAExpSettlementV0.sol/IFilteredMinterDAExpSettlementV0.json +1 -1
  63. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDAExpSettlementV1.sol/IFilteredMinterDAExpSettlementV1.json +1 -1
  64. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDAExpSettlement_Mixin.sol/IFilteredMinterDAExpSettlement_Mixin.json +1 -1
  65. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDAExpV0.sol/IFilteredMinterDAExpV0.json +1 -1
  66. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDAExpV1.sol/IFilteredMinterDAExpV1.json +1 -1
  67. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDALinV0.sol/IFilteredMinterDALinV0.json +1 -1
  68. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDALinV1.sol/IFilteredMinterDALinV1.json +1 -1
  69. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterHolderV0.sol/IFilteredMinterHolderV0.json +1 -1
  70. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterHolderV1.sol/IFilteredMinterHolderV1.json +1 -1
  71. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterHolderV2.sol/IFilteredMinterHolderV2.json +1 -1
  72. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterMerkleV0.sol/IFilteredMinterMerkleV0.json +1 -1
  73. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterMerkleV1.sol/IFilteredMinterMerkleV1.json +1 -1
  74. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterMerkleV2.sol/IFilteredMinterMerkleV2.json +1 -1
  75. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterSEAV0.sol/IFilteredMinterSEAV0.json +56 -54
  76. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterV0.sol/IFilteredMinterV0.json +1 -1
  77. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterV1.sol/IFilteredMinterV1.json +1 -1
  78. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterV2.sol/IFilteredMinterV2.json +1 -1
  79. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractExposesHashSeed.sol/IGenArt721CoreContractExposesHashSeed.json +30 -0
  80. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV1.sol/IGenArt721CoreContractV1.json +1 -1
  81. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV3.sol/IGenArt721CoreContractV3.json +14 -1
  82. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3WithSharedRandomizer.sol/IGenArt721CoreContractV3WithSharedRandomizer.json +24 -0
  83. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV3_Base.sol/IGenArt721CoreContractV3_Base.json +14 -1
  84. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV3_Engine.sol/IGenArt721CoreContractV3_Engine.json +8 -14
  85. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV3_Engine_Flex.sol/IGenArt721CoreContractV3_Engine_Flex.json +8 -14
  86. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreV2_PBAB.sol/IGenArt721CoreV2_PBAB.json +1 -1
  87. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IManifold.sol/IManifold.json +1 -1
  88. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IMinterBaseV0.sol/IMinterBaseV0.json +1 -1
  89. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IMinterFilterV0.sol/IMinterFilterV0.json +1 -1
  90. package/artifacts/contracts/interfaces/v0.8.x/IMinterFilterV1.sol/IMinterFilterV1.json +514 -0
  91. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IMintingAPICoreV0.sol/IMintingAPICoreV0.json +1 -1
  92. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IMintingAPIMinterV0.sol/IMintingAPIMinterV0.json +1 -1
  93. package/artifacts/contracts/interfaces/v0.8.x/IPseudorandomAtomic.sol/IPseudorandomAtomic.json +30 -0
  94. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IRandomizer.sol/IRandomizer.json +1 -1
  95. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IRandomizerPolyptychV0.sol/IRandomizerPolyptychV0.json +1 -1
  96. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IRandomizerV2.sol/IRandomizerV2.json +1 -1
  97. package/artifacts/contracts/interfaces/v0.8.x/IRandomizer_V3CoreBase.sol/IRandomizer_V3CoreBase.json +24 -0
  98. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDAExpSettlementV0.sol/ISharedMinterDAExpSettlementV0.json +207 -0
  99. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDAExpV0.sol/ISharedMinterDAExpV0.json +93 -0
  100. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDALinV0.sol/ISharedMinterDALinV0.json +93 -0
  101. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDAV0.sol/ISharedMinterDAV0.json +69 -0
  102. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterHolderV0.sol/ISharedMinterHolderV0.json +203 -0
  103. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterMerkleV0.sol/ISharedMinterMerkleV0.json +123 -0
  104. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterSEAV0.sol/ISharedMinterSEAV0.json +261 -0
  105. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterSimplePurchaseV0.sol/ISharedMinterSimplePurchaseV0.json +64 -0
  106. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterV0.sol/ISharedMinterV0.json +533 -0
  107. package/artifacts/contracts/interfaces/v0.8.x/ISharedRandomizerV0.sol/ISharedRandomizerV0.json +223 -0
  108. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IWETH.sol/IWETH.json +1 -1
  109. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/Address.json +2 -2
  110. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/Counters.json +2 -2
  111. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/CustomERC721Metadata.json +2 -2
  112. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/ERC721.json +2 -2
  113. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/ERC721Enumerable.json +2 -2
  114. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/GenArt721CoreV1.json +2 -2
  115. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/SafeMath.json +2 -2
  116. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/Strings.json +2 -2
  117. package/artifacts/contracts/legacy/GenArt721LegacyMinter.sol/GenArt721LegacyMinter.json +2 -2
  118. package/artifacts/contracts/libs/integration-refs/delegation-registry/DelegationRegistry.sol/DelegationRegistry.json +2 -2
  119. package/artifacts/contracts/libs/integration-refs/gnosis-safe/GnosisSafeMock.sol/GnosisSafeMock.json +2 -2
  120. package/artifacts/contracts/libs/integration-refs/gnosis-safe/GnosisSafeProxyFactoryMock.sol/GnosisSafeProxyFactoryMock.json +2 -2
  121. package/artifacts/contracts/libs/integration-refs/gnosis-safe/MultiSendMock.sol/MultiSendMock.json +2 -2
  122. package/artifacts/contracts/libs/integration-refs/weth9/weth9.sol/WETH9_.json +2 -2
  123. package/artifacts/contracts/libs/{0.5.x → v0.5.x}/CustomERC721Metadata.sol/CustomERC721Metadata.json +3 -3
  124. package/artifacts/contracts/libs/{0.5.x → v0.5.x}/IERC20.sol/IERC20.json +1 -1
  125. package/artifacts/contracts/libs/{0.5.x → v0.5.x}/SafeMath.sol/SafeMath.json +3 -3
  126. package/artifacts/contracts/libs/{0.5.x → v0.5.x}/Strings.sol/Strings.json +3 -3
  127. package/artifacts/contracts/libs/v0.8.x/ABHelpers.sol/ABHelpers.json +10 -0
  128. package/artifacts/contracts/libs/v0.8.x/AuthLib.sol/AuthLib.json +10 -0
  129. package/artifacts/contracts/libs/{0.8.x/BytecodeStorage.sol → v0.8.x/BytecodeStorageV0.sol}/BytecodeStorage.json +3 -3
  130. package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV1.sol/BytecodeStorageReader.json +163 -0
  131. package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV1.sol/BytecodeStorageWriter.json +10 -0
  132. package/artifacts/contracts/libs/{0.8.x → v0.8.x}/Bytes32Strings.sol/Bytes32Strings.json +3 -3
  133. package/artifacts/contracts/libs/{0.8.x → v0.8.x}/ERC721_PackedHashSeed.sol/ERC721_PackedHashSeed.json +3 -3
  134. package/artifacts/contracts/libs/v0.8.x/SSTORE2.sol/SSTORE2.json +10 -0
  135. package/artifacts/contracts/libs/v0.8.x/minter-libs/DAExpLib.sol/DAExpLib.json +10 -0
  136. package/artifacts/contracts/libs/v0.8.x/minter-libs/DALinLib.sol/DALinLib.json +10 -0
  137. package/artifacts/contracts/libs/v0.8.x/minter-libs/MaxInvocationsLib.sol/MaxInvocationsLib.json +10 -0
  138. package/artifacts/contracts/libs/v0.8.x/minter-libs/MerkleLib.sol/MerkleLib.json +10 -0
  139. package/artifacts/contracts/libs/v0.8.x/minter-libs/PolyptychLib.sol/PolyptychLib.json +10 -0
  140. package/artifacts/contracts/libs/v0.8.x/minter-libs/SEALib.sol/SEALib.json +10 -0
  141. package/artifacts/contracts/libs/v0.8.x/minter-libs/SetPriceLib.sol/SetPriceLib.json +10 -0
  142. package/artifacts/contracts/libs/v0.8.x/minter-libs/SettlementExpLib.sol/SettlementExpLib.json +10 -0
  143. package/artifacts/contracts/libs/v0.8.x/minter-libs/SplitFundsLib.sol/SplitFundsLib.json +10 -0
  144. package/artifacts/contracts/libs/v0.8.x/minter-libs/TokenHolderLib.sol/TokenHolderLib.json +10 -0
  145. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV0.sol/MinterFilterV0.json +2 -2
  146. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV1.sol/MinterFilterV1.json +2 -2
  147. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV2.sol/MinterFilterV2.json +748 -0
  148. package/artifacts/contracts/minter-suite/Minters/MinterDAExpHolderV5.sol/MinterDAExpHolderV5.json +1228 -0
  149. package/artifacts/contracts/minter-suite/Minters/MinterDAExpSettlementV2.sol/MinterDAExpSettlementV2.json +2 -2
  150. package/artifacts/contracts/minter-suite/Minters/MinterDAExpSettlementV3.sol/MinterDAExpSettlementV3.json +1146 -0
  151. package/artifacts/contracts/minter-suite/Minters/MinterDAExpV4.sol/MinterDAExpV4.json +2 -2
  152. package/artifacts/contracts/minter-suite/Minters/MinterDAExpV5.sol/MinterDAExpV5.json +909 -0
  153. package/artifacts/contracts/minter-suite/Minters/MinterDALinHolderV5.sol/MinterDALinHolderV5.json +1228 -0
  154. package/artifacts/contracts/minter-suite/Minters/MinterDALinV4.sol/MinterDALinV4.json +2 -2
  155. package/artifacts/contracts/minter-suite/Minters/MinterDALinV5.sol/MinterDALinV5.json +909 -0
  156. package/artifacts/contracts/minter-suite/Minters/MinterHolderV4.sol/MinterHolderV4.json +2 -2
  157. package/artifacts/contracts/minter-suite/Minters/MinterMerkleV5.sol/MinterMerkleV5.json +2 -2
  158. package/artifacts/contracts/minter-suite/Minters/MinterPolyptychV0.sol/IGenArt721CoreContractV3WithRandomizer.json +10 -160
  159. package/artifacts/contracts/minter-suite/Minters/MinterPolyptychV0.sol/MinterPolyptychV0.json +2 -2
  160. package/artifacts/contracts/minter-suite/Minters/MinterSEAV0.sol/MinterSEAV0.json +59 -80
  161. package/artifacts/contracts/minter-suite/Minters/MinterSEAV1.sol/MinterSEAV1.json +1325 -0
  162. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20V4.sol/MinterSetPriceERC20V4.json +2 -2
  163. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20V5.sol/MinterSetPriceERC20V5.json +848 -0
  164. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceHolderV5.sol/MinterSetPriceHolderV5.json +1091 -0
  165. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceMerkleV5.sol/MinterSetPriceMerkleV5.json +1075 -0
  166. package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychERC20V5.sol/MinterSetPricePolyptychERC20V5.json +1243 -0
  167. package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychV5.sol/MinterSetPricePolyptychV5.json +1167 -0
  168. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceV4.sol/MinterSetPriceV4.json +2 -2
  169. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceV5.sol/MinterSetPriceV5.json +772 -0
  170. package/artifacts/contracts/mock/{BytecodeTextCR_DMock.sol/BytecodeTextCR_DMock.json → BytecodeV0TextCR_DMock.sol/BytecodeV0TextCR_DMock.json} +4 -4
  171. package/artifacts/contracts/mock/BytecodeV1LibCallsMock.sol/BytecodeV1LibCallsMock.json +135 -0
  172. package/artifacts/contracts/mock/BytecodeV1TextCR_DMock.sol/BytecodeV1TextCR_DMock.json +301 -0
  173. package/artifacts/contracts/mock/DeadReceiverBidderMock.sol/DeadReceiverBidderMock.json +25 -2
  174. package/artifacts/contracts/mock/DeadReceiverMock.sol/DeadReceiverMock.json +2 -2
  175. package/artifacts/contracts/mock/DummySharedMinter.sol/DummySharedMinter.json +114 -0
  176. package/artifacts/contracts/mock/ERC20Mock.sol/ERC20Mock.json +28 -2
  177. package/artifacts/contracts/mock/GasLimitReceiverBidderMock.sol/GasLimitReceiverBidderMock.json +2 -2
  178. package/artifacts/contracts/mock/GasLimitReceiverMock.sol/GasLimitReceiverMock.json +2 -2
  179. package/artifacts/contracts/mock/GenArt721CoreV3_Engine_IncorrectCoreType.sol/GenArt721CoreV3_Engine_IncorrectCoreType.json +22 -4
  180. package/artifacts/contracts/mock/MockAdminACLV0.sol/MockAdminACLV0Events.json +2 -2
  181. package/artifacts/contracts/mock/MockAdminACLV0_PROHIBITION.sol/MockAdminACLV0Events_PROHIBITION.json +440 -0
  182. package/artifacts/contracts/mock/OriginRegisterMock.sol/OriginRegisterMock.json +39 -0
  183. package/artifacts/contracts/mock/RandomizerV2_NoAssignMock.sol/RandomizerV2_NoAssignMock.json +2 -2
  184. package/artifacts/contracts/mock/ReentrancyHolderMock.sol/ReentrancyHolderMock.json +2 -2
  185. package/artifacts/contracts/mock/ReentrancyMerkleMock.sol/ReentrancyMerkleMock.json +2 -2
  186. package/artifacts/contracts/mock/ReentrancyMock.sol/ReentrancyMock.json +2 -2
  187. package/artifacts/contracts/mock/ReentrancySEAMock.sol/ReentrancySEAAutoBidderMock.json +2 -2
  188. package/artifacts/contracts/mock/SSTORE2Mock.sol/SSTORE2Mock.json +118 -0
  189. package/artifacts/contracts/randomizer/{BasicRandomizer.sol → deprecated/BasicRandomizer.sol}/BasicRandomizer.json +3 -3
  190. package/artifacts/contracts/randomizer/{BasicRandomizerBase_v0_0_0.sol → deprecated/BasicRandomizerBase_v0_0_0.sol}/RandomizerBase.json +1 -1
  191. package/artifacts/contracts/randomizer/{PolyptychRandomizerV0.sol → deprecated/PolyptychRandomizerV0.sol}/BasicPolyptychRandomizerV0.json +3 -3
  192. package/artifacts/contracts/randomizer/{RandomizerV2.sol → deprecated/RandomizerV2.sol}/BasicRandomizerV2.json +3 -3
  193. package/artifacts/contracts/randomizer/primitive/PseudorandomAtomicBasic.sol/PseudorandomAtomic.json +30 -0
  194. package/artifacts/contracts/randomizer/shared/SharedRandomizerV0.sol/SharedRandomizerV0.json +247 -0
  195. package/artifacts/contracts/royalty-registry/GenArt721RoyaltyOverride.sol/GenArt721RoyaltyOverride.json +2 -2
  196. package/artifacts/contracts/royalty-registry/GenArt721RoyaltyOverride_PBAB.sol/GenArt721RoyaltyOverride_PBAB.json +2 -2
  197. package/contracts/AdminACLV0.sol +2 -2
  198. package/contracts/AdminACLV1.sol +2 -2
  199. package/contracts/DependencyRegistryV0.sol +219 -123
  200. package/contracts/GenArt721CoreV3.sol +60 -42
  201. package/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV0.sol +3 -3
  202. package/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV1.sol +3 -3
  203. package/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV2.sol +4 -4
  204. package/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV3.sol +4 -4
  205. package/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol +4 -4
  206. package/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV1.sol +4 -4
  207. package/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV0.sol +3 -3
  208. package/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV1.sol +3 -3
  209. package/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV2.sol +4 -4
  210. package/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV3.sol +4 -4
  211. package/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV0.sol +3 -3
  212. package/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV1.sol +4 -4
  213. package/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV2.sol +5 -5
  214. package/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV3.sol +5 -5
  215. package/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV0.sol +3 -3
  216. package/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV1.sol +4 -4
  217. package/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV2.sol +5 -5
  218. package/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV3.sol +5 -5
  219. package/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV4.sol +5 -5
  220. package/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV0.sol +3 -3
  221. package/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV1.sol +3 -3
  222. package/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV2.sol +4 -4
  223. package/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV3.sol +4 -4
  224. package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V0.sol +3 -3
  225. package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V1.sol +3 -3
  226. package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V2.sol +4 -4
  227. package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V3.sol +4 -4
  228. package/contracts/engine/{GenArt721CoreV2_ENGINE_FLEX.sol → V2/GenArt721CoreV2_ENGINE_FLEX.sol} +2 -2
  229. package/contracts/engine/{GenArt721CoreV2_PBAB.sol → V2/GenArt721CoreV2_PBAB.sol} +2 -2
  230. package/contracts/engine/{GenArt721CoreV2_PRTNR.sol → V2/GenArt721CoreV2_PRTNR.sol} +3 -3
  231. package/contracts/engine/{GenArt721MinterBurner_PBAB.sol → V2/GenArt721MinterBurner_PBAB.sol} +2 -2
  232. package/contracts/engine/{GenArt721MinterDAExp_PBAB.sol → V2/GenArt721MinterDAExp_PBAB.sol} +2 -2
  233. package/contracts/engine/{GenArt721Minter_PBAB.sol → V2/GenArt721Minter_PBAB.sol} +2 -2
  234. package/contracts/{GenArt721CoreV3_Engine.sol → engine/V3/GenArt721CoreV3_Engine.sol} +48 -24
  235. package/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol +2298 -0
  236. package/contracts/{GenArt721CoreV3_Engine_Flex.sol → engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol} +50 -31
  237. package/contracts/engine/V3/forks/PROHIBITION/AdminACLV0_PROHIBITION.sol +281 -0
  238. package/contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol +2359 -0
  239. package/contracts/engine/V3/forks/PROHIBITION/interfaces/IAdminACLV0_PROHIBITION.sol +123 -0
  240. package/contracts/engine/V3/forks/PROHIBITION/interfaces/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.sol +29 -0
  241. package/contracts/engine-registry/CoreRegistryV1.sol +254 -0
  242. package/contracts/engine-registry/EngineRegistryV0.sol +2 -2
  243. package/contracts/explorations/GenArt721CoreV3_Explorations.sol +58 -40
  244. package/contracts/interfaces/v0.8.x/IBytecodeStorageReader.sol +62 -0
  245. package/contracts/interfaces/v0.8.x/ICoreRegistryV1.sol +27 -0
  246. package/contracts/interfaces/{0.8.x → v0.8.x}/IDelegationRegistry.sol +1 -1
  247. package/contracts/interfaces/{0.8.x → v0.8.x}/IDependencyRegistryCompatibleV0.sol +1 -1
  248. package/contracts/interfaces/{0.8.x → v0.8.x}/IDependencyRegistryV0.sol +3 -3
  249. package/contracts/interfaces/{0.8.x → v0.8.x}/IEngineRegistryV0.sol +1 -1
  250. package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterSEAV0.sol +34 -15
  251. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractExposesHashSeed.sol +11 -0
  252. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3WithSharedRandomizer.sol +23 -0
  253. package/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV3_Base.sol +3 -0
  254. package/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV3_Engine.sol +0 -5
  255. package/contracts/interfaces/v0.8.x/IMinterFilterV1.sol +184 -0
  256. package/contracts/interfaces/v0.8.x/IPseudorandomAtomic.sol +16 -0
  257. package/contracts/interfaces/{0.8.x → v0.8.x}/IRandomizerPolyptychV0.sol +1 -1
  258. package/contracts/interfaces/{0.8.x → v0.8.x}/IRandomizerV2.sol +2 -5
  259. package/contracts/interfaces/v0.8.x/IRandomizer_V3CoreBase.sol +23 -0
  260. package/contracts/interfaces/v0.8.x/ISharedMinterDAExpSettlementV0.sol +37 -0
  261. package/contracts/interfaces/v0.8.x/ISharedMinterDAExpV0.sol +25 -0
  262. package/contracts/interfaces/v0.8.x/ISharedMinterDALinV0.sol +26 -0
  263. package/contracts/interfaces/v0.8.x/ISharedMinterDAV0.sol +19 -0
  264. package/contracts/interfaces/v0.8.x/ISharedMinterHolderV0.sol +69 -0
  265. package/contracts/interfaces/v0.8.x/ISharedMinterMerkleV0.sol +44 -0
  266. package/contracts/interfaces/v0.8.x/ISharedMinterSEAV0.sol +78 -0
  267. package/contracts/interfaces/v0.8.x/ISharedMinterSimplePurchaseV0.sol +28 -0
  268. package/contracts/interfaces/v0.8.x/ISharedMinterV0.sol +191 -0
  269. package/contracts/interfaces/v0.8.x/ISharedRandomizerV0.sol +123 -0
  270. package/contracts/legacy/GenArt721CoreV1.sol +2 -2
  271. package/contracts/legacy/GenArt721LegacyMinter.sol +5 -5
  272. package/contracts/libs/integration-refs/delegation-registry/DelegationRegistry.sol +2 -2
  273. package/contracts/libs/integration-refs/weth9/weth9.sol +2 -0
  274. package/contracts/libs/v0.8.x/ABHelpers.sol +55 -0
  275. package/contracts/libs/v0.8.x/AuthLib.sol +197 -0
  276. package/contracts/libs/v0.8.x/BytecodeStorageV1.sol +399 -0
  277. package/contracts/libs/v0.8.x/SSTORE2.sol +109 -0
  278. package/contracts/libs/v0.8.x/minter-libs/DAExpLib.sol +125 -0
  279. package/contracts/libs/v0.8.x/minter-libs/DALinLib.sol +109 -0
  280. package/contracts/libs/v0.8.x/minter-libs/MaxInvocationsLib.sol +348 -0
  281. package/contracts/libs/v0.8.x/minter-libs/MerkleLib.sol +175 -0
  282. package/contracts/libs/v0.8.x/minter-libs/PolyptychLib.sol +160 -0
  283. package/contracts/libs/v0.8.x/minter-libs/SEALib.sol +320 -0
  284. package/contracts/libs/v0.8.x/minter-libs/SetPriceLib.sol +44 -0
  285. package/contracts/libs/v0.8.x/minter-libs/SettlementExpLib.sol +390 -0
  286. package/contracts/libs/v0.8.x/minter-libs/SplitFundsLib.sol +583 -0
  287. package/contracts/libs/v0.8.x/minter-libs/TokenHolderLib.sol +153 -0
  288. package/contracts/minter-suite/MinterFilter/MinterFilterV0.sol +3 -3
  289. package/contracts/minter-suite/MinterFilter/MinterFilterV1.sol +6 -6
  290. package/contracts/minter-suite/MinterFilter/MinterFilterV2.sol +830 -0
  291. package/contracts/minter-suite/Minters/MinterBase_v0_1_1.sol +4 -4
  292. package/contracts/minter-suite/Minters/MinterDAExpHolderV5.sol +966 -0
  293. package/contracts/minter-suite/Minters/MinterDAExpSettlementV2.sol +4 -4
  294. package/contracts/minter-suite/Minters/MinterDAExpSettlementV3.sol +1126 -0
  295. package/contracts/minter-suite/Minters/MinterDAExpV4.sol +4 -4
  296. package/contracts/minter-suite/Minters/MinterDAExpV5.sol +606 -0
  297. package/contracts/minter-suite/Minters/MinterDALinHolderV5.sol +952 -0
  298. package/contracts/minter-suite/Minters/MinterDALinV4.sol +4 -4
  299. package/contracts/minter-suite/Minters/MinterDALinV5.sol +591 -0
  300. package/contracts/minter-suite/Minters/MinterHolderV4.sol +5 -5
  301. package/contracts/minter-suite/Minters/MinterMerkleV5.sol +5 -5
  302. package/contracts/minter-suite/Minters/MinterPolyptychV0.sol +18 -17
  303. package/contracts/minter-suite/Minters/MinterSEAV0.sol +235 -186
  304. package/contracts/minter-suite/Minters/MinterSEAV1.sol +1190 -0
  305. package/contracts/minter-suite/Minters/MinterSetPriceERC20V4.sol +6 -6
  306. package/contracts/minter-suite/Minters/MinterSetPriceERC20V5.sol +570 -0
  307. package/contracts/minter-suite/Minters/MinterSetPriceHolderV5.sol +821 -0
  308. package/contracts/minter-suite/Minters/MinterSetPriceMerkleV5.sol +802 -0
  309. package/contracts/minter-suite/Minters/MinterSetPricePolyptychERC20V5.sol +1096 -0
  310. package/contracts/minter-suite/Minters/MinterSetPricePolyptychV5.sol +992 -0
  311. package/contracts/minter-suite/Minters/MinterSetPriceV4.sol +4 -4
  312. package/contracts/minter-suite/Minters/MinterSetPriceV5.sol +461 -0
  313. package/contracts/mock/{BytecodeTextCR_DMock.sol → BytecodeV0TextCR_DMock.sol} +5 -5
  314. package/contracts/mock/BytecodeV1LibCallsMock.sol +114 -0
  315. package/contracts/mock/BytecodeV1TextCR_DMock.sol +233 -0
  316. package/contracts/mock/DeadReceiverBidderMock.sol +16 -1
  317. package/contracts/mock/DeadReceiverMock.sol +1 -1
  318. package/contracts/mock/DummySharedMinter.sol +75 -0
  319. package/contracts/mock/ERC20Mock.sol +16 -0
  320. package/contracts/mock/GasLimitReceiverBidderMock.sol +1 -1
  321. package/contracts/mock/GasLimitReceiverMock.sol +1 -1
  322. package/contracts/mock/GenArt721CoreV3_Engine_IncorrectCoreType.sol +22 -35
  323. package/contracts/mock/MockAdminACLV0.sol +2 -2
  324. package/contracts/mock/MockAdminACLV0_PROHIBITION.sol +207 -0
  325. package/contracts/mock/OriginRegisterMock.sol +27 -0
  326. package/contracts/mock/RandomizerV2_NoAssignMock.sol +2 -2
  327. package/contracts/mock/ReentrancyHolderMock.sol +1 -1
  328. package/contracts/mock/ReentrancyMerkleMock.sol +1 -1
  329. package/contracts/mock/ReentrancyMock.sol +1 -1
  330. package/contracts/mock/ReentrancySEAMock.sol +1 -1
  331. package/contracts/mock/SSTORE2Mock.sol +93 -0
  332. package/contracts/randomizer/{BasicRandomizer.sol → deprecated/BasicRandomizer.sol} +1 -1
  333. package/contracts/randomizer/{BasicRandomizerBase_v0_0_0.sol → deprecated/BasicRandomizerBase_v0_0_0.sol} +1 -1
  334. package/contracts/randomizer/{PolyptychRandomizerV0.sol → deprecated/PolyptychRandomizerV0.sol} +3 -3
  335. package/contracts/randomizer/{RandomizerV2.sol → deprecated/RandomizerV2.sol} +3 -3
  336. package/contracts/randomizer/primitive/PseudorandomAtomicBasic.sol +30 -0
  337. package/contracts/randomizer/shared/SharedRandomizerV0.sol +260 -0
  338. package/contracts/royalty-registry/GenArt721RoyaltyOverride.sol +2 -2
  339. package/contracts/royalty-registry/GenArt721RoyaltyOverride_PBAB.sol +2 -2
  340. package/package.json +51 -43
  341. package/.env.example +0 -17
  342. package/LICENSE +0 -165
  343. package/artifacts/contracts/GenArt721CoreV3_Engine.sol/GenArt721CoreV3_Engine.json +0 -1942
  344. package/artifacts/contracts/GenArt721CoreV3_Engine_Flex.sol/GenArt721CoreV3_Engine_Flex.json +0 -2229
  345. package/artifacts/contracts/engine-registry/future/EngineRegistryV1.sol/EngineRegistryV1.json +0 -109
  346. package/contracts/engine-registry/future/EngineRegistryV1.sol +0 -86
  347. /package/contracts/interfaces/{0.5.x → v0.5.x}/IBonusContract.sol +0 -0
  348. /package/contracts/interfaces/{0.5.x → v0.5.x}/IGenArt721CoreContractV1.sol +0 -0
  349. /package/contracts/interfaces/{0.5.x → v0.5.x}/IGenArt721CoreV2_PBAB.sol +0 -0
  350. /package/contracts/interfaces/{0.5.x → v0.5.x}/IRandomizer.sol +0 -0
  351. /package/contracts/interfaces/{0.8.x → v0.8.x}/IAdminACLV0.sol +0 -0
  352. /package/contracts/interfaces/{0.8.x → v0.8.x}/IArtblocksRoyaltyOverride.sol +0 -0
  353. /package/contracts/interfaces/{0.8.x → v0.8.x}/IBonusContract.sol +0 -0
  354. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDAExpSettlementV0.sol +0 -0
  355. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDAExpSettlementV1.sol +0 -0
  356. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDAExpSettlement_Mixin.sol +0 -0
  357. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDAExpV0.sol +0 -0
  358. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDAExpV1.sol +0 -0
  359. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDALinV0.sol +0 -0
  360. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDALinV1.sol +0 -0
  361. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterHolderV0.sol +0 -0
  362. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterHolderV1.sol +0 -0
  363. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterHolderV2.sol +0 -0
  364. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterMerkleV0.sol +0 -0
  365. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterMerkleV1.sol +0 -0
  366. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterMerkleV2.sol +0 -0
  367. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterV0.sol +0 -0
  368. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterV1.sol +0 -0
  369. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterV2.sol +0 -0
  370. /package/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV1.sol +0 -0
  371. /package/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV3.sol +0 -0
  372. /package/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV3_Engine_Flex.sol +0 -0
  373. /package/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreV2_PBAB.sol +0 -0
  374. /package/contracts/interfaces/{0.8.x → v0.8.x}/IManifold.sol +0 -0
  375. /package/contracts/interfaces/{0.8.x → v0.8.x}/IMinterBaseV0.sol +0 -0
  376. /package/contracts/interfaces/{0.8.x → v0.8.x}/IMinterFilterV0.sol +0 -0
  377. /package/contracts/interfaces/{0.8.x → v0.8.x}/IMintingAPICoreV0.sol +0 -0
  378. /package/contracts/interfaces/{0.8.x → v0.8.x}/IMintingAPIMinterV0.sol +0 -0
  379. /package/contracts/interfaces/{0.8.x → v0.8.x}/IRandomizer.sol +0 -0
  380. /package/contracts/interfaces/{0.8.x → v0.8.x}/IWETH.sol +0 -0
  381. /package/contracts/libs/{0.5.x → v0.5.x}/CustomERC721Metadata.sol +0 -0
  382. /package/contracts/libs/{0.5.x → v0.5.x}/IERC20.sol +0 -0
  383. /package/contracts/libs/{0.5.x → v0.5.x}/SafeMath.sol +0 -0
  384. /package/contracts/libs/{0.5.x → v0.5.x}/Strings.sol +0 -0
  385. /package/contracts/libs/{0.8.x/BytecodeStorage.sol → v0.8.x/BytecodeStorageV0.sol} +0 -0
  386. /package/contracts/libs/{0.8.x → v0.8.x}/Bytes32Strings.sol +0 -0
  387. /package/contracts/libs/{0.8.x → v0.8.x}/ERC721_PackedHashSeed.sol +0 -0
@@ -1,19 +1,19 @@
1
1
  // SPDX-License-Identifier: LGPL-3.0-only
2
- pragma solidity 0.8.17;
2
+ 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/BytecodeStorage.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.
@@ -54,7 +54,8 @@ import "./libs/0.8.x/Bytes32Strings.sol";
54
54
  * - updateProjectScriptType
55
55
  * - updateProjectAspectRatio
56
56
  * ----------------------------------------------------------------------------
57
- * The following functions are restricted to only the Artist address:
57
+ * The following functions are restricted to only the Artist or Admin ACL
58
+ * contract of a valid project ID:
58
59
  * - proposeArtistPaymentAddressesAndSplits (Note that this has to be accepted
59
60
  * by adminAcceptArtistAddressesAndSplits to take effect, which is restricted
60
61
  * to the Admin ACL contract, or the artist if the core contract owner has
@@ -64,7 +65,7 @@ import "./libs/0.8.x/Bytes32Strings.sol";
64
65
  * if the global config `autoApproveArtistSplitProposals` is set to `true`.)
65
66
  * - toggleProjectIsPaused (note the artist can still mint while paused)
66
67
  * - updateProjectSecondaryMarketRoyaltyPercentage (up to
67
- ARTIST_MAX_SECONDARY_ROYALTY_PERCENTAGE percent)
68
+ * ARTIST_MAX_SECONDARY_ROYALTY_PERCENTAGE percent)
68
69
  * - updateProjectWebsite
69
70
  * - updateProjectMaxInvocations (to a number greater than or equal to the
70
71
  * current number of invocations, and less than current project maximum
@@ -83,7 +84,7 @@ import "./libs/0.8.x/Bytes32Strings.sol";
83
84
  * ----------------------------------------------------------------------------
84
85
  * The following functions for managing external asset dependencies are restricted
85
86
  * to projects with external asset dependencies that are unlocked:
86
- * - lockProjectExternalAssetDependencies
87
+ * - lockProjectExternalAssetDependencies
87
88
  * - updateProjectExternalAssetDependency
88
89
  * - removeProjectExternalAssetDependency
89
90
  * - addProjectExternalAssetDependency
@@ -99,16 +100,16 @@ import "./libs/0.8.x/Bytes32Strings.sol";
99
100
  * Additional admin and artist privileged roles may be described on minters,
100
101
  * registries, and other contracts that may interact with this core contract.
101
102
  */
102
- contract GenArt721CoreV3_Engine_Flex is
103
+ contract GenArt721CoreV3_Engine_Flex_PROOF is
103
104
  ERC721_PackedHashSeed,
104
105
  Ownable,
105
106
  IDependencyRegistryCompatibleV0,
106
107
  IManifold,
107
108
  IGenArt721CoreContractV3_Engine_Flex
108
109
  {
109
- using BytecodeStorage for string;
110
- using BytecodeStorage for address;
110
+ using BytecodeStorageWriter for string;
111
111
  using Bytes32Strings for bytes32;
112
+
112
113
  uint256 constant ONE_HUNDRED = 100;
113
114
  uint256 constant ONE_MILLION = 1_000_000;
114
115
  uint24 constant ONE_MILLION_UINT24 = 1_000_000;
@@ -214,6 +215,7 @@ contract GenArt721CoreV3_Engine_Flex is
214
215
  uint8 additionalPayeePrimarySalesPercentage;
215
216
  }
216
217
  // Project financials mapping
218
+
217
219
  mapping(uint256 => ProjectFinance) projectIdToFinancials;
218
220
 
219
221
  /// hash of artist's proposed payment updates to be approved by admin
@@ -326,13 +328,6 @@ contract GenArt721CoreV3_Engine_Flex is
326
328
  );
327
329
  }
328
330
 
329
- function _onlyArtist(uint256 _projectId) internal view {
330
- require(
331
- msg.sender == projectIdToFinancials[_projectId].artistAddress,
332
- "Only artist"
333
- );
334
- }
335
-
336
331
  function _onlyArtistOrAdminACL(
337
332
  uint256 _projectId,
338
333
  bytes4 _selector
@@ -901,7 +896,10 @@ contract GenArt721CoreV3_Engine_Flex is
901
896
  uint256 _additionalPayeeSecondarySalesPercentage
902
897
  ) external {
903
898
  _onlyValidProjectId(_projectId);
904
- _onlyArtist(_projectId);
899
+ _onlyArtistOrAdminACL(
900
+ _projectId,
901
+ this.proposeArtistPaymentAddressesAndSplits.selector
902
+ );
905
903
  _onlyNonZeroAddress(_artistAddress);
906
904
  ProjectFinance storage projectFinance = projectIdToFinancials[
907
905
  _projectId
@@ -1088,7 +1086,8 @@ contract GenArt721CoreV3_Engine_Flex is
1088
1086
  * @param _projectId Project ID to be toggled.
1089
1087
  */
1090
1088
  function toggleProjectIsPaused(uint256 _projectId) external {
1091
- _onlyArtist(_projectId);
1089
+ _onlyValidProjectId(_projectId);
1090
+ _onlyArtistOrAdminACL(_projectId, this.toggleProjectIsPaused.selector);
1092
1091
  projects[_projectId].paused = !projects[_projectId].paused;
1093
1092
  emit ProjectUpdated(_projectId, FIELD_PROJECT_PAUSED);
1094
1093
  }
@@ -1178,7 +1177,11 @@ contract GenArt721CoreV3_Engine_Flex is
1178
1177
  uint256 _projectId,
1179
1178
  uint256 _secondMarketRoyalty
1180
1179
  ) external {
1181
- _onlyArtist(_projectId);
1180
+ _onlyValidProjectId(_projectId);
1181
+ _onlyArtistOrAdminACL(
1182
+ _projectId,
1183
+ this.updateProjectSecondaryMarketRoyaltyPercentage.selector
1184
+ );
1182
1185
  require(
1183
1186
  _secondMarketRoyalty <= ARTIST_MAX_SECONDARY_ROYALTY_PERCENTAGE,
1184
1187
  "Over max percent"
@@ -1227,7 +1230,8 @@ contract GenArt721CoreV3_Engine_Flex is
1227
1230
  uint256 _projectId,
1228
1231
  string memory _projectWebsite
1229
1232
  ) external {
1230
- _onlyArtist(_projectId);
1233
+ _onlyValidProjectId(_projectId);
1234
+ _onlyArtistOrAdminACL(_projectId, this.updateProjectWebsite.selector);
1231
1235
  projects[_projectId].website = _projectWebsite;
1232
1236
  emit ProjectUpdated(_projectId, FIELD_PROJECT_WEBSITE);
1233
1237
  }
@@ -1261,7 +1265,11 @@ contract GenArt721CoreV3_Engine_Flex is
1261
1265
  uint256 _projectId,
1262
1266
  uint24 _maxInvocations
1263
1267
  ) external {
1264
- _onlyArtist(_projectId);
1268
+ _onlyValidProjectId(_projectId);
1269
+ _onlyArtistOrAdminACL(
1270
+ _projectId,
1271
+ this.updateProjectMaxInvocations.selector
1272
+ );
1265
1273
  // CHECKS
1266
1274
  Project storage project = projects[_projectId];
1267
1275
  uint256 _invocations = project.invocations;
@@ -1434,7 +1442,8 @@ contract GenArt721CoreV3_Engine_Flex is
1434
1442
  uint256 _projectId,
1435
1443
  string memory _newBaseURI
1436
1444
  ) external {
1437
- _onlyArtist(_projectId);
1445
+ _onlyValidProjectId(_projectId);
1446
+ _onlyArtistOrAdminACL(_projectId, this.updateProjectBaseURI.selector);
1438
1447
  _onlyNonEmptyString(_newBaseURI);
1439
1448
  projects[_projectId].projectBaseURI = _newBaseURI;
1440
1449
  emit ProjectUpdated(_projectId, FIELD_PROJECT_BASE_URI);
@@ -1763,7 +1772,7 @@ contract GenArt721CoreV3_Engine_Flex is
1763
1772
  if (_index >= project.scriptCount) {
1764
1773
  return "";
1765
1774
  }
1766
- return project.scriptBytecodeAddresses[_index].readFromBytecode();
1775
+ return _readFromBytecode(project.scriptBytecodeAddresses[_index]);
1767
1776
  }
1768
1777
 
1769
1778
  /**
@@ -1994,7 +2003,7 @@ contract GenArt721CoreV3_Engine_Flex is
1994
2003
  bytecodeAddress: _bytecodeAddress,
1995
2004
  data: (_dependency.dependencyType ==
1996
2005
  ExternalAssetDependencyType.ONCHAIN)
1997
- ? _bytecodeAddress.readFromBytecode()
2006
+ ? _readFromBytecode(_bytecodeAddress)
1998
2007
  : ""
1999
2008
  });
2000
2009
  }
@@ -2217,6 +2226,16 @@ contract GenArt721CoreV3_Engine_Flex is
2217
2226
  FOUR_WEEKS_IN_SECONDS);
2218
2227
  }
2219
2228
 
2229
+ /**
2230
+ * Helper for calling `BytecodeStorageReader` external library reader method,
2231
+ * added for bytecode size reduction purposes.
2232
+ */
2233
+ function _readFromBytecode(
2234
+ address _address
2235
+ ) internal view returns (string memory) {
2236
+ return BytecodeStorageReader.readFromBytecode(_address);
2237
+ }
2238
+
2220
2239
  // strings library from OpenZeppelin, modified for no constants
2221
2240
 
2222
2241
  bytes16 private _HEX_SYMBOLS = "0123456789abcdef";
@@ -0,0 +1,281 @@
1
+ // SPDX-License-Identifier: MIT
2
+
3
+ pragma solidity 0.8.19;
4
+
5
+ import "./interfaces/IAdminACLV0_PROHIBITION.sol";
6
+ import "../../../../interfaces/v0.8.x/IGenArt721CoreContractV3_Base.sol";
7
+
8
+ import "@openzeppelin-4.7/contracts/access/Ownable.sol";
9
+ import "@openzeppelin-4.7/contracts/utils/introspection/ERC165.sol";
10
+
11
+ /**
12
+ * @title Admin ACL contract, V0.
13
+ * @author Art Blocks Inc.
14
+ * @notice Privileged Roles and Ownership:
15
+ * This contract has a single superAdmin that passes all ACL checks. All checks
16
+ * for any other address will return false.
17
+ * The superAdmin can be changed by the current superAdmin.
18
+ * Care must be taken to ensure that the admin ACL contract is secure behind a
19
+ * multi-sig or other secure access control mechanism.
20
+ */
21
+ contract AdminACLV0_PROHIBITION is IAdminACLV0_PROHIBITION, ERC165 {
22
+ string public AdminACLType = "AdminACLV0_PROHIBITION";
23
+
24
+ /// superAdmin is the only address that passes any and all ACL checks
25
+ address public superAdmin;
26
+
27
+ /// contractSelectorApprovals is a mapping of:
28
+ /// keccak256(contracts, selectors, account) -> approved to call.
29
+ /// It is used to determine if an account is approved to call a function on specific contracts.
30
+ mapping(bytes32 => bool) contractSelectorApprovals;
31
+
32
+ /// contractArtistApprovals is a mapping of:
33
+ /// keccak256(contracts, artist) -> approved to call.
34
+ /// It is used to determine if an account is approved to call a functions for specific projects.
35
+ mapping(bytes32 => bool) contractArtistApprovals;
36
+
37
+ constructor() {
38
+ superAdmin = msg.sender;
39
+ }
40
+
41
+ /**
42
+ * @notice Allows superAdmin change the superAdmin address.
43
+ * @param _newSuperAdmin The new superAdmin address.
44
+ * @param _genArt721CoreAddressesToUpdate Array of genArt721Core
45
+ * addresses to update to the new superAdmin, for indexing purposes only.
46
+ * @dev this function is gated to only superAdmin address.
47
+ */
48
+ function changeSuperAdmin(
49
+ address _newSuperAdmin,
50
+ address[] calldata _genArt721CoreAddressesToUpdate
51
+ ) external {
52
+ require(msg.sender == superAdmin, "Only superAdmin");
53
+ address previousSuperAdmin = superAdmin;
54
+ superAdmin = _newSuperAdmin;
55
+ emit SuperAdminTransferred(
56
+ previousSuperAdmin,
57
+ _newSuperAdmin,
58
+ _genArt721CoreAddressesToUpdate
59
+ );
60
+ }
61
+
62
+ /**
63
+ * Calls transferOwnership on other contract from this contract.
64
+ * This is useful for updating to a new AdminACL contract.
65
+ * @param _contract The contract address.
66
+ * @param _newAdminACL The new AdminACL contract address.
67
+ * @dev This function is gated to only superAdmin address.
68
+ * @dev This implementation requires that the new AdminACL contract
69
+ * broadcasts support of IAdminACLV0 via ERC165 interface detection.
70
+ */
71
+ function transferOwnershipOn(
72
+ address _contract,
73
+ address _newAdminACL
74
+ ) external {
75
+ require(msg.sender == superAdmin, "Only superAdmin");
76
+ // ensure new AdminACL contract supports IAdminACLV0
77
+ require(
78
+ ERC165(_newAdminACL).supportsInterface(
79
+ type(IAdminACLV0).interfaceId
80
+ ),
81
+ "AdminACLV0: new admin ACL does not support IAdminACLV0"
82
+ );
83
+ Ownable(_contract).transferOwnership(_newAdminACL);
84
+ }
85
+
86
+ /**
87
+ * @notice Calls renounceOwnership on other contract from this contract.
88
+ * @param _contract The contract address.
89
+ * @dev this function is gated to only superAdmin address.
90
+ */
91
+ function renounceOwnershipOn(address _contract) external {
92
+ require(msg.sender == superAdmin, "Only superAdmin");
93
+ Ownable(_contract).renounceOwnership();
94
+ }
95
+
96
+ /**
97
+ * @notice Retrieve the address of the caller that is allowed to call a contract's function
98
+ * @param _contract The contract address.
99
+ * @param _selector The function selector.
100
+ * @param _caller The caller address.
101
+ * @return isApproved The approval status.
102
+ */
103
+ function getContractSelectorApproval(
104
+ address _contract,
105
+ bytes4 _selector,
106
+ address _caller
107
+ ) public view returns (bool) {
108
+ return
109
+ contractSelectorApprovals[
110
+ hashSelectorApprovalKey(_contract, _selector, _caller)
111
+ ];
112
+ }
113
+
114
+ /**
115
+ * @notice Retrieve whether of the caller is allowed to call a functions for a project
116
+ * @param _contract The contract address.
117
+ * @param _caller The caller address.
118
+ * @return isApproved The approval status.
119
+ */
120
+ function getContractArtistApproval(
121
+ address _contract,
122
+ address _caller
123
+ ) public view returns (bool) {
124
+ return
125
+ contractArtistApprovals[hashArtistApprovalKey(_contract, _caller)];
126
+ }
127
+
128
+ /**
129
+ * @notice Toggles ability for caller to call specific function on a contract
130
+ * @param _contract The contract address.
131
+ * @param _selector The function selector.
132
+ * @param _caller The caller address.
133
+ * @dev this function is gated to only allwed addressed.
134
+ */
135
+ function toggleContractSelectorApproval(
136
+ address _contract,
137
+ bytes4 _selector,
138
+ address _caller
139
+ ) external {
140
+ require(
141
+ allowed(
142
+ msg.sender,
143
+ address(this),
144
+ this.toggleContractSelectorApproval.selector
145
+ ),
146
+ "Only allowed caller"
147
+ );
148
+
149
+ bytes32 approvalHash = hashSelectorApprovalKey(
150
+ _contract,
151
+ _selector,
152
+ _caller
153
+ );
154
+ contractSelectorApprovals[approvalHash] = !contractSelectorApprovals[
155
+ approvalHash
156
+ ];
157
+ emit ContractSelectorApprovalUpdated(
158
+ _contract,
159
+ _selector,
160
+ _caller,
161
+ contractSelectorApprovals[approvalHash]
162
+ );
163
+ }
164
+
165
+ /**
166
+ * @notice Toggles verification for artists to call functions relating to their projects
167
+ * on a contract
168
+ * @param _contract The contract address.
169
+ * @param _caller The caller address.
170
+ * @dev this function is gated to only allwed addressed.
171
+ */
172
+ function toggleContractArtistApproval(
173
+ address _contract,
174
+ address _caller
175
+ ) external {
176
+ require(
177
+ allowed(
178
+ msg.sender,
179
+ address(this),
180
+ this.toggleContractArtistApproval.selector
181
+ ),
182
+ "Only allowed caller"
183
+ );
184
+
185
+ bytes32 approvalHash = hashArtistApprovalKey(_contract, _caller);
186
+ contractArtistApprovals[approvalHash] = !contractArtistApprovals[
187
+ approvalHash
188
+ ];
189
+ emit ContractArtistApprovalUpdated(
190
+ _contract,
191
+ _caller,
192
+ contractArtistApprovals[approvalHash]
193
+ );
194
+ }
195
+
196
+ /**
197
+ * @notice Checks if sender `_sender` is allowed to call function with method
198
+ * `_selector` on `_contract`. Returns true if sender is superAdmin.
199
+ * @param _sender The sender address.
200
+ * @param _contract The contract address.
201
+ * @param _selector The function selector.
202
+ * @return isApproved The approval status.
203
+ * @dev this function is public insteaad of internal so that the right to toggle approvals
204
+ * can also be delegated
205
+ */
206
+ function allowed(
207
+ address _sender,
208
+ address _contract,
209
+ bytes4 _selector
210
+ ) public view returns (bool) {
211
+ return
212
+ superAdmin == _sender ||
213
+ getContractSelectorApproval(_contract, _selector, _sender);
214
+ }
215
+
216
+ /**
217
+ * @notice Checks if sender `_sender` is allowed to call function (or functions) for projects
218
+ * `projectId` with method `_selector` on `_contract`. Returns true if sender is superAdmin.
219
+ * @param _sender The sender address.
220
+ * @param _contract The contract address.
221
+ * @param _selector The function selector.
222
+ * @param _projectId The project ID.
223
+ * @return isApproved The approval status.
224
+ * @dev this function is public insteaad of internal so that the right to toggle approvals
225
+ * can also be delegated
226
+ */
227
+ function allowed(
228
+ address _sender,
229
+ address _contract,
230
+ bytes4 _selector,
231
+ uint256 _projectId
232
+ ) external view returns (bool) {
233
+ IGenArt721CoreContractV3_Base coreV3 = IGenArt721CoreContractV3_Base(
234
+ _contract
235
+ );
236
+ return
237
+ allowed(_sender, _contract, _selector) ||
238
+ (getContractArtistApproval(_contract, _sender) &&
239
+ coreV3.projectIdToArtistAddress(_projectId) == _sender);
240
+ }
241
+
242
+ /**
243
+ * @notice Hash the contract address, selector, and caller address.
244
+ * @param _contract The contract address.
245
+ * @param _selector The function selector.
246
+ * @param _caller The caller address.
247
+ * @return hash The hash.
248
+ */
249
+ function hashSelectorApprovalKey(
250
+ address _contract,
251
+ bytes4 _selector,
252
+ address _caller
253
+ ) public pure returns (bytes32) {
254
+ return keccak256(abi.encodePacked(_contract, _selector, _caller));
255
+ }
256
+
257
+ /**
258
+ * @notice Hash the contract address and artist address.
259
+ * @param _contract The contract address.
260
+ * @param _caller The artist address.
261
+ * @return hash The hash.
262
+ */
263
+ function hashArtistApprovalKey(
264
+ address _contract,
265
+ address _caller
266
+ ) public pure returns (bytes32) {
267
+ return keccak256(abi.encodePacked(_contract, _caller));
268
+ }
269
+
270
+ /**
271
+ * @inheritdoc ERC165
272
+ */
273
+ function supportsInterface(
274
+ bytes4 interfaceId
275
+ ) public view virtual override(ERC165) returns (bool) {
276
+ return
277
+ interfaceId == type(IAdminACLV0_PROHIBITION).interfaceId ||
278
+ interfaceId == type(IAdminACLV0).interfaceId ||
279
+ super.supportsInterface(interfaceId);
280
+ }
281
+ }