@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
|
*
|