@antseed/node 0.2.26 → 0.2.27
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 +74 -1
- package/dist/discovery/announcer.d.ts +2 -0
- package/dist/discovery/announcer.d.ts.map +1 -1
- package/dist/discovery/announcer.js +10 -6
- package/dist/discovery/announcer.js.map +1 -1
- package/dist/discovery/index.d.ts +0 -1
- package/dist/discovery/index.d.ts.map +1 -1
- package/dist/discovery/index.js +0 -1
- package/dist/discovery/index.js.map +1 -1
- package/dist/discovery/reputation-verifier.d.ts +7 -4
- package/dist/discovery/reputation-verifier.d.ts.map +1 -1
- package/dist/discovery/reputation-verifier.js +33 -9
- package/dist/discovery/reputation-verifier.js.map +1 -1
- package/dist/index.d.ts +12 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/node.d.ts +60 -33
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +640 -324
- package/dist/node.js.map +1 -1
- package/dist/p2p/connection-manager.d.ts.map +1 -1
- package/dist/p2p/connection-manager.js +6 -0
- package/dist/p2p/connection-manager.js.map +1 -1
- package/dist/p2p/identity.d.ts +27 -3
- package/dist/p2p/identity.d.ts.map +1 -1
- package/dist/p2p/identity.js +52 -13
- package/dist/p2p/identity.js.map +1 -1
- package/dist/p2p/index.d.ts +0 -2
- package/dist/p2p/index.d.ts.map +1 -1
- package/dist/p2p/index.js +0 -2
- package/dist/p2p/index.js.map +1 -1
- package/dist/p2p/payment-codec.d.ts +7 -13
- package/dist/p2p/payment-codec.d.ts.map +1 -1
- package/dist/p2p/payment-codec.js +32 -50
- package/dist/p2p/payment-codec.js.map +1 -1
- package/dist/p2p/payment-mux.d.ts +11 -20
- package/dist/p2p/payment-mux.d.ts.map +1 -1
- package/dist/p2p/payment-mux.js +36 -52
- package/dist/p2p/payment-mux.js.map +1 -1
- package/dist/payments/buyer-payment-manager.d.ts +34 -93
- package/dist/payments/buyer-payment-manager.d.ts.map +1 -1
- package/dist/payments/buyer-payment-manager.js +184 -189
- package/dist/payments/buyer-payment-manager.js.map +1 -1
- package/dist/payments/chain-config.d.ts +38 -0
- package/dist/payments/chain-config.d.ts.map +1 -0
- package/dist/payments/chain-config.js +60 -0
- package/dist/payments/chain-config.js.map +1 -0
- package/dist/payments/evm/ants-token-client.d.ts +16 -0
- package/dist/payments/evm/ants-token-client.d.ts.map +1 -0
- package/dist/payments/evm/ants-token-client.js +66 -0
- package/dist/payments/evm/ants-token-client.js.map +1 -0
- package/dist/payments/evm/base-evm-client.d.ts +13 -0
- package/dist/payments/evm/base-evm-client.d.ts.map +1 -0
- package/dist/payments/evm/base-evm-client.js +38 -0
- package/dist/payments/evm/base-evm-client.js.map +1 -0
- package/dist/payments/evm/emissions-client.d.ts +23 -0
- package/dist/payments/evm/emissions-client.d.ts.map +1 -0
- package/dist/payments/evm/emissions-client.js +84 -0
- package/dist/payments/evm/emissions-client.js.map +1 -0
- package/dist/payments/evm/escrow-client.d.ts +57 -36
- package/dist/payments/evm/escrow-client.d.ts.map +1 -1
- package/dist/payments/evm/escrow-client.js +200 -93
- package/dist/payments/evm/escrow-client.js.map +1 -1
- package/dist/payments/evm/identity-client.d.ts +34 -0
- package/dist/payments/evm/identity-client.d.ts.map +1 -0
- package/dist/payments/evm/identity-client.js +125 -0
- package/dist/payments/evm/identity-client.js.map +1 -0
- package/dist/payments/evm/signatures.d.ts +18 -5
- package/dist/payments/evm/signatures.d.ts.map +1 -1
- package/dist/payments/evm/signatures.js +21 -12
- package/dist/payments/evm/signatures.js.map +1 -1
- package/dist/payments/evm/subpool-client.d.ts +30 -0
- package/dist/payments/evm/subpool-client.d.ts.map +1 -0
- package/dist/payments/evm/subpool-client.js +158 -0
- package/dist/payments/evm/subpool-client.js.map +1 -0
- package/dist/payments/index.d.ts +20 -7
- package/dist/payments/index.d.ts.map +1 -1
- package/dist/payments/index.js +17 -6
- package/dist/payments/index.js.map +1 -1
- package/dist/payments/readiness.d.ts +12 -0
- package/dist/payments/readiness.d.ts.map +1 -0
- package/dist/payments/readiness.js +64 -0
- package/dist/payments/readiness.js.map +1 -0
- package/dist/payments/seller-payment-manager.d.ts +74 -34
- package/dist/payments/seller-payment-manager.d.ts.map +1 -1
- package/dist/payments/seller-payment-manager.js +327 -118
- package/dist/payments/seller-payment-manager.js.map +1 -1
- package/dist/payments/session-store.d.ts +65 -0
- package/dist/payments/session-store.d.ts.map +1 -0
- package/dist/payments/session-store.js +243 -0
- package/dist/payments/session-store.js.map +1 -0
- package/dist/payments/usdc-utils.d.ts +9 -0
- package/dist/payments/usdc-utils.d.ts.map +1 -0
- package/dist/payments/usdc-utils.js +17 -0
- package/dist/payments/usdc-utils.js.map +1 -0
- package/dist/types/http.d.ts +2 -0
- package/dist/types/http.d.ts.map +1 -1
- package/dist/types/http.js +2 -0
- package/dist/types/http.js.map +1 -1
- package/dist/types/index.d.ts +0 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +0 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/metering.d.ts +1 -1
- package/dist/types/metering.d.ts.map +1 -1
- package/dist/types/protocol.d.ts +43 -60
- package/dist/types/protocol.d.ts.map +1 -1
- package/dist/types/protocol.js +5 -8
- package/dist/types/protocol.js.map +1 -1
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -126,6 +126,7 @@ interface NodeConfig {
|
|
|
126
126
|
displayName?: string; // Optional human-readable name announced in metadata
|
|
127
127
|
publicAddress?: string; // Optional public host:port override announced in metadata
|
|
128
128
|
dataDir?: string; // Default: ~/.antseed
|
|
129
|
+
identityStore?: IdentityStore; // Pluggable identity storage backend
|
|
129
130
|
dhtPort?: number; // Default: 6881 for seller, 0 (OS-assigned) for buyer
|
|
130
131
|
signalingPort?: number; // Default: 6882 for seller
|
|
131
132
|
bootstrapNodes?: Array<{ host: string; port: number }>;
|
|
@@ -147,6 +148,7 @@ interface NodeConfig {
|
|
|
147
148
|
| `displayName` | unset | Optional node label included in discovery metadata |
|
|
148
149
|
| `publicAddress` | unset | Optional public `host:port` advertised in signed metadata and preferred by buyers over the raw DHT source address |
|
|
149
150
|
| `dataDir` | `~/.antseed` | Directory for identity keys, metering DB, and config |
|
|
151
|
+
| `identityStore` | `FileIdentityStore` | Pluggable identity storage backend (see [Identity Storage](#identity-storage)) |
|
|
150
152
|
| `dhtPort` | `6881` / `0` | UDP port for DHT. Seller defaults to 6881, buyer uses OS-assigned |
|
|
151
153
|
| `signalingPort` | `6882` | TCP port for P2P signaling and incoming connections (seller only) |
|
|
152
154
|
| `bootstrapNodes` | AntSeed nodes | Additional DHT bootstrap nodes merged with the official AntSeed infrastructure |
|
|
@@ -161,6 +163,77 @@ const node = new AntseedNode({
|
|
|
161
163
|
});
|
|
162
164
|
```
|
|
163
165
|
|
|
166
|
+
## Identity Storage
|
|
167
|
+
|
|
168
|
+
Every node has an Ed25519 identity keypair. The private key seed (32 bytes, stored as 64 hex characters) serves two roles:
|
|
169
|
+
|
|
170
|
+
1. **P2P identity** — signs metadata, connection handshakes, and metering receipts. Your PeerId is the hex-encoded public key.
|
|
171
|
+
2. **On-chain wallet** — an EVM wallet (secp256k1) is deterministically derived from the Ed25519 seed via `keccak256(seed || "evm-payment-key")`. This wallet holds escrow deposits, receives seller earnings, and signs payment authorizations.
|
|
172
|
+
|
|
173
|
+
> **Important:** Losing your identity key means losing both your peer identity and access to any on-chain funds tied to the derived wallet.
|
|
174
|
+
|
|
175
|
+
### Storage Backends
|
|
176
|
+
|
|
177
|
+
Identity loading follows this priority:
|
|
178
|
+
|
|
179
|
+
1. **Environment variable** — if `ANTSEED_IDENTITY_HEX` is set (64 hex chars), it is used directly and cleared from the environment immediately after read. Useful for injecting keys from secrets managers without touching disk.
|
|
180
|
+
2. **IdentityStore** — if `identityStore` is passed in `NodeConfig`, it is used to load/save the key.
|
|
181
|
+
3. **File** — default. Reads/writes `identity.key` in `dataDir` (`~/.antseed/` by default) with `0600` permissions.
|
|
182
|
+
|
|
183
|
+
If no identity is found, a new keypair is generated and persisted via the active store.
|
|
184
|
+
|
|
185
|
+
### File Store (Default)
|
|
186
|
+
|
|
187
|
+
```ts
|
|
188
|
+
import { AntseedNode, FileIdentityStore } from '@antseed/node';
|
|
189
|
+
|
|
190
|
+
const node = new AntseedNode({
|
|
191
|
+
role: 'seller',
|
|
192
|
+
// These are equivalent — FileIdentityStore is the default:
|
|
193
|
+
identityStore: new FileIdentityStore('/path/to/config-dir'),
|
|
194
|
+
// dataDir: '/path/to/config-dir',
|
|
195
|
+
});
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
### Environment Variable
|
|
199
|
+
|
|
200
|
+
Pass the private key hex from a secrets manager (AWS SSM, HashiCorp Vault, etc.):
|
|
201
|
+
|
|
202
|
+
```bash
|
|
203
|
+
export ANTSEED_IDENTITY_HEX="$(vault kv get -field=key secret/antseed/identity)"
|
|
204
|
+
antseed seed --provider anthropic
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
The variable is cleared from the process environment immediately after consumption.
|
|
208
|
+
|
|
209
|
+
### Custom Store
|
|
210
|
+
|
|
211
|
+
Implement the `IdentityStore` interface for any backend:
|
|
212
|
+
|
|
213
|
+
```ts
|
|
214
|
+
import { AntseedNode, type IdentityStore } from '@antseed/node';
|
|
215
|
+
|
|
216
|
+
class VaultIdentityStore implements IdentityStore {
|
|
217
|
+
async load(): Promise<string | null> {
|
|
218
|
+
// Read 64-char hex string from your backend
|
|
219
|
+
return await vault.getSecret('antseed-identity');
|
|
220
|
+
}
|
|
221
|
+
async save(hexKey: string): Promise<void> {
|
|
222
|
+
// Persist the 64-char hex string
|
|
223
|
+
await vault.putSecret('antseed-identity', hexKey);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
const node = new AntseedNode({
|
|
228
|
+
role: 'seller',
|
|
229
|
+
identityStore: new VaultIdentityStore(),
|
|
230
|
+
});
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
### Desktop App
|
|
234
|
+
|
|
235
|
+
The AntSeed Desktop app encrypts the identity at rest using Electron's `safeStorage` API. The encryption key is stored in the OS keychain (macOS Keychain / Windows DPAPI / Linux libsecret) and the encrypted blob is stored at `~/.antseed/identity.enc`. On first launch, any existing plaintext `identity.key` is migrated to the encrypted store and deleted.
|
|
236
|
+
|
|
164
237
|
## On-Chain Settlement Flow
|
|
165
238
|
|
|
166
239
|
When `payments.enabled=true` in seller mode:
|
|
@@ -215,7 +288,7 @@ import type {
|
|
|
215
288
|
} from '@antseed/node';
|
|
216
289
|
|
|
217
290
|
// Identity & P2P
|
|
218
|
-
import { loadOrCreateIdentity, type Identity } from '@antseed/node';
|
|
291
|
+
import { loadOrCreateIdentity, type Identity, type IdentityStore, FileIdentityStore } from '@antseed/node';
|
|
219
292
|
import { NatTraversal, type NatMapping, type NatTraversalResult } from '@antseed/node';
|
|
220
293
|
|
|
221
294
|
// Discovery
|
|
@@ -4,6 +4,7 @@ import type { PeerOffering } from "../types/capability.js";
|
|
|
4
4
|
import type { PeerMetadata } from "./peer-metadata.js";
|
|
5
5
|
import type { ServiceApiProtocol } from "../types/service-api.js";
|
|
6
6
|
import type { BaseEscrowClient } from "../payments/evm/escrow-client.js";
|
|
7
|
+
import type { IdentityClient } from "../payments/evm/identity-client.js";
|
|
7
8
|
export interface AnnouncerConfig {
|
|
8
9
|
identity: Identity;
|
|
9
10
|
dht: DHTNode;
|
|
@@ -31,6 +32,7 @@ export interface AnnouncerConfig {
|
|
|
31
32
|
stakeAmountUSDC?: number;
|
|
32
33
|
trustScore?: number;
|
|
33
34
|
escrowClient?: BaseEscrowClient;
|
|
35
|
+
identityClient?: IdentityClient;
|
|
34
36
|
reannounceIntervalMs: number;
|
|
35
37
|
signalingPort: number;
|
|
36
38
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"announcer.d.ts","sourceRoot":"","sources":["../../src/discovery/announcer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAU7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAwB,MAAM,oBAAoB,CAAC;AAE7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAKlE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAGzE,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,QAAQ,CAAC;IACnB,GAAG,EAAE,OAAO,CAAC;IACb,SAAS,EAAE,KAAK,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7C,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAC3D,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC,CAAC;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,GAAG,CACV,MAAM,EACN;QACE,QAAQ,EAAE;YAAE,kBAAkB,EAAE,MAAM,CAAC;YAAC,mBAAmB,EAAE,MAAM,CAAA;SAAE,CAAC;QACtE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,kBAAkB,EAAE,MAAM,CAAC;YAAC,mBAAmB,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACxF,CACF,CAAC;IACF,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,cAAc,CAA+C;IACrE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;IAC1D,OAAO,CAAC,eAAe,CAA6B;gBAExC,MAAM,EAAE,eAAe;IAI7B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAO/B;;;OAGG;IACG,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAItC,qBAAqB,IAAI,IAAI;IAe7B,oBAAoB,IAAI,IAAI;IAO5B,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAI3D,iBAAiB,IAAI,YAAY,GAAG,IAAI;YAI1B,oBAAoB;
|
|
1
|
+
{"version":3,"file":"announcer.d.ts","sourceRoot":"","sources":["../../src/discovery/announcer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAU7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAwB,MAAM,oBAAoB,CAAC;AAE7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAKlE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAGzE,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,QAAQ,CAAC;IACnB,GAAG,EAAE,OAAO,CAAC;IACb,SAAS,EAAE,KAAK,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7C,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAC3D,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC,CAAC;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,GAAG,CACV,MAAM,EACN;QACE,QAAQ,EAAE;YAAE,kBAAkB,EAAE,MAAM,CAAC;YAAC,mBAAmB,EAAE,MAAM,CAAA;SAAE,CAAC;QACtE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,kBAAkB,EAAE,MAAM,CAAC;YAAC,mBAAmB,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACxF,CACF,CAAC;IACF,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,cAAc,CAA+C;IACrE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;IAC1D,OAAO,CAAC,eAAe,CAA6B;gBAExC,MAAM,EAAE,eAAe;IAI7B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAO/B;;;OAGG;IACG,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAItC,qBAAqB,IAAI,IAAI;IAe7B,oBAAoB,IAAI,IAAI;IAO5B,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAI3D,iBAAiB,IAAI,YAAY,GAAG,IAAI;YAI1B,oBAAoB;YA+EpB,eAAe;YA4Cf,iBAAiB;IAS/B,OAAO,CAAC,2BAA2B;IA+BnC,OAAO,CAAC,6BAA6B;CA8BtC"}
|
|
@@ -102,15 +102,19 @@ export class PeerAnnouncer {
|
|
|
102
102
|
if (this.config.escrowClient) {
|
|
103
103
|
const evmAddress = identityToEvmAddress(this.config.identity);
|
|
104
104
|
metadata.evmAddress = evmAddress;
|
|
105
|
-
if (includeOnChainReputation) {
|
|
105
|
+
if (includeOnChainReputation && this.config.identityClient) {
|
|
106
106
|
try {
|
|
107
|
-
const
|
|
108
|
-
|
|
109
|
-
metadata.
|
|
110
|
-
metadata.
|
|
107
|
+
const tokenId = await this.config.identityClient.getTokenId(evmAddress);
|
|
108
|
+
const reputation = await this.config.identityClient.getReputation(tokenId);
|
|
109
|
+
metadata.onChainReputation = reputation.qualifiedProvenSignCount;
|
|
110
|
+
metadata.onChainSessionCount =
|
|
111
|
+
reputation.firstSignCount +
|
|
112
|
+
reputation.qualifiedProvenSignCount +
|
|
113
|
+
reputation.unqualifiedProvenSignCount;
|
|
114
|
+
metadata.onChainDisputeCount = reputation.ghostCount;
|
|
111
115
|
}
|
|
112
116
|
catch {
|
|
113
|
-
//
|
|
117
|
+
// Identity contract lookup failed — skip on-chain reputation for this cycle
|
|
114
118
|
}
|
|
115
119
|
}
|
|
116
120
|
else if (this._latestMetadata) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"announcer.js","sourceRoot":"","sources":["../../src/discovery/announcer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EACL,sBAAsB,EACtB,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,wBAAwB,EACxB,8BAA8B,GAC/B,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"announcer.js","sourceRoot":"","sources":["../../src/discovery/announcer.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,6 @@ export { validateMetadata, MAX_METADATA_SIZE, MAX_PROVIDERS, type ValidationErro
|
|
|
8
8
|
export { METADATA_VERSION, WELL_KNOWN_SERVICE_CATEGORIES, type PeerMetadata, type ProviderAnnouncement } from './peer-metadata.js';
|
|
9
9
|
export { parsePublicAddress, MAX_PUBLIC_ADDRESS_LENGTH, type ParsedPublicAddress } from './public-address.js';
|
|
10
10
|
export { type MetadataResolver, type PeerEndpoint } from './metadata-resolver.js';
|
|
11
|
-
export { DefaultMetadataResolver } from './default-metadata-resolver.js';
|
|
12
11
|
export { HttpMetadataResolver, type HttpMetadataResolverConfig } from './http-metadata-resolver.js';
|
|
13
12
|
export { DHTHealthMonitor, DEFAULT_HEALTH_THRESHOLDS, type DHTHealthSnapshot, type HealthThresholds } from './dht-health.js';
|
|
14
13
|
export { verifyReputation, type ReputationVerification } from './reputation-verifier.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/discovery/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,kBAAkB,EAClB,eAAe,EACf,sBAAsB,EACtB,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,wBAAwB,EACxB,8BAA8B,EAC9B,KAAK,aAAa,GACnB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAE3G,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACjL,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC1I,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC/F,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AACnH,OAAO,EAAE,gBAAgB,EAAE,6BAA6B,EAAE,KAAK,YAAY,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AACnI,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC9G,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/discovery/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,kBAAkB,EAClB,eAAe,EACf,sBAAsB,EACtB,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,wBAAwB,EACxB,8BAA8B,EAC9B,KAAK,aAAa,GACnB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAE3G,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACjL,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC1I,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC/F,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AACnH,OAAO,EAAE,gBAAgB,EAAE,6BAA6B,EAAE,KAAK,YAAY,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AACnI,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC9G,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAAE,KAAK,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACpG,OAAO,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,KAAK,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC7H,OAAO,EAAE,gBAAgB,EAAE,KAAK,sBAAsB,EAAE,MAAM,0BAA0B,CAAC"}
|
package/dist/discovery/index.js
CHANGED
|
@@ -7,7 +7,6 @@ export { encodeMetadata, encodeMetadataForSigning, decodeMetadata } from './meta
|
|
|
7
7
|
export { validateMetadata, MAX_METADATA_SIZE, MAX_PROVIDERS } from './metadata-validator.js';
|
|
8
8
|
export { METADATA_VERSION, WELL_KNOWN_SERVICE_CATEGORIES } from './peer-metadata.js';
|
|
9
9
|
export { parsePublicAddress, MAX_PUBLIC_ADDRESS_LENGTH } from './public-address.js';
|
|
10
|
-
export { DefaultMetadataResolver } from './default-metadata-resolver.js';
|
|
11
10
|
export { HttpMetadataResolver } from './http-metadata-resolver.js';
|
|
12
11
|
export { DHTHealthMonitor, DEFAULT_HEALTH_THRESHOLDS } from './dht-health.js';
|
|
13
12
|
export { verifyReputation } from './reputation-verifier.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/discovery/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,kBAAkB,EAClB,eAAe,EACf,sBAAsB,EACtB,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,wBAAwB,EACxB,8BAA8B,GAE/B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,aAAa,EAAwB,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAwC,MAAM,kBAAkB,CAAC;AAE3G,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,kBAAkB,EAAE,uBAAuB,EAA4D,MAAM,oBAAoB,CAAC;AACjL,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,iBAAiB,EAAsB,MAAM,gBAAgB,CAAC;AAC1I,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC/F,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,aAAa,EAAwB,MAAM,yBAAyB,CAAC;AACnH,OAAO,EAAE,gBAAgB,EAAE,6BAA6B,EAAgD,MAAM,oBAAoB,CAAC;AACnI,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAA4B,MAAM,qBAAqB,CAAC;AAE9G,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/discovery/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,kBAAkB,EAClB,eAAe,EACf,sBAAsB,EACtB,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,wBAAwB,EACxB,8BAA8B,GAE/B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,aAAa,EAAwB,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAwC,MAAM,kBAAkB,CAAC;AAE3G,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,kBAAkB,EAAE,uBAAuB,EAA4D,MAAM,oBAAoB,CAAC;AACjL,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,iBAAiB,EAAsB,MAAM,gBAAgB,CAAC;AAC1I,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC/F,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,aAAa,EAAwB,MAAM,yBAAyB,CAAC;AACnH,OAAO,EAAE,gBAAgB,EAAE,6BAA6B,EAAgD,MAAM,oBAAoB,CAAC;AACnI,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAA4B,MAAM,qBAAqB,CAAC;AAE9G,OAAO,EAAE,oBAAoB,EAAmC,MAAM,6BAA6B,CAAC;AACpG,OAAO,EAAE,gBAAgB,EAAE,yBAAyB,EAAiD,MAAM,iBAAiB,CAAC;AAC7H,OAAO,EAAE,gBAAgB,EAA+B,MAAM,0BAA0B,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { BaseEscrowClient } from "../payments/evm/escrow-client.js";
|
|
2
1
|
import type { PeerMetadata } from "./peer-metadata.js";
|
|
2
|
+
import type { IdentityClient } from "../payments/evm/identity-client.js";
|
|
3
3
|
export interface ReputationVerification {
|
|
4
4
|
/** Whether the claimed reputation matches on-chain data. */
|
|
5
5
|
valid: boolean;
|
|
@@ -18,8 +18,11 @@ export interface ReputationVerification {
|
|
|
18
18
|
}
|
|
19
19
|
/**
|
|
20
20
|
* Verify a peer's claimed on-chain reputation against the Base contract.
|
|
21
|
-
* Queries the
|
|
22
|
-
* claimed vs actual
|
|
21
|
+
* Queries the identity contract using the peer's EVM address to look up
|
|
22
|
+
* the tokenId, then fetches ProvenReputation and compares claimed vs actual.
|
|
23
|
+
*
|
|
24
|
+
* Returns valid=true with zeroed actuals if the peer has no evmAddress
|
|
25
|
+
* (cannot verify without an address).
|
|
23
26
|
*/
|
|
24
|
-
export declare function verifyReputation(
|
|
27
|
+
export declare function verifyReputation(identityClient: IdentityClient, metadata: PeerMetadata): Promise<ReputationVerification>;
|
|
25
28
|
//# sourceMappingURL=reputation-verifier.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reputation-verifier.d.ts","sourceRoot":"","sources":["../../src/discovery/reputation-verifier.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"reputation-verifier.d.ts","sourceRoot":"","sources":["../../src/discovery/reputation-verifier.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEzE,MAAM,WAAW,sBAAsB;IACrC,4DAA4D;IAC5D,KAAK,EAAE,OAAO,CAAC;IACf,+DAA+D;IAC/D,gBAAgB,EAAE,MAAM,CAAC;IACzB,yCAAyC;IACzC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,yCAAyC;IACzC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,2DAA2D;IAC3D,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,wDAAwD;IACxD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,wDAAwD;IACxD,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CACpC,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,YAAY,GACrB,OAAO,CAAC,sBAAsB,CAAC,CA+CjC"}
|
|
@@ -1,17 +1,41 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Verify a peer's claimed on-chain reputation against the Base contract.
|
|
3
|
-
* Queries the
|
|
4
|
-
* claimed vs actual
|
|
3
|
+
* Queries the identity contract using the peer's EVM address to look up
|
|
4
|
+
* the tokenId, then fetches ProvenReputation and compares claimed vs actual.
|
|
5
|
+
*
|
|
6
|
+
* Returns valid=true with zeroed actuals if the peer has no evmAddress
|
|
7
|
+
* (cannot verify without an address).
|
|
5
8
|
*/
|
|
6
|
-
export async function verifyReputation(
|
|
9
|
+
export async function verifyReputation(identityClient, metadata) {
|
|
7
10
|
if (!metadata.evmAddress) {
|
|
8
|
-
|
|
11
|
+
return {
|
|
12
|
+
valid: true,
|
|
13
|
+
actualReputation: 0,
|
|
14
|
+
actualSessionCount: 0,
|
|
15
|
+
actualDisputeCount: 0,
|
|
16
|
+
claimedReputation: metadata.onChainReputation,
|
|
17
|
+
claimedSessionCount: metadata.onChainSessionCount,
|
|
18
|
+
claimedDisputeCount: metadata.onChainDisputeCount,
|
|
19
|
+
};
|
|
9
20
|
}
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
21
|
+
const tokenId = await identityClient.getTokenId(metadata.evmAddress);
|
|
22
|
+
const reputation = await identityClient.getReputation(tokenId);
|
|
23
|
+
// Map ProvenReputation fields to the verification format:
|
|
24
|
+
// - qualifiedProvenSignCount is the primary reputation metric
|
|
25
|
+
// - firstSignCount + qualifiedProvenSignCount + unqualifiedProvenSignCount = total sessions
|
|
26
|
+
// - ghostCount maps to dispute count (sessions where provider went silent)
|
|
27
|
+
const actualReputation = reputation.qualifiedProvenSignCount;
|
|
28
|
+
const actualSessionCount = reputation.firstSignCount +
|
|
29
|
+
reputation.qualifiedProvenSignCount +
|
|
30
|
+
reputation.unqualifiedProvenSignCount;
|
|
31
|
+
const actualDisputeCount = reputation.ghostCount;
|
|
32
|
+
// Always compare against on-chain data when evmAddress is present.
|
|
33
|
+
// If peer omits reputation fields, treat as unverified — prevents bypass
|
|
34
|
+
// by simply not claiming any values.
|
|
35
|
+
const valid = metadata.onChainReputation !== undefined &&
|
|
36
|
+
metadata.onChainSessionCount !== undefined &&
|
|
37
|
+
metadata.onChainDisputeCount !== undefined &&
|
|
38
|
+
metadata.onChainReputation === actualReputation &&
|
|
15
39
|
metadata.onChainSessionCount === actualSessionCount &&
|
|
16
40
|
metadata.onChainDisputeCount === actualDisputeCount;
|
|
17
41
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reputation-verifier.js","sourceRoot":"","sources":["../../src/discovery/reputation-verifier.ts"],"names":[],"mappings":"AAoBA
|
|
1
|
+
{"version":3,"file":"reputation-verifier.js","sourceRoot":"","sources":["../../src/discovery/reputation-verifier.ts"],"names":[],"mappings":"AAoBA;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,cAA8B,EAC9B,QAAsB;IAEtB,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;QACzB,OAAO;YACL,KAAK,EAAE,IAAI;YACX,gBAAgB,EAAE,CAAC;YACnB,kBAAkB,EAAE,CAAC;YACrB,kBAAkB,EAAE,CAAC;YACrB,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;YAC7C,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB;YACjD,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB;SAClD,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACrE,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAE/D,0DAA0D;IAC1D,8DAA8D;IAC9D,4FAA4F;IAC5F,2EAA2E;IAC3E,MAAM,gBAAgB,GAAG,UAAU,CAAC,wBAAwB,CAAC;IAC7D,MAAM,kBAAkB,GACtB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,wBAAwB;QACnC,UAAU,CAAC,0BAA0B,CAAC;IACxC,MAAM,kBAAkB,GAAG,UAAU,CAAC,UAAU,CAAC;IAEjD,mEAAmE;IACnE,yEAAyE;IACzE,qCAAqC;IACrC,MAAM,KAAK,GACT,QAAQ,CAAC,iBAAiB,KAAK,SAAS;QACxC,QAAQ,CAAC,mBAAmB,KAAK,SAAS;QAC1C,QAAQ,CAAC,mBAAmB,KAAK,SAAS;QAC1C,QAAQ,CAAC,iBAAiB,KAAK,gBAAgB;QAC/C,QAAQ,CAAC,mBAAmB,KAAK,kBAAkB;QACnD,QAAQ,CAAC,mBAAmB,KAAK,kBAAkB,CAAC;IAEtD,OAAO;QACL,KAAK;QACL,gBAAgB;QAChB,kBAAkB;QAClB,kBAAkB;QAClB,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;QAC7C,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB;QACjD,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB;KAClD,CAAC;AACJ,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export { AntseedNode, type NodeConfig, type
|
|
1
|
+
export { AntseedNode, type NodeConfig, type NodePaymentsConfig, type RequestStreamCallbacks, type RequestStreamResponseMetadata, } from './node.js';
|
|
2
2
|
export type { Provider, ProviderStreamCallbacks } from './interfaces/seller-provider.js';
|
|
3
3
|
export type { Router } from './interfaces/buyer-router.js';
|
|
4
4
|
export * from './types/index.js';
|
|
5
|
-
export { loadOrCreateIdentity, type Identity } from './p2p/identity.js';
|
|
5
|
+
export { loadOrCreateIdentity, type Identity, type IdentityStore, FileIdentityStore, hexToBytes, bytesToHex, } from './p2p/identity.js';
|
|
6
6
|
export { DHTNode, DEFAULT_DHT_CONFIG } from './discovery/dht-node.js';
|
|
7
7
|
export { OFFICIAL_BOOTSTRAP_NODES, mergeBootstrapNodes, toBootstrapConfig } from './discovery/bootstrap.js';
|
|
8
8
|
export { WELL_KNOWN_SERVICE_CATEGORIES, WELL_KNOWN_SERVICE_API_PROTOCOLS, type ServiceApiProtocol, type PeerMetadata, type ProviderAnnouncement, } from './discovery/peer-metadata.js';
|
|
@@ -12,9 +12,18 @@ export { MeteringStorage } from './metering/storage.js';
|
|
|
12
12
|
export { BalanceManager } from './payments/balance-manager.js';
|
|
13
13
|
export { BaseEscrowClient, type BaseEscrowConfig } from './payments/evm/escrow-client.js';
|
|
14
14
|
export { identityToEvmWallet, identityToEvmAddress } from './payments/evm/keypair.js';
|
|
15
|
+
export { signSpendingAuth, makeEscrowDomain } from './payments/evm/signatures.js';
|
|
16
|
+
export type { SpendingAuthMessage } from './payments/evm/signatures.js';
|
|
15
17
|
export { NatTraversal, type NatMapping, type NatTraversalResult } from './p2p/nat-traversal.js';
|
|
16
18
|
export { BuyerPaymentManager } from './payments/buyer-payment-manager.js';
|
|
17
|
-
export type {
|
|
19
|
+
export type { BuyerPaymentConfig } from './payments/buyer-payment-manager.js';
|
|
20
|
+
export { SellerPaymentManager } from './payments/seller-payment-manager.js';
|
|
21
|
+
export type { SellerPaymentConfig } from './payments/seller-payment-manager.js';
|
|
22
|
+
export { SessionStore } from './payments/session-store.js';
|
|
23
|
+
export type { StoredSession, StoredReceipt } from './payments/session-store.js';
|
|
24
|
+
export { getChainConfig, resolveChainConfig, DEFAULT_CHAIN_ID, CHAIN_CONFIGS } from './payments/chain-config.js';
|
|
25
|
+
export type { ChainConfig } from './payments/chain-config.js';
|
|
26
|
+
export { formatUsdc, parseUsdc } from './payments/usdc-utils.js';
|
|
18
27
|
export { ProxyMux } from './proxy/proxy-mux.js';
|
|
19
28
|
export { resolveProvider } from './proxy/provider-detection.js';
|
|
20
29
|
export { detectRequestServiceApiProtocol, createOpenAIChatToAnthropicStreamingAdapter, createOpenAIChatToResponsesStreamingAdapter, inferProviderDefaultServiceApiProtocols, selectTargetProtocolForRequest, transformAnthropicMessagesRequestToOpenAIChat, transformOpenAIChatResponseToAnthropicMessage, transformOpenAIResponsesRequestToOpenAIChat, transformOpenAIChatResponseToOpenAIResponses, type TargetProtocolSelection, type AnthropicToOpenAIRequestTransformResult, type ResponsesToOpenAIRequestTransformResult, type StreamingResponseAdapter, } from './proxy/service-api-adapter.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,WAAW,EACX,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -3,7 +3,7 @@ export { AntseedNode, } from './node.js';
|
|
|
3
3
|
// Types (re-export everything)
|
|
4
4
|
export * from './types/index.js';
|
|
5
5
|
// Submodule re-exports (commonly used)
|
|
6
|
-
export { loadOrCreateIdentity } from './p2p/identity.js';
|
|
6
|
+
export { loadOrCreateIdentity, FileIdentityStore, hexToBytes, bytesToHex, } from './p2p/identity.js';
|
|
7
7
|
export { DHTNode, DEFAULT_DHT_CONFIG } from './discovery/dht-node.js';
|
|
8
8
|
export { OFFICIAL_BOOTSTRAP_NODES, mergeBootstrapNodes, toBootstrapConfig } from './discovery/bootstrap.js';
|
|
9
9
|
export { WELL_KNOWN_SERVICE_CATEGORIES, WELL_KNOWN_SERVICE_API_PROTOCOLS, } from './discovery/peer-metadata.js';
|
|
@@ -13,8 +13,13 @@ export { MeteringStorage } from './metering/storage.js';
|
|
|
13
13
|
export { BalanceManager } from './payments/balance-manager.js';
|
|
14
14
|
export { BaseEscrowClient } from './payments/evm/escrow-client.js';
|
|
15
15
|
export { identityToEvmWallet, identityToEvmAddress } from './payments/evm/keypair.js';
|
|
16
|
+
export { signSpendingAuth, makeEscrowDomain } from './payments/evm/signatures.js';
|
|
16
17
|
export { NatTraversal } from './p2p/nat-traversal.js';
|
|
17
18
|
export { BuyerPaymentManager } from './payments/buyer-payment-manager.js';
|
|
19
|
+
export { SellerPaymentManager } from './payments/seller-payment-manager.js';
|
|
20
|
+
export { SessionStore } from './payments/session-store.js';
|
|
21
|
+
export { getChainConfig, resolveChainConfig, DEFAULT_CHAIN_ID, CHAIN_CONFIGS } from './payments/chain-config.js';
|
|
22
|
+
export { formatUsdc, parseUsdc } from './payments/usdc-utils.js';
|
|
18
23
|
export { ProxyMux } from './proxy/proxy-mux.js';
|
|
19
24
|
export { resolveProvider } from './proxy/provider-detection.js';
|
|
20
25
|
export { detectRequestServiceApiProtocol, createOpenAIChatToAnthropicStreamingAdapter, createOpenAIChatToResponsesStreamingAdapter, inferProviderDefaultServiceApiProtocols, selectTargetProtocolForRequest, transformAnthropicMessagesRequestToOpenAIChat, transformOpenAIChatResponseToAnthropicMessage, transformOpenAIResponsesRequestToOpenAIChat, transformOpenAIChatResponseToOpenAIResponses, } from './proxy/service-api-adapter.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,OAAO,EACL,WAAW,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,OAAO,EACL,WAAW,GAKZ,MAAM,WAAW,CAAC;AAInB,+BAA+B;AAC/B,cAAc,kBAAkB,CAAC;AAEjC,uCAAuC;AACvC,OAAO,EACL,oBAAoB,EAGpB,iBAAiB,EACjB,UAAU,EACV,UAAU,GACX,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC5G,OAAO,EACL,6BAA6B,EAC7B,gCAAgC,GAIjC,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,cAAc,EAA6B,MAAM,gCAAgC,CAAC;AAC3F,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAA4B,MAAM,+BAA+B,CAAC;AACxH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAyB,MAAM,iCAAiC,CAAC;AAC1F,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtF,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAElF,OAAO,EAAE,YAAY,EAA4C,MAAM,wBAAwB,CAAC;AAChG,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAE1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAE5E,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAEjH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EACL,+BAA+B,EAC/B,2CAA2C,EAC3C,2CAA2C,EAC3C,uCAAuC,EACvC,8BAA8B,EAC9B,6CAA6C,EAC7C,6CAA6C,EAC7C,2CAA2C,EAC3C,4CAA4C,GAK7C,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,aAAa,EAA4B,MAAM,6BAA6B,CAAC;AAItF,aAAa;AACb,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAGvF,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAG/D,0BAA0B;AAC1B,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACnG,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,WAAW,EACX,YAAY,EACZ,oBAAoB,GACrB,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EACL,gBAAgB,EAChB,cAAc,GAGf,MAAM,2BAA2B,CAAA"}
|
package/dist/node.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { EventEmitter } from "node:events";
|
|
2
|
-
import type { Identity } from "./p2p/identity.js";
|
|
2
|
+
import type { Identity, IdentityStore } from "./p2p/identity.js";
|
|
3
3
|
import type { PeerId } from "./types/peer.js";
|
|
4
4
|
import type { PeerInfo } from "./types/peer.js";
|
|
5
5
|
import { type SerializedHttpRequest, type SerializedHttpResponse, type SerializedHttpResponseChunk } from "./types/http.js";
|
|
@@ -32,6 +32,20 @@ export interface NodePaymentsConfig {
|
|
|
32
32
|
contractAddress?: string;
|
|
33
33
|
/** USDC token contract address */
|
|
34
34
|
usdcAddress?: string;
|
|
35
|
+
/** AntseedIdentity contract address */
|
|
36
|
+
identityAddress?: string;
|
|
37
|
+
/** Chain ID for EIP-712 domain. Default: 8453 (Base) */
|
|
38
|
+
chainId?: number;
|
|
39
|
+
/** Default maximum USDC per spending auth. Default: 1000000 (1 USDC) */
|
|
40
|
+
defaultMaxAmountUsdc?: string;
|
|
41
|
+
/** Default auth duration in seconds. Default: 3600 */
|
|
42
|
+
defaultAuthDurationSecs?: number;
|
|
43
|
+
/** Auto-acknowledge seller receipts. Default: true */
|
|
44
|
+
autoAck?: boolean;
|
|
45
|
+
/** Suggested USDC amount (base units) for first-sign sessions. Default: 100000 ($0.10). */
|
|
46
|
+
firstSignAmountUsdc?: string;
|
|
47
|
+
/** Suggested USDC amount (base units) for proven-sign sessions. Default: 100000 ($0.10). */
|
|
48
|
+
provenSignAmountUsdc?: string;
|
|
35
49
|
}
|
|
36
50
|
export interface NodeConfig {
|
|
37
51
|
role: 'seller' | 'buyer';
|
|
@@ -59,6 +73,15 @@ export interface NodeConfig {
|
|
|
59
73
|
dhtOperationTimeoutMs?: number;
|
|
60
74
|
/** Optional seller-side payment runtime wiring. */
|
|
61
75
|
payments?: NodePaymentsConfig;
|
|
76
|
+
/** Pluggable identity storage backend. When set, takes precedence over dataDir for identity loading. */
|
|
77
|
+
identityStore?: IdentityStore;
|
|
78
|
+
/** Optional explicit config.json path for runtime config reloads. */
|
|
79
|
+
configPath?: string;
|
|
80
|
+
/**
|
|
81
|
+
* When true, the node returns the 402 to the caller instead of auto-signing.
|
|
82
|
+
* The caller can then sign externally and retry with x-antseed-spending-auth header.
|
|
83
|
+
*/
|
|
84
|
+
requireManualApproval?: boolean;
|
|
62
85
|
}
|
|
63
86
|
export interface SellerSessionSnapshot {
|
|
64
87
|
sessionId: string;
|
|
@@ -70,10 +93,6 @@ export interface SellerSessionSnapshot {
|
|
|
70
93
|
totalTokens: number;
|
|
71
94
|
avgLatencyMs: number;
|
|
72
95
|
settling: boolean;
|
|
73
|
-
lockCommitted: boolean;
|
|
74
|
-
lockedAmountUSDC: string;
|
|
75
|
-
runningTotalUSDC: string;
|
|
76
|
-
ackedRequestCount: number;
|
|
77
96
|
}
|
|
78
97
|
export interface RequestStreamResponseMetadata {
|
|
79
98
|
streaming: boolean;
|
|
@@ -104,6 +123,7 @@ export declare class AntseedNode extends EventEmitter {
|
|
|
104
123
|
private _receiptGenerator;
|
|
105
124
|
private _balanceManager;
|
|
106
125
|
private _escrowClient;
|
|
126
|
+
private _identityClient;
|
|
107
127
|
private _paymentMuxes;
|
|
108
128
|
private _providerLoadCounts;
|
|
109
129
|
private _metadataRefreshTimer;
|
|
@@ -112,8 +132,23 @@ export declare class AntseedNode extends EventEmitter {
|
|
|
112
132
|
private _settlementTimers;
|
|
113
133
|
/** Buyer-side payment manager (initialized when buyer has payment config). */
|
|
114
134
|
private _buyerPaymentManager;
|
|
115
|
-
/**
|
|
135
|
+
/** Seller-side payment manager (initialized when seller has payment config). */
|
|
136
|
+
private _sellerPaymentManager;
|
|
137
|
+
/** Shared session store for payment persistence. */
|
|
138
|
+
private _sessionStore;
|
|
139
|
+
/** Periodic timeout checker interval. */
|
|
140
|
+
private _timeoutCheckerInterval;
|
|
141
|
+
/** Tracks which seller peers the buyer has already negotiated payment for. */
|
|
116
142
|
private _buyerLockedPeers;
|
|
143
|
+
/** Pending PaymentRequired payloads from sellers, keyed by peerId. Resolvers waiting for them. */
|
|
144
|
+
private _pendingPaymentRequired;
|
|
145
|
+
private _manualApprovalCache;
|
|
146
|
+
/** Buffered PaymentRequired that arrived before _doNegotiatePayment registered its listener.
|
|
147
|
+
* This handles the race where 402 + PaymentRequired arrive in the same I/O tick. */
|
|
148
|
+
private _bufferedPaymentRequired;
|
|
149
|
+
/** Per-peer mutex to prevent concurrent payment negotiations. */
|
|
150
|
+
private _paymentNegotiationLocks;
|
|
151
|
+
/** Peers the caller has manually approved by retrying after a 402. */
|
|
117
152
|
constructor(config: NodeConfig);
|
|
118
153
|
get peerId(): string | null;
|
|
119
154
|
get identity(): Identity | null;
|
|
@@ -160,6 +195,7 @@ export declare class AntseedNode extends EventEmitter {
|
|
|
160
195
|
private _getOrCreateSellerSession;
|
|
161
196
|
private _emitSellerSessionUpdated;
|
|
162
197
|
/** Estimate tokens from byte lengths (rough: ~4 chars per token). */
|
|
198
|
+
/** Fallback token estimation from byte lengths (~4 bytes per token). */
|
|
163
199
|
private _estimateTokens;
|
|
164
200
|
private _recordMetering;
|
|
165
201
|
private _initializePayments;
|
|
@@ -169,46 +205,37 @@ export declare class AntseedNode extends EventEmitter {
|
|
|
169
205
|
private _getOrCreateConnection;
|
|
170
206
|
private _getOrCreateMux;
|
|
171
207
|
/**
|
|
172
|
-
*
|
|
173
|
-
*
|
|
174
|
-
*/
|
|
175
|
-
private _handleSessionLockAuth;
|
|
176
|
-
/**
|
|
177
|
-
* Generate and send a bilateral receipt after processing a request (Task 3).
|
|
178
|
-
*/
|
|
179
|
-
private _sendBilateralReceipt;
|
|
180
|
-
/**
|
|
181
|
-
* Handle BuyerAck (Task 4).
|
|
182
|
-
* Verifies buyer's Ed25519 ack signature and updates session state.
|
|
183
|
-
*/
|
|
184
|
-
private _handleBuyerAck;
|
|
185
|
-
/**
|
|
186
|
-
* Handle SessionEnd from buyer (Task 5).
|
|
187
|
-
* Submits settlement on-chain and cleans up.
|
|
208
|
+
* Create a PaymentMux for a buyer-side outbound connection and register
|
|
209
|
+
* buyer-side handlers (lock confirm, lock reject, seller receipt, top-up request).
|
|
188
210
|
*/
|
|
189
|
-
private
|
|
211
|
+
private _getOrCreateBuyerPaymentMux;
|
|
190
212
|
/**
|
|
191
|
-
*
|
|
192
|
-
*
|
|
213
|
+
* Wait for the seller's PaymentRequired message, sign a SpendingAuth with
|
|
214
|
+
* the seller's real requirements, and wait for AuthAck.
|
|
215
|
+
* Uses a per-peer mutex so concurrent requests wait for the first negotiation.
|
|
193
216
|
*/
|
|
194
|
-
|
|
217
|
+
/** Read requireManualApproval from config.json so changes take effect without restart. */
|
|
218
|
+
private _isManualApprovalEnabled;
|
|
195
219
|
/**
|
|
196
|
-
*
|
|
197
|
-
*
|
|
220
|
+
* Wait for the seller's PaymentRequired payload for a given peer.
|
|
221
|
+
* Returns a buffered payload immediately when available, otherwise waits up to timeoutMs.
|
|
198
222
|
*/
|
|
199
|
-
private
|
|
223
|
+
private _awaitPaymentRequired;
|
|
200
224
|
/**
|
|
201
|
-
*
|
|
202
|
-
* and waits for
|
|
225
|
+
* Apply a pre-signed SpendingAuth from the x-antseed-spending-auth header.
|
|
226
|
+
* Sends it to the seller via PaymentMux and waits for AuthAck.
|
|
203
227
|
*/
|
|
204
|
-
private
|
|
228
|
+
private _applyExternalSpendingAuth;
|
|
229
|
+
private _negotiatePayment;
|
|
230
|
+
private _doNegotiatePayment;
|
|
205
231
|
/**
|
|
206
232
|
* Poll until the lock for a seller is confirmed or rejected.
|
|
207
233
|
* Polls every 200ms with a 30-second timeout.
|
|
208
234
|
*/
|
|
209
235
|
private _waitForLockConfirmation;
|
|
210
236
|
/**
|
|
211
|
-
*
|
|
237
|
+
* Clean up buyer payment sessions on shutdown.
|
|
238
|
+
* Sessions are persisted in SessionStore and will be resumed on next connect.
|
|
212
239
|
*/
|
|
213
240
|
private _endAllBuyerSessions;
|
|
214
241
|
private _resolvePublicAddress;
|
package/dist/node.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"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"}
|