@odatano/nightgate-mcp 0.8.1 → 0.9.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/CHANGELOG.md CHANGED
@@ -7,6 +7,33 @@ The README says which NIGHTGATE the current version needs.
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.9.0] - 2026-09-30
11
+
12
+ ### Added
13
+
14
+ - **Shielded swap tools** (NIGHTGATE 0.29.0, `@odatano/nightgate-tx` 0.8.0):
15
+ - `get_swap_wallet`: address, public keys, per token type balance, free coins and
16
+ `spendable`; halves built here that have not landed.
17
+ - `read_swap_offer`: `gives`, `wants`, `inputs`, `outputs`, `bound` of an offer file or
18
+ base64 half, read from the transaction.
19
+ - `build_swap_offer(give, want, bind?)`: one proven half, as offer file (`swapoffer1...`).
20
+ - `take_swap_offer(offer, expect?, sponsorSessionId?, idempotencyKey?)`: the mirror half;
21
+ with a sponsor session it submits both halves. A refusal carries `halfId`.
22
+ - `sponsor_swap(makerHalf, takerHalf | halfId, sponsorSessionId, idempotencyKey?)`.
23
+ - `revert_swap_offer(id)`: releases the coins of a half built here.
24
+ - `NIGHTGATE_SWAP_STATE_FILE`, `NIGHTGATE_SWAP_MAX_INPUTS`.
25
+ - `get_attester_identity` returns `shieldedAddress`, `coinPublicKey`, `encryptionPublicKey`.
26
+ - `npm run integration` covers the swap tools (`scripts/integration-swap.mjs`).
27
+
28
+ ### Changed
29
+
30
+ - Peer dependency `@odatano/nightgate-tx` `>=0.8.0` (was `>=0.6.0`).
31
+ - Lockfile: one `@midnight-ntwrk/ledger-v8` (8.1.0) in the tree. Two copies made the local
32
+ builder fail with `expected instance of DustParameters`.
33
+ - `live:sponsor-unbound` verifies with the attester id.
34
+ - `NIGHTGATE_SEED_HEX` is 128 hex (a 64-byte BIP39 seed); 64 hex is refused at startup.
35
+ - `get_job_status` describes the `swap` result of a swap job.
36
+
10
37
  ## [0.8.1] - 2026-09-27
11
38
 
12
39
  ### Changed
package/README.md CHANGED
@@ -50,10 +50,13 @@ The hosted gateway is the default (Midnight preprod). The same key works for
50
50
  | `prove_field_predicates_batch` | Up to 8 claims in one transaction (async) |
51
51
  | `prove_document_integrity`, `prove_document_diff` | ZK claims across two documents (async) |
52
52
  | `grant_disclosure`, `revoke_disclosure` | On-chain disclosure ACL (async) |
53
- | `build_sponsorable_transaction`, `get_attester_identity` | Build, prove and sign locally; the attester id it builds under |
53
+ | `build_sponsorable_transaction`, `get_attester_identity` | Build, prove and sign locally; the attester id and shielded keys it builds under |
54
54
  | `sponsor_unbound_transaction`, `sponsor_finalized_transaction` | Hand locally built bytes to a sponsor that pays and submits (async) |
55
+ | `get_swap_wallet`, `read_swap_offer` | Shielded coins of the local wallet; what an offer gives and wants |
56
+ | `build_swap_offer`, `take_swap_offer`, `revert_swap_offer` | Build one half of a shielded swap locally, take an offer, release a half |
57
+ | `sponsor_swap` | Hand both halves of a swap to a sponsor that merges, pays and submits (async) |
55
58
  | `derive_token_type` | Token type a minting contract produces |
56
- | `get_job_status` | Poll an async job; batches report `chainSegments` |
59
+ | `get_job_status` | Poll an async job; batches report `chainSegments`, swaps `swap` |
57
60
  | `analytics_*` | Midnight aggregates via ODATANO ASTRA, when the host serves it |
58
61
 
59
62
  Errors carry the server's HTTP status and `code` (`INVALID_ARGUMENT`, ...).
@@ -69,6 +72,31 @@ Errors carry the server's HTTP status and `code` (`INVALID_ARGUMENT`, ...).
69
72
  `failed` / `CHAIN_EXECUTION_FAILED`: landed but not applied; build again, never
70
73
  resubmit the same bytes.
71
74
 
75
+ ## Shielded swaps
76
+
77
+ Two wallets exchange two shielded tokens without a contract. Each side builds
78
+ one half, the halves mirror each other, a sponsor merges them and pays the fee.
79
+ Needs `@odatano/nightgate-tx` >= 0.8.0 next to the server and `NIGHTGATE_SEED_HEX`.
80
+
81
+ 1. `get_swap_wallet`: balance, free coins and `spendable` per token type. The
82
+ first call starts the sync of the shielded coins (about 5 minutes from
83
+ genesis, seconds with `NIGHTGATE_SWAP_STATE_FILE`).
84
+ 2. Maker: `build_swap_offer` with `give` and `want` returns the offer file
85
+ (`swapoffer1...`) to publish.
86
+ 3. Taker: `read_swap_offer`, then `take_swap_offer` with `expect` and a
87
+ `sponsorSessionId`. It builds the mirror half and submits both.
88
+ 4. `get_job_status` with the returned `sessionId`; the result carries `swap`.
89
+
90
+ - One half spends at most `NIGHTGATE_SWAP_MAX_INPUTS` coins, the smallest that
91
+ fit. `give.amount` above `spendable` is refused before proving.
92
+ - An offer fills once. Its coins stay reserved in the maker's wallet until the
93
+ swap lands or `revert_swap_offer` releases them.
94
+ - A refused submission keeps the proven half: `sponsor_swap` with its `halfId`.
95
+ - The sponsor needs swaps switched on and both token types on its list; an
96
+ agent grant needs `sponsorSwap` in `allowedActions`.
97
+ - With `NIGHTGATE_PROOF_SERVER_URL` the proof server sees the coins a half
98
+ spends: use one you run yourself.
99
+
72
100
  ## Configuration
73
101
 
74
102
  | Variable | Default | Purpose |
@@ -76,9 +104,11 @@ resubmit the same bytes.
76
104
  | `ODATANO_ACCESS_KEY` | unset | `oda_…` key, or an `ngat_…` agent grant on a direct instance |
77
105
  | `ODATANO_ACCESS_URL` | `https://api.preprod.odatano.dev` | Gateway or a direct NIGHTGATE host |
78
106
  | `ODATANO_ACCESS_USER` / `_PASSWORD` | unset | Basic auth of a direct instance |
79
- | `NIGHTGATE_SEED_HEX` | unset | Seed for local building; never a tool argument |
107
+ | `NIGHTGATE_SEED_HEX` | unset | Seed (128 hex) for local building and swaps; never a tool argument |
80
108
  | `NIGHTGATE_NETWORK` | `preprod` | Network of the local builder |
81
109
  | `NIGHTGATE_PROOF_SERVER_URL` | unset | Prove on a proof server instead of in-process |
110
+ | `NIGHTGATE_SWAP_STATE_FILE` | unset | File for the swap wallet's state; it holds the wallet's coins, keep it like a key |
111
+ | `NIGHTGATE_SWAP_MAX_INPUTS` | `4` | Most coins one swap half spends; the sponsor's limit applies |
82
112
  | `NIGHTGATE_TIMEOUT_MS` | `30000` | Per-request timeout |
83
113
 
84
114
  Also: `NIGHTGATE_SERVICE_PATH`, `ODATANO_ANALYTICS_URL`, `NIGHTGATE_INDEXER_HTTP_URL`,
@@ -98,7 +128,12 @@ Then `ODATANO_ACCESS_URL=http://localhost:4004`, `ODATANO_ACCESS_USER=nightgate`
98
128
 
99
129
  ## Compatibility
100
130
 
101
- NIGHTGATE >= 0.24.0; `chainSegments` needs >= 0.28.0. Per version: [CHANGELOG](CHANGELOG.md).
131
+ NIGHTGATE >= 0.24.0; `chainSegments` needs >= 0.28.0, swaps need >= 0.29.0.
132
+ `@odatano/nightgate-tx` >= 0.8.0 for local building. Per version: [CHANGELOG](CHANGELOG.md).
133
+
134
+ Local building needs ONE `@midnight-ntwrk/ledger-v8` in the install
135
+ (`npm ls @midnight-ntwrk/ledger-v8`). `expected instance of ...` means two:
136
+ `npm dedupe`.
102
137
 
103
138
  ## Development
104
139
 
package/dist/builder.d.ts CHANGED
@@ -52,6 +52,9 @@ export declare function buildSponsorable(config: NightgateMcpConfig, input: Buil
52
52
  export declare function attesterIdentity(config: NightgateMcpConfig): Promise<{
53
53
  attesterId: string;
54
54
  network: string;
55
+ shieldedAddress?: string;
56
+ coinPublicKey?: string;
57
+ encryptionPublicKey?: string;
55
58
  }>;
56
59
  /** Test seam / shutdown: release every lineage's builder connections. */
57
60
  export declare function closeBuilder(): Promise<void>;
package/dist/builder.js CHANGED
@@ -67,7 +67,7 @@ async function loadModules(ref = DEFAULT_ARTIFACT) {
67
67
  }
68
68
  catch (err) {
69
69
  modules.delete(ref);
70
- throw new Error(`local building of '${ref}' needs @odatano/nightgate-tx >= 0.6.0 next to the MCP server ` +
70
+ throw new Error(`local building of '${ref}' needs @odatano/nightgate-tx >= 0.8.0 next to the MCP server ` +
71
71
  '(npm install @odatano/nightgate-tx): ' + (err instanceof Error ? err.message : String(err)));
72
72
  }
73
73
  })();
@@ -90,7 +90,7 @@ function defaults(network) {
90
90
  */
91
91
  async function getBuilder(config, ref = DEFAULT_ARTIFACT) {
92
92
  if (!config.seedHex) {
93
- throw new Error('local building needs NIGHTGATE_SEED_HEX (64 or 128 hex) in the MCP server environment; it is never a tool argument');
93
+ throw new Error('local building needs NIGHTGATE_SEED_HEX (128 hex) in the MCP server environment; it is never a tool argument');
94
94
  }
95
95
  let entry = builders.get(ref);
96
96
  if (!entry) {
@@ -245,7 +245,13 @@ export async function buildSponsorable(config, input) {
245
245
  /** The caller's attester id (derived from the seed), without building anything. */
246
246
  export async function attesterIdentity(config) {
247
247
  const b = await getBuilder(config);
248
- return { attesterId: String(b.attesterId), network: config.network };
248
+ return {
249
+ attesterId: String(b.attesterId),
250
+ network: config.network,
251
+ // from @odatano/nightgate-tx 0.8.0 on
252
+ ...(b.addresses?.shielded ? { shieldedAddress: String(b.addresses.shielded) } : {}),
253
+ ...(b.shieldedKeys ? { coinPublicKey: String(b.shieldedKeys.coinPublicKey), encryptionPublicKey: String(b.shieldedKeys.encryptionPublicKey) } : {}),
254
+ };
249
255
  }
250
256
  /** Test seam / shutdown: release every lineage's builder connections. */
251
257
  export async function closeBuilder() {
@@ -1 +1 @@
1
- {"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -29,7 +29,7 @@ export interface NightgateMcpConfig {
29
29
  analyticsUrl: string;
30
30
  /** Request timeout in milliseconds. */
31
31
  timeoutMs: number;
32
- /** Caller seed (64 or 128 hex) for the local txbuilder; never a tool argument. */
32
+ /** Caller seed (128 hex, a 64-byte BIP39 seed) for local building and swaps; never a tool argument. */
33
33
  seedHex?: string;
34
34
  /** Midnight network the builder targets; default preprod. */
35
35
  network: string;
@@ -42,5 +42,9 @@ export interface NightgateMcpConfig {
42
42
  zkCacheDir?: string;
43
43
  /** Set to prove contract circuits on a proof server instead of in-process wasm. */
44
44
  proofServerUrl?: string;
45
+ /** File the swap wallet's state is kept in, so a restart resumes instead of syncing from genesis. It holds the wallet's coins. */
46
+ swapStateFile?: string;
47
+ /** Most coins one swap half spends; default the builder's (4, the sponsor's default). */
48
+ swapMaxInputs?: number;
45
49
  }
46
50
  export declare function loadConfig(env?: NodeJS.ProcessEnv): NightgateMcpConfig;
package/dist/config.js CHANGED
@@ -9,8 +9,12 @@ export function loadConfig(env = process.env) {
9
9
  throw new Error(`Invalid NIGHTGATE_NETWORK: ${network} (preview | preprod | mainnet)`);
10
10
  }
11
11
  const seedHex = env.NIGHTGATE_SEED_HEX || undefined;
12
- if (seedHex && !/^([0-9a-fA-F]{64}|[0-9a-fA-F]{128})$/.test(seedHex)) {
13
- throw new Error('Invalid NIGHTGATE_SEED_HEX: expected 64 or 128 hex characters');
12
+ if (seedHex && !/^[0-9a-fA-F]{128}$/.test(seedHex)) {
13
+ throw new Error('Invalid NIGHTGATE_SEED_HEX: expected 128 hex characters (a 64-byte BIP39 seed)');
14
+ }
15
+ const swapMaxInputs = env.NIGHTGATE_SWAP_MAX_INPUTS ? Number(env.NIGHTGATE_SWAP_MAX_INPUTS) : undefined;
16
+ if (swapMaxInputs !== undefined && (!Number.isInteger(swapMaxInputs) || swapMaxInputs < 1)) {
17
+ throw new Error(`Invalid NIGHTGATE_SWAP_MAX_INPUTS: ${env.NIGHTGATE_SWAP_MAX_INPUTS} (a positive integer)`);
14
18
  }
15
19
  const analyticsUrl = (env.ODATANO_ANALYTICS_URL || `${baseUrl}/odata/v4/astra`).replace(/\/+$/, '');
16
20
  return {
@@ -29,6 +33,8 @@ export function loadConfig(env = process.env) {
29
33
  zkConfigBaseUrl: env.NIGHTGATE_ZK_CONFIG_BASE_URL || undefined,
30
34
  zkCacheDir: env.NIGHTGATE_ZK_CACHE_DIR || undefined,
31
35
  proofServerUrl: env.NIGHTGATE_PROOF_SERVER_URL || undefined,
36
+ swapStateFile: env.NIGHTGATE_SWAP_STATE_FILE || undefined,
37
+ swapMaxInputs,
32
38
  };
33
39
  }
34
40
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAgDA,MAAM,UAAU,UAAU,CAAC,MAAyB,OAAO,CAAC,GAAG;IAC7D,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,kBAAkB,IAAI,iCAAiC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAClG,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,oBAAoB,IAAI,KAAK,CAAC,CAAC;IAC5D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,iCAAiC,GAAG,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAC/E,CAAC;IACD,MAAM,OAAO,GAAG,GAAG,CAAC,iBAAiB,IAAI,SAAS,CAAC;IACnD,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,KAAK,CAAC,8BAA8B,OAAO,gCAAgC,CAAC,CAAC;IACzF,CAAC;IACD,MAAM,OAAO,GAAG,GAAG,CAAC,kBAAkB,IAAI,SAAS,CAAC;IACpD,IAAI,OAAO,IAAI,CAAC,sCAAsC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACrE,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;IACnF,CAAC;IACD,MAAM,YAAY,GAAG,CAAC,GAAG,CAAC,qBAAqB,IAAI,GAAG,OAAO,iBAAiB,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACpG,OAAO;QACL,OAAO;QACP,KAAK,EAAE,GAAG,CAAC,kBAAkB,IAAI,SAAS;QAC1C,QAAQ,EAAE,GAAG,CAAC,mBAAmB,IAAI,SAAS;QAC9C,QAAQ,EAAE,GAAG,CAAC,uBAAuB,IAAI,SAAS;QAClD,WAAW,EAAE,GAAG,CAAC,sBAAsB,IAAI,mBAAmB;QAC9D,YAAY;QACZ,SAAS;QACT,OAAO;QACP,OAAO;QACP,cAAc,EAAE,GAAG,CAAC,0BAA0B,IAAI,SAAS;QAC3D,YAAY,EAAE,GAAG,CAAC,wBAAwB,IAAI,SAAS;QACvD,OAAO,EAAE,GAAG,CAAC,kBAAkB,IAAI,SAAS;QAC5C,eAAe,EAAE,GAAG,CAAC,4BAA4B,IAAI,SAAS;QAC9D,UAAU,EAAE,GAAG,CAAC,sBAAsB,IAAI,SAAS;QACnD,cAAc,EAAE,GAAG,CAAC,0BAA0B,IAAI,SAAS;KAC5D,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAsDA,MAAM,UAAU,UAAU,CAAC,MAAyB,OAAO,CAAC,GAAG;IAC7D,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,kBAAkB,IAAI,iCAAiC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAClG,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,oBAAoB,IAAI,KAAK,CAAC,CAAC;IAC5D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,iCAAiC,GAAG,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAC/E,CAAC;IACD,MAAM,OAAO,GAAG,GAAG,CAAC,iBAAiB,IAAI,SAAS,CAAC;IACnD,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,KAAK,CAAC,8BAA8B,OAAO,gCAAgC,CAAC,CAAC;IACzF,CAAC;IACD,MAAM,OAAO,GAAG,GAAG,CAAC,kBAAkB,IAAI,SAAS,CAAC;IACpD,IAAI,OAAO,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CAAC,gFAAgF,CAAC,CAAC;IACpG,CAAC;IACD,MAAM,aAAa,GAAG,GAAG,CAAC,yBAAyB,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACxG,IAAI,aAAa,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,aAAa,GAAG,CAAC,CAAC,EAAE,CAAC;QAC3F,MAAM,IAAI,KAAK,CAAC,sCAAsC,GAAG,CAAC,yBAAyB,uBAAuB,CAAC,CAAC;IAC9G,CAAC;IACD,MAAM,YAAY,GAAG,CAAC,GAAG,CAAC,qBAAqB,IAAI,GAAG,OAAO,iBAAiB,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACpG,OAAO;QACL,OAAO;QACP,KAAK,EAAE,GAAG,CAAC,kBAAkB,IAAI,SAAS;QAC1C,QAAQ,EAAE,GAAG,CAAC,mBAAmB,IAAI,SAAS;QAC9C,QAAQ,EAAE,GAAG,CAAC,uBAAuB,IAAI,SAAS;QAClD,WAAW,EAAE,GAAG,CAAC,sBAAsB,IAAI,mBAAmB;QAC9D,YAAY;QACZ,SAAS;QACT,OAAO;QACP,OAAO;QACP,cAAc,EAAE,GAAG,CAAC,0BAA0B,IAAI,SAAS;QAC3D,YAAY,EAAE,GAAG,CAAC,wBAAwB,IAAI,SAAS;QACvD,OAAO,EAAE,GAAG,CAAC,kBAAkB,IAAI,SAAS;QAC5C,eAAe,EAAE,GAAG,CAAC,4BAA4B,IAAI,SAAS;QAC9D,UAAU,EAAE,GAAG,CAAC,sBAAsB,IAAI,SAAS;QACnD,cAAc,EAAE,GAAG,CAAC,0BAA0B,IAAI,SAAS;QAC3D,aAAa,EAAE,GAAG,CAAC,yBAAyB,IAAI,SAAS;QACzD,aAAa;KACd,CAAC;AACJ,CAAC"}
package/dist/server.js CHANGED
@@ -8,7 +8,7 @@ import { registerAnalyticsTools } from './analytics.js';
8
8
  * host (schema inspection, tests) get a deterministic tool set.
9
9
  */
10
10
  export function buildServer(config, caps = { analytics: false }) {
11
- const server = new McpServer({ name: 'nightgate', version: '0.8.1' });
11
+ const server = new McpServer({ name: 'nightgate', version: '0.9.0' });
12
12
  const client = new NightgateClient(config);
13
13
  registerTools(server, client, config);
14
14
  if (caps.analytics)
package/dist/swap.d.ts ADDED
@@ -0,0 +1,76 @@
1
+ import type { NightgateMcpConfig } from './config.js';
2
+ export interface SwapLeg {
3
+ tokenType: string;
4
+ amount: string;
5
+ }
6
+ export interface SwapTermsOut {
7
+ gives: SwapLeg;
8
+ wants: SwapLeg;
9
+ inputs?: number;
10
+ outputs?: number;
11
+ }
12
+ interface TxSwapModule {
13
+ createSwapWallet: (opts: Record<string, unknown>) => Promise<any>;
14
+ readSwapTerms: (tx: unknown) => any;
15
+ decodeOffer: (input: string) => Promise<{
16
+ tx: unknown;
17
+ bound: boolean;
18
+ bytes: Uint8Array;
19
+ }>;
20
+ }
21
+ /** What an offer gives and wants, read from the transaction it carries. No wallet, no network. */
22
+ export declare function readOffer(offer: string): Promise<SwapTermsOut & {
23
+ bound: boolean;
24
+ serializedBytes: number;
25
+ }>;
26
+ export declare function swapWalletInfo(config: NightgateMcpConfig): Promise<Record<string, unknown>>;
27
+ export interface BuiltOffer {
28
+ id: string;
29
+ offer?: string;
30
+ halfB64: string;
31
+ bound: boolean;
32
+ serializedBytes: number;
33
+ terms: SwapTermsOut;
34
+ buildMs: number;
35
+ }
36
+ /** One half of a swap from this wallet; bound with its offer file unless `bind` is false. */
37
+ export declare function buildOffer(config: NightgateMcpConfig, input: {
38
+ give: SwapLeg;
39
+ want: SwapLeg;
40
+ bind?: boolean;
41
+ }): Promise<BuiltOffer>;
42
+ export interface TakenOfferOut {
43
+ id: string;
44
+ makerHalfB64: string;
45
+ takerHalfB64: string;
46
+ bound: boolean;
47
+ terms: SwapTermsOut;
48
+ buildMs: number;
49
+ }
50
+ /** The mirror half of an offer from this wallet, after its terms were read and compared with `expect`. */
51
+ export declare function takeOffer(config: NightgateMcpConfig, input: {
52
+ offer: string;
53
+ expect?: {
54
+ gives: SwapLeg;
55
+ wants: SwapLeg;
56
+ };
57
+ }): Promise<TakenOfferOut>;
58
+ /** Releases the coins of a half built here that is not going to be handed over. */
59
+ export declare function revertHalf(config: NightgateMcpConfig, id: string): Promise<{
60
+ id: string;
61
+ reverted: true;
62
+ }>;
63
+ /** Both halves of an offer taken here, for a submission by id. */
64
+ export declare function takenHalves(id: string): {
65
+ makerHalfB64: string;
66
+ takerHalfB64: string;
67
+ };
68
+ /** Remembers the sponsor job a half went into. An id this process does not hold is ignored. */
69
+ export declare function trackHalfJob(id: string, jobId: unknown): void;
70
+ /** A landed swap spent its coins: its half is no longer pending. A failed one stays, so it can be reverted. */
71
+ export declare function settleHalfJob(jobId: string, status: unknown): void;
72
+ /** Test seam / shutdown. */
73
+ export declare function closeSwapWallet(): Promise<void>;
74
+ /** Test seam: replace the module the swap functions load. */
75
+ export declare function __setSwapModuleForTests(mod: TxSwapModule | undefined): void;
76
+ export {};
package/dist/swap.js ADDED
@@ -0,0 +1,244 @@
1
+ /**
2
+ * Shielded swaps, the local side: one wallet that holds the shielded coins of
3
+ * `NIGHTGATE_SEED_HEX` builds swap halves and takes offers. It wraps the swap
4
+ * wallet of `@odatano/nightgate-tx` (0.8.0 or later); the fee is the sponsor's,
5
+ * so the wallet needs neither NIGHT nor dust.
6
+ */
7
+ import { createHash } from 'node:crypto';
8
+ import { chmod, mkdir, readFile, rename, writeFile } from 'node:fs/promises';
9
+ import { dirname } from 'node:path';
10
+ let modulePromise;
11
+ async function loadSwapModule() {
12
+ modulePromise ??= (async () => {
13
+ let tx;
14
+ try {
15
+ tx = await import('@odatano/nightgate-tx/txbuilder');
16
+ }
17
+ catch (err) {
18
+ modulePromise = undefined;
19
+ throw new Error('swaps need @odatano/nightgate-tx >= 0.8.0 next to the MCP server (npm install @odatano/nightgate-tx): ' +
20
+ (err instanceof Error ? err.message : String(err)));
21
+ }
22
+ if (typeof tx.createSwapWallet !== 'function' || typeof tx.decodeOffer !== 'function') {
23
+ modulePromise = undefined;
24
+ throw new Error('swaps need @odatano/nightgate-tx >= 0.8.0; the installed version has no swap wallet (npm install @odatano/nightgate-tx@latest)');
25
+ }
26
+ return { createSwapWallet: tx.createSwapWallet, readSwapTerms: tx.readSwapTerms, decodeOffer: tx.decodeOffer };
27
+ })();
28
+ return modulePromise;
29
+ }
30
+ function defaults(network) {
31
+ return {
32
+ indexerHttpUrl: `https://indexer.${network}.midnight.network/api/v4/graphql`,
33
+ indexerWsUrl: `wss://indexer.${network}.midnight.network/api/v4/graphql/ws`,
34
+ };
35
+ }
36
+ const termsOut = (terms) => ({
37
+ gives: { tokenType: String(terms.gives.tokenType), amount: String(terms.gives.amount) },
38
+ wants: { tokenType: String(terms.wants.tokenType), amount: String(terms.wants.amount) },
39
+ ...(Number.isInteger(terms.inputs) ? { inputs: terms.inputs } : {}),
40
+ ...(Number.isInteger(terms.outputs) ? { outputs: terms.outputs } : {}),
41
+ });
42
+ /** What an offer gives and wants, read from the transaction it carries. No wallet, no network. */
43
+ export async function readOffer(offer) {
44
+ const { decodeOffer, readSwapTerms } = await loadSwapModule();
45
+ const decoded = await decodeOffer(offer);
46
+ return { ...termsOut(readSwapTerms(decoded.tx)), bound: decoded.bound, serializedBytes: decoded.bytes.length };
47
+ }
48
+ let open;
49
+ /** Halves built here whose swap has not landed, by id. */
50
+ const pending = new Map();
51
+ const halfId = (halfB64) => createHash('sha256').update(Buffer.from(halfB64, 'base64')).digest('hex').slice(0, 32);
52
+ async function readState(path) {
53
+ if (!path)
54
+ return undefined;
55
+ try {
56
+ const text = (await readFile(path, 'utf8')).trim();
57
+ return text.length > 0 ? text : undefined;
58
+ }
59
+ catch (err) {
60
+ if (err?.code === 'ENOENT')
61
+ return undefined;
62
+ throw new Error(`swap wallet state ${path} is not readable: ${err.message}`);
63
+ }
64
+ }
65
+ /** The state holds the wallet's coins: written next to itself, then renamed, readable by the owner only. */
66
+ async function writeState(path, wallet) {
67
+ if (!path)
68
+ return;
69
+ const state = String(await wallet.serializeState());
70
+ await mkdir(dirname(path), { recursive: true });
71
+ const tmp = `${path}.part`;
72
+ await writeFile(tmp, state, { mode: 0o600 });
73
+ await rename(tmp, path);
74
+ await chmod(path, 0o600).catch(() => { });
75
+ }
76
+ async function openWallet(config) {
77
+ if (!config.seedHex) {
78
+ throw new Error('swaps need NIGHTGATE_SEED_HEX in the MCP server environment; it is never a tool argument');
79
+ }
80
+ open ??= (async () => {
81
+ try {
82
+ const { createSwapWallet } = await loadSwapModule();
83
+ const d = defaults(config.network);
84
+ const walletState = await readState(config.swapStateFile);
85
+ const wallet = await createSwapWallet({
86
+ seedHex: config.seedHex,
87
+ networkId: config.network,
88
+ indexerHttpUrl: config.indexerHttpUrl ?? d.indexerHttpUrl,
89
+ indexerWsUrl: config.indexerWsUrl ?? d.indexerWsUrl,
90
+ ...(config.nodeUrl ? { nodeUrl: config.nodeUrl } : {}),
91
+ ...(config.proofServerUrl ? { provingMode: 'server', proofServerUrl: config.proofServerUrl } : {}),
92
+ ...(config.swapMaxInputs ? { maxInputs: config.swapMaxInputs } : {}),
93
+ ...(walletState ? { walletState } : {}),
94
+ });
95
+ const entry = { wallet, synced: Promise.resolve(), isSynced: false, syncError: null, startedAt: Date.now(), resumed: !!walletState };
96
+ entry.synced = (async () => {
97
+ try {
98
+ await wallet.sync();
99
+ await writeState(config.swapStateFile, wallet).catch((err) => console.error(`nightgate-mcp: swap wallet state not saved: ${err.message}`));
100
+ entry.isSynced = true;
101
+ }
102
+ catch (err) {
103
+ entry.syncError = err instanceof Error ? err : new Error(String(err));
104
+ }
105
+ })();
106
+ return entry;
107
+ }
108
+ catch (err) {
109
+ open = undefined;
110
+ throw err;
111
+ }
112
+ })();
113
+ return open;
114
+ }
115
+ /** The wallet once it has caught up; a wallet that needs longer than `waitMs` says so instead of blocking the call. */
116
+ async function syncedWallet(config, waitMs) {
117
+ const entry = await openWallet(config);
118
+ if (!entry.isSynced && !entry.syncError) {
119
+ await Promise.race([entry.synced, new Promise((resolve) => setTimeout(resolve, waitMs))]);
120
+ }
121
+ if (entry.syncError) {
122
+ open = undefined;
123
+ throw new Error(`the swap wallet could not sync: ${entry.syncError.message}`);
124
+ }
125
+ if (!entry.isSynced) {
126
+ const seconds = Math.round((Date.now() - entry.startedAt) / 1000);
127
+ throw new Error(`the swap wallet is still syncing its shielded coins (${seconds} s so far; a first sync from genesis takes about 5 minutes` +
128
+ `${config.swapStateFile ? '' : ', set NIGHTGATE_SWAP_STATE_FILE to resume after a restart'}); call again shortly`);
129
+ }
130
+ return entry.wallet;
131
+ }
132
+ /** How long a tool call waits for a wallet that is still syncing. */
133
+ const SYNC_WAIT_MS = 20_000;
134
+ export async function swapWalletInfo(config) {
135
+ const entry = await openWallet(config);
136
+ const { wallet } = entry;
137
+ const base = {
138
+ address: String(wallet.address),
139
+ coinPublicKey: String(wallet.coinPublicKey),
140
+ encryptionPublicKey: String(wallet.encryptionPublicKey),
141
+ network: config.network,
142
+ maxInputs: Number(wallet.maxInputs),
143
+ provingMode: String(wallet.provingMode),
144
+ synced: entry.isSynced,
145
+ resumedFromState: entry.resumed,
146
+ };
147
+ if (entry.syncError)
148
+ throw new Error(`the swap wallet could not sync: ${entry.syncError.message}`);
149
+ if (!entry.isSynced) {
150
+ await Promise.race([entry.synced, new Promise((resolve) => setTimeout(resolve, SYNC_WAIT_MS))]);
151
+ if (!entry.isSynced)
152
+ return { ...base, syncingSeconds: Math.round((Date.now() - entry.startedAt) / 1000) };
153
+ }
154
+ const coins = await wallet.coins();
155
+ const byType = new Map();
156
+ for (const c of coins) {
157
+ const t = byType.get(c.tokenType) ?? { balance: 0n, coins: 0 };
158
+ byType.set(c.tokenType, { balance: t.balance + c.amount, coins: t.coins + 1 });
159
+ }
160
+ const tokens = [];
161
+ for (const [tokenType, t] of byType) {
162
+ tokens.push({ tokenType, balance: t.balance.toString(), coins: t.coins, spendable: String(await wallet.spendable(tokenType)) });
163
+ }
164
+ const pendingHalves = [...pending.entries()].map(([id, p]) => ({ id, role: p.role, ...(p.jobId ? { jobId: p.jobId } : {}), ...p.terms }));
165
+ return { ...base, synced: true, tokens, pendingHalves };
166
+ }
167
+ /** One half of a swap from this wallet; bound with its offer file unless `bind` is false. */
168
+ export async function buildOffer(config, input) {
169
+ const t0 = Date.now();
170
+ const wallet = await syncedWallet(config, SYNC_WAIT_MS);
171
+ const half = await wallet.buildHalf({ give: input.give, want: input.want, bind: input.bind !== false });
172
+ const terms = termsOut(half.terms);
173
+ const id = halfId(half.halfB64);
174
+ pending.set(id, { revert: half.revert, terms, role: 'maker' });
175
+ await writeState(config.swapStateFile, wallet).catch(() => { });
176
+ return {
177
+ id, ...(half.offer ? { offer: half.offer } : {}), halfB64: half.halfB64, bound: half.bound === true,
178
+ serializedBytes: Number(half.serializedBytes), terms, buildMs: Date.now() - t0,
179
+ };
180
+ }
181
+ /** The mirror half of an offer from this wallet, after its terms were read and compared with `expect`. */
182
+ export async function takeOffer(config, input) {
183
+ const t0 = Date.now();
184
+ const wallet = await syncedWallet(config, SYNC_WAIT_MS);
185
+ const taken = await wallet.takeOffer({ offer: input.offer, ...(input.expect ? { expect: input.expect } : {}) });
186
+ const terms = termsOut(taken.terms);
187
+ const id = halfId(taken.takerHalfB64);
188
+ pending.set(id, { revert: taken.revert, terms, role: 'taker', halves: { makerHalfB64: taken.makerHalfB64, takerHalfB64: taken.takerHalfB64 } });
189
+ await writeState(config.swapStateFile, wallet).catch(() => { });
190
+ return { id, makerHalfB64: taken.makerHalfB64, takerHalfB64: taken.takerHalfB64, bound: taken.bound === true, terms, buildMs: Date.now() - t0 };
191
+ }
192
+ /** Releases the coins of a half built here that is not going to be handed over. */
193
+ export async function revertHalf(config, id) {
194
+ const half = pending.get(id);
195
+ if (!half)
196
+ throw new Error(`no half with id ${id} was built by this server process (ids are listed by get_swap_wallet)`);
197
+ await half.revert();
198
+ pending.delete(id);
199
+ const entry = await openWallet(config);
200
+ await writeState(config.swapStateFile, entry.wallet).catch(() => { });
201
+ return { id, reverted: true };
202
+ }
203
+ /** Both halves of an offer taken here, for a submission by id. */
204
+ export function takenHalves(id) {
205
+ const half = pending.get(id);
206
+ if (!half)
207
+ throw new Error(`no half with id ${id} is held by this server process (ids are listed by get_swap_wallet)`);
208
+ if (!half.halves)
209
+ throw new Error(`half ${id} is an offer built here, not a taken one: pass both halves`);
210
+ return half.halves;
211
+ }
212
+ /** Remembers the sponsor job a half went into. An id this process does not hold is ignored. */
213
+ export function trackHalfJob(id, jobId) {
214
+ const half = pending.get(id);
215
+ if (half && typeof jobId === 'string')
216
+ half.jobId = jobId;
217
+ }
218
+ /** A landed swap spent its coins: its half is no longer pending. A failed one stays, so it can be reverted. */
219
+ export function settleHalfJob(jobId, status) {
220
+ if (status !== 'succeeded')
221
+ return;
222
+ for (const [id, half] of pending)
223
+ if (half.jobId === jobId)
224
+ pending.delete(id);
225
+ }
226
+ /** Test seam / shutdown. */
227
+ export async function closeSwapWallet() {
228
+ const current = open;
229
+ open = undefined;
230
+ pending.clear();
231
+ if (!current)
232
+ return;
233
+ try {
234
+ await (await current).wallet.close?.();
235
+ }
236
+ catch { /* best effort */ }
237
+ }
238
+ /** Test seam: replace the module the swap functions load. */
239
+ export function __setSwapModuleForTests(mod) {
240
+ modulePromise = mod ? Promise.resolve(mod) : undefined;
241
+ open = undefined;
242
+ pending.clear();
243
+ }
244
+ //# sourceMappingURL=swap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swap.js","sourceRoot":"","sources":["../src/swap.ts"],"names":[],"mappings":"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"}
package/dist/tools.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { z } from 'zod';
2
2
  import { int64, NightgateApiError } from './client.js';
3
3
  import { BUILDABLE_CALLS, BUILDABLE_ARTIFACTS, buildSponsorable, attesterIdentity } from './builder.js';
4
+ import { buildOffer, readOffer, revertHalf, settleHalfJob, swapWalletInfo, takenHalves, takeOffer, trackHalfJob } from './swap.js';
4
5
  const HEX64 = /^[0-9a-fA-F]{64}$/;
5
6
  const hex64 = (what) => z.string().regex(HEX64, `${what} must be 64 hex characters`);
6
7
  /** Scaled non-negative integer, as string (preferred, exact) or JS number. */
@@ -19,6 +20,21 @@ const setDirs = z.array(z.boolean()).length(6)
19
20
  const POLL_HINT = 'Async: returns { jobId, status } immediately; poll get_job_status until succeeded or failed.';
20
21
  /** NIGHTGATE's platform sponsor pool id (0.17.2+): the server picks a free pool sponsor. */
21
22
  const PLATFORM_POOL_SENTINEL = '00000000-0000-0000-0000-706f6f6c0000';
23
+ /** One side of a swap: a raw token type and an amount in atoms. */
24
+ const swapLeg = (what) => z.object({
25
+ tokenType: hex64(`${what}.tokenType`).describe('Raw token type (64 hex), what derive_token_type returns'),
26
+ amount: z.union([
27
+ z.string().regex(/^[1-9]\d*$/, `${what}.amount must be a positive integer (decimal string)`),
28
+ z.number().int().positive(),
29
+ ]).describe('Amount in atoms; a decimal string is exact'),
30
+ });
31
+ const legOut = (leg) => ({ tokenType: leg.tokenType.toLowerCase(), amount: String(leg.amount) });
32
+ /** A swap half as it is handed over: offer file text or base64 of the serialized transaction. */
33
+ const swapHalf = (what) => z.string().min(16)
34
+ .describe(`${what}: offer file text (swapoffer1...) or base64 of the serialized, proven transaction`);
35
+ const SWAP_HINT = 'A swap settles two shielded tokens between two wallets without a contract: each side builds one half ' +
36
+ '(it spends the coin it gives and creates the coin it wants), the two mirrored halves merge into one transaction, ' +
37
+ 'and a sponsor pays the fee.';
22
38
  /**
23
39
  * Per-slot salt of a proof field. Content-tree leaves are SALTED, so every
24
40
  * single-field proof needs the slot's salt from prepare_document_proof
@@ -809,8 +825,10 @@ export function registerTools(server, client, config) {
809
825
  }));
810
826
  server.registerTool('get_attester_identity', {
811
827
  description: 'The attester id this MCP server builds under (derived from NIGHTGATE_SEED_HEX via the ' +
812
- 'txbuilder), plus the network. Use it to check verify_attestation results against the ' +
813
- 'identity that will appear on-chain; builds nothing and submits nothing.',
828
+ 'txbuilder), plus the network, the shielded address and the two public shielded keys ' +
829
+ '(what a sender needs to create a coin for this wallet). Use it to check ' +
830
+ 'verify_attestation results against the identity that will appear on-chain; builds ' +
831
+ 'nothing and submits nothing.',
814
832
  inputSchema: {},
815
833
  }, run(async () => {
816
834
  if (!config)
@@ -870,6 +888,148 @@ export function registerTools(server, client, config) {
870
888
  sponsorSessionId: args.sponsorSessionId,
871
889
  idempotencyKey: args.idempotencyKey,
872
890
  })));
891
+ server.registerTool('get_swap_wallet', {
892
+ description: 'The shielded wallet this MCP server swaps from (seed from NIGHTGATE_SEED_HEX): address, ' +
893
+ 'public keys, and per token type the balance, the number of free coins and `spendable`, ' +
894
+ 'the most ONE swap half can give (what its largest coins hold, up to maxInputs coins). ' +
895
+ 'Also lists the halves built here that are not handed over yet. The wallet syncs its ' +
896
+ 'shielded coins only; a first sync from genesis takes about 5 minutes, during which the ' +
897
+ 'answer is { synced: false, syncingSeconds }: call again. Spends nothing.',
898
+ inputSchema: {},
899
+ }, run(async () => {
900
+ if (!config)
901
+ throw new Error('swaps are not configured for this server instance');
902
+ return swapWalletInfo(config);
903
+ }));
904
+ server.registerTool('read_swap_offer', {
905
+ description: SWAP_HINT + ' This reads what an offer gives and wants FROM THE TRANSACTION it carries, ' +
906
+ 'never from what its maker says: gives / wants (token type and amount, from the ' +
907
+ "maker's side), the coins it carries, and whether it is bound. Refuses anything that is " +
908
+ 'not a plain swap half (a contract call, unshielded value, more than one token type ' +
909
+ 'given or wanted). Needs no wallet and no network. Check the terms here before take_swap_offer.',
910
+ inputSchema: {
911
+ offer: swapHalf('The offer'),
912
+ },
913
+ }, run(async (args) => readOffer(args.offer)));
914
+ server.registerTool('build_swap_offer', {
915
+ description: SWAP_HINT + ' This builds and proves ONE half from this server\'s wallet: it spends `give` ' +
916
+ 'and creates `want` (and the change) for this wallet. Returns the offer file ' +
917
+ '(`offer`, text starting with swapoffer1, about 25 000 characters) to publish, its `id`, ' +
918
+ 'and the terms read back from the built transaction. Anyone holding the wanted token can ' +
919
+ 'take the offer; the first swap that lands consumes it. The coins stay reserved until ' +
920
+ 'the swap lands: withdraw an offer that is not going to be used with revert_swap_offer. ' +
921
+ 'An offer refers to a recent chain state and expires with it, so publish it promptly. ' +
922
+ '`give.amount` may not exceed `spendable` of get_swap_wallet. Proving takes about 200 s ' +
923
+ 'in-process, 11 to 17 s on a proof server (NIGHTGATE_PROOF_SERVER_URL). Spends no fee.',
924
+ inputSchema: {
925
+ give: swapLeg('give'),
926
+ want: swapLeg('want'),
927
+ bind: z.boolean().optional()
928
+ .describe('true (default): bound, with its offer file. false: unbound, base64 only (halfB64), for a taker that builds unbound too'),
929
+ },
930
+ }, run(async (args) => {
931
+ if (!config)
932
+ throw new Error('swaps are not configured for this server instance');
933
+ return buildOffer(config, { give: legOut(args.give), want: legOut(args.want), bind: args.bind });
934
+ }));
935
+ server.registerTool('take_swap_offer', {
936
+ description: SWAP_HINT + ' This takes an offer: it reads the offer\'s terms from the transaction, ' +
937
+ 'refuses when they differ from `expect`, builds and proves the mirror half from this ' +
938
+ 'server\'s wallet (it spends what the offer wants and creates what the offer gives). ' +
939
+ 'With sponsorSessionId the two halves go to the sponsor at once and the answer is the ' +
940
+ 'job ({ jobId, status, sessionId, id, terms }): poll get_job_status with the returned ' +
941
+ 'sessionId. Without it the answer carries both halves for sponsor_swap. ALWAYS pass ' +
942
+ '`expect` with the terms you agreed to: an offer is text from someone else. A sponsor ' +
943
+ 'that refuses the swap leaves the proven half held under `halfId`: send it again with ' +
944
+ 'sponsor_swap({ halfId, sponsorSessionId }) or release its coins with revert_swap_offer. ' +
945
+ 'If the offer was taken by somebody else first, the job fails: revert_swap_offer.',
946
+ inputSchema: {
947
+ offer: swapHalf('The offer to take'),
948
+ expect: z.object({ gives: swapLeg('expect.gives'), wants: swapLeg('expect.wants') }).optional()
949
+ .describe("The terms you agreed to, from the MAKER's side: what the offer gives and what it wants"),
950
+ sponsorSessionId: z.string().uuid().optional()
951
+ .describe('Sponsor session or the platform sponsor POOL id ' + `${PLATFORM_POOL_SENTINEL}` + '; when given the swap is submitted at once'),
952
+ idempotencyKey: z.string().optional().describe('Dedupes retries of the same submission'),
953
+ },
954
+ }, run(async (args) => {
955
+ if (!config)
956
+ throw new Error('swaps are not configured for this server instance');
957
+ const taken = await takeOffer(config, {
958
+ offer: args.offer,
959
+ ...(args.expect ? { expect: { gives: legOut(args.expect.gives), wants: legOut(args.expect.wants) } } : {}),
960
+ });
961
+ if (!args.sponsorSessionId)
962
+ return taken;
963
+ let job;
964
+ try {
965
+ job = await client.callAction('sponsorSwap', {
966
+ makerHalfB64: taken.makerHalfB64,
967
+ takerHalfB64: taken.takerHalfB64,
968
+ sponsorSessionId: args.sponsorSessionId,
969
+ idempotencyKey: args.idempotencyKey,
970
+ });
971
+ }
972
+ catch (err) {
973
+ if (!(err instanceof NightgateApiError))
974
+ throw err;
975
+ throw new NightgateApiError(err.status, err.code, err.message, { ...(err.detail ?? {}), halfId: taken.id });
976
+ }
977
+ trackHalfJob(taken.id, job.jobId);
978
+ return { ...job, id: taken.id, terms: taken.terms, bound: taken.bound, buildMs: taken.buildMs };
979
+ }));
980
+ server.registerTool('revert_swap_offer', {
981
+ description: 'Release the coins of a swap half this server built (build_swap_offer or take_swap_offer) ' +
982
+ 'that is not going to be used. Until then, or until the swap lands, the coins count as ' +
983
+ 'spent in this wallet. It does not recall an offer somebody already holds: to make a ' +
984
+ 'published offer worthless, spend its coins in another swap. Ids are listed by ' +
985
+ 'get_swap_wallet; a half whose swap landed leaves the list when get_job_status reports it.',
986
+ inputSchema: {
987
+ id: z.string().regex(/^[0-9a-f]{32}$/, 'id must be the 32 hex characters a swap tool returned'),
988
+ },
989
+ }, run(async (args) => {
990
+ if (!config)
991
+ throw new Error('swaps are not configured for this server instance');
992
+ return revertHalf(config, args.id);
993
+ }));
994
+ server.registerTool('sponsor_swap', {
995
+ description: SWAP_HINT + ' This hands the two halves to the sponsor, which checks them, merges them, ' +
996
+ 'pays the dust and submits: each half carries an offer and nothing else, gives exactly ' +
997
+ 'one token type and wants exactly one other, both on the sponsor\'s token allow-list and ' +
998
+ 'never NIGHT, at most 4 inputs and 2 outputs per half, and the halves mirror each other ' +
999
+ 'in types and amounts. A half may be bound or unbound and is passed as offer file text ' +
1000
+ 'or base64. Off on a server by default (NIGHTGATE_SPONSOR_ALLOW_SWAPS); an agent grant ' +
1001
+ 'needs sponsorSwap in its allowedActions. Job result { txHash, swap: { gives, wants } }. ' +
1002
+ 'An offer fills once: if it was taken first by somebody else the job fails. Pass both ' +
1003
+ 'halves, or `halfId` alone for an offer this server took (take_swap_offer keeps both ' +
1004
+ 'halves). Poll get_job_status with the sessionId RETURNED by this call. ' + POLL_HINT,
1005
+ inputSchema: {
1006
+ makerHalf: swapHalf("The maker's half (the offer)").optional(),
1007
+ takerHalf: swapHalf("The taker's half").optional(),
1008
+ sponsorSessionId: z.string().uuid()
1009
+ .describe('Wallet session that pays the dust and submits, or the platform sponsor POOL id ' +
1010
+ `${PLATFORM_POOL_SENTINEL}`),
1011
+ idempotencyKey: z.string().optional()
1012
+ .describe('Dedupes retries of the SAME two halves'),
1013
+ halfId: z.string().regex(/^[0-9a-f]{32}$/, 'halfId must be the 32 hex characters a swap tool returned').optional()
1014
+ .describe('Id of the half this server built for the swap: alone it names a taken offer, next to both halves it ties the job to the half'),
1015
+ },
1016
+ }, run(async (args) => {
1017
+ if (!!args.makerHalf !== !!args.takerHalf)
1018
+ throw new Error('sponsor_swap needs makerHalf AND takerHalf, or halfId alone');
1019
+ if (!args.makerHalf && !args.halfId)
1020
+ throw new Error('sponsor_swap needs makerHalf and takerHalf, or the halfId of an offer this server took');
1021
+ const halves = args.makerHalf && args.takerHalf
1022
+ ? { makerHalfB64: args.makerHalf, takerHalfB64: args.takerHalf }
1023
+ : takenHalves(args.halfId);
1024
+ const job = await client.callAction('sponsorSwap', {
1025
+ ...halves,
1026
+ sponsorSessionId: args.sponsorSessionId,
1027
+ idempotencyKey: args.idempotencyKey,
1028
+ });
1029
+ if (args.halfId)
1030
+ trackHalfJob(args.halfId, job?.jobId);
1031
+ return job;
1032
+ }));
873
1033
  server.registerTool('derive_token_type', {
874
1034
  description: 'Derive the raw token type a minting contract produces (compute-only, no wallet, no ' +
875
1035
  'chain access). A custom token is addressed by rawTokenType(domainSeparator, ' +
@@ -895,16 +1055,21 @@ export function registerTools(server, client, config) {
895
1055
  'reconciliation_required = broadcast outcome unknown to the server yet, the transaction ' +
896
1056
  'identifier is in the error message, the server keeps resolving it via the indexer. ' +
897
1057
  'Batches: once confirmed, chainSegments ([{ segment, calls, applied }]) says which calls ' +
898
- 'applied; resend only the ones with applied false.',
1058
+ 'applied; resend only the ones with applied false. Swaps: the result carries swap ' +
1059
+ '{ gives, wants }, what was exchanged from the maker\'s side.',
899
1060
  inputSchema: {
900
1061
  jobId: z.string().uuid().describe('Job id returned by a submit action'),
901
1062
  sessionId: z.string().uuid()
902
1063
  .describe('Wallet session id the job belongs to; for sponsor jobs the sessionId RETURNED by the sponsor call'),
903
1064
  },
904
- }, run(async (args) => client.callAction('getJobStatus', {
905
- jobId: args.jobId,
906
- sessionId: args.sessionId,
907
- })));
1065
+ }, run(async (args) => {
1066
+ const job = await client.callAction('getJobStatus', {
1067
+ jobId: args.jobId,
1068
+ sessionId: args.sessionId,
1069
+ });
1070
+ settleHalfJob(args.jobId, job?.status);
1071
+ return job;
1072
+ }));
908
1073
  }
909
1074
  /**
910
1075
  * Uniform handler wrapper: JSON success payloads, API errors reported as
package/dist/tools.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@odatano/nightgate-mcp",
3
- "version": "0.8.1",
3
+ "version": "0.9.0",
4
4
  "description": "MCP server exposing NIGHTGATE (Midnight blockchain attestation layer) to AI agents",
5
5
  "license": "Apache-2.0",
6
6
  "publishConfig": {
@@ -23,7 +23,7 @@
23
23
  "scripts": {
24
24
  "build": "tsc -p tsconfig.json",
25
25
  "start": "node dist/index.js",
26
- "integration": "npm run build && node --env-file-if-exists=.env scripts/integration-mcp.mjs",
26
+ "integration": "npm run build && node --env-file-if-exists=.env scripts/integration-mcp.mjs && node scripts/integration-swap.mjs",
27
27
  "live:sponsor-unbound": "npm run build && node --env-file-if-exists=.env scripts/live-sponsor-unbound.mjs",
28
28
  "prepublishOnly": "npm run build",
29
29
  "live:stdio": "npm run build && node --env-file-if-exists=.env scripts/live-stdio-smoke.mjs",
@@ -49,7 +49,7 @@
49
49
  "zod": "^3.23.0"
50
50
  },
51
51
  "peerDependencies": {
52
- "@odatano/nightgate-tx": ">=0.6.0"
52
+ "@odatano/nightgate-tx": ">=0.8.0"
53
53
  },
54
54
  "peerDependenciesMeta": {
55
55
  "@odatano/nightgate-tx": {
@@ -57,7 +57,7 @@
57
57
  }
58
58
  },
59
59
  "devDependencies": {
60
- "@odatano/nightgate-tx": "^0.6.0",
60
+ "@odatano/nightgate-tx": "^0.8.0",
61
61
  "@types/node": "^20.0.0",
62
62
  "typescript": "^5.5.0"
63
63
  }