From af4ea4e34cb43b95d44e14640a31fae4dfb033db Mon Sep 17 00:00:00 2001 From: Eric Kuhn Date: Fri, 3 May 2024 01:43:42 -0400 Subject: [PATCH] feat: add kraken wallet (#1957) * add kraken wallet * Create fuzzy-dryers-give.md * chore: adjust changeset * fix: kraken wallet locale strings * chore: minified icon --------- Co-authored-by: Daniel Sinclair --- .changeset/fuzzy-dryers-give.md | 6 +++ packages/example/pages/_app.tsx | 2 + packages/rainbowkit/src/locales/en_US.json | 17 ++++++ .../src/wallets/walletConnectors/index.ts | 2 + .../krakenWallet/krakenWallet.svg | 1 + .../krakenWallet/krakenWallet.ts | 54 +++++++++++++++++++ site/data/en-US/docs/custom-wallet-list.mdx | 6 +++ 7 files changed, 88 insertions(+) create mode 100644 .changeset/fuzzy-dryers-give.md create mode 100644 packages/rainbowkit/src/wallets/walletConnectors/krakenWallet/krakenWallet.svg create mode 100644 packages/rainbowkit/src/wallets/walletConnectors/krakenWallet/krakenWallet.ts diff --git a/.changeset/fuzzy-dryers-give.md b/.changeset/fuzzy-dryers-give.md new file mode 100644 index 0000000000..5f0ab869a4 --- /dev/null +++ b/.changeset/fuzzy-dryers-give.md @@ -0,0 +1,6 @@ +--- +"@rainbow-me/rainbowkit": patch +"example": patch +--- + +Added Kraken Wallet support with `krakenWallet` wallet connector diff --git a/packages/example/pages/_app.tsx b/packages/example/pages/_app.tsx index c894f39f10..1e347fb47e 100644 --- a/packages/example/pages/_app.tsx +++ b/packages/example/pages/_app.tsx @@ -38,6 +38,7 @@ import { gateWallet, imTokenWallet, kaikasWallet, + krakenWallet, kresusWallet, ledgerWallet, mewWallet, @@ -202,6 +203,7 @@ const config = getDefaultConfig({ gateWallet, imTokenWallet, kresusWallet, + krakenWallet, kaikasWallet, ledgerWallet, mewWallet, diff --git a/packages/rainbowkit/src/locales/en_US.json b/packages/rainbowkit/src/locales/en_US.json index b0957c3807..00838ea37d 100644 --- a/packages/rainbowkit/src/locales/en_US.json +++ b/packages/rainbowkit/src/locales/en_US.json @@ -599,6 +599,23 @@ } }, + "kraken": { + "qr_code": { + "step1": { + "title": "Open the Kraken Wallet app", + "description": "Add Kraken Wallet to your home screen for faster access to your wallet." + }, + "step2": { + "title": "Create or Import a Wallet", + "description": "Create a new wallet or import an existing one." + }, + "step3": { + "title": "Tap the QR icon and scan", + "description": "Tap the QR icon on your homescreen, scan the code and confirm the prompt to connect." + } + } + }, + "kresus": { "qr_code": { "step1": { diff --git a/packages/rainbowkit/src/wallets/walletConnectors/index.ts b/packages/rainbowkit/src/wallets/walletConnectors/index.ts index bcdad91dc1..5e94ff66a5 100644 --- a/packages/rainbowkit/src/wallets/walletConnectors/index.ts +++ b/packages/rainbowkit/src/wallets/walletConnectors/index.ts @@ -21,6 +21,7 @@ import { gateWallet } from './gateWallet/gateWallet'; import { imTokenWallet } from './imTokenWallet/imTokenWallet'; import { injectedWallet } from './injectedWallet/injectedWallet'; import { kaikasWallet } from './kaikasWallet/kaikasWallet'; +import { krakenWallet } from './krakenWallet/krakenWallet'; import { kresusWallet } from './kresusWallet/kresusWallet'; import { ledgerWallet } from './ledgerWallet/ledgerWallet'; import { metaMaskWallet } from './metaMaskWallet/metaMaskWallet'; @@ -74,6 +75,7 @@ export { imTokenWallet, injectedWallet, kaikasWallet, + krakenWallet, kresusWallet, ledgerWallet, metaMaskWallet, diff --git a/packages/rainbowkit/src/wallets/walletConnectors/krakenWallet/krakenWallet.svg b/packages/rainbowkit/src/wallets/walletConnectors/krakenWallet/krakenWallet.svg new file mode 100644 index 0000000000..1396018a02 --- /dev/null +++ b/packages/rainbowkit/src/wallets/walletConnectors/krakenWallet/krakenWallet.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/rainbowkit/src/wallets/walletConnectors/krakenWallet/krakenWallet.ts b/packages/rainbowkit/src/wallets/walletConnectors/krakenWallet/krakenWallet.ts new file mode 100644 index 0000000000..cf9ef80f09 --- /dev/null +++ b/packages/rainbowkit/src/wallets/walletConnectors/krakenWallet/krakenWallet.ts @@ -0,0 +1,54 @@ +import { Wallet } from '../../Wallet'; +import { getWalletConnectConnector } from '../../getWalletConnectConnector'; +import { DefaultWalletOptions } from './../../Wallet'; + +export type KrakenWalletOptions = DefaultWalletOptions; + +export const krakenWallet = ({ + projectId, + walletConnectParameters, +}: KrakenWalletOptions): Wallet => ({ + id: 'kraken', + name: 'Kraken Wallet', + iconUrl: async () => (await import('./krakenWallet.svg')).default, + iconBackground: '#FFD8EA', + downloadUrls: { + ios: 'https://apps.apple.com/us/app/kraken-wallet/id1626327149', + mobile: 'https://kraken.com/wallet', + qrCode: 'https://kraken.com/wallet', + }, + + mobile: { + getUri: (uri: string) => { + return `krakenwallet://wc?uri=${encodeURIComponent(uri)}`; + }, + }, + qrCode: { + getUri: (uri: string) => uri, + instructions: { + learnMoreUrl: 'https://kraken.com/wallet', + steps: [ + { + description: 'wallet_connectors.kraken.qr_code.step1.description', + step: 'install', + title: 'wallet_connectors.kraken.qr_code.step1.title', + }, + { + description: 'wallet_connectors.kraken.qr_code.step2.description', + step: 'create', + title: 'wallet_connectors.kraken.qr_code.step2.title', + }, + { + description: 'wallet_connectors.kraken.qr_code.step3.description', + step: 'scan', + title: 'wallet_connectors.kraken.qr_code.step3.title', + }, + ], + }, + }, + + createConnector: getWalletConnectConnector({ + projectId, + walletConnectParameters, + }), +}); diff --git a/site/data/en-US/docs/custom-wallet-list.mdx b/site/data/en-US/docs/custom-wallet-list.mdx index 5058f7b8af..798c468a96 100644 --- a/site/data/en-US/docs/custom-wallet-list.mdx +++ b/site/data/en-US/docs/custom-wallet-list.mdx @@ -218,6 +218,12 @@ import { ledgerWallet } from '@rainbow-me/rainbowkit/wallets'; import { imTokenWallet } from '@rainbow-me/rainbowkit/wallets'; ``` +#### Kraken Wallet + +```tsx +import { krakenWallet } from '@rainbow-me/rainbowkit/wallets'; +``` + #### Kresus Wallet ```tsx