UNPKG

lotus-sdk

Version:

Central repository for several classes of tools for integrating with, and building for, the Lotusia ecosystem

65 lines 3.27 kB
import { PublicKey } from './publickey.js'; import { PrivateKey } from './privatekey.js'; import { Script } from './script.js'; export interface TapLeafNode { script: Script | Buffer; leafVersion?: number; } export interface TapBranchNode { left: TapNode; right: TapNode; } export type TapNode = TapLeafNode | TapBranchNode; export interface TapLeaf { script: Script; leafVersion: number; leafHash: Buffer; merklePath: Buffer[]; } export interface TapTreeBuildResult { merkleRoot: Buffer; leaves: TapLeaf[]; } export declare const TAPROOT_LEAF_MASK = 254; export declare const TAPROOT_LEAF_TAPSCRIPT = 192; export declare const TAPROOT_CONTROL_BASE_SIZE = 33; export declare const TAPROOT_CONTROL_NODE_SIZE = 32; export declare const TAPROOT_CONTROL_MAX_NODE_COUNT = 128; export declare const TAPROOT_CONTROL_MAX_SIZE: number; export declare const TAPROOT_SCRIPTTYPE = 81; export declare const TAPROOT_INTRO_SIZE = 3; export declare const TAPROOT_SIZE_WITHOUT_STATE: number; export declare const TAPROOT_SIZE_WITH_STATE: number; export declare const TAPROOT_SIGHASH_TYPE: number; export declare const TAPROOT_ANNEX_TAG = 80; export declare function taggedHash(tag: string, data: Buffer): Buffer; export declare function calculateTapTweak(internalPubKey: PublicKey, merkleRoot?: Buffer): Buffer; export declare function calculateTapLeaf(script: Script | Buffer, leafVersion?: number): Buffer; export declare function calculateTapBranch(left: Buffer, right: Buffer): Buffer; export declare function tweakPublicKey(internalPubKey: PublicKey, merkleRoot?: Buffer): PublicKey; export declare function tweakPrivateKey(internalPrivKey: PrivateKey, merkleRoot?: Buffer): PrivateKey; export declare function isTapLeafNode(node: TapNode): node is TapLeafNode; export declare function isTapBranchNode(node: TapNode): node is TapBranchNode; export declare function buildTapTree(tree: TapNode): TapTreeBuildResult; export declare function createControlBlock(internalPubKey: PublicKey, leafIndex: number, tree: TapNode): Buffer; export declare function verifyTaprootCommitment(commitmentPubKey: PublicKey, internalPubKey: PublicKey, merkleRoot: Buffer): boolean; export declare function isPayToTaproot(script: Script): boolean; export declare function extractTaprootCommitment(script: Script): PublicKey; export declare function extractTaprootState(script: Script): Buffer | null; export declare function buildPayToTaproot(commitment: PublicKey, state?: Buffer): Script; export declare function buildKeyPathTaproot(internalPubKey: PublicKey, state?: Buffer): Script; export declare function buildScriptPathTaproot(internalPubKey: PublicKey, tree: TapNode, state?: Buffer): { script: Script; commitment: PublicKey; merkleRoot: Buffer; leaves: TapLeaf[]; }; export declare function verifyTaprootScriptPath(internalPubKey: Buffer, script: Script, commitmentPubKey: Buffer, leafVersion: number, merklePath: Buffer[], parity: number): boolean; export interface TaprootVerifyResult { success: boolean; error?: string; scriptToExecute?: Script; stack?: Buffer[]; } export declare function verifyTaprootSpend(scriptPubkey: Script, stack: Buffer[], flags: number): TaprootVerifyResult; //# sourceMappingURL=taproot.d.ts.map