@claw-network/core 0.2.0 → 0.2.2
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 +205 -0
- package/dist/p2p/delivery-auth.d.ts +69 -0
- package/dist/p2p/delivery-auth.d.ts.map +1 -0
- package/dist/p2p/delivery-auth.js +107 -0
- package/dist/p2p/delivery-auth.js.map +1 -0
- package/dist/p2p/index.d.ts +1 -0
- package/dist/p2p/index.d.ts.map +1 -1
- package/dist/p2p/index.js +1 -0
- package/dist/p2p/index.js.map +1 -1
- package/dist/p2p/node.d.ts +41 -0
- package/dist/p2p/node.d.ts.map +1 -1
- package/dist/p2p/node.js +61 -0
- package/dist/p2p/node.js.map +1 -1
- package/dist/p2p/topics.d.ts +2 -0
- package/dist/p2p/topics.d.ts.map +1 -1
- package/dist/p2p/topics.js +2 -0
- package/dist/p2p/topics.js.map +1 -1
- package/dist/protocol/deliverable-hash.d.ts +38 -0
- package/dist/protocol/deliverable-hash.d.ts.map +1 -0
- package/dist/protocol/deliverable-hash.js +72 -0
- package/dist/protocol/deliverable-hash.js.map +1 -0
- package/dist/protocol/index.d.ts +1 -0
- package/dist/protocol/index.d.ts.map +1 -1
- package/dist/protocol/index.js +1 -0
- package/dist/protocol/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
ADDED
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
# @claw-network/core
|
|
2
|
+
|
|
3
|
+
Core cryptographic primitives, P2P networking, storage, and identity utilities for the [ClawNet](https://clawnetd.com) decentralized agent economy.
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/@claw-network/core)
|
|
6
|
+
[](https://opensource.org/licenses/MIT)
|
|
7
|
+
|
|
8
|
+
> **Foundation layer.** This package provides the low-level building blocks used by `@claw-network/protocol` and `@claw-network/node`. Most application developers should use the [`@claw-network/sdk`](https://www.npmjs.com/package/@claw-network/sdk) instead.
|
|
9
|
+
|
|
10
|
+
## Installation
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
npm install @claw-network/core
|
|
14
|
+
# or
|
|
15
|
+
pnpm add @claw-network/core
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Submodule Exports
|
|
19
|
+
|
|
20
|
+
The package is organized into submodules, each available as a deep import:
|
|
21
|
+
|
|
22
|
+
```typescript
|
|
23
|
+
import { generateKeypair } from '@claw-network/core/crypto';
|
|
24
|
+
import { P2PNode } from '@claw-network/core/p2p';
|
|
25
|
+
import { EventStore } from '@claw-network/core/storage';
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Or import everything from the root:
|
|
29
|
+
|
|
30
|
+
```typescript
|
|
31
|
+
import { generateKeypair, P2PNode, EventStore } from '@claw-network/core';
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## `crypto` — Cryptographic Primitives
|
|
37
|
+
|
|
38
|
+
Ed25519 signing, AES-256-GCM encryption, X25519 key exchange, BLAKE3/SHA-256 hashing, HKDF key derivation, Shamir secret sharing, and BIP-39 mnemonic seed phrases. Built on [@noble/ed25519](https://github.com/paulmillr/noble-ed25519) — zero native dependencies.
|
|
39
|
+
|
|
40
|
+
```typescript
|
|
41
|
+
import {
|
|
42
|
+
generateKeypair,
|
|
43
|
+
signBytes,
|
|
44
|
+
verifySignature,
|
|
45
|
+
encryptAes256Gcm,
|
|
46
|
+
decryptAes256Gcm,
|
|
47
|
+
sha256Hex,
|
|
48
|
+
blake3Hex,
|
|
49
|
+
generateMnemonic,
|
|
50
|
+
mnemonicToSeed,
|
|
51
|
+
generateX25519Keypair,
|
|
52
|
+
x25519SharedSecret,
|
|
53
|
+
splitSecret,
|
|
54
|
+
combineShares,
|
|
55
|
+
} from '@claw-network/core/crypto';
|
|
56
|
+
|
|
57
|
+
// Ed25519 key pair
|
|
58
|
+
const kp = generateKeypair();
|
|
59
|
+
const sig = signBytes(kp.privateKey, message);
|
|
60
|
+
const valid = verifySignature(kp.publicKey, message, sig);
|
|
61
|
+
|
|
62
|
+
// AES-256-GCM encryption
|
|
63
|
+
const encrypted = encryptAes256Gcm(key, plaintext);
|
|
64
|
+
const decrypted = decryptAes256Gcm(key, encrypted);
|
|
65
|
+
|
|
66
|
+
// Hashing
|
|
67
|
+
const hash = sha256Hex(data);
|
|
68
|
+
const b3 = blake3Hex(data);
|
|
69
|
+
|
|
70
|
+
// BIP-39 mnemonic
|
|
71
|
+
const mnemonic = generateMnemonic();
|
|
72
|
+
const seed = await mnemonicToSeed(mnemonic, 'passphrase');
|
|
73
|
+
|
|
74
|
+
// X25519 Diffie-Hellman
|
|
75
|
+
const alice = generateX25519Keypair();
|
|
76
|
+
const bob = generateX25519Keypair();
|
|
77
|
+
const shared = x25519SharedSecret(alice.privateKey, bob.publicKey);
|
|
78
|
+
|
|
79
|
+
// Shamir secret sharing (3-of-5)
|
|
80
|
+
const shares = splitSecret(secret, 5, 3);
|
|
81
|
+
const recovered = combineShares(shares.slice(0, 3));
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## `encoding` — Base58 & Multibase
|
|
85
|
+
|
|
86
|
+
```typescript
|
|
87
|
+
import { base58btcEncode, base58btcDecode, multibaseEncode, multibaseDecode } from '@claw-network/core/encoding';
|
|
88
|
+
|
|
89
|
+
const encoded = base58btcEncode(bytes); // "z..." multibase prefix
|
|
90
|
+
const decoded = base58btcDecode(encoded);
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## `identity` — DID Utilities
|
|
94
|
+
|
|
95
|
+
Convert between `did:claw:` identifiers, Ed25519 public keys, and EVM-derived addresses.
|
|
96
|
+
|
|
97
|
+
```typescript
|
|
98
|
+
import { didFromPublicKey, publicKeyFromDid, addressFromDid } from '@claw-network/core/identity';
|
|
99
|
+
|
|
100
|
+
const did = didFromPublicKey(publicKey); // did:claw:z6Mk...
|
|
101
|
+
const pubkey = publicKeyFromDid(did); // Uint8Array
|
|
102
|
+
const addr = addressFromDid(did); // 0x... (keccak256-derived)
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## `p2p` — libp2p Networking
|
|
106
|
+
|
|
107
|
+
High-level P2P node wrapping libp2p with TCP + Noise + Yamux + GossipSub + KadDHT.
|
|
108
|
+
|
|
109
|
+
```typescript
|
|
110
|
+
import { P2PNode, DEFAULT_P2P_CONFIG, TOPIC_EVENTS } from '@claw-network/core/p2p';
|
|
111
|
+
|
|
112
|
+
const node = new P2PNode({ bootstrap: ['/dns4/clawnetd.com/tcp/9527/p2p/12D3Koo...'] });
|
|
113
|
+
await node.start();
|
|
114
|
+
|
|
115
|
+
// Publish / subscribe via GossipSub
|
|
116
|
+
await node.subscribe(TOPIC_EVENTS, (msg) => console.log(msg));
|
|
117
|
+
await node.publish(TOPIC_EVENTS, data);
|
|
118
|
+
|
|
119
|
+
// Peer discovery
|
|
120
|
+
const peers = node.getConnections();
|
|
121
|
+
await node.amplifyMesh(); // DHT random walk
|
|
122
|
+
await node.reconnectBootstrap(); // re-dial seed nodes
|
|
123
|
+
|
|
124
|
+
await node.stop();
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
**Key classes:** `P2PNode`
|
|
128
|
+
**Topics:** `TOPIC_EVENTS`, `TOPIC_MARKETS`, `TOPIC_REQUESTS`, `TOPIC_RESPONSES`
|
|
129
|
+
**Delivery auth:** `sealDeliveryAuth()`, `openDeliveryAuth()`, `verifyDeliveryToken()`
|
|
130
|
+
|
|
131
|
+
## `protocol` — Event Signing & Verification
|
|
132
|
+
|
|
133
|
+
Canonical signing, hashing, and verification for event envelopes, verifiable credentials, and deliverables.
|
|
134
|
+
|
|
135
|
+
```typescript
|
|
136
|
+
import {
|
|
137
|
+
signEvent,
|
|
138
|
+
verifyEventSignature,
|
|
139
|
+
eventHashHex,
|
|
140
|
+
signCredentialProof,
|
|
141
|
+
verifyCredentialProof,
|
|
142
|
+
signDeliverable,
|
|
143
|
+
verifyDeliverableSignature,
|
|
144
|
+
} from '@claw-network/core/protocol';
|
|
145
|
+
|
|
146
|
+
// Sign and verify events
|
|
147
|
+
const signed = signEvent(envelope, privateKey);
|
|
148
|
+
const valid = verifyEventSignature(signed, publicKey);
|
|
149
|
+
const hash = eventHashHex(envelope);
|
|
150
|
+
|
|
151
|
+
// Verifiable credentials
|
|
152
|
+
const proof = signCredentialProof(credential, privateKey);
|
|
153
|
+
const vcValid = verifyCredentialProof(credential, publicKey);
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
## `storage` — Persistence Layer
|
|
157
|
+
|
|
158
|
+
LevelDB-backed key-value store, event-sourced event store, snapshot management, and encrypted keystore.
|
|
159
|
+
|
|
160
|
+
```typescript
|
|
161
|
+
import { LevelStore, EventStore, SnapshotStore, createKeyRecord, decryptKeyRecord } from '@claw-network/core/storage';
|
|
162
|
+
|
|
163
|
+
// Key-value store
|
|
164
|
+
const db = new LevelStore({ path: '/data/events' });
|
|
165
|
+
const store = new EventStore(db);
|
|
166
|
+
|
|
167
|
+
// Append and query events
|
|
168
|
+
await store.append(envelope);
|
|
169
|
+
const events = await store.getRange(fromHash, limit);
|
|
170
|
+
|
|
171
|
+
// Encrypted key material
|
|
172
|
+
const record = createKeyRecord(publicKey, privateKey, 'my-passphrase');
|
|
173
|
+
const decrypted = decryptKeyRecord(record, 'my-passphrase');
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
## `utils` — Byte Helpers
|
|
177
|
+
|
|
178
|
+
```typescript
|
|
179
|
+
import { utf8ToBytes, bytesToHex, hexToBytes, concatBytes, bytesToBase64 } from '@claw-network/core/utils';
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## Architecture
|
|
185
|
+
|
|
186
|
+
```
|
|
187
|
+
@claw-network/core
|
|
188
|
+
├── crypto/ Ed25519, AES-GCM, X25519, BLAKE3, SHA-256, HKDF, Shamir, BIP-39
|
|
189
|
+
├── encoding/ Base58btc, multibase
|
|
190
|
+
├── identity/ did:claw: ↔ public key ↔ EVM address
|
|
191
|
+
├── p2p/ libp2p (TCP + Noise + Yamux + GossipSub + KadDHT)
|
|
192
|
+
├── protocol/ Event/credential/deliverable signing & verification
|
|
193
|
+
├── storage/ LevelDB, EventStore, SnapshotStore, encrypted keystore
|
|
194
|
+
└── utils/ Byte ↔ string conversion helpers
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
## Documentation
|
|
198
|
+
|
|
199
|
+
- **Protocol Spec:** [docs.clawnetd.com](https://docs.clawnetd.com)
|
|
200
|
+
- **SDK Guide:** [docs.clawnetd.com/developer-guide/sdk-guide](https://docs.clawnetd.com/developer-guide/sdk-guide)
|
|
201
|
+
- **GitHub:** [github.com/claw-network/clawnet](https://github.com/claw-network/clawnet)
|
|
202
|
+
|
|
203
|
+
## License
|
|
204
|
+
|
|
205
|
+
MIT
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Delivery-auth: point-to-point credential exchange over libp2p streams.
|
|
3
|
+
*
|
|
4
|
+
* Protocol: /clawnet/1.0.0/delivery-auth
|
|
5
|
+
*
|
|
6
|
+
* Encrypts access tokens via X25519 ECDH + HKDF-SHA-256 + AES-256-GCM
|
|
7
|
+
* so that credentials never appear on gossip. The recipient verifies
|
|
8
|
+
* BLAKE3(token) against the public tokenHash in the DeliverableEnvelope.
|
|
9
|
+
*
|
|
10
|
+
* Spec: docs/implementation/deliverable-spec.md §6.6
|
|
11
|
+
*/
|
|
12
|
+
export interface DeliveryAuthRequest {
|
|
13
|
+
version: 1;
|
|
14
|
+
senderPublicKeyHex: string;
|
|
15
|
+
nonceHex: string;
|
|
16
|
+
ciphertextHex: string;
|
|
17
|
+
tagHex: string;
|
|
18
|
+
}
|
|
19
|
+
export interface DeliveryAuthPayload {
|
|
20
|
+
deliverableId: string;
|
|
21
|
+
token: string;
|
|
22
|
+
orderId: string;
|
|
23
|
+
providerDid: string;
|
|
24
|
+
expiresAt?: number;
|
|
25
|
+
}
|
|
26
|
+
export interface DeliveryAuthResponse {
|
|
27
|
+
accepted: boolean;
|
|
28
|
+
reason?: string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Encrypt a `DeliveryAuthPayload` for the given recipient X25519 public key.
|
|
32
|
+
* Returns a `DeliveryAuthRequest` ready to be JSON-serialized onto the stream.
|
|
33
|
+
*/
|
|
34
|
+
export declare function sealDeliveryAuth(payload: DeliveryAuthPayload, recipientPublicKey: Uint8Array): DeliveryAuthRequest;
|
|
35
|
+
/**
|
|
36
|
+
* Decrypt a `DeliveryAuthRequest` using the recipient's X25519 private key.
|
|
37
|
+
* Returns the plaintext `DeliveryAuthPayload`.
|
|
38
|
+
*
|
|
39
|
+
* @throws if decryption or JSON parsing fails.
|
|
40
|
+
*/
|
|
41
|
+
export declare function openDeliveryAuth(request: DeliveryAuthRequest, recipientPrivateKey: Uint8Array): DeliveryAuthPayload;
|
|
42
|
+
/**
|
|
43
|
+
* Compute the token hash that should appear in the public envelope.
|
|
44
|
+
* `tokenHash = hex(BLAKE3(utf8(token)))`
|
|
45
|
+
*/
|
|
46
|
+
export declare function deliveryTokenHash(token: string): string;
|
|
47
|
+
/**
|
|
48
|
+
* Verify that a received token matches the expected tokenHash from the envelope.
|
|
49
|
+
*/
|
|
50
|
+
export declare function verifyDeliveryToken(token: string, expectedHash: string): boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Encode a JSON message into length-prefixed bytes for stream transport.
|
|
53
|
+
* Format: 4-byte big-endian length + UTF-8 JSON body.
|
|
54
|
+
*/
|
|
55
|
+
export declare function encodeStreamMessage(message: unknown): Uint8Array;
|
|
56
|
+
/**
|
|
57
|
+
* Decode a length-prefixed message from a buffer.
|
|
58
|
+
* Returns [parsed message, bytes consumed] or null if buffer is incomplete.
|
|
59
|
+
*/
|
|
60
|
+
export declare function decodeStreamMessage<T = unknown>(buffer: Uint8Array): [T, number] | null;
|
|
61
|
+
/**
|
|
62
|
+
* Create an accepted response.
|
|
63
|
+
*/
|
|
64
|
+
export declare function acceptResponse(): DeliveryAuthResponse;
|
|
65
|
+
/**
|
|
66
|
+
* Create a rejected response.
|
|
67
|
+
*/
|
|
68
|
+
export declare function rejectResponse(reason: string): DeliveryAuthResponse;
|
|
69
|
+
//# sourceMappingURL=delivery-auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delivery-auth.d.ts","sourceRoot":"","sources":["../../src/p2p/delivery-auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAYH,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,CAAC,CAAC;IACX,kBAAkB,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAOD;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,mBAAmB,EAC5B,kBAAkB,EAAE,UAAU,GAC7B,mBAAmB,CAarB;AAID;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,mBAAmB,EAC5B,mBAAmB,EAAE,UAAU,GAC9B,mBAAmB,CAUrB;AAID;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAEhF;AAID;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,UAAU,CAMhE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,GAAG,OAAO,EAC7C,MAAM,EAAE,UAAU,GACjB,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,IAAI,CAMpB;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,oBAAoB,CAErD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,oBAAoB,CAEnE"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Delivery-auth: point-to-point credential exchange over libp2p streams.
|
|
3
|
+
*
|
|
4
|
+
* Protocol: /clawnet/1.0.0/delivery-auth
|
|
5
|
+
*
|
|
6
|
+
* Encrypts access tokens via X25519 ECDH + HKDF-SHA-256 + AES-256-GCM
|
|
7
|
+
* so that credentials never appear on gossip. The recipient verifies
|
|
8
|
+
* BLAKE3(token) against the public tokenHash in the DeliverableEnvelope.
|
|
9
|
+
*
|
|
10
|
+
* Spec: docs/implementation/deliverable-spec.md §6.6
|
|
11
|
+
*/
|
|
12
|
+
import { generateX25519Keypair, x25519SharedSecret } from '../crypto/x25519.js';
|
|
13
|
+
import { hkdfSha256 } from '../crypto/hkdf.js';
|
|
14
|
+
import { encryptAes256Gcm, decryptAes256Gcm } from '../crypto/aes.js';
|
|
15
|
+
import { blake3Hex } from '../crypto/hash.js';
|
|
16
|
+
import { utf8ToBytes, bytesToUtf8, bytesToHex, hexToBytes } from '../utils/bytes.js';
|
|
17
|
+
// HKDF info tag — domain-separated from info-store key sealing
|
|
18
|
+
const DELIVERY_AUTH_INFO = utf8ToBytes('clawnet:delivery-auth:v1');
|
|
19
|
+
// ── Sender (provider) side ─────────────────────────────────────────
|
|
20
|
+
/**
|
|
21
|
+
* Encrypt a `DeliveryAuthPayload` for the given recipient X25519 public key.
|
|
22
|
+
* Returns a `DeliveryAuthRequest` ready to be JSON-serialized onto the stream.
|
|
23
|
+
*/
|
|
24
|
+
export function sealDeliveryAuth(payload, recipientPublicKey) {
|
|
25
|
+
const sender = generateX25519Keypair();
|
|
26
|
+
const shared = x25519SharedSecret(sender.privateKey, recipientPublicKey);
|
|
27
|
+
const derived = hkdfSha256(shared, undefined, DELIVERY_AUTH_INFO, 32);
|
|
28
|
+
const plaintext = utf8ToBytes(JSON.stringify(payload));
|
|
29
|
+
const encrypted = encryptAes256Gcm(derived, plaintext);
|
|
30
|
+
return {
|
|
31
|
+
version: 1,
|
|
32
|
+
senderPublicKeyHex: bytesToHex(sender.publicKey),
|
|
33
|
+
nonceHex: encrypted.nonceHex,
|
|
34
|
+
ciphertextHex: encrypted.ciphertextHex,
|
|
35
|
+
tagHex: encrypted.tagHex,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
// ── Receiver (consumer) side ───────────────────────────────────────
|
|
39
|
+
/**
|
|
40
|
+
* Decrypt a `DeliveryAuthRequest` using the recipient's X25519 private key.
|
|
41
|
+
* Returns the plaintext `DeliveryAuthPayload`.
|
|
42
|
+
*
|
|
43
|
+
* @throws if decryption or JSON parsing fails.
|
|
44
|
+
*/
|
|
45
|
+
export function openDeliveryAuth(request, recipientPrivateKey) {
|
|
46
|
+
const senderPublicKey = hexToBytes(request.senderPublicKeyHex);
|
|
47
|
+
const shared = x25519SharedSecret(recipientPrivateKey, senderPublicKey);
|
|
48
|
+
const derived = hkdfSha256(shared, undefined, DELIVERY_AUTH_INFO, 32);
|
|
49
|
+
const plaintext = decryptAes256Gcm(derived, {
|
|
50
|
+
nonceHex: request.nonceHex,
|
|
51
|
+
ciphertextHex: request.ciphertextHex,
|
|
52
|
+
tagHex: request.tagHex,
|
|
53
|
+
});
|
|
54
|
+
return JSON.parse(bytesToUtf8(plaintext));
|
|
55
|
+
}
|
|
56
|
+
// ── Token hash verification ────────────────────────────────────────
|
|
57
|
+
/**
|
|
58
|
+
* Compute the token hash that should appear in the public envelope.
|
|
59
|
+
* `tokenHash = hex(BLAKE3(utf8(token)))`
|
|
60
|
+
*/
|
|
61
|
+
export function deliveryTokenHash(token) {
|
|
62
|
+
return blake3Hex(utf8ToBytes(token));
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Verify that a received token matches the expected tokenHash from the envelope.
|
|
66
|
+
*/
|
|
67
|
+
export function verifyDeliveryToken(token, expectedHash) {
|
|
68
|
+
return deliveryTokenHash(token) === expectedHash;
|
|
69
|
+
}
|
|
70
|
+
// ── Stream helpers ─────────────────────────────────────────────────
|
|
71
|
+
/**
|
|
72
|
+
* Encode a JSON message into length-prefixed bytes for stream transport.
|
|
73
|
+
* Format: 4-byte big-endian length + UTF-8 JSON body.
|
|
74
|
+
*/
|
|
75
|
+
export function encodeStreamMessage(message) {
|
|
76
|
+
const json = utf8ToBytes(JSON.stringify(message));
|
|
77
|
+
const frame = new Uint8Array(4 + json.length);
|
|
78
|
+
new DataView(frame.buffer).setUint32(0, json.length, false);
|
|
79
|
+
frame.set(json, 4);
|
|
80
|
+
return frame;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Decode a length-prefixed message from a buffer.
|
|
84
|
+
* Returns [parsed message, bytes consumed] or null if buffer is incomplete.
|
|
85
|
+
*/
|
|
86
|
+
export function decodeStreamMessage(buffer) {
|
|
87
|
+
if (buffer.length < 4)
|
|
88
|
+
return null;
|
|
89
|
+
const length = new DataView(buffer.buffer, buffer.byteOffset).getUint32(0, false);
|
|
90
|
+
if (buffer.length < 4 + length)
|
|
91
|
+
return null;
|
|
92
|
+
const json = bytesToUtf8(buffer.slice(4, 4 + length));
|
|
93
|
+
return [JSON.parse(json), 4 + length];
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Create an accepted response.
|
|
97
|
+
*/
|
|
98
|
+
export function acceptResponse() {
|
|
99
|
+
return { accepted: true };
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Create a rejected response.
|
|
103
|
+
*/
|
|
104
|
+
export function rejectResponse(reason) {
|
|
105
|
+
return { accepted: false, reason };
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=delivery-auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delivery-auth.js","sourceRoot":"","sources":["../../src/p2p/delivery-auth.ts"],"names":[],"mappings":"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"}
|
package/dist/p2p/index.d.ts
CHANGED
package/dist/p2p/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/p2p/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/p2p/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC"}
|
package/dist/p2p/index.js
CHANGED
package/dist/p2p/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/p2p/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/p2p/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC"}
|
package/dist/p2p/node.d.ts
CHANGED
|
@@ -14,6 +14,23 @@ type PrivateKeyLike = {
|
|
|
14
14
|
type: string;
|
|
15
15
|
publicKey: unknown;
|
|
16
16
|
};
|
|
17
|
+
/** Minimal duplex stream returned by dialProtocol / passed to handle callback. */
|
|
18
|
+
export interface StreamDuplex {
|
|
19
|
+
source: AsyncIterable<{
|
|
20
|
+
subarray: () => Uint8Array;
|
|
21
|
+
} | Uint8Array>;
|
|
22
|
+
sink: (source: AsyncIterable<Uint8Array>) => Promise<void>;
|
|
23
|
+
close: () => void | Promise<void>;
|
|
24
|
+
}
|
|
25
|
+
/** Callback invoked when a remote peer opens a stream for a registered protocol. */
|
|
26
|
+
export type StreamHandler = (data: {
|
|
27
|
+
stream: StreamDuplex;
|
|
28
|
+
connection: {
|
|
29
|
+
remotePeer?: {
|
|
30
|
+
toString: () => string;
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
}) => void;
|
|
17
34
|
export declare class P2PNode {
|
|
18
35
|
private node;
|
|
19
36
|
private readonly config;
|
|
@@ -38,6 +55,30 @@ export declare class P2PNode {
|
|
|
38
55
|
*/
|
|
39
56
|
amplifyMesh(): Promise<number>;
|
|
40
57
|
getPeerPublicKey(peerId: string): Promise<Uint8Array | null>;
|
|
58
|
+
/**
|
|
59
|
+
* Register a stream protocol handler.
|
|
60
|
+
* When a remote peer opens a stream for the given protocol ID, `handler` is called.
|
|
61
|
+
*/
|
|
62
|
+
handleProtocol(protocol: string, handler: StreamHandler): Promise<void>;
|
|
63
|
+
/**
|
|
64
|
+
* Remove a previously registered stream protocol handler.
|
|
65
|
+
*/
|
|
66
|
+
unhandleProtocol(protocol: string): Promise<void>;
|
|
67
|
+
/**
|
|
68
|
+
* Open a new stream to a remote peer for the given protocol.
|
|
69
|
+
* The caller must have a connection to the peer (via `connect()`).
|
|
70
|
+
*
|
|
71
|
+
* @param peerId The remote peer's ID (string).
|
|
72
|
+
* @param protocol The protocol ID (e.g. '/clawnet/1.0.0/delivery-auth').
|
|
73
|
+
* @returns A duplex stream for reading/writing.
|
|
74
|
+
*/
|
|
75
|
+
newStream(peerId: string, protocol: string): Promise<StreamDuplex>;
|
|
76
|
+
/**
|
|
77
|
+
* Re-dial all configured bootstrap multiaddrs.
|
|
78
|
+
* Useful when connections have been lost and the node needs to rejoin the mesh.
|
|
79
|
+
* Returns the number of successfully (re-)connected bootstrap peers.
|
|
80
|
+
*/
|
|
81
|
+
reconnectBootstrap(): Promise<number>;
|
|
41
82
|
private getPubsub;
|
|
42
83
|
}
|
|
43
84
|
export {};
|
package/dist/p2p/node.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/p2p/node.ts"],"names":[],"mappings":"AAAA,OAAO,kCAAkC,CAAC;AAgB1C,OAAO,EAAE,SAAS,EAAsB,MAAM,aAAa,CAAC;AAE5D,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE9E,KAAK,UAAU,GAAG;IAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;CAAE,CAAC;AAE7C,KAAK,cAAc,GAAG;IAAE,GAAG,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/p2p/node.ts"],"names":[],"mappings":"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"}
|
package/dist/p2p/node.js
CHANGED
|
@@ -288,6 +288,67 @@ export class P2PNode {
|
|
|
288
288
|
return null;
|
|
289
289
|
}
|
|
290
290
|
}
|
|
291
|
+
/**
|
|
292
|
+
* Register a stream protocol handler.
|
|
293
|
+
* When a remote peer opens a stream for the given protocol ID, `handler` is called.
|
|
294
|
+
*/
|
|
295
|
+
async handleProtocol(protocol, handler) {
|
|
296
|
+
if (!this.node?.handle) {
|
|
297
|
+
throw new Error('node not started or does not support handle()');
|
|
298
|
+
}
|
|
299
|
+
await this.node.handle(protocol, handler);
|
|
300
|
+
}
|
|
301
|
+
/**
|
|
302
|
+
* Remove a previously registered stream protocol handler.
|
|
303
|
+
*/
|
|
304
|
+
async unhandleProtocol(protocol) {
|
|
305
|
+
if (!this.node?.unhandle) {
|
|
306
|
+
throw new Error('node not started or does not support unhandle()');
|
|
307
|
+
}
|
|
308
|
+
await this.node.unhandle(protocol);
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* Open a new stream to a remote peer for the given protocol.
|
|
312
|
+
* The caller must have a connection to the peer (via `connect()`).
|
|
313
|
+
*
|
|
314
|
+
* @param peerId The remote peer's ID (string).
|
|
315
|
+
* @param protocol The protocol ID (e.g. '/clawnet/1.0.0/delivery-auth').
|
|
316
|
+
* @returns A duplex stream for reading/writing.
|
|
317
|
+
*/
|
|
318
|
+
async newStream(peerId, protocol) {
|
|
319
|
+
if (!this.node?.dialProtocol) {
|
|
320
|
+
throw new Error('node not started or does not support dialProtocol()');
|
|
321
|
+
}
|
|
322
|
+
return this.node.dialProtocol(peerId, protocol);
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* Re-dial all configured bootstrap multiaddrs.
|
|
326
|
+
* Useful when connections have been lost and the node needs to rejoin the mesh.
|
|
327
|
+
* Returns the number of successfully (re-)connected bootstrap peers.
|
|
328
|
+
*/
|
|
329
|
+
async reconnectBootstrap() {
|
|
330
|
+
if (!this.node?.dial)
|
|
331
|
+
return 0;
|
|
332
|
+
let connected = 0;
|
|
333
|
+
const currentPeers = new Set(this.getConnections());
|
|
334
|
+
for (const addr of this.config.bootstrap) {
|
|
335
|
+
try {
|
|
336
|
+
// Extract peerId from the /p2p/<id> component to skip already-connected peers
|
|
337
|
+
const p2pMatch = addr.match(/\/p2p\/([^/]+)$/);
|
|
338
|
+
const peerIdStr = p2pMatch?.[1];
|
|
339
|
+
if (peerIdStr && currentPeers.has(peerIdStr)) {
|
|
340
|
+
connected++; // already connected
|
|
341
|
+
continue;
|
|
342
|
+
}
|
|
343
|
+
await this.node.dial(multiaddr(addr));
|
|
344
|
+
connected++;
|
|
345
|
+
}
|
|
346
|
+
catch {
|
|
347
|
+
// bootstrap peer may be temporarily unreachable
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
return connected;
|
|
351
|
+
}
|
|
291
352
|
getPubsub() {
|
|
292
353
|
const pubsub = this.node?.services?.pubsub;
|
|
293
354
|
if (!pubsub) {
|
package/dist/p2p/node.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/p2p/node.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/p2p/node.ts"],"names":[],"mappings":"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"}
|
package/dist/p2p/topics.d.ts
CHANGED
|
@@ -2,5 +2,7 @@ export declare const TOPIC_EVENTS = "/clawnet/1.0.0/events";
|
|
|
2
2
|
export declare const TOPIC_MARKETS = "/clawnet/1.0.0/markets";
|
|
3
3
|
export declare const TOPIC_REQUESTS = "/clawnet/1.0.0/requests";
|
|
4
4
|
export declare const TOPIC_RESPONSES = "/clawnet/1.0.0/responses";
|
|
5
|
+
/** Point-to-point stream protocol for credential delivery (not a gossip topic). */
|
|
6
|
+
export declare const PROTOCOL_DELIVERY_AUTH = "/clawnet/1.0.0/delivery-auth";
|
|
5
7
|
export declare const ALL_TOPICS: string[];
|
|
6
8
|
//# sourceMappingURL=topics.d.ts.map
|
package/dist/p2p/topics.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"topics.d.ts","sourceRoot":"","sources":["../../src/p2p/topics.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,0BAA0B,CAAC;AACpD,eAAO,MAAM,aAAa,2BAA2B,CAAC;AACtD,eAAO,MAAM,cAAc,4BAA4B,CAAC;AACxD,eAAO,MAAM,eAAe,6BAA6B,CAAC;AAE1D,eAAO,MAAM,UAAU,UAAiE,CAAC"}
|
|
1
|
+
{"version":3,"file":"topics.d.ts","sourceRoot":"","sources":["../../src/p2p/topics.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,0BAA0B,CAAC;AACpD,eAAO,MAAM,aAAa,2BAA2B,CAAC;AACtD,eAAO,MAAM,cAAc,4BAA4B,CAAC;AACxD,eAAO,MAAM,eAAe,6BAA6B,CAAC;AAE1D,mFAAmF;AACnF,eAAO,MAAM,sBAAsB,iCAAiC,CAAC;AAErE,eAAO,MAAM,UAAU,UAAiE,CAAC"}
|
package/dist/p2p/topics.js
CHANGED
|
@@ -2,5 +2,7 @@ export const TOPIC_EVENTS = '/clawnet/1.0.0/events';
|
|
|
2
2
|
export const TOPIC_MARKETS = '/clawnet/1.0.0/markets';
|
|
3
3
|
export const TOPIC_REQUESTS = '/clawnet/1.0.0/requests';
|
|
4
4
|
export const TOPIC_RESPONSES = '/clawnet/1.0.0/responses';
|
|
5
|
+
/** Point-to-point stream protocol for credential delivery (not a gossip topic). */
|
|
6
|
+
export const PROTOCOL_DELIVERY_AUTH = '/clawnet/1.0.0/delivery-auth';
|
|
5
7
|
export const ALL_TOPICS = [TOPIC_EVENTS, TOPIC_MARKETS, TOPIC_REQUESTS, TOPIC_RESPONSES];
|
|
6
8
|
//# sourceMappingURL=topics.js.map
|
package/dist/p2p/topics.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"topics.js","sourceRoot":"","sources":["../../src/p2p/topics.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG,uBAAuB,CAAC;AACpD,MAAM,CAAC,MAAM,aAAa,GAAG,wBAAwB,CAAC;AACtD,MAAM,CAAC,MAAM,cAAc,GAAG,yBAAyB,CAAC;AACxD,MAAM,CAAC,MAAM,eAAe,GAAG,0BAA0B,CAAC;AAE1D,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"topics.js","sourceRoot":"","sources":["../../src/p2p/topics.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG,uBAAuB,CAAC;AACpD,MAAM,CAAC,MAAM,aAAa,GAAG,wBAAwB,CAAC;AACtD,MAAM,CAAC,MAAM,cAAc,GAAG,yBAAyB,CAAC;AACxD,MAAM,CAAC,MAAM,eAAe,GAAG,0BAA0B,CAAC;AAE1D,mFAAmF;AACnF,MAAM,CAAC,MAAM,sBAAsB,GAAG,8BAA8B,CAAC;AAErE,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,CAAC,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deliverable envelope signing & verification.
|
|
3
|
+
* Domain prefix: "clawnet:deliverable:v1:" (distinct from event prefix).
|
|
4
|
+
* Spec: docs/implementation/deliverable-spec.md §4.2
|
|
5
|
+
*/
|
|
6
|
+
export declare const DELIVERABLE_DOMAIN_PREFIX = "clawnet:deliverable:v1:";
|
|
7
|
+
export type DeliverableEnvelopeRecord = Record<string, unknown>;
|
|
8
|
+
/**
|
|
9
|
+
* Compute the canonical bytes of an envelope (without signature field).
|
|
10
|
+
*/
|
|
11
|
+
export declare function canonicalDeliverableBytes(envelope: DeliverableEnvelopeRecord): Uint8Array;
|
|
12
|
+
/**
|
|
13
|
+
* signingBytes = utf8(DOMAIN_PREFIX) + JCS(envelope \ {signature})
|
|
14
|
+
*/
|
|
15
|
+
export declare function deliverableSigningBytes(envelope: DeliverableEnvelopeRecord): Uint8Array;
|
|
16
|
+
/**
|
|
17
|
+
* Sign a deliverable envelope.
|
|
18
|
+
* Returns base58btc-encoded Ed25519 signature.
|
|
19
|
+
*/
|
|
20
|
+
export declare function signDeliverable(envelope: DeliverableEnvelopeRecord, privateKey: Uint8Array): Promise<string>;
|
|
21
|
+
/**
|
|
22
|
+
* Verify an Ed25519 signature on a deliverable envelope.
|
|
23
|
+
*/
|
|
24
|
+
export declare function verifyDeliverableSignature(envelope: DeliverableEnvelopeRecord, signatureBase58: string, publicKey: Uint8Array): Promise<boolean>;
|
|
25
|
+
/**
|
|
26
|
+
* BLAKE3(JCS(envelope)) — the value stored on-chain as `deliverableHash`.
|
|
27
|
+
* No double-hashing: this hex string is passed directly to the contract.
|
|
28
|
+
*/
|
|
29
|
+
export declare function envelopeDigest(envelope: DeliverableEnvelopeRecord): string;
|
|
30
|
+
/**
|
|
31
|
+
* BLAKE3 hash of plaintext content bytes.
|
|
32
|
+
*/
|
|
33
|
+
export declare function contentHash(data: Uint8Array): string;
|
|
34
|
+
/**
|
|
35
|
+
* id = hex(SHA-256(contextId + producer + nonce + createdAt))
|
|
36
|
+
*/
|
|
37
|
+
export declare function computeEnvelopeId(contextId: string, producer: string, nonce: string, createdAt: string): string;
|
|
38
|
+
//# sourceMappingURL=deliverable-hash.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deliverable-hash.d.ts","sourceRoot":"","sources":["../../src/protocol/deliverable-hash.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,eAAO,MAAM,yBAAyB,4BAA4B,CAAC;AAInE,MAAM,MAAM,yBAAyB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAUhE;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,yBAAyB,GAAG,UAAU,CAEzF;AAID;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,yBAAyB,GAAG,UAAU,CAIvF;AAID;;;GAGG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,yBAAyB,EACnC,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,MAAM,CAAC,CAEjB;AAID;;GAEG;AACH,wBAAsB,0BAA0B,CAC9C,QAAQ,EAAE,yBAAyB,EACnC,eAAe,EAAE,MAAM,EACvB,SAAS,EAAE,UAAU,GACpB,OAAO,CAAC,OAAO,CAAC,CAElB;AAID;;;GAGG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,yBAAyB,GAAG,MAAM,CAG1E;AAID;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAEpD;AAID;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,GAChB,MAAM,CAGR"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deliverable envelope signing & verification.
|
|
3
|
+
* Domain prefix: "clawnet:deliverable:v1:" (distinct from event prefix).
|
|
4
|
+
* Spec: docs/implementation/deliverable-spec.md §4.2
|
|
5
|
+
*/
|
|
6
|
+
import { canonicalizeBytes } from '../crypto/jcs.js';
|
|
7
|
+
import { blake3Hex } from '../crypto/hash.js';
|
|
8
|
+
import { sha256Hex } from '../crypto/hash.js';
|
|
9
|
+
import { concatBytes, utf8ToBytes } from '../utils/bytes.js';
|
|
10
|
+
import { signBase58, verifyBase58 } from '../crypto/ed25519.js';
|
|
11
|
+
export const DELIVERABLE_DOMAIN_PREFIX = 'clawnet:deliverable:v1:';
|
|
12
|
+
function stripSignature(envelope) {
|
|
13
|
+
const { signature, ...rest } = envelope;
|
|
14
|
+
void signature;
|
|
15
|
+
return rest;
|
|
16
|
+
}
|
|
17
|
+
// ── Canonical bytes ────────────────────────────────────────
|
|
18
|
+
/**
|
|
19
|
+
* Compute the canonical bytes of an envelope (without signature field).
|
|
20
|
+
*/
|
|
21
|
+
export function canonicalDeliverableBytes(envelope) {
|
|
22
|
+
return canonicalizeBytes(stripSignature(envelope));
|
|
23
|
+
}
|
|
24
|
+
// ── Signing bytes (domain-prefixed) ────────────────────────
|
|
25
|
+
/**
|
|
26
|
+
* signingBytes = utf8(DOMAIN_PREFIX) + JCS(envelope \ {signature})
|
|
27
|
+
*/
|
|
28
|
+
export function deliverableSigningBytes(envelope) {
|
|
29
|
+
const canonical = canonicalDeliverableBytes(envelope);
|
|
30
|
+
const prefix = utf8ToBytes(DELIVERABLE_DOMAIN_PREFIX);
|
|
31
|
+
return concatBytes(prefix, canonical);
|
|
32
|
+
}
|
|
33
|
+
// ── Sign ───────────────────────────────────────────────────
|
|
34
|
+
/**
|
|
35
|
+
* Sign a deliverable envelope.
|
|
36
|
+
* Returns base58btc-encoded Ed25519 signature.
|
|
37
|
+
*/
|
|
38
|
+
export async function signDeliverable(envelope, privateKey) {
|
|
39
|
+
return signBase58(deliverableSigningBytes(envelope), privateKey);
|
|
40
|
+
}
|
|
41
|
+
// ── Verify ─────────────────────────────────────────────────
|
|
42
|
+
/**
|
|
43
|
+
* Verify an Ed25519 signature on a deliverable envelope.
|
|
44
|
+
*/
|
|
45
|
+
export async function verifyDeliverableSignature(envelope, signatureBase58, publicKey) {
|
|
46
|
+
return verifyBase58(signatureBase58, deliverableSigningBytes(envelope), publicKey);
|
|
47
|
+
}
|
|
48
|
+
// ── Envelope digest (for on-chain anchoring) ───────────────
|
|
49
|
+
/**
|
|
50
|
+
* BLAKE3(JCS(envelope)) — the value stored on-chain as `deliverableHash`.
|
|
51
|
+
* No double-hashing: this hex string is passed directly to the contract.
|
|
52
|
+
*/
|
|
53
|
+
export function envelopeDigest(envelope) {
|
|
54
|
+
const canonical = canonicalizeBytes(envelope);
|
|
55
|
+
return blake3Hex(canonical);
|
|
56
|
+
}
|
|
57
|
+
// ── Content hash ───────────────────────────────────────────
|
|
58
|
+
/**
|
|
59
|
+
* BLAKE3 hash of plaintext content bytes.
|
|
60
|
+
*/
|
|
61
|
+
export function contentHash(data) {
|
|
62
|
+
return blake3Hex(data);
|
|
63
|
+
}
|
|
64
|
+
// ── Deterministic envelope ID ──────────────────────────────
|
|
65
|
+
/**
|
|
66
|
+
* id = hex(SHA-256(contextId + producer + nonce + createdAt))
|
|
67
|
+
*/
|
|
68
|
+
export function computeEnvelopeId(contextId, producer, nonce, createdAt) {
|
|
69
|
+
const input = utf8ToBytes(contextId + producer + nonce + createdAt);
|
|
70
|
+
return sha256Hex(input);
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=deliverable-hash.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deliverable-hash.js","sourceRoot":"","sources":["../../src/protocol/deliverable-hash.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,MAAM,yBAAyB,GAAG,yBAAyB,CAAC;AAMnE,SAAS,cAAc,CAAC,QAAmC;IACzD,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ,CAAC;IACxC,KAAK,SAAS,CAAC;IACf,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8DAA8D;AAE9D;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAC,QAAmC;IAC3E,OAAO,iBAAiB,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;AACrD,CAAC;AAED,8DAA8D;AAE9D;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,QAAmC;IACzE,MAAM,SAAS,GAAG,yBAAyB,CAAC,QAAQ,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,WAAW,CAAC,yBAAyB,CAAC,CAAC;IACtD,OAAO,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AACxC,CAAC;AAED,8DAA8D;AAE9D;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,QAAmC,EACnC,UAAsB;IAEtB,OAAO,UAAU,CAAC,uBAAuB,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC,CAAC;AACnE,CAAC;AAED,8DAA8D;AAE9D;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,QAAmC,EACnC,eAAuB,EACvB,SAAqB;IAErB,OAAO,YAAY,CAAC,eAAe,EAAE,uBAAuB,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC;AACrF,CAAC;AAED,8DAA8D;AAE9D;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,QAAmC;IAChE,MAAM,SAAS,GAAG,iBAAiB,CAAC,QAAmC,CAAC,CAAC;IACzE,OAAO,SAAS,CAAC,SAAS,CAAC,CAAC;AAC9B,CAAC;AAED,8DAA8D;AAE9D;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,IAAgB;IAC1C,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC;AAED,8DAA8D;AAE9D;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAC/B,SAAiB,EACjB,QAAgB,EAChB,KAAa,EACb,SAAiB;IAEjB,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAC,CAAC;IACpE,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC"}
|
package/dist/protocol/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/protocol/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/protocol/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC"}
|
package/dist/protocol/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/protocol/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/protocol/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC"}
|