@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.
- package/.env.example +10 -0
- package/LICENSE +165 -0
- package/README.md +286 -0
- package/artifacts/contracts/AdminACLV0.sol/AdminACLV0.json +164 -0
- package/artifacts/contracts/AdminACLV1.sol/AdminACLV1.json +248 -0
- package/artifacts/contracts/BasicRandomizer.sol/BasicRandomizer.json +24 -0
- package/artifacts/contracts/BasicRandomizerV2.sol/BasicRandomizerV2.json +102 -0
- package/artifacts/contracts/DependencyRegistryV0.sol/DependencyRegistryV0.json +1020 -0
- package/artifacts/contracts/GenArt721CoreV3.sol/GenArt721CoreV3.json +1928 -0
- package/artifacts/contracts/GenArt721CoreV3_Engine.sol/GenArt721CoreV3_Engine.json +1942 -0
- package/artifacts/contracts/engine/GenArt721CoreV2_ENGINE_FLEX.sol/GenArt721CoreV2_ENGINE_FLEX.json +1708 -0
- package/artifacts/contracts/engine/GenArt721CoreV2_PBAB.sol/GenArt721CoreV2_PBAB.json +1410 -0
- package/artifacts/contracts/engine/GenArt721CoreV2_PRTNR.sol/GenArt721CoreV2_PRTNR.json +1436 -0
- package/artifacts/contracts/engine/GenArt721MinterBurner_PBAB.sol/GenArt721MinterBurner_PBAB.json +437 -0
- package/artifacts/contracts/engine/GenArt721MinterDAExp_PBAB.sol/GenArt721MinterDAExp_PBAB.json +508 -0
- package/artifacts/contracts/engine/GenArt721Minter_PBAB.sol/GenArt721Minter_PBAB.json +381 -0
- package/artifacts/contracts/engine-registry/EngineRegistryV0.sol/EngineRegistryV0.json +109 -0
- package/artifacts/contracts/engine-registry/future/EngineRegistryV1.sol/EngineRegistryV1.json +109 -0
- package/artifacts/contracts/explorations/GenArt721CoreV3_Explorations.sol/GenArt721CoreV3_Explorations.json +1902 -0
- package/artifacts/contracts/interfaces/0.5.x/IBonusContract.sol/IBonusContract.json +47 -0
- package/artifacts/contracts/interfaces/0.5.x/IGenArt721CoreContractV1.sol/IGenArt721CoreContractV1.json +413 -0
- package/artifacts/contracts/interfaces/0.5.x/IGenArt721CoreV2_PBAB.sol/IGenArt721CoreV2_PBAB.json +392 -0
- package/artifacts/contracts/interfaces/0.5.x/IRandomizer.sol/IRandomizer.json +26 -0
- package/artifacts/contracts/interfaces/0.8.x/IAdminACLV0.sol/IAdminACLV0.json +122 -0
- package/artifacts/contracts/interfaces/0.8.x/IArtblocksRoyaltyOverride.sol/IArtblocksRoyaltyOverride.json +59 -0
- package/artifacts/contracts/interfaces/0.8.x/IBonusContract.sol/IBonusContract.json +43 -0
- package/artifacts/contracts/interfaces/0.8.x/IDelegationRegistry.sol/IDelegationRegistry.json +510 -0
- package/artifacts/contracts/interfaces/0.8.x/IDependencyRegistryCompatibleV0.sol/IDependencyRegistryCompatibleV0.json +53 -0
- package/artifacts/contracts/interfaces/0.8.x/IDependencyRegistryV0.sol/IDependencyRegistryV0.json +350 -0
- package/artifacts/contracts/interfaces/0.8.x/IEngineRegistryV0.sol/IEngineRegistryV0.json +85 -0
- package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterDAExpSettlementV0.sol/IFilteredMinterDAExpSettlementV0.json +730 -0
- package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterDAExpV0.sol/IFilteredMinterDAExpV0.json +311 -0
- package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterDAExpV1.sol/IFilteredMinterDAExpV1.json +617 -0
- package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterDALinV0.sol/IFilteredMinterDALinV0.json +292 -0
- package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterDALinV1.sol/IFilteredMinterDALinV1.json +598 -0
- package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterHolderV0.sol/IFilteredMinterHolderV0.json +355 -0
- package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterHolderV1.sol/IFilteredMinterHolderV1.json +368 -0
- package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterHolderV2.sol/IFilteredMinterHolderV2.json +674 -0
- package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterMerkleV0.sol/IFilteredMinterMerkleV0.json +551 -0
- package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterMerkleV1.sol/IFilteredMinterMerkleV1.json +564 -0
- package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterMerkleV2.sol/IFilteredMinterMerkleV2.json +601 -0
- package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterV0.sol/IFilteredMinterV0.json +216 -0
- package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterV1.sol/IFilteredMinterV1.json +485 -0
- package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterV2.sol/IFilteredMinterV2.json +522 -0
- package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreContractV1.sol/IGenArt721CoreContractV1.json +299 -0
- package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreContractV3.sol/IGenArt721CoreContractV3.json +609 -0
- package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Base.sol/IGenArt721CoreContractV3_Base.json +448 -0
- package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Engine.sol/IGenArt721CoreContractV3_Engine.json +649 -0
- package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreV2_PBAB.sol/IGenArt721CoreV2_PBAB.json +362 -0
- package/artifacts/contracts/interfaces/0.8.x/IManifold.sol/IManifold.json +35 -0
- package/artifacts/contracts/interfaces/0.8.x/IMinterFilterV0.sol/IMinterFilterV0.json +192 -0
- package/artifacts/contracts/interfaces/0.8.x/IRandomizer.sol/IRandomizer.json +24 -0
- package/artifacts/contracts/interfaces/0.8.x/IRandomizerV2.sol/IRandomizerV2.json +37 -0
- package/artifacts/contracts/legacy/GenArt721CoreV1.sol/Address.json +10 -0
- package/artifacts/contracts/legacy/GenArt721CoreV1.sol/Counters.json +10 -0
- package/artifacts/contracts/legacy/GenArt721CoreV1.sol/CustomERC721Metadata.json +425 -0
- package/artifacts/contracts/legacy/GenArt721CoreV1.sol/ERC165.json +38 -0
- package/artifacts/contracts/legacy/GenArt721CoreV1.sol/ERC721.json +322 -0
- package/artifacts/contracts/legacy/GenArt721CoreV1.sol/ERC721Enumerable.json +384 -0
- package/artifacts/contracts/legacy/GenArt721CoreV1.sol/GenArt721CoreV1.json +1773 -0
- package/artifacts/contracts/legacy/GenArt721CoreV1.sol/IERC165.json +32 -0
- package/artifacts/contracts/legacy/GenArt721CoreV1.sol/IERC721.json +316 -0
- package/artifacts/contracts/legacy/GenArt721CoreV1.sol/IERC721Enumerable.json +378 -0
- package/artifacts/contracts/legacy/GenArt721CoreV1.sol/IERC721Receiver.json +47 -0
- package/artifacts/contracts/legacy/GenArt721CoreV1.sol/SafeMath.json +10 -0
- package/artifacts/contracts/legacy/GenArt721CoreV1.sol/Strings.json +10 -0
- package/artifacts/contracts/legacy/GenArt721LegacyMinter.sol/GenArt721LegacyMinter.json +338 -0
- package/artifacts/contracts/libs/0.5.x/CustomERC721Metadata.sol/CustomERC721Metadata.json +425 -0
- package/artifacts/contracts/libs/0.5.x/IERC20.sol/IERC20.json +206 -0
- package/artifacts/contracts/libs/0.5.x/SafeMath.sol/SafeMath.json +10 -0
- package/artifacts/contracts/libs/0.5.x/Strings.sol/Strings.json +10 -0
- package/artifacts/contracts/libs/0.8.x/BytecodeStorage.sol/BytecodeStorage.json +10 -0
- package/artifacts/contracts/libs/0.8.x/Bytes32Strings.sol/Bytes32Strings.json +10 -0
- package/artifacts/contracts/libs/0.8.x/ERC721_PackedHashSeed.sol/ERC721_PackedHashSeed.json +357 -0
- package/artifacts/contracts/libs/integration-refs/delegation-registry/DelegationRegistry.sol/DelegationRegistry.json +529 -0
- package/artifacts/contracts/libs/integration-refs/gnosis-safe/GnosisSafeMock.sol/GnosisSafeMock.json +1037 -0
- package/artifacts/contracts/libs/integration-refs/gnosis-safe/GnosisSafeProxyFactoryMock.sol/GnosisSafeProxyFactoryMock.json +172 -0
- package/artifacts/contracts/libs/integration-refs/gnosis-safe/MultiSendMock.sol/MultiSendMock.json +24 -0
- package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV0.sol/MinterFilterV0.json +342 -0
- package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV1.sol/MinterFilterV1.json +322 -0
- package/artifacts/contracts/minter-suite/Minters/MinterDAExp/MinterDAExpV2.sol/MinterDAExpV2.json +550 -0
- package/artifacts/contracts/minter-suite/Minters/MinterDAExp/MinterDAExpV3.sol/MinterDAExpV3.json +856 -0
- package/artifacts/contracts/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol/MinterDAExpSettlementV0.json +1053 -0
- package/artifacts/contracts/minter-suite/Minters/MinterDALin/MinterDALinV2.sol/MinterDALinV2.json +526 -0
- package/artifacts/contracts/minter-suite/Minters/MinterDALin/MinterDALinV3.sol/MinterDALinV3.json +832 -0
- package/artifacts/contracts/minter-suite/Minters/MinterHolder/MinterHolderV2.sol/MinterHolderV2.json +794 -0
- package/artifacts/contracts/minter-suite/Minters/MinterHolder/MinterHolderV3.sol/MinterHolderV3.json +1100 -0
- package/artifacts/contracts/minter-suite/Minters/MinterMerkle/MinterMerkleV3.sol/MinterMerkleV3.json +1002 -0
- package/artifacts/contracts/minter-suite/Minters/MinterMerkle/MinterMerkleV4.sol/MinterMerkleV4.json +1039 -0
- package/artifacts/contracts/minter-suite/Minters/MinterSetPrice/MinterSetPriceV2.sol/MinterSetPriceV2.json +365 -0
- package/artifacts/contracts/minter-suite/Minters/MinterSetPrice/MinterSetPriceV3.sol/MinterSetPriceV3.json +671 -0
- package/artifacts/contracts/minter-suite/Minters/MinterSetPrice/deprecated/MinterSetPriceV1.sol/MinterSetPriceV1.json +288 -0
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V2.sol/MinterSetPriceERC20V2.json +436 -0
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V3.sol/MinterSetPriceERC20V3.json +742 -0
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20/deprecated/MinterSetPriceERC20V0.sol/MinterSetPriceERC20V0.json +461 -0
- package/artifacts/contracts/mock/BytecodeTextCR_DMock.sol/BytecodeTextCR_DMock.json +194 -0
- package/artifacts/contracts/mock/DeadReceiverMock.sol/DeadReceiverMock.json +15 -0
- package/artifacts/contracts/mock/ERC20Mock.sol/ERC20Mock.json +292 -0
- package/artifacts/contracts/mock/MockAdminACLV0.sol/MockAdminACLV0Events.json +165 -0
- package/artifacts/contracts/mock/RandomizerV2_NoAssignMock.sol/RandomizerV2_NoAssignMock.json +128 -0
- package/artifacts/contracts/mock/ReentrancyHolderMock.sol/ReentrancyHolderMock.json +118 -0
- package/artifacts/contracts/mock/ReentrancyMerkleMock.sol/ReentrancyMerkleMock.json +87 -0
- package/artifacts/contracts/mock/ReentrancyMock.sol/ReentrancyMock.json +82 -0
- package/artifacts/contracts/royalty-registry/GenArt721RoyaltyOverride.sol/GenArt721RoyaltyOverride.json +208 -0
- package/artifacts/contracts/royalty-registry/GenArt721RoyaltyOverride_PBAB.sol/GenArt721RoyaltyOverride_PBAB.json +301 -0
- package/contracts/AdminACLV0.sol +103 -0
- package/contracts/AdminACLV1.sol +193 -0
- package/contracts/BasicRandomizer.sol +23 -0
- package/contracts/BasicRandomizerV2.sol +36 -0
- package/contracts/DependencyRegistryV0.sol +893 -0
- package/contracts/GenArt721CoreV3.sol +2001 -0
- package/contracts/GenArt721CoreV3_Engine.sol +2061 -0
- package/contracts/engine/GenArt721CoreV2_ENGINE_FLEX.sol +887 -0
- package/contracts/engine/GenArt721CoreV2_PBAB.sol +695 -0
- package/contracts/engine/GenArt721CoreV2_PRTNR.sol +749 -0
- package/contracts/engine/GenArt721MinterBurner_PBAB.sol +467 -0
- package/contracts/engine/GenArt721MinterDAExp_PBAB.sol +614 -0
- package/contracts/engine/GenArt721Minter_PBAB.sol +420 -0
- package/contracts/engine-registry/EngineRegistryV0.sol +72 -0
- package/contracts/engine-registry/future/EngineRegistryV1.sol +86 -0
- package/contracts/explorations/GenArt721CoreV3_Explorations.sol +1989 -0
- package/contracts/interfaces/0.5.x/IBonusContract.sol +10 -0
- package/contracts/interfaces/0.5.x/IGenArt721CoreContractV1.sol +91 -0
- package/contracts/interfaces/0.5.x/IGenArt721CoreV2_PBAB.sol +92 -0
- package/contracts/interfaces/0.5.x/IRandomizer.sol +8 -0
- package/contracts/interfaces/0.8.x/IAdminACLV0.sol +51 -0
- package/contracts/interfaces/0.8.x/IArtblocksRoyaltyOverride.sol +34 -0
- package/contracts/interfaces/0.8.x/IBonusContract.sol +10 -0
- package/contracts/interfaces/0.8.x/IDelegationRegistry.sol +221 -0
- package/contracts/interfaces/0.8.x/IDependencyRegistryCompatibleV0.sol +31 -0
- package/contracts/interfaces/0.8.x/IDependencyRegistryV0.sol +95 -0
- package/contracts/interfaces/0.8.x/IEngineRegistryV0.sol +38 -0
- package/contracts/interfaces/0.8.x/IFilteredMinterDAExpSettlementV0.sol +70 -0
- package/contracts/interfaces/0.8.x/IFilteredMinterDAExpV0.sol +35 -0
- package/contracts/interfaces/0.8.x/IFilteredMinterDAExpV1.sol +16 -0
- package/contracts/interfaces/0.8.x/IFilteredMinterDALinV0.sol +32 -0
- package/contracts/interfaces/0.8.x/IFilteredMinterDALinV1.sol +16 -0
- package/contracts/interfaces/0.8.x/IFilteredMinterHolderV0.sol +68 -0
- package/contracts/interfaces/0.8.x/IFilteredMinterHolderV1.sol +19 -0
- package/contracts/interfaces/0.8.x/IFilteredMinterHolderV2.sol +19 -0
- package/contracts/interfaces/0.8.x/IFilteredMinterMerkleV0.sol +37 -0
- package/contracts/interfaces/0.8.x/IFilteredMinterMerkleV1.sol +19 -0
- package/contracts/interfaces/0.8.x/IFilteredMinterMerkleV2.sol +19 -0
- package/contracts/interfaces/0.8.x/IFilteredMinterV0.sol +74 -0
- package/contracts/interfaces/0.8.x/IFilteredMinterV1.sol +127 -0
- package/contracts/interfaces/0.8.x/IFilteredMinterV2.sol +30 -0
- package/contracts/interfaces/0.8.x/IGenArt721CoreContractV1.sol +73 -0
- package/contracts/interfaces/0.8.x/IGenArt721CoreContractV3.sol +79 -0
- package/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Base.sol +127 -0
- package/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Engine.sol +80 -0
- package/contracts/interfaces/0.8.x/IGenArt721CoreV2_PBAB.sol +91 -0
- package/contracts/interfaces/0.8.x/IManifold.sol +24 -0
- package/contracts/interfaces/0.8.x/IMinterFilterV0.sol +47 -0
- package/contracts/interfaces/0.8.x/IRandomizer.sol +8 -0
- package/contracts/interfaces/0.8.x/IRandomizerV2.sol +15 -0
- package/contracts/legacy/GenArt721CoreV1.sol +1593 -0
- package/contracts/legacy/GenArt721LegacyMinter.sol +275 -0
- package/contracts/libs/0.5.x/CustomERC721Metadata.sol +52 -0
- package/contracts/libs/0.5.x/IERC20.sol +96 -0
- package/contracts/libs/0.5.x/SafeMath.sol +98 -0
- package/contracts/libs/0.5.x/Strings.sol +92 -0
- package/contracts/libs/0.8.x/BytecodeStorage.sol +314 -0
- package/contracts/libs/0.8.x/Bytes32Strings.sol +66 -0
- package/contracts/libs/0.8.x/ERC721_PackedHashSeed.sol +514 -0
- package/contracts/libs/integration-refs/delegation-registry/DelegationRegistry.sol +663 -0
- package/contracts/libs/integration-refs/gnosis-safe/GnosisSafeMock.sol +6 -0
- package/contracts/libs/integration-refs/gnosis-safe/GnosisSafeProxyFactoryMock.sol +6 -0
- package/contracts/libs/integration-refs/gnosis-safe/MultiSendMock.sol +6 -0
- package/contracts/minter-suite/MinterFilter/MinterFilterV0.sol +291 -0
- package/contracts/minter-suite/MinterFilter/MinterFilterV1.sol +320 -0
- package/contracts/minter-suite/Minters/MinterDAExp/MinterDAExpV2.sol +571 -0
- package/contracts/minter-suite/Minters/MinterDAExp/MinterDAExpV3.sol +622 -0
- package/contracts/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol +1066 -0
- package/contracts/minter-suite/Minters/MinterDALin/MinterDALinV2.sol +527 -0
- package/contracts/minter-suite/Minters/MinterDALin/MinterDALinV3.sol +576 -0
- package/contracts/minter-suite/Minters/MinterHolder/MinterHolderV2.sol +749 -0
- package/contracts/minter-suite/Minters/MinterHolder/MinterHolderV3.sol +798 -0
- package/contracts/minter-suite/Minters/MinterMerkle/MinterMerkleV3.sol +682 -0
- package/contracts/minter-suite/Minters/MinterMerkle/MinterMerkleV4.sol +733 -0
- package/contracts/minter-suite/Minters/MinterSetPrice/MinterSetPriceV2.sol +350 -0
- package/contracts/minter-suite/Minters/MinterSetPrice/MinterSetPriceV3.sol +401 -0
- package/contracts/minter-suite/Minters/MinterSetPrice/deprecated/MinterSetPriceV1.sol +274 -0
- package/contracts/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V2.sol +491 -0
- package/contracts/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V3.sol +542 -0
- package/contracts/minter-suite/Minters/MinterSetPriceERC20/deprecated/MinterSetPriceERC20V0.sol +470 -0
- package/contracts/mock/BytecodeTextCR_DMock.sol +184 -0
- package/contracts/mock/DeadReceiverMock.sol +13 -0
- package/contracts/mock/ERC20Mock.sol +11 -0
- package/contracts/mock/MockAdminACLV0.sol +65 -0
- package/contracts/mock/RandomizerV2_NoAssignMock.sol +43 -0
- package/contracts/mock/ReentrancyHolderMock.sol +50 -0
- package/contracts/mock/ReentrancyMerkleMock.sol +64 -0
- package/contracts/mock/ReentrancyMock.sol +44 -0
- package/contracts/royalty-registry/GenArt721RoyaltyOverride.sol +168 -0
- package/contracts/royalty-registry/GenArt721RoyaltyOverride_PBAB.sol +221 -0
- package/package.json +83 -0
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
// Created By: Art Blocks Inc.
|
|
3
|
+
|
|
4
|
+
pragma solidity ^0.5.0;
|
|
5
|
+
|
|
6
|
+
interface IGenArt721CoreContractV1 {
|
|
7
|
+
event Mint(
|
|
8
|
+
address indexed _to,
|
|
9
|
+
uint256 indexed _tokenId,
|
|
10
|
+
uint256 indexed _projectId
|
|
11
|
+
);
|
|
12
|
+
|
|
13
|
+
// getter function of public variable
|
|
14
|
+
function admin() external view returns (address);
|
|
15
|
+
|
|
16
|
+
// getter function of public variable
|
|
17
|
+
function nextProjectId() external view returns (uint256);
|
|
18
|
+
|
|
19
|
+
// getter function of public mapping
|
|
20
|
+
function tokenIdToProjectId(
|
|
21
|
+
uint256 tokenId
|
|
22
|
+
) external view returns (uint256 projectId);
|
|
23
|
+
|
|
24
|
+
function isWhitelisted(address sender) external view returns (bool);
|
|
25
|
+
|
|
26
|
+
// @dev this is not available in V0
|
|
27
|
+
function isMintWhitelisted(address minter) external view returns (bool);
|
|
28
|
+
|
|
29
|
+
function projectIdToArtistAddress(
|
|
30
|
+
uint256 _projectId
|
|
31
|
+
) external view returns (address payable);
|
|
32
|
+
|
|
33
|
+
function projectIdToAdditionalPayee(
|
|
34
|
+
uint256 _projectId
|
|
35
|
+
) external view returns (address payable);
|
|
36
|
+
|
|
37
|
+
function projectIdToAdditionalPayeePercentage(
|
|
38
|
+
uint256 _projectId
|
|
39
|
+
) external view returns (uint256);
|
|
40
|
+
|
|
41
|
+
function projectIdToCurrencySymbol(
|
|
42
|
+
uint256 _projectId
|
|
43
|
+
) external view returns (string memory);
|
|
44
|
+
|
|
45
|
+
function projectIdToCurrencyAddress(
|
|
46
|
+
uint256 _projectId
|
|
47
|
+
) external view returns (address);
|
|
48
|
+
|
|
49
|
+
function projectIdToPricePerTokenInWei(
|
|
50
|
+
uint256 _projectId
|
|
51
|
+
) external view returns (uint256);
|
|
52
|
+
|
|
53
|
+
function projectTokenInfo(
|
|
54
|
+
uint256 _projectId
|
|
55
|
+
)
|
|
56
|
+
external
|
|
57
|
+
view
|
|
58
|
+
returns (
|
|
59
|
+
address,
|
|
60
|
+
uint256,
|
|
61
|
+
uint256,
|
|
62
|
+
uint256,
|
|
63
|
+
bool,
|
|
64
|
+
address,
|
|
65
|
+
uint256,
|
|
66
|
+
string memory,
|
|
67
|
+
address
|
|
68
|
+
);
|
|
69
|
+
|
|
70
|
+
function artblocksAddress() external view returns (address payable);
|
|
71
|
+
|
|
72
|
+
function artblocksPercentage() external view returns (uint256);
|
|
73
|
+
|
|
74
|
+
function mint(
|
|
75
|
+
address _to,
|
|
76
|
+
uint256 _projectId,
|
|
77
|
+
address _by
|
|
78
|
+
) external returns (uint256 tokenId);
|
|
79
|
+
|
|
80
|
+
function getRoyaltyData(
|
|
81
|
+
uint256 _tokenId
|
|
82
|
+
)
|
|
83
|
+
external
|
|
84
|
+
view
|
|
85
|
+
returns (
|
|
86
|
+
address artistAddress,
|
|
87
|
+
address additionalPayee,
|
|
88
|
+
uint256 additionalPayeePercentage,
|
|
89
|
+
uint256 royaltyFeeByID
|
|
90
|
+
);
|
|
91
|
+
}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
// Creatd By: Art Blocks Inc.
|
|
3
|
+
|
|
4
|
+
pragma solidity ^0.5.0;
|
|
5
|
+
|
|
6
|
+
interface IGenArt721CoreV2_PBAB {
|
|
7
|
+
/**
|
|
8
|
+
* @notice Token ID `_tokenId` minted on project ID `_projectId` to `_to`.
|
|
9
|
+
* @dev NatSpec for events not supported in Solidity ^0.5.0
|
|
10
|
+
*/
|
|
11
|
+
event Mint(
|
|
12
|
+
address indexed _to,
|
|
13
|
+
uint256 indexed _tokenId,
|
|
14
|
+
uint256 indexed _projectId
|
|
15
|
+
);
|
|
16
|
+
|
|
17
|
+
// getter function of public variable
|
|
18
|
+
function admin() external view returns (address);
|
|
19
|
+
|
|
20
|
+
// getter function of public variable
|
|
21
|
+
function nextProjectId() external view returns (uint256);
|
|
22
|
+
|
|
23
|
+
// getter function of public mapping
|
|
24
|
+
function tokenIdToProjectId(
|
|
25
|
+
uint256 tokenId
|
|
26
|
+
) external view returns (uint256 projectId);
|
|
27
|
+
|
|
28
|
+
function isWhitelisted(address sender) external view returns (bool);
|
|
29
|
+
|
|
30
|
+
function projectIdToCurrencySymbol(
|
|
31
|
+
uint256 _projectId
|
|
32
|
+
) external view returns (string memory);
|
|
33
|
+
|
|
34
|
+
function projectIdToCurrencyAddress(
|
|
35
|
+
uint256 _projectId
|
|
36
|
+
) external view returns (address);
|
|
37
|
+
|
|
38
|
+
function projectIdToArtistAddress(
|
|
39
|
+
uint256 _projectId
|
|
40
|
+
) external view returns (address payable);
|
|
41
|
+
|
|
42
|
+
function projectIdToPricePerTokenInWei(
|
|
43
|
+
uint256 _projectId
|
|
44
|
+
) external view returns (uint256);
|
|
45
|
+
|
|
46
|
+
function projectIdToAdditionalPayee(
|
|
47
|
+
uint256 _projectId
|
|
48
|
+
) external view returns (address payable);
|
|
49
|
+
|
|
50
|
+
function projectIdToAdditionalPayeePercentage(
|
|
51
|
+
uint256 _projectId
|
|
52
|
+
) external view returns (uint256);
|
|
53
|
+
|
|
54
|
+
function projectTokenInfo(
|
|
55
|
+
uint256 _projectId
|
|
56
|
+
)
|
|
57
|
+
external
|
|
58
|
+
view
|
|
59
|
+
returns (
|
|
60
|
+
address,
|
|
61
|
+
uint256,
|
|
62
|
+
uint256,
|
|
63
|
+
uint256,
|
|
64
|
+
bool,
|
|
65
|
+
address,
|
|
66
|
+
uint256,
|
|
67
|
+
string memory,
|
|
68
|
+
address
|
|
69
|
+
);
|
|
70
|
+
|
|
71
|
+
function renderProviderAddress() external view returns (address payable);
|
|
72
|
+
|
|
73
|
+
function renderProviderPercentage() external view returns (uint256);
|
|
74
|
+
|
|
75
|
+
function mint(
|
|
76
|
+
address _to,
|
|
77
|
+
uint256 _projectId,
|
|
78
|
+
address _by
|
|
79
|
+
) external returns (uint256 tokenId);
|
|
80
|
+
|
|
81
|
+
function getRoyaltyData(
|
|
82
|
+
uint256 _tokenId
|
|
83
|
+
)
|
|
84
|
+
external
|
|
85
|
+
view
|
|
86
|
+
returns (
|
|
87
|
+
address artistAddress,
|
|
88
|
+
address additionalPayee,
|
|
89
|
+
uint256 additionalPayeePercentage,
|
|
90
|
+
uint256 royaltyFeeByID
|
|
91
|
+
);
|
|
92
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
// Created By: Art Blocks Inc.
|
|
3
|
+
|
|
4
|
+
pragma solidity ^0.8.0;
|
|
5
|
+
|
|
6
|
+
interface IAdminACLV0 {
|
|
7
|
+
/**
|
|
8
|
+
* @notice Token ID `_tokenId` minted to `_to`.
|
|
9
|
+
* @param previousSuperAdmin The previous superAdmin address.
|
|
10
|
+
* @param newSuperAdmin The new superAdmin address.
|
|
11
|
+
* @param genArt721CoreAddressesToUpdate Array of genArt721Core
|
|
12
|
+
* addresses to update to the new superAdmin, for indexing purposes only.
|
|
13
|
+
*/
|
|
14
|
+
event SuperAdminTransferred(
|
|
15
|
+
address indexed previousSuperAdmin,
|
|
16
|
+
address indexed newSuperAdmin,
|
|
17
|
+
address[] genArt721CoreAddressesToUpdate
|
|
18
|
+
);
|
|
19
|
+
|
|
20
|
+
/// Type of the Admin ACL contract, e.g. "AdminACLV0"
|
|
21
|
+
function AdminACLType() external view returns (string memory);
|
|
22
|
+
|
|
23
|
+
/// super admin address
|
|
24
|
+
function superAdmin() external view returns (address);
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* @notice Calls transferOwnership on other contract from this contract.
|
|
28
|
+
* This is useful for updating to a new AdminACL contract.
|
|
29
|
+
* @dev this function should be gated to only superAdmin-like addresses.
|
|
30
|
+
*/
|
|
31
|
+
function transferOwnershipOn(
|
|
32
|
+
address _contract,
|
|
33
|
+
address _newAdminACL
|
|
34
|
+
) external;
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* @notice Calls renounceOwnership on other contract from this contract.
|
|
38
|
+
* @dev this function should be gated to only superAdmin-like addresses.
|
|
39
|
+
*/
|
|
40
|
+
function renounceOwnershipOn(address _contract) external;
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* @notice Checks if sender `_sender` is allowed to call function with selector
|
|
44
|
+
* `_selector` on contract `_contract`.
|
|
45
|
+
*/
|
|
46
|
+
function allowed(
|
|
47
|
+
address _sender,
|
|
48
|
+
address _contract,
|
|
49
|
+
bytes4 _selector
|
|
50
|
+
) external returns (bool);
|
|
51
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
// Created By: Art Blocks Inc.
|
|
3
|
+
|
|
4
|
+
import "@openzeppelin-4.5/contracts/utils/introspection/IERC165.sol";
|
|
5
|
+
|
|
6
|
+
pragma solidity ^0.8.0;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @notice Interface for Art Blocks Royalty override.
|
|
10
|
+
* Supported by the Royalty Registry v1 Engine.
|
|
11
|
+
* @dev ref: https://royaltyregistry.xyz / engine-v1.royaltyregistry.eth
|
|
12
|
+
*/
|
|
13
|
+
interface IArtblocksRoyaltyOverride is IERC165 {
|
|
14
|
+
/**
|
|
15
|
+
* @notice Gets royalites of token ID `_tokenId` on token contract
|
|
16
|
+
* `_tokenAddress`.
|
|
17
|
+
* @param tokenAddress Token contract to be queried.
|
|
18
|
+
* @param tokenId Token ID to be queried.
|
|
19
|
+
* @return recipients_ array of royalty recipients
|
|
20
|
+
* @return bps array of basis points for each recipient, aligned by index
|
|
21
|
+
* @dev Interface ID:
|
|
22
|
+
*
|
|
23
|
+
* bytes4(keccak256('getRoyalties(address,uint256)')) == 0x9ca7dc7a
|
|
24
|
+
*
|
|
25
|
+
* => 0x9ca7dc7a = 0x9ca7dc7a
|
|
26
|
+
*/
|
|
27
|
+
function getRoyalties(
|
|
28
|
+
address tokenAddress,
|
|
29
|
+
uint256 tokenId
|
|
30
|
+
)
|
|
31
|
+
external
|
|
32
|
+
view
|
|
33
|
+
returns (address payable[] memory recipients_, uint256[] memory bps);
|
|
34
|
+
}
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
// SPDX-License-Identifier: CC0-1.0
|
|
2
|
+
pragma solidity ^0.8.17;
|
|
3
|
+
|
|
4
|
+
/// @dev Source: https://github.com/0xfoobar/delegation-registry/blob/main/src/IDelegationRegistry.sol
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* @title An immutable registry contract to be deployed as a standalone primitive
|
|
8
|
+
* @dev See EIP-5639, new project launches can read previous cold wallet -> hot wallet delegations
|
|
9
|
+
* from here and integrate those permissions into their flow
|
|
10
|
+
*/
|
|
11
|
+
interface IDelegationRegistry {
|
|
12
|
+
/// @notice Delegation type
|
|
13
|
+
enum DelegationType {
|
|
14
|
+
NONE,
|
|
15
|
+
ALL,
|
|
16
|
+
CONTRACT,
|
|
17
|
+
TOKEN
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/// @notice Info about a single delegation, used for onchain enumeration
|
|
21
|
+
struct DelegationInfo {
|
|
22
|
+
DelegationType type_;
|
|
23
|
+
address vault;
|
|
24
|
+
address delegate;
|
|
25
|
+
address contract_;
|
|
26
|
+
uint256 tokenId;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/// @notice Info about a single contract-level delegation
|
|
30
|
+
struct ContractDelegation {
|
|
31
|
+
address contract_;
|
|
32
|
+
address delegate;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/// @notice Info about a single token-level delegation
|
|
36
|
+
struct TokenDelegation {
|
|
37
|
+
address contract_;
|
|
38
|
+
uint256 tokenId;
|
|
39
|
+
address delegate;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/// @notice Emitted when a user delegates their entire wallet
|
|
43
|
+
event DelegateForAll(address vault, address delegate, bool value);
|
|
44
|
+
|
|
45
|
+
/// @notice Emitted when a user delegates a specific contract
|
|
46
|
+
event DelegateForContract(
|
|
47
|
+
address vault,
|
|
48
|
+
address delegate,
|
|
49
|
+
address contract_,
|
|
50
|
+
bool value
|
|
51
|
+
);
|
|
52
|
+
|
|
53
|
+
/// @notice Emitted when a user delegates a specific token
|
|
54
|
+
event DelegateForToken(
|
|
55
|
+
address vault,
|
|
56
|
+
address delegate,
|
|
57
|
+
address contract_,
|
|
58
|
+
uint256 tokenId,
|
|
59
|
+
bool value
|
|
60
|
+
);
|
|
61
|
+
|
|
62
|
+
/// @notice Emitted when a user revokes all delegations
|
|
63
|
+
event RevokeAllDelegates(address vault);
|
|
64
|
+
|
|
65
|
+
/// @notice Emitted when a user revoes all delegations for a given delegate
|
|
66
|
+
event RevokeDelegate(address vault, address delegate);
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* ----------- WRITE -----------
|
|
70
|
+
*/
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* @notice Allow the delegate to act on your behalf for all contracts
|
|
74
|
+
* @param delegate The hotwallet to act on your behalf
|
|
75
|
+
* @param value Whether to enable or disable delegation for this address, true for setting and false for revoking
|
|
76
|
+
*/
|
|
77
|
+
function delegateForAll(address delegate, bool value) external;
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* @notice Allow the delegate to act on your behalf for a specific contract
|
|
81
|
+
* @param delegate The hotwallet to act on your behalf
|
|
82
|
+
* @param contract_ The address for the contract you're delegating
|
|
83
|
+
* @param value Whether to enable or disable delegation for this address, true for setting and false for revoking
|
|
84
|
+
*/
|
|
85
|
+
function delegateForContract(
|
|
86
|
+
address delegate,
|
|
87
|
+
address contract_,
|
|
88
|
+
bool value
|
|
89
|
+
) external;
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* @notice Allow the delegate to act on your behalf for a specific token
|
|
93
|
+
* @param delegate The hotwallet to act on your behalf
|
|
94
|
+
* @param contract_ The address for the contract you're delegating
|
|
95
|
+
* @param tokenId The token id for the token you're delegating
|
|
96
|
+
* @param value Whether to enable or disable delegation for this address, true for setting and false for revoking
|
|
97
|
+
*/
|
|
98
|
+
function delegateForToken(
|
|
99
|
+
address delegate,
|
|
100
|
+
address contract_,
|
|
101
|
+
uint256 tokenId,
|
|
102
|
+
bool value
|
|
103
|
+
) external;
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* @notice Revoke all delegates
|
|
107
|
+
*/
|
|
108
|
+
function revokeAllDelegates() external;
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* @notice Revoke a specific delegate for all their permissions
|
|
112
|
+
* @param delegate The hotwallet to revoke
|
|
113
|
+
*/
|
|
114
|
+
function revokeDelegate(address delegate) external;
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* @notice Remove yourself as a delegate for a specific vault
|
|
118
|
+
* @param vault The vault which delegated to the msg.sender, and should be removed
|
|
119
|
+
*/
|
|
120
|
+
function revokeSelf(address vault) external;
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* ----------- READ -----------
|
|
124
|
+
*/
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* @notice Returns all active delegations a given delegate is able to claim on behalf of
|
|
128
|
+
* @param delegate The delegate that you would like to retrieve delegations for
|
|
129
|
+
* @return info Array of DelegationInfo structs
|
|
130
|
+
*/
|
|
131
|
+
function getDelegationsByDelegate(
|
|
132
|
+
address delegate
|
|
133
|
+
) external view returns (DelegationInfo[] memory);
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* @notice Returns an array of wallet-level delegates for a given vault
|
|
137
|
+
* @param vault The cold wallet who issued the delegation
|
|
138
|
+
* @return addresses Array of wallet-level delegates for a given vault
|
|
139
|
+
*/
|
|
140
|
+
function getDelegatesForAll(
|
|
141
|
+
address vault
|
|
142
|
+
) external view returns (address[] memory);
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* @notice Returns an array of contract-level delegates for a given vault and contract
|
|
146
|
+
* @param vault The cold wallet who issued the delegation
|
|
147
|
+
* @param contract_ The address for the contract you're delegating
|
|
148
|
+
* @return addresses Array of contract-level delegates for a given vault and contract
|
|
149
|
+
*/
|
|
150
|
+
function getDelegatesForContract(
|
|
151
|
+
address vault,
|
|
152
|
+
address contract_
|
|
153
|
+
) external view returns (address[] memory);
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* @notice Returns an array of contract-level delegates for a given vault's token
|
|
157
|
+
* @param vault The cold wallet who issued the delegation
|
|
158
|
+
* @param contract_ The address for the contract holding the token
|
|
159
|
+
* @param tokenId The token id for the token you're delegating
|
|
160
|
+
* @return addresses Array of contract-level delegates for a given vault's token
|
|
161
|
+
*/
|
|
162
|
+
function getDelegatesForToken(
|
|
163
|
+
address vault,
|
|
164
|
+
address contract_,
|
|
165
|
+
uint256 tokenId
|
|
166
|
+
) external view returns (address[] memory);
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* @notice Returns all contract-level delegations for a given vault
|
|
170
|
+
* @param vault The cold wallet who issued the delegations
|
|
171
|
+
* @return delegations Array of ContractDelegation structs
|
|
172
|
+
*/
|
|
173
|
+
function getContractLevelDelegations(
|
|
174
|
+
address vault
|
|
175
|
+
) external view returns (ContractDelegation[] memory delegations);
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* @notice Returns all token-level delegations for a given vault
|
|
179
|
+
* @param vault The cold wallet who issued the delegations
|
|
180
|
+
* @return delegations Array of TokenDelegation structs
|
|
181
|
+
*/
|
|
182
|
+
function getTokenLevelDelegations(
|
|
183
|
+
address vault
|
|
184
|
+
) external view returns (TokenDelegation[] memory delegations);
|
|
185
|
+
|
|
186
|
+
/**
|
|
187
|
+
* @notice Returns true if the address is delegated to act on the entire vault
|
|
188
|
+
* @param delegate The hotwallet to act on your behalf
|
|
189
|
+
* @param vault The cold wallet who issued the delegation
|
|
190
|
+
*/
|
|
191
|
+
function checkDelegateForAll(
|
|
192
|
+
address delegate,
|
|
193
|
+
address vault
|
|
194
|
+
) external view returns (bool);
|
|
195
|
+
|
|
196
|
+
/**
|
|
197
|
+
* @notice Returns true if the address is delegated to act on your behalf for a token contract or an entire vault
|
|
198
|
+
* @param delegate The hotwallet to act on your behalf
|
|
199
|
+
* @param contract_ The address for the contract you're delegating
|
|
200
|
+
* @param vault The cold wallet who issued the delegation
|
|
201
|
+
*/
|
|
202
|
+
function checkDelegateForContract(
|
|
203
|
+
address delegate,
|
|
204
|
+
address vault,
|
|
205
|
+
address contract_
|
|
206
|
+
) external view returns (bool);
|
|
207
|
+
|
|
208
|
+
/**
|
|
209
|
+
* @notice Returns true if the address is delegated to act on your behalf for a specific token, the token's contract or an entire vault
|
|
210
|
+
* @param delegate The hotwallet to act on your behalf
|
|
211
|
+
* @param contract_ The address for the contract you're delegating
|
|
212
|
+
* @param tokenId The token id for the token you're delegating
|
|
213
|
+
* @param vault The cold wallet who issued the delegation
|
|
214
|
+
*/
|
|
215
|
+
function checkDelegateForToken(
|
|
216
|
+
address delegate,
|
|
217
|
+
address vault,
|
|
218
|
+
address contract_,
|
|
219
|
+
uint256 tokenId
|
|
220
|
+
) external view returns (bool);
|
|
221
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
// Created By: Art Blocks Inc.
|
|
3
|
+
pragma solidity ^0.8.17;
|
|
4
|
+
|
|
5
|
+
interface IDependencyRegistryCompatibleV0 {
|
|
6
|
+
/// Dependency registry managed by Art Blocks
|
|
7
|
+
function artblocksDependencyRegistryAddress()
|
|
8
|
+
external
|
|
9
|
+
view
|
|
10
|
+
returns (address);
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* @notice Returns script information for project `_projectId`.
|
|
14
|
+
* @param _projectId Project to be queried.
|
|
15
|
+
* @return scriptTypeAndVersion Project's script type and version
|
|
16
|
+
* (e.g. "p5js(atSymbol)1.0.0")
|
|
17
|
+
* @return aspectRatio Aspect ratio of project (e.g. "1" for square,
|
|
18
|
+
* "1.77777778" for 16:9, etc.)
|
|
19
|
+
* @return scriptCount Count of scripts for project
|
|
20
|
+
*/
|
|
21
|
+
function projectScriptDetails(
|
|
22
|
+
uint256 _projectId
|
|
23
|
+
)
|
|
24
|
+
external
|
|
25
|
+
view
|
|
26
|
+
returns (
|
|
27
|
+
string memory scriptTypeAndVersion,
|
|
28
|
+
string memory aspectRatio,
|
|
29
|
+
uint256 scriptCount
|
|
30
|
+
);
|
|
31
|
+
}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
// Created By: Art Blocks Inc.
|
|
3
|
+
pragma solidity ^0.8.17;
|
|
4
|
+
|
|
5
|
+
interface IDependencyRegistryV0 {
|
|
6
|
+
event SupportedCoreContractAdded(address indexed _coreContractAddress);
|
|
7
|
+
|
|
8
|
+
event SupportedCoreContractRemoved(address indexed _coreContractAddress);
|
|
9
|
+
|
|
10
|
+
event ProjectDependencyTypeOverrideAdded(
|
|
11
|
+
address indexed _coreContractAddress,
|
|
12
|
+
uint256 indexed _projectId,
|
|
13
|
+
bytes32 _dependencyType
|
|
14
|
+
);
|
|
15
|
+
|
|
16
|
+
event ProjectDependencyTypeOverrideRemoved(
|
|
17
|
+
address indexed _coreContractAddress,
|
|
18
|
+
uint256 indexed _projectId
|
|
19
|
+
);
|
|
20
|
+
|
|
21
|
+
event DependencyAdded(
|
|
22
|
+
bytes32 indexed _dependencyType,
|
|
23
|
+
string _preferredCDN,
|
|
24
|
+
string _preferredRepository,
|
|
25
|
+
string _referenceWebsite
|
|
26
|
+
);
|
|
27
|
+
|
|
28
|
+
event DependencyRemoved(bytes32 indexed _dependencyType);
|
|
29
|
+
|
|
30
|
+
event DependencyReferenceWebsiteUpdated(
|
|
31
|
+
bytes32 indexed _dependencyType,
|
|
32
|
+
string _referenceWebsite
|
|
33
|
+
);
|
|
34
|
+
|
|
35
|
+
event DependencyPreferredCDNUpdated(
|
|
36
|
+
bytes32 indexed _dependencyType,
|
|
37
|
+
string _preferredCDN
|
|
38
|
+
);
|
|
39
|
+
|
|
40
|
+
event DependencyPreferredRepositoryUpdated(
|
|
41
|
+
bytes32 indexed _dependencyType,
|
|
42
|
+
string _preferredRepository
|
|
43
|
+
);
|
|
44
|
+
|
|
45
|
+
event DependencyAdditionalCDNUpdated(
|
|
46
|
+
bytes32 indexed _dependencyType,
|
|
47
|
+
string _additionalCDN,
|
|
48
|
+
uint256 _additionalCDNIndex
|
|
49
|
+
);
|
|
50
|
+
|
|
51
|
+
event DependencyAdditionalCDNRemoved(
|
|
52
|
+
bytes32 indexed _dependencyType,
|
|
53
|
+
uint256 indexed _additionalCDNIndex
|
|
54
|
+
);
|
|
55
|
+
|
|
56
|
+
event DependencyAdditionalRepositoryUpdated(
|
|
57
|
+
bytes32 indexed _dependencyType,
|
|
58
|
+
string _additionalRepository,
|
|
59
|
+
uint256 _additionalRepositoryIndex
|
|
60
|
+
);
|
|
61
|
+
|
|
62
|
+
event DependencyAdditionalRepositoryRemoved(
|
|
63
|
+
bytes32 indexed _dependencyType,
|
|
64
|
+
uint256 indexed _additionalRepositoryIndex
|
|
65
|
+
);
|
|
66
|
+
|
|
67
|
+
event DependencyScriptUpdated(bytes32 indexed _dependencyType);
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* @notice Returns the count of scripts for dependency `_dependencyType`.
|
|
71
|
+
* @param _dependencyType Dependency type to be queried.
|
|
72
|
+
*/
|
|
73
|
+
function getDependencyScriptCount(
|
|
74
|
+
bytes32 _dependencyType
|
|
75
|
+
) external view returns (uint256);
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* @notice Returns address with bytecode containing script for
|
|
79
|
+
* dependency type `_dependencyTypes` at script index `_index`.
|
|
80
|
+
*/
|
|
81
|
+
function getDependencyScriptBytecodeAddressAtIndex(
|
|
82
|
+
bytes32 _dependencyType,
|
|
83
|
+
uint256 _index
|
|
84
|
+
) external view returns (address);
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* @notice Returns script for dependency type `_dependencyType` at script index `_index`.
|
|
88
|
+
* @param _dependencyType Dependency type to be queried.
|
|
89
|
+
* @param _index Index of script to be queried.
|
|
90
|
+
*/
|
|
91
|
+
function getDependencyScriptAtIndex(
|
|
92
|
+
bytes32 _dependencyType,
|
|
93
|
+
uint256 _index
|
|
94
|
+
) external view returns (string memory);
|
|
95
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
// Created By: Art Blocks Inc.
|
|
3
|
+
pragma solidity ^0.8.17;
|
|
4
|
+
|
|
5
|
+
interface IEngineRegistryV0 {
|
|
6
|
+
/// ADDRESS
|
|
7
|
+
/**
|
|
8
|
+
* @notice contract has been registered as a contract that is powered by the Art Blocks Engine.
|
|
9
|
+
*/
|
|
10
|
+
event ContractRegistered(
|
|
11
|
+
address indexed _contractAddress,
|
|
12
|
+
bytes32 _coreVersion,
|
|
13
|
+
bytes32 _coreType
|
|
14
|
+
);
|
|
15
|
+
|
|
16
|
+
/// ADDRESS
|
|
17
|
+
/**
|
|
18
|
+
* @notice contract has been unregistered as a contract that is powered by the Art Blocks Engine.
|
|
19
|
+
*/
|
|
20
|
+
event ContractUnregistered(address indexed _contractAddress);
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* @notice Emits a `ContractRegistered` event with the provided information.
|
|
24
|
+
* @dev this function should be gated to only deployer addresses.
|
|
25
|
+
*/
|
|
26
|
+
function registerContract(
|
|
27
|
+
address _contractAddress,
|
|
28
|
+
bytes32 _coreVersion,
|
|
29
|
+
bytes32 _coreType
|
|
30
|
+
) external;
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* @notice Emits a `ContractUnregistered` event with the provided information, validating that the provided
|
|
34
|
+
* address was indeed previously registered.
|
|
35
|
+
* @dev this function should be gated to only deployer addresses.
|
|
36
|
+
*/
|
|
37
|
+
function unregisterContract(address _contractAddress) external;
|
|
38
|
+
}
|