paralith-mcp 0.4.4 → 0.4.6

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/chains.json CHANGED
@@ -63,11 +63,11 @@
63
63
  "action": "FRESH"
64
64
  },
65
65
  "pusd": {
66
- "id": "2y0mZRBMYa1WuEgBKCO21348246bthwdw__Tl9pB2eM",
66
+ "id": "6LKnSjayODDf6b5Ukncjlxvyh0DCaDz_WciE-6gLjz0",
67
67
  "version": "sha256:625b574846134ad163ea54c8bc87b428379f86bf1a8b24ade2f88db9eeb17fd0",
68
68
  "localHash": "sha256:625b574846134ad163ea54c8bc87b428379f86bf1a8b24ade2f88db9eeb17fd0",
69
- "deployedAt": "2026-10-13T17:21:19.832Z",
70
- "tx": "2y0mZRBMYa1WuEgBKCO21348246bthwdw__Tl9pB2eM",
69
+ "deployedAt": "2026-10-19T15:01:19.882Z",
70
+ "tx": "6LKnSjayODDf6b5Ukncjlxvyh0DCaDz_WciE-6gLjz0",
71
71
  "action": "FRESH"
72
72
  },
73
73
  "base": {
@@ -87,14 +87,14 @@
87
87
  "action": "FRESH"
88
88
  },
89
89
  "lastRun": {
90
- "at": "2026-10-13T17:21:31.153Z",
91
- "startedAt": "2026-10-13T17:15:44.744Z",
90
+ "at": "2026-10-19T15:01:31.763Z",
91
+ "startedAt": "2026-10-19T15:00:53.658Z",
92
92
  "steps": [
93
93
  {
94
94
  "component": "pusd",
95
95
  "action": "FRESH",
96
96
  "status": "done",
97
- "tx": "2y0mZRBMYa1WuEgBKCO21348246bthwdw__Tl9pB2eM"
97
+ "tx": "6LKnSjayODDf6b5Ukncjlxvyh0DCaDz_WciE-6gLjz0"
98
98
  },
99
99
  {
100
100
  "component": "tokens",
@@ -111,7 +111,23 @@
111
111
  "base": "0xcefcaae4d5077eda2b126e9b315b5d7c4dd2ff38",
112
112
  "solana": "BBuQ11wQE6K5bj6Cx7X5VpVDB9CG83nbeDdDSinavUz",
113
113
  "sui": "0x397c399eb2f7e24e8f5d1988f71284baac48149b9e8cdcd741b353c771118ebc",
114
- "epoch": 0
114
+ "epoch": 2
115
+ },
116
+ {
117
+ "ao": "aUraD3TXsVq6d5_mjo1YR-u8DS4eCoL_n9AFpBECoPE",
118
+ "operator": "aUraD3TXsVq6d5_mjo1YR-u8DS4eCoL_n9AFpBECoPE",
119
+ "base": "0x838d1aef2f8ba0819303a76475b1672725a8139a",
120
+ "solana": "D5KpiQdd86rSNT6kgWvdHyM8STK7AZeLJA8B6BiPm2rR",
121
+ "sui": "0x457e7f43b6812fbded3b60ae0df6e1a207add176805e986cc5fded9b03f8c586",
122
+ "epoch": 2
123
+ },
124
+ {
125
+ "ao": "BALLSyZq_a6-7zdU_dU85E2VkoRnEVEDqkdZWlFx6uU",
126
+ "operator": "BALLSyZq_a6-7zdU_dU85E2VkoRnEVEDqkdZWlFx6uU",
127
+ "base": "0x6b70a326e5cfee009c64cef7baa769b4594d309a",
128
+ "solana": "BNBqG9X2mpA1ZNdoHca3a1mUNrAMeRmjZCiMUdu3DTE8",
129
+ "sui": "0x1fe4a4b47bf63edf9a134353369cef461dac1091969cf7031aaf138274516bec",
130
+ "epoch": 2
115
131
  }
116
132
  ],
117
133
  "retiredRelayers": {
package/dist/client.mjs CHANGED
@@ -20,7 +20,6 @@ var init_define_import_meta_env = __esm({
20
20
  var own, swarmWalletSlot;
21
21
  var init_wallet_slot = __esm({
22
22
  "dist/wallet-slot.mjs"() {
23
- "use strict";
24
23
  own = null;
25
24
  swarmWalletSlot = {
26
25
  get wallet() {
@@ -274,6 +273,10 @@ function extensionLabel(name) {
274
273
  return /^arconnect(\s|$)/i.test(trimmed) ? "Wander" : trimmed;
275
274
  }
276
275
  async function restoreWallet() {
276
+ if (remote) {
277
+ selectedWallet = remote;
278
+ return { address: await remote.getActiveAddress(), provider: "injected", providerName: "Discord" };
279
+ }
277
280
  const preferred = providerPreference();
278
281
  if (preferred === "local") {
279
282
  const stored = await readStoredWallet().catch(() => null);
@@ -311,7 +314,7 @@ async function restoreWallet() {
311
314
  async function activeAddress() {
312
315
  return (await restoreWallet())?.address ?? null;
313
316
  }
314
- var PERMISSIONS, DB_NAME, DB_VERSION, STORE, LOCAL_KEY, PROVIDER_KEY, selectedWallet, selectedProvider, inBrowser, importPrivateKey, actingFor;
317
+ var PERMISSIONS, DB_NAME, DB_VERSION, STORE, LOCAL_KEY, PROVIDER_KEY, selectedWallet, selectedProvider, inBrowser, importPrivateKey, actingFor, remote;
315
318
  var init_wallet = __esm({
316
319
  "../../products/runerealm-ui/src/lib/wallet.ts"() {
317
320
  "use strict";
@@ -331,6 +334,7 @@ var init_wallet = __esm({
331
334
  hash: "SHA-256"
332
335
  }, false, ["sign"]);
333
336
  actingFor = null;
337
+ remote = null;
334
338
  }
335
339
  });
336
340
 
@@ -403,7 +407,7 @@ var init_slot_settle = __esm({
403
407
  var graph_default;
404
408
  var init_graph = __esm({
405
409
  "runerealm-graph:C:\\REPO\\paralith-mono\\products\\runerealm-ui\\src\\lib\\graph.json"() {
406
- graph_default = { node: "https://hyperbeam.tylerw.ai", owner: "DA9qhP25ZPz6MHIhO-7aNHDN3LsTAL7yCKYIkqr13Z8", deployedAt: "", processes: { game: "mZXrRQk5c7ZVHuGonNFoZJS0glzPbVPXppXxf-Yvnss", rune: "rSQ-RU0kLN4hH_XpBmHr27raBONz-Q555FE-UHfH3Z0", pusd: "syBuQpeY4zxo5-fZlQIeJJca95sNrIXm1cSaxhG1MEc", dao: "yAPcE8Iequ6O5RLodmt68y0-wBuZMTb4QrABk-nR-_E", elements: { earth: "kA8euZS-JoR2_0F2gG9J1PKv1Gb7LvHAPn5ZqDvN2c0", air: "RwfJbVBJPTFO-glxA7pPt5UH_jGJrN_w4IYtgyQ89_M", fire: "SmJamo7AoHy-a1OMwznZmAvsySkea9wZpB6zo1Htn04", water: "bQprta3SB56X7qc-Sy-H9TtWyBn3FYr5LZNWr06ZZWU" }, internalVenue: "aYGC95bN3yFXtXzsdpMf5efZwLAxrDz_9wAC3Md2pJs", externalVenue: "aqEd7Ves2Aa3ZOVXy2GLFsQH1wDFnbdzeKeqRkc82xQ", hunt: "V_csdk4nEQekdAscno-53hyPbWpXAcoTUoZC326psfA", huntWorkers: ["V_csdk4nEQekdAscno-53hyPbWpXAcoTUoZC326psfA", "OYUhLOOCv633Ym4vMDqIaZ6_ejy_8u-BMm_FuKGqCoQ", "Su4QofBGiPe23owGtRowQddSHvQwosOerUYWXNUpI14", "pOT2ZlH2RaJXBfed-xPXsSy9w4I0ecLgz6oFtigAY7U", "s_6G3N3aYuiia5imSVoC_r9N99qNn3L-0NH4L35C4yE"], battleWorkers: ["igzqx4cU8RUy2JPISRKgIuTlDnZRdrOl1nVocZUtZpU", "QhpuInPUTWi9iSfZbap5dt8ndyuuBjms7ol7cFeSYOg", "LDOQ4MuVfPMg65Zn0pUbImfJxM3kA5Dj6Kc6BXmrEGY", "B_Xe8Y0NcKxGdMq_xEJcJ0mqQi1Su0DIlnDd9bWLBh4", "2SRdbVgZAlmjnZup4aB8kVB12Zgq_OwngJmRRMokcRM"] }, huntNode: "https://hyperbeam.tylerw.ai", marketNode: "https://hyperbeam.tylerw.ai", venueNode: "https://hyperbeam.tylerw.ai" };
410
+ graph_default = { node: "https://hyperbeam.tylerw.ai", owner: "DA9qhP25ZPz6MHIhO-7aNHDN3LsTAL7yCKYIkqr13Z8", deployedAt: "", processes: { game: "M_Gu6EExq-9a7f60dse_z-wV7fYIe1Fj_uEKwlHZpZg", rune: "fGPg_5InU6qP3-fIGJuYWbq-9PrEAXfcKCViqk7fT_Y", pusd: "pu_Gsl2h6gVnW6V0b25Jk-FFxt2eGz1NxVXvQIClyRY", dao: "YApPkPUFOx_0nq0XiEXwEY1RW6vdgpbspITggEIclxQ", elements: { earth: "TvryzhtQCEQWS945ZG6NAFJPvuRBuWt-ivlS6LK5ArM", air: "YU4LRq4kF_uwGJp6XK_j4-QW3hpEeKEzD2yXxjgFtqw", fire: "qUN4M5oHToh6CUEG5Me01oU5XES5_qNpiwcPxtfFmt4", water: "F1tm4TSB5R8lBjG1WkLcmA1gvaKuXKhuBNQiMssyspw" }, internalVenue: "nSYYYkech3n7KyKVaVB96397OjDpSXw2f_qhk0rBikk", externalVenue: "u88L84CzUYq5VYJogKYtzVcBuxeBYmN2VYy-rPRo_BU", hunt: "6r7Ysg9OC3xLa9RtypgeZFYAphgrCRb3YQ7GLSFuKaY", huntWorkers: ["6r7Ysg9OC3xLa9RtypgeZFYAphgrCRb3YQ7GLSFuKaY", "D8XFAksmlj52usoF98kuXUPgSHky90H9w0Wk1CXgY3M", "MZqtDjq_Uo24QHC-67K6RbKiCUgB5hXPP99lj-CtnEQ", "tl97Vp0QdlahB1ytHhBflfs1MDoIlHItNOwtaDa_2wI", "E_DkBueQVShFy5N8cLWUs9U85AqrJfB0RYr_zcimct8"], battleWorkers: ["SGoUSl7qGC6TbJOl4d1ND7HfmhaB0YFUAW480Tqla6A", "kByh_aPMxogChaGOQDscMqBIoygwiCZyR94h1TXSnQw", "xTlcEYuuB1D1BLq_pLwaPKdXtM3CWdm6shlTrwh5U04", "UFIQbKQjSs9ivsh5ONGAEFNVbgtsk3wWv4BfAJGMdlA", "Dd7Il2Jvr0zi7fnsxRqAzqOb7DcR9mfSS6CDzdShRUM"] }, huntNode: "https://hyperbeam.tylerw.ai", marketNode: "https://hyperbeam.tylerw.ai", venueNode: "https://hyperbeam.tylerw.ai" };
407
411
  }
408
412
  });
409
413
 
@@ -9230,6 +9234,7 @@ __export(game_exports, {
9230
9234
  enterArena: () => enterArena,
9231
9235
  feed: () => feed,
9232
9236
  findRatedMatch: () => findRatedMatch,
9237
+ fleetBattleSettled: () => fleetBattleSettled,
9233
9238
  forfeitBattle: () => forfeitBattle,
9234
9239
  grantDelegate: () => grantDelegate,
9235
9240
  huntRouteReleased: () => huntRouteReleased,
@@ -9607,6 +9612,11 @@ async function readFleetBattle(route, signal) {
9607
9612
  signal
9608
9613
  });
9609
9614
  }
9615
+ function finishedBattle(reply, battleId) {
9616
+ if (!reply || reply.status !== "ended" || reply.challenger) return reply;
9617
+ const seen = fleetPlayers.get(battleId)?.battle;
9618
+ return seen ? { ...seen, status: "ended", winner: reply.winner, final: reply.final } : null;
9619
+ }
9610
9620
  async function waitForFleetBattle(route, playerAddress, attempts = 60) {
9611
9621
  for (let attempt = 0; attempt < attempts; attempt++) {
9612
9622
  const [battle, authority] = await Promise.all([
@@ -9679,7 +9689,7 @@ async function settleFleetBattle(battleId) {
9679
9689
  const route = fleetRoutes.get(battleId);
9680
9690
  const address = fleetPlayers.get(battleId)?.address ?? await activeAddress();
9681
9691
  if (!route || !address) throw new GameError("This battle is not routed to a fleet worker.");
9682
- const battle = await readFleetBattle(route).catch(() => null);
9692
+ const battle = await readFleetBattle(route).catch(() => null) ?? finishedBattle(await closeFleetBattle(route, address, "Battle.Retry").catch(() => null), battleId);
9683
9693
  const settled = await awaitFleetSettlement(route, address);
9684
9694
  if (!battle || battle.id !== battleId) return settled;
9685
9695
  return {
@@ -9688,6 +9698,11 @@ async function settleFleetBattle(battleId) {
9688
9698
  result: battle.winner === fleetSide(route) ? "win" : "loss"
9689
9699
  };
9690
9700
  }
9701
+ async function fleetBattleSettled(battleId) {
9702
+ const route = fleetRoutes.get(battleId);
9703
+ const address = fleetPlayers.get(battleId)?.address;
9704
+ return !!route && !!address && fleetRouteCleared(address, route)();
9705
+ }
9691
9706
  async function forfeitBattle() {
9692
9707
  const address = await activeAddress();
9693
9708
  const account = address ? await readAuthorityPlayer(address).catch(() => null) : null;
@@ -9795,8 +9810,8 @@ async function attack(battleId, move, round, actionId4 = fleetActionId("attack")
9795
9810
  }));
9796
9811
  } catch (error) {
9797
9812
  if (!(error instanceof AcceptedWriteError || error instanceof OutboxDeliveryError)) throw error;
9798
- const published = await readFleetBattle(route).catch(() => null);
9799
9813
  const cachedAddress = fleetPlayers.get(battleId)?.address ?? await activeAddress();
9814
+ const published = await readFleetBattle(route).catch(() => null) ?? (cachedAddress ? finishedBattle(await closeFleetBattle(route, cachedAddress, "Battle.Retry").catch(() => null), battleId) : null);
9800
9815
  if (!cachedAddress || !validateFleetBattle(published, route, cachedAddress) || published.status !== "ended") throw error;
9801
9816
  if (error instanceof AcceptedWriteError) {
9802
9817
  await deliverSlot(error.slot, {
@@ -9807,6 +9822,7 @@ async function attack(battleId, move, round, actionId4 = fleetActionId("attack")
9807
9822
  }
9808
9823
  battle = published;
9809
9824
  }
9825
+ battle = finishedBattle(battle, battleId);
9810
9826
  if (!battle) throw new GameError("The battle worker returned no battle state.");
9811
9827
  const cached = fleetPlayers.get(battleId);
9812
9828
  if (battle.status !== "ended" && cached) {
@@ -12124,6 +12140,7 @@ export {
12124
12140
  externalVenueConfigured,
12125
12141
  feed,
12126
12142
  findRatedMatch,
12143
+ fleetBattleSettled,
12127
12144
  forfeitBattle,
12128
12145
  formatUnits,
12129
12146
  fundVenueVault,
package/dist/graph.json CHANGED
@@ -1,34 +1,34 @@
1
1
  {
2
2
  "node": "https://hyperbeam.tylerw.ai",
3
3
  "owner": "DA9qhP25ZPz6MHIhO-7aNHDN3LsTAL7yCKYIkqr13Z8",
4
- "deployedAt": "2026-10-13T20:32:44.269Z",
4
+ "deployedAt": "2026-10-19T15:06:59.257Z",
5
5
  "processes": {
6
- "game": "mZXrRQk5c7ZVHuGonNFoZJS0glzPbVPXppXxf-Yvnss",
7
- "rune": "rSQ-RU0kLN4hH_XpBmHr27raBONz-Q555FE-UHfH3Z0",
8
- "pusd": "syBuQpeY4zxo5-fZlQIeJJca95sNrIXm1cSaxhG1MEc",
9
- "dao": "yAPcE8Iequ6O5RLodmt68y0-wBuZMTb4QrABk-nR-_E",
6
+ "game": "M_Gu6EExq-9a7f60dse_z-wV7fYIe1Fj_uEKwlHZpZg",
7
+ "rune": "fGPg_5InU6qP3-fIGJuYWbq-9PrEAXfcKCViqk7fT_Y",
8
+ "pusd": "pu_Gsl2h6gVnW6V0b25Jk-FFxt2eGz1NxVXvQIClyRY",
9
+ "dao": "YApPkPUFOx_0nq0XiEXwEY1RW6vdgpbspITggEIclxQ",
10
10
  "elements": {
11
- "earth": "kA8euZS-JoR2_0F2gG9J1PKv1Gb7LvHAPn5ZqDvN2c0",
12
- "air": "RwfJbVBJPTFO-glxA7pPt5UH_jGJrN_w4IYtgyQ89_M",
13
- "fire": "SmJamo7AoHy-a1OMwznZmAvsySkea9wZpB6zo1Htn04",
14
- "water": "bQprta3SB56X7qc-Sy-H9TtWyBn3FYr5LZNWr06ZZWU"
11
+ "earth": "TvryzhtQCEQWS945ZG6NAFJPvuRBuWt-ivlS6LK5ArM",
12
+ "air": "YU4LRq4kF_uwGJp6XK_j4-QW3hpEeKEzD2yXxjgFtqw",
13
+ "fire": "qUN4M5oHToh6CUEG5Me01oU5XES5_qNpiwcPxtfFmt4",
14
+ "water": "F1tm4TSB5R8lBjG1WkLcmA1gvaKuXKhuBNQiMssyspw"
15
15
  },
16
- "internalVenue": "aYGC95bN3yFXtXzsdpMf5efZwLAxrDz_9wAC3Md2pJs",
17
- "externalVenue": "aqEd7Ves2Aa3ZOVXy2GLFsQH1wDFnbdzeKeqRkc82xQ",
18
- "hunt": "V_csdk4nEQekdAscno-53hyPbWpXAcoTUoZC326psfA",
16
+ "internalVenue": "nSYYYkech3n7KyKVaVB96397OjDpSXw2f_qhk0rBikk",
17
+ "externalVenue": "u88L84CzUYq5VYJogKYtzVcBuxeBYmN2VYy-rPRo_BU",
18
+ "hunt": "6r7Ysg9OC3xLa9RtypgeZFYAphgrCRb3YQ7GLSFuKaY",
19
19
  "huntWorkers": [
20
- "V_csdk4nEQekdAscno-53hyPbWpXAcoTUoZC326psfA",
21
- "OYUhLOOCv633Ym4vMDqIaZ6_ejy_8u-BMm_FuKGqCoQ",
22
- "Su4QofBGiPe23owGtRowQddSHvQwosOerUYWXNUpI14",
23
- "pOT2ZlH2RaJXBfed-xPXsSy9w4I0ecLgz6oFtigAY7U",
24
- "s_6G3N3aYuiia5imSVoC_r9N99qNn3L-0NH4L35C4yE"
20
+ "6r7Ysg9OC3xLa9RtypgeZFYAphgrCRb3YQ7GLSFuKaY",
21
+ "D8XFAksmlj52usoF98kuXUPgSHky90H9w0Wk1CXgY3M",
22
+ "MZqtDjq_Uo24QHC-67K6RbKiCUgB5hXPP99lj-CtnEQ",
23
+ "tl97Vp0QdlahB1ytHhBflfs1MDoIlHItNOwtaDa_2wI",
24
+ "E_DkBueQVShFy5N8cLWUs9U85AqrJfB0RYr_zcimct8"
25
25
  ],
26
26
  "battleWorkers": [
27
- "igzqx4cU8RUy2JPISRKgIuTlDnZRdrOl1nVocZUtZpU",
28
- "QhpuInPUTWi9iSfZbap5dt8ndyuuBjms7ol7cFeSYOg",
29
- "LDOQ4MuVfPMg65Zn0pUbImfJxM3kA5Dj6Kc6BXmrEGY",
30
- "B_Xe8Y0NcKxGdMq_xEJcJ0mqQi1Su0DIlnDd9bWLBh4",
31
- "2SRdbVgZAlmjnZup4aB8kVB12Zgq_OwngJmRRMokcRM"
27
+ "SGoUSl7qGC6TbJOl4d1ND7HfmhaB0YFUAW480Tqla6A",
28
+ "kByh_aPMxogChaGOQDscMqBIoygwiCZyR94h1TXSnQw",
29
+ "xTlcEYuuB1D1BLq_pLwaPKdXtM3CWdm6shlTrwh5U04",
30
+ "UFIQbKQjSs9ivsh5ONGAEFNVbgtsk3wWv4BfAJGMdlA",
31
+ "Dd7Il2Jvr0zi7fnsxRqAzqOb7DcR9mfSS6CDzdShRUM"
32
32
  ]
33
33
  },
34
34
  "huntNode": "https://hyperbeam.tylerw.ai",