-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathISolver.sol
177 lines (156 loc) · 4.11 KB
/
ISolver.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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
// SPDX-License-Identifier: MIT
pragma solidity 0.7.6;
interface ISolver {
event NewAdmin(address oldAdmin, address newAdmin);
event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin);
function isSolver() external returns (bool);
function depositAllowed(
address product,
address depositor,
uint64 term,
uint256 depositAmount,
uint64[] calldata maturities
) external returns (uint256);
function depositVerify(
address product,
address depositor,
uint256 depositAmount,
uint256 tokenId,
uint64 term,
uint64[] calldata maturities
) external returns (uint256);
function withdrawAllowed(
address product,
address payee,
uint256 withdrawAmount,
uint256 tokenId,
uint64 term,
uint64 maturity
) external returns (uint256);
function withdrawVerify(
address product,
address payee,
uint256 withdrawAmount,
uint256 tokenId,
uint64 term,
uint64 maturity
) external returns (uint256);
function transferFromAllowed(
address product,
address from,
address to,
uint256 tokenId,
uint256 targetTokenId,
uint256 amount
) external returns (uint256);
function transferFromVerify(
address product,
address from,
address to,
uint256 tokenId,
uint256 targetTokenId,
uint256 amount
) external returns (uint256);
function mergeAllowed(
address product,
address owner,
uint256 tokenId,
uint256 targetTokenId,
uint256 amount
) external returns (uint256);
function mergeVerify(
address product,
address owner,
uint256 tokenId,
uint256 targetTokenId,
uint256 amount
) external returns (uint256);
function splitAllowed(
address product,
address owner,
uint256 tokenId,
uint256 newTokenId,
uint256 amount
) external returns (uint256);
function splitVerify(
address product,
address owner,
uint256 tokenId,
uint256 newTokenId,
uint256 amount
) external returns (uint256);
function needConvertUnsafeTransfer(
address product,
address from,
address to,
uint256 tokenId,
uint256 units
) external view returns (bool);
function needRejectUnsafeTransfer(
address product,
address from,
address to,
uint256 tokenId,
uint256 units
) external view returns (bool);
function publishFixedPriceAllowed(
address icToken,
uint256 tokenId,
address seller,
address currency,
uint256 min,
uint256 max,
uint256 startTime,
bool useAllowList,
uint256 price
) external returns (uint256);
function publishDecliningPriceAllowed(
address icToken,
uint256 tokenId,
address seller,
address currency,
uint256 min,
uint256 max,
uint256 startTime,
bool useAllowList,
uint256 highest,
uint256 lowest,
uint256 duration,
uint256 interval
) external returns (uint256);
function publishVerify(
address icToken,
uint256 tokenId,
address seller,
address currency,
uint256 saleId,
uint256 units
) external;
function buyAllowed(
address icToken,
uint256 tokenId,
uint256 saleId,
address buyer,
address currency,
uint256 buyAmount,
uint256 buyUnits,
uint256 price
) external returns (uint256);
function buyVerify(
address icToken,
uint256 tokenId,
uint256 saleId,
address buyer,
address seller,
uint256 amount,
uint256 units,
uint256 price,
uint256 fee
) external;
function removeAllow(
address icToken,
uint256 tokenId,
uint256 saleId,
address seller
) external returns (uint256);
}