@getpara/core-sdk 1.8.0 → 1.10.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.
@@ -408,6 +408,9 @@ const _ParaCore = class _ParaCore {
408
408
  get isMultiWallet() {
409
409
  return this.currentWalletIdsArray.length > 1;
410
410
  }
411
+ get isNoWalletConfig() {
412
+ return !!__privateGet(this, _supportedWalletTypes) && __privateGet(this, _supportedWalletTypes).length === 0;
413
+ }
411
414
  get supportedWalletTypes() {
412
415
  var _a;
413
416
  return (_a = __privateGet(this, _supportedWalletTypes)) != null ? _a : [];
@@ -520,7 +523,7 @@ const _ParaCore = class _ParaCore {
520
523
  * @returns the formatted address
521
524
  */
522
525
  getDisplayAddress(walletId, options = {}) {
523
- var _a;
526
+ var _a, _b;
524
527
  if (this.externalWallets[walletId]) {
525
528
  const wallet2 = this.externalWallets[walletId];
526
529
  return options.truncate ? (0, import_utils2.truncateAddress)(wallet2.address, wallet2.type, { prefix: this.cosmosPrefix }) : wallet2.address;
@@ -530,15 +533,18 @@ const _ParaCore = class _ParaCore {
530
533
  return void 0;
531
534
  }
532
535
  let str;
536
+ let prefix;
533
537
  switch (wallet.type) {
534
538
  case import_user_management_client.WalletType.COSMOS:
535
- str = (0, import_utils2.getCosmosAddress)(wallet.publicKey, (_a = this.cosmosPrefix) != null ? _a : "cosmos");
539
+ prefix = (_b = (_a = options.cosmosPrefix) != null ? _a : this.cosmosPrefix) != null ? _b : "cosmos";
540
+ str = (0, import_utils2.getCosmosAddress)(wallet.publicKey, prefix);
536
541
  break;
537
542
  default:
543
+ prefix = this.cosmosPrefix;
538
544
  str = wallet.address;
539
545
  break;
540
546
  }
541
- return options.truncate ? (0, import_utils2.truncateAddress)(str, wallet.type, { prefix: this.cosmosPrefix }) : str;
547
+ return options.truncate ? (0, import_utils2.truncateAddress)(str, wallet.type, { prefix }) : str;
542
548
  }
543
549
  /**
544
550
  * Returns a unique hash for a wallet suitable for use as an identicon seed.
@@ -1525,7 +1531,7 @@ const _ParaCore = class _ParaCore {
1525
1531
  return true;
1526
1532
  }
1527
1533
  const isSessionActive = yield this.isSessionActive();
1528
- return isSessionActive && this.currentWalletIdsArray.length > 0 && this.currentWalletIdsArray.reduce((acc, [id]) => acc && !!this.wallets[id], true);
1534
+ return isSessionActive && (this.isNoWalletConfig || this.currentWalletIdsArray.length > 0 && this.currentWalletIdsArray.reduce((acc, [id]) => acc && !!this.wallets[id], true));
1529
1535
  });
1530
1536
  }
1531
1537
  supportedAuthMethods(auth) {
@@ -1778,6 +1784,13 @@ const _ParaCore = class _ParaCore {
1778
1784
  */
1779
1785
  getOAuthURL(_0) {
1780
1786
  return __async(this, arguments, function* ({ method, deeplinkUrl }) {
1787
+ if (deeplinkUrl) {
1788
+ try {
1789
+ new URL(deeplinkUrl);
1790
+ } catch (e) {
1791
+ throw new Error("Invalid deeplink URL");
1792
+ }
1793
+ }
1781
1794
  yield this.logout();
1782
1795
  const res = yield this.touchSession(true);
1783
1796
  return (0, import_utils2.constructUrl)({
@@ -36,7 +36,7 @@ __export(constants_exports, {
36
36
  SHORT_POLLING_INTERVAL_MS: () => SHORT_POLLING_INTERVAL_MS
37
37
  });
38
38
  module.exports = __toCommonJS(constants_exports);
39
- const PARA_CORE_VERSION = '1.8.0';
39
+ const PARA_CORE_VERSION = '1.10.0';
40
40
  const PREFIX = "@CAPSULE/";
41
41
  const LOCAL_STORAGE_EMAIL = `${PREFIX}e-mail`;
42
42
  const LOCAL_STORAGE_PHONE = `${PREFIX}phone`;
package/dist/cjs/index.js CHANGED
@@ -61,6 +61,7 @@ __export(src_exports, {
61
61
  getAsymmetricKeyPair: () => import_utils2.getAsymmetricKeyPair,
62
62
  getBaseUrl: () => import_userManagementClient.getBaseUrl,
63
63
  getDerivedPrivateKeyAndDecrypt: () => import_utils2.getDerivedPrivateKeyAndDecrypt,
64
+ getNetworkPrefix: () => import_onRamps.getNetworkPrefix,
64
65
  getOnRampAssets: () => import_onRamps.getOnRampAssets,
65
66
  getOnRampNetworks: () => import_onRamps.getOnRampNetworks,
66
67
  getPortalBaseURL: () => import_url.getPortalBaseURL,
@@ -135,6 +136,7 @@ var src_default = import_ParaCore.ParaCore;
135
136
  getAsymmetricKeyPair,
136
137
  getBaseUrl,
137
138
  getDerivedPrivateKeyAndDecrypt,
139
+ getNetworkPrefix,
138
140
  getOnRampAssets,
139
141
  getOnRampNetworks,
140
142
  getPortalBaseURL,
@@ -17,11 +17,14 @@ var __copyProps = (to, from, except, desc) => {
17
17
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
18
  var onRamps_exports = {};
19
19
  __export(onRamps_exports, {
20
+ NETWORK_PREFIXES: () => NETWORK_PREFIXES,
21
+ getNetworkPrefix: () => getNetworkPrefix,
20
22
  getOnRampAssets: () => getOnRampAssets,
21
23
  getOnRampNetworks: () => getOnRampNetworks,
22
24
  toAssetInfoArray: () => toAssetInfoArray
23
25
  });
24
26
  module.exports = __toCommonJS(onRamps_exports);
27
+ var import_user_management_client = require("@getpara/user-management-client");
25
28
  function toAssetInfoArray(data) {
26
29
  const result = [];
27
30
  Object.keys(data).forEach((walletType) => {
@@ -36,28 +39,53 @@ function toAssetInfoArray(data) {
36
39
  });
37
40
  return result;
38
41
  }
39
- function getOnRampNetworks(data, { walletType, allowed } = {}) {
42
+ function getOnRampNetworks(data, {
43
+ walletType,
44
+ allowed,
45
+ assets,
46
+ providers,
47
+ action
48
+ } = {}) {
40
49
  return [
41
50
  ...new Set(
42
- toAssetInfoArray(data).filter(([type, network]) => (!walletType || type === walletType) && (!allowed || allowed.includes(network))).map(([_, network]) => network)
51
+ toAssetInfoArray(data).filter(
52
+ ([type, network, asset, providerInfo]) => (!walletType || type === walletType) && (!allowed || allowed.includes(network)) && (!assets || assets.includes(asset)) && (!providers || providers.some((provider) => {
53
+ var _a;
54
+ return ((_a = providerInfo[provider]) == null ? void 0 : _a[1]) && (!action || providerInfo[provider][1][action]);
55
+ }))
56
+ ).map(([_, network]) => network)
43
57
  )
44
58
  ];
45
59
  }
46
60
  function getOnRampAssets(data, {
47
61
  walletType,
48
62
  network,
49
- allowed
63
+ allowed,
64
+ providers,
65
+ action
50
66
  } = {}) {
51
67
  return [
52
68
  ...new Set(
53
69
  toAssetInfoArray(data).filter(
54
- ([t, n, a]) => (!walletType || t === walletType) && (!network || n === network) && (!Array.isArray(allowed) || allowed.includes(a))
70
+ ([t, n, a, p]) => (!walletType || t === walletType) && (!network || n === network) && (!Array.isArray(allowed) || allowed.includes(a)) && (!providers || providers.some((provider) => {
71
+ var _a;
72
+ return ((_a = p[provider]) == null ? void 0 : _a[1]) && (!action || p[provider][1][action]);
73
+ }))
55
74
  ).map(([, , asset]) => asset)
56
75
  )
57
76
  ];
58
77
  }
78
+ const NETWORK_PREFIXES = {
79
+ [import_user_management_client.Network.COSMOS]: "cosmos",
80
+ [import_user_management_client.Network.NOBLE]: "noble"
81
+ };
82
+ function getNetworkPrefix(network) {
83
+ return NETWORK_PREFIXES[network];
84
+ }
59
85
  // Annotate the CommonJS export names for ESM import in node:
60
86
  0 && (module.exports = {
87
+ NETWORK_PREFIXES,
88
+ getNetworkPrefix,
61
89
  getOnRampAssets,
62
90
  getOnRampNetworks,
63
91
  toAssetInfoArray
@@ -358,6 +358,9 @@ const _ParaCore = class _ParaCore {
358
358
  get isMultiWallet() {
359
359
  return this.currentWalletIdsArray.length > 1;
360
360
  }
361
+ get isNoWalletConfig() {
362
+ return !!__privateGet(this, _supportedWalletTypes) && __privateGet(this, _supportedWalletTypes).length === 0;
363
+ }
361
364
  get supportedWalletTypes() {
362
365
  var _a;
363
366
  return (_a = __privateGet(this, _supportedWalletTypes)) != null ? _a : [];
@@ -470,7 +473,7 @@ const _ParaCore = class _ParaCore {
470
473
  * @returns the formatted address
471
474
  */
472
475
  getDisplayAddress(walletId, options = {}) {
473
- var _a;
476
+ var _a, _b;
474
477
  if (this.externalWallets[walletId]) {
475
478
  const wallet2 = this.externalWallets[walletId];
476
479
  return options.truncate ? truncateAddress(wallet2.address, wallet2.type, { prefix: this.cosmosPrefix }) : wallet2.address;
@@ -480,15 +483,18 @@ const _ParaCore = class _ParaCore {
480
483
  return void 0;
481
484
  }
482
485
  let str;
486
+ let prefix;
483
487
  switch (wallet.type) {
484
488
  case WalletType.COSMOS:
485
- str = getCosmosAddress(wallet.publicKey, (_a = this.cosmosPrefix) != null ? _a : "cosmos");
489
+ prefix = (_b = (_a = options.cosmosPrefix) != null ? _a : this.cosmosPrefix) != null ? _b : "cosmos";
490
+ str = getCosmosAddress(wallet.publicKey, prefix);
486
491
  break;
487
492
  default:
493
+ prefix = this.cosmosPrefix;
488
494
  str = wallet.address;
489
495
  break;
490
496
  }
491
- return options.truncate ? truncateAddress(str, wallet.type, { prefix: this.cosmosPrefix }) : str;
497
+ return options.truncate ? truncateAddress(str, wallet.type, { prefix }) : str;
492
498
  }
493
499
  /**
494
500
  * Returns a unique hash for a wallet suitable for use as an identicon seed.
@@ -1475,7 +1481,7 @@ const _ParaCore = class _ParaCore {
1475
1481
  return true;
1476
1482
  }
1477
1483
  const isSessionActive = yield this.isSessionActive();
1478
- return isSessionActive && this.currentWalletIdsArray.length > 0 && this.currentWalletIdsArray.reduce((acc, [id]) => acc && !!this.wallets[id], true);
1484
+ return isSessionActive && (this.isNoWalletConfig || this.currentWalletIdsArray.length > 0 && this.currentWalletIdsArray.reduce((acc, [id]) => acc && !!this.wallets[id], true));
1479
1485
  });
1480
1486
  }
1481
1487
  supportedAuthMethods(auth) {
@@ -1728,6 +1734,13 @@ const _ParaCore = class _ParaCore {
1728
1734
  */
1729
1735
  getOAuthURL(_0) {
1730
1736
  return __async(this, arguments, function* ({ method, deeplinkUrl }) {
1737
+ if (deeplinkUrl) {
1738
+ try {
1739
+ new URL(deeplinkUrl);
1740
+ } catch (e) {
1741
+ throw new Error("Invalid deeplink URL");
1742
+ }
1743
+ }
1731
1744
  yield this.logout();
1732
1745
  const res = yield this.touchSession(true);
1733
1746
  return constructUrl({
@@ -1,5 +1,5 @@
1
1
  import "./chunk-UICEQADR.js";
2
- const PARA_CORE_VERSION = '1.8.0';
2
+ const PARA_CORE_VERSION = '1.10.0';
3
3
  const PREFIX = "@CAPSULE/";
4
4
  const LOCAL_STORAGE_EMAIL = `${PREFIX}e-mail`;
5
5
  const LOCAL_STORAGE_PHONE = `${PREFIX}phone`;
package/dist/esm/index.js CHANGED
@@ -51,7 +51,7 @@ export * from "./errors.js";
51
51
  export * from "./utils/formatting.js";
52
52
  export * from "./utils/polling.js";
53
53
  import { isWalletSupported } from "./utils/wallet.js";
54
- import { getOnRampAssets, getOnRampNetworks, toAssetInfoArray } from "./utils/onRamps.js";
54
+ import { getNetworkPrefix, getOnRampAssets, getOnRampNetworks, toAssetInfoArray } from "./utils/onRamps.js";
55
55
  import { getPortalBaseURL } from "./utils/url.js";
56
56
  import { retrieve } from "./transmission/transmissionUtils.js";
57
57
  const paraVersion = ParaCore.version;
@@ -90,6 +90,7 @@ export {
90
90
  getAsymmetricKeyPair,
91
91
  getBaseUrl,
92
92
  getDerivedPrivateKeyAndDecrypt,
93
+ getNetworkPrefix,
93
94
  getOnRampAssets,
94
95
  getOnRampNetworks,
95
96
  getPortalBaseURL,
@@ -1,4 +1,5 @@
1
1
  import "../chunk-UICEQADR.js";
2
+ import { Network } from "@getpara/user-management-client";
2
3
  function toAssetInfoArray(data) {
3
4
  const result = [];
4
5
  Object.keys(data).forEach((walletType) => {
@@ -13,27 +14,52 @@ function toAssetInfoArray(data) {
13
14
  });
14
15
  return result;
15
16
  }
16
- function getOnRampNetworks(data, { walletType, allowed } = {}) {
17
+ function getOnRampNetworks(data, {
18
+ walletType,
19
+ allowed,
20
+ assets,
21
+ providers,
22
+ action
23
+ } = {}) {
17
24
  return [
18
25
  ...new Set(
19
- toAssetInfoArray(data).filter(([type, network]) => (!walletType || type === walletType) && (!allowed || allowed.includes(network))).map(([_, network]) => network)
26
+ toAssetInfoArray(data).filter(
27
+ ([type, network, asset, providerInfo]) => (!walletType || type === walletType) && (!allowed || allowed.includes(network)) && (!assets || assets.includes(asset)) && (!providers || providers.some((provider) => {
28
+ var _a;
29
+ return ((_a = providerInfo[provider]) == null ? void 0 : _a[1]) && (!action || providerInfo[provider][1][action]);
30
+ }))
31
+ ).map(([_, network]) => network)
20
32
  )
21
33
  ];
22
34
  }
23
35
  function getOnRampAssets(data, {
24
36
  walletType,
25
37
  network,
26
- allowed
38
+ allowed,
39
+ providers,
40
+ action
27
41
  } = {}) {
28
42
  return [
29
43
  ...new Set(
30
44
  toAssetInfoArray(data).filter(
31
- ([t, n, a]) => (!walletType || t === walletType) && (!network || n === network) && (!Array.isArray(allowed) || allowed.includes(a))
45
+ ([t, n, a, p]) => (!walletType || t === walletType) && (!network || n === network) && (!Array.isArray(allowed) || allowed.includes(a)) && (!providers || providers.some((provider) => {
46
+ var _a;
47
+ return ((_a = p[provider]) == null ? void 0 : _a[1]) && (!action || p[provider][1][action]);
48
+ }))
32
49
  ).map(([, , asset]) => asset)
33
50
  )
34
51
  ];
35
52
  }
53
+ const NETWORK_PREFIXES = {
54
+ [Network.COSMOS]: "cosmos",
55
+ [Network.NOBLE]: "noble"
56
+ };
57
+ function getNetworkPrefix(network) {
58
+ return NETWORK_PREFIXES[network];
59
+ }
36
60
  export {
61
+ NETWORK_PREFIXES,
62
+ getNetworkPrefix,
37
63
  getOnRampAssets,
38
64
  getOnRampNetworks,
39
65
  toAssetInfoArray
@@ -113,6 +113,7 @@ export declare abstract class ParaCore {
113
113
  */
114
114
  portalTheme?: Theme;
115
115
  private disableProviderModal?;
116
+ get isNoWalletConfig(): boolean;
116
117
  get supportedWalletTypes(): SupportedWalletTypes;
117
118
  get isWalletTypeEnabled(): Partial<Record<WalletType, boolean>>;
118
119
  private platformUtils;
@@ -149,6 +150,7 @@ export declare abstract class ParaCore {
149
150
  getDisplayAddress(walletId: string, options?: {
150
151
  truncate?: boolean;
151
152
  addressType?: WalletTypeProp | undefined;
153
+ cosmosPrefix?: string;
152
154
  } | undefined): string;
153
155
  /**
154
156
  * Returns a unique hash for a wallet suitable for use as an identicon seed.
@@ -17,7 +17,7 @@ export * from './errors.js';
17
17
  export * from './utils/formatting.js';
18
18
  export * from './utils/polling.js';
19
19
  export { isWalletSupported } from './utils/wallet.js';
20
- export { getOnRampAssets, getOnRampNetworks, toAssetInfoArray } from './utils/onRamps.js';
20
+ export { getNetworkPrefix, getOnRampAssets, getOnRampNetworks, toAssetInfoArray } from './utils/onRamps.js';
21
21
  export { getPortalBaseURL } from './utils/url.js';
22
22
  export { retrieve as transmissionUtilsRetrieve } from './transmission/transmissionUtils.js';
23
23
  export declare const paraVersion: string;
@@ -1,12 +1,19 @@
1
- import { Network, OnRampAsset, WalletType } from '@getpara/user-management-client';
1
+ import { Network, OnRampAsset, OnRampProvider, OnRampPurchaseType, WalletType } from '@getpara/user-management-client';
2
2
  import { OnRampAssetInfoRow, OnRampAssetInfo } from '../types/index.js';
3
3
  export declare function toAssetInfoArray(data: OnRampAssetInfo): OnRampAssetInfoRow[];
4
- export declare function getOnRampNetworks(data: OnRampAssetInfo, { walletType, allowed }?: {
4
+ export declare function getOnRampNetworks(data: OnRampAssetInfo, { walletType, allowed, assets, providers, action, }?: {
5
5
  walletType?: WalletType;
6
6
  allowed?: Network[];
7
+ assets?: OnRampAsset[];
8
+ providers?: OnRampProvider[];
9
+ action?: OnRampPurchaseType;
7
10
  }): Network[];
8
- export declare function getOnRampAssets(data: OnRampAssetInfo, { walletType, network, allowed, }?: {
11
+ export declare function getOnRampAssets(data: OnRampAssetInfo, { walletType, network, allowed, providers, action, }?: {
9
12
  walletType?: WalletType;
10
13
  network?: Network;
11
14
  allowed?: OnRampAsset[];
15
+ providers?: OnRampProvider[];
16
+ action?: OnRampPurchaseType;
12
17
  }): OnRampAsset[];
18
+ export declare const NETWORK_PREFIXES: Partial<Record<Network, string>>;
19
+ export declare function getNetworkPrefix(network: Network): string | undefined;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@getpara/core-sdk",
3
- "version": "1.8.0",
3
+ "version": "1.10.0",
4
4
  "main": "dist/cjs/index.js",
5
5
  "module": "dist/esm/index.js",
6
6
  "types": "dist/types/index.d.ts",
@@ -10,7 +10,7 @@
10
10
  "@celo/utils": "^8.0.2",
11
11
  "@cosmjs/encoding": "^0.32.4",
12
12
  "@ethereumjs/util": "^9.1.0",
13
- "@getpara/user-management-client": "1.8.0",
13
+ "@getpara/user-management-client": "1.10.0",
14
14
  "@noble/hashes": "^1.5.0",
15
15
  "base64url": "^3.0.1",
16
16
  "libphonenumber-js": "1.11.2",
@@ -40,5 +40,5 @@
40
40
  "require": "./dist/cjs/index.js"
41
41
  }
42
42
  },
43
- "gitHead": "ef96e79558695ccbe148d25a8e3611c4596d1954"
43
+ "gitHead": "617cf0aa1307a96ec5e91d39e306e8a0b3b86b82"
44
44
  }