@reown/appkit-core 1.3.1 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/dist/esm/src/controllers/AccountController.js +3 -1
  2. package/dist/esm/src/controllers/AccountController.js.map +1 -1
  3. package/dist/esm/src/controllers/ApiController.js +23 -16
  4. package/dist/esm/src/controllers/ApiController.js.map +1 -1
  5. package/dist/esm/src/controllers/ChainController.js +21 -68
  6. package/dist/esm/src/controllers/ChainController.js.map +1 -1
  7. package/dist/esm/src/controllers/ConnectionController.js +26 -25
  8. package/dist/esm/src/controllers/ConnectionController.js.map +1 -1
  9. package/dist/esm/src/controllers/ConnectorController.js +4 -4
  10. package/dist/esm/src/controllers/EnsController.js +1 -1
  11. package/dist/esm/src/controllers/EnsController.js.map +1 -1
  12. package/dist/esm/src/controllers/RouterController.js +1 -1
  13. package/dist/esm/src/controllers/RouterController.js.map +1 -1
  14. package/dist/esm/src/controllers/SendController.js +3 -2
  15. package/dist/esm/src/controllers/SendController.js.map +1 -1
  16. package/dist/esm/src/controllers/SnackController.js +10 -4
  17. package/dist/esm/src/controllers/SnackController.js.map +1 -1
  18. package/dist/esm/src/controllers/SwapController.js +22 -7
  19. package/dist/esm/src/controllers/SwapController.js.map +1 -1
  20. package/dist/esm/src/utils/StorageUtil.js +8 -0
  21. package/dist/esm/src/utils/StorageUtil.js.map +1 -1
  22. package/dist/esm/src/utils/SwapApiUtil.js +1 -1
  23. package/dist/esm/src/utils/SwapApiUtil.js.map +1 -1
  24. package/dist/esm/tests/controllers/AccountController.test.js +1 -1
  25. package/dist/esm/tests/controllers/AccountController.test.js.map +1 -1
  26. package/dist/esm/tests/controllers/ApiController.test.js +17 -17
  27. package/dist/esm/tests/controllers/ApiController.test.js.map +1 -1
  28. package/dist/esm/tests/controllers/ChainController.test.js +1 -1
  29. package/dist/esm/tests/controllers/ChainController.test.js.map +1 -1
  30. package/dist/esm/tests/controllers/ConnectionController.test.js +8 -12
  31. package/dist/esm/tests/controllers/ConnectionController.test.js.map +1 -1
  32. package/dist/esm/tests/controllers/ConnectorController.test.js +8 -8
  33. package/dist/esm/tests/controllers/ConnectorController.test.js.map +1 -1
  34. package/dist/esm/tests/controllers/EnsController.test.js +2 -2
  35. package/dist/esm/tests/controllers/EnsController.test.js.map +1 -1
  36. package/dist/esm/tests/controllers/SnackController.test.js +18 -0
  37. package/dist/esm/tests/controllers/SnackController.test.js.map +1 -1
  38. package/dist/esm/tests/controllers/SwapController.test.js +1 -1
  39. package/dist/esm/tests/controllers/SwapController.test.js.map +1 -1
  40. package/dist/esm/tests/utils/StorageUtil.test.js +4 -3
  41. package/dist/esm/tests/utils/StorageUtil.test.js.map +1 -1
  42. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  43. package/dist/types/src/controllers/ApiController.d.ts +5 -5
  44. package/dist/types/src/controllers/ChainController.d.ts +5 -7
  45. package/dist/types/src/controllers/ConnectionController.d.ts +15 -11
  46. package/dist/types/src/controllers/SnackController.d.ts +10 -1
  47. package/dist/types/src/utils/StorageUtil.d.ts +2 -0
  48. package/dist/types/src/utils/SwapApiUtil.d.ts +5 -1
  49. package/dist/types/src/utils/TypeUtil.d.ts +24 -16
  50. package/package.json +3 -3
@@ -15,10 +15,10 @@ export interface ApiControllerState {
15
15
  export declare const ApiController: {
16
16
  state: ApiControllerState;
17
17
  subscribeKey<K extends keyof ApiControllerState>(key: K, callback: (value: ApiControllerState[K]) => void): () => void;
18
- _getApiHeaders(): {
19
- 'x-project-id': string;
20
- 'x-sdk-type': "appkit";
21
- 'x-sdk-version': import("../utils/TypeUtil.js").SdkVersion;
18
+ _getSdkProperties(): {
19
+ projectId: string;
20
+ st: "appkit";
21
+ sv: import("../utils/TypeUtil.js").SdkVersion;
22
22
  };
23
23
  _filterOutExtensions(wallets: WcWallet[]): WcWallet[];
24
24
  _fetchWalletImage(imageId: string): Promise<void>;
@@ -36,7 +36,7 @@ export declare const ApiController: {
36
36
  searchWalletByIds({ ids }: {
37
37
  ids: string[];
38
38
  }): Promise<void>;
39
- searchWallet({ search }: Pick<ApiGetWalletsRequest, 'search'>): Promise<void>;
39
+ searchWallet({ search, badge }: Pick<ApiGetWalletsRequest, 'search' | 'badge'>): Promise<void>;
40
40
  reFetchWallets(): Promise<void>;
41
41
  prefetch(): void;
42
42
  fetchAnalyticsConfig(): Promise<void>;
@@ -1,4 +1,4 @@
1
- import type { AdapterNetworkState, ChainAdapter, Connector } from '../utils/TypeUtil.js';
1
+ import type { AdapterAccountState, AdapterNetworkState, ChainAdapter, Connector } from '../utils/TypeUtil.js';
2
2
  import { type AccountControllerState } from './AccountController.js';
3
3
  import { type CaipAddress, type CaipNetwork, type CaipNetworkId, type ChainNamespace } from '@reown/appkit-common';
4
4
  export interface ChainControllerState {
@@ -10,16 +10,14 @@ export interface ChainControllerState {
10
10
  universalAdapter: Pick<ChainAdapter, 'networkControllerClient' | 'connectionControllerClient'>;
11
11
  noAdapters: boolean;
12
12
  }
13
- type ChainsInitializerAdapter = Pick<ChainAdapter, 'connectionControllerClient' | 'networkControllerClient' | 'defaultNetwork' | 'chainNamespace' | 'adapterType' | 'caipNetworks'>;
14
13
  export declare const ChainController: {
15
14
  state: ChainControllerState;
16
15
  subscribe(callback: (value: ChainControllerState) => void): () => void;
17
16
  subscribeKey<K extends keyof ChainControllerState>(key: K, callback: (value: ChainControllerState[K]) => void): () => void;
18
17
  subscribeChainProp<K_1 extends keyof ChainAdapter>(property: K_1, callback: (value: ChainAdapter[K_1] | undefined) => void, chain?: ChainNamespace): () => void;
19
- initialize(adapters: ChainsInitializerAdapter[]): void;
20
- initializeUniversalAdapter(adapter: ChainsInitializerAdapter, adapters: ChainsInitializerAdapter[]): void;
18
+ initialize(adapters: ChainAdapter[]): void;
21
19
  setAdapterNetworkState(chain: ChainNamespace, props: Partial<AdapterNetworkState>): void;
22
- setChainAccountData(chain: ChainNamespace | undefined, accountProps: Partial<AccountControllerState>, replaceState?: boolean): void;
20
+ setChainAccountData(chain: ChainNamespace | undefined, accountProps: Partial<AccountControllerState>, _unknown?: boolean): void;
23
21
  setAccountProp(prop: keyof AccountControllerState, value: AccountControllerState[keyof AccountControllerState], chain: ChainNamespace | undefined, replaceState?: boolean): void;
24
22
  setActiveNamespace(chain: ChainNamespace | undefined): void;
25
23
  setActiveCaipNetwork(caipNetwork: AdapterNetworkState['caipNetwork']): void;
@@ -28,7 +26,7 @@ export declare const ChainController: {
28
26
  setActiveConnector(connector: ChainControllerState['activeConnector']): void;
29
27
  getNetworkControllerClient(chainNamespace?: ChainNamespace): import("../utils/TypeUtil.js").NetworkControllerClient;
30
28
  getConnectionControllerClient(_chain?: ChainNamespace): import("./ConnectionController.js").ConnectionControllerClient;
31
- getAccountProp<K_2 extends keyof AccountControllerState>(key: K_2, _chain?: ChainNamespace): AccountControllerState[K_2] | undefined;
29
+ getAccountProp<K_2 extends keyof AdapterAccountState>(key: K_2, _chain?: ChainNamespace): AccountControllerState[K_2] | undefined;
32
30
  getNetworkProp<K_3 extends keyof AdapterNetworkState>(key: K_3, namespace: ChainNamespace): AdapterNetworkState[K_3] | undefined;
33
31
  getRequestedCaipNetworks(chainToFilter: ChainNamespace): CaipNetwork[];
34
32
  getAllRequestedCaipNetworks(): CaipNetwork[];
@@ -39,6 +37,7 @@ export declare const ChainController: {
39
37
  getApprovedCaipNetworkIds(namespace: ChainNamespace): CaipNetworkId[];
40
38
  setApprovedCaipNetworksData(namespace: ChainNamespace): Promise<void>;
41
39
  checkIfSupportedNetwork(namespace: ChainNamespace): boolean;
40
+ checkIfSupportedChainId(chainId: number | string): boolean;
42
41
  setSmartAccountEnabledNetworks(smartAccountEnabledNetworks: number[], chain: ChainNamespace): void;
43
42
  checkIfSmartAccountEnabled(): boolean;
44
43
  getActiveNetworkTokenAddress(): string;
@@ -47,4 +46,3 @@ export declare const ChainController: {
47
46
  resetNetwork(namespace: ChainNamespace): void;
48
47
  resetAccount(chain: ChainNamespace | undefined): void;
49
48
  };
50
- export {};
@@ -1,11 +1,14 @@
1
1
  import type { Connector, EstimateGasTransactionArgs, SendTransactionArgs, WcWallet, WriteContractArgs } from '../utils/TypeUtil.js';
2
2
  import { type W3mFrameTypes } from '@reown/appkit-wallet';
3
- import type { ChainNamespace } from '@reown/appkit-common';
3
+ import type { CaipNetwork, ChainNamespace } from '@reown/appkit-common';
4
4
  export interface ConnectExternalOptions {
5
5
  id: Connector['id'];
6
6
  type: Connector['type'];
7
7
  provider?: Connector['provider'];
8
8
  info?: Connector['info'];
9
+ chain?: ChainNamespace;
10
+ chainId?: number | string;
11
+ caipNetwork?: CaipNetwork;
9
12
  }
10
13
  export interface ConnectionControllerClient {
11
14
  connectWalletConnect?: (onUri: (uri: string) => void) => Promise<void>;
@@ -42,27 +45,28 @@ export interface ConnectionControllerState {
42
45
  recentWallet?: WcWallet;
43
46
  buffering: boolean;
44
47
  status?: 'connecting' | 'connected' | 'disconnected';
48
+ connectionControllerClient?: ConnectionControllerClient;
45
49
  }
46
50
  export declare const ConnectionController: {
47
51
  state: ConnectionControllerState;
48
52
  subscribeKey<K extends keyof ConnectionControllerState>(key: K, callback: (value: ConnectionControllerState[K]) => void): () => void;
49
- _getClient(chain?: ChainNamespace): ConnectionControllerClient;
53
+ _getClient(): ConnectionControllerClient | undefined;
50
54
  setClient(client: ConnectionControllerClient): void;
51
55
  connectWalletConnect(): Promise<void>;
52
56
  connectExternal(options: ConnectExternalOptions, chain: ChainNamespace, setChain?: boolean): Promise<void>;
53
57
  reconnectExternal(options: ConnectExternalOptions): Promise<void>;
54
58
  setPreferredAccountType(accountType: W3mFrameTypes.AccountType): Promise<void>;
55
- signMessage(message: string): Promise<string>;
56
- parseUnits(value: string, decimals: number): bigint;
57
- formatUnits(value: bigint, decimals: number): string;
58
- sendTransaction(args: SendTransactionArgs): Promise<string | null>;
59
+ signMessage(message: string): Promise<string | undefined>;
60
+ parseUnits(value: string, decimals: number): bigint | undefined;
61
+ formatUnits(value: bigint, decimals: number): string | undefined;
62
+ sendTransaction(args: SendTransactionArgs): Promise<string | null | undefined>;
59
63
  getCapabilities(params: string): Promise<unknown>;
60
64
  grantPermissions(params: object | readonly unknown[]): Promise<unknown>;
61
- estimateGas(args: EstimateGasTransactionArgs): Promise<bigint>;
62
- writeContract(args: WriteContractArgs): Promise<`0x${string}` | null>;
63
- getEnsAddress(value: string): Promise<string | false>;
64
- getEnsAvatar(value: string): Promise<string | false>;
65
- checkInstalled(ids?: string[], chain?: ChainNamespace): boolean;
65
+ estimateGas(args: EstimateGasTransactionArgs): Promise<bigint | undefined>;
66
+ writeContract(args: WriteContractArgs): Promise<`0x${string}` | null | undefined>;
67
+ getEnsAddress(value: string): Promise<string | false | undefined>;
68
+ getEnsAvatar(value: string): Promise<string | false | undefined>;
69
+ checkInstalled(ids?: string[]): boolean;
66
70
  resetWcConnection(): void;
67
71
  setWcLinking(wcLinking: ConnectionControllerState['wcLinking']): void;
68
72
  setWcError(wcError: ConnectionControllerState['wcError']): void;
@@ -1,6 +1,10 @@
1
1
  export interface SnackControllerState {
2
2
  message: string;
3
3
  variant: 'error' | 'success' | 'loading';
4
+ svg?: {
5
+ iconColor: string;
6
+ icon: string;
7
+ };
4
8
  open: boolean;
5
9
  }
6
10
  export declare const SnackController: {
@@ -8,7 +12,12 @@ export declare const SnackController: {
8
12
  subscribeKey<K extends keyof SnackControllerState>(key: K, callback: (value: SnackControllerState[K]) => void): () => void;
9
13
  showLoading(message: SnackControllerState['message']): void;
10
14
  showSuccess(message: SnackControllerState['message']): void;
15
+ showSvg(message: SnackControllerState['message'], svg: NonNullable<SnackControllerState['svg']>): void;
11
16
  showError(message: unknown): void;
12
17
  hide(): void;
13
- _showMessage(message: SnackControllerState['message'], variant: SnackControllerState['variant']): void;
18
+ _showMessage({ message, svg, variant }: {
19
+ message: SnackControllerState['message'];
20
+ svg?: SnackControllerState['svg'];
21
+ variant?: "loading" | "success" | "error" | undefined;
22
+ }): void;
14
23
  };
@@ -1,3 +1,4 @@
1
+ import { type ChainNamespace } from '@reown/appkit-common';
1
2
  import type { WcWallet, ConnectorType, SocialProvider } from './TypeUtil.js';
2
3
  export declare const StorageUtil: {
3
4
  setWalletConnectDeepLink({ name, href }: {
@@ -9,6 +10,7 @@ export declare const StorageUtil: {
9
10
  setAppKitRecent(wallet: WcWallet): void;
10
11
  getRecentWallets(): WcWallet[];
11
12
  setConnectedConnector(connectorType: ConnectorType): void;
13
+ setConnectedNamespace(namespace: ChainNamespace): void;
12
14
  getConnectedConnector(): ConnectorType | undefined;
13
15
  setConnectedSocialProvider(socialProvider: SocialProvider): void;
14
16
  getConnectedSocialProvider(): string | undefined;
@@ -13,7 +13,11 @@ export type TokenInfo = {
13
13
  };
14
14
  export declare const SwapApiUtil: {
15
15
  getTokenList(): Promise<SwapTokenWithBalance[]>;
16
- fetchGasPrice(): Promise<import("./TypeUtil.js").BlockchainApiGasPriceResponse | null>;
16
+ fetchGasPrice(): Promise<{
17
+ standard: string | undefined;
18
+ fast: string | undefined;
19
+ instant: string | undefined;
20
+ } | null>;
17
21
  fetchSwapAllowance({ tokenAddress, userAddress, sourceTokenAmount, sourceTokenDecimals }: Pick<BlockchainApiSwapAllowanceRequest, "userAddress" | "tokenAddress"> & {
18
22
  sourceTokenAmount: string;
19
23
  sourceTokenDecimals: number;
@@ -5,6 +5,7 @@ import type { AccountControllerState } from '../controllers/AccountController.js
5
5
  import type { OnRampProviderOption } from '../controllers/OnRampController.js';
6
6
  import type { ConstantsUtil } from './ConstantsUtil.js';
7
7
  import type { ReownName } from '../controllers/EnsController.js';
8
+ import type UniversalProvider from '@walletconnect/universal-provider';
8
9
  export type CaipNetworkCoinbaseNetwork = 'Ethereum' | 'Arbitrum One' | 'Polygon' | 'Avalanche' | 'OP Mainnet' | 'Celo';
9
10
  export type ConnectedWalletInfo = {
10
11
  name?: string;
@@ -17,7 +18,7 @@ export interface LinkingRecord {
17
18
  }
18
19
  export type ProjectId = string;
19
20
  export type Platform = 'mobile' | 'desktop' | 'browser' | 'web' | 'qrcode' | 'unsupported';
20
- export type ConnectorType = 'EXTERNAL' | 'WALLET_CONNECT' | 'INJECTED' | 'ANNOUNCED' | 'AUTH' | 'MULTI_CHAIN';
21
+ export type ConnectorType = 'EXTERNAL' | 'WALLET_CONNECT' | 'INJECTED' | 'ANNOUNCED' | 'AUTH' | 'MULTI_CHAIN' | 'ID_AUTH';
21
22
  export type SocialProvider = 'google' | 'github' | 'apple' | 'facebook' | 'x' | 'discord' | 'farcaster';
22
23
  export type Connector = {
23
24
  id: string;
@@ -32,7 +33,7 @@ export type Connector = {
32
33
  icon?: string;
33
34
  rdns?: string;
34
35
  };
35
- provider?: unknown;
36
+ provider?: Provider | W3mFrameProvider | UniversalProvider;
36
37
  chain: ChainNamespace;
37
38
  connectors?: Connector[];
38
39
  };
@@ -59,6 +60,7 @@ export type Metadata = {
59
60
  export interface WcWallet {
60
61
  id: string;
61
62
  name: string;
63
+ badge_type?: BadgeType;
62
64
  homepage?: string;
63
65
  image_id?: string;
64
66
  image_url?: string;
@@ -80,6 +82,7 @@ export interface ApiGetWalletsRequest {
80
82
  chains: string;
81
83
  entries: number;
82
84
  search?: string;
85
+ badge?: BadgeType;
83
86
  include?: string[];
84
87
  exclude?: string[];
85
88
  }
@@ -489,6 +492,7 @@ export type Event = {
489
492
  swapToToken: string;
490
493
  swapFromAmount: string;
491
494
  swapToAmount: string;
495
+ message: string;
492
496
  };
493
497
  } | {
494
498
  type: 'track';
@@ -579,6 +583,13 @@ export type Event = {
579
583
  mobile_link: string;
580
584
  name: string;
581
585
  };
586
+ } | {
587
+ type: 'track';
588
+ event: 'SEARCH_WALLET';
589
+ properties: {
590
+ badge: string;
591
+ search: string;
592
+ };
582
593
  };
583
594
  export type DestinationWallet = {
584
595
  address: string;
@@ -706,27 +717,19 @@ export type AdapterAccountState = {
706
717
  export type ChainAdapter = {
707
718
  connectionControllerClient?: ConnectionControllerClient;
708
719
  networkControllerClient?: NetworkControllerClient;
709
- accountState?: AccountControllerState;
720
+ accountState?: AdapterAccountState;
710
721
  networkState?: AdapterNetworkState;
711
- defaultNetwork?: CaipNetwork;
712
- chainNamespace: ChainNamespace;
713
- isUniversalAdapterClient?: boolean;
714
- adapterType?: AdapterType;
715
- caipNetworks: CaipNetwork[];
716
- getAddress?: () => string | undefined;
717
- getError?: () => unknown;
718
- getChainId?: () => number | string | undefined;
719
- switchNetwork?: ((caipNetwork: CaipNetwork) => void) | undefined;
720
- getIsConnected?: () => boolean | undefined;
721
- getWalletProvider?: () => unknown;
722
- getWalletProviderType?: () => string | undefined;
723
- subscribeProvider?: (callback: (newState: unknown) => void) => void;
722
+ namespace?: ChainNamespace;
723
+ caipNetworks?: CaipNetwork[] | AppKitNetwork[];
724
+ projectId?: string;
725
+ adapterType?: string;
724
726
  };
725
727
  type ProviderEventListener = {
726
728
  connect: (connectParams: {
727
729
  chainId: number;
728
730
  }) => void;
729
731
  disconnect: (error: Error) => void;
732
+ display_uri: (uri: string) => void;
730
733
  chainChanged: (chainId: string) => void;
731
734
  accountsChanged: (accounts: string[]) => void;
732
735
  message: (message: {
@@ -739,6 +742,10 @@ export interface RequestArguments {
739
742
  readonly params?: readonly unknown[] | object;
740
743
  }
741
744
  export interface Provider {
745
+ connect: (params?: {
746
+ onUri?: (uri: string) => void;
747
+ }) => Promise<string>;
748
+ disconnect: () => Promise<void>;
742
749
  request: <T>(args: RequestArguments) => Promise<T>;
743
750
  on<T extends keyof ProviderEventListener>(event: T, listener: ProviderEventListener[T]): void;
744
751
  removeListener: <T>(event: string, listener: (data: T) => void) => void;
@@ -813,4 +820,5 @@ export type UseAppKitNetworkReturn = {
813
820
  caipNetworkId: CaipNetworkId | undefined;
814
821
  switchNetwork: (network: AppKitNetwork) => void;
815
822
  };
823
+ export type BadgeType = 'none' | 'certified';
816
824
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reown/appkit-core",
3
- "version": "1.3.1",
3
+ "version": "1.4.0",
4
4
  "type": "module",
5
5
  "main": "./dist/esm/exports/index.js",
6
6
  "types": "./dist/types/exports/index.d.ts",
@@ -39,8 +39,8 @@
39
39
  "@walletconnect/universal-provider": "2.17.0",
40
40
  "valtio": "1.11.2",
41
41
  "viem": "2.x",
42
- "@reown/appkit-common": "1.3.1",
43
- "@reown/appkit-wallet": "1.3.1"
42
+ "@reown/appkit-common": "1.4.0",
43
+ "@reown/appkit-wallet": "1.4.0"
44
44
  },
45
45
  "peerDependencies": {},
46
46
  "devDependencies": {