@artblocks/contracts 1.1.0 → 1.2.1

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 (326) hide show
  1. package/README.md +86 -34
  2. package/artifacts/contracts/AdminACLV0.sol/AdminACLV0.json +2 -2
  3. package/artifacts/contracts/AdminACLV1.sol/AdminACLV1.json +2 -2
  4. package/artifacts/contracts/BytecodeStorageReaders/BytecodeStorageReaderContractV2.sol/BytecodeStorageReaderContractV2.json +201 -0
  5. package/artifacts/contracts/BytecodeStorageReaders/UniversalBytecodeStorageReader.sol/UniversalBytecodeStorageReader.json +154 -0
  6. package/artifacts/contracts/BytecodeStorageV2Writer.sol/BytecodeStorageV2Writer.json +87 -0
  7. package/artifacts/contracts/DependencyRegistryV0.sol/DependencyRegistryV0.json +403 -155
  8. package/artifacts/contracts/GenArt721CoreV3_Curated.sol/GenArt721CoreV3_Curated.json +2493 -0
  9. package/artifacts/contracts/OwnedCreate2FactoryV0.sol/OwnedCreate2FactoryV0.json +311 -0
  10. package/artifacts/contracts/archive/GenArt721CoreV3.sol/GenArt721CoreV3.json +2060 -0
  11. package/artifacts/contracts/archive/GenArt721CoreV3_Explorations.sol/GenArt721CoreV3_Explorations.json +2034 -0
  12. package/artifacts/contracts/{minter-suite → archive/minter-suite}/Minters/MinterBase_v0_1_1.sol/MinterBase.json +1 -1
  13. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV2.sol/MinterDAExpV2.json +2 -2
  14. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV3.sol/MinterDAExpV3.json +2 -2
  15. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterDAExp}/MinterDAExpV4.sol/MinterDAExpV4.json +3 -3
  16. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol/MinterDAExpSettlementV0.json +2 -2
  17. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV1.sol/MinterDAExpSettlementV1.json +2 -2
  18. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterDAExpSettlement}/MinterDAExpSettlementV2.sol/MinterDAExpSettlementV2.json +3 -3
  19. package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV2.sol/MinterDALinV2.json +2 -2
  20. package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV3.sol/MinterDALinV3.json +2 -2
  21. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterDALin}/MinterDALinV4.sol/MinterDALinV4.json +3 -3
  22. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV1.sol/MinterHolderV1.json +2 -2
  23. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV2.sol/MinterHolderV2.json +2 -2
  24. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV3.sol/MinterHolderV3.json +2 -2
  25. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterHolder}/MinterHolderV4.sol/MinterHolderV4.json +3 -3
  26. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV1.sol/MinterMerkleV1.json +2 -2
  27. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV2.sol/MinterMerkleV2.json +2 -2
  28. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV3.sol/MinterMerkleV3.json +2 -2
  29. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV4.sol/MinterMerkleV4.json +2 -2
  30. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterMerkle}/MinterMerkleV5.sol/MinterMerkleV5.json +3 -3
  31. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterPolyptych}/MinterPolyptychV0.sol/IGenArt721CoreContractV3WithRandomizer.json +54 -49
  32. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterPolyptych}/MinterPolyptychV0.sol/MinterPolyptychV0.json +3 -3
  33. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterSEA}/MinterSEAV0.sol/MinterSEAV0.json +3 -3
  34. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV2.sol/MinterSetPriceV2.json +2 -2
  35. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV3.sol/MinterSetPriceV3.json +2 -2
  36. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterSetPrice}/MinterSetPriceV4.sol/MinterSetPriceV4.json +3 -3
  37. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V0.sol/MinterSetPriceERC20V0.json +65 -2
  38. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V1.sol/MinterSetPriceERC20V1.json +65 -2
  39. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V2.sol/MinterSetPriceERC20V2.json +2 -2
  40. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V3.sol/MinterSetPriceERC20V3.json +2 -2
  41. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V4.sol/MinterSetPriceERC20V4.json +807 -0
  42. package/artifacts/contracts/engine/V2/GenArt721MinterBurner_PBAB.sol/GenArt721MinterBurner_PBAB.json +65 -2
  43. package/artifacts/contracts/engine/V2/GenArt721Minter_PBAB.sol/GenArt721Minter_PBAB.json +65 -2
  44. package/artifacts/contracts/engine/V3/EngineFactoryV0.sol/EngineFactoryV0.json +624 -0
  45. package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine.sol/GenArt721CoreV3_Engine.json +613 -216
  46. package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol/GenArt721CoreV3_Engine_Flex.json +805 -206
  47. package/artifacts/contracts/engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol/GenArt721CoreV3_Engine_Flex_PROOF.json +51 -8
  48. package/artifacts/contracts/engine/V3/forks/PROHIBITION/AdminACLV0_PROHIBITION.sol/AdminACLV0_PROHIBITION.json +2 -2
  49. package/artifacts/contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol/GenArt721CoreV3_Engine_Flex_PROHIBITION.json +51 -8
  50. package/artifacts/contracts/engine/V3/forks/PROHIBITION/interfaces/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.sol/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.json +59 -54
  51. package/artifacts/contracts/engine-registry/CoreRegistryV1.sol/CoreRegistryV1.json +2 -2
  52. package/artifacts/contracts/generator/AddressChunks.sol/AddressChunks.json +10 -0
  53. package/artifacts/contracts/generator/GenArt721GeneratorV0.sol/GenArt721GeneratorV0.json +333 -0
  54. package/artifacts/contracts/generator/GenArt721GeneratorV0.sol/ILegacyGenArt721CoreV2_PBAB_Flex.json +47 -0
  55. package/artifacts/contracts/interfaces/v0.8.x/IAdminACLV0_Extended.sol/IAdminACLV0_Extended.json +140 -0
  56. package/artifacts/contracts/interfaces/v0.8.x/IBytecodeStorageReader.sol/IBytecodeStorageReader.json +7 -7
  57. package/artifacts/contracts/interfaces/v0.8.x/IBytecodeStorageReaderV2.sol/IBytecodeStorageReaderV2.json +130 -0
  58. package/artifacts/contracts/interfaces/v0.8.x/IBytecodeStorageReader_Base.sol/IBytecodeStorageReader_Base.json +30 -0
  59. package/artifacts/contracts/interfaces/v0.8.x/ICoreRegistryV1.sol/ICoreRegistryV1.json +13 -0
  60. package/artifacts/contracts/interfaces/v0.8.x/IDependencyRegistryV0.sol/IDependencyRegistryV0.json +228 -45
  61. package/artifacts/contracts/interfaces/v0.8.x/IEngineFactoryV0.sol/IEngineFactoryV0.json +283 -0
  62. package/artifacts/contracts/interfaces/v0.8.x/IFilteredMinterDAExpSettlementV0.sol/IFilteredMinterDAExpSettlementV0.json +12 -12
  63. package/artifacts/contracts/interfaces/v0.8.x/IFilteredMinterDAExpSettlementV1.sol/IFilteredMinterDAExpSettlementV1.json +12 -12
  64. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3.sol/IGenArt721CoreContractV3.json +53 -48
  65. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Base.sol/IGenArt721CoreContractV3_Base.json +53 -48
  66. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine.sol/IGenArt721CoreContractV3_Engine.json +198 -90
  67. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex.sol/IGenArt721CoreContractV3_Engine_Flex.json +198 -90
  68. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex_PreV3p2.sol/IGenArt721CoreContractV3_Engine_Flex_PreV3p2.json +1065 -0
  69. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_PreV3p2.sol/IGenArt721CoreContractV3_Engine_PreV3p2.json +778 -0
  70. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_ProjectFinance.sol/IGenArt721CoreContractV3_ProjectFinance.json +87 -0
  71. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreProjectScriptV0.sol/IGenArt721CoreProjectScriptV0.json +59 -0
  72. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreProjectScriptV1.sol/IGenArt721CoreProjectScriptV1.json +64 -0
  73. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreTokenHashProviderV0.sol/IGenArt721CoreTokenHashProviderV0.json +30 -0
  74. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreTokenHashProviderV1.sol/IGenArt721CoreTokenHashProviderV1.json +30 -0
  75. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721GeneratorV0.sol/IGenArt721GeneratorV0.json +63 -0
  76. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721Minter_PBAB.sol/IGenArt721Minter_PBAB.json +279 -0
  77. package/artifacts/contracts/interfaces/v0.8.x/IOwnedCreate2FactoryV0.sol/IOwnedCreate2FactoryV0.json +74 -0
  78. package/artifacts/contracts/interfaces/v0.8.x/IPseudorandomAtomic.sol/IPseudorandomAtomic.json +1 -1
  79. package/artifacts/contracts/interfaces/v0.8.x/ISeaDropShimForContract.sol/ISeaDropShimForContract.json +37 -0
  80. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDAExpSettlementV0.sol/ISharedMinterDAExpSettlementV0.json +18 -0
  81. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterMinPriceV0.sol/ISharedMinterMinPriceV0.json +37 -0
  82. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterRAMV0.sol/ISharedMinterRAMV0.json +62 -0
  83. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterRequired.sol/ISharedMinterRequired.json +37 -0
  84. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterSEAV0.sol/ISharedMinterSEAV0.json +1 -1
  85. package/artifacts/contracts/interfaces/v0.8.x/ISplitAtomicFactoryV0.sol/ISplitAtomicFactoryV0.json +170 -0
  86. package/artifacts/contracts/interfaces/v0.8.x/ISplitAtomicV0.sol/ISplitAtomicV0.json +126 -0
  87. package/artifacts/contracts/interfaces/v0.8.x/ISplitProviderV0.sol/ISplitProviderV0.json +98 -0
  88. package/artifacts/contracts/interfaces/v0.8.x/IUniversalBytecodeStorageReader.sol/IUniversalBytecodeStorageReader.json +56 -0
  89. package/artifacts/contracts/interfaces/v0.8.x/integration-refs/OpenSea/ERC721SeaDropStructsErrorsAndEvents.sol/ERC721SeaDropStructsErrorsAndEvents.json +43 -0
  90. package/artifacts/contracts/interfaces/v0.8.x/integration-refs/OpenSea/INonFungibleSeaDropToken.sol/INonFungibleSeaDropToken.json +715 -0
  91. package/artifacts/contracts/interfaces/v0.8.x/integration-refs/OpenSea/ISeaDrop.sol/ISeaDrop.json +1571 -0
  92. package/artifacts/contracts/interfaces/v0.8.x/integration-refs/OpenSea/ISeaDropTokenContractMetadata.sol/ISeaDropTokenContractMetadata.json +345 -0
  93. package/artifacts/contracts/interfaces/v0.8.x/integration-refs/OpenSea/SeaDropErrorsAndEvents.sol/SeaDropErrorsAndEvents.json +717 -0
  94. package/artifacts/contracts/interfaces/v0.8.x/integration-refs/splits-0x-v2/ISplitFactoryV2.sol/ISplitFactoryV2.json +123 -0
  95. package/artifacts/contracts/libs/integration-refs/delegation-registry/DelegationRegistry.sol/DelegationRegistry.json +2 -2
  96. package/artifacts/contracts/libs/integration-refs/gnosis-safe/GnosisSafeMock.sol/GnosisSafeMock.json +2 -2
  97. package/artifacts/contracts/libs/integration-refs/gnosis-safe/GnosisSafeProxyFactoryMock.sol/GnosisSafeProxyFactoryMock.json +2 -2
  98. package/artifacts/contracts/libs/integration-refs/gnosis-safe/MultiSendMock.sol/MultiSendMock.json +2 -2
  99. package/artifacts/contracts/libs/integration-refs/weth9/weth9.sol/WETH9_.json +2 -2
  100. package/artifacts/contracts/libs/v0.8.x/ABHelpers.sol/ABHelpers.json +2 -2
  101. package/artifacts/contracts/libs/v0.8.x/AuthLib.sol/AuthLib.json +2 -2
  102. package/artifacts/contracts/libs/v0.8.x/BitMap.sol/BitMaps256.json +10 -0
  103. package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV0.sol/BytecodeStorage.json +2 -2
  104. package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV1.sol/BytecodeStorageReader.json +2 -2
  105. package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV1.sol/BytecodeStorageWriter.json +2 -2
  106. package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV2.sol/BytecodeStorageReader.json +214 -0
  107. package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV2.sol/BytecodeStorageWriter.json +10 -0
  108. package/artifacts/contracts/libs/v0.8.x/Bytes32Strings.sol/Bytes32Strings.json +2 -2
  109. package/artifacts/contracts/libs/v0.8.x/DependencyRegistryStorageLib.sol/DependencyRegistryStorageLib.json +10 -0
  110. package/artifacts/contracts/libs/v0.8.x/ERC721_PackedHashSeed.sol/ERC721_PackedHashSeed.json +2 -2
  111. package/artifacts/contracts/libs/v0.8.x/ERC721_PackedHashSeedV1.sol/ERC721_PackedHashSeedV1.json +444 -0
  112. package/artifacts/contracts/libs/v0.8.x/JsonStatic.sol/JsonStatic.json +10 -0
  113. package/artifacts/contracts/libs/v0.8.x/PackedBools.sol/PackedBools.json +10 -0
  114. package/artifacts/contracts/libs/v0.8.x/SSTORE2.sol/SSTORE2.json +2 -2
  115. package/artifacts/contracts/libs/v0.8.x/V3FlexLib.sol/V3FlexLib.json +195 -0
  116. package/artifacts/contracts/libs/v0.8.x/minter-libs/DAExpLib.sol/DAExpLib.json +2 -2
  117. package/artifacts/contracts/libs/v0.8.x/minter-libs/DALib.sol/DALib.json +2 -2
  118. package/artifacts/contracts/libs/v0.8.x/minter-libs/DALinLib.sol/DALinLib.json +2 -2
  119. package/artifacts/contracts/libs/v0.8.x/minter-libs/GenericMinterEventsLib.sol/GenericMinterEventsLib.json +2 -2
  120. package/artifacts/contracts/libs/v0.8.x/minter-libs/MaxInvocationsLib.sol/MaxInvocationsLib.json +2 -2
  121. package/artifacts/contracts/libs/v0.8.x/minter-libs/MerkleLib.sol/MerkleLib.json +2 -2
  122. package/artifacts/contracts/libs/v0.8.x/minter-libs/MinPriceLib.sol/MinPriceLib.json +24 -0
  123. package/artifacts/contracts/libs/v0.8.x/minter-libs/PolyptychLib.sol/PolyptychLib.json +2 -2
  124. package/artifacts/contracts/libs/v0.8.x/minter-libs/RAMLib.sol/RAMLib.json +398 -0
  125. package/artifacts/contracts/libs/v0.8.x/minter-libs/SEALib.sol/SEALib.json +2 -2
  126. package/artifacts/contracts/libs/v0.8.x/minter-libs/SetPriceLib.sol/SetPriceLib.json +2 -2
  127. package/artifacts/contracts/libs/v0.8.x/minter-libs/SettlementExpLib.sol/SettlementExpLib.json +2 -2
  128. package/artifacts/contracts/libs/v0.8.x/minter-libs/SplitFundsLib.sol/SplitFundsLib.json +2 -2
  129. package/artifacts/contracts/libs/v0.8.x/minter-libs/TokenHolderLib.sol/TokenHolderLib.json +2 -2
  130. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV1.sol/MinterFilterV1.json +2 -2
  131. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV2.sol/MinterFilterV2.json +2 -2
  132. package/artifacts/contracts/minter-suite/Minters/MinterDAExpHolderV5.sol/MinterDAExpHolderV5.json +2 -2
  133. package/artifacts/contracts/minter-suite/Minters/MinterDAExpSettlementV3.sol/MinterDAExpSettlementV3.json +2 -2
  134. package/artifacts/contracts/minter-suite/Minters/MinterDAExpV5.sol/MinterDAExpV5.json +2 -2
  135. package/artifacts/contracts/minter-suite/Minters/MinterDALinHolderV5.sol/MinterDALinHolderV5.json +2 -2
  136. package/artifacts/contracts/minter-suite/Minters/MinterDALinV5.sol/MinterDALinV5.json +2 -2
  137. package/artifacts/contracts/minter-suite/Minters/MinterMinPriceMerkleV0.sol/MinterMinPriceMerkleV0.json +664 -0
  138. package/artifacts/contracts/minter-suite/Minters/MinterMinPriceV0.sol/MinterMinPriceV0.json +387 -0
  139. package/artifacts/contracts/minter-suite/Minters/MinterRAMV0.sol/MinterRAMV0.json +1374 -0
  140. package/artifacts/contracts/minter-suite/Minters/MinterSEAV1.sol/MinterSEAV1.json +7 -7
  141. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20V5.sol/MinterSetPriceERC20V5.json +2 -2
  142. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceHolderV5.sol/MinterSetPriceHolderV5.json +2 -2
  143. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceMerkleV5.sol/MinterSetPriceMerkleV5.json +2 -2
  144. package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychERC20V5.sol/MinterSetPricePolyptychERC20V5.json +2 -2
  145. package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychV5.sol/MinterSetPricePolyptychV5.json +2 -2
  146. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceV5.sol/MinterSetPriceV5.json +2 -2
  147. package/artifacts/contracts/minter-suite/Minters/one-off/MinterSetPriceV5_SingleCore.sol/MinterSetPriceV5_SingleCore.json +417 -0
  148. package/artifacts/contracts/minter-suite/Minters/one-off/SeaDropXArtBlocksShim.sol/SeaDropXArtBlocksShim.json +1206 -0
  149. package/artifacts/contracts/mock/BytecodeV1LibCallsMock.sol/BytecodeV1LibCallsMock.json +2 -2
  150. package/artifacts/contracts/mock/BytecodeV2LibCallsMock.sol/BytecodeV2LibCallsMock.json +154 -0
  151. package/artifacts/contracts/mock/BytecodeV2TextCR_DMock.sol/BytecodeV2TextCR_DMock.json +428 -0
  152. package/artifacts/contracts/mock/DummySharedMinter.sol/DummySharedMinter.json +2 -2
  153. package/artifacts/contracts/mock/ERC20Mock.sol/ERC20Mock.json +2 -2
  154. package/artifacts/contracts/mock/ERC20MockAltDecimals.sol/ERC20MockAltDecimals.json +318 -0
  155. package/artifacts/contracts/mock/ForceSendMock.sol/ForceSendMock.json +24 -0
  156. package/artifacts/contracts/mock/GenArt721CoreV3_Engine_IncorrectCoreType.sol/GenArt721CoreV3_Engine_IncorrectCoreType.json +2 -2
  157. package/artifacts/contracts/mock/Mock0xSplitsV2PullFactory.sol/Mock0xSplitsV2PullFactory.json +149 -0
  158. package/artifacts/contracts/mock/Mock0xSplitsV2Splitter.sol/Mock0xSplitsV2Splitter.json +99 -0
  159. package/artifacts/contracts/mock/MockAdminACLV0.sol/MockAdminACLV0Events.json +20 -2
  160. package/artifacts/contracts/mock/MockAdminACLV0_PROHIBITION.sol/MockAdminACLV0Events_PROHIBITION.json +20 -2
  161. package/artifacts/contracts/mock/MockFileStore.sol/MockFileStore.json +35 -0
  162. package/artifacts/contracts/mock/OriginRegisterMock.sol/OriginRegisterMock.json +2 -2
  163. package/artifacts/contracts/mock/RandomizerV2_NoAssignMock.sol/RandomizerV2_NoAssignMock.json +2 -2
  164. package/artifacts/contracts/mock/ReentrancyGenArt721MinterMock.sol/ReentrancyGenArt721MinterMock.json +100 -0
  165. package/artifacts/contracts/mock/ReentrancyHolderMock.sol/ReentrancyHolderMock.json +2 -2
  166. package/artifacts/contracts/mock/ReentrancyHolderMockShared.sol/ReentrancyHolderMockShared.json +2 -2
  167. package/artifacts/contracts/mock/ReentrancyMerkleMock.sol/ReentrancyMerkleMock.json +2 -2
  168. package/artifacts/contracts/mock/ReentrancyMerkleMockShared.sol/ReentrancyMerkleMockShared.json +2 -2
  169. package/artifacts/contracts/mock/ReentrancyMock.sol/ReentrancyMock.json +2 -2
  170. package/artifacts/contracts/mock/ReentrancyMockShared.sol/ReentrancyMockShared.json +2 -2
  171. package/artifacts/contracts/mock/ReentrancySEAMock.sol/ReentrancySEAAutoBidderMock.json +2 -2
  172. package/artifacts/contracts/mock/ReentrancySEAMockShared.sol/ReentrancySEAAutoBidderMockShared.json +2 -2
  173. package/artifacts/contracts/mock/ReentrancySplitterMocks.sol/ReentrancySplitterDrainETHMock.json +54 -0
  174. package/artifacts/contracts/mock/ReentrancySplitterMocks.sol/ReentrancySplitterSendETHMock.json +54 -0
  175. package/artifacts/contracts/randomizer/deprecated/PolyptychRandomizerV0.sol/BasicPolyptychRandomizerV0.json +2 -2
  176. package/artifacts/contracts/randomizer/deprecated/RandomizerV2.sol/BasicRandomizerV2.json +2 -2
  177. package/artifacts/contracts/randomizer/primitive/PseudorandomAtomicBasic.sol/PseudorandomAtomic.json +2 -2
  178. package/artifacts/contracts/randomizer/shared/SharedRandomizerV0.sol/SharedRandomizerV0.json +2 -2
  179. package/artifacts/contracts/split/SplitAtomicFactoryV0.sol/SplitAtomicFactoryV0.json +203 -0
  180. package/artifacts/contracts/split/SplitAtomicV0.sol/SplitAtomicV0.json +168 -0
  181. package/artifacts/contracts/split/split-provider/SplitProviderV0.sol/SplitProviderV0.json +141 -0
  182. package/contracts/AdminACLV0.sol +6 -2
  183. package/contracts/AdminACLV1.sol +2 -2
  184. package/contracts/BytecodeStorageReaders/BytecodeStorageReaderContractV2.sol +103 -0
  185. package/contracts/BytecodeStorageReaders/UniversalBytecodeStorageReader.sol +70 -0
  186. package/contracts/BytecodeStorageV2Writer.sol +69 -0
  187. package/contracts/DependencyRegistryV0.sol +878 -430
  188. package/contracts/GenArt721CoreV3_Curated.sol +133 -0
  189. package/contracts/OwnedCreate2FactoryV0.sol +173 -0
  190. package/contracts/{GenArt721CoreV3.sol → archive/GenArt721CoreV3.sol} +56 -20
  191. package/contracts/{explorations → archive}/GenArt721CoreV3_Explorations.sol +49 -13
  192. package/contracts/{minter-suite → archive/minter-suite}/Minters/MinterBase_v0_1_1.sol +4 -4
  193. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterDAExp}/MinterDAExpV4.sol +4 -4
  194. package/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol +4 -4
  195. package/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV1.sol +5 -5
  196. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterDAExpSettlement}/MinterDAExpSettlementV2.sol +8 -8
  197. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterDALin}/MinterDALinV4.sol +4 -4
  198. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterHolder}/MinterHolderV4.sol +5 -5
  199. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterMerkle}/MinterMerkleV5.sol +5 -5
  200. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterPolyptych}/MinterPolyptychV0.sol +7 -7
  201. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterSEA}/MinterSEAV0.sol +13 -13
  202. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterSetPrice}/MinterSetPriceV4.sol +4 -4
  203. package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V0.sol +82 -10
  204. package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V1.sol +82 -10
  205. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterSetPriceERC20}/MinterSetPriceERC20V4.sol +88 -21
  206. package/contracts/engine/V2/GenArt721MinterBurner_PBAB.sol +81 -22
  207. package/contracts/engine/V2/GenArt721Minter_PBAB.sol +80 -22
  208. package/contracts/engine/V3/EngineFactoryV0.sol +427 -0
  209. package/contracts/engine/V3/GenArt721CoreV3_Engine.sol +977 -502
  210. package/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol +1137 -663
  211. package/contracts/engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol +3 -3
  212. package/contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol +1 -1
  213. package/contracts/engine/V3/forks/PROHIBITION/interfaces/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.sol +2 -2
  214. package/contracts/generator/AddressChunks.sol +106 -0
  215. package/contracts/generator/GenArt721GeneratorV0.sol +1094 -0
  216. package/contracts/generator/scripty-support/Scripty.sol +5 -0
  217. package/contracts/interfaces/v0.8.x/IAdminACLV0_Extended.sol +20 -0
  218. package/contracts/interfaces/v0.8.x/IBytecodeStorageReader.sol +34 -36
  219. package/contracts/interfaces/v0.8.x/IBytecodeStorageReaderV2.sol +25 -0
  220. package/contracts/interfaces/v0.8.x/IBytecodeStorageReader_Base.sol +20 -0
  221. package/contracts/interfaces/v0.8.x/ICoreRegistryV1.sol +5 -0
  222. package/contracts/interfaces/v0.8.x/IDependencyRegistryV0.sol +141 -45
  223. package/contracts/interfaces/v0.8.x/IEngineFactoryV0.sol +124 -0
  224. package/contracts/interfaces/v0.8.x/IFilteredMinterDAExpSettlementV0.sol +1 -3
  225. package/contracts/interfaces/v0.8.x/IFilteredMinterDAExpSettlementV1.sol +1 -3
  226. package/contracts/interfaces/v0.8.x/IFilteredMinterDAExpV1.sol +1 -3
  227. package/contracts/interfaces/v0.8.x/IFilteredMinterDALinV1.sol +1 -3
  228. package/contracts/interfaces/v0.8.x/IFilteredMinterHolderV2.sol +1 -3
  229. package/contracts/interfaces/v0.8.x/IFilteredMinterMerkleV2.sol +1 -3
  230. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Base.sol +126 -11
  231. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine.sol +86 -8
  232. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex.sol +26 -8
  233. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex_PreV3p2.sol +141 -0
  234. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_PreV3p2.sol +78 -0
  235. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_ProjectFinance.sol +47 -0
  236. package/contracts/interfaces/v0.8.x/IGenArt721CoreProjectScriptV0.sol +22 -0
  237. package/contracts/interfaces/v0.8.x/IGenArt721CoreProjectScriptV1.sol +23 -0
  238. package/contracts/interfaces/v0.8.x/IGenArt721CoreTokenHashProviderV0.sol +11 -0
  239. package/contracts/interfaces/v0.8.x/IGenArt721CoreTokenHashProviderV1.sol +9 -0
  240. package/contracts/interfaces/v0.8.x/IGenArt721GeneratorV0.sol +14 -0
  241. package/contracts/interfaces/v0.8.x/IGenArt721Minter_PBAB.sol +91 -0
  242. package/contracts/interfaces/v0.8.x/IOwnedCreate2FactoryV0.sol +40 -0
  243. package/contracts/interfaces/v0.8.x/IPseudorandomAtomic.sol +1 -3
  244. package/contracts/interfaces/v0.8.x/ISeaDropShimForContract.sol +19 -0
  245. package/contracts/interfaces/v0.8.x/ISharedMinterDAExpSettlementV0.sol +19 -0
  246. package/contracts/interfaces/v0.8.x/ISharedMinterMinPriceV0.sol +22 -0
  247. package/contracts/interfaces/v0.8.x/ISharedMinterRAMV0.sol +23 -0
  248. package/contracts/interfaces/v0.8.x/ISharedMinterRequired.sol +26 -0
  249. package/contracts/interfaces/v0.8.x/ISharedMinterSEAV0.sol +1 -4
  250. package/contracts/interfaces/v0.8.x/ISharedMinterV0.sol +12 -6
  251. package/contracts/interfaces/v0.8.x/ISplitAtomicFactoryV0.sol +81 -0
  252. package/contracts/interfaces/v0.8.x/ISplitAtomicV0.sol +72 -0
  253. package/contracts/interfaces/v0.8.x/ISplitProviderV0.sol +49 -0
  254. package/contracts/interfaces/v0.8.x/IUniversalBytecodeStorageReader.sol +28 -0
  255. package/contracts/interfaces/v0.8.x/integration-refs/OpenSea/ERC721SeaDropStructsErrorsAndEvents.sol +58 -0
  256. package/contracts/interfaces/v0.8.x/integration-refs/OpenSea/INonFungibleSeaDropToken.sol +186 -0
  257. package/contracts/interfaces/v0.8.x/integration-refs/OpenSea/ISeaDrop.sol +337 -0
  258. package/contracts/interfaces/v0.8.x/integration-refs/OpenSea/ISeaDropTokenContractMetadata.sol +152 -0
  259. package/contracts/interfaces/v0.8.x/integration-refs/OpenSea/SeaDropErrorsAndEvents.sol +320 -0
  260. package/contracts/interfaces/v0.8.x/integration-refs/OpenSea/SeaDropStructs.sol +146 -0
  261. package/contracts/interfaces/v0.8.x/integration-refs/splits-0x-v2/ISplitFactoryV2.sol +62 -0
  262. package/contracts/libs/v0.8.x/ABHelpers.sol +18 -4
  263. package/contracts/libs/v0.8.x/BitMap.sol +112 -0
  264. package/contracts/libs/v0.8.x/BytecodeStorageV2.sol +593 -0
  265. package/contracts/libs/v0.8.x/Bytes32Strings.sol +20 -0
  266. package/contracts/libs/v0.8.x/DependencyRegistryStorageLib.sol +98 -0
  267. package/contracts/libs/v0.8.x/ERC721_PackedHashSeedV1.sol +591 -0
  268. package/contracts/libs/v0.8.x/JsonStatic.sol +373 -0
  269. package/contracts/libs/v0.8.x/PackedBools.sol +42 -0
  270. package/contracts/libs/v0.8.x/V3FlexLib.sol +597 -0
  271. package/contracts/libs/v0.8.x/minter-libs/DAExpLib.sol +10 -12
  272. package/contracts/libs/v0.8.x/minter-libs/DALinLib.sol +4 -9
  273. package/contracts/libs/v0.8.x/minter-libs/GenericMinterEventsLib.sol +44 -44
  274. package/contracts/libs/v0.8.x/minter-libs/MaxInvocationsLib.sol +64 -63
  275. package/contracts/libs/v0.8.x/minter-libs/MerkleLib.sol +14 -10
  276. package/contracts/libs/v0.8.x/minter-libs/MinPriceLib.sol +64 -0
  277. package/contracts/libs/v0.8.x/minter-libs/RAMLib.sol +2927 -0
  278. package/contracts/libs/v0.8.x/minter-libs/SEALib.sol +60 -62
  279. package/contracts/libs/v0.8.x/minter-libs/SetPriceLib.sol +4 -8
  280. package/contracts/libs/v0.8.x/minter-libs/SettlementExpLib.sol +92 -89
  281. package/contracts/libs/v0.8.x/minter-libs/SplitFundsLib.sol +128 -15
  282. package/contracts/libs/v0.8.x/minter-libs/TokenHolderLib.sol +5 -4
  283. package/contracts/minter-suite/MinterFilter/MinterFilterV2.sol +16 -10
  284. package/contracts/minter-suite/Minters/MinterDAExpHolderV5.sol +2 -2
  285. package/contracts/minter-suite/Minters/MinterDAExpSettlementV3.sol +19 -15
  286. package/contracts/minter-suite/Minters/MinterDAExpV5.sol +2 -2
  287. package/contracts/minter-suite/Minters/MinterDALinHolderV5.sol +2 -2
  288. package/contracts/minter-suite/Minters/MinterDALinV5.sol +2 -2
  289. package/contracts/minter-suite/Minters/MinterMinPriceMerkleV0.sol +765 -0
  290. package/contracts/minter-suite/Minters/MinterMinPriceV0.sol +462 -0
  291. package/contracts/minter-suite/Minters/MinterRAMV0.sol +1205 -0
  292. package/contracts/minter-suite/Minters/MinterSEAV1.sol +21 -32
  293. package/contracts/minter-suite/Minters/MinterSetPriceERC20V5.sol +17 -8
  294. package/contracts/minter-suite/Minters/MinterSetPriceHolderV5.sol +2 -2
  295. package/contracts/minter-suite/Minters/MinterSetPriceMerkleV5.sol +2 -2
  296. package/contracts/minter-suite/Minters/MinterSetPricePolyptychERC20V5.sol +23 -9
  297. package/contracts/minter-suite/Minters/MinterSetPricePolyptychV5.sol +2 -2
  298. package/contracts/minter-suite/Minters/MinterSetPriceV5.sol +2 -2
  299. package/contracts/minter-suite/Minters/one-off/MinterSetPriceV5_SingleCore.sol +446 -0
  300. package/contracts/minter-suite/Minters/one-off/SeaDropXArtBlocksShim.sol +869 -0
  301. package/contracts/mock/BytecodeV2LibCallsMock.sol +128 -0
  302. package/contracts/mock/BytecodeV2TextCR_DMock.sol +316 -0
  303. package/contracts/mock/ERC20MockAltDecimals.sol +31 -0
  304. package/contracts/mock/ForceSendMock.sol +22 -0
  305. package/contracts/mock/Mock0xSplitsV2PullFactory.sol +75 -0
  306. package/contracts/mock/Mock0xSplitsV2Splitter.sol +47 -0
  307. package/contracts/mock/MockAdminACLV0.sol +21 -0
  308. package/contracts/mock/MockAdminACLV0_PROHIBITION.sol +21 -0
  309. package/contracts/mock/MockFileStore.sol +22 -0
  310. package/contracts/mock/ReentrancyGenArt721MinterMock.sol +47 -0
  311. package/contracts/mock/ReentrancySplitterMocks.sol +67 -0
  312. package/contracts/randomizer/primitive/PseudorandomAtomicBasic.sol +1 -1
  313. package/contracts/randomizer/shared/SharedRandomizerV0.sol +1 -1
  314. package/contracts/split/SplitAtomicFactoryV0.sol +121 -0
  315. package/contracts/split/SplitAtomicV0.sol +265 -0
  316. package/contracts/split/split-provider/SplitProviderV0.sol +201 -0
  317. package/package.json +66 -36
  318. package/artifacts/contracts/GenArt721CoreV3.sol/GenArt721CoreV3.json +0 -1965
  319. package/artifacts/contracts/explorations/GenArt721CoreV3_Explorations.sol/GenArt721CoreV3_Explorations.json +0 -1939
  320. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20V4.sol/MinterSetPriceERC20V4.json +0 -768
  321. package/artifacts/contracts/royalty-registry/GenArt721RoyaltyOverride.sol/GenArt721RoyaltyOverride.json +0 -208
  322. package/artifacts/contracts/royalty-registry/GenArt721RoyaltyOverride_PBAB.sol/GenArt721RoyaltyOverride_PBAB.json +0 -301
  323. package/contracts/archive/readme.md +0 -16
  324. package/contracts/engine/README.md +0 -21
  325. package/contracts/royalty-registry/GenArt721RoyaltyOverride.sol +0 -168
  326. package/contracts/royalty-registry/GenArt721RoyaltyOverride_PBAB.sol +0 -221
@@ -0,0 +1,14 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Created By: Art Blocks Inc.
3
+ pragma solidity ^0.8.22;
4
+
5
+ interface IGenArt721GeneratorV0 {
6
+ event DependencyRegistryUpdated(address indexed _dependencyRegistry);
7
+ event ScriptyBuilderUpdated(address indexed _scriptyBuilder);
8
+ event GunzipScriptBytecodeAddressUpdated(
9
+ address indexed _gunzipScriptBytecodeAddress
10
+ );
11
+ event UniversalBytecodeStorageReaderUpdated(
12
+ address indexed _universalBytecodeStorageReader
13
+ );
14
+ }
@@ -0,0 +1,91 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Created By: Art Blocks Inc.
3
+
4
+ pragma solidity ^0.8.0;
5
+
6
+ interface IGenArt721Minter_PBAB {
7
+ /**
8
+ * @notice Price per token in wei updated for project `_projectId` to
9
+ * `_pricePerTokenInWei`.
10
+ */
11
+ event PricePerTokenInWeiUpdated(
12
+ uint256 indexed _projectId,
13
+ uint256 indexed _pricePerTokenInWei
14
+ );
15
+
16
+ /**
17
+ * @notice Currency updated for project `_projectId` to symbol
18
+ * `_currencySymbol` and address `_currencyAddress`.
19
+ */
20
+ event ProjectCurrencyInfoUpdated(
21
+ uint256 indexed _projectId,
22
+ address indexed _currencyAddress,
23
+ string _currencySymbol
24
+ );
25
+
26
+ /// togglePurchaseToDisabled updated
27
+ event PurchaseToDisabledUpdated(
28
+ uint256 indexed _projectId,
29
+ bool _purchaseToDisabled
30
+ );
31
+
32
+ // getter function of public variable
33
+ function minterType() external view returns (string memory);
34
+
35
+ function genArt721CoreAddress() external returns (address);
36
+
37
+ function minterFilterAddress() external returns (address);
38
+
39
+ // Triggers a purchase of a token from the desired project with ETH, to the
40
+ // TX-sending address.
41
+ function purchase(
42
+ uint256 _projectId
43
+ ) external payable returns (uint256 tokenId);
44
+
45
+ // Triggers a purchase of a token from the desired project with ETH or any ERC-20 token, to the
46
+ // TX-sending address.
47
+ function purchase(
48
+ uint256 _projectId,
49
+ uint256 _maxPricePerToken,
50
+ address _currencyAddress
51
+ ) external payable returns (uint256 tokenId);
52
+
53
+ // Triggers a purchase of a token from the desired project with ETH, to the specified
54
+ // receiving address.
55
+ function purchaseTo(
56
+ address _to,
57
+ uint256 _projectId
58
+ ) external payable returns (uint256 tokenId);
59
+
60
+ // Triggers a purchase of a token from the desired project with ETH or any ERC-20 token, to the specified
61
+ // receiving address.
62
+ function purchaseTo(
63
+ address _to,
64
+ uint256 _projectId,
65
+ uint256 _maxPricePerToken,
66
+ address _currencyAddress
67
+ ) external payable returns (uint256 tokenId);
68
+
69
+ // Toggles the ability for `purchaseTo` to be called directly with a
70
+ // specified receiving address that differs from the TX-sending address.
71
+ function togglePurchaseToDisabled(uint256 _projectId) external;
72
+
73
+ // Called to make the minter contract aware of the max invocations for a
74
+ // given project.
75
+ function setProjectMaxInvocations(uint256 _projectId) external;
76
+
77
+ // Gets if token price is configured, token price in wei, currency symbol,
78
+ // and currency address, assuming this is project's minter.
79
+ // Supersedes any defined core price.
80
+ function getPriceInfo(
81
+ uint256 _projectId
82
+ )
83
+ external
84
+ view
85
+ returns (
86
+ bool isConfigured,
87
+ uint256 tokenPriceInWei,
88
+ string memory currencySymbol,
89
+ address currencyAddress
90
+ );
91
+ }
@@ -0,0 +1,40 @@
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 IOwnedCreate2FactoryV0 {
9
+ /**
10
+ * @notice This contract was deployed.
11
+ */
12
+ event Deployed();
13
+ /**
14
+ * @notice New curated core contract was created.
15
+ * @param newContract new contract
16
+ */
17
+ event ContractCreated(address indexed newContract);
18
+
19
+ /**
20
+ * @notice Drains the contract's balance to the `recipient`.
21
+ * @param recipient The address to send funds to.
22
+ * Only callable by the owner.
23
+ */
24
+ function drainETH(address payable recipient) external;
25
+
26
+ /**
27
+ * @notice Drains the contract's balance of an input ERC20 token to
28
+ * the `recipient`.
29
+ * @param ERC20TokenAddress The address of the ERC20 token to withdraw.
30
+ * @param recipient The address to send ERC20 tokens to.
31
+ * Only callable by the owner.
32
+ */
33
+ function drainERC20(address ERC20TokenAddress, address recipient) external;
34
+
35
+ /**
36
+ * @notice Indicates the type of the contract, e.g. `EngineFactoryV0`.
37
+ * @return type_ The type of the contract.
38
+ */
39
+ function type_() external pure returns (bytes32);
40
+ }
@@ -10,7 +10,5 @@ interface IPseudorandomAtomic {
10
10
  * generation process. An example of entropy might be the hash of a core
11
11
  * contract's address, and the ID of the token being generated.
12
12
  */
13
- function getPseudorandomAtomic(
14
- bytes32 _entropy
15
- ) external view returns (bytes32);
13
+ function getPseudorandomAtomic(bytes32 _entropy) external returns (bytes32);
16
14
  }
@@ -0,0 +1,19 @@
1
+ // SPDX-License-Identifier: MIT
2
+
3
+ // @dev file adds event for indicating a shim contract compatible with SeaDrop, and points to the corresponding NFT
4
+ // contract
5
+ pragma solidity ^0.8.22;
6
+
7
+ interface ISeaDropShimForContract {
8
+ /**
9
+ * @dev Emit event when a shim-minter compatible with SeaDrop that mints tokens on a different contract is deployed
10
+ * @param nftContract The address of the NFT contract that this shim contract is compatible with
11
+ */
12
+ event SeaDropShimForContract(address nftContract);
13
+
14
+ /**
15
+ * @dev Emit event when the local max supply is updated
16
+ * @param newLocalMaxSupply The new local max supply
17
+ */
18
+ event LocalMaxSupplyUpdated(uint256 newLocalMaxSupply);
19
+ }
@@ -25,4 +25,23 @@ interface ISharedMinterDAExpSettlementV0 is ISharedMinterDAExpV0 {
25
25
  address coreContract,
26
26
  address walletAddress
27
27
  ) external view returns (uint256 excessSettlementFundsInWei);
28
+
29
+ /**
30
+ * @notice Reclaims the sender's payment above current settled price for
31
+ * project `projectId` on core contract `coreContract`.
32
+ * The current settled price is the price paid for the most recently
33
+ * purchased token, or the base price if the artist has withdrawn revenues
34
+ * after the auction reached base price.
35
+ * This function is callable at any point, but is expected to typically be
36
+ * called after auction has sold out above base price or after the auction
37
+ * has been purchased at base price. This minimizes the amount of gas
38
+ * required to send all excess settlement funds to the sender.
39
+ * Sends excess settlement funds to msg.sender.
40
+ * @param projectId Project ID to reclaim excess settlement funds on.
41
+ * @param coreContract Contract address of the core contract
42
+ */
43
+ function reclaimProjectExcessSettlementFunds(
44
+ uint256 projectId,
45
+ address coreContract
46
+ ) external;
28
47
  }
@@ -0,0 +1,22 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Created By: Art Blocks Inc.
3
+
4
+ pragma solidity ^0.8.0;
5
+
6
+ /**
7
+ * @title This interface adds support for minimum price minting.
8
+ * @author Art Blocks Inc.
9
+ */
10
+ interface ISharedMinterMinPriceV0 {
11
+ /**
12
+ * @notice Update the default minimum mint fee for the minter.
13
+ * @param newDefaultMinMintFee New default minimum mint fee, in wei
14
+ */
15
+ function updateDefaultMinMintFee(uint256 newDefaultMinMintFee) external;
16
+
17
+ /**
18
+ * @notice Get the default mint fee for the minter.
19
+ * @return defaultMinMintFee Default minimum mint fee, in wei
20
+ */
21
+ function defaultMinMintFee() external view returns (uint256);
22
+ }
@@ -0,0 +1,23 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Created By: Art Blocks Inc.
3
+
4
+ pragma solidity ^0.8.0;
5
+
6
+ /**
7
+ * @title This interface adds support for ranked auction minting.
8
+ * @author Art Blocks Inc.
9
+ */
10
+ interface ISharedMinterRAMV0 {
11
+ function createBid(
12
+ uint256 projectId,
13
+ address coreContract,
14
+ uint16 slotIndex
15
+ ) external payable;
16
+
17
+ function topUpBid(
18
+ uint256 projectId,
19
+ address coreContract,
20
+ uint32 bidId,
21
+ uint16 newSlotIndex
22
+ ) external payable;
23
+ }
@@ -0,0 +1,26 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Created By: Art Blocks Inc.
3
+
4
+ pragma solidity ^0.8.0;
5
+
6
+ /**
7
+ * @title ISharedMinterRequired
8
+ * @notice This interface contains the minimum required interface for a shared
9
+ * minter contract. All custom, one-off minter contracts should implement this
10
+ * interface.
11
+ */
12
+ interface ISharedMinterRequired {
13
+ /**
14
+ * @notice Returns the minter's type, used by the minter filter for metadata
15
+ * purposes.
16
+ * @return The minter type.
17
+ */
18
+ function minterType() external view returns (string memory);
19
+
20
+ /**
21
+ * @notice Returns the minter's associated shared minter filter address.
22
+ * @dev used by subgraph indexing service for entity relation purposes.
23
+ * @return The minter filter address.
24
+ */
25
+ function minterFilterAddress() external returns (address);
26
+ }
@@ -8,8 +8,5 @@ pragma solidity ^0.8.0;
8
8
  * @author Art Blocks Inc.
9
9
  */
10
10
  interface ISharedMinterSEAV0 {
11
- function createBid(
12
- uint256 projectId,
13
- address coreContract
14
- ) external payable;
11
+ function createBid(uint256 tokenId, address coreContract) external payable;
15
12
  }
@@ -3,7 +3,18 @@
3
3
 
4
4
  pragma solidity ^0.8.0;
5
5
 
6
- interface ISharedMinterV0 {
6
+ import {ISharedMinterRequired} from "./ISharedMinterRequired.sol";
7
+
8
+ /**
9
+ * @title ISharedMinterV0
10
+ * @notice This interface extends the minimum required interface for a shared
11
+ * minter contract to add additional functionality that is generally available
12
+ * for all shared minter contracts on the shared minter filter.
13
+ * @dev Custom, one-off minter contracts that are not globally approved may
14
+ * choose to not implement this interface, but should still implement the
15
+ * ISharedMinterRequired interface.
16
+ */
17
+ interface ISharedMinterV0 is ISharedMinterRequired {
7
18
  // Sets the local max invocations for a given project, checking that the provided max invocations is
8
19
  // less than or equal to the global max invocations for the project set on the core contract.
9
20
  // This does not impact the max invocations value defined on the core contract.
@@ -20,11 +31,6 @@ interface ISharedMinterV0 {
20
31
  address coreContract
21
32
  ) external;
22
33
 
23
- // getter function of public variable
24
- function minterType() external view returns (string memory);
25
-
26
- function minterFilterAddress() external returns (address);
27
-
28
34
  // Gets if token price is configured, token price in wei, currency symbol,
29
35
  // and currency address, assuming this is project's minter.
30
36
  // Supersedes any defined core price.
@@ -0,0 +1,81 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Creatd By: Art Blocks Inc.
3
+
4
+ pragma solidity ^0.8.0;
5
+
6
+ import {Split} from "./ISplitAtomicV0.sol";
7
+
8
+ interface ISplitAtomicFactoryV0 {
9
+ /**
10
+ * @notice This contract was deployed.
11
+ * @param implementation address with the implementation of the contract
12
+ * @param type_ type of this contract
13
+ * @param requiredSplitAddress address that must be included in all splits
14
+ * @param requiredSplitBasisPoints basis points that must be included in
15
+ * all splits
16
+ */
17
+ event Deployed(
18
+ address indexed implementation,
19
+ bytes32 indexed type_,
20
+ address requiredSplitAddress,
21
+ uint16 requiredSplitBasisPoints
22
+ );
23
+ /**
24
+ * @notice New split atomic contract was created.
25
+ * @param splitAtomic address of the newly created split atomic contract
26
+ */
27
+ event SplitAtomicCreated(address indexed splitAtomic);
28
+ /**
29
+ * @notice This contract was abandoned and no longer can be used to create
30
+ * new split atomic contracts.
31
+ */
32
+ event Abandoned();
33
+
34
+ /**
35
+ * @notice Initializes the contract with the provided `splits`.
36
+ * Only callable once.
37
+ * @param splits Splits to configure the contract with. Must add up to
38
+ * 10_000 BPS.
39
+ * @return splitAtomic The address of the newly created split atomic
40
+ * contract
41
+ */
42
+ function createSplit(
43
+ Split[] calldata splits
44
+ ) external returns (address splitAtomic);
45
+
46
+ /**
47
+ * @notice The implementation contract that is cloned when creating new
48
+ * split atomic contracts.
49
+ */
50
+ function splitAtomicImplementation() external view returns (address);
51
+
52
+ /**
53
+ * @notice The address that must be included in all splits.
54
+ */
55
+ function requiredSplitAddress() external view returns (address);
56
+
57
+ /**
58
+ * @notice The basis points that must be included in all splits, for the
59
+ * required split address.
60
+ */
61
+ function requiredSplitBasisPoints() external view returns (uint16);
62
+
63
+ /**
64
+ * @notice The deployer of the contract.
65
+ */
66
+ function deployer() external view returns (address);
67
+
68
+ /**
69
+ * @notice Indicates whether the contract is abandoned.
70
+ * Once abandoned, the contract can no longer be used to create new split
71
+ * atomic contracts.
72
+ * @return bool True if the contract is abandoned, false otherwise.
73
+ */
74
+ function isAbandoned() external view returns (bool);
75
+
76
+ /**
77
+ * @notice Indicates the type of the contract, e.g. `SplitAtomicFactoryV0`.
78
+ * @return type_ The type of the contract.
79
+ */
80
+ function type_() external pure returns (bytes32);
81
+ }
@@ -0,0 +1,72 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Creatd By: Art Blocks Inc.
3
+
4
+ pragma solidity ^0.8.0;
5
+
6
+ /**
7
+ * @notice Struct representing a split.
8
+ * @param recipient The address to send funds to.
9
+ * @param basisPoints The basis points to allocate to recipient (1-10_000).
10
+ */
11
+ struct Split {
12
+ // address to send funds to
13
+ address payable recipient;
14
+ // basis points to allocate to recipient (1-10_000)
15
+ uint16 basisPoints;
16
+ }
17
+
18
+ interface ISplitAtomicV0 {
19
+ /**
20
+ * @notice Indicates that the contract has been initialized.
21
+ * @param type_ The type of the contract.
22
+ */
23
+ event Initialized(bytes32 type_);
24
+
25
+ /**
26
+ * @notice Indicates that the contract's balance manually was drained of
27
+ * ETH.
28
+ */
29
+ event DrainedETH();
30
+
31
+ /**
32
+ * @notice Indicates that the contract's balance manually was drained of
33
+ * ERC20 token at address `ERC20TokenAddress`.
34
+ * @param ERC20TokenAddress The address of the ERC20 token that was
35
+ * drained.
36
+ */
37
+ event DrainedERC20(address ERC20TokenAddress);
38
+
39
+ /**
40
+ * @notice Initializes the contract with the provided `splits`.
41
+ * This function should be called atomically, immediately after deployment.
42
+ * Only callable once.
43
+ * @param splits Splits to configure the contract with. Must add up to
44
+ * 10_000 BPS.
45
+ */
46
+ function initialize(Split[] calldata splits) external;
47
+
48
+ /**
49
+ * @notice Drains the contract's ETH balance to the configured `splits`.
50
+ * Reverts if not initialized.
51
+ */
52
+ function drainETH() external;
53
+
54
+ /**
55
+ * @notice Drains the contract's balance of an input ERC20 token to the
56
+ * configured `splits`. Reverts if not initialized.
57
+ * @param ERC20TokenAddress The address of the ERC20 token to split.
58
+ */
59
+ function drainERC20(address ERC20TokenAddress) external;
60
+
61
+ /**
62
+ * @notice Returns the configured `splits`.
63
+ * @return Split[] memory The configured `splits`.
64
+ */
65
+ function getSplits() external view returns (Split[] memory);
66
+
67
+ /**
68
+ * @notice Indicates the type of the contract, e.g. `SplitAtomicV0`.
69
+ * @return type_ The type of the contract.
70
+ */
71
+ function type_() external pure returns (bytes32);
72
+ }
@@ -0,0 +1,49 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Creatd By: Art Blocks Inc.
3
+
4
+ pragma solidity ^0.8.0;
5
+
6
+ import {ISplitFactoryV2} from "./integration-refs/splits-0x-v2/ISplitFactoryV2.sol";
7
+
8
+ interface ISplitProviderV0 {
9
+ /**
10
+ * @notice SplitInputs struct defines the inputs for requested splitters.
11
+ * It is defined in a way easily communicated from the Art Blocks GenArt721V3 contract,
12
+ * to allow for easy integration and minimal additional bytecode in the GenArt721V3 contract.
13
+ */
14
+ struct SplitInputs {
15
+ address platformProviderSecondarySalesAddress;
16
+ uint16 platformProviderSecondarySalesBPS;
17
+ address renderProviderSecondarySalesAddress;
18
+ uint16 renderProviderSecondarySalesBPS;
19
+ uint8 artistTotalRoyaltyPercentage;
20
+ address artist;
21
+ address additionalPayee;
22
+ uint8 additionalPayeePercentage;
23
+ }
24
+
25
+ /**
26
+ * @notice Emitted when a new splitter contract is created.
27
+ * @param splitter address of the splitter contract
28
+ */
29
+ event SplitterCreated(address indexed splitter);
30
+
31
+ /**
32
+ * @notice Gets or creates an immutable splitter contract at a deterministic address.
33
+ * Splits in the splitter contract are determined by the input split parameters,
34
+ * so we can safely create the splitter contract at a deterministic address (or use
35
+ * the existing splitter contract if it already exists at that address).
36
+ * @dev Uses the 0xSplits v2 implementation to create a splitter contract
37
+ * @param splitInputs The split input parameters.
38
+ * @return splitter The newly created splitter contract address.
39
+ */
40
+ function getOrCreateSplitter(
41
+ SplitInputs calldata splitInputs
42
+ ) external returns (address);
43
+
44
+ /**
45
+ * @notice Indicates the type of the contract, e.g. `SplitProviderV0`.
46
+ * @return type_ The type of the contract.
47
+ */
48
+ function type_() external pure returns (bytes32);
49
+ }
@@ -0,0 +1,28 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Created By: Art Blocks Inc.
3
+
4
+ pragma solidity ^0.8.0;
5
+
6
+ import {IBytecodeStorageReader_Base} from "./IBytecodeStorageReader_Base.sol";
7
+
8
+ /**
9
+ * @title This interface extends the IBytecodeStorageReader_Base interface with relevant events and functions used on the
10
+ * universal bytecode storage reader contract.
11
+ * @author Art Blocks Inc.
12
+ */
13
+ interface IUniversalBytecodeStorageReader is IBytecodeStorageReader_Base {
14
+ /**
15
+ * @notice The active bytecode storage reader contract being used by this universal reader was updated.
16
+ * @param activeReader The address of the new active bytecode storage reader contract.
17
+ */
18
+ event ReaderUpdated(address indexed activeReader);
19
+
20
+ /**
21
+ * @notice Update the active bytecode storage reader contract being used by this universal reader.
22
+ * @dev emits a ReaderUpdated event when successful.
23
+ * @param newBytecodeStorageReaderContract The address of the new active bytecode storage reader contract.
24
+ */
25
+ function updateBytecodeStorageReaderContract(
26
+ IBytecodeStorageReader_Base newBytecodeStorageReaderContract
27
+ ) external;
28
+ }
@@ -0,0 +1,58 @@
1
+ // SPDX-License-Identifier: MIT
2
+ // @dev file is sourced from OpenSea's repository: https://github.com/ProjectOpenSea/seadrop/blob/main/src/lib/ERC721SeaDropStructsErrorsAndEvents.sol
3
+ // @dev modified to not lock to specific version, as well as updated imports for this repository
4
+ pragma solidity ^0.8.17;
5
+
6
+ import {AllowListData, PublicDrop, SignedMintValidationParams, TokenGatedDropStage} from "./SeaDropStructs.sol";
7
+
8
+ interface ERC721SeaDropStructsErrorsAndEvents {
9
+ /**
10
+ * @notice Revert with an error if mint exceeds the max supply.
11
+ */
12
+ error MintQuantityExceedsMaxSupply(uint256 total, uint256 maxSupply);
13
+
14
+ /**
15
+ * @notice Revert with an error if the number of token gated
16
+ * allowedNftTokens doesn't match the length of supplied
17
+ * drop stages.
18
+ */
19
+ error TokenGatedMismatch();
20
+
21
+ /**
22
+ * @notice Revert with an error if the number of signers doesn't match
23
+ * the length of supplied signedMintValidationParams
24
+ */
25
+ error SignersMismatch();
26
+
27
+ /**
28
+ * @notice An event to signify that a SeaDrop token contract was deployed.
29
+ */
30
+ event SeaDropTokenDeployed();
31
+
32
+ /**
33
+ * @notice A struct to configure multiple contract options at a time.
34
+ */
35
+ struct MultiConfigureStruct {
36
+ uint256 maxSupply;
37
+ string baseURI;
38
+ string contractURI;
39
+ address seaDropImpl;
40
+ PublicDrop publicDrop;
41
+ string dropURI;
42
+ AllowListData allowListData;
43
+ address creatorPayoutAddress;
44
+ bytes32 provenanceHash;
45
+ address[] allowedFeeRecipients;
46
+ address[] disallowedFeeRecipients;
47
+ address[] allowedPayers;
48
+ address[] disallowedPayers;
49
+ // Token-gated
50
+ address[] tokenGatedAllowedNftTokens;
51
+ TokenGatedDropStage[] tokenGatedDropStages;
52
+ address[] disallowedTokenGatedAllowedNftTokens;
53
+ // Server-signed
54
+ address[] signers;
55
+ SignedMintValidationParams[] signedMintValidationParams;
56
+ address[] disallowedSigners;
57
+ }
58
+ }