@zksdk/core 0.1.10 → 0.1.12
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 +25 -1
- package/dist/cjs/TfheClient.d.ts.map +1 -1
- package/dist/cjs/TfheClient.js +100 -7
- package/dist/cjs/TfheClient.js.map +1 -1
- package/dist/cjs/index.d.ts +3 -3
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types.d.ts +6 -2
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/cjs/types.js +2 -2
- package/dist/cjs/types.js.map +1 -1
- package/dist/esm/TfheClient.d.ts +25 -1
- package/dist/esm/TfheClient.d.ts.map +1 -1
- package/dist/esm/TfheClient.js +100 -7
- package/dist/esm/TfheClient.js.map +1 -1
- package/dist/esm/index.d.ts +3 -3
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +3 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types.d.ts +6 -2
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/types.js +2 -2
- package/dist/esm/types.js.map +1 -1
- package/package.json +1 -1
- package/tfhe-wasm/tfhe.d.ts +263 -2517
- package/tfhe-wasm/tfhe.js +2287 -15284
- package/tfhe-wasm/tfhe_bg.wasm +0 -0
package/dist/cjs/TfheClient.d.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
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 type { VaultKeys, EncryptedTransferParams, CmuxTransferResult, BalanceTransferResult, KeyGenOptions, ExecutePayload } from "./types.js";
|
|
7
|
+
import type { VaultKeys, EncryptedTransferParams, CmuxTransferResult, BalanceTransferResult, BalanceBlobResult, KeyGenOptions, ExecutePayload } from "./types.js";
|
|
8
8
|
declare function toBase64(bytes: Uint8Array): string;
|
|
9
9
|
declare function fromBase64(b64: string): Uint8Array;
|
|
10
10
|
/**
|
|
@@ -89,10 +89,34 @@ export declare class TfheClient {
|
|
|
89
89
|
* Decrypt CMUX token transfer result
|
|
90
90
|
*/
|
|
91
91
|
decryptCmuxToken(encryptedResultB64: string): CmuxTransferResult;
|
|
92
|
+
/**
|
|
93
|
+
* Decrypt balance blob (deposit result - no validity flag)
|
|
94
|
+
*
|
|
95
|
+
* Balance blobs have format: count (u16) + N × FheUint32
|
|
96
|
+
* Unlike CMUX results, they do NOT have an FheBool at the end.
|
|
97
|
+
*
|
|
98
|
+
* IMPORTANT: Ciphertext size is calculated dynamically from the blob itself
|
|
99
|
+
* because Rust's encrypt_trivial() produces different sizes (264,101 bytes)
|
|
100
|
+
* than JS's encrypt_with_client_key() (263,448 bytes).
|
|
101
|
+
*/
|
|
102
|
+
decryptBalanceBlob(encryptedBlobB64: string): BalanceBlobResult;
|
|
103
|
+
/**
|
|
104
|
+
* Auto-detect format and decrypt either balance blob or CMUX result
|
|
105
|
+
*
|
|
106
|
+
* For balance blobs from Rust worker, size is calculated dynamically
|
|
107
|
+
* because encrypt_trivial() produces different sizes than encrypt_with_client_key().
|
|
108
|
+
*/
|
|
109
|
+
autoDecrypt(encryptedDataB64: string): CmuxTransferResult | BalanceBlobResult;
|
|
92
110
|
/**
|
|
93
111
|
* Decrypt balance transfer result
|
|
94
112
|
*/
|
|
95
113
|
decryptBalanceTransfer(encryptedResultB64: string): BalanceTransferResult;
|
|
114
|
+
/**
|
|
115
|
+
* Calculate ciphertext size from blob (for balance blobs from worker)
|
|
116
|
+
* This handles the case where Rust uses encrypt_trivial() which produces
|
|
117
|
+
* different-sized ciphertexts than encrypt_with_client_key().
|
|
118
|
+
*/
|
|
119
|
+
private calculateSizeFromBlob;
|
|
96
120
|
private computeCiphertextSizes;
|
|
97
121
|
}
|
|
98
122
|
export { toBase64, fromBase64 };
|
|
@@ -1 +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;AA2DpB,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,CAAiD;IACxE,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,UAAU,CAAuB;IAEzC;;OAEG;IACG,IAAI,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAgD/C,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,gBAAgB;IAQxB;;OAEG;IACG,YAAY,CAChB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;IAgB1D;;;;;OAKG;IACG,iBAAiB,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,SAAS,CAAC;IA0CxE;;OAEG;IACH,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAiBzC;;OAEG;IACG,kBAAkB,CACtB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC;IAqBhB;;OAEG;IACH,qBAAqB,CACnB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GACb,uBAAuB;IAwD1B;;;;OAIG;IACH,qBAAqB,CACnB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,uBAAuB;IA2C1B;;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;IAkBjB;;OAEG;IACH,0BAA0B,CACxB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACrC,cAAc;IAcjB;;;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;IAsCxD;;OAEG;IACH,gBAAgB,CAAC,kBAAkB,EAAE,MAAM,GAAG,kBAAkB;
|
|
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,iBAAiB,EACjB,aAAa,EACb,cAAc,EAEf,MAAM,YAAY,CAAC;AA2DpB,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,CAAiD;IACxE,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,UAAU,CAAuB;IAEzC;;OAEG;IACG,IAAI,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAgD/C,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,gBAAgB;IAQxB;;OAEG;IACG,YAAY,CAChB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;IAgB1D;;;;;OAKG;IACG,iBAAiB,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,SAAS,CAAC;IA0CxE;;OAEG;IACH,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAiBzC;;OAEG;IACG,kBAAkB,CACtB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC;IAqBhB;;OAEG;IACH,qBAAqB,CACnB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GACb,uBAAuB;IAwD1B;;;;OAIG;IACH,qBAAqB,CACnB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,uBAAuB;IA2C1B;;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;IAkBjB;;OAEG;IACH,0BAA0B,CACxB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACrC,cAAc;IAcjB;;;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;IAsCxD;;OAEG;IACH,gBAAgB,CAAC,kBAAkB,EAAE,MAAM,GAAG,kBAAkB;IAiDhE;;;;;;;;;OASG;IACH,kBAAkB,CAAC,gBAAgB,EAAE,MAAM,GAAG,iBAAiB;IAqC/D;;;;;OAKG;IACH,WAAW,CACT,gBAAgB,EAAE,MAAM,GACvB,kBAAkB,GAAG,iBAAiB;IA0DzC;;OAEG;IACH,sBAAsB,CAAC,kBAAkB,EAAE,MAAM,GAAG,qBAAqB;IAmCzE;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAM7B,OAAO,CAAC,sBAAsB;CAqB/B;AAGD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC"}
|
package/dist/cjs/TfheClient.js
CHANGED
|
@@ -384,19 +384,97 @@ class TfheClient {
|
|
|
384
384
|
const count = bytes[0] | (bytes[1] << 8);
|
|
385
385
|
let offset = 2;
|
|
386
386
|
console.log("[TfheClient] count =", count, ", expected total size =", 2 + count * sizes.uint32 + sizes.bool);
|
|
387
|
+
// Use safe_deserialize to match the Rust worker's safe_serialize format
|
|
388
|
+
const SIZE_LIMIT = BigInt("18446744073709551615"); // u64::MAX
|
|
387
389
|
const balances = [];
|
|
388
390
|
for (let i = 0; i < count; i++) {
|
|
389
391
|
const balanceBytes = bytes.slice(offset, offset + sizes.uint32);
|
|
390
392
|
console.log(`[TfheClient] Balance[${i}]: offset=${offset}, reading ${sizes.uint32} bytes, first 8 bytes:`, Array.from(balanceBytes.slice(0, 8)));
|
|
391
|
-
const balanceCt = tfhe.FheUint32.
|
|
393
|
+
const balanceCt = tfhe.FheUint32.safe_deserialize(balanceBytes, SIZE_LIMIT);
|
|
392
394
|
balances.push(balanceCt.decrypt(this.clientKey));
|
|
393
395
|
offset += sizes.uint32;
|
|
394
396
|
}
|
|
395
397
|
const boolBytes = bytes.slice(offset, offset + sizes.bool);
|
|
396
|
-
const validCt = tfhe.FheBool.
|
|
398
|
+
const validCt = tfhe.FheBool.safe_deserialize(boolBytes, SIZE_LIMIT);
|
|
397
399
|
const isValid = validCt.decrypt(this.clientKey);
|
|
398
400
|
return { balances, isValid };
|
|
399
401
|
}
|
|
402
|
+
/**
|
|
403
|
+
* Decrypt balance blob (deposit result - no validity flag)
|
|
404
|
+
*
|
|
405
|
+
* Balance blobs have format: count (u16) + N × FheUint32
|
|
406
|
+
* Unlike CMUX results, they do NOT have an FheBool at the end.
|
|
407
|
+
*
|
|
408
|
+
* IMPORTANT: Ciphertext size is calculated dynamically from the blob itself
|
|
409
|
+
* because Rust's encrypt_trivial() produces different sizes (264,101 bytes)
|
|
410
|
+
* than JS's encrypt_with_client_key() (263,448 bytes).
|
|
411
|
+
*/
|
|
412
|
+
decryptBalanceBlob(encryptedBlobB64) {
|
|
413
|
+
this.requireClientKey();
|
|
414
|
+
const bytes = fromBase64(encryptedBlobB64);
|
|
415
|
+
// First 2 bytes are u16 count (little-endian)
|
|
416
|
+
const count = bytes[0] | (bytes[1] << 8);
|
|
417
|
+
// Calculate actual ciphertext size from the blob itself
|
|
418
|
+
// This handles Rust's encrypt_trivial() producing different sizes than JS
|
|
419
|
+
const uint32Size = this.calculateSizeFromBlob(bytes, count);
|
|
420
|
+
console.log("[TfheClient] decryptBalanceBlob: total bytes =", bytes.length, ", count =", count, ", calculated uint32 size =", uint32Size);
|
|
421
|
+
// Use safe_deserialize to match the Rust worker's safe_serialize format
|
|
422
|
+
const SIZE_LIMIT = BigInt("18446744073709551615"); // u64::MAX
|
|
423
|
+
let offset = 2;
|
|
424
|
+
const balances = [];
|
|
425
|
+
for (let i = 0; i < count; i++) {
|
|
426
|
+
const balanceBytes = bytes.slice(offset, offset + uint32Size);
|
|
427
|
+
const balanceCt = tfhe.FheUint32.safe_deserialize(balanceBytes, SIZE_LIMIT);
|
|
428
|
+
balances.push(balanceCt.decrypt(this.clientKey));
|
|
429
|
+
offset += uint32Size;
|
|
430
|
+
}
|
|
431
|
+
return { balances };
|
|
432
|
+
}
|
|
433
|
+
/**
|
|
434
|
+
* Auto-detect format and decrypt either balance blob or CMUX result
|
|
435
|
+
*
|
|
436
|
+
* For balance blobs from Rust worker, size is calculated dynamically
|
|
437
|
+
* because encrypt_trivial() produces different sizes than encrypt_with_client_key().
|
|
438
|
+
*/
|
|
439
|
+
autoDecrypt(encryptedDataB64) {
|
|
440
|
+
this.requireClientKey();
|
|
441
|
+
const bytes = fromBase64(encryptedDataB64);
|
|
442
|
+
// First 2 bytes are u16 count (little-endian)
|
|
443
|
+
const count = bytes[0] | (bytes[1] << 8);
|
|
444
|
+
// Calculate expected sizes based on local params
|
|
445
|
+
const sizes = this.ciphertextSizes ?? this.computeCiphertextSizes();
|
|
446
|
+
// Check for exact CMUX result match: 2 (header) + N * uint32 + 1 * bool
|
|
447
|
+
const expectedCmuxSize = 2 + count * sizes.uint32 + sizes.bool;
|
|
448
|
+
if (bytes.length === expectedCmuxSize) {
|
|
449
|
+
console.log("[TfheClient] Detected CMUX result format (exact match)");
|
|
450
|
+
return this.decryptCmuxToken(encryptedDataB64);
|
|
451
|
+
}
|
|
452
|
+
// Check for exact Balance Blob match: 2 (header) + N * uint32
|
|
453
|
+
// Note: Rust optimization might mean this doesn't match exactly, hence the fallback below
|
|
454
|
+
const expectedBlobSize = 2 + count * sizes.uint32;
|
|
455
|
+
if (bytes.length === expectedBlobSize) {
|
|
456
|
+
console.log("[TfheClient] Detected Balance Blob format (exact match)");
|
|
457
|
+
return this.decryptBalanceBlob(encryptedDataB64);
|
|
458
|
+
}
|
|
459
|
+
// Fallback: Calculate size dynamically from blob
|
|
460
|
+
// This handles Rust's encrypt_trivial() producing different sizes than JS
|
|
461
|
+
// BUT this only works for Balance Blobs (no boolean flag)
|
|
462
|
+
const uint32Size = this.calculateSizeFromBlob(bytes, count);
|
|
463
|
+
const balanceBlobSize = 2 + count * uint32Size;
|
|
464
|
+
console.log("[TfheClient] autoDecrypt: total bytes =", bytes.length, ", count =", count, ", calculated uint32 size =", uint32Size);
|
|
465
|
+
// Balance blobs from worker should match exactly
|
|
466
|
+
if (bytes.length === balanceBlobSize) {
|
|
467
|
+
console.log("[TfheClient] Detected balance blob format (dynamic size)");
|
|
468
|
+
return this.decryptBalanceBlob(encryptedDataB64);
|
|
469
|
+
}
|
|
470
|
+
// If we're here, it might be a CMUX blob with dynamic sizing, which is trickier.
|
|
471
|
+
// However, currently only Balance Blobs use encrypt_trivial.
|
|
472
|
+
// CMUX results are fully encrypted and should match standard sizes.
|
|
473
|
+
// If getting "Invalid Size", it's likely because the code previously fell through to here
|
|
474
|
+
// effectively treating a CMUX blob (with extra bool) as a weird Balance Blob.
|
|
475
|
+
console.warn(`[TfheClient] Unknown format, trying balance blob fallback`);
|
|
476
|
+
return this.decryptBalanceBlob(encryptedDataB64);
|
|
477
|
+
}
|
|
400
478
|
/**
|
|
401
479
|
* Decrypt balance transfer result
|
|
402
480
|
*/
|
|
@@ -411,22 +489,37 @@ class TfheClient {
|
|
|
411
489
|
const senderBytes = bytes.slice(0, sizes.uint32);
|
|
412
490
|
const receiverBytes = bytes.slice(sizes.uint32, sizes.uint32 * 2);
|
|
413
491
|
const boolBytes = bytes.slice(sizes.uint32 * 2, expectedLen);
|
|
414
|
-
|
|
415
|
-
const
|
|
416
|
-
const
|
|
492
|
+
// Use safe_deserialize to match the Rust worker's safe_serialize format
|
|
493
|
+
const SIZE_LIMIT = BigInt("18446744073709551615"); // u64::MAX
|
|
494
|
+
const newSenderCt = tfhe.FheUint32.safe_deserialize(senderBytes, SIZE_LIMIT);
|
|
495
|
+
const newReceiverCt = tfhe.FheUint32.safe_deserialize(receiverBytes, SIZE_LIMIT);
|
|
496
|
+
const validCt = tfhe.FheBool.safe_deserialize(boolBytes, SIZE_LIMIT);
|
|
417
497
|
return {
|
|
418
498
|
newSender: newSenderCt.decrypt(this.clientKey),
|
|
419
499
|
newReceiver: newReceiverCt.decrypt(this.clientKey),
|
|
420
500
|
isValid: validCt.decrypt(this.clientKey),
|
|
421
501
|
};
|
|
422
502
|
}
|
|
503
|
+
/**
|
|
504
|
+
* Calculate ciphertext size from blob (for balance blobs from worker)
|
|
505
|
+
* This handles the case where Rust uses encrypt_trivial() which produces
|
|
506
|
+
* different-sized ciphertexts than encrypt_with_client_key().
|
|
507
|
+
*/
|
|
508
|
+
calculateSizeFromBlob(bytes, count) {
|
|
509
|
+
const totalCiphertextBytes = bytes.length - 2; // subtract 2-byte count header
|
|
510
|
+
const sizePerCiphertext = Math.floor(totalCiphertextBytes / count);
|
|
511
|
+
return sizePerCiphertext;
|
|
512
|
+
}
|
|
423
513
|
computeCiphertextSizes() {
|
|
424
514
|
this.requireClientKey();
|
|
425
515
|
const sampleUint = tfhe.FheUint32.encrypt_with_client_key(0, this.clientKey);
|
|
426
516
|
const sampleBool = tfhe.FheBool.encrypt_with_client_key(false, this.clientKey);
|
|
517
|
+
// Use safe_serialize to match the Rust worker's serialization format
|
|
518
|
+
// The worker uses tfhe::safe_serialization::safe_serialize
|
|
519
|
+
const SIZE_LIMIT = BigInt("18446744073709551615"); // u64::MAX
|
|
427
520
|
const sizes = {
|
|
428
|
-
uint32: sampleUint.
|
|
429
|
-
bool: sampleBool.
|
|
521
|
+
uint32: sampleUint.safe_serialize(SIZE_LIMIT).length,
|
|
522
|
+
bool: sampleBool.safe_serialize(SIZE_LIMIT).length,
|
|
430
523
|
};
|
|
431
524
|
console.log("[TfheClient] Computed ciphertext sizes:", sizes);
|
|
432
525
|
this.ciphertextSizes = sizes;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TfheClient.js","sourceRoot":"","sources":["../../src/TfheClient.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TfheClient.js","sourceRoot":"","sources":["../../src/TfheClient.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -12,9 +12,9 @@
|
|
|
12
12
|
* console.log('Save your clientKey securely!');
|
|
13
13
|
* ```
|
|
14
14
|
*/
|
|
15
|
-
export { TfheClient, toBase64, fromBase64 } from
|
|
16
|
-
export type { CircuitId, VaultKeys, EncryptedTransferParams, CmuxTransferResult, BalanceTransferResult, KeyGenOptions, VaultRegistration, ExecutePayload, StorageType, StorageOptions, } from
|
|
17
|
-
export { CIRCUIT_PRIVATE_TOKEN_SLOTS, CIRCUIT_CMUX_TOKEN_LEGACY } from
|
|
15
|
+
export { TfheClient, toBase64, fromBase64 } from "./TfheClient.js";
|
|
16
|
+
export type { CircuitId, VaultKeys, EncryptedTransferParams, CmuxTransferResult, BalanceTransferResult, BalanceBlobResult, KeyGenOptions, VaultRegistration, ExecutePayload, StorageType, StorageOptions, } from "./types.js";
|
|
17
|
+
export { CIRCUIT_PRIVATE_TOKEN_SLOTS, CIRCUIT_CMUX_TOKEN_LEGACY, } from "./types.js";
|
|
18
18
|
/** Package version */
|
|
19
19
|
export declare const VERSION = "0.1.0";
|
|
20
20
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/cjs/index.d.ts.map
CHANGED
|
@@ -1 +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,EACd,WAAW,EACX,cAAc,GACf,MAAM,YAAY,CAAC;AAGpB,OAAO,
|
|
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,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,WAAW,EACX,cAAc,GACf,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,GAC1B,MAAM,YAAY,CAAC;AAEpB,sBAAsB;AACtB,eAAO,MAAM,OAAO,UAAU,CAAC"}
|
package/dist/cjs/index.js
CHANGED
|
@@ -24,5 +24,5 @@ var types_js_1 = require("./types.js");
|
|
|
24
24
|
Object.defineProperty(exports, "CIRCUIT_PRIVATE_TOKEN_SLOTS", { enumerable: true, get: function () { return types_js_1.CIRCUIT_PRIVATE_TOKEN_SLOTS; } });
|
|
25
25
|
Object.defineProperty(exports, "CIRCUIT_CMUX_TOKEN_LEGACY", { enumerable: true, get: function () { return types_js_1.CIRCUIT_CMUX_TOKEN_LEGACY; } });
|
|
26
26
|
/** Package version */
|
|
27
|
-
exports.VERSION =
|
|
27
|
+
exports.VERSION = "0.1.0";
|
|
28
28
|
//# sourceMappingURL=index.js.map
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +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;
|
|
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;AAgBzC,8BAA8B;AAC9B,uCAGoB;AAFlB,uHAAA,2BAA2B,OAAA;AAC3B,qHAAA,yBAAyB,OAAA;AAG3B,sBAAsB;AACT,QAAA,OAAO,GAAG,OAAO,CAAC"}
|
package/dist/cjs/types.d.ts
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
* ZKSDK Core Types
|
|
3
3
|
*/
|
|
4
4
|
/** Supported storage backends */
|
|
5
|
-
export type StorageType =
|
|
5
|
+
export type StorageType = "postgres" | "celestia" | "avail" | "eigenda" | "ipfs";
|
|
6
6
|
/** Supported circuit identifiers */
|
|
7
|
-
export type CircuitId =
|
|
7
|
+
export type CircuitId = "private_token_slots_v1" | "cmux_token_v1_linear" | "balance_transfer_v1" | "private_token_accounts_v1" | string;
|
|
8
8
|
/** Current private token slots circuit ID */
|
|
9
9
|
export declare const CIRCUIT_PRIVATE_TOKEN_SLOTS: CircuitId;
|
|
10
10
|
/** Legacy circuit ID (deprecated, use CIRCUIT_PRIVATE_TOKEN_SLOTS) */
|
|
@@ -34,6 +34,10 @@ export interface BalanceTransferResult {
|
|
|
34
34
|
newReceiver: number;
|
|
35
35
|
isValid: boolean;
|
|
36
36
|
}
|
|
37
|
+
/** Result from balance blob decryption (no validity flag) */
|
|
38
|
+
export interface BalanceBlobResult {
|
|
39
|
+
balances: number[];
|
|
40
|
+
}
|
|
37
41
|
/** Key generation options */
|
|
38
42
|
export interface KeyGenOptions {
|
|
39
43
|
wasmModule?: unknown;
|
package/dist/cjs/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,iCAAiC;AACjC,MAAM,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,iCAAiC;AACjC,MAAM,MAAM,WAAW,GACnB,UAAU,GACV,UAAU,GACV,OAAO,GACP,SAAS,GACT,MAAM,CAAC;AAEX,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,6DAA6D;AAC7D,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;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;QACT,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;CACH;AAED,wCAAwC;AACxC,MAAM,WAAW,cAAc;IAC7B,sDAAsD;IACtD,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,0CAA0C;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
|
package/dist/cjs/types.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.CIRCUIT_CMUX_TOKEN_LEGACY = exports.CIRCUIT_PRIVATE_TOKEN_SLOTS = void 0;
|
|
7
7
|
/** Current private token slots circuit ID */
|
|
8
|
-
exports.CIRCUIT_PRIVATE_TOKEN_SLOTS =
|
|
8
|
+
exports.CIRCUIT_PRIVATE_TOKEN_SLOTS = "private_token_slots_v1";
|
|
9
9
|
/** Legacy circuit ID (deprecated, use CIRCUIT_PRIVATE_TOKEN_SLOTS) */
|
|
10
|
-
exports.CIRCUIT_CMUX_TOKEN_LEGACY =
|
|
10
|
+
exports.CIRCUIT_CMUX_TOKEN_LEGACY = "cmux_token_v1_linear";
|
|
11
11
|
//# sourceMappingURL=types.js.map
|
package/dist/cjs/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";AAAA;;GAEG;;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAkBH,6CAA6C;AAChC,QAAA,2BAA2B,GAAc,wBAAwB,CAAC;AAC/E,sEAAsE;AACzD,QAAA,yBAAyB,GAAc,sBAAsB,CAAC"}
|
package/dist/esm/TfheClient.d.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
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 type { VaultKeys, EncryptedTransferParams, CmuxTransferResult, BalanceTransferResult, KeyGenOptions, ExecutePayload } from "./types.js";
|
|
7
|
+
import type { VaultKeys, EncryptedTransferParams, CmuxTransferResult, BalanceTransferResult, BalanceBlobResult, KeyGenOptions, ExecutePayload } from "./types.js";
|
|
8
8
|
declare function toBase64(bytes: Uint8Array): string;
|
|
9
9
|
declare function fromBase64(b64: string): Uint8Array;
|
|
10
10
|
/**
|
|
@@ -89,10 +89,34 @@ export declare class TfheClient {
|
|
|
89
89
|
* Decrypt CMUX token transfer result
|
|
90
90
|
*/
|
|
91
91
|
decryptCmuxToken(encryptedResultB64: string): CmuxTransferResult;
|
|
92
|
+
/**
|
|
93
|
+
* Decrypt balance blob (deposit result - no validity flag)
|
|
94
|
+
*
|
|
95
|
+
* Balance blobs have format: count (u16) + N × FheUint32
|
|
96
|
+
* Unlike CMUX results, they do NOT have an FheBool at the end.
|
|
97
|
+
*
|
|
98
|
+
* IMPORTANT: Ciphertext size is calculated dynamically from the blob itself
|
|
99
|
+
* because Rust's encrypt_trivial() produces different sizes (264,101 bytes)
|
|
100
|
+
* than JS's encrypt_with_client_key() (263,448 bytes).
|
|
101
|
+
*/
|
|
102
|
+
decryptBalanceBlob(encryptedBlobB64: string): BalanceBlobResult;
|
|
103
|
+
/**
|
|
104
|
+
* Auto-detect format and decrypt either balance blob or CMUX result
|
|
105
|
+
*
|
|
106
|
+
* For balance blobs from Rust worker, size is calculated dynamically
|
|
107
|
+
* because encrypt_trivial() produces different sizes than encrypt_with_client_key().
|
|
108
|
+
*/
|
|
109
|
+
autoDecrypt(encryptedDataB64: string): CmuxTransferResult | BalanceBlobResult;
|
|
92
110
|
/**
|
|
93
111
|
* Decrypt balance transfer result
|
|
94
112
|
*/
|
|
95
113
|
decryptBalanceTransfer(encryptedResultB64: string): BalanceTransferResult;
|
|
114
|
+
/**
|
|
115
|
+
* Calculate ciphertext size from blob (for balance blobs from worker)
|
|
116
|
+
* This handles the case where Rust uses encrypt_trivial() which produces
|
|
117
|
+
* different-sized ciphertexts than encrypt_with_client_key().
|
|
118
|
+
*/
|
|
119
|
+
private calculateSizeFromBlob;
|
|
96
120
|
private computeCiphertextSizes;
|
|
97
121
|
}
|
|
98
122
|
export { toBase64, fromBase64 };
|
|
@@ -1 +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;AA2DpB,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,CAAiD;IACxE,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,UAAU,CAAuB;IAEzC;;OAEG;IACG,IAAI,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAgD/C,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,gBAAgB;IAQxB;;OAEG;IACG,YAAY,CAChB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;IAgB1D;;;;;OAKG;IACG,iBAAiB,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,SAAS,CAAC;IA0CxE;;OAEG;IACH,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAiBzC;;OAEG;IACG,kBAAkB,CACtB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC;IAqBhB;;OAEG;IACH,qBAAqB,CACnB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GACb,uBAAuB;IAwD1B;;;;OAIG;IACH,qBAAqB,CACnB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,uBAAuB;IA2C1B;;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;IAkBjB;;OAEG;IACH,0BAA0B,CACxB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACrC,cAAc;IAcjB;;;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;IAsCxD;;OAEG;IACH,gBAAgB,CAAC,kBAAkB,EAAE,MAAM,GAAG,kBAAkB;
|
|
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,iBAAiB,EACjB,aAAa,EACb,cAAc,EAEf,MAAM,YAAY,CAAC;AA2DpB,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,CAAiD;IACxE,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,UAAU,CAAuB;IAEzC;;OAEG;IACG,IAAI,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAgD/C,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,gBAAgB;IAQxB;;OAEG;IACG,YAAY,CAChB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;IAgB1D;;;;;OAKG;IACG,iBAAiB,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,SAAS,CAAC;IA0CxE;;OAEG;IACH,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAiBzC;;OAEG;IACG,kBAAkB,CACtB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC;IAqBhB;;OAEG;IACH,qBAAqB,CACnB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GACb,uBAAuB;IAwD1B;;;;OAIG;IACH,qBAAqB,CACnB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,uBAAuB;IA2C1B;;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;IAkBjB;;OAEG;IACH,0BAA0B,CACxB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACrC,cAAc;IAcjB;;;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;IAsCxD;;OAEG;IACH,gBAAgB,CAAC,kBAAkB,EAAE,MAAM,GAAG,kBAAkB;IAiDhE;;;;;;;;;OASG;IACH,kBAAkB,CAAC,gBAAgB,EAAE,MAAM,GAAG,iBAAiB;IAqC/D;;;;;OAKG;IACH,WAAW,CACT,gBAAgB,EAAE,MAAM,GACvB,kBAAkB,GAAG,iBAAiB;IA0DzC;;OAEG;IACH,sBAAsB,CAAC,kBAAkB,EAAE,MAAM,GAAG,qBAAqB;IAmCzE;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAM7B,OAAO,CAAC,sBAAsB;CAqB/B;AAGD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC"}
|
package/dist/esm/TfheClient.js
CHANGED
|
@@ -379,19 +379,97 @@ export class TfheClient {
|
|
|
379
379
|
const count = bytes[0] | (bytes[1] << 8);
|
|
380
380
|
let offset = 2;
|
|
381
381
|
console.log("[TfheClient] count =", count, ", expected total size =", 2 + count * sizes.uint32 + sizes.bool);
|
|
382
|
+
// Use safe_deserialize to match the Rust worker's safe_serialize format
|
|
383
|
+
const SIZE_LIMIT = BigInt("18446744073709551615"); // u64::MAX
|
|
382
384
|
const balances = [];
|
|
383
385
|
for (let i = 0; i < count; i++) {
|
|
384
386
|
const balanceBytes = bytes.slice(offset, offset + sizes.uint32);
|
|
385
387
|
console.log(`[TfheClient] Balance[${i}]: offset=${offset}, reading ${sizes.uint32} bytes, first 8 bytes:`, Array.from(balanceBytes.slice(0, 8)));
|
|
386
|
-
const balanceCt = tfhe.FheUint32.
|
|
388
|
+
const balanceCt = tfhe.FheUint32.safe_deserialize(balanceBytes, SIZE_LIMIT);
|
|
387
389
|
balances.push(balanceCt.decrypt(this.clientKey));
|
|
388
390
|
offset += sizes.uint32;
|
|
389
391
|
}
|
|
390
392
|
const boolBytes = bytes.slice(offset, offset + sizes.bool);
|
|
391
|
-
const validCt = tfhe.FheBool.
|
|
393
|
+
const validCt = tfhe.FheBool.safe_deserialize(boolBytes, SIZE_LIMIT);
|
|
392
394
|
const isValid = validCt.decrypt(this.clientKey);
|
|
393
395
|
return { balances, isValid };
|
|
394
396
|
}
|
|
397
|
+
/**
|
|
398
|
+
* Decrypt balance blob (deposit result - no validity flag)
|
|
399
|
+
*
|
|
400
|
+
* Balance blobs have format: count (u16) + N × FheUint32
|
|
401
|
+
* Unlike CMUX results, they do NOT have an FheBool at the end.
|
|
402
|
+
*
|
|
403
|
+
* IMPORTANT: Ciphertext size is calculated dynamically from the blob itself
|
|
404
|
+
* because Rust's encrypt_trivial() produces different sizes (264,101 bytes)
|
|
405
|
+
* than JS's encrypt_with_client_key() (263,448 bytes).
|
|
406
|
+
*/
|
|
407
|
+
decryptBalanceBlob(encryptedBlobB64) {
|
|
408
|
+
this.requireClientKey();
|
|
409
|
+
const bytes = fromBase64(encryptedBlobB64);
|
|
410
|
+
// First 2 bytes are u16 count (little-endian)
|
|
411
|
+
const count = bytes[0] | (bytes[1] << 8);
|
|
412
|
+
// Calculate actual ciphertext size from the blob itself
|
|
413
|
+
// This handles Rust's encrypt_trivial() producing different sizes than JS
|
|
414
|
+
const uint32Size = this.calculateSizeFromBlob(bytes, count);
|
|
415
|
+
console.log("[TfheClient] decryptBalanceBlob: total bytes =", bytes.length, ", count =", count, ", calculated uint32 size =", uint32Size);
|
|
416
|
+
// Use safe_deserialize to match the Rust worker's safe_serialize format
|
|
417
|
+
const SIZE_LIMIT = BigInt("18446744073709551615"); // u64::MAX
|
|
418
|
+
let offset = 2;
|
|
419
|
+
const balances = [];
|
|
420
|
+
for (let i = 0; i < count; i++) {
|
|
421
|
+
const balanceBytes = bytes.slice(offset, offset + uint32Size);
|
|
422
|
+
const balanceCt = tfhe.FheUint32.safe_deserialize(balanceBytes, SIZE_LIMIT);
|
|
423
|
+
balances.push(balanceCt.decrypt(this.clientKey));
|
|
424
|
+
offset += uint32Size;
|
|
425
|
+
}
|
|
426
|
+
return { balances };
|
|
427
|
+
}
|
|
428
|
+
/**
|
|
429
|
+
* Auto-detect format and decrypt either balance blob or CMUX result
|
|
430
|
+
*
|
|
431
|
+
* For balance blobs from Rust worker, size is calculated dynamically
|
|
432
|
+
* because encrypt_trivial() produces different sizes than encrypt_with_client_key().
|
|
433
|
+
*/
|
|
434
|
+
autoDecrypt(encryptedDataB64) {
|
|
435
|
+
this.requireClientKey();
|
|
436
|
+
const bytes = fromBase64(encryptedDataB64);
|
|
437
|
+
// First 2 bytes are u16 count (little-endian)
|
|
438
|
+
const count = bytes[0] | (bytes[1] << 8);
|
|
439
|
+
// Calculate expected sizes based on local params
|
|
440
|
+
const sizes = this.ciphertextSizes ?? this.computeCiphertextSizes();
|
|
441
|
+
// Check for exact CMUX result match: 2 (header) + N * uint32 + 1 * bool
|
|
442
|
+
const expectedCmuxSize = 2 + count * sizes.uint32 + sizes.bool;
|
|
443
|
+
if (bytes.length === expectedCmuxSize) {
|
|
444
|
+
console.log("[TfheClient] Detected CMUX result format (exact match)");
|
|
445
|
+
return this.decryptCmuxToken(encryptedDataB64);
|
|
446
|
+
}
|
|
447
|
+
// Check for exact Balance Blob match: 2 (header) + N * uint32
|
|
448
|
+
// Note: Rust optimization might mean this doesn't match exactly, hence the fallback below
|
|
449
|
+
const expectedBlobSize = 2 + count * sizes.uint32;
|
|
450
|
+
if (bytes.length === expectedBlobSize) {
|
|
451
|
+
console.log("[TfheClient] Detected Balance Blob format (exact match)");
|
|
452
|
+
return this.decryptBalanceBlob(encryptedDataB64);
|
|
453
|
+
}
|
|
454
|
+
// Fallback: Calculate size dynamically from blob
|
|
455
|
+
// This handles Rust's encrypt_trivial() producing different sizes than JS
|
|
456
|
+
// BUT this only works for Balance Blobs (no boolean flag)
|
|
457
|
+
const uint32Size = this.calculateSizeFromBlob(bytes, count);
|
|
458
|
+
const balanceBlobSize = 2 + count * uint32Size;
|
|
459
|
+
console.log("[TfheClient] autoDecrypt: total bytes =", bytes.length, ", count =", count, ", calculated uint32 size =", uint32Size);
|
|
460
|
+
// Balance blobs from worker should match exactly
|
|
461
|
+
if (bytes.length === balanceBlobSize) {
|
|
462
|
+
console.log("[TfheClient] Detected balance blob format (dynamic size)");
|
|
463
|
+
return this.decryptBalanceBlob(encryptedDataB64);
|
|
464
|
+
}
|
|
465
|
+
// If we're here, it might be a CMUX blob with dynamic sizing, which is trickier.
|
|
466
|
+
// However, currently only Balance Blobs use encrypt_trivial.
|
|
467
|
+
// CMUX results are fully encrypted and should match standard sizes.
|
|
468
|
+
// If getting "Invalid Size", it's likely because the code previously fell through to here
|
|
469
|
+
// effectively treating a CMUX blob (with extra bool) as a weird Balance Blob.
|
|
470
|
+
console.warn(`[TfheClient] Unknown format, trying balance blob fallback`);
|
|
471
|
+
return this.decryptBalanceBlob(encryptedDataB64);
|
|
472
|
+
}
|
|
395
473
|
/**
|
|
396
474
|
* Decrypt balance transfer result
|
|
397
475
|
*/
|
|
@@ -406,22 +484,37 @@ export class TfheClient {
|
|
|
406
484
|
const senderBytes = bytes.slice(0, sizes.uint32);
|
|
407
485
|
const receiverBytes = bytes.slice(sizes.uint32, sizes.uint32 * 2);
|
|
408
486
|
const boolBytes = bytes.slice(sizes.uint32 * 2, expectedLen);
|
|
409
|
-
|
|
410
|
-
const
|
|
411
|
-
const
|
|
487
|
+
// Use safe_deserialize to match the Rust worker's safe_serialize format
|
|
488
|
+
const SIZE_LIMIT = BigInt("18446744073709551615"); // u64::MAX
|
|
489
|
+
const newSenderCt = tfhe.FheUint32.safe_deserialize(senderBytes, SIZE_LIMIT);
|
|
490
|
+
const newReceiverCt = tfhe.FheUint32.safe_deserialize(receiverBytes, SIZE_LIMIT);
|
|
491
|
+
const validCt = tfhe.FheBool.safe_deserialize(boolBytes, SIZE_LIMIT);
|
|
412
492
|
return {
|
|
413
493
|
newSender: newSenderCt.decrypt(this.clientKey),
|
|
414
494
|
newReceiver: newReceiverCt.decrypt(this.clientKey),
|
|
415
495
|
isValid: validCt.decrypt(this.clientKey),
|
|
416
496
|
};
|
|
417
497
|
}
|
|
498
|
+
/**
|
|
499
|
+
* Calculate ciphertext size from blob (for balance blobs from worker)
|
|
500
|
+
* This handles the case where Rust uses encrypt_trivial() which produces
|
|
501
|
+
* different-sized ciphertexts than encrypt_with_client_key().
|
|
502
|
+
*/
|
|
503
|
+
calculateSizeFromBlob(bytes, count) {
|
|
504
|
+
const totalCiphertextBytes = bytes.length - 2; // subtract 2-byte count header
|
|
505
|
+
const sizePerCiphertext = Math.floor(totalCiphertextBytes / count);
|
|
506
|
+
return sizePerCiphertext;
|
|
507
|
+
}
|
|
418
508
|
computeCiphertextSizes() {
|
|
419
509
|
this.requireClientKey();
|
|
420
510
|
const sampleUint = tfhe.FheUint32.encrypt_with_client_key(0, this.clientKey);
|
|
421
511
|
const sampleBool = tfhe.FheBool.encrypt_with_client_key(false, this.clientKey);
|
|
512
|
+
// Use safe_serialize to match the Rust worker's serialization format
|
|
513
|
+
// The worker uses tfhe::safe_serialization::safe_serialize
|
|
514
|
+
const SIZE_LIMIT = BigInt("18446744073709551615"); // u64::MAX
|
|
422
515
|
const sizes = {
|
|
423
|
-
uint32: sampleUint.
|
|
424
|
-
bool: sampleBool.
|
|
516
|
+
uint32: sampleUint.safe_serialize(SIZE_LIMIT).length,
|
|
517
|
+
bool: sampleBool.safe_serialize(SIZE_LIMIT).length,
|
|
425
518
|
};
|
|
426
519
|
console.log("[TfheClient] Computed ciphertext sizes:", sizes);
|
|
427
520
|
this.ciphertextSizes = sizes;
|