@ironwallet/mcp-server 1.0.0-preprod.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/LICENSE +21 -0
- package/README.md +161 -0
- package/assets/knight.png +0 -0
- package/assets/wordmark.svg +20 -0
- package/dist/api/auth.d.ts +20 -0
- package/dist/api/auth.js +92 -0
- package/dist/api/auth.js.map +1 -0
- package/dist/api/balances.d.ts +25 -0
- package/dist/api/balances.js +565 -0
- package/dist/api/balances.js.map +1 -0
- package/dist/api/http.d.ts +34 -0
- package/dist/api/http.js +277 -0
- package/dist/api/http.js.map +1 -0
- package/dist/api/relay.d.ts +49 -0
- package/dist/api/relay.js +194 -0
- package/dist/api/relay.js.map +1 -0
- package/dist/api/rpc.d.ts +10 -0
- package/dist/api/rpc.js +26 -0
- package/dist/api/rpc.js.map +1 -0
- package/dist/api/swap.d.ts +134 -0
- package/dist/api/swap.js +554 -0
- package/dist/api/swap.js.map +1 -0
- package/dist/cli.d.ts +6 -0
- package/dist/cli.js +20 -0
- package/dist/cli.js.map +1 -0
- package/dist/config.d.ts +91 -0
- package/dist/config.js +175 -0
- package/dist/config.js.map +1 -0
- package/dist/generated/env-config.d.ts +5 -0
- package/dist/generated/env-config.js +23 -0
- package/dist/generated/env-config.js.map +1 -0
- package/dist/generated/env-profile.d.ts +15 -0
- package/dist/generated/env-profile.js +2 -0
- package/dist/generated/env-profile.js.map +1 -0
- package/dist/keystore/crypto.d.ts +17 -0
- package/dist/keystore/crypto.js +57 -0
- package/dist/keystore/crypto.js.map +1 -0
- package/dist/keystore/store.d.ts +45 -0
- package/dist/keystore/store.js +224 -0
- package/dist/keystore/store.js.map +1 -0
- package/dist/keystore/types.d.ts +31 -0
- package/dist/keystore/types.js +2 -0
- package/dist/keystore/types.js.map +1 -0
- package/dist/local-secrets.d.ts +16 -0
- package/dist/local-secrets.js +73 -0
- package/dist/local-secrets.js.map +1 -0
- package/dist/log.d.ts +30 -0
- package/dist/log.js +323 -0
- package/dist/log.js.map +1 -0
- package/dist/passphrase.d.ts +6 -0
- package/dist/passphrase.js +10 -0
- package/dist/passphrase.js.map +1 -0
- package/dist/policy.d.ts +22 -0
- package/dist/policy.js +108 -0
- package/dist/policy.js.map +1 -0
- package/dist/server.d.ts +6 -0
- package/dist/server.js +38 -0
- package/dist/server.js.map +1 -0
- package/dist/signing/bitcoin.d.ts +18 -0
- package/dist/signing/bitcoin.js +84 -0
- package/dist/signing/bitcoin.js.map +1 -0
- package/dist/signing/dispatch.d.ts +7 -0
- package/dist/signing/dispatch.js +35 -0
- package/dist/signing/dispatch.js.map +1 -0
- package/dist/signing/evm.d.ts +16 -0
- package/dist/signing/evm.js +59 -0
- package/dist/signing/evm.js.map +1 -0
- package/dist/signing/index.d.ts +10 -0
- package/dist/signing/index.js +57 -0
- package/dist/signing/index.js.map +1 -0
- package/dist/signing/solana.d.ts +18 -0
- package/dist/signing/solana.js +106 -0
- package/dist/signing/solana.js.map +1 -0
- package/dist/signing/swap.d.ts +10 -0
- package/dist/signing/swap.js +114 -0
- package/dist/signing/swap.js.map +1 -0
- package/dist/signing/ton.d.ts +33 -0
- package/dist/signing/ton.js +166 -0
- package/dist/signing/ton.js.map +1 -0
- package/dist/signing/tron.d.ts +11 -0
- package/dist/signing/tron.js +39 -0
- package/dist/signing/tron.js.map +1 -0
- package/dist/signing/types.d.ts +23 -0
- package/dist/signing/types.js +2 -0
- package/dist/signing/types.js.map +1 -0
- package/dist/signing/xrp.d.ts +11 -0
- package/dist/signing/xrp.js +122 -0
- package/dist/signing/xrp.js.map +1 -0
- package/dist/tools/helpers.d.ts +42 -0
- package/dist/tools/helpers.js +80 -0
- package/dist/tools/helpers.js.map +1 -0
- package/dist/tools/index.d.ts +7 -0
- package/dist/tools/index.js +16 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/swap.d.ts +6 -0
- package/dist/tools/swap.js +343 -0
- package/dist/tools/swap.js.map +1 -0
- package/dist/tools/transfer.d.ts +6 -0
- package/dist/tools/transfer.js +284 -0
- package/dist/tools/transfer.js.map +1 -0
- package/dist/tools/wallets.d.ts +6 -0
- package/dist/tools/wallets.js +79 -0
- package/dist/tools/wallets.js.map +1 -0
- package/dist/wallet/derive.d.ts +53 -0
- package/dist/wallet/derive.js +233 -0
- package/dist/wallet/derive.js.map +1 -0
- package/dist/web/manager.d.ts +15 -0
- package/dist/web/manager.js +444 -0
- package/dist/web/manager.js.map +1 -0
- package/package.json +54 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swap.js","sourceRoot":"","sources":["../../src/api/swap.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.d.ts
ADDED
package/dist/cli.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Public binary. Starts the stdio MCP server. Wallet create / import / backup
|
|
4
|
+
* is the local browser manager (`open_wallet_manager`), not this CLI.
|
|
5
|
+
*/
|
|
6
|
+
import { serve } from "./server.js";
|
|
7
|
+
async function main() {
|
|
8
|
+
const cmd = process.argv[2];
|
|
9
|
+
if (cmd && cmd !== "serve") {
|
|
10
|
+
process.stderr.write("ironwallet-mcp starts the MCP stdio server.\n" +
|
|
11
|
+
"Create, import, and back up wallets in the local browser (open_wallet_manager).\n");
|
|
12
|
+
process.exit(1);
|
|
13
|
+
}
|
|
14
|
+
await serve();
|
|
15
|
+
}
|
|
16
|
+
main().catch((err) => {
|
|
17
|
+
process.stderr.write(`${err instanceof Error ? err.message : String(err)}\n`);
|
|
18
|
+
process.exit(1);
|
|
19
|
+
});
|
|
20
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;GAGG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,KAAK,UAAU,IAAI;IACjB,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5B,IAAI,GAAG,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;QAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,+CAA+C;YAC7C,mFAAmF,CACtF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,KAAK,EAAE,CAAC;AAChB,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runtime configuration: baked environment profile (from configurations repo),
|
|
3
|
+
* plus optional env overrides. Relay API key and keystore passphrase are
|
|
4
|
+
* generated on first launch. There is no runtime IW_ENV switch — each build
|
|
5
|
+
* embeds one profile via the repo-root `npm run bake`.
|
|
6
|
+
*/
|
|
7
|
+
/** `package.json` version of this package (works from `src/` and compiled `dist/`). */
|
|
8
|
+
export declare function packageVersion(): string;
|
|
9
|
+
/** Canonical network identifiers used across the server. */
|
|
10
|
+
export type NetworkId = "ethereum" | "bsc" | "polygon" | "base" | "arbitrum" | "optimism" | "avalanche" | "tron" | "bitcoin" | "litecoin" | "doge" | "solana" | "ton" | "xrp";
|
|
11
|
+
/** Networks that share the secp256k1 EVM key and signing scheme. */
|
|
12
|
+
export declare const EVM_NETWORKS: NetworkId[];
|
|
13
|
+
/** Non-EVM chains, each with its own curve / address scheme / node API. */
|
|
14
|
+
export declare const NON_EVM_NETWORKS: NetworkId[];
|
|
15
|
+
export declare const ALL_NETWORKS: NetworkId[];
|
|
16
|
+
/**
|
|
17
|
+
* Networks advertised during challenge login. Kept to the proven EVM+Tron set:
|
|
18
|
+
* the backend authenticates against these public keys and the flow is verified
|
|
19
|
+
* for them. Newly added chains are used for address/balance reads and don't need
|
|
20
|
+
* to be part of the auth handshake.
|
|
21
|
+
*/
|
|
22
|
+
export declare const AUTH_NETWORKS: NetworkId[];
|
|
23
|
+
/**
|
|
24
|
+
* Networks whose transfer signing is implemented (send is allowed). All of these
|
|
25
|
+
* go through the Ironwallet relay forward flow (estimate → sign → forward),
|
|
26
|
+
* including TON (IR-673 / mobile RelayV2).
|
|
27
|
+
*/
|
|
28
|
+
export declare const SIGNABLE_NETWORKS: NetworkId[];
|
|
29
|
+
export declare function canSend(network: NetworkId): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Networks that can sign swap txs (mobile NetType set). Litecoin/Doge are in
|
|
32
|
+
* MCP for transfers but not in the mobile swap NetType enum.
|
|
33
|
+
*/
|
|
34
|
+
export declare const SWAP_SIGNABLE_NETWORKS: NetworkId[];
|
|
35
|
+
export declare function canSwap(network: NetworkId): boolean;
|
|
36
|
+
/** Parse a SWP network name ("Ethereum" / "ethereum") into NetworkId when known. */
|
|
37
|
+
export declare function parseNetworkId(name: string): NetworkId | undefined;
|
|
38
|
+
export declare function isEvmNetwork(network: NetworkId): boolean;
|
|
39
|
+
export declare function relaySegment(network: NetworkId): string;
|
|
40
|
+
export interface Config {
|
|
41
|
+
authUrl: string;
|
|
42
|
+
relayUrl: string;
|
|
43
|
+
/** Swap Proxy host (`/swp/exchange/*`, `/swp/refs/*`). */
|
|
44
|
+
swapProxyUrl: string;
|
|
45
|
+
/** Optional relay API key (x-api-key). Empty string means header is omitted. */
|
|
46
|
+
relayApiKey: string;
|
|
47
|
+
/** App version string sent as x-iwt-cli / X-App-Version. */
|
|
48
|
+
appVersion: string;
|
|
49
|
+
/** Device id sent as X-Device-Id. UUID file under the keystore dir unless overridden. */
|
|
50
|
+
deviceId: string;
|
|
51
|
+
/** X-Device-Locale value, format: TimeZone=..;Language=..;Region=..; */
|
|
52
|
+
deviceLocale: string;
|
|
53
|
+
/**
|
|
54
|
+
* JSON for `X-Device-Info`. Swap Proxy requires `systemName`
|
|
55
|
+
* (e.g. `{"systemName":"iOS","systemVersion":"17.0","model":"iPhone"}`).
|
|
56
|
+
*/
|
|
57
|
+
deviceInfo: string;
|
|
58
|
+
/** Directory holding the encrypted keystore. */
|
|
59
|
+
keystoreDir: string;
|
|
60
|
+
/** JSON-RPC endpoints for EVM chains only. */
|
|
61
|
+
evmRpcUrls: Record<string, string>;
|
|
62
|
+
/** Tron full-node HTTP API base (TronGrid) for on-chain balance reads. */
|
|
63
|
+
tronApiUrl: string;
|
|
64
|
+
/** Bitcoin Esplora REST API base. */
|
|
65
|
+
bitcoinApiUrl: string;
|
|
66
|
+
/** Litecoin Esplora REST API base. */
|
|
67
|
+
litecoinApiUrl: string;
|
|
68
|
+
/** Dogecoin BlockCypher API base (…/v1/doge/main). */
|
|
69
|
+
dogeApiUrl: string;
|
|
70
|
+
/** Solana JSON-RPC endpoint. */
|
|
71
|
+
solanaRpcUrl: string;
|
|
72
|
+
/** TON HTTP API base (TON Center v2). */
|
|
73
|
+
tonApiUrl: string;
|
|
74
|
+
/** XRP Ledger JSON-RPC endpoint. */
|
|
75
|
+
xrpRpcUrl: string;
|
|
76
|
+
/** True when Bitcoin should use testnet (dev). */
|
|
77
|
+
bitcoinTestnet: boolean;
|
|
78
|
+
/** Per-attempt HTTP/RPC timeout in milliseconds. */
|
|
79
|
+
httpTimeoutMs: number;
|
|
80
|
+
/**
|
|
81
|
+
* Timeout for relay `POST .../forward` (broadcast). Longer than the general
|
|
82
|
+
* HTTP timeout because the relay may wait on chain inclusion before responding,
|
|
83
|
+
* while the tx can already be in flight if the client gives up early.
|
|
84
|
+
*/
|
|
85
|
+
httpForwardTimeoutMs: number;
|
|
86
|
+
/** Extra retry attempts for idempotent requests (total tries = retries + 1). */
|
|
87
|
+
httpRetries: number;
|
|
88
|
+
}
|
|
89
|
+
export declare function getConfig(): Config;
|
|
90
|
+
/** Common device-mimicking headers sent to auth, relay, and Swap Proxy. */
|
|
91
|
+
export declare function commonHeaders(cfg: Config): Record<string, string>;
|
package/dist/config.js
ADDED
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runtime configuration: baked environment profile (from configurations repo),
|
|
3
|
+
* plus optional env overrides. Relay API key and keystore passphrase are
|
|
4
|
+
* generated on first launch. There is no runtime IW_ENV switch — each build
|
|
5
|
+
* embeds one profile via the repo-root `npm run bake`.
|
|
6
|
+
*/
|
|
7
|
+
import { readFileSync } from "node:fs";
|
|
8
|
+
import { dirname, join } from "node:path";
|
|
9
|
+
import { fileURLToPath } from "node:url";
|
|
10
|
+
import { BAKED_ENV } from "./generated/env-config.js";
|
|
11
|
+
import { resolveDeviceId, resolveKeystoreDir, resolveKeystorePassphrase, resolveRelayApiKey, } from "./local-secrets.js";
|
|
12
|
+
/** `package.json` version of this package (works from `src/` and compiled `dist/`). */
|
|
13
|
+
export function packageVersion() {
|
|
14
|
+
try {
|
|
15
|
+
const pkgPath = join(dirname(fileURLToPath(import.meta.url)), "..", "package.json");
|
|
16
|
+
const pkg = JSON.parse(readFileSync(pkgPath, "utf8"));
|
|
17
|
+
return pkg.version ?? "0.0.0";
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
return "0.0.0";
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
/** Networks that share the secp256k1 EVM key and signing scheme. */
|
|
24
|
+
export const EVM_NETWORKS = [
|
|
25
|
+
"ethereum",
|
|
26
|
+
"bsc",
|
|
27
|
+
"polygon",
|
|
28
|
+
"base",
|
|
29
|
+
"arbitrum",
|
|
30
|
+
"optimism",
|
|
31
|
+
"avalanche",
|
|
32
|
+
];
|
|
33
|
+
/** Non-EVM chains, each with its own curve / address scheme / node API. */
|
|
34
|
+
export const NON_EVM_NETWORKS = [
|
|
35
|
+
"tron",
|
|
36
|
+
"bitcoin",
|
|
37
|
+
"litecoin",
|
|
38
|
+
"doge",
|
|
39
|
+
"solana",
|
|
40
|
+
"ton",
|
|
41
|
+
"xrp",
|
|
42
|
+
];
|
|
43
|
+
export const ALL_NETWORKS = [...EVM_NETWORKS, ...NON_EVM_NETWORKS];
|
|
44
|
+
/**
|
|
45
|
+
* Networks advertised during challenge login. Kept to the proven EVM+Tron set:
|
|
46
|
+
* the backend authenticates against these public keys and the flow is verified
|
|
47
|
+
* for them. Newly added chains are used for address/balance reads and don't need
|
|
48
|
+
* to be part of the auth handshake.
|
|
49
|
+
*/
|
|
50
|
+
export const AUTH_NETWORKS = [...EVM_NETWORKS, "tron"];
|
|
51
|
+
/**
|
|
52
|
+
* Networks whose transfer signing is implemented (send is allowed). All of these
|
|
53
|
+
* go through the Ironwallet relay forward flow (estimate → sign → forward),
|
|
54
|
+
* including TON (IR-673 / mobile RelayV2).
|
|
55
|
+
*/
|
|
56
|
+
export const SIGNABLE_NETWORKS = [...ALL_NETWORKS];
|
|
57
|
+
export function canSend(network) {
|
|
58
|
+
return SIGNABLE_NETWORKS.includes(network);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Networks that can sign swap txs (mobile NetType set). Litecoin/Doge are in
|
|
62
|
+
* MCP for transfers but not in the mobile swap NetType enum.
|
|
63
|
+
*/
|
|
64
|
+
export const SWAP_SIGNABLE_NETWORKS = ALL_NETWORKS.filter((n) => n !== "litecoin" && n !== "doge");
|
|
65
|
+
export function canSwap(network) {
|
|
66
|
+
return SWAP_SIGNABLE_NETWORKS.includes(network);
|
|
67
|
+
}
|
|
68
|
+
/** Parse a SWP network name ("Ethereum" / "ethereum") into NetworkId when known. */
|
|
69
|
+
export function parseNetworkId(name) {
|
|
70
|
+
const key = name.trim().toLowerCase();
|
|
71
|
+
return ALL_NETWORKS.find((n) => n === key);
|
|
72
|
+
}
|
|
73
|
+
export function isEvmNetwork(network) {
|
|
74
|
+
return EVM_NETWORKS.includes(network);
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Relay path segment expected by the backend (PascalCase per network), e.g.
|
|
78
|
+
* `https://iwio.app/txs/api/Ethereum/forward/estimate`.
|
|
79
|
+
*/
|
|
80
|
+
const RELAY_SEGMENT = {
|
|
81
|
+
ethereum: "Ethereum",
|
|
82
|
+
bsc: "Bsc",
|
|
83
|
+
polygon: "Polygon",
|
|
84
|
+
base: "Base",
|
|
85
|
+
arbitrum: "Arbitrum",
|
|
86
|
+
optimism: "Optimism",
|
|
87
|
+
avalanche: "Avalanche",
|
|
88
|
+
tron: "Tron",
|
|
89
|
+
bitcoin: "Bitcoin",
|
|
90
|
+
litecoin: "Litecoin",
|
|
91
|
+
doge: "Doge",
|
|
92
|
+
solana: "Solana",
|
|
93
|
+
ton: "Ton",
|
|
94
|
+
xrp: "Xrp",
|
|
95
|
+
};
|
|
96
|
+
export function relaySegment(network) {
|
|
97
|
+
return RELAY_SEGMENT[network];
|
|
98
|
+
}
|
|
99
|
+
function envOr(key, fallback) {
|
|
100
|
+
const v = process.env[key];
|
|
101
|
+
return v && v.length > 0 ? v : fallback;
|
|
102
|
+
}
|
|
103
|
+
/** Parse an integer env var, clamped to [min, max], falling back on invalid input. */
|
|
104
|
+
function envInt(key, fallback, min, max) {
|
|
105
|
+
const raw = process.env[key];
|
|
106
|
+
if (!raw)
|
|
107
|
+
return fallback;
|
|
108
|
+
const n = Number.parseInt(raw, 10);
|
|
109
|
+
if (!Number.isFinite(n))
|
|
110
|
+
return fallback;
|
|
111
|
+
return Math.min(max, Math.max(min, n));
|
|
112
|
+
}
|
|
113
|
+
function resolveEvmRpcUrls(profileUrls) {
|
|
114
|
+
const urls = { ...profileUrls };
|
|
115
|
+
for (const net of EVM_NETWORKS) {
|
|
116
|
+
const override = process.env[`IW_RPC_${net.toUpperCase()}`];
|
|
117
|
+
if (override)
|
|
118
|
+
urls[net] = override;
|
|
119
|
+
}
|
|
120
|
+
return urls;
|
|
121
|
+
}
|
|
122
|
+
let cached = null;
|
|
123
|
+
export function getConfig() {
|
|
124
|
+
if (cached)
|
|
125
|
+
return cached;
|
|
126
|
+
resolveKeystorePassphrase();
|
|
127
|
+
const profile = BAKED_ENV;
|
|
128
|
+
cached = {
|
|
129
|
+
authUrl: envOr("IW_AUTH_URL", profile.authUrl),
|
|
130
|
+
relayUrl: envOr("IW_RELAY_URL", profile.relayUrl),
|
|
131
|
+
swapProxyUrl: envOr("IW_SWAP_PROXY_URL", profile.swapProxyUrl),
|
|
132
|
+
relayApiKey: resolveRelayApiKey(),
|
|
133
|
+
appVersion: envOr("IW_APP_VERSION", `ironwallet-mcp/${packageVersion()}`),
|
|
134
|
+
deviceId: resolveDeviceId(),
|
|
135
|
+
deviceLocale: envOr("IW_DEVICE_LOCALE", "TimeZone=UTC;Language=en;Region=US;"),
|
|
136
|
+
deviceInfo: envOr("IW_DEVICE_INFO", JSON.stringify({
|
|
137
|
+
systemName: "iOS",
|
|
138
|
+
systemVersion: "17.0",
|
|
139
|
+
model: "iPhone",
|
|
140
|
+
})),
|
|
141
|
+
keystoreDir: resolveKeystoreDir(),
|
|
142
|
+
evmRpcUrls: resolveEvmRpcUrls(profile.evmRpcUrls),
|
|
143
|
+
tronApiUrl: envOr("IW_TRON_API", profile.tronApiUrl),
|
|
144
|
+
bitcoinApiUrl: envOr("IW_BTC_API", profile.bitcoinApiUrl),
|
|
145
|
+
litecoinApiUrl: envOr("IW_LTC_API", profile.litecoinApiUrl),
|
|
146
|
+
dogeApiUrl: envOr("IW_DOGE_API", profile.dogeApiUrl),
|
|
147
|
+
solanaRpcUrl: envOr("IW_SOLANA_RPC", profile.solanaRpcUrl),
|
|
148
|
+
tonApiUrl: envOr("IW_TON_API_URL", profile.tonApiUrl),
|
|
149
|
+
xrpRpcUrl: envOr("IW_XRP_RPC", profile.xrpRpcUrl),
|
|
150
|
+
bitcoinTestnet: profile.bitcoinTestnet,
|
|
151
|
+
httpTimeoutMs: envInt("IW_HTTP_TIMEOUT_MS", 15000, 1000, 120000),
|
|
152
|
+
// Forward can take well over 15s on L2s when the relay waits for broadcast /
|
|
153
|
+
// inclusion; default 60s. Cap raised to 5 min so slow envs can override.
|
|
154
|
+
httpForwardTimeoutMs: envInt("IW_HTTP_FORWARD_TIMEOUT_MS", 60000, 5000, 300000),
|
|
155
|
+
httpRetries: envInt("IW_HTTP_RETRIES", 2, 0, 10),
|
|
156
|
+
};
|
|
157
|
+
return cached;
|
|
158
|
+
}
|
|
159
|
+
/** Common device-mimicking headers sent to auth, relay, and Swap Proxy. */
|
|
160
|
+
export function commonHeaders(cfg) {
|
|
161
|
+
const headers = {
|
|
162
|
+
"x-iwt-cli": cfg.appVersion,
|
|
163
|
+
"X-App-Version": cfg.appVersion,
|
|
164
|
+
"X-Device-Id": cfg.deviceId,
|
|
165
|
+
// Backend validates the format: TimeZone=..;Language=..;Region=..;
|
|
166
|
+
"X-Device-Locale": cfg.deviceLocale,
|
|
167
|
+
// SWP validates UserData.XDeviceInfo — JSON with required `systemName`.
|
|
168
|
+
"X-Device-Info": cfg.deviceInfo,
|
|
169
|
+
"Content-Language": "en",
|
|
170
|
+
};
|
|
171
|
+
if (cfg.relayApiKey)
|
|
172
|
+
headers["x-api-key"] = cfg.relayApiKey;
|
|
173
|
+
return headers;
|
|
174
|
+
}
|
|
175
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export const BAKED_ENV = {
|
|
2
|
+
"authUrl": "https://iwio.app/auth",
|
|
3
|
+
"relayUrl": "https://iwio.app/txs/api",
|
|
4
|
+
"swapProxyUrl": "https://iwio.app",
|
|
5
|
+
"evmRpcUrls": {
|
|
6
|
+
"ethereum": "https://ethereum-rpc.publicnode.com",
|
|
7
|
+
"bsc": "https://bsc-rpc.publicnode.com",
|
|
8
|
+
"polygon": "https://polygon-bor-rpc.publicnode.com",
|
|
9
|
+
"base": "https://base-rpc.publicnode.com",
|
|
10
|
+
"arbitrum": "https://arbitrum-one-rpc.publicnode.com",
|
|
11
|
+
"optimism": "https://optimism-rpc.publicnode.com",
|
|
12
|
+
"avalanche": "https://avalanche-c-chain-rpc.publicnode.com"
|
|
13
|
+
},
|
|
14
|
+
"tronApiUrl": "https://api.trongrid.io",
|
|
15
|
+
"bitcoinApiUrl": "https://blockstream.info/api",
|
|
16
|
+
"litecoinApiUrl": "https://litecoinspace.org/api",
|
|
17
|
+
"dogeApiUrl": "https://api.blockcypher.com/v1/doge/main",
|
|
18
|
+
"solanaRpcUrl": "https://api.mainnet-beta.solana.com",
|
|
19
|
+
"tonApiUrl": "https://toncenter.com/api/v2",
|
|
20
|
+
"xrpRpcUrl": "https://xrplcluster.com",
|
|
21
|
+
"bitcoinTestnet": false
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=env-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env-config.js","sourceRoot":"","sources":["../../src/generated/env-config.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,SAAS,GAAoB;IACxC,SAAS,EAAE,uBAAuB;IAClC,UAAU,EAAE,0BAA0B;IACtC,cAAc,EAAE,kBAAkB;IAClC,YAAY,EAAE;QACZ,UAAU,EAAE,qCAAqC;QACjD,KAAK,EAAE,gCAAgC;QACvC,SAAS,EAAE,wCAAwC;QACnD,MAAM,EAAE,iCAAiC;QACzC,UAAU,EAAE,yCAAyC;QACrD,UAAU,EAAE,qCAAqC;QACjD,WAAW,EAAE,8CAA8C;KAC5D;IACD,YAAY,EAAE,yBAAyB;IACvC,eAAe,EAAE,8BAA8B;IAC/C,gBAAgB,EAAE,+BAA+B;IACjD,YAAY,EAAE,0CAA0C;IACxD,cAAc,EAAE,qCAAqC;IACrD,WAAW,EAAE,8BAA8B;IAC3C,WAAW,EAAE,yBAAyB;IACtC,gBAAgB,EAAE,KAAK;CACf,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** Shape of configurations/config.json baked at build time. */
|
|
2
|
+
export interface BakedEnvProfile {
|
|
3
|
+
authUrl: string;
|
|
4
|
+
relayUrl: string;
|
|
5
|
+
swapProxyUrl: string;
|
|
6
|
+
evmRpcUrls: Record<string, string>;
|
|
7
|
+
tronApiUrl: string;
|
|
8
|
+
bitcoinApiUrl: string;
|
|
9
|
+
litecoinApiUrl: string;
|
|
10
|
+
dogeApiUrl: string;
|
|
11
|
+
solanaRpcUrl: string;
|
|
12
|
+
tonApiUrl: string;
|
|
13
|
+
xrpRpcUrl: string;
|
|
14
|
+
bitcoinTestnet: boolean;
|
|
15
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env-profile.js","sourceRoot":"","sources":["../../src/generated/env-profile.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Symmetric encryption of mnemonics using a passphrase.
|
|
3
|
+
*
|
|
4
|
+
* scrypt(passphrase, salt) -> 32-byte key -> AES-256-GCM. The passphrase comes
|
|
5
|
+
* from the wrapping secret (IW_PASSPHRASE or a file under ~/.ironwallet-mcp/)
|
|
6
|
+
* so the stdio server can decrypt non-interactively. Each blob carries its own
|
|
7
|
+
* salt + iv.
|
|
8
|
+
*/
|
|
9
|
+
export interface EncryptedBlob {
|
|
10
|
+
v: 1;
|
|
11
|
+
salt: string;
|
|
12
|
+
iv: string;
|
|
13
|
+
tag: string;
|
|
14
|
+
data: string;
|
|
15
|
+
}
|
|
16
|
+
export declare function encryptSecret(plaintext: string, passphrase: string): string;
|
|
17
|
+
export declare function decryptSecret(blobJson: string, passphrase: string): string;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Symmetric encryption of mnemonics using a passphrase.
|
|
3
|
+
*
|
|
4
|
+
* scrypt(passphrase, salt) -> 32-byte key -> AES-256-GCM. The passphrase comes
|
|
5
|
+
* from the wrapping secret (IW_PASSPHRASE or a file under ~/.ironwallet-mcp/)
|
|
6
|
+
* so the stdio server can decrypt non-interactively. Each blob carries its own
|
|
7
|
+
* salt + iv.
|
|
8
|
+
*/
|
|
9
|
+
import { randomBytes, scryptSync, createCipheriv, createDecipheriv, } from "node:crypto";
|
|
10
|
+
const SCRYPT_N = 1 << 15; // 32768
|
|
11
|
+
const SCRYPT_R = 8;
|
|
12
|
+
const SCRYPT_P = 1;
|
|
13
|
+
const KEY_LEN = 32;
|
|
14
|
+
function deriveKey(passphrase, salt) {
|
|
15
|
+
return scryptSync(passphrase, salt, KEY_LEN, {
|
|
16
|
+
N: SCRYPT_N,
|
|
17
|
+
r: SCRYPT_R,
|
|
18
|
+
p: SCRYPT_P,
|
|
19
|
+
maxmem: 128 * SCRYPT_N * SCRYPT_R * 2,
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
export function encryptSecret(plaintext, passphrase) {
|
|
23
|
+
const salt = randomBytes(16);
|
|
24
|
+
const iv = randomBytes(12);
|
|
25
|
+
const key = deriveKey(passphrase, salt);
|
|
26
|
+
const cipher = createCipheriv("aes-256-gcm", key, iv);
|
|
27
|
+
const data = Buffer.concat([
|
|
28
|
+
cipher.update(plaintext, "utf8"),
|
|
29
|
+
cipher.final(),
|
|
30
|
+
]);
|
|
31
|
+
const tag = cipher.getAuthTag();
|
|
32
|
+
const blob = {
|
|
33
|
+
v: 1,
|
|
34
|
+
salt: salt.toString("base64"),
|
|
35
|
+
iv: iv.toString("base64"),
|
|
36
|
+
tag: tag.toString("base64"),
|
|
37
|
+
data: data.toString("base64"),
|
|
38
|
+
};
|
|
39
|
+
return JSON.stringify(blob);
|
|
40
|
+
}
|
|
41
|
+
export function decryptSecret(blobJson, passphrase) {
|
|
42
|
+
const blob = JSON.parse(blobJson);
|
|
43
|
+
const salt = Buffer.from(blob.salt, "base64");
|
|
44
|
+
const iv = Buffer.from(blob.iv, "base64");
|
|
45
|
+
const tag = Buffer.from(blob.tag, "base64");
|
|
46
|
+
const data = Buffer.from(blob.data, "base64");
|
|
47
|
+
const key = deriveKey(passphrase, salt);
|
|
48
|
+
const decipher = createDecipheriv("aes-256-gcm", key, iv);
|
|
49
|
+
decipher.setAuthTag(tag);
|
|
50
|
+
try {
|
|
51
|
+
return Buffer.concat([decipher.update(data), decipher.final()]).toString("utf8");
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
throw new Error("Failed to decrypt wallet. Wrong passphrase or corrupted keystore.");
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=crypto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../src/keystore/crypto.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,WAAW,EACX,UAAU,EACV,cAAc,EACd,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAErB,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ;AAClC,MAAM,QAAQ,GAAG,CAAC,CAAC;AACnB,MAAM,QAAQ,GAAG,CAAC,CAAC;AACnB,MAAM,OAAO,GAAG,EAAE,CAAC;AAUnB,SAAS,SAAS,CAAC,UAAkB,EAAE,IAAY;IACjD,OAAO,UAAU,CAAC,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE;QAC3C,CAAC,EAAE,QAAQ;QACX,CAAC,EAAE,QAAQ;QACX,CAAC,EAAE,QAAQ;QACX,MAAM,EAAE,GAAG,GAAG,QAAQ,GAAG,QAAQ,GAAG,CAAC;KACtC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,SAAiB,EAAE,UAAkB;IACjE,MAAM,IAAI,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;IAC7B,MAAM,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;IAC3B,MAAM,GAAG,GAAG,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,cAAc,CAAC,aAAa,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IACtD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;QACzB,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC;QAChC,MAAM,CAAC,KAAK,EAAE;KACf,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IAChC,MAAM,IAAI,GAAkB;QAC1B,CAAC,EAAE,CAAC;QACJ,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC7B,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACzB,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC3B,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;KAC9B,CAAC;IACF,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,QAAgB,EAAE,UAAkB;IAChE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAkB,CAAC;IACnD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC9C,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC1C,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC9C,MAAM,GAAG,GAAG,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,aAAa,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IAC1D,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACzB,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,CACtE,MAAM,CACP,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,mEAAmE,CACpE,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Keystore persistence: reads/writes the encrypted keystore file and provides
|
|
3
|
+
* seed generation/import. Mnemonics are held in memory only transiently during
|
|
4
|
+
* signing; they are never returned to callers of these functions except the
|
|
5
|
+
* local browser wallet manager.
|
|
6
|
+
*/
|
|
7
|
+
import type { KeystoreFile, WalletEntry, WalletPolicy } from "./types.js";
|
|
8
|
+
export declare function loadKeystore(): KeystoreFile;
|
|
9
|
+
export declare function walletNames(): string[];
|
|
10
|
+
export declare function getEntry(name: string): WalletEntry | undefined;
|
|
11
|
+
/**
|
|
12
|
+
* Resolve which wallet to use. If `name` is given it must exist. If omitted and
|
|
13
|
+
* exactly one wallet exists, that one is used. Otherwise an error is thrown.
|
|
14
|
+
*/
|
|
15
|
+
export declare function resolveEntry(name?: string): WalletEntry;
|
|
16
|
+
export interface CreatedWallet {
|
|
17
|
+
name: string;
|
|
18
|
+
addresses: Record<string, string>;
|
|
19
|
+
/** Only populated for the local browser manager, never for the agent-facing tool. */
|
|
20
|
+
mnemonic?: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Create N brand-new wallets. Returns names + addresses. The mnemonic is only
|
|
24
|
+
* echoed back when `revealMnemonic` is true (wallet manager), never for the
|
|
25
|
+
* MCP tool path.
|
|
26
|
+
*/
|
|
27
|
+
export declare function createWallets(count: number, passphrase: string, opts?: {
|
|
28
|
+
namePrefix?: string;
|
|
29
|
+
revealMnemonic?: boolean;
|
|
30
|
+
}): CreatedWallet[];
|
|
31
|
+
/** Import an existing mnemonic under a name. */
|
|
32
|
+
export declare function importWallet(mnemonic: string, passphrase: string, name?: string): CreatedWallet;
|
|
33
|
+
/** Decrypt and return a wallet's mnemonic. CLI/backup use only. */
|
|
34
|
+
export declare function revealMnemonic(name: string, passphrase: string): string;
|
|
35
|
+
/** Decrypt a wallet's mnemonic for internal signing. Never expose the result. */
|
|
36
|
+
export declare function unlockMnemonic(entry: WalletEntry, passphrase: string): string;
|
|
37
|
+
/**
|
|
38
|
+
* Fill in any newly supported network addresses missing from an older keystore
|
|
39
|
+
* entry (e.g. litecoin/doge added after the wallet was created). Persists when
|
|
40
|
+
* something was missing.
|
|
41
|
+
*/
|
|
42
|
+
export declare function syncAddresses(entry: WalletEntry, mnemonic: string): WalletEntry;
|
|
43
|
+
export declare function markBackedUp(name: string): void;
|
|
44
|
+
export declare function removeWallet(name: string): void;
|
|
45
|
+
export declare function setPolicy(name: string, policy: WalletPolicy): void;
|