@triadxyz/triad-protocol 2.5.0-beta → 2.5.1-beta
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/stake.d.ts +15 -25
- package/dist/stake.js +31 -36
- package/dist/types/idl_triad_protocol.json +6 -112
- package/dist/types/stake.d.ts +1 -9
- package/dist/types/triad_protocol.d.ts +6 -182
- package/dist/utils/helpers.d.ts +5 -3
- package/dist/utils/helpers.js +26 -11
- package/package.json +1 -1
package/dist/stake.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { Program } from '@coral-xyz/anchor';
|
|
|
2
2
|
import { PublicKey } from '@solana/web3.js';
|
|
3
3
|
import { TriadProtocol } from './types/triad_protocol';
|
|
4
4
|
import { RpcOptions } from './types';
|
|
5
|
-
import {
|
|
5
|
+
import { StakeV2, UpdateStakeVaultArgs } from './types/stake';
|
|
6
6
|
export default class Stake {
|
|
7
7
|
private program;
|
|
8
8
|
constructor(program: Program<TriadProtocol>);
|
|
@@ -15,33 +15,33 @@ export default class Stake {
|
|
|
15
15
|
* Get all Stakes
|
|
16
16
|
*
|
|
17
17
|
*/
|
|
18
|
-
|
|
18
|
+
getStakesV2(): Promise<StakeV2[]>;
|
|
19
19
|
/**
|
|
20
|
-
* Get
|
|
21
|
-
* @param wallet - User wallet
|
|
20
|
+
* Get all Stakes
|
|
22
21
|
*
|
|
23
22
|
*/
|
|
24
|
-
|
|
23
|
+
getStakes(): Promise<import("./types/stake").StakeV3[]>;
|
|
25
24
|
/**
|
|
26
25
|
* Get Stake By Wallet
|
|
27
|
-
* @param wallet - User
|
|
26
|
+
* @param wallet - User wallet
|
|
28
27
|
*
|
|
29
28
|
*/
|
|
30
29
|
getStakeByWallet(wallet: PublicKey): Promise<{
|
|
31
30
|
available: number;
|
|
32
|
-
name: string;
|
|
33
|
-
stakeVault: string;
|
|
34
31
|
authority: string;
|
|
35
32
|
initTs: number;
|
|
36
|
-
|
|
37
|
-
mint: string;
|
|
38
|
-
claimedTs: number;
|
|
39
|
-
boost: boolean;
|
|
33
|
+
checkedTs: number;
|
|
40
34
|
claimed: number;
|
|
41
35
|
amount: number;
|
|
42
|
-
}
|
|
36
|
+
}>;
|
|
37
|
+
/**
|
|
38
|
+
* Get Unstake By Wallet
|
|
39
|
+
* @param wallet - User wallet
|
|
40
|
+
*
|
|
41
|
+
*/
|
|
42
|
+
getUnstakeByWallet(wallet: PublicKey): Promise<import("./types/stake").Unstake[]>;
|
|
43
43
|
/**
|
|
44
|
-
* Stake
|
|
44
|
+
* Stake Token
|
|
45
45
|
* @param amount - Amount to stake
|
|
46
46
|
*
|
|
47
47
|
* @param options - RPC options
|
|
@@ -65,16 +65,6 @@ export default class Stake {
|
|
|
65
65
|
*
|
|
66
66
|
*/
|
|
67
67
|
requestUnstake(amount: number, options?: RpcOptions): Promise<string>;
|
|
68
|
-
/**
|
|
69
|
-
* Withdraw Stake
|
|
70
|
-
* @param args.wallet - User wallet
|
|
71
|
-
* @param args.name - Stake name
|
|
72
|
-
* @param args.mint - Stake native mint (TRD)
|
|
73
|
-
*
|
|
74
|
-
* @param options - RPC options
|
|
75
|
-
*
|
|
76
|
-
*/
|
|
77
|
-
withdrawStake({ wallet, name, mint }: WithdrawArgs, options?: RpcOptions): Promise<string>;
|
|
78
68
|
/**
|
|
79
69
|
* Unstake Token
|
|
80
70
|
* @param options - RPC options
|
|
@@ -92,5 +82,5 @@ export default class Stake {
|
|
|
92
82
|
* @param options - RPC options
|
|
93
83
|
*
|
|
94
84
|
*/
|
|
95
|
-
migrateStake(stakes:
|
|
85
|
+
migrateStake(stakes: StakeV2[], options?: RpcOptions): Promise<string>;
|
|
96
86
|
}
|
package/dist/stake.js
CHANGED
|
@@ -36,40 +36,55 @@ class Stake {
|
|
|
36
36
|
* Get all Stakes
|
|
37
37
|
*
|
|
38
38
|
*/
|
|
39
|
-
|
|
39
|
+
getStakesV2() {
|
|
40
40
|
return __awaiter(this, void 0, void 0, function* () {
|
|
41
41
|
const response = yield this.program.account.stakeV2.all();
|
|
42
|
-
return response.map((stake) => (0, helpers_1.
|
|
42
|
+
return response.map((stake) => (0, helpers_1.formatStakeV2)(stake.account));
|
|
43
43
|
});
|
|
44
44
|
}
|
|
45
45
|
/**
|
|
46
|
-
* Get
|
|
47
|
-
* @param wallet - User wallet
|
|
46
|
+
* Get all Stakes
|
|
48
47
|
*
|
|
49
48
|
*/
|
|
50
|
-
|
|
49
|
+
getStakes() {
|
|
51
50
|
return __awaiter(this, void 0, void 0, function* () {
|
|
52
|
-
const
|
|
53
|
-
const response = stakes.filter((stake) => stake.account.authority.toBase58() === wallet.toBase58());
|
|
51
|
+
const response = yield this.program.account.stakeV3.all();
|
|
54
52
|
return response.map((stake) => (0, helpers_1.formatStake)(stake.account));
|
|
55
53
|
});
|
|
56
54
|
}
|
|
57
55
|
/**
|
|
58
56
|
* Get Stake By Wallet
|
|
59
|
-
* @param wallet - User
|
|
57
|
+
* @param wallet - User wallet
|
|
60
58
|
*
|
|
61
59
|
*/
|
|
62
60
|
getStakeByWallet(wallet) {
|
|
63
61
|
return __awaiter(this, void 0, void 0, function* () {
|
|
64
|
-
const
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
62
|
+
const stake = yield this.program.account.stakeV3
|
|
63
|
+
.fetch((0, stake_1.getStakePDA)(this.program.programId, wallet))
|
|
64
|
+
.then((stake) => (0, helpers_1.formatStake)(stake));
|
|
65
|
+
return Object.assign(Object.assign({}, stake), { available: (0, helpers_1.calculateStakeRewards)(stake) });
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Get Unstake By Wallet
|
|
70
|
+
* @param wallet - User wallet
|
|
71
|
+
*
|
|
72
|
+
*/
|
|
73
|
+
getUnstakeByWallet(wallet) {
|
|
74
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
75
|
+
const stake = yield this.program.account.unstake.all([
|
|
76
|
+
{
|
|
77
|
+
memcmp: {
|
|
78
|
+
offset: 8 + 1,
|
|
79
|
+
bytes: wallet.toBase58()
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
]);
|
|
83
|
+
return stake.map((stake) => (0, helpers_1.formatUnstake)(stake.account));
|
|
69
84
|
});
|
|
70
85
|
}
|
|
71
86
|
/**
|
|
72
|
-
* Stake
|
|
87
|
+
* Stake Token
|
|
73
88
|
* @param amount - Amount to stake
|
|
74
89
|
*
|
|
75
90
|
* @param options - RPC options
|
|
@@ -135,28 +150,6 @@ class Stake {
|
|
|
135
150
|
return (0, sendVersionedTransaction_1.default)(this.program, ixs, options);
|
|
136
151
|
});
|
|
137
152
|
}
|
|
138
|
-
/**
|
|
139
|
-
* Withdraw Stake
|
|
140
|
-
* @param args.wallet - User wallet
|
|
141
|
-
* @param args.name - Stake name
|
|
142
|
-
* @param args.mint - Stake native mint (TRD)
|
|
143
|
-
*
|
|
144
|
-
* @param options - RPC options
|
|
145
|
-
*
|
|
146
|
-
*/
|
|
147
|
-
withdrawStake({ wallet, name, mint }, options) {
|
|
148
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
149
|
-
const ixs = [];
|
|
150
|
-
ixs.push(yield this.program.methods
|
|
151
|
-
.withdrawStake()
|
|
152
|
-
.accounts({
|
|
153
|
-
stake: (0, stake_1.getStakeV2PDA)(this.program.programId, wallet, name),
|
|
154
|
-
mint: mint
|
|
155
|
-
})
|
|
156
|
-
.instruction());
|
|
157
|
-
return (0, sendVersionedTransaction_1.default)(this.program, ixs, options);
|
|
158
|
-
});
|
|
159
|
-
}
|
|
160
153
|
/**
|
|
161
154
|
* Unstake Token
|
|
162
155
|
* @param options - RPC options
|
|
@@ -201,6 +194,8 @@ class Stake {
|
|
|
201
194
|
return __awaiter(this, void 0, void 0, function* () {
|
|
202
195
|
const ixs = [];
|
|
203
196
|
for (const stake of stakes) {
|
|
197
|
+
if (stake.withdrawTs !== 0)
|
|
198
|
+
continue;
|
|
204
199
|
ixs.push(yield this.program.methods
|
|
205
200
|
.migrateStake()
|
|
206
201
|
.accounts({
|
|
@@ -1798,7 +1798,7 @@
|
|
|
1798
1798
|
"writable": true
|
|
1799
1799
|
},
|
|
1800
1800
|
{
|
|
1801
|
-
"name": "
|
|
1801
|
+
"name": "user_ata",
|
|
1802
1802
|
"writable": true,
|
|
1803
1803
|
"pda": {
|
|
1804
1804
|
"seeds": [
|
|
@@ -1826,7 +1826,7 @@
|
|
|
1826
1826
|
}
|
|
1827
1827
|
},
|
|
1828
1828
|
{
|
|
1829
|
-
"name": "
|
|
1829
|
+
"name": "stake_vault_ata",
|
|
1830
1830
|
"writable": true,
|
|
1831
1831
|
"pda": {
|
|
1832
1832
|
"seeds": [
|
|
@@ -1961,7 +1961,7 @@
|
|
|
1961
1961
|
"writable": true
|
|
1962
1962
|
},
|
|
1963
1963
|
{
|
|
1964
|
-
"name": "
|
|
1964
|
+
"name": "stake_vault_ata",
|
|
1965
1965
|
"writable": true,
|
|
1966
1966
|
"pda": {
|
|
1967
1967
|
"seeds": [
|
|
@@ -1989,7 +1989,7 @@
|
|
|
1989
1989
|
}
|
|
1990
1990
|
},
|
|
1991
1991
|
{
|
|
1992
|
-
"name": "
|
|
1992
|
+
"name": "user_ata",
|
|
1993
1993
|
"writable": true,
|
|
1994
1994
|
"pda": {
|
|
1995
1995
|
"seeds": [
|
|
@@ -2097,7 +2097,7 @@
|
|
|
2097
2097
|
"writable": true
|
|
2098
2098
|
},
|
|
2099
2099
|
{
|
|
2100
|
-
"name": "
|
|
2100
|
+
"name": "user_ata",
|
|
2101
2101
|
"writable": true,
|
|
2102
2102
|
"pda": {
|
|
2103
2103
|
"seeds": [
|
|
@@ -2125,7 +2125,7 @@
|
|
|
2125
2125
|
}
|
|
2126
2126
|
},
|
|
2127
2127
|
{
|
|
2128
|
-
"name": "
|
|
2128
|
+
"name": "stake_vault_ata",
|
|
2129
2129
|
"writable": true,
|
|
2130
2130
|
"pda": {
|
|
2131
2131
|
"seeds": [
|
|
@@ -2211,112 +2211,6 @@
|
|
|
2211
2211
|
}
|
|
2212
2212
|
],
|
|
2213
2213
|
"args": []
|
|
2214
|
-
},
|
|
2215
|
-
{
|
|
2216
|
-
"name": "withdraw_stake",
|
|
2217
|
-
"discriminator": [153, 8, 22, 138, 105, 176, 87, 66],
|
|
2218
|
-
"accounts": [
|
|
2219
|
-
{
|
|
2220
|
-
"name": "signer",
|
|
2221
|
-
"writable": true,
|
|
2222
|
-
"signer": true
|
|
2223
|
-
},
|
|
2224
|
-
{
|
|
2225
|
-
"name": "stake_vault",
|
|
2226
|
-
"writable": true,
|
|
2227
|
-
"pda": {
|
|
2228
|
-
"seeds": [
|
|
2229
|
-
{
|
|
2230
|
-
"kind": "const",
|
|
2231
|
-
"value": [115, 116, 97, 107, 101, 95, 118, 97, 117, 108, 116]
|
|
2232
|
-
},
|
|
2233
|
-
{
|
|
2234
|
-
"kind": "const",
|
|
2235
|
-
"value": [
|
|
2236
|
-
84, 114, 105, 97, 100, 32, 83, 104, 97, 114, 101, 32, 49
|
|
2237
|
-
]
|
|
2238
|
-
}
|
|
2239
|
-
]
|
|
2240
|
-
}
|
|
2241
|
-
},
|
|
2242
|
-
{
|
|
2243
|
-
"name": "stake",
|
|
2244
|
-
"writable": true
|
|
2245
|
-
},
|
|
2246
|
-
{
|
|
2247
|
-
"name": "mint",
|
|
2248
|
-
"writable": true
|
|
2249
|
-
},
|
|
2250
|
-
{
|
|
2251
|
-
"name": "from_ata",
|
|
2252
|
-
"writable": true,
|
|
2253
|
-
"pda": {
|
|
2254
|
-
"seeds": [
|
|
2255
|
-
{
|
|
2256
|
-
"kind": "account",
|
|
2257
|
-
"path": "stake_vault"
|
|
2258
|
-
},
|
|
2259
|
-
{
|
|
2260
|
-
"kind": "account",
|
|
2261
|
-
"path": "token_program"
|
|
2262
|
-
},
|
|
2263
|
-
{
|
|
2264
|
-
"kind": "account",
|
|
2265
|
-
"path": "mint"
|
|
2266
|
-
}
|
|
2267
|
-
],
|
|
2268
|
-
"program": {
|
|
2269
|
-
"kind": "const",
|
|
2270
|
-
"value": [
|
|
2271
|
-
140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142,
|
|
2272
|
-
13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216,
|
|
2273
|
-
219, 233, 248, 89
|
|
2274
|
-
]
|
|
2275
|
-
}
|
|
2276
|
-
}
|
|
2277
|
-
},
|
|
2278
|
-
{
|
|
2279
|
-
"name": "to_ata",
|
|
2280
|
-
"writable": true,
|
|
2281
|
-
"pda": {
|
|
2282
|
-
"seeds": [
|
|
2283
|
-
{
|
|
2284
|
-
"kind": "account",
|
|
2285
|
-
"path": "signer"
|
|
2286
|
-
},
|
|
2287
|
-
{
|
|
2288
|
-
"kind": "account",
|
|
2289
|
-
"path": "token_program"
|
|
2290
|
-
},
|
|
2291
|
-
{
|
|
2292
|
-
"kind": "account",
|
|
2293
|
-
"path": "mint"
|
|
2294
|
-
}
|
|
2295
|
-
],
|
|
2296
|
-
"program": {
|
|
2297
|
-
"kind": "const",
|
|
2298
|
-
"value": [
|
|
2299
|
-
140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142,
|
|
2300
|
-
13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216,
|
|
2301
|
-
219, 233, 248, 89
|
|
2302
|
-
]
|
|
2303
|
-
}
|
|
2304
|
-
}
|
|
2305
|
-
},
|
|
2306
|
-
{
|
|
2307
|
-
"name": "token_program",
|
|
2308
|
-
"address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"
|
|
2309
|
-
},
|
|
2310
|
-
{
|
|
2311
|
-
"name": "associated_token_program",
|
|
2312
|
-
"address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
|
|
2313
|
-
},
|
|
2314
|
-
{
|
|
2315
|
-
"name": "system_program",
|
|
2316
|
-
"address": "11111111111111111111111111111111"
|
|
2317
|
-
}
|
|
2318
|
-
],
|
|
2319
|
-
"args": []
|
|
2320
2214
|
}
|
|
2321
2215
|
],
|
|
2322
2216
|
"accounts": [
|
package/dist/types/stake.d.ts
CHANGED
|
@@ -1,14 +1,8 @@
|
|
|
1
|
-
import { PublicKey } from '@solana/web3.js';
|
|
2
1
|
import BN from 'bn.js';
|
|
3
2
|
export type UpdateStakeVaultArgs = {
|
|
4
3
|
amount?: BN;
|
|
5
4
|
isLocked?: boolean;
|
|
6
5
|
};
|
|
7
|
-
export type WithdrawArgs = {
|
|
8
|
-
wallet: PublicKey;
|
|
9
|
-
name: string;
|
|
10
|
-
mint: PublicKey;
|
|
11
|
-
};
|
|
12
6
|
export type StakeVault = {
|
|
13
7
|
name: string;
|
|
14
8
|
collection: string;
|
|
@@ -25,7 +19,7 @@ export type StakeVault = {
|
|
|
25
19
|
initTs: number;
|
|
26
20
|
endTs: number;
|
|
27
21
|
};
|
|
28
|
-
export type
|
|
22
|
+
export type StakeV2 = {
|
|
29
23
|
name: string;
|
|
30
24
|
stakeVault: string;
|
|
31
25
|
authority: string;
|
|
@@ -39,13 +33,11 @@ export type Stake = {
|
|
|
39
33
|
amount: number;
|
|
40
34
|
};
|
|
41
35
|
export type Unstake = {
|
|
42
|
-
bump: number;
|
|
43
36
|
authority: string;
|
|
44
37
|
amount: number;
|
|
45
38
|
withdrawTs: number;
|
|
46
39
|
};
|
|
47
40
|
export type StakeV3 = {
|
|
48
|
-
bump: number;
|
|
49
41
|
authority: string;
|
|
50
42
|
initTs: number;
|
|
51
43
|
checkedTs: number;
|
|
@@ -2461,7 +2461,7 @@ export type TriadProtocol = {
|
|
|
2461
2461
|
writable: true;
|
|
2462
2462
|
},
|
|
2463
2463
|
{
|
|
2464
|
-
name: '
|
|
2464
|
+
name: 'userAta';
|
|
2465
2465
|
writable: true;
|
|
2466
2466
|
pda: {
|
|
2467
2467
|
seeds: [
|
|
@@ -2518,7 +2518,7 @@ export type TriadProtocol = {
|
|
|
2518
2518
|
};
|
|
2519
2519
|
},
|
|
2520
2520
|
{
|
|
2521
|
-
name: '
|
|
2521
|
+
name: 'stakeVaultAta';
|
|
2522
2522
|
writable: true;
|
|
2523
2523
|
pda: {
|
|
2524
2524
|
seeds: [
|
|
@@ -2694,7 +2694,7 @@ export type TriadProtocol = {
|
|
|
2694
2694
|
writable: true;
|
|
2695
2695
|
},
|
|
2696
2696
|
{
|
|
2697
|
-
name: '
|
|
2697
|
+
name: 'stakeVaultAta';
|
|
2698
2698
|
writable: true;
|
|
2699
2699
|
pda: {
|
|
2700
2700
|
seeds: [
|
|
@@ -2751,7 +2751,7 @@ export type TriadProtocol = {
|
|
|
2751
2751
|
};
|
|
2752
2752
|
},
|
|
2753
2753
|
{
|
|
2754
|
-
name: '
|
|
2754
|
+
name: 'userAta';
|
|
2755
2755
|
writable: true;
|
|
2756
2756
|
pda: {
|
|
2757
2757
|
seeds: [
|
|
@@ -2900,7 +2900,7 @@ export type TriadProtocol = {
|
|
|
2900
2900
|
writable: true;
|
|
2901
2901
|
},
|
|
2902
2902
|
{
|
|
2903
|
-
name: '
|
|
2903
|
+
name: 'userAta';
|
|
2904
2904
|
writable: true;
|
|
2905
2905
|
pda: {
|
|
2906
2906
|
seeds: [
|
|
@@ -2957,7 +2957,7 @@ export type TriadProtocol = {
|
|
|
2957
2957
|
};
|
|
2958
2958
|
},
|
|
2959
2959
|
{
|
|
2960
|
-
name: '
|
|
2960
|
+
name: 'stakeVaultAta';
|
|
2961
2961
|
writable: true;
|
|
2962
2962
|
pda: {
|
|
2963
2963
|
seeds: [
|
|
@@ -3072,182 +3072,6 @@ export type TriadProtocol = {
|
|
|
3072
3072
|
}
|
|
3073
3073
|
];
|
|
3074
3074
|
args: [];
|
|
3075
|
-
},
|
|
3076
|
-
{
|
|
3077
|
-
name: 'withdrawStake';
|
|
3078
|
-
discriminator: [153, 8, 22, 138, 105, 176, 87, 66];
|
|
3079
|
-
accounts: [
|
|
3080
|
-
{
|
|
3081
|
-
name: 'signer';
|
|
3082
|
-
writable: true;
|
|
3083
|
-
signer: true;
|
|
3084
|
-
},
|
|
3085
|
-
{
|
|
3086
|
-
name: 'stakeVault';
|
|
3087
|
-
writable: true;
|
|
3088
|
-
pda: {
|
|
3089
|
-
seeds: [
|
|
3090
|
-
{
|
|
3091
|
-
kind: 'const';
|
|
3092
|
-
value: [115, 116, 97, 107, 101, 95, 118, 97, 117, 108, 116];
|
|
3093
|
-
},
|
|
3094
|
-
{
|
|
3095
|
-
kind: 'const';
|
|
3096
|
-
value: [
|
|
3097
|
-
84,
|
|
3098
|
-
114,
|
|
3099
|
-
105,
|
|
3100
|
-
97,
|
|
3101
|
-
100,
|
|
3102
|
-
32,
|
|
3103
|
-
83,
|
|
3104
|
-
104,
|
|
3105
|
-
97,
|
|
3106
|
-
114,
|
|
3107
|
-
101,
|
|
3108
|
-
32,
|
|
3109
|
-
49
|
|
3110
|
-
];
|
|
3111
|
-
}
|
|
3112
|
-
];
|
|
3113
|
-
};
|
|
3114
|
-
},
|
|
3115
|
-
{
|
|
3116
|
-
name: 'stake';
|
|
3117
|
-
writable: true;
|
|
3118
|
-
},
|
|
3119
|
-
{
|
|
3120
|
-
name: 'mint';
|
|
3121
|
-
writable: true;
|
|
3122
|
-
},
|
|
3123
|
-
{
|
|
3124
|
-
name: 'fromAta';
|
|
3125
|
-
writable: true;
|
|
3126
|
-
pda: {
|
|
3127
|
-
seeds: [
|
|
3128
|
-
{
|
|
3129
|
-
kind: 'account';
|
|
3130
|
-
path: 'stakeVault';
|
|
3131
|
-
},
|
|
3132
|
-
{
|
|
3133
|
-
kind: 'account';
|
|
3134
|
-
path: 'tokenProgram';
|
|
3135
|
-
},
|
|
3136
|
-
{
|
|
3137
|
-
kind: 'account';
|
|
3138
|
-
path: 'mint';
|
|
3139
|
-
}
|
|
3140
|
-
];
|
|
3141
|
-
program: {
|
|
3142
|
-
kind: 'const';
|
|
3143
|
-
value: [
|
|
3144
|
-
140,
|
|
3145
|
-
151,
|
|
3146
|
-
37,
|
|
3147
|
-
143,
|
|
3148
|
-
78,
|
|
3149
|
-
36,
|
|
3150
|
-
137,
|
|
3151
|
-
241,
|
|
3152
|
-
187,
|
|
3153
|
-
61,
|
|
3154
|
-
16,
|
|
3155
|
-
41,
|
|
3156
|
-
20,
|
|
3157
|
-
142,
|
|
3158
|
-
13,
|
|
3159
|
-
131,
|
|
3160
|
-
11,
|
|
3161
|
-
90,
|
|
3162
|
-
19,
|
|
3163
|
-
153,
|
|
3164
|
-
218,
|
|
3165
|
-
255,
|
|
3166
|
-
16,
|
|
3167
|
-
132,
|
|
3168
|
-
4,
|
|
3169
|
-
142,
|
|
3170
|
-
123,
|
|
3171
|
-
216,
|
|
3172
|
-
219,
|
|
3173
|
-
233,
|
|
3174
|
-
248,
|
|
3175
|
-
89
|
|
3176
|
-
];
|
|
3177
|
-
};
|
|
3178
|
-
};
|
|
3179
|
-
},
|
|
3180
|
-
{
|
|
3181
|
-
name: 'toAta';
|
|
3182
|
-
writable: true;
|
|
3183
|
-
pda: {
|
|
3184
|
-
seeds: [
|
|
3185
|
-
{
|
|
3186
|
-
kind: 'account';
|
|
3187
|
-
path: 'signer';
|
|
3188
|
-
},
|
|
3189
|
-
{
|
|
3190
|
-
kind: 'account';
|
|
3191
|
-
path: 'tokenProgram';
|
|
3192
|
-
},
|
|
3193
|
-
{
|
|
3194
|
-
kind: 'account';
|
|
3195
|
-
path: 'mint';
|
|
3196
|
-
}
|
|
3197
|
-
];
|
|
3198
|
-
program: {
|
|
3199
|
-
kind: 'const';
|
|
3200
|
-
value: [
|
|
3201
|
-
140,
|
|
3202
|
-
151,
|
|
3203
|
-
37,
|
|
3204
|
-
143,
|
|
3205
|
-
78,
|
|
3206
|
-
36,
|
|
3207
|
-
137,
|
|
3208
|
-
241,
|
|
3209
|
-
187,
|
|
3210
|
-
61,
|
|
3211
|
-
16,
|
|
3212
|
-
41,
|
|
3213
|
-
20,
|
|
3214
|
-
142,
|
|
3215
|
-
13,
|
|
3216
|
-
131,
|
|
3217
|
-
11,
|
|
3218
|
-
90,
|
|
3219
|
-
19,
|
|
3220
|
-
153,
|
|
3221
|
-
218,
|
|
3222
|
-
255,
|
|
3223
|
-
16,
|
|
3224
|
-
132,
|
|
3225
|
-
4,
|
|
3226
|
-
142,
|
|
3227
|
-
123,
|
|
3228
|
-
216,
|
|
3229
|
-
219,
|
|
3230
|
-
233,
|
|
3231
|
-
248,
|
|
3232
|
-
89
|
|
3233
|
-
];
|
|
3234
|
-
};
|
|
3235
|
-
};
|
|
3236
|
-
},
|
|
3237
|
-
{
|
|
3238
|
-
name: 'tokenProgram';
|
|
3239
|
-
address: 'TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb';
|
|
3240
|
-
},
|
|
3241
|
-
{
|
|
3242
|
-
name: 'associatedTokenProgram';
|
|
3243
|
-
address: 'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL';
|
|
3244
|
-
},
|
|
3245
|
-
{
|
|
3246
|
-
name: 'systemProgram';
|
|
3247
|
-
address: '11111111111111111111111111111111';
|
|
3248
|
-
}
|
|
3249
|
-
];
|
|
3250
|
-
args: [];
|
|
3251
3075
|
}
|
|
3252
3076
|
];
|
|
3253
3077
|
accounts: [
|
package/dist/utils/helpers.d.ts
CHANGED
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
import { PublicKey } from '@solana/web3.js';
|
|
2
2
|
import { IdlAccounts } from '@coral-xyz/anchor';
|
|
3
|
-
import {
|
|
3
|
+
import { StakeV2, StakeV3, StakeVault, Unstake } from './../types/stake';
|
|
4
4
|
import { Market, Order, OrderDirection, OrderSide, OrderStatus, OrderType, UserTrade, Pool, BookOrder, Refer } from '../types';
|
|
5
5
|
import { TriadProtocol } from '../types/triad_protocol';
|
|
6
6
|
export declare const encodeString: (value: string, alloc?: number) => number[];
|
|
7
7
|
export declare const decodeString: (bytes: number[]) => string;
|
|
8
8
|
export declare const formatStakeVault: (stakeVault: IdlAccounts<TriadProtocol>['stakeVault']) => StakeVault;
|
|
9
|
-
export declare const
|
|
9
|
+
export declare const formatStakeV2: (stake: IdlAccounts<TriadProtocol>['stakeV2']) => StakeV2;
|
|
10
|
+
export declare const formatStake: (stake: IdlAccounts<TriadProtocol>['stakeV3']) => StakeV3;
|
|
11
|
+
export declare const formatUnstake: (unstake: IdlAccounts<TriadProtocol>['unstake']) => Unstake;
|
|
10
12
|
export declare const formatPool: (account: IdlAccounts<TriadProtocol>['pool'], address: PublicKey) => Pool;
|
|
11
13
|
export declare const formatMarket: (account: IdlAccounts<TriadProtocol>['marketV2'], address: PublicKey) => Market;
|
|
12
14
|
export declare const formatUserTrade: (account: IdlAccounts<TriadProtocol>['userTrade'], publicKey: PublicKey) => UserTrade;
|
|
13
15
|
export declare const formatOrder: (order: IdlAccounts<TriadProtocol>['userTrade']['orders'][number], authority?: string) => Order;
|
|
14
16
|
export declare const formatBookOrder: (order: IdlAccounts<TriadProtocol>['orderBook']['hypeOrders'][number] | IdlAccounts<TriadProtocol>['orderBook']['flopOrders'][number]) => BookOrder;
|
|
15
|
-
export declare const calculateStakeRewards: (stake:
|
|
17
|
+
export declare const calculateStakeRewards: (stake: StakeV3) => number;
|
|
16
18
|
export declare const getTokenProgram: (mint: PublicKey) => PublicKey;
|
|
17
19
|
export declare const getOrderDirection: (direction: {
|
|
18
20
|
hype: {};
|
package/dist/utils/helpers.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.formatRefer = exports.getOrderStatus = exports.getOrderSide = exports.getOrderType = exports.getOrderSideFromNumber = exports.getOrderDirectionFromNumber = exports.getOrderDirection = exports.getTokenProgram = exports.calculateStakeRewards = exports.formatBookOrder = exports.formatOrder = exports.formatUserTrade = exports.formatMarket = exports.formatPool = exports.formatStake = exports.formatStakeVault = exports.decodeString = exports.encodeString = void 0;
|
|
3
|
+
exports.formatRefer = exports.getOrderStatus = exports.getOrderSide = exports.getOrderType = exports.getOrderSideFromNumber = exports.getOrderDirectionFromNumber = exports.getOrderDirection = exports.getTokenProgram = exports.calculateStakeRewards = exports.formatBookOrder = exports.formatOrder = exports.formatUserTrade = exports.formatMarket = exports.formatPool = exports.formatUnstake = exports.formatStake = exports.formatStakeV2 = exports.formatStakeVault = exports.decodeString = exports.encodeString = void 0;
|
|
4
4
|
const web3_js_1 = require("@solana/web3.js");
|
|
5
5
|
const spl_token_1 = require("@solana/spl-token");
|
|
6
6
|
const types_1 = require("../types");
|
|
@@ -35,7 +35,7 @@ const formatStakeVault = (stakeVault) => {
|
|
|
35
35
|
};
|
|
36
36
|
};
|
|
37
37
|
exports.formatStakeVault = formatStakeVault;
|
|
38
|
-
const
|
|
38
|
+
const formatStakeV2 = (stake) => {
|
|
39
39
|
var _a, _b, _c, _d;
|
|
40
40
|
return {
|
|
41
41
|
name: stake.name,
|
|
@@ -51,7 +51,26 @@ const formatStake = (stake) => {
|
|
|
51
51
|
amount: ((_d = stake === null || stake === void 0 ? void 0 : stake.amount) === null || _d === void 0 ? void 0 : _d.toNumber()) || 1
|
|
52
52
|
};
|
|
53
53
|
};
|
|
54
|
+
exports.formatStakeV2 = formatStakeV2;
|
|
55
|
+
const formatStake = (stake) => {
|
|
56
|
+
return {
|
|
57
|
+
authority: stake.authority.toBase58(),
|
|
58
|
+
initTs: stake.initTs.toNumber(),
|
|
59
|
+
checkedTs: stake.checkedTs.toNumber(),
|
|
60
|
+
claimed: stake.claimed.toNumber() / Math.pow(10, 6),
|
|
61
|
+
available: stake.available.toNumber() / Math.pow(10, 6),
|
|
62
|
+
amount: stake.amount.toNumber() / Math.pow(10, 6)
|
|
63
|
+
};
|
|
64
|
+
};
|
|
54
65
|
exports.formatStake = formatStake;
|
|
66
|
+
const formatUnstake = (unstake) => {
|
|
67
|
+
return {
|
|
68
|
+
authority: unstake.authority.toBase58(),
|
|
69
|
+
amount: unstake.amount.toNumber() / Math.pow(10, 6),
|
|
70
|
+
withdrawTs: unstake.withdrawTs.toNumber()
|
|
71
|
+
};
|
|
72
|
+
};
|
|
73
|
+
exports.formatUnstake = formatUnstake;
|
|
55
74
|
const formatPool = (account, address) => {
|
|
56
75
|
return {
|
|
57
76
|
address: address.toString(),
|
|
@@ -145,22 +164,18 @@ const formatBookOrder = (order) => {
|
|
|
145
164
|
};
|
|
146
165
|
exports.formatBookOrder = formatBookOrder;
|
|
147
166
|
const calculateStakeRewards = (stake) => {
|
|
148
|
-
if (stake.withdrawTs !== 0)
|
|
149
|
-
return 0;
|
|
150
167
|
const maxRank = 1633;
|
|
151
168
|
const rank = 369;
|
|
152
169
|
const rankWeight = (maxRank - rank + 1) / maxRank;
|
|
153
|
-
const userStakedAmount = stake.
|
|
154
|
-
|
|
155
|
-
: stake.amount * 10000 * Math.pow(10, constants_1.TRD_DECIMALS);
|
|
156
|
-
const formattedAmount = userStakedAmount / Math.pow(10, constants_1.TRD_DECIMALS);
|
|
170
|
+
const userStakedAmount = stake.amount;
|
|
171
|
+
const formattedAmount = userStakedAmount;
|
|
157
172
|
const adjustedAmount = formattedAmount * rankWeight;
|
|
158
|
-
const lastClaim = stake.
|
|
173
|
+
const lastClaim = stake.checkedTs;
|
|
159
174
|
const currentTime = Math.floor(Date.now() / 1000);
|
|
160
175
|
const secondsStaked = currentTime - lastClaim;
|
|
161
176
|
const userBaseRewards = ((adjustedAmount / 10000) * secondsStaked) / 86400;
|
|
162
|
-
const rewards = userBaseRewards
|
|
163
|
-
return
|
|
177
|
+
const rewards = userBaseRewards;
|
|
178
|
+
return rewards + stake.available;
|
|
164
179
|
};
|
|
165
180
|
exports.calculateStakeRewards = calculateStakeRewards;
|
|
166
181
|
const getTokenProgram = (mint) => {
|