@artblocks/contracts 1.2.0 → 1.3.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 (219) hide show
  1. package/README.md +22 -38
  2. package/artifacts/contracts/AdminACLV1.sol/AdminACLV1.json +2 -2
  3. package/artifacts/contracts/BytecodeStorageReaders/BytecodeStorageReaderContractV2.sol/BytecodeStorageReaderContractV2.json +201 -0
  4. package/artifacts/contracts/BytecodeStorageReaders/BytecodeStorageReaderContractV2_Web3Call.sol/BytecodeStorageReaderContractV2_Web3Call.json +201 -0
  5. package/artifacts/contracts/BytecodeStorageReaders/UniversalBytecodeStorageReader.sol/UniversalBytecodeStorageReader.json +154 -0
  6. package/artifacts/contracts/BytecodeStorageV2Writer.sol/BytecodeStorageV2Writer.json +87 -0
  7. package/artifacts/contracts/DependencyRegistryV0.sol/DependencyRegistryV0.json +174 -55
  8. package/artifacts/contracts/GenArt721CoreV3_Curated.sol/GenArt721CoreV3_Curated.json +2493 -0
  9. package/artifacts/contracts/OwnedCreate2FactoryV0.sol/OwnedCreate2FactoryV0.json +311 -0
  10. package/artifacts/contracts/archive/GenArt721CoreV3.sol/GenArt721CoreV3.json +15 -2
  11. package/artifacts/contracts/archive/GenArt721CoreV3_Explorations.sol/GenArt721CoreV3_Explorations.json +15 -2
  12. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV2.sol/MinterDAExpV2.json +2 -2
  13. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV3.sol/MinterDAExpV3.json +2 -2
  14. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV4.sol/MinterDAExpV4.json +2 -2
  15. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol/MinterDAExpSettlementV0.json +2 -2
  16. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV1.sol/MinterDAExpSettlementV1.json +2 -2
  17. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV2.sol/MinterDAExpSettlementV2.json +2 -2
  18. package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV2.sol/MinterDALinV2.json +2 -2
  19. package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV3.sol/MinterDALinV3.json +2 -2
  20. package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV4.sol/MinterDALinV4.json +2 -2
  21. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV1.sol/MinterHolderV1.json +2 -2
  22. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV2.sol/MinterHolderV2.json +2 -2
  23. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV3.sol/MinterHolderV3.json +2 -2
  24. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV4.sol/MinterHolderV4.json +2 -2
  25. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV1.sol/MinterMerkleV1.json +2 -2
  26. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV2.sol/MinterMerkleV2.json +2 -2
  27. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV3.sol/MinterMerkleV3.json +2 -2
  28. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV4.sol/MinterMerkleV4.json +2 -2
  29. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV5.sol/MinterMerkleV5.json +2 -2
  30. package/artifacts/contracts/archive/minter-suite/Minters/MinterPolyptych/MinterPolyptychV0.sol/IGenArt721CoreContractV3WithRandomizer.json +37 -0
  31. package/artifacts/contracts/archive/minter-suite/Minters/MinterPolyptych/MinterPolyptychV0.sol/MinterPolyptychV0.json +2 -2
  32. package/artifacts/contracts/archive/minter-suite/Minters/MinterSEA/MinterSEAV0.sol/MinterSEAV0.json +2 -2
  33. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV2.sol/MinterSetPriceV2.json +2 -2
  34. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV3.sol/MinterSetPriceV3.json +2 -2
  35. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV4.sol/MinterSetPriceV4.json +2 -2
  36. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V2.sol/MinterSetPriceERC20V2.json +2 -2
  37. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V3.sol/MinterSetPriceERC20V3.json +2 -2
  38. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V4.sol/MinterSetPriceERC20V4.json +2 -2
  39. package/artifacts/contracts/engine/V3/EngineFactoryV0.sol/EngineFactoryV0.json +20 -2
  40. package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine.sol/GenArt721CoreV3_Engine.json +48 -12
  41. package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol/GenArt721CoreV3_Engine_Flex.json +76 -40
  42. package/artifacts/contracts/engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol/GenArt721CoreV3_Engine_Flex_PROOF.json +15 -2
  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 +15 -2
  45. package/artifacts/contracts/engine/V3/forks/PROHIBITION/interfaces/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.sol/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.json +37 -0
  46. package/artifacts/contracts/engine-registry/CoreRegistryV1.sol/CoreRegistryV1.json +2 -2
  47. package/artifacts/contracts/generator/AddressChunks.sol/AddressChunks.json +10 -0
  48. package/artifacts/contracts/generator/GenArt721GeneratorV0.sol/GenArt721GeneratorV0.json +333 -0
  49. package/artifacts/contracts/generator/GenArt721GeneratorV0.sol/ILegacyGenArt721CoreV2_PBAB_Flex.json +47 -0
  50. package/artifacts/contracts/interfaces/v0.8.x/IBytecodeStorageReader.sol/IBytecodeStorageReader.json +7 -7
  51. package/artifacts/contracts/interfaces/v0.8.x/IBytecodeStorageReaderV2.sol/IBytecodeStorageReaderV2.json +7 -7
  52. package/artifacts/contracts/interfaces/v0.8.x/IBytecodeStorageReader_Base.sol/IBytecodeStorageReader_Base.json +30 -0
  53. package/artifacts/contracts/interfaces/v0.8.x/ICoreRegistryV1.sol/ICoreRegistryV1.json +13 -0
  54. package/artifacts/contracts/interfaces/v0.8.x/IDelegateRegistry.sol/IDelegateRegistry.json +820 -0
  55. package/artifacts/contracts/interfaces/v0.8.x/IDependencyRegistryV0.sol/IDependencyRegistryV0.json +183 -0
  56. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3.sol/IGenArt721CoreContractV3.json +37 -0
  57. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Base.sol/IGenArt721CoreContractV3_Base.json +37 -0
  58. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine.sol/IGenArt721CoreContractV3_Engine.json +42 -0
  59. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex.sol/IGenArt721CoreContractV3_Engine_Flex.json +42 -0
  60. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex_PreV3p2.sol/IGenArt721CoreContractV3_Engine_Flex_PreV3p2.json +37 -0
  61. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_PreV3p2.sol/IGenArt721CoreContractV3_Engine_PreV3p2.json +37 -0
  62. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreProjectScriptV0.sol/IGenArt721CoreProjectScriptV0.json +59 -0
  63. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreProjectScriptV1.sol/IGenArt721CoreProjectScriptV1.json +64 -0
  64. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreTokenHashProviderV0.sol/IGenArt721CoreTokenHashProviderV0.json +30 -0
  65. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreTokenHashProviderV1.sol/IGenArt721CoreTokenHashProviderV1.json +30 -0
  66. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721GeneratorV0.sol/IGenArt721GeneratorV0.json +63 -0
  67. package/artifacts/contracts/interfaces/v0.8.x/IOwnedCreate2FactoryV0.sol/IOwnedCreate2FactoryV0.json +74 -0
  68. package/artifacts/contracts/interfaces/v0.8.x/IPMPAugmentHook.sol/IPMPAugmentHook.json +83 -0
  69. package/artifacts/contracts/interfaces/v0.8.x/IPMPConfigureHook.sol/IPMPConfigureHook.json +80 -0
  70. package/artifacts/contracts/interfaces/v0.8.x/IPMPV0.sol/IPMPV0.json +402 -0
  71. package/artifacts/contracts/interfaces/v0.8.x/ISeaDropShimForContract.sol/ISeaDropShimForContract.json +37 -0
  72. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterMinPriceV0.sol/ISharedMinterMinPriceV0.json +37 -0
  73. package/artifacts/contracts/interfaces/v0.8.x/IUniversalBytecodeStorageReader.sol/IUniversalBytecodeStorageReader.json +69 -0
  74. package/artifacts/contracts/interfaces/v0.8.x/IWeb3Call.sol/IWeb3Call.json +47 -0
  75. package/artifacts/contracts/interfaces/v0.8.x/integration-refs/OpenSea/ERC721SeaDropStructsErrorsAndEvents.sol/ERC721SeaDropStructsErrorsAndEvents.json +43 -0
  76. package/artifacts/contracts/interfaces/v0.8.x/integration-refs/OpenSea/INonFungibleSeaDropToken.sol/INonFungibleSeaDropToken.json +715 -0
  77. package/artifacts/contracts/interfaces/v0.8.x/integration-refs/OpenSea/ISeaDrop.sol/ISeaDrop.json +1571 -0
  78. package/artifacts/contracts/interfaces/v0.8.x/integration-refs/OpenSea/ISeaDropTokenContractMetadata.sol/ISeaDropTokenContractMetadata.json +345 -0
  79. package/artifacts/contracts/interfaces/v0.8.x/integration-refs/OpenSea/SeaDropErrorsAndEvents.sol/SeaDropErrorsAndEvents.json +717 -0
  80. package/artifacts/contracts/libs/integration-refs/delegation-registry/DelegateRegistry.sol/DelegateRegistry.json +846 -0
  81. package/artifacts/contracts/libs/integration-refs/delegation-registry/libraries/RegistryHashes.sol/RegistryHashes.json +10 -0
  82. package/artifacts/contracts/libs/integration-refs/delegation-registry/libraries/RegistryOps.sol/RegistryOps.json +10 -0
  83. package/artifacts/contracts/libs/integration-refs/delegation-registry/libraries/RegistryStorage.sol/RegistryStorage.json +10 -0
  84. package/artifacts/contracts/libs/v0.8.x/AuthLib.sol/AuthLib.json +2 -2
  85. package/artifacts/contracts/libs/v0.8.x/Bytes32Strings.sol/Bytes32Strings.json +2 -2
  86. package/artifacts/contracts/libs/v0.8.x/DependencyRegistryStorageLib.sol/DependencyRegistryStorageLib.json +2 -2
  87. package/artifacts/contracts/libs/v0.8.x/ImmutableStringArray.sol/ImmutableStringArray.json +10 -0
  88. package/artifacts/contracts/libs/v0.8.x/JsonStatic.sol/JsonStatic.json +10 -0
  89. package/artifacts/contracts/libs/v0.8.x/V3FlexLib.sol/V3FlexLib.json +9 -22
  90. package/artifacts/contracts/libs/v0.8.x/minter-libs/MaxInvocationsLib.sol/MaxInvocationsLib.json +2 -2
  91. package/artifacts/contracts/libs/v0.8.x/minter-libs/MinPriceLib.sol/MinPriceLib.json +24 -0
  92. package/artifacts/contracts/libs/v0.8.x/minter-libs/PolyptychLib.sol/PolyptychLib.json +2 -2
  93. package/artifacts/contracts/libs/v0.8.x/minter-libs/RAMLib.sol/RAMLib.json +2 -2
  94. package/artifacts/contracts/libs/v0.8.x/minter-libs/SEALib.sol/SEALib.json +2 -2
  95. package/artifacts/contracts/libs/v0.8.x/minter-libs/SettlementExpLib.sol/SettlementExpLib.json +2 -2
  96. package/artifacts/contracts/libs/v0.8.x/minter-libs/SplitFundsLib.sol/SplitFundsLib.json +2 -2
  97. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV1.sol/MinterFilterV1.json +2 -2
  98. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV2.sol/MinterFilterV2.json +2 -2
  99. package/artifacts/contracts/minter-suite/Minters/MinterDAExpHolderV5.sol/MinterDAExpHolderV5.json +2 -2
  100. package/artifacts/contracts/minter-suite/Minters/MinterDAExpSettlementV3.sol/MinterDAExpSettlementV3.json +2 -2
  101. package/artifacts/contracts/minter-suite/Minters/MinterDAExpV5.sol/MinterDAExpV5.json +2 -2
  102. package/artifacts/contracts/minter-suite/Minters/MinterDALinHolderV5.sol/MinterDALinHolderV5.json +2 -2
  103. package/artifacts/contracts/minter-suite/Minters/MinterDALinV5.sol/MinterDALinV5.json +2 -2
  104. package/artifacts/contracts/minter-suite/Minters/MinterMinPriceMerkleV0.sol/MinterMinPriceMerkleV0.json +664 -0
  105. package/artifacts/contracts/minter-suite/Minters/MinterMinPriceV0.sol/MinterMinPriceV0.json +387 -0
  106. package/artifacts/contracts/minter-suite/Minters/MinterRAMV0.sol/MinterRAMV0.json +2 -2
  107. package/artifacts/contracts/minter-suite/Minters/MinterSEAV1.sol/MinterSEAV1.json +2 -2
  108. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20V5.sol/MinterSetPriceERC20V5.json +2 -2
  109. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceHolderV5.sol/MinterSetPriceHolderV5.json +2 -2
  110. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceMerkleV5.sol/MinterSetPriceMerkleV5.json +2 -2
  111. package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychERC20V5.sol/MinterSetPricePolyptychERC20V5.json +2 -2
  112. package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychV5.sol/MinterSetPricePolyptychV5.json +2 -2
  113. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceV5.sol/MinterSetPriceV5.json +2 -2
  114. package/artifacts/contracts/minter-suite/Minters/one-off/MinterSetPriceV5_SingleCore.sol/MinterSetPriceV5_SingleCore.json +2 -2
  115. package/artifacts/contracts/minter-suite/Minters/one-off/SeaDropXArtBlocksShim.sol/SeaDropXArtBlocksShim.json +1206 -0
  116. package/artifacts/contracts/mock/BytecodeV1LibCallsMock.sol/BytecodeV1LibCallsMock.json +2 -2
  117. package/artifacts/contracts/mock/BytecodeV2LibCallsMock.sol/BytecodeV2LibCallsMock.json +2 -2
  118. package/artifacts/contracts/mock/DummySharedMinter.sol/DummySharedMinter.json +2 -2
  119. package/artifacts/contracts/mock/ERC20MockAltDecimals.sol/ERC20MockAltDecimals.json +318 -0
  120. package/artifacts/contracts/mock/ForceSendMock.sol/ForceSendMock.json +2 -2
  121. package/artifacts/contracts/mock/GenArt721CoreV3_Engine_IncorrectCoreType.sol/GenArt721CoreV3_Engine_IncorrectCoreType.json +2 -2
  122. package/artifacts/contracts/mock/ImmutableStringArrayMock.sol/ImmutableStringArrayMock.json +69 -0
  123. package/artifacts/contracts/mock/MockAdminACLV0_PROHIBITION.sol/MockAdminACLV0Events_PROHIBITION.json +2 -2
  124. package/artifacts/contracts/mock/MockFileStore.sol/MockFileStore.json +35 -0
  125. package/artifacts/contracts/mock/MockPMPAugmentHook.sol/MockPMPAugmentHook.json +214 -0
  126. package/artifacts/contracts/mock/MockPMPConfigureHook.sol/MockPMPConfigureHook.json +236 -0
  127. package/artifacts/contracts/mock/OriginRegisterMock.sol/OriginRegisterMock.json +2 -2
  128. package/artifacts/contracts/mock/RandomizerV2_NoAssignMock.sol/RandomizerV2_NoAssignMock.json +2 -2
  129. package/artifacts/contracts/randomizer/deprecated/PolyptychRandomizerV0.sol/BasicPolyptychRandomizerV0.json +2 -2
  130. package/artifacts/contracts/randomizer/deprecated/RandomizerV2.sol/BasicRandomizerV2.json +2 -2
  131. package/artifacts/contracts/randomizer/shared/SharedRandomizerV0.sol/SharedRandomizerV0.json +2 -2
  132. package/artifacts/contracts/web3call/PMPV0.sol/PMPV0.json +629 -0
  133. package/artifacts/contracts/web3call/Web3Call.sol/Web3Call.json +66 -0
  134. package/artifacts/contracts/web3call/augment-hooks/AbstractPMPAugmentHook.sol/AbstractPMPAugmentHook.json +83 -0
  135. package/artifacts/contracts/web3call/augment-hooks/InjectBaseGasFee.sol/InjectBaseGasFee.json +83 -0
  136. package/artifacts/contracts/web3call/augment-hooks/InjectChromieSquiggleFloorPrice.sol/IUniswapV2Pair.json +60 -0
  137. package/artifacts/contracts/web3call/augment-hooks/InjectChromieSquiggleFloorPrice.sol/InjectChromieSquiggleFloorPrice.json +107 -0
  138. package/artifacts/contracts/web3call/augment-hooks/InjectIsNounsDaoMember.sol/InjectIsNounsDaoMember.json +96 -0
  139. package/artifacts/contracts/web3call/augment-hooks/InjectIsProjectFullyMinted.sol/InjectIsProjectFullyMinted.json +83 -0
  140. package/artifacts/contracts/web3call/augment-hooks/InjectPolyptychTokenHash.sol/InjectPolyptychTokenHash.json +141 -0
  141. package/artifacts/contracts/web3call/augment-hooks/InjectTokenHashSeed.sol/InjectTokenHashSeed.json +99 -0
  142. package/artifacts/contracts/web3call/augment-hooks/InjectTokenOwner.sol/InjectTokenOwner.json +99 -0
  143. package/artifacts/contracts/web3call/augment-hooks/InjectTokenOwnerEthBalance.sol/InjectTokenOwnerEthBalance.json +83 -0
  144. package/artifacts/contracts/web3call/augment-hooks/InjectUSDCTotalSupply.sol/InjectUSDCTotalSupply.json +107 -0
  145. package/artifacts/contracts/web3call/configure-hooks/abstractPMPConfigureHook.sol/AbstractPMPConfigureHook.json +80 -0
  146. package/contracts/BytecodeStorageReaders/BytecodeStorageReaderContractV2.sol +103 -0
  147. package/contracts/BytecodeStorageReaders/BytecodeStorageReaderContractV2_Web3Call.sol +128 -0
  148. package/contracts/BytecodeStorageReaders/UniversalBytecodeStorageReader.sol +70 -0
  149. package/contracts/BytecodeStorageV2Writer.sol +69 -0
  150. package/contracts/DependencyRegistryV0.sol +296 -88
  151. package/contracts/GenArt721CoreV3_Curated.sol +133 -0
  152. package/contracts/OwnedCreate2FactoryV0.sol +173 -0
  153. package/contracts/engine/V3/EngineFactoryV0.sol +10 -2
  154. package/contracts/engine/V3/GenArt721CoreV3_Engine.sol +139 -70
  155. package/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol +148 -72
  156. package/contracts/generator/AddressChunks.sol +106 -0
  157. package/contracts/generator/GenArt721GeneratorV0.sol +1163 -0
  158. package/contracts/generator/scripty-support/Scripty.sol +5 -0
  159. package/contracts/interfaces/v0.8.x/IBytecodeStorageReader.sol +34 -36
  160. package/contracts/interfaces/v0.8.x/IBytecodeStorageReaderV2.sol +5 -3
  161. package/contracts/interfaces/v0.8.x/IBytecodeStorageReader_Base.sol +20 -0
  162. package/contracts/interfaces/v0.8.x/ICoreRegistryV1.sol +5 -0
  163. package/contracts/interfaces/v0.8.x/IDelegateRegistry.sol +318 -0
  164. package/contracts/interfaces/v0.8.x/IDependencyRegistryV0.sol +96 -0
  165. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Base.sol +13 -2
  166. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine.sol +3 -1
  167. package/contracts/interfaces/v0.8.x/IGenArt721CoreProjectScriptV0.sol +22 -0
  168. package/contracts/interfaces/v0.8.x/IGenArt721CoreProjectScriptV1.sol +23 -0
  169. package/contracts/interfaces/v0.8.x/IGenArt721CoreTokenHashProviderV0.sol +11 -0
  170. package/contracts/interfaces/v0.8.x/IGenArt721CoreTokenHashProviderV1.sol +9 -0
  171. package/contracts/interfaces/v0.8.x/IGenArt721GeneratorV0.sol +14 -0
  172. package/contracts/interfaces/v0.8.x/IOwnedCreate2FactoryV0.sol +40 -0
  173. package/contracts/interfaces/v0.8.x/IPMPAugmentHook.sol +31 -0
  174. package/contracts/interfaces/v0.8.x/IPMPConfigureHook.sol +25 -0
  175. package/contracts/interfaces/v0.8.x/IPMPV0.sol +224 -0
  176. package/contracts/interfaces/v0.8.x/ISeaDropShimForContract.sol +19 -0
  177. package/contracts/interfaces/v0.8.x/ISharedMinterMinPriceV0.sol +22 -0
  178. package/contracts/interfaces/v0.8.x/ISharedMinterRequired.sol +10 -4
  179. package/contracts/interfaces/v0.8.x/IUniversalBytecodeStorageReader.sol +33 -0
  180. package/contracts/interfaces/v0.8.x/IWeb3Call.sol +28 -0
  181. package/contracts/interfaces/v0.8.x/integration-refs/OpenSea/ERC721SeaDropStructsErrorsAndEvents.sol +58 -0
  182. package/contracts/interfaces/v0.8.x/integration-refs/OpenSea/INonFungibleSeaDropToken.sol +186 -0
  183. package/contracts/interfaces/v0.8.x/integration-refs/OpenSea/ISeaDrop.sol +337 -0
  184. package/contracts/interfaces/v0.8.x/integration-refs/OpenSea/ISeaDropTokenContractMetadata.sol +152 -0
  185. package/contracts/interfaces/v0.8.x/integration-refs/OpenSea/SeaDropErrorsAndEvents.sol +320 -0
  186. package/contracts/interfaces/v0.8.x/integration-refs/OpenSea/SeaDropStructs.sol +146 -0
  187. package/contracts/libs/integration-refs/delegation-registry/DelegateRegistry.sol +753 -0
  188. package/contracts/libs/integration-refs/delegation-registry/libraries/RegistryHashes.sol +359 -0
  189. package/contracts/libs/integration-refs/delegation-registry/libraries/RegistryOps.sol +31 -0
  190. package/contracts/libs/integration-refs/delegation-registry/libraries/RegistryStorage.sol +87 -0
  191. package/contracts/libs/v0.8.x/Bytes32Strings.sol +20 -0
  192. package/contracts/libs/v0.8.x/DependencyRegistryStorageLib.sol +14 -3
  193. package/contracts/libs/v0.8.x/ImmutableStringArray.sol +289 -0
  194. package/contracts/libs/v0.8.x/JsonStatic.sol +373 -0
  195. package/contracts/libs/v0.8.x/V3FlexLib.sol +16 -4
  196. package/contracts/libs/v0.8.x/minter-libs/MinPriceLib.sol +64 -0
  197. package/contracts/libs/v0.8.x/minter-libs/SplitFundsLib.sol +107 -0
  198. package/contracts/minter-suite/Minters/MinterMinPriceMerkleV0.sol +765 -0
  199. package/contracts/minter-suite/Minters/MinterMinPriceV0.sol +462 -0
  200. package/contracts/minter-suite/Minters/one-off/SeaDropXArtBlocksShim.sol +869 -0
  201. package/contracts/mock/ERC20MockAltDecimals.sol +31 -0
  202. package/contracts/mock/ImmutableStringArrayMock.sol +47 -0
  203. package/contracts/mock/MockFileStore.sol +22 -0
  204. package/contracts/mock/MockPMPAugmentHook.sol +170 -0
  205. package/contracts/mock/MockPMPConfigureHook.sol +78 -0
  206. package/contracts/web3call/PMPV0.sol +1125 -0
  207. package/contracts/web3call/Web3Call.sol +25 -0
  208. package/contracts/web3call/augment-hooks/AbstractPMPAugmentHook.sol +46 -0
  209. package/contracts/web3call/augment-hooks/InjectBaseGasFee.sol +57 -0
  210. package/contracts/web3call/augment-hooks/InjectChromieSquiggleFloorPrice.sol +103 -0
  211. package/contracts/web3call/augment-hooks/InjectIsNounsDaoMember.sol +66 -0
  212. package/contracts/web3call/augment-hooks/InjectIsProjectFullyMinted.sol +73 -0
  213. package/contracts/web3call/augment-hooks/InjectPolyptychTokenHash.sol +88 -0
  214. package/contracts/web3call/augment-hooks/InjectTokenHashSeed.sol +62 -0
  215. package/contracts/web3call/augment-hooks/InjectTokenOwner.sol +60 -0
  216. package/contracts/web3call/augment-hooks/InjectTokenOwnerEthBalance.sol +61 -0
  217. package/contracts/web3call/augment-hooks/InjectUSDCTotalSupply.sol +69 -0
  218. package/contracts/web3call/configure-hooks/abstractPMPConfigureHook.sol +41 -0
  219. package/package.json +23 -21
@@ -0,0 +1,23 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ pragma solidity ^0.8.0;
3
+
4
+ /**
5
+ * @dev This interface is implemented by GenArt721CoreV3 and above
6
+ */
7
+ interface IGenArt721CoreProjectScriptV1 {
8
+ function projectScriptDetails(
9
+ uint256 _projectId
10
+ )
11
+ external
12
+ view
13
+ returns (
14
+ string memory scriptTypeAndVersion,
15
+ string memory aspectRatio,
16
+ uint256 scriptCount
17
+ );
18
+
19
+ function projectScriptBytecodeAddressByIndex(
20
+ uint256 _projectId,
21
+ uint256 _index
22
+ ) external view returns (address);
23
+ }
@@ -0,0 +1,11 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ pragma solidity ^0.8.0;
3
+
4
+ /**
5
+ * @dev This interface is implemented by the GenArt721 (GenArt721CoreV0)
6
+ */
7
+ interface IGenArt721CoreTokenHashProviderV0 {
8
+ function showTokenHashes(
9
+ uint256 _tokenId
10
+ ) external view returns (bytes32[] memory);
11
+ }
@@ -0,0 +1,9 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ pragma solidity ^0.8.0;
3
+
4
+ /**
5
+ * @dev This interface is implemented by GenArt721CoreV1 and above.
6
+ */
7
+ interface IGenArt721CoreTokenHashProviderV1 {
8
+ function tokenIdToHash(uint256 tokenId) external view returns (bytes32);
9
+ }
@@ -0,0 +1,14 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Created By: Art Blocks Inc.
3
+ pragma solidity ^0.8.22;
4
+
5
+ interface IGenArt721GeneratorV0 {
6
+ event DependencyRegistryUpdated(address indexed _dependencyRegistry);
7
+ event ScriptyBuilderUpdated(address indexed _scriptyBuilder);
8
+ event GunzipScriptBytecodeAddressUpdated(
9
+ address indexed _gunzipScriptBytecodeAddress
10
+ );
11
+ event UniversalBytecodeStorageReaderUpdated(
12
+ address indexed _universalBytecodeStorageReader
13
+ );
14
+ }
@@ -0,0 +1,40 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Creatd By: Art Blocks Inc.
3
+
4
+ pragma solidity ^0.8.0;
5
+
6
+ import {EngineConfiguration} from "./IGenArt721CoreContractV3_Engine.sol";
7
+
8
+ interface IOwnedCreate2FactoryV0 {
9
+ /**
10
+ * @notice This contract was deployed.
11
+ */
12
+ event Deployed();
13
+ /**
14
+ * @notice New curated core contract was created.
15
+ * @param newContract new contract
16
+ */
17
+ event ContractCreated(address indexed newContract);
18
+
19
+ /**
20
+ * @notice Drains the contract's balance to the `recipient`.
21
+ * @param recipient The address to send funds to.
22
+ * Only callable by the owner.
23
+ */
24
+ function drainETH(address payable recipient) external;
25
+
26
+ /**
27
+ * @notice Drains the contract's balance of an input ERC20 token to
28
+ * the `recipient`.
29
+ * @param ERC20TokenAddress The address of the ERC20 token to withdraw.
30
+ * @param recipient The address to send ERC20 tokens to.
31
+ * Only callable by the owner.
32
+ */
33
+ function drainERC20(address ERC20TokenAddress, address recipient) external;
34
+
35
+ /**
36
+ * @notice Indicates the type of the contract, e.g. `EngineFactoryV0`.
37
+ * @return type_ The type of the contract.
38
+ */
39
+ function type_() external pure returns (bytes32);
40
+ }
@@ -0,0 +1,31 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Creatd By: Art Blocks Inc.
3
+
4
+ pragma solidity ^0.8.0;
5
+
6
+ import {IPMPV0} from "./IPMPV0.sol";
7
+ import {IWeb3Call} from "./IWeb3Call.sol";
8
+
9
+ import {IERC165} from "@openzeppelin-5.0/contracts/interfaces/IERC165.sol";
10
+
11
+ interface IPMPAugmentHook is IERC165 {
12
+ /**
13
+ * @notice Augment the token parameters for a given token.
14
+ * @dev This hook is called when a token's PMPs are read.
15
+ * @dev This must return all desired tokenParams, not just additional data.
16
+ * @param coreContract The address of the core contract to call.
17
+ * @param tokenId The tokenId of the token to get data for.
18
+ * @param tokenParams The token parameters for the queried token.
19
+ * @return augmentedTokenParams The augmented token parameters.
20
+ */
21
+ function onTokenPMPReadAugmentation(
22
+ address coreContract,
23
+ uint256 tokenId,
24
+ IWeb3Call.TokenParam[] calldata tokenParams
25
+ )
26
+ external
27
+ view
28
+ returns (IWeb3Call.TokenParam[] memory augmentedTokenParams);
29
+
30
+ // @dev ERC156 function supportsInterface must be implemented and broadcast true for this interfaceId
31
+ }
@@ -0,0 +1,25 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Creatd By: Art Blocks Inc.
3
+
4
+ pragma solidity ^0.8.0;
5
+
6
+ import {IPMPV0} from "./IPMPV0.sol";
7
+
8
+ import {IERC165} from "@openzeppelin-5.0/contracts/interfaces/IERC165.sol";
9
+
10
+ interface IPMPConfigureHook is IERC165 {
11
+ /**
12
+ * @notice Execution logic to be executed when a token's PMP is configured.
13
+ * @dev This hook is executed after the PMP is configured.
14
+ * @param coreContract The address of the core contract that was configured.
15
+ * @param tokenId The tokenId of the token that was configured.
16
+ * @param pmpInput The PMP input that was used to successfully configure the token.
17
+ */
18
+ function onTokenPMPConfigure(
19
+ address coreContract,
20
+ uint256 tokenId,
21
+ IPMPV0.PMPInput calldata pmpInput
22
+ ) external;
23
+
24
+ // @dev ERC156 function supportsInterface must be implemented and broadcast true for this interfaceId
25
+ }
@@ -0,0 +1,224 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Created By: Art Blocks Inc.
3
+
4
+ pragma solidity ^0.8.0;
5
+
6
+ import {IPMPConfigureHook} from "./IPMPConfigureHook.sol";
7
+ import {IPMPAugmentHook} from "./IPMPAugmentHook.sol";
8
+ import {IWeb3Call} from "./IWeb3Call.sol";
9
+
10
+ import {ImmutableStringArray} from "../../libs/v0.8.x/ImmutableStringArray.sol";
11
+
12
+ /**
13
+ * @title Project Metadata Parameters (PMP) Interface, V0
14
+ * @author Art Blocks Inc.
15
+ * @notice Interface for the Project Metadata Parameters (PMP) contract that defines
16
+ * how projects can expose configurable parameters for tokens. This interface establishes
17
+ * the standard for parameter configuration, validation, and retrieval.
18
+ * @dev This interface extends the IWeb3Call interface to provide compatibility with
19
+ * existing Web3 infrastructure.
20
+ */
21
+ interface IPMPV0 is IWeb3Call {
22
+ /**
23
+ * @notice Emitted when project hooks are configured.
24
+ * @param coreContract The address of the core contract.
25
+ * @param projectId The project ID for which hooks were configured.
26
+ * @param tokenPMPPostConfigHook The hook to call after a token's PMP is configured.
27
+ * @param tokenPMPReadAugmentationHook The hook to call when reading a token's PMPs.
28
+ */
29
+ event ProjectHooksConfigured(
30
+ address coreContract,
31
+ uint256 projectId,
32
+ IPMPConfigureHook tokenPMPPostConfigHook,
33
+ IPMPAugmentHook tokenPMPReadAugmentationHook
34
+ );
35
+
36
+ /**
37
+ * @notice Emitted when a project's available parameters are configured.
38
+ * @param coreContract The address of the core contract.
39
+ * @param projectId The project ID for which parameters were configured.
40
+ * @param pmpInputConfigs Array of parameter configurations defining the available parameters.
41
+ * @param projectConfigNonce The nonce of the project configuration.
42
+ */
43
+ event ProjectConfigured(
44
+ address coreContract,
45
+ uint256 projectId,
46
+ PMPInputConfig[] pmpInputConfigs,
47
+ uint8 projectConfigNonce
48
+ );
49
+
50
+ /**
51
+ * @notice Emitted when a token's parameters are configured.
52
+ * @param coreContract The address of the core contract.
53
+ * @param tokenId The token ID for which parameters were configured.
54
+ * @param pmpInputs Array of parameter inputs that were configured.
55
+ */
56
+ event TokenParamsConfigured(
57
+ address coreContract,
58
+ uint256 tokenId,
59
+ PMPInput[] pmpInputs
60
+ );
61
+
62
+ /**
63
+ * @notice Emitted when the delegation registry is updated.
64
+ * @dev At the time of writing, the delegate.xyz v2 contract is the only
65
+ * delegate registry contract that is supported.
66
+ * @param delegationRegistry The address of the new delegation registry.
67
+ */
68
+ event DelegationRegistryUpdated(address delegationRegistry);
69
+
70
+ /**
71
+ * @notice Defines who can configure a parameter for a token.
72
+ * @dev Enum ordering is relied on (ArtistAndTokenOwnerAndAddress being last).
73
+ */
74
+ enum AuthOption {
75
+ Artist,
76
+ TokenOwner,
77
+ Address,
78
+ ArtistAndTokenOwner,
79
+ ArtistAndAddress,
80
+ TokenOwnerAndAddress,
81
+ ArtistAndTokenOwnerAndAddress
82
+ }
83
+
84
+ /**
85
+ * @notice Defines the type of parameter that can be configured.
86
+ * @dev Enum ordering is relied on (String being last).
87
+ */
88
+ enum ParamType {
89
+ Unconfigured, // @dev default value, used to check if PMP is configured
90
+ Select,
91
+ Bool,
92
+ Uint256Range,
93
+ Int256Range,
94
+ DecimalRange,
95
+ HexColor,
96
+ Timestamp,
97
+ String // utilizes string in PMP struct, all other param types utilize the generic bytes32 param
98
+ }
99
+
100
+ /**
101
+ * @notice Structure for a parameter configuration input.
102
+ * @dev Used when configuring a project's available parameters.
103
+ */
104
+ struct PMPInputConfig {
105
+ string key; // slot 0: 32 bytes
106
+ PMPConfig pmpConfig; // slot 1: 32 bytes
107
+ }
108
+
109
+ /**
110
+ * @notice Structure for a parameter configuration.
111
+ * @dev Defines the constraints and options for a parameter.
112
+ */
113
+ struct PMPConfig {
114
+ AuthOption authOption; // slot 0: 1 byte
115
+ ParamType paramType; // slot 0: 1 byte
116
+ uint48 pmpLockedAfterTimestamp; // slot 0: 6 bytes
117
+ address authAddress; // slot 0: 20 bytes
118
+ string[] selectOptions; // slot 1: 32 bytes
119
+ // @dev use bytes32 for all range types for SSTORE efficiency
120
+ // @dev minRange and maxRange cast to defined numeric type when verifying assigned PMP values
121
+ bytes32 minRange; // slot 2: 32 bytes
122
+ bytes32 maxRange; // slot 3: 32 bytes
123
+ }
124
+
125
+ /**
126
+ * @notice View structure for a parameter configuration.
127
+ * @dev Used when reading a project's available parameters.
128
+ * @dev any populated select options are loaded and returned as a string array
129
+ * instead of remaining as a pointer to a data contract
130
+ */
131
+ struct PMPConfigView {
132
+ uint8 highestConfigNonce;
133
+ AuthOption authOption;
134
+ ParamType paramType;
135
+ uint48 pmpLockedAfterTimestamp;
136
+ address authAddress;
137
+ uint8 selectOptionsLength;
138
+ string[] selectOptions;
139
+ bytes32 minRange;
140
+ bytes32 maxRange;
141
+ }
142
+
143
+ /**
144
+ * @notice Structure for a parameter input.
145
+ * @dev Used when configuring a token's parameters.
146
+ */
147
+ struct PMPInput {
148
+ string key; // slot 0: 32 bytes
149
+ ParamType configuredParamType;
150
+ // @dev store values as bytes32 for efficiency, cast appropriately when reading
151
+ bytes32 configuredValue;
152
+ bool configuringArtistString;
153
+ string configuredValueString;
154
+ }
155
+
156
+ /**
157
+ * @notice Storage structure for a configured parameter.
158
+ * @dev Includes both artist and non-artist configured string values.
159
+ */
160
+ struct PMPStorage {
161
+ ParamType configuredParamType; // slot 0: 1 byte
162
+ // @dev store values as bytes32 for efficiency, cast appropriately when reading
163
+ bytes32 configuredValue; // slot 1: 32 bytes
164
+ string artistConfiguredValueString; // slot 2: 32 bytes
165
+ string nonArtistConfiguredValueString; // slot 3: 32 bytes
166
+ }
167
+
168
+ /**
169
+ * @notice Configure the hooks for a project.
170
+ * @param coreContract The address of the core contract.
171
+ * @param projectId The project ID to configure hooks for.
172
+ * @param tokenPMPPostConfigHook The hook to call after a token's PMP is configured.
173
+ * @param tokenPMPReadAugmentationHook The hook to call when reading a token's PMPs.
174
+ */
175
+ function configureProjectHooks(
176
+ address coreContract,
177
+ uint256 projectId,
178
+ IPMPConfigureHook tokenPMPPostConfigHook,
179
+ IPMPAugmentHook tokenPMPReadAugmentationHook
180
+ ) external;
181
+
182
+ /**
183
+ * @notice Configure the available parameters for a project.
184
+ * @param coreContract The address of the core contract.
185
+ * @param projectId The project ID to configure parameters for.
186
+ * @param pmpInputConfigs Array of parameter configurations defining the available parameters.
187
+ */
188
+ function configureProject(
189
+ address coreContract,
190
+ uint256 projectId,
191
+ PMPInputConfig[] calldata pmpInputConfigs
192
+ ) external;
193
+
194
+ /**
195
+ * @notice Configure the parameters for a specific token.
196
+ * @param coreContract The address of the core contract.
197
+ * @param tokenId The token ID to configure parameters for.
198
+ * @param pmpInputs Array of parameter inputs to configure.
199
+ */
200
+ function configureTokenParams(
201
+ address coreContract,
202
+ uint256 tokenId,
203
+ PMPInput[] calldata pmpInputs
204
+ ) external;
205
+
206
+ /**
207
+ * @notice Checks if the given wallet has the owner role for the given token.
208
+ * It returns true if the wallet is the owner of the token or if the wallet
209
+ * is a delegate of the token owner; otherwise it returns false.
210
+ * Reverts if an invalid coreContract or tokenId is provided.
211
+ * Provided for convenience, as the same check is performed in the
212
+ * configureTokenParams function.
213
+ * @param wallet The wallet address to check.
214
+ * @param coreContract The address of the core contract to call.
215
+ * @param tokenId The tokenId of the token to check.
216
+ * @return isTokenOwnerOrDelegate True if the wallet is the owner or a delegate of the token,
217
+ * false otherwise.
218
+ */
219
+ function isTokenOwnerOrDelegate(
220
+ address wallet,
221
+ address coreContract,
222
+ uint256 tokenId
223
+ ) external view returns (bool);
224
+ }
@@ -0,0 +1,19 @@
1
+ // SPDX-License-Identifier: MIT
2
+
3
+ // @dev file adds event for indicating a shim contract compatible with SeaDrop, and points to the corresponding NFT
4
+ // contract
5
+ pragma solidity ^0.8.22;
6
+
7
+ interface ISeaDropShimForContract {
8
+ /**
9
+ * @dev Emit event when a shim-minter compatible with SeaDrop that mints tokens on a different contract is deployed
10
+ * @param nftContract The address of the NFT contract that this shim contract is compatible with
11
+ */
12
+ event SeaDropShimForContract(address nftContract);
13
+
14
+ /**
15
+ * @dev Emit event when the local max supply is updated
16
+ * @param newLocalMaxSupply The new local max supply
17
+ */
18
+ event LocalMaxSupplyUpdated(uint256 newLocalMaxSupply);
19
+ }
@@ -0,0 +1,22 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Created By: Art Blocks Inc.
3
+
4
+ pragma solidity ^0.8.0;
5
+
6
+ /**
7
+ * @title This interface adds support for minimum price minting.
8
+ * @author Art Blocks Inc.
9
+ */
10
+ interface ISharedMinterMinPriceV0 {
11
+ /**
12
+ * @notice Update the default minimum mint fee for the minter.
13
+ * @param newDefaultMinMintFee New default minimum mint fee, in wei
14
+ */
15
+ function updateDefaultMinMintFee(uint256 newDefaultMinMintFee) external;
16
+
17
+ /**
18
+ * @notice Get the default mint fee for the minter.
19
+ * @return defaultMinMintFee Default minimum mint fee, in wei
20
+ */
21
+ function defaultMinMintFee() external view returns (uint256);
22
+ }
@@ -10,11 +10,17 @@ pragma solidity ^0.8.0;
10
10
  * interface.
11
11
  */
12
12
  interface ISharedMinterRequired {
13
- // Function returns the minter type, and is called by the MinterFilter for
14
- // metadata purposes.
13
+ /**
14
+ * @notice Returns the minter's type, used by the minter filter for metadata
15
+ * purposes.
16
+ * @return The minter type.
17
+ */
15
18
  function minterType() external view returns (string memory);
16
19
 
17
- // Function returns the minter's associated shared minter filter address,
18
- // and is called by subgraph indexing service for entity relation purposes.
20
+ /**
21
+ * @notice Returns the minter's associated shared minter filter address.
22
+ * @dev used by subgraph indexing service for entity relation purposes.
23
+ * @return The minter filter address.
24
+ */
19
25
  function minterFilterAddress() external returns (address);
20
26
  }
@@ -0,0 +1,33 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Created By: Art Blocks Inc.
3
+
4
+ pragma solidity ^0.8.0;
5
+
6
+ import {IBytecodeStorageReader_Base} from "./IBytecodeStorageReader_Base.sol";
7
+
8
+ /**
9
+ * @title This interface extends the IBytecodeStorageReader_Base interface with relevant events and functions used on the
10
+ * universal bytecode storage reader contract.
11
+ * @author Art Blocks Inc.
12
+ */
13
+ interface IUniversalBytecodeStorageReader is IBytecodeStorageReader_Base {
14
+ /**
15
+ * @notice The active bytecode storage reader contract being used by this universal reader was updated.
16
+ * @param activeReader The address of the new active bytecode storage reader contract.
17
+ */
18
+ event ReaderUpdated(address indexed activeReader);
19
+
20
+ /**
21
+ * @notice Update the active bytecode storage reader contract being used by this universal reader.
22
+ * @dev emits a ReaderUpdated event when successful.
23
+ * @param newBytecodeStorageReaderContract The address of the new active bytecode storage reader contract.
24
+ */
25
+ function updateBytecodeStorageReaderContract(
26
+ IBytecodeStorageReader_Base newBytecodeStorageReaderContract
27
+ ) external;
28
+
29
+ function activeBytecodeStorageReaderContract()
30
+ external
31
+ view
32
+ returns (IBytecodeStorageReader_Base);
33
+ }
@@ -0,0 +1,28 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ // Creatd By: Art Blocks Inc.
3
+
4
+ pragma solidity ^0.8.0;
5
+
6
+ interface IWeb3Call {
7
+ /**
8
+ * @notice TokenParam struct defines the parameters for a given token.
9
+ * @param key The key of the token parameter.
10
+ * @param value The value of the token parameter.
11
+ */
12
+ struct TokenParam {
13
+ string key;
14
+ string value;
15
+ }
16
+
17
+ /**
18
+ * @notice Get the token parameters for a given token.
19
+ * If none are configured, the tokenParams should be empty.
20
+ * @param coreContract The address of the core contract to call.
21
+ * @param tokenId The tokenId of the token to get data for.
22
+ * @return tokenParams An array of token parameters for the queried token.
23
+ */
24
+ function getTokenParams(
25
+ address coreContract,
26
+ uint256 tokenId
27
+ ) external view returns (TokenParam[] memory tokenParams);
28
+ }
@@ -0,0 +1,58 @@
1
+ // SPDX-License-Identifier: MIT
2
+ // @dev file is sourced from OpenSea's repository: https://github.com/ProjectOpenSea/seadrop/blob/main/src/lib/ERC721SeaDropStructsErrorsAndEvents.sol
3
+ // @dev modified to not lock to specific version, as well as updated imports for this repository
4
+ pragma solidity ^0.8.17;
5
+
6
+ import {AllowListData, PublicDrop, SignedMintValidationParams, TokenGatedDropStage} from "./SeaDropStructs.sol";
7
+
8
+ interface ERC721SeaDropStructsErrorsAndEvents {
9
+ /**
10
+ * @notice Revert with an error if mint exceeds the max supply.
11
+ */
12
+ error MintQuantityExceedsMaxSupply(uint256 total, uint256 maxSupply);
13
+
14
+ /**
15
+ * @notice Revert with an error if the number of token gated
16
+ * allowedNftTokens doesn't match the length of supplied
17
+ * drop stages.
18
+ */
19
+ error TokenGatedMismatch();
20
+
21
+ /**
22
+ * @notice Revert with an error if the number of signers doesn't match
23
+ * the length of supplied signedMintValidationParams
24
+ */
25
+ error SignersMismatch();
26
+
27
+ /**
28
+ * @notice An event to signify that a SeaDrop token contract was deployed.
29
+ */
30
+ event SeaDropTokenDeployed();
31
+
32
+ /**
33
+ * @notice A struct to configure multiple contract options at a time.
34
+ */
35
+ struct MultiConfigureStruct {
36
+ uint256 maxSupply;
37
+ string baseURI;
38
+ string contractURI;
39
+ address seaDropImpl;
40
+ PublicDrop publicDrop;
41
+ string dropURI;
42
+ AllowListData allowListData;
43
+ address creatorPayoutAddress;
44
+ bytes32 provenanceHash;
45
+ address[] allowedFeeRecipients;
46
+ address[] disallowedFeeRecipients;
47
+ address[] allowedPayers;
48
+ address[] disallowedPayers;
49
+ // Token-gated
50
+ address[] tokenGatedAllowedNftTokens;
51
+ TokenGatedDropStage[] tokenGatedDropStages;
52
+ address[] disallowedTokenGatedAllowedNftTokens;
53
+ // Server-signed
54
+ address[] signers;
55
+ SignedMintValidationParams[] signedMintValidationParams;
56
+ address[] disallowedSigners;
57
+ }
58
+ }