@aptos-labs/confidential-assets-bindings 0.0.1

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.
@@ -0,0 +1,150 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * Verify a batch range proof.
5
+ */
6
+ export function batch_verify_proof(proof: Uint8Array, comms: Uint8Array[], val_base: Uint8Array, rand_base: Uint8Array, num_bits: number): boolean;
7
+ /**
8
+ * Verify a single range proof.
9
+ */
10
+ export function verify_proof(proof: Uint8Array, comm: Uint8Array, val_base: Uint8Array, rand_base: Uint8Array, num_bits: number): boolean;
11
+ /**
12
+ * Generate a single range proof.
13
+ *
14
+ * # Arguments
15
+ * * `v` - The secret value to prove is in range [0, 2^num_bits)
16
+ * * `r` - The blinding factor (32-byte scalar)
17
+ * * `val_base` - Value base point for Pedersen commitment (32-byte compressed point)
18
+ * * `rand_base` - Randomness base point for Pedersen commitment (32-byte compressed point)
19
+ * * `num_bits` - Bit length for range proof (8, 16, 32, or 64)
20
+ */
21
+ export function range_proof(v: bigint, r: Uint8Array, val_base: Uint8Array, rand_base: Uint8Array, num_bits: number): SingleRangeProof;
22
+ /**
23
+ * Generate a batch range proof for multiple values.
24
+ *
25
+ * # Arguments
26
+ * * `v` - The secret values to prove are in range [0, 2^num_bits)
27
+ * * `rs` - The blinding factors (each 32-byte scalar)
28
+ * * `val_base` - Value base point for Pedersen commitment (32-byte compressed point)
29
+ * * `rand_base` - Randomness base point for Pedersen commitment (32-byte compressed point)
30
+ * * `num_bits` - Bit length for range proof (8, 16, 32, or 64)
31
+ */
32
+ export function batch_range_proof(v: BigUint64Array, rs: Uint8Array[], val_base: Uint8Array, rand_base: Uint8Array, num_bits: number): BatchRangeProof;
33
+ /**
34
+ * Installs a panic hook that forwards Rust panic messages to `console.error`.
35
+ * Called automatically on WASM init. Without this, panics surface as an
36
+ * opaque `RuntimeError: unreachable` with no message.
37
+ */
38
+ export function init(): void;
39
+ /**
40
+ * Result of a batch range proof generation
41
+ */
42
+ export class BatchRangeProof {
43
+ private constructor();
44
+ free(): void;
45
+ /**
46
+ * Returns the serialized commitments (each 32 bytes)
47
+ */
48
+ comms(): Uint8Array[];
49
+ /**
50
+ * Returns the serialized proof bytes
51
+ */
52
+ proof(): Uint8Array;
53
+ }
54
+ /**
55
+ * Discrete log solver supporting 16-bit and 32-bit secrets.
56
+ */
57
+ export class DiscreteLogSolver {
58
+ free(): void;
59
+ /**
60
+ * Returns the supported bit sizes as an array [16, 32].
61
+ */
62
+ max_num_bits(): Uint8Array;
63
+ /**
64
+ * Creates a new solver with precomputed tables.
65
+ */
66
+ constructor();
67
+ /**
68
+ * Solves the discrete log problem.
69
+ *
70
+ * Given a compressed Ristretto point y = g^x (32 bytes), finds x.
71
+ *
72
+ * # Arguments
73
+ * * `y` - The compressed Ristretto point (32 bytes)
74
+ * * `max_num_bits` - Maximum bits of the secret: 16 or 32
75
+ *
76
+ * # Returns
77
+ * The discrete log x, or an error if not found or invalid input.
78
+ */
79
+ solve(y: Uint8Array, max_num_bits: number): bigint;
80
+ /**
81
+ * Returns the algorithm name.
82
+ */
83
+ algorithm(): string;
84
+ }
85
+ /**
86
+ * Result of a single range proof generation
87
+ */
88
+ export class SingleRangeProof {
89
+ private constructor();
90
+ free(): void;
91
+ /**
92
+ * Returns the serialized commitment (32 bytes)
93
+ */
94
+ comm(): Uint8Array;
95
+ /**
96
+ * Returns the serialized proof bytes
97
+ */
98
+ proof(): Uint8Array;
99
+ }
100
+
101
+ export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module;
102
+
103
+ export interface InitOutput {
104
+ readonly memory: WebAssembly.Memory;
105
+ readonly __wbg_batchrangeproof_free: (a: number, b: number) => void;
106
+ readonly __wbg_singlerangeproof_free: (a: number, b: number) => void;
107
+ readonly batch_range_proof: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => [number, number, number];
108
+ readonly batch_verify_proof: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => [number, number, number];
109
+ readonly batchrangeproof_comms: (a: number) => [number, number];
110
+ readonly batchrangeproof_proof: (a: number) => [number, number];
111
+ readonly range_proof: (a: bigint, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number, number];
112
+ readonly singlerangeproof_comm: (a: number) => [number, number];
113
+ readonly singlerangeproof_proof: (a: number) => [number, number];
114
+ readonly verify_proof: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => [number, number, number];
115
+ readonly __wbg_discretelogsolver_free: (a: number, b: number) => void;
116
+ readonly discretelogsolver_algorithm: (a: number) => [number, number];
117
+ readonly discretelogsolver_max_num_bits: (a: number) => [number, number];
118
+ readonly discretelogsolver_new: () => number;
119
+ readonly discretelogsolver_solve: (a: number, b: number, c: number, d: number) => [bigint, number, number];
120
+ readonly init: () => void;
121
+ readonly __wbindgen_exn_store: (a: number) => void;
122
+ readonly __externref_table_alloc: () => number;
123
+ readonly __wbindgen_export_2: WebAssembly.Table;
124
+ readonly __externref_drop_slice: (a: number, b: number) => void;
125
+ readonly __wbindgen_free: (a: number, b: number, c: number) => void;
126
+ readonly __wbindgen_malloc: (a: number, b: number) => number;
127
+ readonly __externref_table_dealloc: (a: number) => void;
128
+ readonly __wbindgen_start: () => void;
129
+ }
130
+
131
+ export type SyncInitInput = BufferSource | WebAssembly.Module;
132
+ /**
133
+ * Instantiates the given `module`, which can either be bytes or
134
+ * a precompiled `WebAssembly.Module`.
135
+ *
136
+ * @param {{ module: SyncInitInput }} module - Passing `SyncInitInput` directly is deprecated.
137
+ *
138
+ * @returns {InitOutput}
139
+ */
140
+ export function initSync(module: { module: SyncInitInput } | SyncInitInput): InitOutput;
141
+
142
+ /**
143
+ * If `module_or_path` is {RequestInfo} or {URL}, makes a request and
144
+ * for everything else, calls `WebAssembly.instantiate` directly.
145
+ *
146
+ * @param {{ module_or_path: InitInput | Promise<InitInput> }} module_or_path - Passing `InitInput` directly is deprecated.
147
+ *
148
+ * @returns {Promise<InitOutput>}
149
+ */
150
+ export default function __wbg_init (module_or_path?: { module_or_path: InitInput | Promise<InitInput> } | InitInput | Promise<InitInput>): Promise<InitOutput>;
@@ -0,0 +1,27 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ export const memory: WebAssembly.Memory;
4
+ export const __wbg_batchrangeproof_free: (a: number, b: number) => void;
5
+ export const __wbg_singlerangeproof_free: (a: number, b: number) => void;
6
+ export const batch_range_proof: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => [number, number, number];
7
+ export const batch_verify_proof: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => [number, number, number];
8
+ export const batchrangeproof_comms: (a: number) => [number, number];
9
+ export const batchrangeproof_proof: (a: number) => [number, number];
10
+ export const range_proof: (a: bigint, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number, number];
11
+ export const singlerangeproof_comm: (a: number) => [number, number];
12
+ export const singlerangeproof_proof: (a: number) => [number, number];
13
+ export const verify_proof: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => [number, number, number];
14
+ export const __wbg_discretelogsolver_free: (a: number, b: number) => void;
15
+ export const discretelogsolver_algorithm: (a: number) => [number, number];
16
+ export const discretelogsolver_max_num_bits: (a: number) => [number, number];
17
+ export const discretelogsolver_new: () => number;
18
+ export const discretelogsolver_solve: (a: number, b: number, c: number, d: number) => [bigint, number, number];
19
+ export const init: () => void;
20
+ export const __wbindgen_exn_store: (a: number) => void;
21
+ export const __externref_table_alloc: () => number;
22
+ export const __wbindgen_export_2: WebAssembly.Table;
23
+ export const __externref_drop_slice: (a: number, b: number) => void;
24
+ export const __wbindgen_free: (a: number, b: number, c: number) => void;
25
+ export const __wbindgen_malloc: (a: number, b: number) => number;
26
+ export const __externref_table_dealloc: (a: number) => void;
27
+ export const __wbindgen_start: () => void;
package/package.json ADDED
@@ -0,0 +1,37 @@
1
+ {
2
+ "name": "@aptos-labs/confidential-assets-bindings",
3
+ "version": "0.0.1",
4
+ "description": "Unified WASM bindings for Aptos confidential assets (discrete log + range proofs)",
5
+ "type": "module",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "https://github.com/aptos-labs/confidential-asset-wasm-bindings.git"
9
+ },
10
+ "main": "./aptos_confidential_asset_wasm-cjs.js",
11
+ "module": "./aptos_confidential_asset_wasm-esm.js",
12
+ "types": "./aptos_confidential_asset_wasm.d.ts",
13
+ "exports": {
14
+ ".": {
15
+ "import": "./aptos_confidential_asset_wasm-esm.js",
16
+ "require": "./aptos_confidential_asset_wasm-cjs.js",
17
+ "types": "./aptos_confidential_asset_wasm.d.ts"
18
+ },
19
+ "./*.wasm": "./aptos_confidential_asset_wasm_bg.wasm"
20
+ },
21
+ "files": [
22
+ "aptos_confidential_asset_wasm-esm.js",
23
+ "aptos_confidential_asset_wasm-cjs.js",
24
+ "aptos_confidential_asset_wasm.d.ts",
25
+ "*.wasm",
26
+ "*.wasm.d.ts"
27
+ ],
28
+ "keywords": [
29
+ "aptos",
30
+ "confidential",
31
+ "wasm",
32
+ "bulletproofs",
33
+ "discrete-log",
34
+ "range-proof"
35
+ ],
36
+ "license": "Apache-2.0"
37
+ }