@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
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,cAAc,EAAE,MAAM,CAAC,CAAC;IACjE,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"}
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"}
@@ -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
- getCustodianToken(): Promise<string>;
9
- private fetchCustodianToken;
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":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAOpD,qBAAa,mBAAmB;IAI5B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJzB,OAAO,CAAC,qBAAqB,CAA8B;gBAGxC,WAAW,EAAE,gBAAgB,EAC7B,MAAM,EAAE,gBAAgB;IAG3C,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC;YAWtB,mBAAmB;IAajC;;;;OAIG;IACG,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAShD"}
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"}
@@ -1,29 +1,34 @@
1
1
  import { WALLET_CHAINS } from '../chains.js';
2
- import { CUSTODIAN_API_KEY_PATH, TATUM_RPC_GATEWAY_DOMAIN } from '../constants/index.js';
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
- getCustodianToken() {
12
- // The custodian key is stable for the SDK's lifetime, so resolve it once.
13
- // Reset on failure so a transient error doesn't permanently poison the SDK.
14
- this.custodianTokenPromise ??= this.fetchCustodianToken().catch((error) => {
15
- this.custodianTokenPromise = undefined;
16
- throw error;
17
- });
18
- return this.custodianTokenPromise;
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 fetchCustodianToken() {
21
- const response = await this.tatumClient.get(CUSTODIAN_API_KEY_PATH);
22
- const token = response?.portalCustodianApiKey;
23
- if (!token) {
24
- throw new Error(`Tatum API key is not authorized for Portal: ${CUSTODIAN_API_KEY_PATH} returned no portalCustodianApiKey`);
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]?.tatumRpcNetwork;
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,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAUzF,MAAM,OAAO,mBAAmB;IAIX;IACA;IAJX,qBAAqB,CAA8B;IAE3D,YACmB,WAA6B,EAC7B,MAAwB;QADxB,gBAAW,GAAX,WAAW,CAAkB;QAC7B,WAAM,GAAN,MAAM,CAAkB;IACxC,CAAC;IAEJ,iBAAiB;QACf,0EAA0E;QAC1E,4EAA4E;QAC5E,IAAI,CAAC,qBAAqB,KAAK,IAAI,CAAC,mBAAmB,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YACjF,IAAI,CAAC,qBAAqB,GAAG,SAAS,CAAC;YACvC,MAAM,KAAK,CAAC;QACd,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,qBAAqB,CAAC;IACpC,CAAC;IAEO,KAAK,CAAC,mBAAmB;QAC/B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAA0B,sBAAsB,CAAC,CAAC;QAC7F,MAAM,KAAK,GAAG,QAAQ,EAAE,qBAAqB,CAAC;QAE9C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CACb,+CAA+C,sBAAsB,oCAAoC,CAC1G,CAAC;QACJ,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,SAAS,CAAC,KAAa;QAC3B,MAAM,OAAO,GAAG,aAAa,CAAC,KAAoB,CAAC,EAAE,eAAe,CAAC;QAErE,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"}
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.2",
3
+ "version": "0.2.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",
@@ -57,5 +57,9 @@
57
57
  "@types/node": "^22.15.29",
58
58
  "typescript": "^5.8.3",
59
59
  "vitest": "^3.1.4"
60
+ },
61
+ "dependencies": {
62
+ "@noble/curves": "^1.9.7",
63
+ "@scure/base": "^1.2.6"
60
64
  }
61
65
  }