@streamflow/staking 7.5.2 → 7.5.3-alpha.cffa362.20250508190445
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/cjs/index.cjs +3879 -0
- package/dist/cjs/index.cjs.map +1 -0
- package/dist/cjs/index.d.cts +298 -0
- package/dist/cjs/solana/descriptor/fee_manager.cjs +4 -0
- package/dist/cjs/solana/descriptor/fee_manager.cjs.map +1 -0
- package/dist/cjs/solana/descriptor/fee_manager.d.cts +292 -0
- package/dist/cjs/solana/descriptor/reward_pool.cjs +4 -0
- package/dist/cjs/solana/descriptor/reward_pool.cjs.map +1 -0
- package/dist/cjs/solana/descriptor/reward_pool.d.cts +967 -0
- package/dist/cjs/solana/descriptor/stake_pool.cjs +4 -0
- package/dist/cjs/solana/descriptor/stake_pool.cjs.map +1 -0
- package/dist/cjs/solana/descriptor/stake_pool.d.cts +954 -0
- package/dist/esm/index.d.ts +298 -7
- package/dist/esm/index.js +3854 -7
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/solana/descriptor/fee_manager.d.ts +3 -1
- package/dist/esm/solana/descriptor/fee_manager.js +3 -1
- package/dist/esm/solana/descriptor/fee_manager.js.map +1 -0
- package/dist/esm/solana/descriptor/idl/fee_manager.json +407 -407
- package/dist/esm/solana/descriptor/idl/reward_pool.json +1294 -1294
- package/dist/esm/solana/descriptor/idl/stake_pool.json +1256 -918
- package/dist/esm/solana/descriptor/reward_pool.d.ts +3 -1
- package/dist/esm/solana/descriptor/reward_pool.js +3 -1
- package/dist/esm/solana/descriptor/reward_pool.js.map +1 -0
- package/dist/esm/solana/descriptor/stake_pool.d.ts +234 -2
- package/dist/esm/solana/descriptor/stake_pool.js +3 -1
- package/dist/esm/solana/descriptor/stake_pool.js.map +1 -0
- package/package.json +63 -18
- package/dist/cjs/__tests__/solana/rewards.spec.js +0 -61
- package/dist/cjs/index.js +0 -37
- package/dist/cjs/solana/client.js +0 -336
- package/dist/cjs/solana/constants.js +0 -72
- package/dist/cjs/solana/descriptor/fee_manager.js +0 -2
- package/dist/cjs/solana/descriptor/idl/fee_manager.json +0 -436
- package/dist/cjs/solana/descriptor/idl/reward_pool.json +0 -1372
- package/dist/cjs/solana/descriptor/idl/stake_pool.json +0 -980
- package/dist/cjs/solana/descriptor/reward_pool.js +0 -2
- package/dist/cjs/solana/descriptor/stake_pool.js +0 -2
- package/dist/cjs/solana/lib/derive-accounts.js +0 -46
- package/dist/cjs/solana/lib/fee-amounts.js +0 -44
- package/dist/cjs/solana/lib/rewards.js +0 -154
- package/dist/cjs/solana/lib/stake-weight.js +0 -19
- package/dist/cjs/solana/types.js +0 -2
- package/dist/esm/__tests__/solana/rewards.spec.d.ts +0 -1
- package/dist/esm/__tests__/solana/rewards.spec.js +0 -56
- package/dist/esm/solana/client.d.ts +0 -89
- package/dist/esm/solana/client.js +0 -334
- package/dist/esm/solana/constants.d.ts +0 -54
- package/dist/esm/solana/constants.js +0 -69
- package/dist/esm/solana/lib/derive-accounts.d.ts +0 -10
- package/dist/esm/solana/lib/derive-accounts.js +0 -31
- package/dist/esm/solana/lib/fee-amounts.d.ts +0 -9
- package/dist/esm/solana/lib/fee-amounts.js +0 -38
- package/dist/esm/solana/lib/rewards.d.ts +0 -26
- package/dist/esm/solana/lib/rewards.js +0 -152
- package/dist/esm/solana/lib/stake-weight.d.ts +0 -2
- package/dist/esm/solana/lib/stake-weight.js +0 -12
- package/dist/esm/solana/types.d.ts +0 -77
- package/dist/esm/solana/types.js +0 -1
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Note that this is only a type helper and is not the actual IDL. The original
|
|
5
5
|
* IDL can be found at `target/idl/reward_pool.json`.
|
|
6
6
|
*/
|
|
7
|
-
|
|
7
|
+
type RewardPool = {
|
|
8
8
|
address: "RWRDdfRbi3339VgKxTAXg4cjyniF7cbhNbMxZWiSKmj";
|
|
9
9
|
metadata: {
|
|
10
10
|
name: "rewardPool";
|
|
@@ -963,3 +963,5 @@ export type RewardPool = {
|
|
|
963
963
|
}
|
|
964
964
|
];
|
|
965
965
|
};
|
|
966
|
+
|
|
967
|
+
export type { RewardPool };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"reward_pool.js"}
|
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
* Note that this is only a type helper and is not the actual IDL. The original
|
|
5
5
|
* IDL can be found at `target/idl/stake_pool.json`.
|
|
6
6
|
*/
|
|
7
|
-
|
|
7
|
+
type StakePool = {
|
|
8
8
|
address: "STAKEvGqQTtzJZH6BWDcbpzXXn2BBerPAgQ3EGLN2GH";
|
|
9
9
|
metadata: {
|
|
10
10
|
name: "stakePool";
|
|
11
|
-
version: "1.
|
|
11
|
+
version: "2.1.1";
|
|
12
12
|
spec: "0.1.0";
|
|
13
13
|
description: "Program to manage Stake Pools and stake/unstake tokens";
|
|
14
14
|
};
|
|
@@ -34,6 +34,72 @@ export type StakePool = {
|
|
|
34
34
|
];
|
|
35
35
|
args: [];
|
|
36
36
|
},
|
|
37
|
+
{
|
|
38
|
+
name: "createLookupTable";
|
|
39
|
+
discriminator: [74, 26, 45, 214, 23, 155, 143, 153];
|
|
40
|
+
accounts: [
|
|
41
|
+
{
|
|
42
|
+
name: "stakePool";
|
|
43
|
+
docs: ["Stake Pool"];
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
name: "lookupTableLink";
|
|
47
|
+
docs: ["Link that will store address of the actual Lookup Table"];
|
|
48
|
+
writable: true;
|
|
49
|
+
pda: {
|
|
50
|
+
seeds: [
|
|
51
|
+
{
|
|
52
|
+
kind: "const";
|
|
53
|
+
value: [108, 111, 111, 107, 117, 112, 45, 116, 97, 98, 108, 101];
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
kind: "account";
|
|
57
|
+
path: "stakePool";
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
kind: "account";
|
|
61
|
+
path: "authority";
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
kind: "arg";
|
|
65
|
+
path: "nonce";
|
|
66
|
+
}
|
|
67
|
+
];
|
|
68
|
+
};
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
name: "lookupTable";
|
|
72
|
+
writable: true;
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
name: "lookupTableProgram";
|
|
76
|
+
address: "AddressLookupTab1e1111111111111111111111111";
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
name: "payer";
|
|
80
|
+
docs: ["Payer of the transaction"];
|
|
81
|
+
writable: true;
|
|
82
|
+
signer: true;
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
name: "authority";
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
name: "systemProgram";
|
|
89
|
+
address: "11111111111111111111111111111111";
|
|
90
|
+
}
|
|
91
|
+
];
|
|
92
|
+
args: [
|
|
93
|
+
{
|
|
94
|
+
name: "nonce";
|
|
95
|
+
type: "u32";
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
name: "recentSlot";
|
|
99
|
+
type: "u64";
|
|
100
|
+
}
|
|
101
|
+
];
|
|
102
|
+
},
|
|
37
103
|
{
|
|
38
104
|
name: "createPool";
|
|
39
105
|
discriminator: [233, 146, 209, 142, 207, 104, 64, 188];
|
|
@@ -147,6 +213,131 @@ export type StakePool = {
|
|
|
147
213
|
}
|
|
148
214
|
];
|
|
149
215
|
},
|
|
216
|
+
{
|
|
217
|
+
name: "migrateEntry";
|
|
218
|
+
discriminator: [239, 154, 55, 173, 110, 36, 188, 214];
|
|
219
|
+
accounts: [
|
|
220
|
+
{
|
|
221
|
+
name: "stakePoolFrom";
|
|
222
|
+
docs: ["Stake Pool"];
|
|
223
|
+
writable: true;
|
|
224
|
+
address: "Cja9f8JFS6sTgBqSRZGBrA2HDbUj4MZUGdtRYruKTeJp";
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
name: "stakePoolTo";
|
|
228
|
+
docs: ["Stake Pool"];
|
|
229
|
+
writable: true;
|
|
230
|
+
address: "BXRBbWMkscNBZoBL4fgRk77GBUX9eVP4AendQEumtPi8";
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
name: "stakeEntryFrom";
|
|
234
|
+
docs: ["Entry that will store Stake Metadata"];
|
|
235
|
+
writable: true;
|
|
236
|
+
pda: {
|
|
237
|
+
seeds: [
|
|
238
|
+
{
|
|
239
|
+
kind: "const";
|
|
240
|
+
value: [115, 116, 97, 107, 101, 45, 101, 110, 116, 114, 121];
|
|
241
|
+
},
|
|
242
|
+
{
|
|
243
|
+
kind: "account";
|
|
244
|
+
path: "stakePoolFrom";
|
|
245
|
+
},
|
|
246
|
+
{
|
|
247
|
+
kind: "account";
|
|
248
|
+
path: "authority";
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
kind: "arg";
|
|
252
|
+
path: "nonce";
|
|
253
|
+
}
|
|
254
|
+
];
|
|
255
|
+
};
|
|
256
|
+
},
|
|
257
|
+
{
|
|
258
|
+
name: "stakeEntryTo";
|
|
259
|
+
docs: ["Entry that will store Stake Metadata"];
|
|
260
|
+
writable: true;
|
|
261
|
+
pda: {
|
|
262
|
+
seeds: [
|
|
263
|
+
{
|
|
264
|
+
kind: "const";
|
|
265
|
+
value: [115, 116, 97, 107, 101, 45, 101, 110, 116, 114, 121];
|
|
266
|
+
},
|
|
267
|
+
{
|
|
268
|
+
kind: "account";
|
|
269
|
+
path: "stakePoolTo";
|
|
270
|
+
},
|
|
271
|
+
{
|
|
272
|
+
kind: "account";
|
|
273
|
+
path: "authority";
|
|
274
|
+
},
|
|
275
|
+
{
|
|
276
|
+
kind: "arg";
|
|
277
|
+
path: "newNonce";
|
|
278
|
+
}
|
|
279
|
+
];
|
|
280
|
+
};
|
|
281
|
+
},
|
|
282
|
+
{
|
|
283
|
+
name: "vaultFrom";
|
|
284
|
+
docs: ["Stake Pool Vault that stores staked tokens"];
|
|
285
|
+
writable: true;
|
|
286
|
+
},
|
|
287
|
+
{
|
|
288
|
+
name: "vaultTo";
|
|
289
|
+
docs: ["Stake Pool Vault that stores staked tokens"];
|
|
290
|
+
writable: true;
|
|
291
|
+
},
|
|
292
|
+
{
|
|
293
|
+
name: "to";
|
|
294
|
+
docs: ["Token Account to transfer Stake Mint tokens to"];
|
|
295
|
+
writable: true;
|
|
296
|
+
},
|
|
297
|
+
{
|
|
298
|
+
name: "payer";
|
|
299
|
+
docs: ["Owner of the Token Account from which tokens will be staked"];
|
|
300
|
+
writable: true;
|
|
301
|
+
signer: true;
|
|
302
|
+
},
|
|
303
|
+
{
|
|
304
|
+
name: "authority";
|
|
305
|
+
},
|
|
306
|
+
{
|
|
307
|
+
name: "mint";
|
|
308
|
+
docs: ["Original mint of staked tokens"];
|
|
309
|
+
writable: true;
|
|
310
|
+
relations: ["stakePoolFrom", "stakePoolTo"];
|
|
311
|
+
},
|
|
312
|
+
{
|
|
313
|
+
name: "stakeMintFrom";
|
|
314
|
+
docs: ["Mint of stake tokens that will be minted in return for staking"];
|
|
315
|
+
writable: true;
|
|
316
|
+
},
|
|
317
|
+
{
|
|
318
|
+
name: "stakeMintTo";
|
|
319
|
+
docs: ["Mint of stake tokens that will be minted in return for staking"];
|
|
320
|
+
writable: true;
|
|
321
|
+
},
|
|
322
|
+
{
|
|
323
|
+
name: "tokenProgram";
|
|
324
|
+
},
|
|
325
|
+
{
|
|
326
|
+
name: "systemProgram";
|
|
327
|
+
address: "11111111111111111111111111111111";
|
|
328
|
+
}
|
|
329
|
+
];
|
|
330
|
+
args: [
|
|
331
|
+
{
|
|
332
|
+
name: "nonce";
|
|
333
|
+
type: "u32";
|
|
334
|
+
},
|
|
335
|
+
{
|
|
336
|
+
name: "newNonce";
|
|
337
|
+
type: "u32";
|
|
338
|
+
}
|
|
339
|
+
];
|
|
340
|
+
},
|
|
150
341
|
{
|
|
151
342
|
name: "requestUnstake";
|
|
152
343
|
discriminator: [44, 154, 110, 253, 160, 202, 54, 34];
|
|
@@ -436,6 +627,10 @@ export type StakePool = {
|
|
|
436
627
|
}
|
|
437
628
|
];
|
|
438
629
|
accounts: [
|
|
630
|
+
{
|
|
631
|
+
name: "lookupTableLink";
|
|
632
|
+
discriminator: [133, 88, 187, 141, 1, 53, 72, 236];
|
|
633
|
+
},
|
|
439
634
|
{
|
|
440
635
|
name: "stakeEntry";
|
|
441
636
|
discriminator: [187, 127, 9, 35, 155, 68, 86, 40];
|
|
@@ -538,6 +733,41 @@ export type StakePool = {
|
|
|
538
733
|
}
|
|
539
734
|
];
|
|
540
735
|
types: [
|
|
736
|
+
{
|
|
737
|
+
name: "lookupTableLink";
|
|
738
|
+
type: {
|
|
739
|
+
kind: "struct";
|
|
740
|
+
fields: [
|
|
741
|
+
{
|
|
742
|
+
name: "nonce";
|
|
743
|
+
docs: ["Nonce to differentiate lookup tables for the same stake pool"];
|
|
744
|
+
type: "u32";
|
|
745
|
+
},
|
|
746
|
+
{
|
|
747
|
+
name: "stakePool";
|
|
748
|
+
docs: ["Stake Pool for which tokens were staked"];
|
|
749
|
+
type: "pubkey";
|
|
750
|
+
},
|
|
751
|
+
{
|
|
752
|
+
name: "authority";
|
|
753
|
+
docs: ["Authority of the Entry"];
|
|
754
|
+
type: "pubkey";
|
|
755
|
+
},
|
|
756
|
+
{
|
|
757
|
+
name: "lookupTable";
|
|
758
|
+
docs: ["Pubkey of the address lookup table"];
|
|
759
|
+
type: "pubkey";
|
|
760
|
+
},
|
|
761
|
+
{
|
|
762
|
+
name: "buffer";
|
|
763
|
+
docs: ["Buffer for additional fields"];
|
|
764
|
+
type: {
|
|
765
|
+
array: ["u8", 64];
|
|
766
|
+
};
|
|
767
|
+
}
|
|
768
|
+
];
|
|
769
|
+
};
|
|
770
|
+
},
|
|
541
771
|
{
|
|
542
772
|
name: "stakeEntry";
|
|
543
773
|
type: {
|
|
@@ -720,3 +950,5 @@ export type StakePool = {
|
|
|
720
950
|
}
|
|
721
951
|
];
|
|
722
952
|
};
|
|
953
|
+
|
|
954
|
+
export type { StakePool };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"stake_pool.js"}
|
package/package.json
CHANGED
|
@@ -1,35 +1,80 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@streamflow/staking",
|
|
3
|
-
"version": "7.5.
|
|
3
|
+
"version": "7.5.3-alpha.cffa362.20250508190445",
|
|
4
4
|
"description": "JavaScript SDK to interact with Streamflow Staking protocol.",
|
|
5
5
|
"homepage": "https://github.com/streamflow-finance/js-sdk/",
|
|
6
|
-
"main": "dist/
|
|
7
|
-
"
|
|
6
|
+
"main": "./dist/cjs/index.cjs",
|
|
7
|
+
"module": "./dist/esm/index.js",
|
|
8
|
+
"types": "./dist/esm/index.d.ts",
|
|
8
9
|
"type": "module",
|
|
10
|
+
"engines": {
|
|
11
|
+
"node": ">=18"
|
|
12
|
+
},
|
|
13
|
+
"files": [
|
|
14
|
+
"dist"
|
|
15
|
+
],
|
|
9
16
|
"exports": {
|
|
10
17
|
".": {
|
|
11
|
-
"types":
|
|
18
|
+
"types": {
|
|
19
|
+
"import": "./dist/esm/index.d.ts",
|
|
20
|
+
"require": "./dist/cjs/index.d.cts"
|
|
21
|
+
},
|
|
12
22
|
"import": "./dist/esm/index.js",
|
|
13
|
-
"require": "./dist/cjs/index.
|
|
23
|
+
"require": "./dist/cjs/index.cjs"
|
|
24
|
+
},
|
|
25
|
+
"./solana/idl/reward_pool.json": {
|
|
26
|
+
"import": "./dist/esm/solana/descriptor/idl/reward_pool.json",
|
|
27
|
+
"require": "./dist/esm/solana/descriptor/idl/reward_pool.json",
|
|
28
|
+
"default": "./dist/esm/solana/descriptor/idl/reward_pool.json"
|
|
29
|
+
},
|
|
30
|
+
"./solana/idl/stake_pool.json": {
|
|
31
|
+
"import": "./dist/esm/solana/descriptor/idl/stake_pool.json",
|
|
32
|
+
"require": "./dist/esm/solana/descriptor/idl/stake_pool.json",
|
|
33
|
+
"default": "./dist/esm/solana/descriptor/idl/stake_pool.json"
|
|
34
|
+
},
|
|
35
|
+
"./solana/idl/fee_manager.json": {
|
|
36
|
+
"import": "./dist/esm/solana/descriptor/idl/fee_manager.json",
|
|
37
|
+
"require": "./dist/esm/solana/descriptor/idl/fee_manager.json",
|
|
38
|
+
"default": "./dist/esm/solana/descriptor/idl/fee_manager.json"
|
|
39
|
+
},
|
|
40
|
+
"./solana/descriptor/reward_pool": {
|
|
41
|
+
"types": {
|
|
42
|
+
"import": "./dist/esm/solana/descriptor/reward_pool.d.ts",
|
|
43
|
+
"require": "./dist/cjs/solana/descriptor/reward_pool.d.cts"
|
|
44
|
+
},
|
|
45
|
+
"import": "./dist/esm/solana/descriptor/reward_pool.js",
|
|
46
|
+
"require": "./dist/cjs/solana/descriptor/reward_pool.cjs"
|
|
47
|
+
},
|
|
48
|
+
"./solana/descriptor/stake_pool": {
|
|
49
|
+
"types": {
|
|
50
|
+
"import": "./dist/esm/solana/descriptor/stake_pool.d.ts",
|
|
51
|
+
"require": "./dist/cjs/solana/descriptor/stake_pool.d.cts"
|
|
52
|
+
},
|
|
53
|
+
"import": "./dist/esm/solana/descriptor/stake_pool.js",
|
|
54
|
+
"require": "./dist/cjs/solana/descriptor/stake_pool.cjs"
|
|
55
|
+
},
|
|
56
|
+
"./solana/descriptor/fee_manager": {
|
|
57
|
+
"types": {
|
|
58
|
+
"import": "./dist/esm/solana/descriptor/fee_manager.d.ts",
|
|
59
|
+
"require": "./dist/cjs/solana/descriptor/fee_manager.d.cts"
|
|
60
|
+
},
|
|
61
|
+
"import": "./dist/esm/solana/descriptor/fee_manager.js",
|
|
62
|
+
"require": "./dist/cjs/solana/descriptor/fee_manager.cjs"
|
|
14
63
|
},
|
|
15
|
-
"./
|
|
16
|
-
"types": "./dist/esm/solana/descriptor/*",
|
|
17
|
-
"import": "./dist/esm/solana/descriptor/*",
|
|
18
|
-
"require": "./dist/cjs/solana/descriptor/*"
|
|
19
|
-
}
|
|
64
|
+
"./package.json": "./package.json"
|
|
20
65
|
},
|
|
21
66
|
"scripts": {
|
|
22
|
-
"
|
|
23
|
-
"build
|
|
24
|
-
"
|
|
67
|
+
"copyIdls": "mkdir -p dist/esm/solana/descriptor/idl && cp solana/descriptor/idl/*.json dist/esm/solana/descriptor/idl/",
|
|
68
|
+
"build": "rm -rf dist && tsup && pnpm copyIdls",
|
|
69
|
+
"tsc:lint": "tsc --noEmit",
|
|
25
70
|
"pack": "pnpm build && pnpm pack",
|
|
26
71
|
"lint": "eslint --fix .",
|
|
27
|
-
"test": "vitest",
|
|
28
|
-
"prepublishOnly": "pnpm run lint && pnpm run test
|
|
72
|
+
"test": "vitest run --passWithNoTests",
|
|
73
|
+
"prepublishOnly": "pnpm run lint && pnpm run test && pnpm run build"
|
|
29
74
|
},
|
|
30
|
-
"gitHead": "
|
|
75
|
+
"gitHead": "9f1ade927d981598777e1b643ea94ab439fdbe2f",
|
|
31
76
|
"devDependencies": {
|
|
32
|
-
"@streamflow/eslint-config": "7.5.
|
|
77
|
+
"@streamflow/eslint-config": "7.5.3-alpha.cffa362.20250508190445",
|
|
33
78
|
"@types/bn.js": "5.1.1",
|
|
34
79
|
"typescript": "^5.6.3"
|
|
35
80
|
},
|
|
@@ -40,7 +85,7 @@
|
|
|
40
85
|
"@solana/spl-token": "0.4.9",
|
|
41
86
|
"@solana/wallet-adapter-base": "0.9.19",
|
|
42
87
|
"@solana/web3.js": "1.95.4",
|
|
43
|
-
"@streamflow/common": "7.5.
|
|
88
|
+
"@streamflow/common": "7.5.3-alpha.cffa362.20250508190445",
|
|
44
89
|
"bn.js": "5.2.1",
|
|
45
90
|
"borsh": "^2.0.0",
|
|
46
91
|
"bs58": "5.0.0",
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const common_1 = require("@streamflow/common");
|
|
7
|
-
const web3_js_1 = require("@solana/web3.js");
|
|
8
|
-
// eslint-disable-next-line no-restricted-imports
|
|
9
|
-
const bn_js_1 = __importDefault(require("bn.js"));
|
|
10
|
-
const vitest_1 = require("vitest");
|
|
11
|
-
const rewards_js_1 = require("../../solana/lib/rewards.js");
|
|
12
|
-
const constants_js_1 = require("../../solana/constants.js");
|
|
13
|
-
const populateRewardEntry = (effectiveStakedAmount, rewardAmount, rewardPeriod, periods) => {
|
|
14
|
-
const rewardEntry = new rewards_js_1.RewardEntryAccumulator(new bn_js_1.default(0), new bn_js_1.default(0), new bn_js_1.default(0), web3_js_1.PublicKey.default, web3_js_1.PublicKey.default, new bn_js_1.default(0), new bn_js_1.default(0), new bn_js_1.default(0), []);
|
|
15
|
-
if (effectiveStakedAmount && rewardAmount && rewardPeriod) {
|
|
16
|
-
rewardEntry.accountedAmount = rewardEntry.getAccountableAmount(new bn_js_1.default(0), rewardPeriod.muln(periods || 1), effectiveStakedAmount, rewardAmount, rewardPeriod);
|
|
17
|
-
}
|
|
18
|
-
return rewardEntry;
|
|
19
|
-
};
|
|
20
|
-
(0, vitest_1.describe)("RewardEntryAccumulator", () => {
|
|
21
|
-
(0, vitest_1.describe)("getClaimableAmount", () => {
|
|
22
|
-
const testCases = [
|
|
23
|
-
[9, 9, 1, 0.0025, new bn_js_1.default(2500000)],
|
|
24
|
-
[6, 9, 1, 0.0025, new bn_js_1.default(2500000000)],
|
|
25
|
-
[9, 6, 1, 0.0025, new bn_js_1.default(2500)],
|
|
26
|
-
[1, 8, 1, 0.0025, new bn_js_1.default(25000000000000)],
|
|
27
|
-
];
|
|
28
|
-
testCases.forEach(([stakeTokenDecimals, rewardTokenDecimals, periods, rewardRate, expectedRewardAmount]) => {
|
|
29
|
-
(0, vitest_1.test)(`test decimals - ${stakeTokenDecimals}/${rewardTokenDecimals}/${periods}/${rewardRate}`, () => {
|
|
30
|
-
const stakedAmount = (0, common_1.getBN)(1, stakeTokenDecimals);
|
|
31
|
-
const effectiveStakedAmount = stakedAmount.mul(constants_js_1.SCALE_PRECISION_FACTOR_BN);
|
|
32
|
-
const rewardPeriod = new bn_js_1.default(1);
|
|
33
|
-
const rewardAmount = (0, rewards_js_1.calculateRewardAmountFromRate)(rewardRate, stakeTokenDecimals, rewardTokenDecimals);
|
|
34
|
-
const rewardEntry = populateRewardEntry(effectiveStakedAmount, rewardAmount, rewardPeriod, periods);
|
|
35
|
-
const claimableAmount = rewardEntry.getClaimableAmount();
|
|
36
|
-
(0, vitest_1.expect)(rewardAmount.toString()).toEqual(expectedRewardAmount.toString());
|
|
37
|
-
(0, vitest_1.expect)(claimableAmount.toString()).toEqual((0, common_1.getBN)(rewardRate, rewardTokenDecimals).muln(periods).toString());
|
|
38
|
-
(0, vitest_1.expect)((0, rewards_js_1.calculateRewardRateFromAmount)(rewardAmount, stakeTokenDecimals, rewardTokenDecimals)).toEqual(rewardRate);
|
|
39
|
-
});
|
|
40
|
-
});
|
|
41
|
-
(0, vitest_1.test)(`test decimals - negative difference`, () => {
|
|
42
|
-
let rewardAmount = (0, rewards_js_1.calculateRewardAmountFromRate)(0.0025, 18, 1);
|
|
43
|
-
(0, vitest_1.expect)(rewardAmount.toString()).toEqual(new bn_js_1.default(0).toString());
|
|
44
|
-
rewardAmount = (0, rewards_js_1.calculateRewardAmountFromRate)(0.0025, 12, 4);
|
|
45
|
-
(0, vitest_1.expect)(rewardAmount.toString()).toEqual(new bn_js_1.default(0).toString());
|
|
46
|
-
});
|
|
47
|
-
(0, vitest_1.test)(`test decimals - precision loss`, () => {
|
|
48
|
-
const stakeTokenDecimals = 12;
|
|
49
|
-
const rewardTokenDecimals = 6;
|
|
50
|
-
const stakedAmount = (0, common_1.getBN)(1, stakeTokenDecimals);
|
|
51
|
-
const effectiveStakedAmount = stakedAmount.mul(constants_js_1.SCALE_PRECISION_FACTOR_BN);
|
|
52
|
-
const rewardPeriod = new bn_js_1.default(1);
|
|
53
|
-
const rewardAmount = (0, rewards_js_1.calculateRewardAmountFromRate)(0.0025, stakeTokenDecimals, rewardTokenDecimals);
|
|
54
|
-
const rewardEntry = populateRewardEntry(effectiveStakedAmount, rewardAmount, rewardPeriod);
|
|
55
|
-
const claimableAmount = rewardEntry.getClaimableAmount();
|
|
56
|
-
(0, vitest_1.expect)(rewardAmount.toString()).toEqual(new bn_js_1.default(2).toString());
|
|
57
|
-
(0, vitest_1.expect)(claimableAmount.toString()).toEqual((0, common_1.getBN)(0.002, rewardTokenDecimals).toString());
|
|
58
|
-
(0, vitest_1.expect)((0, rewards_js_1.calculateRewardRateFromAmount)(rewardAmount, stakeTokenDecimals, rewardTokenDecimals)).toEqual(0.002);
|
|
59
|
-
});
|
|
60
|
-
});
|
|
61
|
-
});
|
package/dist/cjs/index.js
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
19
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
20
|
-
};
|
|
21
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
22
|
-
if (mod && mod.__esModule) return mod;
|
|
23
|
-
var result = {};
|
|
24
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
25
|
-
__setModuleDefault(result, mod);
|
|
26
|
-
return result;
|
|
27
|
-
};
|
|
28
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.constants = exports.SolanaStakingClient = void 0;
|
|
30
|
-
var client_js_1 = require("./solana/client.js");
|
|
31
|
-
Object.defineProperty(exports, "SolanaStakingClient", { enumerable: true, get: function () { return client_js_1.SolanaStakingClient; } });
|
|
32
|
-
__exportStar(require("./solana/types.js"), exports);
|
|
33
|
-
__exportStar(require("./solana/lib/derive-accounts.js"), exports);
|
|
34
|
-
__exportStar(require("./solana/lib/rewards.js"), exports);
|
|
35
|
-
__exportStar(require("./solana/lib/fee-amounts.js"), exports);
|
|
36
|
-
__exportStar(require("./solana/lib/stake-weight.js"), exports);
|
|
37
|
-
exports.constants = __importStar(require("./solana/constants.js"));
|