@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 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, initTs }: UpdateStakeVaultStatusArgs, options?: RpcOptions): Promise<string>;
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, initTs }, options) {
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
- getStake();
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": "args",
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": {
@@ -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: 'args';
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: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@triadxyz/triad-protocol",
3
- "version": "0.3.9-beta",
3
+ "version": "0.4.0-beta",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",