@guveno/wallet-sdk 1.0.2 → 1.2.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.
Files changed (42) hide show
  1. package/README.md +97 -119
  2. package/dist/api/client.d.ts.map +1 -1
  3. package/dist/api/client.js +5 -1
  4. package/dist/api/client.js.map +1 -1
  5. package/dist/api/types.d.ts +10 -1
  6. package/dist/api/types.d.ts.map +1 -1
  7. package/dist/encryption-session.d.ts +7 -0
  8. package/dist/encryption-session.d.ts.map +1 -1
  9. package/dist/encryption-session.js +8 -1
  10. package/dist/encryption-session.js.map +1 -1
  11. package/dist/guveno.d.ts +119 -0
  12. package/dist/guveno.d.ts.map +1 -0
  13. package/dist/guveno.js +169 -0
  14. package/dist/guveno.js.map +1 -0
  15. package/dist/hot-wallet.d.ts +25 -7
  16. package/dist/hot-wallet.d.ts.map +1 -1
  17. package/dist/hot-wallet.js +36 -19
  18. package/dist/hot-wallet.js.map +1 -1
  19. package/dist/index.d.ts +6 -5
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +5 -3
  22. package/dist/index.js.map +1 -1
  23. package/dist/polkadot/silence-esm-cjs-warning.d.ts +2 -0
  24. package/dist/polkadot/silence-esm-cjs-warning.d.ts.map +1 -0
  25. package/dist/polkadot/silence-esm-cjs-warning.js +20 -0
  26. package/dist/polkadot/silence-esm-cjs-warning.js.map +1 -0
  27. package/dist/signing/sign-bitcoin.d.ts +8 -7
  28. package/dist/signing/sign-bitcoin.d.ts.map +1 -1
  29. package/dist/signing/sign-bitcoin.js +39 -31
  30. package/dist/signing/sign-bitcoin.js.map +1 -1
  31. package/dist/signing/sign-withdrawal.d.ts +3 -1
  32. package/dist/signing/sign-withdrawal.d.ts.map +1 -1
  33. package/dist/signing/sign-withdrawal.js +5 -2
  34. package/dist/signing/sign-withdrawal.js.map +1 -1
  35. package/dist/signing/types.d.ts +8 -0
  36. package/dist/signing/types.d.ts.map +1 -1
  37. package/dist/signing/types.js.map +1 -1
  38. package/dist/wallet.d.ts +63 -0
  39. package/dist/wallet.d.ts.map +1 -0
  40. package/dist/wallet.js +84 -0
  41. package/dist/wallet.js.map +1 -0
  42. package/package.json +2 -2
@@ -0,0 +1,119 @@
1
+ import { GuvenoApiClient } from './api/client.js';
2
+ import type { ApiClientOptions, ApiWalletDetail, ApiWalletSummary, ListApiWalletOptions } from './api/types.js';
3
+ import type { KeyProvider } from './keyprovider/index.js';
4
+ import type { MnemonicWordCount, SupportedChain, SupportedNetwork, WalletRecordAddressExport } from './types.js';
5
+ import { Wallet } from './wallet.js';
6
+ export type GuvenoOptions = ApiClientOptions;
7
+ /** How to source a wallet's signing key when loading it. */
8
+ export type WalletKeySource =
9
+ /** Your encryption password — unlocks the key the server holds sealed for you. */
10
+ string
11
+ /** A key provider (KMS/HSM/file) — for headless signers that hold their own key material. */
12
+ | {
13
+ keys: KeyProvider;
14
+ };
15
+ /**
16
+ * How to identify a wallet when loading it. Wallet names are only unique within
17
+ * a `(chain, network)` for your company, so a bare name can match several wallets
18
+ * on different chains/networks — pass the `{ name, chain, network }` form (or the
19
+ * numeric id) when you need to be unambiguous.
20
+ */
21
+ export type WalletSelector =
22
+ /** The numeric wallet id — always unique. */
23
+ number
24
+ /** A wallet name; resolved client-side. Throws if more than one wallet matches. */
25
+ | string
26
+ /** A name scoped to a chain/network — maps 1:1 to a wallet, never ambiguous. */
27
+ | {
28
+ name: string;
29
+ chain: SupportedChain;
30
+ network: SupportedNetwork;
31
+ };
32
+ export interface CreateWalletOptions {
33
+ name: string;
34
+ chain: SupportedChain;
35
+ network: SupportedNetwork;
36
+ /** Recovery-phrase length. Defaults to 12. */
37
+ words?: MnemonicWordCount;
38
+ /** Label for the first derived address. */
39
+ label?: string | null;
40
+ /** Your encryption password — used to seal the new recovery phrase for the server. */
41
+ encryptionPassword: string;
42
+ }
43
+ export interface CreateWalletResult {
44
+ /** The created wallet, already loaded and ready to use. */
45
+ wallet: Wallet;
46
+ firstAddress: WalletRecordAddressExport;
47
+ /**
48
+ * The generated recovery phrase. Surface it to the user once for backup; it is
49
+ * also recoverable later from the server (sealed) via {@link Wallet.revealMnemonic}.
50
+ */
51
+ mnemonic: string;
52
+ }
53
+ export interface ImportWalletOptions {
54
+ name: string;
55
+ chain: SupportedChain;
56
+ network: SupportedNetwork;
57
+ mnemonic: string;
58
+ label?: string | null;
59
+ encryptionPassword: string;
60
+ }
61
+ /**
62
+ * The Guveno SDK entry point. Construct it once with your API key, then browse
63
+ * wallets and load the ones you want to use:
64
+ *
65
+ * ```ts
66
+ * const guveno = new Guveno({ apiKey: process.env.GUVENO_API_KEY });
67
+ * const wallets = await guveno.listWallets(); // metadata only, no password
68
+ * const wallet = await guveno.loadWallet(wallets[0].id, encryptionPassword);
69
+ * await wallet.withdraw({ addressId, assetId, toAddress, amount });
70
+ * ```
71
+ *
72
+ * Listing and reading wallet metadata only needs the API key. Loading a wallet to
73
+ * sign with it additionally needs your encryption password (or a key provider for
74
+ * headless signers) — that's what decrypts the recovery phrase, which the server
75
+ * only ever stores sealed.
76
+ */
77
+ export declare class Guveno {
78
+ /** The underlying low-level HTTP client, for operations not covered by this facade (webhooks, rename/delete, etc.). */
79
+ readonly client: GuvenoApiClient;
80
+ private cachedUser;
81
+ constructor(options?: GuvenoOptions);
82
+ /** List wallets stored on the server. Needs only the API key. */
83
+ listWallets(options?: ListApiWalletOptions): Promise<ApiWalletSummary[]>;
84
+ /**
85
+ * Fetch a wallet's metadata by id, name, or `{ name, chain, network }` selector.
86
+ * Needs only the API key. A bare name that matches wallets on more than one
87
+ * chain/network throws — see {@link WalletSelector}.
88
+ */
89
+ getWallet(selector: WalletSelector): Promise<ApiWalletDetail>;
90
+ /**
91
+ * Load a wallet for signing. Fetches the wallet's encrypted secret from the
92
+ * server and unlocks it with your encryption password (or resolves the key from
93
+ * the supplied provider). The returned {@link Wallet} can withdraw, derive
94
+ * addresses, and reveal its recovery phrase.
95
+ *
96
+ * The wallet can be identified by numeric id, by name, or by a
97
+ * `{ name, chain, network }` selector:
98
+ *
99
+ * ```ts
100
+ * await guveno.loadWallet(10, password); // by id
101
+ * await guveno.loadWallet('treasury', password); // by name (throws if ambiguous)
102
+ * await guveno.loadWallet({ name: 'treasury', chain: 'bitcoin', network: 'mainnet' }, password);
103
+ * ```
104
+ *
105
+ * Names are only unique within a `(chain, network)`, so a bare name that matches
106
+ * wallets on more than one chain/network throws — pass the scoped selector or the
107
+ * id to disambiguate.
108
+ */
109
+ loadWallet(selector: WalletSelector, key: WalletKeySource): Promise<Wallet>;
110
+ /** Resolve a {@link WalletSelector} to a full wallet detail record. */
111
+ private resolveWallet;
112
+ /** Generate a new wallet, derive its first address, seal the phrase, and register it. */
113
+ createWallet(options: CreateWalletOptions): Promise<CreateWalletResult>;
114
+ /** Import an existing recovery phrase as a new server-side wallet. */
115
+ importWallet(options: ImportWalletOptions): Promise<Wallet>;
116
+ private pushNewWallet;
117
+ private unlock;
118
+ }
119
+ //# sourceMappingURL=guveno.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guveno.d.ts","sourceRoot":"","sources":["../src/guveno.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EACV,gBAAgB,EAEhB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,gBAAgB,CAAC;AAKxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AACjH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,MAAM,aAAa,GAAG,gBAAgB,CAAC;AAE7C,4DAA4D;AAC5D,MAAM,MAAM,eAAe;AACzB,kFAAkF;AAChF,MAAM;AACR,6FAA6F;GAC3F;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC;AAE1B;;;;;GAKG;AACH,MAAM,MAAM,cAAc;AACxB,6CAA6C;AAC3C,MAAM;AACR,mFAAmF;GACjF,MAAM;AACR,gFAAgF;GAC9E;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,gBAAgB,CAAA;CAAE,CAAC;AAEvE,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,cAAc,CAAC;IACtB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,8CAA8C;IAC9C,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,sFAAsF;IACtF,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,kBAAkB;IACjC,2DAA2D;IAC3D,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,yBAAyB,CAAC;IACxC;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,cAAc,CAAC;IACtB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAUD;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,MAAM;IACjB,uHAAuH;IACvH,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IAGjC,OAAO,CAAC,UAAU,CAAsB;gBAE5B,OAAO,GAAE,aAAkB;IAIvC,iEAAiE;IAC3D,WAAW,CAAC,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAIlF;;;;OAIG;IACG,SAAS,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IAInE;;;;;;;;;;;;;;;;;;OAkBG;IACG,UAAU,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC;IASjF,uEAAuE;YACzD,aAAa;IA0C3B,yFAAyF;IACnF,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAkB7E,sEAAsE;IAChE,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC;YAiBnD,aAAa;YA6Bb,MAAM;CAIrB"}
package/dist/guveno.js ADDED
@@ -0,0 +1,169 @@
1
+ import { GuvenoApiClient } from './api/client.js';
2
+ import { assertSupportedChain, assertSupportedNetwork } from './chains.js';
3
+ import { EncryptionSession } from './encryption-session.js';
4
+ import { assertValidMnemonic, fingerprintMnemonic, generateRandomMnemonic } from './mnemonic.js';
5
+ import { deriveAddress } from './derivation.js';
6
+ import { Wallet } from './wallet.js';
7
+ function normalizeLabel(label) {
8
+ if (label == null) {
9
+ return null;
10
+ }
11
+ const normalized = label.trim();
12
+ return normalized.length === 0 ? null : normalized;
13
+ }
14
+ /**
15
+ * The Guveno SDK entry point. Construct it once with your API key, then browse
16
+ * wallets and load the ones you want to use:
17
+ *
18
+ * ```ts
19
+ * const guveno = new Guveno({ apiKey: process.env.GUVENO_API_KEY });
20
+ * const wallets = await guveno.listWallets(); // metadata only, no password
21
+ * const wallet = await guveno.loadWallet(wallets[0].id, encryptionPassword);
22
+ * await wallet.withdraw({ addressId, assetId, toAddress, amount });
23
+ * ```
24
+ *
25
+ * Listing and reading wallet metadata only needs the API key. Loading a wallet to
26
+ * sign with it additionally needs your encryption password (or a key provider for
27
+ * headless signers) — that's what decrypts the recovery phrase, which the server
28
+ * only ever stores sealed.
29
+ */
30
+ export class Guveno {
31
+ /** The underlying low-level HTTP client, for operations not covered by this facade (webhooks, rename/delete, etc.). */
32
+ client;
33
+ // The `/me` encryption-key blob doesn't change within a process; cache it so
34
+ // loading several wallets doesn't re-fetch it (scrypt still runs per unlock).
35
+ cachedUser;
36
+ constructor(options = {}) {
37
+ this.client = new GuvenoApiClient(options);
38
+ }
39
+ /** List wallets stored on the server. Needs only the API key. */
40
+ async listWallets(options = {}) {
41
+ return this.client.listWalletRecords(options);
42
+ }
43
+ /**
44
+ * Fetch a wallet's metadata by id, name, or `{ name, chain, network }` selector.
45
+ * Needs only the API key. A bare name that matches wallets on more than one
46
+ * chain/network throws — see {@link WalletSelector}.
47
+ */
48
+ async getWallet(selector) {
49
+ return this.resolveWallet(selector);
50
+ }
51
+ /**
52
+ * Load a wallet for signing. Fetches the wallet's encrypted secret from the
53
+ * server and unlocks it with your encryption password (or resolves the key from
54
+ * the supplied provider). The returned {@link Wallet} can withdraw, derive
55
+ * addresses, and reveal its recovery phrase.
56
+ *
57
+ * The wallet can be identified by numeric id, by name, or by a
58
+ * `{ name, chain, network }` selector:
59
+ *
60
+ * ```ts
61
+ * await guveno.loadWallet(10, password); // by id
62
+ * await guveno.loadWallet('treasury', password); // by name (throws if ambiguous)
63
+ * await guveno.loadWallet({ name: 'treasury', chain: 'bitcoin', network: 'mainnet' }, password);
64
+ * ```
65
+ *
66
+ * Names are only unique within a `(chain, network)`, so a bare name that matches
67
+ * wallets on more than one chain/network throws — pass the scoped selector or the
68
+ * id to disambiguate.
69
+ */
70
+ async loadWallet(selector, key) {
71
+ const detail = await this.resolveWallet(selector);
72
+ if (typeof key === 'string') {
73
+ const session = await this.unlock(key);
74
+ return new Wallet({ api: this.client, detail, session });
75
+ }
76
+ return new Wallet({ api: this.client, detail, keys: key.keys });
77
+ }
78
+ /** Resolve a {@link WalletSelector} to a full wallet detail record. */
79
+ async resolveWallet(selector) {
80
+ if (typeof selector === 'number') {
81
+ return this.client.getWalletRecord(selector);
82
+ }
83
+ const name = typeof selector === 'string' ? selector : selector.name;
84
+ const chain = typeof selector === 'string' ? undefined : assertSupportedChain(selector.chain);
85
+ const network = typeof selector === 'string' ? undefined : assertSupportedNetwork(selector.network);
86
+ // Names are unique only per (company, chain, network), so the scoped form
87
+ // yields at most one match; a bare name may match several across chains.
88
+ const matches = [];
89
+ let cursor;
90
+ do {
91
+ const page = await this.client.listWalletRecordPage({
92
+ ...(cursor ? { cursor } : {}),
93
+ ...(chain ? { chain } : {}),
94
+ ...(network ? { network } : {})
95
+ });
96
+ for (const summary of page.items) {
97
+ if (summary.name === name)
98
+ matches.push(summary);
99
+ }
100
+ cursor = page.pageInfo.hasNextPage ? page.pageInfo.nextCursor ?? undefined : undefined;
101
+ } while (cursor);
102
+ if (matches.length > 1) {
103
+ const where = matches.map((w) => `${w.chain}/${w.network} (id ${w.id})`).join(', ');
104
+ throw new Error(`Wallet name "${name}" is ambiguous — it matches ${matches.length} wallets: ${where}. ` +
105
+ 'Pass { name, chain, network } or the numeric id to disambiguate.');
106
+ }
107
+ const match = matches[0];
108
+ if (!match) {
109
+ const scope = chain && network ? ` on ${chain}/${network}` : '';
110
+ throw new Error(`No wallet named "${name}"${scope} was found.`);
111
+ }
112
+ return this.client.getWalletRecord(match.id);
113
+ }
114
+ /** Generate a new wallet, derive its first address, seal the phrase, and register it. */
115
+ async createWallet(options) {
116
+ const chain = assertSupportedChain(options.chain);
117
+ const network = assertSupportedNetwork(options.network);
118
+ const words = options.words ?? 12;
119
+ const mnemonic = generateRandomMnemonic(words);
120
+ const { wallet, firstAddress } = await this.pushNewWallet({
121
+ mnemonic,
122
+ chain,
123
+ network,
124
+ name: options.name,
125
+ label: options.label,
126
+ encryptionPassword: options.encryptionPassword
127
+ });
128
+ return { wallet, firstAddress, mnemonic };
129
+ }
130
+ /** Import an existing recovery phrase as a new server-side wallet. */
131
+ async importWallet(options) {
132
+ const chain = assertSupportedChain(options.chain);
133
+ const network = assertSupportedNetwork(options.network);
134
+ const mnemonic = assertValidMnemonic(options.mnemonic);
135
+ const { wallet } = await this.pushNewWallet({
136
+ mnemonic,
137
+ chain,
138
+ network,
139
+ name: options.name,
140
+ label: options.label,
141
+ encryptionPassword: options.encryptionPassword
142
+ });
143
+ return wallet;
144
+ }
145
+ async pushNewWallet(input) {
146
+ const session = await this.unlock(input.encryptionPassword);
147
+ const derived = await deriveAddress(input.mnemonic, 0, { chain: input.chain, network: input.network });
148
+ const firstAddress = {
149
+ address: derived.address,
150
+ derivationPath: derived.derivationPath,
151
+ accountIndex: derived.index,
152
+ label: normalizeLabel(input.label)
153
+ };
154
+ const detail = await this.client.createWalletRecord({
155
+ name: input.name,
156
+ chain: input.chain,
157
+ network: input.network,
158
+ keyFingerprint: fingerprintMnemonic(input.mnemonic),
159
+ encryptedSecretJson: session.seal(input.mnemonic),
160
+ addresses: [firstAddress]
161
+ });
162
+ return { wallet: new Wallet({ api: this.client, detail, session }), firstAddress };
163
+ }
164
+ async unlock(encryptionPassword) {
165
+ this.cachedUser ??= await this.client.getCurrentUser();
166
+ return EncryptionSession.unlockFromUser(this.cachedUser, encryptionPassword);
167
+ }
168
+ }
169
+ //# sourceMappingURL=guveno.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guveno.js","sourceRoot":"","sources":["../src/guveno.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAQlD,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACjG,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAyDrC,SAAS,cAAc,CAAC,KAAgC;IACtD,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAChC,OAAO,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC;AACrD,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,MAAM;IACjB,uHAAuH;IAC9G,MAAM,CAAkB;IACjC,6EAA6E;IAC7E,8EAA8E;IACtE,UAAU,CAAsB;IAExC,YAAY,UAAyB,EAAE;QACrC,IAAI,CAAC,MAAM,GAAG,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,iEAAiE;IACjE,KAAK,CAAC,WAAW,CAAC,UAAgC,EAAE;QAClD,OAAO,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,SAAS,CAAC,QAAwB;QACtC,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,KAAK,CAAC,UAAU,CAAC,QAAwB,EAAE,GAAoB;QAC7D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAClD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvC,OAAO,IAAI,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO,IAAI,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,uEAAuE;IAC/D,KAAK,CAAC,aAAa,CAAC,QAAwB;QAClD,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC/C,CAAC;QAED,MAAM,IAAI,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QACrE,MAAM,KAAK,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC9F,MAAM,OAAO,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,sBAAsB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAEpG,0EAA0E;QAC1E,yEAAyE;QACzE,MAAM,OAAO,GAAuB,EAAE,CAAC;QACvC,IAAI,MAA0B,CAAC;QAC/B,GAAG,CAAC;YACF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC;gBAClD,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7B,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3B,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAChC,CAAC,CAAC;YACH,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACjC,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI;oBAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACnD,CAAC;YACD,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;QACzF,CAAC,QAAQ,MAAM,EAAE;QAEjB,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpF,MAAM,IAAI,KAAK,CACb,gBAAgB,IAAI,+BAA+B,OAAO,CAAC,MAAM,aAAa,KAAK,IAAI;gBACrF,kEAAkE,CACrE,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,KAAK,GAAG,KAAK,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,KAAK,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChE,MAAM,IAAI,KAAK,CAAC,oBAAoB,IAAI,IAAI,KAAK,aAAa,CAAC,CAAC;QAClE,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,yFAAyF;IACzF,KAAK,CAAC,YAAY,CAAC,OAA4B;QAC7C,MAAM,KAAK,GAAG,oBAAoB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,sBAAsB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,KAAK,GAAsB,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;QACrD,MAAM,QAAQ,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;QAE/C,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC;YACxD,QAAQ;YACR,KAAK;YACL,OAAO;YACP,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;SAC/C,CAAC,CAAC;QAEH,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC;IAC5C,CAAC;IAED,sEAAsE;IACtE,KAAK,CAAC,YAAY,CAAC,OAA4B;QAC7C,MAAM,KAAK,GAAG,oBAAoB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,sBAAsB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEvD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC;YAC1C,QAAQ;YACR,KAAK;YACL,OAAO;YACP,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;SAC/C,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,KAO3B;QACC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAC5D,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACvG,MAAM,YAAY,GAA8B;YAC9C,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,YAAY,EAAE,OAAO,CAAC,KAAK;YAC3B,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC;SACnC,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC;YAClD,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,cAAc,EAAE,mBAAmB,CAAC,KAAK,CAAC,QAAQ,CAAC;YACnD,mBAAmB,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAuC;YACvF,SAAS,EAAE,CAAC,YAAY,CAAC;SAC1B,CAAC,CAAC;QAEH,OAAO,EAAE,MAAM,EAAE,IAAI,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC;IACrF,CAAC;IAEO,KAAK,CAAC,MAAM,CAAC,kBAA0B;QAC7C,IAAI,CAAC,UAAU,KAAK,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;QACvD,OAAO,iBAAiB,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;IAC/E,CAAC;CACF"}
@@ -20,7 +20,20 @@ export interface HotWalletOptions {
20
20
  keys?: KeyProvider;
21
21
  }
22
22
  export interface WithdrawInput {
23
- addressId: number;
23
+ /**
24
+ * Explicit source address (advanced). Omit to auto-select: the server picks a
25
+ * source with enough balance — and for Bitcoin aggregates UTXOs across the
26
+ * wallet. When omitted, `walletId` is required.
27
+ */
28
+ addressId?: number;
29
+ /**
30
+ * Auto source-selection within this wallet (used when `addressId` is omitted),
31
+ * and the wallet whose key signs. Also resolves the signing key without
32
+ * scanning every wallet.
33
+ */
34
+ walletId?: number;
35
+ /** Bitcoin only: restrict auto UTXO selection to these source addresses (advanced). */
36
+ sourceAddressIds?: number[];
24
37
  assetId: number;
25
38
  /** Required for Ethereum/XRP/Polkadot; for Bitcoin pass `outputs` instead. */
26
39
  toAddress?: string;
@@ -30,13 +43,13 @@ export interface WithdrawInput {
30
43
  /** XRP destination tag. */
31
44
  destinationTag?: number;
32
45
  ethereumGas?: EthereumGasOverrides;
46
+ /** Bitcoin fee rate override (sat/vB); falls back to the server's suggestion. */
47
+ bitcoinFeeRate?: number;
33
48
  /** Reused across this call's prepare + broadcast for replay-safe retries; auto-generated when omitted. */
34
49
  idempotencyKey?: string;
35
- /** Optimization: the address's wallet, to avoid scanning every wallet to resolve it. */
36
- walletId?: number;
37
- /** Fast path: skip all lookups by supplying the source address's derivation path directly. */
50
+ /** Fast path (explicit `addressId` only): skip lookups by supplying the source address's derivation path directly. */
38
51
  derivationPath?: string;
39
- /** Fast path: the wallet's key fingerprint (also the key provider lookup key). */
52
+ /** Fast path (explicit `addressId` only): the wallet's key fingerprint (also the key provider lookup key). */
40
53
  keyFingerprint?: string;
41
54
  }
42
55
  /**
@@ -65,10 +78,15 @@ export declare class HotWallet {
65
78
  * configured key provider. Session mode needs the address's wallet id.
66
79
  */
67
80
  private resolveMnemonic;
68
- private resolveAddress;
81
+ /**
82
+ * Resolves the signing context (derivation path, key fingerprint, wallet) for
83
+ * the address the server prepared. Honors the explicit-address fast path, then
84
+ * a cached context, then indexes the wallet (or all wallets) to find it.
85
+ */
86
+ private resolveContextForWithdrawal;
69
87
  private indexWallet;
70
88
  private indexAllWallets;
71
- /** Chain the per-`addressId` tasks so two withdrawals from one address never overlap. */
89
+ /** Chain the per-source tasks so two withdrawals from one source never overlap. */
72
90
  private serialize;
73
91
  }
74
92
  //# sourceMappingURL=hot-wallet.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hot-wallet.d.ts","sourceRoot":"","sources":["../src/hot-wallet.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAGvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,WAAW,gBAAgB;IAC/B,+GAA+G;IAC/G,GAAG,EAAE,eAAe,CAAC;IACrB;;;OAGG;IACH,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B;;;;OAIG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,8EAA8E;IAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kCAAkC;IAClC,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;IAC1B,2BAA2B;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,oBAAoB,CAAC;IACnC,0GAA0G;IAC1G,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wFAAwF;IACxF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8FAA8F;IAC9F,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kFAAkF;IAClF,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAYD;;;;;;GAMG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAkB;IACtC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA0B;IAC/C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgC;IACxD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqC;IACrE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuC;IAC9D,OAAO,CAAC,YAAY,CAAS;gBAEjB,OAAO,EAAE,gBAAgB;IASrC,8FAA8F;IACxF,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAI5D,+EAA+E;IACzE,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;YAInD,WAAW;IAgDzB;;;;OAIG;YACW,eAAe;YAef,cAAc;YA6Bd,WAAW;YAsBX,eAAe;IAY7B,yFAAyF;IACzF,OAAO,CAAC,SAAS;CAYlB"}
1
+ {"version":3,"file":"hot-wallet.d.ts","sourceRoot":"","sources":["../src/hot-wallet.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAGvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,WAAW,gBAAgB;IAC/B,+GAA+G;IAC/G,GAAG,EAAE,eAAe,CAAC;IACrB;;;OAGG;IACH,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B;;;;OAIG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uFAAuF;IACvF,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,8EAA8E;IAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kCAAkC;IAClC,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;IAC1B,2BAA2B;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,oBAAoB,CAAC;IACnC,iFAAiF;IACjF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0GAA0G;IAC1G,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sHAAsH;IACtH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,8GAA8G;IAC9G,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAYD;;;;;;GAMG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAkB;IACtC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA0B;IAC/C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgC;IACxD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqC;IACrE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuC;IAC9D,OAAO,CAAC,YAAY,CAAS;gBAEjB,OAAO,EAAE,gBAAgB;IASrC,8FAA8F;IACxF,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAU5D,+EAA+E;IACzE,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;YAInD,WAAW;IAkDzB;;;;OAIG;YACW,eAAe;IAe7B;;;;OAIG;YACW,2BAA2B;YAkC3B,WAAW;YAsBX,eAAe;IAY7B,mFAAmF;IACnF,OAAO,CAAC,SAAS;CAYlB"}
@@ -26,19 +26,23 @@ export class HotWallet {
26
26
  }
27
27
  /** Prepare, sign, and broadcast a withdrawal. Resolves to the broadcast withdrawal record. */
28
28
  async withdraw(input) {
29
- return this.serialize(input.addressId, () => this.runWithdraw(input));
29
+ if (input.addressId == null && input.walletId == null && input.sourceAddressIds == null) {
30
+ throw new ValidationError('withdraw() needs an addressId (specific source) or a walletId (auto-select).');
31
+ }
32
+ // Serialize per source so concurrent sends can't collide on a nonce/UTXO:
33
+ // by address when explicit, otherwise by the wallet being auto-selected.
34
+ const key = input.addressId != null ? `a:${input.addressId}` : `w:${input.walletId ?? 'auto'}`;
35
+ return this.serialize(key, () => this.runWithdraw(input));
30
36
  }
31
37
  /** Fetch the current state of a withdrawal (e.g. to poll for confirmation). */
32
38
  async getWithdrawal(withdrawalId) {
33
39
  return this.api.getWithdrawal(withdrawalId);
34
40
  }
35
41
  async runWithdraw(input) {
36
- const context = await this.resolveAddress(input);
37
- if (context.chain != null && !canSignChain(context.chain)) {
38
- throw new SigningError(`The hot wallet cannot sign ${context.chain} withdrawals.`);
39
- }
40
42
  const { withdrawal, signingPayload } = await this.api.prepareWithdrawal({
41
- addressId: input.addressId,
43
+ ...(input.addressId !== undefined ? { addressId: input.addressId } : {}),
44
+ ...(input.walletId !== undefined ? { walletId: input.walletId } : {}),
45
+ ...(input.sourceAddressIds !== undefined ? { sourceAddressIds: input.sourceAddressIds } : {}),
42
46
  assetId: input.assetId,
43
47
  ...(input.toAddress !== undefined ? { toAddress: input.toAddress } : {}),
44
48
  ...(input.amount !== undefined ? { amount: input.amount } : {}),
@@ -49,6 +53,10 @@ export class HotWallet {
49
53
  if (!canSignChain(signingPayload.chain)) {
50
54
  throw new SigningError(`The hot wallet cannot sign ${signingPayload.chain} withdrawals.`);
51
55
  }
56
+ // Resolve the signing context for the address the server actually prepared
57
+ // (the chosen source for account chains; the change address for Bitcoin,
58
+ // whose per-input keys come from the payload).
59
+ const context = await this.resolveContextForWithdrawal(withdrawal.addressId, input);
52
60
  let mnemonic = (await this.resolveMnemonic(context, input)).trim();
53
61
  try {
54
62
  const actual = fingerprintMnemonic(mnemonic);
@@ -59,7 +67,8 @@ export class HotWallet {
59
67
  payload: signingPayload,
60
68
  mnemonic,
61
69
  derivationPath: context.derivationPath,
62
- ...(input.ethereumGas !== undefined ? { ethereumGas: input.ethereumGas } : {})
70
+ ...(input.ethereumGas !== undefined ? { ethereumGas: input.ethereumGas } : {}),
71
+ ...(input.bitcoinFeeRate !== undefined ? { bitcoinFeeRate: input.bitcoinFeeRate } : {})
63
72
  });
64
73
  return await this.api.broadcastWithdrawal({
65
74
  withdrawalId: withdrawal.id,
@@ -88,17 +97,25 @@ export class HotWallet {
88
97
  const secret = await this.api.getWalletKeySecret(walletId);
89
98
  return this.session.unsealRecord(secret.encryptedSecretJson);
90
99
  }
91
- async resolveAddress(input) {
92
- if (input.derivationPath != null && input.keyFingerprint != null) {
100
+ /**
101
+ * Resolves the signing context (derivation path, key fingerprint, wallet) for
102
+ * the address the server prepared. Honors the explicit-address fast path, then
103
+ * a cached context, then indexes the wallet (or all wallets) to find it.
104
+ */
105
+ async resolveContextForWithdrawal(preparedAddressId, input) {
106
+ // Fast path only applies when the caller named the same explicit address.
107
+ if (input.addressId === preparedAddressId &&
108
+ input.derivationPath != null &&
109
+ input.keyFingerprint != null) {
93
110
  const context = {
94
111
  derivationPath: input.derivationPath,
95
112
  keyFingerprint: input.keyFingerprint,
96
113
  ...(input.walletId != null ? { walletId: input.walletId } : {})
97
114
  };
98
- this.addressContexts.set(input.addressId, context);
115
+ this.addressContexts.set(preparedAddressId, context);
99
116
  return context;
100
117
  }
101
- const cached = this.addressContexts.get(input.addressId);
118
+ const cached = this.addressContexts.get(preparedAddressId);
102
119
  if (cached != null) {
103
120
  return cached;
104
121
  }
@@ -108,9 +125,9 @@ export class HotWallet {
108
125
  else if (!this.fullyIndexed) {
109
126
  await this.indexAllWallets();
110
127
  }
111
- const resolved = this.addressContexts.get(input.addressId);
128
+ const resolved = this.addressContexts.get(preparedAddressId);
112
129
  if (resolved == null) {
113
- throw new NotFoundError(`Address ${input.addressId} was not found in any accessible wallet.`);
130
+ throw new NotFoundError(`Prepared source address ${preparedAddressId} was not found in any accessible wallet.`);
114
131
  }
115
132
  return resolved;
116
133
  }
@@ -145,15 +162,15 @@ export class HotWallet {
145
162
  } while (cursor != null);
146
163
  this.fullyIndexed = true;
147
164
  }
148
- /** Chain the per-`addressId` tasks so two withdrawals from one address never overlap. */
149
- serialize(addressId, task) {
150
- const previous = this.queues.get(addressId) ?? Promise.resolve();
165
+ /** Chain the per-source tasks so two withdrawals from one source never overlap. */
166
+ serialize(key, task) {
167
+ const previous = this.queues.get(key) ?? Promise.resolve();
151
168
  const run = previous.catch(() => undefined).then(task);
152
169
  const tracked = run.catch(() => undefined);
153
- this.queues.set(addressId, tracked);
170
+ this.queues.set(key, tracked);
154
171
  void tracked.then(() => {
155
- if (this.queues.get(addressId) === tracked) {
156
- this.queues.delete(addressId);
172
+ if (this.queues.get(key) === tracked) {
173
+ this.queues.delete(key);
157
174
  }
158
175
  });
159
176
  return run;
@@ -1 +1 @@
1
- {"version":3,"file":"hot-wallet.js","sourceRoot":"","sources":["../src/hot-wallet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hot-wallet.js","sourceRoot":"","sources":["../src/hot-wallet.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,10 +1,13 @@
1
+ import './polkadot/silence-esm-cjs-warning.js';
1
2
  export { GuvenoApiClient } from './api/client.js';
2
3
  export { WEBHOOK_EVENT_TYPES } from './api/types.js';
3
4
  export { FileSystemConfigStore, init, loadConfig, createClientFromConfig } from './config/file-store.js';
4
5
  export type { GuvenoConfig } from './config/file-store.js';
5
- export { WalletService } from './wallet-service.js';
6
- export type { CreateWalletOptions, CreateWalletResult, DeriveAddressOptions, DeriveAddressResult, ImportWalletOptions, WalletServiceOptions } from './wallet-service.js';
7
- export { EncryptionSession } from './encryption-session.js';
6
+ export { Guveno } from './guveno.js';
7
+ export type { GuvenoOptions, WalletKeySource, WalletSelector, CreateWalletOptions, CreateWalletResult, ImportWalletOptions } from './guveno.js';
8
+ export { Wallet } from './wallet.js';
9
+ export type { WalletWithdrawInput, WalletDeps } from './wallet.js';
10
+ export type { DeriveAddressOptions, DeriveAddressResult } from './wallet-service.js';
8
11
  export { sealSecret, unsealSecret } from './crypto/sealed-box.js';
9
12
  export type { SealedSecretJson } from './crypto/sealed-box.js';
10
13
  export { decryptUserPrivateKey } from './crypto/user-keys.js';
@@ -13,7 +16,6 @@ export { DEFAULT_CHAIN, CHAIN_DEFINITIONS, POLKADOT_SS58_FORMAT, SUPPORTED_CHAIN
13
16
  export { DEFAULT_API_BASE_URL, DEFAULT_API_BASE_URL_ENV_VAR, DEFAULT_API_KEY_ENV_VAR, resolveStorageDir } from './constants.js';
14
17
  export { buildDerivationPath, deriveAddress, deriveBitcoinAddress, deriveEthereumAddress, derivePolkadotAddress, deriveXrpAddress } from './derivation.js';
15
18
  export { assertValidMnemonic, fingerprintMnemonic, generateRandomMnemonic, getMnemonicWordCount, normalizeMnemonic } from './mnemonic.js';
16
- export { HotWallet } from './hot-wallet.js';
17
19
  export { FileKeyProvider, KmsKeyProvider } from './keyprovider/index.js';
18
20
  export { signWithdrawal, SIGNABLE_CHAINS, canSignChain } from './signing/sign-withdrawal.js';
19
21
  export { signEthereumWithdrawal } from './signing/sign-ethereum.js';
@@ -22,7 +24,6 @@ export { signBitcoinWithdrawal } from './signing/sign-bitcoin.js';
22
24
  export { signPolkadotWithdrawal } from './signing/sign-polkadot.js';
23
25
  export { UnsupportedSigningError, WithdrawalExpiredError } from './signing/types.js';
24
26
  export { ApiError, AuthenticationError, ConflictError, EncryptionRequiredError, KeyResolutionError, NotFoundError, RateLimitError, SigningError, StorageError, ValidationError, WalletSdkError, WrongPasswordError, WrongPassphraseError } from './errors.js';
25
- export type { HotWalletOptions, WithdrawInput } from './hot-wallet.js';
26
27
  export type { KeyProvider, KmsKeyProviderOptions, KmsDecryptFn } from './keyprovider/index.js';
27
28
  export type { MnemonicMap } from './keyprovider/file-provider.js';
28
29
  export type { SignWithdrawalInput } from './signing/sign-withdrawal.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,15 +1,17 @@
1
+ // Silence @polkadot's false-positive ESM/CJS "multiple versions" warning.
2
+ // Must run before any @polkadot module is evaluated, so keep it first.
3
+ import './polkadot/silence-esm-cjs-warning.js';
1
4
  export { GuvenoApiClient } from './api/client.js';
2
5
  export { WEBHOOK_EVENT_TYPES } from './api/types.js';
3
6
  export { FileSystemConfigStore, init, loadConfig, createClientFromConfig } from './config/file-store.js';
4
- export { WalletService } from './wallet-service.js';
5
- export { EncryptionSession } from './encryption-session.js';
7
+ export { Guveno } from './guveno.js';
8
+ export { Wallet } from './wallet.js';
6
9
  export { sealSecret, unsealSecret } from './crypto/sealed-box.js';
7
10
  export { decryptUserPrivateKey } from './crypto/user-keys.js';
8
11
  export { DEFAULT_CHAIN, CHAIN_DEFINITIONS, POLKADOT_SS58_FORMAT, SUPPORTED_CHAINS, SUPPORTED_NETWORKS } from './chains.js';
9
12
  export { DEFAULT_API_BASE_URL, DEFAULT_API_BASE_URL_ENV_VAR, DEFAULT_API_KEY_ENV_VAR, resolveStorageDir } from './constants.js';
10
13
  export { buildDerivationPath, deriveAddress, deriveBitcoinAddress, deriveEthereumAddress, derivePolkadotAddress, deriveXrpAddress } from './derivation.js';
11
14
  export { assertValidMnemonic, fingerprintMnemonic, generateRandomMnemonic, getMnemonicWordCount, normalizeMnemonic } from './mnemonic.js';
12
- export { HotWallet } from './hot-wallet.js';
13
15
  export { FileKeyProvider, KmsKeyProvider } from './keyprovider/index.js';
14
16
  export { signWithdrawal, SIGNABLE_CHAINS, canSignChain } from './signing/sign-withdrawal.js';
15
17
  export { signEthereumWithdrawal } from './signing/sign-ethereum.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EACL,qBAAqB,EACrB,IAAI,EACJ,UAAU,EACV,sBAAsB,EACvB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AASpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAElE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,oBAAoB,EACpB,4BAA4B,EAC5B,uBAAuB,EACvB,iBAAiB,EAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,EACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,iBAAiB,EAClB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC7F,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACrF,OAAO,EACL,QAAQ,EACR,mBAAmB,EACnB,aAAa,EACb,uBAAuB,EACvB,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EACrB,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,uEAAuE;AACvE,OAAO,uCAAuC,CAAC;AAE/C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EACL,qBAAqB,EACrB,IAAI,EACJ,UAAU,EACV,sBAAsB,EACvB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AASrC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAElE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,oBAAoB,EACpB,4BAA4B,EAC5B,uBAAuB,EACvB,iBAAiB,EAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,EACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,iBAAiB,EAClB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC7F,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACrF,OAAO,EACL,QAAQ,EACR,mBAAmB,EACnB,aAAa,EACb,uBAAuB,EACvB,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EACrB,MAAM,aAAa,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=silence-esm-cjs-warning.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"silence-esm-cjs-warning.d.ts","sourceRoot":"","sources":["../../src/polkadot/silence-esm-cjs-warning.ts"],"names":[],"mappings":""}