@typeberry/lib 0.5.2 → 0.5.3-5a6cfcc

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 (179) hide show
  1. package/package.json +9 -5
  2. package/packages/core/collections/blob-dictionary.d.ts.map +1 -1
  3. package/packages/core/collections/blob-dictionary.js +3 -3
  4. package/packages/core/crypto/bandersnatch.d.ts +2 -1
  5. package/packages/core/crypto/bandersnatch.d.ts.map +1 -1
  6. package/packages/core/crypto/bandersnatch.js +9 -2
  7. package/packages/core/crypto/key-derivation.test.js +8 -7
  8. package/packages/core/hash/hash.d.ts.map +1 -1
  9. package/packages/core/hash/hash.js +1 -0
  10. package/packages/core/networking/certificate.d.ts.map +1 -1
  11. package/packages/core/networking/certificate.js +1 -0
  12. package/packages/core/networking/package.json +1 -1
  13. package/packages/core/networking/setup.d.ts.map +1 -1
  14. package/packages/core/networking/setup.js +16 -12
  15. package/packages/core/numbers/index.d.ts +4 -0
  16. package/packages/core/numbers/index.d.ts.map +1 -1
  17. package/packages/core/numbers/index.js +4 -4
  18. package/packages/core/pvm-host-calls/bin.js +6 -6
  19. package/packages/core/pvm-host-calls/ecalli-io-tracker.d.ts +32 -0
  20. package/packages/core/pvm-host-calls/ecalli-io-tracker.d.ts.map +1 -0
  21. package/packages/core/pvm-host-calls/ecalli-io-tracker.js +14 -0
  22. package/packages/core/pvm-host-calls/ecalli-trace-logger.d.ts +139 -0
  23. package/packages/core/pvm-host-calls/ecalli-trace-logger.d.ts.map +1 -0
  24. package/packages/core/pvm-host-calls/ecalli-trace-logger.js +209 -0
  25. package/packages/core/pvm-host-calls/ecalli-trace-logger.test.d.ts +2 -0
  26. package/packages/core/pvm-host-calls/ecalli-trace-logger.test.d.ts.map +1 -0
  27. package/packages/core/pvm-host-calls/ecalli-trace-logger.test.js +231 -0
  28. package/packages/core/pvm-host-calls/host-call-memory.d.ts +2 -0
  29. package/packages/core/pvm-host-calls/host-call-memory.d.ts.map +1 -1
  30. package/packages/core/pvm-host-calls/host-call-memory.js +12 -2
  31. package/packages/core/pvm-host-calls/host-call-registers.d.ts +6 -0
  32. package/packages/core/pvm-host-calls/host-call-registers.d.ts.map +1 -1
  33. package/packages/core/pvm-host-calls/host-call-registers.js +24 -0
  34. package/packages/core/pvm-host-calls/host-calls-executor.d.ts +37 -0
  35. package/packages/core/pvm-host-calls/host-calls-executor.d.ts.map +1 -0
  36. package/packages/core/pvm-host-calls/host-calls-executor.js +129 -0
  37. package/packages/core/pvm-host-calls/host-calls.d.ts +20 -26
  38. package/packages/core/pvm-host-calls/host-calls.d.ts.map +1 -1
  39. package/packages/core/pvm-host-calls/host-calls.js +40 -112
  40. package/packages/core/pvm-host-calls/index.d.ts +7 -6
  41. package/packages/core/pvm-host-calls/index.d.ts.map +1 -1
  42. package/packages/core/pvm-host-calls/index.js +7 -6
  43. package/packages/core/pvm-host-calls/{interpreter-instance-manager.d.ts → pvm-instance-manager.d.ts} +3 -3
  44. package/packages/core/pvm-host-calls/pvm-instance-manager.d.ts.map +1 -0
  45. package/packages/core/pvm-host-calls/{interpreter-instance-manager.js → pvm-instance-manager.js} +2 -2
  46. package/packages/core/pvm-interpreter/ops/math-consts.d.ts +2 -3
  47. package/packages/core/pvm-interpreter/ops/math-consts.d.ts.map +1 -1
  48. package/packages/core/pvm-interpreter/ops/math-consts.js +2 -3
  49. package/packages/core/pvm-interpreter/ops/math-ops.js +3 -3
  50. package/packages/core/pvm-interpreter/ops/math-utils.js +13 -13
  51. package/packages/core/pvm-interpreter/ops/math-utils.test.js +17 -16
  52. package/packages/core/telemetry/package.json +1 -1
  53. package/packages/extensions/ipc/jamnp/handler.d.ts +5 -4
  54. package/packages/extensions/ipc/jamnp/handler.d.ts.map +1 -1
  55. package/packages/extensions/ipc/jamnp/handler.js +59 -34
  56. package/packages/extensions/ipc/jamnp/stream.d.ts +6 -4
  57. package/packages/extensions/ipc/jamnp/stream.d.ts.map +1 -1
  58. package/packages/jam/block/work-item.d.ts +13 -4
  59. package/packages/jam/block/work-item.d.ts.map +1 -1
  60. package/packages/jam/block/work-result.d.ts +3 -5
  61. package/packages/jam/block/work-result.d.ts.map +1 -1
  62. package/packages/jam/block/work-result.js +6 -0
  63. package/packages/jam/block-json/work-result.d.ts.map +1 -1
  64. package/packages/jam/block-json/work-result.js +6 -6
  65. package/packages/jam/database-lmdb/states.test.js +4 -3
  66. package/packages/jam/executor/index.d.ts +4 -0
  67. package/packages/jam/executor/index.d.ts.map +1 -0
  68. package/packages/jam/executor/index.js +2 -0
  69. package/packages/jam/{transition/accumulate → executor}/pvm-executor.d.ts +19 -16
  70. package/packages/jam/executor/pvm-executor.d.ts.map +1 -0
  71. package/packages/jam/{transition/accumulate → executor}/pvm-executor.js +48 -5
  72. package/packages/jam/in-core/externalities/refine.d.ts +24 -0
  73. package/packages/jam/in-core/externalities/refine.d.ts.map +1 -0
  74. package/packages/jam/in-core/externalities/refine.js +36 -0
  75. package/packages/jam/in-core/in-core.d.ts +60 -0
  76. package/packages/jam/in-core/in-core.d.ts.map +1 -0
  77. package/packages/jam/in-core/in-core.js +294 -0
  78. package/packages/jam/in-core/in-core.test.d.ts +2 -0
  79. package/packages/jam/in-core/in-core.test.d.ts.map +1 -0
  80. package/packages/jam/in-core/in-core.test.js +81 -0
  81. package/packages/jam/in-core/index.d.ts +2 -0
  82. package/packages/jam/in-core/index.d.ts.map +1 -0
  83. package/packages/jam/in-core/index.js +1 -0
  84. package/packages/jam/jam-host-calls/accumulate/bless.test.js +4 -5
  85. package/packages/jam/jamnp-s/peers.d.ts.map +1 -1
  86. package/packages/jam/jamnp-s/peers.js +10 -0
  87. package/packages/jam/jamnp-s/protocol/ce-128-block-request.d.ts +1 -1
  88. package/packages/jam/jamnp-s/protocol/ce-128-block-request.d.ts.map +1 -1
  89. package/packages/jam/jamnp-s/protocol/ce-128-block-request.js +10 -8
  90. package/packages/jam/jamnp-s/protocol/ce-129-state-request.d.ts.map +1 -1
  91. package/packages/jam/jamnp-s/protocol/ce-129-state-request.js +11 -9
  92. package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.d.ts +3 -3
  93. package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.d.ts.map +1 -1
  94. package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.js +2 -2
  95. package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.d.ts +5 -5
  96. package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.d.ts.map +1 -1
  97. package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.js +2 -2
  98. package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.d.ts.map +1 -1
  99. package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.js +8 -6
  100. package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.d.ts +3 -3
  101. package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.d.ts.map +1 -1
  102. package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.js +2 -2
  103. package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.test.js +2 -2
  104. package/packages/jam/jamnp-s/protocol/stream.d.ts +13 -7
  105. package/packages/jam/jamnp-s/protocol/stream.d.ts.map +1 -1
  106. package/packages/jam/jamnp-s/protocol/stream.js +5 -4
  107. package/packages/jam/jamnp-s/protocol/test-utils.d.ts +1 -1
  108. package/packages/jam/jamnp-s/protocol/test-utils.d.ts.map +1 -1
  109. package/packages/jam/jamnp-s/protocol/test-utils.js +9 -12
  110. package/packages/jam/jamnp-s/protocol/up-0-block-announcement.d.ts +1 -1
  111. package/packages/jam/jamnp-s/protocol/up-0-block-announcement.d.ts.map +1 -1
  112. package/packages/jam/jamnp-s/protocol/up-0-block-announcement.js +1 -1
  113. package/packages/jam/jamnp-s/stream-manager.d.ts.map +1 -1
  114. package/packages/jam/jamnp-s/stream-manager.js +7 -5
  115. package/packages/jam/jamnp-s/stream-manager.test.js +8 -5
  116. package/packages/jam/jamnp-s/tasks/sync.js +1 -1
  117. package/packages/jam/node/jam-config.d.ts +4 -1
  118. package/packages/jam/node/jam-config.d.ts.map +1 -1
  119. package/packages/jam/node/jam-config.js +6 -2
  120. package/packages/jam/node/main-importer.d.ts.map +1 -1
  121. package/packages/jam/node/main-importer.js +3 -1
  122. package/packages/jam/node/main.d.ts.map +1 -1
  123. package/packages/jam/node/main.js +5 -4
  124. package/packages/jam/node/package.json +1 -1
  125. package/packages/jam/rpc-validation/types.d.ts +7 -3
  126. package/packages/jam/rpc-validation/types.d.ts.map +1 -1
  127. package/packages/jam/rpc-validation/validation.d.ts +254 -36
  128. package/packages/jam/rpc-validation/validation.d.ts.map +1 -1
  129. package/packages/jam/rpc-validation/validation.js +20 -2
  130. package/packages/jam/safrole/bandersnatch-vrf.d.ts +2 -0
  131. package/packages/jam/safrole/bandersnatch-vrf.d.ts.map +1 -1
  132. package/packages/jam/safrole/bandersnatch-vrf.js +11 -0
  133. package/packages/jam/safrole/bandersnatch-vrf.test.js +3 -3
  134. package/packages/jam/safrole/bandersnatch-wasm.d.ts +1 -0
  135. package/packages/jam/safrole/bandersnatch-wasm.d.ts.map +1 -1
  136. package/packages/jam/safrole/bandersnatch-wasm.js +8 -5
  137. package/packages/jam/safrole/safrole-seal.d.ts +1 -3
  138. package/packages/jam/safrole/safrole-seal.d.ts.map +1 -1
  139. package/packages/jam/safrole/safrole-seal.js +14 -25
  140. package/packages/jam/safrole/safrole-seal.test.js +4 -10
  141. package/packages/jam/state/in-memory-state.d.ts.map +1 -1
  142. package/packages/jam/state/in-memory-state.js +2 -3
  143. package/packages/jam/state/test.utils.d.ts.map +1 -1
  144. package/packages/jam/state/test.utils.js +2 -3
  145. package/packages/jam/transition/accumulate/accumulate-data.d.ts.map +1 -1
  146. package/packages/jam/transition/accumulate/accumulate-data.js +1 -2
  147. package/packages/jam/transition/accumulate/accumulate-queue.test.js +2 -2
  148. package/packages/jam/transition/accumulate/accumulate-utils.test.js +2 -2
  149. package/packages/jam/transition/accumulate/accumulate.d.ts.map +1 -1
  150. package/packages/jam/transition/accumulate/accumulate.js +8 -13
  151. package/packages/jam/transition/accumulate/accumulate.test.js +2 -2
  152. package/packages/jam/transition/accumulate/accumulation-result-merge-utils.d.ts.map +1 -1
  153. package/packages/jam/transition/accumulate/accumulation-result-merge-utils.js +1 -2
  154. package/packages/jam/transition/accumulate/accumulation-result-merge-utils.test.js +1 -2
  155. package/packages/jam/transition/accumulate/deferred-transfers.d.ts +1 -1
  156. package/packages/jam/transition/accumulate/deferred-transfers.d.ts.map +1 -1
  157. package/packages/jam/transition/accumulate/deferred-transfers.js +6 -7
  158. package/packages/jam/transition/disputes/disputes.d.ts.map +1 -1
  159. package/packages/jam/transition/disputes/disputes.js +5 -4
  160. package/packages/jam/transition/disputes/disputes.test.data2.js +2 -2
  161. package/packages/jam/transition/externalities/fetch-externalities.d.ts +7 -1
  162. package/packages/jam/transition/externalities/fetch-externalities.d.ts.map +1 -1
  163. package/packages/jam/transition/externalities/fetch-externalities.js +4 -0
  164. package/packages/jam/transition/externalities/fetch-externalities.test.js +2 -2
  165. package/packages/jam/transition/hasher.test.js +2 -2
  166. package/packages/jam/transition/reports/test.utils.d.ts.map +1 -1
  167. package/packages/jam/transition/reports/test.utils.js +2 -2
  168. package/packages/workers/block-authorship/main.d.ts.map +1 -1
  169. package/packages/workers/block-authorship/main.js +23 -4
  170. package/packages/workers/block-authorship/package.json +1 -1
  171. package/packages/workers/block-authorship/protocol.d.ts +3 -1
  172. package/packages/workers/block-authorship/protocol.d.ts.map +1 -1
  173. package/packages/workers/block-authorship/protocol.js +6 -3
  174. package/packages/workers/importer/package.json +1 -1
  175. package/packages/core/pvm-host-calls/host-calls-manager.d.ts +0 -23
  176. package/packages/core/pvm-host-calls/host-calls-manager.d.ts.map +0 -1
  177. package/packages/core/pvm-host-calls/host-calls-manager.js +0 -44
  178. package/packages/core/pvm-host-calls/interpreter-instance-manager.d.ts.map +0 -1
  179. package/packages/jam/transition/accumulate/pvm-executor.d.ts.map +0 -1
@@ -9,6 +9,7 @@ export const DEFAULT_DEV_CONFIG = {
9
9
  */
10
10
  export class JamConfig {
11
11
  isAuthoring;
12
+ isFastForward;
12
13
  nodeName;
13
14
  node;
14
15
  pvmBackend;
@@ -16,12 +17,14 @@ export class JamConfig {
16
17
  network;
17
18
  ancestry;
18
19
  devValidatorIndex;
19
- static new({ isAuthoring, nodeName, nodeConfig, pvmBackend, devConfig = null, networkConfig = null, ancestry = [], devValidatorIndex = null, }) {
20
- return new JamConfig(isAuthoring ?? false, nodeName, nodeConfig, pvmBackend, devConfig, networkConfig, ancestry, devValidatorIndex);
20
+ static new({ isAuthoring, isFastForward, nodeName, nodeConfig, pvmBackend, devConfig = null, networkConfig = null, ancestry = [], devValidatorIndex = null, }) {
21
+ return new JamConfig(isAuthoring ?? false, isFastForward ?? false, nodeName, nodeConfig, pvmBackend, devConfig, networkConfig, ancestry, devValidatorIndex);
21
22
  }
22
23
  constructor(
23
24
  /** Whether we should be authoring blocks. */
24
25
  isAuthoring,
26
+ /** Fast forward mode - generate blocks as fast as possible without waiting for real time. */
27
+ isFastForward,
25
28
  /** Node name. */
26
29
  nodeName,
27
30
  /** Node starting configuration. */
@@ -37,6 +40,7 @@ export class JamConfig {
37
40
  /** Validator index for dev mode authorship. Use "all" to author as all validators. */
38
41
  devValidatorIndex) {
39
42
  this.isAuthoring = isAuthoring;
43
+ this.isFastForward = isFastForward;
40
44
  this.nodeName = nodeName;
41
45
  this.node = node;
42
46
  this.pvmBackend = pvmBackend;
@@ -1 +1 @@
1
- {"version":3,"file":"main-importer.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/node/main-importer.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKzC,MAAM,MAAM,eAAe,GAAG;IAC5B,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC,CAAC;AAEF,wBAAsB,YAAY,CAChC,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,EAClC,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,OAAO,CAAC,CA4ElB"}
1
+ {"version":3,"file":"main-importer.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/node/main-importer.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKzC,MAAM,MAAM,eAAe,GAAG;IAC5B,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC,CAAC;AAEF,wBAAsB,YAAY,CAChC,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,EAClC,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,OAAO,CAAC,CA+ElB"}
@@ -1,6 +1,6 @@
1
1
  import { Bytes } from "#@typeberry/bytes";
2
2
  import { PvmBackend } from "#@typeberry/config";
3
- import { initWasm } from "#@typeberry/crypto";
3
+ import { bandersnatch, initWasm } from "#@typeberry/crypto";
4
4
  import { Blake2b, HASH_SIZE } from "#@typeberry/hash";
5
5
  import { createImporter } from "#@typeberry/importer";
6
6
  import { CURRENT_SUITE, CURRENT_VERSION, Result, resultToString } from "#@typeberry/utils";
@@ -10,9 +10,11 @@ import packageJson from "./package.json" with { type: "json" };
10
10
  const zeroHash = Bytes.zero(HASH_SIZE).asOpaque();
11
11
  export async function mainImporter(config, withRelPath, options = {}) {
12
12
  await initWasm();
13
+ const bandesnatchNative = bandersnatch.checkNativeBindings();
13
14
  logger.info `🫐 Typeberry ${packageJson.version}. GP: ${CURRENT_VERSION} (${CURRENT_SUITE})`;
14
15
  logger.info `🎸 Starting importer: ${config.nodeName}.`;
15
16
  logger.info `🖥️ PVM Backend: ${PvmBackend[config.pvmBackend]}.`;
17
+ logger.info `🐇 Bandersnatch ${bandesnatchNative.isOk ? "native 🚀" : `using wasm: ${bandesnatchNative.error}`}`;
16
18
  const chainSpec = getChainSpec(config.node.flavor);
17
19
  const blake2b = await Blake2b.createHasher();
18
20
  const nodeName = config.nodeName;
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/node/main.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAc,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACzF,OAAO,EAAE,KAAK,SAAS,EAAc,MAAM,mBAAmB,CAAC;AAe/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAkC,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAK1E,OAAO,KAAK,EAAE,SAAS,EAAiB,MAAM,iBAAiB,CAAC;AAYhE,MAAM,MAAM,OAAO,GAAG;IACpB,SAAS,EAAE,SAAS,CAAC;IACrB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IAChE,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC;IACtE,oBAAoB,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC;IAC/C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB,CAAC;AAEF,wBAAsB,IAAI,CACxB,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,EAClC,SAAS,EAAE,SAAS,GAAG,IAAI,GAC1B,OAAO,CAAC,OAAO,CAAC,CAsJlB"}
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/node/main.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAc,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACzF,OAAO,EAAE,KAAK,SAAS,EAAc,MAAM,mBAAmB,CAAC;AAe/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAkC,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAK1E,OAAO,KAAK,EAAE,SAAS,EAAiB,MAAM,iBAAiB,CAAC;AAYhE,MAAM,MAAM,OAAO,GAAG;IACpB,SAAS,EAAE,SAAS,CAAC;IACrB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IAChE,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC;IACtE,oBAAoB,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC;IAC/C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB,CAAC;AAEF,wBAAsB,IAAI,CACxB,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,EAClC,SAAS,EAAE,SAAS,GAAG,IAAI,GAC1B,OAAO,CAAC,OAAO,CAAC,CAuJlB"}
@@ -92,7 +92,7 @@ export async function main(config, withRelPath, telemetry) {
92
92
  },
93
93
  ],
94
94
  };
95
- const closeAuthorship = await initAuthorship(importer, config.isAuthoring, rootDb, baseConfig, authorshipKeys, isInMemory);
95
+ const closeAuthorship = await initAuthorship(importer, config.isAuthoring, config.isFastForward, rootDb, baseConfig, authorshipKeys, isInMemory);
96
96
  // Networking initialization
97
97
  const closeNetwork = await initNetwork(importer, rootDb, baseConfig, genesisHeaderHash, config.network, bestHeader, isInMemory);
98
98
  const api = {
@@ -128,22 +128,23 @@ export async function main(config, withRelPath, telemetry) {
128
128
  };
129
129
  return api;
130
130
  }
131
- const initAuthorship = async (importer, isAuthoring, rootDb, baseConfig, authorshipKeys, isInMemory) => {
131
+ const initAuthorship = async (importer, isAuthoring, isFastForward, rootDb, baseConfig, authorshipKeys, isInMemory) => {
132
132
  if (!isAuthoring) {
133
133
  logger.log `✍️ Authorship off: disabled`;
134
134
  return () => Promise.resolve();
135
135
  }
136
136
  logger.info `✍️ Starting block generator.`;
137
+ const workerParams = { ...authorshipKeys, isFastForward };
137
138
  const { generator, finish } = isInMemory
138
139
  ? await startBlockGenerator(DirectWorkerConfig.new({
139
140
  ...baseConfig,
140
141
  blocksDb: rootDb.getBlocksDb(),
141
142
  statesDb: rootDb.getStatesDb(),
142
- workerParams: authorshipKeys,
143
+ workerParams,
143
144
  }))
144
145
  : await spawnBlockGeneratorWorker(LmdbWorkerConfig.new({
145
146
  ...baseConfig,
146
- workerParams: authorshipKeys,
147
+ workerParams,
147
148
  }));
148
149
  // relay blocks from generator to importer
149
150
  generator.setOnBlock(async (block) => {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typeberry/node",
3
- "version": "0.5.2",
3
+ "version": "0.5.3",
4
4
  "description": "The main typeberry node.",
5
5
  "main": "index.ts",
6
6
  "dependencies": {
@@ -1,5 +1,6 @@
1
- import type { ChainSpec } from "#@typeberry/config";
1
+ import type { ChainSpec, PvmBackend } from "#@typeberry/config";
2
2
  import type { BlocksDb, StatesDb } from "#@typeberry/database";
3
+ import type { Blake2b } from "#@typeberry/hash";
3
4
  import type { EnumerableState, State } from "#@typeberry/state";
4
5
  import type WebSocket from "ws";
5
6
  import type { z } from "zod";
@@ -62,11 +63,14 @@ export type SchemaMapUnknown = Record<MethodName, {
62
63
  }>;
63
64
  export type InputOf<M extends MethodName> = z.infer<SchemaMap[M]["input"]>;
64
65
  export type OutputOf<M extends MethodName> = z.infer<SchemaMap[M]["output"]>;
65
- export type GenericHandler<I, O> = (input: I, context: {
66
+ export interface HandlerContext {
66
67
  db: DatabaseContext;
67
68
  chainSpec: ChainSpec;
69
+ pvmBackend: PvmBackend;
70
+ blake2b: Blake2b;
68
71
  subscription: SubscriptionHandlerApi;
69
- }) => Promise<O>;
72
+ }
73
+ export type GenericHandler<I, O> = (input: I, context: HandlerContext) => Promise<O>;
70
74
  export type Handler<M extends MethodName> = GenericHandler<InputOf<M>, OutputOf<M>>;
71
75
  export type HandlerMap = {
72
76
  [N in MethodName]: Handler<N>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/rpc-validation/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/rpc-validation/types.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ export declare const JSON_RPC_VERSION = "2.0";
3
3
  export declare namespace validation {
4
4
  const hash: z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>;
5
5
  const slot: z.ZodNumber;
6
+ const coreIndex: z.ZodNumber;
6
7
  const blobArray: z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>;
7
8
  const serviceId: z.ZodNumber;
8
9
  const preimageLength: z.ZodNumber;
@@ -11,6 +12,10 @@ export declare namespace validation {
11
12
  header_hash: z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>;
12
13
  slot: z.ZodNumber;
13
14
  }, z.z.core.$strip>;
15
+ const refineResult: z.ZodObject<{
16
+ report: z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>;
17
+ exports: z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>;
18
+ }, z.z.core.$strip>;
14
19
  const parameters: z.ZodObject<{
15
20
  V1: z.ZodObject<{
16
21
  deposit_per_account: z.ZodNumber;
@@ -60,6 +65,212 @@ export declare namespace validation {
60
65
  input: z.ZodTuple<[z.ZodString], null>;
61
66
  output: z.ZodBoolean;
62
67
  };
68
+ /** Non-standard typeberry extension methods. */
69
+ const customSchemas: {
70
+ typeberry_refineWorkPackage: {
71
+ input: z.ZodTuple<[z.ZodNumber, z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>, z.ZodArray<z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>>], null>;
72
+ output: z.ZodObject<{
73
+ report: z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>;
74
+ exports: z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>;
75
+ }, z.z.core.$strip>;
76
+ };
77
+ };
78
+ /** JIP-2 (standardized) methods */
79
+ const jip2Schemas: {
80
+ beefyRoot: {
81
+ input: z.ZodTuple<[], null>;
82
+ output: z.ZodAny;
83
+ };
84
+ submitPreimage: {
85
+ input: z.ZodTuple<[], null>;
86
+ output: z.ZodAny;
87
+ };
88
+ submitWorkPackage: {
89
+ input: z.ZodTuple<[], null>;
90
+ output: z.ZodAny;
91
+ };
92
+ workReport: {
93
+ input: z.ZodTuple<[], null>;
94
+ output: z.ZodAny;
95
+ };
96
+ submitWorkPackageBundle: {
97
+ input: z.ZodTuple<[], null>;
98
+ output: z.ZodAny;
99
+ };
100
+ workPackageStatus: {
101
+ input: z.ZodTuple<[], null>;
102
+ output: z.ZodAny;
103
+ };
104
+ subscribeWorkPackageStatus: {
105
+ input: z.ZodTuple<[], null>;
106
+ output: z.ZodAny;
107
+ };
108
+ fetchWorkPackageSegments: {
109
+ input: z.ZodTuple<[], null>;
110
+ output: z.ZodAny;
111
+ };
112
+ fetchSegments: {
113
+ input: z.ZodTuple<[], null>;
114
+ output: z.ZodAny;
115
+ };
116
+ syncState: {
117
+ input: z.ZodTuple<[], null>;
118
+ output: z.ZodAny;
119
+ };
120
+ subscribeSyncStatus: {
121
+ input: z.ZodTuple<[], null>;
122
+ output: z.ZodAny;
123
+ };
124
+ bestBlock: {
125
+ input: z.ZodTuple<[], null>;
126
+ output: z.ZodObject<{
127
+ header_hash: z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>;
128
+ slot: z.ZodNumber;
129
+ }, z.z.core.$strip>;
130
+ };
131
+ finalizedBlock: {
132
+ input: z.ZodTuple<[], null>;
133
+ output: z.ZodObject<{
134
+ header_hash: z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>;
135
+ slot: z.ZodNumber;
136
+ }, z.z.core.$strip>;
137
+ };
138
+ listServices: {
139
+ input: z.ZodTuple<[z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>], null>;
140
+ output: z.ZodArray<z.ZodNumber>;
141
+ };
142
+ parameters: {
143
+ input: z.ZodTuple<[], null>;
144
+ output: z.ZodObject<{
145
+ V1: z.ZodObject<{
146
+ deposit_per_account: z.ZodNumber;
147
+ deposit_per_item: z.ZodNumber;
148
+ deposit_per_byte: z.ZodNumber;
149
+ min_turnaround_period: z.ZodNumber;
150
+ epoch_period: z.ZodNumber;
151
+ max_accumulate_gas: z.ZodNumber;
152
+ max_is_authorized_gas: z.ZodNumber;
153
+ max_refine_gas: z.ZodNumber;
154
+ block_gas_limit: z.ZodNumber;
155
+ recent_block_count: z.ZodNumber;
156
+ max_work_items: z.ZodNumber;
157
+ max_dependencies: z.ZodNumber;
158
+ max_tickets_per_block: z.ZodNumber;
159
+ max_lookup_anchor_age: z.ZodNumber;
160
+ tickets_attempts_number: z.ZodNumber;
161
+ auth_window: z.ZodNumber;
162
+ auth_queue_len: z.ZodNumber;
163
+ rotation_period: z.ZodNumber;
164
+ max_extrinsics: z.ZodNumber;
165
+ availability_timeout: z.ZodNumber;
166
+ val_count: z.ZodNumber;
167
+ max_input: z.ZodNumber;
168
+ max_refine_code_size: z.ZodNumber;
169
+ basic_piece_len: z.ZodNumber;
170
+ max_imports: z.ZodNumber;
171
+ max_is_authorized_code_size: z.ZodNumber;
172
+ max_exports: z.ZodNumber;
173
+ max_refine_memory: z.ZodNumber;
174
+ max_is_authorized_memory: z.ZodNumber;
175
+ segment_piece_count: z.ZodNumber;
176
+ max_report_elective_data: z.ZodNumber;
177
+ transfer_memo_size: z.ZodNumber;
178
+ epoch_tail_start: z.ZodNumber;
179
+ core_count: z.ZodNumber;
180
+ slot_period_sec: z.ZodNumber;
181
+ max_authorizer_code_size: z.ZodNumber;
182
+ max_service_code_size: z.ZodNumber;
183
+ }, z.z.core.$strip>;
184
+ }, z.z.core.$strip>;
185
+ };
186
+ parent: {
187
+ input: z.ZodTuple<[z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>], null>;
188
+ output: z.ZodObject<{
189
+ header_hash: z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>;
190
+ slot: z.ZodNumber;
191
+ }, z.z.core.$strip>;
192
+ };
193
+ serviceData: {
194
+ input: z.ZodTuple<[z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>, z.ZodNumber], null>;
195
+ output: z.ZodUnion<readonly [z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>, z.ZodNull]>;
196
+ };
197
+ servicePreimage: {
198
+ input: z.ZodTuple<[z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>, z.ZodNumber, z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>], null>;
199
+ output: z.ZodUnion<readonly [z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>, z.ZodNull]>;
200
+ };
201
+ serviceRequest: {
202
+ input: z.ZodTuple<[z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>, z.ZodNumber, z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>, z.ZodNumber], null>;
203
+ output: z.ZodUnion<readonly [z.ZodReadonly<z.ZodArray<z.ZodNumber>>, z.ZodNull]>;
204
+ };
205
+ serviceValue: {
206
+ input: z.ZodTuple<[z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>, z.ZodNumber, z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>], null>;
207
+ output: z.ZodUnion<readonly [z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>, z.ZodNull]>;
208
+ };
209
+ stateRoot: {
210
+ input: z.ZodTuple<[z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>], null>;
211
+ output: z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>;
212
+ };
213
+ statistics: {
214
+ input: z.ZodTuple<[z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>], null>;
215
+ output: z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>;
216
+ };
217
+ subscribeBestBlock: {
218
+ input: z.ZodTuple<[], null>;
219
+ output: z.ZodString;
220
+ };
221
+ subscribeFinalizedBlock: {
222
+ input: z.ZodTuple<[], null>;
223
+ output: z.ZodString;
224
+ };
225
+ subscribeServiceData: {
226
+ input: z.ZodTuple<[z.ZodNumber, z.ZodBoolean], null>;
227
+ output: z.ZodString;
228
+ };
229
+ subscribeServicePreimage: {
230
+ input: z.ZodTuple<[z.ZodNumber, z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>, z.ZodBoolean], null>;
231
+ output: z.ZodString;
232
+ };
233
+ subscribeServiceRequest: {
234
+ input: z.ZodTuple<[z.ZodNumber, z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>, z.ZodNumber, z.ZodBoolean], null>;
235
+ output: z.ZodString;
236
+ };
237
+ subscribeServiceValue: {
238
+ input: z.ZodTuple<[z.ZodNumber, z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>, z.ZodBoolean], null>;
239
+ output: z.ZodString;
240
+ };
241
+ subscribeStatistics: {
242
+ input: z.ZodTuple<[z.ZodBoolean], null>;
243
+ output: z.ZodString;
244
+ };
245
+ unsubscribeBestBlock: {
246
+ input: z.ZodTuple<[z.ZodString], null>;
247
+ output: z.ZodBoolean;
248
+ };
249
+ unsubscribeFinalizedBlock: {
250
+ input: z.ZodTuple<[z.ZodString], null>;
251
+ output: z.ZodBoolean;
252
+ };
253
+ unsubscribeServiceData: {
254
+ input: z.ZodTuple<[z.ZodString], null>;
255
+ output: z.ZodBoolean;
256
+ };
257
+ unsubscribeServicePreimage: {
258
+ input: z.ZodTuple<[z.ZodString], null>;
259
+ output: z.ZodBoolean;
260
+ };
261
+ unsubscribeServiceRequest: {
262
+ input: z.ZodTuple<[z.ZodString], null>;
263
+ output: z.ZodBoolean;
264
+ };
265
+ unsubscribeServiceValue: {
266
+ input: z.ZodTuple<[z.ZodString], null>;
267
+ output: z.ZodBoolean;
268
+ };
269
+ unsubscribeStatistics: {
270
+ input: z.ZodTuple<[z.ZodString], null>;
271
+ output: z.ZodBoolean;
272
+ };
273
+ };
63
274
  const schemas: {
64
275
  readonly beefyRoot: {
65
276
  input: z.ZodTuple<[], null>;
@@ -106,26 +317,26 @@ export declare namespace validation {
106
317
  output: z.ZodAny;
107
318
  };
108
319
  readonly bestBlock: {
109
- readonly input: z.ZodTuple<[], null>;
110
- readonly output: z.ZodObject<{
320
+ input: z.ZodTuple<[], null>;
321
+ output: z.ZodObject<{
111
322
  header_hash: z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>;
112
323
  slot: z.ZodNumber;
113
324
  }, z.z.core.$strip>;
114
325
  };
115
326
  readonly finalizedBlock: {
116
- readonly input: z.ZodTuple<[], null>;
117
- readonly output: z.ZodObject<{
327
+ input: z.ZodTuple<[], null>;
328
+ output: z.ZodObject<{
118
329
  header_hash: z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>;
119
330
  slot: z.ZodNumber;
120
331
  }, z.z.core.$strip>;
121
332
  };
122
333
  readonly listServices: {
123
- readonly input: z.ZodTuple<[z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>], null>;
124
- readonly output: z.ZodArray<z.ZodNumber>;
334
+ input: z.ZodTuple<[z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>], null>;
335
+ output: z.ZodArray<z.ZodNumber>;
125
336
  };
126
337
  readonly parameters: {
127
- readonly input: z.ZodTuple<[], null>;
128
- readonly output: z.ZodObject<{
338
+ input: z.ZodTuple<[], null>;
339
+ output: z.ZodObject<{
129
340
  V1: z.ZodObject<{
130
341
  deposit_per_account: z.ZodNumber;
131
342
  deposit_per_item: z.ZodNumber;
@@ -168,63 +379,63 @@ export declare namespace validation {
168
379
  }, z.z.core.$strip>;
169
380
  };
170
381
  readonly parent: {
171
- readonly input: z.ZodTuple<[z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>], null>;
172
- readonly output: z.ZodObject<{
382
+ input: z.ZodTuple<[z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>], null>;
383
+ output: z.ZodObject<{
173
384
  header_hash: z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>;
174
385
  slot: z.ZodNumber;
175
386
  }, z.z.core.$strip>;
176
387
  };
177
388
  readonly serviceData: {
178
- readonly input: z.ZodTuple<[z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>, z.ZodNumber], null>;
179
- readonly output: z.ZodUnion<readonly [z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>, z.ZodNull]>;
389
+ input: z.ZodTuple<[z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>, z.ZodNumber], null>;
390
+ output: z.ZodUnion<readonly [z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>, z.ZodNull]>;
180
391
  };
181
392
  readonly servicePreimage: {
182
- readonly input: z.ZodTuple<[z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>, z.ZodNumber, z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>], null>;
183
- readonly output: z.ZodUnion<readonly [z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>, z.ZodNull]>;
393
+ input: z.ZodTuple<[z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>, z.ZodNumber, z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>], null>;
394
+ output: z.ZodUnion<readonly [z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>, z.ZodNull]>;
184
395
  };
185
396
  readonly serviceRequest: {
186
- readonly input: z.ZodTuple<[z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>, z.ZodNumber, z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>, z.ZodNumber], null>;
187
- readonly output: z.ZodUnion<readonly [z.ZodReadonly<z.ZodArray<z.ZodNumber>>, z.ZodNull]>;
397
+ input: z.ZodTuple<[z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>, z.ZodNumber, z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>, z.ZodNumber], null>;
398
+ output: z.ZodUnion<readonly [z.ZodReadonly<z.ZodArray<z.ZodNumber>>, z.ZodNull]>;
188
399
  };
189
400
  readonly serviceValue: {
190
- readonly input: z.ZodTuple<[z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>, z.ZodNumber, z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>], null>;
191
- readonly output: z.ZodUnion<readonly [z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>, z.ZodNull]>;
401
+ input: z.ZodTuple<[z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>, z.ZodNumber, z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>], null>;
402
+ output: z.ZodUnion<readonly [z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>, z.ZodNull]>;
192
403
  };
193
404
  readonly stateRoot: {
194
- readonly input: z.ZodTuple<[z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>], null>;
195
- readonly output: z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>;
405
+ input: z.ZodTuple<[z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>], null>;
406
+ output: z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>;
196
407
  };
197
408
  readonly statistics: {
198
- readonly input: z.ZodTuple<[z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>], null>;
199
- readonly output: z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>;
409
+ input: z.ZodTuple<[z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>], null>;
410
+ output: z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>;
200
411
  };
201
412
  readonly subscribeBestBlock: {
202
- readonly input: z.ZodTuple<[], null>;
203
- readonly output: z.ZodString;
413
+ input: z.ZodTuple<[], null>;
414
+ output: z.ZodString;
204
415
  };
205
416
  readonly subscribeFinalizedBlock: {
206
- readonly input: z.ZodTuple<[], null>;
207
- readonly output: z.ZodString;
417
+ input: z.ZodTuple<[], null>;
418
+ output: z.ZodString;
208
419
  };
209
420
  readonly subscribeServiceData: {
210
- readonly input: z.ZodTuple<[z.ZodNumber, z.ZodBoolean], null>;
211
- readonly output: z.ZodString;
421
+ input: z.ZodTuple<[z.ZodNumber, z.ZodBoolean], null>;
422
+ output: z.ZodString;
212
423
  };
213
424
  readonly subscribeServicePreimage: {
214
- readonly input: z.ZodTuple<[z.ZodNumber, z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>, z.ZodBoolean], null>;
215
- readonly output: z.ZodString;
425
+ input: z.ZodTuple<[z.ZodNumber, z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>, z.ZodBoolean], null>;
426
+ output: z.ZodString;
216
427
  };
217
428
  readonly subscribeServiceRequest: {
218
- readonly input: z.ZodTuple<[z.ZodNumber, z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>, z.ZodNumber, z.ZodBoolean], null>;
219
- readonly output: z.ZodString;
429
+ input: z.ZodTuple<[z.ZodNumber, z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>, z.ZodNumber, z.ZodBoolean], null>;
430
+ output: z.ZodString;
220
431
  };
221
432
  readonly subscribeServiceValue: {
222
- readonly input: z.ZodTuple<[z.ZodNumber, z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>, z.ZodBoolean], null>;
223
- readonly output: z.ZodString;
433
+ input: z.ZodTuple<[z.ZodNumber, z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>, z.ZodBoolean], null>;
434
+ output: z.ZodString;
224
435
  };
225
436
  readonly subscribeStatistics: {
226
- readonly input: z.ZodTuple<[z.ZodBoolean], null>;
227
- readonly output: z.ZodString;
437
+ input: z.ZodTuple<[z.ZodBoolean], null>;
438
+ output: z.ZodString;
228
439
  };
229
440
  readonly unsubscribeBestBlock: {
230
441
  input: z.ZodTuple<[z.ZodString], null>;
@@ -254,6 +465,13 @@ export declare namespace validation {
254
465
  input: z.ZodTuple<[z.ZodString], null>;
255
466
  output: z.ZodBoolean;
256
467
  };
468
+ readonly typeberry_refineWorkPackage: {
469
+ input: z.ZodTuple<[z.ZodNumber, z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>, z.ZodArray<z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>>], null>;
470
+ output: z.ZodObject<{
471
+ report: z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>;
472
+ exports: z.ZodCodec<z.ZodBase64, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>;
473
+ }, z.z.core.$strip>;
474
+ };
257
475
  };
258
476
  const jsonRpcRequest: z.ZodObject<{
259
477
  jsonrpc: z.ZodLiteral<"2.0">;
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/rpc-validation/validation.ts"],"names":[],"mappings":"AACA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,eAAO,MAAM,gBAAgB,QAAQ,CAAC;AACtC,yBAAiB,UAAU,CAAC;IAInB,MAAM,IAAI,gGAOhB,CAAC;IACK,MAAM,IAAI,aAAM,CAAC;IACjB,MAAM,SAAS,gGAGpB,CAAC;IACI,MAAM,SAAS,aAAM,CAAC;IACtB,MAAM,cAAc,aAAM,CAAC;IAC3B,MAAM,MAAM,sBAAc,CAAC;IAC3B,MAAM,eAAe;;;uBAG1B,CAAC;IAEI,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAwCrB,CAAC;IAEI,MAAM,oBAAoB;;;KAGhC,CAAC;IAEK,MAAM,iBAAiB;;;KAG7B,CAAC;IAEK,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA2F8D,CAAC;IAE5E,MAAM,cAAc;;;;;uBAKzB,CAAC;IAEI,MAAM,mBAAmB;;;;uBAAoC,CAAC;CACtE;AAED,eAAO,MAAM,oBAAoB;;;;;;;;CAQqE,CAAC"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/rpc-validation/validation.ts"],"names":[],"mappings":"AACA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,eAAO,MAAM,gBAAgB,QAAQ,CAAC;AACtC,yBAAiB,UAAU,CAAC;IAMnB,MAAM,IAAI,gGAOhB,CAAC;IACK,MAAM,IAAI,aAAM,CAAC;IACjB,MAAM,SAAS,aAAM,CAAC;IACtB,MAAM,SAAS,gGAGpB,CAAC;IACI,MAAM,SAAS,aAAM,CAAC;IACtB,MAAM,cAAc,aAAM,CAAC;IAC3B,MAAM,MAAM,sBAAc,CAAC;IAC3B,MAAM,eAAe;;;uBAG1B,CAAC;IAEI,MAAM,YAAY;;;uBAGvB,CAAC;IAEI,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAwCrB,CAAC;IAEI,MAAM,oBAAoB;;;KAGhC,CAAC;IAEK,MAAM,iBAAiB;;;KAG7B,CAAC;IAEF,gDAAgD;IACzC,MAAM,aAAa;;;;;;;;KAKzB,CAAC;IAEF,mCAAmC;IAC5B,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA2FvB,CAAC;IAEK,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAG8D,CAAC;IAE5E,MAAM,cAAc;;;;;uBAKzB,CAAC;IAEI,MAAM,mBAAmB;;;;uBAAoC,CAAC;CACtE;AAED,eAAO,MAAM,oBAAoB;;;;;;;;CAQqE,CAAC"}
@@ -3,13 +3,15 @@ import z from "zod";
3
3
  export const JSON_RPC_VERSION = "2.0";
4
4
  export var validation;
5
5
  (function (validation) {
6
- const u32 = z.number().int().min(0).max(0xffffffff);
6
+ const u16 = z.number().int().min(0).max(0xffff);
7
+ const u32 = z.number().int().min(0).max(0xffff_ffff);
7
8
  const uint8Array = z.custom((v) => v instanceof Uint8Array); // this is needed because a simple z.instanceof(Uint8Array) automatically narrows the type down to Uint8Array<ArrayBuffer> whereas our Bytes.raw are effectively Uint8Array<ArrayBufferLike>
8
9
  validation.hash = z.codec(z.base64(), uint8Array.refine((v) => v.length === HASH_SIZE, "Invalid hash length."), {
9
10
  decode: (v) => Uint8Array.from(Buffer.from(v, "base64")),
10
11
  encode: (v) => Buffer.from(v).toString("base64"),
11
12
  });
12
13
  validation.slot = u32;
14
+ validation.coreIndex = u16;
13
15
  validation.blobArray = z.codec(z.base64(), uint8Array, {
14
16
  decode: (v) => Uint8Array.from(Buffer.from(v, "base64")),
15
17
  encode: (v) => Buffer.from(v).toString("base64"),
@@ -21,6 +23,10 @@ export var validation;
21
23
  header_hash: validation.hash,
22
24
  slot: validation.slot,
23
25
  });
26
+ validation.refineResult = z.object({
27
+ report: validation.blobArray,
28
+ exports: validation.blobArray,
29
+ });
24
30
  validation.parameters = z.object({
25
31
  V1: z.object({
26
32
  deposit_per_account: z.number(),
@@ -70,7 +76,15 @@ export var validation;
70
76
  input: z.tuple([z.string()]),
71
77
  output: z.boolean(),
72
78
  };
73
- validation.schemas = {
79
+ /** Non-standard typeberry extension methods. */
80
+ validation.customSchemas = {
81
+ typeberry_refineWorkPackage: {
82
+ input: z.tuple([validation.coreIndex, validation.blobArray, z.array(validation.blobArray)]),
83
+ output: validation.refineResult,
84
+ },
85
+ };
86
+ /** JIP-2 (standardized) methods */
87
+ validation.jip2Schemas = {
74
88
  beefyRoot: validation.notImplementedSchema,
75
89
  submitPreimage: validation.notImplementedSchema,
76
90
  submitWorkPackage: validation.notImplementedSchema,
@@ -162,6 +176,10 @@ export var validation;
162
176
  unsubscribeServiceValue: validation.unsubscribeSchema,
163
177
  unsubscribeStatistics: validation.unsubscribeSchema,
164
178
  };
179
+ validation.schemas = {
180
+ ...validation.customSchemas,
181
+ ...validation.jip2Schemas,
182
+ };
165
183
  validation.jsonRpcRequest = z.object({
166
184
  jsonrpc: z.literal(JSON_RPC_VERSION),
167
185
  method: z.string(),
@@ -8,12 +8,14 @@ import { type Opaque, Result } from "#@typeberry/utils";
8
8
  import type { BandernsatchWasm } from "./bandersnatch-wasm.js";
9
9
  declare const FUNCTIONS: {
10
10
  verifySeal: typeof verifySeal;
11
+ verifyHeaderSeals: typeof verifyHeaderSeals;
11
12
  verifyTickets: typeof verifyTickets;
12
13
  getRingCommitment: typeof getRingCommitment;
13
14
  generateSeal: typeof generateSeal;
14
15
  getVrfOutputHash: typeof getVrfOutputHash;
15
16
  };
16
17
  export default FUNCTIONS;
18
+ declare function verifyHeaderSeals(bandersnatch: BandernsatchWasm, authorKey: BandersnatchKey, signature: BandersnatchVrfSignature, payload: BytesBlob, encodedUnsealedHeader: BytesBlob, entropySignature: BandersnatchVrfSignature, entropyPayloadPrefix: BytesBlob): Promise<Result<[EntropyHash, EntropyHash], null>>;
17
19
  declare function verifySeal(bandersnatch: BandernsatchWasm, authorKey: BandersnatchKey, signature: BandersnatchVrfSignature, payload: BytesBlob, encodedUnsealedHeader: BytesBlob): Promise<Result<EntropyHash, null>>;
18
20
  declare function getRingCommitment(bandersnatch: BandernsatchWasm, validators: BandersnatchKey[]): Promise<Result<BandersnatchRingRoot, null>>;
19
21
  declare function verifyTickets(bandersnatch: BandernsatchWasm, numberOfValidators: number, epochRoot: BandersnatchRingRoot, tickets: readonly SignedTicket[], entropy: EntropyHash): Promise<{
@@ -1 +1 @@
1
- {"version":3,"file":"bandersnatch-vrf.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/safrole/bandersnatch-vrf.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAS,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,EAGL,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC9B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAa,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAwB/D,QAAA,MAAM,SAAS;;;;;;CAMd,CAAC;AAKF,eAAe,SAAS,CAAC;AAEzB,iBAAe,UAAU,CACvB,YAAY,EAAE,gBAAgB,EAC9B,SAAS,EAAE,eAAe,EAC1B,SAAS,EAAE,wBAAwB,EACnC,OAAO,EAAE,SAAS,EAClB,qBAAqB,EAAE,SAAS,GAC/B,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAapC;AAED,iBAAS,iBAAiB,CACxB,YAAY,EAAE,gBAAgB,EAC9B,UAAU,EAAE,eAAe,EAAE,GAC5B,OAAO,CAAC,MAAM,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC,CAmB7C;AAkBD,iBAAe,aAAa,CAC1B,YAAY,EAAE,gBAAgB,EAC9B,kBAAkB,EAAE,MAAM,EAC1B,SAAS,EAAE,oBAAoB,EAC/B,OAAO,EAAE,SAAS,YAAY,EAAE,EAChC,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,WAAW,CAAA;CAAE,EAAE,CAAC,CAqB3D;AAED,iBAAe,YAAY,CACzB,YAAY,EAAE,gBAAgB,EAC9B,SAAS,EAAE,sBAAsB,EACjC,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,SAAS,GACjB,OAAO,CAAC,MAAM,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC,CAQjD;AAED,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;AAElE,iBAAe,gBAAgB,CAC7B,YAAY,EAAE,gBAAgB,EAC9B,SAAS,EAAE,sBAAsB,EACjC,KAAK,EAAE,SAAS,GACf,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAQtC"}
1
+ {"version":3,"file":"bandersnatch-vrf.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/safrole/bandersnatch-vrf.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAS,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,EAGL,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC9B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAa,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAwB/D,QAAA,MAAM,SAAS;;;;;;;CAOd,CAAC;AAKF,eAAe,SAAS,CAAC;AAEzB,iBAAe,iBAAiB,CAC9B,YAAY,EAAE,gBAAgB,EAC9B,SAAS,EAAE,eAAe,EAC1B,SAAS,EAAE,wBAAwB,EACnC,OAAO,EAAE,SAAS,EAClB,qBAAqB,EAAE,SAAS,EAChC,gBAAgB,EAAE,wBAAwB,EAC1C,oBAAoB,EAAE,SAAS,GAC9B,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,IAAI,CAAC,CAAC,CAkBnD;AAED,iBAAe,UAAU,CACvB,YAAY,EAAE,gBAAgB,EAC9B,SAAS,EAAE,eAAe,EAC1B,SAAS,EAAE,wBAAwB,EACnC,OAAO,EAAE,SAAS,EAClB,qBAAqB,EAAE,SAAS,GAC/B,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAapC;AAED,iBAAS,iBAAiB,CACxB,YAAY,EAAE,gBAAgB,EAC9B,UAAU,EAAE,eAAe,EAAE,GAC5B,OAAO,CAAC,MAAM,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC,CAmB7C;AAkBD,iBAAe,aAAa,CAC1B,YAAY,EAAE,gBAAgB,EAC9B,kBAAkB,EAAE,MAAM,EAC1B,SAAS,EAAE,oBAAoB,EAC/B,OAAO,EAAE,SAAS,YAAY,EAAE,EAChC,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,WAAW,CAAA;CAAE,EAAE,CAAC,CAqB3D;AAED,iBAAe,YAAY,CACzB,YAAY,EAAE,gBAAgB,EAC9B,SAAS,EAAE,sBAAsB,EACjC,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,SAAS,GACjB,OAAO,CAAC,MAAM,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC,CAQjD;AAED,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;AAElE,iBAAe,gBAAgB,CAC7B,YAAY,EAAE,gBAAgB,EAC9B,SAAS,EAAE,sBAAsB,EACjC,KAAK,EAAE,SAAS,GACf,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAQtC"}