@typeberry/lib 0.5.10-9567cee → 0.5.10-cf84e93

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typeberry/lib",
3
- "version": "0.5.10-9567cee",
3
+ "version": "0.5.10-cf84e93",
4
4
  "description": "Typeberry Library",
5
5
  "main": "./bin/lib/index.js",
6
6
  "types": "./bin/lib/index.d.ts",
@@ -12,8 +12,6 @@ export interface IPvmInterpreter {
12
12
  readonly memory: IMemory;
13
13
  /** Prepare SPI program to be executed. */
14
14
  resetJam(program: Uint8Array, args: Uint8Array, pc: number, gas: Gas): void;
15
- /** Prepare a generic (non-SPI) program to be executed. */
16
- resetGeneric(rawProgram: Uint8Array, pc: number, gas: Gas): void;
17
15
  /** Execute loaded program. */
18
16
  runProgram(): void;
19
17
  /** Get current Status. */
@@ -1 +1 @@
1
- {"version":3,"file":"pvm.d.ts","sourceRoot":"","sources":["../../../../../packages/core/pvm-interface/pvm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,WAAW,eAAe;IAC9B,sBAAsB;IACtB,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC;IAE1B,4BAA4B;IAC5B,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;IAE/B,yBAAyB;IACzB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAEzB,0CAA0C;IAC1C,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,CAAC;IAE5E,0DAA0D;IAC1D,YAAY,CAAC,UAAU,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,CAAC;IAEjE,8BAA8B;IAC9B,UAAU,IAAI,IAAI,CAAC;IAEnB,0BAA0B;IAC1B,SAAS,IAAI,MAAM,CAAC;IAEpB,mCAAmC;IACnC,KAAK,IAAI,MAAM,CAAC;IAEhB,sDAAsD;IACtD,YAAY,IAAI,GAAG,GAAG,IAAI,CAAC;CAC5B"}
1
+ {"version":3,"file":"pvm.d.ts","sourceRoot":"","sources":["../../../../../packages/core/pvm-interface/pvm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,WAAW,eAAe;IAC9B,sBAAsB;IACtB,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC;IAE1B,4BAA4B;IAC5B,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;IAE/B,yBAAyB;IACzB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAEzB,0CAA0C;IAC1C,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,CAAC;IAE5E,8BAA8B;IAC9B,UAAU,IAAI,IAAI,CAAC;IAEnB,0BAA0B;IAC1B,SAAS,IAAI,MAAM,CAAC;IAEpB,mCAAmC;IACnC,KAAK,IAAI,MAAM,CAAC;IAEhB,sDAAsD;IACtD,YAAY,IAAI,GAAG,GAAG,IAAI,CAAC;CAC5B"}
@@ -1,12 +1,11 @@
1
1
  import { type Segment, type SegmentIndex, type ServiceId } from "#@typeberry/block";
2
2
  import type { BytesBlob } from "#@typeberry/bytes";
3
- import type { PvmBackend } from "#@typeberry/config";
4
3
  import type { Blake2bHash } from "#@typeberry/hash";
5
4
  import { type MachineId, type MachineResult, type MemoryOperation, type NoMachineError, type PagesError, type PeekPokeError, type ProgramCounter, type RefineExternalities, SegmentExportError, type ZeroVoidError } from "#@typeberry/jam-host-calls";
6
5
  import type { U64 } from "#@typeberry/numbers";
7
- import { type HostCallMemory, type HostCallRegisters } from "#@typeberry/pvm-host-calls";
8
- import { type BigGas } from "#@typeberry/pvm-interface";
9
- import { type ProgramDecoderError } from "#@typeberry/pvm-interpreter";
6
+ import type { HostCallMemory, HostCallRegisters } from "#@typeberry/pvm-host-calls";
7
+ import type { BigGas } from "#@typeberry/pvm-interface";
8
+ import type { ProgramDecoderError } from "#@typeberry/pvm-interpreter";
10
9
  import type { State } from "#@typeberry/state";
11
10
  import { type OK, Result } from "#@typeberry/utils";
12
11
  /**
@@ -19,15 +18,8 @@ export type RefineExternalitiesParams = {
19
18
  lookupState: State;
20
19
  /** Export offset -- sum of exports from prior work items in this package. */
21
20
  exportOffset: number;
22
- /**
23
- * PVM backend to use for creating inner PVM instances.
24
- * NIT: Could accept PVMInstanceManager
25
- */
26
- pvmBackend: PvmBackend;
27
21
  };
28
22
  export declare class RefineExternalitiesImpl implements RefineExternalities {
29
- /** Inner PVM instances sorted by MachineId. */
30
- private machines;
31
23
  /** Service being refined (used as default for historicalLookup). */
32
24
  private readonly currentServiceId;
33
25
  /** State at the lookup anchor for preimage lookups. */
@@ -36,8 +28,6 @@ export declare class RefineExternalitiesImpl implements RefineExternalities {
36
28
  private readonly exportedSegments;
37
29
  /** Offset for segment indexing (sum of exports from prior items). */
38
30
  private readonly exportOffset;
39
- /** PVM backend for creating inner machines. */
40
- private readonly pvmBackend;
41
31
  static create(params: RefineExternalitiesParams): RefineExternalitiesImpl;
42
32
  private constructor();
43
33
  getExportedSegments(): readonly Segment[];
@@ -47,7 +37,7 @@ export declare class RefineExternalitiesImpl implements RefineExternalities {
47
37
  machineZeroPages(_machineIndex: MachineId, _pageStart: U64, _pageCount: U64): Promise<Result<OK, ZeroVoidError>>;
48
38
  machinePeekFrom(_machineIndex: MachineId, _destinationStart: U64, _sourceStart: U64, _length: U64, _destination: HostCallMemory): Promise<Result<OK, PeekPokeError>>;
49
39
  machinePokeInto(_machineIndex: MachineId, _sourceStart: U64, _destinationStart: U64, _length: U64, _source: HostCallMemory): Promise<Result<OK, PeekPokeError>>;
50
- machineInit(code: BytesBlob, programCounter: ProgramCounter): Promise<Result<MachineId, ProgramDecoderError>>;
40
+ machineInit(_code: BytesBlob, _programCounter: ProgramCounter): Promise<Result<MachineId, ProgramDecoderError>>;
51
41
  machineInvoke(_machineIndex: MachineId, _gas: BigGas, _registers: HostCallRegisters): Promise<Result<MachineResult, NoMachineError>>;
52
42
  exportSegment(segment: Segment): Result<SegmentIndex, SegmentExportError>;
53
43
  historicalLookup(serviceId: ServiceId | null, hash: Blake2bHash): Promise<BytesBlob | null>;
@@ -1 +1 @@
1
- {"version":3,"file":"refine.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/in-core/externalities/refine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"refine.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/in-core/externalities/refine.ts"],"names":[],"mappings":"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"}
@@ -1,23 +1,7 @@
1
1
  import { MAX_NUMBER_OF_EXPORTS_WP, tryAsSegmentIndex, } from "#@typeberry/block";
2
- import { SortedArray } from "#@typeberry/collections";
3
- import { SegmentExportError, tryAsMachineId, } from "#@typeberry/jam-host-calls";
4
- import { Ordering } from "#@typeberry/ordering";
5
- import { PvmInstanceManager } from "#@typeberry/pvm-host-calls";
6
- import { tryAsGas } from "#@typeberry/pvm-interface";
7
- import { ProgramDecoder } from "#@typeberry/pvm-interpreter";
2
+ import { SegmentExportError, } from "#@typeberry/jam-host-calls";
8
3
  import { Result } from "#@typeberry/utils";
9
- const machineComparator = (a, b) => {
10
- if (a[0] < b[0]) {
11
- return Ordering.Less;
12
- }
13
- if (a[0] > b[0]) {
14
- return Ordering.Greater;
15
- }
16
- return Ordering.Equal;
17
- };
18
4
  export class RefineExternalitiesImpl {
19
- /** Inner PVM instances sorted by MachineId. */
20
- machines = SortedArray.fromSortedArray(machineComparator);
21
5
  /** Service being refined (used as default for historicalLookup). */
22
6
  currentServiceId;
23
7
  /** State at the lookup anchor for preimage lookups. */
@@ -26,8 +10,6 @@ export class RefineExternalitiesImpl {
26
10
  exportedSegments = [];
27
11
  /** Offset for segment indexing (sum of exports from prior items). */
28
12
  exportOffset;
29
- /** PVM backend for creating inner machines. */
30
- pvmBackend;
31
13
  static create(params) {
32
14
  return new RefineExternalitiesImpl(params);
33
15
  }
@@ -35,7 +17,6 @@ export class RefineExternalitiesImpl {
35
17
  this.currentServiceId = params.currentServiceId;
36
18
  this.lookupState = params.lookupState;
37
19
  this.exportOffset = params.exportOffset;
38
- this.pvmBackend = params.pvmBackend;
39
20
  }
40
21
  getExportedSegments() {
41
22
  return this.exportedSegments;
@@ -58,33 +39,8 @@ export class RefineExternalitiesImpl {
58
39
  machinePokeInto(_machineIndex, _sourceStart, _destinationStart, _length, _source) {
59
40
  throw new Error("Method not implemented.");
60
41
  }
61
- async machineInit(code, programCounter) {
62
- // https://graypaper.fluffylabs.dev/#/ab2cdbd/346400346400?v=0.7.2
63
- const deblobResult = ProgramDecoder.deblob(code.raw);
64
- if (deblobResult.isError) {
65
- return Result.error(deblobResult.error, deblobResult.details);
66
- }
67
- const manager = await PvmInstanceManager.new(this.pvmBackend);
68
- const innerPvm = await manager.getInstance();
69
- innerPvm.resetGeneric(code.raw, Number(programCounter), tryAsGas(0));
70
- // https://graypaper.fluffylabs.dev/#/ab2cdbd/348c00348c00?v=0.7.2
71
- // Binary search for the minimal free MachineId
72
- const arr = this.machines.array;
73
- let low = 0;
74
- let high = arr.length;
75
- while (low < high) {
76
- const mid = (low + high) >> 1;
77
- if (arr[mid][0] > BigInt(mid)) {
78
- high = mid;
79
- }
80
- else {
81
- low = mid + 1;
82
- }
83
- }
84
- const machineId = tryAsMachineId(low);
85
- // https://graypaper.fluffylabs.dev/#/ab2cdbd/340501340b01?v=0.7.2
86
- this.machines.insert([machineId, innerPvm]);
87
- return Result.ok(machineId);
42
+ machineInit(_code, _programCounter) {
43
+ throw new Error("Method not implemented.");
88
44
  }
89
45
  machineInvoke(_machineIndex, _gas, _registers) {
90
46
  throw new Error("Method not implemented.");
@@ -3,13 +3,12 @@ import { describe, it } from "node:test";
3
3
  import { MAX_NUMBER_OF_EXPORTS_WP, SEGMENT_BYTES, tryAsServiceGas, tryAsServiceId, tryAsTimeSlot, } from "#@typeberry/block";
4
4
  import { Bytes, BytesBlob } from "#@typeberry/bytes";
5
5
  import { HashDictionary } from "#@typeberry/collections";
6
- import { PvmBackend, tinyChainSpec } from "#@typeberry/config";
6
+ import { tinyChainSpec } from "#@typeberry/config";
7
7
  import { HASH_SIZE } from "#@typeberry/hash";
8
- import { SegmentExportError, tryAsMachineId, tryAsProgramCounter } from "#@typeberry/jam-host-calls";
8
+ import { SegmentExportError } from "#@typeberry/jam-host-calls";
9
9
  import { tryAsU32, tryAsU64 } from "#@typeberry/numbers";
10
10
  import { InMemoryService, InMemoryState, PreimageItem, ServiceAccountInfo } from "#@typeberry/state";
11
11
  import { RefineExternalitiesImpl } from "./refine.js";
12
- const MINIMAL_PROGRAM = new Uint8Array([0, 1, 1, 0, 0x00]);
13
12
  function createSegment(byte = 0xab) {
14
13
  return Bytes.fill(SEGMENT_BYTES, byte);
15
14
  }
@@ -60,7 +59,6 @@ function createExt(overrides = {}) {
60
59
  currentServiceId: tryAsServiceId(42),
61
60
  lookupState: overrides.lookupState ?? defaultState,
62
61
  exportOffset: overrides.exportOffset ?? 0,
63
- pvmBackend: PvmBackend.BuiltIn,
64
62
  ...overrides,
65
63
  });
66
64
  }
@@ -162,49 +160,4 @@ describe("RefineExternalitiesImpl", () => {
162
160
  assert.deepStrictEqual(exported[0].raw.subarray(0, 5), new Uint8Array([1, 2, 3, 4, 5]));
163
161
  });
164
162
  });
165
- describe("machineInit", () => {
166
- it("should create a new inner PVM and return a machine ID", async () => {
167
- const ext = createExt();
168
- const code = BytesBlob.blobFrom(MINIMAL_PROGRAM);
169
- const pc = tryAsProgramCounter(0);
170
- const result = await ext.machineInit(code, pc);
171
- assert.strictEqual(result.isOk, true);
172
- assert.strictEqual(result.ok, tryAsMachineId(0));
173
- });
174
- it("should assign sequential machine IDs", async () => {
175
- const ext = createExt();
176
- const code = BytesBlob.blobFrom(MINIMAL_PROGRAM);
177
- const pc = tryAsProgramCounter(0);
178
- const r1 = await ext.machineInit(code, pc);
179
- const r2 = await ext.machineInit(code, pc);
180
- const r3 = await ext.machineInit(code, pc);
181
- assert.strictEqual(r1.isOk, true);
182
- assert.strictEqual(r1.ok, tryAsMachineId(0));
183
- assert.strictEqual(r2.isOk, true);
184
- assert.strictEqual(r2.ok, tryAsMachineId(1));
185
- assert.strictEqual(r3.isOk, true);
186
- assert.strictEqual(r3.ok, tryAsMachineId(2));
187
- });
188
- it("should return error for invalid program blob", async () => {
189
- const ext = createExt();
190
- const invalidCode = BytesBlob.blobFrom(new Uint8Array([0xff, 0xff, 0xff]));
191
- const pc = tryAsProgramCounter(0);
192
- const result = await ext.machineInit(invalidCode, pc);
193
- assert.strictEqual(result.isError, true);
194
- });
195
- it("should return error for empty program blob", async () => {
196
- const ext = createExt();
197
- const emptyCode = BytesBlob.blobFrom(new Uint8Array([]));
198
- const pc = tryAsProgramCounter(0);
199
- const result = await ext.machineInit(emptyCode, pc);
200
- assert.strictEqual(result.isError, true);
201
- });
202
- it("should accept a non-zero program counter", async () => {
203
- const ext = createExt();
204
- const code = BytesBlob.blobFrom(MINIMAL_PROGRAM);
205
- const pc = tryAsProgramCounter(1);
206
- const result = await ext.machineInit(code, pc);
207
- assert.strictEqual(result.isOk, true);
208
- });
209
- });
210
163
  });
@@ -1 +1 @@
1
- {"version":3,"file":"in-core.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/in-core/in-core.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,OAAO,EACZ,KAAK,YAAY,EACjB,KAAK,UAAU,EAIhB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAGL,KAAK,eAAe,EAErB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAY,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACjF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAmB,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAsC,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAGjH,OAAO,EAA+B,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC1F,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAA+D,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACpH,OAAO,EAAE,KAAK,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAKzE,OAAO,EAA4B,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAGpE,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,SAAS,OAAO,EAAE,CAAC;CAC7B,CAAC;AAEF,oBAAY,WAAW;IACrB,8EAA8E;IAC9E,YAAY,IAAI;IAChB,qFAAqF;IACrF,iBAAiB,IAAI;IACrB,wEAAwE;IACxE,uBAAuB,IAAI;IAC3B,2BAA2B;IAC3B,kBAAkB,IAAI;CACvB;AAqBD,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC;AAErE,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,YAAY,CAAC;IACpB,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AAgBF,qBAAa,MAAM;aAEC,SAAS,EAAE,SAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAHR,SAAS,EAAE,SAAS,EACnB,MAAM,EAAE,QAAQ,EAChB,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,OAAO;IAGnC;;;;;;;;;OASG;IACG,MAAM,CACV,kBAAkB,EAAE,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,EAC1D,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,WAAW,CAAC,eAAe,EAAE,CAAC,EACvC,UAAU,EAAE,WAAW,CAAC,iBAAiB,EAAE,CAAC,GAC3C,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IAgF7C,OAAO,CAAC,oBAAoB;YAuDd,gBAAgB;YAkBhB,UAAU;IAoGxB,iBAAiB,CAAC,UAAU,EAAE,WAAW,CAAC,UAAU,CAAC;IAiBrD,OAAO,CAAC,cAAc;IAyCtB,OAAO,CAAC,yBAAyB;CAsBlC"}
1
+ {"version":3,"file":"in-core.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/in-core/in-core.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,OAAO,EACZ,KAAK,YAAY,EACjB,KAAK,UAAU,EAIhB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAGL,KAAK,eAAe,EAErB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAY,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACjF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAmB,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAsC,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAGjH,OAAO,EAA+B,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC1F,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAA+D,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACpH,OAAO,EAAE,KAAK,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAKzE,OAAO,EAA4B,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAGpE,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,SAAS,OAAO,EAAE,CAAC;CAC7B,CAAC;AAEF,oBAAY,WAAW;IACrB,8EAA8E;IAC9E,YAAY,IAAI;IAChB,qFAAqF;IACrF,iBAAiB,IAAI;IACrB,wEAAwE;IACxE,uBAAuB,IAAI;IAC3B,2BAA2B;IAC3B,kBAAkB,IAAI;CACvB;AAqBD,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC;AAErE,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,YAAY,CAAC;IACpB,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AAgBF,qBAAa,MAAM;aAEC,SAAS,EAAE,SAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAHR,SAAS,EAAE,SAAS,EACnB,MAAM,EAAE,QAAQ,EAChB,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,OAAO;IAGnC;;;;;;;;;OASG;IACG,MAAM,CACV,kBAAkB,EAAE,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,EAC1D,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,WAAW,CAAC,eAAe,EAAE,CAAC,EACvC,UAAU,EAAE,WAAW,CAAC,iBAAiB,EAAE,CAAC,GAC3C,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IAgF7C,OAAO,CAAC,oBAAoB;YAuDd,gBAAgB;YAkBhB,UAAU;IAoGxB,iBAAiB,CAAC,UAAU,EAAE,WAAW,CAAC,UAAU,CAAC;IAiBrD,OAAO,CAAC,cAAc;IAyCtB,OAAO,CAAC,yBAAyB;CAqBlC"}
@@ -291,7 +291,6 @@ export class InCore {
291
291
  currentServiceId: args.currentServiceId,
292
292
  lookupState: args.lookupState,
293
293
  exportOffset: args.exportOffset,
294
- pvmBackend: this.pvmBackend,
295
294
  });
296
295
  return {
297
296
  fetchExternalities,