@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
package/README.md CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  [![CircleCI](https://circleci.com/gh/ArtBlocks/artblocks-contracts/tree/main.svg?style=svg&circle-token=757a2689792bc9c126834396d6fa47e8f023bc2d)](https://circleci.com/gh/ArtBlocks/artblocks-contracts/tree/main)
4
4
 
5
+ [![GitPOAPs](https://public-api.gitpoap.io/v1/repo/ArtBlocks/artblocks-contracts/badge)](https://www.gitpoap.io/gh/ArtBlocks/artblocks-contracts)
5
6
  [![Coverage Status](https://coveralls.io/repos/github/ArtBlocks/artblocks-contracts/badge.svg?branch=main)](https://coveralls.io/github/ArtBlocks/artblocks-contracts?branch=main)
6
7
 
7
8
  A collection of smart contracts used by [Art Blocks](https://artblocks.io) for our flagship product, as well as Artblocks Engine products.
@@ -54,23 +55,56 @@ In addition to meeting our style guidelines, all code must pass all tests and be
54
55
 
55
56
  # Documentation
56
57
 
57
- Documentation for contracts us deployed via GitHub pages at: https://artblocks.github.io/artblocks-contracts/
58
+ ## auto-generated contract docs (via NatSpec)
59
+
60
+ Documentation for contracts is deployed via GitHub pages at: https://artblocks.github.io/artblocks-contracts/
58
61
 
59
62
  Documentation for contracts may also be generated via `yarn docgen`. Most Art Blocks contracts use [NatSpec](https://docs.soliditylang.org/en/v0.8.9/natspec-format.html#documentation-example) comments to automatically enrich generated documentation. Some contracts use [dynamic expressions](https://docs.soliditylang.org/en/v0.8.9/natspec-format.html#dynamic-expressions) to improve user experience.
60
63
 
64
+ ## Art Blocks V3 Contract Architecture
65
+
66
+ For a high-level overview of the Art Blocks V3 contract architecture, refer to the simplified entity relationship diagram below.
67
+
68
+ ```mermaid
69
+ erDiagram
70
+ ADMIN_ACL ||--o{ CORE_V3_V3_FLEX : manages
71
+ ADMIN_ACL ||--o{ MINTERFILTER : manages
72
+ CORE_V3_V3_FLEX ||--|| MINTERFILTER : uses
73
+ CORE_V3_V3_FLEX }o--|| BYTECODESTORAGEREADER : uses
74
+ MINTERFILTER ||--o{ MINTER_1 : uses
75
+ MINTERFILTER ||--o{ MINTER_2 : uses
76
+ MINTERFILTER ||--o{ MINTER_N : uses
77
+ MINTER_1 ||--|| I_FILTERED_MINTER : implements
78
+ MINTER_2 ||--|| I_FILTERED_MINTER : implements
79
+ MINTER_N ||--|| I_FILTERED_MINTER : implements
80
+ RANDOMIZER ||--|| CORE_V3_V3_FLEX : provides_random
81
+ ENGINE_REGISTRY ||--o{ CORE_V3_V3_FLEX : notifies
82
+ ```
83
+
84
+ For a more detailed overview of this architecture, please see the [V3 Contract Architecture page](./V3_ARCHITECTURE.md).
85
+
61
86
  # Deployments
62
87
 
63
88
  ## Deploying New Contracts
64
89
 
65
- Deployment script templates are located in the `./scripts` directory. To run a deployment script `deploy.ts`:
66
-
67
90
  > IMPORTANT - many scripts rely on typechain-generated factories, so ensure you have run `yarn generate:typechain` before running any deployment scripts.
68
91
 
92
+ We have two types of deployment scripts: Generic and Specific.
93
+
94
+ Generic deployment scripts are located in the `./scripts` directory. These scripts are used to deploy contracts that are not specific to a particular deployment. Generic deployment scripts are used to deploy contracts that are used by multiple partners or core contracts, such as the `Art Blocks Engine` contracts, or minters. Generic scripts take an input json file, located in the `/deployents/` directory, and execute the deployment as defined in the input file. In general, there are scripts prepared to run generic deployments for all networks and environments. For example, the following can be used to deploy the `Art Blocks Engine` contracts to the `goerli` test network (note that an input configuration is also required for all generic deployments.):
95
+
96
+ ```bash
97
+ yarn deploy:dev:v3-engine
69
98
  ```
99
+
100
+ Specific deployments are used less frequently, and are located in the `/scripts` directory as well. These scripts are used to deploy contracts that are specific to a particular deployment. They are not easily reusable, and are generally only used once. An example to run a specific deployment is:
101
+
102
+ ```bash
70
103
  yarn hardhat run --network <your-network> scripts/deploy.ts
71
104
  ```
72
105
 
73
106
  where `<your network>` is any network configured in `hardhat.config.js`.
107
+
74
108
  For additional deployment details, see hardhat docs: [https://hardhat.org/guides/deploying.html](https://hardhat.org/guides/deploying.html)
75
109
 
76
110
  ## Deployed Contract Details
@@ -81,104 +115,15 @@ This is the Smart contract that controls the artwork created by the artist. No f
81
115
 
82
116
  Core contracts use the versioning schema below:
83
117
 
84
- | Description | Version | Project Range | Mainnet Address |
85
- | :------------------: | :------: | :-----------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
86
- | AB Core V0 | V0 | 0-2 | `0x059EDD72Cd353dF5106D2B9cC5ab83a52287aC3a` |
87
- | AB Core V1 | V1 | 3-373 | `0xa7d8d9ef8D8Ce8992Df33D8b8CF4Aebabd5bD270` |
88
- | PBAB Cores | V2_PBAB | All PBAB | Various - see PBAB+Collabs directory [DEPLOYMENTS.md files](https://github.com/search?q=repo%3AArtBlocks%2Fartblocks-contracts+extension%3Amd+filename%3ADEPLOYMENTS&type=Code&ref=advsearch&l=&l=) |
89
- | PRTNR Cores | V2_PRTNR | All PRTNR | Various - see PBAB+Collabs directory [DEPLOYMENTS.md files](https://github.com/search?q=repo%3AArtBlocks%2Fartblocks-contracts+extension%3Amd+filename%3ADEPLOYMENTS&type=Code&ref=advsearch&l=&l=) |
90
- | AB Core V3 (current) | V3 | 374+ | `0x99a9B7c1116f9ceEB1652de04d5969CcE509B069` |
91
-
92
- > AB Core V3 [changelog here](./contracts/V3_CHANGELOG.md), and [performance metrics here](./contracts/V3_Performance.md).
93
-
94
- ### MinterFilter Suite Compatibility Chart
95
-
96
- The following table shows which Minters and MinterFilters are compatible with which Core contracts.
97
-
98
- - **Note:** while the whole end-to-end MinterFilter+FilteredMinter architecture is likely not the ideal fit for PBAB partners due to the infrastructure complexity required for partners integrating with it, any of the individual minters from within the minter suite can readily be adapted to work with PBAB core contracts–if you are a PBAB partner and there is a minter in the suite that this would be appealing for, please contact your account manager!
99
-
100
- | Core Contract Version(s) | Minter Filter | Recommended Minters | Deprecated Minters |
101
- | ------------------------ | -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- |
102
- | V0 | - | (legacy minter) | - |
103
- | V1, V1_PRTNR | MinterFilterV0 | MinterSetPriceV1<br>MinterSetPriceERC20V1<br>MinterDAExpV1<br>MinterDALinV1<br>MinterMerkleV0<br>MinterHolderV0 | MinterSetPriceV0<br>MinterSetPriceERC20V0<br>MinterDAExpV0<br>MinterDALinV0 |
104
- | V2 (PBAB) | - | (various PBAB minters) | - |
105
- | V3, V3_Explorations | MinterFilterV1 | MinterSetPriceV2<br>MinterSetPriceERC20V2<br>MinterDAExpV2<br>MinterDALinV2<br>MinterMerkleV2<br>MinterMerkleV3<br>MinterHolderV1<br>MinterHolderV2 | - |
106
-
107
- ### Active Minting Contract(s)
108
-
109
- These are the smart contracts that receive funds, and split them between the artist(s) and the platform. Artists receive funds directly from these contracts.
110
-
111
- #### MinterSetPrice (Set Price)
112
-
113
- - V0 (deprecated): [0x1DEC9E52f1320F7Deb29cBCd7B7d67f3dF785142](https://etherscan.io/address/0x1DEC9E52f1320F7Deb29cBCd7B7d67f3dF785142#code)
114
- - V1: [0x934cdc04C434b8dBf3E1265F4f198D70566f7355](https://etherscan.io/address/0x934cdc04C434b8dBf3E1265F4f198D70566f7355#code)
115
- - V2: [0x7B7917e083CeA6d9f6a3060a7330c1072fcb4e40](https://etherscan.io/address/0x7B7917e083CeA6d9f6a3060a7330c1072fcb4e40#code)
116
- - V3: N/A, never used in prod.
117
- - V4: [0x234B25288011081817B5cC199C3754269cCb76D2](https://etherscan.io/address/0x234B25288011081817B5cC199C3754269cCb76D2#code)
118
-
119
- #### MinterSetPriceERC20 (Set Price with ERC20)
120
-
121
- - V0 (deprecated): [0x48742D38a0809135EFd643c1150BfC13768C3907](https://etherscan.io/address/0x48742D38a0809135EFd643c1150BfC13768C3907#code)
122
- - V1: [0x0BbB93c5d118D1dee49e96BCAdc161403f4F8612](https://etherscan.io/address/0x0BbB93c5d118D1dee49e96BCAdc161403f4F8612#code)
123
- - V2: [0xe4c6EeF13649e9C4Ad8ae8A9C7fA9A7F26B4287a](https://etherscan.io/address/0xe4c6EeF13649e9C4Ad8ae8A9C7fA9A7F26B4287a#code)
124
- - V3: N/A, never used in prod.
125
- - V4: [0x9fEcd2FbC6D890fB93632DcE9b1a01c4090A7E2d](https://etherscan.io/address/0x9fEcd2FbC6D890fB93632DcE9b1a01c4090A7E2d#code)
126
-
127
- #### MinterDALin (Linear Dutch Auction)
128
-
129
- - V0 (deprecated): [0xd219f61Bb5A3ffDeCB4362610977F1dAB3930eE2](https://etherscan.io/address/0xd219f61Bb5A3ffDeCB4362610977F1dAB3930eE2#code)
130
- - V1: [0x32710950B014c2D29EA24f480Dd02c7e4610663b](https://etherscan.io/address/0x32710950B014c2D29EA24f480Dd02c7e4610663b#code)
131
- - V2: [0xdaa6D1e224f4B9f7c4f1368C362C4333A8e385A6](https://etherscan.io/address/0xdaa6D1e224f4B9f7c4f1368C362C4333A8e385A6#code)
132
- - V3: N/A, never used in prod.
133
- - V4: [0x419501DD208BFf237e3E32C40D074065e12DfF4d](https://etherscan.io/address/0x419501DD208BFf237e3E32C40D074065e12DfF4d#code)
134
-
135
- #### MinterDAExp (Exponential Decay Dutch Auction)
136
-
137
- - V0 (deprecated): [0xFc74fD0f2c7EaD04f1E5E9fd82Aef55620710D7C](https://etherscan.io/address/0xFc74fD0f2c7EaD04f1E5E9fd82Aef55620710D7C#code)
138
- - V1: [0xD94C7060808f3c876824E57e685702f3834D2e13](https://etherscan.io/address/0xD94C7060808f3c876824E57e685702f3834D2e13#code)
139
- - V2: [0x706d6C6ef700a3c1C3a727f0c46492492E0A72b5](https://etherscan.io/address/0x706d6C6ef700a3c1C3a727f0c46492492E0A72b5#code)
140
- - V3: N/A, never used in prod.
141
- - V4: [0x47e2df2723238f913741Cc6b1963e76fdfD19B94](https://etherscan.io/address/0x47e2df2723238f913741Cc6b1963e76fdfD19B94#code)
142
-
143
- #### MinterDAExpSettlement (Expotential Decay Last Price Dutch Auction)
144
-
145
- - V0: N/A, never used in prod.
146
- - V1: [0xfdE58c821D1c226b4a45c22904de20b114EDe7E7](https://etherscan.io/address/0xfdE58c821D1c226b4a45c22904de20b114EDe7E7#code)
147
-
148
- #### MinterMerkle (Address Allowlist)
149
-
150
- - V0: N/A, never used in prod.
151
- - V1: [0xae5A48D22Cd069c4d72dDe204A7fB4B302e614af](https://etherscan.io/address/0xae5A48D22Cd069c4d72dDe204A7fB4B302e614af)
152
- - V2: [0x6Ff3c104Ca9b4860D27079aFfF18701c4A532A4d](https://etherscan.io/address/0x6Ff3c104Ca9b4860D27079aFfF18701c4A532A4d)
153
- - V3: N/A, never used in prod.
154
- - V4: N/A, never used in prod.
155
- - V5: [0xB8Bd1D2836C466DB149f665F777928bEE267304d](https://etherscan.io/address/0xB8Bd1D2836C466DB149f665F777928bEE267304d#code)
156
-
157
- #### Minter Holder (Token Holder)
118
+ | Description | Version | Project Range | Mainnet Address |
119
+ | :-----------------------: | :------: | :-----------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
120
+ | AB Core V0 | V0 | 0-2 | `0x059EDD72Cd353dF5106D2B9cC5ab83a52287aC3a` |
121
+ | AB Core V1 | V1 | 3-373 | `0xa7d8d9ef8D8Ce8992Df33D8b8CF4Aebabd5bD270` |
122
+ | Engine Cores (V2) | V2_PBAB | All PBAB | Various - see `deployments/engine/` directory [DEPLOYMENTS.md files](https://github.com/search?q=repo%3AArtBlocks%2Fartblocks-contracts+extension%3Amd+filename%3ADEPLOYMENTS&type=Code&ref=advsearch&l=&l=) |
123
+ | Engine Partner Cores (V2) | V2_PRTNR | All PRTNR | Various - see `deployments/engine/` directory [DEPLOYMENTS.md files](https://github.com/search?q=repo%3AArtBlocks%2Fartblocks-contracts+extension%3Amd+filename%3ADEPLOYMENTS&type=Code&ref=advsearch&l=&l=) |
124
+ | AB Core V3 (current) | V3 | 374+ | `0x99a9B7c1116f9ceEB1652de04d5969CcE509B069` |
158
125
 
159
- - V0: N/A, never used in prod.
160
- - V1: [0xa198E22C32879f4214a37eB3051525bD9aff9145](https://etherscan.io/address/0xa198E22C32879f4214a37eB3051525bD9aff9145)
161
- - V2: N/A, never used in prod.
162
- - V3: N/A, never used in prod.
163
- - V4: [0xCCFF562017bdAAa064184b3Eb9bd892d8Acce7d6](https://etherscan.io/address/0xCCFF562017bdAAa064184b3Eb9bd892d8Acce7d6#code)
164
-
165
- ### Other Minter Contracts
166
-
167
- MinterFilterV0 for flagship V1 core: [0x4aafCE293b9B0faD169c78049A81e400f518E199](https://etherscan.io/address/0x4aafCE293b9B0faD169c78049A81e400f518E199#code).
168
-
169
- MinterFilterV1 for flagship V3 core: [0x092B8F64e713d66b38522978BCf4649db14b931E](https://etherscan.io/address/0x092B8F64e713d66b38522978BCf4649db14b931E).
170
-
171
- Legacy minting contract for flagship V0 core: [0x47e312d99c09ce61a866c83cbbbbed5a4b9d33e7](https://etherscan.io/address/0x47e312d99c09ce61a866c83cbbbbed5a4b9d33e7).
172
-
173
- For deployed Engine/Partner/Explorations minting contracts that integrate with V2 core contracts, see the archived source code in the `/posterity/engine/<engine-partner>/` directory and the deployment logs in `/deployments/engine/[V2|V3]/<engine-partner>/` directories. For V3 deployments, deployment script inputs are also available in the `/deployments/engine/[V2|V3]/<engine-partner>/` directories.
174
-
175
- ### Shared Randomizers
176
-
177
- - Goerli: https://goerli.etherscan.io/address/0xec5dae4b11213290b2dbe5295093f75920bd2982#code
178
- - Ropsten: https://ropsten.etherscan.io/address/0x7ba972189ED3C527847170453fC108707F62755a#code
179
- - Rinkeby: https://rinkeby.etherscan.io/address/0x3b30d421a6dA95694EaaE09971424F15Eb375269#code
180
- - Kovan: https://kovan.etherscan.io/address/0x3b30d421a6dA95694EaaE09971424F15Eb375269#code
181
- - Mainnet: https://etherscan.io/address/0x088098f7438773182b703625c4128aff85fcffc4#code
126
+ > AB Core V3 [changelog here](./contracts/V3_CHANGELOG.md), and [performance metrics here](./contracts/V3_PERFORMANCE.md).
182
127
 
183
128
  ### Testnet Contracts
184
129
 
@@ -193,73 +138,41 @@ The following represents the current set of flagship core contracts deployed on
193
138
  - V1 Core (deprecated): https://goerli.etherscan.io/address/0x1Bf03F29c4FEFFFe4eE26704aaA31d85c026aCE6
194
139
  - V3 Core: https://goerli.etherscan.io/address/0xF396C180bb2f92EE28535D23F5224A5b9425ceca
195
140
 
196
- ## Art Blocks Engine core contracts
141
+ ## Art Blocks Engine Core Contracts
197
142
 
198
- > Formerly known as PBAB or PRTNR core contracts
143
+ For deployed core contracts, see the deployment details in the `/deployments/engine/[V2|V3]/<engine-partner>/` directories. For V2 core contracts, archived source code is available in the `/posterity/engine/` directory.
199
144
 
200
- For deployed core contracts, see the archived source code in the `/posterity/engine/` directory and the deployment logs in `/deployments/engine/[V2|V3]/<engine-partner>/` directories.
145
+ ## BytecodeStorageReader
201
146
 
202
- ## Contract Source Code Verification
203
-
204
- In an effort to ensure source code verification is easily completed by anyone, After 10, January 2023, all mainnet deployments should also have a corresponding tag+release in this GitHub repository. For deployments prior to this date, PR history may be used to determine the commit hash used for a given deployment. Currently, all mainnet deployments of contracts developed in this repositiory are verified on Etherscan.
147
+ BytecodeStorageReader (currently on V1 version) is public library for reading from storage contracts. This library is intended to be deployed as a standalone contract, and provides all _read_ functionality by being used as an externally linked library within the Art Blocks ecosystem contracts that use contract storage for writes.
205
148
 
206
- # Royalty Registry
149
+ Given that it is an externally linked library with a shared public deployment, the deployment addresses for these shared deployments are referenced in our shared deployments `constants.ts` util (in the `BYTECODE_STORAGE_READER_LIBRARY_ADDRESSES` constant) so that they may be linked at time of deployment and are also linked here below for shared reference:
207
150
 
208
- Art Blocks supports lookups of all mainnet flagship, partnership, and PBAB tokens on Manifold's [Royalty Registry](https://royaltyregistry.xyz/lookup). This enables on-chain royalty lookups for all Art Blocks NFTs, and allows for the creation of royalty streams for artists and other creators.
151
+ - V1 `BytecodeStorageReader` (goerli): https://goerli.etherscan.io/address/0xB8B806A10d16cc80dB788552B54B3ECb4A2A3C3D#code
152
+ - V1 `BytecodeStorageReader` (mainnet): https://etherscan.io/address/0xf0585dF582A0ad119F1616FB82f3b449a98EeCd5#code
153
+ - V1 `BytecodeStorageReader` (arbitrum-goerli): https://goerli.arbiscan.io/address/0x681861cD4fC92d70aE57745385065ef862954662
209
154
 
210
- For core contracts V3+, Art Blocks core contracts are designed to integrate directly with Manifold's [Royalty Registry](https://royaltyregistry.xyz/lookup). Aside from an artist and the platform defining royalty percentages/basis-points and addresses on the V3+ core contracts, no additional steps are required to register a token with the Royalty Registry.
155
+ ## Minter Suite
211
156
 
212
- Prior to the V3 core contract, royalty registry override contracts are needed to properly integrate with the Royalty Registry. These contracts delegate all permissions to the core contracts. The following Royalty Registry override contracts are deployed at:
157
+ For details on the Flagship and Engine Minter Suite, see the [minter suite documenation](./MINTER_SUITE.md).
213
158
 
214
- - **mainnet (AB deployed):**
159
+ ## Shared Randomizers
215
160
 
216
- - AB Flagship + Partner (PRTNR) royalty override: https://etherscan.io/address/0x7b5369c24a47a72ecf932bf6974f506dde4d5eb1#code
217
- - PBAB royalty override: https://etherscan.io/address/0x31e1cc72e6f9e27c2ecbb500d978de1691173f5f#code
218
-
219
- - **mainnet (RR deployed):**
220
- - RoyaltyRegistry: https://etherscan.io/address/0xad2184fb5dbcfc05d8f056542fb25b04fa32a95d#code
221
- - RoyaltyEngineV1: https://etherscan.io/address/0x0385603ab55642cb4dd5de3ae9e306809991804f#code
222
-
223
- ### Configuring PBAB Royalty Override (REQUIRED)
224
-
225
- Upon deploying a PBAB contract, the following steps must be taken:
226
-
227
- > Tasks denoted by (scripted) are included in `scripts/1_reference_pbab_suite_deployer.ts`, and scripted for newly deployed PBAB projects as of 03/2022.
228
-
229
- - **(scripted), REQUIRED** Set the royalty lookup address on the royalty registry for the newly deployed contract
230
- - Go to the [Royalty Registry](https://royaltyregistry.xyz/lookup) and call the following function on the Royalty Registry smart contract:
231
- - `setRoyaltyLookupAddress(<new_PBAB_coreAddr>, <PBAB_royaltyOverrideContract>)`
232
- - **(scripted), REQUIRED** Set Platform royalty payment address for the new core contract in PBAB royalty override contract
233
- > note: This step is optional in the PBAB deployer script in case platform royalty payment address is not known at time of deployment, but must be completed before royalty lookups will work
234
- - `admin` of the PBAB core contract must call the following function on the PBAB royalty override contract:
235
- - `updatePlatformRoyaltyAddressForContract(<new_PBAB_coreAddr>, <platformRoyaltyPaymentAddress>)`
236
-
237
- Additionally, the following settings may be configured/changed by a PBAB core contract's `admin` at any time:
238
-
239
- - **Change Royalty Percentages**
240
- - `renderProvider` or `platform` Royalty [BPS](https://www.investopedia.com/terms/b/basispoint.asp) may be changed from default values of 2.5% to any value. This can be configured by a PBAB core contract's `admin` via the PBAB override contract's functions `updateRenderProviderBpsForContract` and `updatePlatformBpsForContract`.
241
- - **Change Platform Royalty Payment Address**
242
- - The address to receive platform royalty payments may be updated by a PBAB core contract's admin via the PBAB override contract's function `updatePlatformRoyaltyAddressForContract`.
243
- - **Change Render Provider Royalty Payment Address**
244
- - The address to receive render provider royalty payments is delegated to the token core contract, and defined as the public variable `renderProviderAddress`.
161
+ - Goerli: https://goerli.etherscan.io/address/0xec5dae4b11213290b2dbe5295093f75920bd2982#code
162
+ - Ropsten: https://ropsten.etherscan.io/address/0x7ba972189ED3C527847170453fC108707F62755a#code
163
+ - Rinkeby: https://rinkeby.etherscan.io/address/0x3b30d421a6dA95694EaaE09971424F15Eb375269#code
164
+ - Kovan: https://kovan.etherscan.io/address/0x3b30d421a6dA95694EaaE09971424F15Eb375269#code
165
+ - Mainnet: https://etherscan.io/address/0x088098f7438773182b703625c4128aff85fcffc4#code
245
166
 
246
- ### Configuring Art Blocks Flagship **OR** Partner (PRTNR) Royalty Override (REQUIRED)
167
+ ## Contract Source Code Verification
247
168
 
248
- Upon deploying a new Art Blocks flagship core contract or Partner (PRTNR) core contract, the following steps must be taken (NOT scripted):
169
+ In an effort to ensure source code verification is easily completed by anyone, After 10, January 2023, all mainnet deployments should also have a corresponding tag+release in this GitHub repository. For deployments prior to this date, PR history may be used to determine the commit hash used for a given deployment. Currently, all mainnet deployments of contracts developed in this repositiory are verified on Etherscan.
249
170
 
250
- - **REQUIRED** Set the royalty lookup address on the royalty registry for the newly deployed contract
251
- - Go to the [Royalty Registry](https://royaltyregistry.xyz/lookup) to call the following function on the Royalty Registry smart contract:
252
- - `setRoyaltyLookupAddress(<new_coreAddr>, <ArtBlocks_royaltyOverrideContract>)`
253
- - **REQUIRED** Set Art Blocks royalty payment address for the new core contract in the royalty override contract
254
- - `admin` of core contract must call:
255
- - `updateArtblocksRoyaltyAddressForContract(<new_coreAddr>, <ArtBlocksRoyaltyPaymentAddress>)`
171
+ # Royalties
256
172
 
257
- Additionally, the following settings may be configured/changed by a core contract's `admin` at any time:
173
+ Art Blocks supports on-chain royalty lookups for all Flagship and Engine tokens on Manifold's [Royalty Registry](https://royaltyregistry.xyz/lookup). This enables royalty revenue streams for artists and other creators.
258
174
 
259
- - **Change Art Blocks Royalty Percentage**
260
- - Royalty [BPS](https://www.investopedia.com/terms/b/basispoint.asp) may be changed from default values of 2.5% to any value less than or equal to the default (cannot be increased above default). This can be configured by a core contract's `admin` via the override contract's function `updateArtblocksBpsForContract`.
261
- - **Change Art Blocks Royalty Payment Address**
262
- - The address to receive Art Blocks royalty payments may be updated by a core contract's admin via the royalty override contract's function `updateArtblocksRoyaltyAddressForContract`.
175
+ For information about on-chain royalties, please see the [royalties documentation](./ROYALTIES.md).
263
176
 
264
177
  # Source Code Archival
265
178
 
@@ -302,4 +215,4 @@ After this config is finished, you'll notice a `usd (avg)` column in the auto-ge
302
215
 
303
216
  # License
304
217
 
305
- The Art Blocks `artblocks-contracts` repo is open source software licensed under the GNU Lesser General Public License v3.0. For full license text, please see our [LICENSE](https://github.com/ArtBlocks/artblocks-contracts/blob/main/LICENSE) declaration file.
218
+ The Art Blocks `artblocks-contracts` repo is open source software licensed under the GNU Lesser General Public License v3.0. For full license text, please see our [LICENSE](https://github.com/ArtBlocks/artblocks-contracts/blob/main/packages/contracts/LICENSE) declaration file.
@@ -157,8 +157,8 @@
157
157
  "type": "function"
158
158
  }
159
159
  ],
160
- "bytecode": "0x60c0604052600a608090815269041646d696e41434c56360b41b60a05260009061002990826100ed565b5034801561003657600080fd5b50600180546001600160a01b031916331790556101ac565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061007857607f821691505b60208210810361009857634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156100e857600081815260208120601f850160051c810160208610156100c55750805b601f850160051c820191505b818110156100e4578281556001016100d1565b5050505b505050565b81516001600160401b038111156101065761010661004e565b61011a816101148454610064565b8461009e565b602080601f83116001811461014f57600084156101375750858301515b600019600386901b1c1916600185901b1785556100e4565b600085815260208120601f198616915b8281101561017e5788860151825594840194600190910190840161015f565b508582101561019c5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b610747806101bb6000396000f3fe608060405234801561001057600080fd5b506004361061006d5760003560e01c806301ffc9a71461007257806305de62c01461009a57806329575f6a146100be578063377a7d1a146100de578063985d1968146100f3578063bcc91a1014610106578063c81a396e14610119575b600080fd5b61008561008036600461048e565b61012e565b60405190151581526020015b60405180910390f35b6100856100a83660046104c7565b50506001546001600160a01b0391821691161490565b6001546100d1906001600160a01b031681565b604051610091919061050a565b6100f16100ec36600461051e565b610165565b005b6100f16101013660046105a4565b6101fd565b6100f16101143660046105bf565b61027d565b6101216103e3565b60405161009191906105f2565b60006001600160e01b03198216633001c1ef60e21b148061015f57506301ffc9a760e01b6001600160e01b03198316145b92915050565b6001546001600160a01b031633146101985760405162461bcd60e51b815260040161018f90610640565b60405180910390fd5b600180546001600160a01b038581166001600160a01b0319831681179093556040519116919082907f3f6845104f9728af7979eed8814320daba008953c8db93b9fe32602d1f34b475906101ef9087908790610669565b60405180910390a350505050565b6001546001600160a01b031633146102275760405162461bcd60e51b815260040161018f90610640565b806001600160a01b031663715018a66040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561026257600080fd5b505af1158015610276573d6000803e3d6000fd5b5050505050565b6001546001600160a01b031633146102a75760405162461bcd60e51b815260040161018f90610640565b6040516301ffc9a760e01b8152633001c1ef60e21b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa1580156102f2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061031691906106b5565b6103815760405162461bcd60e51b815260206004820152603660248201527f41646d696e41434c56303a206e65772061646d696e2041434c20646f6573206e60448201527506f7420737570706f7274204941646d696e41434c56360541b606482015260840161018f565b60405163f2fde38b60e01b81526001600160a01b0383169063f2fde38b906103ad90849060040161050a565b600060405180830381600087803b1580156103c757600080fd5b505af11580156103db573d6000803e3d6000fd5b505050505050565b600080546103f0906106d7565b80601f016020809104026020016040519081016040528092919081815260200182805461041c906106d7565b80156104695780601f1061043e57610100808354040283529160200191610469565b820191906000526020600020905b81548152906001019060200180831161044c57829003601f168201915b505050505081565b80356001600160e01b03198116811461048957600080fd5b919050565b6000602082840312156104a057600080fd5b6104a982610471565b9392505050565b80356001600160a01b038116811461048957600080fd5b6000806000606084860312156104dc57600080fd5b6104e5846104b0565b92506104f3602085016104b0565b915061050160408501610471565b90509250925092565b6001600160a01b0391909116815260200190565b60008060006040848603121561053357600080fd5b61053c846104b0565b9250602084013567ffffffffffffffff8082111561055957600080fd5b818601915086601f83011261056d57600080fd5b81358181111561057c57600080fd5b8760208260051b850101111561059157600080fd5b6020830194508093505050509250925092565b6000602082840312156105b657600080fd5b6104a9826104b0565b600080604083850312156105d257600080fd5b6105db836104b0565b91506105e9602084016104b0565b90509250929050565b600060208083528351808285015260005b8181101561061f57858101830151858201604001528201610603565b506000604082860101526040601f19601f8301168501019250505092915050565b6020808252600f908201526e27b7363c9039bab832b920b236b4b760891b604082015260600190565b60208082528181018390526000908460408401835b868110156106aa576001600160a01b03610697846104b0565b168252918301919083019060010161067e565b509695505050505050565b6000602082840312156106c757600080fd5b815180151581146104a957600080fd5b600181811c908216806106eb57607f821691505b60208210810361070b57634e487b7160e01b600052602260045260246000fd5b5091905056fea2646970667358221220eb60dafe19251564df41a812729a78538c16b536734e69e73af5740cb85ff5b364736f6c63430008110033",
161
- "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061006d5760003560e01c806301ffc9a71461007257806305de62c01461009a57806329575f6a146100be578063377a7d1a146100de578063985d1968146100f3578063bcc91a1014610106578063c81a396e14610119575b600080fd5b61008561008036600461048e565b61012e565b60405190151581526020015b60405180910390f35b6100856100a83660046104c7565b50506001546001600160a01b0391821691161490565b6001546100d1906001600160a01b031681565b604051610091919061050a565b6100f16100ec36600461051e565b610165565b005b6100f16101013660046105a4565b6101fd565b6100f16101143660046105bf565b61027d565b6101216103e3565b60405161009191906105f2565b60006001600160e01b03198216633001c1ef60e21b148061015f57506301ffc9a760e01b6001600160e01b03198316145b92915050565b6001546001600160a01b031633146101985760405162461bcd60e51b815260040161018f90610640565b60405180910390fd5b600180546001600160a01b038581166001600160a01b0319831681179093556040519116919082907f3f6845104f9728af7979eed8814320daba008953c8db93b9fe32602d1f34b475906101ef9087908790610669565b60405180910390a350505050565b6001546001600160a01b031633146102275760405162461bcd60e51b815260040161018f90610640565b806001600160a01b031663715018a66040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561026257600080fd5b505af1158015610276573d6000803e3d6000fd5b5050505050565b6001546001600160a01b031633146102a75760405162461bcd60e51b815260040161018f90610640565b6040516301ffc9a760e01b8152633001c1ef60e21b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa1580156102f2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061031691906106b5565b6103815760405162461bcd60e51b815260206004820152603660248201527f41646d696e41434c56303a206e65772061646d696e2041434c20646f6573206e60448201527506f7420737570706f7274204941646d696e41434c56360541b606482015260840161018f565b60405163f2fde38b60e01b81526001600160a01b0383169063f2fde38b906103ad90849060040161050a565b600060405180830381600087803b1580156103c757600080fd5b505af11580156103db573d6000803e3d6000fd5b505050505050565b600080546103f0906106d7565b80601f016020809104026020016040519081016040528092919081815260200182805461041c906106d7565b80156104695780601f1061043e57610100808354040283529160200191610469565b820191906000526020600020905b81548152906001019060200180831161044c57829003601f168201915b505050505081565b80356001600160e01b03198116811461048957600080fd5b919050565b6000602082840312156104a057600080fd5b6104a982610471565b9392505050565b80356001600160a01b038116811461048957600080fd5b6000806000606084860312156104dc57600080fd5b6104e5846104b0565b92506104f3602085016104b0565b915061050160408501610471565b90509250925092565b6001600160a01b0391909116815260200190565b60008060006040848603121561053357600080fd5b61053c846104b0565b9250602084013567ffffffffffffffff8082111561055957600080fd5b818601915086601f83011261056d57600080fd5b81358181111561057c57600080fd5b8760208260051b850101111561059157600080fd5b6020830194508093505050509250925092565b6000602082840312156105b657600080fd5b6104a9826104b0565b600080604083850312156105d257600080fd5b6105db836104b0565b91506105e9602084016104b0565b90509250929050565b600060208083528351808285015260005b8181101561061f57858101830151858201604001528201610603565b506000604082860101526040601f19601f8301168501019250505092915050565b6020808252600f908201526e27b7363c9039bab832b920b236b4b760891b604082015260600190565b60208082528181018390526000908460408401835b868110156106aa576001600160a01b03610697846104b0565b168252918301919083019060010161067e565b509695505050505050565b6000602082840312156106c757600080fd5b815180151581146104a957600080fd5b600181811c908216806106eb57607f821691505b60208210810361070b57634e487b7160e01b600052602260045260246000fd5b5091905056fea2646970667358221220eb60dafe19251564df41a812729a78538c16b536734e69e73af5740cb85ff5b364736f6c63430008110033",
160
+ "bytecode": "0x60c0604052600a608090815269041646d696e41434c56360b41b60a05260009061002990826100ed565b5034801561003657600080fd5b50600180546001600160a01b031916331790556101ac565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061007857607f821691505b60208210810361009857634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156100e857600081815260208120601f850160051c810160208610156100c55750805b601f850160051c820191505b818110156100e4578281556001016100d1565b5050505b505050565b81516001600160401b038111156101065761010661004e565b61011a816101148454610064565b8461009e565b602080601f83116001811461014f57600084156101375750858301515b600019600386901b1c1916600185901b1785556100e4565b600085815260208120601f198616915b8281101561017e5788860151825594840194600190910190840161015f565b508582101561019c5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b610747806101bb6000396000f3fe608060405234801561001057600080fd5b506004361061006d5760003560e01c806301ffc9a71461007257806305de62c01461009a57806329575f6a146100be578063377a7d1a146100de578063985d1968146100f3578063bcc91a1014610106578063c81a396e14610119575b600080fd5b61008561008036600461048e565b61012e565b60405190151581526020015b60405180910390f35b6100856100a83660046104c7565b50506001546001600160a01b0391821691161490565b6001546100d1906001600160a01b031681565b604051610091919061050a565b6100f16100ec36600461051e565b610165565b005b6100f16101013660046105a4565b6101fd565b6100f16101143660046105bf565b61027d565b6101216103e3565b60405161009191906105f2565b60006001600160e01b03198216633001c1ef60e21b148061015f57506301ffc9a760e01b6001600160e01b03198316145b92915050565b6001546001600160a01b031633146101985760405162461bcd60e51b815260040161018f90610640565b60405180910390fd5b600180546001600160a01b038581166001600160a01b0319831681179093556040519116919082907f3f6845104f9728af7979eed8814320daba008953c8db93b9fe32602d1f34b475906101ef9087908790610669565b60405180910390a350505050565b6001546001600160a01b031633146102275760405162461bcd60e51b815260040161018f90610640565b806001600160a01b031663715018a66040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561026257600080fd5b505af1158015610276573d6000803e3d6000fd5b5050505050565b6001546001600160a01b031633146102a75760405162461bcd60e51b815260040161018f90610640565b6040516301ffc9a760e01b8152633001c1ef60e21b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa1580156102f2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061031691906106b5565b6103815760405162461bcd60e51b815260206004820152603660248201527f41646d696e41434c56303a206e65772061646d696e2041434c20646f6573206e60448201527506f7420737570706f7274204941646d696e41434c56360541b606482015260840161018f565b60405163f2fde38b60e01b81526001600160a01b0383169063f2fde38b906103ad90849060040161050a565b600060405180830381600087803b1580156103c757600080fd5b505af11580156103db573d6000803e3d6000fd5b505050505050565b600080546103f0906106d7565b80601f016020809104026020016040519081016040528092919081815260200182805461041c906106d7565b80156104695780601f1061043e57610100808354040283529160200191610469565b820191906000526020600020905b81548152906001019060200180831161044c57829003601f168201915b505050505081565b80356001600160e01b03198116811461048957600080fd5b919050565b6000602082840312156104a057600080fd5b6104a982610471565b9392505050565b80356001600160a01b038116811461048957600080fd5b6000806000606084860312156104dc57600080fd5b6104e5846104b0565b92506104f3602085016104b0565b915061050160408501610471565b90509250925092565b6001600160a01b0391909116815260200190565b60008060006040848603121561053357600080fd5b61053c846104b0565b9250602084013567ffffffffffffffff8082111561055957600080fd5b818601915086601f83011261056d57600080fd5b81358181111561057c57600080fd5b8760208260051b850101111561059157600080fd5b6020830194508093505050509250925092565b6000602082840312156105b657600080fd5b6104a9826104b0565b600080604083850312156105d257600080fd5b6105db836104b0565b91506105e9602084016104b0565b90509250929050565b600060208083528351808285015260005b8181101561061f57858101830151858201604001528201610603565b506000604082860101526040601f19601f8301168501019250505092915050565b6020808252600f908201526e27b7363c9039bab832b920b236b4b760891b604082015260600190565b60208082528181018390526000908460408401835b868110156106aa576001600160a01b03610697846104b0565b168252918301919083019060010161067e565b509695505050505050565b6000602082840312156106c757600080fd5b815180151581146104a957600080fd5b600181811c908216806106eb57607f821691505b60208210810361070b57634e487b7160e01b600052602260045260246000fd5b5091905056fea2646970667358221220d96c75f41d986d1b121cc15d73d3989c424fa829640d2f5d0b26c30e0f5cba2f64736f6c63430008130033",
161
+ "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061006d5760003560e01c806301ffc9a71461007257806305de62c01461009a57806329575f6a146100be578063377a7d1a146100de578063985d1968146100f3578063bcc91a1014610106578063c81a396e14610119575b600080fd5b61008561008036600461048e565b61012e565b60405190151581526020015b60405180910390f35b6100856100a83660046104c7565b50506001546001600160a01b0391821691161490565b6001546100d1906001600160a01b031681565b604051610091919061050a565b6100f16100ec36600461051e565b610165565b005b6100f16101013660046105a4565b6101fd565b6100f16101143660046105bf565b61027d565b6101216103e3565b60405161009191906105f2565b60006001600160e01b03198216633001c1ef60e21b148061015f57506301ffc9a760e01b6001600160e01b03198316145b92915050565b6001546001600160a01b031633146101985760405162461bcd60e51b815260040161018f90610640565b60405180910390fd5b600180546001600160a01b038581166001600160a01b0319831681179093556040519116919082907f3f6845104f9728af7979eed8814320daba008953c8db93b9fe32602d1f34b475906101ef9087908790610669565b60405180910390a350505050565b6001546001600160a01b031633146102275760405162461bcd60e51b815260040161018f90610640565b806001600160a01b031663715018a66040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561026257600080fd5b505af1158015610276573d6000803e3d6000fd5b5050505050565b6001546001600160a01b031633146102a75760405162461bcd60e51b815260040161018f90610640565b6040516301ffc9a760e01b8152633001c1ef60e21b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa1580156102f2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061031691906106b5565b6103815760405162461bcd60e51b815260206004820152603660248201527f41646d696e41434c56303a206e65772061646d696e2041434c20646f6573206e60448201527506f7420737570706f7274204941646d696e41434c56360541b606482015260840161018f565b60405163f2fde38b60e01b81526001600160a01b0383169063f2fde38b906103ad90849060040161050a565b600060405180830381600087803b1580156103c757600080fd5b505af11580156103db573d6000803e3d6000fd5b505050505050565b600080546103f0906106d7565b80601f016020809104026020016040519081016040528092919081815260200182805461041c906106d7565b80156104695780601f1061043e57610100808354040283529160200191610469565b820191906000526020600020905b81548152906001019060200180831161044c57829003601f168201915b505050505081565b80356001600160e01b03198116811461048957600080fd5b919050565b6000602082840312156104a057600080fd5b6104a982610471565b9392505050565b80356001600160a01b038116811461048957600080fd5b6000806000606084860312156104dc57600080fd5b6104e5846104b0565b92506104f3602085016104b0565b915061050160408501610471565b90509250925092565b6001600160a01b0391909116815260200190565b60008060006040848603121561053357600080fd5b61053c846104b0565b9250602084013567ffffffffffffffff8082111561055957600080fd5b818601915086601f83011261056d57600080fd5b81358181111561057c57600080fd5b8760208260051b850101111561059157600080fd5b6020830194508093505050509250925092565b6000602082840312156105b657600080fd5b6104a9826104b0565b600080604083850312156105d257600080fd5b6105db836104b0565b91506105e9602084016104b0565b90509250929050565b600060208083528351808285015260005b8181101561061f57858101830151858201604001528201610603565b506000604082860101526040601f19601f8301168501019250505092915050565b6020808252600f908201526e27b7363c9039bab832b920b236b4b760891b604082015260600190565b60208082528181018390526000908460408401835b868110156106aa576001600160a01b03610697846104b0565b168252918301919083019060010161067e565b509695505050505050565b6000602082840312156106c757600080fd5b815180151581146104a957600080fd5b600181811c908216806106eb57607f821691505b60208210810361070b57634e487b7160e01b600052602260045260246000fd5b5091905056fea2646970667358221220d96c75f41d986d1b121cc15d73d3989c424fa829640d2f5d0b26c30e0f5cba2f64736f6c63430008130033",
162
162
  "linkReferences": {},
163
163
  "deployedLinkReferences": {}
164
164
  }
@@ -241,8 +241,8 @@
241
241
  "type": "function"
242
242
  }
243
243
  ],
244
- "bytecode": "0x60c0604052600a60809081526941646d696e41434c563160b01b60a0526000906200002b9082620000f7565b503480156200003957600080fd5b50600180546001600160a01b03191633179055620001c3565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200007d57607f821691505b6020821081036200009e57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620000f257600081815260208120601f850160051c81016020861015620000cd5750805b601f850160051c820191505b81811015620000ee57828155600101620000d9565b5050505b505050565b81516001600160401b0381111562000113576200011362000052565b6200012b8162000124845462000068565b84620000a4565b602080601f8311600181146200016357600084156200014a5750858301515b600019600386901b1c1916600185901b178555620000ee565b600085815260208120601f198616915b82811015620001945788860151825594840194600190910190840162000173565b5085821015620001b35787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b610bac80620001d36000396000f3fe608060405234801561001057600080fd5b50600436106100995760003560e01c806301ffc9a71461009e57806305de62c0146100c657806329575f6a146100d9578063377a7d1a146100f9578063625e1b7d1461010e578063940ef80014610121578063985d196814610137578063ad35d2de1461014a578063bcc91a101461015d578063c81a396e14610170578063c94dca9a14610185575b600080fd5b6100b16100ac366004610894565b610198565b60405190151581526020015b60405180910390f35b6100b16100d43660046108c6565b6101cf565b6001546100ec906001600160a01b031681565b6040516100bd9190610909565b61010c61010736600461091d565b610234565b005b6100ec61011c3660046109a3565b6102cc565b6101296102d9565b6040519081526020016100bd565b61010c6101453660046109bc565b6102ea565b61010c6101583660046109bc565b61036a565b61010c61016b3660046109d7565b610422565b610178610588565b6040516100bd9190610a0a565b61010c6101933660046109bc565b610616565b60006001600160e01b03198216633001c1ef60e21b14806101c957506301ffc9a760e01b6001600160e01b03198316145b92915050565b6001546000906001600160a01b03908116908516036101f05750600161022d565b638911905560e01b6001600160e01b031983160161022957506001600160a01b038316600090815260036020526040902054151561022d565b5060005b9392505050565b6001546001600160a01b031633146102675760405162461bcd60e51b815260040161025e90610a58565b60405180910390fd5b600180546001600160a01b038581166001600160a01b0319831681179093556040519116919082907f3f6845104f9728af7979eed8814320daba008953c8db93b9fe32602d1f34b475906102be9087908790610a81565b60405180910390a350505050565b60006101c96002836106cb565b60006102e560026106d7565b905090565b6001546001600160a01b031633146103145760405162461bcd60e51b815260040161025e90610a58565b806001600160a01b031663715018a66040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561034f57600080fd5b505af1158015610363573d6000803e3d6000fd5b5050505050565b6001546001600160a01b031633146103945760405162461bcd60e51b815260040161025e90610a58565b61039f6002826106e1565b6103eb5760405162461bcd60e51b815260206004820152601e60248201527f41646d696e41434c56313a20416c726561647920726567697374657265640000604482015260640161025e565b6040516001600160a01b038216907fcfa45e813a030b8a5edb7a194db400758a7838280a892097169e8bc310a6bc9390600090a250565b6001546001600160a01b0316331461044c5760405162461bcd60e51b815260040161025e90610a58565b6040516301ffc9a760e01b8152633001c1ef60e21b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa158015610497573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104bb9190610acd565b6105265760405162461bcd60e51b815260206004820152603660248201527f41646d696e41434c56313a206e65772061646d696e2041434c20646f6573206e60448201527506f7420737570706f7274204941646d696e41434c56360541b606482015260840161025e565b60405163f2fde38b60e01b81526001600160a01b0383169063f2fde38b90610552908490600401610909565b600060405180830381600087803b15801561056c57600080fd5b505af1158015610580573d6000803e3d6000fd5b505050505050565b6000805461059590610aef565b80601f01602080910402602001604051908101604052809291908181526020018280546105c190610aef565b801561060e5780601f106105e35761010080835404028352916020019161060e565b820191906000526020600020905b8154815290600101906020018083116105f157829003601f168201915b505050505081565b6001546001600160a01b031633146106405760405162461bcd60e51b815260040161025e90610a58565b61064b6002826106f6565b6106945760405162461bcd60e51b815260206004820152601a60248201527910591b5a5b9050d3158c4e88139bdd081c9959da5cdd195c995960321b604482015260640161025e565b6040516001600160a01b038216907ff1de73f684ba2cffe486a26456673d031647e0c7964095865ed8e159873edde290600090a250565b600061022d838361070b565b60006101c9825490565b600061022d836001600160a01b038416610735565b600061022d836001600160a01b038416610784565b600082600001828154811061072257610722610b29565b9060005260206000200154905092915050565b600081815260018301602052604081205461077c575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556101c9565b5060006101c9565b6000818152600183016020526040812054801561086d5760006107a8600183610b3f565b85549091506000906107bc90600190610b3f565b90508181146108215760008660000182815481106107dc576107dc610b29565b90600052602060002001549050808760000184815481106107ff576107ff610b29565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061083257610832610b60565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506101c9565b60009150506101c9565b80356001600160e01b03198116811461088f57600080fd5b919050565b6000602082840312156108a657600080fd5b61022d82610877565b80356001600160a01b038116811461088f57600080fd5b6000806000606084860312156108db57600080fd5b6108e4846108af565b92506108f2602085016108af565b915061090060408501610877565b90509250925092565b6001600160a01b0391909116815260200190565b60008060006040848603121561093257600080fd5b61093b846108af565b9250602084013567ffffffffffffffff8082111561095857600080fd5b818601915086601f83011261096c57600080fd5b81358181111561097b57600080fd5b8760208260051b850101111561099057600080fd5b6020830194508093505050509250925092565b6000602082840312156109b557600080fd5b5035919050565b6000602082840312156109ce57600080fd5b61022d826108af565b600080604083850312156109ea57600080fd5b6109f3836108af565b9150610a01602084016108af565b90509250929050565b600060208083528351808285015260005b81811015610a3757858101830151858201604001528201610a1b565b506000604082860101526040601f19601f8301168501019250505092915050565b6020808252600f908201526e27b7363c9039bab832b920b236b4b760891b604082015260600190565b60208082528181018390526000908460408401835b86811015610ac2576001600160a01b03610aaf846108af565b1682529183019190830190600101610a96565b509695505050505050565b600060208284031215610adf57600080fd5b8151801515811461022d57600080fd5b600181811c90821680610b0357607f821691505b602082108103610b2357634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b818103818111156101c957634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fdfea26469706673582212203fb62a5817293aff376dcb3c493eeb88761b57a13426455593b068f7346c7daf64736f6c63430008110033",
245
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100995760003560e01c806301ffc9a71461009e57806305de62c0146100c657806329575f6a146100d9578063377a7d1a146100f9578063625e1b7d1461010e578063940ef80014610121578063985d196814610137578063ad35d2de1461014a578063bcc91a101461015d578063c81a396e14610170578063c94dca9a14610185575b600080fd5b6100b16100ac366004610894565b610198565b60405190151581526020015b60405180910390f35b6100b16100d43660046108c6565b6101cf565b6001546100ec906001600160a01b031681565b6040516100bd9190610909565b61010c61010736600461091d565b610234565b005b6100ec61011c3660046109a3565b6102cc565b6101296102d9565b6040519081526020016100bd565b61010c6101453660046109bc565b6102ea565b61010c6101583660046109bc565b61036a565b61010c61016b3660046109d7565b610422565b610178610588565b6040516100bd9190610a0a565b61010c6101933660046109bc565b610616565b60006001600160e01b03198216633001c1ef60e21b14806101c957506301ffc9a760e01b6001600160e01b03198316145b92915050565b6001546000906001600160a01b03908116908516036101f05750600161022d565b638911905560e01b6001600160e01b031983160161022957506001600160a01b038316600090815260036020526040902054151561022d565b5060005b9392505050565b6001546001600160a01b031633146102675760405162461bcd60e51b815260040161025e90610a58565b60405180910390fd5b600180546001600160a01b038581166001600160a01b0319831681179093556040519116919082907f3f6845104f9728af7979eed8814320daba008953c8db93b9fe32602d1f34b475906102be9087908790610a81565b60405180910390a350505050565b60006101c96002836106cb565b60006102e560026106d7565b905090565b6001546001600160a01b031633146103145760405162461bcd60e51b815260040161025e90610a58565b806001600160a01b031663715018a66040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561034f57600080fd5b505af1158015610363573d6000803e3d6000fd5b5050505050565b6001546001600160a01b031633146103945760405162461bcd60e51b815260040161025e90610a58565b61039f6002826106e1565b6103eb5760405162461bcd60e51b815260206004820152601e60248201527f41646d696e41434c56313a20416c726561647920726567697374657265640000604482015260640161025e565b6040516001600160a01b038216907fcfa45e813a030b8a5edb7a194db400758a7838280a892097169e8bc310a6bc9390600090a250565b6001546001600160a01b0316331461044c5760405162461bcd60e51b815260040161025e90610a58565b6040516301ffc9a760e01b8152633001c1ef60e21b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa158015610497573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104bb9190610acd565b6105265760405162461bcd60e51b815260206004820152603660248201527f41646d696e41434c56313a206e65772061646d696e2041434c20646f6573206e60448201527506f7420737570706f7274204941646d696e41434c56360541b606482015260840161025e565b60405163f2fde38b60e01b81526001600160a01b0383169063f2fde38b90610552908490600401610909565b600060405180830381600087803b15801561056c57600080fd5b505af1158015610580573d6000803e3d6000fd5b505050505050565b6000805461059590610aef565b80601f01602080910402602001604051908101604052809291908181526020018280546105c190610aef565b801561060e5780601f106105e35761010080835404028352916020019161060e565b820191906000526020600020905b8154815290600101906020018083116105f157829003601f168201915b505050505081565b6001546001600160a01b031633146106405760405162461bcd60e51b815260040161025e90610a58565b61064b6002826106f6565b6106945760405162461bcd60e51b815260206004820152601a60248201527910591b5a5b9050d3158c4e88139bdd081c9959da5cdd195c995960321b604482015260640161025e565b6040516001600160a01b038216907ff1de73f684ba2cffe486a26456673d031647e0c7964095865ed8e159873edde290600090a250565b600061022d838361070b565b60006101c9825490565b600061022d836001600160a01b038416610735565b600061022d836001600160a01b038416610784565b600082600001828154811061072257610722610b29565b9060005260206000200154905092915050565b600081815260018301602052604081205461077c575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556101c9565b5060006101c9565b6000818152600183016020526040812054801561086d5760006107a8600183610b3f565b85549091506000906107bc90600190610b3f565b90508181146108215760008660000182815481106107dc576107dc610b29565b90600052602060002001549050808760000184815481106107ff576107ff610b29565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061083257610832610b60565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506101c9565b60009150506101c9565b80356001600160e01b03198116811461088f57600080fd5b919050565b6000602082840312156108a657600080fd5b61022d82610877565b80356001600160a01b038116811461088f57600080fd5b6000806000606084860312156108db57600080fd5b6108e4846108af565b92506108f2602085016108af565b915061090060408501610877565b90509250925092565b6001600160a01b0391909116815260200190565b60008060006040848603121561093257600080fd5b61093b846108af565b9250602084013567ffffffffffffffff8082111561095857600080fd5b818601915086601f83011261096c57600080fd5b81358181111561097b57600080fd5b8760208260051b850101111561099057600080fd5b6020830194508093505050509250925092565b6000602082840312156109b557600080fd5b5035919050565b6000602082840312156109ce57600080fd5b61022d826108af565b600080604083850312156109ea57600080fd5b6109f3836108af565b9150610a01602084016108af565b90509250929050565b600060208083528351808285015260005b81811015610a3757858101830151858201604001528201610a1b565b506000604082860101526040601f19601f8301168501019250505092915050565b6020808252600f908201526e27b7363c9039bab832b920b236b4b760891b604082015260600190565b60208082528181018390526000908460408401835b86811015610ac2576001600160a01b03610aaf846108af565b1682529183019190830190600101610a96565b509695505050505050565b600060208284031215610adf57600080fd5b8151801515811461022d57600080fd5b600181811c90821680610b0357607f821691505b602082108103610b2357634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b818103818111156101c957634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fdfea26469706673582212203fb62a5817293aff376dcb3c493eeb88761b57a13426455593b068f7346c7daf64736f6c63430008110033",
244
+ "bytecode": "0x60c0604052600a60809081526941646d696e41434c563160b01b60a0526000906200002b9082620000f7565b503480156200003957600080fd5b50600180546001600160a01b03191633179055620001c3565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200007d57607f821691505b6020821081036200009e57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620000f257600081815260208120601f850160051c81016020861015620000cd5750805b601f850160051c820191505b81811015620000ee57828155600101620000d9565b5050505b505050565b81516001600160401b0381111562000113576200011362000052565b6200012b8162000124845462000068565b84620000a4565b602080601f8311600181146200016357600084156200014a5750858301515b600019600386901b1c1916600185901b178555620000ee565b600085815260208120601f198616915b82811015620001945788860151825594840194600190910190840162000173565b5085821015620001b35787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b610bac80620001d36000396000f3fe608060405234801561001057600080fd5b50600436106100995760003560e01c806301ffc9a71461009e57806305de62c0146100c657806329575f6a146100d9578063377a7d1a146100f9578063625e1b7d1461010e578063940ef80014610121578063985d196814610137578063ad35d2de1461014a578063bcc91a101461015d578063c81a396e14610170578063c94dca9a14610185575b600080fd5b6100b16100ac366004610894565b610198565b60405190151581526020015b60405180910390f35b6100b16100d43660046108c6565b6101cf565b6001546100ec906001600160a01b031681565b6040516100bd9190610909565b61010c61010736600461091d565b610234565b005b6100ec61011c3660046109a3565b6102cc565b6101296102d9565b6040519081526020016100bd565b61010c6101453660046109bc565b6102ea565b61010c6101583660046109bc565b61036a565b61010c61016b3660046109d7565b610422565b610178610588565b6040516100bd9190610a0a565b61010c6101933660046109bc565b610616565b60006001600160e01b03198216633001c1ef60e21b14806101c957506301ffc9a760e01b6001600160e01b03198316145b92915050565b6001546000906001600160a01b03908116908516036101f05750600161022d565b638911905560e01b6001600160e01b031983160161022957506001600160a01b038316600090815260036020526040902054151561022d565b5060005b9392505050565b6001546001600160a01b031633146102675760405162461bcd60e51b815260040161025e90610a58565b60405180910390fd5b600180546001600160a01b038581166001600160a01b0319831681179093556040519116919082907f3f6845104f9728af7979eed8814320daba008953c8db93b9fe32602d1f34b475906102be9087908790610a81565b60405180910390a350505050565b60006101c96002836106cb565b60006102e560026106d7565b905090565b6001546001600160a01b031633146103145760405162461bcd60e51b815260040161025e90610a58565b806001600160a01b031663715018a66040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561034f57600080fd5b505af1158015610363573d6000803e3d6000fd5b5050505050565b6001546001600160a01b031633146103945760405162461bcd60e51b815260040161025e90610a58565b61039f6002826106e1565b6103eb5760405162461bcd60e51b815260206004820152601e60248201527f41646d696e41434c56313a20416c726561647920726567697374657265640000604482015260640161025e565b6040516001600160a01b038216907fcfa45e813a030b8a5edb7a194db400758a7838280a892097169e8bc310a6bc9390600090a250565b6001546001600160a01b0316331461044c5760405162461bcd60e51b815260040161025e90610a58565b6040516301ffc9a760e01b8152633001c1ef60e21b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa158015610497573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104bb9190610acd565b6105265760405162461bcd60e51b815260206004820152603660248201527f41646d696e41434c56313a206e65772061646d696e2041434c20646f6573206e60448201527506f7420737570706f7274204941646d696e41434c56360541b606482015260840161025e565b60405163f2fde38b60e01b81526001600160a01b0383169063f2fde38b90610552908490600401610909565b600060405180830381600087803b15801561056c57600080fd5b505af1158015610580573d6000803e3d6000fd5b505050505050565b6000805461059590610aef565b80601f01602080910402602001604051908101604052809291908181526020018280546105c190610aef565b801561060e5780601f106105e35761010080835404028352916020019161060e565b820191906000526020600020905b8154815290600101906020018083116105f157829003601f168201915b505050505081565b6001546001600160a01b031633146106405760405162461bcd60e51b815260040161025e90610a58565b61064b6002826106f6565b6106945760405162461bcd60e51b815260206004820152601a60248201527910591b5a5b9050d3158c4e88139bdd081c9959da5cdd195c995960321b604482015260640161025e565b6040516001600160a01b038216907ff1de73f684ba2cffe486a26456673d031647e0c7964095865ed8e159873edde290600090a250565b600061022d838361070b565b60006101c9825490565b600061022d836001600160a01b038416610735565b600061022d836001600160a01b038416610784565b600082600001828154811061072257610722610b29565b9060005260206000200154905092915050565b600081815260018301602052604081205461077c575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556101c9565b5060006101c9565b6000818152600183016020526040812054801561086d5760006107a8600183610b3f565b85549091506000906107bc90600190610b3f565b90508181146108215760008660000182815481106107dc576107dc610b29565b90600052602060002001549050808760000184815481106107ff576107ff610b29565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061083257610832610b60565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506101c9565b60009150506101c9565b80356001600160e01b03198116811461088f57600080fd5b919050565b6000602082840312156108a657600080fd5b61022d82610877565b80356001600160a01b038116811461088f57600080fd5b6000806000606084860312156108db57600080fd5b6108e4846108af565b92506108f2602085016108af565b915061090060408501610877565b90509250925092565b6001600160a01b0391909116815260200190565b60008060006040848603121561093257600080fd5b61093b846108af565b9250602084013567ffffffffffffffff8082111561095857600080fd5b818601915086601f83011261096c57600080fd5b81358181111561097b57600080fd5b8760208260051b850101111561099057600080fd5b6020830194508093505050509250925092565b6000602082840312156109b557600080fd5b5035919050565b6000602082840312156109ce57600080fd5b61022d826108af565b600080604083850312156109ea57600080fd5b6109f3836108af565b9150610a01602084016108af565b90509250929050565b600060208083528351808285015260005b81811015610a3757858101830151858201604001528201610a1b565b506000604082860101526040601f19601f8301168501019250505092915050565b6020808252600f908201526e27b7363c9039bab832b920b236b4b760891b604082015260600190565b60208082528181018390526000908460408401835b86811015610ac2576001600160a01b03610aaf846108af565b1682529183019190830190600101610a96565b509695505050505050565b600060208284031215610adf57600080fd5b8151801515811461022d57600080fd5b600181811c90821680610b0357607f821691505b602082108103610b2357634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b818103818111156101c957634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fdfea2646970667358221220be0b58373e938571eb6b22e8bed646f7d2c193f57f017f71b0c5ee38cd0d09a664736f6c63430008130033",
245
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100995760003560e01c806301ffc9a71461009e57806305de62c0146100c657806329575f6a146100d9578063377a7d1a146100f9578063625e1b7d1461010e578063940ef80014610121578063985d196814610137578063ad35d2de1461014a578063bcc91a101461015d578063c81a396e14610170578063c94dca9a14610185575b600080fd5b6100b16100ac366004610894565b610198565b60405190151581526020015b60405180910390f35b6100b16100d43660046108c6565b6101cf565b6001546100ec906001600160a01b031681565b6040516100bd9190610909565b61010c61010736600461091d565b610234565b005b6100ec61011c3660046109a3565b6102cc565b6101296102d9565b6040519081526020016100bd565b61010c6101453660046109bc565b6102ea565b61010c6101583660046109bc565b61036a565b61010c61016b3660046109d7565b610422565b610178610588565b6040516100bd9190610a0a565b61010c6101933660046109bc565b610616565b60006001600160e01b03198216633001c1ef60e21b14806101c957506301ffc9a760e01b6001600160e01b03198316145b92915050565b6001546000906001600160a01b03908116908516036101f05750600161022d565b638911905560e01b6001600160e01b031983160161022957506001600160a01b038316600090815260036020526040902054151561022d565b5060005b9392505050565b6001546001600160a01b031633146102675760405162461bcd60e51b815260040161025e90610a58565b60405180910390fd5b600180546001600160a01b038581166001600160a01b0319831681179093556040519116919082907f3f6845104f9728af7979eed8814320daba008953c8db93b9fe32602d1f34b475906102be9087908790610a81565b60405180910390a350505050565b60006101c96002836106cb565b60006102e560026106d7565b905090565b6001546001600160a01b031633146103145760405162461bcd60e51b815260040161025e90610a58565b806001600160a01b031663715018a66040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561034f57600080fd5b505af1158015610363573d6000803e3d6000fd5b5050505050565b6001546001600160a01b031633146103945760405162461bcd60e51b815260040161025e90610a58565b61039f6002826106e1565b6103eb5760405162461bcd60e51b815260206004820152601e60248201527f41646d696e41434c56313a20416c726561647920726567697374657265640000604482015260640161025e565b6040516001600160a01b038216907fcfa45e813a030b8a5edb7a194db400758a7838280a892097169e8bc310a6bc9390600090a250565b6001546001600160a01b0316331461044c5760405162461bcd60e51b815260040161025e90610a58565b6040516301ffc9a760e01b8152633001c1ef60e21b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa158015610497573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104bb9190610acd565b6105265760405162461bcd60e51b815260206004820152603660248201527f41646d696e41434c56313a206e65772061646d696e2041434c20646f6573206e60448201527506f7420737570706f7274204941646d696e41434c56360541b606482015260840161025e565b60405163f2fde38b60e01b81526001600160a01b0383169063f2fde38b90610552908490600401610909565b600060405180830381600087803b15801561056c57600080fd5b505af1158015610580573d6000803e3d6000fd5b505050505050565b6000805461059590610aef565b80601f01602080910402602001604051908101604052809291908181526020018280546105c190610aef565b801561060e5780601f106105e35761010080835404028352916020019161060e565b820191906000526020600020905b8154815290600101906020018083116105f157829003601f168201915b505050505081565b6001546001600160a01b031633146106405760405162461bcd60e51b815260040161025e90610a58565b61064b6002826106f6565b6106945760405162461bcd60e51b815260206004820152601a60248201527910591b5a5b9050d3158c4e88139bdd081c9959da5cdd195c995960321b604482015260640161025e565b6040516001600160a01b038216907ff1de73f684ba2cffe486a26456673d031647e0c7964095865ed8e159873edde290600090a250565b600061022d838361070b565b60006101c9825490565b600061022d836001600160a01b038416610735565b600061022d836001600160a01b038416610784565b600082600001828154811061072257610722610b29565b9060005260206000200154905092915050565b600081815260018301602052604081205461077c575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556101c9565b5060006101c9565b6000818152600183016020526040812054801561086d5760006107a8600183610b3f565b85549091506000906107bc90600190610b3f565b90508181146108215760008660000182815481106107dc576107dc610b29565b90600052602060002001549050808760000184815481106107ff576107ff610b29565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061083257610832610b60565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506101c9565b60009150506101c9565b80356001600160e01b03198116811461088f57600080fd5b919050565b6000602082840312156108a657600080fd5b61022d82610877565b80356001600160a01b038116811461088f57600080fd5b6000806000606084860312156108db57600080fd5b6108e4846108af565b92506108f2602085016108af565b915061090060408501610877565b90509250925092565b6001600160a01b0391909116815260200190565b60008060006040848603121561093257600080fd5b61093b846108af565b9250602084013567ffffffffffffffff8082111561095857600080fd5b818601915086601f83011261096c57600080fd5b81358181111561097b57600080fd5b8760208260051b850101111561099057600080fd5b6020830194508093505050509250925092565b6000602082840312156109b557600080fd5b5035919050565b6000602082840312156109ce57600080fd5b61022d826108af565b600080604083850312156109ea57600080fd5b6109f3836108af565b9150610a01602084016108af565b90509250929050565b600060208083528351808285015260005b81811015610a3757858101830151858201604001528201610a1b565b506000604082860101526040601f19601f8301168501019250505092915050565b6020808252600f908201526e27b7363c9039bab832b920b236b4b760891b604082015260600190565b60208082528181018390526000908460408401835b86811015610ac2576001600160a01b03610aaf846108af565b1682529183019190830190600101610a96565b509695505050505050565b600060208284031215610adf57600080fd5b8151801515811461022d57600080fd5b600181811c90821680610b0357607f821691505b602082108103610b2357634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b818103818111156101c957634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fdfea2646970667358221220be0b58373e938571eb6b22e8bed646f7d2c193f57f017f71b0c5ee38cd0d09a664736f6c63430008130033",
246
246
  "linkReferences": {},
247
247
  "deployedLinkReferences": {}
248
248
  }