@web3-react/walletconnect-connector#WalletConnectConnector JavaScript Examples
The following examples show how to use
@web3-react/walletconnect-connector#WalletConnectConnector.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: connectors.jsx From ygov-finance with MIT License | 8 votes |
walletconnect = new WalletConnectConnector({
rpc: { 1: RPC_URLS[1] },
bridge: "https://bridge.walletconnect.org",
qrcode: true,
pollingInterval: POLLING_INTERVAL
})
Example #2
Source File: connectors.jsx From ycredit-finance with MIT License | 8 votes |
walletconnect = new WalletConnectConnector({
rpc: { 1: RPC_URLS[1] },
bridge: "https://bridge.walletconnect.org",
qrcode: true,
pollingInterval: POLLING_INTERVAL
})
Example #3
Source File: connectors.jsx From iliquidate-finance with MIT License | 8 votes |
walletconnect = new WalletConnectConnector({
rpc: { 1: RPC_URLS[1] },
bridge: "https://bridge.walletconnect.org",
qrcode: true,
pollingInterval: POLLING_INTERVAL
})
Example #4
Source File: index.js From Smart-Swap-Protocol with GNU General Public License v3.0 | 8 votes |
walletconnect = new WalletConnectConnector({
rpc: { [Number("8995")]: NETWORK_URL },
bridge: 'https://walletconnect.matic.network',
qrcode: false,
pollingInterval: POLLING_INTERVAL * 3
})
Example #5
Source File: logic.js From lrc-staking-dapp with MIT License | 8 votes |
tryToOpenWalletIfNotActive = (active, walletID, onActivate, onSetWalletID) => {
if (!active) {
switch (walletID) {
case 1: // Read-only
onActivate(new NetworkConnector({ urls: { 1: 'https://mainnet.infura.io/v3/740f8a307aa34141a298506577f063bc' } }))
.catch(() => onSetWalletID(0));
break;
case 2: // Metamask
onActivate(new InjectedConnector({ supportedChainIds: [1, 3, 4, 5, 42] }))
.catch(() => onSetWalletID(0));
break;
case 3:
onActivate(new LedgerConnector({ chainId: 1, url: 'https://mainnet.infura.io/v3/740f8a307aa34141a298506577f063bc' }))
.catch(() => onSetWalletID(0));
break;
case 4:
onActivate(new TrezorConnector({
chainId: 1,
manifestAppUrl: 'https://stake.o2b.dev',
manifestEmail: '[email protected]',
url: 'https://mainnet.infura.io/v3/740f8a307aa34141a298506577f063bc',
}))
.catch(() => onSetWalletID(0));
break;
case 5:
onActivate(new WalletConnectConnector({ rpc: { 1: 'https://mainnet.infura.io/v3/740f8a307aa34141a298506577f063bc' } }))
.catch(() => onSetWalletID(0));
break;
case 6:
onActivate(new AuthereumConnector({ chainId: 1 }))
.catch(() => onSetWalletID(0));
break;
case 7:
onActivate(new FortmaticConnector({ apiKey: 'pk_live_01129497FC783931', chainId: 1 }))
.catch(() => onSetWalletID(0));
break;
case 8:
onActivate(new PortisConnector({ dAppId: '0e834d4c-cea9-4770-9c52-679fe5580bad', networks: [1] }))
.catch(() => onSetWalletID(0));
break;
case 9:
onActivate(new SquarelinkConnector({ clientId: '', networks: [1] }))
.catch(() => onSetWalletID(0));
break;
case 10:
onActivate(new TorusConnector({ chainId: 1 }))
.catch(() => onSetWalletID(0));
break;
default: // No wallet
onSetWalletID(0);
break;
}
}
}
Example #6
Source File: connectors.js From pure.finance with MIT License | 8 votes |
walletconnect = new WalletConnectConnector({
rpc: {
1: nodeUrl
},
bridge: 'https://bridge.walletconnect.org',
qrcode: true,
pollingInterval: 12000
})
Example #7
Source File: index.js From pine-interface with GNU General Public License v3.0 | 7 votes |
export default function WalletModal({ toggleWalletModal, isOpen, ENSName }) {
// important that these are destructed from the account-specific web3-react context
const { active, account, connector, activate, error } = useWeb3React()
const [walletView, setWalletView] = useState(WALLET_VIEWS.ACCOUNT)
const [pendingWallet, setPendingWallet] = useState()
const [pendingError, setPendingError] = useState()
// always reset to account view
useEffect(() => {
if (isOpen) {
setPendingError(false)
setWalletView(WALLET_VIEWS.ACCOUNT)
}
}, [isOpen])
// close modal when a connection is successful
const activePrevious = usePrevious(active)
const connectorPrevious = usePrevious(connector)
useEffect(() => {
if (isOpen && ((active && !activePrevious) || (connector && connector !== connectorPrevious && !error))) {
setWalletView(WALLET_VIEWS.ACCOUNT)
}
}, [setWalletView, active, error, connector, isOpen, activePrevious, connectorPrevious])
const tryActivation = async connector => {
let name = ''
Object.keys(SUPPORTED_WALLETS).map(key => {
if (connector === SUPPORTED_WALLETS[key].connector) {
return (name = SUPPORTED_WALLETS[key].name)
}
return true
})
// log selected wallet
ReactGA.event({
category: 'Wallet',
action: 'Change Wallet',
label: name
})
setPendingWallet(connector) // set wallet for pending view
setWalletView(WALLET_VIEWS.PENDING)
// if the connector is walletconnect and the user has already tried to connect, manually reset the connector
if (
connector instanceof WalletConnectConnector &&
connector.walletConnectProvider &&
connector.walletConnectProvider.wc.uri
) {
connector.walletConnectProvider = undefined
}
activate(connector, undefined, true).catch(error => {
if (error instanceof UnsupportedChainIdError) {
activate(connector) // a little janky...can't use setError because the connector isn't set
} else {
setPendingError(true)
}
})
}
// close wallet modal if fortmatic modal is active
useEffect(() => {
fortmatic.on(OVERLAY_READY, () => {
toggleWalletModal()
})
}, [toggleWalletModal])
// get wallets user can switch too, depending on device/browser
function getOptions() {
const isMetamask = window.ethereum && window.ethereum.isMetaMask
return Object.keys(SUPPORTED_WALLETS).map(key => {
const option = SUPPORTED_WALLETS[key]
// check for mobile options
if (isMobile) {
//disable portis on mobile for now
if (option.connector === portis) {
return null
}
if (!window.web3 && !window.ethereum && option.mobile) {
return (
<Option
onClick={() => {
option.connector !== connector && !option.href && tryActivation(option.connector)
}}
id={`connect-${key}`}
key={key}
active={option.connector && option.connector === connector}
color={option.color}
link={option.href}
header={option.name}
subheader={null}
icon={require('../../assets/images/' + option.iconName)}
/>
)
}
return null
}
// overwrite injected when needed
if (option.connector === injected) {
// don't show injected if there's no injected provider
if (!(window.web3 || window.ethereum)) {
if (option.name === 'MetaMask') {
return (
<Option
id={`connect-${key}`}
key={key}
color={'#E8831D'}
header={'Install Metamask'}
subheader={null}
link={'https://metamask.io/'}
icon={MetamaskIcon}
/>
)
} else {
return null //dont want to return install twice
}
}
// don't return metamask if injected provider isn't metamask
else if (option.name === 'MetaMask' && !isMetamask) {
return null
}
// likewise for generic
else if (option.name === 'Injected' && isMetamask) {
return null
}
}
// return rest of options
return (
!isMobile &&
!option.mobileOnly && (
<Option
id={`connect-${key}`}
onClick={() => {
option.connector === connector
? setWalletView(WALLET_VIEWS.ACCOUNT)
: !option.href && tryActivation(option.connector)
}}
key={key}
active={option.connector === connector}
color={option.color}
link={option.href}
header={option.name}
subheader={null} //use option.descriptio to bring back multi-line
icon={require('../../assets/images/' + option.iconName)}
/>
)
)
})
}
function getModalContent() {
if (error) {
return (
<UpperSection>
<CloseIcon onClick={toggleWalletModal}>
<CloseColor />
</CloseIcon>
<HeaderRow>{error instanceof UnsupportedChainIdError ? 'Wrong Network' : 'Error connecting'}</HeaderRow>
<ContentWrapper>
{error instanceof UnsupportedChainIdError ? (
<h5>Please connect to the appropriate Ethereum network.</h5>
) : (
'Error connecting. Try refreshing the page.'
)}
</ContentWrapper>
</UpperSection>
)
}
if (account && walletView === WALLET_VIEWS.ACCOUNT) {
return (
<AccountDetails
toggleWalletModal={toggleWalletModal}
ENSName={ENSName}
openOptions={() => setWalletView(WALLET_VIEWS.OPTIONS)}
/>
)
}
return (
<UpperSection>
<CloseIcon onClick={toggleWalletModal}>
<CloseColor />
</CloseIcon>
{walletView !== WALLET_VIEWS.ACCOUNT ? (
<HeaderRow color="blue">
<HoverText
onClick={() => {
setPendingError(false)
setWalletView(WALLET_VIEWS.ACCOUNT)
}}
>
Back
</HoverText>
</HeaderRow>
) : (
<HeaderRow>
<HoverText>Connect to a wallet</HoverText>
</HeaderRow>
)}
<ContentWrapper>
{walletView === WALLET_VIEWS.PENDING ? (
<PendingView
connector={pendingWallet}
error={pendingError}
setPendingError={setPendingError}
tryActivation={tryActivation}
/>
) : (
<OptionGrid>{getOptions()}</OptionGrid>
)}
{walletView !== WALLET_VIEWS.PENDING && (
<Blurb>
<span>New to Ethereum? </span>{' '}
<Link href="https://ethereum.org/use/#3-what-is-a-wallet-and-which-one-should-i-use">
Learn more about wallets
</Link>
</Blurb>
)}
</ContentWrapper>
</UpperSection>
)
}
return (
<Modal isOpen={isOpen} onDismiss={toggleWalletModal} minHeight={null} maxHeight={90}>
<Wrapper>{getModalContent()}</Wrapper>
</Modal>
)
}
Example #8
Source File: connectors.jsx From ileverage-finance with MIT License | 7 votes |
walletconnect = new WalletConnectConnector({
rpc: { 1: RPC_URLS[1] },
bridge: "https://bridge.walletconnect.org",
qrcode: true,
pollingInterval: POLLING_INTERVAL
})
Example #9
Source File: Authenticate.jsx From locked.fyi with MIT License | 7 votes |
Authenticate = () => {
const { activate } = useWeb3React()
const injectedConnector = new InjectedConnector({
supportedChainIds: [1, 3, 4, 5, 42],
})
const walletConnectConnector = new WalletConnectConnector({
rpc: {
1: "https://eth-mainnet.alchemyapi.io/v2/GUEohLZ1A5Sv0e5mnfOu0lvF6kwfgkyc",
},
bridge: "https://bridge.walletconnect.org",
qrcode: true,
pollingInterval: 12000,
})
return (
<Buttons>
<AuthenticateButton onClick={() => activate(injectedConnector)}>
Log-in
</AuthenticateButton>
<WalletConnectButton onClick={() => activate(walletConnectConnector)}>
<Qr height={20} width={20} />
</WalletConnectButton>
</Buttons>
)
}
Example #10
Source File: index.js From pine-interface with GNU General Public License v3.0 | 7 votes |
walletconnect = new WalletConnectConnector({
rpc: { 1: NETWORK_URL },
bridge: 'https://bridge.walletconnect.org',
qrcode: true,
pollingInterval: POLLING_INTERVAL
})
Example #11
Source File: index.js From swap-frontend with GNU General Public License v3.0 | 7 votes |
walletconnect = new WalletConnectConnector({
rpc: { 1: NETWORK_URL },
bridge: 'https://bridge.walletconnect.org',
qrcode: false,
pollingInterval: POLLING_INTERVAL
})
Example #12
Source File: index.js From sorbet-finance with GNU General Public License v3.0 | 7 votes |
walletconnect = new WalletConnectConnector({
rpc: {
1: RPC[ChainId.MAINNET],
},
bridge: 'https://bridge.walletconnect.org',
qrcode: true,
pollingInterval: POLLING_INTERVAL,
})
Example #13
Source File: _Helpers.js From acy-dex-interface with MIT License | 7 votes |
getWalletConnectConnector = () => {
const chainId =
localStorage.getItem(SELECTED_NETWORK_LOCAL_STORAGE_KEY) ||
DEFAULT_CHAIN_ID;
return new WalletConnectConnector({
rpc: {
[AVALANCHE]: AVALANCHE_RPC_PROVIDERS[0],
[ARBITRUM]: ARBITRUM_RPC_PROVIDERS[0]
},
qrcode: true,
chainId
});
}
Example #14
Source File: index.js From uniswap-v1-frontend with GNU General Public License v3.0 | 6 votes |
walletconnect = new WalletConnectConnector({
rpc: { 1: NETWORK_URL },
bridge: 'https://bridge.walletconnect.org',
qrcode: false,
pollingInterval: POLLING_INTERVAL
})
Example #15
Source File: index.js From sorbet-finance with GNU General Public License v3.0 | 6 votes |
export default function WalletModal({ toggleWalletModal, isOpen, ENSName }) {
// important that these are destructed from the account-specific web3-react context
const { active, account, connector, activate, error } = useWeb3React()
const [walletView, setWalletView] = useState(WALLET_VIEWS.ACCOUNT)
const [pendingWallet, setPendingWallet] = useState()
const [pendingError, setPendingError] = useState()
// always reset to account view
useEffect(() => {
if (isOpen) {
setPendingError(false)
setWalletView(WALLET_VIEWS.ACCOUNT)
}
}, [isOpen])
// close modal when a connection is successful
const activePrevious = usePrevious(active)
const connectorPrevious = usePrevious(connector)
useEffect(() => {
if (isOpen && ((active && !activePrevious) || (connector && connector !== connectorPrevious && !error))) {
setWalletView(WALLET_VIEWS.ACCOUNT)
}
}, [setWalletView, active, error, connector, isOpen, activePrevious, connectorPrevious])
const tryActivation = async (connector) => {
let name = ''
Object.keys(SUPPORTED_WALLETS).map((key) => {
if (connector === SUPPORTED_WALLETS[key].connector) {
return (name = SUPPORTED_WALLETS[key].name)
}
return true
})
// log selected wallet
ReactGA.event({
category: 'Wallet',
action: 'Change Wallet',
label: name,
})
setPendingWallet(connector) // set wallet for pending view
setWalletView(WALLET_VIEWS.PENDING)
// if the connector is walletconnect and the user has already tried to connect, manually reset the connector
if (
connector instanceof WalletConnectConnector &&
connector.walletConnectProvider &&
connector.walletConnectProvider.wc.uri
) {
connector.walletConnectProvider = undefined
}
activate(connector, undefined, true).catch((error) => {
if (error instanceof UnsupportedChainIdError) {
activate(connector) // a little janky...can't use setError because the connector isn't set
} else {
setPendingError(true)
}
})
}
// close wallet modal if fortmatic modal is active
useEffect(() => {
fortmatic.on(OVERLAY_READY, () => {
toggleWalletModal()
})
}, [toggleWalletModal])
// get wallets user can switch too, depending on device/browser
function getOptions() {
const isMetamask = window.ethereum && window.ethereum.isMetaMask
return Object.keys(SUPPORTED_WALLETS).map((key) => {
const option = SUPPORTED_WALLETS[key]
// check for mobile options
if (isMobile) {
//disable portis on mobile for now
if (option.connector === portis) {
return null
}
if (!window.web3 && !window.ethereum && option.mobile) {
return (
<Option
onClick={() => {
option.connector !== connector && !option.href && tryActivation(option.connector)
}}
id={`connect-${key}`}
key={key}
active={option.connector && option.connector === connector}
color={option.color}
link={option.href}
header={option.name}
subheader={null}
icon={require('../../assets/images/' + option.iconName)}
/>
)
}
return null
}
// overwrite injected when needed
if (option.connector === injected) {
// don't show injected if there's no injected provider
if (!(window.web3 || window.ethereum)) {
if (option.name === 'MetaMask') {
return (
<Option
id={`connect-${key}`}
key={key}
color={'#E8831D'}
header={'Install Metamask'}
subheader={null}
link={'https://metamask.io/'}
icon={MetamaskIcon}
/>
)
} else {
return null //dont want to return install twice
}
}
// don't return metamask if injected provider isn't metamask
else if (option.name === 'MetaMask' && !isMetamask) {
return null
}
// likewise for generic
else if (option.name === 'Injected' && isMetamask) {
return null
}
}
// return rest of options
return (
!isMobile &&
!option.mobileOnly && (
<Option
id={`connect-${key}`}
onClick={() => {
option.connector === connector
? setWalletView(WALLET_VIEWS.ACCOUNT)
: !option.href && tryActivation(option.connector)
}}
key={key}
active={option.connector === connector}
color={option.color}
link={option.href}
header={option.name}
subheader={null} //use option.descriptio to bring back multi-line
icon={require('../../assets/images/' + option.iconName)}
/>
)
)
})
}
function getModalContent() {
if (error) {
return (
<UpperSection>
<CloseIcon onClick={toggleWalletModal}>
<CloseColor />
</CloseIcon>
<HeaderRow>{error instanceof UnsupportedChainIdError ? 'Wrong Network' : 'Error connecting'}</HeaderRow>
<ContentWrapper>
{error instanceof UnsupportedChainIdError ? (
<h5>Please connect to the appropriate Ethereum network.</h5>
) : (
'Error connecting. Try refreshing the page.'
)}
</ContentWrapper>
</UpperSection>
)
}
if (account && walletView === WALLET_VIEWS.ACCOUNT) {
return (
<AccountDetails
toggleWalletModal={toggleWalletModal}
ENSName={ENSName}
openOptions={() => setWalletView(WALLET_VIEWS.OPTIONS)}
/>
)
}
return (
<UpperSection>
<CloseIcon onClick={toggleWalletModal}>
<CloseColor />
</CloseIcon>
{walletView !== WALLET_VIEWS.ACCOUNT ? (
<HeaderRow color="blue">
<HoverText
onClick={() => {
setPendingError(false)
setWalletView(WALLET_VIEWS.ACCOUNT)
}}
>
Back
</HoverText>
</HeaderRow>
) : (
<HeaderRow>
<HoverText>Connect to a wallet</HoverText>
</HeaderRow>
)}
<ContentWrapper>
{walletView === WALLET_VIEWS.PENDING ? (
<PendingView
connector={pendingWallet}
error={pendingError}
setPendingError={setPendingError}
tryActivation={tryActivation}
/>
) : (
<OptionGrid>{getOptions()}</OptionGrid>
)}
{walletView !== WALLET_VIEWS.PENDING && (
<Blurb>
<span>New to Ethereum? </span>{' '}
<Link href="https://ethereum.org/use/#3-what-is-a-wallet-and-which-one-should-i-use">
Learn more about wallets
</Link>
</Blurb>
)}
</ContentWrapper>
</UpperSection>
)
}
return (
<Modal isOpen={isOpen} onDismiss={toggleWalletModal} minHeight={null} maxHeight={90}>
<Wrapper>{getModalContent()}</Wrapper>
</Modal>
)
}
Example #16
Source File: connectors.js From vote-incentives with GNU General Public License v3.0 | 6 votes |
walletconnect = new WalletConnectConnector({
rpc: { 1: RPC_URLS[1] },
bridge: "https://bridge.walletconnect.org",
qrcode: true,
pollingInterval: POLLING_INTERVAL
})
Example #17
Source File: connectors.jsx From crv.finance with MIT License | 6 votes |
walletconnect = new WalletConnectConnector({
rpc: { 1: RPC_URLS[1] },
bridge: "https://bridge.walletconnect.org",
qrcode: true,
pollingInterval: POLLING_INTERVAL
})
Example #18
Source File: connectors.js From origin-dollar with MIT License | 6 votes |
walletConnectConnector = new WalletConnectConnector({
rpc: {
1: RPC_PROVIDER,
},
pollingInterval: POLLING_INTERVAL,
})
Example #19
Source File: connectors.js From origin-dollar with MIT License | 6 votes |
export function resetWalletConnector(connector) {
if (connector && connector instanceof WalletConnectConnector) {
connector.walletConnectProvider = undefined
}
}
Example #20
Source File: index.js From acy-dex-interface with MIT License | 6 votes |
walletconnect = new WalletConnectConnector({
rpc: { 1: RPC_URLS['1'],4: RPC_URLS['4'], 56: RPC_URLS['56'], 97: RPC_URLS['97'], 137:RPC_URLS['137'] },
//rpc: { 1: RPC_URLS['1']},
bridge: "https://pancakeswap.bridge.walletconnect.org/",
qrcode: true,
})