@typeberry/native 0.4.0-942910c → 0.4.0-e6c4c58

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.
@@ -20,6 +20,29 @@ function batch_generate_ring_vrf(ring_keys, prover_key_index, secret_seed, input
20
20
  return v4;
21
21
  }
22
22
  /**
23
+ * @param {Uint8Array} ring_keys
24
+ * @param {Uint8Array} prover_key_indices
25
+ * @param {Uint8Array} secret_seeds_data
26
+ * @param {number} secret_seed_data_len
27
+ * @param {Uint8Array} inputs_data
28
+ * @param {number} vrf_input_data_len
29
+ * @returns {Uint8Array}
30
+ */
31
+ function batch_generate_ring_vrf_for_validators(ring_keys, prover_key_indices, secret_seeds_data, secret_seed_data_len, inputs_data, vrf_input_data_len) {
32
+ const ptr0 = passArray8ToWasm0(ring_keys, wasm.__wbindgen_malloc);
33
+ const len0 = WASM_VECTOR_LEN;
34
+ const ptr1 = passArray8ToWasm0(prover_key_indices, wasm.__wbindgen_malloc);
35
+ const len1 = WASM_VECTOR_LEN;
36
+ const ptr2 = passArray8ToWasm0(secret_seeds_data, wasm.__wbindgen_malloc);
37
+ const len2 = WASM_VECTOR_LEN;
38
+ const ptr3 = passArray8ToWasm0(inputs_data, wasm.__wbindgen_malloc);
39
+ const len3 = WASM_VECTOR_LEN;
40
+ const ret = wasm.batch_generate_ring_vrf_for_validators(ptr0, len0, ptr1, len1, ptr2, len2, secret_seed_data_len, ptr3, len3, vrf_input_data_len);
41
+ var v5 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
42
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
43
+ return v5;
44
+ }
45
+ /**
23
46
  * @param {number} ring_size
24
47
  * @param {Uint8Array} commitment
25
48
  * @param {Uint8Array} tickets_data
@@ -49,6 +72,25 @@ function derive_public_key(seed) {
49
72
  return v2;
50
73
  }
51
74
  /**
75
+ * @param {Uint8Array} ring_keys
76
+ * @param {number} prover_key_index
77
+ * @param {Uint8Array} secret_seed
78
+ * @param {Uint8Array} vrf_input_data
79
+ * @returns {Uint8Array}
80
+ */
81
+ function generate_ring_vrf(ring_keys, prover_key_index, secret_seed, vrf_input_data) {
82
+ const ptr0 = passArray8ToWasm0(ring_keys, wasm.__wbindgen_malloc);
83
+ const len0 = WASM_VECTOR_LEN;
84
+ const ptr1 = passArray8ToWasm0(secret_seed, wasm.__wbindgen_malloc);
85
+ const len1 = WASM_VECTOR_LEN;
86
+ const ptr2 = passArray8ToWasm0(vrf_input_data, wasm.__wbindgen_malloc);
87
+ const len2 = WASM_VECTOR_LEN;
88
+ const ret = wasm.generate_ring_vrf(ptr0, len0, prover_key_index, ptr1, len1, ptr2, len2);
89
+ var v4 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
90
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
91
+ return v4;
92
+ }
93
+ /**
52
94
  * @param {Uint8Array} secret_seed
53
95
  * @param {Uint8Array} input
54
96
  * @param {Uint8Array} aux_data
@@ -361,4 +403,4 @@ async function __wbg_init(module_or_path) {
361
403
  }
362
404
 
363
405
  //#endregion
364
- export { batch_generate_ring_vrf, batch_verify_tickets, __wbg_init as default, derive_public_key, generate_seal, initSync, ring_commitment, verify_header_seals, verify_seal, vrf_output_hash };
406
+ export { batch_generate_ring_vrf, batch_generate_ring_vrf_for_validators, batch_verify_tickets, __wbg_init as default, derive_public_key, generate_ring_vrf, generate_seal, initSync, ring_commitment, verify_header_seals, verify_seal, vrf_output_hash };
package/index.d.ts CHANGED
@@ -145,7 +145,7 @@ declare function __wbg_init(module_or_path?: {
145
145
  //#region bandersnatch/wasm-binding/pkg/bandersnatch_wasm.d.ts
146
146
  type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module;
147
147
  declare namespace index_d_exports {
148
- export { BandersnatchApi, InitOptions, batchGenerateRingVrf, batchVerifyTickets, init$1 as default, derivePublicKey, generateSeal, getNativeBindingError, isInitialized, isNativeBinding, ringCommitment, verifyHeaderSeals, verifySeal, vrfOutputHash };
148
+ export { BandersnatchApi, InitOptions, batchGenerateRingVrf, batchGenerateRingVrfForValidators, batchVerifyTickets, init$1 as default, derivePublicKey, generateRingVrf, generateSeal, getNativeBindingError, isInitialized, isNativeBinding, ringCommitment, verifyHeaderSeals, verifySeal, vrfOutputHash };
149
149
  }
150
150
  type BandersnatchApi = {
151
151
  isNativeBinding: () => boolean;
@@ -155,7 +155,9 @@ type BandersnatchApi = {
155
155
  verifySeal: (signerKey: Uint8Array, sealData: Uint8Array, payload: Uint8Array, auxData: Uint8Array) => Uint8Array;
156
156
  generateSeal: (secretSeed: Uint8Array, input: Uint8Array, auxData: Uint8Array) => Uint8Array;
157
157
  vrfOutputHash: (secretSeed: Uint8Array, input: Uint8Array) => Uint8Array;
158
+ generateRingVrf: (ringKeys: Uint8Array, proverKeyIndex: number, secretSeed: Uint8Array, vrfInputData: Uint8Array) => Uint8Array;
158
159
  batchGenerateRingVrf: (ringKeys: Uint8Array, proverKeyIndex: number, secretSeed: Uint8Array, inputsData: Uint8Array, vrfInputDataLen: number) => Uint8Array;
160
+ batchGenerateRingVrfForValidators: (ringKeys: Uint8Array, proverKeyIndices: Uint32Array | readonly number[], secretSeedsData: Uint8Array, secretSeedDataLen: number, inputsData: Uint8Array, vrfInputDataLen: number) => Uint8Array;
159
161
  batchVerifyTickets: (ringSize: number, commitment: Uint8Array, ticketsData: Uint8Array, vrfInputDataLen: number) => Uint8Array;
160
162
  };
161
163
  type InitOptions = {
@@ -180,7 +182,27 @@ declare function verifyHeaderSeals(signerKey: Uint8Array, sealData: Uint8Array,
180
182
  declare function verifySeal(signerKey: Uint8Array, sealData: Uint8Array, payload: Uint8Array, auxData: Uint8Array): Uint8Array;
181
183
  declare function generateSeal(secretSeed: Uint8Array, input: Uint8Array, auxData: Uint8Array): Uint8Array;
182
184
  declare function vrfOutputHash(secretSeed: Uint8Array, input: Uint8Array): Uint8Array;
185
+ /**
186
+ * Generate one ring VRF ticket for a concrete VRF input.
187
+ *
188
+ * This is the single-attempt form of `batchGenerateRingVrf`: callers encode the
189
+ * desired attempt into `vrfInputData` and receive one `status || signature`
190
+ * record, where the signature is 784 bytes.
191
+ */
192
+ declare function generateRingVrf(ringKeys: Uint8Array, proverKeyIndex: number, secretSeed: Uint8Array, vrfInputData: Uint8Array): Uint8Array;
183
193
  declare function batchGenerateRingVrf(ringKeys: Uint8Array, proverKeyIndex: number, secretSeed: Uint8Array, inputsData: Uint8Array, vrfInputDataLen: number): Uint8Array;
194
+ /**
195
+ * Batch-generate ring VRF tickets for multiple validators.
196
+ *
197
+ * `secretSeedsData` is fixed-width concatenated seed data, split by
198
+ * `secretSeedDataLen`. `proverKeyIndices` and secret seeds must have the same
199
+ * count. The returned records are ordered validator-major, then input-major:
200
+ * `validator_0/input_0`, `validator_0/input_1`, ..., `validator_1/input_0`, ...
201
+ *
202
+ * Each record is `status byte || signature (784 bytes)`. If the validator
203
+ * metadata is malformed, the function returns a single error status byte.
204
+ */
205
+ declare function batchGenerateRingVrfForValidators(ringKeys: Uint8Array, proverKeyIndices: Uint32Array | readonly number[], secretSeedsData: Uint8Array, secretSeedDataLen: number, inputsData: Uint8Array, vrfInputDataLen: number): Uint8Array;
184
206
  /**
185
207
  * Batch-verify ring VRF tickets against a single ring commitment.
186
208
  *