@streamflow/staking 7.0.0-alpha.10
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/LICENSE +674 -0
- package/README.md +216 -0
- package/dist/cjs/index.js +39 -0
- package/dist/cjs/solana/client.js +315 -0
- package/dist/cjs/solana/constants.js +61 -0
- package/dist/cjs/solana/descriptor/fee_manager.js +2 -0
- package/dist/cjs/solana/descriptor/idl/fee_manager.json +284 -0
- package/dist/cjs/solana/descriptor/idl/reward_pool.json +905 -0
- package/dist/cjs/solana/descriptor/idl/stake_pool.json +734 -0
- package/dist/cjs/solana/descriptor/reward_pool.js +2 -0
- package/dist/cjs/solana/descriptor/stake_pool.js +2 -0
- package/dist/cjs/solana/lib/derive-accounts.js +46 -0
- package/dist/cjs/solana/lib/rewards.js +134 -0
- package/dist/cjs/solana/types.js +2 -0
- package/dist/cjs/solana/utils.js +61 -0
- package/dist/esm/index.d.ts +6 -0
- package/dist/esm/index.js +6 -0
- package/dist/esm/solana/client.d.ts +77 -0
- package/dist/esm/solana/client.js +313 -0
- package/dist/esm/solana/constants.d.ts +50 -0
- package/dist/esm/solana/constants.js +58 -0
- package/dist/esm/solana/descriptor/fee_manager.d.ts +290 -0
- package/dist/esm/solana/descriptor/fee_manager.js +1 -0
- package/dist/esm/solana/descriptor/idl/fee_manager.json +284 -0
- package/dist/esm/solana/descriptor/idl/reward_pool.json +905 -0
- package/dist/esm/solana/descriptor/idl/stake_pool.json +734 -0
- package/dist/esm/solana/descriptor/reward_pool.d.ts +939 -0
- package/dist/esm/solana/descriptor/reward_pool.js +1 -0
- package/dist/esm/solana/descriptor/stake_pool.d.ts +538 -0
- package/dist/esm/solana/descriptor/stake_pool.js +1 -0
- package/dist/esm/solana/lib/derive-accounts.d.ts +10 -0
- package/dist/esm/solana/lib/derive-accounts.js +31 -0
- package/dist/esm/solana/lib/rewards.d.ts +24 -0
- package/dist/esm/solana/lib/rewards.js +136 -0
- package/dist/esm/solana/types.d.ts +66 -0
- package/dist/esm/solana/types.js +1 -0
- package/dist/esm/solana/utils.d.ts +11 -0
- package/dist/esm/solana/utils.js +50 -0
- package/package.json +48 -0
|
@@ -0,0 +1,939 @@
|
|
|
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/reward_pool.json`.
|
|
6
|
+
*/
|
|
7
|
+
export type RewardPool = {
|
|
8
|
+
address: "RWRDdfRbi3339VgKxTAXg4cjyniF7cbhNbMxZWiSKmj";
|
|
9
|
+
metadata: {
|
|
10
|
+
name: "rewardPool";
|
|
11
|
+
version: "1.0.0";
|
|
12
|
+
spec: "0.1.0";
|
|
13
|
+
description: "Program to manage Reward Pools for Stake Pools and claim rewards from them";
|
|
14
|
+
};
|
|
15
|
+
instructions: [
|
|
16
|
+
{
|
|
17
|
+
name: "changeAuthority";
|
|
18
|
+
discriminator: [50, 106, 66, 104, 99, 118, 145, 88];
|
|
19
|
+
accounts: [
|
|
20
|
+
{
|
|
21
|
+
name: "authority";
|
|
22
|
+
docs: ["Current Authority"];
|
|
23
|
+
writable: true;
|
|
24
|
+
signer: true;
|
|
25
|
+
relations: ["rewardPool"];
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
name: "newAuthority";
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
name: "rewardPool";
|
|
32
|
+
docs: ["Stake Pool"];
|
|
33
|
+
writable: true;
|
|
34
|
+
}
|
|
35
|
+
];
|
|
36
|
+
args: [];
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: "claimRewards";
|
|
40
|
+
discriminator: [4, 144, 132, 71, 116, 23, 151, 80];
|
|
41
|
+
accounts: [
|
|
42
|
+
{
|
|
43
|
+
name: "rewardPool";
|
|
44
|
+
docs: ["Reward Pool"];
|
|
45
|
+
writable: true;
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
name: "stakeEntry";
|
|
49
|
+
docs: ["Stake Entry for which rewards are being claimed"];
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
name: "rewardEntry";
|
|
53
|
+
docs: ["Reward Entry that stores metadata about claimed rewards"];
|
|
54
|
+
writable: true;
|
|
55
|
+
pda: {
|
|
56
|
+
seeds: [
|
|
57
|
+
{
|
|
58
|
+
kind: "const";
|
|
59
|
+
value: [114, 101, 119, 97, 114, 100, 45, 101, 110, 116, 114, 121];
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
kind: "account";
|
|
63
|
+
path: "rewardPool";
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
kind: "account";
|
|
67
|
+
path: "stakeEntry";
|
|
68
|
+
}
|
|
69
|
+
];
|
|
70
|
+
};
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
name: "vault";
|
|
74
|
+
docs: ["Reward Pool Vault that stores tokens"];
|
|
75
|
+
writable: true;
|
|
76
|
+
relations: ["rewardPool"];
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
name: "to";
|
|
80
|
+
docs: ["Account to send the reward tokens to."];
|
|
81
|
+
writable: true;
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
name: "claimant";
|
|
85
|
+
docs: ["Who is claiming the tokens."];
|
|
86
|
+
writable: true;
|
|
87
|
+
signer: true;
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
name: "mint";
|
|
91
|
+
docs: ["The mint to claim."];
|
|
92
|
+
relations: ["rewardPool"];
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
name: "tokenProgram";
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
name: "systemProgram";
|
|
99
|
+
address: "11111111111111111111111111111111";
|
|
100
|
+
}
|
|
101
|
+
];
|
|
102
|
+
args: [];
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
name: "closeEntry";
|
|
106
|
+
discriminator: [132, 26, 202, 145, 190, 37, 114, 67];
|
|
107
|
+
accounts: [
|
|
108
|
+
{
|
|
109
|
+
name: "rewardPool";
|
|
110
|
+
docs: ["Reward Pool"];
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
name: "stakeEntry";
|
|
114
|
+
docs: ["Stake Entry for which rewards are being claimed"];
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
name: "rewardEntry";
|
|
118
|
+
docs: ["Reward Entry that stores metadata about claimed rewards"];
|
|
119
|
+
writable: true;
|
|
120
|
+
pda: {
|
|
121
|
+
seeds: [
|
|
122
|
+
{
|
|
123
|
+
kind: "const";
|
|
124
|
+
value: [114, 101, 119, 97, 114, 100, 45, 101, 110, 116, 114, 121];
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
kind: "account";
|
|
128
|
+
path: "rewardPool";
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
kind: "account";
|
|
132
|
+
path: "stakeEntry";
|
|
133
|
+
}
|
|
134
|
+
];
|
|
135
|
+
};
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
name: "authority";
|
|
139
|
+
writable: true;
|
|
140
|
+
signer: true;
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
name: "systemProgram";
|
|
144
|
+
address: "11111111111111111111111111111111";
|
|
145
|
+
}
|
|
146
|
+
];
|
|
147
|
+
args: [];
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
name: "createEntry";
|
|
151
|
+
discriminator: [248, 207, 142, 242, 66, 162, 150, 16];
|
|
152
|
+
accounts: [
|
|
153
|
+
{
|
|
154
|
+
name: "stakePool";
|
|
155
|
+
docs: ["Original Stake Pool"];
|
|
156
|
+
relations: ["rewardPool", "stakeEntry"];
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
name: "rewardPool";
|
|
160
|
+
docs: ["Reward Pool"];
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
name: "stakeEntry";
|
|
164
|
+
docs: ["Stake Entry for which rewards are being claimed"];
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
name: "rewardEntry";
|
|
168
|
+
docs: ["Reward Entry that stores metadata about claimed rewards"];
|
|
169
|
+
writable: true;
|
|
170
|
+
pda: {
|
|
171
|
+
seeds: [
|
|
172
|
+
{
|
|
173
|
+
kind: "const";
|
|
174
|
+
value: [114, 101, 119, 97, 114, 100, 45, 101, 110, 116, 114, 121];
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
kind: "account";
|
|
178
|
+
path: "rewardPool";
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
kind: "account";
|
|
182
|
+
path: "stakeEntry";
|
|
183
|
+
}
|
|
184
|
+
];
|
|
185
|
+
};
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
name: "payer";
|
|
189
|
+
docs: ["Rent payer"];
|
|
190
|
+
writable: true;
|
|
191
|
+
signer: true;
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
name: "authority";
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
name: "systemProgram";
|
|
198
|
+
address: "11111111111111111111111111111111";
|
|
199
|
+
}
|
|
200
|
+
];
|
|
201
|
+
args: [];
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
name: "createPool";
|
|
205
|
+
discriminator: [233, 146, 209, 142, 207, 104, 64, 188];
|
|
206
|
+
accounts: [
|
|
207
|
+
{
|
|
208
|
+
name: "stakePool";
|
|
209
|
+
docs: ["Stake Pool to Which Reward Pool is being added"];
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
name: "rewardPool";
|
|
213
|
+
docs: ["Reward Pool to add"];
|
|
214
|
+
writable: true;
|
|
215
|
+
pda: {
|
|
216
|
+
seeds: [
|
|
217
|
+
{
|
|
218
|
+
kind: "const";
|
|
219
|
+
value: [114, 101, 119, 97, 114, 100, 45, 112, 111, 111, 108];
|
|
220
|
+
},
|
|
221
|
+
{
|
|
222
|
+
kind: "account";
|
|
223
|
+
path: "stakePool";
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
kind: "account";
|
|
227
|
+
path: "mint";
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
kind: "arg";
|
|
231
|
+
path: "nonce";
|
|
232
|
+
}
|
|
233
|
+
];
|
|
234
|
+
};
|
|
235
|
+
},
|
|
236
|
+
{
|
|
237
|
+
name: "mint";
|
|
238
|
+
docs: ["Mint used for rewards"];
|
|
239
|
+
},
|
|
240
|
+
{
|
|
241
|
+
name: "vault";
|
|
242
|
+
docs: ["Escrow Account that will store the tokens"];
|
|
243
|
+
writable: true;
|
|
244
|
+
pda: {
|
|
245
|
+
seeds: [
|
|
246
|
+
{
|
|
247
|
+
kind: "const";
|
|
248
|
+
value: [114, 101, 119, 97, 114, 100, 45, 118, 97, 117, 108, 116];
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
kind: "account";
|
|
252
|
+
path: "rewardPool";
|
|
253
|
+
}
|
|
254
|
+
];
|
|
255
|
+
};
|
|
256
|
+
},
|
|
257
|
+
{
|
|
258
|
+
name: "creator";
|
|
259
|
+
docs: ["Reward Pool creator"];
|
|
260
|
+
writable: true;
|
|
261
|
+
signer: true;
|
|
262
|
+
},
|
|
263
|
+
{
|
|
264
|
+
name: "tokenProgram";
|
|
265
|
+
},
|
|
266
|
+
{
|
|
267
|
+
name: "systemProgram";
|
|
268
|
+
address: "11111111111111111111111111111111";
|
|
269
|
+
}
|
|
270
|
+
];
|
|
271
|
+
args: [
|
|
272
|
+
{
|
|
273
|
+
name: "nonce";
|
|
274
|
+
type: "u8";
|
|
275
|
+
},
|
|
276
|
+
{
|
|
277
|
+
name: "rewardAmount";
|
|
278
|
+
type: "u64";
|
|
279
|
+
},
|
|
280
|
+
{
|
|
281
|
+
name: "rewardPeriod";
|
|
282
|
+
type: "u64";
|
|
283
|
+
},
|
|
284
|
+
{
|
|
285
|
+
name: "permissionless";
|
|
286
|
+
type: "bool";
|
|
287
|
+
}
|
|
288
|
+
];
|
|
289
|
+
},
|
|
290
|
+
{
|
|
291
|
+
name: "fundPool";
|
|
292
|
+
discriminator: [36, 57, 233, 176, 181, 20, 87, 159];
|
|
293
|
+
accounts: [
|
|
294
|
+
{
|
|
295
|
+
name: "funder";
|
|
296
|
+
docs: ["Reward Pool funder"];
|
|
297
|
+
writable: true;
|
|
298
|
+
signer: true;
|
|
299
|
+
},
|
|
300
|
+
{
|
|
301
|
+
name: "from";
|
|
302
|
+
docs: ["Token Account from which tokens will be transferred"];
|
|
303
|
+
writable: true;
|
|
304
|
+
},
|
|
305
|
+
{
|
|
306
|
+
name: "vault";
|
|
307
|
+
docs: ["Reward Pool Vault that stores tokens"];
|
|
308
|
+
writable: true;
|
|
309
|
+
relations: ["rewardPool"];
|
|
310
|
+
},
|
|
311
|
+
{
|
|
312
|
+
name: "mint";
|
|
313
|
+
docs: ["Mint of reward tokens"];
|
|
314
|
+
relations: ["rewardPool"];
|
|
315
|
+
},
|
|
316
|
+
{
|
|
317
|
+
name: "rewardPool";
|
|
318
|
+
docs: ["Stake Pool"];
|
|
319
|
+
writable: true;
|
|
320
|
+
},
|
|
321
|
+
{
|
|
322
|
+
name: "streamflowTreasury";
|
|
323
|
+
writable: true;
|
|
324
|
+
address: "5SEpbdjFK5FxwTvfsGMXVQTD2v4M2c5tyRTxhdsPkgDw";
|
|
325
|
+
},
|
|
326
|
+
{
|
|
327
|
+
name: "streamflowTreasuryTokens";
|
|
328
|
+
writable: true;
|
|
329
|
+
pda: {
|
|
330
|
+
seeds: [
|
|
331
|
+
{
|
|
332
|
+
kind: "account";
|
|
333
|
+
path: "streamflowTreasury";
|
|
334
|
+
},
|
|
335
|
+
{
|
|
336
|
+
kind: "account";
|
|
337
|
+
path: "tokenProgram";
|
|
338
|
+
},
|
|
339
|
+
{
|
|
340
|
+
kind: "account";
|
|
341
|
+
path: "mint";
|
|
342
|
+
}
|
|
343
|
+
];
|
|
344
|
+
program: {
|
|
345
|
+
kind: "const";
|
|
346
|
+
value: [
|
|
347
|
+
140,
|
|
348
|
+
151,
|
|
349
|
+
37,
|
|
350
|
+
143,
|
|
351
|
+
78,
|
|
352
|
+
36,
|
|
353
|
+
137,
|
|
354
|
+
241,
|
|
355
|
+
187,
|
|
356
|
+
61,
|
|
357
|
+
16,
|
|
358
|
+
41,
|
|
359
|
+
20,
|
|
360
|
+
142,
|
|
361
|
+
13,
|
|
362
|
+
131,
|
|
363
|
+
11,
|
|
364
|
+
90,
|
|
365
|
+
19,
|
|
366
|
+
153,
|
|
367
|
+
218,
|
|
368
|
+
255,
|
|
369
|
+
16,
|
|
370
|
+
132,
|
|
371
|
+
4,
|
|
372
|
+
142,
|
|
373
|
+
123,
|
|
374
|
+
216,
|
|
375
|
+
219,
|
|
376
|
+
233,
|
|
377
|
+
248,
|
|
378
|
+
89
|
|
379
|
+
];
|
|
380
|
+
};
|
|
381
|
+
};
|
|
382
|
+
},
|
|
383
|
+
{
|
|
384
|
+
name: "config";
|
|
385
|
+
docs: ["Fee Configuration"];
|
|
386
|
+
pda: {
|
|
387
|
+
seeds: [
|
|
388
|
+
{
|
|
389
|
+
kind: "const";
|
|
390
|
+
value: [99, 111, 110, 102, 105, 103];
|
|
391
|
+
}
|
|
392
|
+
];
|
|
393
|
+
program: {
|
|
394
|
+
kind: "account";
|
|
395
|
+
path: "feeProgram";
|
|
396
|
+
};
|
|
397
|
+
};
|
|
398
|
+
},
|
|
399
|
+
{
|
|
400
|
+
name: "feeValue";
|
|
401
|
+
docs: ["Fee Value for the funder account"];
|
|
402
|
+
optional: true;
|
|
403
|
+
pda: {
|
|
404
|
+
seeds: [
|
|
405
|
+
{
|
|
406
|
+
kind: "const";
|
|
407
|
+
value: [102, 101, 101, 45, 118, 97, 108, 117, 101];
|
|
408
|
+
},
|
|
409
|
+
{
|
|
410
|
+
kind: "account";
|
|
411
|
+
path: "funder";
|
|
412
|
+
}
|
|
413
|
+
];
|
|
414
|
+
program: {
|
|
415
|
+
kind: "account";
|
|
416
|
+
path: "feeProgram";
|
|
417
|
+
};
|
|
418
|
+
};
|
|
419
|
+
},
|
|
420
|
+
{
|
|
421
|
+
name: "feeProgram";
|
|
422
|
+
address: "FEELzfBhsWXTNJX53zZcDVfRNoFYZQ6cZA3jLiGVL16V";
|
|
423
|
+
},
|
|
424
|
+
{
|
|
425
|
+
name: "tokenProgram";
|
|
426
|
+
}
|
|
427
|
+
];
|
|
428
|
+
args: [
|
|
429
|
+
{
|
|
430
|
+
name: "amount";
|
|
431
|
+
type: "u64";
|
|
432
|
+
}
|
|
433
|
+
];
|
|
434
|
+
},
|
|
435
|
+
{
|
|
436
|
+
name: "updatePool";
|
|
437
|
+
discriminator: [239, 214, 170, 78, 36, 35, 30, 34];
|
|
438
|
+
accounts: [
|
|
439
|
+
{
|
|
440
|
+
name: "authority";
|
|
441
|
+
docs: ["Current Authority"];
|
|
442
|
+
writable: true;
|
|
443
|
+
signer: true;
|
|
444
|
+
relations: ["rewardPool"];
|
|
445
|
+
},
|
|
446
|
+
{
|
|
447
|
+
name: "rewardPool";
|
|
448
|
+
docs: ["Stake Pool"];
|
|
449
|
+
writable: true;
|
|
450
|
+
}
|
|
451
|
+
];
|
|
452
|
+
args: [
|
|
453
|
+
{
|
|
454
|
+
name: "rewardAmount";
|
|
455
|
+
type: {
|
|
456
|
+
option: "u64";
|
|
457
|
+
};
|
|
458
|
+
},
|
|
459
|
+
{
|
|
460
|
+
name: "rewardPeriod";
|
|
461
|
+
type: {
|
|
462
|
+
option: "u64";
|
|
463
|
+
};
|
|
464
|
+
}
|
|
465
|
+
];
|
|
466
|
+
}
|
|
467
|
+
];
|
|
468
|
+
accounts: [
|
|
469
|
+
{
|
|
470
|
+
name: "config";
|
|
471
|
+
discriminator: [155, 12, 170, 224, 30, 250, 204, 130];
|
|
472
|
+
},
|
|
473
|
+
{
|
|
474
|
+
name: "feeValue";
|
|
475
|
+
discriminator: [10, 188, 89, 64, 4, 183, 231, 0];
|
|
476
|
+
},
|
|
477
|
+
{
|
|
478
|
+
name: "rewardEntry";
|
|
479
|
+
discriminator: [208, 191, 173, 14, 213, 84, 179, 162];
|
|
480
|
+
},
|
|
481
|
+
{
|
|
482
|
+
name: "rewardPool";
|
|
483
|
+
discriminator: [134, 121, 197, 211, 133, 154, 82, 32];
|
|
484
|
+
},
|
|
485
|
+
{
|
|
486
|
+
name: "stakeEntry";
|
|
487
|
+
discriminator: [187, 127, 9, 35, 155, 68, 86, 40];
|
|
488
|
+
},
|
|
489
|
+
{
|
|
490
|
+
name: "stakePool";
|
|
491
|
+
discriminator: [121, 34, 206, 21, 79, 127, 255, 28];
|
|
492
|
+
}
|
|
493
|
+
];
|
|
494
|
+
errors: [
|
|
495
|
+
{
|
|
496
|
+
code: 6000;
|
|
497
|
+
name: "arithmeticError";
|
|
498
|
+
msg: "Arithmetic Error (overflow/underflow)";
|
|
499
|
+
},
|
|
500
|
+
{
|
|
501
|
+
code: 6001;
|
|
502
|
+
name: "invalidRewardAmount";
|
|
503
|
+
msg: "Reward amount should be more than 0";
|
|
504
|
+
},
|
|
505
|
+
{
|
|
506
|
+
code: 6002;
|
|
507
|
+
name: "invalidRewardPeriod";
|
|
508
|
+
msg: "Reward period should be more than 0";
|
|
509
|
+
},
|
|
510
|
+
{
|
|
511
|
+
code: 6003;
|
|
512
|
+
name: "unauthorized";
|
|
513
|
+
msg: "Account is not authorized to execute this instruction";
|
|
514
|
+
},
|
|
515
|
+
{
|
|
516
|
+
code: 6004;
|
|
517
|
+
name: "ownerMismatch";
|
|
518
|
+
msg: "Token account owner did not match intended owner";
|
|
519
|
+
},
|
|
520
|
+
{
|
|
521
|
+
code: 6005;
|
|
522
|
+
name: "invalidRewardVault";
|
|
523
|
+
msg: "Provided Reward Vault is Invalid";
|
|
524
|
+
},
|
|
525
|
+
{
|
|
526
|
+
code: 6006;
|
|
527
|
+
name: "invalidRewardEntry";
|
|
528
|
+
msg: "Provided Reward Entry is Invalid";
|
|
529
|
+
},
|
|
530
|
+
{
|
|
531
|
+
code: 6007;
|
|
532
|
+
name: "invalidStakeEntry";
|
|
533
|
+
msg: "Provided Stake Entry is Invalid";
|
|
534
|
+
},
|
|
535
|
+
{
|
|
536
|
+
code: 6008;
|
|
537
|
+
name: "invalidRewardPool";
|
|
538
|
+
msg: "Provided Reward Pool is Invalid";
|
|
539
|
+
},
|
|
540
|
+
{
|
|
541
|
+
code: 6009;
|
|
542
|
+
name: "invalidMint";
|
|
543
|
+
msg: "Invalid Mint";
|
|
544
|
+
},
|
|
545
|
+
{
|
|
546
|
+
code: 6010;
|
|
547
|
+
name: "stakeEntryClosed";
|
|
548
|
+
msg: "Stake Entry is closed, rewards are not claimable anymore";
|
|
549
|
+
},
|
|
550
|
+
{
|
|
551
|
+
code: 6011;
|
|
552
|
+
name: "stakeEntryOpened";
|
|
553
|
+
msg: "Stake Entry is still opened, closing is not possible";
|
|
554
|
+
},
|
|
555
|
+
{
|
|
556
|
+
code: 6012;
|
|
557
|
+
name: "rewardPoolDrained";
|
|
558
|
+
msg: "Reward Pool does not have enough Rewards for Claiming";
|
|
559
|
+
}
|
|
560
|
+
];
|
|
561
|
+
types: [
|
|
562
|
+
{
|
|
563
|
+
name: "config";
|
|
564
|
+
type: {
|
|
565
|
+
kind: "struct";
|
|
566
|
+
fields: [
|
|
567
|
+
{
|
|
568
|
+
name: "authority";
|
|
569
|
+
docs: ["Fee Manager authority"];
|
|
570
|
+
type: "pubkey";
|
|
571
|
+
},
|
|
572
|
+
{
|
|
573
|
+
name: "streamflowFee";
|
|
574
|
+
docs: ["Default fee"];
|
|
575
|
+
type: "u64";
|
|
576
|
+
},
|
|
577
|
+
{
|
|
578
|
+
name: "buffer1";
|
|
579
|
+
docs: ["Buffer for additional fields"];
|
|
580
|
+
type: {
|
|
581
|
+
array: ["u8", 64];
|
|
582
|
+
};
|
|
583
|
+
},
|
|
584
|
+
{
|
|
585
|
+
name: "buffer2";
|
|
586
|
+
docs: ["Buffer for additional fields"];
|
|
587
|
+
type: {
|
|
588
|
+
array: ["u8", 64];
|
|
589
|
+
};
|
|
590
|
+
},
|
|
591
|
+
{
|
|
592
|
+
name: "buffer3";
|
|
593
|
+
docs: ["Buffer for additional fields"];
|
|
594
|
+
type: {
|
|
595
|
+
array: ["u8", 64];
|
|
596
|
+
};
|
|
597
|
+
}
|
|
598
|
+
];
|
|
599
|
+
};
|
|
600
|
+
},
|
|
601
|
+
{
|
|
602
|
+
name: "feeValue";
|
|
603
|
+
type: {
|
|
604
|
+
kind: "struct";
|
|
605
|
+
fields: [
|
|
606
|
+
{
|
|
607
|
+
name: "streamflowFee";
|
|
608
|
+
type: "u64";
|
|
609
|
+
},
|
|
610
|
+
{
|
|
611
|
+
name: "buffer";
|
|
612
|
+
docs: ["Buffer for additional fields"];
|
|
613
|
+
type: {
|
|
614
|
+
array: ["u8", 64];
|
|
615
|
+
};
|
|
616
|
+
}
|
|
617
|
+
];
|
|
618
|
+
};
|
|
619
|
+
},
|
|
620
|
+
{
|
|
621
|
+
name: "rewardEntry";
|
|
622
|
+
type: {
|
|
623
|
+
kind: "struct";
|
|
624
|
+
fields: [
|
|
625
|
+
{
|
|
626
|
+
name: "rewardPool";
|
|
627
|
+
docs: ["Reward Pool"];
|
|
628
|
+
type: "pubkey";
|
|
629
|
+
},
|
|
630
|
+
{
|
|
631
|
+
name: "stakeEntry";
|
|
632
|
+
docs: ["Stake Entry for which reward entry was initialized"];
|
|
633
|
+
type: "pubkey";
|
|
634
|
+
},
|
|
635
|
+
{
|
|
636
|
+
name: "createdTs";
|
|
637
|
+
docs: ["Timestamp when reward entry has been created"];
|
|
638
|
+
type: "u64";
|
|
639
|
+
},
|
|
640
|
+
{
|
|
641
|
+
name: "accountedAmount";
|
|
642
|
+
docs: ["Sum of accounted amounts, used to correctly issue rewards in case of precision loss"];
|
|
643
|
+
type: "u128";
|
|
644
|
+
},
|
|
645
|
+
{
|
|
646
|
+
name: "claimedAmount";
|
|
647
|
+
docs: ["Sum of already claimed rewards"];
|
|
648
|
+
type: "u64";
|
|
649
|
+
},
|
|
650
|
+
{
|
|
651
|
+
name: "lastAccountedTs";
|
|
652
|
+
docs: ["Timestamp when rewards have been claimed last time"];
|
|
653
|
+
type: "u64";
|
|
654
|
+
},
|
|
655
|
+
{
|
|
656
|
+
name: "lastRewardAmount";
|
|
657
|
+
docs: ["Reward amount used on last claim or entry creation"];
|
|
658
|
+
type: "u64";
|
|
659
|
+
},
|
|
660
|
+
{
|
|
661
|
+
name: "lastRewardPeriod";
|
|
662
|
+
docs: ["Reward Period used on last claim or entry creation"];
|
|
663
|
+
type: "u64";
|
|
664
|
+
},
|
|
665
|
+
{
|
|
666
|
+
name: "buffer";
|
|
667
|
+
docs: ["Buffer for additional fields"];
|
|
668
|
+
type: {
|
|
669
|
+
array: ["u8", 32];
|
|
670
|
+
};
|
|
671
|
+
}
|
|
672
|
+
];
|
|
673
|
+
};
|
|
674
|
+
},
|
|
675
|
+
{
|
|
676
|
+
name: "rewardPool";
|
|
677
|
+
type: {
|
|
678
|
+
kind: "struct";
|
|
679
|
+
fields: [
|
|
680
|
+
{
|
|
681
|
+
name: "bump";
|
|
682
|
+
docs: ["Bump Seed used to sign transactions"];
|
|
683
|
+
type: "u8";
|
|
684
|
+
},
|
|
685
|
+
{
|
|
686
|
+
name: "nonce";
|
|
687
|
+
docs: ["Nonce to differentiate pools for the same mint"];
|
|
688
|
+
type: "u8";
|
|
689
|
+
},
|
|
690
|
+
{
|
|
691
|
+
name: "stakePool";
|
|
692
|
+
docs: ["Stake Pool for which Reward Pool was added"];
|
|
693
|
+
type: "pubkey";
|
|
694
|
+
},
|
|
695
|
+
{
|
|
696
|
+
name: "mint";
|
|
697
|
+
docs: ["Mint of Reward Pool"];
|
|
698
|
+
type: "pubkey";
|
|
699
|
+
},
|
|
700
|
+
{
|
|
701
|
+
name: "creator";
|
|
702
|
+
docs: ["Creator of the Pool"];
|
|
703
|
+
type: "pubkey";
|
|
704
|
+
},
|
|
705
|
+
{
|
|
706
|
+
name: "authority";
|
|
707
|
+
docs: ["Current authority"];
|
|
708
|
+
type: "pubkey";
|
|
709
|
+
},
|
|
710
|
+
{
|
|
711
|
+
name: "rewardAmount";
|
|
712
|
+
docs: [
|
|
713
|
+
"Amount of rewards that will be distributed per effective stake",
|
|
714
|
+
"",
|
|
715
|
+
"Should be a fraction of a raw token amount which is 1 / 10^9,",
|
|
716
|
+
"i.e. `reward_amount` of `1_000_000_000` equals one raw token per effective stake"
|
|
717
|
+
];
|
|
718
|
+
type: "u64";
|
|
719
|
+
},
|
|
720
|
+
{
|
|
721
|
+
name: "rewardPeriod";
|
|
722
|
+
docs: ["Period of Rewards distribution in seconds"];
|
|
723
|
+
type: "u64";
|
|
724
|
+
},
|
|
725
|
+
{
|
|
726
|
+
name: "permissionless";
|
|
727
|
+
docs: ["Whether anyone can fund the Pool"];
|
|
728
|
+
type: "bool";
|
|
729
|
+
},
|
|
730
|
+
{
|
|
731
|
+
name: "lastRewardAmount";
|
|
732
|
+
docs: ["`reward_amount` used before the last update"];
|
|
733
|
+
type: "u64";
|
|
734
|
+
},
|
|
735
|
+
{
|
|
736
|
+
name: "lastRewardPeriod";
|
|
737
|
+
docs: ["`reward_period` used before the last update"];
|
|
738
|
+
type: "u64";
|
|
739
|
+
},
|
|
740
|
+
{
|
|
741
|
+
name: "lastAmountUpdateTs";
|
|
742
|
+
docs: ["Time when `reward_amount` was updated the last time"];
|
|
743
|
+
type: "u64";
|
|
744
|
+
},
|
|
745
|
+
{
|
|
746
|
+
name: "lastPeriodUpdateTs";
|
|
747
|
+
docs: ["Time when `reward_period` was updated the last time"];
|
|
748
|
+
type: "u64";
|
|
749
|
+
},
|
|
750
|
+
{
|
|
751
|
+
name: "vault";
|
|
752
|
+
docs: ["Escrow Account that stores reward tokens"];
|
|
753
|
+
type: "pubkey";
|
|
754
|
+
},
|
|
755
|
+
{
|
|
756
|
+
name: "fundedAmount";
|
|
757
|
+
docs: ["Total funded amount"];
|
|
758
|
+
type: "u64";
|
|
759
|
+
},
|
|
760
|
+
{
|
|
761
|
+
name: "claimedAmount";
|
|
762
|
+
docs: ["Total number of rewards claimed"];
|
|
763
|
+
type: "u64";
|
|
764
|
+
},
|
|
765
|
+
{
|
|
766
|
+
name: "createdTs";
|
|
767
|
+
docs: ["Time when Reward Pool was created"];
|
|
768
|
+
type: "u64";
|
|
769
|
+
},
|
|
770
|
+
{
|
|
771
|
+
name: "buffer";
|
|
772
|
+
docs: ["Buffer for additional fields"];
|
|
773
|
+
type: {
|
|
774
|
+
array: ["u8", 56];
|
|
775
|
+
};
|
|
776
|
+
}
|
|
777
|
+
];
|
|
778
|
+
};
|
|
779
|
+
},
|
|
780
|
+
{
|
|
781
|
+
name: "stakeEntry";
|
|
782
|
+
type: {
|
|
783
|
+
kind: "struct";
|
|
784
|
+
fields: [
|
|
785
|
+
{
|
|
786
|
+
name: "nonce";
|
|
787
|
+
docs: ["Nonce to differentiate stakes for the same pool"];
|
|
788
|
+
type: "u32";
|
|
789
|
+
},
|
|
790
|
+
{
|
|
791
|
+
name: "stakePool";
|
|
792
|
+
docs: ["Stake Pool for which tokens were staked"];
|
|
793
|
+
type: "pubkey";
|
|
794
|
+
},
|
|
795
|
+
{
|
|
796
|
+
name: "payer";
|
|
797
|
+
docs: ["Original Owner of Staked tokens"];
|
|
798
|
+
type: "pubkey";
|
|
799
|
+
},
|
|
800
|
+
{
|
|
801
|
+
name: "authority";
|
|
802
|
+
docs: ["Authority of the Entry"];
|
|
803
|
+
type: "pubkey";
|
|
804
|
+
},
|
|
805
|
+
{
|
|
806
|
+
name: "amount";
|
|
807
|
+
docs: ["Amount of deposited funds"];
|
|
808
|
+
type: "u64";
|
|
809
|
+
},
|
|
810
|
+
{
|
|
811
|
+
name: "duration";
|
|
812
|
+
docs: ["Duration of the lockup"];
|
|
813
|
+
type: "u64";
|
|
814
|
+
},
|
|
815
|
+
{
|
|
816
|
+
name: "effectiveAmount";
|
|
817
|
+
docs: ["Effective Amount staked, does not equal to deposited amount, accounts for Stake Weight"];
|
|
818
|
+
type: "u128";
|
|
819
|
+
},
|
|
820
|
+
{
|
|
821
|
+
name: "createdTs";
|
|
822
|
+
docs: ["Timestamp when Deposit was made"];
|
|
823
|
+
type: "u64";
|
|
824
|
+
},
|
|
825
|
+
{
|
|
826
|
+
name: "closedTs";
|
|
827
|
+
docs: ["Flag whether entry has been already unstaked"];
|
|
828
|
+
type: "u64";
|
|
829
|
+
},
|
|
830
|
+
{
|
|
831
|
+
name: "buffer";
|
|
832
|
+
docs: ["Buffer for additional fields"];
|
|
833
|
+
type: {
|
|
834
|
+
array: ["u8", 64];
|
|
835
|
+
};
|
|
836
|
+
}
|
|
837
|
+
];
|
|
838
|
+
};
|
|
839
|
+
},
|
|
840
|
+
{
|
|
841
|
+
name: "stakePool";
|
|
842
|
+
type: {
|
|
843
|
+
kind: "struct";
|
|
844
|
+
fields: [
|
|
845
|
+
{
|
|
846
|
+
name: "bump";
|
|
847
|
+
docs: ["Bump Seed used to sign transactions"];
|
|
848
|
+
type: "u8";
|
|
849
|
+
},
|
|
850
|
+
{
|
|
851
|
+
name: "nonce";
|
|
852
|
+
docs: ["Nonce to differentiate pools for the same mint"];
|
|
853
|
+
type: "u8";
|
|
854
|
+
},
|
|
855
|
+
{
|
|
856
|
+
name: "mint";
|
|
857
|
+
docs: ["Mint of the Stake Pool"];
|
|
858
|
+
type: "pubkey";
|
|
859
|
+
},
|
|
860
|
+
{
|
|
861
|
+
name: "creator";
|
|
862
|
+
docs: ["Initial Creator"];
|
|
863
|
+
type: "pubkey";
|
|
864
|
+
},
|
|
865
|
+
{
|
|
866
|
+
name: "authority";
|
|
867
|
+
docs: ["Current authority"];
|
|
868
|
+
type: "pubkey";
|
|
869
|
+
},
|
|
870
|
+
{
|
|
871
|
+
name: "minWeight";
|
|
872
|
+
docs: [
|
|
873
|
+
"The lowest weight awarded for staking, measured as a fraction of `1 / SCALE_FACTOR_BASE`.",
|
|
874
|
+
"For instance:",
|
|
875
|
+
"* `min_weight = 1 x SCALE_FACTOR_BASE` signifies a minimum multiplier of 1x for min staking duration",
|
|
876
|
+
"* `min_weight = 2 x SCALE_FACTOR_BASE` indicates a minimum multiplier of 2x for min staking duration"
|
|
877
|
+
];
|
|
878
|
+
type: "u64";
|
|
879
|
+
},
|
|
880
|
+
{
|
|
881
|
+
name: "maxWeight";
|
|
882
|
+
docs: [
|
|
883
|
+
"The highest weight awarded for staking, measured as a fraction of `1 / SCALE_FACTOR_BASE`.",
|
|
884
|
+
"For instance:",
|
|
885
|
+
"* `max_weight = 1 x SCALE_FACTOR_BASE` signifies a max multiplier of 1x for max staking duration",
|
|
886
|
+
"* `max_weight = 2 x SCALE_FACTOR_BASE` indicates a max multiplier of 2x for max staking duration"
|
|
887
|
+
];
|
|
888
|
+
type: "u64";
|
|
889
|
+
},
|
|
890
|
+
{
|
|
891
|
+
name: "minDuration";
|
|
892
|
+
docs: ["Min Duration of stake in seconds"];
|
|
893
|
+
type: "u64";
|
|
894
|
+
},
|
|
895
|
+
{
|
|
896
|
+
name: "maxDuration";
|
|
897
|
+
docs: ["Max Duration of stake in seconds, the more duration, the more weight the stake has"];
|
|
898
|
+
type: "u64";
|
|
899
|
+
},
|
|
900
|
+
{
|
|
901
|
+
name: "permissionless";
|
|
902
|
+
docs: ["Whether anyone can add Reward Pools or just admin"];
|
|
903
|
+
type: "bool";
|
|
904
|
+
},
|
|
905
|
+
{
|
|
906
|
+
name: "vault";
|
|
907
|
+
docs: ["Escrow Account that stores staked tokens"];
|
|
908
|
+
type: "pubkey";
|
|
909
|
+
},
|
|
910
|
+
{
|
|
911
|
+
name: "stakeMint";
|
|
912
|
+
docs: ["Stake Mint, will be returned in exchange for stake tokens"];
|
|
913
|
+
type: "pubkey";
|
|
914
|
+
},
|
|
915
|
+
{
|
|
916
|
+
name: "totalStake";
|
|
917
|
+
docs: ["Total number of Staked tokens"];
|
|
918
|
+
type: "u64";
|
|
919
|
+
},
|
|
920
|
+
{
|
|
921
|
+
name: "totalEffectiveStake";
|
|
922
|
+
docs: [
|
|
923
|
+
"Total staked tokens accounting for each stake weight, does not equal `total_stake`,",
|
|
924
|
+
"represents a sum of effective stake multiplied by 10^9 for precision"
|
|
925
|
+
];
|
|
926
|
+
type: "u128";
|
|
927
|
+
},
|
|
928
|
+
{
|
|
929
|
+
name: "buffer";
|
|
930
|
+
docs: ["Buffer for additional fields"];
|
|
931
|
+
type: {
|
|
932
|
+
array: ["u8", 64];
|
|
933
|
+
};
|
|
934
|
+
}
|
|
935
|
+
];
|
|
936
|
+
};
|
|
937
|
+
}
|
|
938
|
+
];
|
|
939
|
+
};
|