@triadxyz/triad-protocol 0.1.3-beta → 0.1.6-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/index.d.ts CHANGED
@@ -4,6 +4,7 @@ import { TriadProtocol } from './types/triad_protocol';
4
4
  import Ticker from './ticker';
5
5
  import Vault from './vault';
6
6
  import Stake from './stake';
7
+ import { CreateUserArgs, RpcOptions } from './types';
7
8
  export default class TriadProtocolClient {
8
9
  program: Program<TriadProtocol>;
9
10
  provider: AnchorProvider;
@@ -11,5 +12,18 @@ export default class TriadProtocolClient {
11
12
  vault: Vault;
12
13
  stake: Stake;
13
14
  constructor(connection: Connection, wallet: Wallet);
15
+ /**
16
+ * Get all Users
17
+ */
18
+ getUsers: () => Promise<import("./types/stake").UserResponse[]>;
19
+ hasReferral: (referral: string) => Promise<boolean>;
14
20
  getUserPositions: (userWallet: PublicKey) => Promise<{}[]>;
21
+ /**
22
+ * Create User
23
+ * @param wallet - User wallet
24
+ * @param name - user name
25
+ * @param referral - user referral
26
+ *
27
+ */
28
+ createUser: ({ wallet, name, referral }: CreateUserArgs, options?: RpcOptions) => Promise<string>;
15
29
  }
package/dist/index.js CHANGED
@@ -13,6 +13,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  const anchor_1 = require("@coral-xyz/anchor");
16
+ const web3_js_1 = require("@solana/web3.js");
16
17
  const idl_triad_protocol_json_1 = __importDefault(require("./types/idl_triad_protocol.json"));
17
18
  const ticker_1 = __importDefault(require("./ticker"));
18
19
  const vault_1 = __importDefault(require("./vault"));
@@ -20,6 +21,22 @@ const helpers_1 = require("./utils/helpers");
20
21
  const stake_1 = __importDefault(require("./stake"));
21
22
  class TriadProtocolClient {
22
23
  constructor(connection, wallet) {
24
+ /**
25
+ * Get all Users
26
+ */
27
+ this.getUsers = () => __awaiter(this, void 0, void 0, function* () {
28
+ const response = yield this.program.account.user.all();
29
+ return response.map((item) => (0, helpers_1.formatUser)(item.account));
30
+ });
31
+ this.hasReferral = (referral) => __awaiter(this, void 0, void 0, function* () {
32
+ try {
33
+ yield this.program.account.user.fetch((0, helpers_1.getUserAddressSync)(this.program.programId, referral));
34
+ return true;
35
+ }
36
+ catch (_a) {
37
+ return false;
38
+ }
39
+ });
23
40
  this.getUserPositions = (userWallet) => __awaiter(this, void 0, void 0, function* () {
24
41
  const tickers = yield this.ticker.getTickers();
25
42
  const positions = yield Promise.all(tickers
@@ -33,7 +50,7 @@ class TriadProtocolClient {
33
50
  position
34
51
  };
35
52
  }
36
- catch (_a) {
53
+ catch (_b) {
37
54
  return;
38
55
  }
39
56
  return data;
@@ -41,6 +58,35 @@ class TriadProtocolClient {
41
58
  .filter(Boolean));
42
59
  return positions;
43
60
  });
61
+ /**
62
+ * Create User
63
+ * @param wallet - User wallet
64
+ * @param name - user name
65
+ * @param referral - user referral
66
+ *
67
+ */
68
+ this.createUser = ({ wallet, name, referral }, options) => {
69
+ let referralPDA = (0, helpers_1.getUserAddressSync)(this.program.programId, name);
70
+ if (referral) {
71
+ referralPDA = (0, helpers_1.getUserAddressSync)(this.program.programId, referral);
72
+ }
73
+ const method = this.program.methods
74
+ .createUser({
75
+ name
76
+ })
77
+ .accounts({
78
+ signer: wallet,
79
+ referral: referralPDA
80
+ });
81
+ if (options === null || options === void 0 ? void 0 : options.microLamports) {
82
+ method.postInstructions([
83
+ web3_js_1.ComputeBudgetProgram.setComputeUnitPrice({
84
+ microLamports: options.microLamports
85
+ })
86
+ ]);
87
+ }
88
+ return method.rpc({ skipPreflight: options === null || options === void 0 ? void 0 : options.skipPreflight });
89
+ };
44
90
  this.provider = new anchor_1.AnchorProvider(connection, wallet, anchor_1.AnchorProvider.defaultOptions());
45
91
  this.program = new anchor_1.Program(idl_triad_protocol_json_1.default, this.provider);
46
92
  this.ticker = new ticker_1.default(this.program, this.provider);
package/dist/stake.d.ts CHANGED
@@ -2,7 +2,7 @@ import { AnchorProvider, 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 { DepositStakeRewardsArgs, InitializeStakeArgs, StakeNftArgsV1, RequestWithdrawArgs, WithdrawArgs, StakeResponse, UpdateStakeVaultStatusArgs, ClaimStakeRewardsArgs, CreateUserArgs, StakeTokenArgs, MigrateStakeArgs } from './types/stake';
5
+ import { DepositStakeRewardsArgs, InitializeStakeArgs, StakeNftArgs, RequestWithdrawArgs, WithdrawArgs, StakeResponse, UpdateStakeVaultStatusArgs, ClaimStakeRewardsArgs, StakeTokenArgs, MigrateStakeArgs } from './types/stake';
6
6
  export default class Stake {
7
7
  program: Program<TriadProtocol>;
8
8
  provider: AnchorProvider;
@@ -11,10 +11,6 @@ export default class Stake {
11
11
  * Get all Stake Vaults
12
12
  */
13
13
  getStakeVaults(): Promise<import("./types/stake").StakeVaultResponse[]>;
14
- /**
15
- * Get all Users
16
- */
17
- getUsers(): Promise<import("./types/stake").UserResponse[]>;
18
14
  /**
19
15
  * Get Stake Vault by name
20
16
  * @param stakeVault - Stake Vault name
@@ -56,11 +52,9 @@ export default class Stake {
56
52
  * @param name - NFT name
57
53
  * @param wallet - User wallet
58
54
  * @param mint - NFT mint
59
- * @param collections - NFT collections
60
- * @param rarity - NFT rarity
61
55
  *
62
56
  */
63
- stakeNft({ name, wallet, mint, collections, rarity, stakeVault }: StakeNftArgsV1, options?: RpcOptions): Promise<string>;
57
+ stakeNft({ name, wallet, mint, stakeVault }: StakeNftArgs, options?: RpcOptions): Promise<string>;
64
58
  /**
65
59
  * Stake NFT
66
60
  * @param wallet - User wallet
@@ -116,20 +110,11 @@ export default class Stake {
116
110
  * Claim Stake Rewards
117
111
  * @param wallet - User wallet
118
112
  * @param mint - NFT mint
119
- * @param week - Week rewards
120
113
  * @param stakeVault - Name of the stake vault
121
114
  * @param nftName - Name of the nft
122
115
  *
123
116
  */
124
117
  claimStakeRewards({ wallet, mint, stakeVault, nftName }: ClaimStakeRewardsArgs, options?: RpcOptions): Promise<string>;
125
- /**
126
- * Create User
127
- * @param wallet - User wallet
128
- * @param name - user name
129
- * @param referral - user referral
130
- *
131
- */
132
- createUser({ wallet, name, referral }: CreateUserArgs, options?: RpcOptions): Promise<string>;
133
118
  /**
134
119
  * Migrate Stake
135
120
  * @param name - NFT name
package/dist/stake.js CHANGED
@@ -27,15 +27,6 @@ class Stake {
27
27
  return response.map((stakeVault) => (0, helpers_1.formatStakeVault)(stakeVault.account));
28
28
  });
29
29
  }
30
- /**
31
- * Get all Users
32
- */
33
- getUsers() {
34
- return __awaiter(this, void 0, void 0, function* () {
35
- const response = yield this.program.account.user.all();
36
- return response.map((item) => (0, helpers_1.formatUser)(item.account));
37
- });
38
- }
39
30
  /**
40
31
  * Get Stake Vault by name
41
32
  * @param stakeVault - Stake Vault name
@@ -128,26 +119,17 @@ class Stake {
128
119
  * @param name - NFT name
129
120
  * @param wallet - User wallet
130
121
  * @param mint - NFT mint
131
- * @param collections - NFT collections
132
- * @param rarity - NFT rarity
133
122
  *
134
123
  */
135
- stakeNft({ name, wallet, mint, collections, rarity, stakeVault }, options) {
124
+ stakeNft({ name, wallet, mint, stakeVault }, options) {
136
125
  return __awaiter(this, void 0, void 0, function* () {
137
126
  const StakeVault = (0, helpers_1.getStakeVaultAddressSync)(this.program.programId, stakeVault);
138
127
  const FromAta = (0, helpers_1.getATASync)(wallet, mint);
139
128
  const ToAta = (0, helpers_1.getATASync)(StakeVault, mint);
140
129
  let items = [];
141
- Object.keys(collections).forEach((key) => {
142
- if (collections[key]) {
143
- items.push({ [key]: {} });
144
- }
145
- });
146
130
  const method = this.program.methods
147
131
  .stakeNft({
148
132
  name,
149
- collections: items,
150
- rarity,
151
133
  stakeVault
152
134
  })
153
135
  .accounts({
@@ -358,7 +340,6 @@ class Stake {
358
340
  * Claim Stake Rewards
359
341
  * @param wallet - User wallet
360
342
  * @param mint - NFT mint
361
- * @param week - Week rewards
362
343
  * @param stakeVault - Name of the stake vault
363
344
  * @param nftName - Name of the nft
364
345
  *
@@ -387,34 +368,6 @@ class Stake {
387
368
  return method.rpc({ skipPreflight: options === null || options === void 0 ? void 0 : options.skipPreflight });
388
369
  });
389
370
  }
390
- /**
391
- * Create User
392
- * @param wallet - User wallet
393
- * @param name - user name
394
- * @param referral - user referral
395
- *
396
- */
397
- createUser({ wallet, name, referral }, options) {
398
- return __awaiter(this, void 0, void 0, function* () {
399
- const referralPDA = (0, helpers_1.getUserAddressSync)(this.program.programId, referral);
400
- const method = this.program.methods
401
- .createUser({
402
- name
403
- })
404
- .accounts({
405
- signer: wallet,
406
- referral: referralPDA
407
- });
408
- if (options === null || options === void 0 ? void 0 : options.microLamports) {
409
- method.postInstructions([
410
- web3_js_1.ComputeBudgetProgram.setComputeUnitPrice({
411
- microLamports: options.microLamports
412
- })
413
- ]);
414
- }
415
- return method.rpc({ skipPreflight: options === null || options === void 0 ? void 0 : options.skipPreflight });
416
- });
417
- }
418
371
  /**
419
372
  * Migrate Stake
420
373
  * @param name - NFT name
package/dist/test.js CHANGED
@@ -65,12 +65,10 @@ const getStake = () => __awaiter(void 0, void 0, void 0, function* () {
65
65
  console.log(response);
66
66
  console.log(stakeVaults);
67
67
  });
68
- getStake();
69
68
  const claimStakeRewardsV1 = () => __awaiter(void 0, void 0, void 0, function* () {
70
69
  const response = yield triadProtocol.stake.claimStakeRewards({
71
70
  wallet: wallet.publicKey,
72
71
  mint: new web3_js_1.PublicKey('t3DohmswhKk94PPbPYwA6ZKACyY3y5kbcqeQerAJjmV'),
73
- week: [4],
74
72
  stakeVault: constants_1.STAKE_SEASON,
75
73
  nftName: 'Triad 2807'
76
74
  }, {
@@ -84,13 +82,6 @@ const stake = () => __awaiter(void 0, void 0, void 0, function* () {
84
82
  name: 'Triad 0',
85
83
  wallet: wallet.publicKey,
86
84
  stakeVault: 'Rev 1',
87
- rarity: { mythic: {} },
88
- collections: {
89
- coleta: false,
90
- undead: false,
91
- alligators: false,
92
- pyth: false
93
- },
94
85
  mint: new web3_js_1.PublicKey('FXRhaGeYue7bMCwcksNw4hJRY7jZ1YMwgmCu1Y8fyUNd')
95
86
  }, {
96
87
  skipPreflight: true,
@@ -99,9 +90,14 @@ const stake = () => __awaiter(void 0, void 0, void 0, function* () {
99
90
  console.log(response);
100
91
  });
101
92
  const getUsers = () => __awaiter(void 0, void 0, void 0, function* () {
102
- const response = yield triadProtocol.stake.getUsers();
93
+ const response = yield triadProtocol.getUsers();
103
94
  console.log(response);
104
95
  });
96
+ const getReferral = () => __awaiter(void 0, void 0, void 0, function* () {
97
+ const response = yield triadProtocol.hasReferral('a');
98
+ console.log(response);
99
+ });
100
+ getReferral();
105
101
  const migrateStake = () => __awaiter(void 0, void 0, void 0, function* () {
106
102
  const response = yield triadProtocol.stake.migrateStake({
107
103
  wallet: wallet.publicKey,
@@ -1470,27 +1470,9 @@
1470
1470
  "name": "name",
1471
1471
  "type": "string"
1472
1472
  },
1473
- {
1474
- "name": "rarity",
1475
- "type": {
1476
- "defined": {
1477
- "name": "Rarity"
1478
- }
1479
- }
1480
- },
1481
1473
  {
1482
1474
  "name": "stake_vault",
1483
1475
  "type": "string"
1484
- },
1485
- {
1486
- "name": "collections",
1487
- "type": {
1488
- "vec": {
1489
- "defined": {
1490
- "name": "Collection"
1491
- }
1492
- }
1493
- }
1494
1476
  }
1495
1477
  ]
1496
1478
  }
@@ -1,4 +1,10 @@
1
+ import { PublicKey } from '@solana/web3.js';
1
2
  export type RpcOptions = {
2
3
  skipPreflight?: boolean;
3
4
  microLamports?: number;
4
5
  };
6
+ export type CreateUserArgs = {
7
+ wallet: PublicKey;
8
+ name: string;
9
+ referral?: string;
10
+ };
@@ -1,25 +1,11 @@
1
1
  import { PublicKey } from '@solana/web3.js';
2
2
  import BN from 'bn.js';
3
3
  export type Collection = 'alligators' | 'coleta' | 'undead' | 'pyth';
4
- export type StakeNftArgsV1 = {
4
+ export type StakeNftArgs = {
5
5
  name: string;
6
6
  wallet: PublicKey;
7
7
  stakeVault: string;
8
8
  mint: PublicKey;
9
- collections: Record<Collection, boolean>;
10
- rarity: {
11
- common: {};
12
- } | {
13
- uncommon: {};
14
- } | {
15
- rare: {};
16
- } | {
17
- epic: {};
18
- } | {
19
- legendary: {};
20
- } | {
21
- mythic: {};
22
- };
23
9
  };
24
10
  export type MigrateStakeArgs = {
25
11
  wallet: PublicKey;
@@ -66,16 +52,10 @@ export type UpdateStakeVaultStatusArgs = {
66
52
  };
67
53
  export type ClaimStakeRewardsArgs = {
68
54
  wallet: PublicKey;
69
- week: number[];
70
55
  mint: PublicKey;
71
56
  stakeVault: string;
72
57
  nftName: string;
73
58
  };
74
- export type CreateUserArgs = {
75
- wallet: PublicKey;
76
- name: string;
77
- referral: string;
78
- };
79
59
  export type UpdateStakeRewardsArgs = {
80
60
  day: number;
81
61
  wallet: PublicKey;
@@ -1382,27 +1382,9 @@ export type TriadProtocol = {
1382
1382
  name: 'name';
1383
1383
  type: 'string';
1384
1384
  },
1385
- {
1386
- name: 'rarity';
1387
- type: {
1388
- defined: {
1389
- name: 'rarity';
1390
- };
1391
- };
1392
- },
1393
1385
  {
1394
1386
  name: 'stakeVault';
1395
1387
  type: 'string';
1396
- },
1397
- {
1398
- name: 'collections';
1399
- type: {
1400
- vec: {
1401
- defined: {
1402
- name: 'collection';
1403
- };
1404
- };
1405
- };
1406
1388
  }
1407
1389
  ];
1408
1390
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@triadxyz/triad-protocol",
3
- "version": "0.1.3-beta",
3
+ "version": "0.1.6-beta",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",