@typeberry/lib 0.5.10-ca4935b → 0.5.10-ec38e0b

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 (50) hide show
  1. package/package.json +1 -1
  2. package/packages/jam/block/work-package.d.ts +7 -7
  3. package/packages/jam/block/work-package.d.ts.map +1 -1
  4. package/packages/jam/block/work-package.js +12 -12
  5. package/packages/jam/executor/pvm-executor.d.ts +7 -0
  6. package/packages/jam/executor/pvm-executor.d.ts.map +1 -1
  7. package/packages/jam/executor/pvm-executor.js +15 -0
  8. package/packages/jam/in-core/externalities/refine.d.ts +2 -2
  9. package/packages/jam/in-core/externalities/refine.d.ts.map +1 -1
  10. package/packages/jam/in-core/externalities/refine.js +10 -3
  11. package/packages/jam/in-core/externalities/refine.test.js +53 -0
  12. package/packages/jam/in-core/in-core.d.ts +7 -22
  13. package/packages/jam/in-core/in-core.d.ts.map +1 -1
  14. package/packages/jam/in-core/in-core.js +16 -184
  15. package/packages/jam/in-core/in-core.test.js +47 -15
  16. package/packages/jam/in-core/is-authorized.d.ts +33 -0
  17. package/packages/jam/in-core/is-authorized.d.ts.map +1 -0
  18. package/packages/jam/in-core/is-authorized.js +72 -0
  19. package/packages/jam/in-core/is-authorized.test.d.ts +2 -0
  20. package/packages/jam/in-core/is-authorized.test.d.ts.map +1 -0
  21. package/packages/jam/in-core/is-authorized.test.js +125 -0
  22. package/packages/jam/in-core/refine.d.ts +34 -0
  23. package/packages/jam/in-core/refine.d.ts.map +1 -0
  24. package/packages/jam/in-core/refine.js +176 -0
  25. package/packages/jam/in-core/refine.test.d.ts +2 -0
  26. package/packages/jam/in-core/refine.test.d.ts.map +1 -0
  27. package/packages/jam/in-core/refine.test.js +6 -0
  28. package/packages/jam/jam-host-calls/accumulate/bless.js +9 -9
  29. package/packages/jam/jam-host-calls/externalities/partial-state.d.ts +1 -1
  30. package/packages/jam/jam-host-calls/externalities/refine-externalities.d.ts +1 -1
  31. package/packages/jam/jam-host-calls/externalities/refine-externalities.d.ts.map +1 -1
  32. package/packages/jam/jam-host-calls/general/fetch.d.ts +40 -40
  33. package/packages/jam/jam-host-calls/general/fetch.d.ts.map +1 -1
  34. package/packages/jam/jam-host-calls/general/fetch.js +30 -30
  35. package/packages/jam/jam-host-calls/general/fetch.test.js +17 -14
  36. package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.d.ts +2 -2
  37. package/packages/jam/transition/accumulate/accumulation-result-merge-utils.js +48 -39
  38. package/packages/jam/transition/externalities/accumulate-externalities.d.ts +2 -2
  39. package/packages/jam/transition/externalities/accumulate-externalities.d.ts.map +1 -1
  40. package/packages/jam/transition/externalities/accumulate-externalities.js +20 -7
  41. package/packages/jam/transition/externalities/accumulate-externalities.test.js +74 -4
  42. package/packages/jam/transition/externalities/index.d.ts +1 -0
  43. package/packages/jam/transition/externalities/index.d.ts.map +1 -1
  44. package/packages/jam/transition/externalities/index.js +1 -0
  45. package/packages/jam/transition/externalities/is-authorized-fetch-externalities.d.ts +22 -0
  46. package/packages/jam/transition/externalities/is-authorized-fetch-externalities.d.ts.map +1 -0
  47. package/packages/jam/transition/externalities/is-authorized-fetch-externalities.js +41 -0
  48. package/packages/jam/transition/externalities/refine-fetch-externalities.d.ts +7 -7
  49. package/packages/jam/transition/externalities/refine-fetch-externalities.d.ts.map +1 -1
  50. package/packages/jam/transition/externalities/refine-fetch-externalities.js +17 -9
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typeberry/lib",
3
- "version": "0.5.10-ca4935b",
3
+ "version": "0.5.10-ec38e0b",
4
4
  "description": "Typeberry Library",
5
5
  "main": "./bin/lib/index.js",
6
6
  "types": "./bin/lib/index.d.ts",
@@ -21,19 +21,19 @@ export declare const MAX_NUMBER_OF_WORK_ITEMS = 16;
21
21
  /**
22
22
  * A piece of work done within a core.
23
23
  *
24
- * `P = (j ∈ Y, h ∈ NS, u ∈ H, p ∈ Y, x ∈ X, w ∈ ⟦I⟧1∶I)
24
+ * `P = (j ∈ Y, h ∈ NS, u ∈ H, f ∈ Y, x ∈ X, w ∈ ⟦I⟧1∶I)
25
25
  *
26
26
  * https://graypaper.fluffylabs.dev/#/579bd12/197000197200
27
27
  */
28
28
  export declare class WorkPackage extends WithDebug {
29
29
  /** `j`: simple blob acting as an authorization token */
30
- readonly authorization: BytesBlob;
30
+ readonly authToken: BytesBlob;
31
31
  /** `h`: index of the service that hosts the authorization code */
32
32
  readonly authCodeHost: ServiceId;
33
33
  /** `u`: authorization code hash */
34
34
  readonly authCodeHash: CodeHash;
35
- /** `p`: authorization parametrization blob */
36
- readonly parametrization: BytesBlob;
35
+ /** `f`: authorization configuration blob */
36
+ readonly authConfiguration: BytesBlob;
37
37
  /** `x`: context in which the refine function should run */
38
38
  readonly context: RefineContext;
39
39
  /**
@@ -54,8 +54,8 @@ export declare class WorkPackage extends WithDebug {
54
54
  lookupAnchorSlot: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<4> & import("@typeberry/utils").WithOpaque<"TimeSlot[u32]">, import("@typeberry/bytes").Bytes<4>>;
55
55
  prerequisites: import("@typeberry/codec").Descriptor<(import("@typeberry/bytes").Bytes<32> & import("@typeberry/utils").WithOpaque<"WorkPackageHash">)[], import("@typeberry/codec").SequenceView<import("@typeberry/bytes").Bytes<32> & import("@typeberry/utils").WithOpaque<"WorkPackageHash">, import("@typeberry/bytes").Bytes<32>>>;
56
56
  }>>;
57
- authorization: import("@typeberry/codec").Descriptor<BytesBlob, BytesBlob>;
58
- parametrization: import("@typeberry/codec").Descriptor<BytesBlob, BytesBlob>;
57
+ authToken: import("@typeberry/codec").Descriptor<BytesBlob, BytesBlob>;
58
+ authConfiguration: import("@typeberry/codec").Descriptor<BytesBlob, BytesBlob>;
59
59
  items: import("@typeberry/codec").Descriptor<FixedSizeArray<WorkItem, U8>, import("@typeberry/codec").SequenceView<WorkItem, import("@typeberry/codec").ViewOf<WorkItem, {
60
60
  service: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<4> & import("@typeberry/utils").WithOpaque<"ServiceId[u32]">, import("@typeberry/bytes").Bytes<4>>;
61
61
  codeHash: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32> & import("@typeberry/utils").WithOpaque<"CodeHash">, import("@typeberry/bytes").Bytes<32>>;
@@ -73,7 +73,7 @@ export declare class WorkPackage extends WithDebug {
73
73
  }>>>;
74
74
  }>>>;
75
75
  }>>;
76
- static create({ authorization, authCodeHost, authCodeHash, parametrization, context, items, }: CodecRecord<WorkPackage>): WorkPackage;
76
+ static create({ authToken, authCodeHost, authCodeHash, authConfiguration, context, items, }: CodecRecord<WorkPackage>): WorkPackage;
77
77
  private constructor();
78
78
  }
79
79
  export type WorkPackageView = DescribedBy<typeof WorkPackage.Codec.View>;
@@ -1 +1 @@
1
- {"version":3,"file":"work-package.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/block/work-package.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,KAAK,WAAW,EAAS,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,EAAW,KAAK,EAAE,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,6EAA6E;AAC7E,0FAA0F;AAC1F,MAAM,MAAM,cAAc,GAAG,EAAE,CAAC;AAEhC,kGAAkG;AAClG,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAE/D;AAED,8DAA8D;AAC9D,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,IAAI,cAAc,CAEnE;AAED,kFAAkF;AAClF,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAC1C,uFAAuF;AACvF,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAE3C;;;;;;GAMG;AACH,qBAAa,WAAY,SAAQ,SAAS;IAyBtC,wDAAwD;aACxC,aAAa,EAAE,SAAS;IACxC,kEAAkE;aAClD,YAAY,EAAE,SAAS;IACvC,mCAAmC;aACnB,YAAY,EAAE,QAAQ;IACtC,8CAA8C;aAC9B,eAAe,EAAE,SAAS;IAC1C,2DAA2D;aAC3C,OAAO,EAAE,aAAa;IACtC;;;;;OAKG;aACa,KAAK,EAAE,cAAc,CAAC,QAAQ,EAAE,cAAc,CAAC;IAxCjE,MAAM,CAAC,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAUT;IAEH,MAAM,CAAC,MAAM,CAAC,EACZ,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,OAAO,EACP,KAAK,GACN,EAAE,WAAW,CAAC,WAAW,CAAC;IAI3B,OAAO;CAqBR;AAED,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,OAAO,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"work-package.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/block/work-package.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,KAAK,WAAW,EAAS,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,EAAW,KAAK,EAAE,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,6EAA6E;AAC7E,0FAA0F;AAC1F,MAAM,MAAM,cAAc,GAAG,EAAE,CAAC;AAEhC,kGAAkG;AAClG,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAE/D;AAED,8DAA8D;AAC9D,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,IAAI,cAAc,CAEnE;AAED,kFAAkF;AAClF,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAC1C,uFAAuF;AACvF,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAE3C;;;;;;GAMG;AACH,qBAAa,WAAY,SAAQ,SAAS;IAyBtC,wDAAwD;aACxC,SAAS,EAAE,SAAS;IACpC,kEAAkE;aAClD,YAAY,EAAE,SAAS;IACvC,mCAAmC;aACnB,YAAY,EAAE,QAAQ;IACtC,4CAA4C;aAC5B,iBAAiB,EAAE,SAAS;IAC5C,2DAA2D;aAC3C,OAAO,EAAE,aAAa;IACtC;;;;;OAKG;aACa,KAAK,EAAE,cAAc,CAAC,QAAQ,EAAE,cAAc,CAAC;IAxCjE,MAAM,CAAC,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAUT;IAEH,MAAM,CAAC,MAAM,CAAC,EACZ,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,OAAO,EACP,KAAK,GACN,EAAE,WAAW,CAAC,WAAW,CAAC;IAI3B,OAAO;CAqBR;AAED,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,OAAO,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC"}
@@ -20,37 +20,37 @@ export const MAX_NUMBER_OF_WORK_ITEMS = 16;
20
20
  /**
21
21
  * A piece of work done within a core.
22
22
  *
23
- * `P = (j ∈ Y, h ∈ NS, u ∈ H, p ∈ Y, x ∈ X, w ∈ ⟦I⟧1∶I)
23
+ * `P = (j ∈ Y, h ∈ NS, u ∈ H, f ∈ Y, x ∈ X, w ∈ ⟦I⟧1∶I)
24
24
  *
25
25
  * https://graypaper.fluffylabs.dev/#/579bd12/197000197200
26
26
  */
27
27
  export class WorkPackage extends WithDebug {
28
- authorization;
28
+ authToken;
29
29
  authCodeHost;
30
30
  authCodeHash;
31
- parametrization;
31
+ authConfiguration;
32
32
  context;
33
33
  items;
34
34
  static Codec = codec.Class(WorkPackage, {
35
35
  authCodeHost: codec.u32.asOpaque(),
36
36
  authCodeHash: codec.bytes(HASH_SIZE).asOpaque(),
37
37
  context: RefineContext.Codec,
38
- authorization: codec.blob,
39
- parametrization: codec.blob,
38
+ authToken: codec.blob,
39
+ authConfiguration: codec.blob,
40
40
  items: codec.sequenceVarLen(WorkItem.Codec).convert((x) => x, (items) => FixedSizeArray.new(items, tryAsWorkItemsCount(items.length))),
41
41
  });
42
- static create({ authorization, authCodeHost, authCodeHash, parametrization, context, items, }) {
43
- return new WorkPackage(authorization, authCodeHost, authCodeHash, parametrization, context, items);
42
+ static create({ authToken, authCodeHost, authCodeHash, authConfiguration, context, items, }) {
43
+ return new WorkPackage(authToken, authCodeHost, authCodeHash, authConfiguration, context, items);
44
44
  }
45
45
  constructor(
46
46
  /** `j`: simple blob acting as an authorization token */
47
- authorization,
47
+ authToken,
48
48
  /** `h`: index of the service that hosts the authorization code */
49
49
  authCodeHost,
50
50
  /** `u`: authorization code hash */
51
51
  authCodeHash,
52
- /** `p`: authorization parametrization blob */
53
- parametrization,
52
+ /** `f`: authorization configuration blob */
53
+ authConfiguration,
54
54
  /** `x`: context in which the refine function should run */
55
55
  context,
56
56
  /**
@@ -61,10 +61,10 @@ export class WorkPackage extends WithDebug {
61
61
  */
62
62
  items) {
63
63
  super();
64
- this.authorization = authorization;
64
+ this.authToken = authToken;
65
65
  this.authCodeHost = authCodeHost;
66
66
  this.authCodeHash = authCodeHash;
67
- this.parametrization = parametrization;
67
+ this.authConfiguration = authConfiguration;
68
68
  this.context = context;
69
69
  this.items = items;
70
70
  }
@@ -13,6 +13,9 @@ export type AccumulateHostCallExternalities = {
13
13
  fetchExternalities: general.IAccumulateFetch;
14
14
  serviceExternalities: general.AccountsInfo & general.AccountsLookup & general.AccountsWrite & general.AccountsRead;
15
15
  };
16
+ export type IsAuthorizedHostCallExternalities = {
17
+ fetchExternalities: general.IIsAuthorizedFetch;
18
+ };
16
19
  type OnTransferHostCallExternalities = {
17
20
  partialState: general.AccountsInfo & general.AccountsLookup & general.AccountsWrite & general.AccountsRead;
18
21
  fetchExternalities: general.IFetchExternalities;
@@ -31,6 +34,8 @@ export declare class PvmExecutor {
31
34
  private static prepareRefineHostCalls;
32
35
  /** Prepare accumulation host call handlers */
33
36
  private static prepareAccumulateHostCalls;
37
+ /** Prepare is-authorized host call handlers */
38
+ private static prepareIsAuthorizedHostCalls;
34
39
  /** Prepare on transfer host call handlers */
35
40
  private static prepareOnTransferHostCalls;
36
41
  /**
@@ -50,6 +55,8 @@ export declare class PvmExecutor {
50
55
  }>;
51
56
  /** A utility function that can be used to prepare refine executor */
52
57
  static createRefineExecutor(serviceId: ServiceId, serviceCode: BytesBlob, externalities: RefineHostCallExternalities, pvm: PvmBackend): Promise<PvmExecutor>;
58
+ /** A utility function that can be used to prepare is-authorized executor */
59
+ static createIsAuthorizedExecutor(serviceId: ServiceId, serviceCode: BytesBlob, externalities: IsAuthorizedHostCallExternalities, pvm: PvmBackend): Promise<PvmExecutor>;
53
60
  /** A utility function that can be used to prepare accumulate executor */
54
61
  static createAccumulateExecutor(serviceId: ServiceId, serviceCode: BytesBlob, externalities: AccumulateHostCallExternalities, chainSpec: ChainSpec, pvm: PvmBackend): Promise<PvmExecutor>;
55
62
  /** A utility function that can be used to prepare on transfer executor */
@@ -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,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
+ {"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,MAAM,MAAM,iCAAiC,GAAG;IAC9C,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,CAAC;CAChD,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,+CAA+C;IAC/C,OAAO,CAAC,MAAM,CAAC,4BAA4B;IAU3C,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,4EAA4E;WAC/D,0BAA0B,CACrC,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,SAAS,EACtB,aAAa,EAAE,iCAAiC,EAChD,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"}
@@ -90,6 +90,15 @@ export class PvmExecutor {
90
90
  ];
91
91
  return accumulateHandlers.concat(generalHandlers);
92
92
  }
93
+ /** Prepare is-authorized host call handlers */
94
+ static prepareIsAuthorizedHostCalls(serviceId, externalities) {
95
+ const generalHandlers = [
96
+ new general.LogHostCall(serviceId),
97
+ new general.GasHostCall(serviceId),
98
+ new general.Fetch(serviceId, externalities.fetchExternalities),
99
+ ];
100
+ return generalHandlers;
101
+ }
93
102
  /** Prepare on transfer host call handlers */
94
103
  static prepareOnTransferHostCalls(serviceId, externalities) {
95
104
  const generalHandlers = [
@@ -123,6 +132,12 @@ export class PvmExecutor {
123
132
  const instances = await PvmExecutor.prepareBackend(pvm);
124
133
  return new PvmExecutor(serviceCode, hostCallHandlers, entrypoint.REFINE, instances);
125
134
  }
135
+ /** A utility function that can be used to prepare is-authorized executor */
136
+ static async createIsAuthorizedExecutor(serviceId, serviceCode, externalities, pvm) {
137
+ const hostCallHandlers = PvmExecutor.prepareIsAuthorizedHostCalls(serviceId, externalities);
138
+ const instances = await PvmExecutor.prepareBackend(pvm);
139
+ return new PvmExecutor(serviceCode, hostCallHandlers, entrypoint.IS_AUTHORIZED, instances);
140
+ }
126
141
  /** A utility function that can be used to prepare accumulate executor */
127
142
  static async createAccumulateExecutor(serviceId, serviceCode, externalities, chainSpec, pvm) {
128
143
  const hostCallHandlers = PvmExecutor.prepareAccumulateHostCalls(serviceId, externalities, chainSpec);
@@ -2,7 +2,7 @@ import { type Segment, type SegmentIndex, type ServiceId } from "#@typeberry/blo
2
2
  import type { BytesBlob } from "#@typeberry/bytes";
3
3
  import type { PvmBackend } from "#@typeberry/config";
4
4
  import type { Blake2bHash } from "#@typeberry/hash";
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
+ import { type MachineId, type MachineResult, type MemoryOperation, NoMachineError, type PagesError, type PeekPokeError, type ProgramCounter, type RefineExternalities, SegmentExportError, type ZeroVoidError } from "#@typeberry/jam-host-calls";
6
6
  import type { U64 } from "#@typeberry/numbers";
7
7
  import { type HostCallMemory, type HostCallRegisters } from "#@typeberry/pvm-host-calls";
8
8
  import { type BigGas } from "#@typeberry/pvm-interface";
@@ -41,7 +41,7 @@ export declare class RefineExternalitiesImpl implements RefineExternalities {
41
41
  static create(params: RefineExternalitiesParams): RefineExternalitiesImpl;
42
42
  private constructor();
43
43
  getExportedSegments(): readonly Segment[];
44
- machineExpunge(_machineIndex: MachineId): Promise<Result<ProgramCounter, NoMachineError>>;
44
+ machineExpunge(machineIndex: MachineId): Promise<Result<ProgramCounter, NoMachineError>>;
45
45
  machinePages(_machineIndex: MachineId, _pageStart: U64, _pageCount: U64, _requestType: MemoryOperation | null): Promise<Result<OK, PagesError>>;
46
46
  machineVoidPages(_machineIndex: MachineId, _pageStart: U64, _pageCount: U64): Promise<Result<OK, ZeroVoidError>>;
47
47
  machineZeroPages(_machineIndex: MachineId, _pageStart: U64, _pageCount: U64): Promise<Result<OK, ZeroVoidError>>;
@@ -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,6 +1,6 @@
1
1
  import { MAX_NUMBER_OF_EXPORTS_WP, tryAsSegmentIndex, } from "#@typeberry/block";
2
2
  import { SortedArray } from "#@typeberry/collections";
3
- import { SegmentExportError, tryAsMachineId, } from "#@typeberry/jam-host-calls";
3
+ import { NoMachineError, SegmentExportError, tryAsMachineId, tryAsProgramCounter, } from "#@typeberry/jam-host-calls";
4
4
  import { Ordering } from "#@typeberry/ordering";
5
5
  import { PvmInstanceManager } from "#@typeberry/pvm-host-calls";
6
6
  import { tryAsGas } from "#@typeberry/pvm-interface";
@@ -40,8 +40,15 @@ export class RefineExternalitiesImpl {
40
40
  getExportedSegments() {
41
41
  return this.exportedSegments;
42
42
  }
43
- machineExpunge(_machineIndex) {
44
- throw new Error("Method not implemented.");
43
+ machineExpunge(machineIndex) {
44
+ // We just care about machineIndex
45
+ const entry = this.machines.findExact([machineIndex, undefined]);
46
+ if (entry === undefined) {
47
+ return Promise.resolve(Result.error(NoMachineError, () => `Machine not found (id: ${machineIndex})`));
48
+ }
49
+ const pc = tryAsProgramCounter(entry[1].getPC());
50
+ this.machines.removeOne(entry);
51
+ return Promise.resolve(Result.ok(pc));
45
52
  }
46
53
  machinePages(_machineIndex, _pageStart, _pageCount, _requestType) {
47
54
  throw new Error("Method not implemented.");
@@ -207,4 +207,57 @@ describe("RefineExternalitiesImpl", () => {
207
207
  assert.strictEqual(result.isOk, true);
208
208
  });
209
209
  });
210
+ describe("machineExpunge", () => {
211
+ it("should remove machine and return its program counter (0)", async () => {
212
+ const ext = createExt();
213
+ const code = BytesBlob.blobFrom(MINIMAL_PROGRAM);
214
+ const initResult = await ext.machineInit(code, tryAsProgramCounter(0));
215
+ assert.strictEqual(initResult.isOk, true);
216
+ const machineId = initResult.ok;
217
+ const result = await ext.machineExpunge(machineId);
218
+ assert.strictEqual(result.isOk, true);
219
+ // PC should be 0 since we initialized with PC=0
220
+ assert.strictEqual(result.ok, tryAsProgramCounter(0));
221
+ });
222
+ it("should remove machine and return its program counter (10)", async () => {
223
+ const ext = createExt();
224
+ const code = BytesBlob.blobFrom(MINIMAL_PROGRAM);
225
+ const initResult = await ext.machineInit(code, tryAsProgramCounter(10));
226
+ assert.strictEqual(initResult.isOk, true);
227
+ const machineId = initResult.ok;
228
+ const result = await ext.machineExpunge(machineId);
229
+ assert.strictEqual(result.isOk, true);
230
+ // PC should be 10 since we initialized with PC=10
231
+ assert.strictEqual(result.ok, tryAsProgramCounter(10));
232
+ });
233
+ it("should return NoMachineError for non-existent machine", async () => {
234
+ const ext = createExt();
235
+ const result = await ext.machineExpunge(tryAsMachineId(999));
236
+ assert.strictEqual(result.isError, true);
237
+ });
238
+ it("should not allow double expunge", async () => {
239
+ const ext = createExt();
240
+ const code = BytesBlob.blobFrom(MINIMAL_PROGRAM);
241
+ const initResult = await ext.machineInit(code, tryAsProgramCounter(0));
242
+ assert.strictEqual(initResult.isOk, true);
243
+ const machineId = initResult.ok;
244
+ const r1 = await ext.machineExpunge(machineId);
245
+ assert.strictEqual(r1.isOk, true);
246
+ const r2 = await ext.machineExpunge(machineId);
247
+ assert.strictEqual(r2.isError, true);
248
+ });
249
+ it("should remove exact machine from multiple and return its program counter (10)", async () => {
250
+ const ext = createExt();
251
+ const code = BytesBlob.blobFrom(MINIMAL_PROGRAM);
252
+ await ext.machineInit(code, tryAsProgramCounter(0));
253
+ const initResult = await ext.machineInit(code, tryAsProgramCounter(10));
254
+ await ext.machineInit(code, tryAsProgramCounter(20));
255
+ assert.strictEqual(initResult.isOk, true);
256
+ const machineId = initResult.ok;
257
+ const result = await ext.machineExpunge(machineId);
258
+ assert.strictEqual(result.isOk, true);
259
+ // PC should be 10 since we initialized with PC=10
260
+ assert.strictEqual(result.ok, tryAsProgramCounter(10));
261
+ });
262
+ });
210
263
  });
@@ -1,23 +1,18 @@
1
- import { type CoreIndex, type Segment, type SegmentIndex, type ServiceGas } from "#@typeberry/block";
1
+ import type { CoreIndex, Segment } from "#@typeberry/block";
2
2
  import { type WorkPackageHash } from "#@typeberry/block/refine-context.js";
3
3
  import type { WorkItemExtrinsic } from "#@typeberry/block/work-item.js";
4
4
  import type { WorkPackage } from "#@typeberry/block/work-package.js";
5
5
  import { WorkReport } from "#@typeberry/block/work-report.js";
6
- import { WorkExecResult, WorkResult } from "#@typeberry/block/work-result.js";
7
- import { type KnownSizeArray } from "#@typeberry/collections";
8
6
  import type { ChainSpec, PvmBackend } from "#@typeberry/config";
9
7
  import type { StatesDb } from "#@typeberry/database";
10
- import { type ReturnValue } from "#@typeberry/executor";
11
- import { type Blake2b, type WithHash } from "#@typeberry/hash";
8
+ import type { Blake2b, WithHash } from "#@typeberry/hash";
12
9
  import { Result } from "#@typeberry/utils";
10
+ import { type ImportedSegment, type PerWorkItem } from "./refine.js";
11
+ export type { ImportedSegment, PerWorkItem, RefineItemResult } from "./refine.js";
13
12
  export type RefineResult = {
14
13
  report: WorkReport;
15
14
  exports: PerWorkItem<Segment[]>;
16
15
  };
17
- export type RefineItemResult = {
18
- result: WorkResult;
19
- exports: readonly Segment[];
20
- };
21
16
  export declare enum RefineError {
22
17
  /** State for context anchor block or lookup anchor is not found in the DB. */
23
18
  StateMissing = 0,
@@ -28,16 +23,11 @@ export declare enum RefineError {
28
23
  /** Authorization error. */
29
24
  AuthorizationError = 3
30
25
  }
31
- export type PerWorkItem<T> = KnownSizeArray<T, "for each work item">;
32
- export type ImportedSegment = {
33
- index: SegmentIndex;
34
- data: Segment;
35
- };
36
26
  export declare class InCore {
37
27
  readonly chainSpec: ChainSpec;
38
28
  private readonly states;
39
- private readonly pvmBackend;
40
- private readonly blake2b;
29
+ private readonly isAuthorized;
30
+ private readonly refineItem;
41
31
  constructor(chainSpec: ChainSpec, states: StatesDb, pvmBackend: PvmBackend, blake2b: Blake2b);
42
32
  /**
43
33
  * Work-report computation function.
@@ -50,11 +40,6 @@ export declare class InCore {
50
40
  * https://graypaper.fluffylabs.dev/#/ab2cdbd/1b7f021b7f02?v=0.7.2
51
41
  */
52
42
  refine(workPackageAndHash: WithHash<WorkPackageHash, WorkPackage>, core: CoreIndex, imports: PerWorkItem<ImportedSegment[]>, extrinsics: PerWorkItem<WorkItemExtrinsic[]>): Promise<Result<RefineResult, RefineError>>;
53
- private amalgamateWorkReport;
54
- private authorizePackage;
55
- private refineItem;
56
- extractWorkResult(execResult: ReturnValue<ServiceGas>): WorkExecResult;
57
- private getServiceCode;
58
- private createRefineExternalities;
43
+ private static amalgamateWorkReport;
59
44
  }
60
45
  //# sourceMappingURL=in-core.d.ts.map
@@ -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,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAsB,KAAK,eAAe,EAAmB,MAAM,oCAAoC,CAAC;AAC/G,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAmB,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAG9E,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAIzD,OAAO,EAAe,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,WAAW,EAAiC,MAAM,aAAa,CAAC;AAEpG,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAElF,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;CACjC,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;AAID,qBAAa,MAAM;aAKC,SAAS,EAAE,SAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM;IALzB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAGlB,SAAS,EAAE,SAAS,EACnB,MAAM,EAAE,QAAQ,EACjC,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,OAAO;IAMlB;;;;;;;;;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;IAwF7C,OAAO,CAAC,MAAM,CAAC,oBAAoB;CAsDpC"}