@odatano/nightgate-mcp 0.10.1 → 0.12.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 +33 -0
- package/README.md +16 -114
- package/dist/builder.d.ts +6 -4
- package/dist/builder.js +13 -20
- package/dist/builder.js.map +1 -1
- package/dist/built.d.ts +23 -0
- package/dist/built.js +58 -0
- package/dist/built.js.map +1 -0
- package/dist/config.d.ts +5 -0
- package/dist/config.js +23 -0
- package/dist/config.js.map +1 -1
- package/dist/factory.d.ts +1 -1
- package/dist/factory.js +3 -13
- package/dist/factory.js.map +1 -1
- package/dist/swap.js +8 -11
- package/dist/swap.js.map +1 -1
- package/dist/tools.js +47 -47
- package/dist/tools.js.map +1 -1
- package/docs/configuration.md +44 -0
- package/docs/tools.md +84 -0
- package/package.json +4 -3
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,39 @@ The README says which NIGHTGATE the current version needs.
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.12.0] - 2026-10-13
|
|
11
|
+
|
|
12
|
+
Needs NIGHTGATE 0.33.0 and `@odatano/nightgate-tx` 0.12.2.
|
|
13
|
+
|
|
14
|
+
### Changed
|
|
15
|
+
|
|
16
|
+
- `build_sponsorable_transaction` and the local `mint_token` read contract
|
|
17
|
+
state through the NIGHTGATE API (`createTxBuilder({ api })`); they dial no
|
|
18
|
+
indexer and no node. `NIGHTGATE_INDEXER_HTTP_URL` and `NIGHTGATE_INDEXER_WS_URL`
|
|
19
|
+
switch them back to a Midnight indexer.
|
|
20
|
+
- The swap wallet syncs from `NIGHTGATE_INDEXER_HTTP_URL` and
|
|
21
|
+
`NIGHTGATE_INDEXER_WS_URL` only; without them the swap tools refuse with
|
|
22
|
+
the two names instead of dialing the public indexer.
|
|
23
|
+
- `build_sponsorable_transaction` returns `txId` (sha256 of the bytes),
|
|
24
|
+
`characters` and `bytes` instead of the base64; the bytes stay in the server
|
|
25
|
+
process for one hour, `outFile` writes them to a path.
|
|
26
|
+
- `sponsor_unbound_transaction` and `sponsor_finalized_transaction` take `txId`
|
|
27
|
+
or `file` (base64 text or raw bytes); the base64 argument remains for callers
|
|
28
|
+
without either. The result carries `sent` with characters, bytes and `txId`.
|
|
29
|
+
|
|
30
|
+
## [0.11.0] - 2026-10-12
|
|
31
|
+
|
|
32
|
+
Needs NIGHTGATE 0.32.0.
|
|
33
|
+
|
|
34
|
+
### Changed
|
|
35
|
+
|
|
36
|
+
- `sponsor_finalized_transaction`, `sponsor_unbound_transaction`, `sponsor_swap`
|
|
37
|
+
and `mint_token` take no `sponsorSessionId`: the server's sponsor pool pays,
|
|
38
|
+
or the wallet session the agent grant is pinned to.
|
|
39
|
+
- `take_swap_offer`: `submit: true` hands both halves to the sponsor at once;
|
|
40
|
+
it replaces the sponsor session id as the trigger.
|
|
41
|
+
- The platform pool id is gone from every tool description.
|
|
42
|
+
|
|
10
43
|
## [0.10.1] - 2026-10-03
|
|
11
44
|
|
|
12
45
|
### Fixed
|
package/README.md
CHANGED
|
@@ -8,19 +8,21 @@
|
|
|
8
8
|
# @odatano/nightgate-mcp
|
|
9
9
|
|
|
10
10
|
[](https://www.npmjs.com/package/@odatano/nightgate-mcp)
|
|
11
|
-
[](https://www.npmjs.com/package/@odatano/nightgate)
|
|
12
12
|
[](https://modelcontextprotocol.io/)
|
|
13
13
|
[](LICENSE)
|
|
14
14
|
|
|
15
|
-
MCP server for [NIGHTGATE](https://github.com/ODATANO/NIGHTGATE)
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
MCP server for [NIGHTGATE](https://github.com/ODATANO/NIGHTGATE) on Midnight.
|
|
16
|
+
Anchors documents, proves zero-knowledge claims over hidden fields, grants and
|
|
17
|
+
verifies disclosure against live contract state; swaps shielded tokens over an
|
|
18
|
+
offer board and mints them on a token factory. Transactions are sponsored, the
|
|
19
|
+
agent holds no NIGHT. The chain is read through the
|
|
20
|
+
[ODATANO API](https://api.odatano.dev): no indexer, no node.
|
|
19
21
|
|
|
20
22
|
## Quick start
|
|
21
23
|
|
|
22
|
-
Get an `oda_…` key at [api.
|
|
23
|
-
|
|
24
|
+
Get an `oda_…` key at [api.odatano.dev](https://api.odatano.dev) (Cardano
|
|
25
|
+
wallet sign-in, a redeem code, or tADA over x402), then:
|
|
24
26
|
|
|
25
27
|
```json
|
|
26
28
|
{
|
|
@@ -41,115 +43,15 @@ The hosted gateway is the default (Midnight preprod). The same key works for
|
|
|
41
43
|
|
|
42
44
|
## Tools
|
|
43
45
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
| `prepare_document_proof`, `prepare_membership_set` | Build proof inputs: salted content tree, set root |
|
|
48
|
-
| `anchor_document`, `attest_agent_output` | Anchor a document hash or an agent-output envelope (async) |
|
|
49
|
-
| `prove_field_predicate`, `prove_field_equality`, `prove_field_membership` | ZK claims over one hidden field (async) |
|
|
50
|
-
| `prove_field_predicates_batch` | Up to 8 claims in one transaction (async) |
|
|
51
|
-
| `prove_document_integrity`, `prove_document_diff` | ZK claims across two documents (async) |
|
|
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 and shielded keys it builds under |
|
|
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, or a board offer plus the taker half, to a sponsor that merges, pays and submits (async) |
|
|
58
|
-
| `post_swap_offer`, `list_swap_offers`, `retire_swap_offer` | The server's offer board: post a maker half, find open offers, take yours down |
|
|
59
|
-
| `get_swap_offer`, `my_swap_offers`, `get_board_status` | Follow one offer, see your own posts and their fills, read the board's counts without credentials |
|
|
60
|
-
| `mint_token` | Mint a shielded token with a name of your own on a token factory: built here with the seed as issuer and sponsored, or by a server session (async) |
|
|
61
|
-
| `grant_disclosure_to_holders`, `revoke_holder_disclosure`, `claim_disclosure`, `holder_claim_key` | Disclose a document to the holders of a token; read it with the secret behind a registered claim key |
|
|
62
|
-
| `derive_token_type` | Token type a minting contract produces |
|
|
63
|
-
| `get_job_status` | Poll an async job; batches report `chainSegments`, swaps `swap` |
|
|
64
|
-
| `analytics_*` | Midnight aggregates via ODATANO ASTRA, when the host serves it |
|
|
65
|
-
|
|
66
|
-
Errors carry the server's HTTP status and `code` (`INVALID_ARGUMENT`, ...).
|
|
67
|
-
|
|
68
|
-
## Fee sponsoring
|
|
69
|
-
|
|
70
|
-
1. `build_sponsorable_transaction` builds and proves the call locally (needs
|
|
71
|
-
`@odatano/nightgate-tx` installed next to the server and `NIGHTGATE_SEED_HEX`).
|
|
72
|
-
2. `sponsor_unbound_transaction` with a sponsor session id or the platform pool
|
|
73
|
-
id `00000000-0000-0000-0000-706f6f6c0000`.
|
|
74
|
-
3. `get_job_status` with the returned `sessionId`, then `verify_attestation`.
|
|
75
|
-
|
|
76
|
-
`failed` / `CHAIN_EXECUTION_FAILED`: landed but not applied; build again, never
|
|
77
|
-
resubmit the same bytes.
|
|
78
|
-
|
|
79
|
-
## Shielded swaps
|
|
80
|
-
|
|
81
|
-
Two wallets exchange two shielded tokens without a contract. Each side builds
|
|
82
|
-
one half, the halves mirror each other, a sponsor merges them and pays the fee.
|
|
83
|
-
Needs `@odatano/nightgate-tx` >= 0.8.0 next to the server and `NIGHTGATE_SEED_HEX`.
|
|
84
|
-
|
|
85
|
-
1. `get_swap_wallet`: balance, free coins and `spendable` per token type. The
|
|
86
|
-
first call starts the sync of the shielded coins (about 5 minutes from
|
|
87
|
-
genesis, seconds with `NIGHTGATE_SWAP_STATE_FILE`).
|
|
88
|
-
2. Maker: `build_swap_offer` with `give` and `want` returns the offer file
|
|
89
|
-
(`swapoffer1...`) to publish, or `post_swap_offer` puts it on the server's
|
|
90
|
-
board.
|
|
91
|
-
3. Taker: `list_swap_offers` or `read_swap_offer`, then `take_swap_offer` with
|
|
92
|
-
`expect`, a `sponsorSessionId` and, for a board entry, its `offerId`. It
|
|
93
|
-
builds the mirror half and submits both.
|
|
94
|
-
4. `get_job_status` with the returned `sessionId`; the result carries `swap`.
|
|
95
|
-
The maker follows the offer with `get_swap_offer` or `my_swap_offers`
|
|
96
|
-
(`filled` + `filledTxHash`); `list_swap_offers` with `status: all` and
|
|
97
|
-
`since` is the board's change feed.
|
|
98
|
-
|
|
99
|
-
- One half spends at most `NIGHTGATE_SWAP_MAX_INPUTS` coins, the smallest that
|
|
100
|
-
fit. `give.amount` above `spendable` is refused before proving.
|
|
101
|
-
- An offer fills once. Its coins stay reserved in the maker's wallet until the
|
|
102
|
-
swap lands or `revert_swap_offer` releases them.
|
|
103
|
-
- A refused submission keeps the proven half: `sponsor_swap` with its `halfId`.
|
|
104
|
-
- The sponsor needs swaps switched on and both token types on its list; an
|
|
105
|
-
agent grant needs `sponsorSwap` in `allowedActions`.
|
|
106
|
-
- With `NIGHTGATE_PROOF_SERVER_URL` the proof server sees the coins a half
|
|
107
|
-
spends: use one you run yourself.
|
|
108
|
-
- Tokens to swap: `mint_token` mints on a token factory to this wallet (or
|
|
109
|
-
any other wallet, given both of its keys). Without a `sessionId` the seed is
|
|
110
|
-
the issuer: the mint is built and proven here (needs
|
|
111
|
-
`@odatano/contract-token-factory` next to `@odatano/nightgate-tx`; the
|
|
112
|
-
prover keys come from the package's release assets on first use) and the
|
|
113
|
-
sponsor pays. A landed mint makes the type known to the sponsor.
|
|
114
|
-
- `get_board_status` says whether a sponsor is ready before anything is built.
|
|
46
|
+
[docs/tools.md](docs/tools.md) lists every tool and the two flows: fee
|
|
47
|
+
sponsoring (build and prove here, a sponsor pays) and shielded swaps (two
|
|
48
|
+
halves, one sponsor). Errors carry the server's HTTP status and `code`.
|
|
115
49
|
|
|
116
50
|
## Configuration
|
|
117
51
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
| `ODATANO_ACCESS_URL` | `https://api.preprod.odatano.dev` | Gateway or a direct NIGHTGATE host |
|
|
122
|
-
| `ODATANO_ACCESS_USER` / `_PASSWORD` | unset | Basic auth of a direct instance |
|
|
123
|
-
| `NIGHTGATE_SEED_HEX` | unset | Seed (128 hex) for local building and swaps; never a tool argument |
|
|
124
|
-
| `NIGHTGATE_NETWORK` | `preprod` | Network of the local builder |
|
|
125
|
-
| `NIGHTGATE_PROOF_SERVER_URL` | unset | Prove on a proof server instead of in-process |
|
|
126
|
-
| `NIGHTGATE_SWAP_STATE_FILE` | unset | File for the swap wallet's state; it holds the wallet's coins, keep it like a key |
|
|
127
|
-
| `NIGHTGATE_SWAP_MAX_INPUTS` | `4` | Most coins one swap half spends; the sponsor's limit applies |
|
|
128
|
-
| `NIGHTGATE_TIMEOUT_MS` | `30000` | Per-request timeout |
|
|
129
|
-
|
|
130
|
-
Also: `NIGHTGATE_SERVICE_PATH`, `NIGHTGATE_INDEXER_SERVICE_PATH`, `ODATANO_ANALYTICS_URL`, `NIGHTGATE_INDEXER_HTTP_URL`,
|
|
131
|
-
`NIGHTGATE_INDEXER_WS_URL`, `NIGHTGATE_NODE_URL`, `NIGHTGATE_ZK_CONFIG_BASE_URL`,
|
|
132
|
-
`NIGHTGATE_ZK_CACHE_DIR`.
|
|
133
|
-
|
|
134
|
-
## Own instance
|
|
135
|
-
|
|
136
|
-
```bash
|
|
137
|
-
docker run -d -p 4004:4004 -e ENCRYPTION_KEY=$(openssl rand -hex 32) \
|
|
138
|
-
-e NIGHTGATE_HTTP_PASSWORD=change-me -v nightgate-data:/data ghcr.io/odatano/nightgate:latest
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
Then `ODATANO_ACCESS_URL=http://localhost:4004`, `ODATANO_ACCESS_USER=nightgate`,
|
|
142
|
-
`ODATANO_ACCESS_PASSWORD=change-me`. For agents, create a grant with
|
|
143
|
-
`createAgentGrant` and pass its `ngat_…` token as `ODATANO_ACCESS_KEY`.
|
|
144
|
-
|
|
145
|
-
## Compatibility
|
|
146
|
-
|
|
147
|
-
NIGHTGATE >= 0.24.0; `chainSegments` needs >= 0.28.0, swaps need >= 0.29.0, the offer board and holder disclosure need >= 0.30.0, `get_swap_offer`, `my_swap_offers`, `get_board_status`, the server way of `mint_token` and the `status`/`since` filters need >= 0.30.1.
|
|
148
|
-
`@odatano/nightgate-tx` >= 0.10.2 for local building (local minting also needs `@odatano/contract-token-factory`). Per version: [CHANGELOG](CHANGELOG.md).
|
|
149
|
-
|
|
150
|
-
Local building needs ONE `@midnight-ntwrk/ledger-v8` in the install
|
|
151
|
-
(`npm ls @midnight-ntwrk/ledger-v8`). `expected instance of ...` means two:
|
|
152
|
-
`npm dedupe`.
|
|
52
|
+
[docs/configuration.md](docs/configuration.md): every variable, an own
|
|
53
|
+
NIGHTGATE instance, version requirements. Needs NIGHTGATE >= 0.33.0, which the
|
|
54
|
+
hosted gateway runs.
|
|
153
55
|
|
|
154
56
|
## Development
|
|
155
57
|
|
|
@@ -161,7 +63,7 @@ Live lanes:
|
|
|
161
63
|
|
|
162
64
|
```bash
|
|
163
65
|
NIGHTGATE_LIVE=1 NIGHTGATE_TEST_CONTRACT=<vault> NIGHTGATE_TEST_PAYLOAD_HASH=<64 hex> npm run integration
|
|
164
|
-
NIGHTGATE_SEED_HEX=<hex> NIGHTGATE_VAULT=<vault>
|
|
66
|
+
NIGHTGATE_SEED_HEX=<hex> NIGHTGATE_VAULT=<vault> npm run live:sponsor-unbound
|
|
165
67
|
```
|
|
166
68
|
|
|
167
69
|
## License
|
package/dist/builder.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type NightgateMcpConfig } from './config.js';
|
|
2
|
+
import { type TxBytesInfo } from './built.js';
|
|
2
3
|
/**
|
|
3
4
|
* Call kinds this tool can prepare; one per attestation-vault helper.
|
|
4
5
|
*
|
|
@@ -36,11 +37,12 @@ export interface BuildInput {
|
|
|
36
37
|
merkleProof?: Record<string, unknown>;
|
|
37
38
|
/** Cross-root witness bundle { schema, openingA, openingB } for the two comparison calls. */
|
|
38
39
|
docPair?: Record<string, unknown>;
|
|
40
|
+
/** Where to write the built bytes as base64, for a hand-over outside this process. */
|
|
41
|
+
outFile?: string;
|
|
39
42
|
}
|
|
40
|
-
export interface BuildOutput {
|
|
43
|
+
export interface BuildOutput extends TxBytesInfo {
|
|
41
44
|
channel: 'unbound' | 'bound';
|
|
42
|
-
|
|
43
|
-
finalizedTxB64?: string;
|
|
45
|
+
file?: string;
|
|
44
46
|
attesterId: string;
|
|
45
47
|
provingMode: string;
|
|
46
48
|
serializedBytes: number;
|
package/dist/builder.js
CHANGED
|
@@ -5,13 +5,16 @@
|
|
|
5
5
|
* or a proof server) and sign an AttestationVault call on THIS machine with
|
|
6
6
|
* the seed from `NIGHTGATE_SEED_HEX`, so the key and the attestation secret
|
|
7
7
|
* never travel; the result is the fee-unpaid transaction the sponsor tools
|
|
8
|
-
* submit.
|
|
9
|
-
*
|
|
10
|
-
* is
|
|
8
|
+
* submit. Contract state comes from the NIGHTGATE API unless an indexer is
|
|
9
|
+
* configured. The package is an OPTIONAL peer dependency (it carries the
|
|
10
|
+
* Midnight SDK): the tool is always registered and reports how to install it
|
|
11
|
+
* when it is missing.
|
|
11
12
|
*/
|
|
12
13
|
import { join } from 'node:path';
|
|
13
14
|
import { tmpdir } from 'node:os';
|
|
15
|
+
import { builderChainOptions } from './config.js';
|
|
14
16
|
import { txExport } from './tx-module.js';
|
|
17
|
+
import { holdBuilt, writeTxFile } from './built.js';
|
|
15
18
|
/**
|
|
16
19
|
* Call kinds this tool can prepare; one per attestation-vault helper.
|
|
17
20
|
*
|
|
@@ -68,7 +71,7 @@ async function loadModules(ref = DEFAULT_ARTIFACT) {
|
|
|
68
71
|
}
|
|
69
72
|
catch (err) {
|
|
70
73
|
modules.delete(ref);
|
|
71
|
-
throw new Error(`local building of '${ref}' needs @odatano/nightgate-tx >= 0.
|
|
74
|
+
throw new Error(`local building of '${ref}' needs @odatano/nightgate-tx >= 0.12.2 next to the MCP server ` +
|
|
72
75
|
'(npm install @odatano/nightgate-tx): ' + (err instanceof Error ? err.message : String(err)));
|
|
73
76
|
}
|
|
74
77
|
})();
|
|
@@ -76,13 +79,6 @@ async function loadModules(ref = DEFAULT_ARTIFACT) {
|
|
|
76
79
|
}
|
|
77
80
|
return entry;
|
|
78
81
|
}
|
|
79
|
-
function defaults(network) {
|
|
80
|
-
return {
|
|
81
|
-
indexerHttpUrl: `https://indexer.${network}.midnight.network/api/v4/graphql`,
|
|
82
|
-
indexerWsUrl: `wss://indexer.${network}.midnight.network/api/v4/graphql/ws`,
|
|
83
|
-
nodeUrl: `wss://rpc.${network}.midnight.network/`,
|
|
84
|
-
};
|
|
85
|
-
}
|
|
86
82
|
/**
|
|
87
83
|
* One builder per VAULT LINEAGE (the seed is fixed, the circuits are not);
|
|
88
84
|
* created on first use. A 16-slot and a 32-slot vault need different
|
|
@@ -98,7 +94,6 @@ async function getBuilder(config, ref = DEFAULT_ARTIFACT) {
|
|
|
98
94
|
entry = (async () => {
|
|
99
95
|
const { createTxBuilder, Contract } = await loadModules(ref);
|
|
100
96
|
const network = config.network;
|
|
101
|
-
const d = defaults(network);
|
|
102
97
|
// An explicit zkConfigBaseUrl pins ONE lineage, so it only applies to
|
|
103
98
|
// the default ref; anything else derives its own from the server.
|
|
104
99
|
const zkBase = ref === DEFAULT_ARTIFACT && config.zkConfigBaseUrl
|
|
@@ -107,9 +102,7 @@ async function getBuilder(config, ref = DEFAULT_ARTIFACT) {
|
|
|
107
102
|
const opts = {
|
|
108
103
|
seedHex: config.seedHex,
|
|
109
104
|
networkId: network,
|
|
110
|
-
|
|
111
|
-
indexerWsUrl: config.indexerWsUrl ?? d.indexerWsUrl,
|
|
112
|
-
nodeUrl: config.nodeUrl ?? d.nodeUrl,
|
|
105
|
+
...builderChainOptions(config),
|
|
113
106
|
zkConfigBaseUrl: zkBase,
|
|
114
107
|
contractClass: Contract,
|
|
115
108
|
contractName: ref,
|
|
@@ -230,17 +223,18 @@ export async function buildSponsorable(config, input) {
|
|
|
230
223
|
const mods = await loadModules(ref);
|
|
231
224
|
const call = prepareCall(mods, input, b.attestationSecret, String(b.attesterId));
|
|
232
225
|
const built = await b.buildSponsorable({ contractAddress: input.contractAddress, call, bind: input.bind ? true : false });
|
|
226
|
+
const b64 = String(input.bind ? built.finalizedTxB64 : built.unboundTxB64);
|
|
227
|
+
if (input.outFile)
|
|
228
|
+
await writeTxFile(input.outFile, b64);
|
|
233
229
|
const out = {
|
|
230
|
+
...holdBuilt(b64),
|
|
234
231
|
channel: input.bind ? 'bound' : 'unbound',
|
|
232
|
+
...(input.outFile ? { file: input.outFile } : {}),
|
|
235
233
|
attesterId: String(b.attesterId),
|
|
236
234
|
provingMode: String(b.provingMode ?? (config.proofServerUrl ? 'server' : 'wasm')),
|
|
237
235
|
serializedBytes: Number(built.serializedBytes ?? 0),
|
|
238
236
|
buildMs: Date.now() - t0,
|
|
239
237
|
};
|
|
240
|
-
if (input.bind)
|
|
241
|
-
out.finalizedTxB64 = built.finalizedTxB64;
|
|
242
|
-
else
|
|
243
|
-
out.unboundTxB64 = built.unboundTxB64;
|
|
244
238
|
return out;
|
|
245
239
|
}
|
|
246
240
|
const identities = new Map();
|
|
@@ -272,7 +266,6 @@ export async function attesterIdentity(config) {
|
|
|
272
266
|
return {
|
|
273
267
|
attesterId: String(b.attesterId),
|
|
274
268
|
network: config.network,
|
|
275
|
-
// from @odatano/nightgate-tx 0.8.0 on
|
|
276
269
|
...(b.addresses?.shielded ? { shieldedAddress: String(b.addresses.shielded) } : {}),
|
|
277
270
|
...(b.shieldedKeys ? { coinPublicKey: String(b.shieldedKeys.coinPublicKey), encryptionPublicKey: String(b.shieldedKeys.encryptionPublicKey) } : {}),
|
|
278
271
|
};
|
package/dist/builder.js.map
CHANGED
|
@@ -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/built.d.ts
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/** What was built or sent: `txId` is the sha256 of the bytes, so both ends compare one value. */
|
|
2
|
+
export interface TxBytesInfo {
|
|
3
|
+
txId: string;
|
|
4
|
+
characters: number;
|
|
5
|
+
bytes: number;
|
|
6
|
+
}
|
|
7
|
+
export declare function describeTx(b64: string): TxBytesInfo;
|
|
8
|
+
/** Keeps the bytes for one transaction TTL, at most HOLD_MAX at a time. */
|
|
9
|
+
export declare function holdBuilt(b64: string): TxBytesInfo;
|
|
10
|
+
export declare function heldTx(txId: string): string;
|
|
11
|
+
/** A file holding the transaction as base64 text or as the raw bytes. */
|
|
12
|
+
export declare function readTxFile(path: string): Promise<string>;
|
|
13
|
+
export declare function writeTxFile(path: string, b64: string): Promise<void>;
|
|
14
|
+
export interface TxSource {
|
|
15
|
+
txId?: string;
|
|
16
|
+
file?: string;
|
|
17
|
+
b64?: string;
|
|
18
|
+
}
|
|
19
|
+
/** Exactly one source names the bytes. The base64 argument is kept for callers without a file. */
|
|
20
|
+
export declare function resolveTxSource(source: TxSource, b64Name: string): Promise<{
|
|
21
|
+
b64: string;
|
|
22
|
+
sent: TxBytesInfo;
|
|
23
|
+
}>;
|
package/dist/built.js
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
// Built transaction bytes stay in this process or in a file; a tool argument carries their id or path.
|
|
2
|
+
// A model reproducing 16,000 base64 characters verbatim drops some, and the sponsor reads a damaged transaction.
|
|
3
|
+
import { createHash } from 'node:crypto';
|
|
4
|
+
import { mkdir, readFile, writeFile } from 'node:fs/promises';
|
|
5
|
+
import { dirname } from 'node:path';
|
|
6
|
+
const HOLD_MS = 60 * 60 * 1000;
|
|
7
|
+
const HOLD_MAX = 64;
|
|
8
|
+
const held = new Map();
|
|
9
|
+
export function describeTx(b64) {
|
|
10
|
+
const bytes = Buffer.from(b64, 'base64');
|
|
11
|
+
return { txId: createHash('sha256').update(bytes).digest('hex'), characters: b64.length, bytes: bytes.length };
|
|
12
|
+
}
|
|
13
|
+
/** Keeps the bytes for one transaction TTL, at most HOLD_MAX at a time. */
|
|
14
|
+
export function holdBuilt(b64) {
|
|
15
|
+
const info = describeTx(b64);
|
|
16
|
+
const now = Date.now();
|
|
17
|
+
for (const [id, entry] of held)
|
|
18
|
+
if (now - entry.at > HOLD_MS)
|
|
19
|
+
held.delete(id);
|
|
20
|
+
while (held.size >= HOLD_MAX)
|
|
21
|
+
held.delete(held.keys().next().value);
|
|
22
|
+
held.set(info.txId, { b64, at: now });
|
|
23
|
+
return info;
|
|
24
|
+
}
|
|
25
|
+
export function heldTx(txId) {
|
|
26
|
+
const entry = held.get(txId);
|
|
27
|
+
if (!entry)
|
|
28
|
+
throw new Error(`no transaction with txId ${txId} is held by this server process: build it again, or pass its file`);
|
|
29
|
+
return entry.b64;
|
|
30
|
+
}
|
|
31
|
+
const BASE64_TEXT = /^[A-Za-z0-9+/=\s]+$/;
|
|
32
|
+
/** A file holding the transaction as base64 text or as the raw bytes. */
|
|
33
|
+
export async function readTxFile(path) {
|
|
34
|
+
let raw;
|
|
35
|
+
try {
|
|
36
|
+
raw = await readFile(path);
|
|
37
|
+
}
|
|
38
|
+
catch (err) {
|
|
39
|
+
throw new Error(`transaction file ${path} is not readable: ${err.message}`);
|
|
40
|
+
}
|
|
41
|
+
if (raw.length === 0)
|
|
42
|
+
throw new Error(`transaction file ${path} is empty`);
|
|
43
|
+
const text = raw.toString('latin1');
|
|
44
|
+
return BASE64_TEXT.test(text) ? text.replace(/\s+/g, '') : raw.toString('base64');
|
|
45
|
+
}
|
|
46
|
+
export async function writeTxFile(path, b64) {
|
|
47
|
+
await mkdir(dirname(path), { recursive: true });
|
|
48
|
+
await writeFile(path, b64, { mode: 0o600 });
|
|
49
|
+
}
|
|
50
|
+
/** Exactly one source names the bytes. The base64 argument is kept for callers without a file. */
|
|
51
|
+
export async function resolveTxSource(source, b64Name) {
|
|
52
|
+
const given = [source.txId, source.file, source.b64].filter((v) => v !== undefined && v !== '').length;
|
|
53
|
+
if (given !== 1)
|
|
54
|
+
throw new Error(`pass exactly one of txId, file or ${b64Name}`);
|
|
55
|
+
const b64 = source.txId ? heldTx(source.txId) : source.file ? await readTxFile(source.file) : String(source.b64);
|
|
56
|
+
return { b64, sent: describeTx(b64) };
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=built.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"built.js","sourceRoot":"","sources":["../src/built.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -35,6 +35,7 @@ export interface NightgateMcpConfig {
|
|
|
35
35
|
seedHex?: string;
|
|
36
36
|
/** Midnight network the builder targets; default preprod. */
|
|
37
37
|
network: string;
|
|
38
|
+
/** A Midnight indexer and node for the builders to read the chain from. Without them the NIGHTGATE API is read. */
|
|
38
39
|
indexerHttpUrl?: string;
|
|
39
40
|
indexerWsUrl?: string;
|
|
40
41
|
nodeUrl?: string;
|
|
@@ -50,3 +51,7 @@ export interface NightgateMcpConfig {
|
|
|
50
51
|
swapMaxInputs?: number;
|
|
51
52
|
}
|
|
52
53
|
export declare function loadConfig(env?: NodeJS.ProcessEnv): NightgateMcpConfig;
|
|
54
|
+
/** The NIGHTGATE connection as the txbuilder's `api` option takes it: same host, same credentials. */
|
|
55
|
+
export declare function apiConnectOptions(config: NightgateMcpConfig): Record<string, unknown>;
|
|
56
|
+
/** Where a local builder reads contract state: the configured indexer and node, else the NIGHTGATE API. */
|
|
57
|
+
export declare function builderChainOptions(config: NightgateMcpConfig): Record<string, unknown>;
|
package/dist/config.js
CHANGED
|
@@ -38,4 +38,27 @@ export function loadConfig(env = process.env) {
|
|
|
38
38
|
swapMaxInputs,
|
|
39
39
|
};
|
|
40
40
|
}
|
|
41
|
+
/** The NIGHTGATE connection as the txbuilder's `api` option takes it: same host, same credentials. */
|
|
42
|
+
export function apiConnectOptions(config) {
|
|
43
|
+
const agent = config.token?.startsWith('ngat_');
|
|
44
|
+
return {
|
|
45
|
+
baseUrl: config.baseUrl,
|
|
46
|
+
servicePath: config.servicePath,
|
|
47
|
+
timeoutMs: config.timeoutMs,
|
|
48
|
+
...(agent ? { agentToken: config.token } : config.token ? { token: config.token } : {}),
|
|
49
|
+
...(config.username && (agent || !config.token) ? { username: config.username, password: config.password } : {}),
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
/** Where a local builder reads contract state: the configured indexer and node, else the NIGHTGATE API. */
|
|
53
|
+
export function builderChainOptions(config) {
|
|
54
|
+
if (config.indexerHttpUrl && config.indexerWsUrl) {
|
|
55
|
+
return {
|
|
56
|
+
indexerHttpUrl: config.indexerHttpUrl,
|
|
57
|
+
indexerWsUrl: config.indexerWsUrl,
|
|
58
|
+
nodeUrl: config.nodeUrl ?? `wss://rpc.${config.network}.midnight.network/`,
|
|
59
|
+
walletSync: false,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
return { api: apiConnectOptions(config), walletSync: false };
|
|
63
|
+
}
|
|
41
64
|
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/factory.d.ts
CHANGED
package/dist/factory.js
CHANGED
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import { dirname } from 'node:path';
|
|
11
11
|
import { fileURLToPath } from 'node:url';
|
|
12
|
+
import { builderChainOptions } from './config.js';
|
|
12
13
|
import { txExport } from './tx-module.js';
|
|
13
14
|
import { seedIdentity } from './builder.js';
|
|
14
15
|
const FACTORY_PACKAGE = '@odatano/contract-token-factory';
|
|
@@ -23,27 +24,16 @@ async function loadFactoryModule() {
|
|
|
23
24
|
});
|
|
24
25
|
return factoryModule;
|
|
25
26
|
}
|
|
26
|
-
function defaults(network) {
|
|
27
|
-
return {
|
|
28
|
-
indexerHttpUrl: `https://indexer.${network}.midnight.network/api/v4/graphql`,
|
|
29
|
-
indexerWsUrl: `wss://indexer.${network}.midnight.network/api/v4/graphql/ws`,
|
|
30
|
-
nodeUrl: `wss://rpc.${network}.midnight.network/`,
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
27
|
/** One builder per process; the package resolves from this install, not the caller's cwd. */
|
|
34
28
|
async function getFactoryBuilder(config) {
|
|
35
29
|
builder ??= (async () => {
|
|
36
|
-
const createTxBuilder = await txExport('createTxBuilder', 'minting', '0.
|
|
37
|
-
const d = defaults(config.network);
|
|
30
|
+
const createTxBuilder = await txExport('createTxBuilder', 'minting', '0.12.2');
|
|
38
31
|
const opts = {
|
|
39
32
|
seedHex: config.seedHex,
|
|
40
33
|
networkId: config.network,
|
|
41
|
-
|
|
42
|
-
indexerWsUrl: config.indexerWsUrl ?? d.indexerWsUrl,
|
|
43
|
-
nodeUrl: config.nodeUrl ?? d.nodeUrl,
|
|
34
|
+
...builderChainOptions(config),
|
|
44
35
|
package: FACTORY_PACKAGE,
|
|
45
36
|
from: HERE,
|
|
46
|
-
walletSync: false,
|
|
47
37
|
};
|
|
48
38
|
if (config.proofServerUrl) {
|
|
49
39
|
opts.provingMode = 'server';
|
package/dist/factory.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"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"}
|
package/dist/swap.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Shielded swaps, the local side: one wallet that holds the shielded coins of
|
|
3
3
|
* `NIGHTGATE_SEED_HEX` builds swap halves and takes offers. It wraps the swap
|
|
4
|
-
* wallet of `@odatano/nightgate-tx
|
|
5
|
-
*
|
|
4
|
+
* wallet of `@odatano/nightgate-tx`; the fee is the sponsor's, so the wallet
|
|
5
|
+
* needs neither NIGHT nor dust. Its coins sync from a configured Midnight indexer.
|
|
6
6
|
*/
|
|
7
7
|
import { createHash } from 'node:crypto';
|
|
8
8
|
import { chmod, mkdir, readFile, rename, writeFile } from 'node:fs/promises';
|
|
@@ -26,12 +26,6 @@ async function loadSwapModule() {
|
|
|
26
26
|
})();
|
|
27
27
|
return modulePromise;
|
|
28
28
|
}
|
|
29
|
-
function defaults(network) {
|
|
30
|
-
return {
|
|
31
|
-
indexerHttpUrl: `https://indexer.${network}.midnight.network/api/v4/graphql`,
|
|
32
|
-
indexerWsUrl: `wss://indexer.${network}.midnight.network/api/v4/graphql/ws`,
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
29
|
const termsOut = (terms) => ({
|
|
36
30
|
gives: { tokenType: String(terms.gives.tokenType), amount: String(terms.gives.amount) },
|
|
37
31
|
wants: { tokenType: String(terms.wants.tokenType), amount: String(terms.wants.amount) },
|
|
@@ -83,16 +77,19 @@ async function openWallet(config) {
|
|
|
83
77
|
if (!config.seedHex) {
|
|
84
78
|
throw new Error('swaps need NIGHTGATE_SEED_HEX in the MCP server environment; it is never a tool argument');
|
|
85
79
|
}
|
|
80
|
+
const { indexerHttpUrl, indexerWsUrl } = config;
|
|
81
|
+
if (!indexerHttpUrl || !indexerWsUrl) {
|
|
82
|
+
throw new Error('swaps need NIGHTGATE_INDEXER_HTTP_URL and NIGHTGATE_INDEXER_WS_URL in the MCP server environment: a Midnight indexer the swap wallet syncs its coins from');
|
|
83
|
+
}
|
|
86
84
|
open ??= (async () => {
|
|
87
85
|
try {
|
|
88
86
|
const { createSwapWallet } = await loadSwapModule();
|
|
89
|
-
const d = defaults(config.network);
|
|
90
87
|
const walletState = await readState(config.swapStateFile);
|
|
91
88
|
const wallet = await createSwapWallet({
|
|
92
89
|
seedHex: config.seedHex,
|
|
93
90
|
networkId: config.network,
|
|
94
|
-
indexerHttpUrl
|
|
95
|
-
indexerWsUrl
|
|
91
|
+
indexerHttpUrl,
|
|
92
|
+
indexerWsUrl,
|
|
96
93
|
...(config.nodeUrl ? { nodeUrl: config.nodeUrl } : {}),
|
|
97
94
|
...(config.proofServerUrl ? { provingMode: 'server', proofServerUrl: config.proofServerUrl } : {}),
|
|
98
95
|
...(config.swapMaxInputs ? { maxInputs: config.swapMaxInputs } : {}),
|