@triadxyz/poseidons-protocol 0.3.6 → 0.3.7

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,11 @@ 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
69
65
  * @returns The transaction signature or versioned transaction
70
66
  */
71
- closeWheel(id: number): Promise<string | import("@solana/web3.js").VersionedTransaction>;
67
+ closeWheel(id: number): Promise<string | VersionedTransaction>;
72
68
  }
@@ -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* () {
@@ -126,17 +126,7 @@ class Wheel {
126
126
  })
127
127
  .instruction());
128
128
  }
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
- };
129
+ return (0, sendVersionedTransaction_1.default)(this.program, ixs, this.rpcOptions);
140
130
  });
141
131
  }
142
132
  /**
@@ -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.7",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",