@artblocks/contracts 1.1.0 → 1.2.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 (257) hide show
  1. package/README.md +75 -7
  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 +273 -155
  5. package/artifacts/contracts/archive/GenArt721CoreV3.sol/GenArt721CoreV3.json +2047 -0
  6. package/artifacts/contracts/archive/GenArt721CoreV3_Explorations.sol/GenArt721CoreV3_Explorations.json +2021 -0
  7. package/artifacts/contracts/{minter-suite → archive/minter-suite}/Minters/MinterBase_v0_1_1.sol/MinterBase.json +1 -1
  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/{minter-suite/Minters → archive/minter-suite/Minters/MinterDAExp}/MinterDAExpV4.sol/MinterDAExpV4.json +3 -3
  11. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol/MinterDAExpSettlementV0.json +2 -2
  12. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV1.sol/MinterDAExpSettlementV1.json +2 -2
  13. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterDAExpSettlement}/MinterDAExpSettlementV2.sol/MinterDAExpSettlementV2.json +3 -3
  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/{minter-suite/Minters → archive/minter-suite/Minters/MinterDALin}/MinterDALinV4.sol/MinterDALinV4.json +3 -3
  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/{minter-suite/Minters → archive/minter-suite/Minters/MinterHolder}/MinterHolderV4.sol/MinterHolderV4.json +3 -3
  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/{minter-suite/Minters → archive/minter-suite/Minters/MinterMerkle}/MinterMerkleV5.sol/MinterMerkleV5.json +3 -3
  26. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterPolyptych}/MinterPolyptychV0.sol/IGenArt721CoreContractV3WithRandomizer.json +31 -63
  27. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterPolyptych}/MinterPolyptychV0.sol/MinterPolyptychV0.json +3 -3
  28. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterSEA}/MinterSEAV0.sol/MinterSEAV0.json +3 -3
  29. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV2.sol/MinterSetPriceV2.json +2 -2
  30. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV3.sol/MinterSetPriceV3.json +2 -2
  31. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterSetPrice}/MinterSetPriceV4.sol/MinterSetPriceV4.json +3 -3
  32. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V0.sol/MinterSetPriceERC20V0.json +65 -2
  33. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V1.sol/MinterSetPriceERC20V1.json +65 -2
  34. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V2.sol/MinterSetPriceERC20V2.json +2 -2
  35. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V3.sol/MinterSetPriceERC20V3.json +2 -2
  36. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V4.sol/MinterSetPriceERC20V4.json +807 -0
  37. package/artifacts/contracts/engine/V2/GenArt721MinterBurner_PBAB.sol/GenArt721MinterBurner_PBAB.json +65 -2
  38. package/artifacts/contracts/engine/V2/GenArt721Minter_PBAB.sol/GenArt721Minter_PBAB.json +65 -2
  39. package/artifacts/contracts/engine/V3/EngineFactoryV0.sol/EngineFactoryV0.json +606 -0
  40. package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine.sol/GenArt721CoreV3_Engine.json +567 -206
  41. package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol/GenArt721CoreV3_Engine_Flex.json +787 -224
  42. package/artifacts/contracts/engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol/GenArt721CoreV3_Engine_Flex_PROOF.json +38 -8
  43. package/artifacts/contracts/engine/V3/forks/PROHIBITION/AdminACLV0_PROHIBITION.sol/AdminACLV0_PROHIBITION.json +2 -2
  44. package/artifacts/contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol/GenArt721CoreV3_Engine_Flex_PROHIBITION.json +38 -8
  45. package/artifacts/contracts/engine/V3/forks/PROHIBITION/interfaces/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.sol/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.json +36 -68
  46. package/artifacts/contracts/interfaces/v0.8.x/IAdminACLV0_Extended.sol/IAdminACLV0_Extended.json +140 -0
  47. package/artifacts/contracts/interfaces/v0.8.x/IBytecodeStorageReaderV2.sol/IBytecodeStorageReaderV2.json +130 -0
  48. package/artifacts/contracts/interfaces/v0.8.x/IDependencyRegistryV0.sol/IDependencyRegistryV0.json +58 -45
  49. package/artifacts/contracts/interfaces/v0.8.x/IEngineFactoryV0.sol/IEngineFactoryV0.json +283 -0
  50. package/artifacts/contracts/interfaces/v0.8.x/IFilteredMinterDAExpSettlementV0.sol/IFilteredMinterDAExpSettlementV0.json +12 -12
  51. package/artifacts/contracts/interfaces/v0.8.x/IFilteredMinterDAExpSettlementV1.sol/IFilteredMinterDAExpSettlementV1.json +12 -12
  52. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3.sol/IGenArt721CoreContractV3.json +30 -62
  53. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Base.sol/IGenArt721CoreContractV3_Base.json +30 -62
  54. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine.sol/IGenArt721CoreContractV3_Engine.json +170 -104
  55. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex.sol/IGenArt721CoreContractV3_Engine_Flex.json +170 -104
  56. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex_PreV3p2.sol/IGenArt721CoreContractV3_Engine_Flex_PreV3p2.json +1028 -0
  57. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_PreV3p2.sol/IGenArt721CoreContractV3_Engine_PreV3p2.json +741 -0
  58. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_ProjectFinance.sol/IGenArt721CoreContractV3_ProjectFinance.json +87 -0
  59. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721Minter_PBAB.sol/IGenArt721Minter_PBAB.json +279 -0
  60. package/artifacts/contracts/interfaces/v0.8.x/IPseudorandomAtomic.sol/IPseudorandomAtomic.json +1 -1
  61. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDAExpSettlementV0.sol/ISharedMinterDAExpSettlementV0.json +18 -0
  62. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterRAMV0.sol/ISharedMinterRAMV0.json +62 -0
  63. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterRequired.sol/ISharedMinterRequired.json +37 -0
  64. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterSEAV0.sol/ISharedMinterSEAV0.json +1 -1
  65. package/artifacts/contracts/interfaces/v0.8.x/ISplitAtomicFactoryV0.sol/ISplitAtomicFactoryV0.json +170 -0
  66. package/artifacts/contracts/interfaces/v0.8.x/ISplitAtomicV0.sol/ISplitAtomicV0.json +126 -0
  67. package/artifacts/contracts/interfaces/v0.8.x/ISplitProviderV0.sol/ISplitProviderV0.json +98 -0
  68. package/artifacts/contracts/interfaces/v0.8.x/integration-refs/splits-0x-v2/ISplitFactoryV2.sol/ISplitFactoryV2.json +123 -0
  69. package/artifacts/contracts/libs/integration-refs/delegation-registry/DelegationRegistry.sol/DelegationRegistry.json +2 -2
  70. package/artifacts/contracts/libs/integration-refs/gnosis-safe/GnosisSafeMock.sol/GnosisSafeMock.json +2 -2
  71. package/artifacts/contracts/libs/integration-refs/gnosis-safe/GnosisSafeProxyFactoryMock.sol/GnosisSafeProxyFactoryMock.json +2 -2
  72. package/artifacts/contracts/libs/integration-refs/gnosis-safe/MultiSendMock.sol/MultiSendMock.json +2 -2
  73. package/artifacts/contracts/libs/integration-refs/weth9/weth9.sol/WETH9_.json +2 -2
  74. package/artifacts/contracts/libs/v0.8.x/ABHelpers.sol/ABHelpers.json +2 -2
  75. package/artifacts/contracts/libs/v0.8.x/AuthLib.sol/AuthLib.json +2 -2
  76. package/artifacts/contracts/libs/v0.8.x/BitMap.sol/BitMaps256.json +10 -0
  77. package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV0.sol/BytecodeStorage.json +2 -2
  78. package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV1.sol/BytecodeStorageReader.json +2 -2
  79. package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV1.sol/BytecodeStorageWriter.json +2 -2
  80. package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV2.sol/BytecodeStorageReader.json +214 -0
  81. package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV2.sol/BytecodeStorageWriter.json +10 -0
  82. package/artifacts/contracts/libs/v0.8.x/Bytes32Strings.sol/Bytes32Strings.json +2 -2
  83. package/artifacts/contracts/libs/v0.8.x/DependencyRegistryStorageLib.sol/DependencyRegistryStorageLib.json +10 -0
  84. package/artifacts/contracts/libs/v0.8.x/ERC721_PackedHashSeed.sol/ERC721_PackedHashSeed.json +2 -2
  85. package/artifacts/contracts/libs/v0.8.x/ERC721_PackedHashSeedV1.sol/ERC721_PackedHashSeedV1.json +444 -0
  86. package/artifacts/contracts/libs/v0.8.x/PackedBools.sol/PackedBools.json +10 -0
  87. package/artifacts/contracts/libs/v0.8.x/SSTORE2.sol/SSTORE2.json +2 -2
  88. package/artifacts/contracts/libs/v0.8.x/V3FlexLib.sol/V3FlexLib.json +208 -0
  89. package/artifacts/contracts/libs/v0.8.x/minter-libs/DAExpLib.sol/DAExpLib.json +2 -2
  90. package/artifacts/contracts/libs/v0.8.x/minter-libs/DALib.sol/DALib.json +2 -2
  91. package/artifacts/contracts/libs/v0.8.x/minter-libs/DALinLib.sol/DALinLib.json +2 -2
  92. package/artifacts/contracts/libs/v0.8.x/minter-libs/GenericMinterEventsLib.sol/GenericMinterEventsLib.json +2 -2
  93. package/artifacts/contracts/libs/v0.8.x/minter-libs/MaxInvocationsLib.sol/MaxInvocationsLib.json +2 -2
  94. package/artifacts/contracts/libs/v0.8.x/minter-libs/MerkleLib.sol/MerkleLib.json +2 -2
  95. package/artifacts/contracts/libs/v0.8.x/minter-libs/PolyptychLib.sol/PolyptychLib.json +2 -2
  96. package/artifacts/contracts/libs/v0.8.x/minter-libs/RAMLib.sol/RAMLib.json +398 -0
  97. package/artifacts/contracts/libs/v0.8.x/minter-libs/SEALib.sol/SEALib.json +2 -2
  98. package/artifacts/contracts/libs/v0.8.x/minter-libs/SetPriceLib.sol/SetPriceLib.json +2 -2
  99. package/artifacts/contracts/libs/v0.8.x/minter-libs/SettlementExpLib.sol/SettlementExpLib.json +2 -2
  100. package/artifacts/contracts/libs/v0.8.x/minter-libs/SplitFundsLib.sol/SplitFundsLib.json +2 -2
  101. package/artifacts/contracts/libs/v0.8.x/minter-libs/TokenHolderLib.sol/TokenHolderLib.json +2 -2
  102. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV1.sol/MinterFilterV1.json +2 -2
  103. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV2.sol/MinterFilterV2.json +2 -2
  104. package/artifacts/contracts/minter-suite/Minters/MinterDAExpHolderV5.sol/MinterDAExpHolderV5.json +2 -2
  105. package/artifacts/contracts/minter-suite/Minters/MinterDAExpSettlementV3.sol/MinterDAExpSettlementV3.json +2 -2
  106. package/artifacts/contracts/minter-suite/Minters/MinterDAExpV5.sol/MinterDAExpV5.json +2 -2
  107. package/artifacts/contracts/minter-suite/Minters/MinterDALinHolderV5.sol/MinterDALinHolderV5.json +2 -2
  108. package/artifacts/contracts/minter-suite/Minters/MinterDALinV5.sol/MinterDALinV5.json +2 -2
  109. package/artifacts/contracts/minter-suite/Minters/MinterRAMV0.sol/MinterRAMV0.json +1374 -0
  110. package/artifacts/contracts/minter-suite/Minters/MinterSEAV1.sol/MinterSEAV1.json +7 -7
  111. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20V5.sol/MinterSetPriceERC20V5.json +2 -2
  112. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceHolderV5.sol/MinterSetPriceHolderV5.json +2 -2
  113. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceMerkleV5.sol/MinterSetPriceMerkleV5.json +2 -2
  114. package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychERC20V5.sol/MinterSetPricePolyptychERC20V5.json +2 -2
  115. package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychV5.sol/MinterSetPricePolyptychV5.json +2 -2
  116. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceV5.sol/MinterSetPriceV5.json +2 -2
  117. package/artifacts/contracts/minter-suite/Minters/one-off/MinterSetPriceV5_SingleCore.sol/MinterSetPriceV5_SingleCore.json +417 -0
  118. package/artifacts/contracts/mock/BytecodeV2LibCallsMock.sol/BytecodeV2LibCallsMock.json +154 -0
  119. package/artifacts/contracts/mock/BytecodeV2TextCR_DMock.sol/BytecodeV2TextCR_DMock.json +428 -0
  120. package/artifacts/contracts/mock/DummySharedMinter.sol/DummySharedMinter.json +2 -2
  121. package/artifacts/contracts/mock/ERC20Mock.sol/ERC20Mock.json +2 -2
  122. package/artifacts/contracts/mock/ForceSendMock.sol/ForceSendMock.json +24 -0
  123. package/artifacts/contracts/mock/GenArt721CoreV3_Engine_IncorrectCoreType.sol/GenArt721CoreV3_Engine_IncorrectCoreType.json +2 -2
  124. package/artifacts/contracts/mock/Mock0xSplitsV2PullFactory.sol/Mock0xSplitsV2PullFactory.json +149 -0
  125. package/artifacts/contracts/mock/Mock0xSplitsV2Splitter.sol/Mock0xSplitsV2Splitter.json +99 -0
  126. package/artifacts/contracts/mock/MockAdminACLV0.sol/MockAdminACLV0Events.json +20 -2
  127. package/artifacts/contracts/mock/MockAdminACLV0_PROHIBITION.sol/MockAdminACLV0Events_PROHIBITION.json +20 -2
  128. package/artifacts/contracts/mock/RandomizerV2_NoAssignMock.sol/RandomizerV2_NoAssignMock.json +2 -2
  129. package/artifacts/contracts/mock/ReentrancyGenArt721MinterMock.sol/ReentrancyGenArt721MinterMock.json +100 -0
  130. package/artifacts/contracts/mock/ReentrancyHolderMock.sol/ReentrancyHolderMock.json +2 -2
  131. package/artifacts/contracts/mock/ReentrancyHolderMockShared.sol/ReentrancyHolderMockShared.json +2 -2
  132. package/artifacts/contracts/mock/ReentrancyMerkleMock.sol/ReentrancyMerkleMock.json +2 -2
  133. package/artifacts/contracts/mock/ReentrancyMerkleMockShared.sol/ReentrancyMerkleMockShared.json +2 -2
  134. package/artifacts/contracts/mock/ReentrancyMock.sol/ReentrancyMock.json +2 -2
  135. package/artifacts/contracts/mock/ReentrancyMockShared.sol/ReentrancyMockShared.json +2 -2
  136. package/artifacts/contracts/mock/ReentrancySEAMock.sol/ReentrancySEAAutoBidderMock.json +2 -2
  137. package/artifacts/contracts/mock/ReentrancySEAMockShared.sol/ReentrancySEAAutoBidderMockShared.json +2 -2
  138. package/artifacts/contracts/mock/ReentrancySplitterMocks.sol/ReentrancySplitterDrainETHMock.json +54 -0
  139. package/artifacts/contracts/mock/ReentrancySplitterMocks.sol/ReentrancySplitterSendETHMock.json +54 -0
  140. package/artifacts/contracts/randomizer/deprecated/PolyptychRandomizerV0.sol/BasicPolyptychRandomizerV0.json +2 -2
  141. package/artifacts/contracts/randomizer/deprecated/RandomizerV2.sol/BasicRandomizerV2.json +2 -2
  142. package/artifacts/contracts/randomizer/primitive/PseudorandomAtomicBasic.sol/PseudorandomAtomic.json +2 -2
  143. package/artifacts/contracts/randomizer/shared/SharedRandomizerV0.sol/SharedRandomizerV0.json +2 -2
  144. package/artifacts/contracts/split/SplitAtomicFactoryV0.sol/SplitAtomicFactoryV0.json +203 -0
  145. package/artifacts/contracts/split/SplitAtomicV0.sol/SplitAtomicV0.json +168 -0
  146. package/artifacts/contracts/split/split-provider/SplitProviderV0.sol/SplitProviderV0.json +141 -0
  147. package/contracts/AdminACLV0.sol +6 -2
  148. package/contracts/AdminACLV1.sol +2 -2
  149. package/contracts/DependencyRegistryV0.sol +687 -408
  150. package/contracts/{GenArt721CoreV3.sol → archive/GenArt721CoreV3.sol} +56 -20
  151. package/contracts/{explorations → archive}/GenArt721CoreV3_Explorations.sol +49 -13
  152. package/contracts/{minter-suite → archive/minter-suite}/Minters/MinterBase_v0_1_1.sol +4 -4
  153. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterDAExp}/MinterDAExpV4.sol +4 -4
  154. package/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol +4 -4
  155. package/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV1.sol +5 -5
  156. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterDAExpSettlement}/MinterDAExpSettlementV2.sol +8 -8
  157. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterDALin}/MinterDALinV4.sol +4 -4
  158. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterHolder}/MinterHolderV4.sol +5 -5
  159. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterMerkle}/MinterMerkleV5.sol +5 -5
  160. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterPolyptych}/MinterPolyptychV0.sol +7 -7
  161. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterSEA}/MinterSEAV0.sol +13 -13
  162. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterSetPrice}/MinterSetPriceV4.sol +4 -4
  163. package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V0.sol +82 -10
  164. package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V1.sol +82 -10
  165. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterSetPriceERC20}/MinterSetPriceERC20V4.sol +88 -21
  166. package/contracts/engine/V2/GenArt721MinterBurner_PBAB.sol +81 -22
  167. package/contracts/engine/V2/GenArt721Minter_PBAB.sol +80 -22
  168. package/contracts/engine/V3/EngineFactoryV0.sol +419 -0
  169. package/contracts/engine/V3/GenArt721CoreV3_Engine.sol +894 -488
  170. package/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol +1054 -650
  171. package/contracts/engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol +3 -3
  172. package/contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol +1 -1
  173. package/contracts/engine/V3/forks/PROHIBITION/interfaces/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.sol +2 -2
  174. package/contracts/interfaces/v0.8.x/IAdminACLV0_Extended.sol +20 -0
  175. package/contracts/interfaces/v0.8.x/IBytecodeStorageReaderV2.sol +23 -0
  176. package/contracts/interfaces/v0.8.x/IDependencyRegistryV0.sol +47 -45
  177. package/contracts/interfaces/v0.8.x/IEngineFactoryV0.sol +124 -0
  178. package/contracts/interfaces/v0.8.x/IFilteredMinterDAExpSettlementV0.sol +1 -3
  179. package/contracts/interfaces/v0.8.x/IFilteredMinterDAExpSettlementV1.sol +1 -3
  180. package/contracts/interfaces/v0.8.x/IFilteredMinterDAExpV1.sol +1 -3
  181. package/contracts/interfaces/v0.8.x/IFilteredMinterDALinV1.sol +1 -3
  182. package/contracts/interfaces/v0.8.x/IFilteredMinterHolderV2.sol +1 -3
  183. package/contracts/interfaces/v0.8.x/IFilteredMinterMerkleV2.sol +1 -3
  184. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Base.sol +115 -11
  185. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine.sol +84 -8
  186. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex.sol +26 -8
  187. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex_PreV3p2.sol +141 -0
  188. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_PreV3p2.sol +78 -0
  189. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_ProjectFinance.sol +47 -0
  190. package/contracts/interfaces/v0.8.x/IGenArt721Minter_PBAB.sol +91 -0
  191. package/contracts/interfaces/v0.8.x/IPseudorandomAtomic.sol +1 -3
  192. package/contracts/interfaces/v0.8.x/ISharedMinterDAExpSettlementV0.sol +19 -0
  193. package/contracts/interfaces/v0.8.x/ISharedMinterRAMV0.sol +23 -0
  194. package/contracts/interfaces/v0.8.x/ISharedMinterRequired.sol +20 -0
  195. package/contracts/interfaces/v0.8.x/ISharedMinterSEAV0.sol +1 -4
  196. package/contracts/interfaces/v0.8.x/ISharedMinterV0.sol +12 -6
  197. package/contracts/interfaces/v0.8.x/ISplitAtomicFactoryV0.sol +81 -0
  198. package/contracts/interfaces/v0.8.x/ISplitAtomicV0.sol +72 -0
  199. package/contracts/interfaces/v0.8.x/ISplitProviderV0.sol +49 -0
  200. package/contracts/interfaces/v0.8.x/integration-refs/splits-0x-v2/ISplitFactoryV2.sol +62 -0
  201. package/contracts/libs/v0.8.x/ABHelpers.sol +18 -4
  202. package/contracts/libs/v0.8.x/BitMap.sol +112 -0
  203. package/contracts/libs/v0.8.x/BytecodeStorageV2.sol +593 -0
  204. package/contracts/libs/v0.8.x/DependencyRegistryStorageLib.sol +90 -0
  205. package/contracts/libs/v0.8.x/ERC721_PackedHashSeedV1.sol +591 -0
  206. package/contracts/libs/v0.8.x/PackedBools.sol +42 -0
  207. package/contracts/libs/v0.8.x/V3FlexLib.sol +591 -0
  208. package/contracts/libs/v0.8.x/minter-libs/DAExpLib.sol +10 -12
  209. package/contracts/libs/v0.8.x/minter-libs/DALinLib.sol +4 -9
  210. package/contracts/libs/v0.8.x/minter-libs/GenericMinterEventsLib.sol +44 -44
  211. package/contracts/libs/v0.8.x/minter-libs/MaxInvocationsLib.sol +64 -63
  212. package/contracts/libs/v0.8.x/minter-libs/MerkleLib.sol +14 -10
  213. package/contracts/libs/v0.8.x/minter-libs/RAMLib.sol +2927 -0
  214. package/contracts/libs/v0.8.x/minter-libs/SEALib.sol +60 -62
  215. package/contracts/libs/v0.8.x/minter-libs/SetPriceLib.sol +4 -8
  216. package/contracts/libs/v0.8.x/minter-libs/SettlementExpLib.sol +92 -89
  217. package/contracts/libs/v0.8.x/minter-libs/SplitFundsLib.sol +21 -15
  218. package/contracts/libs/v0.8.x/minter-libs/TokenHolderLib.sol +5 -4
  219. package/contracts/minter-suite/MinterFilter/MinterFilterV2.sol +16 -10
  220. package/contracts/minter-suite/Minters/MinterDAExpHolderV5.sol +2 -2
  221. package/contracts/minter-suite/Minters/MinterDAExpSettlementV3.sol +19 -15
  222. package/contracts/minter-suite/Minters/MinterDAExpV5.sol +2 -2
  223. package/contracts/minter-suite/Minters/MinterDALinHolderV5.sol +2 -2
  224. package/contracts/minter-suite/Minters/MinterDALinV5.sol +2 -2
  225. package/contracts/minter-suite/Minters/MinterRAMV0.sol +1205 -0
  226. package/contracts/minter-suite/Minters/MinterSEAV1.sol +21 -32
  227. package/contracts/minter-suite/Minters/MinterSetPriceERC20V5.sol +17 -8
  228. package/contracts/minter-suite/Minters/MinterSetPriceHolderV5.sol +2 -2
  229. package/contracts/minter-suite/Minters/MinterSetPriceMerkleV5.sol +2 -2
  230. package/contracts/minter-suite/Minters/MinterSetPricePolyptychERC20V5.sol +23 -9
  231. package/contracts/minter-suite/Minters/MinterSetPricePolyptychV5.sol +2 -2
  232. package/contracts/minter-suite/Minters/MinterSetPriceV5.sol +2 -2
  233. package/contracts/minter-suite/Minters/one-off/MinterSetPriceV5_SingleCore.sol +446 -0
  234. package/contracts/mock/BytecodeV2LibCallsMock.sol +128 -0
  235. package/contracts/mock/BytecodeV2TextCR_DMock.sol +316 -0
  236. package/contracts/mock/ForceSendMock.sol +22 -0
  237. package/contracts/mock/Mock0xSplitsV2PullFactory.sol +75 -0
  238. package/contracts/mock/Mock0xSplitsV2Splitter.sol +47 -0
  239. package/contracts/mock/MockAdminACLV0.sol +21 -0
  240. package/contracts/mock/MockAdminACLV0_PROHIBITION.sol +21 -0
  241. package/contracts/mock/ReentrancyGenArt721MinterMock.sol +47 -0
  242. package/contracts/mock/ReentrancySplitterMocks.sol +67 -0
  243. package/contracts/randomizer/primitive/PseudorandomAtomicBasic.sol +1 -1
  244. package/contracts/randomizer/shared/SharedRandomizerV0.sol +1 -1
  245. package/contracts/split/SplitAtomicFactoryV0.sol +121 -0
  246. package/contracts/split/SplitAtomicV0.sol +265 -0
  247. package/contracts/split/split-provider/SplitProviderV0.sol +201 -0
  248. package/package.json +62 -34
  249. package/artifacts/contracts/GenArt721CoreV3.sol/GenArt721CoreV3.json +0 -1965
  250. package/artifacts/contracts/explorations/GenArt721CoreV3_Explorations.sol/GenArt721CoreV3_Explorations.json +0 -1939
  251. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20V4.sol/MinterSetPriceERC20V4.json +0 -768
  252. package/artifacts/contracts/royalty-registry/GenArt721RoyaltyOverride.sol/GenArt721RoyaltyOverride.json +0 -208
  253. package/artifacts/contracts/royalty-registry/GenArt721RoyaltyOverride_PBAB.sol/GenArt721RoyaltyOverride_PBAB.json +0 -301
  254. package/contracts/archive/readme.md +0 -16
  255. package/contracts/engine/README.md +0 -21
  256. package/contracts/royalty-registry/GenArt721RoyaltyOverride.sol +0 -168
  257. package/contracts/royalty-registry/GenArt721RoyaltyOverride_PBAB.sol +0 -221
@@ -5,7 +5,7 @@ pragma solidity 0.8.19;
5
5
 
6
6
  import "../../../interfaces/v0.8.x/IRandomizerV2.sol";
7
7
  import "../../../interfaces/v0.8.x/IAdminACLV0.sol";
8
- import "../../../interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex.sol";
8
+ import "../../../interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex_PreV3p2.sol";
9
9
  import "../../../interfaces/v0.8.x/IDependencyRegistryCompatibleV0.sol";
10
10
  import "../../../interfaces/v0.8.x/IManifold.sol";
11
11
 
@@ -43,7 +43,7 @@ import "../../../libs/v0.8.x/Bytes32Strings.sol";
43
43
  * - updateIPFSGateway
44
44
  * - updateArweaveGateway
45
45
  * ----------------------------------------------------------------------------
46
- * The following functions are restricted to either the the Artist address or
46
+ * The following functions are restricted to either the Artist address or
47
47
  * the Admin ACL contract, only when the project is not locked:
48
48
  * - updateProjectName
49
49
  * - updateProjectArtistName
@@ -104,7 +104,7 @@ contract GenArt721CoreV3_Engine_Flex_PROOF is
104
104
  Ownable,
105
105
  IDependencyRegistryCompatibleV0,
106
106
  IManifold,
107
- IGenArt721CoreContractV3_Engine_Flex
107
+ IGenArt721CoreContractV3_Engine_Flex_PreV3p2
108
108
  {
109
109
  using BytecodeStorageWriter for string;
110
110
  using Bytes32Strings for bytes32;
@@ -44,7 +44,7 @@ import "../../../../libs/v0.8.x/Bytes32Strings.sol";
44
44
  * - updateIPFSGateway
45
45
  * - updateArweaveGateway
46
46
  * ----------------------------------------------------------------------------
47
- * The following functions are restricted to either the the Artist address or
47
+ * The following functions are restricted to either the Artist address or
48
48
  * the Admin ACL contract, only when the project is not locked:
49
49
  * - updateProjectName
50
50
  * - updateProjectArtistName
@@ -4,7 +4,7 @@
4
4
  pragma solidity ^0.8.0;
5
5
 
6
6
  import "./IAdminACLV0_PROHIBITION.sol";
7
- import "../../../../../interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex.sol";
7
+ import "../../../../../interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex_PreV3p2.sol";
8
8
 
9
9
  /**
10
10
  * @title This interface is intended to house interface items that are common
@@ -12,7 +12,7 @@ import "../../../../../interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex.so
12
12
  * @author Art Blocks Inc.
13
13
  */
14
14
  interface IGenArt721CoreContractV3_Engine_Flex_PROHIBITION is
15
- IGenArt721CoreContractV3_Engine_Flex
15
+ IGenArt721CoreContractV3_Engine_Flex_PreV3p2
16
16
  {
17
17
  /**
18
18
  * Function determining if _sender is allowed to call function with
@@ -0,0 +1,20 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Created By: Art Blocks Inc.
3
+
4
+ pragma solidity ^0.8.0;
5
+
6
+ import "./IAdminACLV0.sol";
7
+
8
+ interface IAdminACLV0_Extended is IAdminACLV0 {
9
+ /**
10
+ * @notice Allows superAdmin change the superAdmin address.
11
+ * @param _newSuperAdmin The new superAdmin address.
12
+ * @param _genArt721CoreAddressesToUpdate Array of genArt721Core
13
+ * addresses to update to the new superAdmin, for indexing purposes only.
14
+ * @dev this function is gated to only superAdmin address.
15
+ */
16
+ function changeSuperAdmin(
17
+ address _newSuperAdmin,
18
+ address[] calldata _genArt721CoreAddressesToUpdate
19
+ ) external;
20
+ }
@@ -0,0 +1,23 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Creatd By: Art Blocks Inc.
3
+
4
+ pragma solidity ^0.8.0;
5
+
6
+ import {IBytecodeStorageReader} from "./IBytecodeStorageReader.sol";
7
+
8
+ /**
9
+ * @title Art Blocks Script Storage Library (Reader)
10
+ * @notice This interface defines the expected read functions for the Art Blocks Script Storage Library (Reader).
11
+ * @dev This interface extends the V1 interface to add a function to get if data are stored in compressed format,
12
+ * which is functionality added in the V2 format of the bytecode storage.
13
+ */
14
+ interface IBytecodeStorageReaderV2 is IBytecodeStorageReader {
15
+ /**
16
+ * @notice Get if data are stored in compressed format for given contract bytecode
17
+ * @param _address address of deployed contract with bytecode stored in the V0, V1, or V2 format
18
+ * @return isCompressed boolean indicating if the stored data are compressed
19
+ */
20
+ function getIsCompressedForBytecode(
21
+ address _address
22
+ ) external view returns (bool);
23
+ }
@@ -3,96 +3,98 @@
3
3
  pragma solidity ^0.8.19;
4
4
 
5
5
  interface IDependencyRegistryV0 {
6
- event SupportedCoreContractAdded(address indexed _coreContractAddress);
6
+ event SupportedCoreContractAdded(address indexed coreContractAddress);
7
7
 
8
- event SupportedCoreContractRemoved(address indexed _coreContractAddress);
8
+ event SupportedCoreContractRemoved(address indexed coreContractAddress);
9
9
 
10
- event ProjectDependencyTypeOverrideAdded(
11
- address indexed _coreContractAddress,
12
- uint256 indexed _projectId,
13
- bytes32 _dependencyType
10
+ event ProjectDependencyOverrideAdded(
11
+ address indexed coreContractAddress,
12
+ uint256 indexed projectId,
13
+ bytes32 dependencyNameAndVersion
14
14
  );
15
15
 
16
- event ProjectDependencyTypeOverrideRemoved(
17
- address indexed _coreContractAddress,
18
- uint256 indexed _projectId
16
+ event ProjectDependencyOverrideRemoved(
17
+ address indexed coreContractAddress,
18
+ uint256 indexed projectId
19
19
  );
20
20
 
21
- event LicenseTypeAdded(bytes32 indexed _licenseType);
21
+ event LicenseTypeAdded(bytes32 indexed licenseType);
22
+
23
+ event LicenseTextUpdated(bytes32 indexed licenseType);
22
24
 
23
25
  event DependencyAdded(
24
- bytes32 indexed _dependencyType,
25
- bytes32 indexed _licenseType,
26
- string _preferredCDN,
27
- string _preferredRepository,
28
- string _referenceWebsite
26
+ bytes32 indexed dependencyNameAndVersion,
27
+ bytes32 indexed licenseType,
28
+ string preferredCDN,
29
+ string preferredRepository,
30
+ string website
29
31
  );
30
32
 
31
- event DependencyRemoved(bytes32 indexed _dependencyType);
33
+ event DependencyRemoved(bytes32 indexed dependencyNameAndVersion);
32
34
 
33
- event DependencyReferenceWebsiteUpdated(
34
- bytes32 indexed _dependencyType,
35
- string _referenceWebsite
35
+ event DependencyWebsiteUpdated(
36
+ bytes32 indexed dependencyNameAndVersion,
37
+ string website
36
38
  );
37
39
 
38
40
  event DependencyPreferredCDNUpdated(
39
- bytes32 indexed _dependencyType,
40
- string _preferredCDN
41
+ bytes32 indexed dependencyNameAndVersion,
42
+ string preferredCDN
41
43
  );
42
44
 
43
45
  event DependencyPreferredRepositoryUpdated(
44
- bytes32 indexed _dependencyType,
45
- string _preferredRepository
46
+ bytes32 indexed dependencyNameAndVersion,
47
+ string preferredRepository
46
48
  );
47
49
 
48
50
  event DependencyAdditionalCDNUpdated(
49
- bytes32 indexed _dependencyType,
50
- string _additionalCDN,
51
- uint256 _additionalCDNIndex
51
+ bytes32 indexed dependencyNameAndVersion,
52
+ string additionalCDN,
53
+ uint256 additionalCDNIndex
52
54
  );
53
55
 
54
56
  event DependencyAdditionalCDNRemoved(
55
- bytes32 indexed _dependencyType,
56
- uint256 indexed _additionalCDNIndex
57
+ bytes32 indexed dependencyNameAndVersion,
58
+ uint256 indexed additionalCDNIndex
57
59
  );
58
60
 
59
61
  event DependencyAdditionalRepositoryUpdated(
60
- bytes32 indexed _dependencyType,
61
- string _additionalRepository,
62
- uint256 _additionalRepositoryIndex
62
+ bytes32 indexed dependencyNameAndVersion,
63
+ string additionalRepository,
64
+ uint256 additionalRepositoryIndex
63
65
  );
64
66
 
65
67
  event DependencyAdditionalRepositoryRemoved(
66
- bytes32 indexed _dependencyType,
67
- uint256 indexed _additionalRepositoryIndex
68
+ bytes32 indexed dependencyNameAndVersion,
69
+ uint256 indexed additionalRepositoryIndex
68
70
  );
69
71
 
70
- event DependencyScriptUpdated(bytes32 indexed _dependencyType);
72
+ event DependencyScriptUpdated(bytes32 indexed dependencyNameAndVersion);
71
73
 
72
74
  /**
73
- * @notice Returns the count of scripts for dependency `_dependencyType`.
74
- * @param _dependencyType Dependency type to be queried.
75
+ * @notice Returns the count of scripts for dependency `dependencyNameAndVersion`.
76
+ * @param dependencyNameAndVersion Dependency type to be queried.
75
77
  */
76
78
  function getDependencyScriptCount(
77
- bytes32 _dependencyType
79
+ bytes32 dependencyNameAndVersion
78
80
  ) external view returns (uint256);
79
81
 
80
82
  /**
81
83
  * @notice Returns address with bytecode containing script for
82
- * dependency type `_dependencyTypes` at script index `_index`.
84
+ * dependency type `dependencyNameAndVersions` at script index `index`.
83
85
  */
84
86
  function getDependencyScriptBytecodeAddress(
85
- bytes32 _dependencyType,
86
- uint256 _index
87
+ bytes32 dependencyNameAndVersion,
88
+ uint256 index
87
89
  ) external view returns (address);
88
90
 
89
91
  /**
90
- * @notice Returns script for dependency type `_dependencyType` at script index `_index`.
91
- * @param _dependencyType Dependency type to be queried.
92
- * @param _index Index of script to be queried.
92
+ * @notice Returns script for dependency type `dependencyNameAndVersion` at script index `index`.
93
+ * @param dependencyNameAndVersion Dependency type to be queried.
94
+ * @param index Index of script to be queried.
93
95
  */
94
96
  function getDependencyScript(
95
- bytes32 _dependencyType,
96
- uint256 _index
97
+ bytes32 dependencyNameAndVersion,
98
+ uint256 index
97
99
  ) external view returns (string memory);
98
100
  }
@@ -0,0 +1,124 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Creatd By: Art Blocks Inc.
3
+
4
+ pragma solidity ^0.8.0;
5
+
6
+ import {EngineConfiguration} from "./IGenArt721CoreContractV3_Engine.sol";
7
+
8
+ interface IEngineFactoryV0 {
9
+ /// @notice Engine Core type
10
+ enum EngineCoreType {
11
+ Engine, // GenArt721CoreV3_Engine Contract
12
+ EngineFlex // GenArt721CoreV3_Engine_Flex Contract
13
+ }
14
+ /**
15
+ * @notice This contract was deployed.
16
+ * @param engineImplementation address with the implementation of the Engine contract
17
+ * @param engineFlexImplementation address with the implementation of the Engine Flex contract
18
+ * @param type_ type of this contract
19
+ */
20
+ event Deployed(
21
+ address indexed engineImplementation,
22
+ address indexed engineFlexImplementation,
23
+ bytes32 indexed type_
24
+ );
25
+ /**
26
+ * @notice New Engine or Engine Flex contract was created.
27
+ * @param engineContract address of the newly created Engine contract
28
+ */
29
+ event EngineContractCreated(address indexed engineContract);
30
+ /**
31
+ * @notice This contract was abandoned and no longer can be used to create
32
+ * new Engine or Engine Flex contracts.
33
+ */
34
+ event Abandoned();
35
+
36
+ /**
37
+ * @notice Creates a new Engine or Engine Flex contract with the provided
38
+ * `engineConfiguration`, depending on the `engineCoreContractType`.
39
+ * @param engineCoreContractType Type of Engine Core contract.
40
+ * @param engineConfiguration EngineConfiguration data to configure the
41
+ * contract with.
42
+ * @param adminACLContract Address of admin access control contract, to be
43
+ * set as contract owner. A new contract will be deployed if address is null.
44
+ * @param salt Salt used to deterministically deploy the clone.
45
+ * @return engineContract The address of the newly created Engine or Engine Flex
46
+ * contract. The address is also emitted in both the `EngineCreated` and
47
+ * `EngineFlexCreated` events.
48
+ */
49
+ function createEngineContract(
50
+ EngineCoreType engineCoreContractType,
51
+ EngineConfiguration calldata engineConfiguration,
52
+ address adminACLContract,
53
+ bytes32 salt
54
+ ) external returns (address engineContract);
55
+
56
+ /**
57
+ * @notice Drains the contract's balance to the `recipient`.
58
+ * @param recipient The address to send funds to.
59
+ * Only callable by the owner.
60
+ */
61
+ function drainETH(address payable recipient) external;
62
+
63
+ /**
64
+ * @notice Drains the contract's balance of an input ERC20 token to
65
+ * the `recipient`.
66
+ * @param ERC20TokenAddress The address of the ERC20 token to withdraw.
67
+ * @param recipient The address to send ERC20 tokens to.
68
+ * Only callable by the owner.
69
+ */
70
+ function drainERC20(address ERC20TokenAddress, address recipient) external;
71
+
72
+ /**
73
+ * @notice Calls transferOwnership on the core registry.
74
+ * Useful for updating the owner of the core registry contract.
75
+ * @param _owner address of the new owner
76
+ */
77
+ function transferCoreRegistryOwnership(address _owner) external;
78
+
79
+ /**
80
+ * @notice Registers multiple contracts with the core registry.
81
+ * @param contractAddresses An array of contract addresses to register.
82
+ * @param coreVersions An array of versions corresponding to the contract addresses.
83
+ * @param coreTypes An array of types corresponding to the contract addresses.
84
+ */
85
+ function registerMultipleContracts(
86
+ address[] calldata contractAddresses,
87
+ bytes32[] calldata coreVersions,
88
+ bytes32[] calldata coreTypes
89
+ ) external;
90
+
91
+ /**
92
+ * @notice Unregisters multiple contracts from the core registry.
93
+ * @param contractAddresses An array of contract addresses to unregister.
94
+ */
95
+ function unregisterMultipleContracts(
96
+ address[] calldata contractAddresses
97
+ ) external;
98
+
99
+ /**
100
+ * @notice The implementation contract that is cloned when creating new
101
+ * Engine Core contracts.
102
+ */
103
+ function engineImplementation() external view returns (address);
104
+
105
+ /**
106
+ * @notice The implementation contract that is cloned when creating new
107
+ * Engine Flex Core contracts.
108
+ */
109
+ function engineFlexImplementation() external view returns (address);
110
+
111
+ /**
112
+ * @notice Indicates whether the contract is abandoned.
113
+ * Once abandoned, the contract can no longer be used to create new Engine
114
+ * or Engine Flex contracts.
115
+ * @return bool True if the contract is abandoned, false otherwise.
116
+ */
117
+ function isAbandoned() external view returns (bool);
118
+
119
+ /**
120
+ * @notice Indicates the type of the contract, e.g. `EngineFactoryV0`.
121
+ * @return type_ The type of the contract.
122
+ */
123
+ function type_() external pure returns (bytes32);
124
+ }
@@ -16,6 +16,4 @@ interface IFilteredMinterDAExpSettlementV0 is
16
16
  IFilteredMinterDAExpSettlement_Mixin,
17
17
  IFilteredMinterV1,
18
18
  IFilteredMinterDAExpV0
19
- {
20
-
21
- }
19
+ {}
@@ -16,6 +16,4 @@ interface IFilteredMinterDAExpSettlementV1 is
16
16
  IFilteredMinterDAExpSettlement_Mixin,
17
17
  IFilteredMinterV2,
18
18
  IFilteredMinterDAExpV0
19
- {
20
-
21
- }
19
+ {}
@@ -11,6 +11,4 @@ pragma solidity ^0.8.0;
11
11
  * add support for manually setting project max invocations.
12
12
  * @author Art Blocks Inc.
13
13
  */
14
- interface IFilteredMinterDAExpV1 is IFilteredMinterDAExpV0, IFilteredMinterV2 {
15
-
16
- }
14
+ interface IFilteredMinterDAExpV1 is IFilteredMinterDAExpV0, IFilteredMinterV2 {}
@@ -11,6 +11,4 @@ pragma solidity ^0.8.0;
11
11
  * add support for manually setting project max invocations.
12
12
  * @author Art Blocks Inc.
13
13
  */
14
- interface IFilteredMinterDALinV1 is IFilteredMinterDALinV0, IFilteredMinterV2 {
15
-
16
- }
14
+ interface IFilteredMinterDALinV1 is IFilteredMinterDALinV0, IFilteredMinterV2 {}
@@ -14,6 +14,4 @@ pragma solidity ^0.8.0;
14
14
  interface IFilteredMinterHolderV2 is
15
15
  IFilteredMinterHolderV1,
16
16
  IFilteredMinterV2
17
- {
18
-
19
- }
17
+ {}
@@ -14,6 +14,4 @@ pragma solidity ^0.8.0;
14
14
  interface IFilteredMinterMerkleV2 is
15
15
  IFilteredMinterMerkleV1,
16
16
  IFilteredMinterV2
17
- {
18
-
19
- }
17
+ {}
@@ -4,8 +4,6 @@
4
4
  pragma solidity ^0.8.0;
5
5
 
6
6
  import "./IAdminACLV0.sol";
7
- /// use the Royalty Registry's IManifold interface for token royalties
8
- import "./IManifold.sol";
9
7
 
10
8
  /**
11
9
  * @title This interface is intended to house interface items that are common
@@ -14,7 +12,121 @@ import "./IManifold.sol";
14
12
  * add support the Royalty Registry by default.
15
13
  * @author Art Blocks Inc.
16
14
  */
17
- interface IGenArt721CoreContractV3_Base is IManifold {
15
+ interface IGenArt721CoreContractV3_Base {
16
+ // This interface emits generic events that contain fields that indicate
17
+ // which parameter has been updated. This is sufficient for application
18
+ // state management, while also simplifying the contract and indexing code.
19
+ // This was done as an alternative to having custom events that emit what
20
+ // field-values have changed for each event, given that changed values can
21
+ // be introspected by indexers due to the design of this smart contract
22
+ // exposing these state changes via publicly viewable fields.
23
+
24
+ /**
25
+ * @notice Project's royalty splitter was updated to `_splitter`.
26
+ * @dev New event in v3.2
27
+ * @param projectId The project ID.
28
+ * @param royaltySplitter The new splitter address to receive royalties.
29
+ */
30
+ event ProjectRoyaltySplitterUpdated(
31
+ uint256 indexed projectId,
32
+ address indexed royaltySplitter
33
+ );
34
+
35
+ // The following fields are used to indicate which contract-level parameter
36
+ // has been updated in the `PlatformUpdated` event:
37
+ // @dev only append to the end of this enum in the case of future updates
38
+ enum PlatformUpdatedFields {
39
+ FIELD_NEXT_PROJECT_ID, // 0
40
+ FIELD_NEW_PROJECTS_FORBIDDEN, // 1
41
+ FIELD_DEFAULT_BASE_URI, // 2
42
+ FIELD_RANDOMIZER_ADDRESS, // 3
43
+ FIELD_NEXT_CORE_CONTRACT, // 4
44
+ FIELD_ARTBLOCKS_DEPENDENCY_REGISTRY_ADDRESS, // 5
45
+ FIELD_ARTBLOCKS_ON_CHAIN_GENERATOR_ADDRESS, // 6
46
+ FIELD_PROVIDER_SALES_ADDRESSES, // 7
47
+ FIELD_PROVIDER_PRIMARY_SALES_PERCENTAGES, // 8
48
+ FIELD_PROVIDER_SECONDARY_SALES_BPS, // 9
49
+ FIELD_SPLIT_PROVIDER // 10
50
+ }
51
+
52
+ // The following fields are used to indicate which project-level parameter
53
+ // has been updated in the `ProjectUpdated` event:
54
+ // @dev only append to the end of this enum in the case of future updates
55
+ enum ProjectUpdatedFields {
56
+ FIELD_PROJECT_COMPLETED, // 0
57
+ FIELD_PROJECT_ACTIVE, // 1
58
+ FIELD_PROJECT_ARTIST_ADDRESS, // 2
59
+ FIELD_PROJECT_PAUSED, // 3
60
+ FIELD_PROJECT_CREATED, // 4
61
+ FIELD_PROJECT_NAME, // 5
62
+ FIELD_PROJECT_ARTIST_NAME, // 6
63
+ FIELD_PROJECT_SECONDARY_MARKET_ROYALTY_PERCENTAGE, // 7
64
+ FIELD_PROJECT_DESCRIPTION, // 8
65
+ FIELD_PROJECT_WEBSITE, // 9
66
+ FIELD_PROJECT_LICENSE, // 10
67
+ FIELD_PROJECT_MAX_INVOCATIONS, // 11
68
+ FIELD_PROJECT_SCRIPT, // 12
69
+ FIELD_PROJECT_SCRIPT_TYPE, // 13
70
+ FIELD_PROJECT_ASPECT_RATIO, // 14
71
+ FIELD_PROJECT_BASE_URI, // 15
72
+ FIELD_PROJECT_PROVIDER_SECONDARY_FINANCIALS // 16
73
+ }
74
+
75
+ /**
76
+ * @notice Error codes for the GenArt721 contract. Used by the GenArt721Error
77
+ * custom error.
78
+ * @dev only append to the end of this enum in the case of future updates
79
+ */
80
+ enum ErrorCodes {
81
+ OnlyNonZeroAddress, // 0
82
+ OnlyNonEmptyString, // 1
83
+ OnlyNonEmptyBytes, // 2
84
+ TokenDoesNotExist, // 3
85
+ ProjectDoesNotExist, // 4
86
+ OnlyUnlockedProjects, // 5
87
+ OnlyAdminACL, // 6
88
+ OnlyArtist, // 7
89
+ OnlyArtistOrAdminACL, // 8
90
+ OnlyAdminACLOrRenouncedArtist, // 9
91
+ OnlyMinterContract, // 10
92
+ MaxInvocationsReached, // 11
93
+ ProjectMustExistAndBeActive, // 12
94
+ PurchasesPaused, // 13
95
+ OnlyRandomizer, // 14
96
+ TokenHashAlreadySet, // 15
97
+ NoZeroHashSeed, // 16
98
+ OverMaxSumOfPercentages, // 17
99
+ IndexOutOfBounds, // 18
100
+ OverMaxSumOfBPS, // 19
101
+ MaxOf100Percent, // 20
102
+ PrimaryPayeeIsZeroAddress, // 21
103
+ SecondaryPayeeIsZeroAddress, // 22
104
+ MustMatchArtistProposal, // 23
105
+ NewProjectsForbidden, // 24
106
+ NewProjectsAlreadyForbidden, // 25
107
+ OnlyArtistOrAdminIfLocked, // 26
108
+ OverMaxSecondaryRoyaltyPercentage, // 27
109
+ OnlyMaxInvocationsDecrease, // 28
110
+ OnlyGteInvocations, // 29
111
+ ScriptIdOutOfRange, // 30
112
+ NoScriptsToRemove, // 31
113
+ ScriptTypeAndVersionFormat, // 32
114
+ AspectRatioTooLong, // 33
115
+ AspectRatioNoNumbers, // 34
116
+ AspectRatioImproperFormat, // 35
117
+ OnlyNullPlatformProvider, // 36
118
+ ContractInitialized // 37
119
+ }
120
+
121
+ /**
122
+ * @notice Emits an error code `_errorCode` in the GenArt721Error event.
123
+ * @dev Emitting error codes instead of error strings saves significant
124
+ * contract bytecode size, allowing for more contract functionality within
125
+ * the 24KB contract size limit.
126
+ * @param _errorCode The error code to emit. See ErrorCodes enum.
127
+ */
128
+ error GenArt721Error(ErrorCodes _errorCode);
129
+
18
130
  /**
19
131
  * @notice Token ID `_tokenId` minted to `_to`.
20
132
  */
@@ -95,14 +207,6 @@ interface IGenArt721CoreContractV3_Base is IManifold {
95
207
  uint256 _projectId
96
208
  ) external view returns (address payable);
97
209
 
98
- function projectIdToAdditionalPayeePrimarySales(
99
- uint256 _projectId
100
- ) external view returns (address payable);
101
-
102
- function projectIdToAdditionalPayeePrimarySalesPercentage(
103
- uint256 _projectId
104
- ) external view returns (uint256);
105
-
106
210
  function projectIdToSecondaryMarketRoyaltyPercentage(
107
211
  uint256 _projectId
108
212
  ) external view returns (uint256);