@artblocks/contracts 1.0.1 → 1.0.3

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 (199) hide show
  1. package/README.md +67 -154
  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 +22 -4
  5. package/artifacts/contracts/GenArt721CoreV3.sol/GenArt721CoreV3.json +42 -5
  6. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV2.sol/MinterDAExpV2.json +2 -2
  7. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV3.sol/MinterDAExpV3.json +2 -2
  8. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol/MinterDAExpSettlementV0.json +2 -2
  9. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV1.sol/MinterDAExpSettlementV1.json +2 -2
  10. package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV2.sol/MinterDALinV2.json +2 -2
  11. package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV3.sol/MinterDALinV3.json +2 -2
  12. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV1.sol/MinterHolderV1.json +2 -2
  13. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV2.sol/MinterHolderV2.json +2 -2
  14. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV3.sol/MinterHolderV3.json +2 -2
  15. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV1.sol/MinterMerkleV1.json +2 -2
  16. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV2.sol/MinterMerkleV2.json +2 -2
  17. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV3.sol/MinterMerkleV3.json +2 -2
  18. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV4.sol/MinterMerkleV4.json +2 -2
  19. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV2.sol/MinterSetPriceV2.json +2 -2
  20. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV3.sol/MinterSetPriceV3.json +2 -2
  21. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V2.sol/MinterSetPriceERC20V2.json +2 -2
  22. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V3.sol/MinterSetPriceERC20V3.json +2 -2
  23. package/artifacts/contracts/engine/{GenArt721CoreV2_ENGINE_FLEX.sol → V2/GenArt721CoreV2_ENGINE_FLEX.sol}/GenArt721CoreV2_ENGINE_FLEX.json +3 -3
  24. package/artifacts/contracts/engine/{GenArt721CoreV2_PBAB.sol → V2/GenArt721CoreV2_PBAB.sol}/GenArt721CoreV2_PBAB.json +3 -3
  25. package/artifacts/contracts/engine/{GenArt721CoreV2_PRTNR.sol → V2/GenArt721CoreV2_PRTNR.sol}/GenArt721CoreV2_PRTNR.json +3 -3
  26. package/artifacts/contracts/engine/{GenArt721MinterBurner_PBAB.sol → V2/GenArt721MinterBurner_PBAB.sol}/GenArt721MinterBurner_PBAB.json +3 -3
  27. package/artifacts/contracts/engine/{GenArt721MinterDAExp_PBAB.sol → V2/GenArt721MinterDAExp_PBAB.sol}/GenArt721MinterDAExp_PBAB.json +3 -3
  28. package/artifacts/contracts/engine/{GenArt721Minter_PBAB.sol → V2/GenArt721Minter_PBAB.sol}/GenArt721Minter_PBAB.json +3 -3
  29. package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine.sol/GenArt721CoreV3_Engine.json +1960 -0
  30. package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol/GenArt721CoreV3_Engine_Flex.json +2247 -0
  31. package/artifacts/contracts/engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol/GenArt721CoreV3_Engine_Flex_PROOF.json +2247 -0
  32. package/artifacts/contracts/engine/V3/forks/PROHIBITION/AdminACLV0_PROHIBITION.sol/AdminACLV0_PROHIBITION.json +401 -0
  33. package/artifacts/contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol/GenArt721CoreV3_Engine_Flex_PROHIBITION.json +2281 -0
  34. package/artifacts/contracts/engine/V3/forks/PROHIBITION/interfaces/IAdminACLV0_PROHIBITION.sol/IAdminACLV0_PROHIBITION.json +359 -0
  35. package/artifacts/contracts/engine/V3/forks/PROHIBITION/interfaces/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.sol/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.json +1094 -0
  36. package/artifacts/contracts/engine-registry/CoreRegistryV1.sol/CoreRegistryV1.json +242 -0
  37. package/artifacts/contracts/engine-registry/EngineRegistryV0.sol/EngineRegistryV0.json +2 -2
  38. package/artifacts/contracts/explorations/GenArt721CoreV3_Explorations.sol/GenArt721CoreV3_Explorations.json +41 -4
  39. package/artifacts/contracts/interfaces/0.8.x/IBytecodeStorageReader.sol/IBytecodeStorageReader.json +111 -0
  40. package/artifacts/contracts/interfaces/0.8.x/ICoreRegistryV1.sol/ICoreRegistryV1.json +172 -0
  41. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterSEAV0.sol/IFilteredMinterSEAV0.json +1034 -0
  42. package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreContractExposesHashSeed.sol/IGenArt721CoreContractExposesHashSeed.json +30 -0
  43. package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreContractV3.sol/IGenArt721CoreContractV3.json +162 -0
  44. package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Base.sol/IGenArt721CoreContractV3_Base.json +162 -0
  45. package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Engine.sol/IGenArt721CoreContractV3_Engine.json +137 -13
  46. package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Engine_Flex.sol/IGenArt721CoreContractV3_Engine_Flex.json +1060 -0
  47. package/artifacts/contracts/interfaces/0.8.x/IMinterFilterV1.sol/IMinterFilterV1.json +429 -0
  48. package/artifacts/contracts/interfaces/0.8.x/IPseudorandomAtomic.sol/IPseudorandomAtomic.json +30 -0
  49. package/artifacts/contracts/interfaces/0.8.x/IRandomizer_V3CoreBase.sol/IRandomizer_V3CoreBase.json +24 -0
  50. package/artifacts/contracts/interfaces/0.8.x/ISharedRandomizerV0.sol/ISharedRandomizerV0.json +207 -0
  51. package/artifacts/contracts/interfaces/0.8.x/IWETH.sol/IWETH.json +55 -0
  52. package/artifacts/contracts/libs/0.8.x/{BytecodeStorage.sol → BytecodeStorageV0.sol}/BytecodeStorage.json +3 -3
  53. package/artifacts/contracts/libs/0.8.x/BytecodeStorageV1.sol/BytecodeStorageReader.json +163 -0
  54. package/artifacts/contracts/libs/0.8.x/BytecodeStorageV1.sol/BytecodeStorageWriter.json +10 -0
  55. package/artifacts/contracts/libs/0.8.x/Bytes32Strings.sol/Bytes32Strings.json +2 -2
  56. package/artifacts/contracts/libs/0.8.x/ERC721_PackedHashSeed.sol/ERC721_PackedHashSeed.json +2 -2
  57. package/artifacts/contracts/libs/0.8.x/SSTORE2.sol/SSTORE2.json +10 -0
  58. package/artifacts/contracts/libs/integration-refs/delegation-registry/DelegationRegistry.sol/DelegationRegistry.json +2 -2
  59. package/artifacts/contracts/libs/integration-refs/gnosis-safe/GnosisSafeMock.sol/GnosisSafeMock.json +2 -2
  60. package/artifacts/contracts/libs/integration-refs/gnosis-safe/GnosisSafeProxyFactoryMock.sol/GnosisSafeProxyFactoryMock.json +2 -2
  61. package/artifacts/contracts/libs/integration-refs/gnosis-safe/MultiSendMock.sol/MultiSendMock.json +2 -2
  62. package/artifacts/contracts/libs/integration-refs/weth9/weth9.sol/WETH9_.json +295 -0
  63. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV1.sol/MinterFilterV1.json +2 -2
  64. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV2.sol/MinterFilterV2.json +692 -0
  65. package/artifacts/contracts/minter-suite/Minters/MinterDAExpSettlementV2.sol/MinterDAExpSettlementV2.json +2 -2
  66. package/artifacts/contracts/minter-suite/Minters/MinterDAExpV4.sol/MinterDAExpV4.json +2 -2
  67. package/artifacts/contracts/minter-suite/Minters/MinterDALinV4.sol/MinterDALinV4.json +2 -2
  68. package/artifacts/contracts/minter-suite/Minters/MinterHolderV4.sol/MinterHolderV4.json +2 -2
  69. package/artifacts/contracts/minter-suite/Minters/MinterMerkleV5.sol/MinterMerkleV5.json +2 -2
  70. package/artifacts/contracts/minter-suite/Minters/MinterPolyptychV0.sol/IGenArt721CoreContractV3WithRandomizer.json +104 -124
  71. package/artifacts/contracts/minter-suite/Minters/MinterPolyptychV0.sol/MinterPolyptychV0.json +2 -2
  72. package/artifacts/contracts/minter-suite/Minters/MinterSEAV0.sol/MinterSEAV0.json +1289 -0
  73. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20V4.sol/MinterSetPriceERC20V4.json +2 -2
  74. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceV4.sol/MinterSetPriceV4.json +2 -2
  75. package/artifacts/contracts/mock/{BytecodeTextCR_DMock.sol/BytecodeTextCR_DMock.json → BytecodeV0TextCR_DMock.sol/BytecodeV0TextCR_DMock.json} +4 -4
  76. package/artifacts/contracts/mock/BytecodeV1LibCallsMock.sol/BytecodeV1LibCallsMock.json +135 -0
  77. package/artifacts/contracts/mock/BytecodeV1TextCR_DMock.sol/BytecodeV1TextCR_DMock.json +301 -0
  78. package/artifacts/contracts/mock/DeadReceiverBidderMock.sol/DeadReceiverBidderMock.json +33 -0
  79. package/artifacts/contracts/mock/DeadReceiverMock.sol/DeadReceiverMock.json +2 -2
  80. package/artifacts/contracts/mock/DummySharedMinter.sol/DummySharedMinter.json +114 -0
  81. package/artifacts/contracts/mock/ERC20Mock.sol/ERC20Mock.json +2 -2
  82. package/artifacts/contracts/mock/GasLimitReceiverBidderMock.sol/GasLimitReceiverBidderMock.json +46 -0
  83. package/artifacts/contracts/mock/GasLimitReceiverMock.sol/GasLimitReceiverMock.json +28 -0
  84. package/artifacts/contracts/mock/GenArt721CoreV3_Engine_IncorrectCoreType.sol/GenArt721CoreV3_Engine_IncorrectCoreType.json +22 -4
  85. package/artifacts/contracts/mock/MockAdminACLV0.sol/MockAdminACLV0Events.json +2 -2
  86. package/artifacts/contracts/mock/MockAdminACLV0_PROHIBITION.sol/MockAdminACLV0Events_PROHIBITION.json +440 -0
  87. package/artifacts/contracts/mock/OriginRegisterMock.sol/OriginRegisterMock.json +39 -0
  88. package/artifacts/contracts/mock/RandomizerV2_NoAssignMock.sol/RandomizerV2_NoAssignMock.json +2 -2
  89. package/artifacts/contracts/mock/ReentrancyHolderMock.sol/ReentrancyHolderMock.json +2 -2
  90. package/artifacts/contracts/mock/ReentrancyMerkleMock.sol/ReentrancyMerkleMock.json +2 -2
  91. package/artifacts/contracts/mock/ReentrancyMock.sol/ReentrancyMock.json +2 -2
  92. package/artifacts/contracts/mock/ReentrancySEAMock.sol/ReentrancySEAAutoBidderMock.json +51 -0
  93. package/artifacts/contracts/mock/SSTORE2Mock.sol/SSTORE2Mock.json +118 -0
  94. package/artifacts/contracts/{BasicRandomizer.sol → randomizer/deprecated/BasicRandomizer.sol}/BasicRandomizer.json +3 -3
  95. package/artifacts/contracts/randomizer/deprecated/BasicRandomizerBase_v0_0_0.sol/RandomizerBase.json +10 -0
  96. package/artifacts/contracts/randomizer/deprecated/PolyptychRandomizerV0.sol/BasicPolyptychRandomizerV0.json +229 -0
  97. package/artifacts/contracts/randomizer/deprecated/RandomizerV2.sol/BasicRandomizerV2.json +102 -0
  98. package/artifacts/contracts/randomizer/primitive/PseudorandomAtomicBasic.sol/PseudorandomAtomic.json +30 -0
  99. package/artifacts/contracts/randomizer/shared/SharedRandomizerV0.sol/SharedRandomizerV0.json +231 -0
  100. package/artifacts/contracts/royalty-registry/GenArt721RoyaltyOverride.sol/GenArt721RoyaltyOverride.json +2 -2
  101. package/contracts/AdminACLV0.sol +1 -1
  102. package/contracts/AdminACLV1.sol +1 -1
  103. package/contracts/DependencyRegistryV0.sol +89 -141
  104. package/contracts/GenArt721CoreV3.sol +160 -204
  105. package/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV2.sol +1 -1
  106. package/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV3.sol +1 -1
  107. package/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol +1 -1
  108. package/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV1.sol +1 -1
  109. package/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV2.sol +1 -1
  110. package/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV3.sol +1 -1
  111. package/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV1.sol +1 -1
  112. package/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV2.sol +1 -1
  113. package/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV3.sol +1 -1
  114. package/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV1.sol +1 -1
  115. package/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV2.sol +1 -1
  116. package/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV3.sol +1 -1
  117. package/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV4.sol +1 -1
  118. package/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV2.sol +1 -1
  119. package/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV3.sol +1 -1
  120. package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V2.sol +1 -1
  121. package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V3.sol +1 -1
  122. package/contracts/engine/{GenArt721CoreV2_ENGINE_FLEX.sol → V2/GenArt721CoreV2_ENGINE_FLEX.sol} +2 -2
  123. package/contracts/engine/{GenArt721CoreV2_PBAB.sol → V2/GenArt721CoreV2_PBAB.sol} +2 -2
  124. package/contracts/engine/{GenArt721CoreV2_PRTNR.sol → V2/GenArt721CoreV2_PRTNR.sol} +3 -3
  125. package/contracts/engine/{GenArt721MinterBurner_PBAB.sol → V2/GenArt721MinterBurner_PBAB.sol} +2 -2
  126. package/contracts/engine/{GenArt721MinterDAExp_PBAB.sol → V2/GenArt721MinterDAExp_PBAB.sol} +2 -2
  127. package/contracts/engine/{GenArt721Minter_PBAB.sol → V2/GenArt721Minter_PBAB.sol} +2 -2
  128. package/contracts/{GenArt721CoreV3_Engine.sol → engine/V3/GenArt721CoreV3_Engine.sol} +163 -216
  129. package/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol +2283 -0
  130. package/contracts/engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol +2293 -0
  131. package/contracts/engine/V3/forks/PROHIBITION/AdminACLV0_PROHIBITION.sol +281 -0
  132. package/contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol +2354 -0
  133. package/contracts/engine/V3/forks/PROHIBITION/interfaces/IAdminACLV0_PROHIBITION.sol +123 -0
  134. package/contracts/engine/V3/forks/PROHIBITION/interfaces/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.sol +29 -0
  135. package/contracts/engine-registry/CoreRegistryV1.sol +254 -0
  136. package/contracts/engine-registry/EngineRegistryV0.sol +1 -1
  137. package/contracts/explorations/GenArt721CoreV3_Explorations.sol +164 -190
  138. package/contracts/interfaces/0.8.x/IBytecodeStorageReader.sol +62 -0
  139. package/contracts/interfaces/0.8.x/ICoreRegistryV1.sol +27 -0
  140. package/contracts/interfaces/0.8.x/IDelegationRegistry.sol +1 -1
  141. package/contracts/interfaces/0.8.x/IDependencyRegistryCompatibleV0.sol +1 -1
  142. package/contracts/interfaces/0.8.x/IDependencyRegistryV0.sol +1 -1
  143. package/contracts/interfaces/0.8.x/IEngineRegistryV0.sol +1 -1
  144. package/contracts/interfaces/0.8.x/IFilteredMinterSEAV0.sol +164 -0
  145. package/contracts/interfaces/0.8.x/IGenArt721CoreContractExposesHashSeed.sol +11 -0
  146. package/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Base.sol +42 -0
  147. package/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Engine.sol +0 -8
  148. package/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Engine_Flex.sol +132 -0
  149. package/contracts/interfaces/0.8.x/IMinterFilterV1.sol +158 -0
  150. package/contracts/interfaces/0.8.x/IPseudorandomAtomic.sol +16 -0
  151. package/contracts/interfaces/0.8.x/IRandomizerPolyptychV0.sol +1 -1
  152. package/contracts/interfaces/0.8.x/IRandomizerV2.sol +2 -5
  153. package/contracts/interfaces/0.8.x/IRandomizer_V3CoreBase.sol +10 -0
  154. package/contracts/interfaces/0.8.x/ISharedRandomizerV0.sol +105 -0
  155. package/contracts/interfaces/0.8.x/IWETH.sol +11 -0
  156. package/contracts/libs/0.8.x/BytecodeStorageV1.sol +399 -0
  157. package/contracts/libs/0.8.x/SSTORE2.sol +109 -0
  158. package/contracts/libs/integration-refs/delegation-registry/DelegationRegistry.sol +1 -1
  159. package/contracts/libs/integration-refs/weth9/weth9.sol +765 -0
  160. package/contracts/minter-suite/MinterFilter/MinterFilterV1.sol +36 -48
  161. package/contracts/minter-suite/MinterFilter/MinterFilterV2.sol +756 -0
  162. package/contracts/minter-suite/Minters/MinterDAExpSettlementV2.sol +27 -35
  163. package/contracts/minter-suite/Minters/MinterDAExpV4.sol +17 -22
  164. package/contracts/minter-suite/Minters/MinterDALinV4.sol +16 -18
  165. package/contracts/minter-suite/Minters/MinterHolderV4.sol +20 -20
  166. package/contracts/minter-suite/Minters/MinterMerkleV5.sol +14 -16
  167. package/contracts/minter-suite/Minters/MinterPolyptychV0.sol +37 -36
  168. package/contracts/minter-suite/Minters/MinterSEAV0.sol +1273 -0
  169. package/contracts/minter-suite/Minters/MinterSetPriceERC20V4.sol +12 -12
  170. package/contracts/minter-suite/Minters/MinterSetPriceV4.sol +10 -11
  171. package/contracts/mock/{BytecodeTextCR_DMock.sol → BytecodeV0TextCR_DMock.sol} +5 -5
  172. package/contracts/mock/BytecodeV1LibCallsMock.sol +114 -0
  173. package/contracts/mock/BytecodeV1TextCR_DMock.sol +233 -0
  174. package/contracts/mock/DeadReceiverBidderMock.sol +23 -0
  175. package/contracts/mock/DeadReceiverMock.sol +1 -1
  176. package/contracts/mock/DummySharedMinter.sol +75 -0
  177. package/contracts/mock/GasLimitReceiverBidderMock.sol +23 -0
  178. package/contracts/mock/GasLimitReceiverMock.sol +19 -0
  179. package/contracts/mock/GenArt721CoreV3_Engine_IncorrectCoreType.sol +14 -27
  180. package/contracts/mock/MockAdminACLV0.sol +1 -1
  181. package/contracts/mock/MockAdminACLV0_PROHIBITION.sol +207 -0
  182. package/contracts/mock/OriginRegisterMock.sol +27 -0
  183. package/contracts/mock/RandomizerV2_NoAssignMock.sol +3 -12
  184. package/contracts/mock/ReentrancySEAMock.sol +36 -0
  185. package/contracts/mock/SSTORE2Mock.sol +93 -0
  186. package/contracts/{BasicRandomizer.sol → randomizer/deprecated/BasicRandomizer.sol} +1 -1
  187. package/contracts/randomizer/deprecated/BasicRandomizerBase_v0_0_0.sol +23 -0
  188. package/contracts/{BasicPolyptychRandomizerV0.sol → randomizer/deprecated/PolyptychRandomizerV0.sol} +20 -29
  189. package/contracts/{BasicRandomizerV2.sol → randomizer/deprecated/RandomizerV2.sol} +6 -14
  190. package/contracts/randomizer/primitive/PseudorandomAtomicBasic.sol +30 -0
  191. package/contracts/randomizer/shared/SharedRandomizerV0.sol +245 -0
  192. package/package.json +36 -30
  193. package/.env.example +0 -10
  194. package/artifacts/contracts/BasicPolyptychRandomizerV0.sol/BasicPolyptychRandomizerV0.json +0 -229
  195. package/artifacts/contracts/BasicRandomizerV2.sol/BasicRandomizerV2.json +0 -102
  196. package/artifacts/contracts/GenArt721CoreV3_Engine.sol/GenArt721CoreV3_Engine.json +0 -1942
  197. package/artifacts/contracts/engine-registry/future/EngineRegistryV1.sol/EngineRegistryV1.json +0 -109
  198. package/contracts/engine-registry/future/EngineRegistryV1.sol +0 -86
  199. /package/contracts/libs/0.8.x/{BytecodeStorage.sol → BytecodeStorageV0.sol} +0 -0
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: LGPL-3.0-only
2
- pragma solidity 0.8.17;
2
+ pragma solidity 0.8.19;
3
3
 
4
4
  // Created By: Art Blocks Inc.
5
5
 
@@ -13,7 +13,7 @@ import "@openzeppelin-4.8/contracts-upgradeable/access/OwnableUpgradeable.sol";
13
13
  import "@openzeppelin-4.8/contracts-upgradeable/proxy/utils/Initializable.sol";
14
14
  import "@openzeppelin-4.5/contracts/utils/math/SafeCast.sol";
15
15
 
16
- import "./libs/0.8.x/BytecodeStorage.sol";
16
+ import "./libs/0.8.x/BytecodeStorageV1.sol";
17
17
  import "./libs/0.8.x/Bytes32Strings.sol";
18
18
 
19
19
  /**
@@ -33,8 +33,7 @@ contract DependencyRegistryV0 is
33
33
  OwnableUpgradeable,
34
34
  IDependencyRegistryV0
35
35
  {
36
- using BytecodeStorage for string;
37
- using BytecodeStorage for address;
36
+ using BytecodeStorageWriter for string;
38
37
  using Bytes32Strings for bytes32;
39
38
  using Strings for uint256;
40
39
  using EnumerableSet for EnumerableSet.Bytes32Set;
@@ -65,38 +64,37 @@ contract DependencyRegistryV0 is
65
64
  EnumerableSet.AddressSet private _supportedCoreContracts;
66
65
  mapping(address => mapping(uint256 => bytes32)) projectDependencyTypeOverrides;
67
66
 
68
- modifier onlyNonZeroAddress(address _address) {
67
+ function _onlyNonZeroAddress(address _address) internal pure {
69
68
  require(_address != address(0), "Must input non-zero address");
70
- _;
71
69
  }
72
70
 
73
- modifier onlyNonEmptyString(string memory _string) {
71
+ function _onlyNonEmptyString(string memory _string) internal pure {
74
72
  require(bytes(_string).length != 0, "Must input non-empty string");
75
- _;
76
73
  }
77
74
 
78
- modifier onlyAdminACL(bytes4 _selector) {
75
+ function _onlyAdminACL(bytes4 _selector) internal {
79
76
  require(
80
77
  adminACLAllowed(msg.sender, address(this), _selector),
81
78
  "Only Admin ACL allowed"
82
79
  );
83
- _;
84
80
  }
85
81
 
86
- modifier onlySupportedCoreContract(address _coreContractAddress) {
82
+ function _onlySupportedCoreContract(
83
+ address _coreContractAddress
84
+ ) internal view {
87
85
  require(
88
86
  _supportedCoreContracts.contains(_coreContractAddress),
89
87
  "Core contract not supported"
90
88
  );
91
- _;
92
89
  }
93
90
 
94
- modifier onlyExistingDependencyType(bytes32 _dependencyType) {
91
+ function _onlyExistingDependencyType(
92
+ bytes32 _dependencyType
93
+ ) internal view {
95
94
  require(
96
95
  _dependencyTypes.contains(_dependencyType),
97
96
  "Dependency type does not exist"
98
97
  );
99
- _;
100
98
  }
101
99
 
102
100
  /**
@@ -121,7 +119,8 @@ contract DependencyRegistryV0 is
121
119
  string memory _preferredCDN,
122
120
  string memory _preferredRepository,
123
121
  string memory _referenceWebsite
124
- ) external onlyAdminACL(this.addDependency.selector) {
122
+ ) external {
123
+ _onlyAdminACL(this.addDependency.selector);
125
124
  require(
126
125
  !_dependencyTypes.contains(_dependencyType),
127
126
  "Dependency type already exists"
@@ -152,13 +151,9 @@ contract DependencyRegistryV0 is
152
151
  * @notice Removes a dependency.
153
152
  * @param _dependencyType Name of dependency type (i.e. "type@version")
154
153
  */
155
- function removeDependency(
156
- bytes32 _dependencyType
157
- )
158
- external
159
- onlyAdminACL(this.removeDependency.selector)
160
- onlyExistingDependencyType(_dependencyType)
161
- {
154
+ function removeDependency(bytes32 _dependencyType) external {
155
+ _onlyAdminACL(this.removeDependency.selector);
156
+ _onlyExistingDependencyType(_dependencyType);
162
157
  Dependency storage dependency = dependencyDetails[_dependencyType];
163
158
  require(
164
159
  dependency.additionalCDNCount == 0 &&
@@ -182,12 +177,10 @@ contract DependencyRegistryV0 is
182
177
  function addDependencyScript(
183
178
  bytes32 _dependencyType,
184
179
  string memory _script
185
- )
186
- external
187
- onlyAdminACL(this.addDependencyScript.selector)
188
- onlyNonEmptyString(_script)
189
- onlyExistingDependencyType(_dependencyType)
190
- {
180
+ ) external {
181
+ _onlyAdminACL(this.addDependencyScript.selector);
182
+ _onlyNonEmptyString(_script);
183
+ _onlyExistingDependencyType(_dependencyType);
191
184
  Dependency storage dependency = dependencyDetails[_dependencyType];
192
185
  // store script in contract bytecode
193
186
  dependency.scriptBytecodeAddresses[dependency.scriptCount] = _script
@@ -208,27 +201,15 @@ contract DependencyRegistryV0 is
208
201
  bytes32 _dependencyType,
209
202
  uint256 _scriptId,
210
203
  string memory _script
211
- )
212
- external
213
- onlyAdminACL(this.updateDependencyScript.selector)
214
- onlyNonEmptyString(_script)
215
- onlyExistingDependencyType(_dependencyType)
216
- {
204
+ ) external {
205
+ _onlyAdminACL(this.updateDependencyScript.selector);
206
+ _onlyNonEmptyString(_script);
207
+ _onlyExistingDependencyType(_dependencyType);
217
208
  Dependency storage dependencyType = dependencyDetails[_dependencyType];
218
209
  require(
219
210
  _scriptId < dependencyType.scriptCount,
220
211
  "scriptId out of range"
221
212
  );
222
- // purge old contract bytecode contract from the blockchain state
223
- // note: Although this does reduce usage of Ethereum state, it does not
224
- // reduce the gas costs of removal transactions. We believe this is the
225
- // best behavior at the time of writing, and do not expect this to
226
- // result in any breaking changes in the future. All current proposals
227
- // to change the self-destruct opcode are backwards compatible, but may
228
- // result in not removing the bytecode from the blockchain state. This
229
- // implementation is compatible with that architecture, as it does not
230
- // rely on the bytecode being removed from the blockchain state.
231
- dependencyType.scriptBytecodeAddresses[_scriptId].purgeBytecode();
232
213
  // store script in contract bytecode, replacing reference address from
233
214
  // the contract that no longer exists with the newly created one
234
215
  dependencyType.scriptBytecodeAddresses[_scriptId] = _script
@@ -241,28 +222,12 @@ contract DependencyRegistryV0 is
241
222
  * @notice Removes last script from dependency `_dependencyType`.
242
223
  * @param _dependencyType dependency to be updated.
243
224
  */
244
- function removeDependencyLastScript(
245
- bytes32 _dependencyType
246
- )
247
- external
248
- onlyAdminACL(this.removeDependencyLastScript.selector)
249
- onlyExistingDependencyType(_dependencyType)
250
- {
225
+ function removeDependencyLastScript(bytes32 _dependencyType) external {
226
+ _onlyAdminACL(this.removeDependencyLastScript.selector);
227
+ _onlyExistingDependencyType(_dependencyType);
251
228
  Dependency storage dependency = dependencyDetails[_dependencyType];
252
229
  require(dependency.scriptCount > 0, "there are no scripts to remove");
253
- // purge old contract bytecode contract from the blockchain state
254
- // note: Although this does reduce usage of Ethereum state, it does not
255
- // reduce the gas costs of removal transactions. We believe this is the
256
- // best behavior at the time of writing, and do not expect this to
257
- // result in any breaking changes in the future. All current proposals
258
- // to change the self-destruct opcode are backwards compatible, but may
259
- // result in not removing the bytecode from the blockchain state. This
260
- // implementation is compatible with that architecture, as it does not
261
- // rely on the bytecode being removed from the blockchain state.
262
- dependency
263
- .scriptBytecodeAddresses[dependency.scriptCount - 1]
264
- .purgeBytecode();
265
- // delete reference to contract address that no longer exists
230
+ // delete reference to old storage contract address
266
231
  delete dependency.scriptBytecodeAddresses[dependency.scriptCount - 1];
267
232
  unchecked {
268
233
  dependency.scriptCount = dependency.scriptCount - 1;
@@ -279,11 +244,9 @@ contract DependencyRegistryV0 is
279
244
  function updateDependencyPreferredCDN(
280
245
  bytes32 _dependencyType,
281
246
  string memory _preferredCDN
282
- )
283
- external
284
- onlyAdminACL(this.updateDependencyPreferredCDN.selector)
285
- onlyExistingDependencyType(_dependencyType)
286
- {
247
+ ) external {
248
+ _onlyAdminACL(this.updateDependencyPreferredCDN.selector);
249
+ _onlyExistingDependencyType(_dependencyType);
287
250
  dependencyDetails[_dependencyType].preferredCDN = _preferredCDN;
288
251
 
289
252
  emit DependencyPreferredCDNUpdated(_dependencyType, _preferredCDN);
@@ -297,11 +260,9 @@ contract DependencyRegistryV0 is
297
260
  function updateDependencyPreferredRepository(
298
261
  bytes32 _dependencyType,
299
262
  string memory _preferredRepository
300
- )
301
- external
302
- onlyAdminACL(this.updateDependencyPreferredRepository.selector)
303
- onlyExistingDependencyType(_dependencyType)
304
- {
263
+ ) external {
264
+ _onlyAdminACL(this.updateDependencyPreferredRepository.selector);
265
+ _onlyExistingDependencyType(_dependencyType);
305
266
  dependencyDetails[_dependencyType]
306
267
  .preferredRepository = _preferredRepository;
307
268
 
@@ -319,11 +280,9 @@ contract DependencyRegistryV0 is
319
280
  function updateDependencyReferenceWebsite(
320
281
  bytes32 _dependencyType,
321
282
  string memory _referenceWebsite
322
- )
323
- external
324
- onlyAdminACL(this.updateDependencyReferenceWebsite.selector)
325
- onlyExistingDependencyType(_dependencyType)
326
- {
283
+ ) external {
284
+ _onlyAdminACL(this.updateDependencyReferenceWebsite.selector);
285
+ _onlyExistingDependencyType(_dependencyType);
327
286
  dependencyDetails[_dependencyType].referenceWebsite = _referenceWebsite;
328
287
 
329
288
  emit DependencyReferenceWebsiteUpdated(
@@ -341,12 +300,10 @@ contract DependencyRegistryV0 is
341
300
  function addDependencyAdditionalCDN(
342
301
  bytes32 _dependencyType,
343
302
  string memory _additionalCDN
344
- )
345
- external
346
- onlyAdminACL(this.addDependencyAdditionalCDN.selector)
347
- onlyNonEmptyString(_additionalCDN)
348
- onlyExistingDependencyType(_dependencyType)
349
- {
303
+ ) external {
304
+ _onlyAdminACL(this.addDependencyAdditionalCDN.selector);
305
+ _onlyNonEmptyString(_additionalCDN);
306
+ _onlyExistingDependencyType(_dependencyType);
350
307
  Dependency storage dependency = dependencyDetails[_dependencyType];
351
308
 
352
309
  uint256 additionalCDNCount = uint256(dependency.additionalCDNCount);
@@ -370,11 +327,9 @@ contract DependencyRegistryV0 is
370
327
  function removeDependencyAdditionalCDNAtIndex(
371
328
  bytes32 _dependencyType,
372
329
  uint256 _index
373
- )
374
- external
375
- onlyAdminACL(this.removeDependencyAdditionalCDNAtIndex.selector)
376
- onlyExistingDependencyType(_dependencyType)
377
- {
330
+ ) external {
331
+ _onlyAdminACL(this.removeDependencyAdditionalCDNAtIndex.selector);
332
+ _onlyExistingDependencyType(_dependencyType);
378
333
  Dependency storage dependency = dependencyDetails[_dependencyType];
379
334
 
380
335
  uint256 additionalCDNCount = dependency.additionalCDNCount;
@@ -402,12 +357,10 @@ contract DependencyRegistryV0 is
402
357
  bytes32 _dependencyType,
403
358
  uint256 _index,
404
359
  string memory _additionalCDN
405
- )
406
- external
407
- onlyAdminACL(this.updateDependencyAdditionalCDNAtIndex.selector)
408
- onlyNonEmptyString(_additionalCDN)
409
- onlyExistingDependencyType(_dependencyType)
410
- {
360
+ ) external {
361
+ _onlyAdminACL(this.updateDependencyAdditionalCDNAtIndex.selector);
362
+ _onlyNonEmptyString(_additionalCDN);
363
+ _onlyExistingDependencyType(_dependencyType);
411
364
  Dependency storage dependency = dependencyDetails[_dependencyType];
412
365
  uint24 additionalCDNCount = dependency.additionalCDNCount;
413
366
  require(_index < additionalCDNCount, "Asset index out of range");
@@ -430,12 +383,10 @@ contract DependencyRegistryV0 is
430
383
  function addDependencyAdditionalRepository(
431
384
  bytes32 _dependencyType,
432
385
  string memory _additionalRepository
433
- )
434
- external
435
- onlyAdminACL(this.addDependencyAdditionalRepository.selector)
436
- onlyNonEmptyString(_additionalRepository)
437
- onlyExistingDependencyType(_dependencyType)
438
- {
386
+ ) external {
387
+ _onlyAdminACL(this.addDependencyAdditionalRepository.selector);
388
+ _onlyNonEmptyString(_additionalRepository);
389
+ _onlyExistingDependencyType(_dependencyType);
439
390
  Dependency storage dependency = dependencyDetails[_dependencyType];
440
391
  uint256 additionalRepositoryCount = uint256(
441
392
  dependency.additionalRepositoryCount
@@ -464,11 +415,11 @@ contract DependencyRegistryV0 is
464
415
  function removeDependencyAdditionalRepositoryAtIndex(
465
416
  bytes32 _dependencyType,
466
417
  uint256 _index
467
- )
468
- external
469
- onlyAdminACL(this.removeDependencyAdditionalRepositoryAtIndex.selector)
470
- onlyExistingDependencyType(_dependencyType)
471
- {
418
+ ) external {
419
+ _onlyAdminACL(
420
+ this.removeDependencyAdditionalRepositoryAtIndex.selector
421
+ );
422
+ _onlyExistingDependencyType(_dependencyType);
472
423
  Dependency storage dependency = dependencyDetails[_dependencyType];
473
424
  uint256 additionalRepositoryCount = uint256(
474
425
  dependency.additionalRepositoryCount
@@ -497,12 +448,12 @@ contract DependencyRegistryV0 is
497
448
  bytes32 _dependencyType,
498
449
  uint256 _index,
499
450
  string memory _additionalRepository
500
- )
501
- external
502
- onlyAdminACL(this.updateDependencyAdditionalRepositoryAtIndex.selector)
503
- onlyNonEmptyString(_additionalRepository)
504
- onlyExistingDependencyType(_dependencyType)
505
- {
451
+ ) external {
452
+ _onlyAdminACL(
453
+ this.updateDependencyAdditionalRepositoryAtIndex.selector
454
+ );
455
+ _onlyNonEmptyString(_additionalRepository);
456
+ _onlyExistingDependencyType(_dependencyType);
506
457
  Dependency storage dependency = dependencyDetails[_dependencyType];
507
458
  uint24 additionalRepositoryCount = dependency.additionalRepositoryCount;
508
459
  require(_index < additionalRepositoryCount, "Asset index out of range");
@@ -520,13 +471,9 @@ contract DependencyRegistryV0 is
520
471
  * @notice Adds a new core contract to the list of supported core contracts.
521
472
  * @param _contractAddress Address of the core contract to be added.
522
473
  */
523
- function addSupportedCoreContract(
524
- address _contractAddress
525
- )
526
- external
527
- onlyAdminACL(this.addSupportedCoreContract.selector)
528
- onlyNonZeroAddress(_contractAddress)
529
- {
474
+ function addSupportedCoreContract(address _contractAddress) external {
475
+ _onlyAdminACL(this.addSupportedCoreContract.selector);
476
+ _onlyNonZeroAddress(_contractAddress);
530
477
  require(
531
478
  !_supportedCoreContracts.contains(_contractAddress),
532
479
  "Contract already supported"
@@ -541,13 +488,9 @@ contract DependencyRegistryV0 is
541
488
  * @notice Removes a core contract from the list of supported core contracts.
542
489
  * @param _contractAddress Address of the core contract to be removed.
543
490
  */
544
- function removeSupportedCoreContract(
545
- address _contractAddress
546
- )
547
- external
548
- onlyAdminACL(this.removeSupportedCoreContract.selector)
549
- onlySupportedCoreContract(_contractAddress)
550
- {
491
+ function removeSupportedCoreContract(address _contractAddress) external {
492
+ _onlyAdminACL(this.removeSupportedCoreContract.selector);
493
+ _onlySupportedCoreContract(_contractAddress);
551
494
  _supportedCoreContracts.remove(_contractAddress);
552
495
 
553
496
  emit SupportedCoreContractRemoved(_contractAddress);
@@ -566,12 +509,10 @@ contract DependencyRegistryV0 is
566
509
  address _contractAddress,
567
510
  uint256 _projectId,
568
511
  bytes32 _dependencyType
569
- )
570
- external
571
- onlyAdminACL(this.addProjectDependencyTypeOverride.selector)
572
- onlyExistingDependencyType(_dependencyType)
573
- onlySupportedCoreContract(_contractAddress)
574
- {
512
+ ) external {
513
+ _onlyAdminACL(this.addProjectDependencyTypeOverride.selector);
514
+ _onlyExistingDependencyType(_dependencyType);
515
+ _onlySupportedCoreContract(_contractAddress);
575
516
  projectDependencyTypeOverrides[_contractAddress][
576
517
  _projectId
577
518
  ] = _dependencyType;
@@ -592,7 +533,8 @@ contract DependencyRegistryV0 is
592
533
  function removeProjectDependencyTypeOverride(
593
534
  address _contractAddress,
594
535
  uint256 _projectId
595
- ) external onlyAdminACL(this.removeProjectDependencyTypeOverride.selector) {
536
+ ) external {
537
+ _onlyAdminACL(this.removeProjectDependencyTypeOverride.selector);
596
538
  require(
597
539
  projectDependencyTypeOverrides[_contractAddress][_projectId] !=
598
540
  bytes32(""),
@@ -792,7 +734,7 @@ contract DependencyRegistryV0 is
792
734
  return "";
793
735
  }
794
736
 
795
- return dependency.scriptBytecodeAddresses[_index].readFromBytecode();
737
+ return _readFromBytecode(dependency.scriptBytecodeAddresses[_index]);
796
738
  }
797
739
 
798
740
  /**
@@ -808,12 +750,8 @@ contract DependencyRegistryV0 is
808
750
  function getDependencyTypeForProject(
809
751
  address _contractAddress,
810
752
  uint256 _projectId
811
- )
812
- external
813
- view
814
- onlySupportedCoreContract(_contractAddress)
815
- returns (string memory)
816
- {
753
+ ) external view returns (string memory) {
754
+ _onlySupportedCoreContract(_contractAddress);
817
755
  bytes32 dependencyType = projectDependencyTypeOverrides[
818
756
  _contractAddress
819
757
  ][_projectId];
@@ -890,4 +828,14 @@ contract DependencyRegistryV0 is
890
828
  OwnableUpgradeable._transferOwnership(newOwner);
891
829
  adminACLContract = IAdminACLV0(newOwner);
892
830
  }
831
+
832
+ /**
833
+ * Helper for calling `BytecodeStorageReader` external library reader method,
834
+ * added for bytecode size reduction purposes.
835
+ */
836
+ function _readFromBytecode(
837
+ address _address
838
+ ) internal view returns (string memory) {
839
+ return BytecodeStorageReader.readFromBytecode(_address);
840
+ }
893
841
  }