@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.
Files changed (101) hide show
  1. package/package.json +1 -1
  2. package/packages/core/json-parser/descriptors.d.ts.map +1 -1
  3. package/packages/core/json-parser/descriptors.js +3 -0
  4. package/packages/core/json-parser/index.test.js +30 -0
  5. package/packages/core/networking/package.json +1 -1
  6. package/packages/core/telemetry/package.json +1 -1
  7. package/packages/core/utils/compatibility.d.ts +0 -1
  8. package/packages/core/utils/compatibility.d.ts.map +1 -1
  9. package/packages/core/utils/compatibility.js +1 -2
  10. package/packages/core/utils/compatibility.test.js +6 -10
  11. package/packages/jam/block/index.d.ts +11 -11
  12. package/packages/jam/block/index.d.ts.map +1 -1
  13. package/packages/jam/block/index.js +11 -11
  14. package/packages/jam/block-json/block.d.ts +25 -25
  15. package/packages/jam/database-lmdb/states.test.js +3 -5
  16. package/packages/jam/fuzz-proto/v1/types.d.ts +1 -1
  17. package/packages/jam/jam-host-calls/accumulate/bless.d.ts.map +1 -1
  18. package/packages/jam/jam-host-calls/accumulate/bless.js +6 -10
  19. package/packages/jam/jam-host-calls/accumulate/bless.test.js +32 -72
  20. package/packages/jam/jam-host-calls/accumulate/new.d.ts.map +1 -1
  21. package/packages/jam/jam-host-calls/accumulate/new.js +2 -4
  22. package/packages/jam/jam-host-calls/accumulate/new.test.js +4 -5
  23. package/packages/jam/jam-host-calls/general/fetch.d.ts +1 -57
  24. package/packages/jam/jam-host-calls/general/fetch.d.ts.map +1 -1
  25. package/packages/jam/jam-host-calls/general/fetch.js +6 -29
  26. package/packages/jam/jam-host-calls/general/fetch.test.js +2 -58
  27. package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.d.ts +4 -4
  28. package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.d.ts +13 -13
  29. package/packages/jam/jamnp-s/protocol/up-0-block-announcement.d.ts +1 -1
  30. package/packages/jam/node/package.json +1 -1
  31. package/packages/jam/node/reader.d.ts +25 -25
  32. package/packages/jam/node/workers.d.ts +183 -183
  33. package/packages/jam/state/accumulation-queue.d.ts +26 -26
  34. package/packages/jam/state/assurances.d.ts +26 -26
  35. package/packages/jam/state/privileged-services.d.ts +1 -1
  36. package/packages/jam/state/privileged-services.d.ts.map +1 -1
  37. package/packages/jam/state/privileged-services.js +1 -6
  38. package/packages/jam/state/service.d.ts +1 -1
  39. package/packages/jam/state/service.d.ts.map +1 -1
  40. package/packages/jam/state/statistics.d.ts +0 -8
  41. package/packages/jam/state/statistics.d.ts.map +1 -1
  42. package/packages/jam/state/statistics.js +14 -44
  43. package/packages/jam/state/statistics.test.js +1 -8
  44. package/packages/jam/state/test.utils.d.ts +1 -1
  45. package/packages/jam/state/test.utils.d.ts.map +1 -1
  46. package/packages/jam/state/test.utils.js +4 -22
  47. package/packages/jam/state-json/accounts.d.ts +10 -0
  48. package/packages/jam/state-json/accounts.d.ts.map +1 -1
  49. package/packages/jam/state-json/accounts.js +47 -19
  50. package/packages/jam/state-json/dump.d.ts.map +1 -1
  51. package/packages/jam/state-json/dump.js +5 -9
  52. package/packages/jam/state-json/dump.test.js +2 -10
  53. package/packages/jam/state-json/statistics.d.ts +1 -1
  54. package/packages/jam/state-json/statistics.d.ts.map +1 -1
  55. package/packages/jam/state-json/statistics.js +1 -13
  56. package/packages/jam/state-merkleization/in-memory-state-codec.d.ts +29 -31
  57. package/packages/jam/state-merkleization/in-memory-state-codec.d.ts.map +1 -1
  58. package/packages/jam/state-merkleization/serialize.d.ts +4 -4
  59. package/packages/jam/state-merkleization/serialize.d.ts.map +1 -1
  60. package/packages/jam/state-merkleization/serialize.js +5 -8
  61. package/packages/jam/state-merkleization/serialized-state-view.d.ts.map +1 -1
  62. package/packages/jam/state-merkleization/state-entries.test.js +1 -7
  63. package/packages/jam/state-vectors/index.d.ts +75 -75
  64. package/packages/jam/transition/accumulate/accumulate-state.d.ts +1 -2
  65. package/packages/jam/transition/accumulate/accumulate-state.d.ts.map +1 -1
  66. package/packages/jam/transition/accumulate/accumulate-utils.d.ts.map +1 -1
  67. package/packages/jam/transition/accumulate/accumulate-utils.js +2 -6
  68. package/packages/jam/transition/accumulate/accumulate-utils.test.js +2 -4
  69. package/packages/jam/transition/accumulate/accumulate.d.ts.map +1 -1
  70. package/packages/jam/transition/accumulate/accumulate.js +11 -20
  71. package/packages/jam/transition/accumulate/index.d.ts +0 -1
  72. package/packages/jam/transition/accumulate/index.d.ts.map +1 -1
  73. package/packages/jam/transition/accumulate/index.js +0 -1
  74. package/packages/jam/transition/accumulate/operand.d.ts +7 -7
  75. package/packages/jam/transition/chain-stf.d.ts +3 -5
  76. package/packages/jam/transition/chain-stf.d.ts.map +1 -1
  77. package/packages/jam/transition/chain-stf.js +5 -29
  78. package/packages/jam/transition/disputes/disputes.test.data2.d.ts +3 -3
  79. package/packages/jam/transition/disputes/disputes.test.data2.d.ts.map +1 -1
  80. package/packages/jam/transition/externalities/accumulate-externalities.d.ts.map +1 -1
  81. package/packages/jam/transition/externalities/accumulate-externalities.js +22 -49
  82. package/packages/jam/transition/externalities/accumulate-externalities.test.js +8 -72
  83. package/packages/jam/transition/externalities/fetch-externalities.d.ts +3 -22
  84. package/packages/jam/transition/externalities/fetch-externalities.d.ts.map +1 -1
  85. package/packages/jam/transition/externalities/fetch-externalities.js +3 -55
  86. package/packages/jam/transition/externalities/fetch-externalities.test.js +199 -112
  87. package/packages/jam/transition/statistics.d.ts +0 -7
  88. package/packages/jam/transition/statistics.d.ts.map +1 -1
  89. package/packages/jam/transition/statistics.js +2 -11
  90. package/packages/jam/transition/statistics.test.js +0 -40
  91. package/packages/workers/block-authorship/generator.test.d.ts +2 -0
  92. package/packages/workers/block-authorship/generator.test.d.ts.map +1 -0
  93. package/packages/workers/block-authorship/generator.test.js +200 -0
  94. package/packages/workers/block-authorship/package.json +1 -1
  95. package/packages/workers/block-authorship/protocol.d.ts +50 -50
  96. package/packages/workers/importer/package.json +1 -1
  97. package/packages/workers/importer/protocol.d.ts +54 -54
  98. package/packages/workers/jam-network/protocol.d.ts +79 -79
  99. package/packages/jam/transition/accumulate/deferred-transfers.d.ts +0 -36
  100. package/packages/jam/transition/accumulate/deferred-transfers.d.ts.map +0 -1
  101. 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
- /** @deprecated since 0.7.1 */
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":"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"}
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
- /** @deprecated since 0.7.1 */
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
- const prepareLegacyAccumulateData = ({ chainSpec, operands, entropy, }) => {
44
- const defaultChainSpec = tinyChainSpec;
45
- const defaultEntropy = Bytes.zero(HASH_SIZE).asOpaque();
46
- const defaultOperands = [];
47
- const fetchData = {
48
- entropy: entropy ?? defaultEntropy,
49
- operands: operands ?? defaultOperands,
50
- };
51
- return FetchExternalities.createForPre071Accumulate(fetchData, chainSpec ?? defaultChainSpec);
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 prepareOnTransferData = ({ chainSpec, operands, entropy, transfers, }) => {
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.createForOnTransfer(fetchData, chainSpec ?? defaultChainSpec);
76
+ return FetchExternalities.createForAccumulate(fetchData, chainSpec ?? defaultChainSpec);
64
77
  };
65
- it("should return different constants for different chain specs (Accumulate)", () => {
66
- const tinyFetchExternalities = prepareLegacyAccumulateData({ chainSpec: tinyChainSpec });
67
- const fullFetchExternalities = prepareLegacyAccumulateData({ chainSpec: fullChainSpec });
68
- const tinyContants = tinyFetchExternalities.constants();
69
- const fullContants = fullFetchExternalities.constants();
70
- assert.notStrictEqual(tinyContants.length, 0);
71
- assert.notStrictEqual(fullContants.length, 0);
72
- assert.notDeepStrictEqual(tinyContants, fullContants);
73
- });
74
- it("should return different constants for different chain specs (OnTransfer)", () => {
75
- const tinyFetchExternalities = prepareOnTransferData({ chainSpec: tinyChainSpec });
76
- const fullFetchExternalities = prepareOnTransferData({ chainSpec: fullChainSpec });
77
- const tinyContants = tinyFetchExternalities.constants();
78
- const fullContants = fullFetchExternalities.constants();
79
- assert.notStrictEqual(tinyContants.length, 0);
80
- assert.notStrictEqual(fullContants.length, 0);
81
- assert.notDeepStrictEqual(tinyContants, fullContants);
82
- });
83
- it("should return entropy hash (Accumulate)", () => {
84
- const expectedEntropy = Bytes.fill(HASH_SIZE, 5).asOpaque();
85
- const fetchExternalities = prepareLegacyAccumulateData({ entropy: expectedEntropy });
86
- const entropy = fetchExternalities.entropy();
87
- assert.deepStrictEqual(entropy, expectedEntropy);
88
- });
89
- it("should return entropy hash (OnTransfer)", () => {
90
- const expectedEntropy = Bytes.fill(HASH_SIZE, 5).asOpaque();
91
- const fetchExternalities = prepareOnTransferData({ entropy: expectedEntropy });
92
- const entropy = fetchExternalities.entropy();
93
- assert.deepStrictEqual(entropy, expectedEntropy);
94
- });
95
- it("should return all operands", () => {
96
- const expectedOperands = prepareOperands(5);
97
- const chainSpec = tinyChainSpec;
98
- const encodedOperands = Encoder.encodeObject(codec.sequenceVarLen(Operand.Codec), expectedOperands, chainSpec);
99
- const fetchExternalities = prepareLegacyAccumulateData({ operands: expectedOperands, chainSpec });
100
- const operands = fetchExternalities.allOperands();
101
- assert.deepStrictEqual(operands, encodedOperands);
102
- });
103
- it("should null when operand index is not U32", () => {
104
- const operands = prepareOperands(5);
105
- const chainSpec = tinyChainSpec;
106
- const expectedOperandIndex = 2 ** 32 + 3;
107
- const expectedOperand = null;
108
- const fetchExternalities = prepareLegacyAccumulateData({ operands, chainSpec });
109
- const operand = fetchExternalities.oneOperand(tryAsU64(expectedOperandIndex));
110
- assert.deepStrictEqual(operand, expectedOperand);
111
- });
112
- it("should null when operand index is U32 but is incorrect", () => {
113
- const operands = prepareOperands(5);
114
- const chainSpec = tinyChainSpec;
115
- const expectedOperandIndex = 153;
116
- const expectedOperand = null;
117
- const fetchExternalities = prepareLegacyAccumulateData({ operands, chainSpec });
118
- const operand = fetchExternalities.oneOperand(tryAsU64(expectedOperandIndex));
119
- assert.deepStrictEqual(operand, expectedOperand);
120
- });
121
- it("should return one operand", () => {
122
- const operands = prepareOperands(5);
123
- const chainSpec = tinyChainSpec;
124
- const expectedOperandIndex = 3;
125
- const expectedOperand = operands[expectedOperandIndex];
126
- const encodedOperand = Encoder.encodeObject(Operand.Codec, expectedOperand, chainSpec);
127
- const fetchExternalities = prepareLegacyAccumulateData({ operands, chainSpec });
128
- const operand = fetchExternalities.oneOperand(tryAsU64(expectedOperandIndex));
129
- assert.deepStrictEqual(operand, encodedOperand);
130
- });
131
- it("should return all transfers", () => {
132
- const transfersToEncode = prepareTransfers(5);
133
- const chainSpec = tinyChainSpec;
134
- const encodedTransfers = Encoder.encodeObject(codec.sequenceVarLen(PendingTransfer.Codec), transfersToEncode, chainSpec);
135
- const fetchExternalities = prepareOnTransferData({ transfers: transfersToEncode, chainSpec });
136
- const transfers = fetchExternalities.allTransfers();
137
- assert.deepStrictEqual(transfers, encodedTransfers);
138
- });
139
- it("should null when transfer index is not U32", () => {
140
- const transfers = prepareTransfers(5);
141
- const chainSpec = tinyChainSpec;
142
- const expectedTransferIndex = tryAsU64(2 ** 32 + 3);
143
- const expectedTransfer = null;
144
- const fetchExternalities = prepareOnTransferData({ transfers, chainSpec });
145
- const transfer = fetchExternalities.oneTransfer(expectedTransferIndex);
146
- assert.deepStrictEqual(transfer, expectedTransfer);
147
- });
148
- it("should null when transfer index is U32 but is incorrect", () => {
149
- const transfers = prepareTransfers(5);
150
- const chainSpec = tinyChainSpec;
151
- const expectedTransferIndex = tryAsU64(153);
152
- const expectedTransfer = null;
153
- const fetchExternalities = prepareOnTransferData({ transfers, chainSpec });
154
- const transfer = fetchExternalities.oneTransfer(expectedTransferIndex);
155
- assert.deepStrictEqual(transfer, expectedTransfer);
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
- it("should return one transfer", () => {
158
- const transfers = prepareTransfers(5);
159
- const chainSpec = tinyChainSpec;
160
- const expectedOperandIndex = 3;
161
- const expectedTransfer = transfers[expectedOperandIndex];
162
- const encodedTransfer = Encoder.encodeObject(PendingTransfer.Codec, expectedTransfer, chainSpec);
163
- const fetchExternalities = prepareOnTransferData({ transfers, chainSpec });
164
- const transfer = fetchExternalities.oneTransfer(tryAsU64(expectedOperandIndex));
165
- assert.deepStrictEqual(transfer, encodedTransfer);
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;;;;;OAKG;IACH,kBAAkB,EAAE,GAAG,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IACpD,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;IAwBzB;;;;OAIG;IACH,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,qBAAqB;CAgJhD"}
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, transferKeys) {
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(), input.transferStatistics.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 */