@zerc20/wallet-sdk 0.3.0 → 0.5.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/README.md +1 -1
- package/dist/accountId.d.ts +5 -0
- package/dist/accountId.js +19 -0
- package/dist/accountId.js.map +1 -0
- package/dist/chain.d.ts +85 -9
- package/dist/chain.js +60 -33
- package/dist/chain.js.map +1 -1
- package/dist/context.d.ts +14 -6
- package/dist/context.js +17 -3
- package/dist/context.js.map +1 -1
- package/dist/core.d.ts +35 -5
- package/dist/core.js +95 -23
- 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 +5 -2
- package/dist/index.js +6 -2
- package/dist/index.js.map +1 -1
- package/dist/pos.d.ts +7 -1
- package/dist/pos.js +213 -55
- package/dist/pos.js.map +1 -1
- package/dist/rageExit.d.ts +27 -4
- package/dist/rageExit.js +160 -49
- package/dist/rageExit.js.map +1 -1
- package/dist/seed.d.ts +4 -0
- package/dist/seed.js +13 -1
- package/dist/seed.js.map +1 -1
- package/dist/servers.d.ts +2 -0
- package/dist/servers.js +1 -0
- package/dist/servers.js.map +1 -1
- package/dist/services.d.ts +11 -4
- package/dist/services.js +26 -7
- package/dist/services.js.map +1 -1
- package/dist/spend.d.ts +30 -9
- package/dist/spend.js +46 -17
- package/dist/spend.js.map +1 -1
- package/dist/state.d.ts +21 -0
- package/dist/state.js.map +1 -1
- package/dist/sync.d.ts +10 -5
- package/dist/sync.js +53 -19
- 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 +109 -16
- package/dist/wallet.js +291 -85
- package/dist/wallet.js.map +1 -1
- package/package.json +3 -2
- package/src/accountId.ts +22 -0
- package/src/chain.ts +95 -49
- package/src/context.ts +35 -8
- package/src/core.ts +109 -24
- package/src/errors.ts +2 -0
- package/src/index.ts +18 -2
- package/src/pos.ts +240 -61
- package/src/rageExit.ts +237 -61
- package/src/seed.ts +24 -1
- package/src/servers.ts +4 -1
- package/src/services.ts +28 -15
- package/src/spend.ts +58 -23
- package/src/state.ts +25 -1
- package/src/sync.ts +57 -20
- package/src/viewKey.ts +49 -0
- package/src/wallet.ts +387 -106
- package/wasm/zerc20_wallet_core.d.ts +8 -1
- package/wasm/zerc20_wallet_core.js +31 -1
- package/wasm/zerc20_wallet_core_bg.wasm +0 -0
- package/wasm/zerc20_wallet_core_bg.wasm.d.ts +1 -0
package/dist/spend.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type Recipient } from '@zerc20/storage-sdk';
|
|
2
2
|
import { type Address, type Hex } from 'viem';
|
|
3
3
|
import { type Ctx } from './context.js';
|
|
4
|
+
import type { Indexer } from './servers.js';
|
|
4
5
|
import { type OperationRecord, type Position, type SpendOperation } from './state.js';
|
|
5
6
|
/** Something spendable. */
|
|
6
7
|
export interface Coin {
|
|
@@ -38,8 +39,10 @@ export interface Step {
|
|
|
38
39
|
request?: object;
|
|
39
40
|
/** Reverts with no sign of it on chain: proved again with the same outputs a few times, then failed. */
|
|
40
41
|
attempts: number;
|
|
41
|
-
/** Once relayed: the
|
|
42
|
-
|
|
42
|
+
/** Once relayed: the block the relayer saw it mined in. */
|
|
43
|
+
relayedBlock?: number;
|
|
44
|
+
/** The indexer's nullifier count once it is past that block, or just after a relay that found it landed already.
|
|
45
|
+
* Final nullifiers past it, and the input's still not among them, means a reorg dropped the transaction. */
|
|
43
46
|
relayedAt?: number;
|
|
44
47
|
}
|
|
45
48
|
/** The most inputs one merge spends: the attester takes requests up to 2 MB, at 8 KiB of sealed witness per input
|
|
@@ -62,6 +65,8 @@ export interface MergeStep {
|
|
|
62
65
|
/** Refused by the prover, or reverting with no sign of it on chain: built again with the same output a few times,
|
|
63
66
|
* then failed. */
|
|
64
67
|
attempts: number;
|
|
68
|
+
/** As a JoinSplit's. */
|
|
69
|
+
relayedBlock?: number;
|
|
65
70
|
relayedAt?: number;
|
|
66
71
|
}
|
|
67
72
|
/** Where a send or withdrawal goes; `self` merges the wallet's own notes and nothing leaves. */
|
|
@@ -116,7 +121,11 @@ export declare function mergePool(all: Coin[], chosen: number[] | undefined, cha
|
|
|
116
121
|
* into one note first would pay it, coins `onTheWay` might, or nothing will. A payment never waits or merges itself:
|
|
117
122
|
* that is the app's call. */
|
|
118
123
|
export declare function payWith(all: Coin[], need: bigint, fee: bigint, onTheWay: boolean): Coin[];
|
|
119
|
-
/** The smallest public withdrawal that still pays `net` after the protocol's cut.
|
|
124
|
+
/** The smallest public withdrawal that still pays `net` after the protocol's cut. The cut is a rate of the whole
|
|
125
|
+
* withdrawal, rounded down, and the rate read off one withdrawal (`fee / gross`) is at most its tier's: the smallest
|
|
126
|
+
* gross that pays `net` at that rate is never more than the answer within the tier, so a read or two settles it.
|
|
127
|
+
* ponytail: where a lower tier's bound lies between two reads, that bound may already pay `net`, a little less than
|
|
128
|
+
* the gross this returns; a getter for the schedule's tiers would find it. */
|
|
120
129
|
export declare function grossed(ctx: Ctx, chainId: bigint, tokenId: number, net: bigint): Promise<bigint>;
|
|
121
130
|
/** A payment's one public withdrawal, and the protocol's cut of it, which the payer pays on top: a withdrawal's pays
|
|
122
131
|
* its recipient `amount` (and the relayer by a note), a private payment's pays the relayer its `fee`. */
|
|
@@ -124,11 +133,19 @@ export declare function withdrawalOf(ctx: Ctx, chainId: bigint, tokenId: number,
|
|
|
124
133
|
withdrawn: bigint;
|
|
125
134
|
protocol: bigint;
|
|
126
135
|
}>;
|
|
136
|
+
/** The rate, in basis points, of a protocol's `cut` out of a withdrawal of `gross`. The cut is rounded down, so this is
|
|
137
|
+
* exact once `gross` is 10,000 base units or more. */
|
|
138
|
+
export declare const bpsOf: (cut: bigint, gross: bigint) => number;
|
|
127
139
|
/** The most a payment out of `all` pays its recipient, the relayer's `fee` and the protocol's cut on top
|
|
128
140
|
* (`withdrawalOf`): a withdrawal of what the relayer leaves, less the cut on it, or a private payment of what the
|
|
129
141
|
* relayer's grossed fee leaves. Coins one JoinSplit cannot spend together (`pick`) are merged first, each merge
|
|
130
|
-
* paying the relayer's grossed fee, as a consolidation's quote does.
|
|
131
|
-
|
|
142
|
+
* paying the relayer's grossed fee, as a consolidation's quote does. `fee` is all the fees take of `all`; where they
|
|
143
|
+
* take it all, what they would be with nothing left to pay. */
|
|
144
|
+
export declare function maxPayment(ctx: Ctx, chainId: bigint, tokenId: number, isPublic: boolean, all: Coin[], fee: bigint): Promise<{
|
|
145
|
+
amount: bigint;
|
|
146
|
+
fee: bigint;
|
|
147
|
+
merges: number;
|
|
148
|
+
}>;
|
|
132
149
|
/** Plans the next step of `op`: a payment's only JoinSplit (or throws why there is none), or a consolidation's next
|
|
133
150
|
* merge. `null`: wait for the last merge's note to become spendable. `'done'`: nothing left worth merging. */
|
|
134
151
|
export declare function planStep(ctx: Ctx, op: SpendOperation): Promise<Step | MergeStep | null | 'done'>;
|
|
@@ -140,10 +157,14 @@ export declare const codeOf: (code: string) => import("@zerc20/storage-sdk").Rec
|
|
|
140
157
|
/** What `step` paid besides `op`'s amount, the relayer's fee and the protocol's cut: what its inputs hold beyond the
|
|
141
158
|
* amount and the change. */
|
|
142
159
|
export declare const feeOf: (op: SpendOperation, step: Step) => bigint;
|
|
143
|
-
/** Where a
|
|
144
|
-
*
|
|
145
|
-
* or neither yet. */
|
|
146
|
-
export declare function relayedState(f: Position | undefined, relayedAt: number): 'landed' | 'dropped' | 'waiting';
|
|
160
|
+
/** Where a relayed JoinSplit stands, by its first input `f` as sync last saw it and `relayedAt`, a nullifier count past
|
|
161
|
+
* its own (`undefined` while not known): spent, or the final nullifiers passed that count without its own (a reorg
|
|
162
|
+
* dropped it, or the relayer never sent it), or neither yet. */
|
|
163
|
+
export declare function relayedState(f: Position | undefined, relayedAt: number | undefined): 'landed' | 'dropped' | 'waiting';
|
|
164
|
+
/** The indexer's nullifier count once it is past `block`, so past the nullifiers of a transaction mined there unless a
|
|
165
|
+
* reorg moved them; `undefined` until then. The relayer answers once the block is mined, which may be before the
|
|
166
|
+
* indexer has read it. */
|
|
167
|
+
export declare function nullifiersPast(indexer: Pick<Indexer, 'status'>, block: number): Promise<number | undefined>;
|
|
147
168
|
/** Whether `op`'s payment or withdrawal is on chain: done, or relayed, which the relayer answers once it is mined. Until
|
|
148
169
|
* it is final a reorg may still drop it, and the operation relays it again. */
|
|
149
170
|
export declare function landed(op: SpendOperation): boolean;
|
package/dist/spend.js
CHANGED
|
@@ -136,15 +136,22 @@ export function payWith(all, need, fee, onTheWay) {
|
|
|
136
136
|
fail('funds-settling', `${need} is not spendable yet: notes or deposits are still settling`);
|
|
137
137
|
return fail('insufficient-funds', `${need} is more than the balance`);
|
|
138
138
|
}
|
|
139
|
-
/** The smallest public withdrawal that still pays `net` after the protocol's cut.
|
|
139
|
+
/** The smallest public withdrawal that still pays `net` after the protocol's cut. The cut is a rate of the whole
|
|
140
|
+
* withdrawal, rounded down, and the rate read off one withdrawal (`fee / gross`) is at most its tier's: the smallest
|
|
141
|
+
* gross that pays `net` at that rate is never more than the answer within the tier, so a read or two settles it.
|
|
142
|
+
* ponytail: where a lower tier's bound lies between two reads, that bound may already pay `net`, a little less than
|
|
143
|
+
* the gross this returns; a getter for the schedule's tiers would find it. */
|
|
140
144
|
export async function grossed(ctx, chainId, tokenId, net) {
|
|
141
145
|
const chain = chainCtx(ctx, chainId).chain;
|
|
142
146
|
let gross = net;
|
|
143
|
-
|
|
147
|
+
// each read moves on by a unit at least, and a few settle each tier a withdrawal crosses
|
|
148
|
+
for (let i = 0; i < 64; i++) {
|
|
144
149
|
const paid = gross - (await chain.withdrawFee(tokenId, gross));
|
|
145
150
|
if (paid >= net)
|
|
146
151
|
return gross;
|
|
147
|
-
|
|
152
|
+
if (paid <= 0n)
|
|
153
|
+
break;
|
|
154
|
+
gross = ((net - 1n) * gross) / paid + 1n;
|
|
148
155
|
}
|
|
149
156
|
return fail('unavailable', 'the withdrawal fee schedule does not settle');
|
|
150
157
|
}
|
|
@@ -155,18 +162,25 @@ export async function withdrawalOf(ctx, chainId, tokenId, isPublic, amount, fee)
|
|
|
155
162
|
const withdrawn = await grossed(ctx, chainId, tokenId, net);
|
|
156
163
|
return { withdrawn, protocol: withdrawn - net };
|
|
157
164
|
}
|
|
165
|
+
/** The rate, in basis points, of a protocol's `cut` out of a withdrawal of `gross`. The cut is rounded down, so this is
|
|
166
|
+
* exact once `gross` is 10,000 base units or more. */
|
|
167
|
+
export const bpsOf = (cut, gross) => gross === 0n ? 0 : Number((cut * 10000n + gross - 1n) / gross);
|
|
158
168
|
/** The most a payment out of `all` pays its recipient, the relayer's `fee` and the protocol's cut on top
|
|
159
169
|
* (`withdrawalOf`): a withdrawal of what the relayer leaves, less the cut on it, or a private payment of what the
|
|
160
170
|
* relayer's grossed fee leaves. Coins one JoinSplit cannot spend together (`pick`) are merged first, each merge
|
|
161
|
-
* paying the relayer's grossed fee, as a consolidation's quote does.
|
|
171
|
+
* paying the relayer's grossed fee, as a consolidation's quote does. `fee` is all the fees take of `all`; where they
|
|
172
|
+
* take it all, what they would be with nothing left to pay. */
|
|
162
173
|
export async function maxPayment(ctx, chainId, tokenId, isPublic, all, fee) {
|
|
163
174
|
const whole = all.length < 2 || (all.length === 2 && all.some((c) => c.kind === 'note'));
|
|
164
|
-
const merges = whole ?
|
|
165
|
-
const
|
|
166
|
-
const
|
|
175
|
+
const merges = whole ? 0 : roundsToMerge(all);
|
|
176
|
+
const gross = !isPublic || merges > 0 ? await grossed(ctx, chainId, tokenId, fee) : fee;
|
|
177
|
+
const fees = BigInt(merges) * gross + (isPublic ? fee : gross);
|
|
178
|
+
const total = all.reduce((s, c) => s + c.value, 0n);
|
|
179
|
+
const left = total - fees;
|
|
167
180
|
if (left <= 0n)
|
|
168
|
-
return 0n;
|
|
169
|
-
|
|
181
|
+
return { amount: 0n, fee: fees, merges };
|
|
182
|
+
const amount = isPublic ? left - (await chainCtx(ctx, chainId).chain.withdrawFee(tokenId, left)) : left;
|
|
183
|
+
return { amount, fee: total - amount, merges };
|
|
170
184
|
}
|
|
171
185
|
/** Plans the next step of `op`: a payment's only JoinSplit (or throws why there is none), or a consolidation's next
|
|
172
186
|
* merge. `null`: wait for the last merge's note to become spendable. `'done'`: nothing left worth merging. */
|
|
@@ -476,13 +490,22 @@ async function inputSpent(ctx, op, step) {
|
|
|
476
490
|
const hits = await scan([watch], 8, (p) => c.indexer.page('nullifiers', p), watch.scannedTo, nullifiers);
|
|
477
491
|
return hits.length > 0;
|
|
478
492
|
}
|
|
479
|
-
/** Where a
|
|
480
|
-
*
|
|
481
|
-
* or neither yet. */
|
|
493
|
+
/** Where a relayed JoinSplit stands, by its first input `f` as sync last saw it and `relayedAt`, a nullifier count past
|
|
494
|
+
* its own (`undefined` while not known): spent, or the final nullifiers passed that count without its own (a reorg
|
|
495
|
+
* dropped it, or the relayer never sent it), or neither yet. */
|
|
482
496
|
export function relayedState(f, relayedAt) {
|
|
483
497
|
if (f?.spent)
|
|
484
498
|
return 'landed';
|
|
485
|
-
return f?.nullifier && f.nullifier.scannedTo >= relayedAt ? 'dropped' : 'waiting';
|
|
499
|
+
return f?.nullifier && relayedAt !== undefined && f.nullifier.scannedTo >= relayedAt ? 'dropped' : 'waiting';
|
|
500
|
+
}
|
|
501
|
+
/** The indexer's nullifier count once it is past `block`, so past the nullifiers of a transaction mined there unless a
|
|
502
|
+
* reorg moved them; `undefined` until then. The relayer answers once the block is mined, which may be before the
|
|
503
|
+
* indexer has read it. */
|
|
504
|
+
export async function nullifiersPast(indexer, block) {
|
|
505
|
+
if ((await indexer.status()).cursor < block)
|
|
506
|
+
return undefined;
|
|
507
|
+
// a status reads its counts before its cursor, so the count comes from the next one
|
|
508
|
+
return (await indexer.status()).nullifiers;
|
|
486
509
|
}
|
|
487
510
|
/** Whether `op`'s payment or withdrawal is on chain: done, or relayed, which the relayer answers once it is mined. Until
|
|
488
511
|
* it is final a reorg may still drop it, and the operation relays it again. */
|
|
@@ -601,17 +624,20 @@ export async function advanceSpend(ctx, op) {
|
|
|
601
624
|
await ctx.save();
|
|
602
625
|
return;
|
|
603
626
|
}
|
|
604
|
-
// an earlier relay of it landed, one whose answer was lost
|
|
627
|
+
// an earlier relay of it landed, one whose answer was lost, and the indexer counts its nullifier already
|
|
628
|
+
step.relayedAt = (await c.indexer.status()).nullifiers;
|
|
605
629
|
}
|
|
606
630
|
else {
|
|
607
631
|
placeChange(ctx, op, step.outputs[1].salt, result.noteIndex2);
|
|
608
632
|
data.txHashes = [...(data.txHashes ?? []), result.txHash];
|
|
633
|
+
step.relayedBlock = result.block;
|
|
634
|
+
delete step.relayedAt;
|
|
609
635
|
}
|
|
610
|
-
step.relayedAt = (await c.indexer.status()).nullifiers;
|
|
611
636
|
step.stage = 'relayed';
|
|
612
637
|
await ctx.save();
|
|
613
638
|
}
|
|
614
639
|
if (step.stage === 'relayed') {
|
|
640
|
+
step.relayedAt ??= await nullifiersPast(c.indexer, step.relayedBlock);
|
|
615
641
|
const now = relayedState(positionOf(ctx, op.chainId, step.inputs[0].index), step.relayedAt);
|
|
616
642
|
if (now === 'dropped') {
|
|
617
643
|
// relay it again next sync; if it did land after all, that reverts and finds it
|
|
@@ -719,16 +745,19 @@ async function advanceMerge(ctx, op, step) {
|
|
|
719
745
|
// stale roots, most likely: built again with the same output, next sync
|
|
720
746
|
if (!(await inputSpent(ctx, op, step)))
|
|
721
747
|
return again(result.reverted);
|
|
722
|
-
// an earlier relay of it landed, one whose answer was lost
|
|
748
|
+
// an earlier relay of it landed, one whose answer was lost, and the indexer counts its nullifiers already
|
|
749
|
+
step.relayedAt = (await c.indexer.status()).nullifiers;
|
|
723
750
|
}
|
|
724
751
|
else {
|
|
725
752
|
placeChange(ctx, op, step.output.salt, result.noteIndex);
|
|
726
753
|
data.txHashes = [...(data.txHashes ?? []), result.txHash];
|
|
754
|
+
step.relayedBlock = result.block;
|
|
755
|
+
delete step.relayedAt;
|
|
727
756
|
}
|
|
728
|
-
step.relayedAt = (await c.indexer.status()).nullifiers;
|
|
729
757
|
step.stage = 'relayed';
|
|
730
758
|
await ctx.save();
|
|
731
759
|
}
|
|
760
|
+
step.relayedAt ??= await nullifiersPast(c.indexer, step.relayedBlock);
|
|
732
761
|
const now = relayedState(positionOf(ctx, op.chainId, step.inputs[0].index), step.relayedAt);
|
|
733
762
|
if (now === 'dropped') {
|
|
734
763
|
// relay it again next sync; if it did land after all, that reverts and finds it
|
package/dist/spend.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spend.js","sourceRoot":"","sources":["../src/spend.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"spend.js","sourceRoot":"","sources":["../src/spend.ts"],"names":[],"mappings":"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"}
|
package/dist/state.d.ts
CHANGED
|
@@ -75,6 +75,10 @@ export interface DepositRecord {
|
|
|
75
75
|
/** Chosen by a payer, who told it in storage (a burn), as claimed: its salt is the payer's, with no index
|
|
76
76
|
* (`burnIndex` -1), and it is never handed out. */
|
|
77
77
|
payer?: Hex;
|
|
78
|
+
/** Recorded by another device of the wallet, or before a restore: taken as handed out, so never handed out here. A
|
|
79
|
+
* flag of its own rather than the token's `burnNext`, which would also pass the one this device recorded ahead and
|
|
80
|
+
* still holds: with two devices open, each would then record one more ahead each sync, without end. */
|
|
81
|
+
elsewhere?: true;
|
|
78
82
|
/** The transfer's tag under each token. */
|
|
79
83
|
watches: {
|
|
80
84
|
tokenId: number;
|
|
@@ -114,7 +118,22 @@ export type ReceiptRecord = {
|
|
|
114
118
|
} | {
|
|
115
119
|
kind: 'deposit-address';
|
|
116
120
|
depositAddress: Hex;
|
|
121
|
+
/** From the relayer's answer, or as storage told them. Absent where storage's record does not tell them, and then
|
|
122
|
+
* only the relayer flushes it. */
|
|
123
|
+
args?: DepositAddressArgs;
|
|
117
124
|
});
|
|
125
|
+
/** What a deposit address was registered with besides its token and burn address: with those, all a flush of it takes.
|
|
126
|
+
* A wallet's refunds go where a signer of its own signs for, so its refund address is zero. */
|
|
127
|
+
export interface DepositAddressArgs {
|
|
128
|
+
fee: bigint;
|
|
129
|
+
feeRecipient: Hex;
|
|
130
|
+
refundSigner: Hex;
|
|
131
|
+
referrer: Hex;
|
|
132
|
+
referralBps: number;
|
|
133
|
+
}
|
|
134
|
+
export type DepositAddressReceipt = Extract<ReceiptRecord, {
|
|
135
|
+
kind: 'deposit-address';
|
|
136
|
+
}>;
|
|
118
137
|
/** A sample of the indexer's final counts, to bound where a note announced at some time can be. */
|
|
119
138
|
export interface Sample {
|
|
120
139
|
atMs: number;
|
|
@@ -153,6 +172,8 @@ export interface DepositOperation extends OperationBase {
|
|
|
153
172
|
burnAddress: Hex;
|
|
154
173
|
/** Whose burn address it is, when not this wallet's (`deposit({ to })`). */
|
|
155
174
|
to?: Hex;
|
|
175
|
+
/** The receive code it paid, when `to` was one. */
|
|
176
|
+
code?: string;
|
|
156
177
|
/** Its transaction, once sent. */
|
|
157
178
|
txHash?: Hex;
|
|
158
179
|
};
|
package/dist/state.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAAA,kHAAkH;AAClH,iHAAiH;AACjH,8GAA8G;AAE9G,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAuB7E,4GAA4G;AAC5G,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAW,EAAW,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,WAAW,KAAK,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"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"}
|
package/dist/sync.d.ts
CHANGED
|
@@ -34,17 +34,22 @@ export declare function unusedBurn(ctx: Ctx, chainId: bigint, tokenId: number):
|
|
|
34
34
|
* ahead, or else the next to record. */
|
|
35
35
|
export declare const nextBurn: (ctx: Ctx, chainId: bigint, tokenId: number) => number;
|
|
36
36
|
/** Records this wallet's next burn address of a token in storage (a burn block of one), then watches it. Every device
|
|
37
|
-
* of the wallet, and a restore, then watches it too and never hands it out again. About 2^16 hashes
|
|
38
|
-
|
|
37
|
+
* of the wallet, and a restore, then watches it too and never hands it out again. About 2^16 hashes, `urgent` unless
|
|
38
|
+
* it is one made ahead; needs no seed. */
|
|
39
|
+
export declare function recordBurn(ctx: Ctx, chainId: bigint, tokenId: number, tokens: Map<bigint, number[]>, opts?: {
|
|
40
|
+
signal?: AbortSignal;
|
|
41
|
+
urgent?: boolean;
|
|
42
|
+
}): Promise<DepositRecord>;
|
|
39
43
|
/** Keeps one burn address recorded ahead for each token this wallet has handed one out for, so that handing it out
|
|
40
44
|
* writes nothing: a write then would mark the transfer that follows as this wallet's. A token's first one is recorded
|
|
41
45
|
* as it is handed out. Reads the tokens only when one is due. */
|
|
42
46
|
export declare function topUpBurns(ctx: Ctx, signal?: AbortSignal): Promise<void>;
|
|
43
|
-
/** Receive codes of each token whose keys are derived while the seed is held, to hand out while it is not
|
|
47
|
+
/** Receive codes of each token whose keys are derived while the seed is held, to hand out while it is not, and as many
|
|
48
|
+
* deposit addresses' refund signers. */
|
|
44
49
|
export declare const CODES_AHEAD = 4;
|
|
45
50
|
/** With the seed held, each owner not derived yet: the wallet's own, each of its burn addresses' (a receive code each),
|
|
46
|
-
* the next `CODES_AHEAD` codes' of each of `tokens
|
|
47
|
-
* its key. */
|
|
51
|
+
* the next `CODES_AHEAD` codes' of each of `tokens` with their deposit addresses' refund signers, and each note's key's;
|
|
52
|
+
* and the watch of each note that waited for its key. Without it, the watch of each note whose key was derived before. */
|
|
48
53
|
export declare function keyAll(ctx: Ctx, tokens: Token[]): void;
|
|
49
54
|
/** Records nullifier hits on the positions they spend: a final one spends it, one past the final count marks it
|
|
50
55
|
* `nullifiedAt`, until the final nullifiers pass that place without it (a reorg dropped that JoinSplit, which shows up
|