Skip to content

Commit 9dd23d9

Browse files
feat: support berasigWallet (#2253)
* fix: lint * chore: changeset * feat: berasigWallet support feat: berasigWallet support fix: format revert locale files feat: support BerasigWallet fix: example dapp support chore: docs --------- Co-authored-by: thiennv-qng <[email protected]>
1 parent f1ab60e commit 9dd23d9

File tree

8 files changed

+101
-1
lines changed

8 files changed

+101
-1
lines changed

.changeset/sour-lemons-dance.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@rainbow-me/rainbowkit": patch
3+
---
4+
5+
Added BeraSig support with `berasigWallet` wallet connector

packages/example/src/wagmi.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { type Chain, getDefaultConfig } from '@rainbow-me/rainbowkit';
22
import {
33
argentWallet,
4+
berasigWallet,
45
bestWallet,
56
bifrostWallet,
67
binanceWallet,
@@ -187,6 +188,7 @@ export const config = getDefaultConfig({
187188
groupName: 'Other',
188189
wallets: [
189190
argentWallet,
191+
berasigWallet,
190192
bestWallet,
191193
bifrostWallet,
192194
binanceWallet,

packages/rainbowkit/src/components/RainbowKitProvider/provideRainbowKitChains.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,7 @@ const chainMetadataByName: Record<ChainName, ChainMetadata | null> = {
217217
optimismKovan: { chainId: 69, ...optimismIcon },
218218
optimismSepolia: { chainId: 11155420, ...optimismIcon },
219219
polygon: { chainId: 137, name: 'Polygon', ...polygonIcon },
220-
polygonAmoy: {chainId: 80002, ... polygonIcon},
220+
polygonAmoy: { chainId: 80002, ...polygonIcon },
221221
polygonMumbai: { chainId: 80_001, ...polygonIcon },
222222
rinkeby: { chainId: 4, ...ethereumIcon },
223223
ropsten: { chainId: 3, ...ethereumIcon },

packages/rainbowkit/src/locales/en_US.json

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -243,6 +243,23 @@
243243
}
244244
},
245245

246+
"berasig": {
247+
"extension": {
248+
"step1": {
249+
"title": "Install the BeraSig extension",
250+
"description": "We recommend pinning BeraSig to your taskbar for easier access to your wallet."
251+
},
252+
"step2": {
253+
"title": "Create a Wallet",
254+
"description": "Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone."
255+
},
256+
"step3": {
257+
"title": "Refresh your browser",
258+
"description": "Once you set up your wallet, click below to refresh the browser and load up the extension."
259+
}
260+
}
261+
},
262+
246263
"best": {
247264
"qr_code": {
248265
"step1": {
Lines changed: 1 addition & 0 deletions
Loading
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
import type { DefaultWalletOptions, Wallet } from '../../Wallet';
2+
import {
3+
getInjectedConnector,
4+
hasInjectedProvider,
5+
} from '../../getInjectedConnector';
6+
import { getWalletConnectConnector } from '../../getWalletConnectConnector';
7+
8+
export type BerasigWalletOptions = DefaultWalletOptions;
9+
10+
export const berasigWallet = ({
11+
projectId,
12+
walletConnectParameters,
13+
}: BerasigWalletOptions): Wallet => {
14+
const isBerasigWalletInjected = hasInjectedProvider({
15+
namespace: 'berasig.ethereum',
16+
});
17+
18+
const shouldUseWalletConnect = !isBerasigWalletInjected;
19+
return {
20+
id: 'berasig',
21+
name: 'BeraSig',
22+
iconUrl: async () => (await import('./berasigWallet.svg')).default,
23+
iconBackground: '#ffffff',
24+
installed: isBerasigWalletInjected,
25+
downloadUrls: {
26+
android: 'https://play.google.com/store/apps/details?id=io.berasig.ios',
27+
ios: 'https://apps.apple.com/us/app/berasig-wallet-on-berachain/id6502052535',
28+
qrCode: 'https://berasig.com',
29+
mobile: 'https://berasig.com',
30+
browserExtension:
31+
'https://chromewebstore.google.com/detail/berasig/ckedkkegjbflcfblcjklibnedmfjppbj',
32+
},
33+
extension: {
34+
instructions: {
35+
steps: [
36+
{
37+
description:
38+
'wallet_connectors.berasig.extension.step1.description',
39+
step: 'install',
40+
title: 'wallet_connectors.berasig.extension.step1.title',
41+
},
42+
{
43+
description:
44+
'wallet_connectors.berasig.extension.step2.description',
45+
step: 'create',
46+
title: 'wallet_connectors.berasig.extension.step2.title',
47+
},
48+
{
49+
description:
50+
'wallet_connectors.berasig.extension.step3.description',
51+
step: 'refresh',
52+
title: 'wallet_connectors.berasig.extension.step3.title',
53+
},
54+
],
55+
learnMoreUrl: 'https://berasig.com',
56+
},
57+
},
58+
createConnector: shouldUseWalletConnect
59+
? getWalletConnectConnector({
60+
projectId,
61+
walletConnectParameters,
62+
})
63+
: getInjectedConnector({
64+
namespace: 'berasig.ethereum',
65+
}),
66+
};
67+
};

packages/rainbowkit/src/wallets/walletConnectors/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { argentWallet } from './argentWallet/argentWallet';
2+
import { berasigWallet } from './berasigWallet/berasigWallet';
23
import { bestWallet } from './bestWallet/bestWallet';
34
import { bifrostWallet } from './bifrostWallet/bifrostWallet';
45
import { binanceWallet } from './binanceWallet/binanceWallet';
@@ -63,6 +64,7 @@ import { zerionWallet } from './zerionWallet/zerionWallet';
6364

6465
export {
6566
argentWallet,
67+
berasigWallet,
6668
bestWallet,
6769
bifrostWallet,
6870
binanceWallet,

site/data/en-US/docs/custom-wallet-list.mdx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,12 @@ import { oneInchWallet } from '@rainbow-me/rainbowkit/wallets';
110110
import { argentWallet } from '@rainbow-me/rainbowkit/wallets';
111111
```
112112

113+
#### BeraSig
114+
115+
```tsx
116+
import { berasigWallet } from '@rainbow-me/rainbowkit/wallets';
117+
```
118+
113119
#### Best Wallet
114120

115121
```tsx

0 commit comments

Comments
 (0)