/// import { GrumpkinAddress } from '../address/index.js'; import { Grumpkin } from '../ecc/grumpkin/index.js'; import { ViewingKey } from '../viewing_key/index.js'; import { DecryptedNote } from './decrypted_note.js'; export declare class TreeNote { ownerPubKey: GrumpkinAddress; value: bigint; assetId: number; accountRequired: boolean; noteSecret: Buffer; creatorPubKey: Buffer; inputNullifier: Buffer; static EMPTY: TreeNote; static SIZE: number; constructor(ownerPubKey: GrumpkinAddress, value: bigint, assetId: number, accountRequired: boolean, noteSecret: Buffer, creatorPubKey: Buffer, inputNullifier: Buffer); toBuffer(): Buffer; createViewingKey(ephPrivKey: Buffer, grumpkin: Grumpkin): ViewingKey; static fromBuffer(buf: Buffer): TreeNote; /** * Note on how the noteSecret can be derived in two different ways (from ephPubKey or ephPrivKey): * * ownerPubKey := [ownerPrivKey] * G (where G is a generator of the grumpkin curve, and `[scalar] * Point` is scalar multiplication). * ↑ * a.k.a. account private key * * ephPubKey := [ephPrivKey] * G (where ephPrivKey is a random field element). * * sharedSecret := [ephPrivKey] * ownerPubKey = [ephPrivKey] * ([ownerPrivKey] * G) = [ownerPrivKey] * ([ephPrivKey] * G) = [ownerPrivKey] * ephPubKey * ^^^^^^^^^^ ^^^^^^^^^ * noteSecret is then derivable from the sharedSecret. */ static createFromEphPriv(ownerPubKey: GrumpkinAddress, value: bigint, assetId: number, accountRequired: boolean, inputNullifier: Buffer, ephPrivKey: Buffer, grumpkin: Grumpkin, creatorPubKey?: Buffer): TreeNote; static createFromEphPub(ownerPubKey: GrumpkinAddress, value: bigint, assetId: number, accountRequired: boolean, inputNullifier: Buffer, ephPubKey: GrumpkinAddress, ownerPrivKey: Buffer, grumpkin: Grumpkin, creatorPubKey?: Buffer): TreeNote; static recover(decryptedNote: DecryptedNote, inputNullifier: Buffer, ownerPubKey: GrumpkinAddress): TreeNote; } //# sourceMappingURL=tree_note.d.ts.map