-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathIDegenNFT.sol
executable file
·59 lines (43 loc) · 1.3 KB
/
IDegenNFT.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
// SPDX-License-Identifier: GPL-3.0
pragma solidity 0.8.17;
import "./IERC721AUpgradeable.sol";
interface IDegenNFTDefination is IERC721AUpgradeable {
enum Rarity {
Legendary,
Epic,
Rare,
Uncommon,
Common
}
enum TokenType {
Standard,
Shard
}
struct Property {
string name;
Rarity rarity;
TokenType tokenType;
}
error ZeroAddressSet();
error OnlyManager();
event SetManager(address manager);
event SetProperties(Property properties);
event SetBaseURI(string baseURI);
}
interface IDegenNFT is IDegenNFTDefination {
function mint(address to, uint256 quantity) external;
function burn(uint256 tokenId) external;
function setBaseURI(string calldata baseURI_) external;
function setProperties(
uint256 tokenId,
Property memory _properties
) external;
function setLevel(uint256 level_) external;
function setTokenURI(uint256 tokenId, string memory tokenURI) external;
function totalMinted() external view returns (uint256);
function getProperty(
uint256 tokenId
) external view returns (Property memory);
function exists(uint256 tokenId) external view returns (bool);
function nextTokenId() external view returns (uint256);
}