/
IJBTiered721DelegateStore.sol
86 lines (52 loc) · 3.54 KB
/
IJBTiered721DelegateStore.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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import { IJB721TokenUriResolver } from "./IJB721TokenUriResolver.sol";
import { JB721TierParams } from "./../structs/JB721TierParams.sol";
import { JB721Tier } from "./../structs/JB721Tier.sol";
import { JBTiered721Flags } from "./../structs/JBTiered721Flags.sol";
interface IJBTiered721DelegateStore {
event CleanTiers(address indexed nft, address caller);
function totalSupplyOf(address _nft) external view returns (uint256);
function balanceOf(address _nft, address _owner) external view returns (uint256);
function maxTierIdOf(address _nft) external view returns (uint256);
function tiersOf(
address nft,
uint256[] calldata categories,
bool includeResolvedUri,
uint256 startingSortIndex,
uint256 size
) external view returns (JB721Tier[] memory tiers);
function tierOf(address nft, uint256 id, bool includeResolvedUri) external view returns (JB721Tier memory tier);
function tierBalanceOf(address nft, address owner, uint256 tier) external view returns (uint256);
function tierOfTokenId(address nft, uint256 tokenId, bool includeResolvedUri)
external
view
returns (JB721Tier memory tier);
function tierIdOfToken(uint256 tokenId) external pure returns (uint256);
function encodedIPFSUriOf(address nft, uint256 tierId) external view returns (bytes32);
function redemptionWeightOf(address nft, uint256[] memory tokenIds) external view returns (uint256 weight);
function totalRedemptionWeight(address nft) external view returns (uint256 weight);
function numberOfReservedTokensOutstandingFor(address nft, uint256 tierId) external view returns (uint256);
function numberOfReservesMintedFor(address nft, uint256 tierId) external view returns (uint256);
function numberOfBurnedFor(address nft, uint256 tierId) external view returns (uint256);
function isTierRemoved(address nft, uint256 tierId) external view returns (bool);
function flagsOf(address nft) external view returns (JBTiered721Flags memory);
function votingUnitsOf(address nft, address account) external view returns (uint256 units);
function tierVotingUnitsOf(address nft, address account, uint256 tierId) external view returns (uint256 units);
function defaultReservedTokenBeneficiaryOf(address nft) external view returns (address);
function reservedTokenBeneficiaryOf(address nft, uint256 tierId) external view returns (address);
function tokenUriResolverOf(address nft) external view returns (IJB721TokenUriResolver);
function encodedTierIPFSUriOf(address nft, uint256 tokenId) external view returns (bytes32);
function recordAddTiers(JB721TierParams[] memory tierData) external returns (uint256[] memory tierIds);
function recordMintReservesFor(uint256 tierId, uint256 count) external returns (uint256[] memory tokenIds);
function recordBurn(uint256[] memory tokenIds) external;
function recordMint(uint256 amount, uint16[] calldata tierIds, bool isManualMint)
external
returns (uint256[] memory tokenIds, uint256 leftoverAmount);
function recordTransferForTier(uint256 tierId, address from, address to) external;
function recordRemoveTierIds(uint256[] memory tierIds) external;
function recordSetTokenUriResolver(IJB721TokenUriResolver resolver) external;
function recordSetEncodedIPFSUriOf(uint256 tierId, bytes32 encodedIPFSUri) external;
function recordFlags(JBTiered721Flags calldata flag) external;
function cleanTiers(address nft) external;
}