@aztec/world-state 0.0.1-commit.b2a5d0dd1 → 0.0.1-commit.b3d3157a

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.
Files changed (47) hide show
  1. package/dest/instrumentation/instrumentation.d.ts +4 -3
  2. package/dest/instrumentation/instrumentation.d.ts.map +1 -1
  3. package/dest/instrumentation/instrumentation.js +4 -9
  4. package/dest/native/ipc_world_state_instance.d.ts +87 -0
  5. package/dest/native/ipc_world_state_instance.d.ts.map +1 -0
  6. package/dest/native/ipc_world_state_instance.js +660 -0
  7. package/dest/native/merkle_trees_facade.d.ts +6 -3
  8. package/dest/native/merkle_trees_facade.d.ts.map +1 -1
  9. package/dest/native/merkle_trees_facade.js +53 -113
  10. package/dest/native/message.d.ts +14 -229
  11. package/dest/native/message.d.ts.map +1 -1
  12. package/dest/native/message.js +0 -42
  13. package/dest/native/native_world_state.d.ts +15 -5
  14. package/dest/native/native_world_state.d.ts.map +1 -1
  15. package/dest/native/native_world_state.js +97 -51
  16. package/dest/native/native_world_state_instance.d.ts +58 -41
  17. package/dest/native/native_world_state_instance.d.ts.map +1 -1
  18. package/dest/native/native_world_state_instance.js +5 -203
  19. package/dest/native/world_state_operation.d.ts +7 -0
  20. package/dest/native/world_state_operation.d.ts.map +1 -0
  21. package/dest/native/world_state_operation.js +5 -0
  22. package/dest/synchronizer/config.d.ts +1 -1
  23. package/dest/synchronizer/config.d.ts.map +1 -1
  24. package/dest/synchronizer/config.js +9 -10
  25. package/dest/synchronizer/factory.d.ts +3 -3
  26. package/dest/synchronizer/factory.d.ts.map +1 -1
  27. package/dest/synchronizer/factory.js +5 -5
  28. package/dest/synchronizer/server_world_state_synchronizer.d.ts +1 -1
  29. package/dest/synchronizer/server_world_state_synchronizer.d.ts.map +1 -1
  30. package/dest/synchronizer/server_world_state_synchronizer.js +16 -13
  31. package/dest/testing.js +1 -1
  32. package/package.json +14 -10
  33. package/src/instrumentation/instrumentation.ts +6 -18
  34. package/src/native/ipc_world_state_instance.ts +830 -0
  35. package/src/native/merkle_trees_facade.ts +76 -108
  36. package/src/native/message.ts +13 -296
  37. package/src/native/native_world_state.ts +113 -79
  38. package/src/native/native_world_state_instance.ts +96 -284
  39. package/src/native/world_state_operation.ts +33 -0
  40. package/src/synchronizer/config.ts +14 -10
  41. package/src/synchronizer/factory.ts +8 -7
  42. package/src/synchronizer/server_world_state_synchronizer.ts +11 -14
  43. package/src/testing.ts +1 -1
  44. package/dest/native/world_state_ops_queue.d.ts +0 -19
  45. package/dest/native/world_state_ops_queue.d.ts.map +0 -1
  46. package/dest/native/world_state_ops_queue.js +0 -146
  47. package/src/native/world_state_ops_queue.ts +0 -190
@@ -5,7 +5,7 @@ import { BlockHash } from '@aztec/stdlib/block';
5
5
  import type { BatchInsertionResult, IndexedTreeId, MerkleTreeLeafType, MerkleTreeReadOperations, MerkleTreeWriteOperations, SequentialInsertionResult, TreeInfo } from '@aztec/stdlib/interfaces/server';
6
6
  import { MerkleTreeId, NullifierLeaf, PublicDataTreeLeaf } from '@aztec/stdlib/trees';
7
7
  import { type BlockHeader, StateReference } from '@aztec/stdlib/tx';
8
- import { type WorldStateRevision, WorldStateRevisionWithHandle } from '@aztec/stdlib/world-state';
8
+ import type { WorldStateRevision } from '@aztec/stdlib/world-state';
9
9
  import { type SerializedLeafValue } from './message.js';
10
10
  import type { NativeWorldStateInstance } from './native_world_state_instance.js';
11
11
  export declare class MerkleTreesFacade implements MerkleTreeReadOperations {
@@ -14,7 +14,8 @@ export declare class MerkleTreesFacade implements MerkleTreeReadOperations {
14
14
  protected readonly revision: WorldStateRevision;
15
15
  constructor(instance: NativeWorldStateInstance, initialHeader: BlockHeader, revision: WorldStateRevision);
16
16
  getInitialHeader(): BlockHeader;
17
- getRevision(): WorldStateRevisionWithHandle;
17
+ getRevision(): WorldStateRevision;
18
+ getIpcPath(): string;
18
19
  findLeafIndices(treeId: MerkleTreeId, values: MerkleTreeLeafType<MerkleTreeId>[]): Promise<(bigint | undefined)[]>;
19
20
  findSiblingPaths<N extends number>(treeId: MerkleTreeId, values: MerkleTreeLeafType<MerkleTreeId>[]): Promise<({
20
21
  path: SiblingPath<N>;
@@ -36,6 +37,7 @@ export declare class MerkleTreesFacade implements MerkleTreeReadOperations {
36
37
  export declare class MerkleTreesForkFacade extends MerkleTreesFacade implements MerkleTreeWriteOperations {
37
38
  private opts;
38
39
  private log;
40
+ private closePromise;
39
41
  constructor(instance: NativeWorldStateInstance, initialHeader: BlockHeader, revision: WorldStateRevision, opts: {
40
42
  closeDelayMs?: number;
41
43
  });
@@ -44,6 +46,7 @@ export declare class MerkleTreesForkFacade extends MerkleTreesFacade implements
44
46
  batchInsert<TreeHeight extends number, SubtreeSiblingPathHeight extends number, ID extends IndexedTreeId>(treeId: ID, rawLeaves: Buffer[], subtreeHeight: number): Promise<BatchInsertionResult<TreeHeight, SubtreeSiblingPathHeight>>;
45
47
  sequentialInsert<TreeHeight extends number, ID extends IndexedTreeId>(treeId: ID, rawLeaves: Buffer[]): Promise<SequentialInsertionResult<TreeHeight>>;
46
48
  close(): Promise<void>;
49
+ private doClose;
47
50
  [Symbol.asyncDispose](): Promise<void>;
48
51
  createCheckpoint(): Promise<number>;
49
52
  commitCheckpoint(): Promise<void>;
@@ -52,4 +55,4 @@ export declare class MerkleTreesForkFacade extends MerkleTreesFacade implements
52
55
  revertAllCheckpointsTo(depth: number): Promise<void>;
53
56
  }
54
57
  export declare function serializeLeaf(leaf: Fr | BlockHash | NullifierLeaf | PublicDataTreeLeaf): SerializedLeafValue;
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVya2xlX3RyZWVzX2ZhY2FkZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL25hdGl2ZS9tZXJrbGVfdHJlZXNfZmFjYWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFJcEQsT0FBTyxFQUFFLEtBQUssdUJBQXVCLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hELE9BQU8sS0FBSyxFQUNWLG9CQUFvQixFQUNwQixhQUFhLEVBQ2Isa0JBQWtCLEVBQ2xCLHdCQUF3QixFQUN4Qix5QkFBeUIsRUFDekIseUJBQXlCLEVBQ3pCLFFBQVEsRUFDVCxNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sRUFDTCxZQUFZLEVBQ1osYUFBYSxFQUViLGtCQUFrQixFQUVuQixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxLQUFLLFdBQVcsRUFBeUIsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDM0YsT0FBTyxFQUFFLEtBQUssa0JBQWtCLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUlsRyxPQUFPLEVBRUwsS0FBSyxtQkFBbUIsRUFJekIsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVqRixxQkFBYSxpQkFBa0IsWUFBVyx3QkFBd0I7SUFFOUQsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsd0JBQXdCO0lBQ3JELFNBQVMsQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLFdBQVc7SUFDN0MsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsa0JBQWtCO0lBSGpE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
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVya2xlX3RyZWVzX2ZhY2FkZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL25hdGl2ZS9tZXJrbGVfdHJlZXNfZmFjYWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFJcEQsT0FBTyxFQUFFLEtBQUssdUJBQXVCLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hELE9BQU8sS0FBSyxFQUNWLG9CQUFvQixFQUNwQixhQUFhLEVBQ2Isa0JBQWtCLEVBQ2xCLHdCQUF3QixFQUN4Qix5QkFBeUIsRUFDekIseUJBQXlCLEVBQ3pCLFFBQVEsRUFDVCxNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sRUFDTCxZQUFZLEVBQ1osYUFBYSxFQUViLGtCQUFrQixFQUVuQixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxLQUFLLFdBQVcsRUFBeUIsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDM0YsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUlwRSxPQUFPLEVBRUwsS0FBSyxtQkFBbUIsRUFHekIsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVqRixxQkFBYSxpQkFBa0IsWUFBVyx3QkFBd0I7SUFFOUQsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsd0JBQXdCO0lBQ3JELFNBQVMsQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLFdBQVc7SUFDN0MsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsa0JBQWtCO0lBSGpELFlBQ3FCLFFBQVEs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
@@ -1 +1 @@
1
- {"version":3,"file":"merkle_trees_facade.d.ts","sourceRoot":"","sources":["../../src/native/merkle_trees_facade.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"merkle_trees_facade.d.ts","sourceRoot":"","sources":["../../src/native/merkle_trees_facade.ts"],"names":[],"mappings":"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"}
@@ -8,9 +8,8 @@ import { SiblingPath } from '@aztec/foundation/trees';
8
8
  import { BlockHash } from '@aztec/stdlib/block';
9
9
  import { MerkleTreeId, NullifierLeaf, NullifierLeafPreimage, PublicDataTreeLeaf, PublicDataTreeLeafPreimage } from '@aztec/stdlib/trees';
10
10
  import { PartialStateReference, StateReference } from '@aztec/stdlib/tx';
11
- import { WorldStateRevisionWithHandle } from '@aztec/stdlib/world-state';
12
11
  import assert from 'assert';
13
- import { WorldStateMessageType, blockStateReference, treeStateReferenceToSnapshot } from './message.js';
12
+ import { blockStateReference, treeStateReferenceToSnapshot } from './message.js';
14
13
  export class MerkleTreesFacade {
15
14
  instance;
16
15
  initialHeader;
@@ -24,18 +23,17 @@ export class MerkleTreesFacade {
24
23
  return this.initialHeader;
25
24
  }
26
25
  getRevision() {
27
- return WorldStateRevisionWithHandle.fromWorldStateRevision(this.revision, this.instance.getHandle());
26
+ return this.revision;
27
+ }
28
+ getIpcPath() {
29
+ return this.instance.getIpcPath();
28
30
  }
29
31
  findLeafIndices(treeId, values) {
30
32
  return this.findLeafIndicesAfter(treeId, values, 0n);
31
33
  }
32
34
  async findSiblingPaths(treeId, values) {
33
- const response = await this.instance.call(WorldStateMessageType.FIND_SIBLING_PATHS, {
34
- leaves: values.map((leaf)=>serializeLeaf(hydrateLeaf(treeId, leaf))),
35
- revision: this.revision,
36
- treeId
37
- });
38
- return response.paths.map((path)=>{
35
+ const paths = await this.instance.findSiblingPaths(treeId, this.revision, values.map((leaf)=>serializeLeaf(hydrateLeaf(treeId, leaf))));
36
+ return paths.map((path)=>{
39
37
  if (!path) {
40
38
  return undefined;
41
39
  }
@@ -46,13 +44,8 @@ export class MerkleTreesFacade {
46
44
  });
47
45
  }
48
46
  async findLeafIndicesAfter(treeId, leaves, startIndex) {
49
- const response = await this.instance.call(WorldStateMessageType.FIND_LEAF_INDICES, {
50
- leaves: leaves.map((leaf)=>serializeLeaf(hydrateLeaf(treeId, leaf))),
51
- revision: this.revision,
52
- treeId,
53
- startIndex
54
- });
55
- return response.indices.map((index)=>{
47
+ const indices = await this.instance.findLeafIndices(treeId, this.revision, leaves.map((leaf)=>serializeLeaf(hydrateLeaf(treeId, leaf))), startIndex);
48
+ return indices.map((index)=>{
56
49
  if (typeof index === 'number' || typeof index === 'bigint') {
57
50
  return BigInt(index);
58
51
  } else {
@@ -61,19 +54,11 @@ export class MerkleTreesFacade {
61
54
  });
62
55
  }
63
56
  async getLeafPreimage(treeId, leafIndex) {
64
- const resp = await this.instance.call(WorldStateMessageType.GET_LEAF_PREIMAGE, {
65
- leafIndex,
66
- revision: this.revision,
67
- treeId
68
- });
57
+ const resp = await this.instance.getLeafPreimage(treeId, this.revision, leafIndex);
69
58
  return resp ? deserializeIndexedLeaf(resp) : undefined;
70
59
  }
71
60
  async getLeafValue(treeId, leafIndex) {
72
- const resp = await this.instance.call(WorldStateMessageType.GET_LEAF_VALUE, {
73
- leafIndex,
74
- revision: this.revision,
75
- treeId
76
- });
61
+ const resp = await this.instance.getLeafValue(treeId, this.revision, leafIndex);
77
62
  if (!resp) {
78
63
  return undefined;
79
64
  }
@@ -85,93 +70,56 @@ export class MerkleTreesFacade {
85
70
  }
86
71
  }
87
72
  async getPreviousValueIndex(treeId, value) {
88
- const resp = await this.instance.call(WorldStateMessageType.FIND_LOW_LEAF, {
89
- key: new Fr(value),
90
- revision: this.revision,
91
- treeId
92
- });
73
+ const resp = await this.instance.findLowLeaf(treeId, this.revision, new Fr(value));
93
74
  return {
94
75
  alreadyPresent: resp.alreadyPresent,
95
76
  index: BigInt(resp.index)
96
77
  };
97
78
  }
98
79
  async getSiblingPath(treeId, leafIndex) {
99
- const siblingPath = await this.instance.call(WorldStateMessageType.GET_SIBLING_PATH, {
100
- leafIndex,
101
- revision: this.revision,
102
- treeId
103
- });
80
+ const siblingPath = await this.instance.getSiblingPath(treeId, this.revision, leafIndex);
104
81
  return new SiblingPath(siblingPath.length, siblingPath);
105
82
  }
106
83
  async getStateReference() {
107
- const resp = await this.instance.call(WorldStateMessageType.GET_STATE_REFERENCE, {
108
- revision: this.revision
109
- });
110
- return new StateReference(treeStateReferenceToSnapshot(resp.state[MerkleTreeId.L1_TO_L2_MESSAGE_TREE]), new PartialStateReference(treeStateReferenceToSnapshot(resp.state[MerkleTreeId.NOTE_HASH_TREE]), treeStateReferenceToSnapshot(resp.state[MerkleTreeId.NULLIFIER_TREE]), treeStateReferenceToSnapshot(resp.state[MerkleTreeId.PUBLIC_DATA_TREE])));
84
+ const state = await this.instance.getStateReference(this.revision);
85
+ return new StateReference(treeStateReferenceToSnapshot(state[MerkleTreeId.L1_TO_L2_MESSAGE_TREE]), new PartialStateReference(treeStateReferenceToSnapshot(state[MerkleTreeId.NOTE_HASH_TREE]), treeStateReferenceToSnapshot(state[MerkleTreeId.NULLIFIER_TREE]), treeStateReferenceToSnapshot(state[MerkleTreeId.PUBLIC_DATA_TREE])));
111
86
  }
112
87
  async getInitialStateReference() {
113
- const resp = await this.instance.call(WorldStateMessageType.GET_INITIAL_STATE_REFERENCE, {
114
- canonical: true
115
- });
116
- return new StateReference(treeStateReferenceToSnapshot(resp.state[MerkleTreeId.L1_TO_L2_MESSAGE_TREE]), new PartialStateReference(treeStateReferenceToSnapshot(resp.state[MerkleTreeId.NOTE_HASH_TREE]), treeStateReferenceToSnapshot(resp.state[MerkleTreeId.NULLIFIER_TREE]), treeStateReferenceToSnapshot(resp.state[MerkleTreeId.PUBLIC_DATA_TREE])));
88
+ const state = await this.instance.getInitialStateReference();
89
+ return new StateReference(treeStateReferenceToSnapshot(state[MerkleTreeId.L1_TO_L2_MESSAGE_TREE]), new PartialStateReference(treeStateReferenceToSnapshot(state[MerkleTreeId.NOTE_HASH_TREE]), treeStateReferenceToSnapshot(state[MerkleTreeId.NULLIFIER_TREE]), treeStateReferenceToSnapshot(state[MerkleTreeId.PUBLIC_DATA_TREE])));
117
90
  }
118
91
  async getTreeInfo(treeId) {
119
- const resp = await this.instance.call(WorldStateMessageType.GET_TREE_INFO, {
120
- treeId: treeId,
121
- revision: this.revision
122
- });
123
- return {
124
- depth: resp.depth,
125
- root: resp.root,
126
- size: BigInt(resp.size),
127
- treeId
128
- };
92
+ return await this.instance.getTreeInfo(treeId, this.revision);
129
93
  }
130
94
  async getBlockNumbersForLeafIndices(treeId, leafIndices) {
131
- const response = await this.instance.call(WorldStateMessageType.GET_BLOCK_NUMBERS_FOR_LEAF_INDICES, {
132
- treeId,
133
- revision: this.revision,
134
- leafIndices
135
- });
136
- return response.blockNumbers.map((x)=>x === undefined || x === null ? undefined : BlockNumber(Number(x)));
95
+ const blockNumbers = await this.instance.getBlockNumbersForLeafIndices(treeId, this.revision, leafIndices);
96
+ return blockNumbers.map((x)=>x === undefined || x === null ? undefined : BlockNumber(Number(x)));
137
97
  }
138
98
  }
139
99
  _computedKey = Symbol.asyncDispose;
140
100
  export class MerkleTreesForkFacade extends MerkleTreesFacade {
141
101
  opts;
142
102
  log;
103
+ closePromise;
143
104
  constructor(instance, initialHeader, revision, opts){
144
105
  assert.notEqual(revision.forkId, 0, 'Fork ID must be set');
145
106
  assert.equal(revision.includeUncommitted, true, 'Fork must include uncommitted data');
146
107
  super(instance, initialHeader, revision), this.opts = opts, this.log = createLogger('world-state:merkle-trees-fork-facade');
147
108
  }
148
109
  async updateArchive(header) {
149
- await this.instance.call(WorldStateMessageType.UPDATE_ARCHIVE, {
150
- forkId: this.revision.forkId,
151
- blockHeaderHash: (await header.hash()).toBuffer(),
152
- blockStateRef: blockStateReference(header.state)
153
- });
110
+ await this.instance.updateArchive(this.revision.forkId, blockStateReference(header.state), (await header.hash()).toBuffer());
154
111
  }
155
112
  async appendLeaves(treeId, leaves) {
156
- await this.instance.call(WorldStateMessageType.APPEND_LEAVES, {
157
- leaves: leaves.map((leaf)=>serializeLeaf(hydrateLeaf(treeId, leaf))),
158
- forkId: this.revision.forkId,
159
- treeId
160
- });
113
+ await this.instance.appendLeaves(treeId, this.revision.forkId, leaves.map((leaf)=>serializeLeaf(hydrateLeaf(treeId, leaf))));
161
114
  }
162
115
  async batchInsert(treeId, rawLeaves, subtreeHeight) {
163
116
  const leaves = rawLeaves.map((leaf)=>hydrateLeaf(treeId, leaf)).map(serializeLeaf);
164
- const resp = await this.instance.call(WorldStateMessageType.BATCH_INSERT, {
165
- leaves,
166
- treeId,
167
- forkId: this.revision.forkId,
168
- subtreeDepth: subtreeHeight
169
- });
117
+ const resp = await this.instance.batchInsert(treeId, this.revision.forkId, leaves, subtreeHeight);
170
118
  return {
171
- newSubtreeSiblingPath: new SiblingPath(resp.subtree_path.length, resp.subtree_path),
172
- sortedNewLeaves: resp.sorted_leaves.map(([leaf])=>leaf).map(deserializeLeafValue).map(serializeToBuffer),
173
- sortedNewLeavesIndexes: resp.sorted_leaves.map(([, index])=>index),
174
- lowLeavesWitnessData: resp.low_leaf_witness_data.map((data)=>({
119
+ newSubtreeSiblingPath: new SiblingPath(resp.subtreePath.length, resp.subtreePath),
120
+ sortedNewLeaves: resp.sortedLeaves.map(([leaf])=>leaf).map(deserializeLeafValue).map(serializeToBuffer),
121
+ sortedNewLeavesIndexes: resp.sortedLeaves.map(([, index])=>index),
122
+ lowLeavesWitnessData: resp.lowLeafWitnessData.map((data)=>({
175
123
  index: BigInt(data.index),
176
124
  leafPreimage: deserializeIndexedLeaf(data.leaf),
177
125
  siblingPath: new SiblingPath(data.path.length, data.path)
@@ -180,34 +128,42 @@ export class MerkleTreesForkFacade extends MerkleTreesFacade {
180
128
  }
181
129
  async sequentialInsert(treeId, rawLeaves) {
182
130
  const leaves = rawLeaves.map((leaf)=>hydrateLeaf(treeId, leaf)).map(serializeLeaf);
183
- const resp = await this.instance.call(WorldStateMessageType.SEQUENTIAL_INSERT, {
184
- leaves,
185
- treeId,
186
- forkId: this.revision.forkId
187
- });
131
+ const resp = await this.instance.sequentialInsert(treeId, this.revision.forkId, leaves);
188
132
  return {
189
- lowLeavesWitnessData: resp.low_leaf_witness_data.map((data)=>({
133
+ lowLeavesWitnessData: resp.lowLeafWitnessData.map((data)=>({
190
134
  index: BigInt(data.index),
191
135
  leafPreimage: deserializeIndexedLeaf(data.leaf),
192
136
  siblingPath: new SiblingPath(data.path.length, data.path)
193
137
  })),
194
- insertionWitnessData: resp.insertion_witness_data.map((data)=>({
138
+ insertionWitnessData: resp.insertionWitnessData.map((data)=>({
195
139
  index: BigInt(data.index),
196
140
  leafPreimage: deserializeIndexedLeaf(data.leaf),
197
141
  siblingPath: new SiblingPath(data.path.length, data.path)
198
142
  }))
199
143
  };
200
144
  }
201
- async close() {
145
+ close() {
202
146
  assert.notEqual(this.revision.forkId, 0, 'Fork ID must be set');
147
+ // Share the in-flight close promise across duplicate dispose calls so DELETE_FORK is sent at most once.
148
+ if (this.closePromise) {
149
+ return this.closePromise;
150
+ }
151
+ this.closePromise = this.doClose();
152
+ return this.closePromise;
153
+ }
154
+ async doClose() {
203
155
  try {
204
- await this.instance.call(WorldStateMessageType.DELETE_FORK, {
205
- forkId: this.revision.forkId
206
- });
156
+ await this.instance.deleteFork(this.revision.forkId);
207
157
  } catch (err) {
208
158
  // Ignore errors due to native instance being closed during shutdown.
209
159
  // This can happen when validators are still processing block proposals while the node is stopping.
210
- if (err?.message === 'Native instance is closed') {
160
+ if (err?.message === 'Native instance is closed' || err?.message === 'IPC instance is closed') {
161
+ return;
162
+ }
163
+ // Ignore "Fork not found": the native fork was already destroyed by a pending-chain unwind or a
164
+ // historical prune (both call C++ remove_forks_for_block). Fork IDs are monotonic and never reused,
165
+ // so swallowing this on close cannot mask a deletion of a different fork.
166
+ if (err?.message === 'Fork not found') {
211
167
  return;
212
168
  }
213
169
  throw err;
@@ -216,9 +172,6 @@ export class MerkleTreesForkFacade extends MerkleTreesFacade {
216
172
  async [_computedKey]() {
217
173
  if (this.opts.closeDelayMs) {
218
174
  void sleep(this.opts.closeDelayMs).then(()=>this.close()).catch((err)=>{
219
- if (err && 'message' in err && err.message === 'Native instance is closed') {
220
- return; // Ignore errors due to native instance being closed
221
- }
222
175
  this.log.warn('Error closing MerkleTreesForkFacade after delay', {
223
176
  err
224
177
  });
@@ -229,36 +182,23 @@ export class MerkleTreesForkFacade extends MerkleTreesFacade {
229
182
  }
230
183
  async createCheckpoint() {
231
184
  assert.notEqual(this.revision.forkId, 0, 'Fork ID must be set');
232
- const resp = await this.instance.call(WorldStateMessageType.CREATE_CHECKPOINT, {
233
- forkId: this.revision.forkId
234
- });
235
- return resp.depth;
185
+ return await this.instance.createCheckpoint(this.revision.forkId);
236
186
  }
237
187
  async commitCheckpoint() {
238
188
  assert.notEqual(this.revision.forkId, 0, 'Fork ID must be set');
239
- await this.instance.call(WorldStateMessageType.COMMIT_CHECKPOINT, {
240
- forkId: this.revision.forkId
241
- });
189
+ await this.instance.commitCheckpoint(this.revision.forkId);
242
190
  }
243
191
  async revertCheckpoint() {
244
192
  assert.notEqual(this.revision.forkId, 0, 'Fork ID must be set');
245
- await this.instance.call(WorldStateMessageType.REVERT_CHECKPOINT, {
246
- forkId: this.revision.forkId
247
- });
193
+ await this.instance.revertCheckpoint(this.revision.forkId);
248
194
  }
249
195
  async commitAllCheckpointsTo(depth) {
250
196
  assert.notEqual(this.revision.forkId, 0, 'Fork ID must be set');
251
- await this.instance.call(WorldStateMessageType.COMMIT_ALL_CHECKPOINTS, {
252
- forkId: this.revision.forkId,
253
- depth
254
- });
197
+ await this.instance.commitAllCheckpoints(this.revision.forkId, depth);
255
198
  }
256
199
  async revertAllCheckpointsTo(depth) {
257
200
  assert.notEqual(this.revision.forkId, 0, 'Fork ID must be set');
258
- await this.instance.call(WorldStateMessageType.REVERT_ALL_CHECKPOINTS, {
259
- forkId: this.revision.forkId,
260
- depth
261
- });
201
+ await this.instance.revertAllCheckpoints(this.revision.forkId, depth);
262
202
  }
263
203
  }
264
204
  function hydrateLeaf(treeId, leaf) {