@zerc20/wallet-sdk 0.2.0 → 0.3.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/wallet.js CHANGED
@@ -2,7 +2,7 @@
2
2
  import { CanisterClient, codeKey, commit, decodeCode, encodeCode, lookupRecipient, nextPosLane, planDeposit, planPosLane, posKey, registeredViewKey, } from '@zerc20/storage-sdk';
3
3
  import { bytesToHex, formatUnits, hexToBytes, isAddress, numberToHex, zeroAddress, } from 'viem';
4
4
  import { Chain, MAX_REFERRAL_BPS, NATIVE, erc20Abi, tokenAbi } from './chain.js';
5
- import { chainCtx, chainState, spendKey, walletSees } from './context.js';
5
+ import { chainCtx, chainState, owner, switched, walletOn, walletSees } from './context.js';
6
6
  import { burnAddressFor, core, initCore } from './core.js';
7
7
  import { WalletError, fail, guard } from './errors.js';
8
8
  import { checkNetwork } from './network.js';
@@ -10,9 +10,8 @@ import { Asp, Indexer, PAGE } from './servers.js';
10
10
  import { rageExit } from './rageExit.js';
11
11
  import { registerDeposit, relayerFees } from './services.js';
12
12
  import { advanceSpend, chosenSettling, coins, grossed, inputsOf, landed, maxPayment, mergePool, mergeRound, payWith, planStep, roundsToMerge, settling, withdrawalOf, } from './spend.js';
13
- import { emptyWalletState, openState, sealState, } from './state.js';
14
- import { WAIT_MS, commitmentTx, recordBurn, storageState, syncAll, takeRefresh, tokenIds, topUpBurns, unusedBurn, } from './sync.js';
15
- const DAY_MS = 86_400_000;
13
+ import { emptyWalletState, openState, sealState, stateKey, unspent, } from './state.js';
14
+ import { WAIT_MS, commitmentTx, keyAll, nextBurn, recordBurn, storageState, syncAll, takeRefresh, tokenIds, topUpBurns, unusedBurn, } from './sync.js';
16
15
  /** The ledger's bound outside an emergency. */
17
16
  const NO_BOUND = 2n ** 64n - 1n;
18
17
  export class Wallet {
@@ -24,9 +23,11 @@ export class Wallet {
24
23
  #busy = 0;
25
24
  #release = () => { };
26
25
  #referrer;
26
+ #unlock;
27
27
  #closed = new AbortController();
28
- constructor(ctx) {
28
+ constructor(ctx, unlock) {
29
29
  this.#ctx = ctx;
30
+ this.#unlock = unlock;
30
31
  }
31
32
  /** Lets this wallet open again: in another tab, or here for another account. This object is done with: what is
32
33
  * queued fails with `wallet-closed`, a burn address search stops, and the wallet is let go once the task under way
@@ -40,10 +41,7 @@ export class Wallet {
40
41
  }
41
42
  /** Opens the wallet. The first time on this address, registers it for payments: one signature. */
42
43
  static async open(opts) {
43
- await initCore();
44
44
  checkNetwork(opts.network);
45
- if (opts.seed.length !== 32)
46
- fail('invalid', 'the seed is 32 bytes');
47
45
  // the factory refuses these, which the relayer would report as its own failure
48
46
  const r = opts.referrer;
49
47
  if (r) {
@@ -52,17 +50,25 @@ export class Wallet {
52
50
  if (!Number.isInteger(r.bps) || r.bps < 0 || r.bps > MAX_REFERRAL_BPS)
53
51
  fail('invalid', `a referrer takes 0 to ${MAX_REFERRAL_BPS} bps, not ${r.bps}`);
54
52
  }
55
- const account = opts.walletClient.account ?? fail('invalid', 'the wallet client has no account');
53
+ if (!opts.account === !opts.walletClient)
54
+ fail('invalid', 'give an account or a wallet client, one of the two');
55
+ const account = opts.account ?? opts.walletClient.account ?? fail('invalid', 'the wallet client has no account');
56
+ // asked once the options are checked, and before anything is waited on: a browser shows a passkey prompt only in
57
+ // the click that opened
58
+ const seed = typeof opts.seed === 'function' ? await opts.seed() : opts.seed;
59
+ if (seed.length !== 32)
60
+ fail('invalid', 'the seed is 32 bytes');
61
+ await initCore();
56
62
  const release = await lockWallet(account.address);
57
63
  try {
58
- return await Wallet.#open(opts, account, release);
64
+ return await Wallet.#open(opts, seed, account, release);
59
65
  }
60
66
  catch (e) {
61
67
  release();
62
68
  throw e;
63
69
  }
64
70
  }
65
- static async #open(opts, account, release) {
71
+ static async #open(opts, seed, account, release) {
66
72
  const address = account.address;
67
73
  const chains = opts.network.chains.map((config) => ({
68
74
  config,
@@ -74,15 +80,18 @@ export class Wallet {
74
80
  // an EIP-7702 delegated account is still an EOA that signs
75
81
  if (code && code !== '0x' && !code.startsWith('0xef0100'))
76
82
  fail('unsupported-account', 'contract accounts cannot sign for a wallet');
77
- const signer = async (message) => hexToBytes(await guard(opts.walletClient.signMessage({ account, message })));
83
+ const signer = async (message) => hexToBytes(await guard(account.type === 'local'
84
+ ? account.signMessage({ message })
85
+ : opts.walletClient.signMessage({ account, message })));
78
86
  const storage = await CanisterClient.connect(opts.network.storage.host, opts.network.storage.canisterId);
79
- const publicKey = hexToBytes(core.spendKey(opts.seed).publicKey);
87
+ const publicKey = hexToBytes(core.spendKey(seed).publicKey);
80
88
  const saved = await opts.persist.load();
81
89
  // registered already: used before, here or on another device, so its past is looked for
82
90
  // ponytail: from genesis (~4 MB per million commitments); ask for a birthday once the chain has many
83
91
  const restoring = !saved?.length && opts.birthday === undefined && !!(await storage.registration(hexToBytes(address)));
84
- const view = await registeredViewKey(storage, opts.seed, signer, hexToBytes(address), publicKey);
85
- const loaded = saved?.length ? openState(opts.seed, saved) : null;
92
+ const view = await registeredViewKey(storage, seed, signer, hexToBytes(address), publicKey);
93
+ const key = stateKey(seed);
94
+ const loaded = saved?.length ? openState(key, saved) : null;
86
95
  // never started over in place: the first save would overwrite what it held, operations in flight included
87
96
  if (saved?.length && !loaded) {
88
97
  fail('invalid', 'the saved state does not open with this seed (another seed, a newer version, or damaged): clear it to start over, which finds what it held again');
@@ -92,27 +101,60 @@ export class Wallet {
92
101
  const state = loaded ?? emptyWalletState(address);
93
102
  const ctx = {
94
103
  network: opts.network,
95
- seed: opts.seed,
104
+ seed,
105
+ owners: new Map(),
96
106
  address,
97
- walletClient: opts.walletClient,
107
+ account,
108
+ walletClient: opts.walletClient ?? null,
98
109
  storage,
99
110
  view,
100
111
  chains,
101
112
  state,
102
- save: () => opts.persist.save(sealState(opts.seed, state)),
113
+ save: () => opts.persist.save(sealState(key, state)),
103
114
  lastFullRefreshMs: 0,
104
115
  };
105
116
  if (!loaded)
106
117
  await start(ctx, restoring ? 0n : opts.birthday);
107
- const wallet = new Wallet(ctx);
118
+ const wallet = new Wallet(ctx, typeof opts.seed === 'function' ? opts.seed : undefined);
108
119
  wallet.#release = release;
109
120
  wallet.#referrer = opts.referrer;
110
121
  // a saved state names its tokens by id, and its coins stand by the chains' roots: read both now, so balances, coins
111
122
  // and history work before the first sync
112
123
  const [tokens] = await Promise.all([Promise.all(chains.map((c) => c.chain.tokens())), wallet.#readRoots()]);
113
124
  wallet.#tokens = tokens.flat();
125
+ keyAll(ctx, wallet.#tokens);
114
126
  return wallet;
115
127
  }
128
+ /** Holds `seed`, asked of `#unlock`, once it is checked to be this wallet's. */
129
+ #hold(seed) {
130
+ if (core.spendKey(seed).publicKey !== owner(this.#ctx).publicKey)
131
+ fail('invalid', "the seed given is another wallet's");
132
+ this.#ctx.seed = seed;
133
+ keyAll(this.#ctx, this.#tokens);
134
+ }
135
+ /** Within a task: the seed held, asked of `#unlock` if need be. */
136
+ async #seed() {
137
+ if (!this.#ctx.seed)
138
+ this.#hold(await this.#unlock());
139
+ }
140
+ /** At the end of a sync: lets the seed go when it was opened with a function for it, nothing waits behind the sync,
141
+ * and no payment, withdrawal or consolidation is in flight, as each may sign again (a JoinSplit that reverts is
142
+ * proved again, and every merge round is signed). */
143
+ #dropSeed() {
144
+ if (!this.#unlock || this.#busy > 1)
145
+ return;
146
+ if (this.#ctx.state.ops.some((o) => o.status === 'pending' && o.kind !== 'deposit'))
147
+ return;
148
+ this.#ctx.seed = null;
149
+ }
150
+ /** `#exclusive` for a call that `needs` the seed: held first, asked of `#unlock` if need be before the call waits on
151
+ * anything else (a browser shows a passkey prompt only in the click that asked), and queued in the step that took it,
152
+ * so that a sync ending meanwhile does not let it go. */
153
+ async #seeded(f, needs = true) {
154
+ if (needs && !this.#ctx.seed)
155
+ this.#hold(await this.#unlock());
156
+ return this.#exclusive(f);
157
+ }
116
158
  /** Runs `f` after everything queued before it: one state, changed by one task at a time. */
117
159
  #exclusive(f) {
118
160
  this.#busy++;
@@ -145,13 +187,14 @@ export class Wallet {
145
187
  }
146
188
  /** Catches up: new notes, deposits, spends and roots, then advances every operation in flight. A chain or server that
147
189
  * fails holds back only what needs it, and the first error is thrown once the rest is done. Settles before the burn
148
- * addresses are topped up, which can take a phone tens of seconds. */
190
+ * addresses are topped up, which can take a phone some seconds. */
149
191
  sync() {
150
192
  return new Promise((resolve, reject) => {
151
193
  this.#exclusive(async () => {
152
194
  await this.#catchUp().then(resolve, reject);
153
195
  // still this task's: a deposit queued meanwhile finds the one recorded ahead, rather than writing at handout
154
196
  await topUpBurns(this.#ctx, this.#closed.signal).catch(() => { }); // tried again after the next sync
197
+ this.#dropSeed();
155
198
  }).catch(reject); // closed before it ran
156
199
  });
157
200
  }
@@ -193,7 +236,7 @@ export class Wallet {
193
236
  if (errors.length > 0)
194
237
  throw errors[0];
195
238
  }
196
- /** Syncs on its own: every 15 s while something is under way, every 5 min otherwise. Returns a stop function. */
239
+ /** Syncs on its own: every 3 s while something is under way, every 10 s otherwise. Returns a stop function. */
197
240
  autoSync(onChange, onError) {
198
241
  let stopped = false;
199
242
  let timer;
@@ -208,7 +251,7 @@ export class Wallet {
208
251
  if (stopped || this.#closed.signal.aborted)
209
252
  return;
210
253
  const busy = this.#ctx.state.ops.some((o) => o.status === 'pending' && Date.now() - o.createdMs < WAIT_MS * 4);
211
- timer = setTimeout(tick, busy ? 15_000 : 300_000);
254
+ timer = setTimeout(tick, busy ? 3_000 : 10_000);
212
255
  };
213
256
  void tick();
214
257
  return () => {
@@ -226,15 +269,16 @@ export class Wallet {
226
269
  }
227
270
  balances() {
228
271
  const coins = this.coins();
272
+ // storage says which notes to look for, not that they come: a payer writes its notes there before its JoinSplit
273
+ // leaves, and one that never lands leaves them behind. So a note counts once it is a coin (its commitment read);
274
+ // before that, only a note this device's own operation under way is making counts, as incoming. A zero-value
275
+ // change, there to carry its payment's receipt, never counts
276
+ const making = new Set(this.#ctx.state.ops.flatMap((o) => o.status === 'pending' && o.kind !== 'deposit' ? (o.data.changes ?? []) : []));
229
277
  return this.#tokens.map((token) => {
230
278
  const { chainId, tokenId } = token;
231
279
  const b = { token, spendable: 0n, pending: [], blocked: 0n };
232
- // a merge that never landed (another device spent an input first) stops counting after a day; a zero-value
233
- // change, there to carry its payment's receipt, never counts. A note is a coin once its commitment is read, so
234
- // until then it is incoming, as a payment's change is between its relay and the next sync
235
- for (const n of this.#ctx.state.notes.filter((n) => n.chainId === chainId && n.tokenId === tokenId && n.value > 0n)) {
236
- const stale = n.receipt?.kind === 'merged' && n.atNs !== null && Date.now() - Number(n.atNs / 1000000n) > DAY_MS;
237
- if (!n.found.some((f) => f.confirmed) && !stale)
280
+ for (const n of this.#ctx.state.notes.filter((n) => n.chainId === chainId && n.tokenId === tokenId && n.value > 0n && making.has(n.salt))) {
281
+ if (!n.found.some((f) => f.confirmed))
238
282
  b.pending.push({ amount: n.value, reason: 'incoming' });
239
283
  }
240
284
  for (const c of coins.filter((c) => c.token === token)) {
@@ -249,20 +293,21 @@ export class Wallet {
249
293
  });
250
294
  }
251
295
  /** Every unspent note and deposit on chain, and where each stands, as of opening or the last sync. A note announced
252
- * but not on chain yet is not one: `balances()` counts it as incoming. */
296
+ * but not read on chain yet is not one: `balances()` counts it as incoming if this device's operation is making it. */
253
297
  coins() {
254
298
  const size = (chainId) => this.#status.get(chainId)?.latestRoot?.size ?? 0;
255
299
  const unproved = (chainId) => (this.#status.get(chainId)?.halted ? 'roots-halted' : 'awaiting-root');
256
300
  const spending = new Set(this.#ctx.state.ops.flatMap((o) => inputsOf(o).map((c) => `${o.chainId}:${c.index}`)));
257
- // spent by a JoinSplit in a block, which waits only to be final: gone, as activity() counts it (a reorg that drops
258
- // it brings them back as spending, and the operation relays it again)
301
+ // spent by a JoinSplit in a block, which waits only to be final: gone, as activity() counts it. Sync sees it by its
302
+ // nullifier (`unspent`); this device's own is gone already from its relay on (a reorg that drops it brings them
303
+ // back as spending, and the operation relays it again)
259
304
  const landed = new Set(this.#ctx.state.ops.flatMap((o) => o.kind !== 'deposit' && o.data.step?.stage === 'relayed'
260
305
  ? inputsOf(o).map((c) => `${o.chainId}:${c.index}`)
261
306
  : []));
262
307
  const out = [];
263
308
  // a zero-value change carries its payment's receipt, and is no coin
264
309
  for (const n of this.#ctx.state.notes.filter((n) => n.value > 0n)) {
265
- for (const f of n.found.filter((f) => !f.spent)) {
310
+ for (const f of n.found.filter(unspent)) {
266
311
  const id = `${n.chainId}:${f.index}`;
267
312
  // a 4-byte tag alone matches someone else's now and then: a coin once its commitment is read
268
313
  if (!f.confirmed || landed.has(id))
@@ -281,7 +326,7 @@ export class Wallet {
281
326
  }
282
327
  for (const d of this.#ctx.state.deposits) {
283
328
  // a coin once its commitment is read, which names the amount
284
- for (const f of d.found.filter((f) => !f.spent && f.amount !== null)) {
329
+ for (const f of d.found.filter((f) => unspent(f) && f.amount !== null)) {
285
330
  const id = `${d.chainId}:${f.index}`;
286
331
  if (landed.has(id))
287
332
  continue;
@@ -518,7 +563,7 @@ export class Wallet {
518
563
  /** Refunds deposit `id` to its sender without the ASP, the attester or a proved root: for a deposit the ASP
519
564
  * rejected, or when those services stop. The account's wallet sends the transactions and pays their gas. */
520
565
  rageExit(id) {
521
- return this.#exclusive(async () => {
566
+ return this.#seeded(async () => {
522
567
  const [chain, index] = id.split(':');
523
568
  const record = this.#ctx.state.deposits.find((d) => `${d.chainId}` === chain && d.found.some((f) => `${f.index}` === index)) ??
524
569
  fail('invalid', `no deposit ${id}`);
@@ -615,18 +660,21 @@ export class Wallet {
615
660
  * With `wrapped`, it pays from the account's zERC20 itself, as a withdrawal pays out, rather than its underlying
616
661
  * asset: a plain transfer into the burn address, with no wrap and no approval.
617
662
  *
663
+ * With `from`, another wallet of the user's (a browser wallet) pays instead of the account: its balance is checked,
664
+ * it approves and wraps, and an exit refunds it there. The account pays nothing and signs nothing.
665
+ *
618
666
  * Returns once the wrap is sent: the operation is done once it is mined, which `wait()` or the next sync finds.
619
667
  * `onStep` hears what it waits on meanwhile, for an app to show. */
620
- deposit(opts) {
668
+ async deposit(opts) {
669
+ if (opts.amount <= 0n)
670
+ fail('invalid', 'the amount must be positive');
671
+ const payer = opts.from ? (opts.from.account ?? fail('invalid', 'the wallet client has no account')) : null;
621
672
  const step = opts.onStep ?? (() => { });
622
673
  if (this.#busy > 0)
623
674
  step('queued');
624
675
  return this.#exclusive(async () => {
625
676
  const { token, amount } = opts;
626
- if (amount <= 0n)
627
- fail('invalid', 'the amount must be positive');
628
- const wc = this.#ctx.walletClient;
629
- const account = wc.account;
677
+ const account = payer ?? this.#ctx.account;
630
678
  const client = chainCtx(this.#ctx, token.chainId).chain.client;
631
679
  const { wrapped } = opts;
632
680
  const native = !wrapped && token.underlying.toLowerCase() === NATIVE.toLowerCase();
@@ -641,7 +689,7 @@ export class Wallet {
641
689
  });
642
690
  if (held < amount) {
643
691
  const of = wrapped ? token.symbol : `${token.symbol}'s underlying asset`;
644
- fail('insufficient-funds', `the account holds ${formatUnits(held, token.decimals)} of ${of}, less than ${formatUnits(amount, token.decimals)}`);
692
+ fail('insufficient-funds', `${payer ? 'the wallet' : 'the account'} holds ${formatUnits(held, token.decimals)} of ${of}, less than ${formatUnits(amount, token.decimals)}`);
645
693
  }
646
694
  const address = opts.to
647
695
  ? await this.#burnFor(token, amount, opts.to, () => step('burn-address'))
@@ -649,8 +697,7 @@ export class Wallet {
649
697
  const op = this.#newOp('deposit', token, amount, opts.to ? { burnAddress: address, to: opts.to } : { burnAddress: address });
650
698
  await this.#ctx.save();
651
699
  try {
652
- if ((await wc.getChainId()) !== Number(token.chainId))
653
- await guard(wc.switchChain({ id: Number(token.chainId) }));
700
+ const wc = opts.from ? await switched(opts.from, token.chainId) : await walletOn(this.#ctx, token.chainId);
654
701
  if (!native && !wrapped) {
655
702
  const allowance = await client.readContract({
656
703
  address: token.underlying,
@@ -767,17 +814,22 @@ export class Wallet {
767
814
  * nothing; it names neither this address nor its public key. Anyone who gets the code can pay it, and see what its
768
815
  * other payers paid privately: give each payer its own. It is checksummed text (bech32m, `zerc201…`). */
769
816
  receiveCode(token) {
770
- return this.#exclusive(async () => {
771
- const ctx = this.#ctx;
817
+ const ctx = this.#ctx;
818
+ const code = (index) => ({ chainId: token.chainId, tokenId: token.tokenId, index });
819
+ // the seed is asked for only past the codes derived ahead
820
+ const derived = !!owner(ctx, code(nextBurn(ctx, token.chainId, token.tokenId)));
821
+ return this.#seeded(async () => {
772
822
  const { burnIndex, address } = await this.#burnAddress(token);
823
+ if (!owner(ctx, code(burnIndex)))
824
+ await this.#seed(); // calls queued before took the next ones
773
825
  return encodeCode({
774
826
  chainId: token.chainId,
775
827
  tokenId: token.tokenId,
776
828
  burnAddress: hexToBytes(address),
777
- publicKey: hexToBytes(spendKey(ctx, { chainId: token.chainId, tokenId: token.tokenId, index: burnIndex }).publicKey),
829
+ publicKey: hexToBytes(owner(ctx, code(burnIndex)).publicKey),
778
830
  key: codeKey(ctx.view.seed, token.chainId, token.tokenId, burnIndex),
779
831
  });
780
- });
832
+ }, !derived);
781
833
  }
782
834
  /** What a send or withdrawal of `amount` would cost now, or a consolidation of what the wallet holds. A send or
783
835
  * withdrawal no single JoinSplit can pay now throws as it would (`needs-consolidation`, `funds-settling`,
@@ -832,11 +884,12 @@ export class Wallet {
832
884
  * what is spendable now, or it fails here: `needs-consolidation`, `funds-settling` or `insufficient-funds`.
833
885
  * `amount` is what the recipient gets, and `maxFee` caps what it pays on top, `fees({ kind: 'send' }).fee`: the
834
886
  * relayer names its fee, so a quote the user saw is the cap. */
835
- send(opts) {
836
- return this.#exclusive(async () => {
837
- const { token, amount } = opts;
838
- if (amount <= 0n)
839
- fail('invalid', 'the amount must be positive');
887
+ async send(opts) {
888
+ const { token, amount } = opts;
889
+ if (amount <= 0n)
890
+ fail('invalid', 'the amount must be positive');
891
+ // the JoinSplit is proved by a later sync, which holds the seed until the payment is done
892
+ return this.#seeded(async () => {
840
893
  let to;
841
894
  if (isAddress(opts.to)) {
842
895
  const recipient = await lookupRecipient(this.#ctx.storage, hexToBytes(opts.to));
@@ -866,7 +919,7 @@ export class Wallet {
866
919
  * touched; one still settling is waited for. `maxFee` caps the fees of every merge together,
867
920
  * `fees({ kind: 'consolidate' }).fee`. */
868
921
  consolidate(opts) {
869
- return this.#exclusive(async () => {
922
+ return this.#seeded(async () => {
870
923
  if (!this.#ctx.network.mergeProver)
871
924
  fail('invalid', 'this network has no merge prover');
872
925
  const to = { kind: 'self' };
@@ -895,12 +948,12 @@ export class Wallet {
895
948
  /** Withdraws `amount` publicly to `to`, as zERC20 or with `unwrap` the underlying asset itself, so `to` needs no gas
896
949
  * to unwrap. One JoinSplit, as `send`, and as there `to` gets all of `amount` and `maxFee` caps what is paid on top
897
950
  * (`fees({ kind: 'withdraw' }).fee`). */
898
- withdraw(opts) {
899
- return this.#exclusive(async () => {
900
- if (!isAddress(opts.to))
901
- fail('invalid', `${String(opts.to)} is not an address`);
902
- if (opts.amount <= 0n)
903
- fail('invalid', 'the amount must be positive');
951
+ async withdraw(opts) {
952
+ if (!isAddress(opts.to))
953
+ fail('invalid', `${String(opts.to)} is not an address`);
954
+ if (opts.amount <= 0n)
955
+ fail('invalid', 'the amount must be positive');
956
+ return this.#seeded(async () => {
904
957
  const to = { kind: 'public', address: opts.to, unwrap: opts.unwrap };
905
958
  return this.#newPayment('withdraw', opts.token, opts.amount, { to, maxFee: opts.maxFee, step: null, paid: 0n });
906
959
  });
@@ -1 +1 @@
1
- {"version":3,"file":"wallet.js","sourceRoot":"","sources":["../src/wallet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wallet.js","sourceRoot":"","sources":["../src/wallet.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@zerc20/wallet-sdk",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "A zERC20 wallet for browsers and Node: deposits, private payments, withdrawals and rage exits.",
5
5
  "type": "module",
6
6
  "license": "Unlicense",
7
7
  "repository": {
8
8
  "type": "git",
9
- "url": "git+https://github.com/kbizikav/zerc20-v2-new.git",
9
+ "url": "git+https://github.com/zerc20io/zERC20v2.git",
10
10
  "directory": "wallet/sdk"
11
11
  },
12
12
  "main": "dist/index.js",
@@ -35,7 +35,8 @@
35
35
  "@noble/ciphers": "^2.3.0",
36
36
  "@noble/curves": "^2.3.0",
37
37
  "@noble/hashes": "^2.3.0",
38
- "@zerc20/storage-sdk": "^0.2.0",
38
+ "@scure/bip39": "^2.4.0",
39
+ "@zerc20/storage-sdk": "^0.3.0",
39
40
  "snarkjs": "0.7.6"
40
41
  },
41
42
  "peerDependencies": {