From d1053674b3d639192d3aa3caa1656376102612ed Mon Sep 17 00:00:00 2001
From: chendatony31 <31647753@qq.com>
Date: Wed, 5 Jul 2023 16:27:13 +0800
Subject: [PATCH] feat: Add TokenPocket Wallet support
---
packages/connectkit/src/assets/logos.tsx | 28 +++++++++++++++++++
packages/connectkit/src/utils/index.ts | 11 ++++++++
.../src/wallets/connectors/tokenPocket.tsx | 27 ++++++++++++++++++
packages/connectkit/src/wallets/index.ts | 2 ++
.../src/wallets/useDefaultWallets.tsx | 3 +-
5 files changed, 70 insertions(+), 1 deletion(-)
create mode 100644 packages/connectkit/src/wallets/connectors/tokenPocket.tsx
diff --git a/packages/connectkit/src/assets/logos.tsx b/packages/connectkit/src/assets/logos.tsx
index 3e423f6e..151d0226 100644
--- a/packages/connectkit/src/assets/logos.tsx
+++ b/packages/connectkit/src/assets/logos.tsx
@@ -987,6 +987,33 @@ const Rabby = ({ ...props }) => (
);
+const TokenPocket = ({ ...props }) => (
+
+);
+
export const OtherWallets = ({ ...props }) => {
const column: React.CSSProperties = {
position: 'relative',
@@ -1053,4 +1080,5 @@ export default {
Frame,
Dawn,
Rabby,
+ TokenPocket,
};
diff --git a/packages/connectkit/src/utils/index.ts b/packages/connectkit/src/utils/index.ts
index 96d32884..04cb0862 100644
--- a/packages/connectkit/src/utils/index.ts
+++ b/packages/connectkit/src/utils/index.ts
@@ -118,6 +118,9 @@ const isMetaMask = () => {
const isRabby = Boolean(ethereum.isRabby);
if (isRabby) return false;
+ const isTokenPocket = Boolean(ethereum.isTokenPocket);
+ if (isTokenPocket) return false;
+
if (isPhantom()) return false;
return true;
@@ -174,6 +177,13 @@ const isRabby = () => {
);
};
+const isTokenPocket = () => {
+ if (typeof window === 'undefined') return false;
+ const { ethereum } = window;
+
+ return Boolean(ethereum?.isTokenPocket);
+}
+
type ReactChildArray = ReturnType;
function flattenChildren(children: React.ReactNode): ReactChildArray {
const childrenArray = React.Children.toArray(children);
@@ -220,5 +230,6 @@ export {
isFrame,
isPhantom,
isRabby,
+ isTokenPocket,
flattenChildren,
};
diff --git a/packages/connectkit/src/wallets/connectors/tokenPocket.tsx b/packages/connectkit/src/wallets/connectors/tokenPocket.tsx
new file mode 100644
index 00000000..a70190a9
--- /dev/null
+++ b/packages/connectkit/src/wallets/connectors/tokenPocket.tsx
@@ -0,0 +1,27 @@
+import { WalletProps } from '../wallet';
+
+import { isTokenPocket } from '../../utils';
+import Logos from '../../assets/logos';
+
+export const tokenPocket = (): WalletProps => {
+ const isInstalled = isTokenPocket();
+
+ return {
+ id: 'tokenPocket',
+ name: 'TokenPocket Wallet',
+ logos: {
+ default:
+ },
+ logoBackground: '#2980FE',
+ scannable: false,
+ downloadUrls: {
+ website: 'https://www.tokenpocket.pro/en/download/app',
+ download: 'https://www.tokenpocket.pro/en/download/app',
+ android: 'https://play.google.com/store/apps/details?id=vip.mytokenpocket',
+ ios: 'https://apps.apple.com/us/app/tp-global-wallet/id6444625622',
+ chrome:
+ 'https://chrome.google.com/webstore/detail/tokenpocket/mfgccjchihfkkindfppnaooecgfneiii',
+ },
+ installed: isInstalled,
+ };
+};
diff --git a/packages/connectkit/src/wallets/index.ts b/packages/connectkit/src/wallets/index.ts
index 4cf82905..4915e28e 100644
--- a/packages/connectkit/src/wallets/index.ts
+++ b/packages/connectkit/src/wallets/index.ts
@@ -20,6 +20,7 @@ import { frame } from './connectors/frame';
import { phantom } from './connectors/phantom';
import { dawn } from './connectors/dawn';
import { rabby } from './connectors/rabby';
+import { tokenPocket } from './connectors/tokenPocket';
export const getWallets = () => {
return [
@@ -47,5 +48,6 @@ export const getWallets = () => {
phantom(),
dawn(),
rabby(),
+ tokenPocket(),
];
};
diff --git a/packages/connectkit/src/wallets/useDefaultWallets.tsx b/packages/connectkit/src/wallets/useDefaultWallets.tsx
index 79fc4514..0bc485fc 100644
--- a/packages/connectkit/src/wallets/useDefaultWallets.tsx
+++ b/packages/connectkit/src/wallets/useDefaultWallets.tsx
@@ -33,7 +33,8 @@ function useDefaultWallets(): WalletProps[] | any {
'frame',
'phantom',
'dawn',
- 'rabby'
+ 'rabby',
+ 'tokenPocket'
);
const wallets = getWallets();