@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
@@ -0,0 +1,78 @@
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
+ import "./IGenArt721CoreContractV3_Base.sol";
8
+
9
+ // @title This interface is intended to house interface items that were used on the
10
+ // GenArt721CoreContractV3 Engine and derivative implementations prior to v3.2.0.
11
+ // Namely, the platform and render provider secondary sales functions are exposed at the contract-level
12
+ // instead of having only defaults defined at the contract level.
13
+ interface IGenArt721CoreContractV3_Engine_PreV3p2 is
14
+ IGenArt721CoreContractV3_Base
15
+ {
16
+ // @dev new function in V3
17
+ function getPrimaryRevenueSplits(
18
+ uint256 _projectId,
19
+ uint256 _price
20
+ )
21
+ external
22
+ view
23
+ returns (
24
+ uint256 renderProviderRevenue_,
25
+ address payable renderProviderAddress_,
26
+ uint256 platformProviderRevenue_,
27
+ address payable platformProviderAddress_,
28
+ uint256 artistRevenue_,
29
+ address payable artistAddress_,
30
+ uint256 additionalPayeePrimaryRevenue_,
31
+ address payable additionalPayeePrimaryAddress_
32
+ );
33
+
34
+ // @dev The render provider primary sales payment address
35
+ function renderProviderPrimarySalesAddress()
36
+ external
37
+ view
38
+ returns (address payable);
39
+
40
+ // @dev The platform provider primary sales payment address
41
+ function platformProviderPrimarySalesAddress()
42
+ external
43
+ view
44
+ returns (address payable);
45
+
46
+ // @dev Percentage of primary sales allocated to the render provider
47
+ function renderProviderPrimarySalesPercentage()
48
+ external
49
+ view
50
+ returns (uint256);
51
+
52
+ // @dev Percentage of primary sales allocated to the platform provider
53
+ function platformProviderPrimarySalesPercentage()
54
+ external
55
+ view
56
+ returns (uint256);
57
+
58
+ // @dev The render provider secondary sales royalties payment address
59
+ function renderProviderSecondarySalesAddress()
60
+ external
61
+ view
62
+ returns (address payable);
63
+
64
+ // @dev The platform provider secondary sales royalties payment address
65
+ function platformProviderSecondarySalesAddress()
66
+ external
67
+ view
68
+ returns (address payable);
69
+
70
+ // @dev Basis points of secondary sales allocated to the render provider
71
+ function renderProviderSecondarySalesBPS() external view returns (uint256);
72
+
73
+ // @dev Basis points of secondary sales allocated to the platform provider
74
+ function platformProviderSecondarySalesBPS()
75
+ external
76
+ view
77
+ returns (uint256);
78
+ }
@@ -0,0 +1,47 @@
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
+ /**
9
+ * @title This interface defines a project finance struct that is used in the
10
+ * GenArt721CoreContractV3 flagship and derivative implementations beginning
11
+ * with v3.2.0. This struct is intended to house all financial information
12
+ * related to a project, including royalties, artist splits, and platform
13
+ * provider splits.
14
+ * @author Art Blocks Inc.
15
+ */
16
+ interface IGenArt721CoreContractV3_ProjectFinance {
17
+ /// packed struct containing project financial information
18
+ struct ProjectFinance {
19
+ address payable additionalPayeePrimarySales;
20
+ // packed uint: max of 95, max uint8 = 255
21
+ uint8 secondaryMarketRoyaltyPercentage;
22
+ address payable additionalPayeeSecondarySales;
23
+ // packed uint: max of 100, max uint8 = 255
24
+ uint8 additionalPayeeSecondarySalesPercentage;
25
+ address payable artistAddress;
26
+ // packed uint: max of 100, max uint8 = 255
27
+ uint8 additionalPayeePrimarySalesPercentage;
28
+ address platformProviderSecondarySalesAddress;
29
+ // packed uint: max of 10_000 max uint16 = 65_535
30
+ uint16 platformProviderSecondarySalesBPS;
31
+ address renderProviderSecondarySalesAddress;
32
+ // packed uint: max of 10_000 max uint16 = 65_535
33
+ uint16 renderProviderSecondarySalesBPS;
34
+ // address to send ERC-2981 royalties to
35
+ address royaltySplitter;
36
+ }
37
+
38
+ /**
39
+ * @notice View function returning project financial details for project
40
+ * `_projectId`.
41
+ * @param _projectId Project ID to be queried.
42
+ * @return ProjectFinance Project financial details.
43
+ */
44
+ function projectIdToFinancials(
45
+ uint256 _projectId
46
+ ) external view returns (ProjectFinance memory);
47
+ }
@@ -0,0 +1,91 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Created By: Art Blocks Inc.
3
+
4
+ pragma solidity ^0.8.0;
5
+
6
+ interface IGenArt721Minter_PBAB {
7
+ /**
8
+ * @notice Price per token in wei updated for project `_projectId` to
9
+ * `_pricePerTokenInWei`.
10
+ */
11
+ event PricePerTokenInWeiUpdated(
12
+ uint256 indexed _projectId,
13
+ uint256 indexed _pricePerTokenInWei
14
+ );
15
+
16
+ /**
17
+ * @notice Currency updated for project `_projectId` to symbol
18
+ * `_currencySymbol` and address `_currencyAddress`.
19
+ */
20
+ event ProjectCurrencyInfoUpdated(
21
+ uint256 indexed _projectId,
22
+ address indexed _currencyAddress,
23
+ string _currencySymbol
24
+ );
25
+
26
+ /// togglePurchaseToDisabled updated
27
+ event PurchaseToDisabledUpdated(
28
+ uint256 indexed _projectId,
29
+ bool _purchaseToDisabled
30
+ );
31
+
32
+ // getter function of public variable
33
+ function minterType() external view returns (string memory);
34
+
35
+ function genArt721CoreAddress() external returns (address);
36
+
37
+ function minterFilterAddress() external returns (address);
38
+
39
+ // Triggers a purchase of a token from the desired project with ETH, to the
40
+ // TX-sending address.
41
+ function purchase(
42
+ uint256 _projectId
43
+ ) external payable returns (uint256 tokenId);
44
+
45
+ // Triggers a purchase of a token from the desired project with ETH or any ERC-20 token, to the
46
+ // TX-sending address.
47
+ function purchase(
48
+ uint256 _projectId,
49
+ uint256 _maxPricePerToken,
50
+ address _currencyAddress
51
+ ) external payable returns (uint256 tokenId);
52
+
53
+ // Triggers a purchase of a token from the desired project with ETH, to the specified
54
+ // receiving address.
55
+ function purchaseTo(
56
+ address _to,
57
+ uint256 _projectId
58
+ ) external payable returns (uint256 tokenId);
59
+
60
+ // Triggers a purchase of a token from the desired project with ETH or any ERC-20 token, to the specified
61
+ // receiving address.
62
+ function purchaseTo(
63
+ address _to,
64
+ uint256 _projectId,
65
+ uint256 _maxPricePerToken,
66
+ address _currencyAddress
67
+ ) external payable returns (uint256 tokenId);
68
+
69
+ // Toggles the ability for `purchaseTo` to be called directly with a
70
+ // specified receiving address that differs from the TX-sending address.
71
+ function togglePurchaseToDisabled(uint256 _projectId) external;
72
+
73
+ // Called to make the minter contract aware of the max invocations for a
74
+ // given project.
75
+ function setProjectMaxInvocations(uint256 _projectId) external;
76
+
77
+ // Gets if token price is configured, token price in wei, currency symbol,
78
+ // and currency address, assuming this is project's minter.
79
+ // Supersedes any defined core price.
80
+ function getPriceInfo(
81
+ uint256 _projectId
82
+ )
83
+ external
84
+ view
85
+ returns (
86
+ bool isConfigured,
87
+ uint256 tokenPriceInWei,
88
+ string memory currencySymbol,
89
+ address currencyAddress
90
+ );
91
+ }
@@ -93,55 +93,55 @@ interface IMinterFilterV1 {
93
93
  }
94
94
 
95
95
  function setMinterForProject(
96
- uint256 _projectId,
97
- address _coreContract,
98
- address _minter
96
+ uint256 projectId,
97
+ address coreContract,
98
+ address minter
99
99
  ) external;
100
100
 
101
101
  function removeMinterForProject(
102
- uint256 _projectId,
103
- address _coreContract
102
+ uint256 projectId,
103
+ address coreContract
104
104
  ) external;
105
105
 
106
106
  // @dev function name is optimized for gas
107
107
  function mint_joo(
108
- address _to,
109
- uint256 _projectId,
110
- address _coreContract,
111
- address _sender
108
+ address to,
109
+ uint256 projectId,
110
+ address coreContract,
111
+ address sender
112
112
  ) external returns (uint256);
113
113
 
114
- function updateCoreRegistry(address _coreRegistry) external;
114
+ function updateCoreRegistry(address coreRegistry) external;
115
115
 
116
116
  /**
117
- * @notice Returns if `_sender` is allowed to call function on `_contract`
118
- * with `_selector` selector, according to the MinterFilter's Admin ACL.
117
+ * @notice Returns if `sender` is allowed to call function on `contract`
118
+ * with `selector` selector, according to the MinterFilter's Admin ACL.
119
119
  */
120
120
  function adminACLAllowed(
121
- address _sender,
122
- address _contract,
123
- bytes4 _selector
121
+ address sender,
122
+ address contract_,
123
+ bytes4 selector
124
124
  ) external returns (bool);
125
125
 
126
126
  function minterFilterType() external pure returns (string memory);
127
127
 
128
128
  function getMinterForProject(
129
- uint256 _projectId,
130
- address _coreContract
129
+ uint256 projectId,
130
+ address coreContract
131
131
  ) external view returns (address);
132
132
 
133
133
  function projectHasMinter(
134
- uint256 _projectId,
135
- address _coreContract
134
+ uint256 projectId,
135
+ address coreContract
136
136
  ) external view returns (bool);
137
137
 
138
138
  /**
139
139
  * @notice View that returns if a core contract is registered with the
140
140
  * core registry, allowing this minter filter to service it.
141
- * @param _coreContract core contract address to be checked
141
+ * @param coreContract core contract address to be checked
142
142
  */
143
143
  function isRegisteredCoreContract(
144
- address _coreContract
144
+ address coreContract
145
145
  ) external view returns (bool);
146
146
 
147
147
  /// Address of current core registry contract
@@ -152,12 +152,12 @@ interface IMinterFilterV1 {
152
152
 
153
153
  /// The quantity of projects on a core contract that have assigned minters
154
154
  function getNumProjectsOnContractWithMinters(
155
- address _coreContract
155
+ address coreContract
156
156
  ) external view returns (uint256);
157
157
 
158
158
  function getProjectAndMinterInfoOnContractAt(
159
- address _coreContract,
160
- uint256 _index
159
+ address coreContract,
160
+ uint256 index
161
161
  )
162
162
  external
163
163
  view
@@ -173,7 +173,7 @@ interface IMinterFilterV1 {
173
173
  returns (MinterWithType[] memory mintersWithTypes);
174
174
 
175
175
  function getAllContractApprovedMinters(
176
- address _coreContract
176
+ address coreContract
177
177
  ) external view returns (MinterWithType[] memory mintersWithTypes);
178
178
 
179
179
  /**
@@ -10,7 +10,5 @@ interface IPseudorandomAtomic {
10
10
  * generation process. An example of entropy might be the hash of a core
11
11
  * contract's address, and the ID of the token being generated.
12
12
  */
13
- function getPseudorandomAtomic(
14
- bytes32 _entropy
15
- ) external view returns (bytes32);
13
+ function getPseudorandomAtomic(bytes32 _entropy) external returns (bytes32);
16
14
  }
@@ -5,33 +5,43 @@ pragma solidity ^0.8.0;
5
5
  import "./ISharedMinterDAExpV0.sol";
6
6
 
7
7
  interface ISharedMinterDAExpSettlementV0 is ISharedMinterDAExpV0 {
8
- /// receipt has an updated state
9
- event ReceiptUpdated(
10
- address indexed _purchaser,
11
- uint256 indexed _projectId,
12
- address indexed _coreContract,
13
- uint24 _numPurchased,
14
- uint256 _netPosted
15
- );
16
-
17
- /// returns latest purchase price for project `_projectId`, or 0 if no
8
+ /// returns latest purchase price for project `projectId`, or 0 if no
18
9
  /// purchases have been made.
19
10
  function getProjectLatestPurchasePrice(
20
- uint256 _projectId,
21
- address _coreContract
11
+ uint256 projectId,
12
+ address coreContract
22
13
  ) external view returns (uint256 latestPurchasePrice);
23
14
 
24
- /// returns the number of settleable invocations for project `_projectId`.
15
+ /// returns the number of settleable invocations for project `projectId`.
25
16
  function getNumSettleableInvocations(
26
- uint256 _projectId,
27
- address _coreContract
17
+ uint256 projectId,
18
+ address coreContract
28
19
  ) external view returns (uint256 numSettleableInvocations);
29
20
 
30
- /// Returns the current excess settlement funds on project `_projectId`
31
- /// for address `_walletAddress`.
21
+ /// Returns the current excess settlement funds on project `projectId`
22
+ /// for address `walletAddress`.
32
23
  function getProjectExcessSettlementFunds(
33
- uint256 _projectId,
34
- address _coreContract,
35
- address _walletAddress
24
+ uint256 projectId,
25
+ address coreContract,
26
+ address walletAddress
36
27
  ) external view returns (uint256 excessSettlementFundsInWei);
28
+
29
+ /**
30
+ * @notice Reclaims the sender's payment above current settled price for
31
+ * project `projectId` on core contract `coreContract`.
32
+ * The current settled price is the price paid for the most recently
33
+ * purchased token, or the base price if the artist has withdrawn revenues
34
+ * after the auction reached base price.
35
+ * This function is callable at any point, but is expected to typically be
36
+ * called after auction has sold out above base price or after the auction
37
+ * has been purchased at base price. This minimizes the amount of gas
38
+ * required to send all excess settlement funds to the sender.
39
+ * Sends excess settlement funds to msg.sender.
40
+ * @param projectId Project ID to reclaim excess settlement funds on.
41
+ * @param coreContract Contract address of the core contract
42
+ */
43
+ function reclaimProjectExcessSettlementFunds(
44
+ uint256 projectId,
45
+ address coreContract
46
+ ) external;
37
47
  }
@@ -4,22 +4,9 @@
4
4
  pragma solidity ^0.8.0;
5
5
 
6
6
  interface ISharedMinterDAExpV0 {
7
- event SetAuctionDetailsExp(
8
- uint256 indexed _projectId,
9
- address indexed _coreContract,
10
- uint40 _auctionTimestampStart,
11
- uint40 _priceDecayHalfLifeSeconds,
12
- uint256 _startPrice,
13
- uint256 _basePrice
14
- );
15
- /// Minimum allowed price decay half life seconds updated.
16
- event AuctionMinHalfLifeSecondsUpdated(
17
- uint256 _minimumPriceDecayHalfLifeSeconds
18
- );
19
-
20
7
  function minimumPriceDecayHalfLifeSeconds() external view returns (uint256);
21
8
 
22
9
  function setMinimumPriceDecayHalfLifeSeconds(
23
- uint256 _minimumPriceDecayHalfLifeSeconds
10
+ uint256 minimumPriceDecayHalfLifeSeconds
24
11
  ) external;
25
12
  }
@@ -4,23 +4,9 @@
4
4
  pragma solidity ^0.8.0;
5
5
 
6
6
  interface ISharedMinterDALinV0 {
7
- event SetAuctionDetailsLin(
8
- uint256 indexed _projectId,
9
- address indexed _coreContract,
10
- uint40 _auctionTimestampStart,
11
- uint40 _auctionTimestampEnd,
12
- uint256 _startPrice,
13
- uint256 _basePrice
14
- );
15
-
16
- /// Minimum allowed auction length updated
17
- event AuctionMinimumLengthSecondsUpdated(
18
- uint256 _minimumAuctionLengthSeconds
19
- );
20
-
21
7
  function minimumAuctionLengthSeconds() external view returns (uint256);
22
8
 
23
9
  function setMinimumAuctionLengthSeconds(
24
- uint256 _minimumAuctionLengthSeconds
10
+ uint256 minimumAuctionLengthSeconds
25
11
  ) external;
26
12
  }
@@ -4,16 +4,10 @@
4
4
  pragma solidity ^0.8.0;
5
5
 
6
6
  interface ISharedMinterDAV0 {
7
- /// Auction details cleared for project `projectId`.
8
- event ResetAuctionDetails(
9
- uint256 indexed _projectId,
10
- address indexed _coreContract
11
- );
12
-
13
7
  // @dev return variables left unnamed because specific minter
14
8
  // implementations may return different values for the same slots
15
9
  function projectAuctionParameters(
16
- uint256 _projectId,
17
- address _coreContract
10
+ uint256 projectId,
11
+ address coreContract
18
12
  ) external view returns (uint40, uint40, uint256, uint256);
19
13
  }
@@ -0,0 +1,47 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Created By: Art Blocks Inc.
3
+
4
+ pragma solidity ^0.8.0;
5
+
6
+ /**
7
+ * @title This interface adds support for including token holder gating when purchasing with ERC20 tokens.
8
+ * @author Art Blocks Inc.
9
+ */
10
+ interface ISharedMinterHolderERC20V0 {
11
+ // Triggers a purchase of a token from the desired project, to the
12
+ // TX-sending address, using owned ERC-721 NFT to claim right to purchase.
13
+ function purchase(
14
+ uint256 projectId,
15
+ address coreContract,
16
+ uint256 maxPricePerToken,
17
+ address currencyAddress,
18
+ address ownedNFTAddress,
19
+ uint256 ownedNFTTokenId
20
+ ) external returns (uint256 tokenId);
21
+
22
+ // Triggers a purchase of a token from the desired project, to the specified
23
+ // receiving address, using owned ERC-721 NFT to claim right to purchase.
24
+ function purchaseTo(
25
+ address to,
26
+ uint256 projectId,
27
+ address coreContract,
28
+ uint256 maxPricePerToken,
29
+ address currencyAddress,
30
+ address ownedNFTAddress,
31
+ uint256 ownedNFTTokenId
32
+ ) external returns (uint256 tokenId);
33
+
34
+ // Triggers a purchase of a token from the desired project, on behalf of
35
+ // the provided vault, to the specified receiving address, using owned
36
+ // ERC-721 NFT to claim right to purchase.
37
+ function purchaseTo(
38
+ address to,
39
+ uint256 projectId,
40
+ address coreContract,
41
+ uint256 maxPricePerToken,
42
+ address currencyAddress,
43
+ address ownedNFTAddress,
44
+ uint256 ownedNFTTokenId,
45
+ address vault
46
+ ) external returns (uint256 tokenId);
47
+ }
@@ -8,62 +8,34 @@ pragma solidity ^0.8.0;
8
8
  * @author Art Blocks Inc.
9
9
  */
10
10
  interface ISharedMinterHolderV0 {
11
- event DelegationRegistryUpdated(address delegationRegistry);
12
- /**
13
- * @notice Allow holders of NFTs at addresses `_ownedNFTAddresses`, project
14
- * IDs `_ownedNFTProjectIds` to mint on project `_projectId`.
15
- * `_ownedNFTAddresses` assumed to be aligned with `_ownedNFTProjectIds`.
16
- * e.g. Allows holders of project `_ownedNFTProjectIds[0]` on token
17
- * contract `_ownedNFTAddresses[0]` to mint.
18
- */
19
- event AllowedHoldersOfProjects(
20
- uint256 indexed _projectId,
21
- address indexed _coreContract,
22
- address[] _ownedNFTAddresses,
23
- uint256[] _ownedNFTProjectIds
24
- );
25
- /**
26
- * @notice Remove holders of NFTs at addresses `_ownedNFTAddresses`,
27
- * project IDs `_ownedNFTProjectIds` to mint on project `_projectId`.
28
- * `_ownedNFTAddresses` assumed to be aligned with `_ownedNFTProjectIds`.
29
- * e.g. Removes holders of project `_ownedNFTProjectIds[0]` on token
30
- * contract `_ownedNFTAddresses[0]` from mint allowlist.
31
- */
32
- event RemovedHoldersOfProjects(
33
- uint256 indexed _projectId,
34
- address indexed _coreContract,
35
- address[] _ownedNFTAddresses,
36
- uint256[] _ownedNFTProjectIds
37
- );
38
-
39
11
  // Triggers a purchase of a token from the desired project, to the
40
12
  // TX-sending address, using owned ERC-721 NFT to claim right to purchase.
41
13
  function purchase(
42
- uint256 _projectId,
43
- address _coreContract,
44
- address _ownedNFTAddress,
45
- uint256 _ownedNFTTokenId
14
+ uint256 projectId,
15
+ address coreContract,
16
+ address ownedNFTAddress,
17
+ uint256 ownedNFTTokenId
46
18
  ) external payable returns (uint256 tokenId);
47
19
 
48
20
  // Triggers a purchase of a token from the desired project, to the specified
49
21
  // receiving address, using owned ERC-721 NFT to claim right to purchase.
50
22
  function purchaseTo(
51
- address _to,
52
- uint256 _projectId,
53
- address _coreContract,
54
- address _ownedNFTAddress,
55
- uint256 _ownedNFTTokenId
23
+ address to,
24
+ uint256 projectId,
25
+ address coreContract,
26
+ address ownedNFTAddress,
27
+ uint256 ownedNFTTokenId
56
28
  ) external payable returns (uint256 tokenId);
57
29
 
58
30
  // Triggers a purchase of a token from the desired project, on behalf of
59
31
  // the provided vault, to the specified receiving address, using owned
60
32
  // ERC-721 NFT to claim right to purchase.
61
33
  function purchaseTo(
62
- address _to,
63
- uint256 _projectId,
64
- address _coreContract,
65
- address _ownedNFTAddress,
66
- uint256 _ownedNFTTokenId,
67
- address _vault
34
+ address to,
35
+ uint256 projectId,
36
+ address coreContract,
37
+ address ownedNFTAddress,
38
+ uint256 ownedNFTTokenId,
39
+ address vault
68
40
  ) external payable returns (uint256 tokenId);
69
41
  }
@@ -8,37 +8,27 @@ pragma solidity ^0.8.0;
8
8
  * @author Art Blocks Inc.
9
9
  */
10
10
  interface ISharedMinterMerkleV0 {
11
- /**
12
- * @notice Notifies of the contract's default maximum mints allowed per
13
- * user for a given project, on this minter. This value can be overridden
14
- * by the artist of any project at any time.
15
- */
16
- event DefaultMaxInvocationsPerAddress(
17
- uint256 defaultMaxInvocationsPerAddress
18
- );
19
- event DelegationRegistryUpdated(address delegationRegistry);
20
-
21
11
  // Triggers a purchase of a token from the desired project, to the
22
12
  // TX-sending address. Requires Merkle proof.
23
13
  function purchase(
24
- uint256 _projectId,
25
- address _coreContract,
26
- bytes32[] calldata _proof
14
+ uint256 projectId,
15
+ address coreContract,
16
+ bytes32[] calldata proof
27
17
  ) external payable returns (uint256 tokenId);
28
18
 
29
19
  // Triggers a purchase of a token from the desired project, to the specified
30
20
  // receiving address. Requires Merkle proof.
31
21
  function purchaseTo(
32
- address _to,
33
- uint256 _projectId,
34
- address _coreContract,
35
- bytes32[] calldata _proof
22
+ address to,
23
+ uint256 projectId,
24
+ address coreContract,
25
+ bytes32[] calldata proof
36
26
  ) external payable returns (uint256 tokenId);
37
27
 
38
28
  // Updates the Merkle root for the desired project.
39
29
  function updateMerkleRoot(
40
- uint256 _projectId,
41
- address _coreContract,
42
- bytes32 _root
30
+ uint256 projectId,
31
+ address coreContract,
32
+ bytes32 root
43
33
  ) external;
44
34
  }
@@ -0,0 +1,23 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Created By: Art Blocks Inc.
3
+
4
+ pragma solidity ^0.8.0;
5
+
6
+ /**
7
+ * @title This interface adds support for ranked auction minting.
8
+ * @author Art Blocks Inc.
9
+ */
10
+ interface ISharedMinterRAMV0 {
11
+ function createBid(
12
+ uint256 projectId,
13
+ address coreContract,
14
+ uint16 slotIndex
15
+ ) external payable;
16
+
17
+ function topUpBid(
18
+ uint256 projectId,
19
+ address coreContract,
20
+ uint32 bidId,
21
+ uint16 newSlotIndex
22
+ ) external payable;
23
+ }