@reown/appkit-core 1.3.2 → 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 (42) 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/ChainController.js +21 -68
  4. package/dist/esm/src/controllers/ChainController.js.map +1 -1
  5. package/dist/esm/src/controllers/ConnectionController.js +26 -25
  6. package/dist/esm/src/controllers/ConnectionController.js.map +1 -1
  7. package/dist/esm/src/controllers/ConnectorController.js +4 -4
  8. package/dist/esm/src/controllers/EnsController.js +1 -1
  9. package/dist/esm/src/controllers/EnsController.js.map +1 -1
  10. package/dist/esm/src/controllers/RouterController.js +1 -1
  11. package/dist/esm/src/controllers/RouterController.js.map +1 -1
  12. package/dist/esm/src/controllers/SendController.js +3 -2
  13. package/dist/esm/src/controllers/SendController.js.map +1 -1
  14. package/dist/esm/src/controllers/SwapController.js +21 -7
  15. package/dist/esm/src/controllers/SwapController.js.map +1 -1
  16. package/dist/esm/src/utils/StorageUtil.js +8 -0
  17. package/dist/esm/src/utils/StorageUtil.js.map +1 -1
  18. package/dist/esm/src/utils/SwapApiUtil.js +1 -1
  19. package/dist/esm/src/utils/SwapApiUtil.js.map +1 -1
  20. package/dist/esm/tests/controllers/AccountController.test.js +1 -1
  21. package/dist/esm/tests/controllers/AccountController.test.js.map +1 -1
  22. package/dist/esm/tests/controllers/ApiController.test.js +1 -1
  23. package/dist/esm/tests/controllers/ApiController.test.js.map +1 -1
  24. package/dist/esm/tests/controllers/ChainController.test.js +1 -1
  25. package/dist/esm/tests/controllers/ChainController.test.js.map +1 -1
  26. package/dist/esm/tests/controllers/ConnectionController.test.js +8 -12
  27. package/dist/esm/tests/controllers/ConnectionController.test.js.map +1 -1
  28. package/dist/esm/tests/controllers/ConnectorController.test.js +8 -8
  29. package/dist/esm/tests/controllers/ConnectorController.test.js.map +1 -1
  30. package/dist/esm/tests/controllers/EnsController.test.js +2 -2
  31. package/dist/esm/tests/controllers/EnsController.test.js.map +1 -1
  32. package/dist/esm/tests/controllers/SwapController.test.js +1 -1
  33. package/dist/esm/tests/controllers/SwapController.test.js.map +1 -1
  34. package/dist/esm/tests/utils/StorageUtil.test.js +4 -3
  35. package/dist/esm/tests/utils/StorageUtil.test.js.map +1 -1
  36. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  37. package/dist/types/src/controllers/ChainController.d.ts +5 -7
  38. package/dist/types/src/controllers/ConnectionController.d.ts +15 -11
  39. package/dist/types/src/utils/StorageUtil.d.ts +2 -0
  40. package/dist/types/src/utils/SwapApiUtil.d.ts +5 -1
  41. package/dist/types/src/utils/TypeUtil.d.ts +13 -16
  42. package/package.json +3 -3
@@ -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,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
  };
@@ -716,27 +717,19 @@ export type AdapterAccountState = {
716
717
  export type ChainAdapter = {
717
718
  connectionControllerClient?: ConnectionControllerClient;
718
719
  networkControllerClient?: NetworkControllerClient;
719
- accountState?: AccountControllerState;
720
+ accountState?: AdapterAccountState;
720
721
  networkState?: AdapterNetworkState;
721
- defaultNetwork?: CaipNetwork;
722
- chainNamespace: ChainNamespace;
723
- isUniversalAdapterClient?: boolean;
724
- adapterType?: AdapterType;
725
- caipNetworks: CaipNetwork[];
726
- getAddress?: () => string | undefined;
727
- getError?: () => unknown;
728
- getChainId?: () => number | string | undefined;
729
- switchNetwork?: ((caipNetwork: CaipNetwork) => void) | undefined;
730
- getIsConnected?: () => boolean | undefined;
731
- getWalletProvider?: () => unknown;
732
- getWalletProviderType?: () => string | undefined;
733
- subscribeProvider?: (callback: (newState: unknown) => void) => void;
722
+ namespace?: ChainNamespace;
723
+ caipNetworks?: CaipNetwork[] | AppKitNetwork[];
724
+ projectId?: string;
725
+ adapterType?: string;
734
726
  };
735
727
  type ProviderEventListener = {
736
728
  connect: (connectParams: {
737
729
  chainId: number;
738
730
  }) => void;
739
731
  disconnect: (error: Error) => void;
732
+ display_uri: (uri: string) => void;
740
733
  chainChanged: (chainId: string) => void;
741
734
  accountsChanged: (accounts: string[]) => void;
742
735
  message: (message: {
@@ -749,6 +742,10 @@ export interface RequestArguments {
749
742
  readonly params?: readonly unknown[] | object;
750
743
  }
751
744
  export interface Provider {
745
+ connect: (params?: {
746
+ onUri?: (uri: string) => void;
747
+ }) => Promise<string>;
748
+ disconnect: () => Promise<void>;
752
749
  request: <T>(args: RequestArguments) => Promise<T>;
753
750
  on<T extends keyof ProviderEventListener>(event: T, listener: ProviderEventListener[T]): void;
754
751
  removeListener: <T>(event: string, listener: (data: T) => void) => void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reown/appkit-core",
3
- "version": "1.3.2",
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.2",
43
- "@reown/appkit-wallet": "1.3.2"
42
+ "@reown/appkit-common": "1.4.0",
43
+ "@reown/appkit-wallet": "1.4.0"
44
44
  },
45
45
  "peerDependencies": {},
46
46
  "devDependencies": {