UNPKG

9.42 kBPlain TextView Raw
1import { providers, BigNumberish } from "ethers";
2
3import { Address, BigNumber, Bytes32, HexString, PublicIdentifier, SignatureString } from "./basic";
4import { ConditionalTransferTypes, CreatedConditionalTransferMetaMap } from "./transfers";
5import { MethodResults, MethodParams } from "./methods";
6import { Attestation } from "./contracts";
7
8////////////////////////////////////////
9// deposit
10
11type DepositParameters = {
12 amount: BigNumberish;
13 assetId?: Address; // if not provided, will default to 0x0 (Eth)
14};
15
16type DepositResponse = {
17 freeBalance: {
18 [s: string]: BigNumber;
19 };
20};
21
22type CheckDepositRightsParameters = {
23 assetId?: Address;
24};
25
26type CheckDepositRightsResponse = {
27 appIdentityHash: Bytes32;
28};
29
30type RequestDepositRightsParameters = Omit<MethodParams.RequestDepositRights, "multisigAddress">;
31type RequestDepositRightsResponse = MethodResults.RequestDepositRights;
32
33type RescindDepositRightsParameters = Omit<MethodParams.RescindDepositRights, "multisigAddress">;
34type RescindDepositRightsResponse = MethodResults.RescindDepositRights;
35
36////////////////////////////////////////
37// hashlock
38
39type HashLockTransferParameters = {
40 conditionType: typeof ConditionalTransferTypes.HashLockTransfer;
41 amount: BigNumberish;
42 timelock?: BigNumberish;
43 lockHash: Bytes32;
44 recipient: PublicIdentifier;
45 assetId?: Address;
46 meta?: any;
47};
48
49type HashLockTransferResponse = {
50 appIdentityHash: Bytes32;
51};
52
53type ResolveHashLockTransferParameters = {
54 conditionType: typeof ConditionalTransferTypes.HashLockTransfer;
55 assetId: Address;
56 paymentId?: Bytes32;
57 preImage: Bytes32;
58};
59
60type ResolveHashLockTransferResponse = {
61 appIdentityHash: Bytes32;
62 sender: PublicIdentifier;
63 amount: BigNumber;
64 assetId: Address;
65 meta?: any;
66};
67
68////////////////////////////////////////
69// linked transfer
70
71type LinkedTransferParameters = {
72 conditionType: typeof ConditionalTransferTypes.LinkedTransfer;
73 amount: BigNumberish;
74 assetId?: Address;
75 paymentId: Bytes32;
76 preImage: Bytes32;
77 recipient?: PublicIdentifier;
78 meta?: any;
79};
80
81type LinkedTransferResponse = {
82 appIdentityHash: Bytes32;
83 paymentId: Bytes32;
84 preImage: Bytes32;
85};
86
87type ResolveLinkedTransferParameters = {
88 conditionType: typeof ConditionalTransferTypes.LinkedTransfer;
89 paymentId: Bytes32;
90 preImage: Bytes32;
91};
92
93type ResolveLinkedTransferResponse = {
94 appIdentityHash: Bytes32;
95 sender: PublicIdentifier;
96 paymentId: Bytes32;
97 amount: BigNumber;
98 assetId: Address;
99 meta?: any;
100};
101
102////////////////////////////////////////
103// signed transfer
104
105type SignedTransferParameters = {
106 conditionType: typeof ConditionalTransferTypes.SignedTransfer;
107 amount: BigNumber;
108 assetId: Address;
109 paymentId: Bytes32;
110 signerAddress: Address;
111 chainId: number;
112 verifyingContract: Address;
113 recipient?: PublicIdentifier;
114 meta?: any;
115};
116
117type SignedTransferResponse = {
118 appIdentityHash: Bytes32;
119 paymentId: Bytes32;
120};
121
122type ResolveSignedTransferParameters = {
123 conditionType: typeof ConditionalTransferTypes.SignedTransfer;
124 paymentId: Bytes32;
125 data: Bytes32;
126 signature?: SignatureString;
127};
128
129type ResolveSignedTransferResponse = {
130 appIdentityHash: Bytes32;
131 assetId: Address;
132 amount: BigNumber;
133 sender: PublicIdentifier;
134 meta?: any;
135};
136
137////////////////////////////////////////
138// graph signed transfer
139
140type GraphSignedTransferParameters = {
141 conditionType: typeof ConditionalTransferTypes.GraphTransfer;
142 amount: BigNumber;
143 assetId: Address;
144 paymentId: Bytes32;
145 signerAddress: Address;
146 chainId: number;
147 verifyingContract: Address;
148 requestCID: Bytes32;
149 subgraphDeploymentID: Bytes32;
150 recipient: PublicIdentifier;
151 meta?: any;
152};
153
154type GraphSignedTransferResponse = {
155 appIdentityHash: Bytes32;
156 paymentId: Bytes32;
157};
158
159type ResolveGraphSignedTransferParameters = {
160 conditionType: typeof ConditionalTransferTypes.GraphTransfer;
161 paymentId: Bytes32;
162 responseCID: Bytes32;
163 signature?: SignatureString;
164};
165
166type ResolveGraphSignedTransferResponse = {
167 appIdentityHash: Bytes32;
168 assetId: Address;
169 amount: BigNumber;
170 sender: PublicIdentifier;
171 meta?: any;
172};
173
174////////////////////////////////////////
175// conditional transfer
176
177type ConditionalTransferParameters =
178 | LinkedTransferParameters
179 | HashLockTransferParameters
180 | SignedTransferParameters
181 | GraphSignedTransferParameters;
182
183type ConditionalTransferResponse = {
184 amount: BigNumber;
185 appIdentityHash: Bytes32;
186 assetId: Address;
187 paymentId: Bytes32;
188 preImage?: Bytes32;
189 sender: Address;
190 recipient?: Address;
191 meta: any;
192 transferMeta: any;
193};
194
195////////////////////////////////////////
196// resolve condition
197
198type ResolveConditionParameters =
199 | ResolveHashLockTransferParameters
200 | ResolveLinkedTransferParameters
201 | ResolveSignedTransferParameters
202 | ResolveGraphSignedTransferParameters;
203
204// type ResolveConditionResponse =
205// | ResolveHashLockTransferResponse
206// | ResolveLinkedTransferResponse
207// | ResolveSignedTransferResponse
208// | ResolveGraphSignedTransferResponse;
209
210type ResolveConditionResponse = {
211 appIdentityHash: Bytes32;
212 assetId: Address;
213 amount: BigNumber;
214 paymentId: Bytes32;
215 sender: PublicIdentifier;
216 meta?: any;
217};
218
219////////////////////////////////////////
220// swap
221
222type SwapParameters = {
223 amount: BigNumberish;
224 fromAssetId: Address;
225 swapRate: string; // DecString?
226 toAssetId: Address;
227};
228
229type SwapResponse = {
230 id: number;
231 nodeIdentifier: PublicIdentifier;
232 userIdentifier: PublicIdentifier;
233 multisigAddress: Address;
234 available: boolean;
235 activeCollateralizations: { [assetId: string]: boolean };
236};
237
238////////////////////////////////////////
239// withdraw
240
241type WithdrawParameters = {
242 amount: BigNumberish;
243 assetId?: Address; // if not provided, will default to 0x0 (Eth)
244 recipient?: Address; // if not provided, will default to signer addr
245 nonce?: HexString; // generated internally, end user doesn't need to provide it
246};
247
248type WithdrawResponse = {
249 transaction: providers.TransactionResponse;
250};
251
252////////////////////////////////////////
253// transfer
254
255type TransferParameters = MethodParams.Deposit & {
256 recipient: PublicIdentifier;
257 meta?: any;
258 paymentId?: Bytes32;
259};
260
261type TransferResponse = LinkedTransferResponse;
262
263////////////////////////////////////////
264// exports
265
266export namespace PublicParams {
267 export type CheckDepositRights = CheckDepositRightsParameters;
268 export type ConditionalTransfer = ConditionalTransferParameters;
269 export type Deposit = DepositParameters;
270 export type HashLockTransfer = HashLockTransferParameters;
271 export type LinkedTransfer = LinkedTransferParameters;
272 export type RequestDepositRights = RequestDepositRightsParameters;
273 export type RescindDepositRights = RescindDepositRightsParameters;
274 export type ResolveCondition = ResolveConditionParameters;
275 export type ResolveHashLockTransfer = ResolveHashLockTransferParameters;
276 export type ResolveLinkedTransfer = ResolveLinkedTransferParameters;
277 export type ResolveSignedTransfer = ResolveSignedTransferParameters;
278 export type ResolveGraphTransfer = ResolveGraphSignedTransferParameters;
279 export type SignedTransfer = SignedTransferParameters;
280 export type GraphTransfer = GraphSignedTransferParameters;
281 export type Swap = SwapParameters;
282 export type Transfer = TransferParameters;
283 export type Withdraw = WithdrawParameters;
284}
285
286export type PublicParam =
287 | CheckDepositRightsParameters
288 | ConditionalTransferParameters
289 | DepositParameters
290 | HashLockTransferParameters
291 | LinkedTransferParameters
292 | RequestDepositRightsParameters
293 | RescindDepositRightsParameters
294 | ResolveConditionParameters
295 | ResolveHashLockTransferParameters
296 | ResolveLinkedTransferParameters
297 | ResolveSignedTransferParameters
298 | SignedTransferParameters
299 | GraphSignedTransferParameters
300 | SwapParameters
301 | TransferParameters
302 | WithdrawParameters;
303
304export namespace PublicResults {
305 export type CheckDepositRights = CheckDepositRightsResponse;
306 export type ConditionalTransfer = ConditionalTransferResponse;
307 export type Deposit = DepositResponse;
308 export type RequestDepositRights = RequestDepositRightsResponse;
309 export type RescindDepositRights = RescindDepositRightsResponse;
310 export type ResolveCondition = ResolveConditionResponse;
311 export type ResolveHashLockTransfer = ResolveHashLockTransferResponse;
312 export type ResolveLinkedTransfer = ResolveLinkedTransferResponse;
313 export type ResolveSignedTransfer = ResolveSignedTransferResponse;
314 export type ResolveGraphTransfer = ResolveGraphSignedTransferResponse;
315 export type HashLockTransfer = HashLockTransferResponse;
316 export type LinkedTransfer = LinkedTransferResponse;
317 export type SignedTransfer = SignedTransferResponse;
318 export type GraphTransfer = GraphSignedTransferResponse;
319 export type Swap = SwapResponse;
320 export type Transfer = TransferResponse;
321 export type Withdraw = WithdrawResponse;
322}
323
324export type PublicResult =
325 | CheckDepositRightsResponse
326 | ConditionalTransferResponse
327 | DepositResponse
328 | HashLockTransferResponse
329 | LinkedTransferResponse
330 | RequestDepositRightsResponse
331 | RescindDepositRightsResponse
332 | ResolveConditionResponse
333 | ResolveHashLockTransferResponse
334 | ResolveLinkedTransferResponse
335 | ResolveSignedTransferResponse
336 | ResolveGraphSignedTransferResponse
337 | SignedTransferResponse
338 | GraphSignedTransferResponse
339 | SwapResponse
340 | TransferResponse
341 | WithdrawResponse;