@triadxyz/triad-protocol 1.4.7-beta → 1.4.9-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 +50 -212
- 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/index.d.ts +1 -2
- package/dist/types/stake.d.ts +0 -1
- package/dist/types/trade.d.ts +0 -1
- package/dist/types/triad_protocol.d.ts +281 -1328
- package/dist/utils/helpers.d.ts +1 -1
- package/dist/utils/helpers.js +3 -3
- 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
54
|
* @param options - RPC options
|
|
325
|
-
*
|
|
326
55
|
*/
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
* @param options - RPC options
|
|
332
|
-
*
|
|
333
|
-
*/
|
|
334
|
-
transferPoseidon({ poseidonAsset, ticketAsset, verifier, ticketNumber }: TransferPoseidonArgs, 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
|
|
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,224 +73,83 @@ 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
81
|
/**
|
|
104
|
-
*
|
|
105
|
-
*
|
|
106
|
-
*
|
|
107
|
-
*
|
|
108
|
-
*
|
|
109
|
-
* @param options - RPC options
|
|
82
|
+
* Transfer Poseidon
|
|
83
|
+
* @param args.poseidonAsset - Poseidon Asset
|
|
84
|
+
* @param args.ticketAsset - Ticket Asset
|
|
85
|
+
* @param args.ticketNumber - Ticket Number
|
|
86
|
+
* @param verifier - Verifier
|
|
110
87
|
*
|
|
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
88
|
* @param options - RPC options
|
|
128
89
|
*
|
|
129
90
|
*/
|
|
130
|
-
|
|
91
|
+
transferPoseidon(args, verifier, options) {
|
|
131
92
|
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
93
|
const ixs = [];
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
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);
|
|
94
|
+
const PoseidonCollectionPDA = (0, pda_1.getCollectionPDA)(this.program.programId, constants_1.POSEIDON_COLLECTION_SYMBOL);
|
|
95
|
+
const TicketCollectionPDA = (0, pda_1.getCollectionPDA)(this.program.programId, constants_1.TICKET_COLLECTION_SYMBOL);
|
|
96
|
+
for (const arg of args) {
|
|
97
|
+
const NftPDA = (0, pda_1.getNftPDA)(this.program.programId, arg.ticketNumber);
|
|
98
|
+
ixs.push(yield this.program.methods
|
|
99
|
+
.transferPoseidon()
|
|
100
|
+
.accounts({
|
|
101
|
+
signer: this.provider.wallet.publicKey,
|
|
102
|
+
nft: NftPDA,
|
|
103
|
+
poseidonAsset: arg.poseidonAsset,
|
|
104
|
+
ticketAsset: arg.ticketAsset,
|
|
105
|
+
verifier: constants_1.VERIFIER,
|
|
106
|
+
poseidonCollection: PoseidonCollectionPDA,
|
|
107
|
+
ticketCollection: TicketCollectionPDA,
|
|
108
|
+
coreTicketCollection: constants_1.TICKET_CORE_COLLECTION,
|
|
109
|
+
corePoseidonCollection: constants_1.POSEIDON_CORE_COLLECTION
|
|
110
|
+
})
|
|
111
|
+
.instruction());
|
|
112
|
+
}
|
|
113
|
+
return (0, sendVersionedTransaction_1.default)(this.provider, ixs, options, undefined, [], verifier);
|
|
200
114
|
});
|
|
201
115
|
}
|
|
202
116
|
/**
|
|
203
|
-
*
|
|
204
|
-
* @param
|
|
205
|
-
* @param verifier - Verifier keypair
|
|
206
|
-
* @param options - RPC options
|
|
117
|
+
* Migrate Users
|
|
118
|
+
* @param users - Users public keys
|
|
207
119
|
*
|
|
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
120
|
* @param options - RPC options
|
|
231
121
|
*
|
|
232
122
|
*/
|
|
233
|
-
|
|
123
|
+
migrateUsers(users, options) {
|
|
234
124
|
return __awaiter(this, void 0, void 0, function* () {
|
|
235
|
-
const
|
|
236
|
-
const
|
|
237
|
-
.
|
|
238
|
-
|
|
239
|
-
|
|
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: {} };
|
|
125
|
+
const ixs = [];
|
|
126
|
+
for (const user of users) {
|
|
127
|
+
ixs.push(yield this.program.methods
|
|
128
|
+
.migrateUser()
|
|
129
|
+
.accounts({ user })
|
|
130
|
+
.instruction());
|
|
264
131
|
}
|
|
265
|
-
return
|
|
132
|
+
return (0, sendVersionedTransaction_1.default)(this.provider, ixs, options, undefined, []);
|
|
266
133
|
});
|
|
267
134
|
}
|
|
268
135
|
/**
|
|
269
|
-
*
|
|
270
|
-
* @param
|
|
271
|
-
* @param
|
|
136
|
+
* Withdraw Poseidon
|
|
137
|
+
* @param args.poseidonAsset - Poseidon Asset - CORE PublicKey
|
|
138
|
+
* @param args.nft - NFT Poseidon Number
|
|
272
139
|
*
|
|
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
|
-
/**
|
|
289
|
-
* Transfer Poseidon
|
|
290
|
-
* @param args - Transfer Poseidon args
|
|
291
140
|
* @param options - RPC options
|
|
292
|
-
*
|
|
293
141
|
*/
|
|
294
|
-
|
|
142
|
+
withdrawPoseidon({ poseidonAsset, nft }, options) {
|
|
295
143
|
return __awaiter(this, void 0, void 0, function* () {
|
|
296
|
-
const ixs = [];
|
|
297
144
|
const PoseidonCollectionPDA = (0, pda_1.getCollectionPDA)(this.program.programId, constants_1.POSEIDON_COLLECTION_SYMBOL);
|
|
298
|
-
const
|
|
299
|
-
|
|
300
|
-
ixs.push(yield this.program.methods
|
|
301
|
-
.transferPoseidon()
|
|
302
|
-
.accounts({
|
|
145
|
+
const NftPDA = (0, pda_1.getPoseidonPDA)(this.program.programId, nft);
|
|
146
|
+
return (0, sendTransactionWithOptions_1.default)(this.program.methods.withdrawPoseidon().accounts({
|
|
303
147
|
signer: this.provider.wallet.publicKey,
|
|
304
148
|
nft: NftPDA,
|
|
305
149
|
poseidonAsset,
|
|
306
|
-
ticketAsset,
|
|
307
|
-
verifier: constants_1.VERIFIER,
|
|
308
150
|
poseidonCollection: PoseidonCollectionPDA,
|
|
309
|
-
ticketCollection: TicketCollectionPDA,
|
|
310
|
-
coreTicketCollection: constants_1.TICKET_CORE_COLLECTION,
|
|
311
151
|
corePoseidonCollection: constants_1.POSEIDON_CORE_COLLECTION
|
|
312
|
-
})
|
|
313
|
-
.instruction());
|
|
314
|
-
return (0, sendVersionedTransaction_1.default)(this.provider, ixs, options, undefined, [], verifier);
|
|
152
|
+
}), options);
|
|
315
153
|
});
|
|
316
154
|
}
|
|
317
155
|
}
|