@tatumio/wallet-sdk 0.0.2 → 0.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 (59) hide show
  1. package/README.md +3 -1
  2. package/dist/chains.d.ts +1 -1
  3. package/dist/chains.d.ts.map +1 -1
  4. package/dist/chains.js +13 -13
  5. package/dist/chains.js.map +1 -1
  6. package/dist/constants/paths.d.ts +4 -2
  7. package/dist/constants/paths.d.ts.map +1 -1
  8. package/dist/constants/paths.js +4 -2
  9. package/dist/constants/paths.js.map +1 -1
  10. package/dist/constants/urls.d.ts +1 -1
  11. package/dist/constants/urls.js +1 -1
  12. package/dist/eject/birkhoff.d.ts +7 -0
  13. package/dist/eject/birkhoff.d.ts.map +1 -0
  14. package/dist/eject/birkhoff.js +33 -0
  15. package/dist/eject/birkhoff.js.map +1 -0
  16. package/dist/eject/curves.d.ts +24 -0
  17. package/dist/eject/curves.d.ts.map +1 -0
  18. package/dist/eject/curves.js +85 -0
  19. package/dist/eject/curves.js.map +1 -0
  20. package/dist/eject/index.d.ts +4 -0
  21. package/dist/eject/index.d.ts.map +1 -0
  22. package/dist/eject/index.js +2 -0
  23. package/dist/eject/index.js.map +1 -0
  24. package/dist/eject/matrix.d.ts +17 -0
  25. package/dist/eject/matrix.d.ts.map +1 -0
  26. package/dist/eject/matrix.js +110 -0
  27. package/dist/eject/matrix.js.map +1 -0
  28. package/dist/eject/reconstruct.d.ts +16 -0
  29. package/dist/eject/reconstruct.d.ts.map +1 -0
  30. package/dist/eject/reconstruct.js +48 -0
  31. package/dist/eject/reconstruct.js.map +1 -0
  32. package/dist/eject/shares.d.ts +34 -0
  33. package/dist/eject/shares.d.ts.map +1 -0
  34. package/dist/eject/shares.js +67 -0
  35. package/dist/eject/shares.js.map +1 -0
  36. package/dist/index.d.ts +2 -0
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +1 -0
  39. package/dist/index.js.map +1 -1
  40. package/dist/portal/custodian.d.ts +38 -21
  41. package/dist/portal/custodian.d.ts.map +1 -1
  42. package/dist/portal/custodian.js +57 -27
  43. package/dist/portal/custodian.js.map +1 -1
  44. package/dist/portal/enclave-api.d.ts.map +1 -1
  45. package/dist/portal/enclave-api.js +16 -8
  46. package/dist/portal/enclave-api.js.map +1 -1
  47. package/dist/portal/types/custodian.d.ts +24 -0
  48. package/dist/portal/types/custodian.d.ts.map +1 -1
  49. package/dist/portal/wallets-client.d.ts +8 -0
  50. package/dist/portal/wallets-client.d.ts.map +1 -1
  51. package/dist/portal/wallets-client.js +10 -0
  52. package/dist/portal/wallets-client.js.map +1 -1
  53. package/dist/sdk.js +1 -1
  54. package/dist/sdk.js.map +1 -1
  55. package/dist/tatum/provider.d.ts +12 -3
  56. package/dist/tatum/provider.d.ts.map +1 -1
  57. package/dist/tatum/provider.js +22 -17
  58. package/dist/tatum/provider.js.map +1 -1
  59. package/package.json +5 -1
@@ -0,0 +1,34 @@
1
+ import type { Bk } from './birkhoff.js';
2
+ export type ShareInput = string | object | Uint8Array;
3
+ export interface PublicKeyCoords {
4
+ x: bigint;
5
+ y: bigint;
6
+ }
7
+ export interface Peer {
8
+ share: bigint;
9
+ bk: Bk;
10
+ }
11
+ /** Normalize a string | Uint8Array | object DKG result into a plain record. */
12
+ export declare function parseShareInput(input: ShareInput): Record<string, unknown>;
13
+ export declare function validateClientShare(input: ShareInput): {
14
+ pubkey: PublicKeyCoords;
15
+ share: string;
16
+ serverBkX: string;
17
+ };
18
+ export declare function validateCustodianShare(input: ShareInput): {
19
+ share: string;
20
+ clientBkX: string;
21
+ };
22
+ /**
23
+ * Build the two peers for recovery. Mirrors the reference cross-wiring:
24
+ * the client peer's Birkhoff x comes from the custodian share's clientBk, and
25
+ * the server peer's Birkhoff x comes from the client share's bks.server.x.
26
+ */
27
+ export declare function setupPeers(client: {
28
+ share: string;
29
+ serverBkX: string;
30
+ }, custodian: {
31
+ share: string;
32
+ clientBkX: string;
33
+ }): [Peer, Peer];
34
+ //# sourceMappingURL=shares.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shares.d.ts","sourceRoot":"","sources":["../../src/eject/shares.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAExC,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;AAEtD,MAAM,WAAW,eAAe;IAC9B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,IAAI;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,EAAE,CAAC;CACR;AAED,+EAA+E;AAC/E,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAO1E;AAcD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,UAAU,GAAG;IACtD,MAAM,EAAE,eAAe,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB,CAkBA;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,UAAU,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAS9F;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,EAC5C,SAAS,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAC9C,CAAC,IAAI,EAAE,IAAI,CAAC,CAUd"}
@@ -0,0 +1,67 @@
1
+ /** Normalize a string | Uint8Array | object DKG result into a plain record. */
2
+ export function parseShareInput(input) {
3
+ if (typeof input === 'string')
4
+ return JSON.parse(input);
5
+ if (input instanceof Uint8Array) {
6
+ return JSON.parse(new TextDecoder().decode(input));
7
+ }
8
+ if (typeof input === 'object' && input !== null)
9
+ return { ...input };
10
+ throw new Error('Invalid share format');
11
+ }
12
+ /** Read a property by lower- or upper-cased first letter (DKG results vary in case). */
13
+ function pick(obj, lower, upper) {
14
+ return obj[lower] !== undefined ? obj[lower] : obj[upper];
15
+ }
16
+ function asRecord(value, context) {
17
+ if (typeof value !== 'object' || value === null) {
18
+ throw new Error(`Inputted share does not include necessary fields (${context})`);
19
+ }
20
+ return value;
21
+ }
22
+ export function validateClientShare(input) {
23
+ const share = parseShareInput(input);
24
+ const pubkeyRaw = pick(share, 'pubkey', 'Pubkey');
25
+ const bksRaw = pick(share, 'bks', 'Bks');
26
+ if (pubkeyRaw === undefined || share['share'] === undefined || bksRaw === undefined) {
27
+ throw new Error('Inputted share does not include necessary fields');
28
+ }
29
+ const pubkeyObj = asRecord(pubkeyRaw, 'pubkey');
30
+ const bksObj = asRecord(bksRaw, 'bks');
31
+ const serverBk = asRecord(pick(bksObj, 'server', 'Server'), 'bks.server');
32
+ return {
33
+ pubkey: {
34
+ x: BigInt(String(pick(pubkeyObj, 'x', 'X'))),
35
+ y: BigInt(String(pick(pubkeyObj, 'y', 'Y'))),
36
+ },
37
+ share: String(share['share']),
38
+ serverBkX: String(pick(serverBk, 'x', 'X')),
39
+ };
40
+ }
41
+ export function validateCustodianShare(input) {
42
+ const backup = parseShareInput(input);
43
+ if (backup['share'] === undefined || backup['clientBk'] === undefined) {
44
+ throw new Error('Custodian share does not include necessary fields');
45
+ }
46
+ return {
47
+ share: String(backup['share']),
48
+ clientBkX: String(backup['clientBk']),
49
+ };
50
+ }
51
+ /**
52
+ * Build the two peers for recovery. Mirrors the reference cross-wiring:
53
+ * the client peer's Birkhoff x comes from the custodian share's clientBk, and
54
+ * the server peer's Birkhoff x comes from the client share's bks.server.x.
55
+ */
56
+ export function setupPeers(client, custodian) {
57
+ const clientPeer = {
58
+ share: BigInt(client.share),
59
+ bk: { x: BigInt(custodian.clientBkX), rank: 0 },
60
+ };
61
+ const serverPeer = {
62
+ share: BigInt(custodian.share),
63
+ bk: { x: BigInt(client.serverBkX), rank: 0 },
64
+ };
65
+ return [clientPeer, serverPeer];
66
+ }
67
+ //# sourceMappingURL=shares.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shares.js","sourceRoot":"","sources":["../../src/eject/shares.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -4,6 +4,7 @@ export { CustodianApi, custodianOperations } from './portal/custodian.js';
4
4
  export { clientOperations } from './portal/client-api.js';
5
5
  export { enclaveOperations } from './portal/enclave-api.js';
6
6
  export { WalletsClient } from './portal/wallets-client.js';
7
+ export { reconstructPrivateKey } from './eject/index.js';
7
8
  export { TatumWalletsSdk } from './sdk.js';
8
9
  export { WalletsApiClient } from './tatum/api-client.js';
9
10
  export type { WalletChainConfig } from './chains.js';
@@ -11,6 +12,7 @@ export type { CustodianOperation, CustodianRequestOptions } from './portal/custo
11
12
  export type { ClientOperation } from './portal/client-api.js';
12
13
  export type { EnclaveOperation } from './portal/enclave-api.js';
13
14
  export type { InitClientConfig, WalletsClientRequestOptions } from './portal/wallets-client.js';
15
+ export type { ReconstructPrivateKeyParams, ShareInput } from './eject/index.js';
14
16
  export type { PathParamValue } from './path.js';
15
17
  export type { ApiErrorOptions, ApiRequestOptions, HttpMethod, QueryParams, QueryValue, WalletsSDKConfig } from './types.js';
16
18
  export type { BackupShareCipherTextResponse, BackupSharePair, BackupWalletBody, BackupWalletResponse, BitcoinTransactionResult, BuildTransactionBody, BuildTransactionResponse, ClientDetails, ClientEjectableBackupSharesQuery, ClientEjectableBackupSharesResponse, CreateClientBody, CreateClientResponse, CreateClientSessionBody, CreateClientSessionResponse, Curve, CurveShares, Eip155TransactionResult, EjectableBackupShares, EjectableBackupSharesBackupMethod, EnableEjectBody, EnableEjectResponse, EvaluateTransactionBody, EvaluateTransactionInput, EvaluateTransactionOperationType, EvaluateTransactionQuery, EvaluateTransactionResponse, EvaluateTransactionToken, GenerateWalletResponse, ListClientsQuery, ListClientsResponse, PortalRequestOptions, RawSignBody, RawSignResponse, RecoverWalletBody, RecoverWalletResponse, SendAssetsBody, SendAssetsResponse, SignBody, SignResponse, SigningSharePair, StoreBackupShareBody, SolanaTransactionResult, StellarTransactionResult, TransactionBalanceChange, TransactionEvaluation, TronTransactionResult, UpdateBackupSharePairsBody, UpdateSigningSharePairsBody, Wallet, WalletShare } from './portal/types/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,YAAY,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACzF,YAAY,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,YAAY,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,YAAY,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAChG,YAAY,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAChD,YAAY,EACV,eAAe,EACf,iBAAiB,EACjB,UAAU,EACV,WAAW,EACX,UAAU,EACV,gBAAgB,EACjB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,6BAA6B,EAC7B,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,EACpB,wBAAwB,EACxB,aAAa,EACb,gCAAgC,EAChC,mCAAmC,EACnC,gBAAgB,EAChB,oBAAoB,EACpB,uBAAuB,EACvB,2BAA2B,EAC3B,KAAK,EACL,WAAW,EACX,uBAAuB,EACvB,qBAAqB,EACrB,iCAAiC,EACjC,eAAe,EACf,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,EACxB,gCAAgC,EAChC,wBAAwB,EACxB,2BAA2B,EAC3B,wBAAwB,EACxB,sBAAsB,EACtB,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,cAAc,EACd,kBAAkB,EAClB,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,uBAAuB,EACvB,wBAAwB,EACxB,wBAAwB,EACxB,qBAAqB,EACrB,qBAAqB,EACrB,0BAA0B,EAC1B,2BAA2B,EAC3B,MAAM,EACN,WAAW,EACZ,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,YAAY,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACzF,YAAY,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,YAAY,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,YAAY,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAChG,YAAY,EAAE,2BAA2B,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAChF,YAAY,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAChD,YAAY,EACV,eAAe,EACf,iBAAiB,EACjB,UAAU,EACV,WAAW,EACX,UAAU,EACV,gBAAgB,EACjB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,6BAA6B,EAC7B,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,EACpB,wBAAwB,EACxB,aAAa,EACb,gCAAgC,EAChC,mCAAmC,EACnC,gBAAgB,EAChB,oBAAoB,EACpB,uBAAuB,EACvB,2BAA2B,EAC3B,KAAK,EACL,WAAW,EACX,uBAAuB,EACvB,qBAAqB,EACrB,iCAAiC,EACjC,eAAe,EACf,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,EACxB,gCAAgC,EAChC,wBAAwB,EACxB,2BAA2B,EAC3B,wBAAwB,EACxB,sBAAsB,EACtB,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,cAAc,EACd,kBAAkB,EAClB,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,uBAAuB,EACvB,wBAAwB,EACxB,wBAAwB,EACxB,qBAAqB,EACrB,qBAAqB,EACrB,0BAA0B,EAC1B,2BAA2B,EAC3B,MAAM,EACN,WAAW,EACZ,MAAM,yBAAyB,CAAC"}
package/dist/index.js CHANGED
@@ -4,6 +4,7 @@ export { CustodianApi, custodianOperations } from './portal/custodian.js';
4
4
  export { clientOperations } from './portal/client-api.js';
5
5
  export { enclaveOperations } from './portal/enclave-api.js';
6
6
  export { WalletsClient } from './portal/wallets-client.js';
7
+ export { reconstructPrivateKey } from './eject/index.js';
7
8
  export { TatumWalletsSdk } from './sdk.js';
8
9
  export { WalletsApiClient } from './tatum/api-client.js';
9
10
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -1,61 +1,69 @@
1
1
  import type { WalletChain } from '../chains.js';
2
- import type { PortalTatumProvider } from '../tatum/provider.js';
3
- import type { RequestOptions, WalletsSDKConfig } from '../types.js';
4
- import type { BuildTransactionBody, BuildTransactionResponse, ClientDetails, CreateClientBody, CreateClientResponse, CreateClientSessionBody, CreateClientSessionResponse, EjectableBackupShares, EnableEjectBody, EnableEjectResponse, ListClientsQuery, ListClientsResponse, PortalRequestOptions } from './types/index.js';
2
+ import type { WalletsApiClient } from '../tatum/api-client.js';
3
+ import type { RequestOptions } from '../types.js';
4
+ import type { BuildTransactionBody, BuildTransactionResponse, ClientDetails, CreateClientBody, CreateClientResponse, CreateClientSessionBody, CreateClientSessionResponse, EjectableBackupShares, EnableEjectBody, EnableEjectResponse, GasSponsorshipChain, GetGasSponsorshipChainsQuery, ListClientsQuery, ListClientsResponse, PortalRequestOptions, UpdateGasSponsorshipBody } from './types/index.js';
5
+ /** Custodian operations, proxied by Tatum under `/v4/wallets` (Tatum injects the Portal token). */
5
6
  export declare const custodianOperations: {
6
7
  readonly createClient: {
7
8
  readonly method: "POST";
8
- readonly path: "/custodians/me/clients";
9
+ readonly path: "/v4/wallets/clients";
9
10
  };
10
11
  readonly listClients: {
11
12
  readonly method: "GET";
12
- readonly path: "/custodians/me/clients";
13
+ readonly path: "/v4/wallets/clients";
13
14
  };
14
15
  readonly getClient: {
15
16
  readonly method: "GET";
16
- readonly path: "/custodians/me/clients/{clientId}";
17
+ readonly path: "/v4/wallets/clients/{clientId}";
17
18
  };
18
19
  readonly createClientSession: {
19
20
  readonly method: "POST";
20
- readonly path: "/custodians/me/clients/{clientId}/sessions";
21
+ readonly path: "/v4/wallets/clients/{clientId}/sessions";
21
22
  };
22
23
  readonly buildTransaction: {
23
24
  readonly method: "POST";
24
- readonly path: "/custodians/me/clients/{clientId}/chains/{chain}/assets/send/build-transaction";
25
+ readonly path: "/v4/wallets/clients/{clientId}/chains/{chain}/assets/send/build-transaction";
25
26
  };
26
27
  readonly enableEject: {
27
28
  readonly method: "PATCH";
28
- readonly path: "/custodians/me/clients/{clientId}/enable-eject";
29
+ readonly path: "/v4/wallets/clients/{clientId}/enable-eject";
29
30
  };
30
31
  readonly getEjectableBackupShares: {
31
32
  readonly method: "GET";
32
- readonly path: "/custodians/me/clients/{clientId}/wallets/{walletId}/ejectable-backup-shares";
33
+ readonly path: "/v4/wallets/clients/{clientId}/wallets/{walletId}/ejectable-backup-shares";
34
+ };
35
+ readonly getGasSponsorshipChains: {
36
+ readonly method: "GET";
37
+ readonly path: "/v4/wallets/gas-sponsorship/chains";
38
+ };
39
+ readonly updateGasSponsorship: {
40
+ readonly method: "PATCH";
41
+ readonly path: "/v4/wallets/gas-sponsorship/chains/{chain}";
33
42
  };
34
43
  };
35
44
  export type CustodianOperation = keyof typeof custodianOperations;
36
45
  export type CustodianRequestOptions = RequestOptions;
37
46
  /**
38
- * Custodian-scoped Portal operations (`/custodians/me/...`).
39
- *
40
- * Every call is authenticated with the Portal custodian token, which the SDK
41
- * resolves from your Tatum `x-api-key` you never pass it yourself. Use this
42
- * to manage Portal clients, mint session tokens, and run the eject flow.
47
+ * Custodian-scoped operations, served through the Tatum Wallets proxy
48
+ * (`/v4/wallets/...`). Authenticated with your Tatum `x-api-key`; Tatum resolves
49
+ * the custodian token server-side, so you never handle it. Use this to manage
50
+ * clients, mint sessions, build transactions, run the eject flow, and configure
51
+ * gas sponsorship.
43
52
  */
44
53
  export declare class CustodianApi {
45
- private readonly provider;
46
- private readonly config;
47
- constructor(provider: PortalTatumProvider, config: WalletsSDKConfig);
54
+ private readonly tatumClient;
55
+ constructor(tatumClient: WalletsApiClient);
48
56
  /**
49
57
  * Escape hatch: dispatch any custodian operation by name with raw options.
50
58
  * Prefer the typed methods below; use this only for not-yet-modeled behavior.
51
59
  */
52
60
  request<TResponse = unknown>(operationName: CustodianOperation, options?: CustodianRequestOptions): Promise<TResponse>;
53
61
  /**
54
- * Register a new Portal client. Returns its `id`, `clientApiKey`, and an
55
- * initial `clientSessionToken` — pass either to {@link TatumWalletsSdk.initClient}.
62
+ * Register a new client. Returns its `id`, `clientApiKey`, and an initial
63
+ * `clientSessionToken` — pass either to {@link TatumWalletsSdk.initClient}.
56
64
  */
57
65
  createClient<TResponse = CreateClientResponse>(options?: PortalRequestOptions<CreateClientBody>): Promise<TResponse>;
58
- /** List the custodian's Portal clients, with cursor-based pagination (`take` ≤ 100). */
66
+ /** List the custodian's clients, with cursor-based pagination (`take` ≤ 100). */
59
67
  listClients<TResponse = ListClientsResponse>(options?: PortalRequestOptions<never, never, ListClientsQuery>): Promise<TResponse>;
60
68
  /** Fetch a single client's details — wallets, addresses, and share-pair statuses. */
61
69
  getClient<TResponse = ClientDetails>(options: PortalRequestOptions<never, {
@@ -88,5 +96,14 @@ export declare class CustodianApi {
88
96
  clientId: string;
89
97
  walletId: string;
90
98
  }>): Promise<TResponse>;
99
+ /**
100
+ * List gas-sponsorship configuration per chain. Optionally filter by `chains`
101
+ * (mapped to Tatum network slugs).
102
+ */
103
+ getGasSponsorshipChains<TResponse = GasSponsorshipChain[]>(options?: PortalRequestOptions<never, never, GetGasSponsorshipChainsQuery>): Promise<TResponse>;
104
+ /** Update the gas-allowance limit for a chain's sponsorship. */
105
+ updateGasSponsorship<TResponse = GasSponsorshipChain>(options: PortalRequestOptions<UpdateGasSponsorshipBody, {
106
+ chain: WalletChain;
107
+ }>): Promise<TResponse>;
91
108
  }
92
109
  //# sourceMappingURL=custodian.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"custodian.d.ts","sourceRoot":"","sources":["../../src/portal/custodian.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,KAAK,EACV,oBAAoB,EACpB,wBAAwB,EACxB,aAAa,EACb,gBAAgB,EAChB,oBAAoB,EACpB,uBAAuB,EACvB,2BAA2B,EAC3B,qBAAqB,EACrB,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,kBAAkB,CAAC;AAE1B,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CActB,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAAG,MAAM,OAAO,mBAAmB,CAAC;AAElE,MAAM,MAAM,uBAAuB,GAAG,cAAc,CAAC;AAErD;;;;;;GAMG;AACH,qBAAa,YAAY;IAErB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,QAAQ,EAAE,mBAAmB,EAC7B,MAAM,EAAE,gBAAgB;IAG3C;;;OAGG;IACG,OAAO,CAAC,SAAS,GAAG,OAAO,EAC/B,aAAa,EAAE,kBAAkB,EACjC,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,SAAS,CAAC;IAQrB;;;OAGG;IACH,YAAY,CAAC,SAAS,GAAG,oBAAoB,EAC3C,OAAO,CAAC,EAAE,oBAAoB,CAAC,gBAAgB,CAAC,GAC/C,OAAO,CAAC,SAAS,CAAC;IAIrB,wFAAwF;IACxF,WAAW,CAAC,SAAS,GAAG,mBAAmB,EACzC,OAAO,CAAC,EAAE,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,gBAAgB,CAAC,GAC7D,OAAO,CAAC,SAAS,CAAC;IAIrB,qFAAqF;IACrF,SAAS,CAAC,SAAS,GAAG,aAAa,EACjC,OAAO,EAAE,oBAAoB,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,GACzD,OAAO,CAAC,SAAS,CAAC;IAIrB,oEAAoE;IACpE,mBAAmB,CAAC,SAAS,GAAG,2BAA2B,EACzD,OAAO,EAAE,oBAAoB,CAAC,uBAAuB,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,GAC3E,OAAO,CAAC,SAAS,CAAC;IAIrB;;;OAGG;IACH,gBAAgB,CAAC,SAAS,GAAG,wBAAwB,EACnD,OAAO,EAAE,oBAAoB,CAAC,oBAAoB,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,WAAW,CAAA;KAAE,CAAC,GAC5F,OAAO,CAAC,SAAS,CAAC;IAIrB;;;OAGG;IACH,WAAW,CAAC,SAAS,GAAG,mBAAmB,EACzC,OAAO,EAAE,oBAAoB,CAAC,eAAe,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,GACnE,OAAO,CAAC,SAAS,CAAC;IAIrB;;;OAGG;IACH,wBAAwB,CAAC,SAAS,GAAG,qBAAqB,EACxD,OAAO,EAAE,oBAAoB,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,GAC3E,OAAO,CAAC,SAAS,CAAC;CAGtB"}
1
+ {"version":3,"file":"custodian.d.ts","sourceRoot":"","sources":["../../src/portal/custodian.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EACV,oBAAoB,EACpB,wBAAwB,EACxB,aAAa,EACb,gBAAgB,EAChB,oBAAoB,EACpB,uBAAuB,EACvB,2BAA2B,EAC3B,qBAAqB,EACrB,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,4BAA4B,EAC5B,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,wBAAwB,EACzB,MAAM,kBAAkB,CAAC;AAE1B,mGAAmG;AACnG,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgBtB,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAAG,MAAM,OAAO,mBAAmB,CAAC;AAElE,MAAM,MAAM,uBAAuB,GAAG,cAAc,CAAC;AAKrD;;;;;;GAMG;AACH,qBAAa,YAAY;IACX,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAAX,WAAW,EAAE,gBAAgB;IAE1D;;;OAGG;IAGG,OAAO,CAAC,SAAS,GAAG,OAAO,EAC/B,aAAa,EAAE,kBAAkB,EACjC,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,SAAS,CAAC;IAQrB;;;OAGG;IACH,YAAY,CAAC,SAAS,GAAG,oBAAoB,EAC3C,OAAO,CAAC,EAAE,oBAAoB,CAAC,gBAAgB,CAAC,GAC/C,OAAO,CAAC,SAAS,CAAC;IAIrB,iFAAiF;IACjF,WAAW,CAAC,SAAS,GAAG,mBAAmB,EACzC,OAAO,CAAC,EAAE,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,gBAAgB,CAAC,GAC7D,OAAO,CAAC,SAAS,CAAC;IAIrB,qFAAqF;IACrF,SAAS,CAAC,SAAS,GAAG,aAAa,EACjC,OAAO,EAAE,oBAAoB,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,GACzD,OAAO,CAAC,SAAS,CAAC;IAIrB,oEAAoE;IACpE,mBAAmB,CAAC,SAAS,GAAG,2BAA2B,EACzD,OAAO,EAAE,oBAAoB,CAAC,uBAAuB,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,GAC3E,OAAO,CAAC,SAAS,CAAC;IAIrB;;;OAGG;IACH,gBAAgB,CAAC,SAAS,GAAG,wBAAwB,EACnD,OAAO,EAAE,oBAAoB,CAAC,oBAAoB,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,WAAW,CAAA;KAAE,CAAC,GAC5F,OAAO,CAAC,SAAS,CAAC;IAOrB;;;OAGG;IACH,WAAW,CAAC,SAAS,GAAG,mBAAmB,EACzC,OAAO,EAAE,oBAAoB,CAAC,eAAe,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,GACnE,OAAO,CAAC,SAAS,CAAC;IAIrB;;;OAGG;IACH,wBAAwB,CAAC,SAAS,GAAG,qBAAqB,EACxD,OAAO,EAAE,oBAAoB,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,GAC3E,OAAO,CAAC,SAAS,CAAC;IAIrB;;;OAGG;IACH,uBAAuB,CAAC,SAAS,GAAG,mBAAmB,EAAE,EACvD,OAAO,CAAC,EAAE,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,4BAA4B,CAAC,GACzE,OAAO,CAAC,SAAS,CAAC;IAiBrB,gEAAgE;IAChE,oBAAoB,CAAC,SAAS,GAAG,mBAAmB,EAClD,OAAO,EAAE,oBAAoB,CAAC,wBAAwB,EAAE;QAAE,KAAK,EAAE,WAAW,CAAA;KAAE,CAAC,GAC9E,OAAO,CAAC,SAAS,CAAC;CAMtB"}
@@ -1,53 +1,55 @@
1
- import { PORTAL_API_BASE_URL } from '../constants/index.js';
1
+ import { getWalletChainConfig } from '../chains.js';
2
2
  import { buildRequestOptions } from '../operation.js';
3
- import { createPortalApiClient } from './transport.js';
3
+ /** Custodian operations, proxied by Tatum under `/v4/wallets` (Tatum injects the Portal token). */
4
4
  export const custodianOperations = {
5
- createClient: { method: 'POST', path: '/custodians/me/clients' },
6
- listClients: { method: 'GET', path: '/custodians/me/clients' },
7
- getClient: { method: 'GET', path: '/custodians/me/clients/{clientId}' },
8
- createClientSession: { method: 'POST', path: '/custodians/me/clients/{clientId}/sessions' },
5
+ createClient: { method: 'POST', path: '/v4/wallets/clients' },
6
+ listClients: { method: 'GET', path: '/v4/wallets/clients' },
7
+ getClient: { method: 'GET', path: '/v4/wallets/clients/{clientId}' },
8
+ createClientSession: { method: 'POST', path: '/v4/wallets/clients/{clientId}/sessions' },
9
9
  buildTransaction: {
10
10
  method: 'POST',
11
- path: '/custodians/me/clients/{clientId}/chains/{chain}/assets/send/build-transaction'
11
+ path: '/v4/wallets/clients/{clientId}/chains/{chain}/assets/send/build-transaction'
12
12
  },
13
- enableEject: { method: 'PATCH', path: '/custodians/me/clients/{clientId}/enable-eject' },
13
+ enableEject: { method: 'PATCH', path: '/v4/wallets/clients/{clientId}/enable-eject' },
14
14
  getEjectableBackupShares: {
15
15
  method: 'GET',
16
- path: '/custodians/me/clients/{clientId}/wallets/{walletId}/ejectable-backup-shares'
17
- }
16
+ path: '/v4/wallets/clients/{clientId}/wallets/{walletId}/ejectable-backup-shares'
17
+ },
18
+ getGasSponsorshipChains: { method: 'GET', path: '/v4/wallets/gas-sponsorship/chains' },
19
+ updateGasSponsorship: { method: 'PATCH', path: '/v4/wallets/gas-sponsorship/chains/{chain}' }
18
20
  };
21
+ /** Map a public CAIP-2 {@link WalletChain} to the Tatum network slug used in proxy paths/queries. */
22
+ const toTatumNetwork = (chain) => getWalletChainConfig(chain).tatumNetwork;
19
23
  /**
20
- * Custodian-scoped Portal operations (`/custodians/me/...`).
21
- *
22
- * Every call is authenticated with the Portal custodian token, which the SDK
23
- * resolves from your Tatum `x-api-key` you never pass it yourself. Use this
24
- * to manage Portal clients, mint session tokens, and run the eject flow.
24
+ * Custodian-scoped operations, served through the Tatum Wallets proxy
25
+ * (`/v4/wallets/...`). Authenticated with your Tatum `x-api-key`; Tatum resolves
26
+ * the custodian token server-side, so you never handle it. Use this to manage
27
+ * clients, mint sessions, build transactions, run the eject flow, and configure
28
+ * gas sponsorship.
25
29
  */
26
30
  export class CustodianApi {
27
- provider;
28
- config;
29
- constructor(provider, config) {
30
- this.provider = provider;
31
- this.config = config;
31
+ tatumClient;
32
+ constructor(tatumClient) {
33
+ this.tatumClient = tatumClient;
32
34
  }
33
35
  /**
34
36
  * Escape hatch: dispatch any custodian operation by name with raw options.
35
37
  * Prefer the typed methods below; use this only for not-yet-modeled behavior.
36
38
  */
39
+ // `async` so a synchronous failure (e.g. a missing path param from
40
+ // `buildRequestOptions`) surfaces as a rejected promise, not a sync throw.
37
41
  async request(operationName, options = {}) {
38
42
  const operation = custodianOperations[operationName];
39
- const token = await this.provider.getCustodianToken();
40
- const client = createPortalApiClient(this.config, token, PORTAL_API_BASE_URL);
41
- return client.request(buildRequestOptions(operation.method, operation.path, options));
43
+ return this.tatumClient.request(buildRequestOptions(operation.method, operation.path, options));
42
44
  }
43
45
  /**
44
- * Register a new Portal client. Returns its `id`, `clientApiKey`, and an
45
- * initial `clientSessionToken` — pass either to {@link TatumWalletsSdk.initClient}.
46
+ * Register a new client. Returns its `id`, `clientApiKey`, and an initial
47
+ * `clientSessionToken` — pass either to {@link TatumWalletsSdk.initClient}.
46
48
  */
47
49
  createClient(options) {
48
50
  return this.request('createClient', options);
49
51
  }
50
- /** List the custodian's Portal clients, with cursor-based pagination (`take` ≤ 100). */
52
+ /** List the custodian's clients, with cursor-based pagination (`take` ≤ 100). */
51
53
  listClients(options) {
52
54
  return this.request('listClients', options);
53
55
  }
@@ -64,7 +66,10 @@ export class CustodianApi {
64
66
  * The caller signs and submits it separately (e.g. via {@link WalletsClient.sign}).
65
67
  */
66
68
  buildTransaction(options) {
67
- return this.request('buildTransaction', options);
69
+ return this.request('buildTransaction', {
70
+ ...options,
71
+ path: { clientId: options.path.clientId, chain: toTatumNetwork(options.path.chain) }
72
+ });
68
73
  }
69
74
  /**
70
75
  * Enable key eject for a client's wallet until `ejectableUntil`, allowing the
@@ -80,5 +85,30 @@ export class CustodianApi {
80
85
  getEjectableBackupShares(options) {
81
86
  return this.request('getEjectableBackupShares', options);
82
87
  }
88
+ /**
89
+ * List gas-sponsorship configuration per chain. Optionally filter by `chains`
90
+ * (mapped to Tatum network slugs).
91
+ */
92
+ getGasSponsorshipChains(options) {
93
+ const requestOptions = {};
94
+ const chains = options?.query?.chains;
95
+ if (chains && chains.length > 0) {
96
+ requestOptions.query = { chains: chains.map(toTatumNetwork).join(',') };
97
+ }
98
+ if (options?.headers !== undefined) {
99
+ requestOptions.headers = options.headers;
100
+ }
101
+ if (options?.signal !== undefined) {
102
+ requestOptions.signal = options.signal;
103
+ }
104
+ return this.request('getGasSponsorshipChains', requestOptions);
105
+ }
106
+ /** Update the gas-allowance limit for a chain's sponsorship. */
107
+ updateGasSponsorship(options) {
108
+ return this.request('updateGasSponsorship', {
109
+ ...options,
110
+ path: { chain: toTatumNetwork(options.path.chain) }
111
+ });
112
+ }
83
113
  }
84
114
  //# sourceMappingURL=custodian.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"custodian.js","sourceRoot":"","sources":["../../src/portal/custodian.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAoBvD,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,YAAY,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,wBAAwB,EAAE;IAChE,WAAW,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,wBAAwB,EAAE;IAC9D,SAAS,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,mCAAmC,EAAE;IACvE,mBAAmB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,4CAA4C,EAAE;IAC3F,gBAAgB,EAAE;QAChB,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,gFAAgF;KACvF;IACD,WAAW,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,gDAAgD,EAAE;IACxF,wBAAwB,EAAE;QACxB,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,8EAA8E;KACrF;CACO,CAAC;AAMX;;;;;;GAMG;AACH,MAAM,OAAO,YAAY;IAEJ;IACA;IAFnB,YACmB,QAA6B,EAC7B,MAAwB;QADxB,aAAQ,GAAR,QAAQ,CAAqB;QAC7B,WAAM,GAAN,MAAM,CAAkB;IACxC,CAAC;IAEJ;;;OAGG;IACH,KAAK,CAAC,OAAO,CACX,aAAiC,EACjC,UAAmC,EAAE;QAErC,MAAM,SAAS,GAAG,mBAAmB,CAAC,aAAa,CAAC,CAAC;QACrD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC;QACtD,MAAM,MAAM,GAAG,qBAAqB,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,mBAAmB,CAAC,CAAC;QAE9E,OAAO,MAAM,CAAC,OAAO,CAAY,mBAAmB,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IACnG,CAAC;IAED;;;OAGG;IACH,YAAY,CACV,OAAgD;QAEhD,OAAO,IAAI,CAAC,OAAO,CAAY,cAAc,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAED,wFAAwF;IACxF,WAAW,CACT,OAA8D;QAE9D,OAAO,IAAI,CAAC,OAAO,CAAY,aAAa,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAED,qFAAqF;IACrF,SAAS,CACP,OAA0D;QAE1D,OAAO,IAAI,CAAC,OAAO,CAAY,WAAW,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IAED,oEAAoE;IACpE,mBAAmB,CACjB,OAA4E;QAE5E,OAAO,IAAI,CAAC,OAAO,CAAY,qBAAqB,EAAE,OAAO,CAAC,CAAC;IACjE,CAAC;IAED;;;OAGG;IACH,gBAAgB,CACd,OAA6F;QAE7F,OAAO,IAAI,CAAC,OAAO,CAAY,kBAAkB,EAAE,OAAO,CAAC,CAAC;IAC9D,CAAC;IAED;;;OAGG;IACH,WAAW,CACT,OAAoE;QAEpE,OAAO,IAAI,CAAC,OAAO,CAAY,aAAa,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAED;;;OAGG;IACH,wBAAwB,CACtB,OAA4E;QAE5E,OAAO,IAAI,CAAC,OAAO,CAAY,0BAA0B,EAAE,OAAO,CAAC,CAAC;IACtE,CAAC;CACF"}
1
+ {"version":3,"file":"custodian.js","sourceRoot":"","sources":["../../src/portal/custodian.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"enclave-api.d.ts","sourceRoot":"","sources":["../../src/portal/enclave-api.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,KAAK,EACV,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,cAAc,EACd,kBAAkB,EAClB,QAAQ,EACR,YAAY,EACb,MAAM,kBAAkB,CAAC;AAE1B,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;CAOpB,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,iBAAiB,CAAC;AAE9D;;;;GAIG;AACH,qBAAa,UAAU;IAEnB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAFT,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,mBAAmB,EAC7B,SAAS,EAAE,gBAAgB;IAGxC,OAAO,CAAC,SAAS,GAAG,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,SAAS,CAAC;IAWrH,cAAc,CAAC,SAAS,GAAG,sBAAsB,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,SAAS,CAAC;IAItG,YAAY,CAAC,SAAS,GAAG,oBAAoB,EAC3C,OAAO,EAAE,oBAAoB,CAAC,gBAAgB,CAAC,GAC9C,OAAO,CAAC,SAAS,CAAC;IAIrB,aAAa,CAAC,SAAS,GAAG,qBAAqB,EAC7C,OAAO,EAAE,oBAAoB,CAAC,iBAAiB,CAAC,GAC/C,OAAO,CAAC,SAAS,CAAC;IAIrB,IAAI,CAAC,SAAS,GAAG,YAAY,EAAE,OAAO,EAAE,oBAAoB,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;IAI3F,OAAO,CAAC,SAAS,GAAG,eAAe,EACjC,OAAO,EAAE,oBAAoB,CAAC,WAAW,EAAE;QAAE,KAAK,EAAE,KAAK,CAAA;KAAE,CAAC,GAC3D,OAAO,CAAC,SAAS,CAAC;IAIrB,UAAU,CAAC,SAAS,GAAG,kBAAkB,EACvC,OAAO,EAAE,oBAAoB,CAAC,cAAc,CAAC,GAC5C,OAAO,CAAC,SAAS,CAAC;YAIP,kBAAkB;CAiBjC"}
1
+ {"version":3,"file":"enclave-api.d.ts","sourceRoot":"","sources":["../../src/portal/enclave-api.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,KAAK,EACV,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,cAAc,EACd,kBAAkB,EAClB,QAAQ,EACR,YAAY,EACb,MAAM,kBAAkB,CAAC;AAE1B,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;CAOpB,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,iBAAiB,CAAC;AAE9D;;;;GAIG;AACH,qBAAa,UAAU;IAEnB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAFT,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,mBAAmB,EAC7B,SAAS,EAAE,gBAAgB;IAGxC,OAAO,CAAC,SAAS,GAAG,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,SAAS,CAAC;IAW/G,cAAc,CAAC,SAAS,GAAG,sBAAsB,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,SAAS,CAAC;IAM5G,YAAY,CAAC,SAAS,GAAG,oBAAoB,EAC3C,OAAO,EAAE,oBAAoB,CAAC,gBAAgB,CAAC,GAC9C,OAAO,CAAC,SAAS,CAAC;IAIrB,aAAa,CAAC,SAAS,GAAG,qBAAqB,EAC7C,OAAO,EAAE,oBAAoB,CAAC,iBAAiB,CAAC,GAC/C,OAAO,CAAC,SAAS,CAAC;IAIf,IAAI,CAAC,SAAS,GAAG,YAAY,EAAE,OAAO,EAAE,oBAAoB,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;IAM3F,OAAO,CAAC,SAAS,GAAG,eAAe,EACvC,OAAO,EAAE,oBAAoB,CAAC,WAAW,EAAE;QAAE,KAAK,EAAE,KAAK,CAAA;KAAE,CAAC,GAC3D,OAAO,CAAC,SAAS,CAAC;IAMf,UAAU,CAAC,SAAS,GAAG,kBAAkB,EAC7C,OAAO,EAAE,oBAAoB,CAAC,cAAc,CAAC,GAC5C,OAAO,CAAC,SAAS,CAAC;YAMP,kBAAkB;CAiBjC"}
@@ -32,8 +32,10 @@ export class EnclaveApi {
32
32
  });
33
33
  return client.request(requestOptions);
34
34
  }
35
- generateWallet(options) {
36
- return this.request('generateWallet', { ...options, body: {} });
35
+ async generateWallet(options) {
36
+ const result = await this.request('generateWallet', { ...options, body: {} });
37
+ await this.provider.trackWalletCreation(this.token);
38
+ return result;
37
39
  }
38
40
  backupWallet(options) {
39
41
  return this.request('backupWallet', options);
@@ -41,14 +43,20 @@ export class EnclaveApi {
41
43
  recoverWallet(options) {
42
44
  return this.request('recoverWallet', options);
43
45
  }
44
- sign(options) {
45
- return this.request('sign', options);
46
+ async sign(options) {
47
+ const result = await this.request('sign', options);
48
+ await this.provider.trackTransaction(this.token);
49
+ return result;
46
50
  }
47
- rawSign(options) {
48
- return this.request('rawSign', options);
51
+ async rawSign(options) {
52
+ const result = await this.request('rawSign', options);
53
+ await this.provider.trackTransaction(this.token);
54
+ return result;
49
55
  }
50
- sendAssets(options) {
51
- return this.request('sendAssets', options);
56
+ async sendAssets(options) {
57
+ const result = await this.request('sendAssets', options);
58
+ await this.provider.trackTransaction(this.token);
59
+ return result;
52
60
  }
53
61
  async withResolvedRpcUrl(body) {
54
62
  if (!isRecord(body) || typeof body.rpcUrl === 'string') {
@@ -1 +1 @@
1
- {"version":3,"file":"enclave-api.js","sourceRoot":"","sources":["../../src/portal/enclave-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAmBvD,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,cAAc,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE;IACxD,YAAY,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE;IACpD,aAAa,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;IACtD,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE;IAC1C,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,sBAAsB,EAAE;IACzD,UAAU,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE;CAC/C,CAAC;AAIX;;;;GAIG;AACH,MAAM,OAAO,UAAU;IAEF;IACA;IACA;IAHnB,YACmB,KAAa,EACb,QAA6B,EAC7B,SAA2B;QAF3B,UAAK,GAAL,KAAK,CAAQ;QACb,aAAQ,GAAR,QAAQ,CAAqB;QAC7B,cAAS,GAAT,SAAS,CAAkB;IAC3C,CAAC;IAEJ,KAAK,CAAC,OAAO,CAAsB,aAA+B,EAAE,UAA0B,EAAE;QAC9F,MAAM,SAAS,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,qBAAqB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;QAC1F,MAAM,cAAc,GAAG,mBAAmB,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,EAAE;YAC3E,GAAG,OAAO;YACV,IAAI,EAAE,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC;SAClD,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,OAAO,CAAY,cAAc,CAAC,CAAC;IACnD,CAAC;IAED,cAAc,CAAqC,OAA8B;QAC/E,OAAO,IAAI,CAAC,OAAO,CAAY,gBAAgB,EAAE,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,YAAY,CACV,OAA+C;QAE/C,OAAO,IAAI,CAAC,OAAO,CAAY,cAAc,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAED,aAAa,CACX,OAAgD;QAEhD,OAAO,IAAI,CAAC,OAAO,CAAY,eAAe,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,CAA2B,OAAuC;QACpE,OAAO,IAAI,CAAC,OAAO,CAAY,MAAM,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAED,OAAO,CACL,OAA4D;QAE5D,OAAO,IAAI,CAAC,OAAO,CAAY,SAAS,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,UAAU,CACR,OAA6C;QAE7C,OAAO,IAAI,CAAC,OAAO,CAAY,YAAY,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,IAAa;QAC5C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACvD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,KAAK,GACT,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QAE5G,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO;YACL,GAAG,IAAI;YACP,MAAM,EAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC;SAC7C,CAAC;IACJ,CAAC;CACF;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC"}
1
+ {"version":3,"file":"enclave-api.js","sourceRoot":"","sources":["../../src/portal/enclave-api.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { WalletChain } from '../../chains.js';
1
2
  import type { ClientDetails } from './shared.js';
2
3
  export interface CreateClientBody {
3
4
  isAccountAbstracted?: boolean;
@@ -36,4 +37,27 @@ export interface EnableEjectBody {
36
37
  export interface EnableEjectResponse {
37
38
  ejectableUntil?: string;
38
39
  }
40
+ export type GetGasSponsorshipChainsQuery = {
41
+ /** Chains to filter by; mapped to Tatum network slugs before the request. */
42
+ chains?: WalletChain[];
43
+ };
44
+ export interface GasSponsorshipChain {
45
+ chainId?: string;
46
+ currentPeriod?: {
47
+ gasAllowanceLimit?: string;
48
+ gasUsage?: string;
49
+ transactionCount?: string;
50
+ endsAt?: string;
51
+ };
52
+ /** Present for Solana only; `null` otherwise. */
53
+ gasSponsor?: {
54
+ address?: string;
55
+ balance?: string | null;
56
+ balanceInBaseUnits?: string | null;
57
+ } | null;
58
+ }
59
+ export interface UpdateGasSponsorshipBody {
60
+ /** Max gas allowance limit, in the chain's native units (ETH/SOL). */
61
+ value: string;
62
+ }
39
63
  //# sourceMappingURL=custodian.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"custodian.d.ts","sourceRoot":"","sources":["../../../src/portal/types/custodian.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD,MAAM,WAAW,gBAAgB;IAC/B,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AACD,MAAM,WAAW,oBAAoB;IACnC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,qDAAqD;AACrD,MAAM,WAAW,uBAAuB;IACtC,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AACD,MAAM,WAAW,2BAA2B;IAC1C,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAGD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AACF,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACtE;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AACD,MAAM,WAAW,mBAAmB;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB"}
1
+ {"version":3,"file":"custodian.d.ts","sourceRoot":"","sources":["../../../src/portal/types/custodian.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD,MAAM,WAAW,gBAAgB;IAC/B,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AACD,MAAM,WAAW,oBAAoB;IACnC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,qDAAqD;AACrD,MAAM,WAAW,uBAAuB;IACtC,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AACD,MAAM,WAAW,2BAA2B;IAC1C,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAGD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AACF,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACtE;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AACD,MAAM,WAAW,mBAAmB;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAID,MAAM,MAAM,4BAA4B,GAAG;IACzC,6EAA6E;IAC7E,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;CACxB,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE;QACd,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,iDAAiD;IACjD,UAAU,CAAC,EAAE;QACX,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACpC,GAAG,IAAI,CAAC;CACV;AAED,MAAM,WAAW,wBAAwB;IACvC,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;CACf"}
@@ -1,3 +1,4 @@
1
+ import type { ReconstructPrivateKeyParams } from '../eject/index.js';
1
2
  import type { ClientOperation } from './client-api.js';
2
3
  import type { EnclaveOperation } from './enclave-api.js';
3
4
  import type { Curve } from './types/index.js';
@@ -71,6 +72,13 @@ export declare class WalletsClient {
71
72
  completeEject<TResponse = void>(options: PortalRequestOptions<never, {
72
73
  walletId: string;
73
74
  }>): Promise<TResponse>;
75
+ /**
76
+ * Reconstruct this wallet's full private key from its ejectable backup shares.
77
+ * Pure and network-free: decrypt `encryptedClientBackupShare` yourself first,
78
+ * then pass it with the `custodianBackupShare` from {@link getEjectableBackupShares}.
79
+ * Returns hex (SECP256K1) or Base58 (ED25519).
80
+ */
81
+ reconstructPrivateKey(params: ReconstructPrivateKeyParams): Promise<string>;
74
82
  /**
75
83
  * Generate a new MPC wallet (Enclave API), producing one signing share per
76
84
  * curve (`SECP256K1` and `ED25519`). Returns the shares to store client-side.
@@ -1 +1 @@
1
- {"version":3,"file":"wallets-client.d.ts","sourceRoot":"","sources":["../../src/portal/wallets-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wallets-client.d.ts","sourceRoot":"","sources":["../../src/portal/wallets-client.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { ClientApi } from './client-api.js';
2
2
  import { EnclaveApi } from './enclave-api.js';
3
+ import { reconstructPrivateKey } from '../eject/index.js';
3
4
  /**
4
5
  * Client-scoped Portal operations for a single Portal client.
5
6
  *
@@ -81,6 +82,15 @@ export class WalletsClient {
81
82
  completeEject(options) {
82
83
  return this.clientApi.completeEject(options);
83
84
  }
85
+ /**
86
+ * Reconstruct this wallet's full private key from its ejectable backup shares.
87
+ * Pure and network-free: decrypt `encryptedClientBackupShare` yourself first,
88
+ * then pass it with the `custodianBackupShare` from {@link getEjectableBackupShares}.
89
+ * Returns hex (SECP256K1) or Base58 (ED25519).
90
+ */
91
+ reconstructPrivateKey(params) {
92
+ return reconstructPrivateKey(params);
93
+ }
84
94
  // ── enclave MPC layer ──────────────────────────────────────────────
85
95
  /**
86
96
  * Generate a new MPC wallet (Enclave API), producing one signing share per
@@ -1 +1 @@
1
- {"version":3,"file":"wallets-client.js","sourceRoot":"","sources":["../../src/portal/wallets-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wallets-client.js","sourceRoot":"","sources":["../../src/portal/wallets-client.ts"],"names":[],"mappings":"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"}
package/dist/sdk.js CHANGED
@@ -26,7 +26,7 @@ export class TatumWalletsSdk {
26
26
  this.config = config;
27
27
  this.api = new WalletsApiClient(config);
28
28
  this.portalProvider = new PortalTatumProvider(this.api, config);
29
- this.custodian = new CustodianApi(this.portalProvider, config);
29
+ this.custodian = new CustodianApi(this.api);
30
30
  }
31
31
  /**
32
32
  * Create a client-scoped API for a single Portal client.