@typeberry/lib 0.5.4 → 0.5.5
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/json-parser/descriptors.d.ts.map +1 -1
- package/packages/core/json-parser/descriptors.js +3 -0
- package/packages/core/json-parser/index.test.js +30 -0
- package/packages/core/networking/package.json +1 -1
- package/packages/core/telemetry/package.json +1 -1
- package/packages/core/utils/compatibility.d.ts +0 -1
- package/packages/core/utils/compatibility.d.ts.map +1 -1
- package/packages/core/utils/compatibility.js +1 -2
- package/packages/core/utils/compatibility.test.js +6 -10
- package/packages/jam/block/index.d.ts +11 -11
- package/packages/jam/block/index.d.ts.map +1 -1
- package/packages/jam/block/index.js +11 -11
- package/packages/jam/block-json/block.d.ts +25 -25
- package/packages/jam/database-lmdb/states.test.js +3 -5
- package/packages/jam/fuzz-proto/v1/types.d.ts +1 -1
- package/packages/jam/jam-host-calls/accumulate/bless.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/accumulate/bless.js +6 -10
- package/packages/jam/jam-host-calls/accumulate/bless.test.js +32 -72
- package/packages/jam/jam-host-calls/accumulate/new.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/accumulate/new.js +2 -4
- package/packages/jam/jam-host-calls/accumulate/new.test.js +4 -5
- package/packages/jam/jam-host-calls/general/fetch.d.ts +1 -57
- package/packages/jam/jam-host-calls/general/fetch.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/general/fetch.js +6 -29
- package/packages/jam/jam-host-calls/general/fetch.test.js +2 -58
- package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.d.ts +4 -4
- package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.d.ts +13 -13
- package/packages/jam/jamnp-s/protocol/up-0-block-announcement.d.ts +1 -1
- package/packages/jam/node/package.json +1 -1
- package/packages/jam/node/reader.d.ts +25 -25
- package/packages/jam/node/workers.d.ts +183 -183
- package/packages/jam/state/accumulation-queue.d.ts +26 -26
- package/packages/jam/state/assurances.d.ts +26 -26
- package/packages/jam/state/privileged-services.d.ts +1 -1
- package/packages/jam/state/privileged-services.d.ts.map +1 -1
- package/packages/jam/state/privileged-services.js +1 -6
- package/packages/jam/state/service.d.ts +1 -1
- package/packages/jam/state/service.d.ts.map +1 -1
- package/packages/jam/state/statistics.d.ts +0 -8
- package/packages/jam/state/statistics.d.ts.map +1 -1
- package/packages/jam/state/statistics.js +14 -44
- package/packages/jam/state/statistics.test.js +1 -8
- package/packages/jam/state/test.utils.d.ts +1 -1
- package/packages/jam/state/test.utils.d.ts.map +1 -1
- package/packages/jam/state/test.utils.js +4 -22
- package/packages/jam/state-json/accounts.d.ts +10 -0
- package/packages/jam/state-json/accounts.d.ts.map +1 -1
- package/packages/jam/state-json/accounts.js +47 -19
- package/packages/jam/state-json/dump.d.ts.map +1 -1
- package/packages/jam/state-json/dump.js +5 -9
- package/packages/jam/state-json/dump.test.js +2 -10
- package/packages/jam/state-json/statistics.d.ts +1 -1
- package/packages/jam/state-json/statistics.d.ts.map +1 -1
- package/packages/jam/state-json/statistics.js +1 -13
- package/packages/jam/state-merkleization/in-memory-state-codec.d.ts +29 -31
- package/packages/jam/state-merkleization/in-memory-state-codec.d.ts.map +1 -1
- package/packages/jam/state-merkleization/serialize.d.ts +4 -4
- package/packages/jam/state-merkleization/serialize.d.ts.map +1 -1
- package/packages/jam/state-merkleization/serialize.js +5 -8
- package/packages/jam/state-merkleization/serialized-state-view.d.ts.map +1 -1
- package/packages/jam/state-merkleization/state-entries.test.js +1 -7
- package/packages/jam/state-vectors/index.d.ts +75 -75
- package/packages/jam/transition/accumulate/accumulate-state.d.ts +1 -2
- package/packages/jam/transition/accumulate/accumulate-state.d.ts.map +1 -1
- package/packages/jam/transition/accumulate/accumulate-utils.d.ts.map +1 -1
- package/packages/jam/transition/accumulate/accumulate-utils.js +2 -6
- package/packages/jam/transition/accumulate/accumulate-utils.test.js +2 -4
- package/packages/jam/transition/accumulate/accumulate.d.ts.map +1 -1
- package/packages/jam/transition/accumulate/accumulate.js +11 -20
- package/packages/jam/transition/accumulate/index.d.ts +0 -1
- package/packages/jam/transition/accumulate/index.d.ts.map +1 -1
- package/packages/jam/transition/accumulate/index.js +0 -1
- package/packages/jam/transition/accumulate/operand.d.ts +7 -7
- package/packages/jam/transition/chain-stf.d.ts +3 -5
- package/packages/jam/transition/chain-stf.d.ts.map +1 -1
- package/packages/jam/transition/chain-stf.js +5 -29
- package/packages/jam/transition/disputes/disputes.test.data2.d.ts +3 -3
- package/packages/jam/transition/disputes/disputes.test.data2.d.ts.map +1 -1
- package/packages/jam/transition/externalities/accumulate-externalities.d.ts.map +1 -1
- package/packages/jam/transition/externalities/accumulate-externalities.js +22 -49
- package/packages/jam/transition/externalities/accumulate-externalities.test.js +8 -72
- package/packages/jam/transition/externalities/fetch-externalities.d.ts +3 -22
- package/packages/jam/transition/externalities/fetch-externalities.d.ts.map +1 -1
- package/packages/jam/transition/externalities/fetch-externalities.js +3 -55
- package/packages/jam/transition/externalities/fetch-externalities.test.js +199 -112
- package/packages/jam/transition/statistics.d.ts +0 -7
- package/packages/jam/transition/statistics.d.ts.map +1 -1
- package/packages/jam/transition/statistics.js +2 -11
- package/packages/jam/transition/statistics.test.js +0 -40
- package/packages/workers/block-authorship/generator.test.d.ts +2 -0
- package/packages/workers/block-authorship/generator.test.d.ts.map +1 -0
- package/packages/workers/block-authorship/generator.test.js +200 -0
- package/packages/workers/block-authorship/package.json +1 -1
- package/packages/workers/block-authorship/protocol.d.ts +50 -50
- package/packages/workers/importer/package.json +1 -1
- package/packages/workers/importer/protocol.d.ts +54 -54
- package/packages/workers/jam-network/protocol.d.ts +79 -79
- package/packages/jam/transition/accumulate/deferred-transfers.d.ts +0 -36
- package/packages/jam/transition/accumulate/deferred-transfers.d.ts.map +0 -1
- package/packages/jam/transition/accumulate/deferred-transfers.js +0 -94
|
@@ -4,7 +4,7 @@ import type { ChainSpec } from "#@typeberry/config";
|
|
|
4
4
|
import { type general, PendingTransfer } from "#@typeberry/jam-host-calls";
|
|
5
5
|
import { type U64 } from "#@typeberry/numbers";
|
|
6
6
|
import { Operand } from "../accumulate/operand.js";
|
|
7
|
-
declare enum TransferOperandKind {
|
|
7
|
+
export declare enum TransferOperandKind {
|
|
8
8
|
OPERAND = 0,
|
|
9
9
|
TRANSFER = 1
|
|
10
10
|
}
|
|
@@ -15,24 +15,11 @@ export type TransferOrOperand = {
|
|
|
15
15
|
kind: TransferOperandKind.TRANSFER;
|
|
16
16
|
value: PendingTransfer;
|
|
17
17
|
};
|
|
18
|
+
export declare const TRANSFER_OR_OPERAND: import("@typeberry/codec").Descriptor<TransferOrOperand, TransferOrOperand>;
|
|
18
19
|
declare enum FetchContext {
|
|
19
20
|
Accumulate = 0,
|
|
20
|
-
|
|
21
|
-
LegacyAccumulate = 1,
|
|
22
|
-
/** @deprecated since 0.7.1 */
|
|
23
|
-
LegacyOnTransfer = 2,
|
|
24
|
-
Refine = 3
|
|
21
|
+
Refine = 1
|
|
25
22
|
}
|
|
26
|
-
type LegacyAccumulateFetchData = {
|
|
27
|
-
context: FetchContext.LegacyAccumulate;
|
|
28
|
-
entropy: EntropyHash;
|
|
29
|
-
operands: Operand[];
|
|
30
|
-
};
|
|
31
|
-
type LegacyOnTransferFetchData = {
|
|
32
|
-
context: FetchContext.LegacyOnTransfer;
|
|
33
|
-
entropy: EntropyHash;
|
|
34
|
-
transfers: PendingTransfer[];
|
|
35
|
-
};
|
|
36
23
|
type AccumulateFetchData = {
|
|
37
24
|
context: FetchContext.Accumulate;
|
|
38
25
|
entropy: EntropyHash;
|
|
@@ -47,9 +34,7 @@ export declare class FetchExternalities implements general.IFetchExternalities {
|
|
|
47
34
|
private fetchData;
|
|
48
35
|
private chainSpec;
|
|
49
36
|
private constructor();
|
|
50
|
-
static createForPre071Accumulate(fetchData: Omit<LegacyAccumulateFetchData, "context">, chainSpec: ChainSpec): FetchExternalities;
|
|
51
37
|
static createForAccumulate(fetchData: Omit<AccumulateFetchData, "context">, chainSpec: ChainSpec): FetchExternalities;
|
|
52
|
-
static createForOnTransfer(fetchData: Omit<LegacyOnTransferFetchData, "context">, chainSpec: ChainSpec): FetchExternalities;
|
|
53
38
|
static createForRefine(fetchData: Omit<RefineFetchData, "context">, chainSpec: ChainSpec): FetchExternalities;
|
|
54
39
|
constants(): BytesBlob;
|
|
55
40
|
entropy(): BytesBlob | null;
|
|
@@ -63,10 +48,6 @@ export declare class FetchExternalities implements general.IFetchExternalities {
|
|
|
63
48
|
allWorkItems(): BytesBlob | null;
|
|
64
49
|
oneWorkItem(_workItem: U64): BytesBlob | null;
|
|
65
50
|
workItemPayload(_workItem: U64): BytesBlob | null;
|
|
66
|
-
allOperands(): BytesBlob | null;
|
|
67
|
-
oneOperand(operandIndex: U64): BytesBlob | null;
|
|
68
|
-
allTransfers(): BytesBlob | null;
|
|
69
|
-
oneTransfer(transferIndex: U64): BytesBlob | null;
|
|
70
51
|
allTransfersAndOperands(): BytesBlob | null;
|
|
71
52
|
oneTransferOrOperand(index: U64): BytesBlob | null;
|
|
72
53
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch-externalities.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/transition/externalities/fetch-externalities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAGpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,KAAK,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EAAgC,KAAK,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAQ5E,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAInD,
|
|
1
|
+
{"version":3,"file":"fetch-externalities.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/transition/externalities/fetch-externalities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAGpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,KAAK,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EAAgC,KAAK,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAQ5E,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAInD,oBAAY,mBAAmB;IAC7B,OAAO,IAAI;IACX,QAAQ,IAAI;CACb;AAED,MAAM,MAAM,iBAAiB,GACzB;IACE,IAAI,EAAE,mBAAmB,CAAC,OAAO,CAAC;IAClC,KAAK,EAAE,OAAO,CAAC;CAChB,GACD;IACE,IAAI,EAAE,mBAAmB,CAAC,QAAQ,CAAC;IACnC,KAAK,EAAE,eAAe,CAAC;CACxB,CAAC;AAEN,eAAO,MAAM,mBAAmB,6EAG9B,CAAC;AA2FH,aAAK,YAAY;IACf,UAAU,IAAI;IACd,MAAM,IAAI;CACX;AAED,KAAK,mBAAmB,GAAG;IACzB,OAAO,EAAE,YAAY,CAAC,UAAU,CAAC;IACjC,OAAO,EAAE,WAAW,CAAC;IACrB,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,OAAO,EAAE,YAAY,CAAC,MAAM,CAAC;IAE7B,OAAO,EAAE,SAAS,CAAC;CACpB,CAAC;AAOF,qBAAa,kBAAmB,YAAW,OAAO,CAAC,mBAAmB;IAElE,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,SAAS;IAFnB,OAAO;IAKP,MAAM,CAAC,mBAAmB,CACxB,SAAS,EAAE,IAAI,CAAC,mBAAmB,EAAE,SAAS,CAAC,EAC/C,SAAS,EAAE,SAAS,GACnB,kBAAkB;IAIrB,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,EAAE,SAAS,EAAE,SAAS,GAAG,kBAAkB;IAI7G,SAAS,IAAI,SAAS;IAItB,OAAO,IAAI,SAAS,GAAG,IAAI;IAS3B,eAAe,IAAI,SAAS,GAAG,IAAI;IAInC,iBAAiB,CAAC,SAAS,EAAE,GAAG,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,SAAS,GAAG,IAAI;IAIvE,cAAc,CAAC,SAAS,EAAE,GAAG,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,SAAS,GAAG,IAAI;IAIpE,WAAW,IAAI,SAAS,GAAG,IAAI;IAI/B,UAAU,IAAI,SAAS,GAAG,IAAI;IAI9B,kBAAkB,IAAI,SAAS,GAAG,IAAI;IAItC,aAAa,IAAI,SAAS,GAAG,IAAI;IAIjC,YAAY,IAAI,SAAS,GAAG,IAAI;IAIhC,WAAW,CAAC,SAAS,EAAE,GAAG,GAAG,SAAS,GAAG,IAAI;IAI7C,eAAe,CAAC,SAAS,EAAE,GAAG,GAAG,SAAS,GAAG,IAAI;IAIjD,uBAAuB,IAAI,SAAS,GAAG,IAAI;IAa3C,oBAAoB,CAAC,KAAK,EAAE,GAAG,GAAG,SAAS,GAAG,IAAI;CAuBnD"}
|
|
@@ -8,12 +8,12 @@ import { GAS_TO_INVOKE_WORK_REPORT } from "../accumulate/accumulate-state.js";
|
|
|
8
8
|
import { Operand } from "../accumulate/operand.js";
|
|
9
9
|
import { REPORT_TIMEOUT_GRACE_PERIOD } from "../assurances.js";
|
|
10
10
|
import { MAX_WORK_REPORT_SIZE_BYTES } from "../reports/verify-basic.js";
|
|
11
|
-
var TransferOperandKind;
|
|
11
|
+
export var TransferOperandKind;
|
|
12
12
|
(function (TransferOperandKind) {
|
|
13
13
|
TransferOperandKind[TransferOperandKind["OPERAND"] = 0] = "OPERAND";
|
|
14
14
|
TransferOperandKind[TransferOperandKind["TRANSFER"] = 1] = "TRANSFER";
|
|
15
15
|
})(TransferOperandKind || (TransferOperandKind = {}));
|
|
16
|
-
const TRANSFER_OR_OPERAND = codec.union("TransferOrOperand", {
|
|
16
|
+
export const TRANSFER_OR_OPERAND = codec.union("TransferOrOperand", {
|
|
17
17
|
[TransferOperandKind.OPERAND]: codec.object({ value: Operand.Codec }),
|
|
18
18
|
[TransferOperandKind.TRANSFER]: codec.object({ value: PendingTransfer.Codec }),
|
|
19
19
|
});
|
|
@@ -102,11 +102,7 @@ function getEncodedConstants(chainSpec) {
|
|
|
102
102
|
var FetchContext;
|
|
103
103
|
(function (FetchContext) {
|
|
104
104
|
FetchContext[FetchContext["Accumulate"] = 0] = "Accumulate";
|
|
105
|
-
|
|
106
|
-
FetchContext[FetchContext["LegacyAccumulate"] = 1] = "LegacyAccumulate";
|
|
107
|
-
/** @deprecated since 0.7.1 */
|
|
108
|
-
FetchContext[FetchContext["LegacyOnTransfer"] = 2] = "LegacyOnTransfer";
|
|
109
|
-
FetchContext[FetchContext["Refine"] = 3] = "Refine";
|
|
105
|
+
FetchContext[FetchContext["Refine"] = 1] = "Refine";
|
|
110
106
|
})(FetchContext || (FetchContext = {}));
|
|
111
107
|
export class FetchExternalities {
|
|
112
108
|
fetchData;
|
|
@@ -115,15 +111,9 @@ export class FetchExternalities {
|
|
|
115
111
|
this.fetchData = fetchData;
|
|
116
112
|
this.chainSpec = chainSpec;
|
|
117
113
|
}
|
|
118
|
-
static createForPre071Accumulate(fetchData, chainSpec) {
|
|
119
|
-
return new FetchExternalities({ context: FetchContext.LegacyAccumulate, ...fetchData }, chainSpec);
|
|
120
|
-
}
|
|
121
114
|
static createForAccumulate(fetchData, chainSpec) {
|
|
122
115
|
return new FetchExternalities({ context: FetchContext.Accumulate, ...fetchData }, chainSpec);
|
|
123
116
|
}
|
|
124
|
-
static createForOnTransfer(fetchData, chainSpec) {
|
|
125
|
-
return new FetchExternalities({ context: FetchContext.LegacyOnTransfer, ...fetchData }, chainSpec);
|
|
126
|
-
}
|
|
127
117
|
static createForRefine(fetchData, chainSpec) {
|
|
128
118
|
return new FetchExternalities({ context: FetchContext.Refine, ...fetchData }, chainSpec);
|
|
129
119
|
}
|
|
@@ -167,48 +157,6 @@ export class FetchExternalities {
|
|
|
167
157
|
workItemPayload(_workItem) {
|
|
168
158
|
return null;
|
|
169
159
|
}
|
|
170
|
-
allOperands() {
|
|
171
|
-
if (this.fetchData.context === FetchContext.LegacyAccumulate) {
|
|
172
|
-
const operands = this.fetchData.operands;
|
|
173
|
-
return Encoder.encodeObject(codec.sequenceVarLen(Operand.Codec), operands, this.chainSpec);
|
|
174
|
-
}
|
|
175
|
-
return null;
|
|
176
|
-
}
|
|
177
|
-
oneOperand(operandIndex) {
|
|
178
|
-
if (this.fetchData.context === FetchContext.LegacyAccumulate) {
|
|
179
|
-
const { operands } = this.fetchData;
|
|
180
|
-
if (operandIndex >= 2n ** 32n) {
|
|
181
|
-
return null;
|
|
182
|
-
}
|
|
183
|
-
const operand = operands[Number(operandIndex)];
|
|
184
|
-
if (operand === undefined) {
|
|
185
|
-
return null;
|
|
186
|
-
}
|
|
187
|
-
return Encoder.encodeObject(Operand.Codec, operand, this.chainSpec);
|
|
188
|
-
}
|
|
189
|
-
return null;
|
|
190
|
-
}
|
|
191
|
-
allTransfers() {
|
|
192
|
-
if (this.fetchData.context === FetchContext.LegacyOnTransfer) {
|
|
193
|
-
const { transfers } = this.fetchData;
|
|
194
|
-
return Encoder.encodeObject(codec.sequenceVarLen(PendingTransfer.Codec), transfers, this.chainSpec);
|
|
195
|
-
}
|
|
196
|
-
return null;
|
|
197
|
-
}
|
|
198
|
-
oneTransfer(transferIndex) {
|
|
199
|
-
if (this.fetchData.context === FetchContext.LegacyOnTransfer) {
|
|
200
|
-
const { transfers } = this.fetchData;
|
|
201
|
-
if (transferIndex >= 2n ** 32n) {
|
|
202
|
-
return null;
|
|
203
|
-
}
|
|
204
|
-
const transfer = transfers[Number(transferIndex)];
|
|
205
|
-
if (transfer === undefined) {
|
|
206
|
-
return null;
|
|
207
|
-
}
|
|
208
|
-
return Encoder.encodeObject(PendingTransfer.Codec, transfer, this.chainSpec);
|
|
209
|
-
}
|
|
210
|
-
return null;
|
|
211
|
-
}
|
|
212
160
|
allTransfersAndOperands() {
|
|
213
161
|
if (this.fetchData.context === FetchContext.Accumulate) {
|
|
214
162
|
const { transfers, operands } = this.fetchData;
|
|
@@ -10,7 +10,7 @@ import { TRANSFER_MEMO_BYTES } from "#@typeberry/jam-host-calls/externalities/pa
|
|
|
10
10
|
import { PendingTransfer } from "#@typeberry/jam-host-calls/externalities/pending-transfer.js";
|
|
11
11
|
import { tryAsU64 } from "#@typeberry/numbers";
|
|
12
12
|
import { Operand } from "../accumulate/operand.js";
|
|
13
|
-
import { FetchExternalities } from "./fetch-externalities.js";
|
|
13
|
+
import { FetchExternalities, TRANSFER_OR_OPERAND, TransferOperandKind, } from "./fetch-externalities.js";
|
|
14
14
|
describe("fetch-externalities", () => {
|
|
15
15
|
const prepareOperands = (length) => {
|
|
16
16
|
const operands = [];
|
|
@@ -40,17 +40,30 @@ describe("fetch-externalities", () => {
|
|
|
40
40
|
}
|
|
41
41
|
return transfers;
|
|
42
42
|
};
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
43
|
+
// allTransfersAndOperands: transfers first, then operands
|
|
44
|
+
const toAllTransfersAndOperands = (operands, transfers) => {
|
|
45
|
+
return [
|
|
46
|
+
...transfers.map((t) => ({ kind: TransferOperandKind.TRANSFER, value: t })),
|
|
47
|
+
...operands.map((o) => ({ kind: TransferOperandKind.OPERAND, value: o })),
|
|
48
|
+
];
|
|
49
|
+
};
|
|
50
|
+
// oneTransferOrOperand: operands first (index < operands.length), then transfers
|
|
51
|
+
const toOneTransferOrOperandAt = (operands, transfers, index) => {
|
|
52
|
+
if (index >= operands.length + transfers.length) {
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
if (index < operands.length) {
|
|
56
|
+
return { kind: TransferOperandKind.OPERAND, value: operands[index] };
|
|
57
|
+
}
|
|
58
|
+
return { kind: TransferOperandKind.TRANSFER, value: transfers[index - operands.length] };
|
|
59
|
+
};
|
|
60
|
+
const encodeOneTransferOrOperand = (item, chainSpec) => {
|
|
61
|
+
if (item === null) {
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
return Encoder.encodeObject(TRANSFER_OR_OPERAND, item, chainSpec);
|
|
52
65
|
};
|
|
53
|
-
const
|
|
66
|
+
const prepareAccumulateData = ({ chainSpec, operands, entropy, transfers, }) => {
|
|
54
67
|
const defaultChainSpec = tinyChainSpec;
|
|
55
68
|
const defaultEntropy = Bytes.zero(HASH_SIZE).asOpaque();
|
|
56
69
|
const defaultOperands = [];
|
|
@@ -60,108 +73,182 @@ describe("fetch-externalities", () => {
|
|
|
60
73
|
operands: operands ?? defaultOperands,
|
|
61
74
|
transfers: transfers ?? defaultTransfers,
|
|
62
75
|
};
|
|
63
|
-
return FetchExternalities.
|
|
76
|
+
return FetchExternalities.createForAccumulate(fetchData, chainSpec ?? defaultChainSpec);
|
|
64
77
|
};
|
|
65
|
-
|
|
66
|
-
const
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
78
|
+
const prepareRefineData = ({ chainSpec } = {}) => {
|
|
79
|
+
const defaultChainSpec = tinyChainSpec;
|
|
80
|
+
return FetchExternalities.createForRefine({ entropy: undefined }, chainSpec ?? defaultChainSpec);
|
|
81
|
+
};
|
|
82
|
+
describe("Accumulate", () => {
|
|
83
|
+
it("should return different constants for different chain specs", () => {
|
|
84
|
+
const tinyFetchExternalities = prepareAccumulateData({ chainSpec: tinyChainSpec });
|
|
85
|
+
const fullFetchExternalities = prepareAccumulateData({ chainSpec: fullChainSpec });
|
|
86
|
+
const tinyConstants = tinyFetchExternalities.constants();
|
|
87
|
+
const fullConstants = fullFetchExternalities.constants();
|
|
88
|
+
assert.notStrictEqual(tinyConstants.length, 0);
|
|
89
|
+
assert.notStrictEqual(fullConstants.length, 0);
|
|
90
|
+
assert.notDeepStrictEqual(tinyConstants, fullConstants);
|
|
91
|
+
});
|
|
92
|
+
it("should return entropy hash", () => {
|
|
93
|
+
const expectedEntropy = Bytes.fill(HASH_SIZE, 5).asOpaque();
|
|
94
|
+
const fetchExternalities = prepareAccumulateData({ entropy: expectedEntropy });
|
|
95
|
+
const entropy = fetchExternalities.entropy();
|
|
96
|
+
assert.deepStrictEqual(entropy, expectedEntropy);
|
|
97
|
+
});
|
|
98
|
+
it("should return all transfers and operands", () => {
|
|
99
|
+
const operands = prepareOperands(3);
|
|
100
|
+
const transfers = prepareTransfers(2);
|
|
101
|
+
const chainSpec = tinyChainSpec;
|
|
102
|
+
const expected = toAllTransfersAndOperands(operands, transfers);
|
|
103
|
+
const encodedExpected = Encoder.encodeObject(codec.sequenceVarLen(TRANSFER_OR_OPERAND), expected, chainSpec);
|
|
104
|
+
const fetchExternalities = prepareAccumulateData({ operands, transfers, chainSpec });
|
|
105
|
+
const result = fetchExternalities.allTransfersAndOperands();
|
|
106
|
+
assert.deepStrictEqual(result, encodedExpected);
|
|
107
|
+
});
|
|
108
|
+
it("should return empty encoded sequence when no transfers and no operands", () => {
|
|
109
|
+
const chainSpec = tinyChainSpec;
|
|
110
|
+
const encodedExpected = Encoder.encodeObject(codec.sequenceVarLen(TRANSFER_OR_OPERAND), [], chainSpec);
|
|
111
|
+
const fetchExternalities = prepareAccumulateData({ operands: [], transfers: [], chainSpec });
|
|
112
|
+
const result = fetchExternalities.allTransfersAndOperands();
|
|
113
|
+
assert.deepStrictEqual(result, encodedExpected);
|
|
114
|
+
});
|
|
115
|
+
it("should return one operand by index", () => {
|
|
116
|
+
const operands = prepareOperands(3);
|
|
117
|
+
const transfers = prepareTransfers(2);
|
|
118
|
+
const chainSpec = tinyChainSpec;
|
|
119
|
+
const encodedExpected = encodeOneTransferOrOperand(toOneTransferOrOperandAt(operands, transfers, 0), chainSpec);
|
|
120
|
+
const fetchExternalities = prepareAccumulateData({ operands, transfers, chainSpec });
|
|
121
|
+
// Operands come first (indices 0..2), then transfers (indices 3..4)
|
|
122
|
+
const result = fetchExternalities.oneTransferOrOperand(tryAsU64(0));
|
|
123
|
+
assert.deepStrictEqual(result, encodedExpected);
|
|
124
|
+
});
|
|
125
|
+
it("should return one transfer by index", () => {
|
|
126
|
+
const operands = prepareOperands(3);
|
|
127
|
+
const transfers = prepareTransfers(2);
|
|
128
|
+
const chainSpec = tinyChainSpec;
|
|
129
|
+
const encodedExpected = encodeOneTransferOrOperand(toOneTransferOrOperandAt(operands, transfers, 3), chainSpec);
|
|
130
|
+
const fetchExternalities = prepareAccumulateData({ operands, transfers, chainSpec });
|
|
131
|
+
// Transfers start after operands, so index 3 is the first transfer
|
|
132
|
+
const result = fetchExternalities.oneTransferOrOperand(tryAsU64(3));
|
|
133
|
+
assert.deepStrictEqual(result, encodedExpected);
|
|
134
|
+
});
|
|
135
|
+
it("should return null when index is out of bounds", () => {
|
|
136
|
+
const operands = prepareOperands(3);
|
|
137
|
+
const transfers = prepareTransfers(2);
|
|
138
|
+
const chainSpec = tinyChainSpec;
|
|
139
|
+
const fetchExternalities = prepareAccumulateData({ operands, transfers, chainSpec });
|
|
140
|
+
// Total items: 3 operands + 2 transfers = 5, so index 5 is out of bounds
|
|
141
|
+
const result = fetchExternalities.oneTransferOrOperand(tryAsU64(5));
|
|
142
|
+
assert.strictEqual(result, null);
|
|
143
|
+
});
|
|
144
|
+
it("should return null when index is far out of bounds", () => {
|
|
145
|
+
const operands = prepareOperands(3);
|
|
146
|
+
const transfers = prepareTransfers(2);
|
|
147
|
+
const chainSpec = tinyChainSpec;
|
|
148
|
+
const fetchExternalities = prepareAccumulateData({ operands, transfers, chainSpec });
|
|
149
|
+
const result = fetchExternalities.oneTransferOrOperand(tryAsU64(153));
|
|
150
|
+
assert.strictEqual(result, null);
|
|
151
|
+
});
|
|
152
|
+
it("should have consistent encoding between all and one", () => {
|
|
153
|
+
const operands = prepareOperands(2);
|
|
154
|
+
const transfers = prepareTransfers(2);
|
|
155
|
+
const chainSpec = tinyChainSpec;
|
|
156
|
+
const allItems = toAllTransfersAndOperands(operands, transfers);
|
|
157
|
+
const encodedAll = Encoder.encodeObject(codec.sequenceVarLen(TRANSFER_OR_OPERAND), allItems, chainSpec);
|
|
158
|
+
const fetchExternalities = prepareAccumulateData({ operands, transfers, chainSpec });
|
|
159
|
+
const all = fetchExternalities.allTransfersAndOperands();
|
|
160
|
+
assert.deepStrictEqual(all, encodedAll);
|
|
161
|
+
for (let i = 0; i < operands.length + transfers.length; i++) {
|
|
162
|
+
const one = fetchExternalities.oneTransferOrOperand(tryAsU64(i));
|
|
163
|
+
const encodedOne = encodeOneTransferOrOperand(toOneTransferOrOperandAt(operands, transfers, i), chainSpec);
|
|
164
|
+
assert.deepStrictEqual(one, encodedOne, `Mismatch at index ${i}`);
|
|
165
|
+
}
|
|
166
|
+
const outOfRange = fetchExternalities.oneTransferOrOperand(tryAsU64(operands.length + transfers.length));
|
|
167
|
+
assert.strictEqual(outOfRange, null);
|
|
168
|
+
});
|
|
169
|
+
it("should handle only operands without transfers", () => {
|
|
170
|
+
const operands = prepareOperands(5);
|
|
171
|
+
const chainSpec = tinyChainSpec;
|
|
172
|
+
const allItems = toAllTransfersAndOperands(operands, []);
|
|
173
|
+
const encodedAll = Encoder.encodeObject(codec.sequenceVarLen(TRANSFER_OR_OPERAND), allItems, chainSpec);
|
|
174
|
+
const fetchExternalities = prepareAccumulateData({ operands, transfers: [], chainSpec });
|
|
175
|
+
const result = fetchExternalities.allTransfersAndOperands();
|
|
176
|
+
assert.deepStrictEqual(result, encodedAll);
|
|
177
|
+
for (let i = 0; i < operands.length; i++) {
|
|
178
|
+
const one = fetchExternalities.oneTransferOrOperand(tryAsU64(i));
|
|
179
|
+
const encodedOne = encodeOneTransferOrOperand(toOneTransferOrOperandAt(operands, [], i), chainSpec);
|
|
180
|
+
assert.deepStrictEqual(one, encodedOne, `Mismatch at operand index ${i}`);
|
|
181
|
+
}
|
|
182
|
+
const outOfRange = fetchExternalities.oneTransferOrOperand(tryAsU64(operands.length));
|
|
183
|
+
assert.strictEqual(outOfRange, null);
|
|
184
|
+
});
|
|
185
|
+
it("should handle only transfers without operands", () => {
|
|
186
|
+
const transfers = prepareTransfers(5);
|
|
187
|
+
const chainSpec = tinyChainSpec;
|
|
188
|
+
const allItems = toAllTransfersAndOperands([], transfers);
|
|
189
|
+
const encodedAll = Encoder.encodeObject(codec.sequenceVarLen(TRANSFER_OR_OPERAND), allItems, chainSpec);
|
|
190
|
+
const fetchExternalities = prepareAccumulateData({ operands: [], transfers, chainSpec });
|
|
191
|
+
const result = fetchExternalities.allTransfersAndOperands();
|
|
192
|
+
assert.deepStrictEqual(result, encodedAll);
|
|
193
|
+
for (let i = 0; i < transfers.length; i++) {
|
|
194
|
+
const one = fetchExternalities.oneTransferOrOperand(tryAsU64(i));
|
|
195
|
+
const encodedOne = encodeOneTransferOrOperand(toOneTransferOrOperandAt([], transfers, i), chainSpec);
|
|
196
|
+
assert.deepStrictEqual(one, encodedOne, `Mismatch at transfer index ${i}`);
|
|
197
|
+
}
|
|
198
|
+
const outOfRange = fetchExternalities.oneTransferOrOperand(tryAsU64(transfers.length));
|
|
199
|
+
assert.strictEqual(outOfRange, null);
|
|
200
|
+
});
|
|
201
|
+
it("should return null for unimplemented methods", () => {
|
|
202
|
+
const fetchExternalities = prepareAccumulateData({});
|
|
203
|
+
assert.strictEqual(fetchExternalities.authorizerTrace(), null);
|
|
204
|
+
assert.strictEqual(fetchExternalities.workItemExtrinsic(null, tryAsU64(0)), null);
|
|
205
|
+
assert.strictEqual(fetchExternalities.workItemImport(null, tryAsU64(0)), null);
|
|
206
|
+
assert.strictEqual(fetchExternalities.workPackage(), null);
|
|
207
|
+
assert.strictEqual(fetchExternalities.authorizer(), null);
|
|
208
|
+
assert.strictEqual(fetchExternalities.authorizationToken(), null);
|
|
209
|
+
assert.strictEqual(fetchExternalities.refineContext(), null);
|
|
210
|
+
assert.strictEqual(fetchExternalities.allWorkItems(), null);
|
|
211
|
+
assert.strictEqual(fetchExternalities.oneWorkItem(tryAsU64(0)), null);
|
|
212
|
+
assert.strictEqual(fetchExternalities.workItemPayload(tryAsU64(0)), null);
|
|
213
|
+
});
|
|
156
214
|
});
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
215
|
+
describe("Refine", () => {
|
|
216
|
+
it("should return different constants for different chain specs", () => {
|
|
217
|
+
const tinyFetchExternalities = prepareRefineData({ chainSpec: tinyChainSpec });
|
|
218
|
+
const fullFetchExternalities = prepareRefineData({ chainSpec: fullChainSpec });
|
|
219
|
+
const tinyConstants = tinyFetchExternalities.constants();
|
|
220
|
+
const fullConstants = fullFetchExternalities.constants();
|
|
221
|
+
assert.notStrictEqual(tinyConstants.length, 0);
|
|
222
|
+
assert.notStrictEqual(fullConstants.length, 0);
|
|
223
|
+
assert.notDeepStrictEqual(tinyConstants, fullConstants);
|
|
224
|
+
});
|
|
225
|
+
it("should return null entropy", () => {
|
|
226
|
+
const fetchExternalities = prepareRefineData();
|
|
227
|
+
const entropy = fetchExternalities.entropy();
|
|
228
|
+
assert.strictEqual(entropy, null);
|
|
229
|
+
});
|
|
230
|
+
it("should return null for allTransfersAndOperands", () => {
|
|
231
|
+
const fetchExternalities = prepareRefineData();
|
|
232
|
+
const result = fetchExternalities.allTransfersAndOperands();
|
|
233
|
+
assert.strictEqual(result, null);
|
|
234
|
+
});
|
|
235
|
+
it("should return null for oneTransferOrOperand", () => {
|
|
236
|
+
const fetchExternalities = prepareRefineData();
|
|
237
|
+
const result = fetchExternalities.oneTransferOrOperand(tryAsU64(0));
|
|
238
|
+
assert.strictEqual(result, null);
|
|
239
|
+
});
|
|
240
|
+
it("should return null for unimplemented methods", () => {
|
|
241
|
+
const fetchExternalities = prepareRefineData();
|
|
242
|
+
assert.strictEqual(fetchExternalities.authorizerTrace(), null);
|
|
243
|
+
assert.strictEqual(fetchExternalities.workItemExtrinsic(null, tryAsU64(0)), null);
|
|
244
|
+
assert.strictEqual(fetchExternalities.workItemImport(null, tryAsU64(0)), null);
|
|
245
|
+
assert.strictEqual(fetchExternalities.workPackage(), null);
|
|
246
|
+
assert.strictEqual(fetchExternalities.authorizer(), null);
|
|
247
|
+
assert.strictEqual(fetchExternalities.authorizationToken(), null);
|
|
248
|
+
assert.strictEqual(fetchExternalities.refineContext(), null);
|
|
249
|
+
assert.strictEqual(fetchExternalities.allWorkItems(), null);
|
|
250
|
+
assert.strictEqual(fetchExternalities.oneWorkItem(tryAsU64(0)), null);
|
|
251
|
+
assert.strictEqual(fetchExternalities.workItemPayload(tryAsU64(0)), null);
|
|
252
|
+
});
|
|
166
253
|
});
|
|
167
254
|
});
|
|
@@ -27,13 +27,6 @@ export type Input = {
|
|
|
27
27
|
* https://graypaper.fluffylabs.dev/#/cc517d7/171f05171f05?v=0.6.5
|
|
28
28
|
*/
|
|
29
29
|
accumulationStatistics: Map<ServiceId, CountAndGasUsed>;
|
|
30
|
-
/**
|
|
31
|
-
* `X`: Deffered transfer statistics
|
|
32
|
-
* TODO [MaSo] Use fields from accumulation.
|
|
33
|
-
*
|
|
34
|
-
* https://graypaper.fluffylabs.dev/#/cc517d7/18dd0018dd00?v=0.6.5
|
|
35
|
-
*/
|
|
36
|
-
transferStatistics: Map<ServiceId, CountAndGasUsed>;
|
|
37
30
|
reporters: readonly Ed25519Key[];
|
|
38
31
|
currentValidatorData: State["currentValidatorData"];
|
|
39
32
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statistics.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/transition/statistics.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,QAAQ,EAIb,KAAK,cAAc,EACpB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAElE,OAAO,EAAE,KAAK,SAAS,EAAmB,MAAM,mBAAmB,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAsB,KAAK,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAqB,KAAK,KAAK,EAAuC,MAAM,kBAAkB,CAAC;AAGtG,MAAM,MAAM,KAAK,GAAG;IAClB,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,EAAE,cAAc,CAAC;IAC5B,SAAS,EAAE,SAAS,CAAC;IACrB;;;;OAIG;IACH,eAAe,EAAE,UAAU,EAAE,CAAC;IAC9B;;;;OAIG;IACH,gBAAgB,EAAE,UAAU,EAAE,CAAC;IAC/B;;;;;OAKG;IACH,sBAAsB,EAAE,GAAG,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IACxD
|
|
1
|
+
{"version":3,"file":"statistics.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/transition/statistics.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,QAAQ,EAIb,KAAK,cAAc,EACpB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAElE,OAAO,EAAE,KAAK,SAAS,EAAmB,MAAM,mBAAmB,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAsB,KAAK,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAqB,KAAK,KAAK,EAAuC,MAAM,kBAAkB,CAAC;AAGtG,MAAM,MAAM,KAAK,GAAG;IAClB,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,EAAE,cAAc,CAAC;IAC5B,SAAS,EAAE,SAAS,CAAC;IACrB;;;;OAIG;IACH,eAAe,EAAE,UAAU,EAAE,CAAC;IAC9B;;;;OAIG;IACH,gBAAgB,EAAE,UAAU,EAAE,CAAC;IAC/B;;;;;OAKG;IACH,sBAAsB,EAAE,GAAG,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IACxD,SAAS,EAAE,SAAS,UAAU,EAAE,CAAC;IACjC,oBAAoB,EAAE,KAAK,CAAC,sBAAsB,CAAC,CAAC;CACrD,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,GAAG,CAAC;IACX,OAAO,EAAE,UAAU,CAAC;CACrB,CAAC;AAEF,sEAAsE;AACtE,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,YAAY,CAAC,GAAG;IACrE;;;;OAIG;IACH,QAAQ,CAAC,oBAAoB,EAAE,KAAK,CAAC,sBAAsB,CAAC,CAAC;CAC9D,CAAC;AAEF,sCAAsC;AACtC,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;AAExE,qBAAa,UAAU;IAEnB,OAAO,CAAC,QAAQ,CAAC,SAAS;aACV,KAAK,EAAE,eAAe;gBADrB,SAAS,EAAE,SAAS,EACrB,KAAK,EAAE,eAAe;IAGxC,OAAO,CAAC,aAAa;IAyBrB,sEAAsE;IACtE,OAAO,CAAC,oBAAoB;IAe5B,sEAAsE;IACtE,OAAO,CAAC,oBAAoB;IA+B5B,sEAAsE;IACtE,OAAO,CAAC,6BAA6B;IAoBrC;;;;;;;;OAQG;IACH,OAAO,CAAC,iBAAiB;IAoBzB;;;;OAIG;IACH,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,qBAAqB;CAwIhD"}
|
|
@@ -96,7 +96,7 @@ export class Statistics {
|
|
|
96
96
|
*
|
|
97
97
|
* https://graypaper.fluffylabs.dev/#/cc517d7/195f04195f04?v=0.6.5
|
|
98
98
|
*/
|
|
99
|
-
collectServiceIds(preimages, workResults, accumulationKeys
|
|
99
|
+
collectServiceIds(preimages, workResults, accumulationKeys) {
|
|
100
100
|
const serviceIds = new Set();
|
|
101
101
|
for (const preimage of preimages) {
|
|
102
102
|
serviceIds.add(preimage.requester);
|
|
@@ -107,9 +107,6 @@ export class Statistics {
|
|
|
107
107
|
for (const serviceId of accumulationKeys) {
|
|
108
108
|
serviceIds.add(serviceId);
|
|
109
109
|
}
|
|
110
|
-
for (const serviceId of transferKeys) {
|
|
111
|
-
serviceIds.add(serviceId);
|
|
112
|
-
}
|
|
113
110
|
return serviceIds;
|
|
114
111
|
}
|
|
115
112
|
/**
|
|
@@ -195,7 +192,7 @@ export class Statistics {
|
|
|
195
192
|
}
|
|
196
193
|
/** Update services statistics */
|
|
197
194
|
services.clear();
|
|
198
|
-
const serviceIds = this.collectServiceIds(extrinsic.preimages, incomingReports.flatMap((wr) => wr.results), input.accumulationStatistics.keys()
|
|
195
|
+
const serviceIds = this.collectServiceIds(extrinsic.preimages, incomingReports.flatMap((wr) => wr.results), input.accumulationStatistics.keys());
|
|
199
196
|
for (const serviceId of serviceIds) {
|
|
200
197
|
const workResults = incomingReports.flatMap((wr) => wr.results.filter((r) => r.serviceId === serviceId));
|
|
201
198
|
const { gasUsed, imported, extrinsicCount, extrinsicSize, exported } = this.calculateRefineScore(workResults);
|
|
@@ -205,10 +202,6 @@ export class Statistics {
|
|
|
205
202
|
count: tryAsU32(0),
|
|
206
203
|
gasUsed: tryAsServiceGas(0n),
|
|
207
204
|
};
|
|
208
|
-
const { count: transfersCount, gasUsed: transfersGasUsed } = input.transferStatistics.get(serviceId) ?? {
|
|
209
|
-
count: tryAsU32(0),
|
|
210
|
-
gasUsed: tryAsServiceGas(0n),
|
|
211
|
-
};
|
|
212
205
|
/**
|
|
213
206
|
* Service statistics are tracked only per-block basis, so we override previous values.
|
|
214
207
|
* https://graypaper.fluffylabs.dev/#/cc517d7/190201190501?v=0.6.5
|
|
@@ -226,8 +219,6 @@ export class Statistics {
|
|
|
226
219
|
serviceStatistics.providedSize = providedSize;
|
|
227
220
|
serviceStatistics.accumulateCount = accumulatedCount;
|
|
228
221
|
serviceStatistics.accumulateGasUsed = accumulatedGasUsed;
|
|
229
|
-
serviceStatistics.onTransfersCount = transfersCount;
|
|
230
|
-
serviceStatistics.onTransfersGasUsed = transfersGasUsed;
|
|
231
222
|
services.set(serviceId, serviceStatistics);
|
|
232
223
|
}
|
|
233
224
|
/** Update state */
|