@zerc20/wallet-sdk 0.4.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 +8 -2
- package/dist/context.js +15 -2
- 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/index.d.ts +4 -2
- package/dist/index.js +4 -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 +49 -18
- package/dist/sync.js.map +1 -1
- package/dist/wallet.d.ts +92 -14
- package/dist/wallet.js +191 -56
- package/dist/wallet.js.map +1 -1
- package/package.json +2 -2
- package/src/accountId.ts +22 -0
- package/src/chain.ts +95 -49
- package/src/context.ts +27 -3
- package/src/core.ts +109 -24
- package/src/index.ts +15 -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 +54 -19
- package/src/wallet.ts +246 -72
- package/wasm/zerc20_wallet_core.d.ts +1 -1
- package/wasm/zerc20_wallet_core.js +1 -1
- package/wasm/zerc20_wallet_core_bg.wasm +0 -0
package/dist/rageExit.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
// Rage exit: a burn deposit refunded to its sender with nothing but the chain and the indexer's public pages, for
|
|
2
2
|
// when the ASP, the attester or root proving stop. The ledger authenticates the deposit itself, by re-hashing the
|
|
3
|
-
// commitments from it up to a checkpoint; a long way is walked back one transaction of commitments at a time.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
import {
|
|
3
|
+
// commitments from it up to a checkpoint; a long way is walked back one transaction of commitments at a time. A deposit
|
|
4
|
+
// address's refunds, the rage exit's and any other, go where its refund signer, a key of this wallet's, signs for; and
|
|
5
|
+
// what reaches one is deposited without the deposit relayer by a flush of its own.
|
|
6
|
+
import { decodeEventLog, encodeFunctionData, isAddressEqual, multicall3Abi, numberToHex, parseAbi, } from 'viem';
|
|
7
|
+
import { MULTICALL3, NATIVE, depositAddressAbi, depositFactoryAbi, erc20Abi, factoryArgs, ledgerAbi, refundDigest, verifierAbi, } from './chain.js';
|
|
8
|
+
import { chainCtx, refundAccount, spendKey, switched, walletOn, walletSees, } from './context.js';
|
|
7
9
|
import { core } from './core.js';
|
|
8
10
|
import { fail, guard } from './errors.js';
|
|
9
11
|
import { prove } from './prove.js';
|
|
@@ -11,10 +13,10 @@ import { PAGE } from './servers.js';
|
|
|
11
13
|
/** Commitments per transaction: about a thousand fit in the 128 KB transaction size limit. */
|
|
12
14
|
const SEGMENT = 900;
|
|
13
15
|
const checkpointEvent = parseAbi(['event CheckpointRecorded(uint64 indexed index, uint256 hashChain)']);
|
|
14
|
-
/** Commitments `[from, to)
|
|
16
|
+
/** Commitments `[from, to)`, each with the hash chain before it, from the indexer's pages. */
|
|
15
17
|
async function commitments(c, from, to) {
|
|
16
18
|
const list = [];
|
|
17
|
-
|
|
19
|
+
const before = [];
|
|
18
20
|
for (let p = Math.floor(from / PAGE); p * PAGE < to; p++) {
|
|
19
21
|
const { hashChainBefore, entries } = await c.indexer.commitments(p);
|
|
20
22
|
let chain = hashChainBefore;
|
|
@@ -23,18 +25,29 @@ async function commitments(c, from, to) {
|
|
|
23
25
|
if (i >= to)
|
|
24
26
|
break;
|
|
25
27
|
const fields = [0, 1, 2, 3].map((f) => BigInt(`0x${hexOf(entries.subarray(j * 128 + 32 * f, j * 128 + 32 * (f + 1)))}`));
|
|
26
|
-
if (i
|
|
27
|
-
prev = chain;
|
|
28
|
-
if (i >= from)
|
|
28
|
+
if (i >= from) {
|
|
29
29
|
list.push(fields);
|
|
30
|
+
before.push(chain);
|
|
31
|
+
}
|
|
30
32
|
chain = core.hashChain(chain, fields.map((x) => numberToHex(x, { size: 32 })));
|
|
31
33
|
}
|
|
32
34
|
}
|
|
33
|
-
if (
|
|
35
|
+
if (list.length !== to - from)
|
|
34
36
|
return fail('unavailable', `the indexer does not serve commitments ${from}..${to} yet`);
|
|
35
|
-
return {
|
|
37
|
+
return { list, before };
|
|
36
38
|
}
|
|
37
39
|
const hexOf = (b) => Array.from(b, (x) => x.toString(16).padStart(2, '0')).join('');
|
|
40
|
+
/** The `checkpointBefore` calls that walk back from the checkpoint at `end` to one at most a segment after `index`,
|
|
41
|
+
* the nearest the checkpoint first, and the checkpoint they end at. Each records the hash chain before its segment as
|
|
42
|
+
* the checkpoint the next one ends at. `list[k]` is the commitment at `index + k` and `before[k]` the chain before it. */
|
|
43
|
+
export function walkBack(index, end, list, before) {
|
|
44
|
+
const calls = [];
|
|
45
|
+
for (; end - index > SEGMENT; end -= SEGMENT) {
|
|
46
|
+
const start = end - SEGMENT - index;
|
|
47
|
+
calls.push([BigInt(end), BigInt(before[start]), list.slice(start, end - index)]);
|
|
48
|
+
}
|
|
49
|
+
return { calls, end };
|
|
50
|
+
}
|
|
38
51
|
/** The first index after `index` the ledger has a checkpoint at: a proved root's size, else a fresh reservation. */
|
|
39
52
|
async function checkpointAfter(ctx, c, index, send) {
|
|
40
53
|
const ledger = await c.chain.ledger();
|
|
@@ -54,7 +67,7 @@ async function checkpointAfter(ctx, c, index, send) {
|
|
|
54
67
|
if (roots.length < PAGE)
|
|
55
68
|
break;
|
|
56
69
|
}
|
|
57
|
-
const receipt = await send(ledger, ledgerAbi, 'reserveHashChain', []);
|
|
70
|
+
const receipt = await send({ address: ledger, abi: ledgerAbi, functionName: 'reserveHashChain', args: [] });
|
|
58
71
|
for (const log of receipt.logs) {
|
|
59
72
|
try {
|
|
60
73
|
const ev = decodeEventLog({ abi: checkpointEvent, data: log.data, topics: log.topics });
|
|
@@ -64,17 +77,12 @@ async function checkpointAfter(ctx, c, index, send) {
|
|
|
64
77
|
}
|
|
65
78
|
return fail('unavailable', 'reserveHashChain recorded no checkpoint');
|
|
66
79
|
}
|
|
67
|
-
/**
|
|
68
|
-
|
|
69
|
-
const
|
|
70
|
-
const
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
const wc = await walletOn(ctx, record.chainId);
|
|
74
|
-
const account = ctx.account;
|
|
75
|
-
const hashes = [];
|
|
76
|
-
const send = async (address, abi, functionName, args) => {
|
|
77
|
-
const hash = await guard(wc.writeContract({ account, chain: null, address, abi: abi, functionName: functionName, args: args }));
|
|
80
|
+
/** Sends from `from`, or from the account's own wallet, and waits for each transaction to land; `hashes` collects them. */
|
|
81
|
+
async function sender(ctx, c, from, hashes) {
|
|
82
|
+
const wc = from ? await switched(from, c.config.chainId) : await walletOn(ctx, c.config.chainId);
|
|
83
|
+
const account = from?.account ?? ctx.account;
|
|
84
|
+
const send = async ({ address, abi, functionName, args }) => {
|
|
85
|
+
const hash = await guard(wc.writeContract({ account, chain: null, address, abi: abi, functionName, args }));
|
|
78
86
|
hashes.push(hash);
|
|
79
87
|
const receipt = await c.chain.client.waitForTransactionReceipt({ hash });
|
|
80
88
|
if (receipt.status !== 'success')
|
|
@@ -82,16 +90,59 @@ export async function rageExit(ctx, record, index) {
|
|
|
82
90
|
await walletSees(wc, hash);
|
|
83
91
|
return receipt;
|
|
84
92
|
};
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
93
|
+
return { send, account };
|
|
94
|
+
}
|
|
95
|
+
/** The call that sends on what `address` holds of `asset`, if it is a deposit address of `token` into `record`'s burn
|
|
96
|
+
* address, and where it goes: to `to`, signed by `record`'s refund signer, from one that names it; to its refund
|
|
97
|
+
* address, from one that names one. Null for anything else, a deposit address that names another signer included. */
|
|
98
|
+
async function refundCall(ctx, c, record, address, token, asset, to) {
|
|
99
|
+
const refund = await c.chain.depositAddressRefund(address, token, record.address);
|
|
100
|
+
if (!refund)
|
|
101
|
+
return null;
|
|
102
|
+
if ('address' in refund) {
|
|
103
|
+
return {
|
|
104
|
+
call: { address, abi: depositAddressAbi, functionName: 'refund', args: [asset] },
|
|
105
|
+
recipient: refund.address,
|
|
106
|
+
};
|
|
94
107
|
}
|
|
108
|
+
// only the burn addresses of this wallet's own lane have refund signers
|
|
109
|
+
if (record.burnIndex < 0)
|
|
110
|
+
return null;
|
|
111
|
+
const signer = refundAccount(ctx, { chainId: record.chainId, tokenId: record.tokenId, index: record.burnIndex });
|
|
112
|
+
if (signer.address.toLowerCase() !== refund.signer.toLowerCase())
|
|
113
|
+
return null;
|
|
114
|
+
// long enough for any wallet's confirmation; sent again before it, the signature moves only more to the same `to`
|
|
115
|
+
const deadline = BigInt(Math.floor(Date.now() / 1000) + 86_400);
|
|
116
|
+
const signature = await signer.signMessage({
|
|
117
|
+
message: { raw: refundDigest(c.config.chainId, address, asset, to, deadline) },
|
|
118
|
+
});
|
|
119
|
+
return {
|
|
120
|
+
call: { address, abi: depositAddressAbi, functionName: 'refundTo', args: [asset, to, deadline, signature] },
|
|
121
|
+
recipient: to,
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
const call3 = ({ address, abi, functionName, args }) => ({
|
|
125
|
+
target: address,
|
|
126
|
+
allowFailure: false,
|
|
127
|
+
callData: encodeFunctionData({ abi, functionName, args }),
|
|
128
|
+
});
|
|
129
|
+
/** Refunds the deposit at `index` of `record` to its sender, sent by `route.from` or the account's own wallet, which
|
|
130
|
+
* pays the gas. A deposit address sends it on in the same transaction (Multicall3), so that nothing is left on it
|
|
131
|
+
* between two: one of this wallet's to `route.to`, a point of sale's to the refund address its payer named. */
|
|
132
|
+
export async function rageExit(ctx, record, index, route) {
|
|
133
|
+
const c = chainCtx(ctx, record.chainId);
|
|
134
|
+
const found = record.found.find((f) => f.index === index) ?? fail('invalid', `no deposit at ${index}`);
|
|
135
|
+
if (found.spent)
|
|
136
|
+
fail('invalid', 'the deposit is already spent');
|
|
137
|
+
const hashes = [];
|
|
138
|
+
const { send, account } = await sender(ctx, c, route.from, hashes);
|
|
139
|
+
const after = await checkpointAfter(ctx, c, index, send);
|
|
140
|
+
const { list, before } = await commitments(c, index, after);
|
|
141
|
+
const prev = before[0];
|
|
142
|
+
const ledger = await c.chain.ledger();
|
|
143
|
+
const { calls, end } = walkBack(index, after, list, before);
|
|
144
|
+
for (const args of calls)
|
|
145
|
+
await send({ address: ledger, abi: ledgerAbi, functionName: 'checkpointBefore', args });
|
|
95
146
|
const segment = list.slice(0, end - index);
|
|
96
147
|
// checked first, so a wrong page from the indexer costs no gas
|
|
97
148
|
await c.chain.client.readContract({
|
|
@@ -109,36 +160,96 @@ export async function rageExit(ctx, record, index) {
|
|
|
109
160
|
auth_key_hash: key.authKeyHash,
|
|
110
161
|
burn_salt: record.salt,
|
|
111
162
|
});
|
|
112
|
-
const
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
//
|
|
163
|
+
const request = {
|
|
164
|
+
checkpointIndex: BigInt(end),
|
|
165
|
+
prevHashChain: BigInt(prev),
|
|
166
|
+
commitments: segment,
|
|
167
|
+
nullifier: signals[0],
|
|
168
|
+
proof,
|
|
169
|
+
};
|
|
170
|
+
const exit = { address: c.config.verifier, abi: verifierAbi, functionName: 'rageExit', args: [request] };
|
|
171
|
+
// the deposit's commitment, which the ledger just authenticated: `tag, sender, burn address, amount`. A point of sale
|
|
172
|
+
// registers its deposit addresses without telling this wallet, and a record restored from storage no longer knows
|
|
173
|
+
// its own, so whether the sender is one is read on chain.
|
|
122
174
|
const [, from, , amount] = list[0];
|
|
123
|
-
const
|
|
124
|
-
const
|
|
125
|
-
|
|
175
|
+
const depositor = numberToHex(from, { size: 20 });
|
|
176
|
+
const token = (await c.chain.tokens()).find((t) => t.tokenId === found.tokenId);
|
|
177
|
+
const forward = await refundCall(ctx, c, record, depositor, token.address, token.address, route.to);
|
|
178
|
+
if (forward) {
|
|
179
|
+
// alone first, so that a failing rage exit says why rather than that the batch failed
|
|
180
|
+
await c.chain.client.simulateContract({
|
|
181
|
+
account,
|
|
182
|
+
address: c.config.verifier,
|
|
183
|
+
abi: verifierAbi,
|
|
184
|
+
functionName: 'rageExit',
|
|
185
|
+
args: [request],
|
|
186
|
+
});
|
|
187
|
+
await send({
|
|
188
|
+
address: MULTICALL3,
|
|
189
|
+
abi: multicall3Abi,
|
|
190
|
+
functionName: 'aggregate3',
|
|
191
|
+
args: [[call3(exit), call3(forward.call)]],
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
else {
|
|
195
|
+
await send(exit);
|
|
196
|
+
}
|
|
197
|
+
found.spent = true;
|
|
198
|
+
// for every device of the wallet, written by the next sync
|
|
126
199
|
ctx.state.receipts.push({
|
|
127
200
|
kind: 'returned',
|
|
128
201
|
chainId: record.chainId,
|
|
129
202
|
tokenId: found.tokenId,
|
|
130
203
|
burnAddress: record.address.toLowerCase(),
|
|
131
204
|
index,
|
|
132
|
-
recipient: (
|
|
205
|
+
recipient: (forward?.recipient ?? depositor).toLowerCase(),
|
|
133
206
|
amount,
|
|
134
207
|
txHash: hashes.at(-1),
|
|
135
208
|
atMs: Date.now(),
|
|
136
209
|
unwritten: true,
|
|
137
210
|
});
|
|
138
211
|
await ctx.save();
|
|
139
|
-
if (refundTo)
|
|
140
|
-
await send(sender, depositAddressAbi, 'refund', [token.address]);
|
|
141
|
-
await ctx.save();
|
|
142
212
|
return hashes;
|
|
143
213
|
}
|
|
214
|
+
/** Sends what `record`'s deposit address `address` holds of `asset` to `route.to` (to its refund address, if it names
|
|
215
|
+
* one), sent by `route.from` or the account's own wallet. */
|
|
216
|
+
export async function refundDepositAddress(ctx, record, address, asset, route) {
|
|
217
|
+
const c = chainCtx(ctx, record.chainId);
|
|
218
|
+
const token = (await c.chain.tokens()).find((t) => t.tokenId === record.tokenId);
|
|
219
|
+
const refund = (await refundCall(ctx, c, record, address, token.address, asset, route.to)) ??
|
|
220
|
+
fail('invalid', `${address} is not deployed yet, or not one of this wallet's deposit addresses: it deploys on its first flush`);
|
|
221
|
+
const hashes = [];
|
|
222
|
+
const { send } = await sender(ctx, c, route.from, hashes);
|
|
223
|
+
await send(refund.call);
|
|
224
|
+
return hashes[0];
|
|
225
|
+
}
|
|
226
|
+
/** Deposits what deposit address `receipt.depositAddress` holds, as the deposit relayer would, by a flush with all its
|
|
227
|
+
* receipt says it was registered with, sent by `from`. */
|
|
228
|
+
export async function flushDepositAddress(ctx, receipt, from) {
|
|
229
|
+
const { depositAddress } = receipt;
|
|
230
|
+
const registered = receipt.args ??
|
|
231
|
+
fail('invalid', `${depositAddress}'s receipt does not say what it was registered with: only the relayer flushes it`);
|
|
232
|
+
const c = chainCtx(ctx, receipt.chainId);
|
|
233
|
+
const token = (await c.chain.tokens()).find((t) => t.tokenId === receipt.tokenId);
|
|
234
|
+
const { fee, feeRecipient, refundSigner, referrer, referralBps } = registered;
|
|
235
|
+
const args = factoryArgs(token.address, receipt.burnAddress, { signer: refundSigner }, feeRecipient, fee, referrer, referralBps);
|
|
236
|
+
// the flush takes the very arguments checked here: others make another address, empty
|
|
237
|
+
if (!isAddressEqual(await c.chain.predictDepositAddress(args), depositAddress))
|
|
238
|
+
fail('invalid', `${depositAddress} is not the factory's address for what its receipt says`);
|
|
239
|
+
const held = token.underlying.toLowerCase() === NATIVE.toLowerCase()
|
|
240
|
+
? await c.chain.client.getBalance({ address: depositAddress })
|
|
241
|
+
: await c.chain.client.readContract({
|
|
242
|
+
address: token.underlying,
|
|
243
|
+
abi: erc20Abi,
|
|
244
|
+
functionName: 'balanceOf',
|
|
245
|
+
args: [depositAddress],
|
|
246
|
+
});
|
|
247
|
+
// its flush would revert: nothing reached it since, or the relayer flushed it first
|
|
248
|
+
if (held <= fee)
|
|
249
|
+
fail('insufficient-funds', `${depositAddress} holds ${held}, not more than its fee of ${fee}`);
|
|
250
|
+
const hashes = [];
|
|
251
|
+
const { send } = await sender(ctx, c, from, hashes);
|
|
252
|
+
await send({ address: c.config.depositAddressFactory, abi: depositFactoryAbi, functionName: 'flush', args });
|
|
253
|
+
return hashes[0];
|
|
254
|
+
}
|
|
144
255
|
//# sourceMappingURL=rageExit.js.map
|
package/dist/rageExit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rageExit.js","sourceRoot":"","sources":["../src/rageExit.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rageExit.js","sourceRoot":"","sources":["../src/rageExit.ts"],"names":[],"mappings":"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"}
|
package/dist/seed.d.ts
CHANGED
|
@@ -3,6 +3,10 @@ import { type Hex, type WalletClient } from 'viem';
|
|
|
3
3
|
* phrase (the seed as 24 BIP-39 words) by the standard derivation, BIP-44's m/44'/60'/0'/0/0. Any wallet given the
|
|
4
4
|
* phrase opens the same account, so its public funds stay reachable without this app. */
|
|
5
5
|
export declare function accountKey(seed: Uint8Array): Hex;
|
|
6
|
+
/** The private key that signs where the refunds of the deposit address handed out with burn address `index` of
|
|
7
|
+
* `tokenId` on `chainId` go (`DepositAddress.refundTo`). One per address, so that the addresses name neither one another
|
|
8
|
+
* nor the account; from the seed itself, not the view key, since whoever holds it moves those refunds. */
|
|
9
|
+
export declare function refundKey(seed: Uint8Array, chainId: bigint, tokenId: number, index: number): Hex;
|
|
6
10
|
/** The seed, a fingerprint to check later derivations against (store it; it reveals nothing about the seed), and the
|
|
7
11
|
* canonical signature it comes from, which proves the seed is this account's. */
|
|
8
12
|
export declare function seedFromSignature(walletClient: WalletClient, expectedFingerprint?: Hex): Promise<{
|
package/dist/seed.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
import { secp256k1 } from '@noble/curves/secp256k1.js';
|
|
7
7
|
import { entropyToMnemonic } from '@scure/bip39';
|
|
8
8
|
import { wordlist } from '@scure/bip39/wordlists/english.js';
|
|
9
|
-
import { bytesToHex, hexToBytes, keccak256 } from 'viem';
|
|
9
|
+
import { bytesToHex, encodeAbiParameters, hexToBytes, keccak256, parseAbiParameters, } from 'viem';
|
|
10
10
|
import { mnemonicToAccount } from 'viem/accounts';
|
|
11
11
|
import { fail, guard } from './errors.js';
|
|
12
12
|
/** The private key of the account a seed's own app holds its public funds in: the first account of the seed's recovery
|
|
@@ -16,6 +16,18 @@ export function accountKey(seed) {
|
|
|
16
16
|
const key = mnemonicToAccount(entropyToMnemonic(seed, wordlist)).getHdKey().privateKey;
|
|
17
17
|
return bytesToHex(key ?? fail('invalid', 'the seed derives no account key'));
|
|
18
18
|
}
|
|
19
|
+
/** The private key that signs where the refunds of the deposit address handed out with burn address `index` of
|
|
20
|
+
* `tokenId` on `chainId` go (`DepositAddress.refundTo`). One per address, so that the addresses name neither one another
|
|
21
|
+
* nor the account; from the seed itself, not the view key, since whoever holds it moves those refunds. */
|
|
22
|
+
export function refundKey(seed, chainId, tokenId, index) {
|
|
23
|
+
return keccak256(encodeAbiParameters(parseAbiParameters('string, bytes32, uint64, uint32, uint32'), [
|
|
24
|
+
'zerc20/wallet/refund-signer/v1',
|
|
25
|
+
bytesToHex(seed),
|
|
26
|
+
chainId,
|
|
27
|
+
tokenId,
|
|
28
|
+
index,
|
|
29
|
+
]));
|
|
30
|
+
}
|
|
19
31
|
const message = (address) => [
|
|
20
32
|
'zERC20 wallet seed',
|
|
21
33
|
'WARNING: signing this gives control of your private zERC20 funds.',
|
package/dist/seed.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seed.js","sourceRoot":"","sources":["../src/seed.ts"],"names":[],"mappings":"AAAA,4GAA4G;AAC5G,mHAAmH;AACnH,oHAAoH;AACpH,sHAAsH;AACtH,6FAA6F;AAE7F,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAC7D,OAAO,
|
|
1
|
+
{"version":3,"file":"seed.js","sourceRoot":"","sources":["../src/seed.ts"],"names":[],"mappings":"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"}
|
package/dist/servers.d.ts
CHANGED
|
@@ -23,6 +23,8 @@ export interface IndexerStatus {
|
|
|
23
23
|
} | null;
|
|
24
24
|
/** The newest block whose entries cannot reorg, the one the final counts stand at. */
|
|
25
25
|
finalBlock: number | null;
|
|
26
|
+
/** The last block it has indexed. Read after the counts: they may stand before it. */
|
|
27
|
+
cursor: number;
|
|
26
28
|
}
|
|
27
29
|
export declare class Indexer {
|
|
28
30
|
readonly url: string;
|
package/dist/servers.js
CHANGED
|
@@ -54,6 +54,7 @@ export class Indexer {
|
|
|
54
54
|
: null,
|
|
55
55
|
mismatch: s.mismatch ? { size: s.mismatch.index, root: s.mismatch.root } : null,
|
|
56
56
|
finalBlock: s.indexer.final_block,
|
|
57
|
+
cursor: s.indexer.cursor,
|
|
57
58
|
};
|
|
58
59
|
}
|
|
59
60
|
/** Page `p` of a list of fixed-size entries: 4096 entries, fewer while it fills. */
|
package/dist/servers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"servers.js","sourceRoot":"","sources":["../src/servers.ts"],"names":[],"mappings":"AAAA,yGAAyG;AACzG,mHAAmH;AAEnH,OAAO,EAAY,UAAU,EAAE,MAAM,MAAM,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC,MAAM,CAAC,MAAM,IAAI,GAAG,IAAI,CAAC;AACzB,MAAM,UAAU,GAAG,MAAM,CAAC;AAE1B,KAAK,UAAU,UAAU,CAAC,GAAW;IACnC,IAAI,GAAa,CAAC;IAClB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACtE,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,IAAI,CAAC,aAAa,EAAE,GAAG,GAAG,KAAM,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC,aAAa,EAAE,GAAG,GAAG,UAAU,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IACtE,OAAO,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;AACjD,CAAC;AAED,KAAK,UAAU,SAAS,CAAI,GAAW;IACrC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC,CAAM,CAAC;AAC1E,CAAC;AAWD,MAAM,IAAI,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;AACnC,MAAM,MAAM,GAAG,CAAC,CAAM,EAAc,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAE/D,4GAA4G;AAC5G,SAAS,WAAW,CAAC,KAAiB,EAAE,KAAa;IACnD,MAAM,GAAG,GAAG,EAAE,CAAC;IACf,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,KAAK,EAAE,CAAC;QACzD,MAAM,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC;QACzC,GAAG,CAAC,IAAI,CAAC;YACP,IAAI,EAAE,MAAM,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YACzE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACnC,YAAY,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YACpD,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;YACpD,OAAO,EAAE,KAAK,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;SACvC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;
|
|
1
|
+
{"version":3,"file":"servers.js","sourceRoot":"","sources":["../src/servers.ts"],"names":[],"mappings":"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"}
|
package/dist/services.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type Address, type Hex } from 'viem';
|
|
2
|
-
import type
|
|
2
|
+
import { type Chain, type Referrer, type Refund } from './chain.js';
|
|
3
3
|
import { WalletError } from './errors.js';
|
|
4
4
|
import { type AttesterTrust, type ChainConfig, type Network } from './network.js';
|
|
5
5
|
/** The key the attester's enclave opens witnesses with, once its attestation checks out. */
|
|
@@ -21,6 +21,8 @@ export interface RelayerFees {
|
|
|
21
21
|
export declare function relayerFees(c: ChainConfig): Promise<RelayerFees>;
|
|
22
22
|
export interface Relayed {
|
|
23
23
|
txHash: Hex;
|
|
24
|
+
/** The block it was mined in. */
|
|
25
|
+
block: number;
|
|
24
26
|
noteIndex1: number | null;
|
|
25
27
|
noteIndex2: number | null;
|
|
26
28
|
}
|
|
@@ -37,6 +39,7 @@ export declare const relay: (c: ChainConfig, request: object, feeNote?: {
|
|
|
37
39
|
/** Has the relayer submit a merge's `request`, as `relay` does a JoinSplit's. Answers the merged note's index. */
|
|
38
40
|
export declare const relayMerge: (c: ChainConfig, request: object) => Promise<{
|
|
39
41
|
txHash: Hex;
|
|
42
|
+
block: number;
|
|
40
43
|
noteIndex: number | null;
|
|
41
44
|
} | {
|
|
42
45
|
reverted: string;
|
|
@@ -52,10 +55,14 @@ export declare function proofOf(p: MergeProver, noteHash: Hex): Promise<{
|
|
|
52
55
|
proof?: Hex;
|
|
53
56
|
error?: string;
|
|
54
57
|
} | null>;
|
|
58
|
+
/** Has the deposit relayer watch `depositAddress` for another 7 days, at the fee it was registered with, which the
|
|
59
|
+
* address fixes: the fee the relayer names. */
|
|
60
|
+
export declare function rewatchDeposit(chain: Chain, depositAddress: Address): Promise<bigint>;
|
|
55
61
|
/** A deposit address that flushes whatever reaches it into `burnAddress`, less `fee` paid to `feeRecipient` and the
|
|
56
|
-
* referrer's share of the rest each time; refunds go
|
|
57
|
-
* factory: an address of its own would take the funds, and the fee it names is the one the address takes.
|
|
58
|
-
|
|
62
|
+
* referrer's share of the rest each time; refunds go as `refund` says. What the relayer says is checked against the
|
|
63
|
+
* factory: an address of its own would take the funds, and the fee it names is the one the address takes. The address
|
|
64
|
+
* comes back checksummed, as every other address the SDK gives does: the relayer writes it in lower case. */
|
|
65
|
+
export declare function registerDeposit(chain: Chain, token: Address, burnAddress: Hex, refund: Refund, referrer?: Referrer): Promise<{
|
|
59
66
|
depositAddress: Address;
|
|
60
67
|
feeRecipient: Address;
|
|
61
68
|
fee: bigint;
|
package/dist/services.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
// The attester, the merge prover and the relayers. Each sees only what it must: the attester's and the prover's hosts
|
|
2
2
|
// see the public statement and a witness sealed to their enclave, the transact-relayer a finished request, the
|
|
3
3
|
// deposit-relayer a burn address.
|
|
4
|
-
import { bytesToHex, hexToBytes, zeroAddress } from 'viem';
|
|
4
|
+
import { bytesToHex, getAddress, hexToBytes, zeroAddress } from 'viem';
|
|
5
|
+
import { factoryArgs } from './chain.js';
|
|
5
6
|
import { core } from './core.js';
|
|
6
7
|
import { WalletError, fail } from './errors.js';
|
|
7
8
|
import { LOCAL_CHAIN_ID } from './network.js';
|
|
@@ -114,18 +115,36 @@ export async function proofOf(p, noteHash) {
|
|
|
114
115
|
return fail('unavailable', `merge prover: ${r.body}`);
|
|
115
116
|
return r.body;
|
|
116
117
|
}
|
|
118
|
+
/** Has the deposit relayer watch `depositAddress` for another 7 days, at the fee it was registered with, which the
|
|
119
|
+
* address fixes: the fee the relayer names. */
|
|
120
|
+
export async function rewatchDeposit(chain, depositAddress) {
|
|
121
|
+
const r = await post(`${chain.config.depositRelayer}/rewatch`, { depositAddress });
|
|
122
|
+
if (typeof r.body === 'string')
|
|
123
|
+
return fail('unavailable', `deposit-relayer: ${r.body}`);
|
|
124
|
+
return BigInt(r.body.fee);
|
|
125
|
+
}
|
|
117
126
|
/** A deposit address that flushes whatever reaches it into `burnAddress`, less `fee` paid to `feeRecipient` and the
|
|
118
|
-
* referrer's share of the rest each time; refunds go
|
|
119
|
-
* factory: an address of its own would take the funds, and the fee it names is the one the address takes.
|
|
120
|
-
|
|
121
|
-
|
|
127
|
+
* referrer's share of the rest each time; refunds go as `refund` says. What the relayer says is checked against the
|
|
128
|
+
* factory: an address of its own would take the funds, and the fee it names is the one the address takes. The address
|
|
129
|
+
* comes back checksummed, as every other address the SDK gives does: the relayer writes it in lower case. */
|
|
130
|
+
export async function registerDeposit(chain, token, burnAddress, refund, referrer = { address: zeroAddress, bps: 0 }) {
|
|
131
|
+
const r = await post(`${chain.config.depositRelayer}/register`, {
|
|
132
|
+
token,
|
|
133
|
+
burnAddress,
|
|
134
|
+
...('address' in refund ? { refundAddress: refund.address } : { refundSigner: refund.signer }),
|
|
135
|
+
referrer: referrer.address,
|
|
136
|
+
referralBps: referrer.bps,
|
|
137
|
+
});
|
|
122
138
|
if (typeof r.body === 'string')
|
|
123
139
|
return fail('unavailable', `deposit-relayer: ${r.body}`);
|
|
124
140
|
const { depositAddress, feeRecipient } = r.body;
|
|
125
141
|
const fee = BigInt(r.body.fee);
|
|
126
|
-
|
|
142
|
+
// no balance exceeds such a fee, and storage holds values below 2^248 only
|
|
143
|
+
if (fee >= 1n << 248n)
|
|
144
|
+
fail('unavailable', `deposit-relayer: a fee of ${fee}`);
|
|
145
|
+
const expected = await chain.predictDepositAddress(factoryArgs(token, burnAddress, refund, feeRecipient, fee, referrer.address, referrer.bps));
|
|
127
146
|
if (depositAddress.toLowerCase() !== expected.toLowerCase())
|
|
128
147
|
fail('indexer-mismatch', `the deposit relayer gave ${depositAddress}, not the factory's ${expected}`);
|
|
129
|
-
return { depositAddress, feeRecipient, fee };
|
|
148
|
+
return { depositAddress: getAddress(depositAddress), feeRecipient, fee };
|
|
130
149
|
}
|
|
131
150
|
//# sourceMappingURL=services.js.map
|
package/dist/services.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"services.js","sourceRoot":"","sources":["../src/services.ts"],"names":[],"mappings":"AAAA,sHAAsH;AACtH,+GAA+G;AAC/G,kCAAkC;AAElC,OAAO,EAA0B,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"services.js","sourceRoot":"","sources":["../src/services.ts"],"names":[],"mappings":"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"}
|