@molteee/arena-tools 0.1.0
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/arena.js +5 -0
- package/dist/client.d.ts +52 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +48 -0
- package/dist/client.js.map +1 -0
- package/dist/commands/accept.d.ts +2 -0
- package/dist/commands/accept.d.ts.map +1 -0
- package/dist/commands/accept.js +41 -0
- package/dist/commands/accept.js.map +1 -0
- package/dist/commands/auction.d.ts +7 -0
- package/dist/commands/auction.d.ts.map +1 -0
- package/dist/commands/auction.js +79 -0
- package/dist/commands/auction.js.map +1 -0
- package/dist/commands/challenge.d.ts +2 -0
- package/dist/commands/challenge.d.ts.map +1 -0
- package/dist/commands/challenge.js +44 -0
- package/dist/commands/challenge.js.map +1 -0
- package/dist/commands/claim-timeout.d.ts +2 -0
- package/dist/commands/claim-timeout.d.ts.map +1 -0
- package/dist/commands/claim-timeout.js +34 -0
- package/dist/commands/claim-timeout.js.map +1 -0
- package/dist/commands/find-opponents.d.ts +2 -0
- package/dist/commands/find-opponents.d.ts.map +1 -0
- package/dist/commands/find-opponents.js +50 -0
- package/dist/commands/find-opponents.js.map +1 -0
- package/dist/commands/get-game.d.ts +2 -0
- package/dist/commands/get-game.d.ts.map +1 -0
- package/dist/commands/get-game.js +96 -0
- package/dist/commands/get-game.js.map +1 -0
- package/dist/commands/get-match.d.ts +2 -0
- package/dist/commands/get-match.d.ts.map +1 -0
- package/dist/commands/get-match.js +37 -0
- package/dist/commands/get-match.js.map +1 -0
- package/dist/commands/history.d.ts +2 -0
- package/dist/commands/history.d.ts.map +1 -0
- package/dist/commands/history.js +33 -0
- package/dist/commands/history.js.map +1 -0
- package/dist/commands/join-tournament.d.ts +2 -0
- package/dist/commands/join-tournament.d.ts.map +1 -0
- package/dist/commands/join-tournament.js +37 -0
- package/dist/commands/join-tournament.js.map +1 -0
- package/dist/commands/market-status.d.ts +2 -0
- package/dist/commands/market-status.d.ts.map +1 -0
- package/dist/commands/market-status.js +39 -0
- package/dist/commands/market-status.js.map +1 -0
- package/dist/commands/market.d.ts +9 -0
- package/dist/commands/market.d.ts.map +1 -0
- package/dist/commands/market.js +87 -0
- package/dist/commands/market.js.map +1 -0
- package/dist/commands/poker.d.ts +9 -0
- package/dist/commands/poker.d.ts.map +1 -0
- package/dist/commands/poker.js +120 -0
- package/dist/commands/poker.js.map +1 -0
- package/dist/commands/register.d.ts +5 -0
- package/dist/commands/register.d.ts.map +1 -0
- package/dist/commands/register.js +39 -0
- package/dist/commands/register.js.map +1 -0
- package/dist/commands/rps.d.ts +7 -0
- package/dist/commands/rps.d.ts.map +1 -0
- package/dist/commands/rps.js +135 -0
- package/dist/commands/rps.js.map +1 -0
- package/dist/commands/status.d.ts +2 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +58 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/tournaments.d.ts +3 -0
- package/dist/commands/tournaments.d.ts.map +1 -0
- package/dist/commands/tournaments.js +77 -0
- package/dist/commands/tournaments.js.map +1 -0
- package/dist/config.d.ts +23 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +50 -0
- package/dist/config.js.map +1 -0
- package/dist/contracts.d.ts +764 -0
- package/dist/contracts.d.ts.map +1 -0
- package/dist/contracts.js +518 -0
- package/dist/contracts.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +245 -0
- package/dist/index.js.map +1 -0
- package/dist/utils/commit-reveal.d.ts +22 -0
- package/dist/utils/commit-reveal.d.ts.map +1 -0
- package/dist/utils/commit-reveal.js +56 -0
- package/dist/utils/commit-reveal.js.map +1 -0
- package/dist/utils/output.d.ts +9 -0
- package/dist/utils/output.d.ts.map +1 -0
- package/dist/utils/output.js +30 -0
- package/dist/utils/output.js.map +1 -0
- package/dist/utils/tx.d.ts +14 -0
- package/dist/utils/tx.d.ts.map +1 -0
- package/dist/utils/tx.js +35 -0
- package/dist/utils/tx.js.map +1 -0
- package/package.json +34 -0
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
// arena-tools status — wallet balance, registration, ELO
|
|
2
|
+
import { formatEther, getAddress as checksumAddress } from "viem";
|
|
3
|
+
import { getPublicClient } from "../client.js";
|
|
4
|
+
import { CONTRACTS, GAME_TYPES } from "../config.js";
|
|
5
|
+
import { agentRegistryAbi } from "../contracts.js";
|
|
6
|
+
import { ok } from "../utils/output.js";
|
|
7
|
+
export async function statusCommand(address) {
|
|
8
|
+
const client = getPublicClient();
|
|
9
|
+
// Normalize to checksummed address (handles mixed-case input)
|
|
10
|
+
const addr = checksumAddress(address);
|
|
11
|
+
// Fetch balance and agent info in parallel
|
|
12
|
+
const [balance, agentInfo, rpsElo, pokerElo, auctionElo] = await Promise.all([
|
|
13
|
+
client.getBalance({ address: addr }),
|
|
14
|
+
client.readContract({
|
|
15
|
+
address: CONTRACTS.AgentRegistry,
|
|
16
|
+
abi: agentRegistryAbi,
|
|
17
|
+
functionName: "getAgent",
|
|
18
|
+
args: [addr],
|
|
19
|
+
}),
|
|
20
|
+
client.readContract({
|
|
21
|
+
address: CONTRACTS.AgentRegistry,
|
|
22
|
+
abi: agentRegistryAbi,
|
|
23
|
+
functionName: "elo",
|
|
24
|
+
args: [addr, GAME_TYPES.rps],
|
|
25
|
+
}),
|
|
26
|
+
client.readContract({
|
|
27
|
+
address: CONTRACTS.AgentRegistry,
|
|
28
|
+
abi: agentRegistryAbi,
|
|
29
|
+
functionName: "elo",
|
|
30
|
+
args: [addr, GAME_TYPES.poker],
|
|
31
|
+
}),
|
|
32
|
+
client.readContract({
|
|
33
|
+
address: CONTRACTS.AgentRegistry,
|
|
34
|
+
abi: agentRegistryAbi,
|
|
35
|
+
functionName: "elo",
|
|
36
|
+
args: [addr, GAME_TYPES.auction],
|
|
37
|
+
}),
|
|
38
|
+
]);
|
|
39
|
+
// Map game type numbers to names
|
|
40
|
+
const gameTypeNames = ["rps", "poker", "auction"];
|
|
41
|
+
const registeredGames = agentInfo.gameTypes.map((t) => gameTypeNames[t] || `unknown(${t})`);
|
|
42
|
+
ok({
|
|
43
|
+
address: addr,
|
|
44
|
+
balance: formatEther(balance),
|
|
45
|
+
balanceWei: balance.toString(),
|
|
46
|
+
registered: agentInfo.exists,
|
|
47
|
+
isOpen: agentInfo.isOpen,
|
|
48
|
+
gameTypes: registeredGames,
|
|
49
|
+
minWager: formatEther(agentInfo.minWager),
|
|
50
|
+
maxWager: formatEther(agentInfo.maxWager),
|
|
51
|
+
elo: {
|
|
52
|
+
rps: Number(rpsElo),
|
|
53
|
+
poker: Number(pokerElo),
|
|
54
|
+
auction: Number(auctionElo),
|
|
55
|
+
},
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,OAAO,EAAE,WAAW,EAAE,UAAU,IAAI,eAAe,EAAE,MAAM,MAAM,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,EAAE,EAAQ,MAAM,oBAAoB,CAAC;AAE9C,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAe;IACjD,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,8DAA8D;IAC9D,MAAM,IAAI,GAAG,eAAe,CAAC,OAAwB,CAAC,CAAC;IAEvD,2CAA2C;IAC3C,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC3E,MAAM,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACpC,MAAM,CAAC,YAAY,CAAC;YAClB,OAAO,EAAE,SAAS,CAAC,aAA8B;YACjD,GAAG,EAAE,gBAAgB;YACrB,YAAY,EAAE,UAAU;YACxB,IAAI,EAAE,CAAC,IAAI,CAAC;SACb,CAAC;QACF,MAAM,CAAC,YAAY,CAAC;YAClB,OAAO,EAAE,SAAS,CAAC,aAA8B;YACjD,GAAG,EAAE,gBAAgB;YACrB,YAAY,EAAE,KAAK;YACnB,IAAI,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC;SAC7B,CAAC;QACF,MAAM,CAAC,YAAY,CAAC;YAClB,OAAO,EAAE,SAAS,CAAC,aAA8B;YACjD,GAAG,EAAE,gBAAgB;YACrB,YAAY,EAAE,KAAK;YACnB,IAAI,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC;SAC/B,CAAC;QACF,MAAM,CAAC,YAAY,CAAC;YAClB,OAAO,EAAE,SAAS,CAAC,aAA8B;YACjD,GAAG,EAAE,gBAAgB;YACrB,YAAY,EAAE,KAAK;YACnB,IAAI,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC;SACjC,CAAC;KACH,CAAC,CAAC;IAEH,iCAAiC;IACjC,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,CAAU,CAAC;IAC3D,MAAM,eAAe,GAAI,SAAS,CAAC,SAA+B,CAAC,GAAG,CACpE,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,GAAG,CAC3C,CAAC;IAEF,EAAE,CAAC;QACD,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,WAAW,CAAC,OAAiB,CAAC;QACvC,UAAU,EAAG,OAAkB,CAAC,QAAQ,EAAE;QAC1C,UAAU,EAAE,SAAS,CAAC,MAAM;QAC5B,MAAM,EAAE,SAAS,CAAC,MAAM;QACxB,SAAS,EAAE,eAAe;QAC1B,QAAQ,EAAE,WAAW,CAAC,SAAS,CAAC,QAAkB,CAAC;QACnD,QAAQ,EAAE,WAAW,CAAC,SAAS,CAAC,QAAkB,CAAC;QACnD,GAAG,EAAE;YACH,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC;YACnB,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC;YACvB,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC;SAC5B;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tournaments.d.ts","sourceRoot":"","sources":["../../src/commands/tournaments.ts"],"names":[],"mappings":"AAeA,wBAAsB,kBAAkB,kBAkCvC;AAED,wBAAsB,uBAAuB,CAAC,YAAY,EAAE,MAAM,iBAgCjE"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
// arena-tools tournaments — list tournaments and tournament-status
|
|
2
|
+
import { formatEther } from "viem";
|
|
3
|
+
import { getPublicClient } from "../client.js";
|
|
4
|
+
import { CONTRACTS } from "../config.js";
|
|
5
|
+
import { tournamentV2Abi } from "../contracts.js";
|
|
6
|
+
import { ok } from "../utils/output.js";
|
|
7
|
+
const FORMAT_NAMES = ["RoundRobin", "DoubleElimination"];
|
|
8
|
+
const STATUS_NAMES = [
|
|
9
|
+
"Registration",
|
|
10
|
+
"Active",
|
|
11
|
+
"Complete",
|
|
12
|
+
"Cancelled",
|
|
13
|
+
];
|
|
14
|
+
export async function tournamentsCommand() {
|
|
15
|
+
const client = getPublicClient();
|
|
16
|
+
const nextId = (await client.readContract({
|
|
17
|
+
address: CONTRACTS.TournamentV2,
|
|
18
|
+
abi: tournamentV2Abi,
|
|
19
|
+
functionName: "nextTournamentId",
|
|
20
|
+
}));
|
|
21
|
+
// Fetch all tournaments
|
|
22
|
+
const tournaments = [];
|
|
23
|
+
for (let i = 0n; i < nextId; i++) {
|
|
24
|
+
const t = await client.readContract({
|
|
25
|
+
address: CONTRACTS.TournamentV2,
|
|
26
|
+
abi: tournamentV2Abi,
|
|
27
|
+
functionName: "getTournament",
|
|
28
|
+
args: [i],
|
|
29
|
+
});
|
|
30
|
+
tournaments.push({
|
|
31
|
+
id: Number(i),
|
|
32
|
+
format: FORMAT_NAMES[t.format] || `Unknown(${t.format})`,
|
|
33
|
+
entryFee: formatEther(t.entryFee),
|
|
34
|
+
baseWager: formatEther(t.baseWager),
|
|
35
|
+
maxPlayers: Number(t.maxPlayers),
|
|
36
|
+
playerCount: Number(t.playerCount),
|
|
37
|
+
prizePool: formatEther(t.prizePool),
|
|
38
|
+
status: STATUS_NAMES[t.status] || `Unknown(${t.status})`,
|
|
39
|
+
statusCode: Number(t.status),
|
|
40
|
+
creator: t.creator,
|
|
41
|
+
winner: t.winner,
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
ok({ count: tournaments.length, tournaments });
|
|
45
|
+
}
|
|
46
|
+
export async function tournamentStatusCommand(tournamentId) {
|
|
47
|
+
const client = getPublicClient();
|
|
48
|
+
const id = BigInt(tournamentId);
|
|
49
|
+
const [tournament, participants] = await Promise.all([
|
|
50
|
+
client.readContract({
|
|
51
|
+
address: CONTRACTS.TournamentV2,
|
|
52
|
+
abi: tournamentV2Abi,
|
|
53
|
+
functionName: "getTournament",
|
|
54
|
+
args: [id],
|
|
55
|
+
}),
|
|
56
|
+
client.readContract({
|
|
57
|
+
address: CONTRACTS.TournamentV2,
|
|
58
|
+
abi: tournamentV2Abi,
|
|
59
|
+
functionName: "getParticipants",
|
|
60
|
+
args: [id],
|
|
61
|
+
}),
|
|
62
|
+
]);
|
|
63
|
+
ok({
|
|
64
|
+
id: Number(id),
|
|
65
|
+
format: FORMAT_NAMES[tournament.format] || `Unknown(${tournament.format})`,
|
|
66
|
+
entryFee: formatEther(tournament.entryFee),
|
|
67
|
+
baseWager: formatEther(tournament.baseWager),
|
|
68
|
+
maxPlayers: Number(tournament.maxPlayers),
|
|
69
|
+
playerCount: Number(tournament.playerCount),
|
|
70
|
+
prizePool: formatEther(tournament.prizePool),
|
|
71
|
+
status: STATUS_NAMES[tournament.status] || `Unknown(${tournament.status})`,
|
|
72
|
+
creator: tournament.creator,
|
|
73
|
+
winner: tournament.winner,
|
|
74
|
+
participants: participants,
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=tournaments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tournaments.js","sourceRoot":"","sources":["../../src/commands/tournaments.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export declare const RPC_URL: string;
|
|
2
|
+
export declare const CHAIN_ID = 10143;
|
|
3
|
+
export declare const CHAIN_NAME = "Monad Testnet";
|
|
4
|
+
export declare const EXPLORER_URL = "https://testnet.monadexplorer.com";
|
|
5
|
+
export declare function getPrivateKey(): `0x${string}`;
|
|
6
|
+
export declare const CONTRACTS: {
|
|
7
|
+
readonly AgentRegistry: "0x96728e0962d7B3fA3B1c632bf489004803C165cE";
|
|
8
|
+
readonly Escrow: "0x6a52bd7fe53f022bb7c392de6285bfec2d7dd163";
|
|
9
|
+
readonly RPSGame: "0x4f66f4a355ea9a54fb1f39ec9be0e3281c2cf415";
|
|
10
|
+
readonly PokerGame: "0xb7b9741da4417852f42267fa1d295e399d11801c";
|
|
11
|
+
readonly AuctionGame: "0x1fc358c48e7523800eec9b0baed5f7c145e9e847";
|
|
12
|
+
readonly Tournament: "0xb9a2634e53ea9df280bb93195898b7166b2cadab";
|
|
13
|
+
readonly TournamentV2: "0x90a4facae37e8d98c36404055ab8f629be64b30e";
|
|
14
|
+
readonly PredictionMarket: "0xeb40a1f092e7e2015a39e4e5355a252b57440563";
|
|
15
|
+
};
|
|
16
|
+
export declare const GAME_TYPES: {
|
|
17
|
+
readonly rps: 0;
|
|
18
|
+
readonly poker: 1;
|
|
19
|
+
readonly auction: 2;
|
|
20
|
+
};
|
|
21
|
+
export type GameTypeName = keyof typeof GAME_TYPES;
|
|
22
|
+
export declare const GAME_CONTRACTS: Record<GameTypeName, string>;
|
|
23
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,OAAO,QAC0C,CAAC;AAC/D,eAAO,MAAM,QAAQ,QAAQ,CAAC;AAC9B,eAAO,MAAM,UAAU,kBAAkB,CAAC;AAC1C,eAAO,MAAM,YAAY,sCAAsC,CAAC;AAGhE,wBAAgB,aAAa,IAAI,KAAK,MAAM,EAAE,CAgB7C;AAGD,eAAO,MAAM,SAAS;;;;;;;;;CASZ,CAAC;AAGX,eAAO,MAAM,UAAU;;;;CAA4C,CAAC;AACpE,MAAM,MAAM,YAAY,GAAG,MAAM,OAAO,UAAU,CAAC;AAGnD,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAIvD,CAAC"}
|
package/dist/config.js
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
// Environment configuration for the arena CLI.
|
|
2
|
+
// Loads from env vars and .env files. Only PRIVATE_KEY is needed for write ops.
|
|
3
|
+
import { config as dotenvConfig } from "dotenv";
|
|
4
|
+
import path from "path";
|
|
5
|
+
// Load .env from CWD (agent's working directory) and parent dirs
|
|
6
|
+
dotenvConfig({ path: path.resolve(process.cwd(), ".env") });
|
|
7
|
+
dotenvConfig({ path: path.resolve(process.cwd(), ".env.local") });
|
|
8
|
+
// Also check parent directory (for monorepo setups where .env is at root)
|
|
9
|
+
dotenvConfig({ path: path.resolve(process.cwd(), "..", ".env") });
|
|
10
|
+
dotenvConfig({ path: path.resolve(process.cwd(), "..", "..", ".env") });
|
|
11
|
+
// ─── Network ─────────────────────────────────────────────────────────────────
|
|
12
|
+
export const RPC_URL = process.env.MONAD_RPC_URL || "https://testnet-rpc.monad.xyz";
|
|
13
|
+
export const CHAIN_ID = 10143;
|
|
14
|
+
export const CHAIN_NAME = "Monad Testnet";
|
|
15
|
+
export const EXPLORER_URL = "https://testnet.monadexplorer.com";
|
|
16
|
+
// ─── Wallet (optional — only needed for write commands) ──────────────────────
|
|
17
|
+
export function getPrivateKey() {
|
|
18
|
+
// Check common env var names for private key
|
|
19
|
+
const key = process.env.PRIVATE_KEY ||
|
|
20
|
+
process.env.DEPLOYER_PRIVATE_KEY ||
|
|
21
|
+
process.env.WALLET_PRIVATE_KEY;
|
|
22
|
+
if (!key) {
|
|
23
|
+
throw new Error("PRIVATE_KEY env var required for write operations. " +
|
|
24
|
+
"Also checks DEPLOYER_PRIVATE_KEY and WALLET_PRIVATE_KEY. " +
|
|
25
|
+
"Set it in your environment or .env file.");
|
|
26
|
+
}
|
|
27
|
+
// Ensure 0x prefix
|
|
28
|
+
const prefixed = key.startsWith("0x") ? key : `0x${key}`;
|
|
29
|
+
return prefixed;
|
|
30
|
+
}
|
|
31
|
+
// ─── Contract Addresses (hardcoded — immutable on-chain) ─────────────────────
|
|
32
|
+
export const CONTRACTS = {
|
|
33
|
+
AgentRegistry: "0x96728e0962d7B3fA3B1c632bf489004803C165cE",
|
|
34
|
+
Escrow: "0x6a52bd7fe53f022bb7c392de6285bfec2d7dd163",
|
|
35
|
+
RPSGame: "0x4f66f4a355ea9a54fb1f39ec9be0e3281c2cf415",
|
|
36
|
+
PokerGame: "0xb7b9741da4417852f42267fa1d295e399d11801c",
|
|
37
|
+
AuctionGame: "0x1fc358c48e7523800eec9b0baed5f7c145e9e847",
|
|
38
|
+
Tournament: "0xb9a2634e53ea9df280bb93195898b7166b2cadab",
|
|
39
|
+
TournamentV2: "0x90a4facae37e8d98c36404055ab8f629be64b30e",
|
|
40
|
+
PredictionMarket: "0xeb40a1f092e7e2015a39e4e5355a252b57440563",
|
|
41
|
+
};
|
|
42
|
+
// ─── Game type enum (matches Solidity) ──────────────────────────────────────
|
|
43
|
+
export const GAME_TYPES = { rps: 0, poker: 1, auction: 2 };
|
|
44
|
+
// ─── Game contract mapping ──────────────────────────────────────────────────
|
|
45
|
+
export const GAME_CONTRACTS = {
|
|
46
|
+
rps: CONTRACTS.RPSGame,
|
|
47
|
+
poker: CONTRACTS.PokerGame,
|
|
48
|
+
auction: CONTRACTS.AuctionGame,
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,gFAAgF;AAChF,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,iEAAiE;AACjE,YAAY,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;AAC5D,YAAY,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC;AAClE,0EAA0E;AAC1E,YAAY,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;AAClE,YAAY,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;AAExE,gFAAgF;AAChF,MAAM,CAAC,MAAM,OAAO,GAClB,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,+BAA+B,CAAC;AAC/D,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,CAAC;AAC9B,MAAM,CAAC,MAAM,UAAU,GAAG,eAAe,CAAC;AAC1C,MAAM,CAAC,MAAM,YAAY,GAAG,mCAAmC,CAAC;AAEhE,gFAAgF;AAChF,MAAM,UAAU,aAAa;IAC3B,6CAA6C;IAC7C,MAAM,GAAG,GACP,OAAO,CAAC,GAAG,CAAC,WAAW;QACvB,OAAO,CAAC,GAAG,CAAC,oBAAoB;QAChC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;IACjC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CACb,qDAAqD;YACrD,2DAA2D;YAC3D,0CAA0C,CAC3C,CAAC;IACJ,CAAC;IACD,mBAAmB;IACnB,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;IACzD,OAAO,QAAyB,CAAC;AACnC,CAAC;AAED,gFAAgF;AAChF,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,aAAa,EAAE,4CAAqD;IACpE,MAAM,EAAE,4CAAqD;IAC7D,OAAO,EAAE,4CAAqD;IAC9D,SAAS,EAAE,4CAAqD;IAChE,WAAW,EAAE,4CAAqD;IAClE,UAAU,EAAE,4CAAqD;IACjE,YAAY,EAAE,4CAAqD;IACnE,gBAAgB,EAAE,4CAAqD;CAC/D,CAAC;AAEX,+EAA+E;AAC/E,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAW,CAAC;AAGpE,+EAA+E;AAC/E,MAAM,CAAC,MAAM,cAAc,GAAiC;IAC1D,GAAG,EAAE,SAAS,CAAC,OAAO;IACtB,KAAK,EAAE,SAAS,CAAC,SAAS;IAC1B,OAAO,EAAE,SAAS,CAAC,WAAW;CAC/B,CAAC"}
|