@artblocks/contracts 1.0.4 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (289) hide show
  1. package/README.md +75 -7
  2. package/artifacts/contracts/AdminACLV0.sol/AdminACLV0.json +2 -2
  3. package/artifacts/contracts/AdminACLV1.sol/AdminACLV1.json +2 -2
  4. package/artifacts/contracts/DependencyRegistryV0.sol/DependencyRegistryV0.json +336 -131
  5. package/artifacts/contracts/archive/GenArt721CoreV3.sol/GenArt721CoreV3.json +2047 -0
  6. package/artifacts/contracts/archive/GenArt721CoreV3_Explorations.sol/GenArt721CoreV3_Explorations.json +2021 -0
  7. package/artifacts/contracts/{minter-suite → archive/minter-suite}/Minters/MinterBase_v0_1_1.sol/MinterBase.json +1 -1
  8. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV2.sol/MinterDAExpV2.json +2 -2
  9. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV3.sol/MinterDAExpV3.json +2 -2
  10. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterDAExp}/MinterDAExpV4.sol/MinterDAExpV4.json +3 -3
  11. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol/MinterDAExpSettlementV0.json +2 -2
  12. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV1.sol/MinterDAExpSettlementV1.json +2 -2
  13. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV2.sol/MinterDAExpSettlementV2.json +1109 -0
  14. package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV2.sol/MinterDALinV2.json +2 -2
  15. package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV3.sol/MinterDALinV3.json +2 -2
  16. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterDALin}/MinterDALinV4.sol/MinterDALinV4.json +3 -3
  17. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV1.sol/MinterHolderV1.json +2 -2
  18. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV2.sol/MinterHolderV2.json +2 -2
  19. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV3.sol/MinterHolderV3.json +2 -2
  20. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterHolder}/MinterHolderV4.sol/MinterHolderV4.json +3 -3
  21. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV1.sol/MinterMerkleV1.json +2 -2
  22. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV2.sol/MinterMerkleV2.json +2 -2
  23. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV3.sol/MinterMerkleV3.json +2 -2
  24. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV4.sol/MinterMerkleV4.json +2 -2
  25. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterMerkle}/MinterMerkleV5.sol/MinterMerkleV5.json +3 -3
  26. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterPolyptych}/MinterPolyptychV0.sol/IGenArt721CoreContractV3WithRandomizer.json +31 -63
  27. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterPolyptych}/MinterPolyptychV0.sol/MinterPolyptychV0.json +3 -3
  28. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterSEA}/MinterSEAV0.sol/MinterSEAV0.json +3 -3
  29. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV2.sol/MinterSetPriceV2.json +2 -2
  30. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV3.sol/MinterSetPriceV3.json +2 -2
  31. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterSetPrice}/MinterSetPriceV4.sol/MinterSetPriceV4.json +3 -3
  32. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V0.sol/MinterSetPriceERC20V0.json +65 -2
  33. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V1.sol/MinterSetPriceERC20V1.json +65 -2
  34. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V2.sol/MinterSetPriceERC20V2.json +2 -2
  35. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V3.sol/MinterSetPriceERC20V3.json +2 -2
  36. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V4.sol/MinterSetPriceERC20V4.json +807 -0
  37. package/artifacts/contracts/engine/V2/GenArt721MinterBurner_PBAB.sol/GenArt721MinterBurner_PBAB.json +65 -2
  38. package/artifacts/contracts/engine/V2/GenArt721Minter_PBAB.sol/GenArt721Minter_PBAB.json +65 -2
  39. package/artifacts/contracts/engine/V3/EngineFactoryV0.sol/EngineFactoryV0.json +606 -0
  40. package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine.sol/GenArt721CoreV3_Engine.json +565 -209
  41. package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol/GenArt721CoreV3_Engine_Flex.json +785 -227
  42. package/artifacts/contracts/engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol/GenArt721CoreV3_Engine_Flex_PROOF.json +40 -15
  43. package/artifacts/contracts/engine/V3/forks/PROHIBITION/AdminACLV0_PROHIBITION.sol/AdminACLV0_PROHIBITION.json +2 -2
  44. package/artifacts/contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol/GenArt721CoreV3_Engine_Flex_PROHIBITION.json +40 -15
  45. package/artifacts/contracts/engine/V3/forks/PROHIBITION/interfaces/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.sol/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.json +36 -68
  46. package/artifacts/contracts/engine-registry/CoreRegistryV1.sol/CoreRegistryV1.json +12 -12
  47. package/artifacts/contracts/interfaces/v0.8.x/IAdminACLV0_Extended.sol/IAdminACLV0_Extended.json +140 -0
  48. package/artifacts/contracts/interfaces/v0.8.x/IBytecodeStorageReaderV2.sol/IBytecodeStorageReaderV2.json +130 -0
  49. package/artifacts/contracts/interfaces/v0.8.x/ICoreRegistryV1.sol/ICoreRegistryV1.json +6 -6
  50. package/artifacts/contracts/interfaces/v0.8.x/IDependencyRegistryV0.sol/IDependencyRegistryV0.json +71 -39
  51. package/artifacts/contracts/interfaces/v0.8.x/IEngineFactoryV0.sol/IEngineFactoryV0.json +283 -0
  52. package/artifacts/contracts/interfaces/v0.8.x/IFilteredMinterDAExpSettlementV0.sol/IFilteredMinterDAExpSettlementV0.json +12 -12
  53. package/artifacts/contracts/interfaces/v0.8.x/IFilteredMinterDAExpSettlementV1.sol/IFilteredMinterDAExpSettlementV1.json +12 -12
  54. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3.sol/IGenArt721CoreContractV3.json +30 -62
  55. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Base.sol/IGenArt721CoreContractV3_Base.json +30 -62
  56. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine.sol/IGenArt721CoreContractV3_Engine.json +170 -104
  57. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex.sol/IGenArt721CoreContractV3_Engine_Flex.json +170 -104
  58. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex_PreV3p2.sol/IGenArt721CoreContractV3_Engine_Flex_PreV3p2.json +1028 -0
  59. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_PreV3p2.sol/IGenArt721CoreContractV3_Engine_PreV3p2.json +741 -0
  60. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_ProjectFinance.sol/IGenArt721CoreContractV3_ProjectFinance.json +87 -0
  61. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721Minter_PBAB.sol/IGenArt721Minter_PBAB.json +279 -0
  62. package/artifacts/contracts/interfaces/v0.8.x/IMinterFilterV1.sol/IMinterFilterV1.json +22 -22
  63. package/artifacts/contracts/interfaces/v0.8.x/IPseudorandomAtomic.sol/IPseudorandomAtomic.json +1 -1
  64. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDAExpSettlementV0.sol/ISharedMinterDAExpSettlementV0.json +26 -101
  65. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDAExpV0.sol/ISharedMinterDAExpV0.json +1 -57
  66. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDALinV0.sol/ISharedMinterDALinV0.json +1 -57
  67. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDAV0.sol/ISharedMinterDAV0.json +2 -21
  68. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterHolderERC20V0.sol/ISharedMinterHolderERC20V0.json +158 -0
  69. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterHolderV0.sol/ISharedMinterHolderV0.json +15 -90
  70. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterMerkleV0.sol/ISharedMinterMerkleV0.json +10 -36
  71. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterRAMV0.sol/ISharedMinterRAMV0.json +62 -0
  72. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterRequired.sol/ISharedMinterRequired.json +37 -0
  73. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterSEAV0.sol/ISharedMinterSEAV0.json +4 -236
  74. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterSimplePurchaseV0.sol/ISharedMinterSimplePurchaseV0.json +5 -5
  75. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterV0.sol/ISharedMinterV0.json +7 -423
  76. package/artifacts/contracts/interfaces/v0.8.x/ISharedRandomizerV0.sol/ISharedRandomizerV0.json +17 -17
  77. package/artifacts/contracts/interfaces/v0.8.x/ISplitAtomicFactoryV0.sol/ISplitAtomicFactoryV0.json +170 -0
  78. package/artifacts/contracts/interfaces/v0.8.x/ISplitAtomicV0.sol/ISplitAtomicV0.json +126 -0
  79. package/artifacts/contracts/interfaces/v0.8.x/ISplitProviderV0.sol/ISplitProviderV0.json +98 -0
  80. package/artifacts/contracts/interfaces/v0.8.x/integration-refs/splits-0x-v2/ISplitFactoryV2.sol/ISplitFactoryV2.json +123 -0
  81. package/artifacts/contracts/libs/integration-refs/delegation-registry/DelegationRegistry.sol/DelegationRegistry.json +2 -2
  82. package/artifacts/contracts/libs/integration-refs/gnosis-safe/GnosisSafeMock.sol/GnosisSafeMock.json +2 -2
  83. package/artifacts/contracts/libs/integration-refs/gnosis-safe/GnosisSafeProxyFactoryMock.sol/GnosisSafeProxyFactoryMock.json +2 -2
  84. package/artifacts/contracts/libs/integration-refs/gnosis-safe/MultiSendMock.sol/MultiSendMock.json +2 -2
  85. package/artifacts/contracts/libs/integration-refs/weth9/weth9.sol/WETH9_.json +2 -2
  86. package/artifacts/contracts/libs/v0.8.x/ABHelpers.sol/ABHelpers.json +2 -2
  87. package/artifacts/contracts/libs/v0.8.x/AuthLib.sol/AuthLib.json +2 -2
  88. package/artifacts/contracts/libs/v0.8.x/BitMap.sol/BitMaps256.json +10 -0
  89. package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV0.sol/BytecodeStorage.json +2 -2
  90. package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV1.sol/BytecodeStorageReader.json +2 -2
  91. package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV1.sol/BytecodeStorageWriter.json +2 -2
  92. package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV2.sol/BytecodeStorageReader.json +214 -0
  93. package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV2.sol/BytecodeStorageWriter.json +10 -0
  94. package/artifacts/contracts/libs/v0.8.x/Bytes32Strings.sol/Bytes32Strings.json +2 -2
  95. package/artifacts/contracts/libs/v0.8.x/DependencyRegistryStorageLib.sol/DependencyRegistryStorageLib.json +10 -0
  96. package/artifacts/contracts/libs/v0.8.x/ERC721_PackedHashSeed.sol/ERC721_PackedHashSeed.json +2 -2
  97. package/artifacts/contracts/libs/v0.8.x/ERC721_PackedHashSeedV1.sol/ERC721_PackedHashSeedV1.json +444 -0
  98. package/artifacts/contracts/libs/v0.8.x/PackedBools.sol/PackedBools.json +10 -0
  99. package/artifacts/contracts/libs/v0.8.x/SSTORE2.sol/SSTORE2.json +2 -2
  100. package/artifacts/contracts/libs/v0.8.x/V3FlexLib.sol/V3FlexLib.json +208 -0
  101. package/artifacts/contracts/libs/v0.8.x/minter-libs/DAExpLib.sol/DAExpLib.json +60 -3
  102. package/artifacts/contracts/libs/v0.8.x/minter-libs/DALib.sol/DALib.json +30 -0
  103. package/artifacts/contracts/libs/v0.8.x/minter-libs/DALinLib.sol/DALinLib.json +60 -3
  104. package/artifacts/contracts/libs/v0.8.x/minter-libs/GenericMinterEventsLib.sol/GenericMinterEventsLib.json +346 -0
  105. package/artifacts/contracts/libs/v0.8.x/minter-libs/MaxInvocationsLib.sol/MaxInvocationsLib.json +29 -3
  106. package/artifacts/contracts/libs/v0.8.x/minter-libs/MerkleLib.sol/MerkleLib.json +30 -3
  107. package/artifacts/contracts/libs/v0.8.x/minter-libs/PolyptychLib.sol/PolyptychLib.json +2 -2
  108. package/artifacts/contracts/libs/v0.8.x/minter-libs/RAMLib.sol/RAMLib.json +398 -0
  109. package/artifacts/contracts/libs/v0.8.x/minter-libs/SEALib.sol/SEALib.json +254 -3
  110. package/artifacts/contracts/libs/v0.8.x/minter-libs/SetPriceLib.sol/SetPriceLib.json +48 -3
  111. package/artifacts/contracts/libs/v0.8.x/minter-libs/SettlementExpLib.sol/SettlementExpLib.json +41 -3
  112. package/artifacts/contracts/libs/v0.8.x/minter-libs/SplitFundsLib.sol/SplitFundsLib.json +35 -3
  113. package/artifacts/contracts/libs/v0.8.x/minter-libs/TokenHolderLib.sol/TokenHolderLib.json +79 -3
  114. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV1.sol/MinterFilterV1.json +2 -2
  115. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV2.sol/MinterFilterV2.json +41 -41
  116. package/artifacts/contracts/minter-suite/Minters/MinterDAExpHolderV5.sol/MinterDAExpHolderV5.json +66 -632
  117. package/artifacts/contracts/minter-suite/Minters/MinterDAExpSettlementV3.sol/MinterDAExpSettlementV3.json +67 -594
  118. package/artifacts/contracts/minter-suite/Minters/MinterDAExpV5.sol/MinterDAExpV5.json +33 -524
  119. package/artifacts/contracts/minter-suite/Minters/MinterDALinHolderV5.sol/MinterDALinHolderV5.json +66 -632
  120. package/artifacts/contracts/minter-suite/Minters/MinterDALinV5.sol/MinterDALinV5.json +33 -524
  121. package/artifacts/contracts/minter-suite/Minters/MinterRAMV0.sol/MinterRAMV0.json +1374 -0
  122. package/artifacts/contracts/minter-suite/Minters/MinterSEAV1.sol/MinterSEAV1.json +56 -722
  123. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20V5.sol/MinterSetPriceERC20V5.json +58 -454
  124. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceHolderV5.sol/MinterSetPriceHolderV5.json +61 -552
  125. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceMerkleV5.sol/MinterSetPriceMerkleV5.json +55 -497
  126. package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychERC20V5.sol/MinterSetPricePolyptychERC20V5.json +110 -571
  127. package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychV5.sol/MinterSetPricePolyptychV5.json +69 -560
  128. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceV5.sol/MinterSetPriceV5.json +28 -444
  129. package/artifacts/contracts/minter-suite/Minters/one-off/MinterSetPriceV5_SingleCore.sol/MinterSetPriceV5_SingleCore.json +417 -0
  130. package/artifacts/contracts/mock/BytecodeV2LibCallsMock.sol/BytecodeV2LibCallsMock.json +154 -0
  131. package/artifacts/contracts/mock/BytecodeV2TextCR_DMock.sol/BytecodeV2TextCR_DMock.json +428 -0
  132. package/artifacts/contracts/mock/DummySharedMinter.sol/DummySharedMinter.json +2 -2
  133. package/artifacts/contracts/mock/ERC20Mock.sol/ERC20Mock.json +2 -2
  134. package/artifacts/contracts/mock/ForceSendMock.sol/ForceSendMock.json +24 -0
  135. package/artifacts/contracts/mock/GenArt721CoreV3_Engine_IncorrectCoreType.sol/GenArt721CoreV3_Engine_IncorrectCoreType.json +4 -9
  136. package/artifacts/contracts/mock/Mock0xSplitsV2PullFactory.sol/Mock0xSplitsV2PullFactory.json +149 -0
  137. package/artifacts/contracts/mock/Mock0xSplitsV2Splitter.sol/Mock0xSplitsV2Splitter.json +99 -0
  138. package/artifacts/contracts/mock/MockAdminACLV0.sol/MockAdminACLV0Events.json +20 -2
  139. package/artifacts/contracts/mock/MockAdminACLV0_PROHIBITION.sol/MockAdminACLV0Events_PROHIBITION.json +20 -2
  140. package/artifacts/contracts/mock/OriginRegisterMock.sol/OriginRegisterMock.json +2 -2
  141. package/artifacts/contracts/mock/RandomizerV2_NoAssignMock.sol/RandomizerV2_NoAssignMock.json +2 -2
  142. package/artifacts/contracts/mock/ReentrancyGenArt721MinterMock.sol/ReentrancyGenArt721MinterMock.json +100 -0
  143. package/artifacts/contracts/mock/ReentrancyHolderMock.sol/ReentrancyHolderMock.json +2 -2
  144. package/artifacts/contracts/mock/ReentrancyHolderMockShared.sol/ReentrancyHolderMockShared.json +136 -0
  145. package/artifacts/contracts/mock/ReentrancyMerkleMock.sol/ReentrancyMerkleMock.json +2 -2
  146. package/artifacts/contracts/mock/ReentrancyMerkleMockShared.sol/ReentrancyMerkleMockShared.json +105 -0
  147. package/artifacts/contracts/mock/ReentrancyMock.sol/ReentrancyMock.json +2 -2
  148. package/artifacts/contracts/mock/ReentrancyMockShared.sol/ReentrancyMockShared.json +100 -0
  149. package/artifacts/contracts/mock/ReentrancySEAMock.sol/ReentrancySEAAutoBidderMock.json +2 -2
  150. package/artifacts/contracts/mock/ReentrancySEAMockShared.sol/ReentrancySEAAutoBidderMockShared.json +69 -0
  151. package/artifacts/contracts/mock/ReentrancySplitterMocks.sol/ReentrancySplitterDrainETHMock.json +54 -0
  152. package/artifacts/contracts/mock/ReentrancySplitterMocks.sol/ReentrancySplitterSendETHMock.json +54 -0
  153. package/artifacts/contracts/randomizer/deprecated/PolyptychRandomizerV0.sol/BasicPolyptychRandomizerV0.json +2 -2
  154. package/artifacts/contracts/randomizer/deprecated/RandomizerV2.sol/BasicRandomizerV2.json +2 -2
  155. package/artifacts/contracts/randomizer/primitive/PseudorandomAtomicBasic.sol/PseudorandomAtomic.json +2 -2
  156. package/artifacts/contracts/randomizer/shared/SharedRandomizerV0.sol/SharedRandomizerV0.json +19 -19
  157. package/artifacts/contracts/split/SplitAtomicFactoryV0.sol/SplitAtomicFactoryV0.json +203 -0
  158. package/artifacts/contracts/split/SplitAtomicV0.sol/SplitAtomicV0.json +168 -0
  159. package/artifacts/contracts/split/split-provider/SplitProviderV0.sol/SplitProviderV0.json +141 -0
  160. package/contracts/AdminACLV0.sol +6 -2
  161. package/contracts/AdminACLV1.sol +2 -2
  162. package/contracts/DependencyRegistryV0.sol +737 -390
  163. package/contracts/{GenArt721CoreV3.sol → archive/GenArt721CoreV3.sol} +56 -20
  164. package/contracts/{explorations → archive}/GenArt721CoreV3_Explorations.sol +49 -13
  165. package/contracts/{minter-suite → archive/minter-suite}/Minters/MinterBase_v0_1_1.sol +4 -4
  166. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterDAExp}/MinterDAExpV4.sol +4 -4
  167. package/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol +4 -4
  168. package/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV1.sol +5 -5
  169. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterDAExpSettlement}/MinterDAExpSettlementV2.sol +9 -62
  170. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterDALin}/MinterDALinV4.sol +4 -4
  171. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterHolder}/MinterHolderV4.sol +5 -5
  172. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterMerkle}/MinterMerkleV5.sol +5 -5
  173. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterPolyptych}/MinterPolyptychV0.sol +7 -7
  174. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterSEA}/MinterSEAV0.sol +13 -13
  175. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterSetPrice}/MinterSetPriceV4.sol +4 -4
  176. package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V0.sol +82 -10
  177. package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V1.sol +82 -10
  178. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterSetPriceERC20}/MinterSetPriceERC20V4.sol +88 -21
  179. package/contracts/engine/V2/GenArt721MinterBurner_PBAB.sol +81 -22
  180. package/contracts/engine/V2/GenArt721Minter_PBAB.sol +80 -22
  181. package/contracts/engine/V3/EngineFactoryV0.sol +419 -0
  182. package/contracts/engine/V3/GenArt721CoreV3_Engine.sol +893 -493
  183. package/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol +1053 -655
  184. package/contracts/engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol +7 -13
  185. package/contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol +5 -11
  186. package/contracts/engine/V3/forks/PROHIBITION/interfaces/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.sol +2 -2
  187. package/contracts/engine-registry/CoreRegistryV1.sol +58 -65
  188. package/contracts/interfaces/v0.8.x/IAdminACLV0_Extended.sol +20 -0
  189. package/contracts/interfaces/v0.8.x/IBytecodeStorageReaderV2.sol +23 -0
  190. package/contracts/interfaces/v0.8.x/ICoreRegistryV1.sol +6 -8
  191. package/contracts/interfaces/v0.8.x/IDependencyRegistryV0.sol +48 -43
  192. package/contracts/interfaces/v0.8.x/IEngineFactoryV0.sol +124 -0
  193. package/contracts/interfaces/v0.8.x/IFilteredMinterDAExpSettlementV0.sol +1 -3
  194. package/contracts/interfaces/v0.8.x/IFilteredMinterDAExpSettlementV1.sol +1 -3
  195. package/contracts/interfaces/v0.8.x/IFilteredMinterDAExpV1.sol +1 -3
  196. package/contracts/interfaces/v0.8.x/IFilteredMinterDALinV1.sol +1 -3
  197. package/contracts/interfaces/v0.8.x/IFilteredMinterHolderV2.sol +1 -3
  198. package/contracts/interfaces/v0.8.x/IFilteredMinterMerkleV2.sol +1 -3
  199. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Base.sol +115 -11
  200. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine.sol +84 -8
  201. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex.sol +26 -8
  202. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex_PreV3p2.sol +141 -0
  203. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_PreV3p2.sol +78 -0
  204. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_ProjectFinance.sol +47 -0
  205. package/contracts/interfaces/v0.8.x/IGenArt721Minter_PBAB.sol +91 -0
  206. package/contracts/interfaces/v0.8.x/IMinterFilterV1.sol +25 -25
  207. package/contracts/interfaces/v0.8.x/IPseudorandomAtomic.sol +1 -3
  208. package/contracts/interfaces/v0.8.x/ISharedMinterDAExpSettlementV0.sol +30 -20
  209. package/contracts/interfaces/v0.8.x/ISharedMinterDAExpV0.sol +1 -14
  210. package/contracts/interfaces/v0.8.x/ISharedMinterDALinV0.sol +1 -15
  211. package/contracts/interfaces/v0.8.x/ISharedMinterDAV0.sol +2 -8
  212. package/contracts/interfaces/v0.8.x/ISharedMinterHolderERC20V0.sol +47 -0
  213. package/contracts/interfaces/v0.8.x/ISharedMinterHolderV0.sol +15 -43
  214. package/contracts/interfaces/v0.8.x/ISharedMinterMerkleV0.sol +10 -20
  215. package/contracts/interfaces/v0.8.x/ISharedMinterRAMV0.sol +23 -0
  216. package/contracts/interfaces/v0.8.x/ISharedMinterRequired.sol +20 -0
  217. package/contracts/interfaces/v0.8.x/ISharedMinterSEAV0.sol +1 -67
  218. package/contracts/interfaces/v0.8.x/ISharedMinterSimplePurchaseV0.sol +5 -5
  219. package/contracts/interfaces/v0.8.x/ISharedMinterV0.sol +18 -160
  220. package/contracts/interfaces/v0.8.x/ISharedRandomizerV0.sol +37 -37
  221. package/contracts/interfaces/v0.8.x/ISplitAtomicFactoryV0.sol +81 -0
  222. package/contracts/interfaces/v0.8.x/ISplitAtomicV0.sol +72 -0
  223. package/contracts/interfaces/v0.8.x/ISplitProviderV0.sol +49 -0
  224. package/contracts/interfaces/v0.8.x/integration-refs/splits-0x-v2/ISplitFactoryV2.sol +62 -0
  225. package/contracts/libs/v0.8.x/ABHelpers.sol +31 -17
  226. package/contracts/libs/v0.8.x/AuthLib.sol +101 -102
  227. package/contracts/libs/v0.8.x/BitMap.sol +112 -0
  228. package/contracts/libs/v0.8.x/BytecodeStorageV2.sol +593 -0
  229. package/contracts/libs/v0.8.x/Bytes32Strings.sol +5 -5
  230. package/contracts/libs/v0.8.x/DependencyRegistryStorageLib.sol +90 -0
  231. package/contracts/libs/v0.8.x/ERC721_PackedHashSeedV1.sol +591 -0
  232. package/contracts/libs/v0.8.x/PackedBools.sol +42 -0
  233. package/contracts/libs/v0.8.x/V3FlexLib.sol +591 -0
  234. package/contracts/libs/v0.8.x/minter-libs/DAExpLib.sol +162 -39
  235. package/contracts/libs/v0.8.x/minter-libs/DALib.sol +26 -0
  236. package/contracts/libs/v0.8.x/minter-libs/DALinLib.sol +139 -37
  237. package/contracts/libs/v0.8.x/minter-libs/GenericMinterEventsLib.sol +171 -0
  238. package/contracts/libs/v0.8.x/minter-libs/MaxInvocationsLib.sol +299 -158
  239. package/contracts/libs/v0.8.x/minter-libs/MerkleLib.sol +268 -55
  240. package/contracts/libs/v0.8.x/minter-libs/PolyptychLib.sol +138 -58
  241. package/contracts/libs/v0.8.x/minter-libs/RAMLib.sol +2927 -0
  242. package/contracts/libs/v0.8.x/minter-libs/SEALib.sol +796 -123
  243. package/contracts/libs/v0.8.x/minter-libs/SetPriceLib.sol +131 -13
  244. package/contracts/libs/v0.8.x/minter-libs/SettlementExpLib.sol +607 -224
  245. package/contracts/libs/v0.8.x/minter-libs/SplitFundsLib.sol +494 -330
  246. package/contracts/libs/v0.8.x/minter-libs/TokenHolderLib.sol +217 -78
  247. package/contracts/minter-suite/MinterFilter/MinterFilterV2.sol +358 -309
  248. package/contracts/minter-suite/Minters/MinterDAExpHolderV5.sol +391 -491
  249. package/contracts/minter-suite/Minters/MinterDAExpSettlementV3.sol +396 -632
  250. package/contracts/minter-suite/Minters/MinterDAExpV5.sol +212 -273
  251. package/contracts/minter-suite/Minters/MinterDALinHolderV5.sol +393 -488
  252. package/contracts/minter-suite/Minters/MinterDALinV5.sol +220 -277
  253. package/contracts/minter-suite/Minters/MinterRAMV0.sol +1205 -0
  254. package/contracts/minter-suite/Minters/MinterSEAV1.sol +329 -677
  255. package/contracts/minter-suite/Minters/MinterSetPriceERC20V5.sol +287 -303
  256. package/contracts/minter-suite/Minters/MinterSetPriceHolderV5.sol +355 -446
  257. package/contracts/minter-suite/Minters/MinterSetPriceMerkleV5.sol +328 -416
  258. package/contracts/minter-suite/Minters/MinterSetPricePolyptychERC20V5.sol +552 -622
  259. package/contracts/minter-suite/Minters/MinterSetPricePolyptychV5.sol +429 -553
  260. package/contracts/minter-suite/Minters/MinterSetPriceV5.sol +180 -227
  261. package/contracts/minter-suite/Minters/one-off/MinterSetPriceV5_SingleCore.sol +446 -0
  262. package/contracts/mock/BytecodeV2LibCallsMock.sol +128 -0
  263. package/contracts/mock/BytecodeV2TextCR_DMock.sol +316 -0
  264. package/contracts/mock/ForceSendMock.sol +22 -0
  265. package/contracts/mock/GenArt721CoreV3_Engine_IncorrectCoreType.sol +3 -10
  266. package/contracts/mock/Mock0xSplitsV2PullFactory.sol +75 -0
  267. package/contracts/mock/Mock0xSplitsV2Splitter.sol +47 -0
  268. package/contracts/mock/MockAdminACLV0.sol +21 -0
  269. package/contracts/mock/MockAdminACLV0_PROHIBITION.sol +21 -0
  270. package/contracts/mock/ReentrancyGenArt721MinterMock.sol +47 -0
  271. package/contracts/mock/ReentrancyHolderMockShared.sol +59 -0
  272. package/contracts/mock/ReentrancyMerkleMockShared.sol +58 -0
  273. package/contracts/mock/ReentrancyMockShared.sol +48 -0
  274. package/contracts/mock/ReentrancySEAMockShared.sol +40 -0
  275. package/contracts/mock/ReentrancySplitterMocks.sol +67 -0
  276. package/contracts/randomizer/primitive/PseudorandomAtomicBasic.sol +1 -1
  277. package/contracts/randomizer/shared/SharedRandomizerV0.sol +79 -71
  278. package/contracts/split/SplitAtomicFactoryV0.sol +121 -0
  279. package/contracts/split/SplitAtomicV0.sol +265 -0
  280. package/contracts/split/split-provider/SplitProviderV0.sol +201 -0
  281. package/package.json +79 -45
  282. package/artifacts/contracts/GenArt721CoreV3.sol/GenArt721CoreV3.json +0 -1965
  283. package/artifacts/contracts/explorations/GenArt721CoreV3_Explorations.sol/GenArt721CoreV3_Explorations.json +0 -1939
  284. package/artifacts/contracts/minter-suite/Minters/MinterDAExpSettlementV2.sol/MinterDAExpSettlementV2.json +0 -1127
  285. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20V4.sol/MinterSetPriceERC20V4.json +0 -768
  286. package/artifacts/contracts/royalty-registry/GenArt721RoyaltyOverride.sol/GenArt721RoyaltyOverride.json +0 -208
  287. package/artifacts/contracts/royalty-registry/GenArt721RoyaltyOverride_PBAB.sol/GenArt721RoyaltyOverride_PBAB.json +0 -301
  288. package/contracts/royalty-registry/GenArt721RoyaltyOverride.sol +0 -168
  289. package/contracts/royalty-registry/GenArt721RoyaltyOverride_PBAB.sol +0 -221
@@ -5,8 +5,7 @@ pragma solidity 0.8.19;
5
5
 
6
6
  import "../../../interfaces/v0.8.x/IRandomizerV2.sol";
7
7
  import "../../../interfaces/v0.8.x/IAdminACLV0.sol";
8
- import "../../../interfaces/v0.8.x/IEngineRegistryV0.sol";
9
- import "../../../interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex.sol";
8
+ import "../../../interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex_PreV3p2.sol";
10
9
  import "../../../interfaces/v0.8.x/IDependencyRegistryCompatibleV0.sol";
11
10
  import "../../../interfaces/v0.8.x/IManifold.sol";
12
11
 
@@ -44,7 +43,7 @@ import "../../../libs/v0.8.x/Bytes32Strings.sol";
44
43
  * - updateIPFSGateway
45
44
  * - updateArweaveGateway
46
45
  * ----------------------------------------------------------------------------
47
- * The following functions are restricted to either the the Artist address or
46
+ * The following functions are restricted to either the Artist address or
48
47
  * the Admin ACL contract, only when the project is not locked:
49
48
  * - updateProjectName
50
49
  * - updateProjectArtistName
@@ -105,7 +104,7 @@ contract GenArt721CoreV3_Engine_Flex_PROOF is
105
104
  Ownable,
106
105
  IDependencyRegistryCompatibleV0,
107
106
  IManifold,
108
- IGenArt721CoreContractV3_Engine_Flex
107
+ IGenArt721CoreContractV3_Engine_Flex_PreV3p2
109
108
  {
110
109
  using BytecodeStorageWriter for string;
111
110
  using Bytes32Strings for bytes32;
@@ -272,7 +271,7 @@ contract GenArt721CoreV3_Engine_Flex_PROOF is
272
271
  bool public immutable autoApproveArtistSplitProposals;
273
272
 
274
273
  /// version & type of this core contract
275
- bytes32 constant CORE_VERSION = "v3.1.2";
274
+ bytes32 constant CORE_VERSION = "v3.1.6";
276
275
 
277
276
  function coreVersion() external pure returns (string memory) {
278
277
  return CORE_VERSION.toString();
@@ -381,8 +380,7 @@ contract GenArt721CoreV3_Engine_Flex_PROOF is
381
380
  address _randomizerContract,
382
381
  address _adminACLContract,
383
382
  uint248 _startingProjectId,
384
- bool _autoApproveArtistSplitProposals,
385
- address _engineRegistryContract
383
+ bool _autoApproveArtistSplitProposals
386
384
  ) ERC721_PackedHashSeed(_tokenName, _tokenSymbol) {
387
385
  _onlyNonZeroAddress(_renderProviderAddress);
388
386
  _onlyNonZeroAddress(_platformProviderAddress);
@@ -413,12 +411,8 @@ contract GenArt721CoreV3_Engine_Flex_PROOF is
413
411
  // initialize next project ID
414
412
  _nextProjectId = _startingProjectId;
415
413
  emit PlatformUpdated(FIELD_NEXT_PROJECT_ID);
416
- // register contract as an Engine contract
417
- IEngineRegistryV0(_engineRegistryContract).registerContract(
418
- address(this),
419
- CORE_VERSION,
420
- CORE_TYPE
421
- );
414
+ // @dev follow-on action: This contract does not self-register. A core
415
+ // registry owner must register contract in a subsequent call.
422
416
  }
423
417
 
424
418
  /**
@@ -7,7 +7,6 @@ import "./interfaces/IAdminACLV0_PROHIBITION.sol";
7
7
  import "./interfaces/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.sol";
8
8
 
9
9
  import "../../../../interfaces/v0.8.x/IRandomizerV2.sol";
10
- import "../../../../interfaces/v0.8.x/IEngineRegistryV0.sol";
11
10
  import "../../../../interfaces/v0.8.x/IDependencyRegistryCompatibleV0.sol";
12
11
  import "../../../../interfaces/v0.8.x/IManifold.sol";
13
12
 
@@ -45,7 +44,7 @@ import "../../../../libs/v0.8.x/Bytes32Strings.sol";
45
44
  * - updateIPFSGateway
46
45
  * - updateArweaveGateway
47
46
  * ----------------------------------------------------------------------------
48
- * The following functions are restricted to either the the Artist address or
47
+ * The following functions are restricted to either the Artist address or
49
48
  * the Admin ACL contract, only when the project is not locked:
50
49
  * - updateProjectName
51
50
  * - updateProjectArtistName
@@ -271,7 +270,7 @@ contract GenArt721CoreV3_Engine_Flex_PROHIBITION is
271
270
  bool public immutable autoApproveArtistSplitProposals;
272
271
 
273
272
  /// version & type of this core contract
274
- bytes32 constant CORE_VERSION = "v3.1.3";
273
+ bytes32 constant CORE_VERSION = "v3.1.5";
275
274
 
276
275
  function coreVersion() external pure returns (string memory) {
277
276
  return CORE_VERSION.toString();
@@ -392,8 +391,7 @@ contract GenArt721CoreV3_Engine_Flex_PROHIBITION is
392
391
  address _randomizerContract,
393
392
  address _adminACLContract,
394
393
  uint248 _startingProjectId,
395
- bool _autoApproveArtistSplitProposals,
396
- address _engineRegistryContract
394
+ bool _autoApproveArtistSplitProposals
397
395
  ) ERC721_PackedHashSeed(_tokenName, _tokenSymbol) {
398
396
  _onlyNonZeroAddress(_renderProviderAddress);
399
397
  _onlyNonZeroAddress(_platformProviderAddress);
@@ -424,12 +422,8 @@ contract GenArt721CoreV3_Engine_Flex_PROHIBITION is
424
422
  // initialize next project ID
425
423
  _nextProjectId = _startingProjectId;
426
424
  emit PlatformUpdated(FIELD_NEXT_PROJECT_ID);
427
- // register contract as an Engine contract
428
- IEngineRegistryV0(_engineRegistryContract).registerContract(
429
- address(this),
430
- CORE_VERSION,
431
- CORE_TYPE
432
- );
425
+ // @dev follow-on action: This contract does not self-register. A core
426
+ // registry owner must register contract in a subsequent call.
433
427
  }
434
428
 
435
429
  /**
@@ -4,7 +4,7 @@
4
4
  pragma solidity ^0.8.0;
5
5
 
6
6
  import "./IAdminACLV0_PROHIBITION.sol";
7
- import "../../../../../interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex.sol";
7
+ import "../../../../../interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex_PreV3p2.sol";
8
8
 
9
9
  /**
10
10
  * @title This interface is intended to house interface items that are common
@@ -12,7 +12,7 @@ import "../../../../../interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex.so
12
12
  * @author Art Blocks Inc.
13
13
  */
14
14
  interface IGenArt721CoreContractV3_Engine_Flex_PROHIBITION is
15
- IGenArt721CoreContractV3_Engine_Flex
15
+ IGenArt721CoreContractV3_Engine_Flex_PreV3p2
16
16
  {
17
17
  /**
18
18
  * Function determining if _sender is allowed to call function with
@@ -1,10 +1,13 @@
1
1
  // SPDX-License-Identifier: MIT
2
2
 
3
+ // @dev fixed to specific solidity version for clarity and for more clear
4
+ // source code verification purposes.
3
5
  pragma solidity 0.8.19;
4
6
 
5
- import "../interfaces/v0.8.x/ICoreRegistryV1.sol";
6
- import "@openzeppelin-4.7/contracts/access/Ownable.sol";
7
- import "@openzeppelin-4.7/contracts/utils/structs/EnumerableSet.sol";
7
+ import {ICoreRegistryV1} from "../interfaces/v0.8.x/ICoreRegistryV1.sol";
8
+
9
+ import {Ownable} from "@openzeppelin-4.7/contracts/access/Ownable.sol";
10
+ import {EnumerableSet} from "@openzeppelin-4.7/contracts/utils/structs/EnumerableSet.sol";
8
11
 
9
12
  /**
10
13
  * @title Art Blocks Core Contract Registry, V1.
@@ -57,20 +60,11 @@ contract CoreRegistryV1 is Ownable, ICoreRegistryV1 {
57
60
  using EnumerableSet for EnumerableSet.AddressSet;
58
61
 
59
62
  /// private enumerable set of registered contracts
60
- EnumerableSet.AddressSet private registeredContracts;
63
+ EnumerableSet.AddressSet private _registeredContracts;
61
64
 
62
65
  /// private mapping of registered contract addresses to
63
66
  EnumerableSet.AddressSet
64
- private registeredMinterFilterV2CompatibleContracts;
65
-
66
- /**
67
- * @notice Reverts if `tx.origin` is not the owner.
68
- * @dev Warning that this check is only against tx.origin, which may be
69
- * misleading when used for security.
70
- */
71
- function _onlyOwnerOrigin() internal view {
72
- require(tx.origin == owner(), "Only tx origin of owner");
73
- }
67
+ private _registeredMinterFilterV2CompatibleContracts;
74
68
 
75
69
  constructor() Ownable() {}
76
70
 
@@ -82,24 +76,19 @@ contract CoreRegistryV1 is Ownable, ICoreRegistryV1 {
82
76
  * registered.
83
77
  */
84
78
  function registerContract(
85
- address _contractAddress,
86
- bytes32 _coreVersion,
87
- bytes32 _coreType
79
+ address contractAddress,
80
+ bytes32 coreVersion,
81
+ bytes32 coreType
88
82
  ) external {
89
83
  // CHECKS
90
- // Validate against `tx.origin` rather than `msg.sender` as it is
91
- // intended that this registration be performed in an automated
92
- // fashion at the time of contract deployment of `_contractAddress`.
93
- // @dev Security implications of using `tx.origin` are acknowledged
94
- _onlyOwnerOrigin();
95
- // only allow registration of a contract registering itself, or allow
96
- // the owner to register any contract.
97
- require(
98
- msg.sender == _contractAddress || msg.sender == owner(),
99
- "Only owner or registrant"
100
- );
84
+ // revert if not called by owner
85
+ Ownable._checkOwner();
101
86
  // EFFECTS
102
- _registerContract(_contractAddress, _coreVersion, _coreType);
87
+ _registerContract({
88
+ contractAddress: contractAddress,
89
+ coreVersion: coreVersion,
90
+ coreType: coreType
91
+ });
103
92
  }
104
93
 
105
94
  /**
@@ -108,12 +97,12 @@ contract CoreRegistryV1 is Ownable, ICoreRegistryV1 {
108
97
  * Reverts if authorization fails, or if the contract is not already
109
98
  * registered.
110
99
  */
111
- function unregisterContract(address _contractAddress) external {
100
+ function unregisterContract(address contractAddress) external {
112
101
  // CHECKS
113
102
  // revert if not called by owner
114
103
  Ownable._checkOwner();
115
104
  // EFFECTS
116
- _unregisterContract(_contractAddress);
105
+ _unregisterContract(contractAddress);
117
106
  }
118
107
 
119
108
  /**
@@ -122,32 +111,32 @@ contract CoreRegistryV1 is Ownable, ICoreRegistryV1 {
122
111
  * Reverts if any contract is already registered.
123
112
  * @dev This should primarily be used for backfilling the registry with
124
113
  * existing contracts shortly after deployment.
125
- * @param _contractAddresses Array of contract addresses to register.
126
- * @param _coreVersions Array of core versions for each contract (aligned).
127
- * @param _coreTypes Array of core types for each contract (aligned).
114
+ * @param contractAddresses Array of contract addresses to register.
115
+ * @param coreVersions Array of core versions for each contract (aligned).
116
+ * @param coreTypes Array of core types for each contract (aligned).
128
117
  */
129
118
  function registerContracts(
130
- address[] calldata _contractAddresses,
131
- bytes32[] calldata _coreVersions,
132
- bytes32[] calldata _coreTypes
119
+ address[] calldata contractAddresses,
120
+ bytes32[] calldata coreVersions,
121
+ bytes32[] calldata coreTypes
133
122
  ) external {
134
123
  // CHECKS
135
124
  // revert if not called by owner
136
125
  Ownable._checkOwner();
137
126
  // validate same length arrays
138
- uint256 numContracts = _contractAddresses.length;
127
+ uint256 numContracts = contractAddresses.length;
139
128
  require(
140
- numContracts == _coreVersions.length &&
141
- numContracts == _coreTypes.length,
129
+ numContracts == coreVersions.length &&
130
+ numContracts == coreTypes.length,
142
131
  "Mismatched array lengths"
143
132
  );
144
133
  // EFFECTS
145
134
  for (uint256 i = 0; i < numContracts; ) {
146
- _registerContract(
147
- _contractAddresses[i],
148
- _coreVersions[i],
149
- _coreTypes[i]
150
- );
135
+ _registerContract({
136
+ contractAddress: contractAddresses[i],
137
+ coreVersion: coreVersions[i],
138
+ coreType: coreTypes[i]
139
+ });
151
140
  unchecked {
152
141
  ++i;
153
142
  }
@@ -158,18 +147,18 @@ contract CoreRegistryV1 is Ownable, ICoreRegistryV1 {
158
147
  * @notice Unregister multiple contracts at once.
159
148
  * Only callable by the owner.
160
149
  * Reverts if any contract is not already registered.
161
- * @param _contractAddresses Array of contract addresses to unregister.
150
+ * @param contractAddresses Array of contract addresses to unregister.
162
151
  */
163
152
  function unregisterContracts(
164
- address[] calldata _contractAddresses
153
+ address[] calldata contractAddresses
165
154
  ) external {
166
155
  // CHECKS
167
156
  // revert if not called by owner
168
157
  Ownable._checkOwner();
169
158
  // EFFECTS
170
- uint256 numContracts = _contractAddresses.length;
159
+ uint256 numContracts = contractAddresses.length;
171
160
  for (uint256 i = 0; i < numContracts; ) {
172
- _unregisterContract(_contractAddresses[i]);
161
+ _unregisterContract(contractAddresses[i]);
173
162
  unchecked {
174
163
  ++i;
175
164
  }
@@ -181,18 +170,18 @@ contract CoreRegistryV1 is Ownable, ICoreRegistryV1 {
181
170
  * @return The number of registered contracts.
182
171
  */
183
172
  function getNumRegisteredContracts() external view returns (uint256) {
184
- return registeredContracts.length();
173
+ return _registeredContracts.length();
185
174
  }
186
175
 
187
176
  /**
188
177
  * @notice Get the address of a registered contract by index.
189
- * @param _index The index of the contract to get.
178
+ * @param index The index of the contract to get.
190
179
  * @return The address of the contract at the given index.
191
180
  */
192
181
  function getRegisteredContractAt(
193
- uint256 _index
182
+ uint256 index
194
183
  ) external view returns (address) {
195
- return registeredContracts.at(_index);
184
+ return _registeredContracts.at(index);
196
185
  }
197
186
 
198
187
  /**
@@ -207,19 +196,19 @@ contract CoreRegistryV1 is Ownable, ICoreRegistryV1 {
207
196
  view
208
197
  returns (address[] memory)
209
198
  {
210
- return registeredContracts.values();
199
+ return _registeredContracts.values();
211
200
  }
212
201
 
213
202
  /**
214
203
  * @notice Returns boolean representing if contract is registered on this
215
204
  * registry.
216
- * @param _contractAddress The address of the contract to check.
205
+ * @param contractAddress The address of the contract to check.
217
206
  * @return isRegistered True if the contract is registered.
218
207
  */
219
208
  function isRegisteredContract(
220
- address _contractAddress
209
+ address contractAddress
221
210
  ) external view returns (bool isRegistered) {
222
- return registeredContracts.contains(_contractAddress);
211
+ return _registeredContracts.contains(contractAddress);
223
212
  }
224
213
 
225
214
  /**
@@ -227,28 +216,32 @@ contract CoreRegistryV1 is Ownable, ICoreRegistryV1 {
227
216
  * Reverts if the contract is already registered.
228
217
  */
229
218
  function _registerContract(
230
- address _contractAddress,
231
- bytes32 _coreVersion,
232
- bytes32 _coreType
219
+ address contractAddress,
220
+ bytes32 coreVersion,
221
+ bytes32 coreType
233
222
  ) internal {
234
223
  // @dev add returns true only if not already registered
235
224
  require(
236
- registeredContracts.add(_contractAddress),
225
+ _registeredContracts.add(contractAddress),
237
226
  "Contract already registered"
238
227
  );
239
- emit ContractRegistered(_contractAddress, _coreVersion, _coreType);
228
+ emit ContractRegistered({
229
+ _contractAddress: contractAddress,
230
+ _coreVersion: coreVersion,
231
+ _coreType: coreType
232
+ });
240
233
  }
241
234
 
242
235
  /**
243
236
  * @notice Internal function to unregister a contract.
244
237
  * Reverts if the contract is not already registered.
245
238
  */
246
- function _unregisterContract(address _contractAddress) internal {
239
+ function _unregisterContract(address contractAddress) internal {
247
240
  // @dev remove returns true only if already in set
248
241
  require(
249
- registeredContracts.remove(_contractAddress),
242
+ _registeredContracts.remove(contractAddress),
250
243
  "Only registered contracts"
251
244
  );
252
- emit ContractUnregistered(_contractAddress);
245
+ emit ContractUnregistered({_contractAddress: contractAddress});
253
246
  }
254
247
  }
@@ -0,0 +1,20 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Created By: Art Blocks Inc.
3
+
4
+ pragma solidity ^0.8.0;
5
+
6
+ import "./IAdminACLV0.sol";
7
+
8
+ interface IAdminACLV0_Extended is IAdminACLV0 {
9
+ /**
10
+ * @notice Allows superAdmin change the superAdmin address.
11
+ * @param _newSuperAdmin The new superAdmin address.
12
+ * @param _genArt721CoreAddressesToUpdate Array of genArt721Core
13
+ * addresses to update to the new superAdmin, for indexing purposes only.
14
+ * @dev this function is gated to only superAdmin address.
15
+ */
16
+ function changeSuperAdmin(
17
+ address _newSuperAdmin,
18
+ address[] calldata _genArt721CoreAddressesToUpdate
19
+ ) external;
20
+ }
@@ -0,0 +1,23 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Creatd By: Art Blocks Inc.
3
+
4
+ pragma solidity ^0.8.0;
5
+
6
+ import {IBytecodeStorageReader} from "./IBytecodeStorageReader.sol";
7
+
8
+ /**
9
+ * @title Art Blocks Script Storage Library (Reader)
10
+ * @notice This interface defines the expected read functions for the Art Blocks Script Storage Library (Reader).
11
+ * @dev This interface extends the V1 interface to add a function to get if data are stored in compressed format,
12
+ * which is functionality added in the V2 format of the bytecode storage.
13
+ */
14
+ interface IBytecodeStorageReaderV2 is IBytecodeStorageReader {
15
+ /**
16
+ * @notice Get if data are stored in compressed format for given contract bytecode
17
+ * @param _address address of deployed contract with bytecode stored in the V0, V1, or V2 format
18
+ * @return isCompressed boolean indicating if the stored data are compressed
19
+ */
20
+ function getIsCompressedForBytecode(
21
+ address _address
22
+ ) external view returns (bool);
23
+ }
@@ -6,22 +6,20 @@ import "./IEngineRegistryV0.sol";
6
6
 
7
7
  interface ICoreRegistryV1 is IEngineRegistryV0 {
8
8
  function registerContracts(
9
- address[] calldata _contractAddresses,
10
- bytes32[] calldata _coreVersions,
11
- bytes32[] calldata _coreTypes
9
+ address[] calldata contractAddresses,
10
+ bytes32[] calldata coreVersions,
11
+ bytes32[] calldata coreTypes
12
12
  ) external;
13
13
 
14
- function unregisterContracts(
15
- address[] calldata _contractAddresses
16
- ) external;
14
+ function unregisterContracts(address[] calldata contractAddresses) external;
17
15
 
18
16
  function getNumRegisteredContracts() external view returns (uint256);
19
17
 
20
18
  function getRegisteredContractAt(
21
- uint256 _index
19
+ uint256 index
22
20
  ) external view returns (address);
23
21
 
24
22
  function isRegisteredContract(
25
- address _contractAddress
23
+ address contractAddress
26
24
  ) external view returns (bool isRegistered);
27
25
  }
@@ -3,93 +3,98 @@
3
3
  pragma solidity ^0.8.19;
4
4
 
5
5
  interface IDependencyRegistryV0 {
6
- event SupportedCoreContractAdded(address indexed _coreContractAddress);
6
+ event SupportedCoreContractAdded(address indexed coreContractAddress);
7
7
 
8
- event SupportedCoreContractRemoved(address indexed _coreContractAddress);
8
+ event SupportedCoreContractRemoved(address indexed coreContractAddress);
9
9
 
10
- event ProjectDependencyTypeOverrideAdded(
11
- address indexed _coreContractAddress,
12
- uint256 indexed _projectId,
13
- bytes32 _dependencyType
10
+ event ProjectDependencyOverrideAdded(
11
+ address indexed coreContractAddress,
12
+ uint256 indexed projectId,
13
+ bytes32 dependencyNameAndVersion
14
14
  );
15
15
 
16
- event ProjectDependencyTypeOverrideRemoved(
17
- address indexed _coreContractAddress,
18
- uint256 indexed _projectId
16
+ event ProjectDependencyOverrideRemoved(
17
+ address indexed coreContractAddress,
18
+ uint256 indexed projectId
19
19
  );
20
20
 
21
+ event LicenseTypeAdded(bytes32 indexed licenseType);
22
+
23
+ event LicenseTextUpdated(bytes32 indexed licenseType);
24
+
21
25
  event DependencyAdded(
22
- bytes32 indexed _dependencyType,
23
- string _preferredCDN,
24
- string _preferredRepository,
25
- string _referenceWebsite
26
+ bytes32 indexed dependencyNameAndVersion,
27
+ bytes32 indexed licenseType,
28
+ string preferredCDN,
29
+ string preferredRepository,
30
+ string website
26
31
  );
27
32
 
28
- event DependencyRemoved(bytes32 indexed _dependencyType);
33
+ event DependencyRemoved(bytes32 indexed dependencyNameAndVersion);
29
34
 
30
- event DependencyReferenceWebsiteUpdated(
31
- bytes32 indexed _dependencyType,
32
- string _referenceWebsite
35
+ event DependencyWebsiteUpdated(
36
+ bytes32 indexed dependencyNameAndVersion,
37
+ string website
33
38
  );
34
39
 
35
40
  event DependencyPreferredCDNUpdated(
36
- bytes32 indexed _dependencyType,
37
- string _preferredCDN
41
+ bytes32 indexed dependencyNameAndVersion,
42
+ string preferredCDN
38
43
  );
39
44
 
40
45
  event DependencyPreferredRepositoryUpdated(
41
- bytes32 indexed _dependencyType,
42
- string _preferredRepository
46
+ bytes32 indexed dependencyNameAndVersion,
47
+ string preferredRepository
43
48
  );
44
49
 
45
50
  event DependencyAdditionalCDNUpdated(
46
- bytes32 indexed _dependencyType,
47
- string _additionalCDN,
48
- uint256 _additionalCDNIndex
51
+ bytes32 indexed dependencyNameAndVersion,
52
+ string additionalCDN,
53
+ uint256 additionalCDNIndex
49
54
  );
50
55
 
51
56
  event DependencyAdditionalCDNRemoved(
52
- bytes32 indexed _dependencyType,
53
- uint256 indexed _additionalCDNIndex
57
+ bytes32 indexed dependencyNameAndVersion,
58
+ uint256 indexed additionalCDNIndex
54
59
  );
55
60
 
56
61
  event DependencyAdditionalRepositoryUpdated(
57
- bytes32 indexed _dependencyType,
58
- string _additionalRepository,
59
- uint256 _additionalRepositoryIndex
62
+ bytes32 indexed dependencyNameAndVersion,
63
+ string additionalRepository,
64
+ uint256 additionalRepositoryIndex
60
65
  );
61
66
 
62
67
  event DependencyAdditionalRepositoryRemoved(
63
- bytes32 indexed _dependencyType,
64
- uint256 indexed _additionalRepositoryIndex
68
+ bytes32 indexed dependencyNameAndVersion,
69
+ uint256 indexed additionalRepositoryIndex
65
70
  );
66
71
 
67
- event DependencyScriptUpdated(bytes32 indexed _dependencyType);
72
+ event DependencyScriptUpdated(bytes32 indexed dependencyNameAndVersion);
68
73
 
69
74
  /**
70
- * @notice Returns the count of scripts for dependency `_dependencyType`.
71
- * @param _dependencyType Dependency type to be queried.
75
+ * @notice Returns the count of scripts for dependency `dependencyNameAndVersion`.
76
+ * @param dependencyNameAndVersion Dependency type to be queried.
72
77
  */
73
78
  function getDependencyScriptCount(
74
- bytes32 _dependencyType
79
+ bytes32 dependencyNameAndVersion
75
80
  ) external view returns (uint256);
76
81
 
77
82
  /**
78
83
  * @notice Returns address with bytecode containing script for
79
- * dependency type `_dependencyTypes` at script index `_index`.
84
+ * dependency type `dependencyNameAndVersions` at script index `index`.
80
85
  */
81
86
  function getDependencyScriptBytecodeAddress(
82
- bytes32 _dependencyType,
83
- uint256 _index
87
+ bytes32 dependencyNameAndVersion,
88
+ uint256 index
84
89
  ) external view returns (address);
85
90
 
86
91
  /**
87
- * @notice Returns script for dependency type `_dependencyType` at script index `_index`.
88
- * @param _dependencyType Dependency type to be queried.
89
- * @param _index Index of script to be queried.
92
+ * @notice Returns script for dependency type `dependencyNameAndVersion` at script index `index`.
93
+ * @param dependencyNameAndVersion Dependency type to be queried.
94
+ * @param index Index of script to be queried.
90
95
  */
91
96
  function getDependencyScript(
92
- bytes32 _dependencyType,
93
- uint256 _index
97
+ bytes32 dependencyNameAndVersion,
98
+ uint256 index
94
99
  ) external view returns (string memory);
95
100
  }