@typeberry/lib 0.5.3 → 0.5.4-b101fe6

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 (205) hide show
  1. package/package.json +8 -4
  2. package/packages/core/hash/hash.d.ts.map +1 -1
  3. package/packages/core/hash/hash.js +1 -0
  4. package/packages/core/networking/certificate.d.ts.map +1 -1
  5. package/packages/core/networking/certificate.js +1 -0
  6. package/packages/core/networking/package.json +1 -1
  7. package/packages/core/networking/setup.d.ts.map +1 -1
  8. package/packages/core/networking/setup.js +16 -12
  9. package/packages/core/numbers/index.d.ts +4 -0
  10. package/packages/core/numbers/index.d.ts.map +1 -1
  11. package/packages/core/numbers/index.js +4 -4
  12. package/packages/core/pvm-host-calls/host-calls-executor.d.ts +23 -17
  13. package/packages/core/pvm-host-calls/host-calls-executor.d.ts.map +1 -1
  14. package/packages/core/pvm-host-calls/host-calls-executor.js +23 -31
  15. package/packages/core/pvm-interpreter/ops/math-consts.d.ts +2 -3
  16. package/packages/core/pvm-interpreter/ops/math-consts.d.ts.map +1 -1
  17. package/packages/core/pvm-interpreter/ops/math-consts.js +2 -3
  18. package/packages/core/pvm-interpreter/ops/math-ops.js +3 -3
  19. package/packages/core/pvm-interpreter/ops/math-utils.js +13 -13
  20. package/packages/core/pvm-interpreter/ops/math-utils.test.js +17 -16
  21. package/packages/core/telemetry/package.json +1 -1
  22. package/packages/core/utils/compatibility.d.ts +0 -1
  23. package/packages/core/utils/compatibility.d.ts.map +1 -1
  24. package/packages/core/utils/compatibility.js +1 -2
  25. package/packages/core/utils/compatibility.test.js +6 -10
  26. package/packages/extensions/ipc/jamnp/handler.d.ts +5 -4
  27. package/packages/extensions/ipc/jamnp/handler.d.ts.map +1 -1
  28. package/packages/extensions/ipc/jamnp/handler.js +59 -34
  29. package/packages/extensions/ipc/jamnp/stream.d.ts +6 -4
  30. package/packages/extensions/ipc/jamnp/stream.d.ts.map +1 -1
  31. package/packages/jam/block/work-item.d.ts +13 -4
  32. package/packages/jam/block/work-item.d.ts.map +1 -1
  33. package/packages/jam/block/work-package.d.ts +3 -1
  34. package/packages/jam/block/work-package.d.ts.map +1 -1
  35. package/packages/jam/block/work-package.js +6 -2
  36. package/packages/jam/block/work-result.d.ts +3 -5
  37. package/packages/jam/block/work-result.d.ts.map +1 -1
  38. package/packages/jam/block/work-result.js +6 -0
  39. package/packages/jam/block-json/block.d.ts +125 -0
  40. package/packages/jam/block-json/block.d.ts.map +1 -1
  41. package/packages/jam/block-json/block.js +9 -2
  42. package/packages/jam/block-json/work-result.d.ts.map +1 -1
  43. package/packages/jam/block-json/work-result.js +6 -6
  44. package/packages/jam/database-lmdb/states.test.js +2 -3
  45. package/packages/jam/executor/index.d.ts +4 -0
  46. package/packages/jam/executor/index.d.ts.map +1 -0
  47. package/packages/jam/executor/index.js +2 -0
  48. package/packages/jam/{transition/accumulate → executor}/pvm-executor.d.ts +19 -16
  49. package/packages/jam/executor/pvm-executor.d.ts.map +1 -0
  50. package/packages/jam/{transition/accumulate → executor}/pvm-executor.js +46 -3
  51. package/packages/jam/fuzz-proto/v1/handler.d.ts +1 -1
  52. package/packages/jam/fuzz-proto/v1/handler.d.ts.map +1 -1
  53. package/packages/jam/fuzz-proto/v1/handler.js +43 -19
  54. package/packages/jam/in-core/externalities/refine.d.ts +24 -0
  55. package/packages/jam/in-core/externalities/refine.d.ts.map +1 -0
  56. package/packages/jam/in-core/externalities/refine.js +36 -0
  57. package/packages/jam/in-core/in-core.d.ts +60 -0
  58. package/packages/jam/in-core/in-core.d.ts.map +1 -0
  59. package/packages/jam/in-core/in-core.js +294 -0
  60. package/packages/jam/in-core/in-core.test.d.ts +2 -0
  61. package/packages/jam/in-core/in-core.test.d.ts.map +1 -0
  62. package/packages/jam/in-core/in-core.test.js +81 -0
  63. package/packages/jam/in-core/index.d.ts +2 -0
  64. package/packages/jam/in-core/index.d.ts.map +1 -0
  65. package/packages/jam/in-core/index.js +1 -0
  66. package/packages/jam/jam-host-calls/accumulate/bless.d.ts.map +1 -1
  67. package/packages/jam/jam-host-calls/accumulate/bless.js +6 -10
  68. package/packages/jam/jam-host-calls/accumulate/bless.test.js +32 -73
  69. package/packages/jam/jam-host-calls/accumulate/new.d.ts.map +1 -1
  70. package/packages/jam/jam-host-calls/accumulate/new.js +2 -4
  71. package/packages/jam/jam-host-calls/accumulate/new.test.js +4 -5
  72. package/packages/jam/jam-host-calls/general/fetch.d.ts +1 -57
  73. package/packages/jam/jam-host-calls/general/fetch.d.ts.map +1 -1
  74. package/packages/jam/jam-host-calls/general/fetch.js +6 -29
  75. package/packages/jam/jam-host-calls/general/fetch.test.js +2 -58
  76. package/packages/jam/jamnp-s/peers.d.ts.map +1 -1
  77. package/packages/jam/jamnp-s/peers.js +10 -0
  78. package/packages/jam/jamnp-s/protocol/ce-128-block-request.d.ts +1 -1
  79. package/packages/jam/jamnp-s/protocol/ce-128-block-request.d.ts.map +1 -1
  80. package/packages/jam/jamnp-s/protocol/ce-128-block-request.js +10 -8
  81. package/packages/jam/jamnp-s/protocol/ce-129-state-request.d.ts.map +1 -1
  82. package/packages/jam/jamnp-s/protocol/ce-129-state-request.js +11 -9
  83. package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.d.ts +3 -3
  84. package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.d.ts.map +1 -1
  85. package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.js +2 -2
  86. package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.d.ts +5 -5
  87. package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.d.ts.map +1 -1
  88. package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.js +2 -2
  89. package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.d.ts.map +1 -1
  90. package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.js +8 -6
  91. package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.d.ts +3 -3
  92. package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.d.ts.map +1 -1
  93. package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.js +2 -2
  94. package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.test.js +2 -2
  95. package/packages/jam/jamnp-s/protocol/stream.d.ts +13 -7
  96. package/packages/jam/jamnp-s/protocol/stream.d.ts.map +1 -1
  97. package/packages/jam/jamnp-s/protocol/stream.js +5 -4
  98. package/packages/jam/jamnp-s/protocol/test-utils.d.ts +1 -1
  99. package/packages/jam/jamnp-s/protocol/test-utils.d.ts.map +1 -1
  100. package/packages/jam/jamnp-s/protocol/test-utils.js +9 -12
  101. package/packages/jam/jamnp-s/protocol/up-0-block-announcement.d.ts +1 -1
  102. package/packages/jam/jamnp-s/protocol/up-0-block-announcement.d.ts.map +1 -1
  103. package/packages/jam/jamnp-s/protocol/up-0-block-announcement.js +1 -1
  104. package/packages/jam/jamnp-s/stream-manager.d.ts.map +1 -1
  105. package/packages/jam/jamnp-s/stream-manager.js +7 -5
  106. package/packages/jam/jamnp-s/stream-manager.test.js +8 -5
  107. package/packages/jam/jamnp-s/tasks/sync.js +1 -1
  108. package/packages/jam/node/jam-config.d.ts +4 -1
  109. package/packages/jam/node/jam-config.d.ts.map +1 -1
  110. package/packages/jam/node/jam-config.js +6 -2
  111. package/packages/jam/node/main.d.ts.map +1 -1
  112. package/packages/jam/node/main.js +5 -4
  113. package/packages/jam/node/package.json +1 -1
  114. package/packages/jam/rpc-validation/types.d.ts +7 -3
  115. package/packages/jam/rpc-validation/types.d.ts.map +1 -1
  116. package/packages/jam/rpc-validation/validation.d.ts +254 -36
  117. package/packages/jam/rpc-validation/validation.d.ts.map +1 -1
  118. package/packages/jam/rpc-validation/validation.js +20 -2
  119. package/packages/jam/state/in-memory-state.d.ts.map +1 -1
  120. package/packages/jam/state/in-memory-state.js +2 -3
  121. package/packages/jam/state/privileged-services.d.ts +1 -1
  122. package/packages/jam/state/privileged-services.d.ts.map +1 -1
  123. package/packages/jam/state/privileged-services.js +1 -6
  124. package/packages/jam/state/service.d.ts +1 -1
  125. package/packages/jam/state/service.d.ts.map +1 -1
  126. package/packages/jam/state/statistics.d.ts +0 -8
  127. package/packages/jam/state/statistics.d.ts.map +1 -1
  128. package/packages/jam/state/statistics.js +14 -44
  129. package/packages/jam/state/statistics.test.js +1 -8
  130. package/packages/jam/state/test.utils.d.ts +1 -1
  131. package/packages/jam/state/test.utils.d.ts.map +1 -1
  132. package/packages/jam/state/test.utils.js +6 -25
  133. package/packages/jam/state-json/accounts.d.ts +10 -0
  134. package/packages/jam/state-json/accounts.d.ts.map +1 -1
  135. package/packages/jam/state-json/accounts.js +47 -19
  136. package/packages/jam/state-json/dump.d.ts.map +1 -1
  137. package/packages/jam/state-json/dump.js +5 -9
  138. package/packages/jam/state-json/dump.test.js +2 -10
  139. package/packages/jam/state-json/statistics.d.ts +1 -1
  140. package/packages/jam/state-json/statistics.d.ts.map +1 -1
  141. package/packages/jam/state-json/statistics.js +1 -13
  142. package/packages/jam/state-merkleization/in-memory-state-codec.d.ts +0 -2
  143. package/packages/jam/state-merkleization/in-memory-state-codec.d.ts.map +1 -1
  144. package/packages/jam/state-merkleization/serialize.d.ts +4 -4
  145. package/packages/jam/state-merkleization/serialize.d.ts.map +1 -1
  146. package/packages/jam/state-merkleization/serialize.js +5 -8
  147. package/packages/jam/state-merkleization/serialized-state-view.d.ts.map +1 -1
  148. package/packages/jam/state-merkleization/state-entries.test.js +1 -7
  149. package/packages/jam/state-vectors/index.d.ts +377 -5
  150. package/packages/jam/state-vectors/index.d.ts.map +1 -1
  151. package/packages/jam/state-vectors/index.js +3 -3
  152. package/packages/jam/transition/accumulate/accumulate-data.d.ts.map +1 -1
  153. package/packages/jam/transition/accumulate/accumulate-data.js +1 -2
  154. package/packages/jam/transition/accumulate/accumulate-queue.test.js +2 -2
  155. package/packages/jam/transition/accumulate/accumulate-state.d.ts +1 -2
  156. package/packages/jam/transition/accumulate/accumulate-state.d.ts.map +1 -1
  157. package/packages/jam/transition/accumulate/accumulate-utils.d.ts.map +1 -1
  158. package/packages/jam/transition/accumulate/accumulate-utils.js +2 -6
  159. package/packages/jam/transition/accumulate/accumulate-utils.test.js +4 -6
  160. package/packages/jam/transition/accumulate/accumulate.d.ts.map +1 -1
  161. package/packages/jam/transition/accumulate/accumulate.js +19 -33
  162. package/packages/jam/transition/accumulate/accumulate.test.js +2 -2
  163. package/packages/jam/transition/accumulate/accumulation-result-merge-utils.d.ts.map +1 -1
  164. package/packages/jam/transition/accumulate/accumulation-result-merge-utils.js +1 -2
  165. package/packages/jam/transition/accumulate/accumulation-result-merge-utils.test.js +1 -2
  166. package/packages/jam/transition/accumulate/index.d.ts +0 -1
  167. package/packages/jam/transition/accumulate/index.d.ts.map +1 -1
  168. package/packages/jam/transition/accumulate/index.js +0 -1
  169. package/packages/jam/transition/chain-stf.d.ts +3 -5
  170. package/packages/jam/transition/chain-stf.d.ts.map +1 -1
  171. package/packages/jam/transition/chain-stf.js +5 -29
  172. package/packages/jam/transition/disputes/disputes.test.data2.js +2 -2
  173. package/packages/jam/transition/externalities/accumulate-externalities.d.ts.map +1 -1
  174. package/packages/jam/transition/externalities/accumulate-externalities.js +22 -49
  175. package/packages/jam/transition/externalities/accumulate-externalities.test.js +8 -72
  176. package/packages/jam/transition/externalities/fetch-externalities.d.ts +8 -21
  177. package/packages/jam/transition/externalities/fetch-externalities.d.ts.map +1 -1
  178. package/packages/jam/transition/externalities/fetch-externalities.js +5 -53
  179. package/packages/jam/transition/externalities/fetch-externalities.test.js +201 -114
  180. package/packages/jam/transition/hasher.test.js +2 -2
  181. package/packages/jam/transition/reports/error.d.ts +3 -1
  182. package/packages/jam/transition/reports/error.d.ts.map +1 -1
  183. package/packages/jam/transition/reports/error.js +2 -0
  184. package/packages/jam/transition/reports/test.utils.d.ts.map +1 -1
  185. package/packages/jam/transition/reports/test.utils.js +2 -2
  186. package/packages/jam/transition/reports/verify-basic.d.ts.map +1 -1
  187. package/packages/jam/transition/reports/verify-basic.js +10 -0
  188. package/packages/jam/transition/reports/verify-basic.test.js +29 -0
  189. package/packages/jam/transition/statistics.d.ts +0 -7
  190. package/packages/jam/transition/statistics.d.ts.map +1 -1
  191. package/packages/jam/transition/statistics.js +2 -11
  192. package/packages/jam/transition/statistics.test.js +0 -40
  193. package/packages/workers/block-authorship/main.d.ts.map +1 -1
  194. package/packages/workers/block-authorship/main.js +23 -4
  195. package/packages/workers/block-authorship/package.json +1 -1
  196. package/packages/workers/block-authorship/protocol.d.ts +3 -1
  197. package/packages/workers/block-authorship/protocol.d.ts.map +1 -1
  198. package/packages/workers/block-authorship/protocol.js +6 -3
  199. package/packages/workers/importer/importer.d.ts.map +1 -1
  200. package/packages/workers/importer/importer.js +0 -1
  201. package/packages/workers/importer/package.json +1 -1
  202. package/packages/jam/transition/accumulate/deferred-transfers.d.ts +0 -36
  203. package/packages/jam/transition/accumulate/deferred-transfers.d.ts.map +0 -1
  204. package/packages/jam/transition/accumulate/deferred-transfers.js +0 -95
  205. package/packages/jam/transition/accumulate/pvm-executor.d.ts.map +0 -1
@@ -2,7 +2,7 @@ import type { EntropyHash, ServiceId, TimeSlot } from "#@typeberry/block";
2
2
  import type { WorkReport } from "#@typeberry/block/work-report.js";
3
3
  import type { SortedArray } from "#@typeberry/collections";
4
4
  import type { OpaqueHash } from "#@typeberry/hash";
5
- import type { PendingTransfer, ServiceStateUpdate } from "#@typeberry/jam-host-calls";
5
+ import type { ServiceStateUpdate } from "#@typeberry/jam-host-calls";
6
6
  import type { AccumulationOutput, State } from "#@typeberry/state";
7
7
  import type { CountAndGasUsed } from "../statistics.js";
8
8
  /** `G_A`: The gas allocated to invoke a work-report’s Accumulation logic. */
@@ -22,7 +22,6 @@ export type AccumulateStateUpdate = Pick<State, "timeslot"> & Partial<Pick<State
22
22
  export type AccumulateResult = {
23
23
  stateUpdate: AccumulateStateUpdate;
24
24
  accumulationStatistics: Map<ServiceId, CountAndGasUsed>;
25
- pendingTransfers: PendingTransfer[];
26
25
  accumulationOutputLog: SortedArray<AccumulationOutput>;
27
26
  };
28
27
  //# sourceMappingURL=accumulate-state.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"accumulate-state.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/transition/accumulate/accumulate-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACrF,OAAO,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,6EAA6E;AAC7E,eAAO,MAAM,yBAAyB,YAAc,CAAC;AAErD,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC;AAExC,MAAM,MAAM,eAAe,GAAG;IAC5B,4BAA4B;IAC5B,IAAI,EAAE,QAAQ,CAAC;IACf,2CAA2C;IAC3C,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,6DAA6D;IAC7D,OAAO,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,IAAI,CAChC,KAAK,EACH,UAAU,GACV,yBAAyB,GACzB,YAAY,GACZ,YAAY,GACZ,qBAAqB,GACrB,mBAAmB,GACnB,oBAAoB,CACvB,CAAC;AAEF,8DAA8D;AAC9D,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,GACzD,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,qBAAqB,GAAG,mBAAmB,CAAC,CAAC,GACjE,kBAAkB,CAAC;AAErB,MAAM,MAAM,gBAAgB,GAAG;IAC7B,WAAW,EAAE,qBAAqB,CAAC;IACnC,sBAAsB,EAAE,GAAG,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IACxD,gBAAgB,EAAE,eAAe,EAAE,CAAC;IACpC,qBAAqB,EAAE,WAAW,CAAC,kBAAkB,CAAC,CAAC;CACxD,CAAC"}
1
+ {"version":3,"file":"accumulate-state.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/transition/accumulate/accumulate-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,6EAA6E;AAC7E,eAAO,MAAM,yBAAyB,YAAc,CAAC;AAErD,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC;AAExC,MAAM,MAAM,eAAe,GAAG;IAC5B,4BAA4B;IAC5B,IAAI,EAAE,QAAQ,CAAC;IACf,2CAA2C;IAC3C,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,6DAA6D;IAC7D,OAAO,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,IAAI,CAChC,KAAK,EACH,UAAU,GACV,yBAAyB,GACzB,YAAY,GACZ,YAAY,GACZ,qBAAqB,GACrB,mBAAmB,GACnB,oBAAoB,CACvB,CAAC;AAEF,8DAA8D;AAC9D,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,GACzD,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,qBAAqB,GAAG,mBAAmB,CAAC,CAAC,GACjE,kBAAkB,CAAC;AAErB,MAAM,MAAM,gBAAgB,GAAG;IAC7B,WAAW,EAAE,qBAAqB,CAAC;IACnC,sBAAsB,EAAE,GAAG,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IACxD,qBAAqB,EAAE,WAAW,CAAC,kBAAkB,CAAC,CAAC;CACxD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"accumulate-utils.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/transition/accumulate/accumulate-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,SAAS,EAAE,KAAK,QAAQ,EAAkB,MAAM,kBAAkB,CAAC;AAEnG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAElE,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,KAAK,OAAO,EAAa,MAAM,iBAAiB,CAAC;AAI1D;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAQnE;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CAGpF;AAED,KAAK,kBAAkB,GAAG;IACxB,oCAAoC;IACpC,SAAS,EAAE,SAAS,CAAC;IACrB,eAAe;IACf,OAAO,EAAE,WAAW,CAAC;IACrB,sCAAsC;IACtC,QAAQ,EAAE,QAAQ,CAAC;CACpB,CAAC;AAQF;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,kBAAkB,EACpD,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,GACf,SAAS,CAkBX"}
1
+ {"version":3,"file":"accumulate-utils.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/transition/accumulate/accumulate-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,SAAS,EAAE,KAAK,QAAQ,EAAkB,MAAM,kBAAkB,CAAC;AAEnG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAElE,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,KAAK,OAAO,EAAa,MAAM,iBAAiB,CAAC;AAG1D;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAQnE;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CAGpF;AAED,KAAK,kBAAkB,GAAG;IACxB,oCAAoC;IACpC,SAAS,EAAE,SAAS,CAAC;IACrB,eAAe;IACf,OAAO,EAAE,WAAW,CAAC;IACrB,sCAAsC;IACtC,QAAQ,EAAE,QAAQ,CAAC;CACpB,CAAC;AAQF;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,kBAAkB,EACpD,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,GACf,SAAS,CAeX"}
@@ -4,7 +4,6 @@ import { codec, Encoder } from "#@typeberry/codec";
4
4
  import { HashSet } from "#@typeberry/collections";
5
5
  import { HASH_SIZE } from "#@typeberry/hash";
6
6
  import { leBytesAsU32 } from "#@typeberry/numbers";
7
- import { Compatibility, GpVersion } from "#@typeberry/utils";
8
7
  /**
9
8
  * A function that removes duplicates but does not change order - it keeps the first occurence.
10
9
  */
@@ -44,9 +43,6 @@ export function generateNextServiceId({ serviceId, entropy, timeslot }, chainSpe
44
43
  }, chainSpec);
45
44
  const result = blake2b.hashBytes(encoded).raw.subarray(0, 4);
46
45
  const number = leBytesAsU32(result) >>> 0;
47
- const mod = Compatibility.isGreaterOrEqual(GpVersion.V0_7_1)
48
- ? 2 ** 32 - MIN_PUBLIC_SERVICE_INDEX - 2 ** 8
49
- : 2 ** 32 - 2 ** 9;
50
- const offset = Compatibility.isGreaterOrEqual(GpVersion.V0_7_1) ? MIN_PUBLIC_SERVICE_INDEX : 2 ** 8;
51
- return tryAsServiceId((number % mod) + offset);
46
+ const mod = 2 ** 32 - MIN_PUBLIC_SERVICE_INDEX - 2 ** 8;
47
+ return tryAsServiceId((number % mod) + MIN_PUBLIC_SERVICE_INDEX);
52
48
  }
@@ -4,13 +4,13 @@ import { tryAsCoreIndex, tryAsServiceGas, tryAsServiceId, tryAsTimeSlot } from "
4
4
  import { RefineContext } from "#@typeberry/block/refine-context.js";
5
5
  import { tryAsWorkItemsCount } from "#@typeberry/block/work-package.js";
6
6
  import { WorkPackageSpec, WorkReport } from "#@typeberry/block/work-report.js";
7
- import { WorkExecResult, WorkExecResultKind, WorkRefineLoad, WorkResult } from "#@typeberry/block/work-result.js";
7
+ import { WorkExecResult, WorkRefineLoad, WorkResult } from "#@typeberry/block/work-result.js";
8
8
  import { Bytes, BytesBlob } from "#@typeberry/bytes";
9
9
  import { FixedSizeArray, HashSet } from "#@typeberry/collections";
10
10
  import { tinyChainSpec } from "#@typeberry/config";
11
11
  import { Blake2b, HASH_SIZE } from "#@typeberry/hash";
12
12
  import { tryAsU16, tryAsU32 } from "#@typeberry/numbers";
13
- import { Compatibility, deepEqual, GpVersion } from "#@typeberry/utils";
13
+ import { deepEqual } from "#@typeberry/utils";
14
14
  import { generateNextServiceId, getWorkPackageHashes, uniquePreserveOrder } from "./accumulate-utils.js";
15
15
  let blake2b;
16
16
  before(async () => {
@@ -52,7 +52,7 @@ describe("accumulate-utils", () => {
52
52
  importedSegments: tryAsU32(0),
53
53
  }),
54
54
  payloadHash: Bytes.zero(HASH_SIZE).asOpaque(),
55
- result: new WorkExecResult(WorkExecResultKind.ok, BytesBlob.empty()),
55
+ result: WorkExecResult.ok(BytesBlob.empty()),
56
56
  serviceId: tryAsServiceId(0),
57
57
  }),
58
58
  ], tryAsWorkItemsCount(1)),
@@ -78,9 +78,7 @@ describe("accumulate-utils", () => {
78
78
  const serviceId = tryAsServiceId(5);
79
79
  const entropy = Bytes.fill(HASH_SIZE, 4).asOpaque();
80
80
  const timeslot = tryAsTimeSlot(6);
81
- const expectedServiceId = Compatibility.isGreaterOrEqual(GpVersion.V0_7_1)
82
- ? tryAsServiceId(2596254713)
83
- : tryAsServiceId(2596189433);
81
+ const expectedServiceId = tryAsServiceId(2596254713);
84
82
  const result = generateNextServiceId({ serviceId, entropy, timeslot }, tinyChainSpec, blake2b);
85
83
  assert.strictEqual(result, expectedServiceId);
86
84
  });
@@ -1 +1 @@
1
- {"version":3,"file":"accumulate.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/transition/accumulate/accumulate.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,SAAS,EAIf,MAAM,kBAAkB,CAAC;AAM1B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,KAAK,OAAO,EAA8B,MAAM,iBAAiB,CAAC;AAmB3E,OAAO,EAAyC,MAAM,EAAa,MAAM,kBAAkB,CAAC;AAM5F,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EAGrB,MAAM,uBAAuB,CAAC;AAO/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAGtD,eAAO,MAAM,kBAAkB,8BAA8B,CAAC;AAC9D,MAAM,MAAM,kBAAkB,GAAG,OAAO,kBAAkB,CAAC;AA2B3D,qBAAa,UAAU;aAEH,SAAS,EAAE,SAAS;aACpB,OAAO,EAAE,OAAO;aAChB,KAAK,EAAE,eAAe;aACtB,OAAO,EAAE,iBAAiB;gBAH1B,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,eAAe,EACtB,OAAO,EAAE,iBAAiB;IAO5C;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAkB7B;;;;OAIG;YACW,uBAAuB;IAyGrC;;;;OAIG;YACW,uBAAuB;IAoDrC;;;;;;;OAOG;YACW,4BAA4B;IA8D1C;;;;;;;OAOG;YACW,sBAAsB;IAsEpC,OAAO,CAAC,gBAAgB;IAuCxB,OAAO,CAAC,kBAAkB;IAsB1B;;;;;;;;;OASG;YACW,oBAAoB;IA6ClC;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAkDlC;;;;;;OAMG;IACH,OAAO,CAAC,WAAW;IAcnB;;;;;;OAMG;IACI,6BAA6B,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,OAAO;IAKhE,UAAU,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,CAAC;CAwGrH"}
1
+ {"version":3,"file":"accumulate.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/transition/accumulate/accumulate.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,SAAS,EAIf,MAAM,kBAAkB,CAAC;AAM1B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAE,KAAK,OAAO,EAA8B,MAAM,iBAAiB,CAAC;AAiB3E,OAAO,EAAyC,MAAM,EAAa,MAAM,kBAAkB,CAAC;AAM5F,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EAGrB,MAAM,uBAAuB,CAAC;AAO/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEtD,eAAO,MAAM,kBAAkB,8BAA8B,CAAC;AAC9D,MAAM,MAAM,kBAAkB,GAAG,OAAO,kBAAkB,CAAC;AA2B3D,qBAAa,UAAU;aAEH,SAAS,EAAE,SAAS;aACpB,OAAO,EAAE,OAAO;aAChB,KAAK,EAAE,eAAe;aACtB,OAAO,EAAE,iBAAiB;gBAH1B,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,eAAe,EACtB,OAAO,EAAE,iBAAiB;IAO5C;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAkB7B;;;;OAIG;YACW,uBAAuB;IAmGrC;;;;OAIG;YACW,uBAAuB;IAiDrC;;;;;;;OAOG;YACW,4BAA4B;IA8D1C;;;;;;;OAOG;YACW,sBAAsB;IAsEpC,OAAO,CAAC,gBAAgB;IAuCxB,OAAO,CAAC,kBAAkB;IAsB1B;;;;;;;;;OASG;YACW,oBAAoB;IA6ClC;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAkDlC;;;;;;OAMG;IACH,OAAO,CAAC,WAAW;IAcnB;;;;;;OAMG;IACI,6BAA6B,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,OAAO;IAKhE,UAAU,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,CAAC;CA0FrH"}
@@ -3,12 +3,11 @@ import { W_C } from "#@typeberry/block/gp-constants.js";
3
3
  import { Bytes } from "#@typeberry/bytes";
4
4
  import { codec, Encoder } from "#@typeberry/codec";
5
5
  import { ArrayView, HashSet, SortedArray } from "#@typeberry/collections";
6
+ import { PvmExecutor, ReturnStatus } from "#@typeberry/executor";
6
7
  import { HASH_SIZE } from "#@typeberry/hash";
7
8
  import { AccumulationStateUpdate, PartiallyUpdatedState, } from "#@typeberry/jam-host-calls/externalities/state-update.js";
8
9
  import { Logger } from "#@typeberry/logger";
9
- import { sumU64, tryAsU32 } from "#@typeberry/numbers";
10
- import { Status, tryAsGas } from "#@typeberry/pvm-interface";
11
- import { MAX_VALUE_U64 } from "#@typeberry/pvm-interpreter/ops/math-consts.js";
10
+ import { MAX_VALUE_U64, sumU64, tryAsU32 } from "#@typeberry/numbers";
12
11
  import { accumulationOutputComparator, hashComparator, ServiceAccountInfo, tryAsPerCore, } from "#@typeberry/state";
13
12
  import { assertEmpty, Compatibility, GpVersion, Result, TestSuite } from "#@typeberry/utils";
14
13
  import { AccumulateExternalities } from "../externalities/accumulate-externalities.js";
@@ -18,7 +17,6 @@ import { AccumulateQueue, pruneQueue } from "./accumulate-queue.js";
18
17
  import { GAS_TO_INVOKE_WORK_REPORT, } from "./accumulate-state.js";
19
18
  import { generateNextServiceId, getWorkPackageHashes } from "./accumulate-utils.js";
20
19
  import { mergePerallelAccumulationResults, } from "./accumulation-result-merge-utils.js";
21
- import { PvmExecutor } from "./pvm-executor.js";
22
20
  export const ACCUMULATION_ERROR = "duplicate service created";
23
21
  var PvmInvocationError;
24
22
  (function (PvmInvocationError) {
@@ -88,9 +86,7 @@ export class Accumulate {
88
86
  }
89
87
  const nextServiceId = generateNextServiceId({ serviceId, entropy, timeslot: slot }, this.chainSpec, this.blake2b);
90
88
  const partialState = new AccumulateExternalities(this.chainSpec, this.blake2b, updatedState, serviceId, nextServiceId, slot);
91
- const fetchExternalities = Compatibility.isGreaterOrEqual(GpVersion.V0_7_1)
92
- ? FetchExternalities.createForAccumulate({ entropy, transfers, operands }, this.chainSpec)
93
- : FetchExternalities.createForPre071Accumulate({ entropy, operands }, this.chainSpec);
89
+ const fetchExternalities = FetchExternalities.createForAccumulate({ entropy, transfers, operands }, this.chainSpec);
94
90
  const externalities = {
95
91
  partialState,
96
92
  serviceExternalities: partialState,
@@ -102,28 +98,25 @@ export class Accumulate {
102
98
  serviceId,
103
99
  argsLength: tryAsU32(transfers.length + operands.length),
104
100
  });
105
- const result = await executor.run(invocationArgs, tryAsGas(gas));
101
+ const result = await executor.run(invocationArgs, gas);
106
102
  const [newState, checkpoint] = partialState.getStateUpdates();
107
103
  /**
108
104
  * PVM invocation returned and error so we return the checkpoint
109
105
  *
110
106
  * https://graypaper.fluffylabs.dev/#/7e6ff6a/300002300002?v=0.6.7
111
107
  */
112
- if (result.hasStatus()) {
113
- const status = result.status;
114
- if (status === Status.OOG || status === Status.PANIC) {
115
- logger.trace `[${serviceId}] accumulate finished with ${Status[status]} reverting to checkpoint.`;
116
- return Result.ok({ stateUpdate: checkpoint, consumedGas: tryAsServiceGas(result.consumedGas) });
117
- }
118
- logger.trace `[${serviceId}] accumulate finished with ${Status[status]}`;
108
+ if (result.status !== ReturnStatus.OK) {
109
+ logger.trace `[${serviceId}] accumulate finished with ${ReturnStatus[result.status]} reverting to checkpoint.`;
110
+ return Result.ok({ stateUpdate: checkpoint, consumedGas: tryAsServiceGas(result.consumedGas) });
119
111
  }
112
+ logger.trace `[${serviceId}] accumulate finished with ${ReturnStatus[result.status]}`;
120
113
  /**
121
114
  * PVM invocation returned a hash so we override whatever `yield` host call
122
115
  * provided.
123
116
  *
124
117
  * https://graypaper.fluffylabs.dev/#/7e6ff6a/301202301202?v=0.6.7
125
118
  */
126
- if (result.hasMemorySlice() && result.memorySlice.length === HASH_SIZE) {
119
+ if (result.memorySlice.length === HASH_SIZE) {
127
120
  const memorySlice = Bytes.fromBlob(result.memorySlice, HASH_SIZE);
128
121
  newState.yieldedRoot = memorySlice.asOpaque();
129
122
  }
@@ -142,19 +135,16 @@ export class Accumulate {
142
135
  async accumulateSingleService(serviceId, transfers, operands, gasCost, slot, entropy, inputStateUpdate) {
143
136
  logger.log `Accumulating service ${serviceId}, transfers: ${transfers.length} operands: ${operands.length} at slot: ${slot}`;
144
137
  const updatedState = new PartiallyUpdatedState(this.state, inputStateUpdate);
145
- // update service balance from incoming transfers
146
- if (Compatibility.isGreaterOrEqual(GpVersion.V0_7_1)) {
147
- const serviceInfo = updatedState.getServiceInfo(serviceId);
148
- if (serviceInfo !== null) {
149
- // update the balance from incoming tranfsers
150
- const newBalance = sumU64(serviceInfo.balance, ...transfers.map((item) => item.amount));
151
- if (newBalance.overflow) {
152
- logger.log `Accumulation failed because of overflowing balance ${serviceId}.`;
153
- return { stateUpdate: null, consumedGas: tryAsServiceGas(0n) };
154
- }
155
- const newInfo = ServiceAccountInfo.create({ ...serviceInfo, balance: newBalance.value });
156
- updatedState.updateServiceInfo(serviceId, newInfo);
138
+ const serviceInfo = updatedState.getServiceInfo(serviceId);
139
+ if (serviceInfo !== null) {
140
+ // update the balance from incoming transfers
141
+ const newBalance = sumU64(serviceInfo.balance, ...transfers.map((item) => item.amount));
142
+ if (newBalance.overflow) {
143
+ logger.log `Accumulation failed because of overflowing balance ${serviceId}.`;
144
+ return { stateUpdate: null, consumedGas: tryAsServiceGas(0n) };
157
145
  }
146
+ const newInfo = ServiceAccountInfo.create({ ...serviceInfo, balance: newBalance.value });
147
+ updatedState.updateServiceInfo(serviceId, newInfo);
158
148
  }
159
149
  const result = await this.pvmAccumulateInvocation(slot, serviceId, transfers, operands, gasCost, entropy, updatedState);
160
150
  if (result.isError) {
@@ -389,7 +379,6 @@ export class Accumulate {
389
379
  }
390
380
  async transition({ reports, slot, entropy }) {
391
381
  const statistics = new Map();
392
- const legacyTransfers = [];
393
382
  const yieldedRoots = new Map();
394
383
  const accumulateQueue = new AccumulateQueue(this.chainSpec, this.state);
395
384
  const toAccumulateImmediately = accumulateQueue.getWorkReportsToAccumulateImmediately(reports);
@@ -400,9 +389,7 @@ export class Accumulate {
400
389
  const accumulatableReports = ArrayView.from(toAccumulateImmediately.concat(queue));
401
390
  const gasLimit = this.getGasLimit();
402
391
  const autoAccumulateServices = this.state.privilegedServices.autoAccumulateServices;
403
- const { accumulatedReports, gasCost, state, ...rest } = Compatibility.isGreaterOrEqual(GpVersion.V0_7_1)
404
- ? await this.accumulateSequentially(gasLimit, accumulatableReports, [], slot, entropy, statistics, AccumulationStateUpdate.empty(), autoAccumulateServices, yieldedRoots)
405
- : await this.accumulateSequentiallyLegacy(gasLimit, accumulatableReports, slot, entropy, statistics, AccumulationStateUpdate.empty(), autoAccumulateServices, yieldedRoots, legacyTransfers);
392
+ const { accumulatedReports, gasCost, state, ...rest } = await this.accumulateSequentially(gasLimit, accumulatableReports, [], slot, entropy, statistics, AccumulationStateUpdate.empty(), autoAccumulateServices, yieldedRoots);
406
393
  // we can safely ignore top-level gas cost from accSequentially.
407
394
  const _gasCost = gasCost;
408
395
  assertEmpty(rest);
@@ -439,7 +426,6 @@ export class Accumulate {
439
426
  ...authQueues,
440
427
  },
441
428
  accumulationStatistics: statistics,
442
- pendingTransfers: legacyTransfers,
443
429
  accumulationOutputLog: accumulationOutput,
444
430
  });
445
431
  }
@@ -5,7 +5,7 @@ import { MIN_PUBLIC_SERVICE_INDEX } from "#@typeberry/block/gp-constants.js";
5
5
  import { RefineContext } from "#@typeberry/block/refine-context.js";
6
6
  import { tryAsWorkItemsCount } from "#@typeberry/block/work-package.js";
7
7
  import { WorkPackageSpec, WorkReport } from "#@typeberry/block/work-report.js";
8
- import { WorkExecResult, WorkExecResultKind, WorkRefineLoad, WorkResult } from "#@typeberry/block/work-result.js";
8
+ import { WorkExecResult, WorkRefineLoad, WorkResult } from "#@typeberry/block/work-result.js";
9
9
  import { Bytes, BytesBlob } from "#@typeberry/bytes";
10
10
  import { asKnownSize, FixedSizeArray, HashDictionary, HashSet } from "#@typeberry/collections";
11
11
  import { PvmBackend, PvmBackendNames, tinyChainSpec } from "#@typeberry/config";
@@ -266,7 +266,7 @@ const createWorkReport = (workPackageHash, prerequisites = [], serviceId = tryAs
266
266
  importedSegments: tryAsU32(0),
267
267
  }),
268
268
  payloadHash: Bytes.zero(HASH_SIZE).asOpaque(),
269
- result: new WorkExecResult(WorkExecResultKind.ok, BytesBlob.empty()),
269
+ result: WorkExecResult.ok(BytesBlob.empty()),
270
270
  serviceId,
271
271
  }),
272
272
  ], tryAsWorkItemsCount(1)),
@@ -1 +1 @@
1
- {"version":3,"file":"accumulation-result-merge-utils.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/transition/accumulate/accumulation-result-merge-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,SAAS,EAAmB,MAAM,kBAAkB,CAAC;AACpF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,KAAK,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAI1F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,wBAAgB,gCAAgC,CAC9C,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,eAAe,EACtB,UAAU,EAAE,uBAAuB,EACnC,OAAO,EAAE,0BAA0B,GAClC,WAAW,CAab;AAED,KAAK,SAAS,GAAG,SAAS,CAAC;AAC3B,KAAK,WAAW,GAAG;IAAE,WAAW,EAAE,UAAU,CAAC;IAAC,WAAW,EAAE,uBAAuB,CAAA;CAAE,CAAC;AAGrF,MAAM,MAAM,0BAA0B,GAAG,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;AAErE,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,YAAY,EAAE,UAAU,CAAC;IACzB,KAAK,EAAE,uBAAuB,CAAC;CAChC,CAAC"}
1
+ {"version":3,"file":"accumulation-result-merge-utils.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/transition/accumulate/accumulation-result-merge-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,SAAS,EAAmB,MAAM,kBAAkB,CAAC;AACpF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,KAAK,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAG1F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,wBAAgB,gCAAgC,CAC9C,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,eAAe,EACtB,UAAU,EAAE,uBAAuB,EACnC,OAAO,EAAE,0BAA0B,GAClC,WAAW,CAab;AAED,KAAK,SAAS,GAAG,SAAS,CAAC;AAC3B,KAAK,WAAW,GAAG;IAAE,WAAW,EAAE,UAAU,CAAC;IAAC,WAAW,EAAE,uBAAuB,CAAA;CAAE,CAAC;AAGrF,MAAM,MAAM,0BAA0B,GAAG,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;AAErE,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,YAAY,EAAE,UAAU,CAAC;IACzB,KAAK,EAAE,uBAAuB,CAAC;CAChC,CAAC"}
@@ -1,7 +1,6 @@
1
1
  import { tryAsServiceGas } from "#@typeberry/block";
2
2
  import { AccumulationStateUpdate } from "#@typeberry/jam-host-calls";
3
- import { sumU64 } from "#@typeberry/numbers";
4
- import { MAX_VALUE_U64 } from "#@typeberry/pvm-interpreter/ops/math-consts.js";
3
+ import { MAX_VALUE_U64, sumU64 } from "#@typeberry/numbers";
5
4
  import { PrivilegedServices, tryAsPerCore, UpdatePreimageKind } from "#@typeberry/state";
6
5
  export function mergePerallelAccumulationResults(chainSpec, state, inputState, results) {
7
6
  const mergeContext = createMergeContext(chainSpec, state, inputState, results);
@@ -7,8 +7,7 @@ import { BANDERSNATCH_KEY_BYTES, BLS_KEY_BYTES, ED25519_KEY_BYTES } from "#@type
7
7
  import { HASH_SIZE } from "#@typeberry/hash";
8
8
  import { AccumulationStateUpdate, PendingTransfer } from "#@typeberry/jam-host-calls";
9
9
  import { TRANSFER_MEMO_BYTES } from "#@typeberry/jam-host-calls/externalities/partial-state.js";
10
- import { tryAsU32, tryAsU64 } from "#@typeberry/numbers";
11
- import { MAX_VALUE_U64 } from "#@typeberry/pvm-interpreter/ops/math-consts.js";
10
+ import { MAX_VALUE_U64, tryAsU32, tryAsU64 } from "#@typeberry/numbers";
12
11
  import { AUTHORIZATION_QUEUE_SIZE, InMemoryState, PreimageItem, PrivilegedServices, ServiceAccountInfo, StorageItem, tryAsPerCore, UpdatePreimage, UpdateService, UpdateStorage, VALIDATOR_META_BYTES, ValidatorData, } from "#@typeberry/state";
13
12
  import { deepEqual } from "#@typeberry/utils";
14
13
  import { mergePerallelAccumulationResults } from "./accumulation-result-merge-utils.js";
@@ -1,5 +1,4 @@
1
1
  export * from "./accumulate.js";
2
2
  export * from "./accumulate-state.js";
3
- export * from "./deferred-transfers.js";
4
3
  export * from "./options.js";
5
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/transition/accumulate/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/transition/accumulate/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC"}
@@ -1,4 +1,3 @@
1
1
  export * from "./accumulate.js";
2
2
  export * from "./accumulate-state.js";
3
- export * from "./deferred-transfers.js";
4
3
  export * from "./options.js";
@@ -7,7 +7,7 @@ import type { SafroleErrorCode, SafroleStateUpdate } from "#@typeberry/safrole/s
7
7
  import { type SafroleSealError } from "#@typeberry/safrole/safrole-seal.js";
8
8
  import type { State, WithStateView } from "#@typeberry/state";
9
9
  import { type ErrorResult, Result, type TaggedError } from "#@typeberry/utils";
10
- import { type ACCUMULATION_ERROR, type AccumulateOptions, type AccumulateStateUpdate, type DeferredTransfersErrorCode } from "./accumulate/index.js";
10
+ import { type ACCUMULATION_ERROR, type AccumulateOptions, type AccumulateStateUpdate } from "./accumulate/index.js";
11
11
  import { type AssurancesError, type AssurancesStateUpdate } from "./assurances.js";
12
12
  import { type AuthorizationStateUpdate } from "./authorization.js";
13
13
  import type { TransitionHasher } from "./hasher.js";
@@ -32,10 +32,9 @@ export declare enum StfErrorKind {
32
32
  Preimages = 4,
33
33
  SafroleSeal = 5,
34
34
  Accumulate = 6,
35
- DeferredTransfers = 7,
36
- Offenders = 8
35
+ Offenders = 7
37
36
  }
38
- export type StfError = TaggedError<StfErrorKind.Assurances, AssurancesError> | TaggedError<StfErrorKind.Reports, ReportsError> | TaggedError<StfErrorKind.Disputes, DisputesErrorCode> | TaggedError<StfErrorKind.Safrole, SafroleErrorCode> | TaggedError<StfErrorKind.Preimages, PreimagesErrorCode> | TaggedError<StfErrorKind.SafroleSeal, SafroleSealError> | TaggedError<StfErrorKind.Accumulate, ACCUMULATION_ERROR> | TaggedError<StfErrorKind.DeferredTransfers, DeferredTransfersErrorCode> | TaggedError<StfErrorKind.Offenders, OFFENDERS_ERROR>;
37
+ export type StfError = TaggedError<StfErrorKind.Assurances, AssurancesError> | TaggedError<StfErrorKind.Reports, ReportsError> | TaggedError<StfErrorKind.Disputes, DisputesErrorCode> | TaggedError<StfErrorKind.Safrole, SafroleErrorCode> | TaggedError<StfErrorKind.Preimages, PreimagesErrorCode> | TaggedError<StfErrorKind.SafroleSeal, SafroleSealError> | TaggedError<StfErrorKind.Accumulate, ACCUMULATION_ERROR> | TaggedError<StfErrorKind.Offenders, OFFENDERS_ERROR>;
39
38
  export declare const stfError: <Kind extends StfErrorKind, Err extends StfError["error"]>(kind: Kind, nested: ErrorResult<Err>) => Result<Ok, {
40
39
  readonly kind: Kind;
41
40
  readonly error: Err;
@@ -55,7 +54,6 @@ export declare class OnChain {
55
54
  private readonly assurances;
56
55
  private readonly accumulate;
57
56
  private readonly accumulateOutput;
58
- private readonly deferredTransfers;
59
57
  private readonly preimages;
60
58
  private readonly recentHistory;
61
59
  private readonly authorization;
@@ -1 +1 @@
1
- {"version":3,"file":"chain-stf.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/transition/chain-stf.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chain-stf.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/transition/chain-stf.ts"],"names":[],"mappings":"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"}
@@ -5,9 +5,9 @@ import { Logger } from "#@typeberry/logger";
5
5
  import { Safrole } from "#@typeberry/safrole";
6
6
  import { BandernsatchWasm } from "#@typeberry/safrole/bandersnatch-wasm.js";
7
7
  import { SafroleSeal } from "#@typeberry/safrole/safrole-seal.js";
8
- import { assertEmpty, Compatibility, check, GpVersion, measure, OK, Result, } from "#@typeberry/utils";
8
+ import { assertEmpty, measure, OK, Result } from "#@typeberry/utils";
9
9
  import { AccumulateOutput } from "./accumulate/accumulate-output.js";
10
- import { Accumulate, DeferredTransfers, } from "./accumulate/index.js";
10
+ import { Accumulate, } from "./accumulate/index.js";
11
11
  import { Assurances } from "./assurances.js";
12
12
  import { Authorization } from "./authorization.js";
13
13
  import { Preimages } from "./preimages.js";
@@ -53,8 +53,7 @@ export var StfErrorKind;
53
53
  StfErrorKind[StfErrorKind["Preimages"] = 4] = "Preimages";
54
54
  StfErrorKind[StfErrorKind["SafroleSeal"] = 5] = "SafroleSeal";
55
55
  StfErrorKind[StfErrorKind["Accumulate"] = 6] = "Accumulate";
56
- StfErrorKind[StfErrorKind["DeferredTransfers"] = 7] = "DeferredTransfers";
57
- StfErrorKind[StfErrorKind["Offenders"] = 8] = "Offenders";
56
+ StfErrorKind[StfErrorKind["Offenders"] = 7] = "Offenders";
58
57
  })(StfErrorKind || (StfErrorKind = {}));
59
58
  export const stfError = (kind, nested) => {
60
59
  return Result.taggedError(StfErrorKind, kind, nested);
@@ -75,8 +74,6 @@ export class OnChain {
75
74
  // chapter 12: https://graypaper.fluffylabs.dev/#/68eaa1f/159f02159f02?v=0.6.4
76
75
  accumulate;
77
76
  accumulateOutput;
78
- // chapter 12.3: https://graypaper.fluffylabs.dev/#/68eaa1f/178203178203?v=0.6.4
79
- deferredTransfers;
80
77
  // chapter 12.4: https://graypaper.fluffylabs.dev/#/68eaa1f/18cc0018cc00?v=0.6.4
81
78
  preimages;
82
79
  // after accumulation
@@ -101,7 +98,6 @@ export class OnChain {
101
98
  this.assurances = new Assurances(chainSpec, state, hasher.blake2b);
102
99
  this.accumulate = new Accumulate(chainSpec, hasher.blake2b, state, options);
103
100
  this.accumulateOutput = new AccumulateOutput();
104
- this.deferredTransfers = new DeferredTransfers(chainSpec, hasher.blake2b, state, options.pvm);
105
101
  this.preimages = new Preimages(state, hasher.blake2b);
106
102
  this.authorization = new Authorization(chainSpec, state);
107
103
  }
@@ -216,29 +212,10 @@ export class OnChain {
216
212
  if (accumulateResult.isError) {
217
213
  return stfError(StfErrorKind.Accumulate, accumulateResult);
218
214
  }
219
- const { stateUpdate: accumulateUpdate, accumulationStatistics, pendingTransfers, accumulationOutputLog, ...accumulateRest } = accumulateResult.ok;
215
+ const { stateUpdate: accumulateUpdate, accumulationStatistics, accumulationOutputLog, ...accumulateRest } = accumulateResult.ok;
220
216
  assertEmpty(accumulateRest);
221
217
  const { privilegedServices: maybePrivilegedServices, authQueues: maybeAuthorizationQueues, designatedValidatorData: maybeDesignatedValidatorData, preimages: accumulatePreimages, accumulationQueue, recentlyAccumulated, ...servicesUpdateFromAccumulate } = accumulateUpdate;
222
- let transferStatistics = new Map();
223
- let servicesUpdate = { ...servicesUpdateFromAccumulate, preimages: accumulatePreimages };
224
- if (!Compatibility.isGreaterOrEqual(GpVersion.V0_7_1)) {
225
- const deferredTransfersResult = await this.deferredTransfers.transition({
226
- entropy: entropy[0],
227
- pendingTransfers,
228
- servicesUpdate,
229
- timeslot: timeSlot,
230
- });
231
- if (deferredTransfersResult.isError) {
232
- return stfError(StfErrorKind.DeferredTransfers, deferredTransfersResult);
233
- }
234
- const { servicesUpdate: servicesUpdateFromDeferredTransfers, transferStatistics: transferStatisticsFromDeferredTransfers, ...deferredTransfersRest } = deferredTransfersResult.ok;
235
- transferStatistics = transferStatisticsFromDeferredTransfers;
236
- servicesUpdate = servicesUpdateFromDeferredTransfers;
237
- assertEmpty(deferredTransfersRest);
238
- }
239
- else {
240
- check `${pendingTransfers.length === 0} All transfers should be already accumulated.`;
241
- }
218
+ const servicesUpdate = { ...servicesUpdateFromAccumulate, preimages: accumulatePreimages };
242
219
  const accumulateRoot = await this.accumulateOutput.transition({ accumulationOutputLog });
243
220
  // recent history
244
221
  const recentHistoryUpdate = this.recentHistory.transition({
@@ -264,7 +241,6 @@ export class OnChain {
264
241
  incomingReports: extrinsic.guarantees.map((g) => g.report),
265
242
  availableReports,
266
243
  accumulationStatistics,
267
- transferStatistics,
268
244
  reporters: reporters,
269
245
  currentValidatorData,
270
246
  });
@@ -2,7 +2,7 @@
2
2
  import { tryAsCoreIndex, tryAsPerValidator, tryAsServiceGas, tryAsServiceId, tryAsTimeSlot } from "#@typeberry/block";
3
3
  import { RefineContext } from "#@typeberry/block/refine-context.js";
4
4
  import { WorkPackageSpec, WorkReport } from "#@typeberry/block/work-report.js";
5
- import { WorkExecResult, WorkExecResultKind, WorkRefineLoad, WorkResult } from "#@typeberry/block/work-result.js";
5
+ import { WorkExecResult, WorkRefineLoad, WorkResult } from "#@typeberry/block/work-result.js";
6
6
  import { Bytes, BytesBlob } from "#@typeberry/bytes";
7
7
  import { FixedSizeArray } from "#@typeberry/collections";
8
8
  import { tinyChainSpec } from "#@typeberry/config";
@@ -174,7 +174,7 @@ export function workReport(packageHash, coreIndex) {
174
174
  codeHash: Bytes.zero(HASH_SIZE).asOpaque(),
175
175
  payloadHash: Bytes.zero(HASH_SIZE).asOpaque(),
176
176
  gas: tryAsServiceGas(42),
177
- result: new WorkExecResult(WorkExecResultKind.ok, BytesBlob.parseBlob("0x010203")),
177
+ result: WorkExecResult.ok(BytesBlob.parseBlob("0x010203")),
178
178
  load: WorkRefineLoad.create({
179
179
  gasUsed: tryAsServiceGas(0),
180
180
  importedSegments: tryAsU32(0),
@@ -1 +1 @@
1
- {"version":3,"file":"accumulate-externalities.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/transition/externalities/accumulate-externalities.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"accumulate-externalities.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/transition/externalities/accumulate-externalities.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ import { AccumulationStateUpdate, clampU64ToU32, EjectError, ForgetPreimageError
6
6
  import { Logger } from "#@typeberry/logger";
7
7
  import { maxU64, sumU64, tryAsU32, tryAsU64 } from "#@typeberry/numbers";
8
8
  import { LookupHistoryItem, PreimageItem, PrivilegedServices, ServiceAccountInfo, tryAsLookupHistorySlots, UpdatePreimage, } from "#@typeberry/state";
9
- import { assertNever, Compatibility, check, GpVersion, OK, Result } from "#@typeberry/utils";
9
+ import { assertNever, check, OK, Result } from "#@typeberry/utils";
10
10
  /**
11
11
  * Number of storage items required for ejection of the service.
12
12
  *
@@ -102,10 +102,7 @@ export class AccumulateExternalities {
102
102
  /** `check`: https://graypaper.fluffylabs.dev/#/ab2cdbd/30c60330c603?v=0.7.2 */
103
103
  getNextAvailableServiceId(serviceId) {
104
104
  let currentServiceId = serviceId;
105
- const mod = Compatibility.isGreaterOrEqual(GpVersion.V0_7_1)
106
- ? 2 ** 32 - MIN_PUBLIC_SERVICE_INDEX - 2 ** 8
107
- : 2 ** 32 - 2 ** 9;
108
- const offset = Compatibility.isGreaterOrEqual(GpVersion.V0_7_1) ? MIN_PUBLIC_SERVICE_INDEX : 2 ** 8;
105
+ const mod = 2 ** 32 - MIN_PUBLIC_SERVICE_INDEX - 2 ** 8;
109
106
  for (;;) {
110
107
  const service = this.getServiceInfo(currentServiceId);
111
108
  // we found an empty id
@@ -113,7 +110,7 @@ export class AccumulateExternalities {
113
110
  return currentServiceId;
114
111
  }
115
112
  // keep trying
116
- currentServiceId = tryAsServiceId(((currentServiceId - offset + 1 + mod) % mod) + offset);
113
+ currentServiceId = tryAsServiceId(((currentServiceId - MIN_PUBLIC_SERVICE_INDEX + 1 + mod) % mod) + MIN_PUBLIC_SERVICE_INDEX);
117
114
  }
118
115
  }
119
116
  checkPreimageStatus(hash, length) {
@@ -304,25 +301,23 @@ export class AccumulateExternalities {
304
301
  ...currentService,
305
302
  balance: tryAsU64(balanceLeftForCurrent),
306
303
  });
307
- if (Compatibility.isGreaterOrEqual(GpVersion.V0_7_1)) {
308
- if (wantedServiceId < MIN_PUBLIC_SERVICE_INDEX &&
309
- this.currentServiceId === this.updatedState.getPrivilegedServices().registrar) {
310
- // NOTE: It's safe to cast to `Number` here, bcs here service ID cannot be bigger than 2**16
311
- const newServiceId = tryAsServiceId(Number(wantedServiceId));
312
- if (this.getServiceInfo(newServiceId) !== null) {
313
- return Result.error(NewServiceError.RegistrarServiceIdAlreadyTaken, () => `Service ID ${newServiceId} already taken`);
314
- }
315
- // add the new service with selected ID
316
- // https://graypaper.fluffylabs.dev/#/ab2cdbd/36be0336c003?v=0.7.2
317
- this.updatedState.createService(newServiceId, newAccount, newLookupItem);
318
- // update the balance of current service
319
- // https://graypaper.fluffylabs.dev/#/ab2cdbd/36c20336c403?v=0.7.2
320
- this.updatedState.updateServiceInfo(this.currentServiceId, updatedCurrentAccount);
321
- return Result.ok(newServiceId);
304
+ if (wantedServiceId < MIN_PUBLIC_SERVICE_INDEX &&
305
+ this.currentServiceId === this.updatedState.getPrivilegedServices().registrar) {
306
+ // NOTE: It's safe to cast to `Number` here, bcs here service ID cannot be bigger than 2**16
307
+ const newServiceId = tryAsServiceId(Number(wantedServiceId));
308
+ if (this.getServiceInfo(newServiceId) !== null) {
309
+ return Result.error(NewServiceError.RegistrarServiceIdAlreadyTaken, () => `Service ID ${newServiceId} already taken`);
322
310
  }
323
- // NOTE: in case the service is not a registrar or the requested serviceId is out of range,
324
- // we completely ignore the `wantedServiceId` and assign a random one
325
- }
311
+ // add the new service with selected ID
312
+ // https://graypaper.fluffylabs.dev/#/ab2cdbd/36be0336c003?v=0.7.2
313
+ this.updatedState.createService(newServiceId, newAccount, newLookupItem);
314
+ // update the balance of current service
315
+ // https://graypaper.fluffylabs.dev/#/ab2cdbd/36c20336c403?v=0.7.2
316
+ this.updatedState.updateServiceInfo(this.currentServiceId, updatedCurrentAccount);
317
+ return Result.ok(newServiceId);
318
+ }
319
+ // NOTE: in case the service is not a registrar or the requested serviceId is out of range,
320
+ // we completely ignore the `wantedServiceId` and assign a random one
326
321
  const newServiceId = this.nextNewServiceId;
327
322
  // add the new service
328
323
  // https://graypaper.fluffylabs.dev/#/7e6ff6a/36cb0236cb02?v=0.6.7
@@ -367,7 +362,7 @@ export class AccumulateExternalities {
367
362
  logger.trace `Current service id (${this.currentServiceId}) is not an auth manager of core ${coreIndex} (expected: ${currentAssigners}) and cannot update authorization queue.`;
368
363
  return Result.error(UpdatePrivilegesError.UnprivilegedService, () => `Service ${this.currentServiceId} not assigner for core ${coreIndex} (expected: ${currentAssigners})`);
369
364
  }
370
- if (assigners === null && Compatibility.isGreaterOrEqual(GpVersion.V0_7_1)) {
365
+ if (assigners === null) {
371
366
  logger.trace `The new auth manager is not a valid service id.`;
372
367
  return Result.error(UpdatePrivilegesError.InvalidServiceId, () => `New auth manager is null for core ${coreIndex}`);
373
368
  }
@@ -375,25 +370,6 @@ export class AccumulateExternalities {
375
370
  return Result.ok(OK);
376
371
  }
377
372
  updatePrivilegedServices(manager, assigners, delegator, registrar, autoAccumulateServices) {
378
- if (!Compatibility.isGreaterOrEqual(GpVersion.V0_7_1)) {
379
- /** https://graypaper.fluffylabs.dev/#/7e6ff6a/36d90036de00?v=0.6.7 */
380
- const current = this.updatedState.getPrivilegedServices();
381
- const isManager = current.manager === this.currentServiceId;
382
- if (!isManager) {
383
- return Result.error(UpdatePrivilegesError.UnprivilegedService, () => `Service ${this.currentServiceId} is not manager`);
384
- }
385
- if (manager === null || delegator === null) {
386
- return Result.error(UpdatePrivilegesError.InvalidServiceId, () => "Either manager or delegator is not a valid service id.");
387
- }
388
- this.updatedState.stateUpdate.privilegedServices = PrivilegedServices.create({
389
- manager,
390
- assigners,
391
- delegator,
392
- registrar: registrar ?? tryAsServiceId(0),
393
- autoAccumulateServices,
394
- });
395
- return Result.ok(OK);
396
- }
397
373
  if (manager === null || delegator === null || registrar === null) {
398
374
  return Result.error(UpdatePrivilegesError.InvalidServiceId, () => "Either manager or delegator or registrar is not a valid service id.");
399
375
  }
@@ -527,9 +503,6 @@ export class AccumulateExternalities {
527
503
  }
528
504
  }
529
505
  function bumpServiceId(serviceId) {
530
- const mod = Compatibility.isGreaterOrEqual(GpVersion.V0_7_1)
531
- ? 2 ** 32 - MIN_PUBLIC_SERVICE_INDEX - 2 ** 8
532
- : 2 ** 32 - 2 ** 9;
533
- const offset = Compatibility.isGreaterOrEqual(GpVersion.V0_7_1) ? MIN_PUBLIC_SERVICE_INDEX : 2 ** 8;
534
- return tryAsServiceId(offset + ((serviceId - offset + 42 + mod) % mod));
506
+ const mod = 2 ** 32 - MIN_PUBLIC_SERVICE_INDEX - 2 ** 8;
507
+ return tryAsServiceId(MIN_PUBLIC_SERVICE_INDEX + ((serviceId - MIN_PUBLIC_SERVICE_INDEX + 42 + mod) % mod));
535
508
  }