@zerc20/wallet-sdk 0.2.0 → 0.4.0
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.
- package/dist/burnWorker.js +6 -6
- package/dist/burnWorker.js.map +1 -1
- package/dist/context.d.ts +25 -4
- package/dist/context.js +36 -6
- package/dist/context.js.map +1 -1
- package/dist/core.d.ts +32 -17
- package/dist/core.js +253 -70
- package/dist/core.js.map +1 -1
- package/dist/errors.d.ts +2 -0
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/pos.js +2 -2
- package/dist/pos.js.map +1 -1
- package/dist/rageExit.js +3 -5
- package/dist/rageExit.js.map +1 -1
- package/dist/seed.d.ts +4 -0
- package/dist/seed.js +12 -1
- package/dist/seed.js.map +1 -1
- package/dist/spend.d.ts +1 -1
- package/dist/spend.js +5 -4
- package/dist/spend.js.map +1 -1
- package/dist/state.d.ts +14 -4
- package/dist/state.js +10 -7
- package/dist/state.js.map +1 -1
- package/dist/sync.d.ts +16 -3
- package/dist/sync.js +93 -25
- package/dist/sync.js.map +1 -1
- package/dist/viewKey.d.ts +14 -0
- package/dist/viewKey.js +45 -0
- package/dist/viewKey.js.map +1 -0
- package/dist/wallet.d.ts +39 -12
- package/dist/wallet.js +209 -85
- package/dist/wallet.js.map +1 -1
- package/package.json +5 -3
- package/src/burnWorker.ts +9 -10
- package/src/context.ts +51 -8
- package/src/core.ts +279 -87
- package/src/errors.ts +2 -0
- package/src/index.ts +4 -1
- package/src/pos.ts +2 -2
- package/src/rageExit.ts +3 -4
- package/src/seed.ts +13 -1
- package/src/spend.ts +5 -5
- package/src/state.ts +17 -7
- package/src/sync.ts +97 -24
- package/src/viewKey.ts +49 -0
- package/src/wallet.ts +270 -87
- package/wasm/zerc20_wallet_core.d.ts +20 -10
- package/wasm/zerc20_wallet_core.js +74 -37
- package/wasm/zerc20_wallet_core_bg.wasm +0 -0
- package/wasm/zerc20_wallet_core_bg.wasm.d.ts +4 -3
|
@@ -7,18 +7,27 @@
|
|
|
7
7
|
*/
|
|
8
8
|
export function aspLeaves(bitmap: Uint8Array, first: bigint, count: number): Uint8Array;
|
|
9
9
|
|
|
10
|
+
export function burnAddressOf(chain_id: bigint, public_key: string, salt: string): string | undefined;
|
|
11
|
+
|
|
10
12
|
/**
|
|
11
|
-
*
|
|
13
|
+
* The `index`-th burn address of `public_key` on one chain and token from `burn_key`, and its salt, if the salt's
|
|
14
|
+
* counter is in `from..=to`: `{salt, address}` or `undefined`. Searched in blocks of counters from 0, the result is
|
|
15
|
+
* the first block's hit.
|
|
12
16
|
*/
|
|
13
|
-
export function
|
|
17
|
+
export function burnBlock(burn_key: Uint8Array, chain_id: bigint, token_id: number, index: number, public_key: string, from: number, to: number): any;
|
|
14
18
|
|
|
15
|
-
|
|
19
|
+
/**
|
|
20
|
+
* A burn address of someone else's `public_key` on a chain, with its salt: the first of the `count` salts from
|
|
21
|
+
* `start` that has the proof of work, `{salt, address}`, or `undefined`. A random `start` makes the salt
|
|
22
|
+
* unguessable.
|
|
23
|
+
*/
|
|
24
|
+
export function burnBlockFor(chain_id: bigint, public_key: string, start: string, count: number): any;
|
|
16
25
|
|
|
17
26
|
/**
|
|
18
27
|
* The key that owns the notes paid to a seed's `index`-th receive code for one chain and token, shaped like
|
|
19
28
|
* `spendKey`.
|
|
20
29
|
*/
|
|
21
|
-
export function
|
|
30
|
+
export function codeSpendKey(seed: Uint8Array, chain_id: bigint, token_id: number, index: number): any;
|
|
22
31
|
|
|
23
32
|
/**
|
|
24
33
|
* `CommitmentLedger`'s hash chain after appending a commitment with `fields` to `prev`.
|
|
@@ -65,10 +74,10 @@ export function path(i: bigint, n: bigint, chunk_leaves: Uint8Array, page_chunks
|
|
|
65
74
|
export function pathRoot(leaf: string, i: bigint, siblings: string[]): string;
|
|
66
75
|
|
|
67
76
|
/**
|
|
68
|
-
* The
|
|
69
|
-
*
|
|
77
|
+
* The public key a signing key's hash and a nullifying key make: how a view key's holder checks that the nullifying
|
|
78
|
+
* key it was given is the one the account's notes commit to.
|
|
70
79
|
*/
|
|
71
|
-
export function
|
|
80
|
+
export function publicKey(auth_key_hash: string, nullifying_key: string): string;
|
|
72
81
|
|
|
73
82
|
/**
|
|
74
83
|
* Seals a merge witness (JSON) to the merge prover's key, padded with spaces to `pad_to` bytes. Take the key from
|
|
@@ -123,9 +132,10 @@ export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembl
|
|
|
123
132
|
export interface InitOutput {
|
|
124
133
|
readonly memory: WebAssembly.Memory;
|
|
125
134
|
readonly aspLeaves: (a: number, b: number, c: bigint, d: number) => [number, number, number, number];
|
|
126
|
-
readonly burnAddress: (a: number, b: number, c: bigint, d: number, e: number) => [number, number, number];
|
|
127
135
|
readonly burnAddressOf: (a: bigint, b: number, c: number, d: number, e: number) => [number, number, number, number];
|
|
128
|
-
readonly
|
|
136
|
+
readonly burnBlock: (a: number, b: number, c: bigint, d: number, e: number, f: number, g: number, h: number, i: number) => [number, number, number];
|
|
137
|
+
readonly burnBlockFor: (a: bigint, b: number, c: number, d: number, e: number, f: number) => [number, number, number];
|
|
138
|
+
readonly codeSpendKey: (a: number, b: number, c: bigint, d: number, e: number) => [number, number, number];
|
|
129
139
|
readonly hashChain: (a: number, b: number, c: number, d: number) => [number, number, number, number];
|
|
130
140
|
readonly leaf: (a: number, b: number) => [number, number, number, number];
|
|
131
141
|
readonly leaves: (a: number, b: number) => [number, number, number, number];
|
|
@@ -134,7 +144,7 @@ export interface InitOutput {
|
|
|
134
144
|
readonly nullifier: (a: bigint, b: bigint, c: number, d: number) => [number, number, number, number];
|
|
135
145
|
readonly path: (a: bigint, b: bigint, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number) => [number, number, number, number];
|
|
136
146
|
readonly pathRoot: (a: number, b: number, c: bigint, d: number, e: number) => [number, number, number, number];
|
|
137
|
-
readonly
|
|
147
|
+
readonly publicKey: (a: number, b: number, c: number, d: number) => [number, number, number, number];
|
|
138
148
|
readonly sealMergeWitness: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
|
|
139
149
|
readonly sealWitness: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
|
|
140
150
|
readonly signMerge: (a: number, b: number, c: number, d: number) => [number, number, number, number];
|
|
@@ -20,24 +20,6 @@ export function aspLeaves(bitmap, first, count) {
|
|
|
20
20
|
return v2;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
/**
|
|
24
|
-
* A seed's `index`-th burn address for one chain and token, with its salt: `{salt, address}`. About 2^16 hashes.
|
|
25
|
-
* @param {Uint8Array} seed
|
|
26
|
-
* @param {bigint} chain_id
|
|
27
|
-
* @param {number} token_id
|
|
28
|
-
* @param {number} index
|
|
29
|
-
* @returns {any}
|
|
30
|
-
*/
|
|
31
|
-
export function burnAddress(seed, chain_id, token_id, index) {
|
|
32
|
-
const ptr0 = passArray8ToWasm0(seed, wasm.__wbindgen_malloc);
|
|
33
|
-
const len0 = WASM_VECTOR_LEN;
|
|
34
|
-
const ret = wasm.burnAddress(ptr0, len0, chain_id, token_id, index);
|
|
35
|
-
if (ret[2]) {
|
|
36
|
-
throw takeFromExternrefTable0(ret[1]);
|
|
37
|
-
}
|
|
38
|
-
return takeFromExternrefTable0(ret[0]);
|
|
39
|
-
}
|
|
40
|
-
|
|
41
23
|
/**
|
|
42
24
|
* @param {bigint} chain_id
|
|
43
25
|
* @param {string} public_key
|
|
@@ -61,6 +43,53 @@ export function burnAddressOf(chain_id, public_key, salt) {
|
|
|
61
43
|
return v3;
|
|
62
44
|
}
|
|
63
45
|
|
|
46
|
+
/**
|
|
47
|
+
* The `index`-th burn address of `public_key` on one chain and token from `burn_key`, and its salt, if the salt's
|
|
48
|
+
* counter is in `from..=to`: `{salt, address}` or `undefined`. Searched in blocks of counters from 0, the result is
|
|
49
|
+
* the first block's hit.
|
|
50
|
+
* @param {Uint8Array} burn_key
|
|
51
|
+
* @param {bigint} chain_id
|
|
52
|
+
* @param {number} token_id
|
|
53
|
+
* @param {number} index
|
|
54
|
+
* @param {string} public_key
|
|
55
|
+
* @param {number} from
|
|
56
|
+
* @param {number} to
|
|
57
|
+
* @returns {any}
|
|
58
|
+
*/
|
|
59
|
+
export function burnBlock(burn_key, chain_id, token_id, index, public_key, from, to) {
|
|
60
|
+
const ptr0 = passArray8ToWasm0(burn_key, wasm.__wbindgen_malloc);
|
|
61
|
+
const len0 = WASM_VECTOR_LEN;
|
|
62
|
+
const ptr1 = passStringToWasm0(public_key, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
63
|
+
const len1 = WASM_VECTOR_LEN;
|
|
64
|
+
const ret = wasm.burnBlock(ptr0, len0, chain_id, token_id, index, ptr1, len1, from, to);
|
|
65
|
+
if (ret[2]) {
|
|
66
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
67
|
+
}
|
|
68
|
+
return takeFromExternrefTable0(ret[0]);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* A burn address of someone else's `public_key` on a chain, with its salt: the first of the `count` salts from
|
|
73
|
+
* `start` that has the proof of work, `{salt, address}`, or `undefined`. A random `start` makes the salt
|
|
74
|
+
* unguessable.
|
|
75
|
+
* @param {bigint} chain_id
|
|
76
|
+
* @param {string} public_key
|
|
77
|
+
* @param {string} start
|
|
78
|
+
* @param {number} count
|
|
79
|
+
* @returns {any}
|
|
80
|
+
*/
|
|
81
|
+
export function burnBlockFor(chain_id, public_key, start, count) {
|
|
82
|
+
const ptr0 = passStringToWasm0(public_key, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
83
|
+
const len0 = WASM_VECTOR_LEN;
|
|
84
|
+
const ptr1 = passStringToWasm0(start, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
85
|
+
const len1 = WASM_VECTOR_LEN;
|
|
86
|
+
const ret = wasm.burnBlockFor(chain_id, ptr0, len0, ptr1, len1, count);
|
|
87
|
+
if (ret[2]) {
|
|
88
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
89
|
+
}
|
|
90
|
+
return takeFromExternrefTable0(ret[0]);
|
|
91
|
+
}
|
|
92
|
+
|
|
64
93
|
/**
|
|
65
94
|
* The key that owns the notes paid to a seed's `index`-th receive code for one chain and token, shaped like
|
|
66
95
|
* `spendKey`.
|
|
@@ -70,10 +99,10 @@ export function burnAddressOf(chain_id, public_key, salt) {
|
|
|
70
99
|
* @param {number} index
|
|
71
100
|
* @returns {any}
|
|
72
101
|
*/
|
|
73
|
-
export function
|
|
102
|
+
export function codeSpendKey(seed, chain_id, token_id, index) {
|
|
74
103
|
const ptr0 = passArray8ToWasm0(seed, wasm.__wbindgen_malloc);
|
|
75
104
|
const len0 = WASM_VECTOR_LEN;
|
|
76
|
-
const ret = wasm.
|
|
105
|
+
const ret = wasm.codeSpendKey(ptr0, len0, chain_id, token_id, index);
|
|
77
106
|
if (ret[2]) {
|
|
78
107
|
throw takeFromExternrefTable0(ret[1]);
|
|
79
108
|
}
|
|
@@ -296,25 +325,33 @@ export function pathRoot(leaf, i, siblings) {
|
|
|
296
325
|
}
|
|
297
326
|
|
|
298
327
|
/**
|
|
299
|
-
* The
|
|
300
|
-
*
|
|
301
|
-
* @param {
|
|
302
|
-
* @param {
|
|
303
|
-
* @
|
|
304
|
-
* @param {number} k
|
|
305
|
-
* @param {string} public_key
|
|
306
|
-
* @returns {any}
|
|
328
|
+
* The public key a signing key's hash and a nullifying key make: how a view key's holder checks that the nullifying
|
|
329
|
+
* key it was given is the one the account's notes commit to.
|
|
330
|
+
* @param {string} auth_key_hash
|
|
331
|
+
* @param {string} nullifying_key
|
|
332
|
+
* @returns {string}
|
|
307
333
|
*/
|
|
308
|
-
export function
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
334
|
+
export function publicKey(auth_key_hash, nullifying_key) {
|
|
335
|
+
let deferred4_0;
|
|
336
|
+
let deferred4_1;
|
|
337
|
+
try {
|
|
338
|
+
const ptr0 = passStringToWasm0(auth_key_hash, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
339
|
+
const len0 = WASM_VECTOR_LEN;
|
|
340
|
+
const ptr1 = passStringToWasm0(nullifying_key, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
341
|
+
const len1 = WASM_VECTOR_LEN;
|
|
342
|
+
const ret = wasm.publicKey(ptr0, len0, ptr1, len1);
|
|
343
|
+
var ptr3 = ret[0];
|
|
344
|
+
var len3 = ret[1];
|
|
345
|
+
if (ret[3]) {
|
|
346
|
+
ptr3 = 0; len3 = 0;
|
|
347
|
+
throw takeFromExternrefTable0(ret[2]);
|
|
348
|
+
}
|
|
349
|
+
deferred4_0 = ptr3;
|
|
350
|
+
deferred4_1 = len3;
|
|
351
|
+
return getStringFromWasm0(ptr3, len3);
|
|
352
|
+
} finally {
|
|
353
|
+
wasm.__wbindgen_free(deferred4_0, deferred4_1, 1);
|
|
316
354
|
}
|
|
317
|
-
return takeFromExternrefTable0(ret[0]);
|
|
318
355
|
}
|
|
319
356
|
|
|
320
357
|
/**
|
|
Binary file
|
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
/* eslint-disable */
|
|
3
3
|
export const memory: WebAssembly.Memory;
|
|
4
4
|
export const aspLeaves: (a: number, b: number, c: bigint, d: number) => [number, number, number, number];
|
|
5
|
-
export const burnAddress: (a: number, b: number, c: bigint, d: number, e: number) => [number, number, number];
|
|
6
5
|
export const burnAddressOf: (a: bigint, b: number, c: number, d: number, e: number) => [number, number, number, number];
|
|
7
|
-
export const
|
|
6
|
+
export const burnBlock: (a: number, b: number, c: bigint, d: number, e: number, f: number, g: number, h: number, i: number) => [number, number, number];
|
|
7
|
+
export const burnBlockFor: (a: bigint, b: number, c: number, d: number, e: number, f: number) => [number, number, number];
|
|
8
|
+
export const codeSpendKey: (a: number, b: number, c: bigint, d: number, e: number) => [number, number, number];
|
|
8
9
|
export const hashChain: (a: number, b: number, c: number, d: number) => [number, number, number, number];
|
|
9
10
|
export const leaf: (a: number, b: number) => [number, number, number, number];
|
|
10
11
|
export const leaves: (a: number, b: number) => [number, number, number, number];
|
|
@@ -13,7 +14,7 @@ export const noteTag: (a: number, b: number, c: number) => [number, number, numb
|
|
|
13
14
|
export const nullifier: (a: bigint, b: bigint, c: number, d: number) => [number, number, number, number];
|
|
14
15
|
export const path: (a: bigint, b: bigint, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number) => [number, number, number, number];
|
|
15
16
|
export const pathRoot: (a: number, b: number, c: bigint, d: number, e: number) => [number, number, number, number];
|
|
16
|
-
export const
|
|
17
|
+
export const publicKey: (a: number, b: number, c: number, d: number) => [number, number, number, number];
|
|
17
18
|
export const sealMergeWitness: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
|
|
18
19
|
export const sealWitness: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
|
|
19
20
|
export const signMerge: (a: number, b: number, c: number, d: number) => [number, number, number, number];
|