@idosgames/mcp 0.1.35 → 0.1.37
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/cli.js +1 -1
- package/package.json +1 -1
- package/registry/host.json +5 -5
- package/registry/index.json +124 -120
- package/registry/modules/ai.json +3 -3
- package/registry/modules/board-game.json +37 -37
- package/registry/modules/boosts.json +3 -3
- package/registry/modules/character.json +15 -15
- package/registry/modules/chat.json +3 -3
- package/registry/modules/collections.json +3 -3
- package/registry/modules/coop-events.json +3 -3
- package/registry/modules/craft.json +3 -3
- package/registry/modules/deals.json +3 -3
- package/registry/modules/events.json +8 -8
- package/registry/modules/friends.json +3 -3
- package/registry/modules/idle-rpg.json +3 -3
- package/registry/modules/inventory.json +3 -3
- package/registry/modules/invite.json +3 -3
- package/registry/modules/leaderboard.json +12 -12
- package/registry/modules/lootboxes.json +8 -8
- package/registry/modules/mailbox.json +3 -3
- package/registry/modules/marketplace.json +3 -3
- package/registry/modules/mini-game.json +7 -7
- package/registry/modules/multiplayer.json +28 -16
- package/registry/modules/premium.json +3 -3
- package/registry/modules/profile.json +3 -3
- package/registry/modules/pvp.json +3 -3
- package/registry/modules/quests.json +10 -10
- package/registry/modules/rewards.json +3 -3
- package/registry/modules/season.json +3 -3
- package/registry/modules/store.json +3 -3
- package/registry/modules/tutorials.json +3 -3
- package/registry/modules/voxelcraft.json +13 -13
- package/registry/modules/workshop.json +3 -3
- package/registry/skills/authentication.json +1 -1
- package/registry/skills/idosgames-module-contract.json +1 -1
- package/registry/skills/leaderboard-system.json +2 -2
- package/registry/skills/multiplayer-realtime.json +1 -1
package/dist/cli.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@idosgames/mcp",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.37",
|
|
4
4
|
"mcpName": "com.idosgames/sdk",
|
|
5
5
|
"description": "MCP server that serves the iDosGames Module & Skills Registry to AI coding agents (Claude Code, Codex, Cursor…): list/pull composable game modules and the host scaffold, and load skills for @idosgames/core, the module contract, and composition.",
|
|
6
6
|
"type": "module",
|
package/registry/host.json
CHANGED
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
},
|
|
24
24
|
{
|
|
25
25
|
"path": "package.json",
|
|
26
|
-
"content": "{\n \"name\": \"@idosgames/base-template\",\n \"version\": \"0.0.0\",\n \"private\": true,\n \"type\": \"module\",\n \"description\": \"The base every AI Coder project starts from: sign-in and the lobby (both from @idosgames/app-shell) on the host shell. The systems (shop, heroes, leaderboards…) and the games are modules plugged in via src/modules.ts.\",\n \"scripts\": {\n \"dev\": \"vite\",\n \"build\": \"vite build\",\n \"preview\": \"vite preview\",\n \"typecheck\": \"tsc --noEmit -p tsconfig.json\"\n },\n \"//\": \"Versions are pinned exactly: this is a seed for AI Coder projects, which build offline against a dependency allowlist baked at these versions (see scripts/pack-builder.mjs). Modules bring their own engine deps (three/phaser) when added.\",\n \"dependencies\": {\n \"@idosgames/app-shell\": \"0.
|
|
26
|
+
"content": "{\n \"name\": \"@idosgames/base-template\",\n \"version\": \"0.0.0\",\n \"private\": true,\n \"type\": \"module\",\n \"description\": \"The base every AI Coder project starts from: sign-in and the lobby (both from @idosgames/app-shell) on the host shell. The systems (shop, heroes, leaderboards…) and the games are modules plugged in via src/modules.ts.\",\n \"scripts\": {\n \"dev\": \"vite\",\n \"build\": \"vite build\",\n \"preview\": \"vite preview\",\n \"typecheck\": \"tsc --noEmit -p tsconfig.json\"\n },\n \"//\": \"Versions are pinned exactly: this is a seed for AI Coder projects, which build offline against a dependency allowlist baked at these versions (see scripts/pack-builder.mjs). Modules bring their own engine deps (three/phaser) when added.\",\n \"dependencies\": {\n \"@idosgames/app-shell\": \"0.14.1\",\n \"@idosgames/core\": \"0.22.1\",\n \"@idosgames/module-sdk\": \"0.12.0\",\n \"@idosgames/react\": \"0.5.2\",\n \"@idosgames/wallet\": \"0.6.5\",\n \"@reown/appkit\": \"1.8.23\",\n \"@reown/appkit-adapter-wagmi\": \"1.8.23\",\n \"@tanstack/react-query\": \"5.101.2\",\n \"react\": \"19.2.7\",\n \"react-dom\": \"19.2.7\",\n \"wagmi\": \"3.7.2\"\n },\n \"devDependencies\": {\n \"@types/react\": \"19.2.17\",\n \"@types/react-dom\": \"19.2.3\",\n \"@vitejs/plugin-react\": \"6.0.4\",\n \"typescript\": \"5.9.3\",\n \"vite\": \"8.1.5\"\n }\n}\n"
|
|
27
27
|
},
|
|
28
28
|
{
|
|
29
29
|
"path": "public/sw.js",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
},
|
|
32
32
|
{
|
|
33
33
|
"path": "src/app.config.ts",
|
|
34
|
-
"content": "import { defineAppConfig } from \"@idosgames/app-shell\";\n\n// What happens after sign-in and how the lobby is ordered. The look, animations and sounds are in\n// ./ui.config.ts. Which systems (shop, heroes, leaderboards…) and games the app has is\n// ./modules.ts: remove a module there and its tab is gone. A tab whose system has nothing configured\n// on the title yet (no store offers, no heroes…) stays hidden from players by itself.\n//\n// Everything is optional; uncomment and edit.\nexport default defineAppConfig({\n // \"game\" — sign-in → straight into a game that lives inside the lobby (idle-rpg); an app whose\n // games take the whole screen (voxelcraft, board-game) starts in the lobby. \"lobby\" — always\n // sign-in → lobby → \"Play\". The mode id of a game (\"voxelcraft\") starts in that one.\n start: \"game\",\n lobby: {\n // order: [\"play\", \"store\", \"character\"], // these tabs first, in this order\n // primary: [\"season\"], // also a main tab rather than under \"More\"\n },\n auth: {\n // The \"Play as guest\" button on the sign-in screen is OFF by default; uncomment to show it.\n // guest: true,\n },\n});\n"
|
|
34
|
+
"content": "import { defineAppConfig } from \"@idosgames/app-shell\";\n\n// What happens after sign-in and how the lobby is ordered. The look, animations and sounds are in\n// ./ui.config.ts. Which systems (shop, heroes, leaderboards…) and games the app has is\n// ./modules.ts: remove a module there and its tab is gone. A tab whose system has nothing configured\n// on the title yet (no store offers, no heroes…) stays hidden from players by itself.\n//\n// Everything is optional; uncomment and edit.\nexport default defineAppConfig({\n // \"game\" — sign-in → straight into a game that lives inside the lobby (idle-rpg); an app whose\n // games take the whole screen (voxelcraft, board-game) starts in the lobby. \"lobby\" — always\n // sign-in → lobby → \"Play\". The mode id of a game (\"voxelcraft\") starts in that one.\n start: \"game\",\n lobby: {\n // order: [\"play\", \"store\", \"character\"], // these tabs first, in this order\n // primary: [\"season\"], // also a main tab rather than under \"More\"\n },\n auth: {\n // The \"Play as guest\" button on the sign-in screen is OFF by default; uncomment to show it.\n // guest: true,\n // On the idosgames.com game page the player enters with their site account by itself (not signed\n // in there — the site shows its sign-in window). On by default; uncomment to keep this screen.\n // platformSignIn: false,\n },\n});\n"
|
|
35
35
|
},
|
|
36
36
|
{
|
|
37
37
|
"path": "src/config.ts",
|
|
@@ -43,11 +43,11 @@
|
|
|
43
43
|
},
|
|
44
44
|
{
|
|
45
45
|
"path": "src/idos.title.ts",
|
|
46
|
-
"content": "// The project's IDENTITY file — the ONE centralized place the Title id lives.\n//\n// On platform-created projects the platform GENERATES this file when it creates the project; there\n// the AI editor is denied write access to this path on purpose — do not edit it by hand. On a\n// manually scaffolded project (get_host_scaffold / copied template) there is no generator: YOU fill\n// IDOS_TITLE_ID here yourself. Either way, do not import anything into this file, and do not bind\n// the title anywhere else (.env.local is a local-dev fallback for the raw template only).\n//\n// It is the highest-priority source of the Title id (see config.ts for the full chain). It is baked\n// into the bundle rather than read from the URL because a build has to keep working where there is\n// no URL to read — packaged as a mobile app, embedded in an iframe, or opened from a shared link\n// that dropped its query string.\n//\n// It holds the CANONICAL (production) title. The DEV title is derived from it, never stored here —\n// one project has one identity, and DEV/PROD is an environment on top of that identity.\n\n/** Canonical (production) Title id. Empty only in the raw template, before the platform seeds it. */\nexport const IDOS_TITLE_ID = \"\";\n\n/** Build key for this title, if the title enforces one. */\nexport const IDOS_BUILD_KEY = \"\";\n\n/** Environment this artifact defaults to. Web builds may override it (see config.ts); a packaged\n * mobile build cannot, so a DEV app is produced by generating this file with \"dev\". */\nexport const IDOS_DEFAULT_ENV: \"prod\" | \"dev\" = \"prod\";\n\n/**\n * Whether this title was created as web3. Set by the platform from the same toggle the publisher\n * used at title creation.\n *\n * It
|
|
46
|
+
"content": "// The project's IDENTITY file — the ONE centralized place the Title id lives.\n//\n// On platform-created projects the platform GENERATES this file when it creates the project; there\n// the AI editor is denied write access to this path on purpose — do not edit it by hand. On a\n// manually scaffolded project (get_host_scaffold / copied template) there is no generator: YOU fill\n// IDOS_TITLE_ID here yourself. Either way, do not import anything into this file, and do not bind\n// the title anywhere else (.env.local is a local-dev fallback for the raw template only).\n//\n// It is the highest-priority source of the Title id (see config.ts for the full chain). It is baked\n// into the bundle rather than read from the URL because a build has to keep working where there is\n// no URL to read — packaged as a mobile app, embedded in an iframe, or opened from a shared link\n// that dropped its query string.\n//\n// It holds the CANONICAL (production) title. The DEV title is derived from it, never stored here —\n// one project has one identity, and DEV/PROD is an environment on top of that identity.\n\n/** Canonical (production) Title id. Empty only in the raw template, before the platform seeds it. */\nexport const IDOS_TITLE_ID = \"\";\n\n/** Build key for this title, if the title enforces one. */\nexport const IDOS_BUILD_KEY = \"\";\n\n/** Environment this artifact defaults to. Web builds may override it (see config.ts); a packaged\n * mobile build cannot, so a DEV app is produced by generating this file with \"dev\". */\nexport const IDOS_DEFAULT_ENV: \"prod\" | \"dev\" = \"prod\";\n\n/**\n * Whether this title was created as web3. Set by the platform from the same toggle the publisher\n * used at title creation.\n *\n * It does not gate the login screen — the title's settings decide whether the wallet button is\n * shown (see walletLogin.tsx).\n * Kept as baked metadata for code that wants to know the title's web3 origin BEFORE there is a\n * session (`client.title.getTitlePublicConfiguration()` requires one).\n */\nexport const IDOS_WEB3 = false;\n\n/**\n * NetworkID the wallet login challenge is issued for (e.g. \"bsc\", \"base\", \"solana\"). Empty on\n * web2 titles. Baked for the same reason as everything else here: the login screen needs it before\n * there is a session, and the title's blockchain config is only readable once logged in.\n */\nexport const IDOS_WEB3_NETWORK_ID = \"\";\n\n/**\n * WalletConnect Cloud / Reown project id (dashboard.reown.com). Enables MOBILE wallet login via\n * WalletConnect (QR on desktop, deep-link on phones); without it only browser-extension wallets\n * are offered and mobile login is unavailable. Set per-title in the blockchain config\n * (Blockchain.WalletLogin.WalletConnectProjectId) — the platform bakes it here. Baked, not read at\n * runtime, for the same reason as IDOS_WEB3_NETWORK_ID: the login screen runs before there is a\n * session, and the title's blockchain config is only readable once logged in.\n */\nexport const IDOS_WEB3_WALLETCONNECT_PROJECT_ID = \"\";\n"
|
|
47
47
|
},
|
|
48
48
|
{
|
|
49
49
|
"path": "src/main.tsx",
|
|
50
|
-
"content": "// ПЕРВЫЙ импорт сознательно: зонд превью (из SDK, отдельная точка входа) ставит перехват console/ошибок\n// при загрузке своего модуля, и всё, что упадёт ниже по старту (включая config.ts на нераспознанном\n// тайтле), уже попадёт в его лог — а значит доедет до AI-кодера. Вне превью не делает ничего.\nimport { installPreviewProbe } from \"@idosgames/app-shell/preview-probe\";\nimport { createIDosGamesClient } from \"@idosgames/core\";\nimport {\n DefaultLoginScreen,\n DefaultPlayAccessScreen,\n createBaseModule,\n mountHost,\n} from \"@idosgames/app-shell\";\nimport appConfig from \"./app.config\";\nimport { modules } from \"./modules\";\nimport { TITLE_ID, BUILD_KEY } from \"./config\";\nimport { ENV_GOOGLE_CLIENT_ID, IS_DEV } from \"./env\";\nimport { IDOS_WEB3, IDOS_WEB3_NETWORK_ID } from \"./idos.title\";\nimport { renderWalletLink, renderWalletLogin } from \"./walletLogin\";\nimport { WalletButton, WalletTopUp } from \"./walletButton\";\nimport ui from \"./ui.config\";\n\n// Тайтл зонду — отдельным вызовом: сам он встал раньше, чем config.ts успел его разрешить.\ninstallPreviewProbe({ titleId: TITLE_ID });\n\nconst app = document.getElementById(\"app\");\nif (!app) throw new Error(\"#app container not found\");\n\n// Always runs against the real backend (https://api.idosgames.com) via the global fetch.\nconst client = createIDosGamesClient({\n titleID: TITLE_ID,\n buildKey: BUILD_KEY.length > 0 ? BUILD_KEY : undefined,\n throttleMs: 0,\n});\n\nclient.on(\"error:global\", (message) => {\n console.error(\"[idos] global error:\", message);\n});\nclient.on(\"error:connection\", (message) => {\n console.error(\"[idos] connection error:\", message);\n});\n\nif (IS_DEV) {\n (\n globalThis as typeof globalThis & { idosClient?: typeof client }\n ).idosClient = client;\n}\n\n// The host owns sign-in: mountHost replays the previous session (autoLogin) and, when there is\n// none, renders the login screen. Do NOT log in here — that would skip the screen, and with it the\n// player's ability to pick a provider or switch accounts.\n//\n// The app = the base (sign-in and the lobby, both from @idosgames/app-shell) + the modules of\n// ./modules.ts (the shop, heroes, leaderboards… and the games). The base goes first; what happens\n// after sign-in and the order of the lobby's tabs is ./app.config.ts, the look is ./ui.config.ts.\n//\n// The wallet stack is the project's (the base knows nothing about it): the lobby's wallet button is\n// ./walletButton (with the top-up window for a purchase short on crypto), sign-in / \"link wallet\"\n// buttons are ./walletLogin.\nmountHost({\n container: app,\n client,\n modules: [\n createBaseModule(appConfig, {\n web3: IDOS_WEB3,\n networkID: IDOS_WEB3_NETWORK_ID,\n WalletButton,\n WalletTopUp,\n }),\n ...modules,\n ],\n // The ready-made sign-in: wallet, iDos Games, Google, Apple, Telegram, e-mail, and the title's login\n // mode. \"Play as guest\" is off until `auth.guest` in ./app.config.ts turns it on; a Google client\n // id for local development is VITE_IDOS_GOOGLE_CLIENT_ID (a published game shows Google only when\n // the publisher set up the title's own Google sign-in). A game that needs another layout renders\n // its own screen here and keeps calling client.auth.login*() and props.onAuthenticated().\n renderLogin: (props) => (\n <DefaultLoginScreen\n {...props}\n renderWalletLogin={renderWalletLogin}\n allowGuest={appConfig.auth.guest}\n googleClientId={ENV_GOOGLE_CLIENT_ID}\n />\n ),\n // Shown instead of the app when the title's login mode requires a token balance the player has\n // not confirmed yet: it lists the requirements, the linked wallets, \"Link wallet\" and \"Check\".\n renderPlayAccess: (props) => (\n <DefaultPlayAccessScreen {...props} renderLinkWallet={renderWalletLink} />\n ),\n // Look, animations and sounds of every module's interface — edit ./ui.config.ts, not the modules.\n ui,\n});\n"
|
|
50
|
+
"content": "// ПЕРВЫЙ импорт сознательно: зонд превью (из SDK, отдельная точка входа) ставит перехват console/ошибок\n// при загрузке своего модуля, и всё, что упадёт ниже по старту (включая config.ts на нераспознанном\n// тайтле), уже попадёт в его лог — а значит доедет до AI-кодера. Вне превью не делает ничего.\nimport { installPreviewProbe } from \"@idosgames/app-shell/preview-probe\";\nimport { createIDosGamesClient } from \"@idosgames/core\";\nimport {\n DefaultLoginScreen,\n DefaultPlayAccessScreen,\n createBaseModule,\n mountHost,\n} from \"@idosgames/app-shell\";\nimport appConfig from \"./app.config\";\nimport { modules } from \"./modules\";\nimport { TITLE_ID, BUILD_KEY } from \"./config\";\nimport { ENV_GOOGLE_CLIENT_ID, IS_DEV } from \"./env\";\nimport { IDOS_WEB3, IDOS_WEB3_NETWORK_ID } from \"./idos.title\";\nimport { renderWalletLink, renderWalletLogin } from \"./walletLogin\";\nimport { WalletButton, WalletTopUp } from \"./walletButton\";\nimport ui from \"./ui.config\";\n\n// Тайтл зонду — отдельным вызовом: сам он встал раньше, чем config.ts успел его разрешить.\ninstallPreviewProbe({ titleId: TITLE_ID });\n\nconst app = document.getElementById(\"app\");\nif (!app) throw new Error(\"#app container not found\");\n\n// Always runs against the real backend (https://api.idosgames.com) via the global fetch.\nconst client = createIDosGamesClient({\n titleID: TITLE_ID,\n buildKey: BUILD_KEY.length > 0 ? BUILD_KEY : undefined,\n throttleMs: 0,\n});\n\nclient.on(\"error:global\", (message) => {\n console.error(\"[idos] global error:\", message);\n});\nclient.on(\"error:connection\", (message) => {\n console.error(\"[idos] connection error:\", message);\n});\n\nif (IS_DEV) {\n (\n globalThis as typeof globalThis & { idosClient?: typeof client }\n ).idosClient = client;\n}\n\n// The host owns sign-in: mountHost replays the previous session (autoLogin) and, when there is\n// none, renders the login screen. Do NOT log in here — that would skip the screen, and with it the\n// player's ability to pick a provider or switch accounts.\n//\n// The app = the base (sign-in and the lobby, both from @idosgames/app-shell) + the modules of\n// ./modules.ts (the shop, heroes, leaderboards… and the games). The base goes first; what happens\n// after sign-in and the order of the lobby's tabs is ./app.config.ts, the look is ./ui.config.ts.\n//\n// The wallet stack is the project's (the base knows nothing about it): the lobby's wallet button is\n// ./walletButton (with the top-up window for a purchase short on crypto), sign-in / \"link wallet\"\n// buttons are ./walletLogin.\nmountHost({\n container: app,\n client,\n modules: [\n createBaseModule(appConfig, {\n web3: IDOS_WEB3,\n networkID: IDOS_WEB3_NETWORK_ID,\n WalletButton,\n WalletTopUp,\n }),\n ...modules,\n ],\n // The ready-made sign-in: wallet, iDos Games, Google, Apple, Telegram, e-mail, and the title's login\n // mode. \"Play as guest\" is off until `auth.guest` in ./app.config.ts turns it on; a Google client\n // id for local development is VITE_IDOS_GOOGLE_CLIENT_ID (a published game shows Google only when\n // the publisher set up the title's own Google sign-in). A game that needs another layout renders\n // its own screen here and keeps calling client.auth.login*() and props.onAuthenticated().\n renderLogin: (props) => (\n <DefaultLoginScreen\n {...props}\n renderWalletLogin={renderWalletLogin}\n allowGuest={appConfig.auth.guest}\n googleClientId={ENV_GOOGLE_CLIENT_ID}\n />\n ),\n // Shown instead of the app when the title's login mode requires a token balance the player has\n // not confirmed yet: it lists the requirements, the linked wallets, \"Link wallet\" and \"Check\".\n renderPlayAccess: (props) => (\n <DefaultPlayAccessScreen {...props} renderLinkWallet={renderWalletLink} />\n ),\n // Look, animations and sounds of every module's interface — edit ./ui.config.ts, not the modules.\n ui,\n // On the idosgames.com game page the player enters with their site account by itself.\n platformSignIn: appConfig.auth.platformSignIn,\n});\n"
|
|
51
51
|
},
|
|
52
52
|
{
|
|
53
53
|
"path": "src/modules.ts",
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
},
|
|
68
68
|
{
|
|
69
69
|
"path": "src/walletLogin.tsx",
|
|
70
|
-
"content": "import { LazyWalletLogin } from \"@idosgames/wallet/react/lazy\";\nimport type { RenderLinkWallet, RenderWalletLogin } from \"@idosgames/app-shell\";\nimport { ENV_WALLETCONNECT_PROJECT_ID } from \"./env\";\nimport {\n IDOS_WEB3_NETWORK_ID,\n IDOS_WEB3_WALLETCONNECT_PROJECT_ID,\n} from \"./idos.title\";\n\n// Wallet sign-in seam
|
|
70
|
+
"content": "import { LazyWalletLogin } from \"@idosgames/wallet/react/lazy\";\nimport type { RenderLinkWallet, RenderWalletLogin } from \"@idosgames/app-shell\";\nimport { ENV_WALLETCONNECT_PROJECT_ID } from \"./env\";\nimport {\n IDOS_WEB3_NETWORK_ID,\n IDOS_WEB3_WALLETCONNECT_PROJECT_ID,\n} from \"./idos.title\";\n\n// Wallet sign-in seam. The project always supplies the button, but the sign-in screen SHOWS it only\n// when the title wants it: a token-gated login mode (Blockchain.PlayAccess) or the publisher's switch\n// Blockchain.WalletLogin.ShowOnLoginScreen — both are title settings, changed without a rebuild. An\n// open game does not offer a wallet at sign-in.\n//\n// The button uses the SDK's default EVM chain set (no `chains` prop). The challenge network comes\n// from the title (IDOS_WEB3_NETWORK_ID, baked by the platform); the \"bsc\" fallback keeps the button\n// alive on titles that did not pick a network at creation. A title whose Blockchain config is empty\n// will surface the server's error under the button — fix that by configuring the network (backend\n// MCP: get_blockchain / save_blockchain), not by hiding the button. To restrict the chains, import\n// them from this same subpath (mainnet, bsc, polygon, base, arbitrum, optimism, sepolia,\n// polygonAmoy — plain objects, safe to import) and pass `chains={[…]}`.\n//\n// For a title created with the web3 toggle the platform regenerates this file with the title's own\n// network. Keeping the seam in its own file is what makes that swap (and your own edits) safe.\n//\n// The import is \"@idosgames/wallet/react/lazy\", NOT \"@idosgames/wallet/react\". The wallet stack\n// (Reown AppKit + wagmi/viem) is megabytes of code most players never need; the lazy entry keeps it\n// out of the first load until the player actually taps sign-in.\n//\n// walletConnectProjectId adds MOBILE wallets via the WalletConnect QR/deep-link modal; without it\n// the button only works with injected wallets (MetaMask & co) and mobile login is unavailable. It\n// comes from the title's blockchain config (IDOS_WEB3_WALLETCONNECT_PROJECT_ID, baked by the\n// platform); VITE_WALLETCONNECT_PROJECT_ID in .env.local is a local-dev fallback.\n//\n// No `chains` is passed on purpose: the button falls back to the SDK's default EVM chain set, which\n// is the SAME list the in-game wallet panel uses. That shared list is what lets the login and the\n// panel share one wallet config, so a wallet connected here stays connected in the game.\n\nexport const renderWalletLogin: RenderWalletLogin = ({\n client,\n onAuthenticated,\n disabled,\n style,\n}) => (\n <LazyWalletLogin\n client={client}\n networkID={IDOS_WEB3_NETWORK_ID || \"bsc\"}\n onAuthenticated={onAuthenticated}\n disabled={disabled}\n style={style}\n walletConnectProjectId={\n IDOS_WEB3_WALLETCONNECT_PROJECT_ID ||\n ENV_WALLETCONNECT_PROJECT_ID ||\n undefined\n }\n />\n);\n\n// \"Link wallet\" on the play-access screen (mounted in ./main.tsx) — the same button in link mode. When\n// the title's login mode requires a token balance, a player who signed in another way attaches a\n// wallet to the account by signature, and the server checks the balance against exactly that\n// wallet. `networkID` is the network a requirement needs; the title's own network otherwise.\nexport const renderWalletLink: RenderLinkWallet = ({\n client,\n networkID,\n onLinked,\n disabled,\n style,\n}) => (\n <LazyWalletLogin\n mode=\"link\"\n client={client}\n networkID={networkID || IDOS_WEB3_NETWORK_ID || \"bsc\"}\n onLinked={onLinked}\n disabled={disabled}\n style={style}\n walletConnectProjectId={\n IDOS_WEB3_WALLETCONNECT_PROJECT_ID ||\n ENV_WALLETCONNECT_PROJECT_ID ||\n undefined\n }\n />\n);\n"
|
|
71
71
|
},
|
|
72
72
|
{
|
|
73
73
|
"path": "tsconfig.json",
|