@triadxyz/triad-protocol 0.3.0-beta → 0.3.2-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 +4 -12
- package/dist/stake.js +28 -27
- package/dist/test.js +16 -6
- package/dist/types/idl_triad_protocol.json +62 -6
- package/dist/types/triad_protocol.d.ts +60 -90
- package/package.json +1 -1
package/dist/stake.d.ts
CHANGED
|
@@ -11,6 +11,10 @@ export default class Stake {
|
|
|
11
11
|
* Get all Stake Vaults
|
|
12
12
|
*/
|
|
13
13
|
getStakeVaults(): Promise<import("./types/stake").StakeVaultResponse[]>;
|
|
14
|
+
/**
|
|
15
|
+
* Get Stake Rewards
|
|
16
|
+
*/
|
|
17
|
+
getStakeRewards({ wallet, mint, stakeVault, nftName }: ClaimStakeRewardsArgs): Promise<void>;
|
|
14
18
|
/**
|
|
15
19
|
* Get Stake Vault by name
|
|
16
20
|
* @param stakeVault - Stake Vault name
|
|
@@ -29,18 +33,6 @@ export default class Stake {
|
|
|
29
33
|
*
|
|
30
34
|
*/
|
|
31
35
|
getStakeByWallet(wallet: PublicKey, stakeVault: string): Promise<StakeResponse[]>;
|
|
32
|
-
/**
|
|
33
|
-
* Get Stake Vault Rewards details
|
|
34
|
-
* @param stakeVault - Stake Vault name
|
|
35
|
-
*/
|
|
36
|
-
getStakeVaultRewards(stakeVault: string): Promise<{
|
|
37
|
-
amount: number;
|
|
38
|
-
perDay: number;
|
|
39
|
-
perWeek: number;
|
|
40
|
-
perMonth: number;
|
|
41
|
-
period: number;
|
|
42
|
-
days: number[];
|
|
43
|
-
}>;
|
|
44
36
|
/**
|
|
45
37
|
* Get Stakes by day
|
|
46
38
|
* @param stakeVault - Stake Vault name
|
package/dist/stake.js
CHANGED
|
@@ -27,6 +27,29 @@ class Stake {
|
|
|
27
27
|
return response.map((stakeVault) => (0, helpers_1.formatStakeVault)(stakeVault.account));
|
|
28
28
|
});
|
|
29
29
|
}
|
|
30
|
+
/**
|
|
31
|
+
* Get Stake Rewards
|
|
32
|
+
*/
|
|
33
|
+
getStakeRewards({ wallet, mint, stakeVault, nftName }) {
|
|
34
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
35
|
+
const StakeVault = (0, helpers_1.getStakeVaultAddressSync)(this.program.programId, stakeVault);
|
|
36
|
+
const Stake = (0, helpers_1.getStakeAddressSync)(this.program.programId, wallet, nftName);
|
|
37
|
+
const FromAta = (0, helpers_1.getATASync)(StakeVault, mint);
|
|
38
|
+
const ToAta = (0, helpers_1.getATASync)(wallet, mint);
|
|
39
|
+
const method = this.program.methods
|
|
40
|
+
.claimStakeRewards()
|
|
41
|
+
.accounts({
|
|
42
|
+
signer: wallet,
|
|
43
|
+
fromAta: FromAta,
|
|
44
|
+
mint: mint,
|
|
45
|
+
toAta: ToAta,
|
|
46
|
+
stake: Stake,
|
|
47
|
+
stakeVault: StakeVault
|
|
48
|
+
})
|
|
49
|
+
.simulate();
|
|
50
|
+
console.log(method);
|
|
51
|
+
});
|
|
52
|
+
}
|
|
30
53
|
/**
|
|
31
54
|
* Get Stake Vault by name
|
|
32
55
|
* @param stakeVault - Stake Vault name
|
|
@@ -64,31 +87,6 @@ class Stake {
|
|
|
64
87
|
return myStakes;
|
|
65
88
|
});
|
|
66
89
|
}
|
|
67
|
-
/**
|
|
68
|
-
* Get Stake Vault Rewards details
|
|
69
|
-
* @param stakeVault - Stake Vault name
|
|
70
|
-
*/
|
|
71
|
-
getStakeVaultRewards(stakeVault) {
|
|
72
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
73
|
-
const StakeVault = (0, helpers_1.getStakeVaultAddressSync)(this.program.programId, stakeVault);
|
|
74
|
-
const response = yield this.program.account.stakeVault.fetch(StakeVault);
|
|
75
|
-
const amount = response.amount.toNumber() / Math.pow(10, constants_1.TTRIAD_DECIMALS);
|
|
76
|
-
const period = (response.endTs.toNumber() - response.initTs.toNumber()) / (60 * 60 * 24);
|
|
77
|
-
const netAmount = amount - (amount * constants_1.TTRIAD_FEE) / 100;
|
|
78
|
-
const data = {
|
|
79
|
-
amount: netAmount,
|
|
80
|
-
perDay: netAmount / period,
|
|
81
|
-
perWeek: (netAmount / period) * 7,
|
|
82
|
-
perMonth: (netAmount / period) * 30,
|
|
83
|
-
period,
|
|
84
|
-
days: []
|
|
85
|
-
};
|
|
86
|
-
for (let ts = response.initTs.toNumber(); ts <= response.endTs.toNumber(); ts += 60 * 60 * 24) {
|
|
87
|
-
data.days.push(ts);
|
|
88
|
-
}
|
|
89
|
-
return data;
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
90
|
/**
|
|
93
91
|
* Get Stakes by day
|
|
94
92
|
* @param stakeVault - Stake Vault name
|
|
@@ -263,9 +261,11 @@ class Stake {
|
|
|
263
261
|
return __awaiter(this, void 0, void 0, function* () {
|
|
264
262
|
const stakeVaultPDA = (0, helpers_1.getStakeVaultAddressSync)(this.program.programId, stakeVault);
|
|
265
263
|
const stakePDA = (0, helpers_1.getStakeAddressSync)(this.program.programId, wallet, name);
|
|
264
|
+
const userPAD = (0, helpers_1.getUserAddressSync)(this.program.programId, wallet);
|
|
266
265
|
const method = this.program.methods.requestWithdrawStake().accounts({
|
|
267
266
|
signer: wallet,
|
|
268
267
|
mint: mint,
|
|
268
|
+
user: userPAD,
|
|
269
269
|
stake: stakePDA,
|
|
270
270
|
stakeVault: stakeVaultPDA
|
|
271
271
|
});
|
|
@@ -328,7 +328,8 @@ class Stake {
|
|
|
328
328
|
const method = this.program.methods
|
|
329
329
|
.updateStakeVaultStatus({
|
|
330
330
|
isLocked,
|
|
331
|
-
initTs: new anchor_1.BN(initTs)
|
|
331
|
+
initTs: new anchor_1.BN(initTs),
|
|
332
|
+
slots: new anchor_1.BN(1839)
|
|
332
333
|
})
|
|
333
334
|
.accounts({
|
|
334
335
|
signer: wallet,
|
|
@@ -358,7 +359,7 @@ class Stake {
|
|
|
358
359
|
const Stake = (0, helpers_1.getStakeAddressSync)(this.program.programId, wallet, nftName);
|
|
359
360
|
const FromAta = (0, helpers_1.getATASync)(StakeVault, mint);
|
|
360
361
|
const ToAta = (0, helpers_1.getATASync)(wallet, mint);
|
|
361
|
-
const method = this.program.methods.
|
|
362
|
+
const method = this.program.methods.claimStakeRewards().accounts({
|
|
362
363
|
signer: wallet,
|
|
363
364
|
fromAta: FromAta,
|
|
364
365
|
mint: mint,
|
package/dist/test.js
CHANGED
|
@@ -36,18 +36,19 @@ const updateStakeVaultStatus = () => __awaiter(void 0, void 0, void 0, function*
|
|
|
36
36
|
console.log(response);
|
|
37
37
|
});
|
|
38
38
|
const getStake = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
39
|
-
|
|
40
|
-
// new PublicKey('BCTdjdcjMiECGFbF5Ps15yjLRPzy5YZGJNa4VdGRbhjB'),
|
|
41
|
-
// STAKE_SEASON
|
|
42
|
-
// )
|
|
39
|
+
const response = yield triadProtocol.stake.getStakeByWallet(new web3_js_1.PublicKey('HjJQdfTHgC3EBX3471w4st8BXbBmtbaMyCAXNgcUb7dq'), constants_1.STAKE_SEASON);
|
|
43
40
|
const stakeVaults = yield triadProtocol.stake.getStakeVaults();
|
|
44
|
-
|
|
41
|
+
console.log(response);
|
|
45
42
|
console.log(stakeVaults);
|
|
46
43
|
});
|
|
47
44
|
const getUsers = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
48
45
|
const response = yield triadProtocol.getUsers();
|
|
49
46
|
console.log(response);
|
|
50
47
|
});
|
|
48
|
+
const getUser = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
49
|
+
const response = yield triadProtocol.getUser(new web3_js_1.PublicKey('HjJQdfTHgC3EBX3471w4st8BXbBmtbaMyCAXNgcUb7dq'));
|
|
50
|
+
console.log(response);
|
|
51
|
+
});
|
|
51
52
|
const getReferral = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
52
53
|
const response = yield triadProtocol.hasUser(new web3_js_1.PublicKey('6MuTdUhc4LDHDW3fiTemyns4NgR99oAWvHM2SwCSTcau'));
|
|
53
54
|
console.log(response);
|
|
@@ -61,4 +62,13 @@ const createUser = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
61
62
|
microLamports: 10000
|
|
62
63
|
});
|
|
63
64
|
});
|
|
64
|
-
|
|
65
|
+
const getRewards = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
66
|
+
const response = yield triadProtocol.stake.getStakeRewards({
|
|
67
|
+
wallet: new web3_js_1.PublicKey('HjJQdfTHgC3EBX3471w4st8BXbBmtbaMyCAXNgcUb7dq'),
|
|
68
|
+
mint: new web3_js_1.PublicKey('BPK5P2YVnBaJJ4GRESCKQHYFmENzVspd7tZ2Mw7HmJYZ'),
|
|
69
|
+
nftName: 'Triad 3081',
|
|
70
|
+
stakeVault: constants_1.STAKE_SEASON
|
|
71
|
+
});
|
|
72
|
+
console.log(response);
|
|
73
|
+
});
|
|
74
|
+
getRewards();
|
|
@@ -2,13 +2,14 @@
|
|
|
2
2
|
"address": "TRDwq3BN4mP3m9KsuNUWSN6QDff93VKGSwE95Jbr9Ss",
|
|
3
3
|
"metadata": {
|
|
4
4
|
"name": "triad_protocol",
|
|
5
|
-
"version": "0.1.
|
|
6
|
-
"spec": "0.1.0"
|
|
5
|
+
"version": "0.1.4",
|
|
6
|
+
"spec": "0.1.0",
|
|
7
|
+
"description": "Triad protocol, trade solana projects"
|
|
7
8
|
},
|
|
8
9
|
"instructions": [
|
|
9
10
|
{
|
|
10
|
-
"name": "
|
|
11
|
-
"discriminator": [
|
|
11
|
+
"name": "claim_stake_rewards",
|
|
12
|
+
"discriminator": [107, 91, 233, 196, 211, 47, 218, 21],
|
|
12
13
|
"accounts": [
|
|
13
14
|
{
|
|
14
15
|
"name": "signer",
|
|
@@ -76,7 +77,8 @@
|
|
|
76
77
|
"address": "11111111111111111111111111111111"
|
|
77
78
|
}
|
|
78
79
|
],
|
|
79
|
-
"args": []
|
|
80
|
+
"args": [],
|
|
81
|
+
"returns": "u64"
|
|
80
82
|
},
|
|
81
83
|
{
|
|
82
84
|
"name": "close_position",
|
|
@@ -508,6 +510,10 @@
|
|
|
508
510
|
"name": "stake_vault",
|
|
509
511
|
"writable": true
|
|
510
512
|
},
|
|
513
|
+
{
|
|
514
|
+
"name": "user",
|
|
515
|
+
"writable": true
|
|
516
|
+
},
|
|
511
517
|
{
|
|
512
518
|
"name": "stake",
|
|
513
519
|
"writable": true
|
|
@@ -749,6 +755,38 @@
|
|
|
749
755
|
}
|
|
750
756
|
]
|
|
751
757
|
},
|
|
758
|
+
{
|
|
759
|
+
"name": "swap_404",
|
|
760
|
+
"discriminator": [227, 249, 224, 136, 128, 95, 255, 239],
|
|
761
|
+
"accounts": [
|
|
762
|
+
{
|
|
763
|
+
"name": "signer",
|
|
764
|
+
"writable": true,
|
|
765
|
+
"signer": true
|
|
766
|
+
},
|
|
767
|
+
{
|
|
768
|
+
"name": "user",
|
|
769
|
+
"writable": true,
|
|
770
|
+
"pda": {
|
|
771
|
+
"seeds": [
|
|
772
|
+
{
|
|
773
|
+
"kind": "const",
|
|
774
|
+
"value": [117, 115, 101, 114]
|
|
775
|
+
},
|
|
776
|
+
{
|
|
777
|
+
"kind": "account",
|
|
778
|
+
"path": "signer"
|
|
779
|
+
}
|
|
780
|
+
]
|
|
781
|
+
}
|
|
782
|
+
},
|
|
783
|
+
{
|
|
784
|
+
"name": "system_program",
|
|
785
|
+
"address": "11111111111111111111111111111111"
|
|
786
|
+
}
|
|
787
|
+
],
|
|
788
|
+
"args": []
|
|
789
|
+
},
|
|
752
790
|
{
|
|
753
791
|
"name": "update_stake_vault_status",
|
|
754
792
|
"discriminator": [71, 64, 188, 150, 86, 254, 221, 65],
|
|
@@ -1033,6 +1071,16 @@
|
|
|
1033
1071
|
"code": 6020,
|
|
1034
1072
|
"name": "StakeOverflow",
|
|
1035
1073
|
"msg": "Stake overflow"
|
|
1074
|
+
},
|
|
1075
|
+
{
|
|
1076
|
+
"code": 6021,
|
|
1077
|
+
"name": "SwapsReachedLimit",
|
|
1078
|
+
"msg": "Swaps reached limit"
|
|
1079
|
+
},
|
|
1080
|
+
{
|
|
1081
|
+
"code": 6022,
|
|
1082
|
+
"name": "InsufficientFunds",
|
|
1083
|
+
"msg": "Insufficient funds"
|
|
1036
1084
|
}
|
|
1037
1085
|
],
|
|
1038
1086
|
"types": [
|
|
@@ -1474,6 +1522,10 @@
|
|
|
1474
1522
|
{
|
|
1475
1523
|
"name": "init_ts",
|
|
1476
1524
|
"type": "i64"
|
|
1525
|
+
},
|
|
1526
|
+
{
|
|
1527
|
+
"name": "slots",
|
|
1528
|
+
"type": "u64"
|
|
1477
1529
|
}
|
|
1478
1530
|
]
|
|
1479
1531
|
}
|
|
@@ -1531,10 +1583,14 @@
|
|
|
1531
1583
|
"name": "staked",
|
|
1532
1584
|
"type": "u64"
|
|
1533
1585
|
},
|
|
1586
|
+
{
|
|
1587
|
+
"name": "first_swap",
|
|
1588
|
+
"type": "i64"
|
|
1589
|
+
},
|
|
1534
1590
|
{
|
|
1535
1591
|
"name": "padding",
|
|
1536
1592
|
"type": {
|
|
1537
|
-
"array": ["u8",
|
|
1593
|
+
"array": ["u8", 32]
|
|
1538
1594
|
}
|
|
1539
1595
|
}
|
|
1540
1596
|
]
|
|
@@ -8,13 +8,14 @@ export type TriadProtocol = {
|
|
|
8
8
|
address: 'TRDwq3BN4mP3m9KsuNUWSN6QDff93VKGSwE95Jbr9Ss';
|
|
9
9
|
metadata: {
|
|
10
10
|
name: 'triadProtocol';
|
|
11
|
-
version: '0.1.
|
|
11
|
+
version: '0.1.4';
|
|
12
12
|
spec: '0.1.0';
|
|
13
|
+
description: 'Triad protocol, trade solana projects';
|
|
13
14
|
};
|
|
14
15
|
instructions: [
|
|
15
16
|
{
|
|
16
|
-
name: '
|
|
17
|
-
discriminator: [
|
|
17
|
+
name: 'claimStakeRewards';
|
|
18
|
+
discriminator: [107, 91, 233, 196, 211, 47, 218, 21];
|
|
18
19
|
accounts: [
|
|
19
20
|
{
|
|
20
21
|
name: 'signer';
|
|
@@ -55,6 +56,7 @@ export type TriadProtocol = {
|
|
|
55
56
|
}
|
|
56
57
|
];
|
|
57
58
|
args: [];
|
|
59
|
+
returns: 'u64';
|
|
58
60
|
},
|
|
59
61
|
{
|
|
60
62
|
name: 'closePosition';
|
|
@@ -340,92 +342,6 @@ export type TriadProtocol = {
|
|
|
340
342
|
{
|
|
341
343
|
name: 'toAta';
|
|
342
344
|
writable: true;
|
|
343
|
-
pda: {
|
|
344
|
-
seeds: [
|
|
345
|
-
{
|
|
346
|
-
kind: 'account';
|
|
347
|
-
path: 'stakeVault';
|
|
348
|
-
},
|
|
349
|
-
{
|
|
350
|
-
kind: 'const';
|
|
351
|
-
value: [
|
|
352
|
-
6,
|
|
353
|
-
221,
|
|
354
|
-
246,
|
|
355
|
-
225,
|
|
356
|
-
215,
|
|
357
|
-
101,
|
|
358
|
-
161,
|
|
359
|
-
147,
|
|
360
|
-
217,
|
|
361
|
-
203,
|
|
362
|
-
225,
|
|
363
|
-
70,
|
|
364
|
-
206,
|
|
365
|
-
235,
|
|
366
|
-
121,
|
|
367
|
-
172,
|
|
368
|
-
28,
|
|
369
|
-
180,
|
|
370
|
-
133,
|
|
371
|
-
237,
|
|
372
|
-
95,
|
|
373
|
-
91,
|
|
374
|
-
55,
|
|
375
|
-
145,
|
|
376
|
-
58,
|
|
377
|
-
140,
|
|
378
|
-
245,
|
|
379
|
-
133,
|
|
380
|
-
126,
|
|
381
|
-
255,
|
|
382
|
-
0,
|
|
383
|
-
169
|
|
384
|
-
];
|
|
385
|
-
},
|
|
386
|
-
{
|
|
387
|
-
kind: 'account';
|
|
388
|
-
path: 'mint';
|
|
389
|
-
}
|
|
390
|
-
];
|
|
391
|
-
program: {
|
|
392
|
-
kind: 'const';
|
|
393
|
-
value: [
|
|
394
|
-
140,
|
|
395
|
-
151,
|
|
396
|
-
37,
|
|
397
|
-
143,
|
|
398
|
-
78,
|
|
399
|
-
36,
|
|
400
|
-
137,
|
|
401
|
-
241,
|
|
402
|
-
187,
|
|
403
|
-
61,
|
|
404
|
-
16,
|
|
405
|
-
41,
|
|
406
|
-
20,
|
|
407
|
-
142,
|
|
408
|
-
13,
|
|
409
|
-
131,
|
|
410
|
-
11,
|
|
411
|
-
90,
|
|
412
|
-
19,
|
|
413
|
-
153,
|
|
414
|
-
218,
|
|
415
|
-
255,
|
|
416
|
-
16,
|
|
417
|
-
132,
|
|
418
|
-
4,
|
|
419
|
-
142,
|
|
420
|
-
123,
|
|
421
|
-
216,
|
|
422
|
-
219,
|
|
423
|
-
233,
|
|
424
|
-
248,
|
|
425
|
-
89
|
|
426
|
-
];
|
|
427
|
-
};
|
|
428
|
-
};
|
|
429
345
|
},
|
|
430
346
|
{
|
|
431
347
|
name: 'tokenProgram';
|
|
@@ -590,6 +506,10 @@ export type TriadProtocol = {
|
|
|
590
506
|
name: 'stakeVault';
|
|
591
507
|
writable: true;
|
|
592
508
|
},
|
|
509
|
+
{
|
|
510
|
+
name: 'user';
|
|
511
|
+
writable: true;
|
|
512
|
+
},
|
|
593
513
|
{
|
|
594
514
|
name: 'stake';
|
|
595
515
|
writable: true;
|
|
@@ -775,6 +695,38 @@ export type TriadProtocol = {
|
|
|
775
695
|
}
|
|
776
696
|
];
|
|
777
697
|
},
|
|
698
|
+
{
|
|
699
|
+
name: 'swap404';
|
|
700
|
+
discriminator: [227, 249, 224, 136, 128, 95, 255, 239];
|
|
701
|
+
accounts: [
|
|
702
|
+
{
|
|
703
|
+
name: 'signer';
|
|
704
|
+
writable: true;
|
|
705
|
+
signer: true;
|
|
706
|
+
},
|
|
707
|
+
{
|
|
708
|
+
name: 'user';
|
|
709
|
+
writable: true;
|
|
710
|
+
pda: {
|
|
711
|
+
seeds: [
|
|
712
|
+
{
|
|
713
|
+
kind: 'const';
|
|
714
|
+
value: [117, 115, 101, 114];
|
|
715
|
+
},
|
|
716
|
+
{
|
|
717
|
+
kind: 'account';
|
|
718
|
+
path: 'signer';
|
|
719
|
+
}
|
|
720
|
+
];
|
|
721
|
+
};
|
|
722
|
+
},
|
|
723
|
+
{
|
|
724
|
+
name: 'systemProgram';
|
|
725
|
+
address: '11111111111111111111111111111111';
|
|
726
|
+
}
|
|
727
|
+
];
|
|
728
|
+
args: [];
|
|
729
|
+
},
|
|
778
730
|
{
|
|
779
731
|
name: 'updateStakeVaultStatus';
|
|
780
732
|
discriminator: [71, 64, 188, 150, 86, 254, 221, 65];
|
|
@@ -1031,6 +983,16 @@ export type TriadProtocol = {
|
|
|
1031
983
|
code: 6020;
|
|
1032
984
|
name: 'stakeOverflow';
|
|
1033
985
|
msg: 'Stake overflow';
|
|
986
|
+
},
|
|
987
|
+
{
|
|
988
|
+
code: 6021;
|
|
989
|
+
name: 'swapsReachedLimit';
|
|
990
|
+
msg: 'Swaps reached limit';
|
|
991
|
+
},
|
|
992
|
+
{
|
|
993
|
+
code: 6022;
|
|
994
|
+
name: 'insufficientFunds';
|
|
995
|
+
msg: 'Insufficient funds';
|
|
1034
996
|
}
|
|
1035
997
|
];
|
|
1036
998
|
types: [
|
|
@@ -1472,6 +1434,10 @@ export type TriadProtocol = {
|
|
|
1472
1434
|
{
|
|
1473
1435
|
name: 'initTs';
|
|
1474
1436
|
type: 'i64';
|
|
1437
|
+
},
|
|
1438
|
+
{
|
|
1439
|
+
name: 'slots';
|
|
1440
|
+
type: 'u64';
|
|
1475
1441
|
}
|
|
1476
1442
|
];
|
|
1477
1443
|
};
|
|
@@ -1529,10 +1495,14 @@ export type TriadProtocol = {
|
|
|
1529
1495
|
name: 'staked';
|
|
1530
1496
|
type: 'u64';
|
|
1531
1497
|
},
|
|
1498
|
+
{
|
|
1499
|
+
name: 'firstSwap';
|
|
1500
|
+
type: 'i64';
|
|
1501
|
+
},
|
|
1532
1502
|
{
|
|
1533
1503
|
name: 'padding';
|
|
1534
1504
|
type: {
|
|
1535
|
-
array: ['u8',
|
|
1505
|
+
array: ['u8', 32];
|
|
1536
1506
|
};
|
|
1537
1507
|
}
|
|
1538
1508
|
];
|