@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/LICENSE +183 -183
- package/dist/index.d.ts +21 -296
- package/dist/index.js +51 -215
- package/dist/stake.d.ts +36 -25
- package/dist/stake.js +43 -39
- package/dist/trade.d.ts +41 -41
- package/dist/trade.js +55 -83
- package/dist/types/idl_triad_protocol.json +299 -1174
- package/dist/types/stake.d.ts +0 -1
- package/dist/types/trade.d.ts +1 -2
- package/dist/types/triad_protocol.d.ts +281 -1328
- package/dist/utils/helpers.d.ts +1 -1
- package/dist/utils/helpers.js +5 -5
- package/dist/utils/pda/index.d.ts +1 -0
- package/dist/utils/pda/index.js +5 -1
- package/package.json +1 -1
- package/dist/local-test.d.ts +0 -1
- package/dist/local-test.js +0 -538
- package/dist/utils/jup-swap.d.ts +0 -15
- package/dist/utils/jup-swap.js +0 -66
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 {
|
|
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
|
|
21
|
-
* @param wallet - User wallet
|
|
20
|
+
* Get Users
|
|
22
21
|
*
|
|
23
22
|
*/
|
|
24
23
|
getUsers(): Promise<import("./types").User[]>;
|
|
25
24
|
/**
|
|
26
|
-
*
|
|
27
|
-
* @param
|
|
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
|
-
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
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
|
-
|
|
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
|
-
*
|
|
61
|
-
* @param
|
|
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
|
-
|
|
48
|
+
migrateUsers(users: PublicKey[], options?: RpcOptions): Promise<string>;
|
|
79
49
|
/**
|
|
80
|
-
*
|
|
81
|
-
* @param
|
|
82
|
-
* @param
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
-
*
|
|
62
|
-
* @param
|
|
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 (
|
|
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 -
|
|
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;
|