-
Notifications
You must be signed in to change notification settings - Fork 18
/
MooncatsContract.sol
91 lines (50 loc) · 3.17 KB
/
MooncatsContract.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
87
88
89
90
91
interface MooncatsContract {
// Events
event CatRescued(address indexed to, bytes5 indexed catId);
event CatNamed(bytes5 indexed catId, bytes32 catName);
event Transfer(address indexed from, address indexed to, uint256 value);
event CatAdopted(bytes5 indexed catId, uint price, address indexed from, address indexed to);
event AdoptionOffered(bytes5 indexed catId, uint price, address indexed toAddress);
event AdoptionOfferCancelled(bytes5 indexed catId);
event AdoptionRequested(bytes5 indexed catId, uint price, address indexed from);
event AdoptionRequestCancelled(bytes5 indexed catId);
event GenesisCatsAdded(bytes5[16] catIds);
// Read contract
function name() external view returns (string memory);
function remainingGenesisCats() external view returns (uint16);
function totalSupply() external view returns (uint16);
function mode() external view returns (uint8);
function getCatDetails(bytes5) external view returns (bytes5 id, address owner, bytes32 catName, address onlyOfferTo, uint256 offerPrice, address requester, uint256 requestPrice);
function decimals() external view returns (uint8);
function getCatOwners() external view returns (address[] memory);
function catOwners(bytes5 catId) external view returns (address);
function rescueOrder(uint256 order) external view returns (bytes5 catId);
function getCatIds() external view returns (bytes5[] memory);
function balanceOf(address) external view returns (uint256);
function getCatNames() external view returns (bytes32[] memory);
function adoptionOffers(bytes5) external view returns (bool exists, bytes5 catId, address seller, uint256 price, address onlyOfferTo);
function catNames(bytes5 catId) external view returns (bytes32);
function symbol() external view returns (string memory);
function getCatRequestPrices() external view returns (uint256[] memory);
function searchSeed() external view returns (bytes32);
function imageGenerationCodeMD5() external view returns (bytes16);
function adoptionRequests(bytes5) external view returns (bool exists, bytes5 catId, address requester, uint256 price);
function getCatOfferPrices() external view returns (uint256[] memory);
function rescueIndex() external view returns (uint16);
function pendingWithdrawals(address) external view returns (uint256);
// Write contract
function makeAdoptionOffer(bytes5 catId, uint256 price) external;
function activate() external;
function acceptAdoptionOffer(bytes5 catId) external payable;
function withdraw() external;
function rescueCat(bytes32 seed) external;
function cancelAdoptionOffer(bytes5 catId) external;
function nameCat(bytes5 catId, bytes32 catName) external;
function activateInTestMode() external;
function cancelAdoptionRequest(bytes5 catId) external;
function disableBeforeActivation() external;
function addGenesisCatGroup() external;
function makeAdoptionOfferToAddress(bytes5 catId, uint256 price, address to) external;
function acceptAdoptionRequest(bytes5 catId) external payable;
function giveCat(bytes5 catId, address to) external;
}