-
Notifications
You must be signed in to change notification settings - Fork 0
/
proof.ts
55 lines (51 loc) · 1.13 KB
/
proof.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
import * as proto from "../../bridge/proto/integrity_entities";
import { ProofAnchor } from "./proof_anchor";
/**
* Represents a proof, including leaves, nodes, depth, bitmap, and anchor information.
*/
export class Proof {
leaves: string[];
nodes: string[];
depth: string;
bitmap: string;
anchor: ProofAnchor;
/**
* Constructs a Proof object with the specified parameters.
* @param leaves
* @param nodes
* @param depth
* @param bitmap
* @param anchor
*/
constructor(
leaves: string[],
nodes: string[],
depth: string,
bitmap: string,
anchor: ProofAnchor
) {
this.leaves = leaves;
this.nodes = nodes;
this.depth = depth;
this.bitmap = bitmap;
this.anchor = anchor;
}
static fromProto(p: proto.Proof): Proof {
return new Proof(
p.leaves,
p.nodes,
p.depth,
p.bitmap,
ProofAnchor.fromProto(p.anchor!)
);
}
toProto(): proto.Proof {
return proto.Proof.fromPartial({
leaves: this.leaves,
nodes: this.nodes,
depth: this.depth,
bitmap: this.bitmap,
anchor: this.anchor.toProto()
});
}
}