@molteee/arena-tools 0.2.7 → 0.2.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.
@@ -40,9 +40,23 @@ export async function findGameCommand(matchId) {
40
40
  }
41
41
  const contractAddr = GAME_CONTRACTS[gameType];
42
42
  const abi = TYPE_TO_ABI[gameType];
43
- // 3. Scan forward from game ID 0 check each game for matching matchId.
44
- // Stop when we hit a revert (no more games exist).
45
- for (let i = 0; i < 10000; i++) {
43
+ // 3. Get total game count, then scan BACKWARDS from latest.
44
+ // New matches create games with the highest IDs, so scanning backwards
45
+ // finds the target in 1-2 RPC calls instead of N (where N = total games).
46
+ let nextId;
47
+ try {
48
+ const raw = await client.readContract({
49
+ address: contractAddr,
50
+ abi,
51
+ functionName: "nextGameId",
52
+ });
53
+ nextId = Number(raw);
54
+ }
55
+ catch {
56
+ fail("Failed to read nextGameId from game contract", "CONTRACT_ERROR");
57
+ return;
58
+ }
59
+ for (let i = nextId - 1; i >= 0; i--) {
46
60
  try {
47
61
  const game = (await client.readContract({
48
62
  address: contractAddr,
@@ -63,8 +77,8 @@ export async function findGameCommand(matchId) {
63
77
  }
64
78
  }
65
79
  catch {
66
- // Revert = no game at this ID, we've passed the last game
67
- break;
80
+ // Revert = no game at this ID, skip
81
+ continue;
68
82
  }
69
83
  }
70
84
  // No game found
@@ -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,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
+ {"version":3,"file":"find-game.js","sourceRoot":"","sources":["../../src/commands/find-game.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@molteee/arena-tools",
3
- "version": "0.2.7",
3
+ "version": "0.2.8",
4
4
  "description": "CLI tool for interacting with the Molteee Gaming Arena on Monad testnet",
5
5
  "type": "module",
6
6
  "bin": {