@typeberry/lib 0.5.0-8a85902 → 0.5.0-8cdbecc

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 (4) hide show
  1. package/index.cjs +1301 -505
  2. package/index.d.ts +81 -33
  3. package/index.js +1301 -505
  4. package/package.json +1 -1
package/index.d.ts CHANGED
@@ -1960,6 +1960,8 @@ declare class TruncatedHashDictionary<T extends OpaqueHash, V> {
1960
1960
  set(key: T | TruncatedHash, value: V): void;
1961
1961
  /** Remove a value that matches the key on `TRUNCATED_HASH_SIZE`. */
1962
1962
  delete(key: T | TruncatedHash): void;
1963
+ /** Iterator over keys of the dictionary. */
1964
+ keys(): Iterator<TruncatedHash, any, any> & Iterable<TruncatedHash>;
1963
1965
  /** Iterator over values of the dictionary. */
1964
1966
  values(): Iterator<V, any, any> & Iterable<V>;
1965
1967
  /** Iterator over entries of the dictionary (with truncated keys) */
@@ -2005,21 +2007,11 @@ declare namespace index$v {
2005
2007
  }
2006
2008
 
2007
2009
  declare namespace bandersnatch_d_exports {
2008
- export { batch_verify_tickets, __wbg_init$2 as default, derive_public_key, initSync$2 as initSync, ring_commitment, verify_seal };
2010
+ export { batch_verify_tickets, __wbg_init$2 as default, derive_public_key, generate_seal, initSync$2 as initSync, ring_commitment, verify_seal, vrf_output_hash };
2009
2011
  export type { InitInput$2 as InitInput, InitOutput$2 as InitOutput, SyncInitInput$2 as SyncInitInput };
2010
2012
  }
2011
2013
  /* tslint:disable */
2012
2014
  /* eslint-disable */
2013
- /**
2014
- * Generate ring commitment given concatenation of ring keys.
2015
- */
2016
- declare function ring_commitment(keys: Uint8Array): Uint8Array;
2017
- /**
2018
- * Derive Private and Public Key from Seed
2019
- *
2020
- * returns: `Vec<u8>` containing the exit (1 byte) status followed by the (32 bytes) public key
2021
- */
2022
- declare function derive_public_key(seed: Uint8Array): Uint8Array;
2023
2015
  /**
2024
2016
  * Seal verification as defined in:
2025
2017
  * https://graypaper.fluffylabs.dev/#/68eaa1f/0eff000eff00?v=0.6.4
@@ -2034,13 +2026,67 @@ declare function verify_seal(signer_key: Uint8Array, seal_data: Uint8Array, payl
2034
2026
  * NOTE: the aux_data of VRF function is empty!
2035
2027
  */
2036
2028
  declare function batch_verify_tickets(ring_size: number, commitment: Uint8Array, tickets_data: Uint8Array, vrf_input_data_len: number): Uint8Array;
2029
+ /**
2030
+ * Generate seal that is verifiable using `verify_seal` function.
2031
+ *
2032
+ * # Arguments
2033
+ * * `secret_seed` - Seed used to derive the secret key
2034
+ * * `input` - VRF input data
2035
+ * * `aux_data` - Auxiliary data for the VRF proof
2036
+ *
2037
+ * # Returns
2038
+ * A byte vector with the following format:
2039
+ * - On success (97 bytes):
2040
+ * - Byte 0: Status code `0` (RESULT_OK)
2041
+ * - Bytes 1-32: Serialized VRF output (32 bytes, compressed) NOTE: not output hash!
2042
+ * - Bytes 33-96: Serialized IETF VRF proof (64 bytes, compressed)
2043
+ * - On error (1 byte):
2044
+ * - Byte 0: Status code `1` (RESULT_ERR)
2045
+ *
2046
+ * Returns an error if the input cannot be converted to a valid VRF input point
2047
+ * or if serialization of the output or proof fails.
2048
+ */
2049
+ declare function generate_seal(secret_seed: Uint8Array, input: Uint8Array, aux_data: Uint8Array): Uint8Array;
2050
+ /**
2051
+ * Derive Private and Public Key from Seed
2052
+ *
2053
+ * returns: `Vec<u8>` containing the exit (1 byte) status followed by the (32 bytes) public key
2054
+ */
2055
+ declare function derive_public_key(seed: Uint8Array): Uint8Array;
2056
+ /**
2057
+ * Compute VRF output hash from a secret seed and input data.
2058
+ *
2059
+ * This function derives a deterministic VRF output hash without generating a proof.
2060
+ * Unlike `generate_seal`, this produces only the output hash, not a verifiable signature.
2061
+ *
2062
+ * # Arguments
2063
+ * * `secret_seed` - Seed used to derive the secret key
2064
+ * * `input` - VRF input data to be hashed
2065
+ *
2066
+ * # Returns
2067
+ * A byte vector with the following format:
2068
+ * - On success (33 bytes):
2069
+ * - Byte 0: Status code `0` (RESULT_OK)
2070
+ * - Bytes 1-32: VRF output hash (32 bytes)
2071
+ * - On error (1 byte):
2072
+ * - Byte 0: Status code `1` (RESULT_ERR)
2073
+ *
2074
+ * Returns an error if the input cannot be converted to a valid VRF input point.
2075
+ */
2076
+ declare function vrf_output_hash(secret_seed: Uint8Array, input: Uint8Array): Uint8Array;
2077
+ /**
2078
+ * Generate ring commitment given concatenation of ring keys.
2079
+ */
2080
+ declare function ring_commitment(keys: Uint8Array): Uint8Array;
2037
2081
  type InitInput$2 = RequestInfo | URL | Response | BufferSource | WebAssembly.Module;
2038
2082
  interface InitOutput$2 {
2039
2083
  readonly memory: WebAssembly.Memory;
2040
- readonly ring_commitment: (a: number, b: number) => [number, number];
2084
+ readonly batch_verify_tickets: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
2041
2085
  readonly derive_public_key: (a: number, b: number) => [number, number];
2086
+ readonly generate_seal: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
2087
+ readonly ring_commitment: (a: number, b: number) => [number, number];
2042
2088
  readonly verify_seal: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
2043
- readonly batch_verify_tickets: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
2089
+ readonly vrf_output_hash: (a: number, b: number, c: number, d: number) => [number, number];
2044
2090
  readonly __wbindgen_export_0: WebAssembly.Table;
2045
2091
  readonly __wbindgen_malloc: (a: number, b: number) => number;
2046
2092
  readonly __wbindgen_free: (a: number, b: number, c: number) => void;
@@ -2723,35 +2769,35 @@ declare class Header extends WithDebug {
2723
2769
  *
2724
2770
  * In case of the genesis block, the hash will be zero.
2725
2771
  */
2726
- parentHeaderHash: HeaderHash;
2772
+ readonly parentHeaderHash: HeaderHash;
2727
2773
  /** `H_r`: The state trie root hash before executing that block. */
2728
- priorStateRoot: StateRootHash;
2774
+ readonly priorStateRoot: StateRootHash;
2729
2775
  /** `H_x`: The hash of block extrinsic. */
2730
- extrinsicHash: ExtrinsicHash;
2776
+ readonly extrinsicHash: ExtrinsicHash;
2731
2777
  /** `H_t`: JAM time-slot index. */
2732
- timeSlotIndex: TimeSlot;
2778
+ readonly timeSlotIndex: TimeSlot;
2733
2779
  /**
2734
2780
  * `H_e`: Key and entropy relevant to the following epoch in case the ticket
2735
2781
  * contest does not complete adequately.
2736
2782
  */
2737
- epochMarker: EpochMarker | null;
2783
+ readonly epochMarker: EpochMarker | null;
2738
2784
  /**
2739
2785
  * `H_w`: Winning tickets provides the series of 600 slot sealing "tickets"
2740
2786
  * for the next epoch.
2741
2787
  */
2742
- ticketsMarker: TicketsMarker | null;
2788
+ readonly ticketsMarker: TicketsMarker | null;
2743
2789
  /** `H_i`: Block author's index in the current validator set. */
2744
- bandersnatchBlockAuthorIndex: ValidatorIndex;
2790
+ readonly bandersnatchBlockAuthorIndex: ValidatorIndex;
2745
2791
  /** `H_v`: Entropy-yielding VRF signature. */
2746
- entropySource: BandersnatchVrfSignature;
2792
+ readonly entropySource: BandersnatchVrfSignature;
2747
2793
  /** `H_o`: Sequence of keys of newly misbehaving validators. */
2748
- offendersMarker: Ed25519Key[];
2794
+ readonly offendersMarker: Ed25519Key[];
2749
2795
  /**
2750
2796
  * `H_s`: Block seal.
2751
2797
  *
2752
2798
  * https://graypaper.fluffylabs.dev/#/579bd12/0d0c010d1101
2753
2799
  */
2754
- seal: BandersnatchVrfSignature;
2800
+ readonly seal: BandersnatchVrfSignature;
2755
2801
  private constructor();
2756
2802
  /** Create an empty header with some dummy values. */
2757
2803
  static empty(): Header;
@@ -4264,10 +4310,8 @@ declare class JipChainSpec extends WithDebug {
4264
4310
 
4265
4311
  /** Block authorship options. */
4266
4312
  declare class AuthorshipOptions {
4267
- /** Use fake seal verification instead of running bandersnatch. */
4268
- readonly omitSealVerification: boolean;
4269
4313
  static fromJson: FromJsonWithParser<unknown, AuthorshipOptions>;
4270
- static new({ omit_seal_verification }: JsonObject<AuthorshipOptions>): AuthorshipOptions;
4314
+ static new(): AuthorshipOptions;
4271
4315
  private constructor();
4272
4316
  }
4273
4317
 
@@ -6195,7 +6239,7 @@ declare function serializeStateUpdate(spec: ChainSpec, blake2b: Blake2b, update:
6195
6239
  * State entries may be wrapped into `SerializedState` to access the contained values.
6196
6240
  */
6197
6241
  declare class StateEntries {
6198
- private readonly entries;
6242
+ private readonly dictionary;
6199
6243
  static Codec: Descriptor<StateEntries, StateEntries>;
6200
6244
  /** Turn in-memory state into it's serialized form. */
6201
6245
  static serializeInMemory(spec: ChainSpec, blake2b: Blake2b, state: InMemoryState): StateEntries;
@@ -6216,6 +6260,12 @@ declare class StateEntries {
6216
6260
  private constructor();
6217
6261
  /** When comparing, we can safely ignore `trieCache` and just use entries. */
6218
6262
  [TEST_COMPARE_USING](): any;
6263
+ /** Iterator over entries */
6264
+ entries(): Generator<[TruncatedHash, BytesBlob]>;
6265
+ /** Iterator over entries keys */
6266
+ keys(): Generator<TruncatedHash>;
6267
+ /** Iterator over entries values */
6268
+ values(): Generator<BytesBlob>;
6219
6269
  /** Dump state entries to JSON string (format compatible with stf vectors). */
6220
6270
  toString(): string;
6221
6271
  [Symbol.iterator](): Generator<[TruncatedHash, BytesBlob], any, any>;
@@ -9804,7 +9854,7 @@ declare class OnChain {
9804
9854
  /** Pre-populate things worth caching for the next epoch. */
9805
9855
  prepareForNextEpoch(): Promise<void>;
9806
9856
  private verifySeal;
9807
- transition(block: BlockView, headerHash: HeaderHash, omitSealVerification?: boolean): Promise<Result<Ok, StfError>>;
9857
+ transition(block: BlockView, headerHash: HeaderHash): Promise<Result<Ok, StfError>>;
9808
9858
  private getUsedAuthorizerHashes;
9809
9859
  }
9810
9860
 
@@ -10084,8 +10134,8 @@ declare class Importer {
10084
10134
  constructor(spec: ChainSpec, pvm: PvmBackend, hasher: TransitionHasher, logger: Logger, blocks: BlocksDb, states: StatesDb<SerializedState<LeafDb>>);
10085
10135
  /** Do some extra work for preparation for the next epoch. */
10086
10136
  prepareForNextEpoch(): Promise<void>;
10087
- importBlockWithStateRoot(block: BlockView, omitSealVerification: boolean): Promise<Result<StateRootHash, ImporterError>>;
10088
- importBlock(block: BlockView, omitSealVerification: boolean): Promise<Result<WithHash<HeaderHash, HeaderView>, ImporterError>>;
10137
+ importBlockWithStateRoot(block: BlockView): Promise<Result<StateRootHash, ImporterError>>;
10138
+ importBlock(block: BlockView): Promise<Result<WithHash<HeaderHash, HeaderView>, ImporterError>>;
10089
10139
  private importBlockInternal;
10090
10140
  getBestStateRootHash(): (OpaqueHash & WithOpaque<"StateRootHash">) | null;
10091
10141
  getBestBlockHash(): OpaqueHash & WithOpaque<"HeaderHash">;
@@ -10432,13 +10482,11 @@ declare const protocol: LousyProtocol<{
10432
10482
  type ImporterInternal = Internal<typeof protocol>;
10433
10483
  type ImporterApi = Api<typeof protocol>;
10434
10484
  declare class ImporterConfig {
10435
- readonly omitSealVerification: boolean;
10436
10485
  readonly pvm: PvmBackend;
10437
10486
  static Codec: Descriptor<ImporterConfig, ViewOf<ImporterConfig, {
10438
- omitSealVerification: Descriptor<boolean, boolean>;
10439
10487
  pvm: Descriptor<PvmBackend, U8>;
10440
10488
  }>>;
10441
- static create({ omitSealVerification, pvm }: CodecRecord<ImporterConfig>): ImporterConfig;
10489
+ static create({ pvm }: CodecRecord<ImporterConfig>): ImporterConfig;
10442
10490
  private constructor();
10443
10491
  }
10444
10492