@zksdk/core 0.1.1 → 0.1.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/dist/cjs/TfheClient.d.ts.map +1 -0
- package/dist/cjs/TfheClient.js +365 -0
- package/dist/cjs/TfheClient.js.map +1 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +28 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/types.d.ts.map +1 -0
- package/dist/cjs/types.js +11 -0
- package/dist/cjs/types.js.map +1 -0
- package/dist/esm/TfheClient.d.ts +88 -0
- package/dist/esm/TfheClient.d.ts.map +1 -0
- package/dist/{TfheClient.js → esm/TfheClient.js} +19 -6
- package/dist/esm/TfheClient.js.map +1 -0
- package/dist/esm/index.d.ts +20 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/types.d.ts +53 -0
- package/dist/esm/types.d.ts.map +1 -0
- package/dist/esm/types.js.map +1 -0
- package/package.json +24 -9
- package/dist/TfheClient.d.ts.map +0 -1
- package/dist/TfheClient.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js.map +0 -1
- /package/dist/{TfheClient.d.ts → cjs/TfheClient.d.ts} +0 -0
- /package/dist/{index.d.ts → cjs/index.d.ts} +0 -0
- /package/dist/{types.d.ts → cjs/types.d.ts} +0 -0
- /package/dist/{index.js → esm/index.js} +0 -0
- /package/dist/{types.js → esm/types.js} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TfheClient.d.ts","sourceRoot":"","sources":["../../src/TfheClient.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EACV,SAAS,EACT,uBAAuB,EACvB,kBAAkB,EAClB,qBAAqB,EACrB,aAAa,EACb,cAAc,EAEf,MAAM,YAAY,CAAC;AA+BpB,iBAAS,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAS3C;AAED,iBAAS,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAU3C;AAaD;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,mBAAmB,CAAa;IACxC,OAAO,CAAC,eAAe,CAAgD;IACvE,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,UAAU,CAAuB;IAEzC;;OAEG;IACG,IAAI,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IA0B/C,OAAO,CAAC,WAAW;IAMnB;;OAEG;IACG,YAAY,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;IAgBxG;;;;;OAKG;IACG,iBAAiB,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,SAAS,CAAC;IAoCxE;;OAEG;IACH,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAazC;;OAEG;IACG,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB9E;;OAEG;IACH,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,uBAAuB;IAkCtG;;OAEG;IACH,0BAA0B,CACxB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACrC,cAAc;IAajB;;;OAGG;IACH,gBAAgB,CACd,QAAQ,EAAE,MAAM,EAAE,EAClB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GACb,uBAAuB,GAAG;QAAE,eAAe,EAAE,MAAM,CAAA;KAAE;IA4BxD;;OAEG;IACH,gBAAgB,CAAC,kBAAkB,EAAE,MAAM,GAAG,kBAAkB;IAwBhE;;OAEG;IACH,sBAAsB,CAAC,kBAAkB,EAAE,MAAM,GAAG,qBAAqB;IAyBzE,OAAO,CAAC,sBAAsB;CAW/B;AAGD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -0,0 +1,365 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* ZKSDK TfheClient - Core FHE encryption/decryption client
|
|
4
|
+
*
|
|
5
|
+
* This client handles all TFHE operations including key generation,
|
|
6
|
+
* encryption, and decryption. The ClientKey never leaves the user's machine.
|
|
7
|
+
*/
|
|
8
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
9
|
+
if (k2 === undefined) k2 = k;
|
|
10
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
11
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
12
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
13
|
+
}
|
|
14
|
+
Object.defineProperty(o, k2, desc);
|
|
15
|
+
}) : (function(o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
o[k2] = m[k];
|
|
18
|
+
}));
|
|
19
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
20
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
21
|
+
}) : function(o, v) {
|
|
22
|
+
o["default"] = v;
|
|
23
|
+
});
|
|
24
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
25
|
+
var ownKeys = function(o) {
|
|
26
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
27
|
+
var ar = [];
|
|
28
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29
|
+
return ar;
|
|
30
|
+
};
|
|
31
|
+
return ownKeys(o);
|
|
32
|
+
};
|
|
33
|
+
return function (mod) {
|
|
34
|
+
if (mod && mod.__esModule) return mod;
|
|
35
|
+
var result = {};
|
|
36
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
37
|
+
__setModuleDefault(result, mod);
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
})();
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
exports.TfheClient = void 0;
|
|
43
|
+
exports.toBase64 = toBase64;
|
|
44
|
+
exports.fromBase64 = fromBase64;
|
|
45
|
+
const path_1 = require("path");
|
|
46
|
+
const fs_1 = require("fs");
|
|
47
|
+
// Dynamic imports for TFHE WASM
|
|
48
|
+
let initTfhe;
|
|
49
|
+
let tfhe;
|
|
50
|
+
const DEFAULT_CIRCUIT_ID = "private_token_slots_v1";
|
|
51
|
+
// Helper to find package root
|
|
52
|
+
function findPackageRoot() {
|
|
53
|
+
// Use require.resolve to find the package location
|
|
54
|
+
try {
|
|
55
|
+
// Try to resolve our own package
|
|
56
|
+
const resolved = require.resolve("@zksdk/core/package.json");
|
|
57
|
+
return (0, path_1.join)(resolved, "..");
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
// Fallback: walk up from current file location
|
|
61
|
+
// In both ESM and CJS, we're in dist/esm or dist/cjs
|
|
62
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
63
|
+
const path = require("path");
|
|
64
|
+
return path.resolve(__dirname, "..", "..");
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
// Helper to load WASM in Node.js
|
|
68
|
+
async function loadWasmForNode() {
|
|
69
|
+
const packageRoot = findPackageRoot();
|
|
70
|
+
const wasmPath = (0, path_1.join)(packageRoot, "tfhe-wasm", "tfhe_bg.wasm");
|
|
71
|
+
return (0, fs_1.readFileSync)(wasmPath);
|
|
72
|
+
}
|
|
73
|
+
function toBase64(bytes) {
|
|
74
|
+
if (typeof Buffer !== "undefined") {
|
|
75
|
+
return Buffer.from(bytes).toString("base64");
|
|
76
|
+
}
|
|
77
|
+
let binary = "";
|
|
78
|
+
for (let i = 0; i < bytes.length; i += 1) {
|
|
79
|
+
binary += String.fromCharCode(bytes[i]);
|
|
80
|
+
}
|
|
81
|
+
return btoa(binary);
|
|
82
|
+
}
|
|
83
|
+
function fromBase64(b64) {
|
|
84
|
+
if (typeof Buffer !== "undefined") {
|
|
85
|
+
return new Uint8Array(Buffer.from(b64, "base64"));
|
|
86
|
+
}
|
|
87
|
+
const binary = atob(b64);
|
|
88
|
+
const bytes = new Uint8Array(binary.length);
|
|
89
|
+
for (let i = 0; i < binary.length; i += 1) {
|
|
90
|
+
bytes[i] = binary.charCodeAt(i);
|
|
91
|
+
}
|
|
92
|
+
return bytes;
|
|
93
|
+
}
|
|
94
|
+
function concatBytes(chunks) {
|
|
95
|
+
const total = chunks.reduce((sum, chunk) => sum + chunk.length, 0);
|
|
96
|
+
const merged = new Uint8Array(total);
|
|
97
|
+
let offset = 0;
|
|
98
|
+
for (const chunk of chunks) {
|
|
99
|
+
merged.set(chunk, offset);
|
|
100
|
+
offset += chunk.length;
|
|
101
|
+
}
|
|
102
|
+
return merged;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* TfheClient - Main client for FHE operations
|
|
106
|
+
*
|
|
107
|
+
* @example
|
|
108
|
+
* ```typescript
|
|
109
|
+
* import { TfheClient } from '@zksdk/core';
|
|
110
|
+
*
|
|
111
|
+
* const client = new TfheClient();
|
|
112
|
+
* await client.init();
|
|
113
|
+
*
|
|
114
|
+
* // Generate vault keys (client-side)
|
|
115
|
+
* const keys = await client.generateVaultKeys();
|
|
116
|
+
* // Save keys.clientKey securely - you need it to decrypt!
|
|
117
|
+
*
|
|
118
|
+
* // Encrypt transfer params
|
|
119
|
+
* const encrypted = client.encryptTransferParams(0, 1, 50);
|
|
120
|
+
* ```
|
|
121
|
+
*/
|
|
122
|
+
class TfheClient {
|
|
123
|
+
constructor() {
|
|
124
|
+
this.initialized = false;
|
|
125
|
+
this.clientKey = null;
|
|
126
|
+
this.compressedServerKey = null;
|
|
127
|
+
this.ciphertextSizes = null;
|
|
128
|
+
this.vaultPublicKey = null;
|
|
129
|
+
this.vaultKeyId = null;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Initialize the TFHE WASM module
|
|
133
|
+
*/
|
|
134
|
+
async init(wasmModule) {
|
|
135
|
+
if (this.initialized)
|
|
136
|
+
return;
|
|
137
|
+
// Dynamic import of TFHE bindings
|
|
138
|
+
const tfheModule = await Promise.resolve().then(() => __importStar(require("../tfhe-wasm/tfhe.js")));
|
|
139
|
+
initTfhe = tfheModule.default;
|
|
140
|
+
tfhe = tfheModule;
|
|
141
|
+
// In Node.js, load WASM from file system
|
|
142
|
+
if (!wasmModule && typeof window === "undefined") {
|
|
143
|
+
wasmModule = await loadWasmForNode();
|
|
144
|
+
}
|
|
145
|
+
await initTfhe(wasmModule);
|
|
146
|
+
if (typeof tfhe.init_panic_hook === "function") {
|
|
147
|
+
try {
|
|
148
|
+
tfhe.init_panic_hook();
|
|
149
|
+
}
|
|
150
|
+
catch (_) {
|
|
151
|
+
// Optional; continue even if not available
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
this.initialized = true;
|
|
155
|
+
}
|
|
156
|
+
requireKeys() {
|
|
157
|
+
if (!this.clientKey || !this.compressedServerKey) {
|
|
158
|
+
throw new Error("Call generateKeys() or generateVaultKeys() before encrypting or decrypting");
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Generate standard FHE keys
|
|
163
|
+
*/
|
|
164
|
+
async generateKeys(options = {}) {
|
|
165
|
+
await this.init(options.wasmModule);
|
|
166
|
+
const builder = options.configBuilder ?? tfhe.TfheConfigBuilder.default();
|
|
167
|
+
const config = builder.build();
|
|
168
|
+
this.clientKey = tfhe.TfheClientKey.generate(config);
|
|
169
|
+
this.compressedServerKey = tfhe.TfheCompressedServerKey.new(this.clientKey);
|
|
170
|
+
this.ciphertextSizes = null;
|
|
171
|
+
return {
|
|
172
|
+
clientKeyB64: toBase64(this.clientKey.serialize()),
|
|
173
|
+
serverKeyB64: toBase64(this.compressedServerKey.serialize()),
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Generate vault FHE keys client-side (Zero-Trust Model)
|
|
178
|
+
*
|
|
179
|
+
* SECURITY: ClientKey stays on YOUR machine - NEVER sent to oracle.
|
|
180
|
+
* Only ServerKey and PublicKey are sent to the worker.
|
|
181
|
+
*/
|
|
182
|
+
async generateVaultKeys(options = {}) {
|
|
183
|
+
await this.init(options.wasmModule);
|
|
184
|
+
console.log("Generating vault FHE keys client-side...");
|
|
185
|
+
const startTime = Date.now();
|
|
186
|
+
const config = tfhe.TfheConfigBuilder.default().build();
|
|
187
|
+
const clientKey = tfhe.TfheClientKey.generate(config);
|
|
188
|
+
const serverKey = tfhe.TfheCompressedServerKey.new(clientKey);
|
|
189
|
+
const publicKey = tfhe.TfheCompressedPublicKey.new(clientKey);
|
|
190
|
+
const elapsed = ((Date.now() - startTime) / 1000).toFixed(1);
|
|
191
|
+
console.log(` Key generation complete in ${elapsed}s`);
|
|
192
|
+
// Store keys internally
|
|
193
|
+
this.clientKey = clientKey;
|
|
194
|
+
this.compressedServerKey = serverKey;
|
|
195
|
+
this.vaultPublicKey = publicKey;
|
|
196
|
+
this.ciphertextSizes = null;
|
|
197
|
+
// Serialize all keys
|
|
198
|
+
const clientKeyB64 = toBase64(clientKey.serialize());
|
|
199
|
+
const serverKeyB64 = toBase64(serverKey.serialize());
|
|
200
|
+
const publicKeyB64 = toBase64(publicKey.serialize());
|
|
201
|
+
console.log(` ClientKey size: ${(clientKeyB64.length / 1024).toFixed(1)} KB`);
|
|
202
|
+
console.log(` ServerKey size: ${(serverKeyB64.length / 1024 / 1024).toFixed(1)} MB`);
|
|
203
|
+
console.log(` PublicKey size: ${(publicKeyB64.length / 1024 / 1024).toFixed(1)} MB`);
|
|
204
|
+
return {
|
|
205
|
+
clientKey: clientKeyB64,
|
|
206
|
+
serverKey: serverKeyB64,
|
|
207
|
+
publicKey: publicKeyB64,
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Load a ClientKey from base64 string
|
|
212
|
+
*/
|
|
213
|
+
loadClientKey(clientKeyB64) {
|
|
214
|
+
if (!this.initialized) {
|
|
215
|
+
throw new Error("Call init() first before loading keys");
|
|
216
|
+
}
|
|
217
|
+
const clientKeyBytes = fromBase64(clientKeyB64);
|
|
218
|
+
this.clientKey = tfhe.TfheClientKey.deserialize(clientKeyBytes);
|
|
219
|
+
this.compressedServerKey = tfhe.TfheCompressedServerKey.new(this.clientKey);
|
|
220
|
+
this.ciphertextSizes = null;
|
|
221
|
+
console.log("ClientKey loaded successfully");
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Load a vault's public key from the worker API
|
|
225
|
+
*/
|
|
226
|
+
async loadVaultPublicKey(workerUrl, vaultKeyId) {
|
|
227
|
+
await this.init();
|
|
228
|
+
const response = await fetch(`${workerUrl}/api/v1/vault/${vaultKeyId}/public-key`);
|
|
229
|
+
if (!response.ok) {
|
|
230
|
+
const error = await response.text();
|
|
231
|
+
throw new Error(`Failed to load vault public key: ${error}`);
|
|
232
|
+
}
|
|
233
|
+
const data = await response.json();
|
|
234
|
+
const publicKeyBytes = fromBase64(data.public_key);
|
|
235
|
+
this.vaultPublicKey = tfhe.TfheCompressedPublicKey.deserialize(publicKeyBytes);
|
|
236
|
+
this.vaultKeyId = vaultKeyId;
|
|
237
|
+
console.log(`Loaded public key for vault ${vaultKeyId}`);
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Encrypt transfer parameters
|
|
241
|
+
*/
|
|
242
|
+
encryptTransferParams(senderIdx, receiverIdx, amount) {
|
|
243
|
+
// Vault owner path: use ClientKey (fast)
|
|
244
|
+
if (this.clientKey) {
|
|
245
|
+
const senderIdxCt = tfhe.FheUint8.encrypt_with_client_key(senderIdx, this.clientKey);
|
|
246
|
+
const receiverIdxCt = tfhe.FheUint8.encrypt_with_client_key(receiverIdx, this.clientKey);
|
|
247
|
+
const amountCt = tfhe.FheUint8.encrypt_with_client_key(amount, this.clientKey);
|
|
248
|
+
const payload = concatBytes([
|
|
249
|
+
senderIdxCt.serialize(),
|
|
250
|
+
receiverIdxCt.serialize(),
|
|
251
|
+
amountCt.serialize(),
|
|
252
|
+
]);
|
|
253
|
+
return { encrypted_data: toBase64(payload) };
|
|
254
|
+
}
|
|
255
|
+
// External user path: use PublicKey
|
|
256
|
+
if (!this.vaultPublicKey) {
|
|
257
|
+
throw new Error("No keys available. Vault owner: call generateVaultKeys(). External user: call loadVaultPublicKey().");
|
|
258
|
+
}
|
|
259
|
+
const senderIdxCt = tfhe.FheUint8.encrypt_with_compressed_public_key(senderIdx, this.vaultPublicKey);
|
|
260
|
+
const receiverIdxCt = tfhe.FheUint8.encrypt_with_compressed_public_key(receiverIdx, this.vaultPublicKey);
|
|
261
|
+
const amountCt = tfhe.FheUint8.encrypt_with_compressed_public_key(amount, this.vaultPublicKey);
|
|
262
|
+
const payload = concatBytes([
|
|
263
|
+
senderIdxCt.serialize(),
|
|
264
|
+
receiverIdxCt.serialize(),
|
|
265
|
+
amountCt.serialize(),
|
|
266
|
+
]);
|
|
267
|
+
return { encrypted_data: toBase64(payload) };
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Build execute payload for secure transfer
|
|
271
|
+
*/
|
|
272
|
+
buildSecureTransferPayload(senderIdx, receiverIdx, amount, metadata = {}) {
|
|
273
|
+
const { encrypted_data } = this.encryptTransferParams(senderIdx, receiverIdx, amount);
|
|
274
|
+
return {
|
|
275
|
+
circuit_id: DEFAULT_CIRCUIT_ID,
|
|
276
|
+
encrypted_data,
|
|
277
|
+
metadata: {
|
|
278
|
+
...metadata,
|
|
279
|
+
vault_key_id: this.vaultKeyId,
|
|
280
|
+
},
|
|
281
|
+
};
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Encrypt CMUX token transfer (legacy method)
|
|
285
|
+
* @deprecated Use encryptTransferParams() with vault public key instead
|
|
286
|
+
*/
|
|
287
|
+
encryptCmuxToken(balances, senderIdx, receiverIdx, amount) {
|
|
288
|
+
this.requireKeys();
|
|
289
|
+
const encryptedBalances = balances.map((b) => tfhe.FheUint8.encrypt_with_client_key(b, this.clientKey));
|
|
290
|
+
const senderIdxCt = tfhe.FheUint8.encrypt_with_client_key(senderIdx, this.clientKey);
|
|
291
|
+
const receiverIdxCt = tfhe.FheUint8.encrypt_with_client_key(receiverIdx, this.clientKey);
|
|
292
|
+
const amountCt = tfhe.FheUint8.encrypt_with_client_key(amount, this.clientKey);
|
|
293
|
+
const countBytes = new Uint8Array([balances.length]);
|
|
294
|
+
const balanceChunks = encryptedBalances.map((ct) => ct.serialize());
|
|
295
|
+
const payload = concatBytes([
|
|
296
|
+
countBytes,
|
|
297
|
+
...balanceChunks,
|
|
298
|
+
senderIdxCt.serialize(),
|
|
299
|
+
receiverIdxCt.serialize(),
|
|
300
|
+
amountCt.serialize(),
|
|
301
|
+
]);
|
|
302
|
+
return {
|
|
303
|
+
encrypted_data: toBase64(payload),
|
|
304
|
+
evaluation_keys: toBase64(this.compressedServerKey.serialize()),
|
|
305
|
+
};
|
|
306
|
+
}
|
|
307
|
+
/**
|
|
308
|
+
* Decrypt CMUX token transfer result
|
|
309
|
+
*/
|
|
310
|
+
decryptCmuxToken(encryptedResultB64) {
|
|
311
|
+
this.requireKeys();
|
|
312
|
+
const bytes = fromBase64(encryptedResultB64);
|
|
313
|
+
const sizes = this.ciphertextSizes ?? this.computeCiphertextSizes();
|
|
314
|
+
// First 2 bytes are u16 count (little-endian)
|
|
315
|
+
const count = bytes[0] | (bytes[1] << 8);
|
|
316
|
+
let offset = 2;
|
|
317
|
+
const balances = [];
|
|
318
|
+
for (let i = 0; i < count; i++) {
|
|
319
|
+
const balanceBytes = bytes.slice(offset, offset + sizes.uint8);
|
|
320
|
+
const balanceCt = tfhe.FheUint8.deserialize(balanceBytes);
|
|
321
|
+
balances.push(balanceCt.decrypt(this.clientKey));
|
|
322
|
+
offset += sizes.uint8;
|
|
323
|
+
}
|
|
324
|
+
const boolBytes = bytes.slice(offset, offset + sizes.bool);
|
|
325
|
+
const validCt = tfhe.FheBool.deserialize(boolBytes);
|
|
326
|
+
const isValid = validCt.decrypt(this.clientKey);
|
|
327
|
+
return { balances, isValid };
|
|
328
|
+
}
|
|
329
|
+
/**
|
|
330
|
+
* Decrypt balance transfer result
|
|
331
|
+
*/
|
|
332
|
+
decryptBalanceTransfer(encryptedResultB64) {
|
|
333
|
+
this.requireKeys();
|
|
334
|
+
const bytes = fromBase64(encryptedResultB64);
|
|
335
|
+
const sizes = this.ciphertextSizes ?? this.computeCiphertextSizes();
|
|
336
|
+
const expectedLen = sizes.uint8 * 2 + sizes.bool;
|
|
337
|
+
if (bytes.length < expectedLen) {
|
|
338
|
+
throw new Error(`Encrypted result too short: ${bytes.length} < ${expectedLen}`);
|
|
339
|
+
}
|
|
340
|
+
const senderBytes = bytes.slice(0, sizes.uint8);
|
|
341
|
+
const receiverBytes = bytes.slice(sizes.uint8, sizes.uint8 * 2);
|
|
342
|
+
const boolBytes = bytes.slice(sizes.uint8 * 2, expectedLen);
|
|
343
|
+
const newSenderCt = tfhe.FheUint8.deserialize(senderBytes);
|
|
344
|
+
const newReceiverCt = tfhe.FheUint8.deserialize(receiverBytes);
|
|
345
|
+
const validCt = tfhe.FheBool.deserialize(boolBytes);
|
|
346
|
+
return {
|
|
347
|
+
newSender: newSenderCt.decrypt(this.clientKey),
|
|
348
|
+
newReceiver: newReceiverCt.decrypt(this.clientKey),
|
|
349
|
+
isValid: validCt.decrypt(this.clientKey),
|
|
350
|
+
};
|
|
351
|
+
}
|
|
352
|
+
computeCiphertextSizes() {
|
|
353
|
+
this.requireKeys();
|
|
354
|
+
const sampleUint = tfhe.FheUint8.encrypt_with_client_key(0, this.clientKey);
|
|
355
|
+
const sampleBool = tfhe.FheBool.encrypt_with_client_key(false, this.clientKey);
|
|
356
|
+
const sizes = {
|
|
357
|
+
uint8: sampleUint.serialize().length,
|
|
358
|
+
bool: sampleBool.serialize().length,
|
|
359
|
+
};
|
|
360
|
+
this.ciphertextSizes = sizes;
|
|
361
|
+
return sizes;
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
exports.TfheClient = TfheClient;
|
|
365
|
+
//# sourceMappingURL=TfheClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TfheClient.js","sourceRoot":"","sources":["../../src/TfheClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAEnE,YAAY,EACV,SAAS,EACT,SAAS,EACT,uBAAuB,EACvB,kBAAkB,EAClB,qBAAqB,EACrB,aAAa,EACb,iBAAiB,EACjB,cAAc,GACf,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,2BAA2B,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAEpF,sBAAsB;AACtB,eAAO,MAAM,OAAO,UAAU,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @zksdk/core - Core FHE client and types for privacy-preserving computation
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```typescript
|
|
7
|
+
* import { TfheClient } from '@zksdk/core';
|
|
8
|
+
*
|
|
9
|
+
* const client = new TfheClient();
|
|
10
|
+
* await client.init();
|
|
11
|
+
*
|
|
12
|
+
* const keys = await client.generateVaultKeys();
|
|
13
|
+
* console.log('Save your clientKey securely!');
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.VERSION = exports.CIRCUIT_CMUX_TOKEN_LEGACY = exports.CIRCUIT_PRIVATE_TOKEN_SLOTS = exports.fromBase64 = exports.toBase64 = exports.TfheClient = void 0;
|
|
18
|
+
var TfheClient_js_1 = require("./TfheClient.js");
|
|
19
|
+
Object.defineProperty(exports, "TfheClient", { enumerable: true, get: function () { return TfheClient_js_1.TfheClient; } });
|
|
20
|
+
Object.defineProperty(exports, "toBase64", { enumerable: true, get: function () { return TfheClient_js_1.toBase64; } });
|
|
21
|
+
Object.defineProperty(exports, "fromBase64", { enumerable: true, get: function () { return TfheClient_js_1.fromBase64; } });
|
|
22
|
+
// Export circuit ID constants
|
|
23
|
+
var types_js_1 = require("./types.js");
|
|
24
|
+
Object.defineProperty(exports, "CIRCUIT_PRIVATE_TOKEN_SLOTS", { enumerable: true, get: function () { return types_js_1.CIRCUIT_PRIVATE_TOKEN_SLOTS; } });
|
|
25
|
+
Object.defineProperty(exports, "CIRCUIT_CMUX_TOKEN_LEGACY", { enumerable: true, get: function () { return types_js_1.CIRCUIT_CMUX_TOKEN_LEGACY; } });
|
|
26
|
+
/** Package version */
|
|
27
|
+
exports.VERSION = '0.1.0';
|
|
28
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;;AAEH,iDAAmE;AAA1D,2GAAA,UAAU,OAAA;AAAE,yGAAA,QAAQ,OAAA;AAAE,2GAAA,UAAU,OAAA;AAazC,8BAA8B;AAC9B,uCAAoF;AAA3E,uHAAA,2BAA2B,OAAA;AAAE,qHAAA,yBAAyB,OAAA;AAE/D,sBAAsB;AACT,QAAA,OAAO,GAAG,OAAO,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,oCAAoC;AACpC,MAAM,MAAM,SAAS,GACjB,wBAAwB,GACxB,sBAAsB,GACtB,qBAAqB,GACrB,2BAA2B,GAC3B,MAAM,CAAC;AAEX,6CAA6C;AAC7C,eAAO,MAAM,2BAA2B,EAAE,SAAoC,CAAC;AAC/E,sEAAsE;AACtE,eAAO,MAAM,yBAAyB,EAAE,SAAkC,CAAC;AAE3E,0CAA0C;AAC1C,MAAM,WAAW,SAAS;IACxB,qDAAqD;IACrD,SAAS,EAAE,MAAM,CAAC;IAClB,0DAA0D;IAC1D,SAAS,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,oCAAoC;AACpC,MAAM,WAAW,uBAAuB;IACtC,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,iDAAiD;AACjD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,qDAAqD;AACrD,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,6BAA6B;AAC7B,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,kCAAkC;AAClC,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qCAAqC;AACrC,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,SAAS,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* ZKSDK Core Types
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.CIRCUIT_CMUX_TOKEN_LEGACY = exports.CIRCUIT_PRIVATE_TOKEN_SLOTS = void 0;
|
|
7
|
+
/** Current private token slots circuit ID */
|
|
8
|
+
exports.CIRCUIT_PRIVATE_TOKEN_SLOTS = 'private_token_slots_v1';
|
|
9
|
+
/** Legacy circuit ID (deprecated, use CIRCUIT_PRIVATE_TOKEN_SLOTS) */
|
|
10
|
+
exports.CIRCUIT_CMUX_TOKEN_LEGACY = 'cmux_token_v1_linear';
|
|
11
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAUH,6CAA6C;AAChC,QAAA,2BAA2B,GAAc,wBAAwB,CAAC;AAC/E,sEAAsE;AACzD,QAAA,yBAAyB,GAAc,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ZKSDK TfheClient - Core FHE encryption/decryption client
|
|
3
|
+
*
|
|
4
|
+
* This client handles all TFHE operations including key generation,
|
|
5
|
+
* encryption, and decryption. The ClientKey never leaves the user's machine.
|
|
6
|
+
*/
|
|
7
|
+
import type { VaultKeys, EncryptedTransferParams, CmuxTransferResult, BalanceTransferResult, KeyGenOptions, ExecutePayload } from "./types.js";
|
|
8
|
+
declare function toBase64(bytes: Uint8Array): string;
|
|
9
|
+
declare function fromBase64(b64: string): Uint8Array;
|
|
10
|
+
/**
|
|
11
|
+
* TfheClient - Main client for FHE operations
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* import { TfheClient } from '@zksdk/core';
|
|
16
|
+
*
|
|
17
|
+
* const client = new TfheClient();
|
|
18
|
+
* await client.init();
|
|
19
|
+
*
|
|
20
|
+
* // Generate vault keys (client-side)
|
|
21
|
+
* const keys = await client.generateVaultKeys();
|
|
22
|
+
* // Save keys.clientKey securely - you need it to decrypt!
|
|
23
|
+
*
|
|
24
|
+
* // Encrypt transfer params
|
|
25
|
+
* const encrypted = client.encryptTransferParams(0, 1, 50);
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export declare class TfheClient {
|
|
29
|
+
private initialized;
|
|
30
|
+
private clientKey;
|
|
31
|
+
private compressedServerKey;
|
|
32
|
+
private ciphertextSizes;
|
|
33
|
+
private vaultPublicKey;
|
|
34
|
+
private vaultKeyId;
|
|
35
|
+
/**
|
|
36
|
+
* Initialize the TFHE WASM module
|
|
37
|
+
*/
|
|
38
|
+
init(wasmModule?: unknown): Promise<void>;
|
|
39
|
+
private requireKeys;
|
|
40
|
+
/**
|
|
41
|
+
* Generate standard FHE keys
|
|
42
|
+
*/
|
|
43
|
+
generateKeys(options?: KeyGenOptions): Promise<{
|
|
44
|
+
clientKeyB64: string;
|
|
45
|
+
serverKeyB64: string;
|
|
46
|
+
}>;
|
|
47
|
+
/**
|
|
48
|
+
* Generate vault FHE keys client-side (Zero-Trust Model)
|
|
49
|
+
*
|
|
50
|
+
* SECURITY: ClientKey stays on YOUR machine - NEVER sent to oracle.
|
|
51
|
+
* Only ServerKey and PublicKey are sent to the worker.
|
|
52
|
+
*/
|
|
53
|
+
generateVaultKeys(options?: KeyGenOptions): Promise<VaultKeys>;
|
|
54
|
+
/**
|
|
55
|
+
* Load a ClientKey from base64 string
|
|
56
|
+
*/
|
|
57
|
+
loadClientKey(clientKeyB64: string): void;
|
|
58
|
+
/**
|
|
59
|
+
* Load a vault's public key from the worker API
|
|
60
|
+
*/
|
|
61
|
+
loadVaultPublicKey(workerUrl: string, vaultKeyId: string): Promise<void>;
|
|
62
|
+
/**
|
|
63
|
+
* Encrypt transfer parameters
|
|
64
|
+
*/
|
|
65
|
+
encryptTransferParams(senderIdx: number, receiverIdx: number, amount: number): EncryptedTransferParams;
|
|
66
|
+
/**
|
|
67
|
+
* Build execute payload for secure transfer
|
|
68
|
+
*/
|
|
69
|
+
buildSecureTransferPayload(senderIdx: number, receiverIdx: number, amount: number, metadata?: Record<string, unknown>): ExecutePayload;
|
|
70
|
+
/**
|
|
71
|
+
* Encrypt CMUX token transfer (legacy method)
|
|
72
|
+
* @deprecated Use encryptTransferParams() with vault public key instead
|
|
73
|
+
*/
|
|
74
|
+
encryptCmuxToken(balances: number[], senderIdx: number, receiverIdx: number, amount: number): EncryptedTransferParams & {
|
|
75
|
+
evaluation_keys: string;
|
|
76
|
+
};
|
|
77
|
+
/**
|
|
78
|
+
* Decrypt CMUX token transfer result
|
|
79
|
+
*/
|
|
80
|
+
decryptCmuxToken(encryptedResultB64: string): CmuxTransferResult;
|
|
81
|
+
/**
|
|
82
|
+
* Decrypt balance transfer result
|
|
83
|
+
*/
|
|
84
|
+
decryptBalanceTransfer(encryptedResultB64: string): BalanceTransferResult;
|
|
85
|
+
private computeCiphertextSizes;
|
|
86
|
+
}
|
|
87
|
+
export { toBase64, fromBase64 };
|
|
88
|
+
//# sourceMappingURL=TfheClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TfheClient.d.ts","sourceRoot":"","sources":["../../src/TfheClient.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EACV,SAAS,EACT,uBAAuB,EACvB,kBAAkB,EAClB,qBAAqB,EACrB,aAAa,EACb,cAAc,EAEf,MAAM,YAAY,CAAC;AA+BpB,iBAAS,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAS3C;AAED,iBAAS,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAU3C;AAaD;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,mBAAmB,CAAa;IACxC,OAAO,CAAC,eAAe,CAAgD;IACvE,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,UAAU,CAAuB;IAEzC;;OAEG;IACG,IAAI,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IA0B/C,OAAO,CAAC,WAAW;IAMnB;;OAEG;IACG,YAAY,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;IAgBxG;;;;;OAKG;IACG,iBAAiB,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,SAAS,CAAC;IAoCxE;;OAEG;IACH,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAazC;;OAEG;IACG,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB9E;;OAEG;IACH,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,uBAAuB;IAkCtG;;OAEG;IACH,0BAA0B,CACxB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACrC,cAAc;IAajB;;;OAGG;IACH,gBAAgB,CACd,QAAQ,EAAE,MAAM,EAAE,EAClB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GACb,uBAAuB,GAAG;QAAE,eAAe,EAAE,MAAM,CAAA;KAAE;IA4BxD;;OAEG;IACH,gBAAgB,CAAC,kBAAkB,EAAE,MAAM,GAAG,kBAAkB;IAwBhE;;OAEG;IACH,sBAAsB,CAAC,kBAAkB,EAAE,MAAM,GAAG,qBAAqB;IAyBzE,OAAO,CAAC,sBAAsB;CAW/B;AAGD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -4,19 +4,32 @@
|
|
|
4
4
|
* This client handles all TFHE operations including key generation,
|
|
5
5
|
* encryption, and decryption. The ClientKey never leaves the user's machine.
|
|
6
6
|
*/
|
|
7
|
-
import {
|
|
8
|
-
import { dirname, join } from "path";
|
|
7
|
+
import { join } from "path";
|
|
9
8
|
import { readFileSync } from "fs";
|
|
10
9
|
// Dynamic imports for TFHE WASM
|
|
11
10
|
let initTfhe;
|
|
12
11
|
let tfhe;
|
|
13
12
|
const DEFAULT_CIRCUIT_ID = "private_token_slots_v1";
|
|
13
|
+
// Helper to find package root
|
|
14
|
+
function findPackageRoot() {
|
|
15
|
+
// Use require.resolve to find the package location
|
|
16
|
+
try {
|
|
17
|
+
// Try to resolve our own package
|
|
18
|
+
const resolved = require.resolve("@zksdk/core/package.json");
|
|
19
|
+
return join(resolved, "..");
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
// Fallback: walk up from current file location
|
|
23
|
+
// In both ESM and CJS, we're in dist/esm or dist/cjs
|
|
24
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
25
|
+
const path = require("path");
|
|
26
|
+
return path.resolve(__dirname, "..", "..");
|
|
27
|
+
}
|
|
28
|
+
}
|
|
14
29
|
// Helper to load WASM in Node.js
|
|
15
30
|
async function loadWasmForNode() {
|
|
16
|
-
const
|
|
17
|
-
const
|
|
18
|
-
// Look for WASM in parent directory (dist -> package root)
|
|
19
|
-
const wasmPath = join(__dirname, "..", "tfhe-wasm", "tfhe_bg.wasm");
|
|
31
|
+
const packageRoot = findPackageRoot();
|
|
32
|
+
const wasmPath = join(packageRoot, "tfhe-wasm", "tfhe_bg.wasm");
|
|
20
33
|
return readFileSync(wasmPath);
|
|
21
34
|
}
|
|
22
35
|
function toBase64(bytes) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TfheClient.js","sourceRoot":"","sources":["../../src/TfheClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @zksdk/core - Core FHE client and types for privacy-preserving computation
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```typescript
|
|
6
|
+
* import { TfheClient } from '@zksdk/core';
|
|
7
|
+
*
|
|
8
|
+
* const client = new TfheClient();
|
|
9
|
+
* await client.init();
|
|
10
|
+
*
|
|
11
|
+
* const keys = await client.generateVaultKeys();
|
|
12
|
+
* console.log('Save your clientKey securely!');
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
export { TfheClient, toBase64, fromBase64 } from './TfheClient.js';
|
|
16
|
+
export type { CircuitId, VaultKeys, EncryptedTransferParams, CmuxTransferResult, BalanceTransferResult, KeyGenOptions, VaultRegistration, ExecutePayload, } from './types.js';
|
|
17
|
+
export { CIRCUIT_PRIVATE_TOKEN_SLOTS, CIRCUIT_CMUX_TOKEN_LEGACY } from './types.js';
|
|
18
|
+
/** Package version */
|
|
19
|
+
export declare const VERSION = "0.1.0";
|
|
20
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAEnE,YAAY,EACV,SAAS,EACT,SAAS,EACT,uBAAuB,EACvB,kBAAkB,EAClB,qBAAqB,EACrB,aAAa,EACb,iBAAiB,EACjB,cAAc,GACf,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,2BAA2B,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAEpF,sBAAsB;AACtB,eAAO,MAAM,OAAO,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAanE,8BAA8B;AAC9B,OAAO,EAAE,2BAA2B,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAEpF,sBAAsB;AACtB,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ZKSDK Core Types
|
|
3
|
+
*/
|
|
4
|
+
/** Supported circuit identifiers */
|
|
5
|
+
export type CircuitId = 'private_token_slots_v1' | 'cmux_token_v1_linear' | 'balance_transfer_v1' | 'private_token_accounts_v1' | string;
|
|
6
|
+
/** Current private token slots circuit ID */
|
|
7
|
+
export declare const CIRCUIT_PRIVATE_TOKEN_SLOTS: CircuitId;
|
|
8
|
+
/** Legacy circuit ID (deprecated, use CIRCUIT_PRIVATE_TOKEN_SLOTS) */
|
|
9
|
+
export declare const CIRCUIT_CMUX_TOKEN_LEGACY: CircuitId;
|
|
10
|
+
/** Vault key set generated client-side */
|
|
11
|
+
export interface VaultKeys {
|
|
12
|
+
/** Secret key - NEVER share! Only for decryption. */
|
|
13
|
+
clientKey: string;
|
|
14
|
+
/** Evaluation key - send to worker for FHE computation */
|
|
15
|
+
serverKey: string;
|
|
16
|
+
/** Public key - for encrypting transfers */
|
|
17
|
+
publicKey: string;
|
|
18
|
+
}
|
|
19
|
+
/** Encrypted transfer parameters */
|
|
20
|
+
export interface EncryptedTransferParams {
|
|
21
|
+
encrypted_data: string;
|
|
22
|
+
evaluation_keys?: string;
|
|
23
|
+
}
|
|
24
|
+
/** Result from CMUX token transfer decryption */
|
|
25
|
+
export interface CmuxTransferResult {
|
|
26
|
+
balances: number[];
|
|
27
|
+
isValid: boolean;
|
|
28
|
+
}
|
|
29
|
+
/** Result from simple balance transfer decryption */
|
|
30
|
+
export interface BalanceTransferResult {
|
|
31
|
+
newSender: number;
|
|
32
|
+
newReceiver: number;
|
|
33
|
+
isValid: boolean;
|
|
34
|
+
}
|
|
35
|
+
/** Key generation options */
|
|
36
|
+
export interface KeyGenOptions {
|
|
37
|
+
wasmModule?: unknown;
|
|
38
|
+
configBuilder?: unknown;
|
|
39
|
+
}
|
|
40
|
+
/** Vault registration response */
|
|
41
|
+
export interface VaultRegistration {
|
|
42
|
+
vault_key_id: string;
|
|
43
|
+
created_at: string;
|
|
44
|
+
num_slots: number;
|
|
45
|
+
}
|
|
46
|
+
/** Execute payload for FHE worker */
|
|
47
|
+
export interface ExecutePayload {
|
|
48
|
+
circuit_id: CircuitId;
|
|
49
|
+
encrypted_data: string;
|
|
50
|
+
evaluation_keys?: string;
|
|
51
|
+
metadata?: Record<string, unknown>;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,oCAAoC;AACpC,MAAM,MAAM,SAAS,GACjB,wBAAwB,GACxB,sBAAsB,GACtB,qBAAqB,GACrB,2BAA2B,GAC3B,MAAM,CAAC;AAEX,6CAA6C;AAC7C,eAAO,MAAM,2BAA2B,EAAE,SAAoC,CAAC;AAC/E,sEAAsE;AACtE,eAAO,MAAM,yBAAyB,EAAE,SAAkC,CAAC;AAE3E,0CAA0C;AAC1C,MAAM,WAAW,SAAS;IACxB,qDAAqD;IACrD,SAAS,EAAE,MAAM,CAAC;IAClB,0DAA0D;IAC1D,SAAS,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,oCAAoC;AACpC,MAAM,WAAW,uBAAuB;IACtC,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,iDAAiD;AACjD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,qDAAqD;AACrD,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,6BAA6B;AAC7B,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,kCAAkC;AAClC,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qCAAqC;AACrC,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,SAAS,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,6CAA6C;AAC7C,MAAM,CAAC,MAAM,2BAA2B,GAAc,wBAAwB,CAAC;AAC/E,sEAAsE;AACtE,MAAM,CAAC,MAAM,yBAAyB,GAAc,sBAAsB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,18 +1,31 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zksdk/core",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "ZKSDK Core - FHE client and types for privacy-preserving computation",
|
|
5
5
|
"type": "module",
|
|
6
|
-
"main": "./dist/index.js",
|
|
7
|
-
"
|
|
6
|
+
"main": "./dist/cjs/index.js",
|
|
7
|
+
"module": "./dist/esm/index.js",
|
|
8
|
+
"types": "./dist/esm/index.d.ts",
|
|
8
9
|
"exports": {
|
|
9
10
|
".": {
|
|
10
|
-
"import":
|
|
11
|
-
|
|
11
|
+
"import": {
|
|
12
|
+
"types": "./dist/esm/index.d.ts",
|
|
13
|
+
"default": "./dist/esm/index.js"
|
|
14
|
+
},
|
|
15
|
+
"require": {
|
|
16
|
+
"types": "./dist/cjs/index.d.ts",
|
|
17
|
+
"default": "./dist/cjs/index.js"
|
|
18
|
+
}
|
|
12
19
|
},
|
|
13
20
|
"./tfhe": {
|
|
14
|
-
"import":
|
|
15
|
-
|
|
21
|
+
"import": {
|
|
22
|
+
"types": "./dist/esm/TfheClient.d.ts",
|
|
23
|
+
"default": "./dist/esm/TfheClient.js"
|
|
24
|
+
},
|
|
25
|
+
"require": {
|
|
26
|
+
"types": "./dist/cjs/TfheClient.d.ts",
|
|
27
|
+
"default": "./dist/cjs/TfheClient.js"
|
|
28
|
+
}
|
|
16
29
|
}
|
|
17
30
|
},
|
|
18
31
|
"files": [
|
|
@@ -20,9 +33,11 @@
|
|
|
20
33
|
"tfhe-wasm"
|
|
21
34
|
],
|
|
22
35
|
"scripts": {
|
|
23
|
-
"build": "
|
|
36
|
+
"build": "npm run build:esm && npm run build:cjs",
|
|
37
|
+
"build:esm": "tsc",
|
|
38
|
+
"build:cjs": "tsc -p tsconfig.cjs.json",
|
|
24
39
|
"clean": "rm -rf dist",
|
|
25
|
-
"prepublishOnly": "npm run build"
|
|
40
|
+
"prepublishOnly": "npm run clean && npm run build"
|
|
26
41
|
},
|
|
27
42
|
"publishConfig": {
|
|
28
43
|
"access": "public",
|
package/dist/TfheClient.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TfheClient.d.ts","sourceRoot":"","sources":["../src/TfheClient.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EACV,SAAS,EACT,uBAAuB,EACvB,kBAAkB,EAClB,qBAAqB,EACrB,aAAa,EACb,cAAc,EAEf,MAAM,YAAY,CAAC;AAiBpB,iBAAS,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAS3C;AAED,iBAAS,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAU3C;AAaD;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,mBAAmB,CAAa;IACxC,OAAO,CAAC,eAAe,CAAgD;IACvE,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,UAAU,CAAuB;IAEzC;;OAEG;IACG,IAAI,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IA0B/C,OAAO,CAAC,WAAW;IAMnB;;OAEG;IACG,YAAY,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;IAgBxG;;;;;OAKG;IACG,iBAAiB,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,SAAS,CAAC;IAoCxE;;OAEG;IACH,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAazC;;OAEG;IACG,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB9E;;OAEG;IACH,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,uBAAuB;IAkCtG;;OAEG;IACH,0BAA0B,CACxB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACrC,cAAc;IAajB;;;OAGG;IACH,gBAAgB,CACd,QAAQ,EAAE,MAAM,EAAE,EAClB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GACb,uBAAuB,GAAG;QAAE,eAAe,EAAE,MAAM,CAAA;KAAE;IA4BxD;;OAEG;IACH,gBAAgB,CAAC,kBAAkB,EAAE,MAAM,GAAG,kBAAkB;IAwBhE;;OAEG;IACH,sBAAsB,CAAC,kBAAkB,EAAE,MAAM,GAAG,qBAAqB;IAyBzE,OAAO,CAAC,sBAAsB;CAW/B;AAGD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC"}
|
package/dist/TfheClient.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TfheClient.js","sourceRoot":"","sources":["../src/TfheClient.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAEnE,YAAY,EACV,SAAS,EACT,SAAS,EACT,uBAAuB,EACvB,kBAAkB,EAClB,qBAAqB,EACrB,aAAa,EACb,iBAAiB,EACjB,cAAc,GACf,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,2BAA2B,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAEpF,sBAAsB;AACtB,eAAO,MAAM,OAAO,UAAU,CAAC"}
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAanE,8BAA8B;AAC9B,OAAO,EAAE,2BAA2B,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAEpF,sBAAsB;AACtB,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC"}
|
package/dist/types.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,oCAAoC;AACpC,MAAM,MAAM,SAAS,GACjB,wBAAwB,GACxB,sBAAsB,GACtB,qBAAqB,GACrB,2BAA2B,GAC3B,MAAM,CAAC;AAEX,6CAA6C;AAC7C,eAAO,MAAM,2BAA2B,EAAE,SAAoC,CAAC;AAC/E,sEAAsE;AACtE,eAAO,MAAM,yBAAyB,EAAE,SAAkC,CAAC;AAE3E,0CAA0C;AAC1C,MAAM,WAAW,SAAS;IACxB,qDAAqD;IACrD,SAAS,EAAE,MAAM,CAAC;IAClB,0DAA0D;IAC1D,SAAS,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,oCAAoC;AACpC,MAAM,WAAW,uBAAuB;IACtC,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,iDAAiD;AACjD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,qDAAqD;AACrD,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,6BAA6B;AAC7B,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,kCAAkC;AAClC,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qCAAqC;AACrC,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,SAAS,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC"}
|
package/dist/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,6CAA6C;AAC7C,MAAM,CAAC,MAAM,2BAA2B,GAAc,wBAAwB,CAAC;AAC/E,sEAAsE;AACtE,MAAM,CAAC,MAAM,yBAAyB,GAAc,sBAAsB,CAAC"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|