@zelana/sdk 0.1.2 → 0.1.4

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.
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Note Encryption
3
+ *
4
+ * Encrypts note data for the recipient using ECDH + ChaCha20-Poly1305.
5
+ * This implementation matches the Rust privacy SDK exactly.
6
+ *
7
+ * Flow:
8
+ * 1. Sender generates ephemeral X25519 keypair (epk, esk)
9
+ * 2. Shared secret = ECDH(esk, recipient_pk)
10
+ * 3. Encryption key = HKDF(shared_secret, "zelana-note-v1")
11
+ * 4. Ciphertext = ChaCha20-Poly1305(key, nonce, plaintext)
12
+ * 5. Output = (epk, nonce, ciphertext)
13
+ */
14
+ import type { Bytes32 } from './types.js';
15
+ /**
16
+ * Encrypted note structure (matches Rust EncryptedNote)
17
+ */
18
+ export interface EncryptedNote {
19
+ /** Ephemeral public key for ECDH (32 bytes) */
20
+ ephemeralPk: Uint8Array;
21
+ /** Nonce for ChaCha20-Poly1305 (12 bytes) */
22
+ nonce: Uint8Array;
23
+ /** Encrypted note data with authentication tag */
24
+ ciphertext: Uint8Array;
25
+ }
26
+ /**
27
+ * Encrypt a note for a recipient
28
+ *
29
+ * @param value - Note value in lamports
30
+ * @param randomness - Random blinding factor (32 bytes)
31
+ * @param recipientPk - Recipient's X25519 public key
32
+ * @param memo - Optional memo (max 512 bytes)
33
+ * @returns Encrypted note
34
+ */
35
+ export declare function encryptNote(value: bigint, randomness: Bytes32, recipientPk: Bytes32, memo?: Uint8Array): EncryptedNote;
36
+ /**
37
+ * Decrypt a note using recipient's secret key
38
+ *
39
+ * @param encrypted - The encrypted note
40
+ * @param recipientSk - Recipient's X25519 secret key (32 bytes)
41
+ * @returns Decrypted plaintext or null if decryption fails
42
+ */
43
+ export declare function decryptNote(encrypted: EncryptedNote, recipientSk: Bytes32): {
44
+ value: bigint;
45
+ randomness: Uint8Array;
46
+ memo?: Uint8Array;
47
+ } | null;
48
+ /**
49
+ * Serialize an encrypted note to bytes for transmission
50
+ * Format: ephemeral_pk (32) + nonce (12) + ciphertext (variable)
51
+ */
52
+ export declare function serializeEncryptedNote(note: EncryptedNote): Uint8Array;
53
+ /**
54
+ * Deserialize an encrypted note from bytes
55
+ */
56
+ export declare function deserializeEncryptedNote(bytes: Uint8Array): EncryptedNote | null;
57
+ /**
58
+ * Generate an X25519 keypair
59
+ */
60
+ export declare function generateX25519Keypair(): {
61
+ secretKey: Uint8Array;
62
+ publicKey: Uint8Array;
63
+ };
64
+ /**
65
+ * Derive X25519 public key from secret key
66
+ */
67
+ export declare function x25519PublicKey(secretKey: Bytes32): Uint8Array;
68
+ //# sourceMappingURL=encryption.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encryption.d.ts","sourceRoot":"","sources":["../src/encryption.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,+CAA+C;IAC/C,WAAW,EAAE,UAAU,CAAC;IACxB,6CAA6C;IAC7C,KAAK,EAAE,UAAU,CAAC;IAClB,kDAAkD;IAClD,UAAU,EAAE,UAAU,CAAC;CACxB;AAyFD;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,OAAO,EACnB,WAAW,EAAE,OAAO,EACpB,IAAI,CAAC,EAAE,UAAU,GAChB,aAAa,CA8Bf;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,SAAS,EAAE,aAAa,EACxB,WAAW,EAAE,OAAO,GACnB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,UAAU,CAAC;IAAC,IAAI,CAAC,EAAE,UAAU,CAAA;CAAE,GAAG,IAAI,CA2BrE;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,aAAa,GAAG,UAAU,CAMtE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,UAAU,GAAG,aAAa,GAAG,IAAI,CAWhF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI;IAAE,SAAS,EAAE,UAAU,CAAC;IAAC,SAAS,EAAE,UAAU,CAAA;CAAE,CAIxF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,OAAO,GAAG,UAAU,CAE9D"}
package/dist/index.d.ts CHANGED
@@ -46,6 +46,7 @@ export type { Bytes32, AccountState, TxType, TxStatus, TxSummary, BatchStatus, B
46
46
  export { ZelanaError } from './types';
47
47
  export { shielded, ShieldedTransactionBuilder, generateShieldedKeys, shieldedKeysFromSpendingKey, createNote, noteWithRandomness, computeCommitment, computeNullifier, tryDecryptNote, } from './shielded';
48
48
  export type { Note, EncryptedNote, ShieldedKeys, ShieldedInput, ShieldedOutput, PreparedShieldedTx, ShieldedTransaction, ShieldedWitness, ScanResult, MerklePath as ShieldedMerklePath, } from './shielded';
49
+ export { encryptNote, decryptNote, x25519PublicKey, serializeEncryptedNote, deserializeEncryptedNote, } from './encryption';
49
50
  export { bytesToHex, hexToBytes, bytesToBase58, base58ToBytes, u64ToLeBytes, leBytesToU64, concatBytes, bytesEqual, randomBytes, } from './utils';
50
51
  export { OwnershipProver, MockOwnershipProver, mockProver, getProver, computeOwnershipWitness, } from './prover';
51
52
  export type { OwnershipWitness, OwnershipProof, DelegatedShieldedRequest, } from './prover';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,YAAY,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAGnD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC/C,YAAY,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAGxC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,YAAY,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAGhD,YAAY,EAEV,OAAO,EACP,YAAY,EAGZ,MAAM,EACN,QAAQ,EACR,SAAS,EACT,WAAW,EACX,YAAY,EAGZ,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAGhB,UAAU,EACV,eAAe,EACf,UAAU,EACV,WAAW,EAGX,UAAU,EACV,WAAW,EAGX,iBAAiB,EAGjB,mBAAmB,EACnB,aAAa,EAGb,gBAAgB,EAChB,iBAAiB,EAGjB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,eAAe,EAGf,QAAQ,GACT,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAGtC,OAAO,EACL,QAAQ,EACR,0BAA0B,EAC1B,oBAAoB,EACpB,2BAA2B,EAC3B,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,IAAI,EACJ,aAAa,EACb,YAAY,EACZ,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,UAAU,EACV,UAAU,IAAI,kBAAkB,GACjC,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,UAAU,EACV,UAAU,EACV,aAAa,EACb,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,UAAU,EACV,WAAW,GACZ,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,UAAU,EACV,SAAS,EACT,uBAAuB,GACxB,MAAM,UAAU,CAAC;AAElB,YAAY,EACV,gBAAgB,EAChB,cAAc,EACd,wBAAwB,GACzB,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,YAAY,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAGnD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC/C,YAAY,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAGxC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,YAAY,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAGhD,YAAY,EAEV,OAAO,EACP,YAAY,EAGZ,MAAM,EACN,QAAQ,EACR,SAAS,EACT,WAAW,EACX,YAAY,EAGZ,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAGhB,UAAU,EACV,eAAe,EACf,UAAU,EACV,WAAW,EAGX,UAAU,EACV,WAAW,EAGX,iBAAiB,EAGjB,mBAAmB,EACnB,aAAa,EAGb,gBAAgB,EAChB,iBAAiB,EAGjB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,eAAe,EAGf,QAAQ,GACT,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAGtC,OAAO,EACL,QAAQ,EACR,0BAA0B,EAC1B,oBAAoB,EACpB,2BAA2B,EAC3B,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,IAAI,EACJ,aAAa,EACb,YAAY,EACZ,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,UAAU,EACV,UAAU,IAAI,kBAAkB,GACjC,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,WAAW,EACX,WAAW,EACX,eAAe,EACf,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,UAAU,EACV,UAAU,EACV,aAAa,EACb,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,UAAU,EACV,WAAW,GACZ,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,UAAU,EACV,SAAS,EACT,uBAAuB,GACxB,MAAM,UAAU,CAAC;AAElB,YAAY,EACV,gBAAgB,EAChB,cAAc,EACd,wBAAwB,GACzB,MAAM,UAAU,CAAC"}