@metamask-previews/token-search-discovery-controller 3.1.0-preview-94fc9024 → 3.2.0-preview-4f323233

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/CHANGELOG.md CHANGED
@@ -7,9 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [3.2.0]
11
+
10
12
  ### Changed
11
13
 
12
14
  - Bump `@metamask/base-controller` from ^8.0.0 to ^8.0.1 ([#5722](https://github.com/MetaMask/core/pull/5722))
15
+ - Add `swappable` param to token discovery controller and API service ([#5819](https://github.com/MetaMask/core/pull/5819))
13
16
 
14
17
  ## [3.1.0]
15
18
 
@@ -69,7 +72,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
69
72
  - This service is responsible for making search related requests to the Portfolio API
70
73
  - Specifically, it handles the `tokens-search` endpoint which returns a list of tokens based on the provided query parameters
71
74
 
72
- [Unreleased]: https://github.com/MetaMask/core/compare/@metamask/token-search-discovery-controller@3.1.0...HEAD
75
+ [Unreleased]: https://github.com/MetaMask/core/compare/@metamask/token-search-discovery-controller@3.2.0...HEAD
76
+ [3.2.0]: https://github.com/MetaMask/core/compare/@metamask/token-search-discovery-controller@3.1.0...@metamask/token-search-discovery-controller@3.2.0
73
77
  [3.1.0]: https://github.com/MetaMask/core/compare/@metamask/token-search-discovery-controller@3.0.0...@metamask/token-search-discovery-controller@3.1.0
74
78
  [3.0.0]: https://github.com/MetaMask/core/compare/@metamask/token-search-discovery-controller@2.1.0...@metamask/token-search-discovery-controller@3.0.0
75
79
  [2.1.0]: https://github.com/MetaMask/core/compare/@metamask/token-search-discovery-controller@2.0.0...@metamask/token-search-discovery-controller@2.1.0
@@ -10,13 +10,14 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
10
10
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
11
11
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
12
  };
13
- var _TokenDiscoveryApiService_baseUrl;
13
+ var _TokenDiscoveryApiService_instances, _TokenDiscoveryApiService_baseUrl, _TokenDiscoveryApiService_fetch;
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.TokenDiscoveryApiService = void 0;
16
16
  const abstract_token_discovery_api_service_1 = require("./abstract-token-discovery-api-service.cjs");
17
17
  class TokenDiscoveryApiService extends abstract_token_discovery_api_service_1.AbstractTokenDiscoveryApiService {
18
18
  constructor(baseUrl) {
19
19
  super();
20
+ _TokenDiscoveryApiService_instances.add(this);
20
21
  _TokenDiscoveryApiService_baseUrl.set(this, void 0);
21
22
  if (!baseUrl) {
22
23
  throw new Error('Portfolio API URL is not set');
@@ -24,83 +25,39 @@ class TokenDiscoveryApiService extends abstract_token_discovery_api_service_1.Ab
24
25
  __classPrivateFieldSet(this, _TokenDiscoveryApiService_baseUrl, baseUrl, "f");
25
26
  }
26
27
  async getTrendingTokensByChains(trendingTokensParams) {
27
- const url = new URL('/tokens-search/trending', __classPrivateFieldGet(this, _TokenDiscoveryApiService_baseUrl, "f"));
28
- if (trendingTokensParams?.chains &&
29
- trendingTokensParams.chains.length > 0) {
30
- url.searchParams.append('chains', trendingTokensParams.chains.join());
31
- }
32
- if (trendingTokensParams?.limit) {
33
- url.searchParams.append('limit', trendingTokensParams.limit);
34
- }
35
- const response = await fetch(url, {
36
- method: 'GET',
37
- headers: {
38
- 'Content-Type': 'application/json',
39
- },
40
- });
41
- if (!response.ok) {
42
- throw new Error(`Portfolio API request failed with status: ${response.status}`);
43
- }
44
- return response.json();
28
+ return __classPrivateFieldGet(this, _TokenDiscoveryApiService_instances, "m", _TokenDiscoveryApiService_fetch).call(this, 'trending', trendingTokensParams);
45
29
  }
46
30
  async getTopLosersByChains(topLosersParams) {
47
- const url = new URL('/tokens-search/top-losers', __classPrivateFieldGet(this, _TokenDiscoveryApiService_baseUrl, "f"));
48
- if (topLosersParams?.chains && topLosersParams.chains.length > 0) {
49
- url.searchParams.append('chains', topLosersParams.chains.join());
50
- }
51
- if (topLosersParams?.limit) {
52
- url.searchParams.append('limit', topLosersParams.limit);
53
- }
54
- const response = await fetch(url, {
55
- method: 'GET',
56
- headers: {
57
- 'Content-Type': 'application/json',
58
- },
59
- });
60
- if (!response.ok) {
61
- throw new Error(`Portfolio API request failed with status: ${response.status}`);
62
- }
63
- return response.json();
31
+ return __classPrivateFieldGet(this, _TokenDiscoveryApiService_instances, "m", _TokenDiscoveryApiService_fetch).call(this, 'top-losers', topLosersParams);
64
32
  }
65
33
  async getTopGainersByChains(topGainersParams) {
66
- const url = new URL('/tokens-search/top-gainers', __classPrivateFieldGet(this, _TokenDiscoveryApiService_baseUrl, "f"));
67
- if (topGainersParams?.chains && topGainersParams.chains.length > 0) {
68
- url.searchParams.append('chains', topGainersParams.chains.join());
69
- }
70
- if (topGainersParams?.limit) {
71
- url.searchParams.append('limit', topGainersParams.limit);
72
- }
73
- const response = await fetch(url, {
74
- method: 'GET',
75
- headers: {
76
- 'Content-Type': 'application/json',
77
- },
78
- });
79
- if (!response.ok) {
80
- throw new Error(`Portfolio API request failed with status: ${response.status}`);
81
- }
82
- return response.json();
34
+ return __classPrivateFieldGet(this, _TokenDiscoveryApiService_instances, "m", _TokenDiscoveryApiService_fetch).call(this, 'top-gainers', topGainersParams);
83
35
  }
84
36
  async getBlueChipTokensByChains(blueChipParams) {
85
- const url = new URL('/tokens-search/blue-chip', __classPrivateFieldGet(this, _TokenDiscoveryApiService_baseUrl, "f"));
86
- if (blueChipParams?.chains && blueChipParams.chains.length > 0) {
87
- url.searchParams.append('chains', blueChipParams.chains.join());
88
- }
89
- if (blueChipParams?.limit) {
90
- url.searchParams.append('limit', blueChipParams.limit);
91
- }
92
- const response = await fetch(url, {
93
- method: 'GET',
94
- headers: {
95
- 'Content-Type': 'application/json',
96
- },
97
- });
98
- if (!response.ok) {
99
- throw new Error(`Portfolio API request failed with status: ${response.status}`);
100
- }
101
- return response.json();
37
+ return __classPrivateFieldGet(this, _TokenDiscoveryApiService_instances, "m", _TokenDiscoveryApiService_fetch).call(this, 'blue-chip', blueChipParams);
102
38
  }
103
39
  }
104
40
  exports.TokenDiscoveryApiService = TokenDiscoveryApiService;
105
- _TokenDiscoveryApiService_baseUrl = new WeakMap();
41
+ _TokenDiscoveryApiService_baseUrl = new WeakMap(), _TokenDiscoveryApiService_instances = new WeakSet(), _TokenDiscoveryApiService_fetch = async function _TokenDiscoveryApiService_fetch(subPath, params) {
42
+ const url = new URL(`/tokens-search/${subPath}`, __classPrivateFieldGet(this, _TokenDiscoveryApiService_baseUrl, "f"));
43
+ if (params?.chains && params.chains.length > 0) {
44
+ url.searchParams.append('chains', params.chains.join());
45
+ }
46
+ if (params?.limit) {
47
+ url.searchParams.append('limit', params.limit);
48
+ }
49
+ if (params?.swappable) {
50
+ url.searchParams.append('swappable', 'true');
51
+ }
52
+ const response = await fetch(url, {
53
+ method: 'GET',
54
+ headers: {
55
+ 'Content-Type': 'application/json',
56
+ },
57
+ });
58
+ if (!response.ok) {
59
+ throw new Error(`Portfolio API request failed with status: ${response.status}`);
60
+ }
61
+ return response.json();
62
+ };
106
63
  //# sourceMappingURL=token-discovery-api-service.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"token-discovery-api-service.cjs","sourceRoot":"","sources":["../../src/token-discovery-api-service/token-discovery-api-service.ts"],"names":[],"mappings":"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","sourcesContent":["import { AbstractTokenDiscoveryApiService } from './abstract-token-discovery-api-service';\nimport type {\n MoralisTokenResponseItem,\n TopGainersParams,\n TopLosersParams,\n TrendingTokensParams,\n BlueChipParams,\n} from '../types';\n\nexport class TokenDiscoveryApiService extends AbstractTokenDiscoveryApiService {\n readonly #baseUrl: string;\n\n constructor(baseUrl: string) {\n super();\n if (!baseUrl) {\n throw new Error('Portfolio API URL is not set');\n }\n this.#baseUrl = baseUrl;\n }\n\n async getTrendingTokensByChains(\n trendingTokensParams?: TrendingTokensParams,\n ): Promise<MoralisTokenResponseItem[]> {\n const url = new URL('/tokens-search/trending', this.#baseUrl);\n\n if (\n trendingTokensParams?.chains &&\n trendingTokensParams.chains.length > 0\n ) {\n url.searchParams.append('chains', trendingTokensParams.chains.join());\n }\n if (trendingTokensParams?.limit) {\n url.searchParams.append('limit', trendingTokensParams.limit);\n }\n\n const response = await fetch(url, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n\n if (!response.ok) {\n throw new Error(\n `Portfolio API request failed with status: ${response.status}`,\n );\n }\n\n return response.json();\n }\n\n async getTopLosersByChains(\n topLosersParams?: TopLosersParams,\n ): Promise<MoralisTokenResponseItem[]> {\n const url = new URL('/tokens-search/top-losers', this.#baseUrl);\n\n if (topLosersParams?.chains && topLosersParams.chains.length > 0) {\n url.searchParams.append('chains', topLosersParams.chains.join());\n }\n if (topLosersParams?.limit) {\n url.searchParams.append('limit', topLosersParams.limit);\n }\n\n const response = await fetch(url, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n\n if (!response.ok) {\n throw new Error(\n `Portfolio API request failed with status: ${response.status}`,\n );\n }\n\n return response.json();\n }\n\n async getTopGainersByChains(\n topGainersParams?: TopGainersParams,\n ): Promise<MoralisTokenResponseItem[]> {\n const url = new URL('/tokens-search/top-gainers', this.#baseUrl);\n\n if (topGainersParams?.chains && topGainersParams.chains.length > 0) {\n url.searchParams.append('chains', topGainersParams.chains.join());\n }\n if (topGainersParams?.limit) {\n url.searchParams.append('limit', topGainersParams.limit);\n }\n\n const response = await fetch(url, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n\n if (!response.ok) {\n throw new Error(\n `Portfolio API request failed with status: ${response.status}`,\n );\n }\n\n return response.json();\n }\n\n async getBlueChipTokensByChains(\n blueChipParams?: BlueChipParams,\n ): Promise<MoralisTokenResponseItem[]> {\n const url = new URL('/tokens-search/blue-chip', this.#baseUrl);\n\n if (blueChipParams?.chains && blueChipParams.chains.length > 0) {\n url.searchParams.append('chains', blueChipParams.chains.join());\n }\n if (blueChipParams?.limit) {\n url.searchParams.append('limit', blueChipParams.limit);\n }\n\n const response = await fetch(url, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n\n if (!response.ok) {\n throw new Error(\n `Portfolio API request failed with status: ${response.status}`,\n );\n }\n\n return response.json();\n }\n}\n"]}
1
+ {"version":3,"file":"token-discovery-api-service.cjs","sourceRoot":"","sources":["../../src/token-discovery-api-service/token-discovery-api-service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,qGAA0F;AAU1F,MAAa,wBAAyB,SAAQ,uEAAgC;IAG5E,YAAY,OAAe;QACzB,KAAK,EAAE,CAAC;;QAHD,oDAAiB;QAIxB,IAAI,CAAC,OAAO,EAAE;YACZ,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;SACjD;QACD,uBAAA,IAAI,qCAAY,OAAO,MAAA,CAAC;IAC1B,CAAC;IAiCD,KAAK,CAAC,yBAAyB,CAC7B,oBAA2C;QAE3C,OAAO,uBAAA,IAAI,4EAAO,MAAX,IAAI,EAAQ,UAAU,EAAE,oBAAoB,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,oBAAoB,CACxB,eAAiC;QAEjC,OAAO,uBAAA,IAAI,4EAAO,MAAX,IAAI,EAAQ,YAAY,EAAE,eAAe,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,qBAAqB,CACzB,gBAAmC;QAEnC,OAAO,uBAAA,IAAI,4EAAO,MAAX,IAAI,EAAQ,aAAa,EAAE,gBAAgB,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,yBAAyB,CAC7B,cAA+B;QAE/B,OAAO,uBAAA,IAAI,4EAAO,MAAX,IAAI,EAAQ,WAAW,EAAE,cAAc,CAAC,CAAC;IAClD,CAAC;CACF;AAjED,4DAiEC;0IAtDC,KAAK,0CAAQ,OAAe,EAAE,MAAmB;IAC/C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,kBAAkB,OAAO,EAAE,EAAE,uBAAA,IAAI,yCAAS,CAAC,CAAC;IAEhE,IAAI,MAAM,EAAE,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;QAC9C,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;KACzD;IAED,IAAI,MAAM,EAAE,KAAK,EAAE;QACjB,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;KAChD;IAED,IAAI,MAAM,EAAE,SAAS,EAAE;QACrB,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;KAC9C;IAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAChC,MAAM,EAAE,KAAK;QACb,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;SACnC;KACF,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;QAChB,MAAM,IAAI,KAAK,CACb,6CAA6C,QAAQ,CAAC,MAAM,EAAE,CAC/D,CAAC;KACH;IAED,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;AACzB,CAAC","sourcesContent":["import { AbstractTokenDiscoveryApiService } from './abstract-token-discovery-api-service';\nimport type {\n MoralisTokenResponseItem,\n TopGainersParams,\n TopLosersParams,\n TrendingTokensParams,\n BlueChipParams,\n ParamsBase,\n} from '../types';\n\nexport class TokenDiscoveryApiService extends AbstractTokenDiscoveryApiService {\n readonly #baseUrl: string;\n\n constructor(baseUrl: string) {\n super();\n if (!baseUrl) {\n throw new Error('Portfolio API URL is not set');\n }\n this.#baseUrl = baseUrl;\n }\n\n async #fetch(subPath: string, params?: ParamsBase) {\n const url = new URL(`/tokens-search/${subPath}`, this.#baseUrl);\n\n if (params?.chains && params.chains.length > 0) {\n url.searchParams.append('chains', params.chains.join());\n }\n\n if (params?.limit) {\n url.searchParams.append('limit', params.limit);\n }\n\n if (params?.swappable) {\n url.searchParams.append('swappable', 'true');\n }\n\n const response = await fetch(url, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n\n if (!response.ok) {\n throw new Error(\n `Portfolio API request failed with status: ${response.status}`,\n );\n }\n\n return response.json();\n }\n\n async getTrendingTokensByChains(\n trendingTokensParams?: TrendingTokensParams,\n ): Promise<MoralisTokenResponseItem[]> {\n return this.#fetch('trending', trendingTokensParams);\n }\n\n async getTopLosersByChains(\n topLosersParams?: TopLosersParams,\n ): Promise<MoralisTokenResponseItem[]> {\n return this.#fetch('top-losers', topLosersParams);\n }\n\n async getTopGainersByChains(\n topGainersParams?: TopGainersParams,\n ): Promise<MoralisTokenResponseItem[]> {\n return this.#fetch('top-gainers', topGainersParams);\n }\n\n async getBlueChipTokensByChains(\n blueChipParams?: BlueChipParams,\n ): Promise<MoralisTokenResponseItem[]> {\n return this.#fetch('blue-chip', blueChipParams);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"token-discovery-api-service.d.cts","sourceRoot":"","sources":["../../src/token-discovery-api-service/token-discovery-api-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gCAAgC,EAAE,mDAA+C;AAC1F,OAAO,KAAK,EACV,wBAAwB,EACxB,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,cAAc,EACf,qBAAiB;AAElB,qBAAa,wBAAyB,SAAQ,gCAAgC;;gBAGhE,OAAO,EAAE,MAAM;IAQrB,yBAAyB,CAC7B,oBAAoB,CAAC,EAAE,oBAAoB,GAC1C,OAAO,CAAC,wBAAwB,EAAE,CAAC;IA6BhC,oBAAoB,CACxB,eAAe,CAAC,EAAE,eAAe,GAChC,OAAO,CAAC,wBAAwB,EAAE,CAAC;IA0BhC,qBAAqB,CACzB,gBAAgB,CAAC,EAAE,gBAAgB,GAClC,OAAO,CAAC,wBAAwB,EAAE,CAAC;IA0BhC,yBAAyB,CAC7B,cAAc,CAAC,EAAE,cAAc,GAC9B,OAAO,CAAC,wBAAwB,EAAE,CAAC;CAyBvC"}
1
+ {"version":3,"file":"token-discovery-api-service.d.cts","sourceRoot":"","sources":["../../src/token-discovery-api-service/token-discovery-api-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gCAAgC,EAAE,mDAA+C;AAC1F,OAAO,KAAK,EACV,wBAAwB,EACxB,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,cAAc,EAEf,qBAAiB;AAElB,qBAAa,wBAAyB,SAAQ,gCAAgC;;gBAGhE,OAAO,EAAE,MAAM;IAuCrB,yBAAyB,CAC7B,oBAAoB,CAAC,EAAE,oBAAoB,GAC1C,OAAO,CAAC,wBAAwB,EAAE,CAAC;IAIhC,oBAAoB,CACxB,eAAe,CAAC,EAAE,eAAe,GAChC,OAAO,CAAC,wBAAwB,EAAE,CAAC;IAIhC,qBAAqB,CACzB,gBAAgB,CAAC,EAAE,gBAAgB,GAClC,OAAO,CAAC,wBAAwB,EAAE,CAAC;IAIhC,yBAAyB,CAC7B,cAAc,CAAC,EAAE,cAAc,GAC9B,OAAO,CAAC,wBAAwB,EAAE,CAAC;CAGvC"}
@@ -1 +1 @@
1
- {"version":3,"file":"token-discovery-api-service.d.mts","sourceRoot":"","sources":["../../src/token-discovery-api-service/token-discovery-api-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gCAAgC,EAAE,mDAA+C;AAC1F,OAAO,KAAK,EACV,wBAAwB,EACxB,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,cAAc,EACf,qBAAiB;AAElB,qBAAa,wBAAyB,SAAQ,gCAAgC;;gBAGhE,OAAO,EAAE,MAAM;IAQrB,yBAAyB,CAC7B,oBAAoB,CAAC,EAAE,oBAAoB,GAC1C,OAAO,CAAC,wBAAwB,EAAE,CAAC;IA6BhC,oBAAoB,CACxB,eAAe,CAAC,EAAE,eAAe,GAChC,OAAO,CAAC,wBAAwB,EAAE,CAAC;IA0BhC,qBAAqB,CACzB,gBAAgB,CAAC,EAAE,gBAAgB,GAClC,OAAO,CAAC,wBAAwB,EAAE,CAAC;IA0BhC,yBAAyB,CAC7B,cAAc,CAAC,EAAE,cAAc,GAC9B,OAAO,CAAC,wBAAwB,EAAE,CAAC;CAyBvC"}
1
+ {"version":3,"file":"token-discovery-api-service.d.mts","sourceRoot":"","sources":["../../src/token-discovery-api-service/token-discovery-api-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gCAAgC,EAAE,mDAA+C;AAC1F,OAAO,KAAK,EACV,wBAAwB,EACxB,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,cAAc,EAEf,qBAAiB;AAElB,qBAAa,wBAAyB,SAAQ,gCAAgC;;gBAGhE,OAAO,EAAE,MAAM;IAuCrB,yBAAyB,CAC7B,oBAAoB,CAAC,EAAE,oBAAoB,GAC1C,OAAO,CAAC,wBAAwB,EAAE,CAAC;IAIhC,oBAAoB,CACxB,eAAe,CAAC,EAAE,eAAe,GAChC,OAAO,CAAC,wBAAwB,EAAE,CAAC;IAIhC,qBAAqB,CACzB,gBAAgB,CAAC,EAAE,gBAAgB,GAClC,OAAO,CAAC,wBAAwB,EAAE,CAAC;IAIhC,yBAAyB,CAC7B,cAAc,CAAC,EAAE,cAAc,GAC9B,OAAO,CAAC,wBAAwB,EAAE,CAAC;CAGvC"}
@@ -9,11 +9,12 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
9
9
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
10
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
11
  };
12
- var _TokenDiscoveryApiService_baseUrl;
12
+ var _TokenDiscoveryApiService_instances, _TokenDiscoveryApiService_baseUrl, _TokenDiscoveryApiService_fetch;
13
13
  import { AbstractTokenDiscoveryApiService } from "./abstract-token-discovery-api-service.mjs";
14
14
  export class TokenDiscoveryApiService extends AbstractTokenDiscoveryApiService {
15
15
  constructor(baseUrl) {
16
16
  super();
17
+ _TokenDiscoveryApiService_instances.add(this);
17
18
  _TokenDiscoveryApiService_baseUrl.set(this, void 0);
18
19
  if (!baseUrl) {
19
20
  throw new Error('Portfolio API URL is not set');
@@ -21,82 +22,38 @@ export class TokenDiscoveryApiService extends AbstractTokenDiscoveryApiService {
21
22
  __classPrivateFieldSet(this, _TokenDiscoveryApiService_baseUrl, baseUrl, "f");
22
23
  }
23
24
  async getTrendingTokensByChains(trendingTokensParams) {
24
- const url = new URL('/tokens-search/trending', __classPrivateFieldGet(this, _TokenDiscoveryApiService_baseUrl, "f"));
25
- if (trendingTokensParams?.chains &&
26
- trendingTokensParams.chains.length > 0) {
27
- url.searchParams.append('chains', trendingTokensParams.chains.join());
28
- }
29
- if (trendingTokensParams?.limit) {
30
- url.searchParams.append('limit', trendingTokensParams.limit);
31
- }
32
- const response = await fetch(url, {
33
- method: 'GET',
34
- headers: {
35
- 'Content-Type': 'application/json',
36
- },
37
- });
38
- if (!response.ok) {
39
- throw new Error(`Portfolio API request failed with status: ${response.status}`);
40
- }
41
- return response.json();
25
+ return __classPrivateFieldGet(this, _TokenDiscoveryApiService_instances, "m", _TokenDiscoveryApiService_fetch).call(this, 'trending', trendingTokensParams);
42
26
  }
43
27
  async getTopLosersByChains(topLosersParams) {
44
- const url = new URL('/tokens-search/top-losers', __classPrivateFieldGet(this, _TokenDiscoveryApiService_baseUrl, "f"));
45
- if (topLosersParams?.chains && topLosersParams.chains.length > 0) {
46
- url.searchParams.append('chains', topLosersParams.chains.join());
47
- }
48
- if (topLosersParams?.limit) {
49
- url.searchParams.append('limit', topLosersParams.limit);
50
- }
51
- const response = await fetch(url, {
52
- method: 'GET',
53
- headers: {
54
- 'Content-Type': 'application/json',
55
- },
56
- });
57
- if (!response.ok) {
58
- throw new Error(`Portfolio API request failed with status: ${response.status}`);
59
- }
60
- return response.json();
28
+ return __classPrivateFieldGet(this, _TokenDiscoveryApiService_instances, "m", _TokenDiscoveryApiService_fetch).call(this, 'top-losers', topLosersParams);
61
29
  }
62
30
  async getTopGainersByChains(topGainersParams) {
63
- const url = new URL('/tokens-search/top-gainers', __classPrivateFieldGet(this, _TokenDiscoveryApiService_baseUrl, "f"));
64
- if (topGainersParams?.chains && topGainersParams.chains.length > 0) {
65
- url.searchParams.append('chains', topGainersParams.chains.join());
66
- }
67
- if (topGainersParams?.limit) {
68
- url.searchParams.append('limit', topGainersParams.limit);
69
- }
70
- const response = await fetch(url, {
71
- method: 'GET',
72
- headers: {
73
- 'Content-Type': 'application/json',
74
- },
75
- });
76
- if (!response.ok) {
77
- throw new Error(`Portfolio API request failed with status: ${response.status}`);
78
- }
79
- return response.json();
31
+ return __classPrivateFieldGet(this, _TokenDiscoveryApiService_instances, "m", _TokenDiscoveryApiService_fetch).call(this, 'top-gainers', topGainersParams);
80
32
  }
81
33
  async getBlueChipTokensByChains(blueChipParams) {
82
- const url = new URL('/tokens-search/blue-chip', __classPrivateFieldGet(this, _TokenDiscoveryApiService_baseUrl, "f"));
83
- if (blueChipParams?.chains && blueChipParams.chains.length > 0) {
84
- url.searchParams.append('chains', blueChipParams.chains.join());
85
- }
86
- if (blueChipParams?.limit) {
87
- url.searchParams.append('limit', blueChipParams.limit);
88
- }
89
- const response = await fetch(url, {
90
- method: 'GET',
91
- headers: {
92
- 'Content-Type': 'application/json',
93
- },
94
- });
95
- if (!response.ok) {
96
- throw new Error(`Portfolio API request failed with status: ${response.status}`);
97
- }
98
- return response.json();
34
+ return __classPrivateFieldGet(this, _TokenDiscoveryApiService_instances, "m", _TokenDiscoveryApiService_fetch).call(this, 'blue-chip', blueChipParams);
99
35
  }
100
36
  }
101
- _TokenDiscoveryApiService_baseUrl = new WeakMap();
37
+ _TokenDiscoveryApiService_baseUrl = new WeakMap(), _TokenDiscoveryApiService_instances = new WeakSet(), _TokenDiscoveryApiService_fetch = async function _TokenDiscoveryApiService_fetch(subPath, params) {
38
+ const url = new URL(`/tokens-search/${subPath}`, __classPrivateFieldGet(this, _TokenDiscoveryApiService_baseUrl, "f"));
39
+ if (params?.chains && params.chains.length > 0) {
40
+ url.searchParams.append('chains', params.chains.join());
41
+ }
42
+ if (params?.limit) {
43
+ url.searchParams.append('limit', params.limit);
44
+ }
45
+ if (params?.swappable) {
46
+ url.searchParams.append('swappable', 'true');
47
+ }
48
+ const response = await fetch(url, {
49
+ method: 'GET',
50
+ headers: {
51
+ 'Content-Type': 'application/json',
52
+ },
53
+ });
54
+ if (!response.ok) {
55
+ throw new Error(`Portfolio API request failed with status: ${response.status}`);
56
+ }
57
+ return response.json();
58
+ };
102
59
  //# sourceMappingURL=token-discovery-api-service.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"token-discovery-api-service.mjs","sourceRoot":"","sources":["../../src/token-discovery-api-service/token-discovery-api-service.ts"],"names":[],"mappings":"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","sourcesContent":["import { AbstractTokenDiscoveryApiService } from './abstract-token-discovery-api-service';\nimport type {\n MoralisTokenResponseItem,\n TopGainersParams,\n TopLosersParams,\n TrendingTokensParams,\n BlueChipParams,\n} from '../types';\n\nexport class TokenDiscoveryApiService extends AbstractTokenDiscoveryApiService {\n readonly #baseUrl: string;\n\n constructor(baseUrl: string) {\n super();\n if (!baseUrl) {\n throw new Error('Portfolio API URL is not set');\n }\n this.#baseUrl = baseUrl;\n }\n\n async getTrendingTokensByChains(\n trendingTokensParams?: TrendingTokensParams,\n ): Promise<MoralisTokenResponseItem[]> {\n const url = new URL('/tokens-search/trending', this.#baseUrl);\n\n if (\n trendingTokensParams?.chains &&\n trendingTokensParams.chains.length > 0\n ) {\n url.searchParams.append('chains', trendingTokensParams.chains.join());\n }\n if (trendingTokensParams?.limit) {\n url.searchParams.append('limit', trendingTokensParams.limit);\n }\n\n const response = await fetch(url, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n\n if (!response.ok) {\n throw new Error(\n `Portfolio API request failed with status: ${response.status}`,\n );\n }\n\n return response.json();\n }\n\n async getTopLosersByChains(\n topLosersParams?: TopLosersParams,\n ): Promise<MoralisTokenResponseItem[]> {\n const url = new URL('/tokens-search/top-losers', this.#baseUrl);\n\n if (topLosersParams?.chains && topLosersParams.chains.length > 0) {\n url.searchParams.append('chains', topLosersParams.chains.join());\n }\n if (topLosersParams?.limit) {\n url.searchParams.append('limit', topLosersParams.limit);\n }\n\n const response = await fetch(url, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n\n if (!response.ok) {\n throw new Error(\n `Portfolio API request failed with status: ${response.status}`,\n );\n }\n\n return response.json();\n }\n\n async getTopGainersByChains(\n topGainersParams?: TopGainersParams,\n ): Promise<MoralisTokenResponseItem[]> {\n const url = new URL('/tokens-search/top-gainers', this.#baseUrl);\n\n if (topGainersParams?.chains && topGainersParams.chains.length > 0) {\n url.searchParams.append('chains', topGainersParams.chains.join());\n }\n if (topGainersParams?.limit) {\n url.searchParams.append('limit', topGainersParams.limit);\n }\n\n const response = await fetch(url, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n\n if (!response.ok) {\n throw new Error(\n `Portfolio API request failed with status: ${response.status}`,\n );\n }\n\n return response.json();\n }\n\n async getBlueChipTokensByChains(\n blueChipParams?: BlueChipParams,\n ): Promise<MoralisTokenResponseItem[]> {\n const url = new URL('/tokens-search/blue-chip', this.#baseUrl);\n\n if (blueChipParams?.chains && blueChipParams.chains.length > 0) {\n url.searchParams.append('chains', blueChipParams.chains.join());\n }\n if (blueChipParams?.limit) {\n url.searchParams.append('limit', blueChipParams.limit);\n }\n\n const response = await fetch(url, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n\n if (!response.ok) {\n throw new Error(\n `Portfolio API request failed with status: ${response.status}`,\n );\n }\n\n return response.json();\n }\n}\n"]}
1
+ {"version":3,"file":"token-discovery-api-service.mjs","sourceRoot":"","sources":["../../src/token-discovery-api-service/token-discovery-api-service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,gCAAgC,EAAE,mDAA+C;AAU1F,MAAM,OAAO,wBAAyB,SAAQ,gCAAgC;IAG5E,YAAY,OAAe;QACzB,KAAK,EAAE,CAAC;;QAHD,oDAAiB;QAIxB,IAAI,CAAC,OAAO,EAAE;YACZ,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;SACjD;QACD,uBAAA,IAAI,qCAAY,OAAO,MAAA,CAAC;IAC1B,CAAC;IAiCD,KAAK,CAAC,yBAAyB,CAC7B,oBAA2C;QAE3C,OAAO,uBAAA,IAAI,4EAAO,MAAX,IAAI,EAAQ,UAAU,EAAE,oBAAoB,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,oBAAoB,CACxB,eAAiC;QAEjC,OAAO,uBAAA,IAAI,4EAAO,MAAX,IAAI,EAAQ,YAAY,EAAE,eAAe,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,qBAAqB,CACzB,gBAAmC;QAEnC,OAAO,uBAAA,IAAI,4EAAO,MAAX,IAAI,EAAQ,aAAa,EAAE,gBAAgB,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,yBAAyB,CAC7B,cAA+B;QAE/B,OAAO,uBAAA,IAAI,4EAAO,MAAX,IAAI,EAAQ,WAAW,EAAE,cAAc,CAAC,CAAC;IAClD,CAAC;CACF;0IAtDC,KAAK,0CAAQ,OAAe,EAAE,MAAmB;IAC/C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,kBAAkB,OAAO,EAAE,EAAE,uBAAA,IAAI,yCAAS,CAAC,CAAC;IAEhE,IAAI,MAAM,EAAE,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;QAC9C,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;KACzD;IAED,IAAI,MAAM,EAAE,KAAK,EAAE;QACjB,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;KAChD;IAED,IAAI,MAAM,EAAE,SAAS,EAAE;QACrB,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;KAC9C;IAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAChC,MAAM,EAAE,KAAK;QACb,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;SACnC;KACF,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;QAChB,MAAM,IAAI,KAAK,CACb,6CAA6C,QAAQ,CAAC,MAAM,EAAE,CAC/D,CAAC;KACH;IAED,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;AACzB,CAAC","sourcesContent":["import { AbstractTokenDiscoveryApiService } from './abstract-token-discovery-api-service';\nimport type {\n MoralisTokenResponseItem,\n TopGainersParams,\n TopLosersParams,\n TrendingTokensParams,\n BlueChipParams,\n ParamsBase,\n} from '../types';\n\nexport class TokenDiscoveryApiService extends AbstractTokenDiscoveryApiService {\n readonly #baseUrl: string;\n\n constructor(baseUrl: string) {\n super();\n if (!baseUrl) {\n throw new Error('Portfolio API URL is not set');\n }\n this.#baseUrl = baseUrl;\n }\n\n async #fetch(subPath: string, params?: ParamsBase) {\n const url = new URL(`/tokens-search/${subPath}`, this.#baseUrl);\n\n if (params?.chains && params.chains.length > 0) {\n url.searchParams.append('chains', params.chains.join());\n }\n\n if (params?.limit) {\n url.searchParams.append('limit', params.limit);\n }\n\n if (params?.swappable) {\n url.searchParams.append('swappable', 'true');\n }\n\n const response = await fetch(url, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n\n if (!response.ok) {\n throw new Error(\n `Portfolio API request failed with status: ${response.status}`,\n );\n }\n\n return response.json();\n }\n\n async getTrendingTokensByChains(\n trendingTokensParams?: TrendingTokensParams,\n ): Promise<MoralisTokenResponseItem[]> {\n return this.#fetch('trending', trendingTokensParams);\n }\n\n async getTopLosersByChains(\n topLosersParams?: TopLosersParams,\n ): Promise<MoralisTokenResponseItem[]> {\n return this.#fetch('top-losers', topLosersParams);\n }\n\n async getTopGainersByChains(\n topGainersParams?: TopGainersParams,\n ): Promise<MoralisTokenResponseItem[]> {\n return this.#fetch('top-gainers', topGainersParams);\n }\n\n async getBlueChipTokensByChains(\n blueChipParams?: BlueChipParams,\n ): Promise<MoralisTokenResponseItem[]> {\n return this.#fetch('blue-chip', blueChipParams);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.cjs","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA,kBAAkB","sourcesContent":["// Function params\n\ntype ParamsBase = {\n chains?: string[];\n limit?: string;\n};\n\nexport type TokenSearchParams = ParamsBase & {\n query?: string;\n};\n\nexport type SwappableTokenSearchParams = {\n limit?: string;\n query: string;\n};\n\nexport type TrendingTokensParams = ParamsBase;\n\nexport type TopLosersParams = ParamsBase;\n\nexport type TopGainersParams = ParamsBase;\n\nexport type BlueChipParams = ParamsBase;\n\n// API response types\n\nexport type TokenSearchResponseItem = {\n tokenAddress: string;\n chainId: string;\n name: string;\n symbol: string;\n usdPrice: number;\n usdPricePercentChange: {\n oneDay: number;\n };\n logoUrl?: string;\n};\n\nexport type MoralisTokenResponseItem = {\n chain_id: string;\n token_address: string;\n token_logo: string;\n token_name: string;\n token_symbol: string;\n price_usd: number;\n token_age_in_days: number;\n on_chain_strength_index: number;\n security_score: number;\n market_cap: number;\n fully_diluted_valuation: number;\n twitter_followers: number;\n holders_change: {\n '1h': number | null;\n '1d': number | null;\n '1w': number | null;\n '1M': number | null;\n };\n liquidity_change_usd: {\n '1h': number | null;\n '1d': number | null;\n '1w': number | null;\n '1M': number | null;\n };\n experienced_net_buyers_change: {\n '1h': number | null;\n '1d': number | null;\n '1w': number | null;\n '1M': number | null;\n };\n volume_change_usd: {\n '1h': number | null;\n '1d': number | null;\n '1w': number | null;\n '1M': number | null;\n };\n net_volume_change_usd: {\n '1h': number | null;\n '1d': number | null;\n '1w': number | null;\n '1M': number | null;\n };\n price_percent_change_usd: {\n '1h': number | null;\n '1d': number | null;\n '1w': number | null;\n '1M': number | null;\n };\n};\n"]}
1
+ {"version":3,"file":"types.cjs","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA,kBAAkB","sourcesContent":["// Function params\n\nexport type ParamsBase = {\n chains?: string[];\n limit?: string;\n swappable?: boolean;\n};\n\nexport type TokenSearchParams = Omit<ParamsBase, 'swappable'> & {\n query?: string;\n};\n\nexport type SwappableTokenSearchParams = {\n limit?: string;\n query: string;\n};\n\nexport type TrendingTokensParams = ParamsBase;\n\nexport type TopLosersParams = ParamsBase;\n\nexport type TopGainersParams = ParamsBase;\n\nexport type BlueChipParams = ParamsBase;\n\n// API response types\n\nexport type TokenSearchResponseItem = {\n tokenAddress: string;\n chainId: string;\n name: string;\n symbol: string;\n usdPrice: number;\n usdPricePercentChange: {\n oneDay: number;\n };\n logoUrl?: string;\n};\n\nexport type MoralisTokenResponseItem = {\n chain_id: string;\n token_address: string;\n token_logo: string;\n token_name: string;\n token_symbol: string;\n price_usd: number;\n token_age_in_days: number;\n on_chain_strength_index: number;\n security_score: number;\n market_cap: number;\n fully_diluted_valuation: number;\n twitter_followers: number;\n holders_change: {\n '1h': number | null;\n '1d': number | null;\n '1w': number | null;\n '1M': number | null;\n };\n liquidity_change_usd: {\n '1h': number | null;\n '1d': number | null;\n '1w': number | null;\n '1M': number | null;\n };\n experienced_net_buyers_change: {\n '1h': number | null;\n '1d': number | null;\n '1w': number | null;\n '1M': number | null;\n };\n volume_change_usd: {\n '1h': number | null;\n '1d': number | null;\n '1w': number | null;\n '1M': number | null;\n };\n net_volume_change_usd: {\n '1h': number | null;\n '1d': number | null;\n '1w': number | null;\n '1M': number | null;\n };\n price_percent_change_usd: {\n '1h': number | null;\n '1d': number | null;\n '1w': number | null;\n '1M': number | null;\n };\n};\n"]}
package/dist/types.d.cts CHANGED
@@ -1,8 +1,9 @@
1
- type ParamsBase = {
1
+ export type ParamsBase = {
2
2
  chains?: string[];
3
3
  limit?: string;
4
+ swappable?: boolean;
4
5
  };
5
- export type TokenSearchParams = ParamsBase & {
6
+ export type TokenSearchParams = Omit<ParamsBase, 'swappable'> & {
6
7
  query?: string;
7
8
  };
8
9
  export type SwappableTokenSearchParams = {
@@ -74,5 +75,4 @@ export type MoralisTokenResponseItem = {
74
75
  '1M': number | null;
75
76
  };
76
77
  };
77
- export {};
78
78
  //# sourceMappingURL=types.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.cts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.cts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.d.mts CHANGED
@@ -1,8 +1,9 @@
1
- type ParamsBase = {
1
+ export type ParamsBase = {
2
2
  chains?: string[];
3
3
  limit?: string;
4
+ swappable?: boolean;
4
5
  };
5
- export type TokenSearchParams = ParamsBase & {
6
+ export type TokenSearchParams = Omit<ParamsBase, 'swappable'> & {
6
7
  query?: string;
7
8
  };
8
9
  export type SwappableTokenSearchParams = {
@@ -74,5 +75,4 @@ export type MoralisTokenResponseItem = {
74
75
  '1M': number | null;
75
76
  };
76
77
  };
77
- export {};
78
78
  //# sourceMappingURL=types.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.mts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.mts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.mjs","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,kBAAkB","sourcesContent":["// Function params\n\ntype ParamsBase = {\n chains?: string[];\n limit?: string;\n};\n\nexport type TokenSearchParams = ParamsBase & {\n query?: string;\n};\n\nexport type SwappableTokenSearchParams = {\n limit?: string;\n query: string;\n};\n\nexport type TrendingTokensParams = ParamsBase;\n\nexport type TopLosersParams = ParamsBase;\n\nexport type TopGainersParams = ParamsBase;\n\nexport type BlueChipParams = ParamsBase;\n\n// API response types\n\nexport type TokenSearchResponseItem = {\n tokenAddress: string;\n chainId: string;\n name: string;\n symbol: string;\n usdPrice: number;\n usdPricePercentChange: {\n oneDay: number;\n };\n logoUrl?: string;\n};\n\nexport type MoralisTokenResponseItem = {\n chain_id: string;\n token_address: string;\n token_logo: string;\n token_name: string;\n token_symbol: string;\n price_usd: number;\n token_age_in_days: number;\n on_chain_strength_index: number;\n security_score: number;\n market_cap: number;\n fully_diluted_valuation: number;\n twitter_followers: number;\n holders_change: {\n '1h': number | null;\n '1d': number | null;\n '1w': number | null;\n '1M': number | null;\n };\n liquidity_change_usd: {\n '1h': number | null;\n '1d': number | null;\n '1w': number | null;\n '1M': number | null;\n };\n experienced_net_buyers_change: {\n '1h': number | null;\n '1d': number | null;\n '1w': number | null;\n '1M': number | null;\n };\n volume_change_usd: {\n '1h': number | null;\n '1d': number | null;\n '1w': number | null;\n '1M': number | null;\n };\n net_volume_change_usd: {\n '1h': number | null;\n '1d': number | null;\n '1w': number | null;\n '1M': number | null;\n };\n price_percent_change_usd: {\n '1h': number | null;\n '1d': number | null;\n '1w': number | null;\n '1M': number | null;\n };\n};\n"]}
1
+ {"version":3,"file":"types.mjs","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,kBAAkB","sourcesContent":["// Function params\n\nexport type ParamsBase = {\n chains?: string[];\n limit?: string;\n swappable?: boolean;\n};\n\nexport type TokenSearchParams = Omit<ParamsBase, 'swappable'> & {\n query?: string;\n};\n\nexport type SwappableTokenSearchParams = {\n limit?: string;\n query: string;\n};\n\nexport type TrendingTokensParams = ParamsBase;\n\nexport type TopLosersParams = ParamsBase;\n\nexport type TopGainersParams = ParamsBase;\n\nexport type BlueChipParams = ParamsBase;\n\n// API response types\n\nexport type TokenSearchResponseItem = {\n tokenAddress: string;\n chainId: string;\n name: string;\n symbol: string;\n usdPrice: number;\n usdPricePercentChange: {\n oneDay: number;\n };\n logoUrl?: string;\n};\n\nexport type MoralisTokenResponseItem = {\n chain_id: string;\n token_address: string;\n token_logo: string;\n token_name: string;\n token_symbol: string;\n price_usd: number;\n token_age_in_days: number;\n on_chain_strength_index: number;\n security_score: number;\n market_cap: number;\n fully_diluted_valuation: number;\n twitter_followers: number;\n holders_change: {\n '1h': number | null;\n '1d': number | null;\n '1w': number | null;\n '1M': number | null;\n };\n liquidity_change_usd: {\n '1h': number | null;\n '1d': number | null;\n '1w': number | null;\n '1M': number | null;\n };\n experienced_net_buyers_change: {\n '1h': number | null;\n '1d': number | null;\n '1w': number | null;\n '1M': number | null;\n };\n volume_change_usd: {\n '1h': number | null;\n '1d': number | null;\n '1w': number | null;\n '1M': number | null;\n };\n net_volume_change_usd: {\n '1h': number | null;\n '1d': number | null;\n '1w': number | null;\n '1M': number | null;\n };\n price_percent_change_usd: {\n '1h': number | null;\n '1d': number | null;\n '1w': number | null;\n '1M': number | null;\n };\n};\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metamask-previews/token-search-discovery-controller",
3
- "version": "3.1.0-preview-94fc9024",
3
+ "version": "3.2.0-preview-4f323233",
4
4
  "description": "Manages token search and discovery through the Portfolio API",
5
5
  "keywords": [
6
6
  "MetaMask",