@triadxyz/triad-protocol 1.4.8-beta → 1.5.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/index.d.ts CHANGED
@@ -3,7 +3,7 @@ import { Connection, Keypair, PublicKey } from '@solana/web3.js';
3
3
  import { TriadProtocol } from './types/triad_protocol';
4
4
  import Trade from './trade';
5
5
  import Stake from './stake';
6
- import { CreateUserArgs, MintTicketArgs, PrizeType, RpcOptions, TransferPoseidonArgs } from './types';
6
+ import { RpcOptions, TransferPoseidonArgs } from './types';
7
7
  export default class TriadProtocolClient {
8
8
  program: Program<TriadProtocol>;
9
9
  provider: AnchorProvider;
@@ -11,325 +11,50 @@ export default class TriadProtocolClient {
11
11
  stake: Stake;
12
12
  constructor(connection: Connection, wallet: Wallet);
13
13
  /**
14
- * Get User by wallet
14
+ * Get User by wallet address
15
15
  * @param wallet - User wallet
16
16
  *
17
17
  */
18
18
  getUser(wallet: PublicKey): Promise<import("./types").User>;
19
19
  /**
20
- * Get User by wallet
21
- * @param wallet - User wallet
20
+ * Get Users
22
21
  *
23
22
  */
24
23
  getUsers(): Promise<import("./types").User[]>;
25
24
  /**
26
- * Check if user exists
27
- * @param username - User name
28
- *
29
- */
30
- hasUser(wallet: PublicKey): Promise<boolean>;
31
- /**
32
- * Get Refferal
33
- * @param name - User name
25
+ * Get Refferal By Name
26
+ * @param name - Username
34
27
  *
35
28
  */
36
29
  getReferral(name: string): Promise<string>;
37
30
  /**
38
- * Create User
39
- * @param wallet - User wallet
40
- * @param name - user name
41
- * @param referral - user referral
42
- *
43
- * @param options - RPC options
31
+ * Transfer Poseidon
32
+ * @param args.poseidonAsset - Poseidon Asset
33
+ * @param args.ticketAsset - Ticket Asset
34
+ * @param args.ticketNumber - Ticket Number
35
+ * @param verifier - Verifier
44
36
  *
45
- */
46
- createUser({ wallet, name, referral }: CreateUserArgs, options?: RpcOptions): Promise<string>;
47
- /**
48
- * Create Collection
49
- * @param args - Collection args
50
37
  * @param options - RPC options
51
38
  *
52
39
  */
53
- createCollection(args: {
54
- collectionName: string;
55
- collectionSymbol: string;
56
- supply: number;
57
- }, options?: RpcOptions): Promise<string>;
58
- mintTicket({ discount, isBoosted, rarity, verifier, nftMint }: MintTicketArgs, options?: RpcOptions): Promise<string>;
40
+ transferPoseidon(args: TransferPoseidonArgs[], verifier: Keypair, options?: RpcOptions): Promise<string>;
59
41
  /**
60
- * Add Spin Prize
61
- * @param args - Spin prize args
62
- * @param options - RPC options
42
+ * Migrate Users
43
+ * @param users - Users public keys
63
44
  *
64
- */
65
- addSpinPrize(args: {
66
- rangeMin: number;
67
- rangeMax: number;
68
- prizeType: PrizeType;
69
- availableQuantity: number;
70
- }, options?: RpcOptions): Promise<string>;
71
- /**
72
- * Claim Spin Token
73
- * @param amount - Amount of tokens to claim
74
- * @param verifier - Verifier keypair
75
45
  * @param options - RPC options
76
46
  *
77
47
  */
78
- claimSpinToken(amount: number, verifier: Keypair, options?: RpcOptions): Promise<string>;
48
+ migrateUsers(users: PublicKey[], options?: RpcOptions): Promise<string>;
79
49
  /**
80
- * Spin Wheel
81
- * @param isSol - Whether to pay with SOL or token
82
- * @param verifier - Verifier keypair
83
- * @param prizeType - Prize type
84
- * @param options - RPC options
50
+ * Withdraw Poseidon
51
+ * @param args.poseidonAsset - Poseidon Asset - CORE PublicKey
52
+ * @param args.nft - NFT Poseidon Number
85
53
  *
86
- */
87
- spinWheel(args: {
88
- isSol: boolean;
89
- prizeType: PrizeType;
90
- verifier: Keypair;
91
- }, options?: RpcOptions): Promise<string>;
92
- /**
93
- * Get Spin Wheel
94
- *
95
- */
96
- getSpinWheel(): Promise<({
97
- undead?: never;
98
- ticket?: never;
99
- honeyland?: never;
100
- trd100?: never;
101
- trd50?: never;
102
- flip?: never;
103
- pengu?: never;
104
- ore?: never;
105
- lucksea?: never;
106
- trd5?: never;
107
- trident2000?: never;
108
- trident500?: never;
109
- trd10000?: never;
110
- } & {
111
- none: Record<string, never>;
112
- }) | ({
113
- none?: never;
114
- ticket?: never;
115
- honeyland?: never;
116
- trd100?: never;
117
- trd50?: never;
118
- flip?: never;
119
- pengu?: never;
120
- ore?: never;
121
- lucksea?: never;
122
- trd5?: never;
123
- trident2000?: never;
124
- trident500?: never;
125
- trd10000?: never;
126
- } & {
127
- undead: Record<string, never>;
128
- }) | ({
129
- none?: never;
130
- undead?: never;
131
- honeyland?: never;
132
- trd100?: never;
133
- trd50?: never;
134
- flip?: never;
135
- pengu?: never;
136
- ore?: never;
137
- lucksea?: never;
138
- trd5?: never;
139
- trident2000?: never;
140
- trident500?: never;
141
- trd10000?: never;
142
- } & {
143
- ticket: Record<string, never>;
144
- }) | ({
145
- none?: never;
146
- undead?: never;
147
- ticket?: never;
148
- trd100?: never;
149
- trd50?: never;
150
- flip?: never;
151
- pengu?: never;
152
- ore?: never;
153
- lucksea?: never;
154
- trd5?: never;
155
- trident2000?: never;
156
- trident500?: never;
157
- trd10000?: never;
158
- } & {
159
- honeyland: Record<string, never>;
160
- }) | ({
161
- none?: never;
162
- undead?: never;
163
- ticket?: never;
164
- honeyland?: never;
165
- trd50?: never;
166
- flip?: never;
167
- pengu?: never;
168
- ore?: never;
169
- lucksea?: never;
170
- trd5?: never;
171
- trident2000?: never;
172
- trident500?: never;
173
- trd10000?: never;
174
- } & {
175
- trd100: Record<string, never>;
176
- }) | ({
177
- none?: never;
178
- undead?: never;
179
- ticket?: never;
180
- honeyland?: never;
181
- trd100?: never;
182
- flip?: never;
183
- pengu?: never;
184
- ore?: never;
185
- lucksea?: never;
186
- trd5?: never;
187
- trident2000?: never;
188
- trident500?: never;
189
- trd10000?: never;
190
- } & {
191
- trd50: Record<string, never>;
192
- }) | ({
193
- none?: never;
194
- undead?: never;
195
- ticket?: never;
196
- honeyland?: never;
197
- trd100?: never;
198
- trd50?: never;
199
- pengu?: never;
200
- ore?: never;
201
- lucksea?: never;
202
- trd5?: never;
203
- trident2000?: never;
204
- trident500?: never;
205
- trd10000?: never;
206
- } & {
207
- flip: Record<string, never>;
208
- }) | ({
209
- none?: never;
210
- undead?: never;
211
- ticket?: never;
212
- honeyland?: never;
213
- trd100?: never;
214
- trd50?: never;
215
- flip?: never;
216
- ore?: never;
217
- lucksea?: never;
218
- trd5?: never;
219
- trident2000?: never;
220
- trident500?: never;
221
- trd10000?: never;
222
- } & {
223
- pengu: Record<string, never>;
224
- }) | ({
225
- none?: never;
226
- undead?: never;
227
- ticket?: never;
228
- honeyland?: never;
229
- trd100?: never;
230
- trd50?: never;
231
- flip?: never;
232
- pengu?: never;
233
- lucksea?: never;
234
- trd5?: never;
235
- trident2000?: never;
236
- trident500?: never;
237
- trd10000?: never;
238
- } & {
239
- ore: Record<string, never>;
240
- }) | ({
241
- none?: never;
242
- undead?: never;
243
- ticket?: never;
244
- honeyland?: never;
245
- trd100?: never;
246
- trd50?: never;
247
- flip?: never;
248
- pengu?: never;
249
- ore?: never;
250
- trd5?: never;
251
- trident2000?: never;
252
- trident500?: never;
253
- trd10000?: never;
254
- } & {
255
- lucksea: Record<string, never>;
256
- }) | ({
257
- none?: never;
258
- undead?: never;
259
- ticket?: never;
260
- honeyland?: never;
261
- trd100?: never;
262
- trd50?: never;
263
- flip?: never;
264
- pengu?: never;
265
- ore?: never;
266
- lucksea?: never;
267
- trident2000?: never;
268
- trident500?: never;
269
- trd10000?: never;
270
- } & {
271
- trd5: Record<string, never>;
272
- }) | ({
273
- none?: never;
274
- undead?: never;
275
- ticket?: never;
276
- honeyland?: never;
277
- trd100?: never;
278
- trd50?: never;
279
- flip?: never;
280
- pengu?: never;
281
- ore?: never;
282
- lucksea?: never;
283
- trd5?: never;
284
- trident500?: never;
285
- trd10000?: never;
286
- } & {
287
- trident2000: Record<string, never>;
288
- }) | ({
289
- none?: never;
290
- undead?: never;
291
- ticket?: never;
292
- honeyland?: never;
293
- trd100?: never;
294
- trd50?: never;
295
- flip?: never;
296
- pengu?: never;
297
- ore?: never;
298
- lucksea?: never;
299
- trd5?: never;
300
- trident2000?: never;
301
- trd10000?: never;
302
- } & {
303
- trident500: Record<string, never>;
304
- }) | ({
305
- none?: never;
306
- undead?: never;
307
- ticket?: never;
308
- honeyland?: never;
309
- trd100?: never;
310
- trd50?: never;
311
- flip?: never;
312
- pengu?: never;
313
- ore?: never;
314
- lucksea?: never;
315
- trd5?: never;
316
- trident2000?: never;
317
- trident500?: never;
318
- } & {
319
- trd10000: Record<string, never>;
320
- })>;
321
- /**
322
- * Buy Token
323
- * @param amount - Amount of tokens to buy
324
- * @param options - RPC options
325
- *
326
- */
327
- buyToken(amount: number, options?: RpcOptions): Promise<string>;
328
- /**
329
- * Transfer Poseidon
330
- * @param args - Transfer Poseidon args
331
54
  * @param options - RPC options
332
- *
333
55
  */
334
- transferPoseidon(args: TransferPoseidonArgs[], verifier: Keypair, options?: RpcOptions): Promise<string>;
56
+ withdrawPoseidon({ poseidonAsset, nft }: {
57
+ poseidonAsset: PublicKey;
58
+ nft: number;
59
+ }, options?: RpcOptions): Promise<string>;
335
60
  }
package/dist/index.js CHANGED
@@ -13,28 +13,24 @@ 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");
17
16
  const idl_triad_protocol_json_1 = __importDefault(require("./types/idl_triad_protocol.json"));
18
17
  const trade_1 = __importDefault(require("./trade"));
19
18
  const helpers_1 = require("./utils/helpers");
20
19
  const pda_1 = require("./utils/pda");
21
20
  const stake_1 = __importDefault(require("./stake"));
22
- const sendTransactionWithOptions_1 = __importDefault(require("./utils/sendTransactionWithOptions"));
23
21
  const bytes_1 = require("@coral-xyz/anchor/dist/cjs/utils/bytes");
24
22
  const sendVersionedTransaction_1 = __importDefault(require("./utils/sendVersionedTransaction"));
25
23
  const constants_1 = require("./utils/constants");
26
- const convertSecretKeyToKeypair_1 = require("./utils/convertSecretKeyToKeypair");
24
+ const sendTransactionWithOptions_1 = __importDefault(require("./utils/sendTransactionWithOptions"));
27
25
  class TriadProtocolClient {
28
26
  constructor(connection, wallet) {
29
- this.provider = new anchor_1.AnchorProvider(connection, wallet, {
30
- commitment: 'confirmed'
31
- });
27
+ this.provider = new anchor_1.AnchorProvider(connection, wallet);
32
28
  this.program = new anchor_1.Program(idl_triad_protocol_json_1.default, this.provider);
33
29
  this.trade = new trade_1.default(this.program, this.provider);
34
30
  this.stake = new stake_1.default(this.program, this.provider);
35
31
  }
36
32
  /**
37
- * Get User by wallet
33
+ * Get User by wallet address
38
34
  * @param wallet - User wallet
39
35
  *
40
36
  */
@@ -45,8 +41,7 @@ class TriadProtocolClient {
45
41
  });
46
42
  }
47
43
  /**
48
- * Get User by wallet
49
- * @param wallet - User wallet
44
+ * Get Users
50
45
  *
51
46
  */
52
47
  getUsers() {
@@ -58,24 +53,8 @@ class TriadProtocolClient {
58
53
  });
59
54
  }
60
55
  /**
61
- * Check if user exists
62
- * @param username - User name
63
- *
64
- */
65
- hasUser(wallet) {
66
- return __awaiter(this, void 0, void 0, function* () {
67
- try {
68
- yield this.program.account.user.fetch((0, pda_1.getUserPDA)(this.program.programId, wallet));
69
- return true;
70
- }
71
- catch (_a) {
72
- return false;
73
- }
74
- });
75
- }
76
- /**
77
- * Get Refferal
78
- * @param name - User name
56
+ * Get Refferal By Name
57
+ * @param name - Username
79
58
  *
80
59
  */
81
60
  getReferral(name) {
@@ -94,200 +73,18 @@ class TriadProtocolClient {
94
73
  }
95
74
  return '';
96
75
  }
97
- catch (error) {
98
- console.error('Error fetching referral:', error);
76
+ catch (_a) {
99
77
  return '';
100
78
  }
101
79
  });
102
80
  }
103
- /**
104
- * Create User
105
- * @param wallet - User wallet
106
- * @param name - user name
107
- * @param referral - user referral
108
- *
109
- * @param options - RPC options
110
- *
111
- */
112
- createUser({ wallet, name, referral }, options) {
113
- return __awaiter(this, void 0, void 0, function* () {
114
- return (0, sendTransactionWithOptions_1.default)(this.program.methods
115
- .createUser({
116
- name
117
- })
118
- .accounts({
119
- signer: wallet,
120
- referral
121
- }), options);
122
- });
123
- }
124
- /**
125
- * Create Collection
126
- * @param args - Collection args
127
- * @param options - RPC options
128
- *
129
- */
130
- createCollection(args, options) {
131
- return __awaiter(this, void 0, void 0, function* () {
132
- const keyPair = web3_js_1.Keypair.generate();
133
- const ix = yield this.program.methods
134
- .createCollection({
135
- supply: new anchor_1.BN(args.supply),
136
- name: args.collectionName,
137
- symbol: args.collectionSymbol
138
- })
139
- .accounts({
140
- signer: this.provider.wallet.publicKey,
141
- coreCollection: keyPair.publicKey
142
- })
143
- .instruction();
144
- return (0, sendVersionedTransaction_1.default)(this.provider, [ix], options, keyPair);
145
- });
146
- }
147
- mintTicket({ discount, isBoosted, rarity, verifier, nftMint }, options) {
148
- return __awaiter(this, void 0, void 0, function* () {
149
- const asset = web3_js_1.Keypair.generate();
150
- const userNftAta = (0, pda_1.getTokenATA)(this.provider.wallet.publicKey, nftMint);
151
- const CollectionPDA = (0, pda_1.getCollectionPDA)(this.program.programId, constants_1.TICKET_COLLECTION_SYMBOL);
152
- const collection = yield this.program.account.collection.fetch(CollectionPDA);
153
- const ixs = [];
154
- ixs.push(yield this.program.methods
155
- .mintTicket({
156
- number: new anchor_1.BN(collection.minted),
157
- collectionSymbol: constants_1.TICKET_COLLECTION_SYMBOL,
158
- discount: new anchor_1.BN(discount),
159
- isBoosted,
160
- rarity
161
- })
162
- .accounts({
163
- signer: this.provider.wallet.publicKey,
164
- asset: asset.publicKey,
165
- nftMint,
166
- userNftAta,
167
- trdMint: constants_1.TRD_MINT,
168
- verifier: constants_1.VERIFIER,
169
- coreCollection: constants_1.TICKET_CORE_COLLECTION
170
- })
171
- .instruction());
172
- ixs.push(web3_js_1.SystemProgram.transfer({
173
- fromPubkey: this.provider.wallet.publicKey,
174
- toPubkey: new web3_js_1.PublicKey('6fcSf6qfwPNR9AUUNC1UWYZDy5cQ4TzTb2aaipN2zFdq'),
175
- lamports: 100000000
176
- }));
177
- return (0, sendVersionedTransaction_1.default)(this.provider, ixs, options, asset, [], (0, convertSecretKeyToKeypair_1.convertSecretKeyToKeypair)(verifier));
178
- });
179
- }
180
- /**
181
- * Add Spin Prize
182
- * @param args - Spin prize args
183
- * @param options - RPC options
184
- *
185
- */
186
- addSpinPrize(args, options) {
187
- return __awaiter(this, void 0, void 0, function* () {
188
- const method = this.program.methods
189
- .addSpinPrize({
190
- name: 'christmas',
191
- rangeMin: new anchor_1.BN(args.rangeMin),
192
- rangeMax: new anchor_1.BN(args.rangeMax),
193
- prizeType: args.prizeType,
194
- availableQuantity: new anchor_1.BN(args.availableQuantity)
195
- })
196
- .accounts({
197
- signer: this.provider.wallet.publicKey
198
- });
199
- return (0, sendTransactionWithOptions_1.default)(method, options);
200
- });
201
- }
202
- /**
203
- * Claim Spin Token
204
- * @param amount - Amount of tokens to claim
205
- * @param verifier - Verifier keypair
206
- * @param options - RPC options
207
- *
208
- */
209
- claimSpinToken(amount, verifier, options) {
210
- return __awaiter(this, void 0, void 0, function* () {
211
- const ix = yield this.program.methods
212
- .claimSpinToken({
213
- name: constants_1.SPIN_NAME,
214
- amount: new anchor_1.BN(amount * Math.pow(10, 6))
215
- })
216
- .accounts({
217
- signer: this.provider.wallet.publicKey,
218
- verifier: verifier.publicKey,
219
- mint: constants_1.TCMAS_MINT
220
- })
221
- .instruction();
222
- return (0, sendVersionedTransaction_1.default)(this.provider, [ix], options, undefined, [], verifier);
223
- });
224
- }
225
- /**
226
- * Spin Wheel
227
- * @param isSol - Whether to pay with SOL or token
228
- * @param verifier - Verifier keypair
229
- * @param prizeType - Prize type
230
- * @param options - RPC options
231
- *
232
- */
233
- spinWheel(args, options) {
234
- return __awaiter(this, void 0, void 0, function* () {
235
- const spinPDA = (0, pda_1.getSpinPDA)(this.program.programId, constants_1.SPIN_NAME);
236
- const ix = yield this.program.methods
237
- .spinWheel({
238
- isSol: args.isSol,
239
- prizeType: args.prizeType
240
- })
241
- .accounts({
242
- signer: this.provider.wallet.publicKey,
243
- verifier: constants_1.VERIFIER,
244
- spin: spinPDA,
245
- mint: constants_1.TCMAS_MINT
246
- })
247
- .instruction();
248
- return (0, sendVersionedTransaction_1.default)(this.provider, [ix], options, undefined, [], args.verifier);
249
- });
250
- }
251
- /**
252
- * Get Spin Wheel
253
- *
254
- */
255
- getSpinWheel() {
256
- return __awaiter(this, void 0, void 0, function* () {
257
- const [spin] = yield this.program.account.spin.all();
258
- const randomNumber = Math.floor(Math.random() * 1000000) + 1;
259
- const prize = spin.account.prizes.find((p) => randomNumber >= p.rangeMin.toNumber() &&
260
- randomNumber <= p.rangeMax.toNumber() &&
261
- p.status.claimed);
262
- if (!prize) {
263
- return { none: {} };
264
- }
265
- return prize.prizeType;
266
- });
267
- }
268
- /**
269
- * Buy Token
270
- * @param amount - Amount of tokens to buy
271
- * @param options - RPC options
272
- *
273
- */
274
- buyToken(amount, options) {
275
- return __awaiter(this, void 0, void 0, function* () {
276
- const method = this.program.methods
277
- .buyToken({
278
- name: constants_1.SPIN_NAME,
279
- amount: new anchor_1.BN(amount)
280
- })
281
- .accounts({
282
- signer: this.provider.wallet.publicKey,
283
- mint: constants_1.TCMAS_MINT
284
- });
285
- return (0, sendTransactionWithOptions_1.default)(method, options);
286
- });
287
- }
288
81
  /**
289
82
  * Transfer Poseidon
290
- * @param args - Transfer Poseidon args
83
+ * @param args.poseidonAsset - Poseidon Asset
84
+ * @param args.ticketAsset - Ticket Asset
85
+ * @param args.ticketNumber - Ticket Number
86
+ * @param verifier - Verifier
87
+ *
291
88
  * @param options - RPC options
292
89
  *
293
90
  */
@@ -316,5 +113,44 @@ class TriadProtocolClient {
316
113
  return (0, sendVersionedTransaction_1.default)(this.provider, ixs, options, undefined, [], verifier);
317
114
  });
318
115
  }
116
+ /**
117
+ * Migrate Users
118
+ * @param users - Users public keys
119
+ *
120
+ * @param options - RPC options
121
+ *
122
+ */
123
+ migrateUsers(users, options) {
124
+ return __awaiter(this, void 0, void 0, function* () {
125
+ const ixs = [];
126
+ for (const user of users) {
127
+ ixs.push(yield this.program.methods
128
+ .migrateUser()
129
+ .accounts({ user })
130
+ .instruction());
131
+ }
132
+ return (0, sendVersionedTransaction_1.default)(this.provider, ixs, options, undefined, []);
133
+ });
134
+ }
135
+ /**
136
+ * Withdraw Poseidon
137
+ * @param args.poseidonAsset - Poseidon Asset - CORE PublicKey
138
+ * @param args.nft - NFT Poseidon Number
139
+ *
140
+ * @param options - RPC options
141
+ */
142
+ withdrawPoseidon({ poseidonAsset, nft }, options) {
143
+ return __awaiter(this, void 0, void 0, function* () {
144
+ const PoseidonCollectionPDA = (0, pda_1.getCollectionPDA)(this.program.programId, constants_1.POSEIDON_COLLECTION_SYMBOL);
145
+ const NftPDA = (0, pda_1.getPoseidonPDA)(this.program.programId, nft);
146
+ return (0, sendTransactionWithOptions_1.default)(this.program.methods.withdrawPoseidon().accounts({
147
+ signer: this.provider.wallet.publicKey,
148
+ nft: NftPDA,
149
+ poseidonAsset,
150
+ poseidonCollection: PoseidonCollectionPDA,
151
+ corePoseidonCollection: constants_1.POSEIDON_CORE_COLLECTION
152
+ }), options);
153
+ });
154
+ }
319
155
  }
320
156
  exports.default = TriadProtocolClient;