From 0ce3c1fca47c47db1dcaffcfee5df9cee7e5d2bf Mon Sep 17 00:00:00 2001 From: Jeff Date: Thu, 22 Feb 2024 10:34:08 +0800 Subject: [PATCH] add bitget wallet connector --- example/components/Card.tsx | 1 + example/components/ProviderExample.tsx | 4 +- .../connectorCards/BitgetWalletCard.tsx | 40 +++++++++++++++++++ example/connectors/bitgetWallet.ts | 4 ++ example/pages/index.tsx | 2 + example/utils.ts | 2 + package.json | 2 + yarn.lock | 13 ++++++ 8 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 example/components/connectorCards/BitgetWalletCard.tsx create mode 100644 example/connectors/bitgetWallet.ts diff --git a/example/components/Card.tsx b/example/components/Card.tsx index 64582b5c6..32bb42bbd 100644 --- a/example/components/Card.tsx +++ b/example/components/Card.tsx @@ -2,6 +2,7 @@ import type { CoinbaseWallet } from '@web3-react/coinbase-wallet' import type { Web3ReactHooks } from '@web3-react/core' import type { GnosisSafe } from '@web3-react/gnosis-safe' import type { MetaMask } from '@web3-react/metamask' +import { BitKeep } from '@akkafinance/web3-react-bitkeep' import type { Network } from '@web3-react/network' import type { WalletConnect } from '@web3-react/walletconnect' import type { WalletConnect as WalletConnectV2 } from '@web3-react/walletconnect-v2' diff --git a/example/components/ProviderExample.tsx b/example/components/ProviderExample.tsx index 8721d3318..3427ce730 100644 --- a/example/components/ProviderExample.tsx +++ b/example/components/ProviderExample.tsx @@ -7,13 +7,15 @@ import type { WalletConnect as WalletConnectV2 } from '@web3-react/walletconnect import { coinbaseWallet, hooks as coinbaseWalletHooks } from '../connectors/coinbaseWallet' import { hooks as metaMaskHooks, metaMask } from '../connectors/metaMask' +import { hooks as bitKeepHooks, bitKeep } from '../connectors/bitgetWallet' import { hooks as networkHooks, network } from '../connectors/network' import { hooks as walletConnectHooks, walletConnect } from '../connectors/walletConnect' import { hooks as walletConnectV2Hooks, walletConnectV2 } from '../connectors/walletConnectV2' import { getName } from '../utils' -const connectors: [MetaMask | WalletConnect | WalletConnectV2 | CoinbaseWallet | Network, Web3ReactHooks][] = [ +const connectors: [MetaMask | BitKeep | WalletConnect | WalletConnectV2 | CoinbaseWallet | Network, Web3ReactHooks][] = [ [metaMask, metaMaskHooks], + [bitKeep, bitKeepHooks], [walletConnect, walletConnectHooks], [walletConnectV2, walletConnectV2Hooks], [coinbaseWallet, coinbaseWalletHooks], diff --git a/example/components/connectorCards/BitgetWalletCard.tsx b/example/components/connectorCards/BitgetWalletCard.tsx new file mode 100644 index 000000000..b0e9afde1 --- /dev/null +++ b/example/components/connectorCards/BitgetWalletCard.tsx @@ -0,0 +1,40 @@ +import { useEffect, useState } from 'react' + +import { hooks, bitKeep } from '../../connectors/bitgetWallet' +import { Card } from '../Card' + +const { useChainId, useAccounts, useIsActivating, useIsActive, useProvider, useENSNames } = hooks + +export default function BitgetWalletCard() { + const chainId = useChainId() + const accounts = useAccounts() + const isActivating = useIsActivating() + + const isActive = useIsActive() + + const provider = useProvider() + const ENSNames = useENSNames(provider) + + const [error, setError] = useState(undefined) + + // attempt to connect eagerly on mount + useEffect(() => { + void bitKeep.connectEagerly().catch(() => { + console.debug('Failed to connect eagerly to metamask') + }) + }, []) + + return ( + + ) +} diff --git a/example/connectors/bitgetWallet.ts b/example/connectors/bitgetWallet.ts new file mode 100644 index 000000000..af9c26755 --- /dev/null +++ b/example/connectors/bitgetWallet.ts @@ -0,0 +1,4 @@ +import { initializeConnector } from '@web3-react/core' +import { BitKeep } from '@akkafinance/web3-react-bitkeep' + +export const [bitKeep, hooks] = initializeConnector((actions) => new BitKeep({ actions })) diff --git a/example/pages/index.tsx b/example/pages/index.tsx index baefa90fd..c0637865d 100644 --- a/example/pages/index.tsx +++ b/example/pages/index.tsx @@ -1,6 +1,7 @@ import CoinbaseWalletCard from '../components/connectorCards/CoinbaseWalletCard' import GnosisSafeCard from '../components/connectorCards/GnosisSafeCard' import MetaMaskCard from '../components/connectorCards/MetaMaskCard' +import BitgetWalletCard from '../components/connectorCards/BitgetWalletCard' import NetworkCard from '../components/connectorCards/NetworkCard' import WalletConnectV2Card from '../components/connectorCards/WalletConnectV2Card' import ProviderExample from '../components/ProviderExample' @@ -10,6 +11,7 @@ export default function Home() { <>
+ diff --git a/example/utils.ts b/example/utils.ts index 68e79460a..302342c04 100644 --- a/example/utils.ts +++ b/example/utils.ts @@ -1,6 +1,7 @@ import { CoinbaseWallet } from '@web3-react/coinbase-wallet' import { GnosisSafe } from '@web3-react/gnosis-safe' import { MetaMask } from '@web3-react/metamask' +import { BitKeep } from '@akkafinance/web3-react-bitkeep' import { Network } from '@web3-react/network' import type { Connector } from '@web3-react/types' import { WalletConnect as WalletConnect } from '@web3-react/walletconnect' @@ -8,6 +9,7 @@ import { WalletConnect as WalletConnectV2 } from '@web3-react/walletconnect-v2' export function getName(connector: Connector) { if (connector instanceof MetaMask) return 'MetaMask' + if (connector instanceof BitKeep) return 'Bitget Wallet' if (connector instanceof WalletConnectV2) return 'WalletConnect V2' if (connector instanceof WalletConnect) return 'WalletConnect' if (connector instanceof CoinbaseWallet) return 'Coinbase Wallet' diff --git a/package.json b/package.json index 2eb73fecd..8dab5e24e 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,8 @@ "example" ], "devDependencies": { + "@akkafinance/bitkeep-detect-provider": "^1.0.0", + "@akkafinance/web3-react-bitkeep": "^1.0.0", "@coinbase/wallet-sdk": "^3.3.0", "@testing-library/react-hooks": "^8.0.0", "@tsconfig/recommended": "^1.0.1", diff --git a/yarn.lock b/yarn.lock index 54ebc090c..edbf12671 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7,6 +7,19 @@ resolved "https://registry.yarnpkg.com/@adraffy/ens-normalize/-/ens-normalize-1.9.0.tgz#223572538f6bea336750039bb43a4016dcc8182d" integrity sha512-iowxq3U30sghZotgl4s/oJRci6WPBfNO5YYgk2cIOMCHr3LeGPcsZjCEr+33Q4N+oV3OABDAtA+pyvWjbvBifQ== +"@akkafinance/bitkeep-detect-provider@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@akkafinance/bitkeep-detect-provider/-/bitkeep-detect-provider-1.0.0.tgz#7de16aca785b2f47e3f8b80e4fecb2d186772208" + integrity sha512-LAHjZD51NwJZ/Ck1/JsA/NMcmwcM7m6obNMD09BN8LMeuoKcVn9Roj1azrP9ETXqoYGLuwQwb9Y2kKzARY5gdw== + +"@akkafinance/web3-react-bitkeep@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@akkafinance/web3-react-bitkeep/-/web3-react-bitkeep-1.0.0.tgz#f794290aabb1eaa82e4b36e02b646676764b8414" + integrity sha512-qG3wBu+WDh1YZzEhD6orhaKl9id22fZBnhtHl2zVZ+gx3i9OeaS4A2KACKiutZtxt5VnhBAybWIl3swi4Dj5Jg== + dependencies: + "@akkafinance/bitkeep-detect-provider" "^1.0.0" + "@web3-react/types" "^8.2.0" + "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789"