@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,5 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ pragma solidity ^0.8.0;
3
+
4
+ // This file is just used to make sure ScriptyBuilderV2.sol is compiled for use in tests.
5
+ import "scripty.sol/contracts/scripty/ScriptyBuilderV2.sol";
@@ -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
+ }
@@ -3,60 +3,58 @@
3
3
 
4
4
  pragma solidity ^0.8.0;
5
5
 
6
+ import {IBytecodeStorageReader_Base} from "./IBytecodeStorageReader_Base.sol";
7
+
6
8
  /**
7
- * @title Art Blocks Script Storage Library (Reader)
8
- * @notice This interface defines the expected read functions for the Art Blocks Script Storage Library (Reader).
9
+ * @title Art Blocks Script Storage Library - Reader Contract
10
+ * @notice This interface defines the expected read functions for the Art Blocks Script Storage Library's Reader
11
+ * Contracts. It is extended from the base interface to add additional read functions for further introspection of
12
+ * stored data.
9
13
  */
10
- interface IBytecodeStorageReader {
11
- /**
12
- * @notice Read a string from contract bytecode
13
- * @param _address address of deployed contract with bytecode stored in the V0 or V1 format
14
- * @return data string read from contract bytecode
15
- * @dev This function performs input validation that the contract to read is in an expected format
16
- */
17
- function readFromBytecode(
18
- address _address
19
- ) external view returns (string memory data);
20
-
14
+ interface IBytecodeStorageReader is IBytecodeStorageReader_Base {
21
15
  /**
22
- * @notice Read the bytes from contract bytecode that was written to the EVM using SSTORE2
23
- * @param _address address of deployed contract with bytecode stored in the SSTORE2 format
24
- * @return data bytes read from contract bytecode
25
- * @dev This function performs no input validation on the provided contract,
26
- * other than that there is content to read (but not that its a "storage contract")
16
+ * @notice Read a bytes array from the SSTORE2-formatted bytecode of a contract.
17
+ * Note that this function is only compatible with contracts that have been deployed using the popular SSTORE2
18
+ * library.
19
+ * @dev see versioned BytecodeStorageReader implementation details to understand which data are being returned,
20
+ * espcially in the context of EOF updates.
21
+ * @param address_ address of contract with SSTORE2-formatted bytecode to be read
22
+ * @return data The bytes data stored at the specific address.
27
23
  */
28
24
  function readBytesFromSSTORE2Bytecode(
29
- address _address
25
+ address address_
30
26
  ) external view returns (bytes memory data);
31
27
 
32
28
  /**
33
- * @notice Read the bytes from contract bytecode, with an explicitly provided starting offset
34
- * @param _address address of deployed contract with bytecode stored in the V0 or V1 format
35
- * @param _offset offset to read from in contract bytecode, explicitly provided (not calculated)
36
- * @return data bytes read from contract bytecode
37
- * @dev This function performs no input validation on the provided contract,
38
- * other than that there is content to read (but not that its a "storage contract")
29
+ * @notice Read a bytes array from the a contract deployed via BytecodeStorage.
30
+ * @dev see versioned BytecodeStorageReader implementation details to understand which data are being returned, and
31
+ * how offset is interpreted, especially in the context of EOF updates.
32
+ * @param address_ address of contract with valid bytecode to be read
33
+ * @param offset offset to read from in contract bytecode, explicitly provided (not calculated)
34
+ * @return The bytes data stored at the specific address.
39
35
  */
40
36
  function readBytesFromBytecode(
41
- address _address,
42
- uint256 _offset
43
- ) external view returns (bytes memory data);
37
+ address address_,
38
+ uint256 offset
39
+ ) external view returns (bytes memory);
40
+
41
+ //------ Metadata Functions ------//
44
42
 
45
43
  /**
46
- * @notice Get address for deployer for given contract bytecode
47
- * @param _address address of deployed contract with bytecode stored in the V0 or V1 format
48
- * @return writerAddress address read from contract bytecode
44
+ * @notice Get address of deployer for given contract deployed via BytecodeStorage.
45
+ * @param address_ address of deployed contract
46
+ * @return writerAddress address of deployer
49
47
  */
50
48
  function getWriterAddressForBytecode(
51
- address _address
49
+ address address_
52
50
  ) external view returns (address);
53
51
 
54
52
  /**
55
- * @notice Get version for given contract bytecode
56
- * @param _address address of deployed contract with bytecode stored in the V0 or V1 format
57
- * @return version version read from contract bytecode
53
+ * @notice Get version for given contract deployed via BytecodeStorage.
54
+ * @param address_ address of deployed contract
55
+ * @return version version of the contract
58
56
  */
59
57
  function getLibraryVersionForBytecode(
60
- address _address
58
+ address address_
61
59
  ) external view returns (bytes32);
62
60
  }
@@ -0,0 +1,25 @@
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 a Bytecode Storage Reader contract.
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
+ //------ Metadata Functions ------//
16
+
17
+ /**
18
+ * @notice Get if data are stored in compressed format for given contract deployed via BytecodeStorage.
19
+ * @param _address address of deployed contract
20
+ * @return isCompressed boolean indicating if the stored data are compressed
21
+ */
22
+ function getIsCompressedForBytecode(
23
+ address _address
24
+ ) external view returns (bool);
25
+ }
@@ -0,0 +1,20 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Creatd By: Art Blocks Inc.
3
+
4
+ pragma solidity ^0.8.0;
5
+
6
+ /**
7
+ * @title Art Blocks Script Storage Library - Minimal Interface for Reader Contracts
8
+ * @notice This interface defines the minimal expected read function(s) for a Bytecode Storage Reader contract.
9
+ */
10
+ interface IBytecodeStorageReader_Base {
11
+ /**
12
+ * @notice Read a string from a data contract deployed via BytecodeStorage.
13
+ * @dev may also support reading additional stored data formats in the future.
14
+ * @param address_ address of contract deployed via BytecodeStorage to be read
15
+ * @return data The string data stored at the specific address.
16
+ */
17
+ function readFromBytecode(
18
+ address address_
19
+ ) external view returns (string memory data);
20
+ }
@@ -22,4 +22,9 @@ interface ICoreRegistryV1 is IEngineRegistryV0 {
22
22
  function isRegisteredContract(
23
23
  address contractAddress
24
24
  ) external view returns (bool isRegistered);
25
+
26
+ function getAllRegisteredContracts()
27
+ external
28
+ view
29
+ returns (address[] memory);
25
30
  }
@@ -3,96 +3,192 @@
3
3
  pragma solidity ^0.8.19;
4
4
 
5
5
  interface IDependencyRegistryV0 {
6
- event SupportedCoreContractAdded(address indexed _coreContractAddress);
6
+ // legacy event used before deferring to core registry for allowlist
7
+ event SupportedCoreContractAdded(address indexed coreContractAddress);
7
8
 
8
- event SupportedCoreContractRemoved(address indexed _coreContractAddress);
9
+ // legacy event used before deferring to core registry for allowlist
10
+ event SupportedCoreContractRemoved(address indexed coreContractAddress);
9
11
 
10
- event ProjectDependencyTypeOverrideAdded(
11
- address indexed _coreContractAddress,
12
- uint256 indexed _projectId,
13
- bytes32 _dependencyType
12
+ // active event used to add additional supported contracts beyond what core registry allows
13
+ event SupportedCoreContractOverrideAdded(
14
+ address indexed coreContractAddress
14
15
  );
15
16
 
16
- event ProjectDependencyTypeOverrideRemoved(
17
- address indexed _coreContractAddress,
18
- uint256 indexed _projectId
17
+ // active event used to remove additional supported contracts beyond what core registry allows
18
+ event SupportedCoreContractOverrideRemoved(
19
+ address indexed coreContractAddress
19
20
  );
20
21
 
21
- event LicenseTypeAdded(bytes32 indexed _licenseType);
22
+ event ProjectDependencyOverrideAdded(
23
+ address indexed coreContractAddress,
24
+ uint256 indexed projectId,
25
+ bytes32 dependencyNameAndVersion
26
+ );
27
+
28
+ event ProjectDependencyOverrideRemoved(
29
+ address indexed coreContractAddress,
30
+ uint256 indexed projectId
31
+ );
32
+
33
+ event LicenseTypeAdded(bytes32 indexed licenseType);
34
+
35
+ event LicenseTextUpdated(bytes32 indexed licenseType);
22
36
 
23
37
  event DependencyAdded(
24
- bytes32 indexed _dependencyType,
25
- bytes32 indexed _licenseType,
26
- string _preferredCDN,
27
- string _preferredRepository,
28
- string _referenceWebsite
38
+ bytes32 indexed dependencyNameAndVersion,
39
+ bytes32 indexed licenseType,
40
+ string preferredCDN,
41
+ string preferredRepository,
42
+ string website
29
43
  );
30
44
 
31
- event DependencyRemoved(bytes32 indexed _dependencyType);
45
+ event DependencyRemoved(bytes32 indexed dependencyNameAndVersion);
32
46
 
33
- event DependencyReferenceWebsiteUpdated(
34
- bytes32 indexed _dependencyType,
35
- string _referenceWebsite
47
+ event DependencyWebsiteUpdated(
48
+ bytes32 indexed dependencyNameAndVersion,
49
+ string website
36
50
  );
37
51
 
38
52
  event DependencyPreferredCDNUpdated(
39
- bytes32 indexed _dependencyType,
40
- string _preferredCDN
53
+ bytes32 indexed dependencyNameAndVersion,
54
+ string preferredCDN
41
55
  );
42
56
 
43
57
  event DependencyPreferredRepositoryUpdated(
44
- bytes32 indexed _dependencyType,
45
- string _preferredRepository
58
+ bytes32 indexed dependencyNameAndVersion,
59
+ string preferredRepository
46
60
  );
47
61
 
48
62
  event DependencyAdditionalCDNUpdated(
49
- bytes32 indexed _dependencyType,
50
- string _additionalCDN,
51
- uint256 _additionalCDNIndex
63
+ bytes32 indexed dependencyNameAndVersion,
64
+ string additionalCDN,
65
+ uint256 additionalCDNIndex
52
66
  );
53
67
 
54
68
  event DependencyAdditionalCDNRemoved(
55
- bytes32 indexed _dependencyType,
56
- uint256 indexed _additionalCDNIndex
69
+ bytes32 indexed dependencyNameAndVersion,
70
+ uint256 indexed additionalCDNIndex
57
71
  );
58
72
 
59
73
  event DependencyAdditionalRepositoryUpdated(
60
- bytes32 indexed _dependencyType,
61
- string _additionalRepository,
62
- uint256 _additionalRepositoryIndex
74
+ bytes32 indexed dependencyNameAndVersion,
75
+ string additionalRepository,
76
+ uint256 additionalRepositoryIndex
63
77
  );
64
78
 
65
79
  event DependencyAdditionalRepositoryRemoved(
66
- bytes32 indexed _dependencyType,
67
- uint256 indexed _additionalRepositoryIndex
80
+ bytes32 indexed dependencyNameAndVersion,
81
+ uint256 indexed additionalRepositoryIndex
68
82
  );
69
83
 
70
- event DependencyScriptUpdated(bytes32 indexed _dependencyType);
84
+ event DependencyScriptUpdated(bytes32 indexed dependencyNameAndVersion);
85
+
86
+ event CoreRegistryAddressUpdated(address indexed coreRegistryAddress);
71
87
 
72
88
  /**
73
- * @notice Returns the count of scripts for dependency `_dependencyType`.
74
- * @param _dependencyType Dependency type to be queried.
89
+ * @notice Returns the count of scripts for dependency `dependencyNameAndVersion`.
90
+ * @param dependencyNameAndVersion Dependency type to be queried.
75
91
  */
76
92
  function getDependencyScriptCount(
77
- bytes32 _dependencyType
93
+ bytes32 dependencyNameAndVersion
78
94
  ) external view returns (uint256);
79
95
 
80
96
  /**
81
97
  * @notice Returns address with bytecode containing script for
82
- * dependency type `_dependencyTypes` at script index `_index`.
98
+ * dependency type `dependencyNameAndVersions` at script index `index`.
83
99
  */
84
100
  function getDependencyScriptBytecodeAddress(
85
- bytes32 _dependencyType,
86
- uint256 _index
101
+ bytes32 dependencyNameAndVersion,
102
+ uint256 index
87
103
  ) external view returns (address);
88
104
 
89
105
  /**
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.
106
+ * @notice Returns script for dependency type `dependencyNameAndVersion` at script index `index`.
107
+ * @param dependencyNameAndVersion Dependency type to be queried.
108
+ * @param index Index of script to be queried.
93
109
  */
94
110
  function getDependencyScript(
95
- bytes32 _dependencyType,
96
- uint256 _index
111
+ bytes32 dependencyNameAndVersion,
112
+ uint256 index
97
113
  ) external view returns (string memory);
114
+
115
+ /**
116
+ * @notice Returns details for a given dependency type `dependencyNameAndVersion`.
117
+ * @param dependencyNameAndVersion Name and version of dependency (i.e. "name@version") used to identify dependency.
118
+ * @return nameAndVersion String representation of `dependencyNameAndVersion`.
119
+ * (e.g. "p5js(atSymbol)1.0.0")
120
+ * @return licenseType License type for dependency
121
+ * @return preferredCDN Preferred CDN URL for dependency
122
+ * @return additionalCDNCount Count of additional CDN URLs for dependency
123
+ * @return preferredRepository Preferred repository URL for dependency
124
+ * @return additionalRepositoryCount Count of additional repository URLs for dependency
125
+ * @return dependencyWebsite Project website URL for dependency
126
+ * @return availableOnChain Whether dependency is available on chain
127
+ * @return scriptCount Count of on-chain scripts for dependency
128
+ */
129
+ function getDependencyDetails(
130
+ bytes32 dependencyNameAndVersion
131
+ )
132
+ external
133
+ view
134
+ returns (
135
+ string memory nameAndVersion,
136
+ string memory licenseType,
137
+ string memory preferredCDN,
138
+ uint24 additionalCDNCount,
139
+ string memory preferredRepository,
140
+ uint24 additionalRepositoryCount,
141
+ string memory dependencyWebsite,
142
+ bool availableOnChain,
143
+ uint24 scriptCount
144
+ );
145
+
146
+ /**
147
+ * @notice Returns the dependency name and version for a given project (`projectId`)
148
+ * on a given core contract (`_contractAddress`). If no override is set,
149
+ * the core contract is called to retrieve the script type and version as
150
+ * dependency type. For any contract earlier than v3, that does not have
151
+ * an override set, this will revert.
152
+ * @param contractAddress Core contract address.
153
+ * @param projectId Project to return dependency type for.
154
+ * @return dependencyType Identifier for the dependency (i.e. "name@version") used by project.
155
+ */
156
+ function getDependencyNameAndVersionForProject(
157
+ address contractAddress,
158
+ uint256 projectId
159
+ ) external view returns (string memory);
160
+
161
+ /**
162
+ * @notice Returns whether the given contract address is a supported core contract.
163
+ * @param coreContractAddress Address of the core contract to be queried.
164
+ * @return True if the given contract address is a supported core contract.
165
+ */
166
+ function isSupportedCoreContract(
167
+ address coreContractAddress
168
+ ) external view returns (bool);
169
+
170
+ /**
171
+ * @notice Convenience function that returns whether `_sender` is allowed
172
+ * to call function with selector `_selector` on contract `_contract`, as
173
+ * determined by this contract's current Admin ACL contract. Expected use
174
+ * cases include minter contracts checking if caller is allowed to call
175
+ * admin-gated functions on minter contracts.
176
+ * @param sender Address of the sender calling function with selector
177
+ * `selector` on contract `contract_`.
178
+ * @param contract_ Address of the contract being called by `sender`.
179
+ * @param selector Function selector of the function being called by
180
+ * `sender`.
181
+ * @return bool Whether `sender` is allowed to call function with selector
182
+ * `selector` on contract `contract_`.
183
+ * @dev assumes the Admin ACL contract is the owner of this contract, which
184
+ * is expected to always be true.
185
+ * @dev adminACLContract is expected to either be null address (if owner
186
+ * has renounced ownership), or conform to IAdminACLV0 interface. Check for
187
+ * null address first to avoid revert when admin has renounced ownership.
188
+ */
189
+ function adminACLAllowed(
190
+ address sender,
191
+ address contract_,
192
+ bytes4 selector
193
+ ) external returns (bool);
98
194
  }
@@ -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
+ {}