Skip to content
This repository was archived by the owner on Sep 30, 2024. It is now read-only.

Commit 79ee6ca

Browse files
Merge pull request #47 from celo-org/nicolasbrugneaux/fix-wc
release: 1.0.1
2 parents e522399 + e321fd7 commit 79ee6ca

File tree

10 files changed

+255
-723
lines changed

10 files changed

+255
-723
lines changed

.github/workflows/test-workflow.yaml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: 'NPM Publish'
1+
name: "NPM Publish"
22
on:
33
release:
44
types: [published]
@@ -10,12 +10,10 @@ jobs:
1010
contents: read
1111
id-token: write
1212

13-
uses: celo-org/reusable-workflows/.github/workflows/[email protected].4
13+
uses: celo-org/reusable-workflows/.github/workflows/[email protected].5
1414
with:
1515
node-version: 16
1616
package-dir: "packages/rainbowkit-celo"
17-
secrets:
18-
npm-token: ${{ secrets.NPM_TOKEN }}
1917
akeyless-api-gateway: https://api.gateway.akeyless.celo-networks-dev.org
2018
akeyless-github-access-id: p-kf9vjzruht6l
2119
akeyless-token-path: /static-secrets/apps-tooling-circle/npm-publish-token

README.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,13 @@ It includes the chain information as well as the main CELO wallets (Valora, Celo
99
npm install @celo/rainbowkit-celo
1010
```
1111

12-
This package has `@rainbow-me/rainbowkit` as a peer dependency and expect it to be installed too. Follow [their instructions](https://www.rainbowkit.com/docs/installation) if that's not done yet.
12+
This package has a few peer dependencies and expect them to be installed too. Follow [their instructions](https://www.rainbowkit.com/docs/installation) if that's not done yet.
13+
14+
Here's the exhaustive list:
15+
16+
```sh
17+
npm install @rainbow-me/rainbowkit @wagmi/chains wagmi viem
18+
```
1319

1420
### A note on version compatibility
1521

apps/example/package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,17 @@
99
"lint": "next lint"
1010
},
1111
"dependencies": {
12-
"@celo/rainbowkit-celo": "1.0.0",
12+
"@celo/rainbowkit-celo": "^1.0.1-beta.4",
1313
"@mdx-js/loader": "^2.1.3",
1414
"@mdx-js/react": "^2.1.3",
1515
"@next/mdx": "^12.3.1",
16-
"@rainbow-me/rainbowkit": "^1.0.0",
17-
"viem": "^0.3.21",
16+
"@rainbow-me/rainbowkit": "^1.0.3",
17+
"viem": "^1.1.8",
1818
"next": "12.2.4",
1919
"react": "17.0.2",
2020
"react-dom": "17.0.2",
2121
"react-syntax-highlighter": "^15.5.0",
22-
"wagmi": "^1.0.0"
22+
"wagmi": "^1.3.1"
2323
},
2424
"devDependencies": {
2525
"@babel/core": "^7.0.0",

apps/example/pages/_app.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ const { chains, publicClient } = configureChains(
1616
]
1717
);
1818

19-
const projectId = "11d6d8a1810e469d801f6f86ae3679b6";
19+
const projectId = "944abdcd5d7e2b5d256ff7cc35021cc5";
2020

2121
const connectors = celoGroups({
2222
chains,

packages/rainbowkit-celo/package.json

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@celo/rainbowkit-celo",
33
"author": "cLabs",
4-
"version": "1.0.0",
4+
"version": "1.0.1",
55
"description": "Quickly Setup RainbowKit for Celo",
66
"homepage": "https://rainbowkit-with-celo.vercel.app/",
77
"repository": {
@@ -39,6 +39,10 @@
3939
"types": "./lists/index.d.ts",
4040
"import": "./lists/index.js"
4141
},
42+
"./utils/getWalletConnectUri": {
43+
"types": "./utils/getWalletConnectUri.d.ts",
44+
"import": "./utils/getWalletConnectUri.js"
45+
},
4246
"./wallets": {
4347
"types": "./wallets/index.d.ts",
4448
"import": "./wallets/index.js"
@@ -75,13 +79,12 @@
7579
"clean": "tsc -b --clean",
7680
"build": "tsc -b"
7781
},
78-
"dependencies": {
79-
"@wagmi/chains": "^0.2.22"
80-
},
82+
"dependencies": {},
8183
"peerDependencies": {
82-
"@rainbow-me/rainbowkit": "^1.0.0",
83-
"viem": "^0.3.21",
84-
"wagmi": "^1.0.0"
84+
"@rainbow-me/rainbowkit": ">=1.0.2 && <=2.0.0",
85+
"@wagmi/chains": ">=1.0.0 && <=2.0.0",
86+
"viem": ">=1.0.0 && <=2.0.0",
87+
"wagmi": ">=1.0.0 && <=2.0.0"
8588
},
8689
"devDependencies": {
8790
"@types/react": "^17.0.37",
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
// Note: taken from https://github.com/rainbow-me/rainbowkit/blob/main/packages/rainbowkit/src/utils/getWalletConnectUri.ts#L3
2+
// since they don't expose it
3+
import type { Connector } from "wagmi/connectors";
4+
5+
export async function getWalletConnectUri(
6+
connector: Connector,
7+
version: "1" | "2"
8+
): Promise<string> {
9+
const provider = await connector.getProvider();
10+
return version === "2"
11+
? new Promise<string>((resolve) => provider.once("display_uri", resolve))
12+
: provider.connector.uri;
13+
}

packages/rainbowkit-celo/wallets/celo-terminal.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import {
44
Wallet,
55
} from "@rainbow-me/rainbowkit";
66
import { Alfajores, Baklava, Celo } from "@celo/rainbowkit-celo/chains";
7+
import { getWalletConnectUri } from "@celo/rainbowkit-celo/utils/getWalletConnectUri";
78

89
interface CeloTerminalOptions {
910
chains: Chain[];
@@ -21,6 +22,7 @@ export const CeloTerminal = ({
2122
iconBackground: "#FFF",
2223
createConnector: () => {
2324
const connector = getWalletConnectConnector({
25+
version: "2",
2426
chains,
2527
projectId,
2628
});
@@ -29,7 +31,7 @@ export const CeloTerminal = ({
2931
connector,
3032
desktop: {
3133
getUri: async () => {
32-
const { uri } = (await connector.getProvider()).connector;
34+
const uri = await getWalletConnectUri(connector, "2");
3335
// Note: This doesn't work. I'll try to have a PR to add deeplinking to CeloTerminal - Nicolas
3436
return `https://celoterminal.com/wc?uri=${encodeURIComponent(uri)}`;
3537
},

packages/rainbowkit-celo/wallets/celo-wallet.ts

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@ import type { Chain, Wallet } from "@rainbow-me/rainbowkit";
22
import { getWalletConnectConnector } from "@rainbow-me/rainbowkit";
33

44
import { Alfajores, Baklava, Celo } from "@celo/rainbowkit-celo/chains";
5+
import { getWalletConnectUri } from "@celo/rainbowkit-celo/utils/getWalletConnectUri";
56

6-
interface CeloWalletOptions {
7+
export interface CeloWalletOptions {
78
chains: Chain[];
89
projectId: string;
910
}
@@ -18,20 +19,18 @@ export const CeloWallet = ({
1819
iconBackground: "#FFF",
1920
createConnector: () => {
2021
const connector = getWalletConnectConnector({
22+
version: "2",
2123
chains,
2224
projectId,
2325
});
2426
return {
2527
connector,
2628
mobile: {
27-
getUri: async () => {
28-
const { uri } = (await connector.getProvider()).connector;
29-
return uri;
30-
},
29+
getUri: () => getWalletConnectUri(connector, "2"),
3130
},
3231
desktop: {
3332
getUri: async () => {
34-
const { uri } = (await connector.getProvider()).connector;
33+
const uri = await getWalletConnectUri(connector, "2");
3534
return `celowallet://wc?uri=${encodeURIComponent(uri)}`;
3635
},
3736
},

packages/rainbowkit-celo/wallets/valora.ts

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
1-
import type { Chain, Wallet } from "@rainbow-me/rainbowkit";
2-
import { getWalletConnectConnector } from "@rainbow-me/rainbowkit";
1+
import {
2+
Chain,
3+
getWalletConnectConnector,
4+
Wallet,
5+
} from "@rainbow-me/rainbowkit";
36

47
import {
58
Alfajores,
69
Baklava,
710
Celo,
811
Cannoli,
912
} from "@celo/rainbowkit-celo/chains";
13+
import { getWalletConnectUri } from "@celo/rainbowkit-celo/utils/getWalletConnectUri";
1014

1115
// rainbowkit utils has it but doesn't export it :/
1216
function isAndroid(): boolean {
@@ -15,7 +19,7 @@ function isAndroid(): boolean {
1519
);
1620
}
1721

18-
interface ValoraOptions {
22+
export interface ValoraOptions {
1923
chains: Chain[];
2024
projectId: string;
2125
}
@@ -36,22 +40,23 @@ export const Valora = ({
3640
},
3741
createConnector: () => {
3842
const connector = getWalletConnectConnector({
43+
version: "2",
3944
chains,
4045
projectId,
4146
});
4247
return {
4348
connector,
4449
mobile: {
4550
getUri: async () => {
46-
const { uri } = (await connector.getProvider()).connector;
51+
const uri = await getWalletConnectUri(connector, "2");
4752
return isAndroid()
4853
? uri
4954
: // ideally this would use the WalletConnect registry, but this will do for now
5055
`https://valoraapp.com/wc?uri=${encodeURIComponent(uri)}`;
5156
},
5257
},
5358
qrCode: {
54-
getUri: async () => (await connector.getProvider()).connector.uri,
59+
getUri: () => getWalletConnectUri(connector, "2"),
5560
instructions: {
5661
learnMoreUrl: "https://valoraapp.com/learn",
5762
steps: [

0 commit comments

Comments
 (0)