@artblocks/contracts 0.0.1

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 (196) hide show
  1. package/.env.example +10 -0
  2. package/LICENSE +165 -0
  3. package/README.md +286 -0
  4. package/artifacts/contracts/AdminACLV0.sol/AdminACLV0.json +164 -0
  5. package/artifacts/contracts/AdminACLV1.sol/AdminACLV1.json +248 -0
  6. package/artifacts/contracts/BasicRandomizer.sol/BasicRandomizer.json +24 -0
  7. package/artifacts/contracts/BasicRandomizerV2.sol/BasicRandomizerV2.json +102 -0
  8. package/artifacts/contracts/DependencyRegistryV0.sol/DependencyRegistryV0.json +1020 -0
  9. package/artifacts/contracts/GenArt721CoreV3.sol/GenArt721CoreV3.json +1928 -0
  10. package/artifacts/contracts/GenArt721CoreV3_Engine.sol/GenArt721CoreV3_Engine.json +1942 -0
  11. package/artifacts/contracts/engine/GenArt721CoreV2_ENGINE_FLEX.sol/GenArt721CoreV2_ENGINE_FLEX.json +1708 -0
  12. package/artifacts/contracts/engine/GenArt721CoreV2_PBAB.sol/GenArt721CoreV2_PBAB.json +1410 -0
  13. package/artifacts/contracts/engine/GenArt721CoreV2_PRTNR.sol/GenArt721CoreV2_PRTNR.json +1436 -0
  14. package/artifacts/contracts/engine/GenArt721MinterBurner_PBAB.sol/GenArt721MinterBurner_PBAB.json +437 -0
  15. package/artifacts/contracts/engine/GenArt721MinterDAExp_PBAB.sol/GenArt721MinterDAExp_PBAB.json +508 -0
  16. package/artifacts/contracts/engine/GenArt721Minter_PBAB.sol/GenArt721Minter_PBAB.json +381 -0
  17. package/artifacts/contracts/engine-registry/EngineRegistryV0.sol/EngineRegistryV0.json +109 -0
  18. package/artifacts/contracts/engine-registry/future/EngineRegistryV1.sol/EngineRegistryV1.json +109 -0
  19. package/artifacts/contracts/explorations/GenArt721CoreV3_Explorations.sol/GenArt721CoreV3_Explorations.json +1902 -0
  20. package/artifacts/contracts/interfaces/0.5.x/IBonusContract.sol/IBonusContract.json +47 -0
  21. package/artifacts/contracts/interfaces/0.5.x/IGenArt721CoreContractV1.sol/IGenArt721CoreContractV1.json +413 -0
  22. package/artifacts/contracts/interfaces/0.5.x/IGenArt721CoreV2_PBAB.sol/IGenArt721CoreV2_PBAB.json +392 -0
  23. package/artifacts/contracts/interfaces/0.5.x/IRandomizer.sol/IRandomizer.json +26 -0
  24. package/artifacts/contracts/interfaces/0.8.x/IAdminACLV0.sol/IAdminACLV0.json +122 -0
  25. package/artifacts/contracts/interfaces/0.8.x/IArtblocksRoyaltyOverride.sol/IArtblocksRoyaltyOverride.json +59 -0
  26. package/artifacts/contracts/interfaces/0.8.x/IBonusContract.sol/IBonusContract.json +43 -0
  27. package/artifacts/contracts/interfaces/0.8.x/IDelegationRegistry.sol/IDelegationRegistry.json +510 -0
  28. package/artifacts/contracts/interfaces/0.8.x/IDependencyRegistryCompatibleV0.sol/IDependencyRegistryCompatibleV0.json +53 -0
  29. package/artifacts/contracts/interfaces/0.8.x/IDependencyRegistryV0.sol/IDependencyRegistryV0.json +350 -0
  30. package/artifacts/contracts/interfaces/0.8.x/IEngineRegistryV0.sol/IEngineRegistryV0.json +85 -0
  31. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterDAExpSettlementV0.sol/IFilteredMinterDAExpSettlementV0.json +730 -0
  32. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterDAExpV0.sol/IFilteredMinterDAExpV0.json +311 -0
  33. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterDAExpV1.sol/IFilteredMinterDAExpV1.json +617 -0
  34. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterDALinV0.sol/IFilteredMinterDALinV0.json +292 -0
  35. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterDALinV1.sol/IFilteredMinterDALinV1.json +598 -0
  36. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterHolderV0.sol/IFilteredMinterHolderV0.json +355 -0
  37. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterHolderV1.sol/IFilteredMinterHolderV1.json +368 -0
  38. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterHolderV2.sol/IFilteredMinterHolderV2.json +674 -0
  39. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterMerkleV0.sol/IFilteredMinterMerkleV0.json +551 -0
  40. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterMerkleV1.sol/IFilteredMinterMerkleV1.json +564 -0
  41. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterMerkleV2.sol/IFilteredMinterMerkleV2.json +601 -0
  42. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterV0.sol/IFilteredMinterV0.json +216 -0
  43. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterV1.sol/IFilteredMinterV1.json +485 -0
  44. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterV2.sol/IFilteredMinterV2.json +522 -0
  45. package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreContractV1.sol/IGenArt721CoreContractV1.json +299 -0
  46. package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreContractV3.sol/IGenArt721CoreContractV3.json +609 -0
  47. package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Base.sol/IGenArt721CoreContractV3_Base.json +448 -0
  48. package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Engine.sol/IGenArt721CoreContractV3_Engine.json +649 -0
  49. package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreV2_PBAB.sol/IGenArt721CoreV2_PBAB.json +362 -0
  50. package/artifacts/contracts/interfaces/0.8.x/IManifold.sol/IManifold.json +35 -0
  51. package/artifacts/contracts/interfaces/0.8.x/IMinterFilterV0.sol/IMinterFilterV0.json +192 -0
  52. package/artifacts/contracts/interfaces/0.8.x/IRandomizer.sol/IRandomizer.json +24 -0
  53. package/artifacts/contracts/interfaces/0.8.x/IRandomizerV2.sol/IRandomizerV2.json +37 -0
  54. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/Address.json +10 -0
  55. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/Counters.json +10 -0
  56. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/CustomERC721Metadata.json +425 -0
  57. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/ERC165.json +38 -0
  58. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/ERC721.json +322 -0
  59. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/ERC721Enumerable.json +384 -0
  60. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/GenArt721CoreV1.json +1773 -0
  61. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/IERC165.json +32 -0
  62. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/IERC721.json +316 -0
  63. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/IERC721Enumerable.json +378 -0
  64. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/IERC721Receiver.json +47 -0
  65. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/SafeMath.json +10 -0
  66. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/Strings.json +10 -0
  67. package/artifacts/contracts/legacy/GenArt721LegacyMinter.sol/GenArt721LegacyMinter.json +338 -0
  68. package/artifacts/contracts/libs/0.5.x/CustomERC721Metadata.sol/CustomERC721Metadata.json +425 -0
  69. package/artifacts/contracts/libs/0.5.x/IERC20.sol/IERC20.json +206 -0
  70. package/artifacts/contracts/libs/0.5.x/SafeMath.sol/SafeMath.json +10 -0
  71. package/artifacts/contracts/libs/0.5.x/Strings.sol/Strings.json +10 -0
  72. package/artifacts/contracts/libs/0.8.x/BytecodeStorage.sol/BytecodeStorage.json +10 -0
  73. package/artifacts/contracts/libs/0.8.x/Bytes32Strings.sol/Bytes32Strings.json +10 -0
  74. package/artifacts/contracts/libs/0.8.x/ERC721_PackedHashSeed.sol/ERC721_PackedHashSeed.json +357 -0
  75. package/artifacts/contracts/libs/integration-refs/delegation-registry/DelegationRegistry.sol/DelegationRegistry.json +529 -0
  76. package/artifacts/contracts/libs/integration-refs/gnosis-safe/GnosisSafeMock.sol/GnosisSafeMock.json +1037 -0
  77. package/artifacts/contracts/libs/integration-refs/gnosis-safe/GnosisSafeProxyFactoryMock.sol/GnosisSafeProxyFactoryMock.json +172 -0
  78. package/artifacts/contracts/libs/integration-refs/gnosis-safe/MultiSendMock.sol/MultiSendMock.json +24 -0
  79. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV0.sol/MinterFilterV0.json +342 -0
  80. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV1.sol/MinterFilterV1.json +322 -0
  81. package/artifacts/contracts/minter-suite/Minters/MinterDAExp/MinterDAExpV2.sol/MinterDAExpV2.json +550 -0
  82. package/artifacts/contracts/minter-suite/Minters/MinterDAExp/MinterDAExpV3.sol/MinterDAExpV3.json +856 -0
  83. package/artifacts/contracts/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol/MinterDAExpSettlementV0.json +1053 -0
  84. package/artifacts/contracts/minter-suite/Minters/MinterDALin/MinterDALinV2.sol/MinterDALinV2.json +526 -0
  85. package/artifacts/contracts/minter-suite/Minters/MinterDALin/MinterDALinV3.sol/MinterDALinV3.json +832 -0
  86. package/artifacts/contracts/minter-suite/Minters/MinterHolder/MinterHolderV2.sol/MinterHolderV2.json +794 -0
  87. package/artifacts/contracts/minter-suite/Minters/MinterHolder/MinterHolderV3.sol/MinterHolderV3.json +1100 -0
  88. package/artifacts/contracts/minter-suite/Minters/MinterMerkle/MinterMerkleV3.sol/MinterMerkleV3.json +1002 -0
  89. package/artifacts/contracts/minter-suite/Minters/MinterMerkle/MinterMerkleV4.sol/MinterMerkleV4.json +1039 -0
  90. package/artifacts/contracts/minter-suite/Minters/MinterSetPrice/MinterSetPriceV2.sol/MinterSetPriceV2.json +365 -0
  91. package/artifacts/contracts/minter-suite/Minters/MinterSetPrice/MinterSetPriceV3.sol/MinterSetPriceV3.json +671 -0
  92. package/artifacts/contracts/minter-suite/Minters/MinterSetPrice/deprecated/MinterSetPriceV1.sol/MinterSetPriceV1.json +288 -0
  93. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V2.sol/MinterSetPriceERC20V2.json +436 -0
  94. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V3.sol/MinterSetPriceERC20V3.json +742 -0
  95. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20/deprecated/MinterSetPriceERC20V0.sol/MinterSetPriceERC20V0.json +461 -0
  96. package/artifacts/contracts/mock/BytecodeTextCR_DMock.sol/BytecodeTextCR_DMock.json +194 -0
  97. package/artifacts/contracts/mock/DeadReceiverMock.sol/DeadReceiverMock.json +15 -0
  98. package/artifacts/contracts/mock/ERC20Mock.sol/ERC20Mock.json +292 -0
  99. package/artifacts/contracts/mock/MockAdminACLV0.sol/MockAdminACLV0Events.json +165 -0
  100. package/artifacts/contracts/mock/RandomizerV2_NoAssignMock.sol/RandomizerV2_NoAssignMock.json +128 -0
  101. package/artifacts/contracts/mock/ReentrancyHolderMock.sol/ReentrancyHolderMock.json +118 -0
  102. package/artifacts/contracts/mock/ReentrancyMerkleMock.sol/ReentrancyMerkleMock.json +87 -0
  103. package/artifacts/contracts/mock/ReentrancyMock.sol/ReentrancyMock.json +82 -0
  104. package/artifacts/contracts/royalty-registry/GenArt721RoyaltyOverride.sol/GenArt721RoyaltyOverride.json +208 -0
  105. package/artifacts/contracts/royalty-registry/GenArt721RoyaltyOverride_PBAB.sol/GenArt721RoyaltyOverride_PBAB.json +301 -0
  106. package/contracts/AdminACLV0.sol +103 -0
  107. package/contracts/AdminACLV1.sol +193 -0
  108. package/contracts/BasicRandomizer.sol +23 -0
  109. package/contracts/BasicRandomizerV2.sol +36 -0
  110. package/contracts/DependencyRegistryV0.sol +893 -0
  111. package/contracts/GenArt721CoreV3.sol +2001 -0
  112. package/contracts/GenArt721CoreV3_Engine.sol +2061 -0
  113. package/contracts/engine/GenArt721CoreV2_ENGINE_FLEX.sol +887 -0
  114. package/contracts/engine/GenArt721CoreV2_PBAB.sol +695 -0
  115. package/contracts/engine/GenArt721CoreV2_PRTNR.sol +749 -0
  116. package/contracts/engine/GenArt721MinterBurner_PBAB.sol +467 -0
  117. package/contracts/engine/GenArt721MinterDAExp_PBAB.sol +614 -0
  118. package/contracts/engine/GenArt721Minter_PBAB.sol +420 -0
  119. package/contracts/engine-registry/EngineRegistryV0.sol +72 -0
  120. package/contracts/engine-registry/future/EngineRegistryV1.sol +86 -0
  121. package/contracts/explorations/GenArt721CoreV3_Explorations.sol +1989 -0
  122. package/contracts/interfaces/0.5.x/IBonusContract.sol +10 -0
  123. package/contracts/interfaces/0.5.x/IGenArt721CoreContractV1.sol +91 -0
  124. package/contracts/interfaces/0.5.x/IGenArt721CoreV2_PBAB.sol +92 -0
  125. package/contracts/interfaces/0.5.x/IRandomizer.sol +8 -0
  126. package/contracts/interfaces/0.8.x/IAdminACLV0.sol +51 -0
  127. package/contracts/interfaces/0.8.x/IArtblocksRoyaltyOverride.sol +34 -0
  128. package/contracts/interfaces/0.8.x/IBonusContract.sol +10 -0
  129. package/contracts/interfaces/0.8.x/IDelegationRegistry.sol +221 -0
  130. package/contracts/interfaces/0.8.x/IDependencyRegistryCompatibleV0.sol +31 -0
  131. package/contracts/interfaces/0.8.x/IDependencyRegistryV0.sol +95 -0
  132. package/contracts/interfaces/0.8.x/IEngineRegistryV0.sol +38 -0
  133. package/contracts/interfaces/0.8.x/IFilteredMinterDAExpSettlementV0.sol +70 -0
  134. package/contracts/interfaces/0.8.x/IFilteredMinterDAExpV0.sol +35 -0
  135. package/contracts/interfaces/0.8.x/IFilteredMinterDAExpV1.sol +16 -0
  136. package/contracts/interfaces/0.8.x/IFilteredMinterDALinV0.sol +32 -0
  137. package/contracts/interfaces/0.8.x/IFilteredMinterDALinV1.sol +16 -0
  138. package/contracts/interfaces/0.8.x/IFilteredMinterHolderV0.sol +68 -0
  139. package/contracts/interfaces/0.8.x/IFilteredMinterHolderV1.sol +19 -0
  140. package/contracts/interfaces/0.8.x/IFilteredMinterHolderV2.sol +19 -0
  141. package/contracts/interfaces/0.8.x/IFilteredMinterMerkleV0.sol +37 -0
  142. package/contracts/interfaces/0.8.x/IFilteredMinterMerkleV1.sol +19 -0
  143. package/contracts/interfaces/0.8.x/IFilteredMinterMerkleV2.sol +19 -0
  144. package/contracts/interfaces/0.8.x/IFilteredMinterV0.sol +74 -0
  145. package/contracts/interfaces/0.8.x/IFilteredMinterV1.sol +127 -0
  146. package/contracts/interfaces/0.8.x/IFilteredMinterV2.sol +30 -0
  147. package/contracts/interfaces/0.8.x/IGenArt721CoreContractV1.sol +73 -0
  148. package/contracts/interfaces/0.8.x/IGenArt721CoreContractV3.sol +79 -0
  149. package/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Base.sol +127 -0
  150. package/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Engine.sol +80 -0
  151. package/contracts/interfaces/0.8.x/IGenArt721CoreV2_PBAB.sol +91 -0
  152. package/contracts/interfaces/0.8.x/IManifold.sol +24 -0
  153. package/contracts/interfaces/0.8.x/IMinterFilterV0.sol +47 -0
  154. package/contracts/interfaces/0.8.x/IRandomizer.sol +8 -0
  155. package/contracts/interfaces/0.8.x/IRandomizerV2.sol +15 -0
  156. package/contracts/legacy/GenArt721CoreV1.sol +1593 -0
  157. package/contracts/legacy/GenArt721LegacyMinter.sol +275 -0
  158. package/contracts/libs/0.5.x/CustomERC721Metadata.sol +52 -0
  159. package/contracts/libs/0.5.x/IERC20.sol +96 -0
  160. package/contracts/libs/0.5.x/SafeMath.sol +98 -0
  161. package/contracts/libs/0.5.x/Strings.sol +92 -0
  162. package/contracts/libs/0.8.x/BytecodeStorage.sol +314 -0
  163. package/contracts/libs/0.8.x/Bytes32Strings.sol +66 -0
  164. package/contracts/libs/0.8.x/ERC721_PackedHashSeed.sol +514 -0
  165. package/contracts/libs/integration-refs/delegation-registry/DelegationRegistry.sol +663 -0
  166. package/contracts/libs/integration-refs/gnosis-safe/GnosisSafeMock.sol +6 -0
  167. package/contracts/libs/integration-refs/gnosis-safe/GnosisSafeProxyFactoryMock.sol +6 -0
  168. package/contracts/libs/integration-refs/gnosis-safe/MultiSendMock.sol +6 -0
  169. package/contracts/minter-suite/MinterFilter/MinterFilterV0.sol +291 -0
  170. package/contracts/minter-suite/MinterFilter/MinterFilterV1.sol +320 -0
  171. package/contracts/minter-suite/Minters/MinterDAExp/MinterDAExpV2.sol +571 -0
  172. package/contracts/minter-suite/Minters/MinterDAExp/MinterDAExpV3.sol +622 -0
  173. package/contracts/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol +1066 -0
  174. package/contracts/minter-suite/Minters/MinterDALin/MinterDALinV2.sol +527 -0
  175. package/contracts/minter-suite/Minters/MinterDALin/MinterDALinV3.sol +576 -0
  176. package/contracts/minter-suite/Minters/MinterHolder/MinterHolderV2.sol +749 -0
  177. package/contracts/minter-suite/Minters/MinterHolder/MinterHolderV3.sol +798 -0
  178. package/contracts/minter-suite/Minters/MinterMerkle/MinterMerkleV3.sol +682 -0
  179. package/contracts/minter-suite/Minters/MinterMerkle/MinterMerkleV4.sol +733 -0
  180. package/contracts/minter-suite/Minters/MinterSetPrice/MinterSetPriceV2.sol +350 -0
  181. package/contracts/minter-suite/Minters/MinterSetPrice/MinterSetPriceV3.sol +401 -0
  182. package/contracts/minter-suite/Minters/MinterSetPrice/deprecated/MinterSetPriceV1.sol +274 -0
  183. package/contracts/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V2.sol +491 -0
  184. package/contracts/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V3.sol +542 -0
  185. package/contracts/minter-suite/Minters/MinterSetPriceERC20/deprecated/MinterSetPriceERC20V0.sol +470 -0
  186. package/contracts/mock/BytecodeTextCR_DMock.sol +184 -0
  187. package/contracts/mock/DeadReceiverMock.sol +13 -0
  188. package/contracts/mock/ERC20Mock.sol +11 -0
  189. package/contracts/mock/MockAdminACLV0.sol +65 -0
  190. package/contracts/mock/RandomizerV2_NoAssignMock.sol +43 -0
  191. package/contracts/mock/ReentrancyHolderMock.sol +50 -0
  192. package/contracts/mock/ReentrancyMerkleMock.sol +64 -0
  193. package/contracts/mock/ReentrancyMock.sol +44 -0
  194. package/contracts/royalty-registry/GenArt721RoyaltyOverride.sol +168 -0
  195. package/contracts/royalty-registry/GenArt721RoyaltyOverride_PBAB.sol +221 -0
  196. package/package.json +83 -0
@@ -0,0 +1,208 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "GenArt721RoyaltyOverride",
4
+ "sourceName": "contracts/royalty-registry/GenArt721RoyaltyOverride.sol",
5
+ "abi": [
6
+ {
7
+ "anonymous": false,
8
+ "inputs": [
9
+ {
10
+ "indexed": true,
11
+ "internalType": "address",
12
+ "name": "tokenAddress",
13
+ "type": "address"
14
+ },
15
+ {
16
+ "indexed": true,
17
+ "internalType": "bool",
18
+ "name": "useOverride",
19
+ "type": "bool"
20
+ },
21
+ {
22
+ "indexed": false,
23
+ "internalType": "uint256",
24
+ "name": "bps",
25
+ "type": "uint256"
26
+ }
27
+ ],
28
+ "name": "ArtblocksBpsForContractUpdated",
29
+ "type": "event"
30
+ },
31
+ {
32
+ "anonymous": false,
33
+ "inputs": [
34
+ {
35
+ "indexed": true,
36
+ "internalType": "address",
37
+ "name": "contractAddress",
38
+ "type": "address"
39
+ },
40
+ {
41
+ "indexed": true,
42
+ "internalType": "address payable",
43
+ "name": "artblocksRoyaltyAddress",
44
+ "type": "address"
45
+ }
46
+ ],
47
+ "name": "ArtblocksRoyaltyAddressForContractUpdated",
48
+ "type": "event"
49
+ },
50
+ {
51
+ "inputs": [],
52
+ "name": "ARTBLOCKS_DEFAULT_BPS",
53
+ "outputs": [
54
+ {
55
+ "internalType": "uint256",
56
+ "name": "",
57
+ "type": "uint256"
58
+ }
59
+ ],
60
+ "stateMutability": "view",
61
+ "type": "function"
62
+ },
63
+ {
64
+ "inputs": [
65
+ {
66
+ "internalType": "address",
67
+ "name": "_tokenContract",
68
+ "type": "address"
69
+ }
70
+ ],
71
+ "name": "clearArtblocksBpsForContract",
72
+ "outputs": [],
73
+ "stateMutability": "nonpayable",
74
+ "type": "function"
75
+ },
76
+ {
77
+ "inputs": [
78
+ {
79
+ "internalType": "address",
80
+ "name": "_tokenAddress",
81
+ "type": "address"
82
+ },
83
+ {
84
+ "internalType": "uint256",
85
+ "name": "_tokenId",
86
+ "type": "uint256"
87
+ }
88
+ ],
89
+ "name": "getRoyalties",
90
+ "outputs": [
91
+ {
92
+ "internalType": "address payable[]",
93
+ "name": "recipients_",
94
+ "type": "address[]"
95
+ },
96
+ {
97
+ "internalType": "uint256[]",
98
+ "name": "bps",
99
+ "type": "uint256[]"
100
+ }
101
+ ],
102
+ "stateMutability": "view",
103
+ "type": "function"
104
+ },
105
+ {
106
+ "inputs": [
107
+ {
108
+ "internalType": "bytes4",
109
+ "name": "interfaceId",
110
+ "type": "bytes4"
111
+ }
112
+ ],
113
+ "name": "supportsInterface",
114
+ "outputs": [
115
+ {
116
+ "internalType": "bool",
117
+ "name": "",
118
+ "type": "bool"
119
+ }
120
+ ],
121
+ "stateMutability": "view",
122
+ "type": "function"
123
+ },
124
+ {
125
+ "inputs": [
126
+ {
127
+ "internalType": "address",
128
+ "name": "",
129
+ "type": "address"
130
+ }
131
+ ],
132
+ "name": "tokenAddressToArtblocksBpsOverride",
133
+ "outputs": [
134
+ {
135
+ "internalType": "bool",
136
+ "name": "useOverride",
137
+ "type": "bool"
138
+ },
139
+ {
140
+ "internalType": "uint256",
141
+ "name": "bps",
142
+ "type": "uint256"
143
+ }
144
+ ],
145
+ "stateMutability": "view",
146
+ "type": "function"
147
+ },
148
+ {
149
+ "inputs": [
150
+ {
151
+ "internalType": "address",
152
+ "name": "",
153
+ "type": "address"
154
+ }
155
+ ],
156
+ "name": "tokenAddressToArtblocksRoyaltyAddress",
157
+ "outputs": [
158
+ {
159
+ "internalType": "address payable",
160
+ "name": "",
161
+ "type": "address"
162
+ }
163
+ ],
164
+ "stateMutability": "view",
165
+ "type": "function"
166
+ },
167
+ {
168
+ "inputs": [
169
+ {
170
+ "internalType": "address",
171
+ "name": "_tokenContract",
172
+ "type": "address"
173
+ },
174
+ {
175
+ "internalType": "uint256",
176
+ "name": "_bps",
177
+ "type": "uint256"
178
+ }
179
+ ],
180
+ "name": "updateArtblocksBpsForContract",
181
+ "outputs": [],
182
+ "stateMutability": "nonpayable",
183
+ "type": "function"
184
+ },
185
+ {
186
+ "inputs": [
187
+ {
188
+ "internalType": "address",
189
+ "name": "_tokenContract",
190
+ "type": "address"
191
+ },
192
+ {
193
+ "internalType": "address payable",
194
+ "name": "_artblocksRoyaltyAddress",
195
+ "type": "address"
196
+ }
197
+ ],
198
+ "name": "updateArtblocksRoyaltyAddressForContract",
199
+ "outputs": [],
200
+ "stateMutability": "nonpayable",
201
+ "type": "function"
202
+ }
203
+ ],
204
+ "bytecode": "0x608060405234801561001057600080fd5b50610ae1806100206000396000f3fe608060405234801561001057600080fd5b50600436106100785760003560e01c806301736bdd1461007d57806301ffc9a7146100c3578063226d4d4a146100e657806348125993146100fc578063865e2bb5146101115780638e9bf99c146101555780639ca7dc7a14610168578063dd4938cd14610189575b600080fd5b6100a661008b366004610861565b6000602081905290815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100d66100d1366004610885565b61019c565b60405190151581526020016100ba565b6100ee60fa81565b6040519081526020016100ba565b61010f61010a3660046108af565b6101d3565b005b61013e61011f366004610861565b6001602081905260009182526040909120805491015460ff9091169082565b6040805192151583526020830191909152016100ba565b61010f610163366004610861565b61036e565b61017b6101763660046108af565b610489565b6040516100ba9291906108db565b61010f61019736600461095f565b61074f565b60006001600160e01b03198216634e53ee3d60e11b14806101cd57506301ffc9a760e01b6001600160e01b03198316145b92915050565b81336001600160a01b0316816001600160a01b031663f851a4406040518163ffffffff1660e01b815260040160206040518083038186803b15801561021757600080fd5b505afa15801561022b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061024f9190610998565b6001600160a01b03161461027e5760405162461bcd60e51b8152600401610275906109b5565b60405180910390fd5b60fa8211156102f55760405162461bcd60e51b815260206004820152603f60248201527f6f766572726964652062707320666f7220636f6e7472616374206d757374206260448201527f65206c657373207468616e206f7220657175616c20746f2064656661756c74006064820152608401610275565b604080518082018252600180825260208083018681526001600160a01b03881660008181528484528690209451855460ff1916901515178555905193830193909355925185815290927f3340f1611a111786fce0865d0c4a37d167e99d2fe04dcf45e5d589310033ab2f910160405180910390a3505050565b80336001600160a01b0316816001600160a01b031663f851a4406040518163ffffffff1660e01b815260040160206040518083038186803b1580156103b257600080fd5b505afa1580156103c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ea9190610998565b6001600160a01b0316146104105760405162461bcd60e51b8152600401610275906109b5565b604080518082018252600080825260208083018281526001600160a01b03871680845260018084528685209551865460ff191690151517865591519490910193909355925181815290927f3340f1611a111786fce0865d0c4a37d167e99d2fe04dcf45e5d589310033ab2f910160405180910390a35050565b60408051600380825260808201909252606091829190602082018380368337505060408051600380825260808201909252929450905060208201606080368337019050509050600080600080876001600160a01b031663a65ff74c886040518263ffffffff1660e01b815260040161050391815260200190565b60806040518083038186803b15801561051b57600080fd5b505afa15801561052f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105539190610a01565b9350935093509350838660008151811061056f5761056f610a49565b6001600160a01b039092166020928302919091019091015280610593836064610a75565b61059d9190610a8c565b856000815181106105b0576105b0610a49565b60200260200101818152505082866001815181106105d0576105d0610a49565b6001600160a01b03909216602092830291909101909101526105f28183610a8c565b8560018151811061060557610605610a49565b6020908102919091018101919091526001600160a01b038981166000908152918290526040909120541661069b5760405162461bcd60e51b815260206004820152603760248201527f41727420426c6f636b7320726f79616c74792061646472657373206d757374206044820152761899481919599a5b995908199bdc8818dbdb9d1c9858dd604a1b6064820152608401610275565b6001600160a01b038089166000908152602081905260409020548751911690879060029081106106cd576106cd610a49565b6001600160a01b0392831660209182029290920181019190915290891660009081526001909152604090205460ff166107075760fa610725565b6001600160a01b038816600090815260016020819052604090912001545b8560028151811061073857610738610a49565b602002602001018181525050505050509250929050565b81336001600160a01b0316816001600160a01b031663f851a4406040518163ffffffff1660e01b815260040160206040518083038186803b15801561079357600080fd5b505afa1580156107a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107cb9190610998565b6001600160a01b0316146107f15760405162461bcd60e51b8152600401610275906109b5565b6001600160a01b0383811660008181526020819052604080822080546001600160a01b0319169487169485179055517f7cb321285c1ec4f1d1b443dc12381a37bf49e9edabe5ab5c35d1ebfb16dca3f69190a3505050565b6001600160a01b038116811461085e57600080fd5b50565b60006020828403121561087357600080fd5b813561087e81610849565b9392505050565b60006020828403121561089757600080fd5b81356001600160e01b03198116811461087e57600080fd5b600080604083850312156108c257600080fd5b82356108cd81610849565b946020939093013593505050565b604080825283519082018190526000906020906060840190828701845b8281101561091d5781516001600160a01b0316845292840192908401906001016108f8565b5050508381038285015284518082528583019183019060005b8181101561095257835183529284019291840191600101610936565b5090979650505050505050565b6000806040838503121561097257600080fd5b823561097d81610849565b9150602083013561098d81610849565b809150509250929050565b6000602082840312156109aa57600080fd5b815161087e81610849565b6020808252602c908201527f4f6e6c7920636f72652061646d696e20666f722073706563696669656420746f60408201526b1ad95b8818dbdb9d1c9858dd60a21b606082015260800190565b60008060008060808587031215610a1757600080fd5b8451610a2281610849565b6020860151909450610a3381610849565b6040860151606090960151949790965092505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082821015610a8757610a87610a5f565b500390565b6000816000190483118215151615610aa657610aa6610a5f565b50029056fea2646970667358221220f216e807512e3bea2f139ee2b277de453beb741698efdc757a20072185556c8364736f6c63430008090033",
205
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100785760003560e01c806301736bdd1461007d57806301ffc9a7146100c3578063226d4d4a146100e657806348125993146100fc578063865e2bb5146101115780638e9bf99c146101555780639ca7dc7a14610168578063dd4938cd14610189575b600080fd5b6100a661008b366004610861565b6000602081905290815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100d66100d1366004610885565b61019c565b60405190151581526020016100ba565b6100ee60fa81565b6040519081526020016100ba565b61010f61010a3660046108af565b6101d3565b005b61013e61011f366004610861565b6001602081905260009182526040909120805491015460ff9091169082565b6040805192151583526020830191909152016100ba565b61010f610163366004610861565b61036e565b61017b6101763660046108af565b610489565b6040516100ba9291906108db565b61010f61019736600461095f565b61074f565b60006001600160e01b03198216634e53ee3d60e11b14806101cd57506301ffc9a760e01b6001600160e01b03198316145b92915050565b81336001600160a01b0316816001600160a01b031663f851a4406040518163ffffffff1660e01b815260040160206040518083038186803b15801561021757600080fd5b505afa15801561022b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061024f9190610998565b6001600160a01b03161461027e5760405162461bcd60e51b8152600401610275906109b5565b60405180910390fd5b60fa8211156102f55760405162461bcd60e51b815260206004820152603f60248201527f6f766572726964652062707320666f7220636f6e7472616374206d757374206260448201527f65206c657373207468616e206f7220657175616c20746f2064656661756c74006064820152608401610275565b604080518082018252600180825260208083018681526001600160a01b03881660008181528484528690209451855460ff1916901515178555905193830193909355925185815290927f3340f1611a111786fce0865d0c4a37d167e99d2fe04dcf45e5d589310033ab2f910160405180910390a3505050565b80336001600160a01b0316816001600160a01b031663f851a4406040518163ffffffff1660e01b815260040160206040518083038186803b1580156103b257600080fd5b505afa1580156103c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ea9190610998565b6001600160a01b0316146104105760405162461bcd60e51b8152600401610275906109b5565b604080518082018252600080825260208083018281526001600160a01b03871680845260018084528685209551865460ff191690151517865591519490910193909355925181815290927f3340f1611a111786fce0865d0c4a37d167e99d2fe04dcf45e5d589310033ab2f910160405180910390a35050565b60408051600380825260808201909252606091829190602082018380368337505060408051600380825260808201909252929450905060208201606080368337019050509050600080600080876001600160a01b031663a65ff74c886040518263ffffffff1660e01b815260040161050391815260200190565b60806040518083038186803b15801561051b57600080fd5b505afa15801561052f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105539190610a01565b9350935093509350838660008151811061056f5761056f610a49565b6001600160a01b039092166020928302919091019091015280610593836064610a75565b61059d9190610a8c565b856000815181106105b0576105b0610a49565b60200260200101818152505082866001815181106105d0576105d0610a49565b6001600160a01b03909216602092830291909101909101526105f28183610a8c565b8560018151811061060557610605610a49565b6020908102919091018101919091526001600160a01b038981166000908152918290526040909120541661069b5760405162461bcd60e51b815260206004820152603760248201527f41727420426c6f636b7320726f79616c74792061646472657373206d757374206044820152761899481919599a5b995908199bdc8818dbdb9d1c9858dd604a1b6064820152608401610275565b6001600160a01b038089166000908152602081905260409020548751911690879060029081106106cd576106cd610a49565b6001600160a01b0392831660209182029290920181019190915290891660009081526001909152604090205460ff166107075760fa610725565b6001600160a01b038816600090815260016020819052604090912001545b8560028151811061073857610738610a49565b602002602001018181525050505050509250929050565b81336001600160a01b0316816001600160a01b031663f851a4406040518163ffffffff1660e01b815260040160206040518083038186803b15801561079357600080fd5b505afa1580156107a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107cb9190610998565b6001600160a01b0316146107f15760405162461bcd60e51b8152600401610275906109b5565b6001600160a01b0383811660008181526020819052604080822080546001600160a01b0319169487169485179055517f7cb321285c1ec4f1d1b443dc12381a37bf49e9edabe5ab5c35d1ebfb16dca3f69190a3505050565b6001600160a01b038116811461085e57600080fd5b50565b60006020828403121561087357600080fd5b813561087e81610849565b9392505050565b60006020828403121561089757600080fd5b81356001600160e01b03198116811461087e57600080fd5b600080604083850312156108c257600080fd5b82356108cd81610849565b946020939093013593505050565b604080825283519082018190526000906020906060840190828701845b8281101561091d5781516001600160a01b0316845292840192908401906001016108f8565b5050508381038285015284518082528583019183019060005b8181101561095257835183529284019291840191600101610936565b5090979650505050505050565b6000806040838503121561097257600080fd5b823561097d81610849565b9150602083013561098d81610849565b809150509250929050565b6000602082840312156109aa57600080fd5b815161087e81610849565b6020808252602c908201527f4f6e6c7920636f72652061646d696e20666f722073706563696669656420746f60408201526b1ad95b8818dbdb9d1c9858dd60a21b606082015260800190565b60008060008060808587031215610a1757600080fd5b8451610a2281610849565b6020860151909450610a3381610849565b6040860151606090960151949790965092505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082821015610a8757610a87610a5f565b500390565b6000816000190483118215151615610aa657610aa6610a5f565b50029056fea2646970667358221220f216e807512e3bea2f139ee2b277de453beb741698efdc757a20072185556c8364736f6c63430008090033",
206
+ "linkReferences": {},
207
+ "deployedLinkReferences": {}
208
+ }
@@ -0,0 +1,301 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "GenArt721RoyaltyOverride_PBAB",
4
+ "sourceName": "contracts/royalty-registry/GenArt721RoyaltyOverride_PBAB.sol",
5
+ "abi": [
6
+ {
7
+ "anonymous": false,
8
+ "inputs": [
9
+ {
10
+ "indexed": true,
11
+ "internalType": "address",
12
+ "name": "tokenAddress",
13
+ "type": "address"
14
+ },
15
+ {
16
+ "indexed": true,
17
+ "internalType": "bool",
18
+ "name": "useOverride",
19
+ "type": "bool"
20
+ },
21
+ {
22
+ "indexed": false,
23
+ "internalType": "uint256",
24
+ "name": "bps",
25
+ "type": "uint256"
26
+ }
27
+ ],
28
+ "name": "PlatformBpsForContractUpdated",
29
+ "type": "event"
30
+ },
31
+ {
32
+ "anonymous": false,
33
+ "inputs": [
34
+ {
35
+ "indexed": true,
36
+ "internalType": "address",
37
+ "name": "contractAddress",
38
+ "type": "address"
39
+ },
40
+ {
41
+ "indexed": true,
42
+ "internalType": "address payable",
43
+ "name": "platformRoyaltyAddress",
44
+ "type": "address"
45
+ }
46
+ ],
47
+ "name": "PlatformRoyaltyAddressForContractUpdated",
48
+ "type": "event"
49
+ },
50
+ {
51
+ "anonymous": false,
52
+ "inputs": [
53
+ {
54
+ "indexed": true,
55
+ "internalType": "address",
56
+ "name": "tokenAddress",
57
+ "type": "address"
58
+ },
59
+ {
60
+ "indexed": true,
61
+ "internalType": "bool",
62
+ "name": "useOverride",
63
+ "type": "bool"
64
+ },
65
+ {
66
+ "indexed": false,
67
+ "internalType": "uint256",
68
+ "name": "bps",
69
+ "type": "uint256"
70
+ }
71
+ ],
72
+ "name": "RenderProviderBpsForContractUpdated",
73
+ "type": "event"
74
+ },
75
+ {
76
+ "inputs": [],
77
+ "name": "PLATFORM_DEFAULT_BPS",
78
+ "outputs": [
79
+ {
80
+ "internalType": "uint256",
81
+ "name": "",
82
+ "type": "uint256"
83
+ }
84
+ ],
85
+ "stateMutability": "view",
86
+ "type": "function"
87
+ },
88
+ {
89
+ "inputs": [],
90
+ "name": "RENDER_PROVIDER_DEFAULT_BPS",
91
+ "outputs": [
92
+ {
93
+ "internalType": "uint256",
94
+ "name": "",
95
+ "type": "uint256"
96
+ }
97
+ ],
98
+ "stateMutability": "view",
99
+ "type": "function"
100
+ },
101
+ {
102
+ "inputs": [
103
+ {
104
+ "internalType": "address",
105
+ "name": "_tokenContract",
106
+ "type": "address"
107
+ }
108
+ ],
109
+ "name": "clearPlatformBpsForContract",
110
+ "outputs": [],
111
+ "stateMutability": "nonpayable",
112
+ "type": "function"
113
+ },
114
+ {
115
+ "inputs": [
116
+ {
117
+ "internalType": "address",
118
+ "name": "_tokenContract",
119
+ "type": "address"
120
+ }
121
+ ],
122
+ "name": "clearRenderProviderBpsForContract",
123
+ "outputs": [],
124
+ "stateMutability": "nonpayable",
125
+ "type": "function"
126
+ },
127
+ {
128
+ "inputs": [
129
+ {
130
+ "internalType": "address",
131
+ "name": "_tokenAddress",
132
+ "type": "address"
133
+ },
134
+ {
135
+ "internalType": "uint256",
136
+ "name": "_tokenId",
137
+ "type": "uint256"
138
+ }
139
+ ],
140
+ "name": "getRoyalties",
141
+ "outputs": [
142
+ {
143
+ "internalType": "address payable[]",
144
+ "name": "recipients_",
145
+ "type": "address[]"
146
+ },
147
+ {
148
+ "internalType": "uint256[]",
149
+ "name": "bps",
150
+ "type": "uint256[]"
151
+ }
152
+ ],
153
+ "stateMutability": "view",
154
+ "type": "function"
155
+ },
156
+ {
157
+ "inputs": [
158
+ {
159
+ "internalType": "bytes4",
160
+ "name": "interfaceId",
161
+ "type": "bytes4"
162
+ }
163
+ ],
164
+ "name": "supportsInterface",
165
+ "outputs": [
166
+ {
167
+ "internalType": "bool",
168
+ "name": "",
169
+ "type": "bool"
170
+ }
171
+ ],
172
+ "stateMutability": "view",
173
+ "type": "function"
174
+ },
175
+ {
176
+ "inputs": [
177
+ {
178
+ "internalType": "address",
179
+ "name": "",
180
+ "type": "address"
181
+ }
182
+ ],
183
+ "name": "tokenAddressToPlatformBpsOverride",
184
+ "outputs": [
185
+ {
186
+ "internalType": "bool",
187
+ "name": "useOverride",
188
+ "type": "bool"
189
+ },
190
+ {
191
+ "internalType": "uint256",
192
+ "name": "bps",
193
+ "type": "uint256"
194
+ }
195
+ ],
196
+ "stateMutability": "view",
197
+ "type": "function"
198
+ },
199
+ {
200
+ "inputs": [
201
+ {
202
+ "internalType": "address",
203
+ "name": "",
204
+ "type": "address"
205
+ }
206
+ ],
207
+ "name": "tokenAddressToPlatformRoyaltyAddress",
208
+ "outputs": [
209
+ {
210
+ "internalType": "address payable",
211
+ "name": "",
212
+ "type": "address"
213
+ }
214
+ ],
215
+ "stateMutability": "view",
216
+ "type": "function"
217
+ },
218
+ {
219
+ "inputs": [
220
+ {
221
+ "internalType": "address",
222
+ "name": "",
223
+ "type": "address"
224
+ }
225
+ ],
226
+ "name": "tokenAddressToRenderProviderBpsOverride",
227
+ "outputs": [
228
+ {
229
+ "internalType": "bool",
230
+ "name": "useOverride",
231
+ "type": "bool"
232
+ },
233
+ {
234
+ "internalType": "uint256",
235
+ "name": "bps",
236
+ "type": "uint256"
237
+ }
238
+ ],
239
+ "stateMutability": "view",
240
+ "type": "function"
241
+ },
242
+ {
243
+ "inputs": [
244
+ {
245
+ "internalType": "address",
246
+ "name": "_tokenContract",
247
+ "type": "address"
248
+ },
249
+ {
250
+ "internalType": "uint256",
251
+ "name": "_bps",
252
+ "type": "uint256"
253
+ }
254
+ ],
255
+ "name": "updatePlatformBpsForContract",
256
+ "outputs": [],
257
+ "stateMutability": "nonpayable",
258
+ "type": "function"
259
+ },
260
+ {
261
+ "inputs": [
262
+ {
263
+ "internalType": "address",
264
+ "name": "_tokenContract",
265
+ "type": "address"
266
+ },
267
+ {
268
+ "internalType": "address payable",
269
+ "name": "_platformRoyaltyAddress",
270
+ "type": "address"
271
+ }
272
+ ],
273
+ "name": "updatePlatformRoyaltyAddressForContract",
274
+ "outputs": [],
275
+ "stateMutability": "nonpayable",
276
+ "type": "function"
277
+ },
278
+ {
279
+ "inputs": [
280
+ {
281
+ "internalType": "address",
282
+ "name": "_tokenContract",
283
+ "type": "address"
284
+ },
285
+ {
286
+ "internalType": "uint256",
287
+ "name": "_bps",
288
+ "type": "uint256"
289
+ }
290
+ ],
291
+ "name": "updateRenderProviderBpsForContract",
292
+ "outputs": [],
293
+ "stateMutability": "nonpayable",
294
+ "type": "function"
295
+ }
296
+ ],
297
+ "bytecode": "0x608060405234801561001057600080fd5b50610e75806100206000396000f3fe608060405234801561001057600080fd5b50600436106100a45760003560e01c806301ffc9a7146100a95780631ba1e650146100d15780631d1e569c146100e75780633dfba7ab146100fc5780634d196fab1461010f57806397df3644146101535780639ca7dc7a146101805780639e0d31c2146101a1578063cf9a973c146101b4578063d020306d146100d1578063e6e97118146101c7578063e99f58da146101da575b600080fd5b6100bc6100b7366004610bb8565b61021b565b60405190151581526020015b60405180910390f35b6100d960fa81565b6040519081526020016100c8565b6100fa6100f5366004610c01565b610252565b005b6100fa61010a366004610c1e565b610377565b61013c61011d366004610c01565b6002602052600090815260409020805460019091015460ff9091169082565b6040805192151583526020830191909152016100c8565b61013c610161366004610c01565b6001602081905260009182526040909120805491015460ff9091169082565b61019361018e366004610c1e565b6104b5565b6040516100c8929190610c4a565b6100fa6101af366004610cce565b610874565b6100fa6101c2366004610c01565b61096e565b6100fa6101d5366004610c1e565b610a82565b6102036101e8366004610c01565b6000602081905290815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016100c8565b60006001600160e01b03198216634e53ee3d60e11b148061024c57506301ffc9a760e01b6001600160e01b03198316145b92915050565b80336001600160a01b0316816001600160a01b031663f851a4406040518163ffffffff1660e01b815260040160206040518083038186803b15801561029657600080fd5b505afa1580156102aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ce9190610d07565b6001600160a01b0316146102fd5760405162461bcd60e51b81526004016102f490610d24565b60405180910390fd5b604080518082018252600080825260208083018281526001600160a01b038716808452600283528584209451855460ff19169015151785559051600190940193909355925181815290927f236d38a8cdac19567ba384c1ea9833c930d1472ea05aa08c93d95e2224f7559391015b60405180910390a35050565b81336001600160a01b0316816001600160a01b031663f851a4406040518163ffffffff1660e01b815260040160206040518083038186803b1580156103bb57600080fd5b505afa1580156103cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f39190610d07565b6001600160a01b0316146104195760405162461bcd60e51b81526004016102f490610d24565b61271082111561043b5760405162461bcd60e51b81526004016102f490610d70565b604080518082018252600180825260208083018681526001600160a01b03881660008181528484528690209451855460ff1916901515178555905193830193909355925185815290927f45a926fd99cb5c25b970de6015f5a179dbe5402af5f392232db13f2d40086b8491015b60405180910390a3505050565b60408051600480825260a0820190925260609182919060208201608080368337505060408051600480825260a08201909252929450905060208201608080368337019050509050600080600080876001600160a01b031663a65ff74c886040518263ffffffff1660e01b815260040161053091815260200190565b60806040518083038186803b15801561054857600080fd5b505afa15801561055c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105809190610d95565b9350935093509350838660008151811061059c5761059c610ddd565b6001600160a01b0390921660209283029190910190910152806105c0836064610e09565b6105ca9190610e20565b856000815181106105dd576105dd610ddd565b60200260200101818152505082866001815181106105fd576105fd610ddd565b6001600160a01b039092166020928302919091019091015261061f8183610e20565b8560018151811061063257610632610ddd565b6020908102919091018101919091526001600160a01b03898116600090815291829052604090912054166106c65760405162461bcd60e51b815260206004820152603560248201527f506c6174666f726d20726f79616c74792061646472657373206d757374206265604482015274081919599a5b995908199bdc8818dbdb9d1c9858dd605a1b60648201526084016102f4565b6001600160a01b038089166000908152602081905260409020548751911690879060029081106106f8576106f8610ddd565b6001600160a01b0392831660209182029290920181019190915290891660009081526002909152604090205460ff166107325760fa61074f565b6001600160a01b0388166000908152600260205260409020600101545b8560028151811061076257610762610ddd565b602002602001018181525050876001600160a01b031663cfbf4d976040518163ffffffff1660e01b815260040160206040518083038186803b1580156107a757600080fd5b505afa1580156107bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107df9190610d07565b866003815181106107f2576107f2610ddd565b6001600160a01b0392831660209182029290920181019190915290891660009081526001909152604090205460ff1661082c5760fa61084a565b6001600160a01b038816600090815260016020819052604090912001545b8560038151811061085d5761085d610ddd565b602002602001018181525050505050509250929050565b81336001600160a01b0316816001600160a01b031663f851a4406040518163ffffffff1660e01b815260040160206040518083038186803b1580156108b857600080fd5b505afa1580156108cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f09190610d07565b6001600160a01b0316146109165760405162461bcd60e51b81526004016102f490610d24565b6001600160a01b0383811660008181526020819052604080822080546001600160a01b0319169487169485179055517f585dff5ad62b9dc71ff704d3475179461e1846ee542f2e6f940fb3b1f41b24e99190a3505050565b80336001600160a01b0316816001600160a01b031663f851a4406040518163ffffffff1660e01b815260040160206040518083038186803b1580156109b257600080fd5b505afa1580156109c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ea9190610d07565b6001600160a01b031614610a105760405162461bcd60e51b81526004016102f490610d24565b604080518082018252600080825260208083018281526001600160a01b03871680845260018084528685209551865460ff191690151517865591519490910193909355925181815290927f45a926fd99cb5c25b970de6015f5a179dbe5402af5f392232db13f2d40086b84910161036b565b81336001600160a01b0316816001600160a01b031663f851a4406040518163ffffffff1660e01b815260040160206040518083038186803b158015610ac657600080fd5b505afa158015610ada573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610afe9190610d07565b6001600160a01b031614610b245760405162461bcd60e51b81526004016102f490610d24565b612710821115610b465760405162461bcd60e51b81526004016102f490610d70565b604080518082018252600180825260208083018681526001600160a01b0388166000818152600284528690209451855460ff1916901515178555905193830193909355925185815290927f236d38a8cdac19567ba384c1ea9833c930d1472ea05aa08c93d95e2224f7559391016104a8565b600060208284031215610bca57600080fd5b81356001600160e01b031981168114610be257600080fd5b9392505050565b6001600160a01b0381168114610bfe57600080fd5b50565b600060208284031215610c1357600080fd5b8135610be281610be9565b60008060408385031215610c3157600080fd5b8235610c3c81610be9565b946020939093013593505050565b604080825283519082018190526000906020906060840190828701845b82811015610c8c5781516001600160a01b031684529284019290840190600101610c67565b5050508381038285015284518082528583019183019060005b81811015610cc157835183529284019291840191600101610ca5565b5090979650505050505050565b60008060408385031215610ce157600080fd5b8235610cec81610be9565b91506020830135610cfc81610be9565b809150509250929050565b600060208284031215610d1957600080fd5b8151610be281610be9565b6020808252602c908201527f4f6e6c7920636f72652061646d696e20666f722073706563696669656420746f60408201526b1ad95b8818dbdb9d1c9858dd60a21b606082015260800190565b6020808252600b908201526a696e76616c69642062707360a81b604082015260600190565b60008060008060808587031215610dab57600080fd5b8451610db681610be9565b6020860151909450610dc781610be9565b6040860151606090960151949790965092505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082821015610e1b57610e1b610df3565b500390565b6000816000190483118215151615610e3a57610e3a610df3565b50029056fea26469706673582212203a69bec031dceac35040020792b5016e4ff3e2e5a452c6bd4f842f240c9562f864736f6c63430008090033",
298
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100a45760003560e01c806301ffc9a7146100a95780631ba1e650146100d15780631d1e569c146100e75780633dfba7ab146100fc5780634d196fab1461010f57806397df3644146101535780639ca7dc7a146101805780639e0d31c2146101a1578063cf9a973c146101b4578063d020306d146100d1578063e6e97118146101c7578063e99f58da146101da575b600080fd5b6100bc6100b7366004610bb8565b61021b565b60405190151581526020015b60405180910390f35b6100d960fa81565b6040519081526020016100c8565b6100fa6100f5366004610c01565b610252565b005b6100fa61010a366004610c1e565b610377565b61013c61011d366004610c01565b6002602052600090815260409020805460019091015460ff9091169082565b6040805192151583526020830191909152016100c8565b61013c610161366004610c01565b6001602081905260009182526040909120805491015460ff9091169082565b61019361018e366004610c1e565b6104b5565b6040516100c8929190610c4a565b6100fa6101af366004610cce565b610874565b6100fa6101c2366004610c01565b61096e565b6100fa6101d5366004610c1e565b610a82565b6102036101e8366004610c01565b6000602081905290815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016100c8565b60006001600160e01b03198216634e53ee3d60e11b148061024c57506301ffc9a760e01b6001600160e01b03198316145b92915050565b80336001600160a01b0316816001600160a01b031663f851a4406040518163ffffffff1660e01b815260040160206040518083038186803b15801561029657600080fd5b505afa1580156102aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ce9190610d07565b6001600160a01b0316146102fd5760405162461bcd60e51b81526004016102f490610d24565b60405180910390fd5b604080518082018252600080825260208083018281526001600160a01b038716808452600283528584209451855460ff19169015151785559051600190940193909355925181815290927f236d38a8cdac19567ba384c1ea9833c930d1472ea05aa08c93d95e2224f7559391015b60405180910390a35050565b81336001600160a01b0316816001600160a01b031663f851a4406040518163ffffffff1660e01b815260040160206040518083038186803b1580156103bb57600080fd5b505afa1580156103cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f39190610d07565b6001600160a01b0316146104195760405162461bcd60e51b81526004016102f490610d24565b61271082111561043b5760405162461bcd60e51b81526004016102f490610d70565b604080518082018252600180825260208083018681526001600160a01b03881660008181528484528690209451855460ff1916901515178555905193830193909355925185815290927f45a926fd99cb5c25b970de6015f5a179dbe5402af5f392232db13f2d40086b8491015b60405180910390a3505050565b60408051600480825260a0820190925260609182919060208201608080368337505060408051600480825260a08201909252929450905060208201608080368337019050509050600080600080876001600160a01b031663a65ff74c886040518263ffffffff1660e01b815260040161053091815260200190565b60806040518083038186803b15801561054857600080fd5b505afa15801561055c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105809190610d95565b9350935093509350838660008151811061059c5761059c610ddd565b6001600160a01b0390921660209283029190910190910152806105c0836064610e09565b6105ca9190610e20565b856000815181106105dd576105dd610ddd565b60200260200101818152505082866001815181106105fd576105fd610ddd565b6001600160a01b039092166020928302919091019091015261061f8183610e20565b8560018151811061063257610632610ddd565b6020908102919091018101919091526001600160a01b03898116600090815291829052604090912054166106c65760405162461bcd60e51b815260206004820152603560248201527f506c6174666f726d20726f79616c74792061646472657373206d757374206265604482015274081919599a5b995908199bdc8818dbdb9d1c9858dd605a1b60648201526084016102f4565b6001600160a01b038089166000908152602081905260409020548751911690879060029081106106f8576106f8610ddd565b6001600160a01b0392831660209182029290920181019190915290891660009081526002909152604090205460ff166107325760fa61074f565b6001600160a01b0388166000908152600260205260409020600101545b8560028151811061076257610762610ddd565b602002602001018181525050876001600160a01b031663cfbf4d976040518163ffffffff1660e01b815260040160206040518083038186803b1580156107a757600080fd5b505afa1580156107bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107df9190610d07565b866003815181106107f2576107f2610ddd565b6001600160a01b0392831660209182029290920181019190915290891660009081526001909152604090205460ff1661082c5760fa61084a565b6001600160a01b038816600090815260016020819052604090912001545b8560038151811061085d5761085d610ddd565b602002602001018181525050505050509250929050565b81336001600160a01b0316816001600160a01b031663f851a4406040518163ffffffff1660e01b815260040160206040518083038186803b1580156108b857600080fd5b505afa1580156108cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f09190610d07565b6001600160a01b0316146109165760405162461bcd60e51b81526004016102f490610d24565b6001600160a01b0383811660008181526020819052604080822080546001600160a01b0319169487169485179055517f585dff5ad62b9dc71ff704d3475179461e1846ee542f2e6f940fb3b1f41b24e99190a3505050565b80336001600160a01b0316816001600160a01b031663f851a4406040518163ffffffff1660e01b815260040160206040518083038186803b1580156109b257600080fd5b505afa1580156109c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ea9190610d07565b6001600160a01b031614610a105760405162461bcd60e51b81526004016102f490610d24565b604080518082018252600080825260208083018281526001600160a01b03871680845260018084528685209551865460ff191690151517865591519490910193909355925181815290927f45a926fd99cb5c25b970de6015f5a179dbe5402af5f392232db13f2d40086b84910161036b565b81336001600160a01b0316816001600160a01b031663f851a4406040518163ffffffff1660e01b815260040160206040518083038186803b158015610ac657600080fd5b505afa158015610ada573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610afe9190610d07565b6001600160a01b031614610b245760405162461bcd60e51b81526004016102f490610d24565b612710821115610b465760405162461bcd60e51b81526004016102f490610d70565b604080518082018252600180825260208083018681526001600160a01b0388166000818152600284528690209451855460ff1916901515178555905193830193909355925185815290927f236d38a8cdac19567ba384c1ea9833c930d1472ea05aa08c93d95e2224f7559391016104a8565b600060208284031215610bca57600080fd5b81356001600160e01b031981168114610be257600080fd5b9392505050565b6001600160a01b0381168114610bfe57600080fd5b50565b600060208284031215610c1357600080fd5b8135610be281610be9565b60008060408385031215610c3157600080fd5b8235610c3c81610be9565b946020939093013593505050565b604080825283519082018190526000906020906060840190828701845b82811015610c8c5781516001600160a01b031684529284019290840190600101610c67565b5050508381038285015284518082528583019183019060005b81811015610cc157835183529284019291840191600101610ca5565b5090979650505050505050565b60008060408385031215610ce157600080fd5b8235610cec81610be9565b91506020830135610cfc81610be9565b809150509250929050565b600060208284031215610d1957600080fd5b8151610be281610be9565b6020808252602c908201527f4f6e6c7920636f72652061646d696e20666f722073706563696669656420746f60408201526b1ad95b8818dbdb9d1c9858dd60a21b606082015260800190565b6020808252600b908201526a696e76616c69642062707360a81b604082015260600190565b60008060008060808587031215610dab57600080fd5b8451610db681610be9565b6020860151909450610dc781610be9565b6040860151606090960151949790965092505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082821015610e1b57610e1b610df3565b500390565b6000816000190483118215151615610e3a57610e3a610df3565b50029056fea26469706673582212203a69bec031dceac35040020792b5016e4ff3e2e5a452c6bd4f842f240c9562f864736f6c63430008090033",
299
+ "linkReferences": {},
300
+ "deployedLinkReferences": {}
301
+ }
@@ -0,0 +1,103 @@
1
+ // SPDX-License-Identifier: MIT
2
+
3
+ pragma solidity 0.8.17;
4
+
5
+ import "./interfaces/0.8.x/IAdminACLV0.sol";
6
+ import "@openzeppelin-4.7/contracts/access/Ownable.sol";
7
+ import "@openzeppelin-4.7/contracts/utils/introspection/ERC165.sol";
8
+
9
+ /**
10
+ * @title Admin ACL contract, V0.
11
+ * @author Art Blocks Inc.
12
+ * @notice Privileged Roles and Ownership:
13
+ * This contract has a single superAdmin that passes all ACL checks. All checks
14
+ * for any other address will return false.
15
+ * The superAdmin can be changed by the current superAdmin.
16
+ * Care must be taken to ensure that the admin ACL contract is secure behind a
17
+ * multi-sig or other secure access control mechanism.
18
+ */
19
+ contract AdminACLV0 is IAdminACLV0, ERC165 {
20
+ string public AdminACLType = "AdminACLV0";
21
+
22
+ /// superAdmin is the only address that passes any and all ACL checks
23
+ address public superAdmin;
24
+
25
+ constructor() {
26
+ superAdmin = msg.sender;
27
+ }
28
+
29
+ /**
30
+ * @notice Allows superAdmin change the superAdmin address.
31
+ * @param _newSuperAdmin The new superAdmin address.
32
+ * @param _genArt721CoreAddressesToUpdate Array of genArt721Core
33
+ * addresses to update to the new superAdmin, for indexing purposes only.
34
+ * @dev this function is gated to only superAdmin address.
35
+ */
36
+ function changeSuperAdmin(
37
+ address _newSuperAdmin,
38
+ address[] calldata _genArt721CoreAddressesToUpdate
39
+ ) external {
40
+ require(msg.sender == superAdmin, "Only superAdmin");
41
+ address previousSuperAdmin = superAdmin;
42
+ superAdmin = _newSuperAdmin;
43
+ emit SuperAdminTransferred(
44
+ previousSuperAdmin,
45
+ _newSuperAdmin,
46
+ _genArt721CoreAddressesToUpdate
47
+ );
48
+ }
49
+
50
+ /**
51
+ * Calls transferOwnership on other contract from this contract.
52
+ * This is useful for updating to a new AdminACL contract.
53
+ * @dev this function is gated to only superAdmin address.
54
+ * @dev This implementation requires that the new AdminACL contract
55
+ * broadcasts support of IAdminACLV0 via ERC165 interface detection.
56
+ */
57
+ function transferOwnershipOn(
58
+ address _contract,
59
+ address _newAdminACL
60
+ ) external {
61
+ require(msg.sender == superAdmin, "Only superAdmin");
62
+ // ensure new AdminACL contract supports IAdminACLV0
63
+ require(
64
+ ERC165(_newAdminACL).supportsInterface(
65
+ type(IAdminACLV0).interfaceId
66
+ ),
67
+ "AdminACLV0: new admin ACL does not support IAdminACLV0"
68
+ );
69
+ Ownable(_contract).transferOwnership(_newAdminACL);
70
+ }
71
+
72
+ /**
73
+ * @notice Calls renounceOwnership on other contract from this contract.
74
+ * @dev this function is gated to only superAdmin address.
75
+ */
76
+ function renounceOwnershipOn(address _contract) external {
77
+ require(msg.sender == superAdmin, "Only superAdmin");
78
+ Ownable(_contract).renounceOwnership();
79
+ }
80
+
81
+ /**
82
+ * @notice Checks if sender `_sender` is allowed to call function with selector
83
+ * `_selector` on contract `_contract`. Returns true if sender is superAdmin.
84
+ */
85
+ function allowed(
86
+ address _sender,
87
+ address /*_contract*/,
88
+ bytes4 /*_selector*/
89
+ ) external view returns (bool) {
90
+ return superAdmin == _sender;
91
+ }
92
+
93
+ /**
94
+ * @inheritdoc ERC165
95
+ */
96
+ function supportsInterface(
97
+ bytes4 interfaceId
98
+ ) public view virtual override(ERC165) returns (bool) {
99
+ return
100
+ interfaceId == type(IAdminACLV0).interfaceId ||
101
+ super.supportsInterface(interfaceId);
102
+ }
103
+ }