@triadxyz/triad-protocol 0.3.9-beta → 0.4.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 +11 -15
- package/dist/stake.js +54 -16
- package/dist/test.js +36 -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;
|
|
@@ -38,19 +38,7 @@ export default class Stake {
|
|
|
38
38
|
onchainId: string;
|
|
39
39
|
name: string;
|
|
40
40
|
rarityRankHrtt: number;
|
|
41
|
-
}[]): Promise<
|
|
42
|
-
available: number;
|
|
43
|
-
name: string;
|
|
44
|
-
stakeVault: string;
|
|
45
|
-
authority: string;
|
|
46
|
-
initTs: number;
|
|
47
|
-
withdrawTs: number;
|
|
48
|
-
mint: string;
|
|
49
|
-
claimedTs: number;
|
|
50
|
-
boost: boolean;
|
|
51
|
-
claimed: number;
|
|
52
|
-
amount: number;
|
|
53
|
-
}[]>;
|
|
41
|
+
}[]): Promise<StakeResponse[]>;
|
|
54
42
|
/**
|
|
55
43
|
* Get Stakes by day
|
|
56
44
|
* @param stakeVault - Stake Vault name
|
|
@@ -115,7 +103,7 @@ export default class Stake {
|
|
|
115
103
|
* @param week - Current week rewards (Starts from 0)
|
|
116
104
|
*
|
|
117
105
|
*/
|
|
118
|
-
updateStakeVaultStatus({ wallet, isLocked, stakeVault
|
|
106
|
+
updateStakeVaultStatus({ wallet, isLocked, stakeVault }: UpdateStakeVaultStatusArgs, options?: RpcOptions): Promise<string>;
|
|
119
107
|
/**
|
|
120
108
|
* Claim Stake Rewards
|
|
121
109
|
* @param wallet - User wallet
|
|
@@ -125,4 +113,12 @@ export default class Stake {
|
|
|
125
113
|
*
|
|
126
114
|
*/
|
|
127
115
|
claimStakeRewards({ wallet, stakeVault, nftName, collections, rank }: ClaimStakeRewardsArgs, options?: RpcOptions): Promise<import("@solana/web3.js").Transaction>;
|
|
116
|
+
/**
|
|
117
|
+
* Update Stake Boost
|
|
118
|
+
* @param wallet - User wallet
|
|
119
|
+
* @param nftName - Name of the nft
|
|
120
|
+
* @param boost - Boost value
|
|
121
|
+
*
|
|
122
|
+
*/
|
|
123
|
+
updateBoost({ wallet, nfts, boost }: UpdateBoostArgs, options?: RpcOptions): Promise<string>;
|
|
128
124
|
}
|
package/dist/stake.js
CHANGED
|
@@ -92,24 +92,25 @@ class Stake {
|
|
|
92
92
|
getStakeByWallet(wallet, stakeVault, collections, ranks) {
|
|
93
93
|
return __awaiter(this, void 0, void 0, function* () {
|
|
94
94
|
const response = yield this.getStakes(stakeVault);
|
|
95
|
-
const
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
const getRank = (0, getRarity_1.getRarityRank)(ranks, nft.mint, nft.name);
|
|
95
|
+
const data = [];
|
|
96
|
+
for (const stake of response) {
|
|
97
|
+
const getRank = (0, getRarity_1.getRarityRank)(ranks, stake.mint, stake.name);
|
|
99
98
|
let available = 0;
|
|
100
99
|
try {
|
|
101
100
|
available = yield this.getStakeRewards({
|
|
102
101
|
wallet,
|
|
103
|
-
nftName:
|
|
102
|
+
nftName: stake.name,
|
|
104
103
|
stakeVault,
|
|
105
104
|
rank: getRank,
|
|
106
105
|
collections
|
|
107
106
|
});
|
|
108
107
|
}
|
|
109
|
-
catch (error) {
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
108
|
+
catch (error) {
|
|
109
|
+
console.log(error);
|
|
110
|
+
}
|
|
111
|
+
data.push(Object.assign(Object.assign({}, stake), { available }));
|
|
112
|
+
}
|
|
113
|
+
return data;
|
|
113
114
|
});
|
|
114
115
|
}
|
|
115
116
|
/**
|
|
@@ -254,7 +255,9 @@ class Stake {
|
|
|
254
255
|
*/
|
|
255
256
|
depositStakeRewards({ wallet, mint, amount, stakeVault }, options) {
|
|
256
257
|
return __awaiter(this, void 0, void 0, function* () {
|
|
258
|
+
const StakeVaultPDA = (0, helpers_1.getStakeVaultAddressSync)(this.program.programId, stakeVault);
|
|
257
259
|
const FromAta = (0, helpers_1.getATASync)(wallet, mint);
|
|
260
|
+
const ToAta = (0, helpers_1.getATASync)(StakeVaultPDA, mint);
|
|
258
261
|
const method = this.program.methods
|
|
259
262
|
.depositStakeRewards({
|
|
260
263
|
amount,
|
|
@@ -263,7 +266,8 @@ class Stake {
|
|
|
263
266
|
.accounts({
|
|
264
267
|
signer: wallet,
|
|
265
268
|
fromAta: FromAta,
|
|
266
|
-
mint: mint
|
|
269
|
+
mint: mint,
|
|
270
|
+
toAta: ToAta
|
|
267
271
|
});
|
|
268
272
|
if (options === null || options === void 0 ? void 0 : options.microLamports) {
|
|
269
273
|
method.postInstructions([
|
|
@@ -347,15 +351,11 @@ class Stake {
|
|
|
347
351
|
* @param week - Current week rewards (Starts from 0)
|
|
348
352
|
*
|
|
349
353
|
*/
|
|
350
|
-
updateStakeVaultStatus({ wallet, isLocked, stakeVault
|
|
354
|
+
updateStakeVaultStatus({ wallet, isLocked, stakeVault }, options) {
|
|
351
355
|
return __awaiter(this, void 0, void 0, function* () {
|
|
352
356
|
const StakeVault = (0, helpers_1.getStakeVaultAddressSync)(this.program.programId, stakeVault);
|
|
353
357
|
const method = this.program.methods
|
|
354
|
-
.updateStakeVaultStatus(
|
|
355
|
-
isLocked,
|
|
356
|
-
initTs: new anchor_1.BN(initTs),
|
|
357
|
-
slots: new anchor_1.BN(1839)
|
|
358
|
-
})
|
|
358
|
+
.updateStakeVaultStatus(isLocked)
|
|
359
359
|
.accounts({
|
|
360
360
|
signer: wallet,
|
|
361
361
|
stakeVault: StakeVault
|
|
@@ -409,5 +409,43 @@ class Stake {
|
|
|
409
409
|
return method.transaction();
|
|
410
410
|
});
|
|
411
411
|
}
|
|
412
|
+
/**
|
|
413
|
+
* Update Stake Boost
|
|
414
|
+
* @param wallet - User wallet
|
|
415
|
+
* @param nftName - Name of the nft
|
|
416
|
+
* @param boost - Boost value
|
|
417
|
+
*
|
|
418
|
+
*/
|
|
419
|
+
updateBoost({ wallet, nfts, boost }, options) {
|
|
420
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
421
|
+
const ixs = [];
|
|
422
|
+
for (const nft of nfts) {
|
|
423
|
+
const Stake = (0, helpers_1.getStakeAddressSync)(this.program.programId, new web3_js_1.PublicKey(nft.wallet), nft.name);
|
|
424
|
+
ixs.push(yield this.program.methods
|
|
425
|
+
.updateStakeBoost(boost)
|
|
426
|
+
.accounts({
|
|
427
|
+
signer: wallet,
|
|
428
|
+
stake: Stake
|
|
429
|
+
})
|
|
430
|
+
.instruction());
|
|
431
|
+
}
|
|
432
|
+
if (options === null || options === void 0 ? void 0 : options.microLamports) {
|
|
433
|
+
ixs.push(web3_js_1.ComputeBudgetProgram.setComputeUnitPrice({
|
|
434
|
+
microLamports: options.microLamports
|
|
435
|
+
}));
|
|
436
|
+
}
|
|
437
|
+
const { blockhash } = yield this.provider.connection.getLatestBlockhash();
|
|
438
|
+
const messageV0 = new web3_js_1.TransactionMessage({
|
|
439
|
+
instructions: ixs,
|
|
440
|
+
recentBlockhash: blockhash,
|
|
441
|
+
payerKey: wallet
|
|
442
|
+
}).compileToV0Message();
|
|
443
|
+
const tx = new web3_js_1.VersionedTransaction(messageV0);
|
|
444
|
+
return this.provider.sendAndConfirm(tx, [], {
|
|
445
|
+
skipPreflight: options === null || options === void 0 ? void 0 : options.skipPreflight,
|
|
446
|
+
commitment: 'confirmed'
|
|
447
|
+
});
|
|
448
|
+
});
|
|
449
|
+
}
|
|
412
450
|
}
|
|
413
451
|
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,38 @@ 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
|
+
const updateBoost = yield triadProtocol.stake.updateBoost({
|
|
81
|
+
wallet: wallet.publicKey,
|
|
82
|
+
stakeVault: constants_1.STAKE_SEASON,
|
|
83
|
+
nfts: update,
|
|
84
|
+
boost: true
|
|
85
|
+
});
|
|
86
|
+
console.log(updateBoost);
|
|
87
|
+
});
|
|
@@ -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: {
|