@typeberry/lib 0.5.10-6923c44 → 0.5.10-7338c21
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/jam/block/work-package.d.ts +7 -7
- package/packages/jam/block/work-package.d.ts.map +1 -1
- package/packages/jam/block/work-package.js +12 -12
- package/packages/jam/executor/pvm-executor.d.ts +7 -0
- package/packages/jam/executor/pvm-executor.d.ts.map +1 -1
- package/packages/jam/executor/pvm-executor.js +15 -0
- package/packages/jam/in-core/externalities/refine.d.ts +3 -3
- package/packages/jam/in-core/externalities/refine.d.ts.map +1 -1
- package/packages/jam/in-core/externalities/refine.js +33 -5
- package/packages/jam/in-core/externalities/refine.test.js +65 -0
- package/packages/jam/in-core/in-core.d.ts +7 -22
- package/packages/jam/in-core/in-core.d.ts.map +1 -1
- package/packages/jam/in-core/in-core.js +16 -184
- package/packages/jam/in-core/in-core.test.js +47 -15
- package/packages/jam/in-core/is-authorized.d.ts +33 -0
- package/packages/jam/in-core/is-authorized.d.ts.map +1 -0
- package/packages/jam/in-core/is-authorized.js +72 -0
- package/packages/jam/in-core/is-authorized.test.d.ts +2 -0
- package/packages/jam/in-core/is-authorized.test.d.ts.map +1 -0
- package/packages/jam/in-core/is-authorized.test.js +125 -0
- package/packages/jam/in-core/refine.d.ts +34 -0
- package/packages/jam/in-core/refine.d.ts.map +1 -0
- package/packages/jam/in-core/refine.js +176 -0
- package/packages/jam/in-core/refine.test.d.ts +2 -0
- package/packages/jam/in-core/refine.test.d.ts.map +1 -0
- package/packages/jam/in-core/refine.test.js +6 -0
- package/packages/jam/jam-host-calls/accumulate/bless.js +9 -9
- package/packages/jam/jam-host-calls/externalities/partial-state.d.ts +1 -1
- package/packages/jam/jam-host-calls/general/fetch.d.ts +40 -40
- package/packages/jam/jam-host-calls/general/fetch.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/general/fetch.js +30 -30
- package/packages/jam/jam-host-calls/general/fetch.test.js +17 -14
- package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.d.ts +2 -2
- package/packages/jam/transition/accumulate/accumulation-result-merge-utils.js +48 -39
- package/packages/jam/transition/externalities/accumulate-externalities.d.ts +2 -2
- package/packages/jam/transition/externalities/accumulate-externalities.d.ts.map +1 -1
- package/packages/jam/transition/externalities/accumulate-externalities.js +20 -7
- package/packages/jam/transition/externalities/accumulate-externalities.test.js +74 -4
- package/packages/jam/transition/externalities/index.d.ts +1 -0
- package/packages/jam/transition/externalities/index.d.ts.map +1 -1
- package/packages/jam/transition/externalities/index.js +1 -0
- package/packages/jam/transition/externalities/is-authorized-fetch-externalities.d.ts +22 -0
- package/packages/jam/transition/externalities/is-authorized-fetch-externalities.d.ts.map +1 -0
- package/packages/jam/transition/externalities/is-authorized-fetch-externalities.js +41 -0
- package/packages/jam/transition/externalities/refine-fetch-externalities.d.ts +7 -7
- package/packages/jam/transition/externalities/refine-fetch-externalities.d.ts.map +1 -1
- package/packages/jam/transition/externalities/refine-fetch-externalities.js +17 -9
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
import { tryAsCoreIndex, tryAsServiceGas, } from "#@typeberry/block";
|
|
2
|
+
import { W_C } from "#@typeberry/block/gp-constants.js";
|
|
3
|
+
import { WorkExecResult, WorkExecResultKind, WorkRefineLoad, WorkResult } from "#@typeberry/block/work-result.js";
|
|
4
|
+
import { BytesBlob } from "#@typeberry/bytes";
|
|
5
|
+
import { codec, Encoder } from "#@typeberry/codec";
|
|
6
|
+
import { PvmExecutor, ReturnStatus } from "#@typeberry/executor";
|
|
7
|
+
import { HASH_SIZE } from "#@typeberry/hash";
|
|
8
|
+
import { tryAsU32 } from "#@typeberry/numbers";
|
|
9
|
+
import { RefineFetchExternalities } from "#@typeberry/transition/externalities/refine-fetch-externalities.js";
|
|
10
|
+
import { assertNever, Result } from "#@typeberry/utils";
|
|
11
|
+
import { RefineExternalitiesImpl } from "./externalities/refine.js";
|
|
12
|
+
var ServiceCodeError;
|
|
13
|
+
(function (ServiceCodeError) {
|
|
14
|
+
/** Service id is not found in the state. */
|
|
15
|
+
ServiceCodeError[ServiceCodeError["ServiceNotFound"] = 0] = "ServiceNotFound";
|
|
16
|
+
/** Expected service code does not match the state one. */
|
|
17
|
+
ServiceCodeError[ServiceCodeError["ServiceCodeMismatch"] = 1] = "ServiceCodeMismatch";
|
|
18
|
+
/** Code preimage missing. */
|
|
19
|
+
ServiceCodeError[ServiceCodeError["ServiceCodeMissing"] = 2] = "ServiceCodeMissing";
|
|
20
|
+
/** Code blob is too big. */
|
|
21
|
+
ServiceCodeError[ServiceCodeError["ServiceCodeTooBig"] = 3] = "ServiceCodeTooBig";
|
|
22
|
+
})(ServiceCodeError || (ServiceCodeError = {}));
|
|
23
|
+
/** https://graypaper.fluffylabs.dev/#/ab2cdbd/2ffe002ffe00?v=0.7.2 */
|
|
24
|
+
const REFINE_ARGS_CODEC = codec.object({
|
|
25
|
+
core: codec.varU32.convert((x) => tryAsU32(x), (x) => tryAsCoreIndex(x)),
|
|
26
|
+
workItemIndex: codec.varU32,
|
|
27
|
+
serviceId: codec.varU32.asOpaque(),
|
|
28
|
+
payloadLength: codec.varU32,
|
|
29
|
+
packageHash: codec.bytes(HASH_SIZE).asOpaque(),
|
|
30
|
+
});
|
|
31
|
+
/**
|
|
32
|
+
* Refine PVM invocation (Psi_R).
|
|
33
|
+
*
|
|
34
|
+
* Executes a single work item's refinement logic.
|
|
35
|
+
*/
|
|
36
|
+
export class Refine {
|
|
37
|
+
chainSpec;
|
|
38
|
+
pvmBackend;
|
|
39
|
+
blake2b;
|
|
40
|
+
constructor(chainSpec, pvmBackend, blake2b) {
|
|
41
|
+
this.chainSpec = chainSpec;
|
|
42
|
+
this.pvmBackend = pvmBackend;
|
|
43
|
+
this.blake2b = blake2b;
|
|
44
|
+
}
|
|
45
|
+
async invoke(state, lookupState, idx, item, allImports, allExtrinsics, coreIndex, workPackageHash, exportOffset) {
|
|
46
|
+
const payloadHash = this.blake2b.hashBytes(item.payload);
|
|
47
|
+
const baseResult = {
|
|
48
|
+
serviceId: item.service,
|
|
49
|
+
codeHash: item.codeHash,
|
|
50
|
+
payloadHash,
|
|
51
|
+
gas: item.refineGasLimit,
|
|
52
|
+
};
|
|
53
|
+
const imports = allImports[idx];
|
|
54
|
+
const extrinsics = allExtrinsics[idx];
|
|
55
|
+
const baseLoad = {
|
|
56
|
+
importedSegments: tryAsU32(imports.length),
|
|
57
|
+
extrinsicCount: tryAsU32(extrinsics.length),
|
|
58
|
+
extrinsicSize: tryAsU32(extrinsics.reduce((acc, x) => acc + x.length, 0)),
|
|
59
|
+
};
|
|
60
|
+
const maybeCode = this.getServiceCode(state, idx, item);
|
|
61
|
+
if (maybeCode.isError) {
|
|
62
|
+
const error = maybeCode.error === ServiceCodeError.ServiceCodeTooBig
|
|
63
|
+
? WorkExecResultKind.codeOversize
|
|
64
|
+
: WorkExecResultKind.badCode;
|
|
65
|
+
return {
|
|
66
|
+
exports: [],
|
|
67
|
+
result: WorkResult.create({
|
|
68
|
+
...baseResult,
|
|
69
|
+
result: WorkExecResult.error(error),
|
|
70
|
+
load: WorkRefineLoad.create({
|
|
71
|
+
...baseLoad,
|
|
72
|
+
gasUsed: tryAsServiceGas(item.refineGasLimit),
|
|
73
|
+
exportedSegments: tryAsU32(0),
|
|
74
|
+
}),
|
|
75
|
+
}),
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
const code = maybeCode.ok;
|
|
79
|
+
const externalities = this.createRefineExternalities({
|
|
80
|
+
payload: item.payload,
|
|
81
|
+
imports: allImports,
|
|
82
|
+
extrinsics: allExtrinsics,
|
|
83
|
+
currentServiceId: item.service,
|
|
84
|
+
lookupState,
|
|
85
|
+
exportOffset,
|
|
86
|
+
});
|
|
87
|
+
const executor = await PvmExecutor.createRefineExecutor(item.service, code, externalities, this.pvmBackend);
|
|
88
|
+
const args = Encoder.encodeObject(REFINE_ARGS_CODEC, {
|
|
89
|
+
serviceId: item.service,
|
|
90
|
+
core: coreIndex,
|
|
91
|
+
workItemIndex: tryAsU32(idx),
|
|
92
|
+
payloadLength: tryAsU32(item.payload.length),
|
|
93
|
+
packageHash: workPackageHash,
|
|
94
|
+
});
|
|
95
|
+
const execResult = await executor.run(args, item.refineGasLimit);
|
|
96
|
+
const exports = externalities.refine.getExportedSegments();
|
|
97
|
+
if (exports.length !== item.exportCount) {
|
|
98
|
+
return {
|
|
99
|
+
exports: [],
|
|
100
|
+
result: WorkResult.create({
|
|
101
|
+
...baseResult,
|
|
102
|
+
result: WorkExecResult.error(WorkExecResultKind.incorrectNumberOfExports),
|
|
103
|
+
load: WorkRefineLoad.create({
|
|
104
|
+
...baseLoad,
|
|
105
|
+
gasUsed: tryAsServiceGas(item.refineGasLimit),
|
|
106
|
+
exportedSegments: tryAsU32(0),
|
|
107
|
+
}),
|
|
108
|
+
}),
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
const result = Refine.extractWorkResult(execResult);
|
|
112
|
+
return {
|
|
113
|
+
exports,
|
|
114
|
+
result: WorkResult.create({
|
|
115
|
+
...baseResult,
|
|
116
|
+
result,
|
|
117
|
+
load: WorkRefineLoad.create({
|
|
118
|
+
...baseLoad,
|
|
119
|
+
gasUsed: tryAsServiceGas(execResult.consumedGas),
|
|
120
|
+
exportedSegments: tryAsU32(exports.length),
|
|
121
|
+
}),
|
|
122
|
+
}),
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
static extractWorkResult(execResult) {
|
|
126
|
+
if (execResult.status === ReturnStatus.OK) {
|
|
127
|
+
const slice = execResult.memorySlice;
|
|
128
|
+
// TODO [ToDr] Verify the output size and change digestTooBig?
|
|
129
|
+
return WorkExecResult.ok(BytesBlob.blobFrom(slice));
|
|
130
|
+
}
|
|
131
|
+
switch (execResult.status) {
|
|
132
|
+
case ReturnStatus.OOG:
|
|
133
|
+
return WorkExecResult.error(WorkExecResultKind.outOfGas);
|
|
134
|
+
case ReturnStatus.PANIC:
|
|
135
|
+
return WorkExecResult.error(WorkExecResultKind.panic);
|
|
136
|
+
default:
|
|
137
|
+
assertNever(execResult);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
getServiceCode(state, idx, item) {
|
|
141
|
+
const serviceId = item.service;
|
|
142
|
+
const service = state.getService(serviceId);
|
|
143
|
+
// TODO [ToDr] GP link
|
|
144
|
+
// missing service
|
|
145
|
+
if (service === null) {
|
|
146
|
+
return Result.error(ServiceCodeError.ServiceNotFound, () => `[i:${idx}] Service ${serviceId} is missing in state.`);
|
|
147
|
+
}
|
|
148
|
+
// TODO [ToDr] GP link
|
|
149
|
+
// TODO [ToDr] shall we rather use the old codehash instead
|
|
150
|
+
if (!service.getInfo().codeHash.isEqualTo(item.codeHash)) {
|
|
151
|
+
return Result.error(ServiceCodeError.ServiceCodeMismatch, () => `[i:${idx}] Service ${serviceId} has invalid code hash. Ours: ${service.getInfo().codeHash}, expected: ${item.codeHash}`);
|
|
152
|
+
}
|
|
153
|
+
const code = service.getPreimage(item.codeHash.asOpaque());
|
|
154
|
+
if (code === null) {
|
|
155
|
+
return Result.error(ServiceCodeError.ServiceCodeMissing, () => `[i:${idx}] Code ${item.codeHash} for service ${serviceId} was not found.`);
|
|
156
|
+
}
|
|
157
|
+
if (code.length > W_C) {
|
|
158
|
+
return Result.error(ServiceCodeError.ServiceCodeTooBig, () => `[i:${idx}] Code ${item.codeHash} for service ${serviceId} is too big! ${code.length} bytes vs ${W_C} bytes max.`);
|
|
159
|
+
}
|
|
160
|
+
return Result.ok(code);
|
|
161
|
+
}
|
|
162
|
+
createRefineExternalities(args) {
|
|
163
|
+
// TODO [ToDr] Pass all required fetch data
|
|
164
|
+
const fetchExternalities = new RefineFetchExternalities(this.chainSpec);
|
|
165
|
+
const refine = RefineExternalitiesImpl.create({
|
|
166
|
+
currentServiceId: args.currentServiceId,
|
|
167
|
+
lookupState: args.lookupState,
|
|
168
|
+
exportOffset: args.exportOffset,
|
|
169
|
+
pvmBackend: this.pvmBackend,
|
|
170
|
+
});
|
|
171
|
+
return {
|
|
172
|
+
fetchExternalities,
|
|
173
|
+
refine,
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"refine.test.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/in-core/refine.test.ts"],"names":[],"mappings":""}
|
|
@@ -34,8 +34,8 @@ export class Bless {
|
|
|
34
34
|
async execute(_gas, regs, memory) {
|
|
35
35
|
// `m`: manager service (can change privileged services)
|
|
36
36
|
const manager = getServiceId(regs.get(IN_OUT_REG));
|
|
37
|
-
// `a`:
|
|
38
|
-
const
|
|
37
|
+
// `a`: mem pointer for collection of auth queue assigners (one per core)
|
|
38
|
+
const assignersPtr = regs.get(8);
|
|
39
39
|
// `v`: manages validator keys
|
|
40
40
|
const delegator = getServiceId(regs.get(9));
|
|
41
41
|
// `r`: manages creation of new services with id within protected range
|
|
@@ -67,29 +67,29 @@ export class Bless {
|
|
|
67
67
|
}
|
|
68
68
|
// https://graypaper.fluffylabs.dev/#/7e6ff6a/367200367200?v=0.6.7
|
|
69
69
|
const res = safeAllocUint8Array(tryAsExactBytes(codec.u32.sizeHint) * this.chainSpec.coresCount);
|
|
70
|
-
const
|
|
71
|
-
const memoryReadResult = memory.loadInto(res,
|
|
70
|
+
const assignersDecoder = Decoder.fromBlob(res);
|
|
71
|
+
const memoryReadResult = memory.loadInto(res, assignersPtr);
|
|
72
72
|
if (memoryReadResult.isError) {
|
|
73
73
|
logger.trace `[${this.currentServiceId}] BLESS(m: ${manager}, v: ${delegator}, r: ${registrar}, ${lazyInspect(autoAccumulate)}) <- PANIC`;
|
|
74
74
|
return PvmExecution.Panic;
|
|
75
75
|
}
|
|
76
76
|
// `a`
|
|
77
|
-
const
|
|
78
|
-
const updateResult = this.partialState.updatePrivilegedServices(manager,
|
|
77
|
+
const assigners = tryAsPerCore(assignersDecoder.sequenceFixLen(codec.u32.asOpaque(), this.chainSpec.coresCount), this.chainSpec);
|
|
78
|
+
const updateResult = this.partialState.updatePrivilegedServices(manager, assigners, delegator, registrar, autoAccumulate);
|
|
79
79
|
if (updateResult.isOk) {
|
|
80
|
-
logger.trace `[${this.currentServiceId}] BLESS(m: ${manager}, a: [${
|
|
80
|
+
logger.trace `[${this.currentServiceId}] BLESS(m: ${manager}, a: [${assigners}], v: ${delegator}, r: ${registrar}, ${lazyInspect(autoAccumulate)}) <- OK`;
|
|
81
81
|
regs.set(IN_OUT_REG, HostCallResult.OK);
|
|
82
82
|
return;
|
|
83
83
|
}
|
|
84
84
|
const e = updateResult.error;
|
|
85
85
|
// NOTE: `UpdatePrivilegesError.UnprivilegedService` won't happen in 0.7.1+
|
|
86
86
|
if (e === UpdatePrivilegesError.UnprivilegedService) {
|
|
87
|
-
logger.trace `[${this.currentServiceId}] BLESS(m: ${manager}, a: [${
|
|
87
|
+
logger.trace `[${this.currentServiceId}] BLESS(m: ${manager}, a: [${assigners}], v: ${delegator}, r: ${registrar}, ${lazyInspect(autoAccumulate)}) <- HUH`;
|
|
88
88
|
regs.set(IN_OUT_REG, HostCallResult.HUH);
|
|
89
89
|
return;
|
|
90
90
|
}
|
|
91
91
|
if (e === UpdatePrivilegesError.InvalidServiceId) {
|
|
92
|
-
logger.trace `[${this.currentServiceId}] BLESS(m: ${manager}, a: [${
|
|
92
|
+
logger.trace `[${this.currentServiceId}] BLESS(m: ${manager}, a: [${assigners}], v: ${delegator}, r: ${registrar}, ${lazyInspect(autoAccumulate)}) <- WHO`;
|
|
93
93
|
regs.set(IN_OUT_REG, HostCallResult.WHO);
|
|
94
94
|
return;
|
|
95
95
|
}
|
|
@@ -185,7 +185,7 @@ export interface PartialState {
|
|
|
185
185
|
* Update priviliged services and their gas.
|
|
186
186
|
*
|
|
187
187
|
* `m`: manager service (can change privileged services)
|
|
188
|
-
* `a`:
|
|
188
|
+
* `a`: per-core manager of authorization queue
|
|
189
189
|
* `v`: manages validator keys
|
|
190
190
|
* `r`: manages create new services in protected id range.
|
|
191
191
|
* `z`: collection of serviceId -> gas that auto-accumulate every block
|
|
@@ -14,7 +14,7 @@ import { type IGasCounter } from "#@typeberry/pvm-interface";
|
|
|
14
14
|
* Ω_Y signature: Ω_Y(ρ, φ, μ, p, n, r, i, ī, x̄, 𝐢, ...)
|
|
15
15
|
*
|
|
16
16
|
* Context parameter mapping
|
|
17
|
-
*
|
|
17
|
+
* IsAuthorized: Ω_Y(ρ, φ, μ, 𝐩, ∅, ∅, ∅, ∅, ∅, ∅, ∅)
|
|
18
18
|
* https://graypaper.fluffylabs.dev/#/ab2cdbd/2e43012e4301?v=0.7.2
|
|
19
19
|
* Refine: Ω_Y(ρ, φ, μ, p, H₀, r, i, ī, x̄, ∅, (m,e))
|
|
20
20
|
* https://graypaper.fluffylabs.dev/#/ab2cdbd/2fe0012fe001?v=0.7.2
|
|
@@ -22,13 +22,13 @@ import { type IGasCounter } from "#@typeberry/pvm-interface";
|
|
|
22
22
|
* https://graypaper.fluffylabs.dev/#/ab2cdbd/30c00030c000?v=0.7.2
|
|
23
23
|
*
|
|
24
24
|
* Kind availability per context:
|
|
25
|
-
* Kind 0 (constants)
|
|
26
|
-
* Kind 1 (n)
|
|
27
|
-
* Kind 2 (r)
|
|
28
|
-
* Kind 3-4 (x̄ extrinsics)
|
|
29
|
-
* Kind 5-6 (ī imports)
|
|
30
|
-
* Kind 7-13 (p work pkg)
|
|
31
|
-
* Kind 14-15 (𝐢 acc items)
|
|
25
|
+
* Kind 0 (constants) - all contexts
|
|
26
|
+
* Kind 1 (n) - Refine (H₀), Accumulate (η'₀)
|
|
27
|
+
* Kind 2 (r) - Refine only
|
|
28
|
+
* Kind 3-4 (x̄ extrinsics) - Refine only
|
|
29
|
+
* Kind 5-6 (ī imports) - Refine only
|
|
30
|
+
* Kind 7-13 (p work pkg) - IsAuthorized, Refine
|
|
31
|
+
* Kind 14-15 (𝐢 acc items) - Accumulate only
|
|
32
32
|
*/
|
|
33
33
|
export declare enum FetchContext {
|
|
34
34
|
IsAuthorized = "isAuthorized",
|
|
@@ -36,7 +36,7 @@ export declare enum FetchContext {
|
|
|
36
36
|
Accumulate = "accumulate"
|
|
37
37
|
}
|
|
38
38
|
/**
|
|
39
|
-
* Fetch externalities for the
|
|
39
|
+
* Fetch externalities for the IsAuthorized context.
|
|
40
40
|
*
|
|
41
41
|
* Ω_Y(ρ, φ, μ, 𝐩, ∅, ∅, ∅, ∅, ∅, ∅, ∅)
|
|
42
42
|
* https://graypaper.fluffylabs.dev/#/ab2cdbd/2e43012e4301?v=0.7.2
|
|
@@ -52,43 +52,43 @@ export interface IIsAuthorizedFetch {
|
|
|
52
52
|
*/
|
|
53
53
|
constants(): BytesBlob;
|
|
54
54
|
/**
|
|
55
|
-
* Kind 7: Encoded work package
|
|
55
|
+
* Kind 7: Encoded work package - E(𝐩).
|
|
56
56
|
*
|
|
57
57
|
* https://graypaper.fluffylabs.dev/#/ab2cdbd/31c10231c102?v=0.7.2
|
|
58
58
|
*/
|
|
59
|
-
workPackage(): BytesBlob
|
|
59
|
+
workPackage(): BytesBlob;
|
|
60
60
|
/**
|
|
61
|
-
* Kind 8: Authorizer
|
|
61
|
+
* Kind 8: Authorizer configuration - p_f.
|
|
62
62
|
*
|
|
63
63
|
* https://graypaper.fluffylabs.dev/#/ab2cdbd/31c80231c802?v=0.7.2
|
|
64
64
|
*/
|
|
65
|
-
|
|
65
|
+
authConfiguration(): BytesBlob;
|
|
66
66
|
/**
|
|
67
|
-
* Kind 9: Authorization token
|
|
67
|
+
* Kind 9: Authorization token - p_j.
|
|
68
68
|
*
|
|
69
69
|
* https://graypaper.fluffylabs.dev/#/ab2cdbd/31cf0231cf02?v=0.7.2
|
|
70
70
|
*/
|
|
71
|
-
|
|
71
|
+
authToken(): BytesBlob;
|
|
72
72
|
/**
|
|
73
|
-
* Kind 10: Refinement context
|
|
73
|
+
* Kind 10: Refinement context - E(p_x).
|
|
74
74
|
*
|
|
75
75
|
* https://graypaper.fluffylabs.dev/#/ab2cdbd/31da0231da02?v=0.7.2
|
|
76
76
|
*/
|
|
77
|
-
refineContext(): BytesBlob
|
|
77
|
+
refineContext(): BytesBlob;
|
|
78
78
|
/**
|
|
79
|
-
* Kind 11: All work-item summaries
|
|
79
|
+
* Kind 11: All work-item summaries - E(↕[S(w) | w ← p_w]).
|
|
80
80
|
*
|
|
81
81
|
* https://graypaper.fluffylabs.dev/#/ab2cdbd/31f40231f402?v=0.7.2
|
|
82
82
|
*/
|
|
83
|
-
allWorkItems(): BytesBlob
|
|
83
|
+
allWorkItems(): BytesBlob;
|
|
84
84
|
/**
|
|
85
|
-
* Kind 12: Single work-item summary
|
|
85
|
+
* Kind 12: Single work-item summary - S(p_w[φ₁₁]).
|
|
86
86
|
*
|
|
87
87
|
* https://graypaper.fluffylabs.dev/#/ab2cdbd/31fc0231fc02?v=0.7.2
|
|
88
88
|
*/
|
|
89
89
|
oneWorkItem(workItem: U64): BytesBlob | null;
|
|
90
90
|
/**
|
|
91
|
-
* Kind 13: Work-item payload
|
|
91
|
+
* Kind 13: Work-item payload - p_w[φ₁₁]_y.
|
|
92
92
|
*
|
|
93
93
|
* https://graypaper.fluffylabs.dev/#/ab2cdbd/313b03313b03?v=0.7.2
|
|
94
94
|
*/
|
|
@@ -111,7 +111,7 @@ export interface IRefineFetch {
|
|
|
111
111
|
*/
|
|
112
112
|
constants(): BytesBlob;
|
|
113
113
|
/**
|
|
114
|
-
* Kind 1: Entropy pool
|
|
114
|
+
* Kind 1: Entropy pool - H₀ (zero hash).
|
|
115
115
|
*
|
|
116
116
|
* https://graypaper.fluffylabs.dev/#/ab2cdbd/2fe0012fe201?v=0.7.2
|
|
117
117
|
*/
|
|
@@ -121,7 +121,7 @@ export interface IRefineFetch {
|
|
|
121
121
|
*
|
|
122
122
|
* https://graypaper.fluffylabs.dev/#/ab2cdbd/314902314902?v=0.7.2
|
|
123
123
|
*/
|
|
124
|
-
authorizerTrace(): BytesBlob
|
|
124
|
+
authorizerTrace(): BytesBlob;
|
|
125
125
|
/**
|
|
126
126
|
* Kind 3 (other) / Kind 4 (my): Work-item extrinsics (x̄).
|
|
127
127
|
*
|
|
@@ -143,43 +143,43 @@ export interface IRefineFetch {
|
|
|
143
143
|
*/
|
|
144
144
|
workItemImport(workItem: U64 | null, index: U64): BytesBlob | null;
|
|
145
145
|
/**
|
|
146
|
-
* Kind 7: Encoded work package
|
|
146
|
+
* Kind 7: Encoded work package - E(p).
|
|
147
147
|
*
|
|
148
148
|
* https://graypaper.fluffylabs.dev/#/ab2cdbd/31c10231c102?v=0.7.2
|
|
149
149
|
*/
|
|
150
|
-
workPackage(): BytesBlob
|
|
150
|
+
workPackage(): BytesBlob;
|
|
151
151
|
/**
|
|
152
|
-
* Kind 8: Authorizer
|
|
152
|
+
* Kind 8: Authorizer configuration - p_f.
|
|
153
153
|
*
|
|
154
154
|
* https://graypaper.fluffylabs.dev/#/ab2cdbd/31c80231c802?v=0.7.2
|
|
155
155
|
*/
|
|
156
|
-
|
|
156
|
+
authConfiguration(): BytesBlob;
|
|
157
157
|
/**
|
|
158
|
-
* Kind 9: Authorization token
|
|
158
|
+
* Kind 9: Authorization token - p_j.
|
|
159
159
|
*
|
|
160
160
|
* https://graypaper.fluffylabs.dev/#/ab2cdbd/31cf0231cf02?v=0.7.2
|
|
161
161
|
*/
|
|
162
|
-
|
|
162
|
+
authToken(): BytesBlob;
|
|
163
163
|
/**
|
|
164
|
-
* Kind 10: Refinement context
|
|
164
|
+
* Kind 10: Refinement context - E(p_x).
|
|
165
165
|
*
|
|
166
166
|
* https://graypaper.fluffylabs.dev/#/ab2cdbd/31da0231da02?v=0.7.2
|
|
167
167
|
*/
|
|
168
|
-
refineContext(): BytesBlob
|
|
168
|
+
refineContext(): BytesBlob;
|
|
169
169
|
/**
|
|
170
|
-
* Kind 11: All work-item summaries
|
|
170
|
+
* Kind 11: All work-item summaries - E(↕[S(w) | w ← p_w]).
|
|
171
171
|
*
|
|
172
172
|
* https://graypaper.fluffylabs.dev/#/ab2cdbd/31f40231f402?v=0.7.2
|
|
173
173
|
*/
|
|
174
|
-
allWorkItems(): BytesBlob
|
|
174
|
+
allWorkItems(): BytesBlob;
|
|
175
175
|
/**
|
|
176
|
-
* Kind 12: Single work-item summary
|
|
176
|
+
* Kind 12: Single work-item summary - S(p_w[φ₁₁]).
|
|
177
177
|
*
|
|
178
178
|
* https://graypaper.fluffylabs.dev/#/ab2cdbd/31fc0231fc02?v=0.7.2
|
|
179
179
|
*/
|
|
180
180
|
oneWorkItem(workItem: U64): BytesBlob | null;
|
|
181
181
|
/**
|
|
182
|
-
* Kind 13: Work-item payload
|
|
182
|
+
* Kind 13: Work-item payload - p_w[φ₁₁]_y.
|
|
183
183
|
*
|
|
184
184
|
* https://graypaper.fluffylabs.dev/#/ab2cdbd/313b03313b03?v=0.7.2
|
|
185
185
|
*/
|
|
@@ -202,19 +202,19 @@ export interface IAccumulateFetch {
|
|
|
202
202
|
*/
|
|
203
203
|
constants(): BytesBlob;
|
|
204
204
|
/**
|
|
205
|
-
* Kind 1: Entropy pool
|
|
205
|
+
* Kind 1: Entropy pool - η'₀ (posterior entropy).
|
|
206
206
|
*
|
|
207
207
|
* https://graypaper.fluffylabs.dev/#/ab2cdbd/314302314602?v=0.7.2
|
|
208
208
|
*/
|
|
209
209
|
entropy(): EntropyHash;
|
|
210
210
|
/**
|
|
211
|
-
* Kind 14: All accumulation operands and transfers
|
|
211
|
+
* Kind 14: All accumulation operands and transfers - E(↕𝐢).
|
|
212
212
|
*
|
|
213
213
|
* https://graypaper.fluffylabs.dev/#/ab2cdbd/314e03314e03?v=0.7.2
|
|
214
214
|
*/
|
|
215
215
|
allTransfersAndOperands(): BytesBlob | null;
|
|
216
216
|
/**
|
|
217
|
-
* Kind 15: Single accumulation operand or transfer
|
|
217
|
+
* Kind 15: Single accumulation operand or transfer - E(𝐢[φ₁₁]).
|
|
218
218
|
*
|
|
219
219
|
* https://graypaper.fluffylabs.dev/#/ab2cdbd/315903315903?v=0.7.2
|
|
220
220
|
*/
|
|
@@ -246,8 +246,8 @@ export declare enum FetchKind {
|
|
|
246
246
|
OtherWorkItemImports = 5,
|
|
247
247
|
MyImports = 6,
|
|
248
248
|
WorkPackage = 7,
|
|
249
|
-
|
|
250
|
-
|
|
249
|
+
AuthConfiguration = 8,
|
|
250
|
+
AuthToken = 9,
|
|
251
251
|
RefineContext = 10,
|
|
252
252
|
AllWorkItems = 11,
|
|
253
253
|
OneWorkItem = 12,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jam-host-calls/general/fetch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAA8B,KAAK,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACpG,OAAO,EAAE,YAAY,EAAsC,MAAM,2BAA2B,CAAC;AAC7F,OAAO,EAAE,KAAK,WAAW,EAAiB,MAAM,0BAA0B,CAAC;AAK3E;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,oBAAY,YAAY;IACtB,YAAY,iBAAiB;IAC7B,MAAM,WAAW;IACjB,UAAU,eAAe;CAC1B;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC,YAAY,CAAC;IAE5C;;;;OAIG;IACH,SAAS,IAAI,SAAS,CAAC;IAEvB;;;;OAIG;IACH,WAAW,IAAI,SAAS,
|
|
1
|
+
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jam-host-calls/general/fetch.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@ import { HostCallResult } from "./results.js";
|
|
|
14
14
|
* Ω_Y signature: Ω_Y(ρ, φ, μ, p, n, r, i, ī, x̄, 𝐢, ...)
|
|
15
15
|
*
|
|
16
16
|
* Context parameter mapping
|
|
17
|
-
*
|
|
17
|
+
* IsAuthorized: Ω_Y(ρ, φ, μ, 𝐩, ∅, ∅, ∅, ∅, ∅, ∅, ∅)
|
|
18
18
|
* https://graypaper.fluffylabs.dev/#/ab2cdbd/2e43012e4301?v=0.7.2
|
|
19
19
|
* Refine: Ω_Y(ρ, φ, μ, p, H₀, r, i, ī, x̄, ∅, (m,e))
|
|
20
20
|
* https://graypaper.fluffylabs.dev/#/ab2cdbd/2fe0012fe001?v=0.7.2
|
|
@@ -22,13 +22,13 @@ import { HostCallResult } from "./results.js";
|
|
|
22
22
|
* https://graypaper.fluffylabs.dev/#/ab2cdbd/30c00030c000?v=0.7.2
|
|
23
23
|
*
|
|
24
24
|
* Kind availability per context:
|
|
25
|
-
* Kind 0 (constants)
|
|
26
|
-
* Kind 1 (n)
|
|
27
|
-
* Kind 2 (r)
|
|
28
|
-
* Kind 3-4 (x̄ extrinsics)
|
|
29
|
-
* Kind 5-6 (ī imports)
|
|
30
|
-
* Kind 7-13 (p work pkg)
|
|
31
|
-
* Kind 14-15 (𝐢 acc items)
|
|
25
|
+
* Kind 0 (constants) - all contexts
|
|
26
|
+
* Kind 1 (n) - Refine (H₀), Accumulate (η'₀)
|
|
27
|
+
* Kind 2 (r) - Refine only
|
|
28
|
+
* Kind 3-4 (x̄ extrinsics) - Refine only
|
|
29
|
+
* Kind 5-6 (ī imports) - Refine only
|
|
30
|
+
* Kind 7-13 (p work pkg) - IsAuthorized, Refine
|
|
31
|
+
* Kind 14-15 (𝐢 acc items) - Accumulate only
|
|
32
32
|
*/
|
|
33
33
|
export var FetchContext;
|
|
34
34
|
(function (FetchContext) {
|
|
@@ -76,25 +76,25 @@ export class Fetch {
|
|
|
76
76
|
}
|
|
77
77
|
getValue(kind, regs) {
|
|
78
78
|
const ext = this.fetch;
|
|
79
|
-
// Kind 0: constants
|
|
79
|
+
// Kind 0: constants - all contexts
|
|
80
80
|
if (kind === FetchKind.Constants) {
|
|
81
81
|
return ext.constants();
|
|
82
82
|
}
|
|
83
|
-
// Kind 1: entropy
|
|
83
|
+
// Kind 1: entropy - Refine, Accumulate
|
|
84
84
|
if (kind === FetchKind.Entropy) {
|
|
85
85
|
if (ext.context === FetchContext.IsAuthorized) {
|
|
86
86
|
return null;
|
|
87
87
|
}
|
|
88
88
|
return ext.entropy();
|
|
89
89
|
}
|
|
90
|
-
// Kind 2: authorizer trace
|
|
90
|
+
// Kind 2: authorizer trace - Refine only
|
|
91
91
|
if (kind === FetchKind.AuthorizerTrace) {
|
|
92
92
|
if (ext.context !== FetchContext.Refine) {
|
|
93
93
|
return null;
|
|
94
94
|
}
|
|
95
95
|
return ext.authorizerTrace();
|
|
96
96
|
}
|
|
97
|
-
// Kind 3: other work item extrinsics
|
|
97
|
+
// Kind 3: other work item extrinsics - Refine only
|
|
98
98
|
if (kind === FetchKind.OtherWorkItemExtrinsics) {
|
|
99
99
|
if (ext.context !== FetchContext.Refine) {
|
|
100
100
|
return null;
|
|
@@ -103,7 +103,7 @@ export class Fetch {
|
|
|
103
103
|
const index = regs.get(12);
|
|
104
104
|
return ext.workItemExtrinsic(workItem, index);
|
|
105
105
|
}
|
|
106
|
-
// Kind 4: my extrinsics
|
|
106
|
+
// Kind 4: my extrinsics - Refine only
|
|
107
107
|
if (kind === FetchKind.MyExtrinsics) {
|
|
108
108
|
if (ext.context !== FetchContext.Refine) {
|
|
109
109
|
return null;
|
|
@@ -111,7 +111,7 @@ export class Fetch {
|
|
|
111
111
|
const index = regs.get(11);
|
|
112
112
|
return ext.workItemExtrinsic(null, index);
|
|
113
113
|
}
|
|
114
|
-
// Kind 5: other work item imports
|
|
114
|
+
// Kind 5: other work item imports - Refine only
|
|
115
115
|
if (kind === FetchKind.OtherWorkItemImports) {
|
|
116
116
|
if (ext.context !== FetchContext.Refine) {
|
|
117
117
|
return null;
|
|
@@ -120,7 +120,7 @@ export class Fetch {
|
|
|
120
120
|
const index = regs.get(12);
|
|
121
121
|
return ext.workItemImport(workItem, index);
|
|
122
122
|
}
|
|
123
|
-
// Kind 6: my imports
|
|
123
|
+
// Kind 6: my imports - Refine only
|
|
124
124
|
if (kind === FetchKind.MyImports) {
|
|
125
125
|
if (ext.context !== FetchContext.Refine) {
|
|
126
126
|
return null;
|
|
@@ -128,42 +128,42 @@ export class Fetch {
|
|
|
128
128
|
const index = regs.get(11);
|
|
129
129
|
return ext.workItemImport(null, index);
|
|
130
130
|
}
|
|
131
|
-
// Kind 7: work package
|
|
131
|
+
// Kind 7: work package - IsAuthorized, Refine
|
|
132
132
|
if (kind === FetchKind.WorkPackage) {
|
|
133
133
|
if (ext.context === FetchContext.Accumulate) {
|
|
134
134
|
return null;
|
|
135
135
|
}
|
|
136
136
|
return ext.workPackage();
|
|
137
137
|
}
|
|
138
|
-
// Kind 8:
|
|
139
|
-
if (kind === FetchKind.
|
|
138
|
+
// Kind 8: auth configuration - IsAuthorized, Refine
|
|
139
|
+
if (kind === FetchKind.AuthConfiguration) {
|
|
140
140
|
if (ext.context === FetchContext.Accumulate) {
|
|
141
141
|
return null;
|
|
142
142
|
}
|
|
143
|
-
return ext.
|
|
143
|
+
return ext.authConfiguration();
|
|
144
144
|
}
|
|
145
|
-
// Kind 9: authorization token
|
|
146
|
-
if (kind === FetchKind.
|
|
145
|
+
// Kind 9: authorization token - IsAuthorized, Refine
|
|
146
|
+
if (kind === FetchKind.AuthToken) {
|
|
147
147
|
if (ext.context === FetchContext.Accumulate) {
|
|
148
148
|
return null;
|
|
149
149
|
}
|
|
150
|
-
return ext.
|
|
150
|
+
return ext.authToken();
|
|
151
151
|
}
|
|
152
|
-
// Kind 10: refine context
|
|
152
|
+
// Kind 10: refine context - IsAuthorized, Refine
|
|
153
153
|
if (kind === FetchKind.RefineContext) {
|
|
154
154
|
if (ext.context === FetchContext.Accumulate) {
|
|
155
155
|
return null;
|
|
156
156
|
}
|
|
157
157
|
return ext.refineContext();
|
|
158
158
|
}
|
|
159
|
-
// Kind 11: all work items
|
|
159
|
+
// Kind 11: all work items - IsAuthorized, Refine
|
|
160
160
|
if (kind === FetchKind.AllWorkItems) {
|
|
161
161
|
if (ext.context === FetchContext.Accumulate) {
|
|
162
162
|
return null;
|
|
163
163
|
}
|
|
164
164
|
return ext.allWorkItems();
|
|
165
165
|
}
|
|
166
|
-
// Kind 12: one work item
|
|
166
|
+
// Kind 12: one work item - IsAuthorized, Refine
|
|
167
167
|
if (kind === FetchKind.OneWorkItem) {
|
|
168
168
|
if (ext.context === FetchContext.Accumulate) {
|
|
169
169
|
return null;
|
|
@@ -171,7 +171,7 @@ export class Fetch {
|
|
|
171
171
|
const workItem = regs.get(11);
|
|
172
172
|
return ext.oneWorkItem(workItem);
|
|
173
173
|
}
|
|
174
|
-
// Kind 13: work item payload
|
|
174
|
+
// Kind 13: work item payload - IsAuthorized, Refine
|
|
175
175
|
if (kind === FetchKind.WorkItemPayload) {
|
|
176
176
|
if (ext.context === FetchContext.Accumulate) {
|
|
177
177
|
return null;
|
|
@@ -179,14 +179,14 @@ export class Fetch {
|
|
|
179
179
|
const workItem = regs.get(11);
|
|
180
180
|
return ext.workItemPayload(workItem);
|
|
181
181
|
}
|
|
182
|
-
// Kind 14: all transfers and operands
|
|
182
|
+
// Kind 14: all transfers and operands - Accumulate only
|
|
183
183
|
if (kind === FetchKind.AllTransfersAndOperands) {
|
|
184
184
|
if (ext.context !== FetchContext.Accumulate) {
|
|
185
185
|
return null;
|
|
186
186
|
}
|
|
187
187
|
return ext.allTransfersAndOperands();
|
|
188
188
|
}
|
|
189
|
-
// Kind 15: one transfer or operand
|
|
189
|
+
// Kind 15: one transfer or operand - Accumulate only
|
|
190
190
|
if (kind === FetchKind.OneTransferOrOperand) {
|
|
191
191
|
if (ext.context !== FetchContext.Accumulate) {
|
|
192
192
|
return null;
|
|
@@ -207,8 +207,8 @@ export var FetchKind;
|
|
|
207
207
|
FetchKind[FetchKind["OtherWorkItemImports"] = 5] = "OtherWorkItemImports";
|
|
208
208
|
FetchKind[FetchKind["MyImports"] = 6] = "MyImports";
|
|
209
209
|
FetchKind[FetchKind["WorkPackage"] = 7] = "WorkPackage";
|
|
210
|
-
FetchKind[FetchKind["
|
|
211
|
-
FetchKind[FetchKind["
|
|
210
|
+
FetchKind[FetchKind["AuthConfiguration"] = 8] = "AuthConfiguration";
|
|
211
|
+
FetchKind[FetchKind["AuthToken"] = 9] = "AuthToken";
|
|
212
212
|
FetchKind[FetchKind["RefineContext"] = 10] = "RefineContext";
|
|
213
213
|
FetchKind[FetchKind["AllWorkItems"] = 11] = "AllWorkItems";
|
|
214
214
|
FetchKind[FetchKind["OneWorkItem"] = 12] = "OneWorkItem";
|