From 989dc0a3dbc8be3d66a3515f3cfa2b61dac0a649 Mon Sep 17 00:00:00 2001 From: Lochie Axon Date: Wed, 19 Jul 2023 12:49:45 +1000 Subject: [PATCH 1/5] fix: svg inherit color in buttons --- packages/connectkit/src/components/Common/Button/styles.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/connectkit/src/components/Common/Button/styles.ts b/packages/connectkit/src/components/Common/Button/styles.ts index 315149ec..eab6a94b 100644 --- a/packages/connectkit/src/components/Common/Button/styles.ts +++ b/packages/connectkit/src/components/Common/Button/styles.ts @@ -25,7 +25,7 @@ export const Arrow = styled.svg` margin-right: 1px; transition: all 100ms ease; transform: translateX(var(--x, -3px)); - color: var(--ck-secondary-button-color, var(--ck-body-color)); + color: currentColor; opacity: 0.4; `; export const ArrowChevron = styled.path``; @@ -40,7 +40,7 @@ export const DownloadArrow = styled.div` vertical-align: middle; position: relative; margin-right: 6px; - color: var(--ck-secondary-button-color, var(--ck-body-color)); + color: currentColor; `; export const DownloadArrowInner = styled.div` transform: rotate(90deg); From 05068379bf42da871c18409701590d03fd9ff475 Mon Sep 17 00:00:00 2001 From: Akash Prasad <106804693+akash-frontier@users.noreply.github.com> Date: Wed, 19 Jul 2023 08:23:15 +0530 Subject: [PATCH 2/5] enabled frontier connector option (#257) --- packages/connectkit/src/assets/logos.tsx | 2 +- .../connectkit/src/components/Pages/Connectors/index.tsx | 7 +++++-- packages/connectkit/src/utils/index.ts | 8 ++++++++ packages/connectkit/src/wallets/connectors/frontier.tsx | 9 +++++++-- 4 files changed, 21 insertions(+), 5 deletions(-) diff --git a/packages/connectkit/src/assets/logos.tsx b/packages/connectkit/src/assets/logos.tsx index 7fc971db..e7401ebd 100644 --- a/packages/connectkit/src/assets/logos.tsx +++ b/packages/connectkit/src/assets/logos.tsx @@ -759,7 +759,7 @@ export const Frontier = ({ ...props }) => ( viewBox="0 0 88 88" fill="none" xmlns="http://www.w3.org/2000/svg" - style={{ background: '#CC703C' }} + style={{ background: '#CC703C', borderRadius: '999px' }} > { const shouldShowInjectedConnector = () => { // Only display if an injected connector is detected const { ethereum } = window; - const needsInjectedWalletFallback = (typeof window !== 'undefined' && ethereum && @@ -90,7 +90,10 @@ const Wallets: React.FC = () => { !isCoinbaseWallet()) || // Trust wallet is a special case that requires further debugging to fix. // For now, we'll just show the injected wallet option if it's available. - isTrust(); + isTrust() || + isFrontier(); + + //!ethereum?.isBraveWallet; // TODO: Add this line when Brave is supported return needsInjectedWalletFallback; }; diff --git a/packages/connectkit/src/utils/index.ts b/packages/connectkit/src/utils/index.ts index 87a36ef1..89031837 100644 --- a/packages/connectkit/src/utils/index.ts +++ b/packages/connectkit/src/utils/index.ts @@ -195,6 +195,13 @@ const isRabby = () => { ethereum?.providers.find((provider) => provider.isRabby)) ); }; +const isFrontier = () => { + if (typeof window === 'undefined') return false; + const { ethereum } = window as any; + const isFrontier = Boolean(ethereum?.isFrontier); + if (isFrontier) return true; + return false; +}; const isTrust = () => { if (typeof window === 'undefined') return false; @@ -265,5 +272,6 @@ export { isRabby, isTrust, isTokenPocket, + isFrontier, flattenChildren, }; diff --git a/packages/connectkit/src/wallets/connectors/frontier.tsx b/packages/connectkit/src/wallets/connectors/frontier.tsx index c0815aa2..75cb1dc3 100644 --- a/packages/connectkit/src/wallets/connectors/frontier.tsx +++ b/packages/connectkit/src/wallets/connectors/frontier.tsx @@ -1,23 +1,28 @@ import { WalletProps } from './../wallet'; -import { isAndroid } from '../../utils'; +import { isAndroid, isFrontier } from '../../utils'; import Logos from './../../assets/logos'; export const frontier = (): WalletProps => { + const isInstalled = isFrontier(); return { id: 'frontier', - name: 'Frontier', + name: 'Frontier Wallet', logos: { default: , }, + shortName: 'Frontier', logoBackground: '#CC703C', scannable: false, + installed: isInstalled, downloadUrls: { download: 'https://connect.family.co/v0/download/frontier', ios: 'https://apps.apple.com/app/frontier-crypto-defi-wallet/id1482380988', android: 'https://play.google.com/store/apps/details?id=com.frontierwallet', website: 'https://frontier.xyz/', + chrome: + 'https://chrome.google.com/webstore/detail/frontier-wallet/kppfdiipphfccemcignhifpjkapfbihd', }, createUri: (uri: string) => { return isAndroid() ? uri : `frontier://wc?uri=${encodeURIComponent(uri)}`; From 4ad2612dd2105ee1c2f4c1758f23ec6cca3293fc Mon Sep 17 00:00:00 2001 From: Rony Fragin <98841690+rony-arnac@users.noreply.github.com> Date: Wed, 19 Jul 2023 06:41:47 +0300 Subject: [PATCH 3/5] feat: add Fordefi wallet (#263) Co-authored-by: Lochie Axon --- packages/connectkit/src/assets/logos.tsx | 16 +++++++++++++++ packages/connectkit/src/utils/index.ts | 11 ++++++++++ .../src/wallets/connectors/fordefi.tsx | 20 +++++++++++++++++++ packages/connectkit/src/wallets/index.ts | 2 ++ .../src/wallets/useDefaultWallets.tsx | 1 + 5 files changed, 50 insertions(+) create mode 100644 packages/connectkit/src/wallets/connectors/fordefi.tsx diff --git a/packages/connectkit/src/assets/logos.tsx b/packages/connectkit/src/assets/logos.tsx index e7401ebd..04fc0579 100644 --- a/packages/connectkit/src/assets/logos.tsx +++ b/packages/connectkit/src/assets/logos.tsx @@ -1040,6 +1040,21 @@ export const OtherWallets = ({ ...props }) => { ); }; +const Fordefi = ({ ...props }) => ( + + + + + + + + + + + + +); + export default { Injected, OtherWallets, @@ -1067,5 +1082,6 @@ export default { Frame, Dawn, Rabby, + Fordefi, TokenPocket, }; diff --git a/packages/connectkit/src/utils/index.ts b/packages/connectkit/src/utils/index.ts index 89031837..71c4d1b2 100644 --- a/packages/connectkit/src/utils/index.ts +++ b/packages/connectkit/src/utils/index.ts @@ -140,6 +140,9 @@ const isMetaMask = () => { if (isPhantom()) return false; + const isFordefi = Boolean(ethereum.isFordefi); + if (isFordefi) return false; + if (isTrust()) return false; return true; @@ -223,6 +226,13 @@ const isTokenPocket = () => { return Boolean(ethereum?.isTokenPocket); }; +const isFordefi = () => { + if (typeof window === 'undefined') return false; + const { ethereum } = window; + + return Boolean(ethereum?.isFordefi); +} + type ReactChildArray = ReturnType; function flattenChildren(children: React.ReactNode): ReactChildArray { const childrenArray = React.Children.toArray(children); @@ -270,6 +280,7 @@ export { isFrame, isPhantom, isRabby, + isFordefi, isTrust, isTokenPocket, isFrontier, diff --git a/packages/connectkit/src/wallets/connectors/fordefi.tsx b/packages/connectkit/src/wallets/connectors/fordefi.tsx new file mode 100644 index 00000000..28d13b57 --- /dev/null +++ b/packages/connectkit/src/wallets/connectors/fordefi.tsx @@ -0,0 +1,20 @@ +import { WalletProps } from '../wallet'; + +import { isFordefi } from '../../utils'; +import Logos from '../../assets/logos'; + +export const fordefi = (): WalletProps => { + const isInstalled = isFordefi(); + + return { + id: 'fordefi', + name: 'Fordefi', + logos: { + default: + }, + logoBackground: '#ffffff', + scannable: false, + downloadUrls: {}, + installed: isInstalled, + }; +}; \ No newline at end of file diff --git a/packages/connectkit/src/wallets/index.ts b/packages/connectkit/src/wallets/index.ts index 4915e28e..f03e0f24 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 { fordefi } from './connectors/fordefi'; import { tokenPocket } from './connectors/tokenPocket'; export const getWallets = () => { @@ -48,6 +49,7 @@ export const getWallets = () => { phantom(), dawn(), rabby(), + fordefi(), tokenPocket(), ]; }; diff --git a/packages/connectkit/src/wallets/useDefaultWallets.tsx b/packages/connectkit/src/wallets/useDefaultWallets.tsx index 0bc485fc..b1897466 100644 --- a/packages/connectkit/src/wallets/useDefaultWallets.tsx +++ b/packages/connectkit/src/wallets/useDefaultWallets.tsx @@ -34,6 +34,7 @@ function useDefaultWallets(): WalletProps[] | any { 'phantom', 'dawn', 'rabby', + 'fordefi', 'tokenPocket' ); From 3dca68520b085dc3c7b3ae652818632d9284ffcd Mon Sep 17 00:00:00 2001 From: Kheops <26880866+0xKheops@users.noreply.github.com> Date: Wed, 19 Jul 2023 06:09:27 +0200 Subject: [PATCH 4/5] feat: add Talisman wallet (#269) * feat: add Talisman wallet * missing comma * isTalisman check --------- Co-authored-by: Lochie Axon --- packages/connectkit/src/assets/logos.tsx | 24 +++++++++++++++++ .../src/components/Pages/Connectors/index.tsx | 4 ++- packages/connectkit/src/utils/index.ts | 10 +++++++ .../src/wallets/connectors/talisman.tsx | 27 +++++++++++++++++++ packages/connectkit/src/wallets/index.ts | 2 ++ .../src/wallets/useDefaultWallets.tsx | 1 + 6 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 packages/connectkit/src/wallets/connectors/talisman.tsx diff --git a/packages/connectkit/src/assets/logos.tsx b/packages/connectkit/src/assets/logos.tsx index 04fc0579..8eb548ef 100644 --- a/packages/connectkit/src/assets/logos.tsx +++ b/packages/connectkit/src/assets/logos.tsx @@ -1001,6 +1001,29 @@ const TokenPocket = ({ ...props }) => ( ); +const Talisman = ({ ...props }) => ( + + + + + +); + export const OtherWallets = ({ ...props }) => { const column: React.CSSProperties = { position: 'relative', @@ -1084,4 +1107,5 @@ export default { Rabby, Fordefi, TokenPocket, + Talisman, }; diff --git a/packages/connectkit/src/components/Pages/Connectors/index.tsx b/packages/connectkit/src/components/Pages/Connectors/index.tsx index 3268ce18..42cc32ac 100644 --- a/packages/connectkit/src/components/Pages/Connectors/index.tsx +++ b/packages/connectkit/src/components/Pages/Connectors/index.tsx @@ -9,6 +9,7 @@ import { isMetaMaskConnector, isTrust, isFrontier, + isTalisman, } from './../../../utils'; import { useConnect } from '../../../hooks/useConnect'; @@ -91,7 +92,8 @@ const Wallets: React.FC = () => { // Trust wallet is a special case that requires further debugging to fix. // For now, we'll just show the injected wallet option if it's available. isTrust() || - isFrontier(); + isFrontier() || + isTalisman(); //!ethereum?.isBraveWallet; // TODO: Add this line when Brave is supported diff --git a/packages/connectkit/src/utils/index.ts b/packages/connectkit/src/utils/index.ts index 71c4d1b2..e028e70f 100644 --- a/packages/connectkit/src/utils/index.ts +++ b/packages/connectkit/src/utils/index.ts @@ -138,6 +138,9 @@ const isMetaMask = () => { const isTokenPocket = Boolean(ethereum.isTokenPocket); if (isTokenPocket) return false; + const isTalisman = Boolean(ethereum.isTalisman); + if (isTalisman) return false; + if (isPhantom()) return false; const isFordefi = Boolean(ethereum.isFordefi); @@ -226,6 +229,12 @@ const isTokenPocket = () => { return Boolean(ethereum?.isTokenPocket); }; +const isTalisman = () => { + if (typeof window === 'undefined') return false; + const { talismanEth } = window as any; + return !!talismanEth?.isTalisman; +}; + const isFordefi = () => { if (typeof window === 'undefined') return false; const { ethereum } = window; @@ -283,6 +292,7 @@ export { isFordefi, isTrust, isTokenPocket, + isTalisman, isFrontier, flattenChildren, }; diff --git a/packages/connectkit/src/wallets/connectors/talisman.tsx b/packages/connectkit/src/wallets/connectors/talisman.tsx new file mode 100644 index 00000000..6bbe8ce4 --- /dev/null +++ b/packages/connectkit/src/wallets/connectors/talisman.tsx @@ -0,0 +1,27 @@ +import { WalletProps } from '../wallet'; + +import { isTalisman } from '../../utils'; +import Logos from '../../assets/logos'; + +export const talisman = (): WalletProps => { + const isInstalled = isTalisman(); + + return { + id: 'talisman', + name: 'Talisman', + shortName: 'Talisman', + scannable: false, + logos: { + default: , + }, + downloadUrls: { + download: 'https://talisman.xyz/download', + website: 'https://talisman.xyz', + chrome: + 'https://chrome.google.com/webstore/detail/talisman-polkadot-wallet/fijngjgcjhjmmpcmkeiomlglpeiijkld', + firefox: + 'https://addons.mozilla.org/en-US/firefox/addon/talisman-wallet-extension/', + }, + installed: isInstalled, + }; +}; diff --git a/packages/connectkit/src/wallets/index.ts b/packages/connectkit/src/wallets/index.ts index f03e0f24..274abf47 100644 --- a/packages/connectkit/src/wallets/index.ts +++ b/packages/connectkit/src/wallets/index.ts @@ -22,6 +22,7 @@ import { dawn } from './connectors/dawn'; import { rabby } from './connectors/rabby'; import { fordefi } from './connectors/fordefi'; import { tokenPocket } from './connectors/tokenPocket'; +import { talisman } from './connectors/talisman'; export const getWallets = () => { return [ @@ -51,5 +52,6 @@ export const getWallets = () => { rabby(), fordefi(), tokenPocket(), + talisman(), ]; }; diff --git a/packages/connectkit/src/wallets/useDefaultWallets.tsx b/packages/connectkit/src/wallets/useDefaultWallets.tsx index b1897466..2e060ff1 100644 --- a/packages/connectkit/src/wallets/useDefaultWallets.tsx +++ b/packages/connectkit/src/wallets/useDefaultWallets.tsx @@ -34,6 +34,7 @@ function useDefaultWallets(): WalletProps[] | any { 'phantom', 'dawn', 'rabby', + 'talisman', 'fordefi', 'tokenPocket' ); From 17a076b9d74669cecbc7627d9edac9254b8cdbf4 Mon Sep 17 00:00:00 2001 From: Infinity Wallet <64919828+InfinityWallet@users.noreply.github.com> Date: Wed, 19 Jul 2023 06:22:13 +0100 Subject: [PATCH 5/5] Add Infinity Wallet support (#244) * Add Infinity Wallet * Update Infinity Wallet * Update logos.tsx --------- Co-authored-by: arons1 Co-authored-by: Lochie Axon --- packages/connectkit/src/assets/logos.tsx | 102 ++++++++++++++++++ packages/connectkit/src/utils/index.ts | 15 ++- .../src/wallets/connectors/infinityWallet.tsx | 31 ++++++ packages/connectkit/src/wallets/index.ts | 3 + .../src/wallets/useDefaultWallets.tsx | 1 + 5 files changed, 151 insertions(+), 1 deletion(-) create mode 100644 packages/connectkit/src/wallets/connectors/infinityWallet.tsx diff --git a/packages/connectkit/src/assets/logos.tsx b/packages/connectkit/src/assets/logos.tsx index 8eb548ef..b8cb955e 100644 --- a/packages/connectkit/src/assets/logos.tsx +++ b/packages/connectkit/src/assets/logos.tsx @@ -863,6 +863,107 @@ export const Dawn = ({ ...props }) => ( ); +export const InfinityWallet = ({...props}) => ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +); + const Rabby = ({ ...props }) => ( { const isFrame = Boolean(ethereum.isFrame); if (isFrame) return false; + const isInfinityWallet = Boolean(ethereum.isInfinityWallet); + if (isInfinityWallet) return false; + const isRabby = Boolean(ethereum.isRabby); if (isRabby) return false; @@ -191,10 +194,19 @@ const isPhantom = () => { return false; }; -const isRabby = () => { +const isInfinityWallet = () => { if (typeof window === 'undefined') return false; const { ethereum } = window; + return !!( + ethereum?.isInfinityWallet || + (ethereum?.providers && + ethereum?.providers.find((provider) => provider.isInfinityWallet)) + ); +}; +const isRabby = () => { + if (typeof window === 'undefined') return false; + const { ethereum } = window; return !!( ethereum?.isRabby || (ethereum?.providers && @@ -288,6 +300,7 @@ export { isCoinbaseWallet, isFrame, isPhantom, + isInfinityWallet, isRabby, isFordefi, isTrust, diff --git a/packages/connectkit/src/wallets/connectors/infinityWallet.tsx b/packages/connectkit/src/wallets/connectors/infinityWallet.tsx new file mode 100644 index 00000000..78b97f1d --- /dev/null +++ b/packages/connectkit/src/wallets/connectors/infinityWallet.tsx @@ -0,0 +1,31 @@ +import { WalletProps } from './../wallet'; + +import { isInfinityWallet } from '../../utils'; +import Logos from './../../assets/logos'; + +export const infinityWallet = (): WalletProps => { + const isInstalled = isInfinityWallet(); + + return { + id: 'infinityWallet', + name: 'Infinity Wallet', + logos: { + default: , + mobile: , + transparent: , + appIcon: , + connectorButton: , + }, + logoBackground: '#08a1d5', + scannable: false, + downloadUrls: { + download: 'https://infinitywallet.io/download', + website: 'https://infinitywallet.io/download', + chrome: 'https://infinitywallet.io/download', + firefox: 'https://infinitywallet.io/download', + brave: 'https://infinitywallet.io/download', + edge: 'https://infinitywallet.io/download', + }, + installed: Boolean(isInstalled), + }; +}; diff --git a/packages/connectkit/src/wallets/index.ts b/packages/connectkit/src/wallets/index.ts index 274abf47..b92a3def 100644 --- a/packages/connectkit/src/wallets/index.ts +++ b/packages/connectkit/src/wallets/index.ts @@ -1,6 +1,7 @@ import { injected } from './connectors/injected'; import { walletConnect } from './connectors/walletConnect'; import { metaMask } from './connectors/metaMask'; +import { infinityWallet } from './connectors/infinityWallet'; import { coinbaseWallet } from './connectors/coinbaseWallet'; import { rainbow } from './connectors/rainbow'; import { argent } from './connectors/argent'; @@ -24,11 +25,13 @@ import { fordefi } from './connectors/fordefi'; import { tokenPocket } from './connectors/tokenPocket'; import { talisman } from './connectors/talisman'; + export const getWallets = () => { return [ injected(), walletConnect(), metaMask(), + infinityWallet(), coinbaseWallet(), argent(), trust(), diff --git a/packages/connectkit/src/wallets/useDefaultWallets.tsx b/packages/connectkit/src/wallets/useDefaultWallets.tsx index 2e060ff1..8db88ef2 100644 --- a/packages/connectkit/src/wallets/useDefaultWallets.tsx +++ b/packages/connectkit/src/wallets/useDefaultWallets.tsx @@ -19,6 +19,7 @@ function useDefaultWallets(): WalletProps[] | any { 'argent', 'trust', 'ledger', + 'infinityWallet', 'family', 'imToken', 'rainbow',