@molteee/arena-tools 0.2.1 → 0.2.3
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/bin/CLAUDE.md +11 -0
- package/dist/CLAUDE.md +6 -1
- package/dist/commands/auction-round.js +9 -5
- package/dist/commands/auction-round.js.map +1 -1
- package/dist/commands/auction.js +3 -1
- package/dist/commands/auction.js.map +1 -1
- package/dist/commands/challenge.js +12 -10
- package/dist/commands/challenge.js.map +1 -1
- package/dist/commands/claim-timeout.js +2 -2
- package/dist/commands/claim-timeout.js.map +1 -1
- package/dist/commands/create-tournament.js +5 -1
- package/dist/commands/create-tournament.js.map +1 -1
- package/dist/commands/find-game.js +2 -2
- package/dist/commands/find-game.js.map +1 -1
- package/dist/commands/get-game.js +19 -9
- package/dist/commands/get-game.js.map +1 -1
- package/dist/commands/poker-step.js +114 -41
- package/dist/commands/poker-step.js.map +1 -1
- package/dist/commands/poker.js +36 -22
- package/dist/commands/poker.js.map +1 -1
- package/dist/commands/respond.js +60 -28
- package/dist/commands/respond.js.map +1 -1
- package/dist/commands/rps-round.js +4 -1
- package/dist/commands/rps-round.js.map +1 -1
- package/dist/commands/rps.js +3 -1
- package/dist/commands/rps.js.map +1 -1
- package/dist/config.js +4 -2
- package/dist/config.js.map +1 -1
- package/dist/contracts.d.ts +198 -0
- package/dist/contracts.js +115 -0
- package/dist/contracts.js.map +1 -1
- package/dist/index.js +23 -0
- package/dist/index.js.map +1 -1
- package/dist/utils/commit-reveal.d.ts +7 -2
- package/dist/utils/commit-reveal.js +50 -10
- package/dist/utils/commit-reveal.js.map +1 -1
- package/package.json +1 -1
package/bin/CLAUDE.md
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
<claude-mem-context>
|
|
2
|
+
# Recent Activity
|
|
3
|
+
|
|
4
|
+
<!-- This section is auto-generated by claude-mem. Edit content outside the tags. -->
|
|
5
|
+
|
|
6
|
+
### Feb 12, 2026
|
|
7
|
+
|
|
8
|
+
| ID | Time | T | Title | Read |
|
|
9
|
+
|----|------|---|-------|------|
|
|
10
|
+
| #3457 | 8:25 PM | 🔵 | Arena Tools Binary Entry Point Configuration | ~280 |
|
|
11
|
+
</claude-mem-context>
|
package/dist/CLAUDE.md
CHANGED
|
@@ -3,5 +3,10 @@
|
|
|
3
3
|
|
|
4
4
|
<!-- This section is auto-generated by claude-mem. Edit content outside the tags. -->
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
### Feb 12, 2026
|
|
7
|
+
|
|
8
|
+
| ID | Time | T | Title | Read |
|
|
9
|
+
|----|------|---|-------|------|
|
|
10
|
+
| #3396 | 6:26 PM | 🟣 | Poker Game 2 Hand Committed with Value 85 | ~298 |
|
|
11
|
+
| #3376 | 6:21 PM | 🟣 | RPS Challenge Created Against Opponent | ~288 |
|
|
7
12
|
</claude-mem-context>
|
|
@@ -7,7 +7,7 @@ import { CONTRACTS } from "../config.js";
|
|
|
7
7
|
import { auctionGameAbi } from "../contracts.js";
|
|
8
8
|
import { getPublicClient, getAddress } from "../client.js";
|
|
9
9
|
import { sendTx } from "../utils/tx.js";
|
|
10
|
-
import { generateSalt, saveSalt, loadSalt, commitBidHash } from "../utils/commit-reveal.js";
|
|
10
|
+
import { generateSalt, saveSalt, loadSalt, deleteSalt, commitBidHash } from "../utils/commit-reveal.js";
|
|
11
11
|
import { ok, fail, event } from "../utils/output.js";
|
|
12
12
|
// ─── Constants ──────────────────────────────────────────────────────────────
|
|
13
13
|
const POLL_INTERVAL_MS = 2_000; // Reduced from 6s — WS transport avoids rate limits
|
|
@@ -61,8 +61,9 @@ export async function auctionRoundCommand(gameId, bid) {
|
|
|
61
61
|
if (phase === PHASE_COMMIT && !myCommitted) {
|
|
62
62
|
const salt = generateSalt();
|
|
63
63
|
const hash = commitBidHash(bidWei, salt);
|
|
64
|
-
|
|
65
|
-
|
|
64
|
+
// Use "auction-" prefix so auction-reveal can find the salt, store bid in MON (not wei)
|
|
65
|
+
const saltKey = `auction-${gameId}-${myAddress}`;
|
|
66
|
+
saveSalt(saltKey, salt, bid, "auction-round");
|
|
66
67
|
const { hash: txHash } = await retry(() => sendTx({ to: addr, data: encodeFunctionData({ abi: auctionGameAbi, functionName: "commitBid", args: [gid, hash] }) }), "commit");
|
|
67
68
|
event({ event: "committed", bid, txHash });
|
|
68
69
|
}
|
|
@@ -91,17 +92,20 @@ export async function auctionRoundCommand(gameId, bid) {
|
|
|
91
92
|
const game2 = await retry(() => client.readContract({ address: addr, abi: auctionGameAbi, functionName: "getGame", args: [gid] }), "getGame-reveal");
|
|
92
93
|
const myRevealed = isPlayer1 ? game2.p1Revealed : game2.p2Revealed;
|
|
93
94
|
if (!myRevealed) {
|
|
94
|
-
|
|
95
|
+
// Use "auction-" prefix consistent with commit and auction-reveal command
|
|
96
|
+
const saltKey = `auction-${gameId}-${myAddress}`;
|
|
95
97
|
const entry = loadSalt(saltKey);
|
|
96
98
|
if (!entry) {
|
|
97
99
|
fail("Salt not found for auction reveal.", "SALT_LOST");
|
|
98
100
|
return;
|
|
99
101
|
}
|
|
100
|
-
const storedBid =
|
|
102
|
+
const storedBid = parseEther(entry.value);
|
|
101
103
|
const { hash: txHash } = await retry(() => sendTx({
|
|
102
104
|
to: addr,
|
|
103
105
|
data: encodeFunctionData({ abi: auctionGameAbi, functionName: "revealBid", args: [gid, storedBid, entry.salt] }),
|
|
104
106
|
}), "reveal");
|
|
107
|
+
// Only delete salt after successful reveal TX
|
|
108
|
+
deleteSalt(saltKey);
|
|
105
109
|
event({ event: "revealed", bid: formatEther(storedBid), txHash });
|
|
106
110
|
}
|
|
107
111
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auction-round.js","sourceRoot":"","sources":["../../src/commands/auction-round.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,mEAAmE;AACnE,EAAE;AACF,8DAA8D;AAC9D,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"auction-round.js","sourceRoot":"","sources":["../../src/commands/auction-round.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/auction.js
CHANGED
|
@@ -7,7 +7,7 @@ import { CONTRACTS } from "../config.js";
|
|
|
7
7
|
import { auctionGameAbi } from "../contracts.js";
|
|
8
8
|
import { getAddress } from "../client.js";
|
|
9
9
|
import { sendTx } from "../utils/tx.js";
|
|
10
|
-
import { generateSalt, saveSalt, loadSalt, commitBidHash } from "../utils/commit-reveal.js";
|
|
10
|
+
import { generateSalt, saveSalt, loadSalt, deleteSalt, commitBidHash } from "../utils/commit-reveal.js";
|
|
11
11
|
import { ok, fail } from "../utils/output.js";
|
|
12
12
|
/** Create a new Auction game for a match */
|
|
13
13
|
export async function auctionCreateCommand(matchId) {
|
|
@@ -78,6 +78,8 @@ export async function auctionRevealCommand(gameId) {
|
|
|
78
78
|
to: CONTRACTS.AuctionGame,
|
|
79
79
|
data,
|
|
80
80
|
});
|
|
81
|
+
// Only delete salt after successful reveal TX
|
|
82
|
+
deleteSalt(`auction-${gameId}-${myAddress}`);
|
|
81
83
|
ok({
|
|
82
84
|
action: "auction-reveal",
|
|
83
85
|
gameId: parseInt(gameId),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auction.js","sourceRoot":"","sources":["../../src/commands/auction.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,4CAA4C;AAC5C,sCAAsC;AACtC,2CAA2C;AAC3C,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"auction.js","sourceRoot":"","sources":["../../src/commands/auction.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { encodeFunctionData, parseEther, getAddress as checksumAddress } from "viem";
|
|
3
3
|
import { CONTRACTS, GAME_CONTRACTS, GAME_TYPES } from "../config.js";
|
|
4
4
|
import { escrowAbi } from "../contracts.js";
|
|
5
|
-
import {
|
|
5
|
+
import { getAddress } from "../client.js";
|
|
6
6
|
import { sendTx } from "../utils/tx.js";
|
|
7
7
|
import { ok, fail } from "../utils/output.js";
|
|
8
8
|
export async function challengeCommand(opponent, wager, gameType) {
|
|
@@ -18,19 +18,21 @@ export async function challengeCommand(opponent, wager, gameType) {
|
|
|
18
18
|
functionName: "createMatch",
|
|
19
19
|
args: [checksumAddress(opponent), gameContract],
|
|
20
20
|
});
|
|
21
|
-
const { hash } = await sendTx({
|
|
21
|
+
const { hash, logs } = await sendTx({
|
|
22
22
|
to: CONTRACTS.Escrow,
|
|
23
23
|
data,
|
|
24
24
|
value: wagerWei,
|
|
25
25
|
});
|
|
26
|
-
//
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
26
|
+
// Parse matchId from the MatchCreated event in tx logs (topics[1]).
|
|
27
|
+
// This is race-safe — reads directly from our own tx receipt, not from global state.
|
|
28
|
+
let matchId = -1;
|
|
29
|
+
for (const log of logs) {
|
|
30
|
+
if (log.address.toLowerCase() === CONTRACTS.Escrow.toLowerCase() && log.topics.length > 1) {
|
|
31
|
+
// First indexed param in MatchCreated event is the matchId
|
|
32
|
+
matchId = Number(BigInt(log.topics[1]));
|
|
33
|
+
break;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
34
36
|
ok({
|
|
35
37
|
action: "challenge",
|
|
36
38
|
matchId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"challenge.js","sourceRoot":"","sources":["../../src/commands/challenge.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,UAAU,IAAI,eAAe,EAAE,MAAM,MAAM,CAAC;AACrF,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"challenge.js","sourceRoot":"","sources":["../../src/commands/challenge.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,UAAU,IAAI,eAAe,EAAE,MAAM,MAAM,CAAC;AACrF,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAE9C,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,QAAgB,EAAE,KAAa,EAAE,QAAgB;IACpF,MAAM,EAAE,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IAClC,IAAI,CAAC,CAAC,EAAE,IAAI,UAAU,CAAC,EAAE,CAAC;QACtB,IAAI,CAAC,sBAAsB,QAAQ,mCAAmC,EAAE,mBAAmB,CAAC,CAAC;IACjG,CAAC;IACD,MAAM,YAAY,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAE7B,MAAM,IAAI,GAAG,kBAAkB,CAAC;QAC5B,GAAG,EAAE,SAAS;QACd,YAAY,EAAE,aAAa;QAC3B,IAAI,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC;KAClD,CAAC,CAAC;IAEH,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC;QAChC,EAAE,EAAE,SAAS,CAAC,MAAM;QACpB,IAAI;QACJ,KAAK,EAAE,QAAQ;KAClB,CAAC,CAAC;IAEH,oEAAoE;IACpE,qFAAqF;IACrF,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC;IACjB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACrB,IAAI,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxF,2DAA2D;YAC3D,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC;YACzC,MAAM;QACV,CAAC;IACL,CAAC;IAED,EAAE,CAAC;QACC,MAAM,EAAE,WAAW;QACnB,OAAO;QACP,UAAU,EAAE,OAAO;QACnB,QAAQ;QACR,QAAQ,EAAE,EAAE;QACZ,KAAK;QACL,MAAM,EAAE,IAAI;KACf,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// arena-tools claim-timeout — claim a timeout win for any game type
|
|
2
2
|
import { encodeFunctionData } from "viem";
|
|
3
3
|
import { CONTRACTS, GAME_TYPES } from "../config.js";
|
|
4
|
-
import { rpsGameAbi,
|
|
4
|
+
import { rpsGameAbi, pokerGameV2Abi, auctionGameAbi } from "../contracts.js";
|
|
5
5
|
import { sendTx } from "../utils/tx.js";
|
|
6
6
|
import { ok, fail } from "../utils/output.js";
|
|
7
7
|
export async function claimTimeoutCommand(gameType, gameId) {
|
|
@@ -11,7 +11,7 @@ export async function claimTimeoutCommand(gameType, gameId) {
|
|
|
11
11
|
}
|
|
12
12
|
const contractMap = {
|
|
13
13
|
rps: { address: CONTRACTS.RPSGame, abi: rpsGameAbi },
|
|
14
|
-
poker: { address: CONTRACTS.
|
|
14
|
+
poker: { address: CONTRACTS.PokerGameV2, abi: pokerGameV2Abi },
|
|
15
15
|
auction: { address: CONTRACTS.AuctionGame, abi: auctionGameAbi },
|
|
16
16
|
};
|
|
17
17
|
const { address, abi } = contractMap[gt];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claim-timeout.js","sourceRoot":"","sources":["../../src/commands/claim-timeout.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"claim-timeout.js","sourceRoot":"","sources":["../../src/commands/claim-timeout.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAE9C,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,QAAgB,EAAE,MAAc;IACtE,MAAM,EAAE,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IAClC,IAAI,CAAC,CAAC,EAAE,IAAI,UAAU,CAAC,EAAE,CAAC;QACtB,IAAI,CAAC,sBAAsB,QAAQ,mCAAmC,EAAE,mBAAmB,CAAC,CAAC;IACjG,CAAC;IAED,MAAM,WAAW,GAAyD;QACtE,GAAG,EAAE,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE;QACpD,KAAK,EAAE,EAAE,OAAO,EAAE,SAAS,CAAC,WAAW,EAAE,GAAG,EAAE,cAAc,EAAE;QAC9D,OAAO,EAAE,EAAE,OAAO,EAAE,SAAS,CAAC,WAAW,EAAE,GAAG,EAAE,cAAc,EAAE;KACnE,CAAC;IAEF,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;IAEzC,MAAM,IAAI,GAAG,kBAAkB,CAAC;QAC5B,GAAG;QACH,YAAY,EAAE,cAAc;QAC5B,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;KACzB,CAAC,CAAC;IAEH,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC;QAC1B,EAAE,EAAE,OAAO;QACX,IAAI;KACP,CAAC,CAAC;IAEH,EAAE,CAAC;QACC,MAAM,EAAE,eAAe;QACvB,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC;QACxB,MAAM,EAAE,IAAI;KACf,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -30,12 +30,16 @@ export async function createTournamentCommand(format, maxPlayers, opts) {
|
|
|
30
30
|
functionName: "createTournament",
|
|
31
31
|
args: [formatCode, entryFeeWei, baseWagerWei, BigInt(players)],
|
|
32
32
|
});
|
|
33
|
-
const { hash } = await sendTx({
|
|
33
|
+
const { hash, logs } = await sendTx({
|
|
34
34
|
to: CONTRACTS.TournamentV2,
|
|
35
35
|
data,
|
|
36
36
|
});
|
|
37
|
+
// Parse tournament ID from TournamentCreated event (first indexed topic)
|
|
38
|
+
const createLog = logs.find((l) => l.address.toLowerCase() === CONTRACTS.TournamentV2.toLowerCase());
|
|
39
|
+
const tournamentId = createLog ? Number(BigInt(createLog.topics[1])) : undefined;
|
|
37
40
|
ok({
|
|
38
41
|
action: "create-tournament",
|
|
42
|
+
tournamentId,
|
|
39
43
|
format,
|
|
40
44
|
formatCode,
|
|
41
45
|
maxPlayers: players,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-tournament.js","sourceRoot":"","sources":["../../src/commands/create-tournament.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAE9C,mCAAmC;AACnC,MAAM,UAAU,GAA2B;IACvC,aAAa,EAAE,CAAC;IAChB,aAAa,EAAE,CAAC;CACnB,CAAC;AAEF,wFAAwF;AACxF,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,MAAc,EAAE,UAAkB,EAAE,IAAS;IACvF,kBAAkB;IAClB,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;IACpD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC3B,IAAI,CAAC,mBAAmB,MAAM,uCAAuC,EAAE,gBAAgB,CAAC,CAAC;QACzF,OAAO;IACX,CAAC;IAED,gCAAgC;IAChC,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IACzC,IAAI,OAAO,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;QACjC,IAAI,CAAC,wBAAwB,UAAU,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;QAC/E,OAAO;IACX,CAAC;IAED,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9C,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAEhD,MAAM,IAAI,GAAG,kBAAkB,CAAC;QAC5B,GAAG,EAAE,eAAe;QACpB,YAAY,EAAE,kBAAkB;QAChC,IAAI,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;KACjE,CAAC,CAAC;IAEH,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"create-tournament.js","sourceRoot":"","sources":["../../src/commands/create-tournament.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAE9C,mCAAmC;AACnC,MAAM,UAAU,GAA2B;IACvC,aAAa,EAAE,CAAC;IAChB,aAAa,EAAE,CAAC;CACnB,CAAC;AAEF,wFAAwF;AACxF,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,MAAc,EAAE,UAAkB,EAAE,IAAS;IACvF,kBAAkB;IAClB,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;IACpD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC3B,IAAI,CAAC,mBAAmB,MAAM,uCAAuC,EAAE,gBAAgB,CAAC,CAAC;QACzF,OAAO;IACX,CAAC;IAED,gCAAgC;IAChC,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IACzC,IAAI,OAAO,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;QACjC,IAAI,CAAC,wBAAwB,UAAU,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;QAC/E,OAAO;IACX,CAAC;IAED,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9C,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAEhD,MAAM,IAAI,GAAG,kBAAkB,CAAC;QAC5B,GAAG,EAAE,eAAe;QACpB,YAAY,EAAE,kBAAkB;QAChC,IAAI,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;KACjE,CAAC,CAAC;IAEH,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC;QAChC,EAAE,EAAE,SAAS,CAAC,YAAY;QAC1B,IAAI;KACP,CAAC,CAAC;IAEH,yEAAyE;IACzE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;IAC1G,MAAM,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAEjF,EAAE,CAAC;QACC,MAAM,EAAE,mBAAmB;QAC3B,YAAY;QACZ,MAAM;QACN,UAAU;QACV,UAAU,EAAE,OAAO;QACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,MAAM,EAAE,IAAI;KACf,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// This is a read-only command (no PRIVATE_KEY needed).
|
|
4
4
|
import { CONTRACTS, GAME_CONTRACTS } from "../config.js";
|
|
5
5
|
import { getPublicClient } from "../client.js";
|
|
6
|
-
import { escrowAbi, rpsGameAbi,
|
|
6
|
+
import { escrowAbi, rpsGameAbi, pokerGameV2Abi, auctionGameAbi, } from "../contracts.js";
|
|
7
7
|
import { ok, fail } from "../utils/output.js";
|
|
8
8
|
// Map contract address (lowercased) -> game type name
|
|
9
9
|
const CONTRACT_TO_TYPE = Object.fromEntries(Object.entries(GAME_CONTRACTS).map(([name, addr]) => [
|
|
@@ -13,7 +13,7 @@ const CONTRACT_TO_TYPE = Object.fromEntries(Object.entries(GAME_CONTRACTS).map((
|
|
|
13
13
|
// Map game type -> ABI
|
|
14
14
|
const TYPE_TO_ABI = {
|
|
15
15
|
rps: rpsGameAbi,
|
|
16
|
-
poker:
|
|
16
|
+
poker: pokerGameV2Abi,
|
|
17
17
|
auction: auctionGameAbi,
|
|
18
18
|
};
|
|
19
19
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find-game.js","sourceRoot":"","sources":["../../src/commands/find-game.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,2EAA2E;AAC3E,uDAAuD;AACvD,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EACH,SAAS,EACT,UAAU,EACV,
|
|
1
|
+
{"version":3,"file":"find-game.js","sourceRoot":"","sources":["../../src/commands/find-game.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,2EAA2E;AAC3E,uDAAuD;AACvD,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EACH,SAAS,EACT,UAAU,EACV,cAAc,EACd,cAAc,GACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAE9C,sDAAsD;AACtD,MAAM,gBAAgB,GAA2B,MAAM,CAAC,WAAW,CAC/D,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;IACjD,IAAI,CAAC,WAAW,EAAE;IAClB,IAAI;CACP,CAAC,CACL,CAAC;AAEF,uBAAuB;AACvB,MAAM,WAAW,GAAwB;IACrC,GAAG,EAAE,UAAU;IACf,KAAK,EAAE,cAAc;IACrB,OAAO,EAAE,cAAc;CAC1B,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAAe;IACjD,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAE5B,qDAAqD;IACrD,MAAM,KAAK,GAAG,CAAC,MAAM,MAAM,CAAC,YAAY,CAAC;QACrC,OAAO,EAAE,SAAS,CAAC,MAAM;QACzB,GAAG,EAAE,SAAS;QACd,YAAY,EAAE,UAAU;QACxB,IAAI,EAAE,CAAC,GAAG,CAAC;KACd,CAAC,CAAQ,CAAC;IAEX,+CAA+C;IAC/C,MAAM,QAAQ,GAAG,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;IAClD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC5C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,uEAAuE;QACvE,IAAI,CACA,iCAAiC,OAAO,kDAAkD,EAC1F,aAAa,CAChB,CAAC;QACF,OAAO;IACX,CAAC;IAED,MAAM,YAAY,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC9C,MAAM,GAAG,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IAElC,yEAAyE;IACzE,sDAAsD;IACtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,IAAI,CAAC;YACD,MAAM,IAAI,GAAG,CAAC,MAAM,MAAM,CAAC,YAAY,CAAC;gBACpC,OAAO,EAAE,YAAY;gBACrB,GAAG;gBACH,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;aACpB,CAAC,CAAQ,CAAC;YAEX,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;gBACjD,EAAE,CAAC;oBACC,MAAM,EAAE,WAAW;oBACnB,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC;oBACxB,QAAQ;oBACR,MAAM,EAAE,CAAC;oBACT,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;oBACzB,OAAO,EAAE,IAAI,CAAC,OAAO;iBACxB,CAAC,CAAC;gBACH,OAAO;YACX,CAAC;QACL,CAAC;QACD,MAAM,CAAC;YACH,0DAA0D;YAC1D,MAAM;QACV,CAAC;IACL,CAAC;IAED,gBAAgB;IAChB,IAAI,CACA,2BAA2B,OAAO,iFAAiF,EACnH,gBAAgB,CACnB,CAAC;AACN,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
// arena-tools get-game — get game state for RPS, Poker, or Auction
|
|
1
|
+
// arena-tools get-game — get game state for RPS, Poker (Budget V2), or Auction
|
|
2
2
|
import { formatEther } from "viem";
|
|
3
3
|
import { getPublicClient } from "../client.js";
|
|
4
4
|
import { CONTRACTS } from "../config.js";
|
|
5
|
-
import { rpsGameAbi,
|
|
5
|
+
import { rpsGameAbi, pokerGameV2Abi, auctionGameAbi } from "../contracts.js";
|
|
6
6
|
import { ok, fail } from "../utils/output.js";
|
|
7
7
|
// RPS + Auction phases: Commit=0, Reveal=1, Complete=2
|
|
8
8
|
const PHASE_NAMES = ["Commit", "Reveal", "Complete"];
|
|
@@ -38,32 +38,42 @@ export async function getGameCommand(gameType, gameId) {
|
|
|
38
38
|
}
|
|
39
39
|
else if (gt === "poker") {
|
|
40
40
|
const game = (await client.readContract({
|
|
41
|
-
address: CONTRACTS.
|
|
42
|
-
abi:
|
|
41
|
+
address: CONTRACTS.PokerGameV2,
|
|
42
|
+
abi: pokerGameV2Abi,
|
|
43
43
|
functionName: "getGame",
|
|
44
44
|
args: [id],
|
|
45
45
|
}));
|
|
46
46
|
ok({
|
|
47
47
|
gameType: "poker",
|
|
48
|
+
version: "v2-budget",
|
|
48
49
|
gameId: Number(id),
|
|
49
50
|
matchId: Number(game.escrowMatchId),
|
|
50
51
|
player1: game.player1,
|
|
51
52
|
player2: game.player2,
|
|
52
|
-
|
|
53
|
+
// Round tracking
|
|
54
|
+
totalRounds: Number(game.totalRounds),
|
|
55
|
+
currentRound: Number(game.currentRound),
|
|
56
|
+
p1Score: Number(game.p1Score),
|
|
57
|
+
p2Score: Number(game.p2Score),
|
|
58
|
+
// Budget tracking
|
|
59
|
+
startingBudget: Number(game.startingBudget),
|
|
60
|
+
p1Budget: Number(game.p1Budget),
|
|
61
|
+
p2Budget: Number(game.p2Budget),
|
|
62
|
+
// Betting
|
|
53
63
|
currentBet: formatEther(game.currentBet),
|
|
54
64
|
currentTurn: game.currentTurn,
|
|
65
|
+
p1ExtraBets: formatEther(game.p1ExtraBets),
|
|
66
|
+
p2ExtraBets: formatEther(game.p2ExtraBets),
|
|
67
|
+
// Phase
|
|
55
68
|
phase: POKER_PHASE_NAMES[game.phase] || `Unknown(${game.phase})`,
|
|
56
69
|
phaseCode: Number(game.phase),
|
|
57
70
|
phaseDeadline: Number(game.phaseDeadline),
|
|
58
71
|
settled: game.settled,
|
|
59
|
-
|
|
60
|
-
p2HandValue: Number(game.p2HandValue),
|
|
72
|
+
// Current round commit/reveal status
|
|
61
73
|
p1Committed: game.p1Committed,
|
|
62
74
|
p2Committed: game.p2Committed,
|
|
63
75
|
p1Revealed: game.p1Revealed,
|
|
64
76
|
p2Revealed: game.p2Revealed,
|
|
65
|
-
p1ExtraBets: formatEther(game.p1ExtraBets),
|
|
66
|
-
p2ExtraBets: formatEther(game.p2ExtraBets),
|
|
67
77
|
});
|
|
68
78
|
}
|
|
69
79
|
else if (gt === "auction") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-game.js","sourceRoot":"","sources":["../../src/commands/get-game.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"get-game.js","sourceRoot":"","sources":["../../src/commands/get-game.ts"],"names":[],"mappings":"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"}
|