@triadxyz/triad-protocol 1.4.0-beta → 1.4.2-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
@@ -80,7 +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
+ *
86
+ */
87
+ spinWheel(args: {
88
+ isSol: boolean;
89
+ prizeType: PrizeType;
90
+ verifier: Keypair;
91
+ }, options?: RpcOptions): Promise<string>;
92
+ /**
93
+ * Get Spin Wheel
94
+ *
84
95
  */
85
- spinWheel(isSol: boolean, options?: RpcOptions): Promise<number>;
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
+ })>;
86
321
  }
package/dist/index.js CHANGED
@@ -14,7 +14,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  const anchor_1 = require("@coral-xyz/anchor");
16
16
  const web3_js_1 = require("@solana/web3.js");
17
- const base64_js_1 = require("base64-js");
18
17
  const idl_triad_protocol_json_1 = __importDefault(require("./types/idl_triad_protocol.json"));
19
18
  const trade_1 = __importDefault(require("./trade"));
20
19
  const helpers_1 = require("./utils/helpers");
@@ -226,28 +225,43 @@ class TriadProtocolClient {
226
225
  * Spin Wheel
227
226
  * @param isSol - Whether to pay with SOL or token
228
227
  * @param verifier - Verifier keypair
228
+ * @param prizeType - Prize type
229
229
  * @param options - RPC options
230
+ *
230
231
  */
231
- spinWheel(isSol, options) {
232
- var _a, _b, _c;
232
+ spinWheel(args, options) {
233
233
  return __awaiter(this, void 0, void 0, function* () {
234
234
  const spinPDA = (0, pda_1.getSpinPDA)(this.program.programId, constants_1.SPIN_NAME);
235
- const method = this.program.methods.spinWheel(isSol).accounts({
235
+ const ix = yield this.program.methods
236
+ .spinWheel({
237
+ isSol: args.isSol,
238
+ prizeType: args.prizeType
239
+ })
240
+ .accounts({
236
241
  signer: this.provider.wallet.publicKey,
242
+ verifier: constants_1.VERIFIER,
237
243
  spin: spinPDA,
238
244
  mint: constants_1.TCMAS_MINT
239
- });
240
- const tx = yield (0, sendTransactionWithOptions_1.default)(method, options);
241
- const txResult = (yield this.provider.connection.getTransaction(tx, {
242
- commitment: 'confirmed',
243
- maxSupportedTransactionVersion: 0
244
- }));
245
- const returnData = (_b = (_a = txResult.meta) === null || _a === void 0 ? void 0 : _a.returnData) === null || _b === void 0 ? void 0 : _b.data;
246
- if (!returnData) {
247
- throw new Error('No return data found in transaction');
245
+ })
246
+ .instruction();
247
+ return (0, sendVersionedTransaction_1.default)(this.provider, [ix], options, undefined, [], args.verifier);
248
+ });
249
+ }
250
+ /**
251
+ * Get Spin Wheel
252
+ *
253
+ */
254
+ getSpinWheel() {
255
+ return __awaiter(this, void 0, void 0, function* () {
256
+ const [spin] = yield this.program.account.spin.all();
257
+ const randomNumber = Math.floor(Math.random() * 1000000) + 1;
258
+ const prize = spin.account.prizes.find((p) => randomNumber >= p.rangeMin.toNumber() &&
259
+ randomNumber <= p.rangeMax.toNumber() &&
260
+ p.status.claimed);
261
+ if (!prize) {
262
+ return { none: {} };
248
263
  }
249
- let value = (_c = txResult.meta) === null || _c === void 0 ? void 0 : _c.returnData.data[0];
250
- return new anchor_1.BN((0, base64_js_1.toByteArray)(value), 'le').toNumber();
264
+ return prize.prizeType;
251
265
  });
252
266
  }
253
267
  }
@@ -445,3 +445,11 @@ const getSpinPrize = () => __awaiter(void 0, void 0, void 0, function* () {
445
445
  }));
446
446
  console.log(prizes);
447
447
  });
448
+ const spinWheel = () => __awaiter(void 0, void 0, void 0, function* () {
449
+ const response = yield triadProtocol.spinWheel({
450
+ isSol: false,
451
+ prizeType: { none: {} },
452
+ verifier: keypair
453
+ });
454
+ console.log(response);
455
+ });
@@ -1239,6 +1239,11 @@
1239
1239
  "writable": true,
1240
1240
  "signer": true
1241
1241
  },
1242
+ {
1243
+ "name": "verifier",
1244
+ "writable": true,
1245
+ "signer": true
1246
+ },
1242
1247
  {
1243
1248
  "name": "tresuary_account",
1244
1249
  "writable": true,
@@ -1323,8 +1328,12 @@
1323
1328
  ],
1324
1329
  "args": [
1325
1330
  {
1326
- "name": "is_sol",
1327
- "type": "bool"
1331
+ "name": "args",
1332
+ "type": {
1333
+ "defined": {
1334
+ "name": "SpinWheelArgs"
1335
+ }
1336
+ }
1328
1337
  }
1329
1338
  ],
1330
1339
  "returns": {
@@ -1711,6 +1720,10 @@
1711
1720
  }
1712
1721
  ],
1713
1722
  "events": [
1723
+ {
1724
+ "name": "ClaimSpinTokenUpdate",
1725
+ "discriminator": [162, 70, 212, 35, 0, 49, 120, 75]
1726
+ },
1714
1727
  {
1715
1728
  "name": "MarketUpdate",
1716
1729
  "discriminator": [170, 101, 124, 32, 249, 253, 251, 96]
@@ -1938,6 +1951,26 @@
1938
1951
  ]
1939
1952
  }
1940
1953
  },
1954
+ {
1955
+ "name": "ClaimSpinTokenUpdate",
1956
+ "type": {
1957
+ "kind": "struct",
1958
+ "fields": [
1959
+ {
1960
+ "name": "player",
1961
+ "type": "pubkey"
1962
+ },
1963
+ {
1964
+ "name": "amount",
1965
+ "type": "u64"
1966
+ },
1967
+ {
1968
+ "name": "timestamp",
1969
+ "type": "i64"
1970
+ }
1971
+ ]
1972
+ }
1973
+ },
1941
1974
  {
1942
1975
  "name": "ClaimStakeRewardsArgs",
1943
1976
  "type": {
@@ -2970,6 +3003,26 @@
2970
3003
  ]
2971
3004
  }
2972
3005
  },
3006
+ {
3007
+ "name": "SpinWheelArgs",
3008
+ "type": {
3009
+ "kind": "struct",
3010
+ "fields": [
3011
+ {
3012
+ "name": "is_sol",
3013
+ "type": "bool"
3014
+ },
3015
+ {
3016
+ "name": "prize_type",
3017
+ "type": {
3018
+ "defined": {
3019
+ "name": "PrizeType"
3020
+ }
3021
+ }
3022
+ }
3023
+ ]
3024
+ }
3025
+ },
2973
3026
  {
2974
3027
  "name": "SpinWheelResult",
2975
3028
  "type": {
@@ -1767,6 +1767,11 @@ export type TriadProtocol = {
1767
1767
  writable: true;
1768
1768
  signer: true;
1769
1769
  },
1770
+ {
1771
+ name: 'verifier';
1772
+ writable: true;
1773
+ signer: true;
1774
+ },
1770
1775
  {
1771
1776
  name: 'tresuaryAccount';
1772
1777
  writable: true;
@@ -1909,8 +1914,12 @@ export type TriadProtocol = {
1909
1914
  ];
1910
1915
  args: [
1911
1916
  {
1912
- name: 'isSol';
1913
- type: 'bool';
1917
+ name: 'args';
1918
+ type: {
1919
+ defined: {
1920
+ name: 'spinWheelArgs';
1921
+ };
1922
+ };
1914
1923
  }
1915
1924
  ];
1916
1925
  returns: {
@@ -2471,6 +2480,10 @@ export type TriadProtocol = {
2471
2480
  }
2472
2481
  ];
2473
2482
  events: [
2483
+ {
2484
+ name: 'claimSpinTokenUpdate';
2485
+ discriminator: [162, 70, 212, 35, 0, 49, 120, 75];
2486
+ },
2474
2487
  {
2475
2488
  name: 'marketUpdate';
2476
2489
  discriminator: [170, 101, 124, 32, 249, 253, 251, 96];
@@ -2698,6 +2711,26 @@ export type TriadProtocol = {
2698
2711
  ];
2699
2712
  };
2700
2713
  },
2714
+ {
2715
+ name: 'claimSpinTokenUpdate';
2716
+ type: {
2717
+ kind: 'struct';
2718
+ fields: [
2719
+ {
2720
+ name: 'player';
2721
+ type: 'pubkey';
2722
+ },
2723
+ {
2724
+ name: 'amount';
2725
+ type: 'u64';
2726
+ },
2727
+ {
2728
+ name: 'timestamp';
2729
+ type: 'i64';
2730
+ }
2731
+ ];
2732
+ };
2733
+ },
2701
2734
  {
2702
2735
  name: 'claimStakeRewardsArgs';
2703
2736
  type: {
@@ -3726,6 +3759,26 @@ export type TriadProtocol = {
3726
3759
  ];
3727
3760
  };
3728
3761
  },
3762
+ {
3763
+ name: 'spinWheelArgs';
3764
+ type: {
3765
+ kind: 'struct';
3766
+ fields: [
3767
+ {
3768
+ name: 'isSol';
3769
+ type: 'bool';
3770
+ },
3771
+ {
3772
+ name: 'prizeType';
3773
+ type: {
3774
+ defined: {
3775
+ name: 'prizeType';
3776
+ };
3777
+ };
3778
+ }
3779
+ ];
3780
+ };
3781
+ },
3729
3782
  {
3730
3783
  name: 'spinWheelResult';
3731
3784
  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, assets?: Keypair[]) => Promise<string>;
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, assets) => __awaiter(void 0, void 0, void 0, function* () {
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'
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@triadxyz/triad-protocol",
3
- "version": "1.4.0-beta",
3
+ "version": "1.4.2-beta",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",