@triadxyz/triad-protocol 0.3.9-beta → 0.4.0-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 +10 -2
- package/dist/stake.js +47 -8
- package/dist/test.js +37 -1
- package/dist/types/idl_triad_protocol.json +32 -26
- package/dist/types/stake.d.ts +9 -1
- package/dist/types/triad_protocol.d.ts +32 -26
- package/package.json +1 -1
package/dist/stake.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { AnchorProvider, Program } from '@coral-xyz/anchor';
|
|
|
3
3
|
import { PublicKey } from '@solana/web3.js';
|
|
4
4
|
import { TriadProtocol } from './types/triad_protocol';
|
|
5
5
|
import { RpcOptions } from './types';
|
|
6
|
-
import { DepositStakeRewardsArgs, InitializeStakeArgs, StakeNftArgs, RequestWithdrawArgs, WithdrawArgs, StakeResponse, UpdateStakeVaultStatusArgs, ClaimStakeRewardsArgs, StakeTokenArgs } from './types/stake';
|
|
6
|
+
import { DepositStakeRewardsArgs, InitializeStakeArgs, StakeNftArgs, RequestWithdrawArgs, WithdrawArgs, StakeResponse, UpdateStakeVaultStatusArgs, ClaimStakeRewardsArgs, StakeTokenArgs, UpdateBoostArgs } from './types/stake';
|
|
7
7
|
export default class Stake {
|
|
8
8
|
program: Program<TriadProtocol>;
|
|
9
9
|
provider: AnchorProvider;
|
|
@@ -115,7 +115,7 @@ export default class Stake {
|
|
|
115
115
|
* @param week - Current week rewards (Starts from 0)
|
|
116
116
|
*
|
|
117
117
|
*/
|
|
118
|
-
updateStakeVaultStatus({ wallet, isLocked, stakeVault
|
|
118
|
+
updateStakeVaultStatus({ wallet, isLocked, stakeVault }: UpdateStakeVaultStatusArgs, options?: RpcOptions): Promise<string>;
|
|
119
119
|
/**
|
|
120
120
|
* Claim Stake Rewards
|
|
121
121
|
* @param wallet - User wallet
|
|
@@ -125,4 +125,12 @@ export default class Stake {
|
|
|
125
125
|
*
|
|
126
126
|
*/
|
|
127
127
|
claimStakeRewards({ wallet, stakeVault, nftName, collections, rank }: ClaimStakeRewardsArgs, options?: RpcOptions): Promise<import("@solana/web3.js").Transaction>;
|
|
128
|
+
/**
|
|
129
|
+
* Update Stake Boost
|
|
130
|
+
* @param wallet - User wallet
|
|
131
|
+
* @param nftName - Name of the nft
|
|
132
|
+
* @param boost - Boost value
|
|
133
|
+
*
|
|
134
|
+
*/
|
|
135
|
+
updateBoost({ wallet, nfts, boost }: UpdateBoostArgs, options?: RpcOptions): Promise<string>;
|
|
128
136
|
}
|
package/dist/stake.js
CHANGED
|
@@ -106,7 +106,9 @@ class Stake {
|
|
|
106
106
|
collections
|
|
107
107
|
});
|
|
108
108
|
}
|
|
109
|
-
catch (error) {
|
|
109
|
+
catch (error) {
|
|
110
|
+
console.log(error);
|
|
111
|
+
}
|
|
110
112
|
return Object.assign(Object.assign({}, nft), { available });
|
|
111
113
|
}));
|
|
112
114
|
return Promise.all(stakePromises);
|
|
@@ -254,7 +256,9 @@ class Stake {
|
|
|
254
256
|
*/
|
|
255
257
|
depositStakeRewards({ wallet, mint, amount, stakeVault }, options) {
|
|
256
258
|
return __awaiter(this, void 0, void 0, function* () {
|
|
259
|
+
const StakeVaultPDA = (0, helpers_1.getStakeVaultAddressSync)(this.program.programId, stakeVault);
|
|
257
260
|
const FromAta = (0, helpers_1.getATASync)(wallet, mint);
|
|
261
|
+
const ToAta = (0, helpers_1.getATASync)(StakeVaultPDA, mint);
|
|
258
262
|
const method = this.program.methods
|
|
259
263
|
.depositStakeRewards({
|
|
260
264
|
amount,
|
|
@@ -263,7 +267,8 @@ class Stake {
|
|
|
263
267
|
.accounts({
|
|
264
268
|
signer: wallet,
|
|
265
269
|
fromAta: FromAta,
|
|
266
|
-
mint: mint
|
|
270
|
+
mint: mint,
|
|
271
|
+
toAta: ToAta
|
|
267
272
|
});
|
|
268
273
|
if (options === null || options === void 0 ? void 0 : options.microLamports) {
|
|
269
274
|
method.postInstructions([
|
|
@@ -347,15 +352,11 @@ class Stake {
|
|
|
347
352
|
* @param week - Current week rewards (Starts from 0)
|
|
348
353
|
*
|
|
349
354
|
*/
|
|
350
|
-
updateStakeVaultStatus({ wallet, isLocked, stakeVault
|
|
355
|
+
updateStakeVaultStatus({ wallet, isLocked, stakeVault }, options) {
|
|
351
356
|
return __awaiter(this, void 0, void 0, function* () {
|
|
352
357
|
const StakeVault = (0, helpers_1.getStakeVaultAddressSync)(this.program.programId, stakeVault);
|
|
353
358
|
const method = this.program.methods
|
|
354
|
-
.updateStakeVaultStatus(
|
|
355
|
-
isLocked,
|
|
356
|
-
initTs: new anchor_1.BN(initTs),
|
|
357
|
-
slots: new anchor_1.BN(1839)
|
|
358
|
-
})
|
|
359
|
+
.updateStakeVaultStatus(isLocked)
|
|
359
360
|
.accounts({
|
|
360
361
|
signer: wallet,
|
|
361
362
|
stakeVault: StakeVault
|
|
@@ -409,5 +410,43 @@ class Stake {
|
|
|
409
410
|
return method.transaction();
|
|
410
411
|
});
|
|
411
412
|
}
|
|
413
|
+
/**
|
|
414
|
+
* Update Stake Boost
|
|
415
|
+
* @param wallet - User wallet
|
|
416
|
+
* @param nftName - Name of the nft
|
|
417
|
+
* @param boost - Boost value
|
|
418
|
+
*
|
|
419
|
+
*/
|
|
420
|
+
updateBoost({ wallet, nfts, boost }, options) {
|
|
421
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
422
|
+
const ixs = [];
|
|
423
|
+
for (const nft of nfts) {
|
|
424
|
+
const Stake = (0, helpers_1.getStakeAddressSync)(this.program.programId, new web3_js_1.PublicKey(nft.wallet), nft.name);
|
|
425
|
+
ixs.push(yield this.program.methods
|
|
426
|
+
.updateStakeBoost(boost)
|
|
427
|
+
.accounts({
|
|
428
|
+
signer: wallet,
|
|
429
|
+
stake: Stake
|
|
430
|
+
})
|
|
431
|
+
.instruction());
|
|
432
|
+
}
|
|
433
|
+
if (options === null || options === void 0 ? void 0 : options.microLamports) {
|
|
434
|
+
ixs.push(web3_js_1.ComputeBudgetProgram.setComputeUnitPrice({
|
|
435
|
+
microLamports: options.microLamports
|
|
436
|
+
}));
|
|
437
|
+
}
|
|
438
|
+
const { blockhash } = yield this.provider.connection.getLatestBlockhash();
|
|
439
|
+
const messageV0 = new web3_js_1.TransactionMessage({
|
|
440
|
+
instructions: ixs,
|
|
441
|
+
recentBlockhash: blockhash,
|
|
442
|
+
payerKey: wallet
|
|
443
|
+
}).compileToV0Message();
|
|
444
|
+
const tx = new web3_js_1.VersionedTransaction(messageV0);
|
|
445
|
+
return this.provider.sendAndConfirm(tx, [], {
|
|
446
|
+
skipPreflight: options === null || options === void 0 ? void 0 : options.skipPreflight,
|
|
447
|
+
commitment: 'confirmed'
|
|
448
|
+
});
|
|
449
|
+
});
|
|
450
|
+
}
|
|
412
451
|
}
|
|
413
452
|
exports.default = Stake;
|
package/dist/test.js
CHANGED
|
@@ -19,6 +19,7 @@ const anchor_1 = require("@coral-xyz/anchor");
|
|
|
19
19
|
const constants_1 = require("./utils/constants");
|
|
20
20
|
const rarity_json_1 = __importDefault(require("./utils/stake-season-1/rarity.json"));
|
|
21
21
|
const getRarity_1 = require("./utils/getRarity");
|
|
22
|
+
const axios_1 = __importDefault(require("axios"));
|
|
22
23
|
const file = fs_1.default.readFileSync('/Users/dannpl/.config/solana/id.json');
|
|
23
24
|
const rpc_file = fs_1.default.readFileSync('/Users/dannpl/.config/solana/rpc.txt');
|
|
24
25
|
const keypair = web3_js_1.Keypair.fromSecretKey(new Uint8Array(JSON.parse(file.toString())));
|
|
@@ -49,4 +50,39 @@ const getStake = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
49
50
|
console.log(items);
|
|
50
51
|
console.log(response.length);
|
|
51
52
|
});
|
|
52
|
-
|
|
53
|
+
const deposit = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
54
|
+
const response = yield triadProtocol.stake.depositStakeRewards({
|
|
55
|
+
wallet: wallet.publicKey,
|
|
56
|
+
stakeVault: constants_1.STAKE_SEASON,
|
|
57
|
+
mint: new web3_js_1.PublicKey(constants_1.TTRIAD_MINT),
|
|
58
|
+
amount: new anchor_1.BN(192388 * Math.pow(10, 6))
|
|
59
|
+
});
|
|
60
|
+
console.log(response);
|
|
61
|
+
});
|
|
62
|
+
const getStakeVault = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
63
|
+
const response = yield triadProtocol.stake.getStakeVaultByName(constants_1.STAKE_SEASON);
|
|
64
|
+
console.log(response);
|
|
65
|
+
});
|
|
66
|
+
const getStakeaa = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
67
|
+
const response = yield triadProtocol.stake.getStakeByWallet(new web3_js_1.PublicKey('HjJQdfTHgC3EBX3471w4st8BXbBmtbaMyCAXNgcUb7dq'), constants_1.STAKE_SEASON, 1, rarity_json_1.default);
|
|
68
|
+
console.log(response);
|
|
69
|
+
});
|
|
70
|
+
const updateBoost = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
71
|
+
const response = (yield axios_1.default.get('https://api.triadfi.co/boost'))
|
|
72
|
+
.data;
|
|
73
|
+
const stakes = yield triadProtocol.stake.getStakes(constants_1.STAKE_SEASON);
|
|
74
|
+
const update = [];
|
|
75
|
+
for (const stake of stakes) {
|
|
76
|
+
if (response.includes(stake.mint) && !stake.boost) {
|
|
77
|
+
update.push({ name: stake.name, wallet: stake.authority });
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
console.log(update.length);
|
|
81
|
+
const updateBoost = yield triadProtocol.stake.updateBoost({
|
|
82
|
+
wallet: wallet.publicKey,
|
|
83
|
+
stakeVault: constants_1.STAKE_SEASON,
|
|
84
|
+
nfts: update,
|
|
85
|
+
boost: true
|
|
86
|
+
});
|
|
87
|
+
console.log(updateBoost);
|
|
88
|
+
});
|
|
@@ -801,6 +801,31 @@
|
|
|
801
801
|
],
|
|
802
802
|
"args": []
|
|
803
803
|
},
|
|
804
|
+
{
|
|
805
|
+
"name": "update_stake_boost",
|
|
806
|
+
"discriminator": [239, 85, 19, 140, 235, 236, 88, 70],
|
|
807
|
+
"accounts": [
|
|
808
|
+
{
|
|
809
|
+
"name": "signer",
|
|
810
|
+
"writable": true,
|
|
811
|
+
"signer": true
|
|
812
|
+
},
|
|
813
|
+
{
|
|
814
|
+
"name": "stake",
|
|
815
|
+
"writable": true
|
|
816
|
+
},
|
|
817
|
+
{
|
|
818
|
+
"name": "system_program",
|
|
819
|
+
"address": "11111111111111111111111111111111"
|
|
820
|
+
}
|
|
821
|
+
],
|
|
822
|
+
"args": [
|
|
823
|
+
{
|
|
824
|
+
"name": "boost",
|
|
825
|
+
"type": "bool"
|
|
826
|
+
}
|
|
827
|
+
]
|
|
828
|
+
},
|
|
804
829
|
{
|
|
805
830
|
"name": "update_stake_vault_status",
|
|
806
831
|
"discriminator": [71, 64, 188, 150, 86, 254, 221, 65],
|
|
@@ -821,12 +846,8 @@
|
|
|
821
846
|
],
|
|
822
847
|
"args": [
|
|
823
848
|
{
|
|
824
|
-
"name": "
|
|
825
|
-
"type":
|
|
826
|
-
"defined": {
|
|
827
|
-
"name": "UpdateStakeVaultStatusArgs"
|
|
828
|
-
}
|
|
829
|
-
}
|
|
849
|
+
"name": "is_locked",
|
|
850
|
+
"type": "bool"
|
|
830
851
|
}
|
|
831
852
|
]
|
|
832
853
|
},
|
|
@@ -1095,6 +1116,11 @@
|
|
|
1095
1116
|
"code": 6022,
|
|
1096
1117
|
"name": "InsufficientFunds",
|
|
1097
1118
|
"msg": "Insufficient funds"
|
|
1119
|
+
},
|
|
1120
|
+
{
|
|
1121
|
+
"code": 6023,
|
|
1122
|
+
"name": "NoRewardsAvailable",
|
|
1123
|
+
"msg": "No rewards available"
|
|
1098
1124
|
}
|
|
1099
1125
|
],
|
|
1100
1126
|
"types": [
|
|
@@ -1540,26 +1566,6 @@
|
|
|
1540
1566
|
]
|
|
1541
1567
|
}
|
|
1542
1568
|
},
|
|
1543
|
-
{
|
|
1544
|
-
"name": "UpdateStakeVaultStatusArgs",
|
|
1545
|
-
"type": {
|
|
1546
|
-
"kind": "struct",
|
|
1547
|
-
"fields": [
|
|
1548
|
-
{
|
|
1549
|
-
"name": "is_locked",
|
|
1550
|
-
"type": "bool"
|
|
1551
|
-
},
|
|
1552
|
-
{
|
|
1553
|
-
"name": "init_ts",
|
|
1554
|
-
"type": "i64"
|
|
1555
|
-
},
|
|
1556
|
-
{
|
|
1557
|
-
"name": "slots",
|
|
1558
|
-
"type": "u64"
|
|
1559
|
-
}
|
|
1560
|
-
]
|
|
1561
|
-
}
|
|
1562
|
-
},
|
|
1563
1569
|
{
|
|
1564
1570
|
"name": "UpdateTickerPriceArgs",
|
|
1565
1571
|
"type": {
|
package/dist/types/stake.d.ts
CHANGED
|
@@ -51,7 +51,6 @@ export type UpdateStakeVaultStatusArgs = {
|
|
|
51
51
|
wallet: PublicKey;
|
|
52
52
|
isLocked: boolean;
|
|
53
53
|
stakeVault: string;
|
|
54
|
-
initTs: number;
|
|
55
54
|
};
|
|
56
55
|
export type ClaimStakeRewardsArgs = {
|
|
57
56
|
wallet: PublicKey;
|
|
@@ -60,6 +59,15 @@ export type ClaimStakeRewardsArgs = {
|
|
|
60
59
|
collections: number;
|
|
61
60
|
rank: number;
|
|
62
61
|
};
|
|
62
|
+
export type UpdateBoostArgs = {
|
|
63
|
+
wallet: PublicKey;
|
|
64
|
+
stakeVault: string;
|
|
65
|
+
nfts: {
|
|
66
|
+
name: string;
|
|
67
|
+
wallet: string;
|
|
68
|
+
}[];
|
|
69
|
+
boost: boolean;
|
|
70
|
+
};
|
|
63
71
|
export type UpdateStakeRewardsArgs = {
|
|
64
72
|
day: number;
|
|
65
73
|
wallet: PublicKey;
|
|
@@ -741,6 +741,31 @@ export type TriadProtocol = {
|
|
|
741
741
|
];
|
|
742
742
|
args: [];
|
|
743
743
|
},
|
|
744
|
+
{
|
|
745
|
+
name: 'updateStakeBoost';
|
|
746
|
+
discriminator: [239, 85, 19, 140, 235, 236, 88, 70];
|
|
747
|
+
accounts: [
|
|
748
|
+
{
|
|
749
|
+
name: 'signer';
|
|
750
|
+
writable: true;
|
|
751
|
+
signer: true;
|
|
752
|
+
},
|
|
753
|
+
{
|
|
754
|
+
name: 'stake';
|
|
755
|
+
writable: true;
|
|
756
|
+
},
|
|
757
|
+
{
|
|
758
|
+
name: 'systemProgram';
|
|
759
|
+
address: '11111111111111111111111111111111';
|
|
760
|
+
}
|
|
761
|
+
];
|
|
762
|
+
args: [
|
|
763
|
+
{
|
|
764
|
+
name: 'boost';
|
|
765
|
+
type: 'bool';
|
|
766
|
+
}
|
|
767
|
+
];
|
|
768
|
+
},
|
|
744
769
|
{
|
|
745
770
|
name: 'updateStakeVaultStatus';
|
|
746
771
|
discriminator: [71, 64, 188, 150, 86, 254, 221, 65];
|
|
@@ -761,12 +786,8 @@ export type TriadProtocol = {
|
|
|
761
786
|
];
|
|
762
787
|
args: [
|
|
763
788
|
{
|
|
764
|
-
name: '
|
|
765
|
-
type:
|
|
766
|
-
defined: {
|
|
767
|
-
name: 'updateStakeVaultStatusArgs';
|
|
768
|
-
};
|
|
769
|
-
};
|
|
789
|
+
name: 'isLocked';
|
|
790
|
+
type: 'bool';
|
|
770
791
|
}
|
|
771
792
|
];
|
|
772
793
|
},
|
|
@@ -1007,6 +1028,11 @@ export type TriadProtocol = {
|
|
|
1007
1028
|
code: 6022;
|
|
1008
1029
|
name: 'insufficientFunds';
|
|
1009
1030
|
msg: 'Insufficient funds';
|
|
1031
|
+
},
|
|
1032
|
+
{
|
|
1033
|
+
code: 6023;
|
|
1034
|
+
name: 'noRewardsAvailable';
|
|
1035
|
+
msg: 'No rewards available';
|
|
1010
1036
|
}
|
|
1011
1037
|
];
|
|
1012
1038
|
types: [
|
|
@@ -1452,26 +1478,6 @@ export type TriadProtocol = {
|
|
|
1452
1478
|
];
|
|
1453
1479
|
};
|
|
1454
1480
|
},
|
|
1455
|
-
{
|
|
1456
|
-
name: 'updateStakeVaultStatusArgs';
|
|
1457
|
-
type: {
|
|
1458
|
-
kind: 'struct';
|
|
1459
|
-
fields: [
|
|
1460
|
-
{
|
|
1461
|
-
name: 'isLocked';
|
|
1462
|
-
type: 'bool';
|
|
1463
|
-
},
|
|
1464
|
-
{
|
|
1465
|
-
name: 'initTs';
|
|
1466
|
-
type: 'i64';
|
|
1467
|
-
},
|
|
1468
|
-
{
|
|
1469
|
-
name: 'slots';
|
|
1470
|
-
type: 'u64';
|
|
1471
|
-
}
|
|
1472
|
-
];
|
|
1473
|
-
};
|
|
1474
|
-
},
|
|
1475
1481
|
{
|
|
1476
1482
|
name: 'updateTickerPriceArgs';
|
|
1477
1483
|
type: {
|