@ensdomains/merkle-builder 0.0.1
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/LICENSE +21 -0
- package/README.md +43 -0
- package/dist/index.cjs +945 -0
- package/dist/index.d.cts +92 -0
- package/dist/index.d.ts +92 -0
- package/dist/index.js +882 -0
- package/package.json +48 -0
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
type LeafNode = {
|
|
2
|
+
path: Uint8Array;
|
|
3
|
+
data: Uint8Array;
|
|
4
|
+
};
|
|
5
|
+
type ExtensionNode = {
|
|
6
|
+
path: Uint8Array;
|
|
7
|
+
child: BranchNode;
|
|
8
|
+
};
|
|
9
|
+
type BranchNode = {
|
|
10
|
+
children: MaybeNode[];
|
|
11
|
+
cache?: Uint8Array;
|
|
12
|
+
};
|
|
13
|
+
type Node = LeafNode | ExtensionNode | BranchNode;
|
|
14
|
+
type MaybeNode = Node | undefined;
|
|
15
|
+
declare const EMPTY_BYTES: Uint8Array<ArrayBuffer>;
|
|
16
|
+
declare const EMPTY_LEAF: Readonly<{
|
|
17
|
+
path: Uint8Array<ArrayBuffer>;
|
|
18
|
+
data: Uint8Array<ArrayBuffer>;
|
|
19
|
+
}>;
|
|
20
|
+
declare function isBranch(node: MaybeNode): node is BranchNode;
|
|
21
|
+
declare function isExtension(node: MaybeNode): node is ExtensionNode;
|
|
22
|
+
declare function isLeaf(node: MaybeNode): node is LeafNode;
|
|
23
|
+
declare function isEmptyLeaf(node: MaybeNode): boolean;
|
|
24
|
+
declare function copyNode<T extends MaybeNode>(node: T, copyPath?: boolean): T;
|
|
25
|
+
declare function findLeaf(node: MaybeNode, path: Uint8Array): LeafNode | undefined;
|
|
26
|
+
declare function getProof(node: MaybeNode, path: Uint8Array): Uint8Array[];
|
|
27
|
+
declare function insertLeaf(node: BranchNode, path: Uint8Array, data: Uint8Array): BranchNode;
|
|
28
|
+
declare function insertLeaf(node: MaybeNode, path: Uint8Array, data: Uint8Array): Node;
|
|
29
|
+
declare function extractNode(node: MaybeNode, path: Uint8Array): MaybeNode;
|
|
30
|
+
declare function deleteNode(node: MaybeNode, path: Uint8Array): MaybeNode;
|
|
31
|
+
declare function newLeaf(path: Uint8Array, data: Uint8Array): LeafNode;
|
|
32
|
+
declare function newBranch(): BranchNode;
|
|
33
|
+
declare function encodeNode(node: MaybeNode): Uint8Array;
|
|
34
|
+
declare function clearCache(node: MaybeNode): void;
|
|
35
|
+
declare function getRootHash(node: MaybeNode): Uint8Array;
|
|
36
|
+
declare function toNibblePath(v: Uint8Array): Uint8Array;
|
|
37
|
+
|
|
38
|
+
declare const MAX_SIZE: number;
|
|
39
|
+
declare class Coder {
|
|
40
|
+
buf: Uint8Array;
|
|
41
|
+
static getByteCount(node: MaybeNode): number;
|
|
42
|
+
pos: number;
|
|
43
|
+
constructor(buf?: Uint8Array);
|
|
44
|
+
reset(): void;
|
|
45
|
+
expand(need: number): void;
|
|
46
|
+
require(need: number): void;
|
|
47
|
+
readByte(): number;
|
|
48
|
+
writeByte(x: number): void;
|
|
49
|
+
readSize(): number;
|
|
50
|
+
writeSize(size: number): void;
|
|
51
|
+
readBytes(n: number): Uint8Array<ArrayBuffer>;
|
|
52
|
+
writeBytes(v: Uint8Array): void;
|
|
53
|
+
readSizedBytes(): Uint8Array;
|
|
54
|
+
writeSizedBytes(v: Uint8Array): void;
|
|
55
|
+
readPath(): Uint8Array<ArrayBufferLike>;
|
|
56
|
+
writePath(v: Uint8Array): void;
|
|
57
|
+
readNodes(length?: number): MaybeNode[];
|
|
58
|
+
readNode(): MaybeNode;
|
|
59
|
+
writeNode(node: MaybeNode, includeCache?: boolean): void;
|
|
60
|
+
get bytes(): Uint8Array<ArrayBufferLike>;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
declare function getByteCount(node: MaybeNode, sizeOf?: (v: Uint8Array) => number): number;
|
|
64
|
+
declare function getLeafCount(node: MaybeNode): number;
|
|
65
|
+
declare function getNodeCount(node: MaybeNode): number;
|
|
66
|
+
declare function getNodeType(node: MaybeNode): "branch" | "extension" | "leaf" | "null";
|
|
67
|
+
|
|
68
|
+
declare function toJSON(node: MaybeNode, depth?: number): any;
|
|
69
|
+
declare function fromJSON(json: any): MaybeNode;
|
|
70
|
+
|
|
71
|
+
type InsertMode = "zero" | "delete" | "ignore";
|
|
72
|
+
declare function insertBytes(node: MaybeNode, slot: Uint8Array, value: Uint8Array, mode?: InsertMode): MaybeNode;
|
|
73
|
+
|
|
74
|
+
declare function mimcHash(v: bigint[]): bigint;
|
|
75
|
+
|
|
76
|
+
type Limb = [path: Uint8Array, node: Node];
|
|
77
|
+
declare function pluckLimbs(node: MaybeNode, depth: number): {
|
|
78
|
+
trunk: MaybeNode;
|
|
79
|
+
limbs: Limb[];
|
|
80
|
+
};
|
|
81
|
+
declare function graftLimb(trunk: MaybeNode, path: Uint8Array, limb: Node): Node;
|
|
82
|
+
|
|
83
|
+
type Hex = `0x${string}`;
|
|
84
|
+
declare function keccak256(v: Uint8Array): Uint8Array;
|
|
85
|
+
declare function concat(...args: Uint8Array[]): Uint8Array;
|
|
86
|
+
declare function followSlot(slot: bigint, key: Uint8Array): Uint8Array;
|
|
87
|
+
declare function trimLeadingZeros(v: Uint8Array): Uint8Array;
|
|
88
|
+
declare function toBytes(x: string | number | bigint, size?: number): Uint8Array;
|
|
89
|
+
declare function toBigInt(v: Uint8Array): bigint;
|
|
90
|
+
declare function toHex(v: Uint8Array): Hex;
|
|
91
|
+
|
|
92
|
+
export { type BranchNode, Coder, EMPTY_BYTES, EMPTY_LEAF, type ExtensionNode, type Hex, type InsertMode, type LeafNode, MAX_SIZE, type MaybeNode, type Node, clearCache, concat, copyNode, deleteNode, encodeNode, extractNode, findLeaf, followSlot, fromJSON, getByteCount, getLeafCount, getNodeCount, getNodeType, getProof, getRootHash, graftLimb, insertBytes, insertLeaf, isBranch, isEmptyLeaf, isExtension, isLeaf, keccak256, mimcHash, newBranch, newLeaf, pluckLimbs, toBigInt, toBytes, toHex, toJSON, toNibblePath, trimLeadingZeros };
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
type LeafNode = {
|
|
2
|
+
path: Uint8Array;
|
|
3
|
+
data: Uint8Array;
|
|
4
|
+
};
|
|
5
|
+
type ExtensionNode = {
|
|
6
|
+
path: Uint8Array;
|
|
7
|
+
child: BranchNode;
|
|
8
|
+
};
|
|
9
|
+
type BranchNode = {
|
|
10
|
+
children: MaybeNode[];
|
|
11
|
+
cache?: Uint8Array;
|
|
12
|
+
};
|
|
13
|
+
type Node = LeafNode | ExtensionNode | BranchNode;
|
|
14
|
+
type MaybeNode = Node | undefined;
|
|
15
|
+
declare const EMPTY_BYTES: Uint8Array<ArrayBuffer>;
|
|
16
|
+
declare const EMPTY_LEAF: Readonly<{
|
|
17
|
+
path: Uint8Array<ArrayBuffer>;
|
|
18
|
+
data: Uint8Array<ArrayBuffer>;
|
|
19
|
+
}>;
|
|
20
|
+
declare function isBranch(node: MaybeNode): node is BranchNode;
|
|
21
|
+
declare function isExtension(node: MaybeNode): node is ExtensionNode;
|
|
22
|
+
declare function isLeaf(node: MaybeNode): node is LeafNode;
|
|
23
|
+
declare function isEmptyLeaf(node: MaybeNode): boolean;
|
|
24
|
+
declare function copyNode<T extends MaybeNode>(node: T, copyPath?: boolean): T;
|
|
25
|
+
declare function findLeaf(node: MaybeNode, path: Uint8Array): LeafNode | undefined;
|
|
26
|
+
declare function getProof(node: MaybeNode, path: Uint8Array): Uint8Array[];
|
|
27
|
+
declare function insertLeaf(node: BranchNode, path: Uint8Array, data: Uint8Array): BranchNode;
|
|
28
|
+
declare function insertLeaf(node: MaybeNode, path: Uint8Array, data: Uint8Array): Node;
|
|
29
|
+
declare function extractNode(node: MaybeNode, path: Uint8Array): MaybeNode;
|
|
30
|
+
declare function deleteNode(node: MaybeNode, path: Uint8Array): MaybeNode;
|
|
31
|
+
declare function newLeaf(path: Uint8Array, data: Uint8Array): LeafNode;
|
|
32
|
+
declare function newBranch(): BranchNode;
|
|
33
|
+
declare function encodeNode(node: MaybeNode): Uint8Array;
|
|
34
|
+
declare function clearCache(node: MaybeNode): void;
|
|
35
|
+
declare function getRootHash(node: MaybeNode): Uint8Array;
|
|
36
|
+
declare function toNibblePath(v: Uint8Array): Uint8Array;
|
|
37
|
+
|
|
38
|
+
declare const MAX_SIZE: number;
|
|
39
|
+
declare class Coder {
|
|
40
|
+
buf: Uint8Array;
|
|
41
|
+
static getByteCount(node: MaybeNode): number;
|
|
42
|
+
pos: number;
|
|
43
|
+
constructor(buf?: Uint8Array);
|
|
44
|
+
reset(): void;
|
|
45
|
+
expand(need: number): void;
|
|
46
|
+
require(need: number): void;
|
|
47
|
+
readByte(): number;
|
|
48
|
+
writeByte(x: number): void;
|
|
49
|
+
readSize(): number;
|
|
50
|
+
writeSize(size: number): void;
|
|
51
|
+
readBytes(n: number): Uint8Array<ArrayBuffer>;
|
|
52
|
+
writeBytes(v: Uint8Array): void;
|
|
53
|
+
readSizedBytes(): Uint8Array;
|
|
54
|
+
writeSizedBytes(v: Uint8Array): void;
|
|
55
|
+
readPath(): Uint8Array<ArrayBufferLike>;
|
|
56
|
+
writePath(v: Uint8Array): void;
|
|
57
|
+
readNodes(length?: number): MaybeNode[];
|
|
58
|
+
readNode(): MaybeNode;
|
|
59
|
+
writeNode(node: MaybeNode, includeCache?: boolean): void;
|
|
60
|
+
get bytes(): Uint8Array<ArrayBufferLike>;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
declare function getByteCount(node: MaybeNode, sizeOf?: (v: Uint8Array) => number): number;
|
|
64
|
+
declare function getLeafCount(node: MaybeNode): number;
|
|
65
|
+
declare function getNodeCount(node: MaybeNode): number;
|
|
66
|
+
declare function getNodeType(node: MaybeNode): "branch" | "extension" | "leaf" | "null";
|
|
67
|
+
|
|
68
|
+
declare function toJSON(node: MaybeNode, depth?: number): any;
|
|
69
|
+
declare function fromJSON(json: any): MaybeNode;
|
|
70
|
+
|
|
71
|
+
type InsertMode = "zero" | "delete" | "ignore";
|
|
72
|
+
declare function insertBytes(node: MaybeNode, slot: Uint8Array, value: Uint8Array, mode?: InsertMode): MaybeNode;
|
|
73
|
+
|
|
74
|
+
declare function mimcHash(v: bigint[]): bigint;
|
|
75
|
+
|
|
76
|
+
type Limb = [path: Uint8Array, node: Node];
|
|
77
|
+
declare function pluckLimbs(node: MaybeNode, depth: number): {
|
|
78
|
+
trunk: MaybeNode;
|
|
79
|
+
limbs: Limb[];
|
|
80
|
+
};
|
|
81
|
+
declare function graftLimb(trunk: MaybeNode, path: Uint8Array, limb: Node): Node;
|
|
82
|
+
|
|
83
|
+
type Hex = `0x${string}`;
|
|
84
|
+
declare function keccak256(v: Uint8Array): Uint8Array;
|
|
85
|
+
declare function concat(...args: Uint8Array[]): Uint8Array;
|
|
86
|
+
declare function followSlot(slot: bigint, key: Uint8Array): Uint8Array;
|
|
87
|
+
declare function trimLeadingZeros(v: Uint8Array): Uint8Array;
|
|
88
|
+
declare function toBytes(x: string | number | bigint, size?: number): Uint8Array;
|
|
89
|
+
declare function toBigInt(v: Uint8Array): bigint;
|
|
90
|
+
declare function toHex(v: Uint8Array): Hex;
|
|
91
|
+
|
|
92
|
+
export { type BranchNode, Coder, EMPTY_BYTES, EMPTY_LEAF, type ExtensionNode, type Hex, type InsertMode, type LeafNode, MAX_SIZE, type MaybeNode, type Node, clearCache, concat, copyNode, deleteNode, encodeNode, extractNode, findLeaf, followSlot, fromJSON, getByteCount, getLeafCount, getNodeCount, getNodeType, getProof, getRootHash, graftLimb, insertBytes, insertLeaf, isBranch, isEmptyLeaf, isExtension, isLeaf, keccak256, mimcHash, newBranch, newLeaf, pluckLimbs, toBigInt, toBytes, toHex, toJSON, toNibblePath, trimLeadingZeros };
|