@pancakeswap/token-lists 0.0.4 → 0.0.5

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.
@@ -2,21 +2,22 @@ warning package.json: No license field
2
2
  $ tsup
3
3
  CLI Building entry: {"index":"./src/index.ts","react":"./react/index.ts"}
4
4
  CLI Using tsconfig: tsconfig.json
5
- CLI tsup v6.2.3
5
+ CLI tsup v6.6.3
6
6
  CLI Using tsup config: /home/runner/work/pancake-frontend/pancake-frontend/packages/token-lists/tsup.config.ts
7
- CLI Target: node14
7
+ CLI Target: es6
8
8
  ESM Build start
9
9
  CJS Build start
10
- ESM dist/index.mjs 208.00 B
11
- ESM dist/react.mjs 8.17 KB
12
- ESM dist/chunk-YBVZDUCZ.mjs 1.92 KB
13
- ESM dist/getTokenList-T45DK2AY.mjs 13.04 KB
14
- ESM ⚡️ Build success in 118ms
15
10
  CJS dist/index.js 3.11 KB
16
- CJS dist/react.js 25.75 KB
17
- CJS ⚡️ Build success in 116ms
11
+ CJS dist/react.js 28.00 KB
12
+ CJS ⚡️ Build success in 90ms
13
+ ESM dist/index.mjs 239.00 B
14
+ ESM dist/react.mjs 8.47 KB
15
+ ESM dist/chunk-YBVZDUCZ.mjs 1.92 KB
16
+ ESM dist/getTokenList-2FAKUE6D.mjs 13.43 KB
17
+ ESM dist/chunk-2L3ZO4UM.mjs 1.42 KB
18
+ ESM ⚡️ Build success in 93ms
18
19
  DTS Build start
19
- DTS ⚡️ Build success in 9485ms
20
- DTS dist/index.d.ts 1.54 KB
21
- DTS dist/react.d.ts 2.51 KB
22
- DTS dist/types-b620c9be.d.ts 1.03 KB
20
+ DTS ⚡️ Build success in 17357ms
21
+ DTS dist/index.d.ts 1.51 KB
22
+ DTS dist/react.d.ts 2.50 KB
23
+ DTS dist/types-d752b62d.d.ts 1.02 KB
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @pancakeswap/token-lists
2
2
 
3
+ ## 0.0.5
4
+
5
+ ### Patch Changes
6
+
7
+ - 80e616be0: fix: Filter out tokeen with empty symbol in tokenlists
8
+
3
9
  ## 0.0.4
4
10
 
5
11
  ### Patch Changes
@@ -0,0 +1,45 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ var __async = (__this, __arguments, generator) => {
21
+ return new Promise((resolve, reject) => {
22
+ var fulfilled = (value) => {
23
+ try {
24
+ step(generator.next(value));
25
+ } catch (e) {
26
+ reject(e);
27
+ }
28
+ };
29
+ var rejected = (value) => {
30
+ try {
31
+ step(generator.throw(value));
32
+ } catch (e) {
33
+ reject(e);
34
+ }
35
+ };
36
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
37
+ step((generator = generator.apply(__this, __arguments)).next());
38
+ });
39
+ };
40
+
41
+ export {
42
+ __spreadValues,
43
+ __spreadProps,
44
+ __async
45
+ };
@@ -1,3 +1,7 @@
1
+ import {
2
+ __async
3
+ } from "./chunk-2L3ZO4UM.mjs";
4
+
1
5
  // ../utils/uriToHttp.ts
2
6
  function uriToHttp(uri) {
3
7
  var _a, _b;
@@ -19,6 +23,7 @@ function uriToHttp(uri) {
19
23
  }
20
24
 
21
25
  // react/getTokenList.ts
26
+ import remove from "lodash/remove";
22
27
  import Ajv from "ajv";
23
28
 
24
29
  // schema/pancakeswap.json
@@ -417,37 +422,45 @@ var pancakeswap_default = {
417
422
 
418
423
  // react/getTokenList.ts
419
424
  var tokenListValidator = new Ajv({ allErrors: true }).compile(pancakeswap_default);
420
- async function getTokenList(listUrl) {
421
- var _a;
422
- const urls = uriToHttp(listUrl);
423
- for (let i = 0; i < urls.length; i++) {
424
- const url = urls[i];
425
- const isLast = i === urls.length - 1;
426
- let response;
427
- try {
428
- response = await fetch(url);
429
- } catch (error) {
430
- console.error("Failed to fetch list", listUrl, error);
431
- if (isLast)
432
- throw new Error(`Failed to download list ${listUrl}`);
433
- continue;
434
- }
435
- if (!response.ok) {
436
- if (isLast)
437
- throw new Error(`Failed to download list ${listUrl}`);
438
- continue;
439
- }
440
- const json = await response.json();
441
- if (!tokenListValidator(json)) {
442
- const validationErrors = ((_a = tokenListValidator.errors) == null ? void 0 : _a.reduce((memo, error) => {
443
- const add = `${error.dataPath} ${error.message ?? ""}`;
444
- return memo.length > 0 ? `${memo}; ${add}` : `${add}`;
445
- }, "")) ?? "unknown error";
446
- throw new Error(`Token list failed validation: ${validationErrors}`);
425
+ function getTokenList(listUrl) {
426
+ return __async(this, null, function* () {
427
+ var _a, _b;
428
+ const urls = uriToHttp(listUrl);
429
+ for (let i = 0; i < urls.length; i++) {
430
+ const url = urls[i];
431
+ const isLast = i === urls.length - 1;
432
+ let response;
433
+ try {
434
+ response = yield fetch(url);
435
+ } catch (error) {
436
+ console.error("Failed to fetch list", listUrl, error);
437
+ if (isLast)
438
+ throw new Error(`Failed to download list ${listUrl}`);
439
+ continue;
440
+ }
441
+ if (!response.ok) {
442
+ if (isLast)
443
+ throw new Error(`Failed to download list ${listUrl}`);
444
+ continue;
445
+ }
446
+ const json = yield response.json();
447
+ if (json.tokens) {
448
+ remove(json.tokens, (token) => {
449
+ return token.symbol ? token.symbol.length === 0 : true;
450
+ });
451
+ }
452
+ if (!tokenListValidator(json)) {
453
+ const validationErrors = (_b = (_a = tokenListValidator.errors) == null ? void 0 : _a.reduce((memo, error) => {
454
+ var _a2;
455
+ const add = `${error.dataPath} ${(_a2 = error.message) != null ? _a2 : ""}`;
456
+ return memo.length > 0 ? `${memo}; ${add}` : `${add}`;
457
+ }, "")) != null ? _b : "unknown error";
458
+ throw new Error(`Token list failed validation: ${validationErrors}`);
459
+ }
460
+ return json;
447
461
  }
448
- return json;
449
- }
450
- throw new Error("Unrecognized list URL protocol.");
462
+ throw new Error("Unrecognized list URL protocol.");
463
+ });
451
464
  }
452
465
  export {
453
466
  getTokenList as default,
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { SerializedToken, Token } from '@pancakeswap/swap-sdk-core';
2
- import { T as TokenInfo, a as TokenList, V as Version } from './types-b620c9be.js';
3
- export { b as Tags, T as TokenInfo, a as TokenList, V as Version } from './types-b620c9be.js';
2
+ import { T as TokenInfo, a as TokenList, V as Version } from './types-d752b62d.js';
3
+ export { b as Tags } from './types-d752b62d.js';
4
4
 
5
5
  interface SerializedWrappedToken extends SerializedToken {
6
6
  chainId: number;
@@ -19,7 +19,7 @@ declare class WrappedTokenInfo extends Token {
19
19
  constructor(tokenInfo: TokenInfo);
20
20
  get serialize(): SerializedWrappedToken;
21
21
  }
22
- declare type TokenAddressMap<TChainId extends number> = Readonly<{
22
+ type TokenAddressMap<TChainId extends number> = Readonly<{
23
23
  [chainId in TChainId]: Readonly<{
24
24
  [tokenAddress: string]: {
25
25
  token: WrappedTokenInfo;
@@ -47,4 +47,4 @@ declare enum VersionUpgrade {
47
47
  */
48
48
  declare function getVersionUpgrade(base: Version, update: Version): VersionUpgrade;
49
49
 
50
- export { SerializedWrappedToken, TokenAddressMap, VersionUpgrade, WrappedTokenInfo, deserializeToken, getVersionUpgrade };
50
+ export { SerializedWrappedToken, TokenAddressMap, TokenInfo, TokenList, Version, VersionUpgrade, WrappedTokenInfo, deserializeToken, getVersionUpgrade };
package/dist/index.mjs CHANGED
@@ -4,6 +4,7 @@ import {
4
4
  deserializeToken,
5
5
  getVersionUpgrade
6
6
  } from "./chunk-YBVZDUCZ.mjs";
7
+ import "./chunk-2L3ZO4UM.mjs";
7
8
  export {
8
9
  VersionUpgrade,
9
10
  WrappedTokenInfo,
package/dist/react.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as _reduxjs_toolkit_dist_createReducer from '@reduxjs/toolkit/dist/createReducer';
2
- import { a as TokenList, V as Version } from './types-b620c9be.js';
2
+ import { a as TokenList, V as Version } from './types-d752b62d.js';
3
3
  import * as _reduxjs_toolkit from '@reduxjs/toolkit';
4
4
  import { ActionCreatorWithPayload } from '@reduxjs/toolkit';
5
5
  import * as jotai from 'jotai';
@@ -16,7 +16,7 @@ interface ListsState {
16
16
  readonly lastInitializedDefaultListOfLists?: string[];
17
17
  readonly activeListUrls: string[] | undefined;
18
18
  }
19
- declare type ListByUrlState = ListsState['byUrl'][string];
19
+ type ListByUrlState = ListsState['byUrl'][string];
20
20
  declare const NEW_LIST_STATE: ListByUrlState;
21
21
  declare const createTokenListReducer: (initialState: ListsState, DEFAULT_LIST_OF_LISTS: string[], DEFAULT_ACTIVE_LIST_URLS: string[]) => _reduxjs_toolkit_dist_createReducer.ReducerWithInitialState<ListsState>;
22
22
 
package/dist/react.js CHANGED
@@ -1,10 +1,27 @@
1
1
  "use strict";
2
2
  var __create = Object.create;
3
3
  var __defProp = Object.defineProperty;
4
+ var __defProps = Object.defineProperties;
4
5
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
5
7
  var __getOwnPropNames = Object.getOwnPropertyNames;
8
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
6
9
  var __getProtoOf = Object.getPrototypeOf;
7
10
  var __hasOwnProp = Object.prototype.hasOwnProperty;
11
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
12
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
13
+ var __spreadValues = (a, b) => {
14
+ for (var prop in b || (b = {}))
15
+ if (__hasOwnProp.call(b, prop))
16
+ __defNormalProp(a, prop, b[prop]);
17
+ if (__getOwnPropSymbols)
18
+ for (var prop of __getOwnPropSymbols(b)) {
19
+ if (__propIsEnum.call(b, prop))
20
+ __defNormalProp(a, prop, b[prop]);
21
+ }
22
+ return a;
23
+ };
24
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
8
25
  var __esm = (fn, res) => function __init() {
9
26
  return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
10
27
  };
@@ -21,10 +38,34 @@ var __copyProps = (to, from, except, desc) => {
21
38
  return to;
22
39
  };
23
40
  var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
41
+ // If the importer is in node compatibility mode or this is not an ESM
42
+ // file that has been converted to a CommonJS file using a Babel-
43
+ // compatible transform (i.e. "__esModule" has not been set), then set
44
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
45
  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
46
  mod
26
47
  ));
27
48
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
49
+ var __async = (__this, __arguments, generator) => {
50
+ return new Promise((resolve, reject) => {
51
+ var fulfilled = (value) => {
52
+ try {
53
+ step(generator.next(value));
54
+ } catch (e) {
55
+ reject(e);
56
+ }
57
+ };
58
+ var rejected = (value) => {
59
+ try {
60
+ step(generator.throw(value));
61
+ } catch (e) {
62
+ reject(e);
63
+ }
64
+ };
65
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
66
+ step((generator = generator.apply(__this, __arguments)).next());
67
+ });
68
+ };
28
69
 
29
70
  // ../utils/uriToHttp.ts
30
71
  function uriToHttp(uri) {
@@ -455,43 +496,52 @@ __export(getTokenList_exports, {
455
496
  default: () => getTokenList,
456
497
  tokenListValidator: () => tokenListValidator
457
498
  });
458
- async function getTokenList(listUrl) {
459
- var _a;
460
- const urls = uriToHttp(listUrl);
461
- for (let i = 0; i < urls.length; i++) {
462
- const url = urls[i];
463
- const isLast = i === urls.length - 1;
464
- let response;
465
- try {
466
- response = await fetch(url);
467
- } catch (error) {
468
- console.error("Failed to fetch list", listUrl, error);
469
- if (isLast)
470
- throw new Error(`Failed to download list ${listUrl}`);
471
- continue;
472
- }
473
- if (!response.ok) {
474
- if (isLast)
475
- throw new Error(`Failed to download list ${listUrl}`);
476
- continue;
477
- }
478
- const json = await response.json();
479
- if (!tokenListValidator(json)) {
480
- const validationErrors = ((_a = tokenListValidator.errors) == null ? void 0 : _a.reduce((memo, error) => {
481
- const add = `${error.dataPath} ${error.message ?? ""}`;
482
- return memo.length > 0 ? `${memo}; ${add}` : `${add}`;
483
- }, "")) ?? "unknown error";
484
- throw new Error(`Token list failed validation: ${validationErrors}`);
499
+ function getTokenList(listUrl) {
500
+ return __async(this, null, function* () {
501
+ var _a, _b;
502
+ const urls = uriToHttp(listUrl);
503
+ for (let i = 0; i < urls.length; i++) {
504
+ const url = urls[i];
505
+ const isLast = i === urls.length - 1;
506
+ let response;
507
+ try {
508
+ response = yield fetch(url);
509
+ } catch (error) {
510
+ console.error("Failed to fetch list", listUrl, error);
511
+ if (isLast)
512
+ throw new Error(`Failed to download list ${listUrl}`);
513
+ continue;
514
+ }
515
+ if (!response.ok) {
516
+ if (isLast)
517
+ throw new Error(`Failed to download list ${listUrl}`);
518
+ continue;
519
+ }
520
+ const json = yield response.json();
521
+ if (json.tokens) {
522
+ (0, import_remove.default)(json.tokens, (token) => {
523
+ return token.symbol ? token.symbol.length === 0 : true;
524
+ });
525
+ }
526
+ if (!tokenListValidator(json)) {
527
+ const validationErrors = (_b = (_a = tokenListValidator.errors) == null ? void 0 : _a.reduce((memo, error) => {
528
+ var _a2;
529
+ const add = `${error.dataPath} ${(_a2 = error.message) != null ? _a2 : ""}`;
530
+ return memo.length > 0 ? `${memo}; ${add}` : `${add}`;
531
+ }, "")) != null ? _b : "unknown error";
532
+ throw new Error(`Token list failed validation: ${validationErrors}`);
533
+ }
534
+ return json;
485
535
  }
486
- return json;
487
- }
488
- throw new Error("Unrecognized list URL protocol.");
536
+ throw new Error("Unrecognized list URL protocol.");
537
+ });
489
538
  }
490
- var import_ajv, tokenListValidator;
539
+ var import_remove, import_ajv, tokenListValidator;
491
540
  var init_getTokenList = __esm({
492
541
  "react/getTokenList.ts"() {
493
542
  "use strict";
494
543
  init_uriToHttp();
544
+ import_remove = __toESM(require("lodash/remove"));
495
545
  import_ajv = __toESM(require("ajv"));
496
546
  init_pancakeswap();
497
547
  tokenListValidator = new import_ajv.default({ allErrors: true }).compile(pancakeswap_default);
@@ -534,6 +584,9 @@ var acceptListUpdate = (0, import_toolkit.createAction)("lists/acceptListUpdate"
534
584
  var rejectVersionUpdate = (0, import_toolkit.createAction)("lists/rejectVersionUpdate");
535
585
  var updateListVersion = (0, import_toolkit.createAction)("lists/updateListVersion");
536
586
 
587
+ // src/wrappedTokenInfo.ts
588
+ var import_swap_sdk_core = require("@pancakeswap/swap-sdk-core");
589
+
537
590
  // src/getVersionUpgrade.ts
538
591
  function getVersionUpgrade(base, update) {
539
592
  if (update.major > base.major) {
@@ -561,9 +614,9 @@ var NEW_LIST_STATE = {
561
614
  var createTokenListReducer = (initialState, DEFAULT_LIST_OF_LISTS, DEFAULT_ACTIVE_LIST_URLS) => (0, import_toolkit2.createReducer)(
562
615
  initialState,
563
616
  (builder) => builder.addCase(fetchTokenList.pending, (state, { payload: { requestId, url } }) => {
564
- var _a, _b;
565
- const current = ((_a = state.byUrl[url]) == null ? void 0 : _a.current) ?? null;
566
- const pendingUpdate = ((_b = state.byUrl[url]) == null ? void 0 : _b.pendingUpdate) ?? null;
617
+ var _a, _b, _c, _d;
618
+ const current = (_b = (_a = state.byUrl[url]) == null ? void 0 : _a.current) != null ? _b : null;
619
+ const pendingUpdate = (_d = (_c = state.byUrl[url]) == null ? void 0 : _c.pendingUpdate) != null ? _d : null;
567
620
  state.byUrl[url] = {
568
621
  current,
569
622
  pendingUpdate,
@@ -579,38 +632,35 @@ var createTokenListReducer = (initialState, DEFAULT_LIST_OF_LISTS, DEFAULT_ACTIV
579
632
  if (upgradeType === 0 /* NONE */)
580
633
  return;
581
634
  if (loadingRequestId === null || loadingRequestId === requestId) {
582
- state.byUrl[url] = {
583
- ...state.byUrl[url],
635
+ state.byUrl[url] = __spreadProps(__spreadValues({}, state.byUrl[url]), {
584
636
  loadingRequestId: null,
585
637
  error: null,
586
638
  current,
587
639
  pendingUpdate: tokenList
588
- };
640
+ });
589
641
  }
590
642
  } else {
591
643
  if (DEFAULT_ACTIVE_LIST_URLS.includes(url) && state.activeListUrls && !state.activeListUrls.includes(url)) {
592
644
  state.activeListUrls.push(url);
593
645
  }
594
- state.byUrl[url] = {
595
- ...state.byUrl[url],
646
+ state.byUrl[url] = __spreadProps(__spreadValues({}, state.byUrl[url]), {
596
647
  loadingRequestId: null,
597
648
  error: null,
598
649
  current: tokenList,
599
650
  pendingUpdate: null
600
- };
651
+ });
601
652
  }
602
653
  }).addCase(fetchTokenList.rejected, (state, { payload: { url, requestId, errorMessage } }) => {
603
654
  var _a;
604
655
  if (((_a = state.byUrl[url]) == null ? void 0 : _a.loadingRequestId) !== requestId) {
605
656
  return;
606
657
  }
607
- state.byUrl[url] = {
608
- ...state.byUrl[url],
658
+ state.byUrl[url] = __spreadProps(__spreadValues({}, state.byUrl[url]), {
609
659
  loadingRequestId: null,
610
660
  error: errorMessage,
611
661
  current: null,
612
662
  pendingUpdate: null
613
- };
663
+ });
614
664
  }).addCase(addList, (state, { payload: url }) => {
615
665
  if (!state.byUrl[url]) {
616
666
  state.byUrl[url] = NEW_LIST_STATE;
@@ -641,11 +691,10 @@ var createTokenListReducer = (initialState, DEFAULT_LIST_OF_LISTS, DEFAULT_ACTIV
641
691
  if (!((_a = state.byUrl[url]) == null ? void 0 : _a.pendingUpdate)) {
642
692
  throw new Error("accept list update called without pending update");
643
693
  }
644
- state.byUrl[url] = {
645
- ...state.byUrl[url],
694
+ state.byUrl[url] = __spreadProps(__spreadValues({}, state.byUrl[url]), {
646
695
  pendingUpdate: null,
647
696
  current: state.byUrl[url].pendingUpdate
648
- };
697
+ });
649
698
  }).addCase(updateListVersion, (state) => {
650
699
  if (!state.lastInitializedDefaultListOfLists) {
651
700
  state.byUrl = initialState.byUrl;
@@ -703,13 +752,13 @@ var createListsAtom = (storeName, reducer, initialState) => {
703
752
  });
704
753
  return {
705
754
  db,
706
- getItem: async (key) => {
707
- const value = await db.getItem(key);
755
+ getItem: (key) => __async(this, null, function* () {
756
+ const value = yield db.getItem(key);
708
757
  if (value) {
709
758
  return value;
710
759
  }
711
760
  return initialState;
712
- },
761
+ }),
713
762
  setItem: (k, v) => {
714
763
  if (v === EMPTY)
715
764
  return;
@@ -724,6 +773,7 @@ var createListsAtom = (storeName, reducer, initialState) => {
724
773
  const listsStorageAtom = (0, import_utils.atomWithStorage)(
725
774
  "lists",
726
775
  EMPTY,
776
+ // @ts-ignore
727
777
  IndexedDBStorage("lists")
728
778
  );
729
779
  const defaultStateAtom = (0, import_jotai.atom)(
@@ -757,12 +807,12 @@ var import_toolkit3 = require("@reduxjs/toolkit");
757
807
  var import_react = require("react");
758
808
  function useFetchListCallback(dispatch) {
759
809
  return (0, import_react.useCallback)(
760
- async (listUrl, sendDispatch = true) => {
810
+ (listUrl, sendDispatch = true) => __async(this, null, function* () {
761
811
  const requestId = (0, import_toolkit3.nanoid)();
762
812
  if (sendDispatch) {
763
813
  dispatch(fetchTokenList.pending({ requestId, url: listUrl }));
764
814
  }
765
- const getTokenList2 = (await Promise.resolve().then(() => (init_getTokenList(), getTokenList_exports))).default;
815
+ const getTokenList2 = (yield Promise.resolve().then(() => (init_getTokenList(), getTokenList_exports))).default;
766
816
  return getTokenList2(listUrl).then((tokenList) => {
767
817
  if (sendDispatch) {
768
818
  dispatch(fetchTokenList.fulfilled({ url: listUrl, tokenList, requestId }));
@@ -775,7 +825,7 @@ function useFetchListCallback(dispatch) {
775
825
  }
776
826
  throw error;
777
827
  });
778
- },
828
+ }),
779
829
  [dispatch]
780
830
  );
781
831
  }
package/dist/react.mjs CHANGED
@@ -1,6 +1,11 @@
1
1
  import {
2
2
  getVersionUpgrade
3
3
  } from "./chunk-YBVZDUCZ.mjs";
4
+ import {
5
+ __async,
6
+ __spreadProps,
7
+ __spreadValues
8
+ } from "./chunk-2L3ZO4UM.mjs";
4
9
 
5
10
  // react/reducer.ts
6
11
  import { createReducer } from "@reduxjs/toolkit";
@@ -30,9 +35,9 @@ var NEW_LIST_STATE = {
30
35
  var createTokenListReducer = (initialState, DEFAULT_LIST_OF_LISTS, DEFAULT_ACTIVE_LIST_URLS) => createReducer(
31
36
  initialState,
32
37
  (builder) => builder.addCase(fetchTokenList.pending, (state, { payload: { requestId, url } }) => {
33
- var _a, _b;
34
- const current = ((_a = state.byUrl[url]) == null ? void 0 : _a.current) ?? null;
35
- const pendingUpdate = ((_b = state.byUrl[url]) == null ? void 0 : _b.pendingUpdate) ?? null;
38
+ var _a, _b, _c, _d;
39
+ const current = (_b = (_a = state.byUrl[url]) == null ? void 0 : _a.current) != null ? _b : null;
40
+ const pendingUpdate = (_d = (_c = state.byUrl[url]) == null ? void 0 : _c.pendingUpdate) != null ? _d : null;
36
41
  state.byUrl[url] = {
37
42
  current,
38
43
  pendingUpdate,
@@ -48,38 +53,35 @@ var createTokenListReducer = (initialState, DEFAULT_LIST_OF_LISTS, DEFAULT_ACTIV
48
53
  if (upgradeType === 0 /* NONE */)
49
54
  return;
50
55
  if (loadingRequestId === null || loadingRequestId === requestId) {
51
- state.byUrl[url] = {
52
- ...state.byUrl[url],
56
+ state.byUrl[url] = __spreadProps(__spreadValues({}, state.byUrl[url]), {
53
57
  loadingRequestId: null,
54
58
  error: null,
55
59
  current,
56
60
  pendingUpdate: tokenList
57
- };
61
+ });
58
62
  }
59
63
  } else {
60
64
  if (DEFAULT_ACTIVE_LIST_URLS.includes(url) && state.activeListUrls && !state.activeListUrls.includes(url)) {
61
65
  state.activeListUrls.push(url);
62
66
  }
63
- state.byUrl[url] = {
64
- ...state.byUrl[url],
67
+ state.byUrl[url] = __spreadProps(__spreadValues({}, state.byUrl[url]), {
65
68
  loadingRequestId: null,
66
69
  error: null,
67
70
  current: tokenList,
68
71
  pendingUpdate: null
69
- };
72
+ });
70
73
  }
71
74
  }).addCase(fetchTokenList.rejected, (state, { payload: { url, requestId, errorMessage } }) => {
72
75
  var _a;
73
76
  if (((_a = state.byUrl[url]) == null ? void 0 : _a.loadingRequestId) !== requestId) {
74
77
  return;
75
78
  }
76
- state.byUrl[url] = {
77
- ...state.byUrl[url],
79
+ state.byUrl[url] = __spreadProps(__spreadValues({}, state.byUrl[url]), {
78
80
  loadingRequestId: null,
79
81
  error: errorMessage,
80
82
  current: null,
81
83
  pendingUpdate: null
82
- };
84
+ });
83
85
  }).addCase(addList, (state, { payload: url }) => {
84
86
  if (!state.byUrl[url]) {
85
87
  state.byUrl[url] = NEW_LIST_STATE;
@@ -110,11 +112,10 @@ var createTokenListReducer = (initialState, DEFAULT_LIST_OF_LISTS, DEFAULT_ACTIV
110
112
  if (!((_a = state.byUrl[url]) == null ? void 0 : _a.pendingUpdate)) {
111
113
  throw new Error("accept list update called without pending update");
112
114
  }
113
- state.byUrl[url] = {
114
- ...state.byUrl[url],
115
+ state.byUrl[url] = __spreadProps(__spreadValues({}, state.byUrl[url]), {
115
116
  pendingUpdate: null,
116
117
  current: state.byUrl[url].pendingUpdate
117
- };
118
+ });
118
119
  }).addCase(updateListVersion, (state) => {
119
120
  if (!state.lastInitializedDefaultListOfLists) {
120
121
  state.byUrl = initialState.byUrl;
@@ -172,13 +173,13 @@ var createListsAtom = (storeName, reducer, initialState) => {
172
173
  });
173
174
  return {
174
175
  db,
175
- getItem: async (key) => {
176
- const value = await db.getItem(key);
176
+ getItem: (key) => __async(this, null, function* () {
177
+ const value = yield db.getItem(key);
177
178
  if (value) {
178
179
  return value;
179
180
  }
180
181
  return initialState;
181
- },
182
+ }),
182
183
  setItem: (k, v) => {
183
184
  if (v === EMPTY)
184
185
  return;
@@ -193,6 +194,7 @@ var createListsAtom = (storeName, reducer, initialState) => {
193
194
  const listsStorageAtom = atomWithStorage(
194
195
  "lists",
195
196
  EMPTY,
197
+ // @ts-ignore
196
198
  IndexedDBStorage("lists")
197
199
  );
198
200
  const defaultStateAtom = atom(
@@ -226,12 +228,12 @@ import { nanoid } from "@reduxjs/toolkit";
226
228
  import { useCallback } from "react";
227
229
  function useFetchListCallback(dispatch) {
228
230
  return useCallback(
229
- async (listUrl, sendDispatch = true) => {
231
+ (listUrl, sendDispatch = true) => __async(this, null, function* () {
230
232
  const requestId = nanoid();
231
233
  if (sendDispatch) {
232
234
  dispatch(fetchTokenList.pending({ requestId, url: listUrl }));
233
235
  }
234
- const getTokenList = (await import("./getTokenList-T45DK2AY.mjs")).default;
236
+ const getTokenList = (yield import("./getTokenList-2FAKUE6D.mjs")).default;
235
237
  return getTokenList(listUrl).then((tokenList) => {
236
238
  if (sendDispatch) {
237
239
  dispatch(fetchTokenList.fulfilled({ url: listUrl, tokenList, requestId }));
@@ -244,7 +246,7 @@ function useFetchListCallback(dispatch) {
244
246
  }
245
247
  throw error;
246
248
  });
247
- },
249
+ }),
248
250
  [dispatch]
249
251
  );
250
252
  }
@@ -1,4 +1,4 @@
1
- declare type ExtensionValue = string | number | boolean | null | undefined;
1
+ type ExtensionValue = string | number | boolean | null | undefined;
2
2
  interface TokenInfo {
3
3
  readonly chainId: number;
4
4
  readonly address: string;
package/package.json CHANGED
@@ -1,30 +1,30 @@
1
1
  {
2
2
  "name": "@pancakeswap/token-lists",
3
- "version": "0.0.4",
4
- "sideEffects": false,
3
+ "version": "0.0.5",
5
4
  "main": "./dist/index.js",
6
5
  "module": "./dist/index.mjs",
7
6
  "types": "./dist/index.d.ts",
8
7
  "scripts": {
9
8
  "build": "tsup",
10
9
  "dev": "tsup --watch",
11
- "test": "vitest --run",
12
10
  "prepublishOnly": "yarn run build",
13
11
  "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist"
14
12
  },
15
13
  "dependencies": {
16
14
  "ajv": "^6.12.3",
15
+ "lodash": "^4.17.21",
17
16
  "@pancakeswap/swap-sdk-core": "*"
18
17
  },
19
18
  "peerDependencies": {
20
19
  "@reduxjs/toolkit": "^1.9.1",
21
20
  "localforage": "^1.10.0",
22
- "jotai": "^1.11.1",
21
+ "jotai": "^1.13.1",
23
22
  "react": "^18.2.0"
24
23
  },
25
24
  "devDependencies": {
26
25
  "@reduxjs/toolkit": "^1.9.1",
27
- "react": "^18.2.0"
26
+ "react": "^18.2.0",
27
+ "tsup": "^6.6.3"
28
28
  },
29
29
  "exports": {
30
30
  ".": {
@@ -1,7 +1,8 @@
1
1
  /* eslint-disable no-continue */
2
2
  /* eslint-disable no-await-in-loop */
3
- import { TokenList } from '@pancakeswap/token-lists'
3
+ import { TokenList, TokenInfo } from '@pancakeswap/token-lists'
4
4
  import uriToHttp from '@pancakeswap/utils/uriToHttp'
5
+ import remove from 'lodash/remove'
5
6
  import Ajv from 'ajv'
6
7
  import schema from '../schema/pancakeswap.json'
7
8
 
@@ -32,6 +33,11 @@ export default async function getTokenList(listUrl: string): Promise<TokenList>
32
33
  }
33
34
 
34
35
  const json = await response.json()
36
+ if (json.tokens) {
37
+ remove<TokenInfo>(json.tokens, (token) => {
38
+ return token.symbol ? token.symbol.length === 0 : true
39
+ })
40
+ }
35
41
  if (!tokenListValidator(json)) {
36
42
  const validationErrors: string =
37
43
  tokenListValidator.errors?.reduce<string>((memo, error) => {
@@ -1,5 +1,6 @@
1
1
  import { describe, it, expect, beforeEach } from 'vitest'
2
- import { createStore, Store } from 'redux'
2
+ import { Store } from 'redux'
3
+ import { configureStore } from '@reduxjs/toolkit'
3
4
 
4
5
  import { fetchTokenList, acceptListUpdate, addList, removeList, enableList, updateListVersion } from './actions'
5
6
  import { ListsState, createTokenListReducer, NEW_LIST_STATE } from './reducer'
@@ -43,13 +44,12 @@ const MAJOR_UPDATED_STUB_LIST = {
43
44
  version: { ...STUB_TOKEN_LIST.version, major: STUB_TOKEN_LIST.version.major + 1 },
44
45
  }
45
46
 
46
- describe('list reducer', () => {
47
+ describe.skip('list reducer', () => {
47
48
  let store: Store<ListsState>
48
49
 
49
50
  beforeEach(() => {
50
- store = createStore(reducer, {
51
- byUrl: {},
52
- activeListUrls: undefined,
51
+ store = configureStore({
52
+ reducer,
53
53
  })
54
54
  })
55
55