@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.
package/dist/game/wheel.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
|
|
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
|
|
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 |
|
|
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 |
|
|
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 |
|
|
68
|
+
closeWheel(id: number, isActive: boolean): Promise<string | VersionedTransaction>;
|
|
72
69
|
}
|
package/dist/game/wheel.js
CHANGED
|
@@ -23,7 +23,7 @@ class Wheel {
|
|
|
23
23
|
}
|
|
24
24
|
/**
|
|
25
25
|
* Get all wheels
|
|
26
|
-
* @returns The
|
|
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
|
-
|
|
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
|
package/dist/utils/helpers.d.ts
CHANGED
|
@@ -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[]>;
|
package/dist/utils/helpers.js
CHANGED
|
@@ -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
|
|
93
|
-
var _a, _b;
|
|
92
|
+
const getPrizeFromLogs = (program, logMessages) => {
|
|
94
93
|
const prize = [];
|
|
95
|
-
const
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
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;
|