@tatumio/wallet-sdk 0.0.2 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -1
- package/dist/chains.d.ts +1 -1
- package/dist/chains.d.ts.map +1 -1
- package/dist/chains.js +13 -13
- package/dist/chains.js.map +1 -1
- package/dist/constants/paths.d.ts +4 -2
- package/dist/constants/paths.d.ts.map +1 -1
- package/dist/constants/paths.js +4 -2
- package/dist/constants/paths.js.map +1 -1
- package/dist/constants/urls.d.ts +1 -1
- package/dist/constants/urls.js +1 -1
- package/dist/portal/custodian.d.ts +38 -21
- package/dist/portal/custodian.d.ts.map +1 -1
- package/dist/portal/custodian.js +57 -27
- package/dist/portal/custodian.js.map +1 -1
- package/dist/portal/enclave-api.d.ts.map +1 -1
- package/dist/portal/enclave-api.js +16 -8
- package/dist/portal/enclave-api.js.map +1 -1
- package/dist/portal/types/custodian.d.ts +24 -0
- package/dist/portal/types/custodian.d.ts.map +1 -1
- package/dist/sdk.js +1 -1
- package/dist/sdk.js.map +1 -1
- package/dist/tatum/provider.d.ts +12 -3
- package/dist/tatum/provider.d.ts.map +1 -1
- package/dist/tatum/provider.js +22 -17
- package/dist/tatum/provider.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -21,6 +21,8 @@ const wallets = new TatumWalletsSdk({
|
|
|
21
21
|
|
|
22
22
|
For lower-level or not-yet-modeled Tatum calls, use `wallets.api.request(...)` directly.
|
|
23
23
|
|
|
24
|
+
See [docs/USAGE.md](docs/USAGE.md) for the full guide and complete API reference.
|
|
25
|
+
|
|
24
26
|
## Custodian and Client Operations
|
|
25
27
|
|
|
26
28
|
Custodian-scoped calls are authenticated through your Tatum API key:
|
|
@@ -154,7 +156,7 @@ const recovered = await client.recoverWallet({
|
|
|
154
156
|
}); // typed as RecoverWalletResponse
|
|
155
157
|
```
|
|
156
158
|
|
|
157
|
-
Custodian-scoped calls are authenticated
|
|
159
|
+
Custodian-scoped calls are authenticated with your Tatum `x-api-key` — that single key is all you ever pass. Enclave operations that need an RPC URL get one automatically — the SDK builds `https://<network>.gateway.tatum.io/<your-api-key>` from the chain's `tatumNetwork` (see `WALLET_CHAINS`) — unless you pass an explicit `rpcUrl` in the body.
|
|
158
160
|
|
|
159
161
|
## Development
|
|
160
162
|
|
package/dist/chains.d.ts
CHANGED
|
@@ -29,7 +29,7 @@ export interface WalletChainConfig {
|
|
|
29
29
|
/** Whether an explicit `rpcUrl` is required for enclave operations on this chain. */
|
|
30
30
|
requiresRpcUrl: boolean;
|
|
31
31
|
/** Tatum RPC gateway network slug (`<slug>.gateway.tatum.io`). */
|
|
32
|
-
|
|
32
|
+
tatumNetwork: string;
|
|
33
33
|
}
|
|
34
34
|
/** Per-chain configuration, keyed by {@link WalletChain}. */
|
|
35
35
|
export declare const WALLET_CHAINS: Record<WalletChain, WalletChainConfig>;
|
package/dist/chains.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chains.d.ts","sourceRoot":"","sources":["../src/chains.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAEtD;;;;;;GAMG;AACH,oBAAY,WAAW;IACrB,aAAa,eAAe;IAC5B,gBAAgB,aAAa;IAC7B,gBAAgB,oBAAoB;IACpC,cAAc,4CAA4C;IAC1D,eAAe,mBAAmB;IAClC,YAAY,iBAAiB;IAC7B,eAAe,mDAAmD;IAClE,gBAAgB,iBAAiB;IACjC,iBAAiB,iBAAiB;IAClC,YAAY,gBAAgB;IAC5B,gBAAgB,cAAc;IAC9B,eAAe,eAAe;IAC9B,YAAY,iBAAiB;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAChC,4EAA4E;IAC5E,OAAO,EAAE,WAAW,CAAC;IACrB,8FAA8F;IAC9F,KAAK,EAAE,KAAK,CAAC;IACb,qFAAqF;IACrF,cAAc,EAAE,OAAO,CAAC;IACxB,kEAAkE;IAClE,
|
|
1
|
+
{"version":3,"file":"chains.d.ts","sourceRoot":"","sources":["../src/chains.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAEtD;;;;;;GAMG;AACH,oBAAY,WAAW;IACrB,aAAa,eAAe;IAC5B,gBAAgB,aAAa;IAC7B,gBAAgB,oBAAoB;IACpC,cAAc,4CAA4C;IAC1D,eAAe,mBAAmB;IAClC,YAAY,iBAAiB;IAC7B,eAAe,mDAAmD;IAClE,gBAAgB,iBAAiB;IACjC,iBAAiB,iBAAiB;IAClC,YAAY,gBAAgB;IAC5B,gBAAgB,cAAc;IAC9B,eAAe,eAAe;IAC9B,YAAY,iBAAiB;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAChC,4EAA4E;IAC5E,OAAO,EAAE,WAAW,CAAC;IACrB,8FAA8F;IAC9F,KAAK,EAAE,KAAK,CAAC;IACb,qFAAqF;IACrF,cAAc,EAAE,OAAO,CAAC;IACxB,kEAAkE;IAClE,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,6DAA6D;AAC7D,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,WAAW,EAAE,iBAAiB,CA+EhE,CAAC;AAEF,uDAAuD;AACvD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,WAAW,GAAG,iBAAiB,CAE1E"}
|
package/dist/chains.js
CHANGED
|
@@ -27,79 +27,79 @@ export const WALLET_CHAINS = {
|
|
|
27
27
|
chainId: WalletChain.MONAD_MAINNET,
|
|
28
28
|
curve: 'SECP256K1',
|
|
29
29
|
requiresRpcUrl: false,
|
|
30
|
-
|
|
30
|
+
tatumNetwork: 'monad-mainnet'
|
|
31
31
|
},
|
|
32
32
|
[WalletChain.ETHEREUM_MAINNET]: {
|
|
33
33
|
chainId: WalletChain.ETHEREUM_MAINNET,
|
|
34
34
|
curve: 'SECP256K1',
|
|
35
35
|
requiresRpcUrl: false,
|
|
36
|
-
|
|
36
|
+
tatumNetwork: 'ethereum-mainnet'
|
|
37
37
|
},
|
|
38
38
|
[WalletChain.ETHEREUM_SEPOLIA]: {
|
|
39
39
|
chainId: WalletChain.ETHEREUM_SEPOLIA,
|
|
40
40
|
curve: 'SECP256K1',
|
|
41
41
|
requiresRpcUrl: false,
|
|
42
|
-
|
|
42
|
+
tatumNetwork: 'ethereum-sepolia'
|
|
43
43
|
},
|
|
44
44
|
[WalletChain.SOLANA_MAINNET]: {
|
|
45
45
|
chainId: WalletChain.SOLANA_MAINNET,
|
|
46
46
|
curve: 'ED25519',
|
|
47
47
|
requiresRpcUrl: false,
|
|
48
|
-
|
|
48
|
+
tatumNetwork: 'solana-mainnet'
|
|
49
49
|
},
|
|
50
50
|
[WalletChain.STELLAR_MAINNET]: {
|
|
51
51
|
chainId: WalletChain.STELLAR_MAINNET,
|
|
52
52
|
curve: 'ED25519',
|
|
53
53
|
requiresRpcUrl: true,
|
|
54
|
-
|
|
54
|
+
tatumNetwork: 'stellar-mainnet'
|
|
55
55
|
},
|
|
56
56
|
[WalletChain.TRON_MAINNET]: {
|
|
57
57
|
chainId: WalletChain.TRON_MAINNET,
|
|
58
58
|
curve: 'SECP256K1',
|
|
59
59
|
requiresRpcUrl: true,
|
|
60
|
-
|
|
60
|
+
tatumNetwork: 'tron-mainnet'
|
|
61
61
|
},
|
|
62
62
|
[WalletChain.BITCOIN_MAINNET]: {
|
|
63
63
|
chainId: WalletChain.BITCOIN_MAINNET,
|
|
64
64
|
curve: 'SECP256K1',
|
|
65
65
|
requiresRpcUrl: true,
|
|
66
|
-
|
|
66
|
+
tatumNetwork: 'bitcoin-mainnet'
|
|
67
67
|
},
|
|
68
68
|
[WalletChain.ARBITRUM_MAINNET]: {
|
|
69
69
|
chainId: WalletChain.ARBITRUM_MAINNET,
|
|
70
70
|
curve: 'SECP256K1',
|
|
71
71
|
requiresRpcUrl: false,
|
|
72
|
-
|
|
72
|
+
tatumNetwork: 'arb-one-mainnet'
|
|
73
73
|
},
|
|
74
74
|
[WalletChain.AVALANCHE_MAINNET]: {
|
|
75
75
|
chainId: WalletChain.AVALANCHE_MAINNET,
|
|
76
76
|
curve: 'SECP256K1',
|
|
77
77
|
requiresRpcUrl: false,
|
|
78
|
-
|
|
78
|
+
tatumNetwork: 'avax-mainnet'
|
|
79
79
|
},
|
|
80
80
|
[WalletChain.BASE_MAINNET]: {
|
|
81
81
|
chainId: WalletChain.BASE_MAINNET,
|
|
82
82
|
curve: 'SECP256K1',
|
|
83
83
|
requiresRpcUrl: false,
|
|
84
|
-
|
|
84
|
+
tatumNetwork: 'base-mainnet'
|
|
85
85
|
},
|
|
86
86
|
[WalletChain.OPTIMISM_MAINNET]: {
|
|
87
87
|
chainId: WalletChain.OPTIMISM_MAINNET,
|
|
88
88
|
curve: 'SECP256K1',
|
|
89
89
|
requiresRpcUrl: false,
|
|
90
|
-
|
|
90
|
+
tatumNetwork: 'optimism-mainnet'
|
|
91
91
|
},
|
|
92
92
|
[WalletChain.POLYGON_MAINNET]: {
|
|
93
93
|
chainId: WalletChain.POLYGON_MAINNET,
|
|
94
94
|
curve: 'SECP256K1',
|
|
95
95
|
requiresRpcUrl: false,
|
|
96
|
-
|
|
96
|
+
tatumNetwork: 'polygon-mainnet'
|
|
97
97
|
},
|
|
98
98
|
[WalletChain.CELO_MAINNET]: {
|
|
99
99
|
chainId: WalletChain.CELO_MAINNET,
|
|
100
100
|
curve: 'SECP256K1',
|
|
101
101
|
requiresRpcUrl: true,
|
|
102
|
-
|
|
102
|
+
tatumNetwork: 'celo-mainnet'
|
|
103
103
|
}
|
|
104
104
|
};
|
|
105
105
|
/** Resolve the configuration for a supported chain. */
|
package/dist/chains.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chains.js","sourceRoot":"","sources":["../src/chains.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,CAAN,IAAY,WAcX;AAdD,WAAY,WAAW;IACrB,2CAA4B,CAAA;IAC5B,4CAA6B,CAAA;IAC7B,mDAAoC,CAAA;IACpC,yEAA0D,CAAA;IAC1D,iDAAkC,CAAA;IAClC,4CAA6B,CAAA;IAC7B,iFAAkE,CAAA;IAClE,gDAAiC,CAAA;IACjC,iDAAkC,CAAA;IAClC,2CAA4B,CAAA;IAC5B,6CAA8B,CAAA;IAC9B,6CAA8B,CAAA;IAC9B,4CAA6B,CAAA;AAC/B,CAAC,EAdW,WAAW,KAAX,WAAW,QActB;AAaD,6DAA6D;AAC7D,MAAM,CAAC,MAAM,aAAa,GAA2C;IACnE,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE;QAC3B,OAAO,EAAE,WAAW,CAAC,aAAa;QAClC,KAAK,EAAE,WAAW;QAClB,cAAc,EAAE,KAAK;QACrB,
|
|
1
|
+
{"version":3,"file":"chains.js","sourceRoot":"","sources":["../src/chains.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
-
/** Tatum endpoint
|
|
2
|
-
export declare const
|
|
1
|
+
/** Tatum usage-metering endpoint hit once per wallet generation. */
|
|
2
|
+
export declare const USAGE_WALLET_PATH = "/v4/wallets/usage/wallet";
|
|
3
|
+
/** Tatum usage-metering endpoint hit once per signing operation (sign/rawSign/sendAssets). */
|
|
4
|
+
export declare const USAGE_TRANSACTION_PATH = "/v4/wallets/usage/transaction";
|
|
3
5
|
//# sourceMappingURL=paths.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/constants/paths.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/constants/paths.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,eAAO,MAAM,iBAAiB,6BAA6B,CAAC;AAE5D,8FAA8F;AAC9F,eAAO,MAAM,sBAAsB,kCAAkC,CAAC"}
|
package/dist/constants/paths.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
-
/** Tatum endpoint
|
|
2
|
-
export const
|
|
1
|
+
/** Tatum usage-metering endpoint hit once per wallet generation. */
|
|
2
|
+
export const USAGE_WALLET_PATH = '/v4/wallets/usage/wallet';
|
|
3
|
+
/** Tatum usage-metering endpoint hit once per signing operation (sign/rawSign/sendAssets). */
|
|
4
|
+
export const USAGE_TRANSACTION_PATH = '/v4/wallets/usage/transaction';
|
|
3
5
|
//# sourceMappingURL=paths.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/constants/paths.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/constants/paths.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,MAAM,CAAC,MAAM,iBAAiB,GAAG,0BAA0B,CAAC;AAE5D,8FAA8F;AAC9F,MAAM,CAAC,MAAM,sBAAsB,GAAG,+BAA+B,CAAC"}
|
package/dist/constants/urls.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export declare const PORTAL_ENCLAVE_BASE_URL = "https://mpc-client.portalhq.io";
|
|
|
7
7
|
/**
|
|
8
8
|
* Tatum RPC gateway domain. Per-chain RPC URLs are built as
|
|
9
9
|
* `https://<network>.${TATUM_RPC_GATEWAY_DOMAIN}/<apiKey>` (the `<network>`
|
|
10
|
-
* slug comes from each chain's {@link WalletChainConfig.
|
|
10
|
+
* slug comes from each chain's {@link WalletChainConfig.tatumNetwork}).
|
|
11
11
|
*/
|
|
12
12
|
export declare const TATUM_RPC_GATEWAY_DOMAIN = "gateway.tatum.io";
|
|
13
13
|
//# sourceMappingURL=urls.d.ts.map
|
package/dist/constants/urls.js
CHANGED
|
@@ -7,7 +7,7 @@ export const PORTAL_ENCLAVE_BASE_URL = 'https://mpc-client.portalhq.io';
|
|
|
7
7
|
/**
|
|
8
8
|
* Tatum RPC gateway domain. Per-chain RPC URLs are built as
|
|
9
9
|
* `https://<network>.${TATUM_RPC_GATEWAY_DOMAIN}/<apiKey>` (the `<network>`
|
|
10
|
-
* slug comes from each chain's {@link WalletChainConfig.
|
|
10
|
+
* slug comes from each chain's {@link WalletChainConfig.tatumNetwork}).
|
|
11
11
|
*/
|
|
12
12
|
export const TATUM_RPC_GATEWAY_DOMAIN = 'gateway.tatum.io';
|
|
13
13
|
//# sourceMappingURL=urls.js.map
|
|
@@ -1,61 +1,69 @@
|
|
|
1
1
|
import type { WalletChain } from '../chains.js';
|
|
2
|
-
import type {
|
|
3
|
-
import type { RequestOptions
|
|
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: "/
|
|
9
|
+
readonly path: "/v4/wallets/clients";
|
|
9
10
|
};
|
|
10
11
|
readonly listClients: {
|
|
11
12
|
readonly method: "GET";
|
|
12
|
-
readonly path: "/
|
|
13
|
+
readonly path: "/v4/wallets/clients";
|
|
13
14
|
};
|
|
14
15
|
readonly getClient: {
|
|
15
16
|
readonly method: "GET";
|
|
16
|
-
readonly path: "/
|
|
17
|
+
readonly path: "/v4/wallets/clients/{clientId}";
|
|
17
18
|
};
|
|
18
19
|
readonly createClientSession: {
|
|
19
20
|
readonly method: "POST";
|
|
20
|
-
readonly path: "/
|
|
21
|
+
readonly path: "/v4/wallets/clients/{clientId}/sessions";
|
|
21
22
|
};
|
|
22
23
|
readonly buildTransaction: {
|
|
23
24
|
readonly method: "POST";
|
|
24
|
-
readonly path: "/
|
|
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: "/
|
|
29
|
+
readonly path: "/v4/wallets/clients/{clientId}/enable-eject";
|
|
29
30
|
};
|
|
30
31
|
readonly getEjectableBackupShares: {
|
|
31
32
|
readonly method: "GET";
|
|
32
|
-
readonly path: "/
|
|
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
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
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
|
|
46
|
-
|
|
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
|
|
55
|
-
*
|
|
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
|
|
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":"
|
|
1
|
+
{"version":3,"file":"custodian.d.ts","sourceRoot":"","sources":["../../src/portal/custodian.ts"],"names":[],"mappings":"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"}
|
package/dist/portal/custodian.js
CHANGED
|
@@ -1,53 +1,55 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { getWalletChainConfig } from '../chains.js';
|
|
2
2
|
import { buildRequestOptions } from '../operation.js';
|
|
3
|
-
|
|
3
|
+
/** Custodian operations, proxied by Tatum under `/v4/wallets` (Tatum injects the Portal token). */
|
|
4
4
|
export const custodianOperations = {
|
|
5
|
-
createClient: { method: 'POST', path: '/
|
|
6
|
-
listClients: { method: 'GET', path: '/
|
|
7
|
-
getClient: { method: 'GET', path: '/
|
|
8
|
-
createClientSession: { method: 'POST', path: '/
|
|
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: '/
|
|
11
|
+
path: '/v4/wallets/clients/{clientId}/chains/{chain}/assets/send/build-transaction'
|
|
12
12
|
},
|
|
13
|
-
enableEject: { method: 'PATCH', path: '/
|
|
13
|
+
enableEject: { method: 'PATCH', path: '/v4/wallets/clients/{clientId}/enable-eject' },
|
|
14
14
|
getEjectableBackupShares: {
|
|
15
15
|
method: 'GET',
|
|
16
|
-
path: '/
|
|
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
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
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
|
-
|
|
28
|
-
|
|
29
|
-
|
|
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
|
-
|
|
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
|
|
45
|
-
*
|
|
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
|
|
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',
|
|
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,
|
|
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;
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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;
|
|
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"}
|
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.
|
|
29
|
+
this.custodian = new CustodianApi(this.api);
|
|
30
30
|
}
|
|
31
31
|
/**
|
|
32
32
|
* Create a client-scoped API for a single Portal client.
|
package/dist/sdk.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk.js","sourceRoot":"","sources":["../src/sdk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAI1D;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,eAAe;IAOG;IAN7B,wGAAwG;IAC/F,GAAG,CAAmB;IAC/B,kGAAkG;IACzF,SAAS,CAAe;IAChB,cAAc,CAAsB;IAErD,YAA6B,MAAwB;QAAxB,WAAM,GAAN,MAAM,CAAkB;QACnD,IAAI,CAAC,GAAG,GAAG,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,CAAC,cAAc,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAChE,IAAI,CAAC,SAAS,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"sdk.js","sourceRoot":"","sources":["../src/sdk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAI1D;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,eAAe;IAOG;IAN7B,wGAAwG;IAC/F,GAAG,CAAmB;IAC/B,kGAAkG;IACzF,SAAS,CAAe;IAChB,cAAc,CAAsB;IAErD,YAA6B,MAAwB;QAAxB,WAAM,GAAN,MAAM,CAAkB;QACnD,IAAI,CAAC,GAAG,GAAG,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,CAAC,cAAc,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAChE,IAAI,CAAC,SAAS,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9C,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,MAAwB;QACjC,OAAO,IAAI,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACrE,CAAC;CACF"}
|
package/dist/tatum/provider.d.ts
CHANGED
|
@@ -3,10 +3,19 @@ import type { WalletsSDKConfig } from '../types.js';
|
|
|
3
3
|
export declare class PortalTatumProvider {
|
|
4
4
|
private readonly tatumClient;
|
|
5
5
|
private readonly config;
|
|
6
|
-
private custodianTokenPromise;
|
|
7
6
|
constructor(tatumClient: WalletsApiClient, config: WalletsSDKConfig);
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
/**
|
|
8
|
+
* Report a wallet generation to Tatum's usage meter. Best-effort: authenticated
|
|
9
|
+
* with the client's Portal token (bearer) on top of the SDK's `x-api-key`, and
|
|
10
|
+
* any failure is swallowed so metering never breaks the underlying operation.
|
|
11
|
+
*/
|
|
12
|
+
trackWalletCreation(clientToken: string): Promise<void>;
|
|
13
|
+
/**
|
|
14
|
+
* Report a signing operation (sign/rawSign/sendAssets) to Tatum's usage meter.
|
|
15
|
+
* Best-effort — see {@link trackWalletCreation}.
|
|
16
|
+
*/
|
|
17
|
+
trackTransaction(clientToken: string): Promise<void>;
|
|
18
|
+
private meterUsage;
|
|
10
19
|
/**
|
|
11
20
|
* Resolve the Tatum RPC gateway URL for a supported chain, in the form
|
|
12
21
|
* `https://<network>.gateway.tatum.io/<apiKey>`. `chain` is the Portal
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/tatum/provider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/tatum/provider.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,qBAAa,mBAAmB;IAE5B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,WAAW,EAAE,gBAAgB,EAC7B,MAAM,EAAE,gBAAgB;IAG3C;;;;OAIG;IACH,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvD;;;OAGG;IACH,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAItC,UAAU;IAQxB;;;;OAIG;IACG,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAShD"}
|
package/dist/tatum/provider.js
CHANGED
|
@@ -1,29 +1,34 @@
|
|
|
1
1
|
import { WALLET_CHAINS } from '../chains.js';
|
|
2
|
-
import {
|
|
2
|
+
import { TATUM_RPC_GATEWAY_DOMAIN, USAGE_TRANSACTION_PATH, USAGE_WALLET_PATH } from '../constants/index.js';
|
|
3
3
|
export class PortalTatumProvider {
|
|
4
4
|
tatumClient;
|
|
5
5
|
config;
|
|
6
|
-
custodianTokenPromise;
|
|
7
6
|
constructor(tatumClient, config) {
|
|
8
7
|
this.tatumClient = tatumClient;
|
|
9
8
|
this.config = config;
|
|
10
9
|
}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
10
|
+
/**
|
|
11
|
+
* Report a wallet generation to Tatum's usage meter. Best-effort: authenticated
|
|
12
|
+
* with the client's Portal token (bearer) on top of the SDK's `x-api-key`, and
|
|
13
|
+
* any failure is swallowed so metering never breaks the underlying operation.
|
|
14
|
+
*/
|
|
15
|
+
trackWalletCreation(clientToken) {
|
|
16
|
+
return this.meterUsage(USAGE_WALLET_PATH, clientToken);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Report a signing operation (sign/rawSign/sendAssets) to Tatum's usage meter.
|
|
20
|
+
* Best-effort — see {@link trackWalletCreation}.
|
|
21
|
+
*/
|
|
22
|
+
trackTransaction(clientToken) {
|
|
23
|
+
return this.meterUsage(USAGE_TRANSACTION_PATH, clientToken);
|
|
19
24
|
}
|
|
20
|
-
async
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
+
async meterUsage(path, clientToken) {
|
|
26
|
+
try {
|
|
27
|
+
await this.tatumClient.post(path, {}, { headers: { authorization: `Bearer ${clientToken}` } });
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
// Best-effort metering: a metering failure must never surface to the caller.
|
|
25
31
|
}
|
|
26
|
-
return token;
|
|
27
32
|
}
|
|
28
33
|
/**
|
|
29
34
|
* Resolve the Tatum RPC gateway URL for a supported chain, in the form
|
|
@@ -31,7 +36,7 @@ export class PortalTatumProvider {
|
|
|
31
36
|
* CAIP-2 id (the {@link WalletChain} value). Throws for unsupported chains.
|
|
32
37
|
*/
|
|
33
38
|
async getRpcUrl(chain) {
|
|
34
|
-
const network = WALLET_CHAINS[chain]?.
|
|
39
|
+
const network = WALLET_CHAINS[chain]?.tatumNetwork;
|
|
35
40
|
if (!network) {
|
|
36
41
|
throw new Error(`No Tatum RPC gateway configured for chain "${chain}"`);
|
|
37
42
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/tatum/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/tatum/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,iBAAiB,EAClB,MAAM,uBAAuB,CAAC;AAK/B,MAAM,OAAO,mBAAmB;IAEX;IACA;IAFnB,YACmB,WAA6B,EAC7B,MAAwB;QADxB,gBAAW,GAAX,WAAW,CAAkB;QAC7B,WAAM,GAAN,MAAM,CAAkB;IACxC,CAAC;IAEJ;;;;OAIG;IACH,mBAAmB,CAAC,WAAmB;QACrC,OAAO,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;IACzD,CAAC;IAED;;;OAGG;IACH,gBAAgB,CAAC,WAAmB;QAClC,OAAO,IAAI,CAAC,UAAU,CAAC,sBAAsB,EAAE,WAAW,CAAC,CAAC;IAC9D,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,IAAY,EAAE,WAAmB;QACxD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;QACjG,CAAC;QAAC,MAAM,CAAC;YACP,6EAA6E;QAC/E,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,SAAS,CAAC,KAAa;QAC3B,MAAM,OAAO,GAAG,aAAa,CAAC,KAAoB,CAAC,EAAE,YAAY,CAAC;QAElE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,8CAA8C,KAAK,GAAG,CAAC,CAAC;QAC1E,CAAC;QAED,OAAO,WAAW,OAAO,IAAI,wBAAwB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IAChF,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tatumio/wallet-sdk",
|
|
3
|
-
"version": "0.0
|
|
3
|
+
"version": "0.1.0",
|
|
4
4
|
"description": "TypeScript SDK for Tatum-hosted MPC wallets — wallet generation, signing, sending, backup/recovery, and custodian/client management.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Tatum",
|