@triadxyz/triad-protocol 1.4.1-beta → 1.4.3-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 +232 -0
- package/dist/index.js +27 -6
- package/dist/local-test.js +9 -8
- package/dist/types/idl_triad_protocol.json +35 -3
- package/dist/types/triad_protocol.d.ts +34 -2
- package/dist/utils/sendVersionedTransaction.d.ts +1 -1
- package/dist/utils/sendVersionedTransaction.js +1 -7
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -80,10 +80,242 @@ export default class TriadProtocolClient {
|
|
|
80
80
|
* Spin Wheel
|
|
81
81
|
* @param isSol - Whether to pay with SOL or token
|
|
82
82
|
* @param verifier - Verifier keypair
|
|
83
|
+
* @param prizeType - Prize type
|
|
83
84
|
* @param options - RPC options
|
|
85
|
+
*
|
|
84
86
|
*/
|
|
85
87
|
spinWheel(args: {
|
|
86
88
|
isSol: boolean;
|
|
87
89
|
prizeType: PrizeType;
|
|
90
|
+
verifier: Keypair;
|
|
88
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
|
+
})>;
|
|
89
321
|
}
|
package/dist/index.js
CHANGED
|
@@ -208,13 +208,14 @@ class TriadProtocolClient {
|
|
|
208
208
|
*/
|
|
209
209
|
claimSpinToken(amount, verifier, options) {
|
|
210
210
|
return __awaiter(this, void 0, void 0, function* () {
|
|
211
|
-
const spinPDA = (0, pda_1.getSpinPDA)(this.program.programId, constants_1.SPIN_NAME);
|
|
212
211
|
const ix = yield this.program.methods
|
|
213
|
-
.claimSpinToken(
|
|
212
|
+
.claimSpinToken({
|
|
213
|
+
name: constants_1.SPIN_NAME,
|
|
214
|
+
amount: new anchor_1.BN(amount * Math.pow(10, 6))
|
|
215
|
+
})
|
|
214
216
|
.accounts({
|
|
215
217
|
signer: this.provider.wallet.publicKey,
|
|
216
218
|
verifier: verifier.publicKey,
|
|
217
|
-
spin: spinPDA,
|
|
218
219
|
mint: constants_1.TCMAS_MINT
|
|
219
220
|
})
|
|
220
221
|
.instruction();
|
|
@@ -225,12 +226,14 @@ class TriadProtocolClient {
|
|
|
225
226
|
* Spin Wheel
|
|
226
227
|
* @param isSol - Whether to pay with SOL or token
|
|
227
228
|
* @param verifier - Verifier keypair
|
|
229
|
+
* @param prizeType - Prize type
|
|
228
230
|
* @param options - RPC options
|
|
231
|
+
*
|
|
229
232
|
*/
|
|
230
233
|
spinWheel(args, options) {
|
|
231
234
|
return __awaiter(this, void 0, void 0, function* () {
|
|
232
235
|
const spinPDA = (0, pda_1.getSpinPDA)(this.program.programId, constants_1.SPIN_NAME);
|
|
233
|
-
const
|
|
236
|
+
const ix = yield this.program.methods
|
|
234
237
|
.spinWheel({
|
|
235
238
|
isSol: args.isSol,
|
|
236
239
|
prizeType: args.prizeType
|
|
@@ -240,8 +243,26 @@ class TriadProtocolClient {
|
|
|
240
243
|
verifier: constants_1.VERIFIER,
|
|
241
244
|
spin: spinPDA,
|
|
242
245
|
mint: constants_1.TCMAS_MINT
|
|
243
|
-
})
|
|
244
|
-
|
|
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;
|
|
245
266
|
});
|
|
246
267
|
}
|
|
247
268
|
}
|
package/dist/local-test.js
CHANGED
|
@@ -435,6 +435,14 @@ const addSpinPrize = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
435
435
|
});
|
|
436
436
|
console.log(response);
|
|
437
437
|
});
|
|
438
|
+
const spinWheel = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
439
|
+
const response = yield triadProtocol.spinWheel({
|
|
440
|
+
isSol: false,
|
|
441
|
+
prizeType: { none: {} },
|
|
442
|
+
verifier: keypair
|
|
443
|
+
});
|
|
444
|
+
console.log(response);
|
|
445
|
+
});
|
|
438
446
|
const getSpinPrize = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
439
447
|
let response = yield triadProtocol.program.account.spin.fetch(new web3_js_1.PublicKey('EQ6ZJbdT2V8ZYcHRpJx6wBkGWmM1e3mimtPKshTVuw8h'));
|
|
440
448
|
const prizes = response.prizes.map((prize) => ({
|
|
@@ -445,11 +453,4 @@ const getSpinPrize = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
445
453
|
}));
|
|
446
454
|
console.log(prizes);
|
|
447
455
|
});
|
|
448
|
-
|
|
449
|
-
const response = yield triadProtocol.spinWheel({
|
|
450
|
-
isSol: false,
|
|
451
|
-
prizeType: { none: {} }
|
|
452
|
-
});
|
|
453
|
-
console.log(response);
|
|
454
|
-
});
|
|
455
|
-
spinWheel();
|
|
456
|
+
getSpinPrize();
|
|
@@ -161,7 +161,19 @@
|
|
|
161
161
|
},
|
|
162
162
|
{
|
|
163
163
|
"name": "spin",
|
|
164
|
-
"writable": true
|
|
164
|
+
"writable": true,
|
|
165
|
+
"pda": {
|
|
166
|
+
"seeds": [
|
|
167
|
+
{
|
|
168
|
+
"kind": "const",
|
|
169
|
+
"value": [115, 112, 105, 110]
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
"kind": "arg",
|
|
173
|
+
"path": "args.name"
|
|
174
|
+
}
|
|
175
|
+
]
|
|
176
|
+
}
|
|
165
177
|
},
|
|
166
178
|
{
|
|
167
179
|
"name": "mint",
|
|
@@ -238,8 +250,12 @@
|
|
|
238
250
|
],
|
|
239
251
|
"args": [
|
|
240
252
|
{
|
|
241
|
-
"name": "
|
|
242
|
-
"type":
|
|
253
|
+
"name": "args",
|
|
254
|
+
"type": {
|
|
255
|
+
"defined": {
|
|
256
|
+
"name": "ClaimSpinTokenArgs"
|
|
257
|
+
}
|
|
258
|
+
}
|
|
243
259
|
}
|
|
244
260
|
]
|
|
245
261
|
},
|
|
@@ -1951,6 +1967,22 @@
|
|
|
1951
1967
|
]
|
|
1952
1968
|
}
|
|
1953
1969
|
},
|
|
1970
|
+
{
|
|
1971
|
+
"name": "ClaimSpinTokenArgs",
|
|
1972
|
+
"type": {
|
|
1973
|
+
"kind": "struct",
|
|
1974
|
+
"fields": [
|
|
1975
|
+
{
|
|
1976
|
+
"name": "name",
|
|
1977
|
+
"type": "string"
|
|
1978
|
+
},
|
|
1979
|
+
{
|
|
1980
|
+
"name": "amount",
|
|
1981
|
+
"type": "u64"
|
|
1982
|
+
}
|
|
1983
|
+
]
|
|
1984
|
+
}
|
|
1985
|
+
},
|
|
1954
1986
|
{
|
|
1955
1987
|
"name": "ClaimSpinTokenUpdate",
|
|
1956
1988
|
"type": {
|
|
@@ -226,6 +226,18 @@ export type TriadProtocol = {
|
|
|
226
226
|
{
|
|
227
227
|
name: 'spin';
|
|
228
228
|
writable: true;
|
|
229
|
+
pda: {
|
|
230
|
+
seeds: [
|
|
231
|
+
{
|
|
232
|
+
kind: 'const';
|
|
233
|
+
value: [115, 112, 105, 110];
|
|
234
|
+
},
|
|
235
|
+
{
|
|
236
|
+
kind: 'arg';
|
|
237
|
+
path: 'args.name';
|
|
238
|
+
}
|
|
239
|
+
];
|
|
240
|
+
};
|
|
229
241
|
},
|
|
230
242
|
{
|
|
231
243
|
name: 'mint';
|
|
@@ -360,8 +372,12 @@ export type TriadProtocol = {
|
|
|
360
372
|
];
|
|
361
373
|
args: [
|
|
362
374
|
{
|
|
363
|
-
name: '
|
|
364
|
-
type:
|
|
375
|
+
name: 'args';
|
|
376
|
+
type: {
|
|
377
|
+
defined: {
|
|
378
|
+
name: 'claimSpinTokenArgs';
|
|
379
|
+
};
|
|
380
|
+
};
|
|
365
381
|
}
|
|
366
382
|
];
|
|
367
383
|
},
|
|
@@ -2711,6 +2727,22 @@ export type TriadProtocol = {
|
|
|
2711
2727
|
];
|
|
2712
2728
|
};
|
|
2713
2729
|
},
|
|
2730
|
+
{
|
|
2731
|
+
name: 'claimSpinTokenArgs';
|
|
2732
|
+
type: {
|
|
2733
|
+
kind: 'struct';
|
|
2734
|
+
fields: [
|
|
2735
|
+
{
|
|
2736
|
+
name: 'name';
|
|
2737
|
+
type: 'string';
|
|
2738
|
+
},
|
|
2739
|
+
{
|
|
2740
|
+
name: 'amount';
|
|
2741
|
+
type: 'u64';
|
|
2742
|
+
}
|
|
2743
|
+
];
|
|
2744
|
+
};
|
|
2745
|
+
},
|
|
2714
2746
|
{
|
|
2715
2747
|
name: 'claimSpinTokenUpdate';
|
|
2716
2748
|
type: {
|
|
@@ -3,5 +3,5 @@ import { RpcOptions } from '../types';
|
|
|
3
3
|
import { AddressLookupTableAccount } from '@solana/web3.js';
|
|
4
4
|
import { AnchorProvider } from '@coral-xyz/anchor';
|
|
5
5
|
import { Keypair } from '@solana/web3.js';
|
|
6
|
-
declare const sendVersionedTransaction: (provider: AnchorProvider, ixs: TransactionInstruction[], options?: RpcOptions, payer?: Keypair, addressLookupTableAccounts?: AddressLookupTableAccount[], verifier?: Keypair
|
|
6
|
+
declare const sendVersionedTransaction: (provider: AnchorProvider, ixs: TransactionInstruction[], options?: RpcOptions, payer?: Keypair, addressLookupTableAccounts?: AddressLookupTableAccount[], verifier?: Keypair) => Promise<string>;
|
|
7
7
|
export default sendVersionedTransaction;
|
|
@@ -10,7 +10,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
const web3_js_1 = require("@solana/web3.js");
|
|
13
|
-
const sendVersionedTransaction = (provider, ixs, options, payer, addressLookupTableAccounts, verifier
|
|
13
|
+
const sendVersionedTransaction = (provider, ixs, options, payer, addressLookupTableAccounts, verifier) => __awaiter(void 0, void 0, void 0, function* () {
|
|
14
14
|
if (options === null || options === void 0 ? void 0 : options.microLamports) {
|
|
15
15
|
ixs.push(web3_js_1.ComputeBudgetProgram.setComputeUnitPrice({
|
|
16
16
|
microLamports: options.microLamports
|
|
@@ -31,12 +31,6 @@ const sendVersionedTransaction = (provider, ixs, options, payer, addressLookupTa
|
|
|
31
31
|
tx.sign([verifier]);
|
|
32
32
|
signers.push(verifier);
|
|
33
33
|
}
|
|
34
|
-
if (assets) {
|
|
35
|
-
for (const asset of assets) {
|
|
36
|
-
tx.sign([asset]);
|
|
37
|
-
signers.push(asset);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
34
|
return provider.sendAndConfirm(tx, signers, {
|
|
41
35
|
skipPreflight: options === null || options === void 0 ? void 0 : options.skipPreflight,
|
|
42
36
|
commitment: 'confirmed'
|