Skip to content

Commit 073e0d0

Browse files
authored
Merge pull request #288 from node-real/feat/1x-binance-web3-wallet-extension
feat: Binance Web3 Wallet desktop extension support
2 parents e10812a + 908d2cb commit 073e0d0

File tree

9 files changed

+53
-10
lines changed

9 files changed

+53
-10
lines changed

.changeset/lemon-bugs-try.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
'@node-real/walletkit': minor
3+
---
4+
5+
fix: restore BinanceWeb3WalletConnector for mobile in-app browser compatibility
6+

.changeset/moody-shrimps-melt.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@node-real/walletkit': minor
3+
---
4+
5+
feat: add desktop extension support for Binance Web3 Wallet

.claude/settings.local.json

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"permissions": {
3+
"allow": [
4+
"Bash(/tmp/comparison.txt:*)",
5+
"Read(//tmp/**)",
6+
"WebFetch(domain:developers.binance.com)",
7+
"Bash(npm run:*)",
8+
"Bash(git stash:*)",
9+
"Bash(grep \"\"version\"\":*)",
10+
"Bash(npx tsc:*)"
11+
]
12+
}
13+
}

examples/nextjs/pages/_app.tsx

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,12 @@ import {
1010
WalletKitProvider,
1111
getDefaultConfig,
1212
} from '@node-real/walletkit';
13-
import { trustWallet, metaMask, walletConnect } from '@node-real/walletkit/wallets';
13+
import {
14+
binanceWeb3Wallet,
15+
trustWallet,
16+
metaMask,
17+
walletConnect,
18+
} from '@node-real/walletkit/wallets';
1419

1520
const config = createConfig(
1621
getDefaultConfig({
@@ -22,7 +27,7 @@ const config = createConfig(
2227
walletConnectProjectId: 'e68a1816d39726c2afabf05661a32767',
2328

2429
chains,
25-
connectors: [trustWallet(), metaMask(), walletConnect()],
30+
connectors: [binanceWeb3Wallet(), trustWallet(), metaMask(), walletConnect()],
2631
}),
2732
);
2833

examples/vite/src/App.tsx

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,12 @@ import {
88
WalletKitOptions,
99
SwitchNetworkModal,
1010
} from '@node-real/walletkit';
11-
import { trustWallet, metaMask, walletConnect } from '@node-real/walletkit/wallets';
11+
import {
12+
binanceWeb3Wallet,
13+
trustWallet,
14+
metaMask,
15+
walletConnect,
16+
} from '@node-real/walletkit/wallets';
1217

1318
const config = createConfig(
1419
getDefaultConfig({
@@ -20,7 +25,7 @@ const config = createConfig(
2025
walletConnectProjectId: 'e68a1816d39726c2afabf05661a32767',
2126

2227
chains,
23-
connectors: [trustWallet(), metaMask(), walletConnect()],
28+
connectors: [binanceWeb3Wallet(), trustWallet(), metaMask(), walletConnect()],
2429
}),
2530
);
2631

packages/walletkit/src/typings.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ declare global {
1212
tokenpocket: any;
1313
okexchain: any;
1414
bitkeep: any;
15+
binancew3w: any;
1516
}
1617
}
1718

packages/walletkit/src/wallets/binanceWeb3Wallet/connector.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,4 +49,7 @@ function getProvider() {
4949
if (isMobile()) {
5050
return window.ethereum;
5151
}
52+
53+
// Desktop: use Binance Web3 Wallet browser extension
54+
return window.binancew3w?.ethereum;
5255
}

packages/walletkit/src/wallets/binanceWeb3Wallet/index.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,12 @@ export function binanceWeb3Wallet(props: PartialCustomProps = {}): WalletProps {
2121
default: 'https://www.binance.com/en/web3wallet',
2222
},
2323
spinnerColor: undefined,
24-
showQRCode: true,
24+
showQRCode: false,
2525
isInstalled: isBinanceWeb3Wallet,
2626
createConnector: (chains: Chain[]) => {
2727
return new BinanceWeb3WalletConnector({
2828
chains,
2929
options: {
30-
shimDisconnect: true,
3130
...connectorOptions,
3231
},
3332
});
@@ -44,7 +43,8 @@ export function binanceWeb3Wallet(props: PartialCustomProps = {}): WalletProps {
4443
}
4544

4645
export function isBinanceWeb3Wallet() {
47-
return hasInjectedProvider('isBinance' as any);
46+
if (typeof window === 'undefined') return false;
47+
return !!window.binancew3w?.ethereum || hasInjectedProvider('isBinance' as any);
4848
}
4949

5050
const getDeepLink = (url: string) => {

website/src/pages/index.mdx

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ npm i @node-real/walletkit@^1 wagmi@^1 viem@^1
1818

1919
| wallet | mainnet | testnet |
2020
| ------------------- | ------- | ------- |
21-
| binanceWeb3Wallet() || |
21+
| binanceWeb3Wallet() || |
2222
| bitgetWallet() |||
2323
| coinbaseWallet() |||
2424
| metaMask() |||
@@ -96,7 +96,12 @@ import {
9696
WalletKitOptions,
9797
SwitchNetworkModal,
9898
} from '@node-real/walletkit';
99-
import { metaMask, trustWallet, walletConnect } from '@node-real/walletkit/wallets';
99+
import {
100+
binanceWeb3Wallet,
101+
metaMask,
102+
trustWallet,
103+
walletConnect,
104+
} from '@node-real/walletkit/wallets';
100105

101106
const config = createConfig(
102107
getDefaultConfig({
@@ -108,7 +113,7 @@ const config = createConfig(
108113
walletConnectProjectId: 'xxx',
109114

110115
chains,
111-
connectors: [trustWallet(), metaMask(), walletConnect()],
116+
connectors: [binanceWeb3Wallet(), trustWallet(), metaMask(), walletConnect()],
112117
}),
113118
);
114119

0 commit comments

Comments
 (0)