///
import { SmartContractLib, ByteString } from 'scrypt-ts';
export interface MerkleTreiLeaf {
key(): bigint;
serialize(): Buffer;
}
export declare class MerkleTreiNode {
nodeMap: Map;
constructor();
addSubNode(key: number, value: Buffer): void;
getHash(emptyHash: Buffer): Buffer;
getNeighbors(subIndex: number, emptyHash: Buffer): Buffer;
}
export declare function hashFunc(buf: Buffer): Buffer;
export declare class MerkleTreiTree extends SmartContractLib {
static readonly NEIGHBOR_LEN = 5100;
static readonly HEIGHT = 32;
static addTxid(txid: ByteString, oldMerkleRoot: ByteString, merklePath: ByteString): ByteString;
}
export declare class MerkleTreiTreeHelper {
leafNodes: Map;
emptyHashs: Buffer[];
hashNodeSets: Map[];
leafSize: number;
constructor(leafNodeArray: MerkleTreiLeaf[], leafSize: number);
get merkleRoot(): any;
get size(): number;
addLeafNode(leafNode: MerkleTreiLeaf): void;
getNodeIndex(key: bigint): {
index: bigint;
subIndex: number;
};
buildMerkleTree(): void;
updateLeafNode(leafNode: MerkleTreiLeaf): {
oldLeafBuf: Buffer;
merklePath: Buffer;
newLeafBuf: Buffer;
};
updateTree(leaf: MerkleTreiLeaf): Buffer;
getNode(key: bigint): MerkleTreiLeaf;
}