@ironwallet/mcp-server 1.1.0 → 1.2.1
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/README.md +11 -4
- package/dist/api/balances.d.ts +1 -0
- package/dist/api/balances.js +1 -1
- package/dist/api/balances.js.map +1 -1
- package/dist/api/history/index.d.ts +49 -0
- package/dist/api/history/index.js +209 -0
- package/dist/api/history/index.js.map +1 -0
- package/dist/api/history/merge.d.ts +63 -0
- package/dist/api/history/merge.js +208 -0
- package/dist/api/history/merge.js.map +1 -0
- package/dist/api/history/normalize.d.ts +37 -0
- package/dist/api/history/normalize.js +149 -0
- package/dist/api/history/normalize.js.map +1 -0
- package/dist/api/history/pace.d.ts +21 -0
- package/dist/api/history/pace.js +40 -0
- package/dist/api/history/pace.js.map +1 -0
- package/dist/api/history/providers/blockcypher.d.ts +24 -0
- package/dist/api/history/providers/blockcypher.js +70 -0
- package/dist/api/history/providers/blockcypher.js.map +1 -0
- package/dist/api/history/providers/esplora.d.ts +41 -0
- package/dist/api/history/providers/esplora.js +100 -0
- package/dist/api/history/providers/esplora.js.map +1 -0
- package/dist/api/history/providers/etherscan.d.ts +36 -0
- package/dist/api/history/providers/etherscan.js +118 -0
- package/dist/api/history/providers/etherscan.js.map +1 -0
- package/dist/api/history/providers/nodereal.d.ts +27 -0
- package/dist/api/history/providers/nodereal.js +93 -0
- package/dist/api/history/providers/nodereal.js.map +1 -0
- package/dist/api/history/providers/solana.d.ts +47 -0
- package/dist/api/history/providers/solana.js +211 -0
- package/dist/api/history/providers/solana.js.map +1 -0
- package/dist/api/history/providers/ton-shared.d.ts +18 -0
- package/dist/api/history/providers/ton-shared.js +38 -0
- package/dist/api/history/providers/ton-shared.js.map +1 -0
- package/dist/api/history/providers/tonapi.d.ts +52 -0
- package/dist/api/history/providers/tonapi.js +183 -0
- package/dist/api/history/providers/tonapi.js.map +1 -0
- package/dist/api/history/providers/toncenter.d.ts +55 -0
- package/dist/api/history/providers/toncenter.js +191 -0
- package/dist/api/history/providers/toncenter.js.map +1 -0
- package/dist/api/history/providers/trongrid.d.ts +48 -0
- package/dist/api/history/providers/trongrid.js +144 -0
- package/dist/api/history/providers/trongrid.js.map +1 -0
- package/dist/api/history/providers/tronscan.d.ts +55 -0
- package/dist/api/history/providers/tronscan.js +153 -0
- package/dist/api/history/providers/tronscan.js.map +1 -0
- package/dist/api/history/providers/xrp.d.ts +39 -0
- package/dist/api/history/providers/xrp.js +150 -0
- package/dist/api/history/providers/xrp.js.map +1 -0
- package/dist/api/history/types.d.ts +112 -0
- package/dist/api/history/types.js +27 -0
- package/dist/api/history/types.js.map +1 -0
- package/dist/api/swap.d.ts +2 -0
- package/dist/api/swap.js +24 -10
- package/dist/api/swap.js.map +1 -1
- package/dist/config.d.ts +12 -3
- package/dist/config.js +83 -7
- package/dist/config.js.map +1 -1
- package/dist/consent/copy.d.ts +2 -2
- package/dist/consent/copy.js +2 -1
- package/dist/consent/copy.js.map +1 -1
- package/dist/generated/env-config.js +96 -1
- package/dist/generated/env-config.js.map +1 -1
- package/dist/generated/env-profile.d.ts +7 -0
- package/dist/keystore/store.js +33 -4
- package/dist/keystore/store.js.map +1 -1
- package/dist/local-secrets.d.ts +23 -1
- package/dist/local-secrets.js +36 -2
- package/dist/local-secrets.js.map +1 -1
- package/dist/networks.d.ts +3 -0
- package/dist/networks.js +20 -0
- package/dist/networks.js.map +1 -1
- package/dist/npm-registry.d.ts +45 -0
- package/dist/npm-registry.js +175 -0
- package/dist/npm-registry.js.map +1 -0
- package/dist/policy.d.ts +31 -0
- package/dist/policy.js +95 -0
- package/dist/policy.js.map +1 -1
- package/dist/qr/deposit-qr.d.ts +21 -1
- package/dist/qr/deposit-qr.js +100 -21
- package/dist/qr/deposit-qr.js.map +1 -1
- package/dist/qr/font.js +3 -0
- package/dist/qr/font.js.map +1 -1
- package/dist/server.js +3 -0
- package/dist/server.js.map +1 -1
- package/dist/tools/definitions.d.ts +23 -1
- package/dist/tools/definitions.js +87 -29
- package/dist/tools/definitions.js.map +1 -1
- package/dist/tools/helpers.d.ts +10 -0
- package/dist/tools/helpers.js +26 -0
- package/dist/tools/helpers.js.map +1 -1
- package/dist/tools/history.d.ts +7 -0
- package/dist/tools/history.js +70 -0
- package/dist/tools/history.js.map +1 -0
- package/dist/tools/index.js +4 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/runtime.d.ts +8 -0
- package/dist/tools/runtime.js +110 -0
- package/dist/tools/runtime.js.map +1 -0
- package/dist/tools/swap.d.ts +9 -1
- package/dist/tools/swap.js +41 -7
- package/dist/tools/swap.js.map +1 -1
- package/dist/tools/transfer.d.ts +1 -1
- package/dist/tools/transfer.js +5 -2
- package/dist/tools/transfer.js.map +1 -1
- package/dist/tools/wallets.js +31 -13
- package/dist/tools/wallets.js.map +1 -1
- package/dist/web/manager.d.ts +6 -0
- package/dist/web/manager.js +149 -8
- package/dist/web/manager.js.map +1 -1
- package/package.json +2 -2
- package/server.json +19 -3
- package/tools.json +99 -20
package/README.md
CHANGED
|
@@ -72,13 +72,16 @@ The mnemonic never appears in tool inputs/outputs, logs meant for the agent, or
|
|
|
72
72
|
<!-- tools-table -->
|
|
73
73
|
| Tool | Purpose | Moves funds? |
|
|
74
74
|
|------|---------|:------------:|
|
|
75
|
+
| `get_runtime_info` | Running version vs published npm package | no |
|
|
76
|
+
| `prepare_update` | Stage the npm update for the next restart | no |
|
|
75
77
|
| `list_wallets` | Names, addresses, and `policy` | no |
|
|
76
78
|
| `accept_mcp_consent` | Record chat acceptance of the MCP disclaimer | no |
|
|
77
79
|
| `create_wallets` | New wallets; returns a browser `backup_url` | no |
|
|
78
|
-
| `open_wallet_manager` | Local browser UI to import / create / back up | no |
|
|
80
|
+
| `open_wallet_manager` | Local browser UI to import / create / back up / delete | no |
|
|
79
81
|
| `set_wallet_policy` | Replace per-wallet limits (`readOnly`, `maxPerTxUsd`, allow-list) | no |
|
|
80
82
|
| `get_deposit_qr` | PNG QR (try chat; else local `qr_url`) | no |
|
|
81
83
|
| `get_balance` | Native or token balance | no |
|
|
84
|
+
| `get_transaction_history` | Recent txs from public explorers (paged) | no |
|
|
82
85
|
| `estimate_transfer` | Fee estimate, no broadcast | no |
|
|
83
86
|
| `send_transfer` | Sign locally and send | **yes** |
|
|
84
87
|
| `get_operation_status` | Poll a transfer | no |
|
|
@@ -89,12 +92,13 @@ The mnemonic never appears in tool inputs/outputs, logs meant for the agent, or
|
|
|
89
92
|
| `get_swap_status` | Poll a swap | no |
|
|
90
93
|
<!-- /tools-table -->
|
|
91
94
|
|
|
92
|
-
No tool accepts or returns a seed. Import and
|
|
95
|
+
No tool accepts or returns a seed. Import, backup, and delete only in the local browser (`open_wallet_manager` / `backup_url`).
|
|
93
96
|
|
|
94
97
|
### Wallets
|
|
95
98
|
|
|
96
99
|
- **Create:** `create_wallets` — the agent gets names and addresses; open `backup_url` in a browser to view and back up recovery phrases.
|
|
97
100
|
- **Import / back up:** `open_wallet_manager` — loopback-only page; the phrase is typed or shown only in the browser.
|
|
101
|
+
- **Delete:** the Delete button in the manager. A separate confirmation page asks the user to retype the wallet name; a wallet that was never backed up also needs an explicit acknowledgement that its recovery phrase is destroyed. Funds are not moved. There is no MCP tool for this.
|
|
98
102
|
- **List:** `list_wallets`
|
|
99
103
|
- **Deposit QR:** `get_deposit_qr` — PNG (generated on the fly) plus `qr_url`. Show the image in chat when the host renders it; otherwise open `qr_url`. Pass `network` for one chain. The wallet manager also has a QR button next to each address.
|
|
100
104
|
|
|
@@ -117,7 +121,7 @@ Swaps are a separate flow from transfers.
|
|
|
117
121
|
2. `list_swap_assets` (`direction=from`, then `direction=to` with the chosen sell asset)
|
|
118
122
|
3. Copy **network, symbol, address, decimals** from the catalog into `estimate_swap` / `execute_swap` (especially for tokens)
|
|
119
123
|
4. `estimate_swap` for a preview, or go straight to `execute_swap`
|
|
120
|
-
5. Poll with `get_swap_status` using `operationId`
|
|
124
|
+
5. Poll with `get_swap_status` using the `operationId` from `execute_swap` (`estimate_swap` is a quote and has no status)
|
|
121
125
|
|
|
122
126
|
**Useful options**
|
|
123
127
|
|
|
@@ -142,13 +146,16 @@ The user-facing backup is the **recovery phrase** in the wallet manager, not tho
|
|
|
142
146
|
| `IW_PASSPHRASE` | generated locally | Override keystore wrapping secret |
|
|
143
147
|
| `IW_READ_ONLY` | `false` | Process-wide: reject `send_transfer` and `execute_swap`. `true`/`1` enable; `false`/`0`/`off`/`no` disable. Distinct from per-wallet `policy.readOnly`. |
|
|
144
148
|
| `IW_RELAY_API_KEY` | generated UUID | Override `x-api-key` |
|
|
145
|
-
| `IW_DEVICE_ID` | generated UUID | Override `X-Device-Id`
|
|
149
|
+
| `IW_DEVICE_ID` | generated UUID | Override the device UUID (stable per keystore directory). Sent as `X-Device-Id: web:<uuid>`; a value that already has a `platform:` prefix is sent unchanged |
|
|
146
150
|
| `IW_KEYSTORE_DIR` | `~/.ironwallet-mcp` | Keystore directory |
|
|
147
151
|
| `IW_RATES_API_URL` | baked profile | Rates backend for `maxPerTxUsd` valuation. Unset in the profile → USD limits reject (fail closed) |
|
|
148
152
|
| `IW_STATIC_RESOURCES_URL` | baked profile | Static asset catalogs (token → rates id) |
|
|
149
153
|
| `IW_HTTP_TIMEOUT_MS` | `15000` | General HTTP timeout (1s–120s) |
|
|
150
154
|
| `IW_HTTP_FORWARD_TIMEOUT_MS` | `60000` | Longer timeout for broadcast-style calls. A client timeout does not always mean the operation failed — check status |
|
|
151
155
|
| `IW_HTTP_RETRIES` | `2` | Retries for safe/idempotent calls; broadcasts are not auto-retried |
|
|
156
|
+
| `IW_HISTORY_APIS` | baked profile | JSON `{ "<network>": [{ "kind", "url"? }, …] }` — per-network chain of history indexers for `get_transaction_history`, tried in order. Kinds: `etherscan`, `nodereal`, `tronscan`, `trongrid`, `esplora`, `blockcypher`, `solana-rpc`, `toncenter`, `tonapi`, `xrp-rpc` |
|
|
157
|
+
| `IW_TON_API_KEY` | unset | TonCenter API key. Keyless TonCenter is ~1 request/s per IP (shared by every process behind the same NAT) |
|
|
158
|
+
| `IW_TONAPI_KEY` | unset | tonapi.io Bearer token for the `tonapi` history fallback; keyless is ~1 request/s per IP |
|
|
152
159
|
| `IW_LOG_ENABLED` | `1` | JSONL diagnostics to a log file (`0` to disable) |
|
|
153
160
|
| `IW_LOG_FILE` | `{keystoreDir}/logs/iw-mcp-YYYY-MM-DD.jsonl` | Log path |
|
|
154
161
|
| `IW_LOG_LEVEL` | `info` | `debug` / `info` / `warn` / `error` |
|
package/dist/api/balances.d.ts
CHANGED
|
@@ -21,5 +21,6 @@ export interface BalanceResult {
|
|
|
21
21
|
/** Human-readable balance formatted with `decimals`. */
|
|
22
22
|
formatted: string;
|
|
23
23
|
}
|
|
24
|
+
export declare const NATIVE_SYMBOL: Record<NetworkId, string>;
|
|
24
25
|
/** Read the on-chain balance for a wallet address on the given network. */
|
|
25
26
|
export declare function getBalance(network: NetworkId, address: string, contractAddress?: string): Promise<BalanceResult>;
|
package/dist/api/balances.js
CHANGED
package/dist/api/balances.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"balances.js","sourceRoot":"","sources":["../../src/api/balances.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"balances.js","sourceRoot":"","sources":["../../src/api/balances.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Transaction history façade: resolve the provider chain for a network from
|
|
3
|
+
* config, run the merge engine against the first provider that answers, and
|
|
4
|
+
* hand back one normalized page.
|
|
5
|
+
*
|
|
6
|
+
* Failure semantics matter here: an indexer outage must never look like an
|
|
7
|
+
* empty history. When every provider fails the result is `unavailable` with
|
|
8
|
+
* the per-provider errors; when the build has no indexer for the network it
|
|
9
|
+
* is `unsupported`.
|
|
10
|
+
*/
|
|
11
|
+
import { type NetworkId } from "../../config.js";
|
|
12
|
+
import { HISTORY_DEFAULT_LIMIT, HISTORY_MAX_LIMIT, type HistoryApiSpec, type HistoryItem, type HistoryProvider } from "./types.js";
|
|
13
|
+
export { HISTORY_DEFAULT_LIMIT, HISTORY_MAX_LIMIT };
|
|
14
|
+
export interface HistoryAttempt {
|
|
15
|
+
provider: string;
|
|
16
|
+
error: string;
|
|
17
|
+
}
|
|
18
|
+
export type HistoryResult = {
|
|
19
|
+
status: "ok";
|
|
20
|
+
source: string;
|
|
21
|
+
items: HistoryItem[];
|
|
22
|
+
nextCursor: string | null;
|
|
23
|
+
hasMore: boolean;
|
|
24
|
+
/** Providers that failed before `source` answered. */
|
|
25
|
+
failed: HistoryAttempt[];
|
|
26
|
+
} | {
|
|
27
|
+
status: "unavailable";
|
|
28
|
+
failed: HistoryAttempt[];
|
|
29
|
+
} | {
|
|
30
|
+
status: "unsupported";
|
|
31
|
+
reason: string;
|
|
32
|
+
};
|
|
33
|
+
export declare function buildProvider(spec: HistoryApiSpec, network: NetworkId, address: string): HistoryProvider | null;
|
|
34
|
+
export interface ConfiguredProvider {
|
|
35
|
+
kind: HistoryApiSpec["kind"];
|
|
36
|
+
provider: HistoryProvider;
|
|
37
|
+
}
|
|
38
|
+
export declare function providersFor(network: NetworkId, address: string): ConfiguredProvider[];
|
|
39
|
+
/**
|
|
40
|
+
* A token transfer and the transaction that carried it arrive from different
|
|
41
|
+
* sources with the same hash. Keep the informative token row, fold the fee of
|
|
42
|
+
* the zero-value call into it, and drop the bare call. Page-local by design.
|
|
43
|
+
*/
|
|
44
|
+
export declare function collapseCarrierCalls(items: HistoryItem[]): HistoryItem[];
|
|
45
|
+
export declare function getTransactionHistory(network: NetworkId, address: string, opts: {
|
|
46
|
+
limit?: number;
|
|
47
|
+
cursor?: string;
|
|
48
|
+
correlationId: string;
|
|
49
|
+
}): Promise<HistoryResult>;
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Transaction history façade: resolve the provider chain for a network from
|
|
3
|
+
* config, run the merge engine against the first provider that answers, and
|
|
4
|
+
* hand back one normalized page.
|
|
5
|
+
*
|
|
6
|
+
* Failure semantics matter here: an indexer outage must never look like an
|
|
7
|
+
* empty history. When every provider fails the result is `unavailable` with
|
|
8
|
+
* the per-provider errors; when the build has no indexer for the network it
|
|
9
|
+
* is `unsupported`.
|
|
10
|
+
*/
|
|
11
|
+
import { getConfig, isEvmNetwork } from "../../config.js";
|
|
12
|
+
import { logInfo, logWarn } from "../../log.js";
|
|
13
|
+
import { decodeCursor, encodeCursor, mergeSources } from "./merge.js";
|
|
14
|
+
import { blockcypherProvider } from "./providers/blockcypher.js";
|
|
15
|
+
import { esploraProvider } from "./providers/esplora.js";
|
|
16
|
+
import { etherscanProvider } from "./providers/etherscan.js";
|
|
17
|
+
import { noderealProvider } from "./providers/nodereal.js";
|
|
18
|
+
import { solanaProvider } from "./providers/solana.js";
|
|
19
|
+
import { tonapiProvider } from "./providers/tonapi.js";
|
|
20
|
+
import { toncenterProvider, toncenterV3 } from "./providers/toncenter.js";
|
|
21
|
+
import { trongridProvider } from "./providers/trongrid.js";
|
|
22
|
+
import { tronscanProvider } from "./providers/tronscan.js";
|
|
23
|
+
import { xrpProvider } from "./providers/xrp.js";
|
|
24
|
+
import { HISTORY_DEFAULT_LIMIT, HISTORY_MAX_LIMIT, } from "./types.js";
|
|
25
|
+
export { HISTORY_DEFAULT_LIMIT, HISTORY_MAX_LIMIT };
|
|
26
|
+
/**
|
|
27
|
+
* Per-attempt timeout and retry cap for indexer calls. A dead primary costs
|
|
28
|
+
* at most 2 × 8 s + backoff before the chain moves to the fallback provider;
|
|
29
|
+
* MCP hosts typically give a tool call about a minute.
|
|
30
|
+
*/
|
|
31
|
+
const HISTORY_HTTP_TIMEOUT_MS = 8000;
|
|
32
|
+
const HISTORY_HTTP_RETRIES = 1;
|
|
33
|
+
/** Extra merge rounds to refill a page after carrier calls were folded into token rows. */
|
|
34
|
+
const MAX_REFILL_ROUNDS = 2;
|
|
35
|
+
/** Default endpoint for a kind when the profile entry has no `url`. */
|
|
36
|
+
function defaultUrlFor(kind, network) {
|
|
37
|
+
const cfg = getConfig();
|
|
38
|
+
switch (kind) {
|
|
39
|
+
case "trongrid":
|
|
40
|
+
return cfg.tronApiUrl;
|
|
41
|
+
case "esplora":
|
|
42
|
+
return network === "bitcoin" ? cfg.bitcoinApiUrl : network === "litecoin" ? cfg.litecoinApiUrl : null;
|
|
43
|
+
case "blockcypher":
|
|
44
|
+
return cfg.dogeApiUrl;
|
|
45
|
+
case "solana-rpc":
|
|
46
|
+
return cfg.solanaRpcUrl;
|
|
47
|
+
case "toncenter":
|
|
48
|
+
return toncenterV3(cfg.tonApiUrl);
|
|
49
|
+
case "xrp-rpc":
|
|
50
|
+
return cfg.xrpRpcUrl;
|
|
51
|
+
default:
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
export function buildProvider(spec, network, address) {
|
|
56
|
+
const url = (spec.url ?? defaultUrlFor(spec.kind, network))?.replace(/\/+$/, "");
|
|
57
|
+
if (!url)
|
|
58
|
+
return null;
|
|
59
|
+
switch (spec.kind) {
|
|
60
|
+
case "etherscan":
|
|
61
|
+
return isEvmNetwork(network) ? etherscanProvider(url, address, network) : null;
|
|
62
|
+
case "nodereal":
|
|
63
|
+
return isEvmNetwork(network) ? noderealProvider(url, address, network) : null;
|
|
64
|
+
case "tronscan":
|
|
65
|
+
return network === "tron" ? tronscanProvider(url, address) : null;
|
|
66
|
+
case "trongrid":
|
|
67
|
+
return network === "tron" ? trongridProvider(url, address) : null;
|
|
68
|
+
case "esplora":
|
|
69
|
+
return network === "bitcoin" || network === "litecoin" ? esploraProvider(url, address, network) : null;
|
|
70
|
+
case "blockcypher":
|
|
71
|
+
return network === "doge" ? blockcypherProvider(url, address, network) : null;
|
|
72
|
+
case "solana-rpc":
|
|
73
|
+
return network === "solana" ? solanaProvider(url, address) : null;
|
|
74
|
+
case "toncenter":
|
|
75
|
+
return network === "ton" ? toncenterProvider(toncenterV3(url) ?? url, address) : null;
|
|
76
|
+
case "tonapi":
|
|
77
|
+
return network === "ton" ? tonapiProvider(url, address) : null;
|
|
78
|
+
case "xrp-rpc":
|
|
79
|
+
return network === "xrp" ? xrpProvider(url, address) : null;
|
|
80
|
+
default:
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
export function providersFor(network, address) {
|
|
85
|
+
const specs = getConfig().historyApis[network] ?? [];
|
|
86
|
+
const out = [];
|
|
87
|
+
for (const spec of specs) {
|
|
88
|
+
const provider = buildProvider(spec, network, address);
|
|
89
|
+
if (provider)
|
|
90
|
+
out.push({ kind: spec.kind, provider });
|
|
91
|
+
}
|
|
92
|
+
return out;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* A token transfer and the transaction that carried it arrive from different
|
|
96
|
+
* sources with the same hash. Keep the informative token row, fold the fee of
|
|
97
|
+
* the zero-value call into it, and drop the bare call. Page-local by design.
|
|
98
|
+
*/
|
|
99
|
+
export function collapseCarrierCalls(items) {
|
|
100
|
+
const tokenHashes = new Map();
|
|
101
|
+
for (const it of items) {
|
|
102
|
+
if (it.kind === "token_transfer" && !tokenHashes.has(it.hash))
|
|
103
|
+
tokenHashes.set(it.hash, it);
|
|
104
|
+
}
|
|
105
|
+
if (tokenHashes.size === 0)
|
|
106
|
+
return items;
|
|
107
|
+
const out = [];
|
|
108
|
+
for (const it of items) {
|
|
109
|
+
const carrier = (it.kind === "contract_call" || it.kind === "other") && it.amount.raw === "0";
|
|
110
|
+
const token = carrier ? tokenHashes.get(it.hash) : undefined;
|
|
111
|
+
if (token) {
|
|
112
|
+
if (!token.fee && it.fee && it.direction !== "in")
|
|
113
|
+
token.fee = it.fee;
|
|
114
|
+
if (token.block === null && it.block !== null)
|
|
115
|
+
token.block = it.block;
|
|
116
|
+
if (token.status === "confirmed" && it.status === "failed")
|
|
117
|
+
token.status = "failed";
|
|
118
|
+
continue;
|
|
119
|
+
}
|
|
120
|
+
out.push(it);
|
|
121
|
+
}
|
|
122
|
+
return out;
|
|
123
|
+
}
|
|
124
|
+
export async function getTransactionHistory(network, address, opts) {
|
|
125
|
+
const limit = Math.min(HISTORY_MAX_LIMIT, Math.max(1, opts.limit ?? HISTORY_DEFAULT_LIMIT));
|
|
126
|
+
const providers = providersFor(network, address);
|
|
127
|
+
if (providers.length === 0) {
|
|
128
|
+
return {
|
|
129
|
+
status: "unsupported",
|
|
130
|
+
reason: `No transaction-history indexer is configured for ${network} in this build.`,
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
let previous;
|
|
134
|
+
let candidates = providers;
|
|
135
|
+
if (opts.cursor) {
|
|
136
|
+
const decoded = decodeCursor(opts.cursor);
|
|
137
|
+
// Cursor state is provider-kind specific (page numbers, fingerprints, …),
|
|
138
|
+
// so later pages may use any configured provider of the same kind — that
|
|
139
|
+
// keeps the fallback (e.g. a second Esplora or Solana RPC host) available.
|
|
140
|
+
candidates = providers.filter((p) => p.kind === decoded.p);
|
|
141
|
+
if (candidates.length === 0) {
|
|
142
|
+
throw new Error(`Cursor was issued by a "${decoded.p}" provider, which is not configured for ${network}. Call again without cursor.`);
|
|
143
|
+
}
|
|
144
|
+
previous = { s: decoded.s, b: decoded.b };
|
|
145
|
+
}
|
|
146
|
+
const failed = [];
|
|
147
|
+
const started = Date.now();
|
|
148
|
+
const cfg = getConfig();
|
|
149
|
+
const ctx = {
|
|
150
|
+
correlationId: opts.correlationId,
|
|
151
|
+
http: {
|
|
152
|
+
correlationId: opts.correlationId,
|
|
153
|
+
timeoutMs: Math.min(cfg.httpTimeoutMs, HISTORY_HTTP_TIMEOUT_MS),
|
|
154
|
+
retries: Math.min(cfg.httpRetries, HISTORY_HTTP_RETRIES),
|
|
155
|
+
},
|
|
156
|
+
};
|
|
157
|
+
for (const { kind, provider } of candidates) {
|
|
158
|
+
try {
|
|
159
|
+
// Folding a zero-value carrier call into its token row shortens the
|
|
160
|
+
// page, so pull a little more until `limit` rows or the stream ends.
|
|
161
|
+
let cursorState = previous;
|
|
162
|
+
let raw = [];
|
|
163
|
+
let items = [];
|
|
164
|
+
let hasMore = true;
|
|
165
|
+
for (let round = 0; round <= MAX_REFILL_ROUNDS && hasMore && items.length < limit; round++) {
|
|
166
|
+
const merged = await mergeSources(provider.sources, limit - items.length, cursorState, ctx, limit);
|
|
167
|
+
cursorState = { s: merged.state, b: merged.boundary };
|
|
168
|
+
hasMore = merged.hasMore;
|
|
169
|
+
raw = raw.concat(merged.items);
|
|
170
|
+
items = collapseCarrierCalls(raw);
|
|
171
|
+
}
|
|
172
|
+
logInfo("history.ok", {
|
|
173
|
+
correlationId: opts.correlationId,
|
|
174
|
+
network,
|
|
175
|
+
address,
|
|
176
|
+
provider: provider.label,
|
|
177
|
+
items: items.length,
|
|
178
|
+
hasMore,
|
|
179
|
+
failedProviders: failed.map((f) => f.provider),
|
|
180
|
+
elapsedMs: Date.now() - started,
|
|
181
|
+
});
|
|
182
|
+
return {
|
|
183
|
+
status: "ok",
|
|
184
|
+
source: provider.label,
|
|
185
|
+
items,
|
|
186
|
+
nextCursor: hasMore && cursorState
|
|
187
|
+
? encodeCursor({ v: 1, p: kind, s: cursorState.s, ...(cursorState.b ? { b: cursorState.b } : {}) })
|
|
188
|
+
: null,
|
|
189
|
+
hasMore,
|
|
190
|
+
failed,
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
catch (e) {
|
|
194
|
+
const message = e instanceof Error ? e.message : String(e);
|
|
195
|
+
if (/^Invalid cursor/.test(message))
|
|
196
|
+
throw e;
|
|
197
|
+
failed.push({ provider: provider.label, error: message });
|
|
198
|
+
logWarn("history.provider.fail", {
|
|
199
|
+
correlationId: opts.correlationId,
|
|
200
|
+
network,
|
|
201
|
+
address,
|
|
202
|
+
provider: provider.label,
|
|
203
|
+
error: message,
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
return { status: "unavailable", failed };
|
|
208
|
+
}
|
|
209
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/history/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* K-way merge of newest-first sources with a resumable cursor.
|
|
3
|
+
*
|
|
4
|
+
* Each source is a paged stream. Per source we remember which page we are on
|
|
5
|
+
* (`cursor`, the value that fetched it) and how many items of that page were
|
|
6
|
+
* already emitted (`skip`). Re-fetching a partially consumed page and skipping
|
|
7
|
+
* is what makes partial consumption exact for cursor-only APIs (TronGrid
|
|
8
|
+
* fingerprints, Esplora last_seen_txid, Solana `before`), where a mid-page
|
|
9
|
+
* cursor cannot be synthesized.
|
|
10
|
+
*
|
|
11
|
+
* Per call we load at most two pages per source, so a window always holds at
|
|
12
|
+
* least `limit` items unless the source is exhausted. The merge then emits up
|
|
13
|
+
* to `limit` items strictly by timestamp. If some source has an empty window
|
|
14
|
+
* but is not exhausted (an API returned fewer rows than asked), we stop early
|
|
15
|
+
* rather than emit out-of-order items — unless nothing was emitted yet, in
|
|
16
|
+
* which case progress beats perfect ordering.
|
|
17
|
+
*
|
|
18
|
+
* Offset-paged indexers (Etherscan-compatible, NodeReal, TronScan, TonCenter)
|
|
19
|
+
* drift when a new transaction lands between two calls: every page shifts by
|
|
20
|
+
* one and the last row of the previous page shows up again. The cursor
|
|
21
|
+
* therefore also carries the boundary — the oldest emitted timestamp and the
|
|
22
|
+
* hashes emitted at it — and later pages drop anything newer than or equal to
|
|
23
|
+
* that boundary. Newer rows are either duplicates or transactions that arrived
|
|
24
|
+
* after the first page; both belong to a fresh query, not to page N.
|
|
25
|
+
*/
|
|
26
|
+
import type { HistoryItem, HistorySource, SourceContext } from "./types.js";
|
|
27
|
+
export interface SourceState {
|
|
28
|
+
/** Page cursor that fetches the current page (null = first page). */
|
|
29
|
+
cursor: string | null;
|
|
30
|
+
/** Items of that page already emitted. */
|
|
31
|
+
skip: number;
|
|
32
|
+
/** True when the stream is fully consumed. */
|
|
33
|
+
done: boolean;
|
|
34
|
+
}
|
|
35
|
+
/** Oldest emitted row(s): timestamp and every hash emitted at that timestamp. */
|
|
36
|
+
export interface Boundary {
|
|
37
|
+
ts: number;
|
|
38
|
+
h: string[];
|
|
39
|
+
}
|
|
40
|
+
export interface CursorState {
|
|
41
|
+
v: number;
|
|
42
|
+
/** Provider kind the cursor belongs to (page numbers / fingerprints are kind-specific). */
|
|
43
|
+
p: string;
|
|
44
|
+
s: Record<string, SourceState>;
|
|
45
|
+
b?: Boundary;
|
|
46
|
+
}
|
|
47
|
+
export declare function encodeCursor(state: CursorState): string;
|
|
48
|
+
export declare function decodeCursor(cursor: string): CursorState;
|
|
49
|
+
export interface MergeResult {
|
|
50
|
+
items: HistoryItem[];
|
|
51
|
+
/** Per-source state after this page; feed back through encodeCursor. */
|
|
52
|
+
state: Record<string, SourceState>;
|
|
53
|
+
/** Oldest emitted row(s) of this page, or the previous boundary when nothing was emitted. */
|
|
54
|
+
boundary: Boundary | undefined;
|
|
55
|
+
hasMore: boolean;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* @param limit rows to emit
|
|
59
|
+
* @param pageSize rows to request per source page (defaults to `limit`); a
|
|
60
|
+
* refill round asks for a full page while emitting only the
|
|
61
|
+
* remainder, so it does not crawl in tiny requests
|
|
62
|
+
*/
|
|
63
|
+
export declare function mergeSources(sources: HistorySource[], limit: number, previous: Pick<CursorState, "s" | "b"> | undefined, ctx: SourceContext, pageSize?: number): Promise<MergeResult>;
|