@artblocks/contracts 1.3.2 → 1.4.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 (229) hide show
  1. package/README.md +11 -10
  2. package/artifacts/contracts/AdminACLV0RoyaltyRegistry.sol/AdminACLV0RoyaltyRegistry.json +193 -0
  3. package/artifacts/contracts/AdminACLV0RoyaltyRegistry.sol/IRoyaltyRegistry.json +35 -0
  4. package/artifacts/contracts/AdminACLV1.sol/AdminACLV1.json +2 -2
  5. package/artifacts/contracts/BytecodeStorageReaders/BytecodeStorageReaderContractV2.sol/BytecodeStorageReaderContractV2.json +2 -2
  6. package/artifacts/contracts/BytecodeStorageReaders/BytecodeStorageReaderContractV2_Web3Call.sol/BytecodeStorageReaderContractV2_Web3Call.json +2 -2
  7. package/artifacts/contracts/BytecodeStorageV2Writer.sol/BytecodeStorageV2Writer.json +2 -2
  8. package/artifacts/contracts/DependencyRegistryV0.sol/DependencyRegistryV0.json +210 -2
  9. package/artifacts/contracts/GenArt721CoreV3_Curated.sol/GenArt721CoreV3_Curated.json +235 -20
  10. package/artifacts/contracts/GenArt721CoreV3_Curated_Flex.sol/GenArt721CoreV3_Curated_Flex.json +3197 -0
  11. package/artifacts/contracts/GenArt721CoreV3_Explorations_Flex.sol/GenArt721CoreV3_Explorations_Flex.json +3192 -0
  12. package/artifacts/contracts/OwnedCreate2FactoryV0.sol/OwnedCreate2FactoryV0.json +2 -2
  13. package/artifacts/contracts/archive/GenArt721CoreV3.sol/GenArt721CoreV3.json +27 -2
  14. package/artifacts/contracts/archive/GenArt721CoreV3_Explorations.sol/GenArt721CoreV3_Explorations.json +27 -2
  15. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV2.sol/MinterDAExpV2.json +2 -2
  16. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV3.sol/MinterDAExpV3.json +2 -2
  17. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV4.sol/MinterDAExpV4.json +2 -2
  18. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol/MinterDAExpSettlementV0.json +2 -2
  19. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV1.sol/MinterDAExpSettlementV1.json +2 -2
  20. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV2.sol/MinterDAExpSettlementV2.json +2 -2
  21. package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV2.sol/MinterDALinV2.json +2 -2
  22. package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV3.sol/MinterDALinV3.json +2 -2
  23. package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV4.sol/MinterDALinV4.json +2 -2
  24. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV1.sol/MinterHolderV1.json +2 -2
  25. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV2.sol/MinterHolderV2.json +2 -2
  26. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV3.sol/MinterHolderV3.json +2 -2
  27. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV4.sol/MinterHolderV4.json +2 -2
  28. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV1.sol/MinterMerkleV1.json +2 -2
  29. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV2.sol/MinterMerkleV2.json +2 -2
  30. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV3.sol/MinterMerkleV3.json +2 -2
  31. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV4.sol/MinterMerkleV4.json +2 -2
  32. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV5.sol/MinterMerkleV5.json +2 -2
  33. package/artifacts/contracts/archive/minter-suite/Minters/MinterPolyptych/MinterPolyptychV0.sol/IGenArt721CoreContractV3WithRandomizer.json +25 -0
  34. package/artifacts/contracts/archive/minter-suite/Minters/MinterPolyptych/MinterPolyptychV0.sol/MinterPolyptychV0.json +2 -2
  35. package/artifacts/contracts/archive/minter-suite/Minters/MinterSEA/MinterSEAV0.sol/MinterSEAV0.json +2 -2
  36. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV2.sol/MinterSetPriceV2.json +2 -2
  37. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV3.sol/MinterSetPriceV3.json +2 -2
  38. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV4.sol/MinterSetPriceV4.json +2 -2
  39. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V2.sol/MinterSetPriceERC20V2.json +2 -2
  40. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V3.sol/MinterSetPriceERC20V3.json +2 -2
  41. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V4.sol/MinterSetPriceERC20V4.json +2 -2
  42. package/artifacts/contracts/engine/V3/EngineFactoryV0.sol/EngineFactoryV0.json +28 -2
  43. package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine.sol/GenArt721CoreV3_Engine.json +239 -20
  44. package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol/GenArt721CoreV3_Engine_Flex.json +267 -48
  45. package/artifacts/contracts/engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol/GenArt721CoreV3_Engine_Flex_PROOF.json +27 -2
  46. package/artifacts/contracts/engine/V3/forks/PROHIBITION/AdminACLV0_PROHIBITION.sol/AdminACLV0_PROHIBITION.json +2 -2
  47. package/artifacts/contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol/GenArt721CoreV3_Engine_Flex_PROHIBITION.json +27 -2
  48. package/artifacts/contracts/engine/V3/forks/PROHIBITION/interfaces/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.sol/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.json +25 -0
  49. package/artifacts/contracts/engine/V3/transfer-hooks/AbstractTransferHook.sol/AbstractTransferHook.json +79 -0
  50. package/artifacts/contracts/engine/V3/transfer-hooks/OwnerHistoryTransferHook.sol/OwnerHistoryTransferHook.json +315 -0
  51. package/artifacts/contracts/generator/GenArt721GeneratorV0.sol/GenArt721GeneratorV0.json +2 -2
  52. package/artifacts/contracts/interfaces/v0.8.x/IClaimMinter.sol/IClaimMinter.json +189 -0
  53. package/artifacts/contracts/interfaces/v0.8.x/IDependencyRegistryV0.sol/IDependencyRegistryV0.json +149 -0
  54. package/artifacts/contracts/interfaces/v0.8.x/IEngineFactoryV0.sol/IEngineFactoryV0.json +26 -0
  55. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3.sol/IGenArt721CoreContractV3.json +25 -0
  56. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Base.sol/IGenArt721CoreContractV3_Base.json +25 -0
  57. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine.sol/IGenArt721CoreContractV3_Engine.json +123 -0
  58. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex.sol/IGenArt721CoreContractV3_Engine_Flex.json +123 -0
  59. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex_PreV3p2.sol/IGenArt721CoreContractV3_Engine_Flex_PreV3p2.json +25 -0
  60. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_PreV3p2.sol/IGenArt721CoreContractV3_Engine_PreV3p2.json +25 -0
  61. package/artifacts/contracts/interfaces/v0.8.x/IOwnerHistoryTransferHook.sol/IOwnerHistoryTransferHook.json +299 -0
  62. package/artifacts/contracts/interfaces/v0.8.x/ISRHooks.sol/ISRHooks.json +432 -0
  63. package/artifacts/contracts/interfaces/v0.8.x/ISeaDropShimForContract.sol/ISeaDropShimForContract.json +0 -13
  64. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterTieredAllowV0.sol/ISharedMinterTieredAllowV0.json +94 -0
  65. package/artifacts/contracts/interfaces/v0.8.x/ITransferHook.sol/ITransferHook.json +63 -0
  66. package/artifacts/contracts/libs/v0.8.x/AuthLib.sol/AuthLib.json +2 -2
  67. package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV2.sol/BytecodeStorageReader.json +2 -2
  68. package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV2.sol/BytecodeStorageWriter.json +2 -2
  69. package/artifacts/contracts/libs/v0.8.x/DependencyRegistryStorageLib.sol/DependencyRegistryStorageLib.json +2 -2
  70. package/artifacts/contracts/libs/v0.8.x/ENSLib.sol/ENSLib.json +10 -0
  71. package/artifacts/contracts/libs/v0.8.x/ENSLib.sol/IUniversalResolver.json +45 -0
  72. package/artifacts/contracts/libs/v0.8.x/EnumerableSetUint16.sol/EnumerableSetUint16.json +10 -0
  73. package/artifacts/contracts/libs/v0.8.x/FeistelWalkLib.sol/FeistelWalkLib.json +10 -0
  74. package/artifacts/contracts/libs/v0.8.x/ImmutableUint16Array.sol/ImmutableUint16Array.json +10 -0
  75. package/artifacts/contracts/libs/v0.8.x/V3EngineLib.sol/V3EngineLib.json +163 -0
  76. package/artifacts/contracts/libs/v0.8.x/V3FlexLib.sol/V3FlexLib.json +2 -2
  77. package/artifacts/contracts/libs/v0.8.x/V3TransferHookLib.sol/V3TransferHookLib.json +79 -0
  78. package/artifacts/contracts/libs/v0.8.x/minter-libs/MaxInvocationsLib.sol/MaxInvocationsLib.json +2 -2
  79. package/artifacts/contracts/libs/v0.8.x/minter-libs/OnChainAllowlistLib.sol/OnChainAllowlistLib.json +10 -0
  80. package/artifacts/contracts/libs/v0.8.x/minter-libs/PolyptychLib.sol/PolyptychLib.json +2 -2
  81. package/artifacts/contracts/libs/v0.8.x/minter-libs/RAMLib.sol/RAMLib.json +2 -2
  82. package/artifacts/contracts/libs/v0.8.x/minter-libs/SEALib.sol/SEALib.json +2 -2
  83. package/artifacts/contracts/libs/v0.8.x/minter-libs/SettlementExpLib.sol/SettlementExpLib.json +2 -2
  84. package/artifacts/contracts/libs/v0.8.x/minter-libs/SplitFundsLib.sol/SplitFundsLib.json +2 -2
  85. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV1.sol/MinterFilterV1.json +2 -2
  86. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV2.sol/MinterFilterV2.json +2 -2
  87. package/artifacts/contracts/minter-suite/Minters/MinterDAExpHolderV5.sol/MinterDAExpHolderV5.json +2 -2
  88. package/artifacts/contracts/minter-suite/Minters/MinterDAExpSettlementV3.sol/MinterDAExpSettlementV3.json +2 -2
  89. package/artifacts/contracts/minter-suite/Minters/MinterDAExpV5.sol/MinterDAExpV5.json +2 -2
  90. package/artifacts/contracts/minter-suite/Minters/MinterDALinHolderV5.sol/MinterDALinHolderV5.json +2 -2
  91. package/artifacts/contracts/minter-suite/Minters/MinterDALinV5.sol/MinterDALinV5.json +2 -2
  92. package/artifacts/contracts/minter-suite/Minters/MinterMinPriceMerkleV0.sol/MinterMinPriceMerkleV0.json +2 -2
  93. package/artifacts/contracts/minter-suite/Minters/MinterMinPriceV0.sol/MinterMinPriceV0.json +2 -2
  94. package/artifacts/contracts/minter-suite/Minters/MinterRAMV0.sol/MinterRAMV0.json +2 -2
  95. package/artifacts/contracts/minter-suite/Minters/MinterSEAV1.sol/MinterSEAV1.json +2 -2
  96. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20V5.sol/MinterSetPriceERC20V5.json +2 -2
  97. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceHolderV5.sol/MinterSetPriceHolderV5.json +2 -2
  98. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceMerkleV5.sol/MinterSetPriceMerkleV5.json +2 -2
  99. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceOnChainAllowV0.sol/MinterSetPriceOnChainAllowV0.json +522 -0
  100. package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychERC20V5.sol/MinterSetPricePolyptychERC20V5.json +2 -2
  101. package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychV5.sol/MinterSetPricePolyptychV5.json +2 -2
  102. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceTieredAllowV1.sol/MinterSetPriceTieredAllowV1.json +715 -0
  103. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceV5.sol/MinterSetPriceV5.json +2 -2
  104. package/artifacts/contracts/minter-suite/Minters/MinterSlidingScaleV0.sol/MinterSlidingScaleV0.json +431 -0
  105. package/artifacts/contracts/minter-suite/Minters/one-off/ClaimMinter.sol/ClaimMinter.json +502 -0
  106. package/artifacts/contracts/minter-suite/Minters/one-off/MinterSetPriceTieredOnChainAllowV0.sol/MinterSetPriceTieredOnChainAllowV0.json +673 -0
  107. package/artifacts/contracts/minter-suite/Minters/one-off/MinterSetPriceV5_SingleCore.sol/MinterSetPriceV5_SingleCore.json +2 -2
  108. package/artifacts/contracts/minter-suite/Minters/one-off/SeaDropXArtBlocksShim.sol/SeaDropXArtBlocksShim.json +6 -19
  109. package/artifacts/contracts/mock/BytecodeV2TextCR_DMock.sol/BytecodeV2TextCR_DMock.json +2 -2
  110. package/artifacts/contracts/mock/DummySharedMinter.sol/DummySharedMinter.json +2 -2
  111. package/artifacts/contracts/mock/ENSLibMock.sol/ENSLibMock.json +30 -0
  112. package/artifacts/contracts/mock/EnumerableSetUint16Mock.sol/EnumerableSetUint16Mock.json +146 -0
  113. package/artifacts/contracts/mock/FeistelWalkLibMock.sol/FeistelWalkLibMock.json +142 -0
  114. package/artifacts/contracts/mock/ForceSendMock.sol/ForceSendMock.json +2 -2
  115. package/artifacts/contracts/mock/GenArt721CoreV3_Engine_IncorrectCoreType.sol/GenArt721CoreV3_Engine_IncorrectCoreType.json +2 -2
  116. package/artifacts/contracts/mock/ImmutableUint16ArrayMock.sol/ImmutableUint16ArrayMock.json +89 -0
  117. package/artifacts/contracts/mock/MockAdminACLV0_PROHIBITION.sol/MockAdminACLV0Events_PROHIBITION.json +2 -2
  118. package/artifacts/contracts/mock/MockGenArt721V3Core.sol/MockGenArt721V3Core.json +490 -0
  119. package/artifacts/contracts/mock/MockPMP.sol/MockPMP.json +523 -0
  120. package/artifacts/contracts/mock/MockTransferHook.sol/MockTransferHook.json +453 -0
  121. package/artifacts/contracts/mock/MockTransferHookTestHelpers.sol/MockBatchTransferrer.json +39 -0
  122. package/artifacts/contracts/mock/MockTransferHookTestHelpers.sol/MockForwardingERC721Receiver.json +71 -0
  123. package/artifacts/contracts/mock/MockTransferHookTestHelpers.sol/MockSpoofingCore.json +94 -0
  124. package/artifacts/contracts/mock/RandomizerV2_NoAssignMock.sol/RandomizerV2_NoAssignMock.json +2 -2
  125. package/artifacts/contracts/mock/ReentrancyBatchMockShared.sol/IBatchMinter.json +64 -0
  126. package/artifacts/contracts/mock/ReentrancyBatchMockShared.sol/ReentrancyBatchMockShared.json +113 -0
  127. package/artifacts/contracts/mock/RelayExecutorTestHelper.sol/MockTarget.json +74 -0
  128. package/artifacts/contracts/mock/RelayExecutorTestHelper.sol/RelayExecutorPartialRevertsTestHelper.json +138 -0
  129. package/artifacts/contracts/mock/RelayExecutorTestHelper.sol/RelayExecutorTestHelper.json +119 -0
  130. package/artifacts/contracts/randomizer/deprecated/PolyptychRandomizerV0.sol/BasicPolyptychRandomizerV0.json +2 -2
  131. package/artifacts/contracts/randomizer/deprecated/RandomizerV2.sol/BasicRandomizerV2.json +2 -2
  132. package/artifacts/contracts/randomizer/shared/SharedRandomizerV0.sol/SharedRandomizerV0.json +2 -2
  133. package/artifacts/contracts/relay/RelayExecutor.sol/RelayExecutor.json +101 -0
  134. package/artifacts/contracts/relay/RelayExecutorPartialReverts.sol/RelayExecutorPartialReverts.json +120 -0
  135. package/artifacts/contracts/royalty-registry/GenArt721RoyaltyOverrideSplits.sol/GenArt721RoyaltyOverrideSplits.json +263 -0
  136. package/artifacts/contracts/utils/MintMulticallUtil.sol/IMinterSetPriceV5.json +40 -0
  137. package/artifacts/contracts/utils/MintMulticallUtil.sol/MintMulticallUtil.json +163 -0
  138. package/artifacts/contracts/web3call/PMPV0.sol/PMPV0.json +2 -2
  139. package/artifacts/contracts/web3call/PMPV1.sol/PMPV1.json +648 -0
  140. package/artifacts/contracts/web3call/augment-hooks/InjectBaseGasFee.sol/InjectBaseGasFee.json +2 -2
  141. package/artifacts/contracts/web3call/augment-hooks/InjectBlockHeight.sol/InjectBlockHeight.json +83 -0
  142. package/artifacts/contracts/web3call/augment-hooks/InjectBlockHeightAndArtistProjectOverrides.sol/InjectBlockHeightAndArtistProjectOverrides.json +226 -0
  143. package/artifacts/contracts/web3call/augment-hooks/InjectBlockHeightAndNumOwnedProjectTokens.sol/InjectBlockHeightAndNumOwnedProjectTokens.json +182 -0
  144. package/artifacts/contracts/web3call/augment-hooks/InjectBlockHeightProjectInvocationsAndArtistProjectOverrides.sol/InjectBlockHeightProjectInvocationsAndArtistProjectOverrides.json +226 -0
  145. package/artifacts/contracts/web3call/augment-hooks/InjectBlockTimestamp.sol/InjectBlockTimestamp.json +83 -0
  146. package/artifacts/contracts/web3call/augment-hooks/InjectBytesPerToken.sol/InjectBytesPerToken.json +358 -0
  147. package/artifacts/contracts/web3call/augment-hooks/InjectChromieSquiggleFloorPrice.sol/InjectChromieSquiggleFloorPrice.json +2 -2
  148. package/artifacts/contracts/web3call/augment-hooks/InjectIsNounsDaoMember.sol/InjectIsNounsDaoMember.json +2 -2
  149. package/artifacts/contracts/web3call/augment-hooks/InjectIsProjectFullyMinted.sol/InjectIsProjectFullyMinted.json +2 -2
  150. package/artifacts/contracts/web3call/augment-hooks/InjectPolyptychTokenHash.sol/InjectPolyptychTokenHash.json +2 -2
  151. package/artifacts/contracts/web3call/augment-hooks/InjectTokenHashSeed.sol/InjectTokenHashSeed.json +2 -2
  152. package/artifacts/contracts/web3call/augment-hooks/InjectTokenOwner.sol/InjectTokenOwner.json +2 -2
  153. package/artifacts/contracts/web3call/augment-hooks/InjectTokenOwnerEthBalance.sol/InjectTokenOwnerEthBalance.json +2 -2
  154. package/artifacts/contracts/web3call/augment-hooks/InjectUSDCTotalSupply.sol/InjectUSDCTotalSupply.json +2 -2
  155. package/artifacts/contracts/web3call/augment-hooks/SRHooks.sol/SRHooks.json +899 -0
  156. package/artifacts/contracts/web3call/combined-hooks/LiftHooks.sol/IGenArt721V0_Minimal.json +30 -0
  157. package/artifacts/contracts/web3call/combined-hooks/LiftHooks.sol/IRelic.json +35 -0
  158. package/artifacts/contracts/web3call/combined-hooks/LiftHooks.sol/LiftHooks.json +256 -0
  159. package/artifacts/contracts/web3call/configure-hooks/{abstractPMPConfigureHook.sol → AbstractPMPConfigureHook.sol}/AbstractPMPConfigureHook.json +1 -1
  160. package/artifacts/contracts/web3call/configure-hooks/PMPConfigureLockHook.sol/PMPConfigureLockHook.json +195 -0
  161. package/contracts/AdminACLV0RoyaltyRegistry.sol +142 -0
  162. package/contracts/DependencyRegistryV0.sol +143 -13
  163. package/contracts/GenArt721CoreV3_Curated.sol +1 -1
  164. package/contracts/GenArt721CoreV3_Curated_Flex.sol +173 -0
  165. package/contracts/GenArt721CoreV3_Explorations_Flex.sol +159 -0
  166. package/contracts/engine/V3/EngineFactoryV0.sol +20 -1
  167. package/contracts/engine/V3/GenArt721CoreV3_Engine.sol +286 -299
  168. package/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol +292 -301
  169. package/contracts/engine/V3/transfer-hooks/AbstractTransferHook.sol +101 -0
  170. package/contracts/engine/V3/transfer-hooks/OwnerHistoryTransferHook.sol +291 -0
  171. package/contracts/generator/GenArt721GeneratorV0.sol +145 -47
  172. package/contracts/helpers/ERC1967ProxyImport.sol +5 -0
  173. package/contracts/interfaces/v0.8.x/IArtblocksRoyaltyOverride.sol +1 -1
  174. package/contracts/interfaces/v0.8.x/IClaimMinter.sol +70 -0
  175. package/contracts/interfaces/v0.8.x/IDependencyRegistryV0.sol +95 -0
  176. package/contracts/interfaces/v0.8.x/IEngineFactoryV0.sol +15 -0
  177. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Base.sol +21 -2
  178. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine.sol +72 -0
  179. package/contracts/interfaces/v0.8.x/IOwnerHistoryTransferHook.sol +119 -0
  180. package/contracts/interfaces/v0.8.x/ISRHooks.sol +229 -0
  181. package/contracts/interfaces/v0.8.x/ISeaDropShimForContract.sol +0 -6
  182. package/contracts/interfaces/v0.8.x/ISharedMinterTieredAllowV0.sol +69 -0
  183. package/contracts/interfaces/v0.8.x/ITransferHook.sol +48 -0
  184. package/contracts/libs/v0.8.x/DependencyRegistryStorageLib.sol +12 -0
  185. package/contracts/libs/v0.8.x/ENSLib.sol +85 -0
  186. package/contracts/libs/v0.8.x/EnumerableSetUint16.sol +429 -0
  187. package/contracts/libs/v0.8.x/FeistelWalkLib.sol +221 -0
  188. package/contracts/libs/v0.8.x/ImmutableUint16Array.sol +201 -0
  189. package/contracts/libs/v0.8.x/V3EngineLib.sol +490 -0
  190. package/contracts/libs/v0.8.x/V3TransferHookLib.sol +251 -0
  191. package/contracts/libs/v0.8.x/minter-libs/OnChainAllowlistLib.sol +165 -0
  192. package/contracts/minter-suite/Minters/MinterSetPriceOnChainAllowV0.sol +632 -0
  193. package/contracts/minter-suite/Minters/MinterSetPriceTieredAllowV1.sol +871 -0
  194. package/contracts/minter-suite/Minters/MinterSlidingScaleV0.sol +493 -0
  195. package/contracts/minter-suite/Minters/one-off/ClaimMinter.sol +595 -0
  196. package/contracts/minter-suite/Minters/one-off/MinterSetPriceTieredOnChainAllowV0.sol +894 -0
  197. package/contracts/minter-suite/Minters/one-off/SeaDropXArtBlocksShim.sol +59 -41
  198. package/contracts/mock/ENSLibMock.sol +25 -0
  199. package/contracts/mock/EnumerableSetUint16Mock.sol +88 -0
  200. package/contracts/mock/FeistelWalkLibMock.sol +81 -0
  201. package/contracts/mock/ImmutableUint16ArrayMock.sol +62 -0
  202. package/contracts/mock/MockGenArt721V3Core.sol +416 -0
  203. package/contracts/mock/MockPMP.sol +287 -0
  204. package/contracts/mock/MockTransferHook.sol +160 -0
  205. package/contracts/mock/MockTransferHookTestHelpers.sol +96 -0
  206. package/contracts/mock/ReentrancyBatchMockShared.sol +53 -0
  207. package/contracts/mock/RelayExecutorTestHelper.sol +44 -0
  208. package/contracts/relay/RelayExecutor.sol +61 -0
  209. package/contracts/relay/RelayExecutorPartialReverts.sol +79 -0
  210. package/contracts/royalty-registry/GenArt721RoyaltyOverrideSplits.sol +130 -0
  211. package/contracts/utils/MintMulticallUtil.sol +103 -0
  212. package/contracts/web3call/PMPV1.sol +1204 -0
  213. package/contracts/web3call/augment-hooks/AbstractPMPAugmentHook.sol +1 -1
  214. package/contracts/web3call/augment-hooks/InjectBaseGasFee.sol +1 -1
  215. package/contracts/web3call/augment-hooks/InjectBlockHeight.sol +57 -0
  216. package/contracts/web3call/augment-hooks/InjectBlockHeightAndArtistProjectOverrides.sol +310 -0
  217. package/contracts/web3call/augment-hooks/InjectBlockHeightAndNumOwnedProjectTokens.sol +141 -0
  218. package/contracts/web3call/augment-hooks/InjectBlockHeightProjectInvocationsAndArtistProjectOverrides.sol +326 -0
  219. package/contracts/web3call/augment-hooks/InjectBlockTimestamp.sol +57 -0
  220. package/contracts/web3call/augment-hooks/InjectBytesPerToken.sol +279 -0
  221. package/contracts/web3call/augment-hooks/InjectIsProjectFullyMinted.sol +1 -1
  222. package/contracts/web3call/augment-hooks/InjectTokenHashSeed.sol +1 -1
  223. package/contracts/web3call/augment-hooks/InjectTokenOwner.sol +1 -1
  224. package/contracts/web3call/augment-hooks/InjectTokenOwnerEthBalance.sol +1 -1
  225. package/contracts/web3call/augment-hooks/SRHooks.sol +1722 -0
  226. package/contracts/web3call/combined-hooks/LiftHooks.sol +304 -0
  227. package/contracts/web3call/configure-hooks/{abstractPMPConfigureHook.sol → AbstractPMPConfigureHook.sol} +1 -1
  228. package/contracts/web3call/configure-hooks/PMPConfigureLockHook.sol +107 -0
  229. package/package.json +39 -24
@@ -416,23 +416,33 @@ contract SeaDropXArtBlocksShim is
416
416
  // --- external functions from ISeaDropTokenContractMetadata ---
417
417
 
418
418
  /**
419
- * @notice Sets the base URI for the token metadata and emits an event.
420
- * Reverts - baseURI must be configured on the Art Blocks core contract.
419
+ * @notice Sets the base URI for the token metadata.
420
+ * Warning - baseURI is a no-op on this shim contract, and the baseURI must be configured
421
+ * on the Art Blocks core contract. This function is included for compatibility with the
422
+ * SeaDropTokenContractMetadata interface to prevent unnecessary reverts. No-op is preferred
423
+ * over reverting.
421
424
  */
422
- function setBaseURI(string calldata /*tokenURI*/) external pure {
423
- revert(
424
- "SeaDropXArtBlocksShim: baseURI must be configured on the Art Blocks core contract"
425
- );
425
+ function setBaseURI(string calldata /*tokenURI*/) external view {
426
+ // CHECKS
427
+ _onlyArtistOrSelf(msg.sender);
428
+
429
+ // EFFECTS
430
+ // no-op
426
431
  }
427
432
 
428
433
  /**
429
434
  * @notice Sets the contract URI for contract metadata.
430
- * Reverts - contractURI is not supported on the Art Blocks core contract.
435
+ * Warning - contractURI is a no-op on this shim contract, and the contractURI must be configured
436
+ * on the Art Blocks core contract. This function is included for compatibility with the
437
+ * SeaDropTokenContractMetadata interface to prevent unnecessary reverts. No-op is preferred
438
+ * over reverting.
431
439
  */
432
- function setContractURI(string calldata /*newContractURI*/) external pure {
433
- revert(
434
- "SeaDropXArtBlocksShim: contractURI not supported on the Art Blocks core contract"
435
- );
440
+ function setContractURI(string calldata /*newContractURI*/) external view {
441
+ // CHECKS
442
+ _onlyArtistOrSelf(msg.sender);
443
+
444
+ // EFFECTS
445
+ // no-op
436
446
  }
437
447
 
438
448
  /**
@@ -449,9 +459,15 @@ contract SeaDropXArtBlocksShim is
449
459
  _onlyArtistOrSelf(msg.sender);
450
460
 
451
461
  // ensure maxSupply lte project's max invocations on core contract
452
- (, uint256 maxInvocations) = _getInvocationsDataFromCore();
453
- if (newMaxSupply > maxInvocations) {
454
- revert(
462
+ (
463
+ ,
464
+ uint256 maxInvocationsOnCoreContract
465
+ ) = _getInvocationsDataFromCore();
466
+ if (newMaxSupply > maxInvocationsOnCoreContract) {
467
+ // @dev revert if not special case of OpenSea OpenEdition (200M) and Art Blocks OpenEdition (1M)
468
+ require(
469
+ newMaxSupply == 200_000_000 &&
470
+ maxInvocationsOnCoreContract == 1_000_000,
455
471
  "SeaDropXArtBlocksShim: Only newMaxSupply lte max invocations on the Art Blocks core contract"
456
472
  );
457
473
  }
@@ -459,27 +475,37 @@ contract SeaDropXArtBlocksShim is
459
475
  // EFFECTS
460
476
  // set the local max supply
461
477
  localMaxSupply = newMaxSupply;
462
- emit LocalMaxSupplyUpdated(newMaxSupply);
478
+ emit MaxSupplyUpdated(newMaxSupply);
463
479
  }
464
480
 
465
481
  /**
466
- * @notice Sets the provenance hash and emits an event.
467
- * Reverts - provenanceHash is not supported on the Art Blocks core contract.
482
+ * @notice Sets the provenance hash.
483
+ * Warning - provenanceHash is a no-op on this shim contract, and the provenanceHash is not supported
484
+ * on the Art Blocks core contract. This function is included for compatibility with the
485
+ * SeaDropTokenContractMetadata interface to prevent unnecessary reverts. No-op is preferred
486
+ * over reverting.
468
487
  */
469
- function setProvenanceHash(bytes32 /*newProvenanceHash*/) external pure {
470
- revert(
471
- "SeaDropXArtBlocksShim: provenance hash not supported on Art Blocks contracts"
472
- );
488
+ function setProvenanceHash(bytes32 /*newProvenanceHash*/) external view {
489
+ // CHECKS
490
+ _onlyArtistOrSelf(msg.sender);
491
+
492
+ // EFFECTS
493
+ // no-op
473
494
  }
474
495
 
475
496
  /**
476
497
  * @notice Sets the address and basis points for royalties.
477
- * Reverts - royalties must be configured on the Art Blocks core contract.
498
+ * Warning - royalties are a no-op on this shim contract, and the royalties must be configured
499
+ * on the Art Blocks core contract. This function is included for compatibility with the
500
+ * SeaDropTokenContractMetadata interface to prevent unnecessary reverts. No-op is preferred
501
+ * over reverting.
478
502
  */
479
- function setRoyaltyInfo(RoyaltyInfo calldata /*newInfo*/) external pure {
480
- revert(
481
- "SeaDropXArtBlocksShim: royalties must be configured on the Art Blocks core contract"
482
- );
503
+ function setRoyaltyInfo(RoyaltyInfo calldata /*newInfo*/) external view {
504
+ // CHECKS
505
+ _onlyArtistOrSelf(msg.sender);
506
+
507
+ // EFFECTS
508
+ // no-op
483
509
  }
484
510
 
485
511
  // --- external functions from https://github.com/ProjectOpenSea/seadrop/blob/main/src/ERC721SeaDrop.sol ---
@@ -488,13 +514,8 @@ contract SeaDropXArtBlocksShim is
488
514
  * @notice Configure multiple properties at a time.
489
515
  * Note: The individual configure methods should be used to unset or reset any properties to zero, as this method
490
516
  * will ignore zero-value properties in the config struct.
491
- * The following parameters are not supported in this function, will cause revert, and should be configured on the
492
- * Art Blocks core contract directly:
493
- * - maxSupply
517
+ * The following parameters are not supported in this function, and will be ignored/no-op:
494
518
  * - baseURI
495
- * - allowedFeeRecipients
496
- * - disallowedFeeRecipients
497
- * The following parameters are not supported by Art Blocks contracts and will cause revert:
498
519
  * - contractURI
499
520
  * - provenanceHash
500
521
  * @dev logic for supported operations is taken from example SeaDrop implementation, and was tested end-to-end, and
@@ -510,14 +531,12 @@ contract SeaDropXArtBlocksShim is
510
531
  this.setMaxSupply(config.maxSupply);
511
532
  }
512
533
  if (bytes(config.baseURI).length != 0) {
513
- revert(
514
- "SeaDropXArtBlocksShim: baseURI must be configured on the Art Blocks core contract"
515
- );
534
+ // @dev this is a no-op on this shim contract
535
+ this.setBaseURI(config.baseURI);
516
536
  }
517
537
  if (bytes(config.contractURI).length != 0) {
518
- revert(
519
- "SeaDropXArtBlocksShim: contractURI not supported on the Art Blocks core contract"
520
- );
538
+ // @dev this is a no-op on this shim contract
539
+ this.setContractURI(config.contractURI);
521
540
  }
522
541
  if (
523
542
  config.publicDrop.startTime != 0 || config.publicDrop.endTime != 0
@@ -537,9 +556,8 @@ contract SeaDropXArtBlocksShim is
537
556
  );
538
557
  }
539
558
  if (config.provenanceHash != bytes32(0)) {
540
- revert(
541
- "SeaDropXArtBlocksShim: provenance hash not supported on Art Blocks contracts"
542
- );
559
+ // @dev this is a no-op on this shim contract
560
+ this.setProvenanceHash(config.provenanceHash);
543
561
  }
544
562
  if (config.allowedFeeRecipients.length > 0) {
545
563
  for (uint256 i = 0; i < config.allowedFeeRecipients.length; ) {
@@ -0,0 +1,25 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Created By: Art Blocks Inc.
3
+
4
+ pragma solidity 0.8.22;
5
+
6
+ import {ENSLib} from "../libs/v0.8.x/ENSLib.sol";
7
+
8
+ /**
9
+ * @title ENSLibMock
10
+ * @notice Mock contract to expose ENSLib functions for testing
11
+ * @dev This contract is only used for testing and should not be deployed in production
12
+ * @author Art Blocks Inc.
13
+ */
14
+ contract ENSLibMock {
15
+ /**
16
+ * @notice Wrapper for ENSLib.getEnsName to enable testing
17
+ * @param ownerAddress The address to resolve the ENS name for
18
+ * @return The ENS name for the address, or empty string if not found/invalid
19
+ */
20
+ function getEnsName(
21
+ address ownerAddress
22
+ ) external view returns (string memory) {
23
+ return ENSLib.getEnsName(ownerAddress);
24
+ }
25
+ }
@@ -0,0 +1,88 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Created By: Art Blocks Inc.
3
+
4
+ pragma solidity ^0.8.0;
5
+
6
+ import {EnumerableSetUint16} from "../libs/v0.8.x/EnumerableSetUint16.sol";
7
+
8
+ /**
9
+ * @title EnumerableSetUint16Mock
10
+ * @author Art Blocks Inc.
11
+ * @notice Mock contract for testing EnumerableSetUint16 library
12
+ */
13
+ contract EnumerableSetUint16Mock {
14
+ using EnumerableSetUint16 for EnumerableSetUint16.Uint16Set;
15
+
16
+ EnumerableSetUint16.Uint16Set private _set;
17
+
18
+ /**
19
+ * @dev Add a value to the set. Returns true if added, false if already present.
20
+ */
21
+ function add(uint16 value) external returns (bool) {
22
+ return _set.add(value);
23
+ }
24
+
25
+ /**
26
+ * @dev Remove a value from the set. Returns true if removed, false if not present.
27
+ */
28
+ function remove(uint16 value) external returns (bool) {
29
+ return _set.remove(value);
30
+ }
31
+
32
+ /**
33
+ * @dev Check if a value is in the set.
34
+ */
35
+ function contains(uint16 value) external view returns (bool) {
36
+ return _set.contains(value);
37
+ }
38
+
39
+ /**
40
+ * @dev Get the number of values in the set.
41
+ */
42
+ function length() external view returns (uint256) {
43
+ return _set.length();
44
+ }
45
+
46
+ /**
47
+ * @dev Get the value at a specific index.
48
+ */
49
+ function at(uint256 index) external view returns (uint16) {
50
+ return _set.at(index);
51
+ }
52
+
53
+ /**
54
+ * @dev Get all values in the set.
55
+ */
56
+ function values() external view returns (uint256[] memory) {
57
+ return _set.values();
58
+ }
59
+
60
+ /**
61
+ * @dev Add multiple values at once for testing.
62
+ */
63
+ function addMultiple(uint16[] calldata valuesToAdd) external {
64
+ for (uint256 i = 0; i < valuesToAdd.length; i++) {
65
+ _set.add(valuesToAdd[i]);
66
+ }
67
+ }
68
+
69
+ /**
70
+ * @dev Remove multiple values at once for testing.
71
+ */
72
+ function removeMultiple(uint16[] calldata valuesToRemove) external {
73
+ for (uint256 i = 0; i < valuesToRemove.length; i++) {
74
+ _set.remove(valuesToRemove[i]);
75
+ }
76
+ }
77
+
78
+ /**
79
+ * @dev Clear all values from the set.
80
+ */
81
+ function clear() external {
82
+ uint256 len = _set.length();
83
+ for (uint256 i = 0; i < len; i++) {
84
+ uint16 value = _set.at(0);
85
+ _set.remove(value);
86
+ }
87
+ }
88
+ }
@@ -0,0 +1,81 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {FeistelWalkLib} from "../libs/v0.8.x/FeistelWalkLib.sol";
5
+
6
+ /**
7
+ * @title FeistelWalkLibMock
8
+ * @notice Mock contract for testing FeistelWalkLib library functionality
9
+ */
10
+ contract FeistelWalkLibMock {
11
+ using FeistelWalkLib for FeistelWalkLib.Plan;
12
+
13
+ /**
14
+ * @notice Build a Feistel permutation plan
15
+ * @param seed Arbitrary seed
16
+ * @param N Domain size
17
+ * @return N The domain size
18
+ * @return M The next power of two >= N
19
+ * @return logM The log2 of M (precomputed)
20
+ * @return rounds The number of Feistel rounds (always 2)
21
+ * @return k0 First round key
22
+ * @return k1 Second round key
23
+ */
24
+ function makePlan(
25
+ bytes32 seed,
26
+ uint256 N
27
+ )
28
+ external
29
+ pure
30
+ returns (uint256, uint256, uint256, uint256, uint64, uint64)
31
+ {
32
+ FeistelWalkLib.Plan memory p = FeistelWalkLib.makePlan(seed, N);
33
+ return (p.N, p.M, p.logM, p.rounds, p.k0, p.k1);
34
+ }
35
+
36
+ /**
37
+ * @notice Get the k-th index in the permutation
38
+ * @param seed Arbitrary seed
39
+ * @param N Domain size
40
+ * @param k The index in the permutation sequence
41
+ * @return The permuted index
42
+ */
43
+ function index(
44
+ bytes32 seed,
45
+ uint256 N,
46
+ uint256 k
47
+ ) external pure returns (uint256) {
48
+ FeistelWalkLib.Plan memory p = FeistelWalkLib.makePlan(seed, N);
49
+ return FeistelWalkLib.index(p, k);
50
+ }
51
+
52
+ /**
53
+ * @notice Sample K indices from the permutation
54
+ * @param seed Arbitrary seed
55
+ * @param N Domain size
56
+ * @param K Number of samples to take
57
+ * @return Array of K permuted indices
58
+ */
59
+ function sample(
60
+ bytes32 seed,
61
+ uint256 N,
62
+ uint256 K
63
+ ) external pure returns (uint256[] memory) {
64
+ FeistelWalkLib.Plan memory p = FeistelWalkLib.makePlan(seed, N);
65
+ return FeistelWalkLib.sample(p, K);
66
+ }
67
+
68
+ /**
69
+ * @notice Get all N indices in the permutation (full traversal)
70
+ * @param seed Arbitrary seed
71
+ * @param N Domain size
72
+ * @return Array of all N permuted indices
73
+ */
74
+ function fullTraversal(
75
+ bytes32 seed,
76
+ uint256 N
77
+ ) external pure returns (uint256[] memory) {
78
+ FeistelWalkLib.Plan memory p = FeistelWalkLib.makePlan(seed, N);
79
+ return FeistelWalkLib.sample(p, N);
80
+ }
81
+ }
@@ -0,0 +1,62 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity ^0.8.0;
3
+
4
+ import {ImmutableUint16Array} from "../libs/v0.8.x/ImmutableUint16Array.sol";
5
+
6
+ /**
7
+ * @title ImmutableUint16ArrayMock
8
+ * @notice Mock contract for testing ImmutableUint16Array library functionality
9
+ */
10
+ contract ImmutableUint16ArrayMock {
11
+ using ImmutableUint16Array for ImmutableUint16Array.Uint16Array;
12
+
13
+ ImmutableUint16Array.Uint16Array private uint16Array;
14
+
15
+ /**
16
+ * @notice Store an array of uint16 values
17
+ * @param values The array of uint16 values to store
18
+ */
19
+ function store(uint16[] memory values) external {
20
+ uint16Array.store(values);
21
+ }
22
+
23
+ /**
24
+ * @notice Clear the stored array
25
+ */
26
+ function clear() external {
27
+ uint16Array.clear();
28
+ }
29
+
30
+ /**
31
+ * @notice Check if the array is empty
32
+ * @return Whether the array is empty
33
+ */
34
+ function isEmpty() external view returns (bool) {
35
+ return uint16Array.isEmpty();
36
+ }
37
+
38
+ /**
39
+ * @notice Get the length of the stored array
40
+ * @return The number of uint16 values stored
41
+ */
42
+ function length() external view returns (uint256) {
43
+ return uint16Array.length();
44
+ }
45
+
46
+ /**
47
+ * @notice Get a uint16 value at a specific index
48
+ * @param index The index to retrieve
49
+ * @return The uint16 value at the given index
50
+ */
51
+ function get(uint256 index) external view returns (uint16) {
52
+ return uint16Array.get(index);
53
+ }
54
+
55
+ /**
56
+ * @notice Get all stored uint16 values
57
+ * @return An array containing all stored uint16 values
58
+ */
59
+ function getAll() external view returns (uint16[] memory) {
60
+ return uint16Array.getAll();
61
+ }
62
+ }