@typeberry/lib 0.5.10-6cb1bd5 → 0.5.10-ca4935b
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 +1 -1
- package/packages/core/codec/encoder.d.ts +1 -1
- package/packages/core/codec/encoder.d.ts.map +1 -1
- package/packages/core/codec/encoder.js +3 -2
- package/packages/core/pvm-interface/pvm.d.ts +2 -0
- package/packages/core/pvm-interface/pvm.d.ts.map +1 -1
- package/packages/jam/executor/pvm-executor.d.ts +2 -2
- package/packages/jam/executor/pvm-executor.d.ts.map +1 -1
- package/packages/jam/in-core/externalities/refine.d.ts +14 -4
- package/packages/jam/in-core/externalities/refine.d.ts.map +1 -1
- package/packages/jam/in-core/externalities/refine.js +47 -3
- package/packages/jam/in-core/externalities/refine.test.js +49 -2
- package/packages/jam/in-core/in-core.d.ts.map +1 -1
- package/packages/jam/in-core/in-core.js +3 -5
- package/packages/jam/jam-host-calls/general/fetch.d.ts +159 -98
- package/packages/jam/jam-host-calls/general/fetch.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/general/fetch.js +110 -16
- package/packages/jam/jam-host-calls/general/fetch.test.js +87 -56
- package/packages/jam/transition/accumulate/accumulate.js +2 -2
- package/packages/jam/transition/externalities/accumulate-fetch-externalities.d.ts +19 -0
- package/packages/jam/transition/externalities/accumulate-fetch-externalities.d.ts.map +1 -0
- package/packages/jam/transition/externalities/accumulate-fetch-externalities.js +45 -0
- package/packages/jam/transition/externalities/accumulate-fetch-externalities.test.d.ts +2 -0
- package/packages/jam/transition/externalities/accumulate-fetch-externalities.test.d.ts.map +1 -0
- package/packages/jam/transition/externalities/accumulate-fetch-externalities.test.js +192 -0
- package/packages/jam/transition/externalities/fetch-externalities.d.ts +3 -39
- package/packages/jam/transition/externalities/fetch-externalities.d.ts.map +1 -1
- package/packages/jam/transition/externalities/fetch-externalities.js +2 -88
- package/packages/jam/transition/externalities/index.d.ts +2 -0
- package/packages/jam/transition/externalities/index.d.ts.map +1 -1
- package/packages/jam/transition/externalities/index.js +2 -0
- package/packages/jam/transition/externalities/refine-fetch-externalities.d.ts +23 -0
- package/packages/jam/transition/externalities/refine-fetch-externalities.d.ts.map +1 -0
- package/packages/jam/transition/externalities/refine-fetch-externalities.js +48 -0
- package/packages/jam/transition/externalities/refine-fetch-externalities.test.d.ts +2 -0
- package/packages/jam/transition/externalities/refine-fetch-externalities.test.d.ts.map +1 -0
- package/packages/jam/transition/externalities/refine-fetch-externalities.test.js +32 -0
- package/packages/jam/transition/externalities/fetch-externalities.test.d.ts +0 -2
- package/packages/jam/transition/externalities/fetch-externalities.test.d.ts.map +0 -1
- package/packages/jam/transition/externalities/fetch-externalities.test.js +0 -254
package/package.json
CHANGED
|
@@ -125,7 +125,7 @@ export declare class Encoder {
|
|
|
125
125
|
*/
|
|
126
126
|
i8(num: number): void;
|
|
127
127
|
/**
|
|
128
|
-
* Encode a single boolean discriminator using
|
|
128
|
+
* Encode a single boolean discriminator using 1-byte encoding.
|
|
129
129
|
*
|
|
130
130
|
* https://graypaper.fluffylabs.dev/#/579bd12/375300375300
|
|
131
131
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encoder.d.ts","sourceRoot":"","sources":["../../../../../packages/core/codec/encoder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAY,KAAK,GAAG,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"encoder.d.ts","sourceRoot":"","sources":["../../../../../packages/core/codec/encoder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Bytes, BytesBlob } from "#@typeberry/bytes";
|
|
2
2
|
import { tryAsU32 } from "#@typeberry/numbers";
|
|
3
3
|
import { check } from "#@typeberry/utils";
|
|
4
|
+
import { tryAsU8 } from "../numbers/index.js";
|
|
4
5
|
export function tryAsExactBytes(a) {
|
|
5
6
|
check `${a.isExact} The value is not exact size estimation!`;
|
|
6
7
|
return a.bytes;
|
|
@@ -150,12 +151,12 @@ export class Encoder {
|
|
|
150
151
|
this.offset += 1;
|
|
151
152
|
}
|
|
152
153
|
/**
|
|
153
|
-
* Encode a single boolean discriminator using
|
|
154
|
+
* Encode a single boolean discriminator using 1-byte encoding.
|
|
154
155
|
*
|
|
155
156
|
* https://graypaper.fluffylabs.dev/#/579bd12/375300375300
|
|
156
157
|
*/
|
|
157
158
|
bool(bool) {
|
|
158
|
-
this.
|
|
159
|
+
this.i8(tryAsU8(bool ? 1 : 0));
|
|
159
160
|
}
|
|
160
161
|
/**
|
|
161
162
|
* Prepare for encoding of a fixed-bytes number.
|
|
@@ -12,6 +12,8 @@ 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;
|
|
15
17
|
/** Execute loaded program. */
|
|
16
18
|
runProgram(): void;
|
|
17
19
|
/** 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,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,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"}
|
|
@@ -6,11 +6,11 @@ import type { PartialState } from "#@typeberry/jam-host-calls/externalities/part
|
|
|
6
6
|
import { type RefineExternalities } from "#@typeberry/jam-host-calls/externalities/refine-externalities.js";
|
|
7
7
|
export type RefineHostCallExternalities = {
|
|
8
8
|
refine: RefineExternalities;
|
|
9
|
-
fetchExternalities: general.
|
|
9
|
+
fetchExternalities: general.IRefineFetch;
|
|
10
10
|
};
|
|
11
11
|
export type AccumulateHostCallExternalities = {
|
|
12
12
|
partialState: PartialState;
|
|
13
|
-
fetchExternalities: general.
|
|
13
|
+
fetchExternalities: general.IAccumulateFetch;
|
|
14
14
|
serviceExternalities: general.AccountsInfo & general.AccountsLookup & general.AccountsWrite & general.AccountsRead;
|
|
15
15
|
};
|
|
16
16
|
type OnTransferHostCallExternalities = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pvm-executor.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/executor/pvm-executor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,SAAS,EAAmB,MAAM,kBAAkB,CAAC;AACpF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAc,OAAO,EAAU,MAAM,2BAA2B,CAAC;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0DAA0D,CAAC;AAC7F,OAAO,EAEL,KAAK,mBAAmB,EAEzB,MAAM,iEAAiE,CAAC;AAuCzE,MAAM,MAAM,2BAA2B,GAAG;IACxC,MAAM,EAAE,mBAAmB,CAAC;IAC5B,kBAAkB,EAAE,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"pvm-executor.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/executor/pvm-executor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,SAAS,EAAmB,MAAM,kBAAkB,CAAC;AACpF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAc,OAAO,EAAU,MAAM,2BAA2B,CAAC;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0DAA0D,CAAC;AAC7F,OAAO,EAEL,KAAK,mBAAmB,EAEzB,MAAM,iEAAiE,CAAC;AAuCzE,MAAM,MAAM,2BAA2B,GAAG;IACxC,MAAM,EAAE,mBAAmB,CAAC;IAC5B,kBAAkB,EAAE,OAAO,CAAC,YAAY,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,+BAA+B,GAAG;IAC5C,YAAY,EAAE,YAAY,CAAC;IAC3B,kBAAkB,EAAE,OAAO,CAAC,gBAAgB,CAAC;IAC7C,oBAAoB,EAAE,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;CACpH,CAAC;AAEF,KAAK,+BAA+B,GAAG;IACrC,YAAY,EAAE,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAC3G,kBAAkB,EAAE,OAAO,CAAC,mBAAmB,CAAC;CACjD,CAAC;AAUF;;GAEG;AACH,qBAAa,WAAW;IAKpB,OAAO,CAAC,WAAW;IAEnB,OAAO,CAAC,UAAU;IANpB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAoB;IACxC,OAAO,CAAC,SAAS,CAAY;IAE7B,OAAO;mBAac,cAAc;IAInC,wCAAwC;IACxC,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAerC,8CAA8C;IAC9C,OAAO,CAAC,MAAM,CAAC,0BAA0B;IAuBzC,6CAA6C;IAC7C,OAAO,CAAC,MAAM,CAAC,0BAA0B;IAazC;;;;;;OAMG;IACG,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU;;;;;;;;IAQ1C,qEAAqE;WACxD,oBAAoB,CAC/B,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,SAAS,EACtB,aAAa,EAAE,2BAA2B,EAC1C,GAAG,EAAE,UAAU;IAOjB,yEAAyE;WAC5D,wBAAwB,CACnC,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,SAAS,EACtB,aAAa,EAAE,+BAA+B,EAC9C,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,UAAU;IAQjB,0EAA0E;WAC7D,wBAAwB,CACnC,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,SAAS,EACtB,aAAa,EAAE,+BAA+B,EAC9C,GAAG,EAAE,UAAU;CAMlB"}
|
|
@@ -1,11 +1,12 @@
|
|
|
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";
|
|
3
4
|
import type { Blake2bHash } from "#@typeberry/hash";
|
|
4
5
|
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";
|
|
5
6
|
import type { U64 } from "#@typeberry/numbers";
|
|
6
|
-
import type
|
|
7
|
-
import type
|
|
8
|
-
import type
|
|
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";
|
|
9
10
|
import type { State } from "#@typeberry/state";
|
|
10
11
|
import { type OK, Result } from "#@typeberry/utils";
|
|
11
12
|
/**
|
|
@@ -18,8 +19,15 @@ export type RefineExternalitiesParams = {
|
|
|
18
19
|
lookupState: State;
|
|
19
20
|
/** Export offset -- sum of exports from prior work items in this package. */
|
|
20
21
|
exportOffset: number;
|
|
22
|
+
/**
|
|
23
|
+
* PVM backend to use for creating inner PVM instances.
|
|
24
|
+
* NIT: Could accept PVMInstanceManager
|
|
25
|
+
*/
|
|
26
|
+
pvmBackend: PvmBackend;
|
|
21
27
|
};
|
|
22
28
|
export declare class RefineExternalitiesImpl implements RefineExternalities {
|
|
29
|
+
/** Inner PVM instances sorted by MachineId. */
|
|
30
|
+
private machines;
|
|
23
31
|
/** Service being refined (used as default for historicalLookup). */
|
|
24
32
|
private readonly currentServiceId;
|
|
25
33
|
/** State at the lookup anchor for preimage lookups. */
|
|
@@ -28,6 +36,8 @@ export declare class RefineExternalitiesImpl implements RefineExternalities {
|
|
|
28
36
|
private readonly exportedSegments;
|
|
29
37
|
/** Offset for segment indexing (sum of exports from prior items). */
|
|
30
38
|
private readonly exportOffset;
|
|
39
|
+
/** PVM backend for creating inner machines. */
|
|
40
|
+
private readonly pvmBackend;
|
|
31
41
|
static create(params: RefineExternalitiesParams): RefineExternalitiesImpl;
|
|
32
42
|
private constructor();
|
|
33
43
|
getExportedSegments(): readonly Segment[];
|
|
@@ -37,7 +47,7 @@ export declare class RefineExternalitiesImpl implements RefineExternalities {
|
|
|
37
47
|
machineZeroPages(_machineIndex: MachineId, _pageStart: U64, _pageCount: U64): Promise<Result<OK, ZeroVoidError>>;
|
|
38
48
|
machinePeekFrom(_machineIndex: MachineId, _destinationStart: U64, _sourceStart: U64, _length: U64, _destination: HostCallMemory): Promise<Result<OK, PeekPokeError>>;
|
|
39
49
|
machinePokeInto(_machineIndex: MachineId, _sourceStart: U64, _destinationStart: U64, _length: U64, _source: HostCallMemory): Promise<Result<OK, PeekPokeError>>;
|
|
40
|
-
machineInit(
|
|
50
|
+
machineInit(code: BytesBlob, programCounter: ProgramCounter): Promise<Result<MachineId, ProgramDecoderError>>;
|
|
41
51
|
machineInvoke(_machineIndex: MachineId, _gas: BigGas, _registers: HostCallRegisters): Promise<Result<MachineResult, NoMachineError>>;
|
|
42
52
|
exportSegment(segment: Segment): Result<SegmentIndex, SegmentExportError>;
|
|
43
53
|
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":"AAAA,OAAO,EAEL,KAAK,OAAO,EACZ,KAAK,YAAY,EACjB,KAAK,SAAS,EAEf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"refine.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/in-core/externalities/refine.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,23 @@
|
|
|
1
1
|
import { MAX_NUMBER_OF_EXPORTS_WP, tryAsSegmentIndex, } from "#@typeberry/block";
|
|
2
|
-
import {
|
|
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";
|
|
3
8
|
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
|
+
};
|
|
4
18
|
export class RefineExternalitiesImpl {
|
|
19
|
+
/** Inner PVM instances sorted by MachineId. */
|
|
20
|
+
machines = SortedArray.fromSortedArray(machineComparator);
|
|
5
21
|
/** Service being refined (used as default for historicalLookup). */
|
|
6
22
|
currentServiceId;
|
|
7
23
|
/** State at the lookup anchor for preimage lookups. */
|
|
@@ -10,6 +26,8 @@ export class RefineExternalitiesImpl {
|
|
|
10
26
|
exportedSegments = [];
|
|
11
27
|
/** Offset for segment indexing (sum of exports from prior items). */
|
|
12
28
|
exportOffset;
|
|
29
|
+
/** PVM backend for creating inner machines. */
|
|
30
|
+
pvmBackend;
|
|
13
31
|
static create(params) {
|
|
14
32
|
return new RefineExternalitiesImpl(params);
|
|
15
33
|
}
|
|
@@ -17,6 +35,7 @@ export class RefineExternalitiesImpl {
|
|
|
17
35
|
this.currentServiceId = params.currentServiceId;
|
|
18
36
|
this.lookupState = params.lookupState;
|
|
19
37
|
this.exportOffset = params.exportOffset;
|
|
38
|
+
this.pvmBackend = params.pvmBackend;
|
|
20
39
|
}
|
|
21
40
|
getExportedSegments() {
|
|
22
41
|
return this.exportedSegments;
|
|
@@ -39,8 +58,33 @@ export class RefineExternalitiesImpl {
|
|
|
39
58
|
machinePokeInto(_machineIndex, _sourceStart, _destinationStart, _length, _source) {
|
|
40
59
|
throw new Error("Method not implemented.");
|
|
41
60
|
}
|
|
42
|
-
machineInit(
|
|
43
|
-
|
|
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);
|
|
44
88
|
}
|
|
45
89
|
machineInvoke(_machineIndex, _gas, _registers) {
|
|
46
90
|
throw new Error("Method not implemented.");
|
|
@@ -3,12 +3,13 @@ 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 { tinyChainSpec } from "#@typeberry/config";
|
|
6
|
+
import { PvmBackend, tinyChainSpec } from "#@typeberry/config";
|
|
7
7
|
import { HASH_SIZE } from "#@typeberry/hash";
|
|
8
|
-
import { SegmentExportError } from "#@typeberry/jam-host-calls";
|
|
8
|
+
import { SegmentExportError, tryAsMachineId, tryAsProgramCounter } 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]);
|
|
12
13
|
function createSegment(byte = 0xab) {
|
|
13
14
|
return Bytes.fill(SEGMENT_BYTES, byte);
|
|
14
15
|
}
|
|
@@ -59,6 +60,7 @@ function createExt(overrides = {}) {
|
|
|
59
60
|
currentServiceId: tryAsServiceId(42),
|
|
60
61
|
lookupState: overrides.lookupState ?? defaultState,
|
|
61
62
|
exportOffset: overrides.exportOffset ?? 0,
|
|
63
|
+
pvmBackend: PvmBackend.BuiltIn,
|
|
62
64
|
...overrides,
|
|
63
65
|
});
|
|
64
66
|
}
|
|
@@ -160,4 +162,49 @@ describe("RefineExternalitiesImpl", () => {
|
|
|
160
162
|
assert.deepStrictEqual(exported[0].raw.subarray(0, 5), new Uint8Array([1, 2, 3, 4, 5]));
|
|
161
163
|
});
|
|
162
164
|
});
|
|
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
|
+
});
|
|
163
210
|
});
|
|
@@ -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;
|
|
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"}
|
|
@@ -10,7 +10,7 @@ import { PvmExecutor, ReturnStatus } from "#@typeberry/executor";
|
|
|
10
10
|
import { HASH_SIZE } from "#@typeberry/hash";
|
|
11
11
|
import { Logger } from "#@typeberry/logger";
|
|
12
12
|
import { tryAsU8, tryAsU16, tryAsU32 } from "#@typeberry/numbers";
|
|
13
|
-
import {
|
|
13
|
+
import { RefineFetchExternalities } from "#@typeberry/transition/externalities/refine-fetch-externalities.js";
|
|
14
14
|
import { assertEmpty, assertNever, Result } from "#@typeberry/utils";
|
|
15
15
|
import { RefineExternalitiesImpl } from "./externalities/refine.js";
|
|
16
16
|
export var RefineError;
|
|
@@ -286,14 +286,12 @@ export class InCore {
|
|
|
286
286
|
}
|
|
287
287
|
createRefineExternalities(args) {
|
|
288
288
|
// TODO [ToDr] Pass all required fetch data
|
|
289
|
-
const fetchExternalities =
|
|
290
|
-
entropy: undefined,
|
|
291
|
-
...args,
|
|
292
|
-
}, this.chainSpec);
|
|
289
|
+
const fetchExternalities = new RefineFetchExternalities(this.chainSpec);
|
|
293
290
|
const refine = RefineExternalitiesImpl.create({
|
|
294
291
|
currentServiceId: args.currentServiceId,
|
|
295
292
|
lookupState: args.lookupState,
|
|
296
293
|
exportOffset: args.exportOffset,
|
|
294
|
+
pvmBackend: this.pvmBackend,
|
|
297
295
|
});
|
|
298
296
|
return {
|
|
299
297
|
fetchExternalities,
|