@kheopskit/core 0.1.0 → 0.1.2

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/dist/index.mjs CHANGED
@@ -119,6 +119,7 @@ var hydrateAccount = (cached) => {
119
119
  id: cached.id,
120
120
  platform: "ethereum",
121
121
  address: cached.address,
122
+ chainId: cached.chainId,
122
123
  walletId: cached.walletId,
123
124
  walletName: cached.walletName,
124
125
  isWalletDefault: false,
@@ -141,6 +142,7 @@ var serializeAccount = (account) => ({
141
142
  platform: account.platform,
142
143
  address: account.address,
143
144
  name: "name" in account ? account.name : void 0,
145
+ chainId: account.platform === "ethereum" ? account.chainId : void 0,
144
146
  walletId: account.walletId,
145
147
  walletName: account.walletName
146
148
  });
@@ -153,7 +155,8 @@ var noopStorage = {
153
155
  removeItem: () => {
154
156
  }
155
157
  };
156
- var safeLocalStorage = (() => {
158
+ var _safeLocalStorage = null;
159
+ var createSafeLocalStorage = () => {
157
160
  if (typeof window === "undefined") return noopStorage;
158
161
  try {
159
162
  const testKey = "__kheopskit_test__";
@@ -176,7 +179,23 @@ var safeLocalStorage = (() => {
176
179
  } catch {
177
180
  return noopStorage;
178
181
  }
179
- })();
182
+ };
183
+ var getSafeLocalStorage = () => {
184
+ if (_safeLocalStorage === null) {
185
+ _safeLocalStorage = createSafeLocalStorage();
186
+ }
187
+ return _safeLocalStorage;
188
+ };
189
+ var safeLocalStorage = {
190
+ getItem: (key) => getSafeLocalStorage().getItem(key),
191
+ setItem: (key, value) => getSafeLocalStorage().setItem(key, value),
192
+ removeItem: (key) => getSafeLocalStorage().removeItem(key),
193
+ subscribe: (key, callback) => {
194
+ const storage = getSafeLocalStorage();
195
+ return storage.subscribe?.(key, callback) ?? (() => {
196
+ });
197
+ }
198
+ };
180
199
  var parseCookie = (cookieString, key) => {
181
200
  if (!cookieString) return null;
182
201
  for (const cookie of cookieString.split(";")) {
@@ -298,16 +317,21 @@ var setCachedIcons = (icons) => {
298
317
  };
299
318
 
300
319
  // src/api/appKit.ts
301
- import { createAppKit } from "@reown/appkit/core";
302
320
  import {
303
321
  BehaviorSubject,
304
322
  combineLatest,
305
323
  distinctUntilChanged,
324
+ from,
306
325
  map,
307
326
  Observable,
308
327
  of,
309
- shareReplay
328
+ shareReplay,
329
+ switchMap
310
330
  } from "rxjs";
331
+ var loadAppKit = async () => {
332
+ const { createAppKit } = await import("@reown/appkit/core");
333
+ return createAppKit;
334
+ };
311
335
  var WALLET_CONNECT_ICON = "data:image/svg+xml;base64,PHN2ZyBmaWxsPSJub25lIiBoZWlnaHQ9IjQwMCIgdmlld0JveD0iMCAwIDQwMCA0MDAiIHdpZHRoPSI0MDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxjbGlwUGF0aCBpZD0iYSI+PHBhdGggZD0ibTAgMGg0MDB2NDAwaC00MDB6Ii8+PC9jbGlwUGF0aD48ZyBjbGlwLXBhdGg9InVybCgjYSkiPjxjaXJjbGUgY3g9IjIwMCIgY3k9IjIwMCIgZmlsbD0iIzMzOTZmZiIgcj0iMTk5LjUiIHN0cm9rZT0iIzY2YjFmZiIvPjxwYXRoIGQ9Im0xMjIuNTE5IDE0OC45NjVjNDIuNzkxLTQxLjcyOSAxMTIuMTcxLTQxLjcyOSAxNTQuOTYyIDBsNS4xNSA1LjAyMmMyLjE0IDIuMDg2IDIuMTQgNS40NjkgMCA3LjU1NWwtMTcuNjE3IDE3LjE4Yy0xLjA3IDEuMDQzLTIuODA0IDEuMDQzLTMuODc0IDBsLTcuMDg3LTYuOTExYy0yOS44NTMtMjkuMTExLTc4LjI1My0yOS4xMTEtMTA4LjEwNiAwbC03LjU5IDcuNDAxYy0xLjA3IDEuMDQzLTIuODA0IDEuMDQzLTMuODc0IDBsLTE3LjYxNy0xNy4xOGMtMi4xNC0yLjA4Ni0yLjE0LTUuNDY5IDAtNy41NTV6bTE5MS4zOTcgMzUuNTI5IDE1LjY3OSAxNS4yOWMyLjE0IDIuMDg2IDIuMTQgNS40NjkgMCA3LjU1NWwtNzAuNyA2OC45NDRjLTIuMTM5IDIuMDg3LTUuNjA4IDIuMDg3LTcuNzQ4IDBsLTUwLjE3OC00OC45MzFjLS41MzUtLjUyMi0xLjQwMi0uNTIyLTEuOTM3IDBsLTUwLjE3OCA0OC45MzFjLTIuMTM5IDIuMDg3LTUuNjA4IDIuMDg3LTcuNzQ4IDBsLTcwLjcwMTUtNjguOTQ1Yy0yLjEzOTYtMi4wODYtMi4xMzk2LTUuNDY5IDAtNy41NTVsMTUuNjc5NS0xNS4yOWMyLjEzOTYtMi4wODYgNS42MDg1LTIuMDg2IDcuNzQ4MSAwbDUwLjE3ODkgNDguOTMyYy41MzUuNTIyIDEuNDAyLjUyMiAxLjkzNyAwbDUwLjE3Ny00OC45MzJjMi4xMzktMi4wODcgNS42MDgtMi4wODcgNy43NDggMGw1MC4xNzkgNDguOTMyYy41MzUuNTIyIDEuNDAyLjUyMiAxLjkzNyAwbDUwLjE3OS00OC45MzFjMi4xMzktMi4wODcgNS42MDgtMi4wODcgNy43NDggMHoiIGZpbGw9IiNmZmYiLz48L2c+PC9zdmc+";
312
336
  var cachedAppKit = null;
313
337
  var resetAppKitCache = () => {
@@ -315,84 +339,90 @@ var resetAppKitCache = () => {
315
339
  };
316
340
  var getAppKitWallets$ = (config) => {
317
341
  if (!config.walletConnect) return of({});
342
+ if (typeof window === "undefined") return of({});
318
343
  const walletConnect = config.walletConnect;
319
344
  if (!cachedAppKit) {
320
- cachedAppKit = new Observable((subscriber) => {
321
- const appKit = createAppKit({
322
- projectId: walletConnect.projectId,
323
- metadata: walletConnect.metadata,
324
- networks: walletConnect.networks,
325
- themeMode: walletConnect.themeMode,
326
- themeVariables: walletConnect.themeVariables,
327
- universalProviderConfigOverride: {
328
- methods: {
329
- polkadot: ["polkadot_signTransaction", "polkadot_signMessage"]
330
- }
331
- },
332
- allWallets: "HIDE",
333
- debug: config.debug,
334
- allowUnsupportedChain: true
335
- });
336
- const status$ = new BehaviorSubject({
337
- isPolkadotConnected: false,
338
- isEthereumConnected: false
339
- });
340
- const unsubProviders = appKit.subscribeProviders((providers) => {
341
- status$.next({
342
- isPolkadotConnected: !!providers.polkadot,
343
- isEthereumConnected: !!providers.eip155
344
- });
345
- });
346
- const polkadotWallet$ = appKit.chainNamespaces.includes("polkadot") ? status$.pipe(
347
- map((s) => s.isPolkadotConnected),
348
- distinctUntilChanged(),
349
- map((isConnected) => {
350
- const walletInfo = appKit.getWalletInfo();
351
- return {
352
- id: getWalletId("polkadot", "walletconnect"),
353
- platform: "polkadot",
354
- type: "appKit",
355
- appKit,
356
- // todo maybe we dont want to expose the appKit instance
357
- name: walletInfo?.name ?? "WalletConnect",
358
- icon: walletInfo?.icon ?? WALLET_CONNECT_ICON,
359
- connect: async () => {
360
- if (!isConnected) await appKit.open();
345
+ cachedAppKit = from(loadAppKit()).pipe(
346
+ switchMap((createAppKit) => {
347
+ return new Observable((subscriber) => {
348
+ const appKit = createAppKit({
349
+ projectId: walletConnect.projectId,
350
+ metadata: walletConnect.metadata,
351
+ networks: walletConnect.networks,
352
+ themeMode: walletConnect.themeMode,
353
+ themeVariables: walletConnect.themeVariables,
354
+ universalProviderConfigOverride: {
355
+ methods: {
356
+ polkadot: ["polkadot_signTransaction", "polkadot_signMessage"]
357
+ }
361
358
  },
362
- disconnect: () => {
363
- if (isConnected) appKit.disconnect();
364
- },
365
- isConnected
366
- };
367
- })
368
- ) : of(void 0);
369
- const ethereumWallet$ = appKit.chainNamespaces.includes("eip155") ? status$.pipe(
370
- map((s) => s.isEthereumConnected),
371
- distinctUntilChanged(),
372
- map((isConnected) => {
373
- const walletInfo = appKit.getWalletInfo();
374
- return {
375
- id: getWalletId("ethereum", "walletconnect"),
376
- platform: "ethereum",
377
- type: "appKit",
378
- appKit,
379
- name: walletInfo?.name ?? "WalletConnect",
380
- icon: walletInfo?.icon ?? WALLET_CONNECT_ICON,
381
- connect: () => appKit.open(),
382
- disconnect: () => appKit.disconnect(),
383
- isConnected
359
+ allWallets: "HIDE",
360
+ debug: config.debug,
361
+ allowUnsupportedChain: true
362
+ });
363
+ const status$ = new BehaviorSubject({
364
+ isPolkadotConnected: false,
365
+ isEthereumConnected: false
366
+ });
367
+ const unsubProviders = appKit.subscribeProviders((providers) => {
368
+ status$.next({
369
+ isPolkadotConnected: !!providers.polkadot,
370
+ isEthereumConnected: !!providers.eip155
371
+ });
372
+ });
373
+ const polkadotWallet$ = appKit.chainNamespaces.includes("polkadot") ? status$.pipe(
374
+ map((s) => s.isPolkadotConnected),
375
+ distinctUntilChanged(),
376
+ map((isConnected) => {
377
+ const walletInfo = appKit.getWalletInfo();
378
+ return {
379
+ id: getWalletId("polkadot", "walletconnect"),
380
+ platform: "polkadot",
381
+ type: "appKit",
382
+ appKit,
383
+ // todo maybe we dont want to expose the appKit instance
384
+ name: walletInfo?.name ?? "WalletConnect",
385
+ icon: walletInfo?.icon ?? WALLET_CONNECT_ICON,
386
+ connect: async () => {
387
+ if (!isConnected) await appKit.open();
388
+ },
389
+ disconnect: () => {
390
+ if (isConnected) appKit.disconnect();
391
+ },
392
+ isConnected
393
+ };
394
+ })
395
+ ) : of(void 0);
396
+ const ethereumWallet$ = appKit.chainNamespaces.includes("eip155") ? status$.pipe(
397
+ map((s) => s.isEthereumConnected),
398
+ distinctUntilChanged(),
399
+ map((isConnected) => {
400
+ const walletInfo = appKit.getWalletInfo();
401
+ return {
402
+ id: getWalletId("ethereum", "walletconnect"),
403
+ platform: "ethereum",
404
+ type: "appKit",
405
+ appKit,
406
+ name: walletInfo?.name ?? "WalletConnect",
407
+ icon: walletInfo?.icon ?? WALLET_CONNECT_ICON,
408
+ connect: () => appKit.open(),
409
+ disconnect: () => appKit.disconnect(),
410
+ isConnected
411
+ };
412
+ })
413
+ ) : of(void 0);
414
+ const sub = combineLatest({
415
+ polkadot: polkadotWallet$,
416
+ ethereum: ethereumWallet$
417
+ }).subscribe(subscriber);
418
+ return () => {
419
+ sub.unsubscribe();
420
+ unsubProviders();
384
421
  };
385
- })
386
- ) : of(void 0);
387
- const sub = combineLatest({
388
- polkadot: polkadotWallet$,
389
- ethereum: ethereumWallet$
390
- }).subscribe(subscriber);
391
- return () => {
392
- sub.unsubscribe();
393
- unsubProviders();
394
- };
395
- }).pipe(shareReplay({ refCount: true, bufferSize: 1 }));
422
+ });
423
+ }),
424
+ shareReplay({ refCount: true, bufferSize: 1 })
425
+ );
396
426
  }
397
427
  return cachedAppKit;
398
428
  };
@@ -581,7 +611,7 @@ import {
581
611
  of as of2,
582
612
  ReplaySubject,
583
613
  shareReplay as shareReplay3,
584
- switchMap
614
+ switchMap as switchMap2
585
615
  } from "rxjs";
586
616
  import {
587
617
  createWalletClient,
@@ -665,12 +695,37 @@ var getWalletAccountId = (walletId, address) => {
665
695
  };
666
696
 
667
697
  // src/api/ethereum/accounts.ts
698
+ var normalizeEvmChainId = (value) => {
699
+ let raw = value;
700
+ if (typeof raw === "string" && raw.startsWith("eip155:")) {
701
+ raw = raw.slice("eip155:".length);
702
+ }
703
+ if (typeof raw === "bigint") {
704
+ return raw >= 0n ? Number(raw) : void 0;
705
+ }
706
+ if (typeof raw === "number") {
707
+ return Number.isInteger(raw) && raw >= 0 ? raw : void 0;
708
+ }
709
+ if (typeof raw === "string") {
710
+ const normalized = raw.trim().toLowerCase();
711
+ if (!normalized) return void 0;
712
+ const parsed = normalized.startsWith("0x") ? Number.parseInt(normalized, 16) : Number.parseInt(normalized, 10);
713
+ return Number.isNaN(parsed) ? void 0 : parsed;
714
+ }
715
+ return void 0;
716
+ };
717
+ var toCaipNetworkId = (value) => {
718
+ const chainId = normalizeEvmChainId(value);
719
+ return chainId === void 0 ? void 0 : `eip155:${chainId}`;
720
+ };
668
721
  var getInjectedWalletAccounts$ = (wallet) => {
669
722
  if (!wallet.isConnected) return of2([]);
670
723
  return getCachedObservable$(
671
724
  `accounts:${wallet.id}`,
672
725
  () => new Observable3((subscriber) => {
673
- const getAccount = (address, i) => {
726
+ const addresses$ = new ReplaySubject(1);
727
+ const chainId$ = new ReplaySubject(1);
728
+ const getAccount = (address, i, chainId) => {
674
729
  const client = createWalletClient({
675
730
  account: address,
676
731
  transport: custom(wallet.provider)
@@ -680,26 +735,42 @@ var getInjectedWalletAccounts$ = (wallet) => {
680
735
  platform: "ethereum",
681
736
  client,
682
737
  address: getAddress(address),
738
+ chainId,
683
739
  walletName: wallet.name,
684
740
  walletId: wallet.id,
685
741
  isWalletDefault: i === 0
686
742
  };
687
743
  };
688
- const handleAccountsChanged = (addresses) => {
689
- subscriber.next(addresses.map(getAccount));
744
+ const handleAccountsChanged = (addrs) => {
745
+ addresses$.next(addrs);
746
+ };
747
+ const handleChainChanged = (chainIdHex) => {
748
+ chainId$.next(normalizeEvmChainId(chainIdHex));
749
+ };
750
+ const handleDisconnect = () => {
751
+ chainId$.next(void 0);
690
752
  };
691
753
  wallet.provider.on("accountsChanged", handleAccountsChanged);
692
- wallet.provider.request({ method: "eth_accounts" }).then((addresses) => {
693
- subscriber.next(addresses.map(getAccount));
694
- }).catch((err) => {
754
+ wallet.provider.on("chainChanged", handleChainChanged);
755
+ wallet.provider.on("disconnect", handleDisconnect);
756
+ wallet.provider.request({ method: "eth_accounts" }).then((addrs) => addresses$.next(addrs)).catch((err) => {
695
757
  console.error("Failed to get accounts", err);
696
- subscriber.next([]);
758
+ addresses$.next([]);
697
759
  });
760
+ wallet.provider.request({ method: "eth_chainId" }).then(handleChainChanged).catch(() => chainId$.next(void 0));
761
+ const sub = combineLatest3([addresses$, chainId$]).pipe(
762
+ map3(
763
+ ([addresses, chainId]) => addresses.map((addr, i) => getAccount(addr, i, chainId))
764
+ )
765
+ ).subscribe(subscriber);
698
766
  return () => {
699
767
  wallet.provider.removeListener(
700
768
  "accountsChanged",
701
769
  handleAccountsChanged
702
770
  );
771
+ wallet.provider.removeListener("chainChanged", handleChainChanged);
772
+ wallet.provider.removeListener("disconnect", handleDisconnect);
773
+ sub.unsubscribe();
703
774
  };
704
775
  }).pipe(shareReplay3({ refCount: true, bufferSize: 1 }))
705
776
  );
@@ -728,24 +799,29 @@ var getAppKitAccounts$ = (wallet) => {
728
799
  () => new Observable3((subscriber) => {
729
800
  const caipNetworkId$ = new ReplaySubject(1);
730
801
  const handleChainChanged = (chainId) => {
731
- caipNetworkId$.next(`eip155:${chainId}`);
802
+ const caipNetworkId = toCaipNetworkId(chainId);
803
+ if (caipNetworkId) {
804
+ caipNetworkId$.next(caipNetworkId);
805
+ }
732
806
  };
733
807
  provider.on("chainChanged", handleChainChanged);
734
808
  provider.request({ method: "eth_chainId" }).then(handleChainChanged);
735
809
  const sub = caipNetworkId$.pipe(
736
810
  distinctUntilChanged2(),
737
- map3(
738
- (caipNetworkId) => custom(
811
+ map3((caipNetworkId) => {
812
+ const chainId = normalizeEvmChainId(caipNetworkId);
813
+ const transport = custom(
739
814
  wrapWalletConnectProvider(
740
815
  provider,
741
816
  // biome-ignore lint/style/noNonNullAssertion: legacy
742
817
  provider.session.topic,
743
818
  caipNetworkId
744
819
  )
745
- )
746
- ),
820
+ );
821
+ return { transport, chainId };
822
+ }),
747
823
  map3(
748
- (transport) => account.allAccounts.map((acc, i) => {
824
+ ({ transport, chainId }) => account.allAccounts.map((acc, i) => {
749
825
  const client = createWalletClient({
750
826
  account: acc.address,
751
827
  transport
@@ -757,6 +833,7 @@ var getAppKitAccounts$ = (wallet) => {
757
833
  walletId: wallet.id,
758
834
  address: acc.address,
759
835
  client,
836
+ chainId,
760
837
  isWalletDefault: i === 0
761
838
  };
762
839
  })
@@ -772,7 +849,7 @@ var getAppKitAccounts$ = (wallet) => {
772
849
  var getEthereumAccounts$ = (ethereumWallets) => new Observable3((subscriber) => {
773
850
  const sub = ethereumWallets.pipe(
774
851
  map3((wallets) => wallets.filter((w) => w.isConnected)),
775
- switchMap((wallets) => {
852
+ switchMap2((wallets) => {
776
853
  return wallets.length ? combineLatest3([
777
854
  ...wallets.filter((w) => w.type === "injected").map(getInjectedWalletAccounts$),
778
855
  ...wallets.filter((w) => w.type === "appKit").map(getAppKitAccounts$)
@@ -791,7 +868,9 @@ var getEthereumAccounts$ = (ethereumWallets) => new Observable3((subscriber) =>
791
868
  );
792
869
  var isSameAccountsList = (a, b) => {
793
870
  if (a.length !== b.length) return false;
794
- return a.every((account, i) => account.id === b[i]?.id);
871
+ return a.every(
872
+ (account, i) => account.id === b[i]?.id && account.chainId === b[i]?.chainId
873
+ );
795
874
  };
796
875
 
797
876
  // src/api/polkadot/accounts.ts
@@ -805,7 +884,7 @@ import {
805
884
  Observable as Observable4,
806
885
  of as of3,
807
886
  shareReplay as shareReplay4,
808
- switchMap as switchMap2
887
+ switchMap as switchMap3
809
888
  } from "rxjs";
810
889
  var getInjectedWalletAccounts$2 = (wallet) => {
811
890
  if (!wallet.isConnected) return of3([]);
@@ -890,7 +969,7 @@ var getAppKitAccounts$2 = (wallet) => {
890
969
  var getPolkadotAccounts$ = (polkadotWallets$) => new Observable4((subscriber) => {
891
970
  const sub = polkadotWallets$.pipe(
892
971
  map4((wallets) => wallets.filter((w) => w.isConnected)),
893
- switchMap2(
972
+ switchMap3(
894
973
  (wallets) => wallets.length ? combineLatest4([
895
974
  ...wallets.filter((w) => w.type === "injected").map(getInjectedWalletAccounts$2),
896
975
  ...wallets.filter((w) => w.type === "appKit").map(getAppKitAccounts$2)
@@ -983,7 +1062,22 @@ var createKheopskitStore = (options = {}) => {
983
1062
  setCachedState
984
1063
  };
985
1064
  };
986
- var store = createKheopskitStore();
1065
+ var _defaultStore = null;
1066
+ var getDefaultStore = () => {
1067
+ if (_defaultStore === null) {
1068
+ _defaultStore = createKheopskitStore();
1069
+ }
1070
+ return _defaultStore;
1071
+ };
1072
+ var store = {
1073
+ get observable() {
1074
+ return getDefaultStore().observable;
1075
+ },
1076
+ addEnabledWalletId: (walletId) => getDefaultStore().addEnabledWalletId(walletId),
1077
+ removeEnabledWalletId: (walletId) => getDefaultStore().removeEnabledWalletId(walletId),
1078
+ getCachedState: () => getDefaultStore().getCachedState(),
1079
+ setCachedState: (wallets, accounts) => getDefaultStore().setCachedState(wallets, accounts)
1080
+ };
987
1081
  var isCompactStore = (value) => {
988
1082
  if (!value || typeof value !== "object" || Array.isArray(value)) return false;
989
1083
  if ("cachedWallets" in value || "cachedAccounts" in value) return false;
@@ -1002,7 +1096,8 @@ var toCompactStore = (data) => {
1002
1096
  (account) => [
1003
1097
  account.walletId,
1004
1098
  account.address,
1005
- account.name ?? null
1099
+ account.name ?? null,
1100
+ account.chainId ?? null
1006
1101
  ]
1007
1102
  );
1008
1103
  return {
@@ -1027,13 +1122,14 @@ var fromCompactStore = (data) => {
1027
1122
  };
1028
1123
  });
1029
1124
  const accounts = (data.a ?? []).map((item) => {
1030
- const [walletId, address, name] = item;
1125
+ const [walletId, address, name, chainId] = item;
1031
1126
  const { platform } = parseWalletId(walletId);
1032
1127
  return {
1033
1128
  id: getWalletAccountId(walletId, address),
1034
1129
  platform,
1035
1130
  address,
1036
1131
  name: name ?? void 0,
1132
+ chainId: chainId ?? void 0,
1037
1133
  walletId,
1038
1134
  walletName: walletNameMap.get(walletId) ?? walletId
1039
1135
  };
@@ -1524,14 +1620,18 @@ var getKheopskit$ = (config, ssrCookies, existingStore) => {
1524
1620
  var arraysEqual = (a, b) => a.length === b.length && a.every((v, i) => v === b[i]);
1525
1621
  var statesEqual = (a, b) => a.isHydrating === b.isHydrating && a.wallets.length === b.wallets.length && a.accounts.length === b.accounts.length && a.wallets.every(
1526
1622
  (w, i) => w.id === b.wallets[i]?.id && w.isConnected === b.wallets[i]?.isConnected
1527
- ) && a.accounts.every((acc, i) => acc.id === b.accounts[i]?.id);
1623
+ ) && a.accounts.every(
1624
+ (acc, i) => acc.id === b.accounts[i]?.id && (acc.platform !== "ethereum" || acc.chainId === b.accounts[i]?.chainId)
1625
+ );
1528
1626
  export {
1529
1627
  DEFAULT_STORAGE_KEY,
1530
1628
  clearAllCachedObservables,
1531
1629
  clearCachedObservable,
1532
1630
  createKheopskitStore,
1533
1631
  getCachedIcon,
1632
+ getDefaultStore,
1534
1633
  getKheopskit$,
1634
+ getSafeLocalStorage,
1535
1635
  hydrateAccount,
1536
1636
  hydrateWallet,
1537
1637
  resetAppKitCache,