Skip to content

Commit 52484c4

Browse files
fix: show wallet info in useWalletInfo hook for ethers and ethers5
1 parent 51555a9 commit 52484c4

File tree

3 files changed

+84
-0
lines changed

3 files changed

+84
-0
lines changed

.changeset/light-geese-stare.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
---
2+
'@reown/appkit-ethers5-react-native': patch
3+
'@reown/appkit-ethers-react-native': patch
4+
'@reown/appkit-auth-ethers-react-native': patch
5+
'@reown/appkit-auth-wagmi-react-native': patch
6+
'@reown/appkit-coinbase-ethers-react-native': patch
7+
'@reown/appkit-coinbase-wagmi-react-native': patch
8+
'@reown/appkit-common-react-native': patch
9+
'@reown/appkit-core-react-native': patch
10+
'@reown/appkit-scaffold-react-native': patch
11+
'@reown/appkit-scaffold-utils-react-native': patch
12+
'@reown/appkit-siwe-react-native': patch
13+
'@reown/appkit-ui-react-native': patch
14+
'@reown/appkit-wagmi-react-native': patch
15+
'@reown/appkit-wallet-react-native': patch
16+
---
17+
18+
fix: show wallet info in ethers hook

packages/ethers/src/client.ts

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -450,6 +450,10 @@ export class AppKit extends AppKitScaffold {
450450
this.syncNetwork(chainImages);
451451
});
452452

453+
EthersStoreUtil.subscribeKey('provider', provider => {
454+
this.syncConnectedWalletInfo(provider);
455+
});
456+
453457
this.syncRequestedNetworks(chains, chainImages);
454458
this.syncConnectors(config);
455459
this.syncAuthConnector(config);
@@ -1002,6 +1006,35 @@ export class AppKit extends AppKitScaffold {
10021006
this.addAuthListeners(this.authProvider);
10031007
}
10041008

1009+
private async syncConnectedWalletInfo(provider?: Provider) {
1010+
if (!provider) {
1011+
this.setConnectedWalletInfo(undefined);
1012+
1013+
return;
1014+
}
1015+
1016+
if ((provider as any)?.session?.peer?.metadata) {
1017+
const metadata = (provider as unknown as EthereumProvider)?.session?.peer.metadata;
1018+
if (metadata) {
1019+
this.setConnectedWalletInfo({
1020+
...metadata,
1021+
name: metadata.name,
1022+
icon: metadata.icons?.[0]
1023+
});
1024+
}
1025+
} else if (provider?.id === ConstantsUtil.COINBASE_CONNECTOR_ID) {
1026+
this.setConnectedWalletInfo({
1027+
name: 'Coinbase Wallet'
1028+
});
1029+
} else if (provider?.id === ConstantsUtil.AUTH_CONNECTOR_ID) {
1030+
this.setConnectedWalletInfo({
1031+
name: 'AppKit Universal Wallet'
1032+
});
1033+
} else {
1034+
this.setConnectedWalletInfo(undefined);
1035+
}
1036+
}
1037+
10051038
private async addAuthListeners(authProvider: AppKitFrameProvider) {
10061039
authProvider.onSetPreferredAccount(async ({ address, type }) => {
10071040
if (address) {

packages/ethers5/src/client.ts

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -432,6 +432,10 @@ export class AppKit extends AppKitScaffold {
432432
this.syncNetwork(chainImages);
433433
});
434434

435+
EthersStoreUtil.subscribeKey('provider', provider => {
436+
this.syncConnectedWalletInfo(provider);
437+
});
438+
435439
this.syncRequestedNetworks(chains, chainImages);
436440
this.syncConnectors(config);
437441
this.syncAuthConnector(config);
@@ -979,6 +983,35 @@ export class AppKit extends AppKitScaffold {
979983
this.addAuthListeners(this.authProvider);
980984
}
981985

986+
private async syncConnectedWalletInfo(provider?: Provider) {
987+
if (!provider) {
988+
this.setConnectedWalletInfo(undefined);
989+
990+
return;
991+
}
992+
993+
if ((provider as any)?.session?.peer?.metadata) {
994+
const metadata = (provider as unknown as EthereumProvider)?.session?.peer.metadata;
995+
if (metadata) {
996+
this.setConnectedWalletInfo({
997+
...metadata,
998+
name: metadata.name,
999+
icon: metadata.icons?.[0]
1000+
});
1001+
}
1002+
} else if (provider?.id === ConstantsUtil.COINBASE_CONNECTOR_ID) {
1003+
this.setConnectedWalletInfo({
1004+
name: 'Coinbase Wallet'
1005+
});
1006+
} else if (provider?.id === ConstantsUtil.AUTH_CONNECTOR_ID) {
1007+
this.setConnectedWalletInfo({
1008+
name: 'AppKit Universal Wallet'
1009+
});
1010+
} else {
1011+
this.setConnectedWalletInfo(undefined);
1012+
}
1013+
}
1014+
9821015
private async addAuthListeners(authProvider: AppKitFrameProvider) {
9831016
authProvider.onSetPreferredAccount(async ({ address, type }) => {
9841017
if (address) {

0 commit comments

Comments
 (0)