/
IGemsCatalystsRegistry.sol
48 lines (37 loc) · 1.27 KB
/
IGemsCatalystsRegistry.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
//SPDX-License-Identifier: MIT
pragma solidity 0.8.2;
import "../../common/interfaces/IAssetAttributesRegistry.sol";
import "./IGem.sol";
import "./ICatalyst.sol";
interface IGemsCatalystsRegistry {
function getAttributes(
uint16 catalystId,
uint256 assetId,
IAssetAttributesRegistry.GemEvent[] calldata events
) external view returns (uint32[] memory values);
function getMaxGems(uint16 catalystId) external view returns (uint8);
function batchBurnGems(
address from,
uint16[] calldata gemIds,
uint256[] calldata amounts
) external;
function batchBurnCatalysts(
address from,
uint16[] calldata catalystIds,
uint256[] calldata amounts
) external;
function addGemsAndCatalysts(IGem[] calldata gems, ICatalyst[] calldata catalysts) external;
function doesGemExist(uint16 gemId) external view returns (bool);
function burnCatalyst(
address from,
uint16 catalystId,
uint256 amount
) external;
function burnGem(
address from,
uint16 gemId,
uint256 amount
) external;
function getCatalystDecimals(uint16 catalystId) external view returns (uint8);
function getGemDecimals(uint16 gemId) external view returns (uint8);
}