@one-source/api-mcp 5.1.1 → 5.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 +15 -2
- package/README.npm.md +15 -2
- package/README.repo.md +15 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +17 -6
- package/dist/client.js.map +1 -1
- package/dist/tools/chain/block-by-number.d.ts.map +1 -1
- package/dist/tools/chain/block-by-number.js +3 -6
- package/dist/tools/chain/block-by-number.js.map +1 -1
- package/dist/tools/chain/estimate-gas.js +2 -2
- package/dist/tools/chain/estimate-gas.js.map +1 -1
- package/dist/tools/chain/payment-mode.d.ts +3 -0
- package/dist/tools/chain/payment-mode.d.ts.map +1 -0
- package/dist/tools/chain/payment-mode.js +54 -0
- package/dist/tools/chain/payment-mode.js.map +1 -0
- package/dist/tools/chain/simulate-call.js +3 -3
- package/dist/tools/chain/simulate-call.js.map +1 -1
- package/dist/tools/chain/storage-read.js +3 -3
- package/dist/tools/chain/storage-read.js.map +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +3 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/live/erc20-transfers.d.ts.map +1 -1
- package/dist/tools/live/erc20-transfers.js +5 -4
- package/dist/tools/live/erc20-transfers.js.map +1 -1
- package/dist/tools/live/events.d.ts.map +1 -1
- package/dist/tools/live/events.js +5 -4
- package/dist/tools/live/events.js.map +1 -1
- package/dist/types.d.ts +11 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +17 -0
- package/dist/types.js.map +1 -1
- package/dist/x402.d.ts +20 -0
- package/dist/x402.d.ts.map +1 -1
- package/dist/x402.js +112 -11
- package/dist/x402.js.map +1 -1
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# onesource-api-mcp
|
|
2
2
|
|
|
3
|
-
MCP server for OneSource blockchain data.
|
|
3
|
+
MCP server for OneSource blockchain data. 26 named tools for balances, NFTs, transactions, events, and live chain queries via API key or x402 micropayments.
|
|
4
4
|
|
|
5
5
|
```
|
|
6
6
|
npx onesource-api-mcp
|
|
@@ -23,7 +23,7 @@ claude mcp add onesource-api -- npx onesource-api-mcp
|
|
|
23
23
|
}
|
|
24
24
|
```
|
|
25
25
|
|
|
26
|
-
## Tools (
|
|
26
|
+
## Tools (26)
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
### Live Chain Data (12 tools)
|
|
@@ -62,6 +62,12 @@ claude mcp add onesource-api -- npx onesource-api-mcp
|
|
|
62
62
|
| `1s_storage_read` | Read storage slot |
|
|
63
63
|
| `1s_tx_receipt` | Transaction receipt |
|
|
64
64
|
|
|
65
|
+
### Session (1 tool)
|
|
66
|
+
|
|
67
|
+
| Tool | Description |
|
|
68
|
+
|------|-------------|
|
|
69
|
+
| `1s_payment_mode` | View or switch the x402 payment scheme (`exact` per-call vs `batch` payment channel) |
|
|
70
|
+
|
|
65
71
|
|
|
66
72
|
## Networks
|
|
67
73
|
|
|
@@ -109,6 +115,8 @@ Set `X402_PRIVATE_KEY` to a funded EVM wallet key. The server automatically sign
|
|
|
109
115
|
X402_PRIVATE_KEY=your-private-key-hex npx onesource-api-mcp
|
|
110
116
|
```
|
|
111
117
|
|
|
118
|
+
Payments default to the **exact** scheme (one USDC payment per call). For a burst of calls you can switch to **batch** settlement — a payment channel that funds many off-chain calls from a single on-chain deposit, settled with one claim — by calling the `1s_payment_mode` tool with `{ "mode": "batch" }`, or by setting `X402_PAYMENT_MODE=batch`. Both modes use the same wallet.
|
|
119
|
+
|
|
112
120
|
### No auth
|
|
113
121
|
|
|
114
122
|
Without either variable, tools work for free endpoints. Paid endpoints return 402 errors with a descriptive message.
|
|
@@ -121,6 +129,11 @@ Without either variable, tools work for free endpoints. Paid endpoints return 40
|
|
|
121
129
|
| `ONESOURCE_API_KEY` | — | OneSource API key. Sent as `Authorization: Bearer <key>`. Takes priority over x402. |
|
|
122
130
|
| `ONESOURCE_BASE_URL` | `https://skills.onesource.io` | Skills API endpoint |
|
|
123
131
|
| `X402_PRIVATE_KEY` | — | EVM private key (hex, with or without 0x prefix) for automatic x402 USDC payments on Base |
|
|
132
|
+
| `X402_PAYMENT_MODE` | `exact` | Initial x402 scheme: `exact` (per-call) or `batch` (payment channel). Switch in-session with the `1s_payment_mode` tool. |
|
|
133
|
+
| `X402_RPC_URL` | Base default | Base RPC endpoint used to submit channel deposits in batch mode |
|
|
134
|
+
| `X402_CHANNEL_DIR` | — | Directory to persist batch channel state across restarts. Unset = in-memory (channel lost on restart). |
|
|
135
|
+
| `X402_DEPOSIT_MULTIPLIER` | `5` | Batch mode: deposit = price × this multiplier, funding that many calls per channel |
|
|
136
|
+
| `X402_CHANNEL_SALT` | zero | Batch mode: 32-byte hex salt to derive a distinct channel id |
|
|
124
137
|
|
|
125
138
|
|
|
126
139
|
## License
|
package/README.npm.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# onesource-api-mcp
|
|
2
2
|
|
|
3
|
-
MCP server for OneSource blockchain data.
|
|
3
|
+
MCP server for OneSource blockchain data. 26 named tools for balances, NFTs, transactions, events, and live chain queries via API key or x402 micropayments.
|
|
4
4
|
|
|
5
5
|
```
|
|
6
6
|
npx onesource-api-mcp
|
|
@@ -23,7 +23,7 @@ claude mcp add onesource-api -- npx onesource-api-mcp
|
|
|
23
23
|
}
|
|
24
24
|
```
|
|
25
25
|
|
|
26
|
-
## Tools (
|
|
26
|
+
## Tools (26)
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
### Live Chain Data (12 tools)
|
|
@@ -62,6 +62,12 @@ claude mcp add onesource-api -- npx onesource-api-mcp
|
|
|
62
62
|
| `1s_storage_read` | Read storage slot |
|
|
63
63
|
| `1s_tx_receipt` | Transaction receipt |
|
|
64
64
|
|
|
65
|
+
### Session (1 tool)
|
|
66
|
+
|
|
67
|
+
| Tool | Description |
|
|
68
|
+
|------|-------------|
|
|
69
|
+
| `1s_payment_mode` | View or switch the x402 payment scheme (`exact` per-call vs `batch` payment channel) |
|
|
70
|
+
|
|
65
71
|
|
|
66
72
|
## Networks
|
|
67
73
|
|
|
@@ -109,6 +115,8 @@ Set `X402_PRIVATE_KEY` to a funded EVM wallet key. The server automatically sign
|
|
|
109
115
|
X402_PRIVATE_KEY=your-private-key-hex npx onesource-api-mcp
|
|
110
116
|
```
|
|
111
117
|
|
|
118
|
+
Payments default to the **exact** scheme (one USDC payment per call). For a burst of calls you can switch to **batch** settlement — a payment channel that funds many off-chain calls from a single on-chain deposit, settled with one claim — by calling the `1s_payment_mode` tool with `{ "mode": "batch" }`, or by setting `X402_PAYMENT_MODE=batch`. Both modes use the same wallet.
|
|
119
|
+
|
|
112
120
|
### No auth
|
|
113
121
|
|
|
114
122
|
Without either variable, tools work for free endpoints. Paid endpoints return 402 errors with a descriptive message.
|
|
@@ -121,6 +129,11 @@ Without either variable, tools work for free endpoints. Paid endpoints return 40
|
|
|
121
129
|
| `ONESOURCE_API_KEY` | — | OneSource API key. Sent as `Authorization: Bearer <key>`. Takes priority over x402. |
|
|
122
130
|
| `ONESOURCE_BASE_URL` | `https://skills.onesource.io` | Skills API endpoint |
|
|
123
131
|
| `X402_PRIVATE_KEY` | — | EVM private key (hex, with or without 0x prefix) for automatic x402 USDC payments on Base |
|
|
132
|
+
| `X402_PAYMENT_MODE` | `exact` | Initial x402 scheme: `exact` (per-call) or `batch` (payment channel). Switch in-session with the `1s_payment_mode` tool. |
|
|
133
|
+
| `X402_RPC_URL` | Base default | Base RPC endpoint used to submit channel deposits in batch mode |
|
|
134
|
+
| `X402_CHANNEL_DIR` | — | Directory to persist batch channel state across restarts. Unset = in-memory (channel lost on restart). |
|
|
135
|
+
| `X402_DEPOSIT_MULTIPLIER` | `5` | Batch mode: deposit = price × this multiplier, funding that many calls per channel |
|
|
136
|
+
| `X402_CHANNEL_SALT` | zero | Batch mode: 32-byte hex salt to derive a distinct channel id |
|
|
124
137
|
|
|
125
138
|
|
|
126
139
|
## License
|
package/README.repo.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# onesource-api-mcp
|
|
2
2
|
|
|
3
|
-
MCP server for OneSource blockchain data.
|
|
3
|
+
MCP server for OneSource blockchain data. 26 named tools for balances, NFTs, transactions, events, and live chain queries via API key or x402 micropayments.
|
|
4
4
|
|
|
5
5
|
```
|
|
6
6
|
npx onesource-api-mcp
|
|
@@ -23,7 +23,7 @@ claude mcp add onesource-api -- npx onesource-api-mcp
|
|
|
23
23
|
}
|
|
24
24
|
```
|
|
25
25
|
|
|
26
|
-
## Tools (
|
|
26
|
+
## Tools (26)
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
### Live Chain Data (12 tools)
|
|
@@ -62,6 +62,12 @@ claude mcp add onesource-api -- npx onesource-api-mcp
|
|
|
62
62
|
| `1s_storage_read` | Read storage slot |
|
|
63
63
|
| `1s_tx_receipt` | Transaction receipt |
|
|
64
64
|
|
|
65
|
+
### Session (1 tool)
|
|
66
|
+
|
|
67
|
+
| Tool | Description |
|
|
68
|
+
|------|-------------|
|
|
69
|
+
| `1s_payment_mode` | View or switch the x402 payment scheme (`exact` per-call vs `batch` payment channel) |
|
|
70
|
+
|
|
65
71
|
|
|
66
72
|
## Networks
|
|
67
73
|
|
|
@@ -109,6 +115,8 @@ Set `X402_PRIVATE_KEY` to a funded EVM wallet key. The server automatically sign
|
|
|
109
115
|
X402_PRIVATE_KEY=your-private-key-hex npx onesource-api-mcp
|
|
110
116
|
```
|
|
111
117
|
|
|
118
|
+
Payments default to the **exact** scheme (one USDC payment per call). For a burst of calls you can switch to **batch** settlement — a payment channel that funds many off-chain calls from a single on-chain deposit, settled with one claim — by calling the `1s_payment_mode` tool with `{ "mode": "batch" }`, or by setting `X402_PAYMENT_MODE=batch`. Both modes use the same wallet.
|
|
119
|
+
|
|
112
120
|
### No auth
|
|
113
121
|
|
|
114
122
|
Without either variable, tools work for free endpoints. Paid endpoints return 402 errors with a descriptive message.
|
|
@@ -121,6 +129,11 @@ Without either variable, tools work for free endpoints. Paid endpoints return 40
|
|
|
121
129
|
| `ONESOURCE_API_KEY` | — | OneSource API key. Sent as `Authorization: Bearer <key>`. Takes priority over x402. |
|
|
122
130
|
| `ONESOURCE_BASE_URL` | `https://skills.onesource.io` | Skills API endpoint |
|
|
123
131
|
| `X402_PRIVATE_KEY` | — | EVM private key (hex, with or without 0x prefix) for automatic x402 USDC payments on Base |
|
|
132
|
+
| `X402_PAYMENT_MODE` | `exact` | Initial x402 scheme: `exact` (per-call) or `batch` (payment channel). Switch in-session with the `1s_payment_mode` tool. |
|
|
133
|
+
| `X402_RPC_URL` | Base default | Base RPC endpoint used to submit channel deposits in batch mode |
|
|
134
|
+
| `X402_CHANNEL_DIR` | — | Directory to persist batch channel state across restarts. Unset = in-memory (channel lost on restart). |
|
|
135
|
+
| `X402_DEPOSIT_MULTIPLIER` | `5` | Batch mode: deposit = price × this multiplier, funding that many calls per channel |
|
|
136
|
+
| `X402_CHANNEL_SALT` | zero | Batch mode: 32-byte hex salt to derive a distinct channel id |
|
|
124
137
|
| `ONESOURCE_ANALYTICS` | `true` | Set `false` to disable all analytics |
|
|
125
138
|
| `ONESOURCE_ANALYTICS_URL` | `https://1s-analytics.vercel.app` | Dashboard endpoint for event ingestion (baked in by default) |
|
|
126
139
|
| `X402_ANALYTICS_KEY` | `onesource-api-mcp` | Bearer token for the analytics dashboard (baked in by default) |
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,QAAQ,CAA6B;IAE7C,6DAA6D;IAC7D,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;gBAEjC,IAAI,EAAE,aAAa;IAY/B;;;;OAIG;IACH,WAAW,CAAC,GAAG,EAAE,WAAW,GAAG,eAAe;IAO9C;;OAEG;IACG,GAAG,CAAC,CAAC,GAAG,OAAO,EACnB,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,GACnD,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAS1B;;OAEG;IACG,IAAI,CAAC,CAAC,GAAG,OAAO,EACpB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,GACnD,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAUZ,gBAAgB;IAoB9B,OAAO,CAAC,QAAQ;IAehB,OAAO,CAAC,OAAO;YAQD,cAAc;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,QAAQ,CAA6B;IAE7C,6DAA6D;IAC7D,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;gBAEjC,IAAI,EAAE,aAAa;IAY/B;;;;OAIG;IACH,WAAW,CAAC,GAAG,EAAE,WAAW,GAAG,eAAe;IAO9C;;OAEG;IACG,GAAG,CAAC,CAAC,GAAG,OAAO,EACnB,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,GACnD,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAS1B;;OAEG;IACG,IAAI,CAAC,CAAC,GAAG,OAAO,EACpB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,GACnD,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAUZ,gBAAgB;IAoB9B,OAAO,CAAC,QAAQ;IAehB,OAAO,CAAC,OAAO;YAQD,cAAc;CAkE7B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,eAAe,CAQhH"}
|
package/dist/client.js
CHANGED
|
@@ -99,18 +99,29 @@ export class OneSourceClient {
|
|
|
99
99
|
error: 'Access denied (403): your API key does not have access to this endpoint. A developer plan is required — upgrade at app.onesource.io',
|
|
100
100
|
};
|
|
101
101
|
}
|
|
102
|
-
//
|
|
102
|
+
// Payment required. The Skills gateway advertises two payment protocols
|
|
103
|
+
// on every paid route: x402 (USDC on Base, via the Payment-Required
|
|
104
|
+
// header) and MPP (Tempo USDC.e or pathUSD, via RFC 7235
|
|
105
|
+
// WWW-Authenticate: Payment). This MCP only auto-pays x402 when
|
|
106
|
+
// X402_PRIVATE_KEY is set; MPP requires an MPP-aware client today
|
|
107
|
+
// (e.g. the agentcash MCP).
|
|
103
108
|
if (res.status === 402) {
|
|
104
109
|
if (this._apiKey) {
|
|
105
110
|
return {
|
|
106
111
|
error: 'Payment required (402): your API key was not accepted. Check that your key is valid and your plan is active at app.onesource.io',
|
|
107
112
|
};
|
|
108
113
|
}
|
|
109
|
-
const
|
|
110
|
-
const
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
+
const x402Header = res.headers.get('Payment-Required');
|
|
115
|
+
const mppHeader = res.headers.get('WWW-Authenticate');
|
|
116
|
+
const parts = [
|
|
117
|
+
'Payment required (402). This endpoint accepts x402 (USDC on Base) or MPP (Tempo USDC.e / pathUSD).',
|
|
118
|
+
'To auto-pay x402 from this MCP, set X402_PRIVATE_KEY. For MPP, use an MPP-aware client such as the agentcash MCP.',
|
|
119
|
+
];
|
|
120
|
+
if (x402Header)
|
|
121
|
+
parts.push(`x402: ${x402Header.slice(0, 200)}`);
|
|
122
|
+
if (mppHeader)
|
|
123
|
+
parts.push(`mpp: ${mppHeader.slice(0, 200)}`);
|
|
124
|
+
return { error: parts.join(' ') };
|
|
114
125
|
}
|
|
115
126
|
// Parse response body safely — upstream may return HTML error pages or empty bodies
|
|
116
127
|
let body;
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AA4BA,MAAM,OAAO,eAAe;IAClB,OAAO,CAAS;IAChB,MAAM,CAA0B;IAChC,OAAO,CAAU;IACjB,QAAQ,GAAgB,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IAE7C,6DAA6D;IAC7D,WAAW,CAAkC;IAE7C,YAAY,IAAmB;QAC7B,uBAAuB;QACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC;QAC7C,+EAA+E;QAC/E,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC;QACjD,IAAI,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QAC3E,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACH,WAAW,CAAC,GAAgB;QAC1B,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACvG,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAC;QACrB,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CACP,IAAY,EACZ,MAAoD;QAEpD,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACxC,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE;YACrE,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;SACxB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,cAAc,CAAI,GAAG,EAAE,SAAS,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CACR,IAAY,EACZ,IAA6B,EAC7B,MAAoD;QAEpD,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACxC,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE;YACrE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAClE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,cAAc,CAAI,GAAG,EAAE,SAAS,CAAC,CAAC;IAChD,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAC5B,GAAW,EACX,IAAiB;QAEjB,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAChC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACzC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;QACnE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC;YACxD,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI;gBACxB,WAAW,EAAE,CAAC;gBACd,kBAAkB,EAAE,SAAS;gBAC7B,aAAa,EAAE,KAAK;aACrB,CAAC,CAAC;YACH,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAEO,QAAQ,CACd,IAAY,EACZ,MAAoD;QAEpD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI,MAAM,EAAE,CAAC;YACX,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;oBACxC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC3C,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAEO,OAAO;QACb,MAAM,CAAC,GAA2B,EAAE,YAAY,EAAE,mBAAmB,EAAE,CAAC;QACxE,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,CAAC,CAAC,eAAe,CAAC,GAAG,UAAU,IAAI,CAAC,OAAO,EAAE,CAAC;QAChD,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAEO,KAAK,CAAC,cAAc,CAAI,GAAa,EAAE,SAAiB;QAC9D,+BAA+B;QAC/B,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI;YACxB,WAAW,EAAE,GAAG,CAAC,MAAM;YACvB,kBAAkB,EAAE,SAAS;YAC7B,aAAa,EAAE,GAAG,CAAC,MAAM,KAAK,GAAG;SAClC,CAAC,CAAC;QAEH,oEAAoE;QACpE,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACvB,OAAO;gBACL,KAAK,EAAE,qIAAqI;aAC7I,CAAC;QACJ,CAAC;QAED,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block-by-number.d.ts","sourceRoot":"","sources":["../../../src/tools/chain/block-by-number.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"block-by-number.d.ts","sourceRoot":"","sources":["../../../src/tools/chain/block-by-number.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAG9C,eAAO,MAAM,IAAI,EAAE,OAkBlB,CAAC"}
|
|
@@ -1,14 +1,11 @@
|
|
|
1
|
-
import { networkParam, formatResponse, safePath } from '../../types.js';
|
|
2
|
-
import { z } from 'zod';
|
|
1
|
+
import { networkParam, blockTagParam, formatResponse, safePath } from '../../types.js';
|
|
3
2
|
export const tool = {
|
|
4
3
|
name: '1s_block_by_number',
|
|
5
4
|
description: 'Get full block details by block number via RPC. Returns transactions, gas used, miner, timestamp, and other header fields. ' +
|
|
6
|
-
'Accepts decimal (e.g. "21000000")
|
|
5
|
+
'Accepts decimal (e.g. "21000000"), hex (e.g. "0x1406F40"), or a named tag ("latest", "pending", "earliest", "safe", "finalized").',
|
|
7
6
|
category: 'chain',
|
|
8
7
|
schema: {
|
|
9
|
-
number:
|
|
10
|
-
.string()
|
|
11
|
-
.describe('Block number — decimal (e.g. "21000000") or hex (e.g. "0x1406F40")'),
|
|
8
|
+
number: blockTagParam.describe('Block number — decimal (e.g. "21000000"), hex (e.g. "0x1406F40"), or named tag ("latest", "pending", etc.)'),
|
|
12
9
|
network: networkParam,
|
|
13
10
|
},
|
|
14
11
|
handler: async (input, client) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block-by-number.js","sourceRoot":"","sources":["../../../src/tools/chain/block-by-number.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"block-by-number.js","sourceRoot":"","sources":["../../../src/tools/chain/block-by-number.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEvF,MAAM,CAAC,MAAM,IAAI,GAAY;IAC3B,IAAI,EAAE,oBAAoB;IAC1B,WAAW,EACT,6HAA6H;QAC7H,mIAAmI;IACrI,QAAQ,EAAE,OAAO;IACjB,MAAM,EAAE;QACN,MAAM,EAAE,aAAa,CAAC,QAAQ,CAC5B,4GAA4G,CAC7G;QACD,OAAO,EAAE,YAAY;KACtB;IACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAC/B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,oBAAoB,QAAQ,CAAC,KAAK,CAAC,MAAgB,CAAC,EAAE,EAAE;YACnF,OAAO,EAAE,KAAK,CAAC,OAA6B;SAC7C,CAAC,CAAC;QACH,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;CACF,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { networkParam, addressParam, formatResponse, optionalHexParam } from '../../types.js';
|
|
1
|
+
import { networkParam, addressParam, formatResponse, optionalHexParam, optionalUintParam } from '../../types.js';
|
|
2
2
|
export const tool = {
|
|
3
3
|
name: '1s_estimate_gas',
|
|
4
4
|
description: 'Estimate gas required for a transaction via eth_estimateGas. ' +
|
|
@@ -9,7 +9,7 @@ export const tool = {
|
|
|
9
9
|
to: addressParam,
|
|
10
10
|
data: optionalHexParam.describe('ABI-encoded call data (hex)'),
|
|
11
11
|
from: addressParam.optional().describe('Sender address'),
|
|
12
|
-
value:
|
|
12
|
+
value: optionalUintParam.describe('ETH value in wei — decimal or hex'),
|
|
13
13
|
network: networkParam,
|
|
14
14
|
},
|
|
15
15
|
handler: async (input, client) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"estimate-gas.js","sourceRoot":"","sources":["../../../src/tools/chain/estimate-gas.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"estimate-gas.js","sourceRoot":"","sources":["../../../src/tools/chain/estimate-gas.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEjH,MAAM,CAAC,MAAM,IAAI,GAAY;IAC3B,IAAI,EAAE,iBAAiB;IACvB,WAAW,EACT,+DAA+D;QAC/D,sEAAsE;QACtE,6EAA6E;IAC/E,QAAQ,EAAE,OAAO;IACjB,MAAM,EAAE;QACN,EAAE,EAAE,YAAY;QAChB,IAAI,EAAE,gBAAgB,CAAC,QAAQ,CAAC,6BAA6B,CAAC;QAC9D,IAAI,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QACxD,KAAK,EAAE,iBAAiB,CAAC,QAAQ,CAAC,mCAAmC,CAAC;QACtE,OAAO,EAAE,YAAY;KACtB;IACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAC/B,MAAM,IAAI,GAA4B;YACpC,EAAE,EAAE,KAAK,CAAC,EAAE;SACb,CAAC;QACF,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;YAAE,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACrD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;YAAE,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACrD,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;YAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAExD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,IAAI,EAAE;YAC7D,OAAO,EAAE,KAAK,CAAC,OAA6B;SAC7C,CAAC,CAAC;QACH,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payment-mode.d.ts","sourceRoot":"","sources":["../../../src/tools/chain/payment-mode.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAoB9C,eAAO,MAAM,IAAI,EAAE,OA2ClB,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 1s_payment_mode — view or switch the x402 payment scheme for this session.
|
|
3
|
+
*/
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
import { getPaymentModeInfo, setPaymentMode } from '../../x402.js';
|
|
6
|
+
function describe(mode, address) {
|
|
7
|
+
const wallet = address ? ` Paying wallet: ${address}.` : '';
|
|
8
|
+
if (mode === 'batch') {
|
|
9
|
+
return (`Payment mode: batch (payment channel).${wallet} ` +
|
|
10
|
+
'The first paid call opens a channel with one on-chain deposit (price × deposit multiplier); ' +
|
|
11
|
+
'subsequent calls are signed off-chain as cumulative vouchers and settled together with a single claim. ' +
|
|
12
|
+
'Best for a burst of calls. Switching back to exact leaves any unspent channel balance locked until the on-chain withdraw delay (~1 day on mainnet).');
|
|
13
|
+
}
|
|
14
|
+
return (`Payment mode: exact (per-call).${wallet} ` +
|
|
15
|
+
'Each paid call signs and settles one USDC payment on Base. ' +
|
|
16
|
+
'Switch to batch with { "mode": "batch" } to open a payment channel — cheaper for many calls in a session.');
|
|
17
|
+
}
|
|
18
|
+
export const tool = {
|
|
19
|
+
name: '1s_payment_mode',
|
|
20
|
+
description: 'View or switch how this session pays for x402 calls. ' +
|
|
21
|
+
'Two schemes: "exact" (default) signs one USDC payment per call; ' +
|
|
22
|
+
'"batch" opens a payment channel — one on-chain deposit funds many off-chain calls, settled with a single claim (cheaper for a burst of calls, but locks the deposit residual until an on-chain withdraw delay). ' +
|
|
23
|
+
'Both use the same wallet. Call with no arguments to see the current mode. ' +
|
|
24
|
+
'Only applies when paying via x402 (X402_PRIVATE_KEY set); with an API key, calls are covered by your plan.',
|
|
25
|
+
category: 'chain',
|
|
26
|
+
schema: {
|
|
27
|
+
mode: z
|
|
28
|
+
.enum(['exact', 'batch'])
|
|
29
|
+
.optional()
|
|
30
|
+
.describe('Payment scheme to switch to. Omit to report the current mode without changing it.'),
|
|
31
|
+
},
|
|
32
|
+
handler: async (input) => {
|
|
33
|
+
const requested = input.mode;
|
|
34
|
+
const before = getPaymentModeInfo();
|
|
35
|
+
if (!before.enabled) {
|
|
36
|
+
return ('x402 payment is not active in this session, so there is no payment scheme to switch. ' +
|
|
37
|
+
'Payment mode (exact vs batch) only applies when paying per-call via x402 — set X402_PRIVATE_KEY to a funded Base wallet. ' +
|
|
38
|
+
'With an API key (ONESOURCE_API_KEY), calls are covered by your plan and no x402 payment is made.');
|
|
39
|
+
}
|
|
40
|
+
if (requested) {
|
|
41
|
+
const applied = setPaymentMode(requested);
|
|
42
|
+
if (requested === 'batch' && !before.batchAvailable) {
|
|
43
|
+
return (`Batch mode is unavailable in this session — the channel scheme failed to initialise — so the mode stays "${applied}". ` +
|
|
44
|
+
'Check X402_RPC_URL and X402_CHANNEL_SALT, then restart the server.');
|
|
45
|
+
}
|
|
46
|
+
if (applied === requested) {
|
|
47
|
+
return `Switched to ${applied} mode. ${describe(applied, before.address)}`;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
const info = getPaymentModeInfo();
|
|
51
|
+
return describe(info.mode, info.address);
|
|
52
|
+
},
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=payment-mode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payment-mode.js","sourceRoot":"","sources":["../../../src/tools/chain/payment-mode.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAoB,MAAM,eAAe,CAAC;AAErF,SAAS,QAAQ,CAAC,IAAiB,EAAE,OAAgB;IACnD,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,mBAAmB,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5D,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,OAAO,CACL,yCAAyC,MAAM,GAAG;YAClD,8FAA8F;YAC9F,yGAAyG;YACzG,qJAAqJ,CACtJ,CAAC;IACJ,CAAC;IACD,OAAO,CACL,kCAAkC,MAAM,GAAG;QAC3C,6DAA6D;QAC7D,2GAA2G,CAC5G,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,IAAI,GAAY;IAC3B,IAAI,EAAE,iBAAiB;IACvB,WAAW,EACT,uDAAuD;QACvD,kEAAkE;QAClE,kNAAkN;QAClN,4EAA4E;QAC5E,4GAA4G;IAC9G,QAAQ,EAAE,OAAO;IACjB,MAAM,EAAE;QACN,IAAI,EAAE,CAAC;aACJ,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;aACxB,QAAQ,EAAE;aACV,QAAQ,CAAC,mFAAmF,CAAC;KACjG;IACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QACvB,MAAM,SAAS,GAAG,KAAK,CAAC,IAA+B,CAAC;QACxD,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;QAEpC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,CACL,uFAAuF;gBACvF,2HAA2H;gBAC3H,kGAAkG,CACnG,CAAC;QACJ,CAAC;QAED,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,OAAO,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;YAC1C,IAAI,SAAS,KAAK,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;gBACpD,OAAO,CACL,4GAA4G,OAAO,KAAK;oBACxH,oEAAoE,CACrE,CAAC;YACJ,CAAC;YACD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,OAAO,eAAe,OAAO,UAAU,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7E,CAAC;QACH,CAAC;QAED,MAAM,IAAI,GAAG,kBAAkB,EAAE,CAAC;QAClC,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;CACF,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { networkParam, addressParam, formatResponse, hexDataParam,
|
|
1
|
+
import { networkParam, addressParam, formatResponse, hexDataParam, optionalUintParam } from '../../types.js';
|
|
2
2
|
export const tool = {
|
|
3
3
|
name: '1s_simulate_call',
|
|
4
4
|
description: 'Simulate a contract call via eth_call without sending a transaction. ' +
|
|
@@ -9,8 +9,8 @@ export const tool = {
|
|
|
9
9
|
to: addressParam.describe('Target contract address'),
|
|
10
10
|
data: hexDataParam.describe('ABI-encoded call data (hex)'),
|
|
11
11
|
from: addressParam.optional().describe('Sender address for msg.sender context'),
|
|
12
|
-
value:
|
|
13
|
-
gas:
|
|
12
|
+
value: optionalUintParam.describe('ETH value in wei — decimal or hex'),
|
|
13
|
+
gas: optionalUintParam.describe('Gas limit — decimal or hex'),
|
|
14
14
|
network: networkParam,
|
|
15
15
|
},
|
|
16
16
|
handler: async (input, client) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simulate-call.js","sourceRoot":"","sources":["../../../src/tools/chain/simulate-call.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"simulate-call.js","sourceRoot":"","sources":["../../../src/tools/chain/simulate-call.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAE7G,MAAM,CAAC,MAAM,IAAI,GAAY;IAC3B,IAAI,EAAE,kBAAkB;IACxB,WAAW,EACT,uEAAuE;QACvE,6FAA6F;QAC7F,8CAA8C;IAChD,QAAQ,EAAE,OAAO;IACjB,MAAM,EAAE;QACN,EAAE,EAAE,YAAY,CAAC,QAAQ,CAAC,yBAAyB,CAAC;QACpD,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC,6BAA6B,CAAC;QAC1D,IAAI,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;QAC/E,KAAK,EAAE,iBAAiB,CAAC,QAAQ,CAAC,mCAAmC,CAAC;QACtE,GAAG,EAAE,iBAAiB,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QAC7D,OAAO,EAAE,YAAY;KACtB;IACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAC/B,MAAM,IAAI,GAA4B;YACpC,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,IAAI,EAAE,KAAK,CAAC,IAAI;SACjB,CAAC;QACF,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;YAAE,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACrD,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;YAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QACxD,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS;YAAE,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;QAElD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,EAAE;YACrD,OAAO,EAAE,KAAK,CAAC,OAA6B;SAC7C,CAAC,CAAC;QACH,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;CACF,CAAC"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { networkParam, addressParam, formatResponse,
|
|
1
|
+
import { networkParam, addressParam, formatResponse, uintParam } from '../../types.js';
|
|
2
2
|
export const tool = {
|
|
3
3
|
name: '1s_storage_read',
|
|
4
4
|
description: 'Read a raw storage slot from a contract via eth_getStorageAt. ' +
|
|
5
5
|
'Use this for low-level state inspection (e.g. reading proxy implementation slots, packed storage). ' +
|
|
6
|
-
'Slot
|
|
6
|
+
'Slot accepts decimal (e.g. "0") or hex (e.g. "0x0").',
|
|
7
7
|
category: 'chain',
|
|
8
8
|
schema: {
|
|
9
9
|
contract: addressParam.describe('Contract address to read from'),
|
|
10
|
-
slot:
|
|
10
|
+
slot: uintParam.describe('Storage slot — decimal (e.g. "0") or hex (e.g. "0x0")'),
|
|
11
11
|
network: networkParam,
|
|
12
12
|
},
|
|
13
13
|
handler: async (input, client) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage-read.js","sourceRoot":"","sources":["../../../src/tools/chain/storage-read.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"storage-read.js","sourceRoot":"","sources":["../../../src/tools/chain/storage-read.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEvF,MAAM,CAAC,MAAM,IAAI,GAAY;IAC3B,IAAI,EAAE,iBAAiB;IACvB,WAAW,EACT,gEAAgE;QAChE,qGAAqG;QACrG,sDAAsD;IACxD,QAAQ,EAAE,OAAO;IACjB,MAAM,EAAE;QACN,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,+BAA+B,CAAC;QAChE,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,uDAAuD,CAAC;QACjF,OAAO,EAAE,YAAY;KACtB;IACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAC/B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE;YACjD,QAAQ,EAAE,KAAK,CAAC,QAAkB;YAClC,IAAI,EAAE,KAAK,CAAC,IAAc;YAC1B,OAAO,EAAE,KAAK,CAAC,OAA6B;SAC7C,CAAC,CAAC;QACH,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAgC3C,eAAO,MAAM,QAAQ,EAAE,OAAO,EA8B7B,CAAC"}
|
package/dist/tools/index.js
CHANGED
|
@@ -11,7 +11,7 @@ import { tool as nftMetadataLive } from './live/nft-metadata.js';
|
|
|
11
11
|
import { tool as nftOwnerLive } from './live/nft-owner.js';
|
|
12
12
|
import { tool as totalSupplyLive } from './live/total-supply.js';
|
|
13
13
|
import { tool as txDetailsLive } from './live/tx-details.js';
|
|
14
|
-
// --- Chain utilities (
|
|
14
|
+
// --- Chain utilities (14 tools) ---
|
|
15
15
|
import { tool as blockByNumber } from './chain/block-by-number.js';
|
|
16
16
|
import { tool as blockNumber } from './chain/block-number.js';
|
|
17
17
|
import { tool as chainId } from './chain/chain-id.js';
|
|
@@ -20,6 +20,7 @@ import { tool as ensResolve } from './chain/ens-resolve.js';
|
|
|
20
20
|
import { tool as estimateGas } from './chain/estimate-gas.js';
|
|
21
21
|
import { tool as networkInfo } from './chain/network-info.js';
|
|
22
22
|
import { tool as nonce } from './chain/nonce.js';
|
|
23
|
+
import { tool as paymentMode } from './chain/payment-mode.js';
|
|
23
24
|
import { tool as pendingBlock } from './chain/pending-block.js';
|
|
24
25
|
import { tool as proxyDetect } from './chain/proxy-detect.js';
|
|
25
26
|
import { tool as simulateCall } from './chain/simulate-call.js';
|
|
@@ -48,6 +49,7 @@ export const allTools = [
|
|
|
48
49
|
estimateGas,
|
|
49
50
|
networkInfo,
|
|
50
51
|
nonce,
|
|
52
|
+
paymentMode,
|
|
51
53
|
pendingBlock,
|
|
52
54
|
proxyDetect,
|
|
53
55
|
simulateCall,
|
package/dist/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAMA,qCAAqC;AACrC,OAAO,EAAE,IAAI,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,IAAI,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,IAAI,IAAI,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,IAAI,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,IAAI,IAAI,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,IAAI,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,IAAI,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,IAAI,IAAI,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,IAAI,IAAI,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,IAAI,IAAI,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,IAAI,IAAI,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE7D,qCAAqC;AACrC,OAAO,EAAE,IAAI,IAAI,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,IAAI,IAAI,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,IAAI,IAAI,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,IAAI,IAAI,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,IAAI,IAAI,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,IAAI,IAAI,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAE1D,MAAM,CAAC,MAAM,QAAQ,GAAc;IACjC,kBAAkB;IAClB,aAAa;IACb,gBAAgB;IAChB,kBAAkB;IAClB,gBAAgB;IAChB,kBAAkB;IAClB,gBAAgB;IAChB,UAAU;IACV,gBAAgB;IAChB,eAAe;IACf,YAAY;IACZ,eAAe;IACf,aAAa;IAEb,kBAAkB;IAClB,aAAa;IACb,WAAW;IACX,OAAO;IACP,YAAY;IACZ,UAAU;IACV,WAAW;IACX,WAAW;IACX,KAAK;IACL,YAAY;IACZ,WAAW;IACX,YAAY;IACZ,WAAW;IACX,SAAS;CACV,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAMA,qCAAqC;AACrC,OAAO,EAAE,IAAI,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,IAAI,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,IAAI,IAAI,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,IAAI,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,IAAI,IAAI,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,IAAI,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,IAAI,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,IAAI,IAAI,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,IAAI,IAAI,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,IAAI,IAAI,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,IAAI,IAAI,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE7D,qCAAqC;AACrC,OAAO,EAAE,IAAI,IAAI,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,IAAI,IAAI,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,IAAI,IAAI,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,IAAI,IAAI,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,IAAI,IAAI,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,IAAI,IAAI,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAE1D,MAAM,CAAC,MAAM,QAAQ,GAAc;IACjC,kBAAkB;IAClB,aAAa;IACb,gBAAgB;IAChB,kBAAkB;IAClB,gBAAgB;IAChB,kBAAkB;IAClB,gBAAgB;IAChB,UAAU;IACV,gBAAgB;IAChB,eAAe;IACf,YAAY;IACZ,eAAe;IACf,aAAa;IAEb,kBAAkB;IAClB,aAAa;IACb,WAAW;IACX,OAAO;IACP,YAAY;IACZ,UAAU;IACV,WAAW;IACX,WAAW;IACX,KAAK;IACL,WAAW;IACX,YAAY;IACZ,WAAW;IACX,YAAY;IACZ,WAAW;IACX,SAAS;CACV,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"erc20-transfers.d.ts","sourceRoot":"","sources":["../../../src/tools/live/erc20-transfers.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAG9C,eAAO,MAAM,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"erc20-transfers.d.ts","sourceRoot":"","sources":["../../../src/tools/live/erc20-transfers.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAG9C,eAAO,MAAM,IAAI,EAAE,OA2BlB,CAAC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { networkParam, formatResponse, optionalAddressParam,
|
|
1
|
+
import { networkParam, formatResponse, optionalAddressParam, optionalBlockTagParam } from '../../types.js';
|
|
2
2
|
export const tool = {
|
|
3
3
|
name: '1s_erc20_transfers_live',
|
|
4
4
|
description: 'Query ERC20 Transfer(from, to, value) event logs via eth_getLogs directly from the node. ' +
|
|
5
|
-
'Filter by token contract and/or wallet address.
|
|
5
|
+
'Filter by token contract and/or wallet address. ' +
|
|
6
|
+
'Block params accept decimal, hex, or named tags ("latest", "pending", etc.). ' +
|
|
6
7
|
'Returns decoded transfer events with sender, recipient, and value. ' +
|
|
7
8
|
'WARNING: Keep block ranges small (10 blocks or fewer) to avoid huge responses. ' +
|
|
8
9
|
'Omitting from_block/to_block queries only the latest block.',
|
|
@@ -10,8 +11,8 @@ export const tool = {
|
|
|
10
11
|
schema: {
|
|
11
12
|
token: optionalAddressParam.describe('ERC20 token contract address'),
|
|
12
13
|
wallet: optionalAddressParam.describe('Wallet address to filter transfers'),
|
|
13
|
-
from_block:
|
|
14
|
-
to_block:
|
|
14
|
+
from_block: optionalBlockTagParam.describe('Start block — decimal, hex, or named tag'),
|
|
15
|
+
to_block: optionalBlockTagParam.describe('End block — decimal, hex, or named tag'),
|
|
15
16
|
network: networkParam,
|
|
16
17
|
},
|
|
17
18
|
handler: async (input, client) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"erc20-transfers.js","sourceRoot":"","sources":["../../../src/tools/live/erc20-transfers.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,oBAAoB,EAAE,
|
|
1
|
+
{"version":3,"file":"erc20-transfers.js","sourceRoot":"","sources":["../../../src/tools/live/erc20-transfers.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAE3G,MAAM,CAAC,MAAM,IAAI,GAAY;IAC3B,IAAI,EAAE,yBAAyB;IAC/B,WAAW,EACT,2FAA2F;QAC3F,kDAAkD;QAClD,+EAA+E;QAC/E,qEAAqE;QACrE,iFAAiF;QACjF,6DAA6D;IAC/D,QAAQ,EAAE,MAAM;IAChB,MAAM,EAAE;QACN,KAAK,EAAE,oBAAoB,CAAC,QAAQ,CAAC,8BAA8B,CAAC;QACpE,MAAM,EAAE,oBAAoB,CAAC,QAAQ,CAAC,oCAAoC,CAAC;QAC3E,UAAU,EAAE,qBAAqB,CAAC,QAAQ,CAAC,0CAA0C,CAAC;QACtF,QAAQ,EAAE,qBAAqB,CAAC,QAAQ,CAAC,wCAAwC,CAAC;QAClF,OAAO,EAAE,YAAY;KACtB;IACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAC/B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,4BAA4B,EAAE;YACzD,KAAK,EAAE,KAAK,CAAC,KAA2B;YACxC,MAAM,EAAE,KAAK,CAAC,MAA4B;YAC1C,UAAU,EAAE,KAAK,CAAC,UAAgC;YAClD,QAAQ,EAAE,KAAK,CAAC,QAA8B;YAC9C,OAAO,EAAE,KAAK,CAAC,OAA6B;SAC7C,CAAC,CAAC;QACH,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/tools/live/events.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAG9C,eAAO,MAAM,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/tools/live/events.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAG9C,eAAO,MAAM,IAAI,EAAE,OA2BlB,CAAC"}
|
|
@@ -1,17 +1,18 @@
|
|
|
1
|
-
import { networkParam, formatResponse, optionalAddressParam, hexDataParam } from '../../types.js';
|
|
1
|
+
import { networkParam, formatResponse, optionalAddressParam, hexDataParam, optionalBlockTagParam } from '../../types.js';
|
|
2
2
|
export const tool = {
|
|
3
3
|
name: '1s_events_live',
|
|
4
4
|
description: 'Query raw event logs via eth_getLogs directly from the node. ' +
|
|
5
5
|
'Filter by contract address and/or topic0 (keccak256 hash of event signature, e.g. Transfer(address,address,uint256)). ' +
|
|
6
|
-
'Block params
|
|
6
|
+
'Block params accept decimal, hex, or named tags ("latest", "pending", etc.). ' +
|
|
7
|
+
'Returns raw log entries with topics, data, and block context. ' +
|
|
7
8
|
'WARNING: Keep block ranges small (10 blocks or fewer) to avoid huge responses. ' +
|
|
8
9
|
'Always specify a contract address when possible. Omitting from_block/to_block queries only the latest block.',
|
|
9
10
|
category: 'live',
|
|
10
11
|
schema: {
|
|
11
12
|
contract: optionalAddressParam.describe('Contract address to filter'),
|
|
12
13
|
topic: hexDataParam.optional().describe('Event topic0 hash (0x...)'),
|
|
13
|
-
from_block:
|
|
14
|
-
to_block:
|
|
14
|
+
from_block: optionalBlockTagParam.describe('Start block — decimal, hex, or named tag'),
|
|
15
|
+
to_block: optionalBlockTagParam.describe('End block — decimal, hex, or named tag'),
|
|
15
16
|
network: networkParam,
|
|
16
17
|
},
|
|
17
18
|
handler: async (input, client) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/tools/live/events.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/tools/live/events.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,oBAAoB,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAEzH,MAAM,CAAC,MAAM,IAAI,GAAY;IAC3B,IAAI,EAAE,gBAAgB;IACtB,WAAW,EACT,+DAA+D;QAC/D,wHAAwH;QACxH,+EAA+E;QAC/E,gEAAgE;QAChE,iFAAiF;QACjF,8GAA8G;IAChH,QAAQ,EAAE,MAAM;IAChB,MAAM,EAAE;QACN,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QACrE,KAAK,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;QACpE,UAAU,EAAE,qBAAqB,CAAC,QAAQ,CAAC,0CAA0C,CAAC;QACtF,QAAQ,EAAE,qBAAqB,CAAC,QAAQ,CAAC,wCAAwC,CAAC;QAClF,OAAO,EAAE,YAAY;KACtB;IACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAC/B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE;YAChD,QAAQ,EAAE,KAAK,CAAC,QAA8B;YAC9C,KAAK,EAAE,KAAK,CAAC,KAA2B;YACxC,UAAU,EAAE,KAAK,CAAC,UAAgC;YAClD,QAAQ,EAAE,KAAK,CAAC,QAA8B;YAC9C,OAAO,EAAE,KAAK,CAAC,OAA6B;SAC7C,CAAC,CAAC;QACH,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;CACF,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -56,6 +56,17 @@ export declare const hexDataParam: z.ZodString;
|
|
|
56
56
|
* Common parameter: optional hex-encoded data.
|
|
57
57
|
*/
|
|
58
58
|
export declare const optionalHexParam: z.ZodOptional<z.ZodString>;
|
|
59
|
+
/**
|
|
60
|
+
* Common parameter: non-negative integer accepted as decimal or 0x-hex.
|
|
61
|
+
* Use for values like slot, wei amount, gas limit.
|
|
62
|
+
*/
|
|
63
|
+
export declare const uintParam: z.ZodString;
|
|
64
|
+
export declare const optionalUintParam: z.ZodOptional<z.ZodString>;
|
|
65
|
+
/**
|
|
66
|
+
* Common parameter: block identifier. Accepts named tags, decimal, or hex.
|
|
67
|
+
*/
|
|
68
|
+
export declare const blockTagParam: z.ZodString;
|
|
69
|
+
export declare const optionalBlockTagParam: z.ZodOptional<z.ZodString>;
|
|
59
70
|
/**
|
|
60
71
|
* Encode a value for safe interpolation into a URL path segment.
|
|
61
72
|
* Use this for any user-supplied value placed in a URL path.
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,gDAAgD;AAChD,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAErD;;;GAGG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,GAAG,OAAO,IAC/B;IAAE,IAAI,EAAE,CAAC,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAC9D;IAAE,IAAI,CAAC,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC;AAExE;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3B,MAAM,EAAE,CAAC,CAAC,WAAW,CAAC;IACtB,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,eAAe,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACvF;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,2DAKtB,CAAC;AAEJ;;GAEG;AACH,eAAO,MAAM,YAAY,aAGc,CAAC;AAExC;;GAEG;AACH,eAAO,MAAM,oBAAoB,4BAA0B,CAAC;AAE5D;;GAEG;AACH,eAAO,MAAM,WAAW,aAGe,CAAC;AAExC;;GAEG;AACH,eAAO,MAAM,YAAY,aAGe,CAAC;AAEzC;;GAEG;AACH,eAAO,MAAM,YAAY,aAGc,CAAC;AAExC;;GAEG;AACH,eAAO,MAAM,gBAAgB,4BAA0B,CAAC;AAExD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,mFAAmF;AACnF,eAAO,MAAM,kBAAkB,SAAU,CAAC;AAE1C;;;GAGG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,WAAW,GAAG,MAAM,CAoB5D"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,gDAAgD;AAChD,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAErD;;;GAGG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,GAAG,OAAO,IAC/B;IAAE,IAAI,EAAE,CAAC,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAC9D;IAAE,IAAI,CAAC,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC;AAExE;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3B,MAAM,EAAE,CAAC,CAAC,WAAW,CAAC;IACtB,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,eAAe,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACvF;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,2DAKtB,CAAC;AAEJ;;GAEG;AACH,eAAO,MAAM,YAAY,aAGc,CAAC;AAExC;;GAEG;AACH,eAAO,MAAM,oBAAoB,4BAA0B,CAAC;AAE5D;;GAEG;AACH,eAAO,MAAM,WAAW,aAGe,CAAC;AAExC;;GAEG;AACH,eAAO,MAAM,YAAY,aAGe,CAAC;AAEzC;;GAEG;AACH,eAAO,MAAM,YAAY,aAGc,CAAC;AAExC;;GAEG;AACH,eAAO,MAAM,gBAAgB,4BAA0B,CAAC;AAExD;;;GAGG;AACH,eAAO,MAAM,SAAS,aAM8C,CAAC;AAErE,eAAO,MAAM,iBAAiB,4BAAuB,CAAC;AAEtD;;GAEG;AACH,eAAO,MAAM,aAAa,aAQvB,CAAC;AAEJ,eAAO,MAAM,qBAAqB,4BAA2B,CAAC;AAE9D;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,mFAAmF;AACnF,eAAO,MAAM,kBAAkB,SAAU,CAAC;AAE1C;;;GAGG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,WAAW,GAAG,MAAM,CAoB5D"}
|
package/dist/types.js
CHANGED
|
@@ -45,6 +45,23 @@ export const hexDataParam = z
|
|
|
45
45
|
* Common parameter: optional hex-encoded data.
|
|
46
46
|
*/
|
|
47
47
|
export const optionalHexParam = hexDataParam.optional();
|
|
48
|
+
/**
|
|
49
|
+
* Common parameter: non-negative integer accepted as decimal or 0x-hex.
|
|
50
|
+
* Use for values like slot, wei amount, gas limit.
|
|
51
|
+
*/
|
|
52
|
+
export const uintParam = z
|
|
53
|
+
.string()
|
|
54
|
+
.regex(/^(0x[a-fA-F0-9]+|\d+)$/, 'Must be decimal (e.g. "123") or 0x-prefixed hex (e.g. "0x7b")')
|
|
55
|
+
.describe('Decimal (e.g. "123") or 0x-prefixed hex (e.g. "0x7b")');
|
|
56
|
+
export const optionalUintParam = uintParam.optional();
|
|
57
|
+
/**
|
|
58
|
+
* Common parameter: block identifier. Accepts named tags, decimal, or hex.
|
|
59
|
+
*/
|
|
60
|
+
export const blockTagParam = z
|
|
61
|
+
.string()
|
|
62
|
+
.regex(/^(latest|pending|earliest|safe|finalized|0x[a-fA-F0-9]+|\d+)$/i, 'Must be a named tag ("latest"/"pending"/"earliest"/"safe"/"finalized"), decimal, or 0x-prefixed hex')
|
|
63
|
+
.describe('Block: named tag ("latest", "pending", "earliest", "safe", "finalized"), decimal (e.g. "21000000"), or hex (e.g. "0x1406F40")');
|
|
64
|
+
export const optionalBlockTagParam = blockTagParam.optional();
|
|
48
65
|
/**
|
|
49
66
|
* Encode a value for safe interpolation into a URL path segment.
|
|
50
67
|
* Use this for any user-supplied value placed in a URL path.
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAyBxB;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC;KAC1B,IAAI,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;KACrC,QAAQ,EAAE;KACV,QAAQ,CACP,6DAA6D,CAC9D,CAAC;AAEJ;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC;KAC1B,MAAM,EAAE;KACR,KAAK,CAAC,qBAAqB,EAAE,2CAA2C,CAAC;KACzE,QAAQ,CAAC,0BAA0B,CAAC,CAAC;AAExC;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;AAE5D;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC;KACzB,MAAM,EAAE;KACR,KAAK,CAAC,qBAAqB,EAAE,iDAAiD,CAAC;KAC/E,QAAQ,CAAC,0BAA0B,CAAC,CAAC;AAExC;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC;KAC1B,MAAM,EAAE;KACR,KAAK,CAAC,OAAO,EAAE,0BAA0B,CAAC;KAC1C,QAAQ,CAAC,2BAA2B,CAAC,CAAC;AAEzC;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC;KAC1B,MAAM,EAAE;KACR,KAAK,CAAC,kBAAkB,EAAE,8BAA8B,CAAC;KACzD,QAAQ,CAAC,0BAA0B,CAAC,CAAC;AAExC;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;AAExD;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,OAAe;IACtC,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC;AACrC,CAAC;AAED,mFAAmF;AACnF,MAAM,CAAC,MAAM,kBAAkB,GAAG,OAAO,CAAC;AAE1C;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,QAAqB;IAClD,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,UAAU,QAAQ,CAAC,KAAK,EAAE,CAAC;IACpC,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI;QAC3B,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE;QAC9C,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;IAClB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC;IAE/C,IAAI,IAAI,CAAC,MAAM,GAAG,kBAAkB,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC,SAAS,CAAC;YACpB,SAAS,EAAE,IAAI;YACf,aAAa,EAAE,IAAI,CAAC,MAAM;YAC1B,OAAO,EAAE,6IAA6I;YACtJ,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;SAC5B,CAAC,CAAC;IACL,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/x402.d.ts
CHANGED
|
@@ -1,7 +1,27 @@
|
|
|
1
|
+
export type PaymentMode = 'exact' | 'batch';
|
|
1
2
|
export interface X402SetupResult {
|
|
2
3
|
enabled: boolean;
|
|
3
4
|
address?: string;
|
|
4
5
|
fetch?: typeof globalThis.fetch;
|
|
5
6
|
}
|
|
7
|
+
export interface PaymentModeInfo {
|
|
8
|
+
/** Whether x402 payment is active (X402_PRIVATE_KEY set). */
|
|
9
|
+
enabled: boolean;
|
|
10
|
+
/** Current payment scheme. */
|
|
11
|
+
mode: PaymentMode;
|
|
12
|
+
/** Payer wallet address, when enabled. */
|
|
13
|
+
address?: string;
|
|
14
|
+
/** Whether the batch scheme initialised successfully and can be selected. */
|
|
15
|
+
batchAvailable: boolean;
|
|
16
|
+
}
|
|
6
17
|
export declare function setupX402(): X402SetupResult;
|
|
18
|
+
/** Current payment scheme. */
|
|
19
|
+
export declare function getPaymentMode(): PaymentMode;
|
|
20
|
+
/**
|
|
21
|
+
* Switch the active payment scheme for subsequent calls. No-op (returns the
|
|
22
|
+
* unchanged mode) when x402 is disabled or batch is requested but unavailable.
|
|
23
|
+
*/
|
|
24
|
+
export declare function setPaymentMode(mode: PaymentMode): PaymentMode;
|
|
25
|
+
/** Snapshot of payment state for the 1s_payment_mode tool. */
|
|
26
|
+
export declare function getPaymentModeInfo(): PaymentModeInfo;
|
|
7
27
|
//# sourceMappingURL=x402.d.ts.map
|
package/dist/x402.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"x402.d.ts","sourceRoot":"","sources":["../src/x402.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"x402.d.ts","sourceRoot":"","sources":["../src/x402.ts"],"names":[],"mappings":"AA6BA,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,OAAO,CAAC;AAc5C,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC;AAED,MAAM,WAAW,eAAe;IAC9B,6DAA6D;IAC7D,OAAO,EAAE,OAAO,CAAC;IACjB,8BAA8B;IAC9B,IAAI,EAAE,WAAW,CAAC;IAClB,0CAA0C;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,cAAc,EAAE,OAAO,CAAC;CACzB;AAuBD,wBAAgB,SAAS,IAAI,eAAe,CA4D3C;AAED,8BAA8B;AAC9B,wBAAgB,cAAc,IAAI,WAAW,CAE5C;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,WAAW,CAK7D;AAED,8DAA8D;AAC9D,wBAAgB,kBAAkB,IAAI,eAAe,CAEpD"}
|
package/dist/x402.js
CHANGED
|
@@ -1,19 +1,59 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* x402 payment setup.
|
|
3
3
|
*
|
|
4
|
-
* When X402_PRIVATE_KEY is set, creates a payment-aware fetch wrapper
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* When X402_PRIVATE_KEY is set, creates a payment-aware fetch wrapper that
|
|
5
|
+
* automatically handles HTTP 402 responses by signing USDC payments on Base
|
|
6
|
+
* via the x402 protocol.
|
|
7
7
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
8
|
+
* Two payment schemes are supported and selectable at runtime:
|
|
9
|
+
* - `exact` — one signed USDC payment per call (the default).
|
|
10
|
+
* - `batch` — a payment channel: deposit once, sign cumulative vouchers for
|
|
11
|
+
* many off-chain calls, settled with a single on-chain claim.
|
|
12
|
+
*
|
|
13
|
+
* Both schemes use the same X402_PRIVATE_KEY wallet; only the scheme differs.
|
|
14
|
+
* The returned `fetch` is a dispatcher that routes each request through the
|
|
15
|
+
* exact- or batch-wrapped fetch based on the current mode, which the
|
|
16
|
+
* `1s_payment_mode` tool flips in-session via {@link setPaymentMode}.
|
|
17
|
+
*
|
|
18
|
+
* Returns the wrapped fetch instead of patching globalThis.fetch, so only the
|
|
19
|
+
* OneSourceClient uses it — analytics and other HTTP consumers are unaffected.
|
|
11
20
|
*/
|
|
12
21
|
import { x402Client, wrapFetchWithPayment } from '@x402/fetch';
|
|
13
22
|
import { registerExactEvmScheme } from '@x402/evm/exact/client';
|
|
23
|
+
import { toClientEvmSigner } from '@x402/evm';
|
|
24
|
+
import { BatchSettlementEvmScheme } from '@x402/evm/batch-settlement/client';
|
|
25
|
+
import { FileClientChannelStorage } from '@x402/evm/batch-settlement/client/file-storage';
|
|
14
26
|
import { privateKeyToAccount } from 'viem/accounts';
|
|
27
|
+
import { createPublicClient, http } from 'viem';
|
|
28
|
+
import { base } from 'viem/chains';
|
|
29
|
+
const ZERO_SALT = `0x${'0'.repeat(64)}`;
|
|
30
|
+
// Each channel's first paid call deposits depositMultiplier × the call price,
|
|
31
|
+
// funding that many calls before a top-up deposit is needed. Top-ups are the
|
|
32
|
+
// fragile path — a top-up deposit that the facilitator fails to land onchain
|
|
33
|
+
// leaves the channel with a voucher that exceeds real escrow (the 2026-06-05
|
|
34
|
+
// incident: multiplier 5 → free 6th call + bricked channel). The gateway now
|
|
35
|
+
// gates on confirmed onchain escrow, but a larger first deposit keeps typical
|
|
36
|
+
// sessions on the single-deposit path entirely. 20 funds 20 calls per deposit
|
|
37
|
+
// (e.g. 0.10 USDC at $0.005/call) and is fully recoverable via cooperative
|
|
38
|
+
// refund. Override with X402_DEPOSIT_MULTIPLIER (SDK minimum is 3).
|
|
39
|
+
const DEFAULT_DEPOSIT_MULTIPLIER = 20;
|
|
15
40
|
let _applied = false;
|
|
16
41
|
let _cachedResult;
|
|
42
|
+
// Runtime-mutable mode state. `setupX402` seeds it from X402_PAYMENT_MODE; the
|
|
43
|
+
// `1s_payment_mode` tool flips it in-session.
|
|
44
|
+
let _enabled = false;
|
|
45
|
+
let _address;
|
|
46
|
+
let _mode = 'exact';
|
|
47
|
+
let _batchAvailable = false;
|
|
48
|
+
function initialMode() {
|
|
49
|
+
return process.env.X402_PAYMENT_MODE?.trim().toLowerCase() === 'batch'
|
|
50
|
+
? 'batch'
|
|
51
|
+
: 'exact';
|
|
52
|
+
}
|
|
53
|
+
function depositMultiplier() {
|
|
54
|
+
const n = Number(process.env.X402_DEPOSIT_MULTIPLIER);
|
|
55
|
+
return Number.isFinite(n) && n > 0 ? n : DEFAULT_DEPOSIT_MULTIPLIER;
|
|
56
|
+
}
|
|
17
57
|
export function setupX402() {
|
|
18
58
|
const rawKey = process.env.X402_PRIVATE_KEY;
|
|
19
59
|
if (!rawKey)
|
|
@@ -24,17 +64,78 @@ export function setupX402() {
|
|
|
24
64
|
const privateKey = rawKey.startsWith('0x')
|
|
25
65
|
? rawKey
|
|
26
66
|
: `0x${rawKey}`;
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
67
|
+
const account = privateKeyToAccount(privateKey);
|
|
68
|
+
// --- exact scheme (per-call payment) ---
|
|
69
|
+
const exactClient = new x402Client();
|
|
70
|
+
registerExactEvmScheme(exactClient, { signer: account });
|
|
71
|
+
const exactFetch = wrapFetchWithPayment(fetch, exactClient);
|
|
72
|
+
// --- batch scheme (payment channel) ---
|
|
73
|
+
// Built eagerly but lazily funded: no on-chain deposit happens until the
|
|
74
|
+
// first paid request is made while in batch mode. If construction fails
|
|
75
|
+
// (e.g. RPC misconfig), fall back to exact-only rather than crashing the MCP.
|
|
76
|
+
let batchFetch;
|
|
77
|
+
try {
|
|
78
|
+
const publicClient = createPublicClient({
|
|
79
|
+
chain: base,
|
|
80
|
+
transport: http(process.env.X402_RPC_URL),
|
|
81
|
+
});
|
|
82
|
+
const batchSigner = toClientEvmSigner(account, publicClient);
|
|
83
|
+
const channelDir = process.env.X402_CHANNEL_DIR?.trim() || undefined;
|
|
84
|
+
const salt = process.env.X402_CHANNEL_SALT?.trim() || ZERO_SALT;
|
|
85
|
+
const batchScheme = new BatchSettlementEvmScheme(batchSigner, {
|
|
86
|
+
depositPolicy: { depositMultiplier: depositMultiplier() },
|
|
87
|
+
salt,
|
|
88
|
+
...(channelDir ? { storage: new FileClientChannelStorage({ directory: channelDir }) } : {}),
|
|
89
|
+
});
|
|
90
|
+
const batchClient = new x402Client();
|
|
91
|
+
batchClient.register('eip155:*', batchScheme);
|
|
92
|
+
batchFetch = wrapFetchWithPayment(fetch, batchClient);
|
|
93
|
+
_batchAvailable = true;
|
|
94
|
+
}
|
|
95
|
+
catch (err) {
|
|
96
|
+
_batchAvailable = false;
|
|
97
|
+
console.error(`[onesource-api] warning: batch payment scheme unavailable (${err instanceof Error ? err.message : String(err)}); falling back to exact-only`);
|
|
98
|
+
}
|
|
99
|
+
_enabled = true;
|
|
100
|
+
_address = account.address;
|
|
101
|
+
_mode = initialMode();
|
|
102
|
+
// If batch was requested but is unavailable, stay on exact.
|
|
103
|
+
if (_mode === 'batch' && !batchFetch)
|
|
104
|
+
_mode = 'exact';
|
|
105
|
+
// Dispatcher: route each request through the active scheme. Reads `_mode`
|
|
106
|
+
// live so in-session switches via setPaymentMode take effect immediately.
|
|
107
|
+
const dispatchFetch = (input, init) => (_mode === 'batch' && batchFetch ? batchFetch : exactFetch)(input, init);
|
|
31
108
|
_applied = true;
|
|
32
|
-
_cachedResult = { enabled: true, address:
|
|
109
|
+
_cachedResult = { enabled: true, address: account.address, fetch: dispatchFetch };
|
|
33
110
|
return _cachedResult;
|
|
34
111
|
}
|
|
112
|
+
/** Current payment scheme. */
|
|
113
|
+
export function getPaymentMode() {
|
|
114
|
+
return _mode;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Switch the active payment scheme for subsequent calls. No-op (returns the
|
|
118
|
+
* unchanged mode) when x402 is disabled or batch is requested but unavailable.
|
|
119
|
+
*/
|
|
120
|
+
export function setPaymentMode(mode) {
|
|
121
|
+
if (!_enabled)
|
|
122
|
+
return _mode;
|
|
123
|
+
if (mode === 'batch' && !_batchAvailable)
|
|
124
|
+
return _mode;
|
|
125
|
+
_mode = mode;
|
|
126
|
+
return _mode;
|
|
127
|
+
}
|
|
128
|
+
/** Snapshot of payment state for the 1s_payment_mode tool. */
|
|
129
|
+
export function getPaymentModeInfo() {
|
|
130
|
+
return { enabled: _enabled, mode: _mode, address: _address, batchAvailable: _batchAvailable };
|
|
131
|
+
}
|
|
35
132
|
/** @internal -- for test teardown only */
|
|
36
133
|
export function resetX402() {
|
|
37
134
|
_applied = false;
|
|
38
135
|
_cachedResult = undefined;
|
|
136
|
+
_enabled = false;
|
|
137
|
+
_address = undefined;
|
|
138
|
+
_mode = 'exact';
|
|
139
|
+
_batchAvailable = false;
|
|
39
140
|
}
|
|
40
141
|
//# sourceMappingURL=x402.js.map
|
package/dist/x402.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"x402.js","sourceRoot":"","sources":["../src/x402.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"x402.js","sourceRoot":"","sources":["../src/x402.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@one-source/api-mcp",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.2.1",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"description": "MCP server for OneSource blockchain data —
|
|
5
|
+
"description": "MCP server for OneSource blockchain data — 26 named tools for balances, NFTs, transactions, events, live chain queries, and x402 payment-mode control via x402",
|
|
6
6
|
"bin": {
|
|
7
7
|
"onesource-api-mcp": "./dist/cli.js"
|
|
8
8
|
},
|
|
@@ -65,8 +65,8 @@
|
|
|
65
65
|
},
|
|
66
66
|
"dependencies": {
|
|
67
67
|
"@modelcontextprotocol/sdk": "^1.27.1",
|
|
68
|
-
"@x402/evm": "^2.
|
|
69
|
-
"@x402/fetch": "^2.
|
|
68
|
+
"@x402/evm": "^2.14.0",
|
|
69
|
+
"@x402/fetch": "^2.14.0",
|
|
70
70
|
"viem": "^2.0.0",
|
|
71
71
|
"zod": "^3.24.0"
|
|
72
72
|
},
|