@typeberry/lib 0.5.0-5c5fc1c → 0.5.0-70ae055

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 +369 -1015
  2. package/index.d.ts +49 -41
  3. package/index.js +369 -1015
  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) */
@@ -2011,12 +2013,26 @@ declare namespace bandersnatch_d_exports {
2011
2013
  /* tslint:disable */
2012
2014
  /* eslint-disable */
2013
2015
  /**
2014
- * Seal verification as defined in:
2015
- * https://graypaper.fluffylabs.dev/#/68eaa1f/0eff000eff00?v=0.6.4
2016
- * or
2017
- * https://graypaper.fluffylabs.dev/#/68eaa1f/0e54010e5401?v=0.6.4
2016
+ * Compute VRF output hash from a secret seed and input data.
2017
+ *
2018
+ * This function derives a deterministic VRF output hash without generating a proof.
2019
+ * Unlike `generate_seal`, this produces only the output hash, not a verifiable signature.
2020
+ *
2021
+ * # Arguments
2022
+ * * `secret_seed` - Seed used to derive the secret key
2023
+ * * `input` - VRF input data to be hashed
2024
+ *
2025
+ * # Returns
2026
+ * A byte vector with the following format:
2027
+ * - On success (33 bytes):
2028
+ * - Byte 0: Status code `0` (RESULT_OK)
2029
+ * - Bytes 1-32: VRF output hash (32 bytes)
2030
+ * - On error (1 byte):
2031
+ * - Byte 0: Status code `1` (RESULT_ERR)
2032
+ *
2033
+ * Returns an error if the input cannot be converted to a valid VRF input point.
2018
2034
  */
2019
- declare function verify_seal(signer_key: Uint8Array, seal_data: Uint8Array, payload: Uint8Array, aux_data: Uint8Array): Uint8Array;
2035
+ declare function vrf_output_hash(secret_seed: Uint8Array, input: Uint8Array): Uint8Array;
2020
2036
  /**
2021
2037
  * Verify multiple tickets at once as defined in:
2022
2038
  * https://graypaper.fluffylabs.dev/#/68eaa1f/0f3e000f3e00?v=0.6.4
@@ -2024,6 +2040,17 @@ declare function verify_seal(signer_key: Uint8Array, seal_data: Uint8Array, payl
2024
2040
  * NOTE: the aux_data of VRF function is empty!
2025
2041
  */
2026
2042
  declare function batch_verify_tickets(ring_size: number, commitment: Uint8Array, tickets_data: Uint8Array, vrf_input_data_len: number): Uint8Array;
2043
+ /**
2044
+ * Generate ring commitment given concatenation of ring keys.
2045
+ */
2046
+ declare function ring_commitment(keys: Uint8Array): Uint8Array;
2047
+ /**
2048
+ * Seal verification as defined in:
2049
+ * https://graypaper.fluffylabs.dev/#/68eaa1f/0eff000eff00?v=0.6.4
2050
+ * or
2051
+ * https://graypaper.fluffylabs.dev/#/68eaa1f/0e54010e5401?v=0.6.4
2052
+ */
2053
+ declare function verify_seal(signer_key: Uint8Array, seal_data: Uint8Array, payload: Uint8Array, aux_data: Uint8Array): Uint8Array;
2027
2054
  /**
2028
2055
  * Generate seal that is verifiable using `verify_seal` function.
2029
2056
  *
@@ -2051,31 +2078,6 @@ declare function generate_seal(secret_seed: Uint8Array, input: Uint8Array, aux_d
2051
2078
  * returns: `Vec<u8>` containing the exit (1 byte) status followed by the (32 bytes) public key
2052
2079
  */
2053
2080
  declare function derive_public_key(seed: Uint8Array): Uint8Array;
2054
- /**
2055
- * Compute VRF output hash from a secret seed and input data.
2056
- *
2057
- * This function derives a deterministic VRF output hash without generating a proof.
2058
- * Unlike `generate_seal`, this produces only the output hash, not a verifiable signature.
2059
- *
2060
- * # Arguments
2061
- * * `secret_seed` - Seed used to derive the secret key
2062
- * * `input` - VRF input data to be hashed
2063
- *
2064
- * # Returns
2065
- * A byte vector with the following format:
2066
- * - On success (33 bytes):
2067
- * - Byte 0: Status code `0` (RESULT_OK)
2068
- * - Bytes 1-32: VRF output hash (32 bytes)
2069
- * - On error (1 byte):
2070
- * - Byte 0: Status code `1` (RESULT_ERR)
2071
- *
2072
- * Returns an error if the input cannot be converted to a valid VRF input point.
2073
- */
2074
- declare function vrf_output_hash(secret_seed: Uint8Array, input: Uint8Array): Uint8Array;
2075
- /**
2076
- * Generate ring commitment given concatenation of ring keys.
2077
- */
2078
- declare function ring_commitment(keys: Uint8Array): Uint8Array;
2079
2081
  type InitInput$2 = RequestInfo | URL | Response | BufferSource | WebAssembly.Module;
2080
2082
  interface InitOutput$2 {
2081
2083
  readonly memory: WebAssembly.Memory;
@@ -2767,35 +2769,35 @@ declare class Header extends WithDebug {
2767
2769
  *
2768
2770
  * In case of the genesis block, the hash will be zero.
2769
2771
  */
2770
- parentHeaderHash: HeaderHash;
2772
+ readonly parentHeaderHash: HeaderHash;
2771
2773
  /** `H_r`: The state trie root hash before executing that block. */
2772
- priorStateRoot: StateRootHash;
2774
+ readonly priorStateRoot: StateRootHash;
2773
2775
  /** `H_x`: The hash of block extrinsic. */
2774
- extrinsicHash: ExtrinsicHash;
2776
+ readonly extrinsicHash: ExtrinsicHash;
2775
2777
  /** `H_t`: JAM time-slot index. */
2776
- timeSlotIndex: TimeSlot;
2778
+ readonly timeSlotIndex: TimeSlot;
2777
2779
  /**
2778
2780
  * `H_e`: Key and entropy relevant to the following epoch in case the ticket
2779
2781
  * contest does not complete adequately.
2780
2782
  */
2781
- epochMarker: EpochMarker | null;
2783
+ readonly epochMarker: EpochMarker | null;
2782
2784
  /**
2783
2785
  * `H_w`: Winning tickets provides the series of 600 slot sealing "tickets"
2784
2786
  * for the next epoch.
2785
2787
  */
2786
- ticketsMarker: TicketsMarker | null;
2788
+ readonly ticketsMarker: TicketsMarker | null;
2787
2789
  /** `H_i`: Block author's index in the current validator set. */
2788
- bandersnatchBlockAuthorIndex: ValidatorIndex;
2790
+ readonly bandersnatchBlockAuthorIndex: ValidatorIndex;
2789
2791
  /** `H_v`: Entropy-yielding VRF signature. */
2790
- entropySource: BandersnatchVrfSignature;
2792
+ readonly entropySource: BandersnatchVrfSignature;
2791
2793
  /** `H_o`: Sequence of keys of newly misbehaving validators. */
2792
- offendersMarker: Ed25519Key[];
2794
+ readonly offendersMarker: Ed25519Key[];
2793
2795
  /**
2794
2796
  * `H_s`: Block seal.
2795
2797
  *
2796
2798
  * https://graypaper.fluffylabs.dev/#/579bd12/0d0c010d1101
2797
2799
  */
2798
- seal: BandersnatchVrfSignature;
2800
+ readonly seal: BandersnatchVrfSignature;
2799
2801
  private constructor();
2800
2802
  /** Create an empty header with some dummy values. */
2801
2803
  static empty(): Header;
@@ -6237,7 +6239,7 @@ declare function serializeStateUpdate(spec: ChainSpec, blake2b: Blake2b, update:
6237
6239
  * State entries may be wrapped into `SerializedState` to access the contained values.
6238
6240
  */
6239
6241
  declare class StateEntries {
6240
- private readonly entries;
6242
+ private readonly dictionary;
6241
6243
  static Codec: Descriptor<StateEntries, StateEntries>;
6242
6244
  /** Turn in-memory state into it's serialized form. */
6243
6245
  static serializeInMemory(spec: ChainSpec, blake2b: Blake2b, state: InMemoryState): StateEntries;
@@ -6258,6 +6260,12 @@ declare class StateEntries {
6258
6260
  private constructor();
6259
6261
  /** When comparing, we can safely ignore `trieCache` and just use entries. */
6260
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>;
6261
6269
  /** Dump state entries to JSON string (format compatible with stf vectors). */
6262
6270
  toString(): string;
6263
6271
  [Symbol.iterator](): Generator<[TruncatedHash, BytesBlob], any, any>;