lfx-reward-back-sdk 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client.d.ts +63 -0
- package/dist/client.js +308 -0
- package/dist/idl/lfx_reward_sc.json +998 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +17 -0
- package/dist/programs/types.d.ts +1004 -0
- package/dist/programs/types.js +2 -0
- package/package.json +35 -0
|
@@ -0,0 +1,1004 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Program IDL in camelCase format in order to be used in JS/TS.
|
|
3
|
+
*
|
|
4
|
+
* Note that this is only a type helper and is not the actual IDL. The original
|
|
5
|
+
* IDL can be found at `target/idl/lfx_reward_sc.json`.
|
|
6
|
+
*/
|
|
7
|
+
export type LfxRewardSc = {
|
|
8
|
+
"address": "rwDAq5g55oUWSve43iiijTwebCe6NrPAJQ3ftpJ1tC1";
|
|
9
|
+
"metadata": {
|
|
10
|
+
"name": "lfxRewardSc";
|
|
11
|
+
"version": "0.1.0";
|
|
12
|
+
"spec": "0.1.0";
|
|
13
|
+
"description": "LFX Reward Smart Contract";
|
|
14
|
+
"repository": "https://github.com/LIFENetworks/lfx_reward_sc";
|
|
15
|
+
};
|
|
16
|
+
"instructions": [
|
|
17
|
+
{
|
|
18
|
+
"name": "claimReward";
|
|
19
|
+
"docs": [
|
|
20
|
+
"User",
|
|
21
|
+
"Claim reward tokens (user + API signer)."
|
|
22
|
+
];
|
|
23
|
+
"discriminator": [
|
|
24
|
+
149,
|
|
25
|
+
95,
|
|
26
|
+
181,
|
|
27
|
+
242,
|
|
28
|
+
94,
|
|
29
|
+
90,
|
|
30
|
+
158,
|
|
31
|
+
162
|
|
32
|
+
];
|
|
33
|
+
"accounts": [
|
|
34
|
+
{
|
|
35
|
+
"name": "user";
|
|
36
|
+
"docs": [
|
|
37
|
+
"User who receives the reward"
|
|
38
|
+
];
|
|
39
|
+
"writable": true;
|
|
40
|
+
"signer": true;
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"name": "api";
|
|
44
|
+
"docs": [
|
|
45
|
+
"API wallet that authorizes the reward amount off-chain"
|
|
46
|
+
];
|
|
47
|
+
"writable": true;
|
|
48
|
+
"signer": true;
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"name": "userTokenAccount";
|
|
52
|
+
"docs": [
|
|
53
|
+
"User's associated token account for the reward mint"
|
|
54
|
+
];
|
|
55
|
+
"writable": true;
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"name": "vaultTokenAccount";
|
|
59
|
+
"docs": [
|
|
60
|
+
"Vault token account PDA (Token-2022)"
|
|
61
|
+
];
|
|
62
|
+
"writable": true;
|
|
63
|
+
"pda": {
|
|
64
|
+
"seeds": [
|
|
65
|
+
{
|
|
66
|
+
"kind": "const";
|
|
67
|
+
"value": [
|
|
68
|
+
118,
|
|
69
|
+
97,
|
|
70
|
+
117,
|
|
71
|
+
108,
|
|
72
|
+
116
|
|
73
|
+
];
|
|
74
|
+
}
|
|
75
|
+
];
|
|
76
|
+
};
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"name": "mint";
|
|
80
|
+
"docs": [
|
|
81
|
+
"Reward token mint (Token-2022)"
|
|
82
|
+
];
|
|
83
|
+
"writable": true;
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"name": "globalInfo";
|
|
87
|
+
"docs": [
|
|
88
|
+
"Global config PDA"
|
|
89
|
+
];
|
|
90
|
+
"writable": true;
|
|
91
|
+
"pda": {
|
|
92
|
+
"seeds": [
|
|
93
|
+
{
|
|
94
|
+
"kind": "const";
|
|
95
|
+
"value": [
|
|
96
|
+
103,
|
|
97
|
+
108,
|
|
98
|
+
111,
|
|
99
|
+
98,
|
|
100
|
+
97,
|
|
101
|
+
108
|
|
102
|
+
];
|
|
103
|
+
}
|
|
104
|
+
];
|
|
105
|
+
};
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"name": "tokenProgram";
|
|
109
|
+
"address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb";
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
"name": "systemProgram";
|
|
113
|
+
"address": "11111111111111111111111111111111";
|
|
114
|
+
}
|
|
115
|
+
];
|
|
116
|
+
"args": [
|
|
117
|
+
{
|
|
118
|
+
"name": "args";
|
|
119
|
+
"type": {
|
|
120
|
+
"defined": {
|
|
121
|
+
"name": "claimRewardArgs";
|
|
122
|
+
};
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
];
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
"name": "depositTokens";
|
|
129
|
+
"docs": [
|
|
130
|
+
"Deposit reward tokens into the vault."
|
|
131
|
+
];
|
|
132
|
+
"discriminator": [
|
|
133
|
+
176,
|
|
134
|
+
83,
|
|
135
|
+
229,
|
|
136
|
+
18,
|
|
137
|
+
191,
|
|
138
|
+
143,
|
|
139
|
+
176,
|
|
140
|
+
150
|
|
141
|
+
];
|
|
142
|
+
"accounts": [
|
|
143
|
+
{
|
|
144
|
+
"name": "admin";
|
|
145
|
+
"writable": true;
|
|
146
|
+
"signer": true;
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
"name": "adminTokenAccount";
|
|
150
|
+
"writable": true;
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
"name": "vaultTokenAccount";
|
|
154
|
+
"writable": true;
|
|
155
|
+
"pda": {
|
|
156
|
+
"seeds": [
|
|
157
|
+
{
|
|
158
|
+
"kind": "const";
|
|
159
|
+
"value": [
|
|
160
|
+
118,
|
|
161
|
+
97,
|
|
162
|
+
117,
|
|
163
|
+
108,
|
|
164
|
+
116
|
|
165
|
+
];
|
|
166
|
+
}
|
|
167
|
+
];
|
|
168
|
+
};
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
"name": "mint";
|
|
172
|
+
"writable": true;
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
"name": "globalInfo";
|
|
176
|
+
"writable": true;
|
|
177
|
+
"pda": {
|
|
178
|
+
"seeds": [
|
|
179
|
+
{
|
|
180
|
+
"kind": "const";
|
|
181
|
+
"value": [
|
|
182
|
+
103,
|
|
183
|
+
108,
|
|
184
|
+
111,
|
|
185
|
+
98,
|
|
186
|
+
97,
|
|
187
|
+
108
|
|
188
|
+
];
|
|
189
|
+
}
|
|
190
|
+
];
|
|
191
|
+
};
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
"name": "tokenProgram";
|
|
195
|
+
"address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb";
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
"name": "systemProgram";
|
|
199
|
+
"address": "11111111111111111111111111111111";
|
|
200
|
+
}
|
|
201
|
+
];
|
|
202
|
+
"args": [
|
|
203
|
+
{
|
|
204
|
+
"name": "args";
|
|
205
|
+
"type": {
|
|
206
|
+
"defined": {
|
|
207
|
+
"name": "depositTokensArgs";
|
|
208
|
+
};
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
];
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
"name": "initGlobalInfo";
|
|
215
|
+
"docs": [
|
|
216
|
+
"Admin",
|
|
217
|
+
"Initialize global reward configuration and vault."
|
|
218
|
+
];
|
|
219
|
+
"discriminator": [
|
|
220
|
+
181,
|
|
221
|
+
239,
|
|
222
|
+
139,
|
|
223
|
+
80,
|
|
224
|
+
66,
|
|
225
|
+
140,
|
|
226
|
+
67,
|
|
227
|
+
140
|
|
228
|
+
];
|
|
229
|
+
"accounts": [
|
|
230
|
+
{
|
|
231
|
+
"name": "initWallet";
|
|
232
|
+
"docs": [
|
|
233
|
+
"Init wallet signer (must match hardcoded INIT_WALLET_ADDRESS)"
|
|
234
|
+
];
|
|
235
|
+
"writable": true;
|
|
236
|
+
"signer": true;
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
"name": "globalInfo";
|
|
240
|
+
"docs": [
|
|
241
|
+
"Global config PDA"
|
|
242
|
+
];
|
|
243
|
+
"writable": true;
|
|
244
|
+
"pda": {
|
|
245
|
+
"seeds": [
|
|
246
|
+
{
|
|
247
|
+
"kind": "const";
|
|
248
|
+
"value": [
|
|
249
|
+
103,
|
|
250
|
+
108,
|
|
251
|
+
111,
|
|
252
|
+
98,
|
|
253
|
+
97,
|
|
254
|
+
108
|
|
255
|
+
];
|
|
256
|
+
}
|
|
257
|
+
];
|
|
258
|
+
};
|
|
259
|
+
},
|
|
260
|
+
{
|
|
261
|
+
"name": "vaultTokenAccount";
|
|
262
|
+
"docs": [
|
|
263
|
+
"Vault token account PDA (Token-2022)"
|
|
264
|
+
];
|
|
265
|
+
"writable": true;
|
|
266
|
+
"pda": {
|
|
267
|
+
"seeds": [
|
|
268
|
+
{
|
|
269
|
+
"kind": "const";
|
|
270
|
+
"value": [
|
|
271
|
+
118,
|
|
272
|
+
97,
|
|
273
|
+
117,
|
|
274
|
+
108,
|
|
275
|
+
116
|
|
276
|
+
];
|
|
277
|
+
}
|
|
278
|
+
];
|
|
279
|
+
};
|
|
280
|
+
},
|
|
281
|
+
{
|
|
282
|
+
"name": "mint";
|
|
283
|
+
"docs": [
|
|
284
|
+
"Reward token mint (Token-2022)"
|
|
285
|
+
];
|
|
286
|
+
},
|
|
287
|
+
{
|
|
288
|
+
"name": "tokenProgram";
|
|
289
|
+
"address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb";
|
|
290
|
+
},
|
|
291
|
+
{
|
|
292
|
+
"name": "systemProgram";
|
|
293
|
+
"address": "11111111111111111111111111111111";
|
|
294
|
+
}
|
|
295
|
+
];
|
|
296
|
+
"args": [
|
|
297
|
+
{
|
|
298
|
+
"name": "args";
|
|
299
|
+
"type": {
|
|
300
|
+
"defined": {
|
|
301
|
+
"name": "initGlobalInfoArgs";
|
|
302
|
+
};
|
|
303
|
+
};
|
|
304
|
+
}
|
|
305
|
+
];
|
|
306
|
+
},
|
|
307
|
+
{
|
|
308
|
+
"name": "startWithdrawalVote";
|
|
309
|
+
"docs": [
|
|
310
|
+
"Start a withdrawal wallet change vote."
|
|
311
|
+
];
|
|
312
|
+
"discriminator": [
|
|
313
|
+
151,
|
|
314
|
+
141,
|
|
315
|
+
194,
|
|
316
|
+
115,
|
|
317
|
+
123,
|
|
318
|
+
127,
|
|
319
|
+
181,
|
|
320
|
+
186
|
|
321
|
+
];
|
|
322
|
+
"accounts": [
|
|
323
|
+
{
|
|
324
|
+
"name": "admin";
|
|
325
|
+
"writable": true;
|
|
326
|
+
"signer": true;
|
|
327
|
+
},
|
|
328
|
+
{
|
|
329
|
+
"name": "globalInfo";
|
|
330
|
+
"writable": true;
|
|
331
|
+
"pda": {
|
|
332
|
+
"seeds": [
|
|
333
|
+
{
|
|
334
|
+
"kind": "const";
|
|
335
|
+
"value": [
|
|
336
|
+
103,
|
|
337
|
+
108,
|
|
338
|
+
111,
|
|
339
|
+
98,
|
|
340
|
+
97,
|
|
341
|
+
108
|
|
342
|
+
];
|
|
343
|
+
}
|
|
344
|
+
];
|
|
345
|
+
};
|
|
346
|
+
},
|
|
347
|
+
{
|
|
348
|
+
"name": "withdrawalVote";
|
|
349
|
+
"docs": [
|
|
350
|
+
"Global withdrawal vote PDA (single instance for the program)"
|
|
351
|
+
];
|
|
352
|
+
"writable": true;
|
|
353
|
+
"pda": {
|
|
354
|
+
"seeds": [
|
|
355
|
+
{
|
|
356
|
+
"kind": "const";
|
|
357
|
+
"value": [
|
|
358
|
+
119,
|
|
359
|
+
105,
|
|
360
|
+
116,
|
|
361
|
+
104,
|
|
362
|
+
100,
|
|
363
|
+
114,
|
|
364
|
+
97,
|
|
365
|
+
119,
|
|
366
|
+
97,
|
|
367
|
+
108,
|
|
368
|
+
95,
|
|
369
|
+
118,
|
|
370
|
+
111,
|
|
371
|
+
116,
|
|
372
|
+
101
|
|
373
|
+
];
|
|
374
|
+
}
|
|
375
|
+
];
|
|
376
|
+
};
|
|
377
|
+
},
|
|
378
|
+
{
|
|
379
|
+
"name": "systemProgram";
|
|
380
|
+
"address": "11111111111111111111111111111111";
|
|
381
|
+
}
|
|
382
|
+
];
|
|
383
|
+
"args": [
|
|
384
|
+
{
|
|
385
|
+
"name": "args";
|
|
386
|
+
"type": {
|
|
387
|
+
"defined": {
|
|
388
|
+
"name": "startWithdrawalVoteArgs";
|
|
389
|
+
};
|
|
390
|
+
};
|
|
391
|
+
}
|
|
392
|
+
];
|
|
393
|
+
},
|
|
394
|
+
{
|
|
395
|
+
"name": "updateGlobalInfo";
|
|
396
|
+
"docs": [
|
|
397
|
+
"Update global configuration (admin/api/internal multisig/emergency)."
|
|
398
|
+
];
|
|
399
|
+
"discriminator": [
|
|
400
|
+
84,
|
|
401
|
+
172,
|
|
402
|
+
119,
|
|
403
|
+
223,
|
|
404
|
+
36,
|
|
405
|
+
64,
|
|
406
|
+
248,
|
|
407
|
+
180
|
|
408
|
+
];
|
|
409
|
+
"accounts": [
|
|
410
|
+
{
|
|
411
|
+
"name": "admin";
|
|
412
|
+
"writable": true;
|
|
413
|
+
"signer": true;
|
|
414
|
+
},
|
|
415
|
+
{
|
|
416
|
+
"name": "globalInfo";
|
|
417
|
+
"writable": true;
|
|
418
|
+
"pda": {
|
|
419
|
+
"seeds": [
|
|
420
|
+
{
|
|
421
|
+
"kind": "const";
|
|
422
|
+
"value": [
|
|
423
|
+
103,
|
|
424
|
+
108,
|
|
425
|
+
111,
|
|
426
|
+
98,
|
|
427
|
+
97,
|
|
428
|
+
108
|
|
429
|
+
];
|
|
430
|
+
}
|
|
431
|
+
];
|
|
432
|
+
};
|
|
433
|
+
}
|
|
434
|
+
];
|
|
435
|
+
"args": [
|
|
436
|
+
{
|
|
437
|
+
"name": "args";
|
|
438
|
+
"type": {
|
|
439
|
+
"defined": {
|
|
440
|
+
"name": "updateGlobalInfoArgs";
|
|
441
|
+
};
|
|
442
|
+
};
|
|
443
|
+
}
|
|
444
|
+
];
|
|
445
|
+
},
|
|
446
|
+
{
|
|
447
|
+
"name": "voteWithdrawalWallet";
|
|
448
|
+
"docs": [
|
|
449
|
+
"Cast a vote for the current withdrawal wallet change proposal."
|
|
450
|
+
];
|
|
451
|
+
"discriminator": [
|
|
452
|
+
135,
|
|
453
|
+
181,
|
|
454
|
+
210,
|
|
455
|
+
66,
|
|
456
|
+
195,
|
|
457
|
+
178,
|
|
458
|
+
72,
|
|
459
|
+
7
|
|
460
|
+
];
|
|
461
|
+
"accounts": [
|
|
462
|
+
{
|
|
463
|
+
"name": "voter";
|
|
464
|
+
"docs": [
|
|
465
|
+
"One of the internal multisig wallets (must match one of the entries in global_info.internal_multisig_wallets)"
|
|
466
|
+
];
|
|
467
|
+
"signer": true;
|
|
468
|
+
},
|
|
469
|
+
{
|
|
470
|
+
"name": "globalInfo";
|
|
471
|
+
"writable": true;
|
|
472
|
+
"pda": {
|
|
473
|
+
"seeds": [
|
|
474
|
+
{
|
|
475
|
+
"kind": "const";
|
|
476
|
+
"value": [
|
|
477
|
+
103,
|
|
478
|
+
108,
|
|
479
|
+
111,
|
|
480
|
+
98,
|
|
481
|
+
97,
|
|
482
|
+
108
|
|
483
|
+
];
|
|
484
|
+
}
|
|
485
|
+
];
|
|
486
|
+
};
|
|
487
|
+
},
|
|
488
|
+
{
|
|
489
|
+
"name": "withdrawalVote";
|
|
490
|
+
"writable": true;
|
|
491
|
+
"pda": {
|
|
492
|
+
"seeds": [
|
|
493
|
+
{
|
|
494
|
+
"kind": "const";
|
|
495
|
+
"value": [
|
|
496
|
+
119,
|
|
497
|
+
105,
|
|
498
|
+
116,
|
|
499
|
+
104,
|
|
500
|
+
100,
|
|
501
|
+
114,
|
|
502
|
+
97,
|
|
503
|
+
119,
|
|
504
|
+
97,
|
|
505
|
+
108,
|
|
506
|
+
95,
|
|
507
|
+
118,
|
|
508
|
+
111,
|
|
509
|
+
116,
|
|
510
|
+
101
|
|
511
|
+
];
|
|
512
|
+
}
|
|
513
|
+
];
|
|
514
|
+
};
|
|
515
|
+
}
|
|
516
|
+
];
|
|
517
|
+
"args": [];
|
|
518
|
+
},
|
|
519
|
+
{
|
|
520
|
+
"name": "withdrawTokens";
|
|
521
|
+
"docs": [
|
|
522
|
+
"Withdraw tokens from the vault to the configured withdrawal wallet."
|
|
523
|
+
];
|
|
524
|
+
"discriminator": [
|
|
525
|
+
2,
|
|
526
|
+
4,
|
|
527
|
+
225,
|
|
528
|
+
61,
|
|
529
|
+
19,
|
|
530
|
+
182,
|
|
531
|
+
106,
|
|
532
|
+
170
|
|
533
|
+
];
|
|
534
|
+
"accounts": [
|
|
535
|
+
{
|
|
536
|
+
"name": "admin";
|
|
537
|
+
"docs": [
|
|
538
|
+
"Admin signer (must match global_info.admin_wallet)"
|
|
539
|
+
];
|
|
540
|
+
"writable": true;
|
|
541
|
+
"signer": true;
|
|
542
|
+
},
|
|
543
|
+
{
|
|
544
|
+
"name": "recipientTokenAccount";
|
|
545
|
+
"docs": [
|
|
546
|
+
"Recipient token account (must belong to current withdrawal_wallet)"
|
|
547
|
+
];
|
|
548
|
+
"writable": true;
|
|
549
|
+
},
|
|
550
|
+
{
|
|
551
|
+
"name": "vaultTokenAccount";
|
|
552
|
+
"docs": [
|
|
553
|
+
"Vault token account PDA (Token-2022)"
|
|
554
|
+
];
|
|
555
|
+
"writable": true;
|
|
556
|
+
"pda": {
|
|
557
|
+
"seeds": [
|
|
558
|
+
{
|
|
559
|
+
"kind": "const";
|
|
560
|
+
"value": [
|
|
561
|
+
118,
|
|
562
|
+
97,
|
|
563
|
+
117,
|
|
564
|
+
108,
|
|
565
|
+
116
|
|
566
|
+
];
|
|
567
|
+
}
|
|
568
|
+
];
|
|
569
|
+
};
|
|
570
|
+
},
|
|
571
|
+
{
|
|
572
|
+
"name": "mint";
|
|
573
|
+
"docs": [
|
|
574
|
+
"Reward token mint (Token-2022)"
|
|
575
|
+
];
|
|
576
|
+
"writable": true;
|
|
577
|
+
},
|
|
578
|
+
{
|
|
579
|
+
"name": "globalInfo";
|
|
580
|
+
"docs": [
|
|
581
|
+
"Global config PDA"
|
|
582
|
+
];
|
|
583
|
+
"writable": true;
|
|
584
|
+
"pda": {
|
|
585
|
+
"seeds": [
|
|
586
|
+
{
|
|
587
|
+
"kind": "const";
|
|
588
|
+
"value": [
|
|
589
|
+
103,
|
|
590
|
+
108,
|
|
591
|
+
111,
|
|
592
|
+
98,
|
|
593
|
+
97,
|
|
594
|
+
108
|
|
595
|
+
];
|
|
596
|
+
}
|
|
597
|
+
];
|
|
598
|
+
};
|
|
599
|
+
},
|
|
600
|
+
{
|
|
601
|
+
"name": "tokenProgram";
|
|
602
|
+
"address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb";
|
|
603
|
+
},
|
|
604
|
+
{
|
|
605
|
+
"name": "systemProgram";
|
|
606
|
+
"address": "11111111111111111111111111111111";
|
|
607
|
+
}
|
|
608
|
+
];
|
|
609
|
+
"args": [
|
|
610
|
+
{
|
|
611
|
+
"name": "args";
|
|
612
|
+
"type": {
|
|
613
|
+
"defined": {
|
|
614
|
+
"name": "withdrawTokensArgs";
|
|
615
|
+
};
|
|
616
|
+
};
|
|
617
|
+
}
|
|
618
|
+
];
|
|
619
|
+
}
|
|
620
|
+
];
|
|
621
|
+
"accounts": [
|
|
622
|
+
{
|
|
623
|
+
"name": "globalInfo";
|
|
624
|
+
"discriminator": [
|
|
625
|
+
241,
|
|
626
|
+
51,
|
|
627
|
+
8,
|
|
628
|
+
81,
|
|
629
|
+
11,
|
|
630
|
+
62,
|
|
631
|
+
44,
|
|
632
|
+
62
|
|
633
|
+
];
|
|
634
|
+
},
|
|
635
|
+
{
|
|
636
|
+
"name": "withdrawalVote";
|
|
637
|
+
"discriminator": [
|
|
638
|
+
93,
|
|
639
|
+
184,
|
|
640
|
+
26,
|
|
641
|
+
60,
|
|
642
|
+
167,
|
|
643
|
+
248,
|
|
644
|
+
29,
|
|
645
|
+
1
|
|
646
|
+
];
|
|
647
|
+
}
|
|
648
|
+
];
|
|
649
|
+
"errors": [
|
|
650
|
+
{
|
|
651
|
+
"code": 6000;
|
|
652
|
+
"name": "accessDenied";
|
|
653
|
+
"msg": "Access denied";
|
|
654
|
+
},
|
|
655
|
+
{
|
|
656
|
+
"code": 6001;
|
|
657
|
+
"name": "invalidArgs";
|
|
658
|
+
"msg": "Invalid arguments";
|
|
659
|
+
},
|
|
660
|
+
{
|
|
661
|
+
"code": 6002;
|
|
662
|
+
"name": "mathOverflow";
|
|
663
|
+
"msg": "Math overflow";
|
|
664
|
+
},
|
|
665
|
+
{
|
|
666
|
+
"code": 6003;
|
|
667
|
+
"name": "emergencyModeEnabled";
|
|
668
|
+
"msg": "Emergency mode is enabled";
|
|
669
|
+
},
|
|
670
|
+
{
|
|
671
|
+
"code": 6004;
|
|
672
|
+
"name": "invalidAdminWallet";
|
|
673
|
+
"msg": "Invalid admin wallet";
|
|
674
|
+
},
|
|
675
|
+
{
|
|
676
|
+
"code": 6005;
|
|
677
|
+
"name": "invalidApiWallet";
|
|
678
|
+
"msg": "Invalid API wallet";
|
|
679
|
+
},
|
|
680
|
+
{
|
|
681
|
+
"code": 6006;
|
|
682
|
+
"name": "invalidWithdrawalWallet";
|
|
683
|
+
"msg": "Invalid withdrawal wallet";
|
|
684
|
+
},
|
|
685
|
+
{
|
|
686
|
+
"code": 6007;
|
|
687
|
+
"name": "invalidInternalMultisigWallet";
|
|
688
|
+
"msg": "Invalid internal multisig wallet";
|
|
689
|
+
},
|
|
690
|
+
{
|
|
691
|
+
"code": 6008;
|
|
692
|
+
"name": "invalidTokenMint";
|
|
693
|
+
"msg": "Invalid token mint";
|
|
694
|
+
},
|
|
695
|
+
{
|
|
696
|
+
"code": 6009;
|
|
697
|
+
"name": "insufficientVaultBalance";
|
|
698
|
+
"msg": "Insufficient vault balance";
|
|
699
|
+
},
|
|
700
|
+
{
|
|
701
|
+
"code": 6010;
|
|
702
|
+
"name": "withdrawalVoteNotActive";
|
|
703
|
+
"msg": "Withdrawal vote is not active";
|
|
704
|
+
},
|
|
705
|
+
{
|
|
706
|
+
"code": 6011;
|
|
707
|
+
"name": "withdrawalVoteCompleted";
|
|
708
|
+
"msg": "Withdrawal vote already completed";
|
|
709
|
+
},
|
|
710
|
+
{
|
|
711
|
+
"code": 6012;
|
|
712
|
+
"name": "notInternalMultisigWallet";
|
|
713
|
+
"msg": "Not an internal multisig wallet";
|
|
714
|
+
}
|
|
715
|
+
];
|
|
716
|
+
"types": [
|
|
717
|
+
{
|
|
718
|
+
"name": "claimRewardArgs";
|
|
719
|
+
"docs": [
|
|
720
|
+
"Claim arguments.",
|
|
721
|
+
"",
|
|
722
|
+
"The `amount` must already be validated off-chain by the trusted API backend."
|
|
723
|
+
];
|
|
724
|
+
"type": {
|
|
725
|
+
"kind": "struct";
|
|
726
|
+
"fields": [
|
|
727
|
+
{
|
|
728
|
+
"name": "amount";
|
|
729
|
+
"docs": [
|
|
730
|
+
"Raw token amount including decimals (Token-2022 mint decimals)."
|
|
731
|
+
];
|
|
732
|
+
"type": "u64";
|
|
733
|
+
}
|
|
734
|
+
];
|
|
735
|
+
};
|
|
736
|
+
},
|
|
737
|
+
{
|
|
738
|
+
"name": "depositTokensArgs";
|
|
739
|
+
"type": {
|
|
740
|
+
"kind": "struct";
|
|
741
|
+
"fields": [
|
|
742
|
+
{
|
|
743
|
+
"name": "amount";
|
|
744
|
+
"type": "u64";
|
|
745
|
+
}
|
|
746
|
+
];
|
|
747
|
+
};
|
|
748
|
+
},
|
|
749
|
+
{
|
|
750
|
+
"name": "globalInfo";
|
|
751
|
+
"docs": [
|
|
752
|
+
"Global reward configuration and state.",
|
|
753
|
+
"",
|
|
754
|
+
"This account is the single source of truth for:",
|
|
755
|
+
"- Admin (multisig) wallet",
|
|
756
|
+
"- API wallet (trusted offchain backend)",
|
|
757
|
+
"- Internal multisig participant wallets (5 wallets)",
|
|
758
|
+
"- Current withdrawal wallet",
|
|
759
|
+
"- Token-2022 mint used for rewards",
|
|
760
|
+
"- Aggregate accounting fields"
|
|
761
|
+
];
|
|
762
|
+
"type": {
|
|
763
|
+
"kind": "struct";
|
|
764
|
+
"fields": [
|
|
765
|
+
{
|
|
766
|
+
"name": "adminWallet";
|
|
767
|
+
"docs": [
|
|
768
|
+
"Solana multisig admin wallet (e.g. SPL multisig program account)"
|
|
769
|
+
];
|
|
770
|
+
"type": "pubkey";
|
|
771
|
+
},
|
|
772
|
+
{
|
|
773
|
+
"name": "apiWallet";
|
|
774
|
+
"docs": [
|
|
775
|
+
"API wallet that must co-sign reward claims together with the user"
|
|
776
|
+
];
|
|
777
|
+
"type": "pubkey";
|
|
778
|
+
},
|
|
779
|
+
{
|
|
780
|
+
"name": "internalMultisigWallets";
|
|
781
|
+
"docs": [
|
|
782
|
+
"Five internal multisig wallets for withdrawal wallet voting"
|
|
783
|
+
];
|
|
784
|
+
"type": {
|
|
785
|
+
"array": [
|
|
786
|
+
"pubkey",
|
|
787
|
+
5
|
|
788
|
+
];
|
|
789
|
+
};
|
|
790
|
+
},
|
|
791
|
+
{
|
|
792
|
+
"name": "withdrawalWallet";
|
|
793
|
+
"docs": [
|
|
794
|
+
"Current withdrawal wallet (all withdrawals must go here)"
|
|
795
|
+
];
|
|
796
|
+
"type": "pubkey";
|
|
797
|
+
},
|
|
798
|
+
{
|
|
799
|
+
"name": "tokenMintAddress";
|
|
800
|
+
"docs": [
|
|
801
|
+
"Reward token mint (Token-2022)"
|
|
802
|
+
];
|
|
803
|
+
"type": "pubkey";
|
|
804
|
+
},
|
|
805
|
+
{
|
|
806
|
+
"name": "totalAllocatedTokenAmount";
|
|
807
|
+
"docs": [
|
|
808
|
+
"Total amount of tokens ever allocated into the vault"
|
|
809
|
+
];
|
|
810
|
+
"type": "u64";
|
|
811
|
+
},
|
|
812
|
+
{
|
|
813
|
+
"name": "totalClaimedAmount";
|
|
814
|
+
"docs": [
|
|
815
|
+
"Total amount of tokens ever claimed by users"
|
|
816
|
+
];
|
|
817
|
+
"type": "u64";
|
|
818
|
+
},
|
|
819
|
+
{
|
|
820
|
+
"name": "isEmergency";
|
|
821
|
+
"docs": [
|
|
822
|
+
"Emergency flag - when true, claims should be blocked"
|
|
823
|
+
];
|
|
824
|
+
"type": "bool";
|
|
825
|
+
},
|
|
826
|
+
{
|
|
827
|
+
"name": "bump";
|
|
828
|
+
"docs": [
|
|
829
|
+
"Bump for global PDA"
|
|
830
|
+
];
|
|
831
|
+
"type": "u8";
|
|
832
|
+
},
|
|
833
|
+
{
|
|
834
|
+
"name": "vaultBump";
|
|
835
|
+
"docs": [
|
|
836
|
+
"Bump for vault token account PDA"
|
|
837
|
+
];
|
|
838
|
+
"type": "u8";
|
|
839
|
+
},
|
|
840
|
+
{
|
|
841
|
+
"name": "reservedData";
|
|
842
|
+
"docs": [
|
|
843
|
+
"Reserved for future use, always initialized to 0"
|
|
844
|
+
];
|
|
845
|
+
"type": "u64";
|
|
846
|
+
}
|
|
847
|
+
];
|
|
848
|
+
};
|
|
849
|
+
},
|
|
850
|
+
{
|
|
851
|
+
"name": "initGlobalInfoArgs";
|
|
852
|
+
"type": {
|
|
853
|
+
"kind": "struct";
|
|
854
|
+
"fields": [
|
|
855
|
+
{
|
|
856
|
+
"name": "adminWallet";
|
|
857
|
+
"type": "pubkey";
|
|
858
|
+
},
|
|
859
|
+
{
|
|
860
|
+
"name": "apiWallet";
|
|
861
|
+
"type": "pubkey";
|
|
862
|
+
},
|
|
863
|
+
{
|
|
864
|
+
"name": "internalMultisigWallets";
|
|
865
|
+
"type": {
|
|
866
|
+
"array": [
|
|
867
|
+
"pubkey",
|
|
868
|
+
5
|
|
869
|
+
];
|
|
870
|
+
};
|
|
871
|
+
},
|
|
872
|
+
{
|
|
873
|
+
"name": "withdrawalWallet";
|
|
874
|
+
"type": "pubkey";
|
|
875
|
+
}
|
|
876
|
+
];
|
|
877
|
+
};
|
|
878
|
+
},
|
|
879
|
+
{
|
|
880
|
+
"name": "startWithdrawalVoteArgs";
|
|
881
|
+
"type": {
|
|
882
|
+
"kind": "struct";
|
|
883
|
+
"fields": [
|
|
884
|
+
{
|
|
885
|
+
"name": "proposedWithdrawalWallet";
|
|
886
|
+
"type": "pubkey";
|
|
887
|
+
}
|
|
888
|
+
];
|
|
889
|
+
};
|
|
890
|
+
},
|
|
891
|
+
{
|
|
892
|
+
"name": "updateGlobalInfoArgs";
|
|
893
|
+
"type": {
|
|
894
|
+
"kind": "struct";
|
|
895
|
+
"fields": [
|
|
896
|
+
{
|
|
897
|
+
"name": "adminWallet";
|
|
898
|
+
"type": {
|
|
899
|
+
"option": "pubkey";
|
|
900
|
+
};
|
|
901
|
+
},
|
|
902
|
+
{
|
|
903
|
+
"name": "isEmergency";
|
|
904
|
+
"type": {
|
|
905
|
+
"option": "bool";
|
|
906
|
+
};
|
|
907
|
+
},
|
|
908
|
+
{
|
|
909
|
+
"name": "apiWallet";
|
|
910
|
+
"type": {
|
|
911
|
+
"option": "pubkey";
|
|
912
|
+
};
|
|
913
|
+
},
|
|
914
|
+
{
|
|
915
|
+
"name": "internalMultisigWallets";
|
|
916
|
+
"type": {
|
|
917
|
+
"option": {
|
|
918
|
+
"array": [
|
|
919
|
+
"pubkey",
|
|
920
|
+
5
|
|
921
|
+
];
|
|
922
|
+
};
|
|
923
|
+
};
|
|
924
|
+
}
|
|
925
|
+
];
|
|
926
|
+
};
|
|
927
|
+
},
|
|
928
|
+
{
|
|
929
|
+
"name": "withdrawTokensArgs";
|
|
930
|
+
"type": {
|
|
931
|
+
"kind": "struct";
|
|
932
|
+
"fields": [
|
|
933
|
+
{
|
|
934
|
+
"name": "amount";
|
|
935
|
+
"type": "u64";
|
|
936
|
+
}
|
|
937
|
+
];
|
|
938
|
+
};
|
|
939
|
+
},
|
|
940
|
+
{
|
|
941
|
+
"name": "withdrawalVote";
|
|
942
|
+
"docs": [
|
|
943
|
+
"Withdrawal wallet change voting state.",
|
|
944
|
+
"",
|
|
945
|
+
"There is a single global voting account (PDA) derived from `SEED_WITHDRAWAL_VOTE`.",
|
|
946
|
+
"Internal multisig wallets (stored in `GlobalInfo`) can approve a proposed",
|
|
947
|
+
"new withdrawal wallet. When approvals reach the threshold (3-of-5), the",
|
|
948
|
+
"program updates `GlobalInfo.withdrawal_wallet` and marks the vote as completed."
|
|
949
|
+
];
|
|
950
|
+
"type": {
|
|
951
|
+
"kind": "struct";
|
|
952
|
+
"fields": [
|
|
953
|
+
{
|
|
954
|
+
"name": "currentWithdrawalWallet";
|
|
955
|
+
"docs": [
|
|
956
|
+
"The current withdrawal wallet at the time the vote was started."
|
|
957
|
+
];
|
|
958
|
+
"type": "pubkey";
|
|
959
|
+
},
|
|
960
|
+
{
|
|
961
|
+
"name": "proposedWithdrawalWallet";
|
|
962
|
+
"docs": [
|
|
963
|
+
"The proposed new withdrawal wallet."
|
|
964
|
+
];
|
|
965
|
+
"type": "pubkey";
|
|
966
|
+
},
|
|
967
|
+
{
|
|
968
|
+
"name": "approvals";
|
|
969
|
+
"docs": [
|
|
970
|
+
"Approvals from internal multisig wallets, matched by index."
|
|
971
|
+
];
|
|
972
|
+
"type": {
|
|
973
|
+
"array": [
|
|
974
|
+
"bool",
|
|
975
|
+
5
|
|
976
|
+
];
|
|
977
|
+
};
|
|
978
|
+
},
|
|
979
|
+
{
|
|
980
|
+
"name": "approvalsCount";
|
|
981
|
+
"docs": [
|
|
982
|
+
"Number of approvals collected so far."
|
|
983
|
+
];
|
|
984
|
+
"type": "u8";
|
|
985
|
+
},
|
|
986
|
+
{
|
|
987
|
+
"name": "isActive";
|
|
988
|
+
"docs": [
|
|
989
|
+
"Whether the vote is currently active."
|
|
990
|
+
];
|
|
991
|
+
"type": "bool";
|
|
992
|
+
},
|
|
993
|
+
{
|
|
994
|
+
"name": "bump";
|
|
995
|
+
"docs": [
|
|
996
|
+
"Bump for the WithdrawalVote PDA."
|
|
997
|
+
];
|
|
998
|
+
"type": "u8";
|
|
999
|
+
}
|
|
1000
|
+
];
|
|
1001
|
+
};
|
|
1002
|
+
}
|
|
1003
|
+
];
|
|
1004
|
+
};
|