@triadxyz/poseidons-protocol 0.3.6 → 0.3.8

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.
@@ -1,5 +1,4 @@
1
- /// <reference types="@coral-xyz/anchor/node_modules/@solana/web3.js" />
2
- import { PublicKey } from '@solana/web3.js';
1
+ import { PublicKey, VersionedTransaction } from '@solana/web3.js';
3
2
  import { Program } from '@coral-xyz/anchor';
4
3
  import { PoseidonsProtocol } from './../types/poseidons_protocol';
5
4
  import { RpcOptions } from './../types';
@@ -9,7 +8,7 @@ export default class Wheel {
9
8
  constructor(program: Program<PoseidonsProtocol>, rpcOptions: RpcOptions);
10
9
  /**
11
10
  * Get all wheels
12
- * @returns The chests
11
+ * @returns The wheels
13
12
  */
14
13
  getAllWheel(): Promise<import("./../types").Wheel[]>;
15
14
  /**
@@ -36,7 +35,7 @@ export default class Wheel {
36
35
  rangeMax: number;
37
36
  unit: number;
38
37
  }[];
39
- }): Promise<string | import("@solana/web3.js").VersionedTransaction>;
38
+ }): Promise<string | VersionedTransaction>;
40
39
  /**
41
40
  * Add a prize to a wheel
42
41
  * @param id - The id of the chest
@@ -46,7 +45,7 @@ export default class Wheel {
46
45
  addWheelPrize({ id, available }: {
47
46
  id: number;
48
47
  available: number;
49
- }): Promise<string | import("@solana/web3.js").VersionedTransaction>;
48
+ }): Promise<string | VersionedTransaction>;
50
49
  /**
51
50
  * Spin a wheel
52
51
  * @param id - The id of the wheel
@@ -59,14 +58,12 @@ export default class Wheel {
59
58
  spins: number;
60
59
  refer: PublicKey;
61
60
  newUser: boolean;
62
- }): Promise<{
63
- transaction: string;
64
- prize: number[];
65
- }>;
61
+ }): Promise<string | VersionedTransaction>;
66
62
  /**
67
63
  * Close a wheel
68
64
  * @param id - The id of the wheel
65
+ * @param isActive - The active status of the wheel
69
66
  * @returns The transaction signature or versioned transaction
70
67
  */
71
- closeWheel(id: number): Promise<string | import("@solana/web3.js").VersionedTransaction>;
68
+ closeWheel(id: number, isActive: boolean): Promise<string | VersionedTransaction>;
72
69
  }
@@ -23,7 +23,7 @@ class Wheel {
23
23
  }
24
24
  /**
25
25
  * Get all wheels
26
- * @returns The chests
26
+ * @returns The wheels
27
27
  */
28
28
  getAllWheel() {
29
29
  return __awaiter(this, void 0, void 0, function* () {
@@ -107,6 +107,9 @@ class Wheel {
107
107
  const userPDA = (0, pda_1.getUserPDA)(user);
108
108
  const wheelPDA = (0, pda_1.getWheelPDA)(id);
109
109
  const ixs = [];
110
+ if (spins > 10) {
111
+ throw new Error('Spins must be less than 10');
112
+ }
110
113
  if (newUser) {
111
114
  ixs.push(yield this.program.methods
112
115
  .createUser(refer)
@@ -126,30 +129,21 @@ class Wheel {
126
129
  })
127
130
  .instruction());
128
131
  }
129
- const transaction = (yield (0, sendVersionedTransaction_1.default)(this.program, ixs, this.rpcOptions));
130
- const { blockhash, lastValidBlockHeight } = yield this.program.provider.connection.getLatestBlockhash();
131
- yield this.program.provider.connection.confirmTransaction({
132
- signature: transaction,
133
- blockhash,
134
- lastValidBlockHeight
135
- }, 'finalized');
136
- return {
137
- transaction,
138
- prize: yield (0, helpers_1.getPrize)(this.program, transaction)
139
- };
132
+ return (0, sendVersionedTransaction_1.default)(this.program, ixs, this.rpcOptions);
140
133
  });
141
134
  }
142
135
  /**
143
136
  * Close a wheel
144
137
  * @param id - The id of the wheel
138
+ * @param isActive - The active status of the wheel
145
139
  * @returns The transaction signature or versioned transaction
146
140
  */
147
- closeWheel(id) {
141
+ closeWheel(id, isActive) {
148
142
  return __awaiter(this, void 0, void 0, function* () {
149
143
  const wheelPDA = (0, pda_1.getWheelPDA)(id);
150
144
  const ixs = [
151
145
  yield this.program.methods
152
- .closeWheel()
146
+ .closeWheel(isActive)
153
147
  .accounts({
154
148
  signer: this.program.provider.publicKey,
155
149
  wheel: wheelPDA
@@ -560,7 +560,12 @@
560
560
  "address": "11111111111111111111111111111111"
561
561
  }
562
562
  ],
563
- "args": []
563
+ "args": [
564
+ {
565
+ "name": "is_active",
566
+ "type": "bool"
567
+ }
568
+ ]
564
569
  },
565
570
  {
566
571
  "name": "create_chest",
@@ -735,7 +735,12 @@ export type PoseidonsProtocol = {
735
735
  address: '11111111111111111111111111111111';
736
736
  }
737
737
  ];
738
- args: [];
738
+ args: [
739
+ {
740
+ name: 'isActive';
741
+ type: 'bool';
742
+ }
743
+ ];
739
744
  },
740
745
  {
741
746
  name: 'createChest';
@@ -8,4 +8,5 @@ export declare const formatPoseidon: (account: IdlAccounts<PoseidonsProtocol>['p
8
8
  export declare const formatUser: (account: IdlAccounts<PoseidonsProtocol>['user'], address: PublicKey) => User;
9
9
  export declare const formatChest: (account: IdlAccounts<PoseidonsProtocol>['chest'], address: PublicKey) => Chest;
10
10
  export declare const formatWheel: (account: IdlAccounts<PoseidonsProtocol>['wheel'], address: PublicKey) => Wheel;
11
+ export declare const getPrizeFromLogs: (program: Program<PoseidonsProtocol>, logMessages: string[]) => number[];
11
12
  export declare const getPrize: (program: Program<PoseidonsProtocol>, transaction: string) => Promise<number[]>;
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.getPrize = exports.formatWheel = exports.formatChest = exports.formatUser = exports.formatPoseidon = exports.formatPoseidonVault = void 0;
12
+ exports.getPrize = exports.getPrizeFromLogs = exports.formatWheel = exports.formatChest = exports.formatUser = exports.formatPoseidon = exports.formatPoseidonVault = void 0;
13
13
  const anchor_1 = require("@coral-xyz/anchor");
14
14
  const formatPoseidonVault = (account, address) => {
15
15
  return {
@@ -89,25 +89,31 @@ const formatWheel = (account, address) => {
89
89
  };
90
90
  };
91
91
  exports.formatWheel = formatWheel;
92
- const getPrize = (program, transaction) => __awaiter(void 0, void 0, void 0, function* () {
93
- var _a, _b;
92
+ const getPrizeFromLogs = (program, logMessages) => {
94
93
  const prize = [];
95
- const tx = yield program.provider.connection.getParsedTransaction(transaction, {
96
- maxSupportedTransactionVersion: 0
97
- });
98
- if ((_a = tx === null || tx === void 0 ? void 0 : tx.meta) === null || _a === void 0 ? void 0 : _a.logMessages) {
99
- const eventParser = new anchor_1.EventParser(program.programId, new anchor_1.BorshCoder(program.idl));
100
- const events = eventParser.parseLogs((_b = tx === null || tx === void 0 ? void 0 : tx.meta) === null || _b === void 0 ? void 0 : _b.logMessages);
101
- for (let event of events) {
102
- switch (event.name) {
103
- case 'spinWheelEvent':
104
- prize.push(event.data.prizeId);
105
- break;
106
- default:
107
- break;
108
- }
94
+ const eventParser = new anchor_1.EventParser(program.programId, new anchor_1.BorshCoder(program.idl));
95
+ const events = eventParser.parseLogs(logMessages);
96
+ for (let event of events) {
97
+ switch (event.name) {
98
+ case 'spinWheelEvent':
99
+ prize.push(event.data.prizeId);
100
+ break;
101
+ default:
102
+ break;
109
103
  }
110
104
  }
111
105
  return prize;
106
+ };
107
+ exports.getPrizeFromLogs = getPrizeFromLogs;
108
+ const getPrize = (program, transaction) => __awaiter(void 0, void 0, void 0, function* () {
109
+ var _a;
110
+ const tx = yield program.provider.connection.getParsedTransaction(transaction, {
111
+ maxSupportedTransactionVersion: 0,
112
+ commitment: 'confirmed'
113
+ });
114
+ if (!((_a = tx === null || tx === void 0 ? void 0 : tx.meta) === null || _a === void 0 ? void 0 : _a.logMessages)) {
115
+ return [];
116
+ }
117
+ return (0, exports.getPrizeFromLogs)(program, tx.meta.logMessages);
112
118
  });
113
119
  exports.getPrize = getPrize;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@triadxyz/poseidons-protocol",
3
- "version": "0.3.6",
3
+ "version": "0.3.8",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",