diff --git a/packages/boba/gateway/.env.example b/packages/boba/gateway/.env.example
index 137a89312a..054cbaac61 100644
--- a/packages/boba/gateway/.env.example
+++ b/packages/boba/gateway/.env.example
@@ -16,3 +16,9 @@ REACT_APP_ZENDESK_KEY= ## KEY for the zendesk widget.
################
# to disable the veDoa set below flat to 1.
REACT_APP_DISABLE_VE_DAO=1
+
+#####################
+##### WebWallet #####
+#####################
+# to disable the walletConnect set below flat to 1.
+REACT_APP_DISABLE_WALLETCONNECT=1
diff --git a/packages/boba/gateway/package.json b/packages/boba/gateway/package.json
index 62c0104971..64479b6826 100644
--- a/packages/boba/gateway/package.json
+++ b/packages/boba/gateway/package.json
@@ -30,6 +30,7 @@
"@sentry/tracing": "^7.30.0",
"@typescript-eslint/eslint-plugin": "^5.10.2",
"@typescript-eslint/parser": "^5.10.2",
+ "@walletconnect/web3-provider": "^1.8.0",
"axios": "^0.21.1",
"bignumber.js": "^9.0.1",
"bn.js": "^5.1.3",
@@ -63,23 +64,17 @@
"serve": "^11.3.2",
"truncate-middle": "^1.0.6",
"ts-md5": "^1.2.11",
- "typescript": "^4.3.5"
+ "typescript": "^4.3.5",
+ "web3": "^1.8.2"
},
"eslintConfig": {
"extends": "react-app"
},
- "browserslist": {
- "production": [
- ">0.2%",
- "not dead",
- "not op_mini all"
- ],
- "development": [
- "last 1 chrome version",
- "last 1 firefox version",
- "last 1 safari version"
- ]
- },
+ "browserslist": [
+ ">0.2%",
+ "not dead",
+ "not op_mini all"
+ ],
"devDependencies": {
"@beam-australia/react-env": "2.1.2",
"audit-ci": "^3.1.1"
diff --git a/packages/boba/gateway/src/actions/setupAction.js b/packages/boba/gateway/src/actions/setupAction.js
index eebeb9c777..6fe1bb1b55 100644
--- a/packages/boba/gateway/src/actions/setupAction.js
+++ b/packages/boba/gateway/src/actions/setupAction.js
@@ -75,3 +75,21 @@ export function setConnect( state ) {
return dispatch({ type: 'SETUP/CONNECT', payload: state })
}
}
+
+export function setWalletConnected( state ) {
+ return function (dispatch) {
+ return dispatch({ type: 'SETUP/WALLET_CONNECTED', payload: state })
+ }
+}
+
+export function setChainIdChanged(state) {
+ return function (dispatch) {
+ return dispatch({ type: 'SETUP/CHAINIDCHANGED/SET', payload: state })
+ }
+}
+
+export function resetChainIdChanged() {
+ return function (dispatch) {
+ return dispatch({ type: 'SETUP/CHAINIDCHANGED/RESET' })
+ }
+}
diff --git a/packages/boba/gateway/src/actions/tokenAction.js b/packages/boba/gateway/src/actions/tokenAction.js
index e3627aec26..4154462e34 100644
--- a/packages/boba/gateway/src/actions/tokenAction.js
+++ b/packages/boba/gateway/src/actions/tokenAction.js
@@ -225,3 +225,9 @@ export async function addToken ( tokenContractAddressL1 ) {
return {currency: _tokenContractAddressL1, L1address: _tokenContractAddressL1, L2address: '', symbol: 'Not found', error: 'Not found'};
}
}
+
+export function restTokenList () {
+ return function (dispatch) {
+ return dispatch({ type: 'TOKEN/GET/RESET' });
+ }
+}
diff --git a/packages/boba/gateway/src/components/disconnect/Disconnect.js b/packages/boba/gateway/src/components/disconnect/Disconnect.js
new file mode 100644
index 0000000000..d98b11b429
--- /dev/null
+++ b/packages/boba/gateway/src/components/disconnect/Disconnect.js
@@ -0,0 +1,57 @@
+/*
+Copyright 2021-present Boba Network.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License. */
+
+import React from 'react';
+import { useDispatch } from 'react-redux';
+import { LoginOutlined } from '@mui/icons-material';
+import { IconButton, Tooltip } from '@mui/material';
+
+import {
+ setLayer,
+ setConnect,
+ setConnectBOBA,
+ setConnectETH,
+ setEnableAccount,
+ setWalletConnected
+ } from 'actions/setupAction';
+
+import networkService from 'services/networkService';
+
+function Disconnect () {
+
+ const dispatch = useDispatch();
+
+ const disconnect = async () => {
+ await networkService.walletService.disconnectWallet()
+ dispatch(setLayer(null))
+ dispatch(setConnect(false))
+ dispatch(setConnectBOBA(false))
+ dispatch(setConnectETH(false))
+ dispatch(setWalletConnected(false))
+ dispatch(setEnableAccount(false))
+ }
+
+ return (
+ <>
+
+
+
+
+
+ >
+ );
+}
+
+export default React.memo(Disconnect);
diff --git a/packages/boba/gateway/src/components/mainMenu/layerSwitcher/LayerSwitcher.js b/packages/boba/gateway/src/components/mainMenu/layerSwitcher/LayerSwitcher.js
index 9c7ea59ed0..a535d35768 100644
--- a/packages/boba/gateway/src/components/mainMenu/layerSwitcher/LayerSwitcher.js
+++ b/packages/boba/gateway/src/components/mainMenu/layerSwitcher/LayerSwitcher.js
@@ -22,7 +22,7 @@ import {
IconButton,
} from '@mui/material'
import { useTheme } from '@mui/styles'
-import { setConnect, setConnectBOBA, setConnectETH, setLayer } from 'actions/setupAction.js'
+import { setConnect, setWalletConnected, setConnectBOBA, setConnectETH, setLayer } from 'actions/setupAction.js'
import BobaIcon from 'components/icons/BobaIcon.js'
import EthereumIcon from 'components/icons/EthereumIcon.js'
import React, { useCallback, useEffect } from 'react'
@@ -35,6 +35,8 @@ import {
selectConnectETH,
selectConnectBOBA,
selectConnect,
+ selectWalletConnected,
+ selectChainIdChanged,
} from 'selectors/setupSelector'
import {
@@ -52,10 +54,10 @@ import { setEnableAccount, setWalletAddress } from 'actions/setupAction'
import { fetchTransactions, fetchBalances } from 'actions/networkAction'
-import { openModal } from 'actions/uiAction'
+import { closeModal, openModal } from 'actions/uiAction'
import Button from 'components/button/Button.js'
import { L1_ICONS, L2_ICONS } from 'util/network/network.util.js'
-import { LAYER } from 'util/constant.js'
+import { LAYER, DISABLE_WALLETCONNECT } from 'util/constant.js'
function LayerSwitcher({ visisble = true, isButton = false }) {
const dispatch = useDispatch()
@@ -74,6 +76,8 @@ function LayerSwitcher({ visisble = true, isButton = false }) {
const connectETHRequest = useSelector(selectConnectETH())
const connectBOBARequest = useSelector(selectConnectBOBA())
const connectRequest = useSelector(selectConnect())
+ const walletConnected = useSelector(selectWalletConnected())
+ const chainIdChanged = useSelector(selectChainIdChanged())
const theme = useTheme()
const isMobile = useMediaQuery(theme.breakpoints.down('md'))
@@ -82,21 +86,15 @@ function LayerSwitcher({ visisble = true, isButton = false }) {
? truncate(networkService.account, 6, 4, '...')
: ''
- const chainChangedFromMM = JSON.parse(
- localStorage.getItem('chainChangedFromMM')
- )
- const wantChain = JSON.parse(localStorage.getItem('wantChain'))
- const chainChangedInit = JSON.parse(localStorage.getItem('chainChangedInit'))
-
const dispatchBootAccount = useCallback(() => {
-
- if (!accountEnabled && baseEnabled) initializeAccount()
+ if ((!accountEnabled && baseEnabled) || chainIdChanged) initializeAccount()
async function initializeAccount() {
const initialized = await networkService.initializeAccount({
networkGateway: network,
networkType,
+ chainIdChanged,
})
if (initialized === 'nometamask') {
dispatch(openModal('noMetaMaskModal'));
@@ -110,6 +108,7 @@ function LayerSwitcher({ visisble = true, isButton = false }) {
return false
}
else if (initialized === LAYER.L1 || initialized === LAYER.L2) {
+ dispatch(closeModal('wrongNetworkModal'))
dispatch(setLayer(initialized))
dispatch(setEnableAccount(true))
dispatch(setWalletAddress(networkService.account))
@@ -120,49 +119,60 @@ function LayerSwitcher({ visisble = true, isButton = false }) {
return false
}
}
- }, [dispatch, accountEnabled, network, networkType, baseEnabled])
+ }, [dispatch, accountEnabled, network, networkType, baseEnabled, chainIdChanged])
const doConnectToLayer = useCallback((layer) => {
+ function resetConnectChain() {
+ dispatch(setConnect(false))
+ dispatch(setConnectETH(false))
+ }
+
async function doConnect() {
try {
- localStorage.setItem('wantChain', JSON.stringify(layer))
- await networkService.switchChain(layer)
- dispatchBootAccount()
+ if (networkService.walletService.provider) {
+ if (await networkService.switchChain(layer)) {
+ if (layer === 'L1') {
+ dispatch(setConnectBOBA(false))
+ } else {
+ dispatch(setConnectETH(false))
+ }
+ dispatchBootAccount()
+ } else {
+ resetConnectChain()
+ }
+ } else {
+ // bypass walletSelectorModal
+ if (DISABLE_WALLETCONNECT) {
+ if (await networkService.walletService.connectWallet('metamask')) {
+ dispatch(setWalletConnected(true))
+ } else {
+ resetConnectChain()
+ }
+ } else {
+ resetConnectChain()
+ dispatch(openModal('walletSelectorModal'))
+ }
+ }
} catch (err) {
console.log('ERROR', err)
- dispatch(setConnectETH(false));
- dispatch(setConnectBOBA(false));
+ resetConnectChain()
}
}
doConnect();
}, [dispatch, dispatchBootAccount])
useEffect(() => {
- // detect mismatch and correct the mismatch
- if (wantChain === 'L1' && layer === 'L2') {
- dispatchBootAccount()
- } else if (wantChain === 'L2' && layer === 'L1') {
+ if (walletConnected) {
dispatchBootAccount()
}
- }, [wantChain, layer, dispatchBootAccount])
+ }, [walletConnected, dispatchBootAccount])
useEffect(() => {
- // auto reconnect to MM if we just switched chains from
- // with the chain switcher, and then unset the flag.
- if (chainChangedInit) {
- dispatchBootAccount()
- localStorage.setItem('chainChangedInit', false)
- }
- }, [chainChangedInit, dispatchBootAccount])
-
- useEffect(() => {
- // auto reconnect to MM if we just switched chains from
- // inside MM, and then unset the flag.
- if (chainChangedFromMM) {
+ // detect mismatch and correct the mismatch
+ if (layer === 'L1' || layer === 'L2') {
dispatchBootAccount()
- localStorage.setItem('chainChangedFromMM', false)
}
- }, [chainChangedFromMM, dispatchBootAccount])
+ }, [layer, dispatchBootAccount])
// listening for l1 connection request
useEffect(() => {
@@ -179,10 +189,15 @@ function LayerSwitcher({ visisble = true, isButton = false }) {
}, [ connectBOBARequest, doConnectToLayer ])
useEffect(() => {
- if (connectRequest) {
- dispatchBootAccount()
+ if (connectRequest && !networkService.walletService.provider) {
+ // bypass walletSelectorModal
+ if (DISABLE_WALLETCONNECT) {
+ dispatchBootAccount()
+ } else {
+ dispatch(openModal('walletSelectorModal'))
+ }
}
- }, [connectRequest, dispatchBootAccount])
+ }, [dispatch, connectRequest, dispatchBootAccount])
if (!visisble) {
return null
diff --git a/packages/boba/gateway/src/components/modal/Modal.js b/packages/boba/gateway/src/components/modal/Modal.js
index b842fcbea8..29be52615d 100644
--- a/packages/boba/gateway/src/components/modal/Modal.js
+++ b/packages/boba/gateway/src/components/modal/Modal.js
@@ -61,7 +61,7 @@ function _Modal({
{
!!newStyle ?
-
+
diff --git a/packages/boba/gateway/src/components/modal/Modal.styles.js b/packages/boba/gateway/src/components/modal/Modal.styles.js
index 90107ac8a0..1dcc3fb897 100644
--- a/packages/boba/gateway/src/components/modal/Modal.styles.js
+++ b/packages/boba/gateway/src/components/modal/Modal.styles.js
@@ -77,3 +77,10 @@ export const Content = styled(Box)(({ theme }) => ({
flexDirection: 'column',
gap:'10px',
}));
+
+export const BoxCenter = styled(Box)(({ theme }) => ({
+ display: 'flex',
+ justifyContent: 'space-around',
+ alignItems: 'center',
+ cursor: 'pointer',
+}))
diff --git a/packages/boba/gateway/src/components/pageHeader/PageHeader.js b/packages/boba/gateway/src/components/pageHeader/PageHeader.js
index c36227d05c..83ba1e7b0a 100644
--- a/packages/boba/gateway/src/components/pageHeader/PageHeader.js
+++ b/packages/boba/gateway/src/components/pageHeader/PageHeader.js
@@ -22,6 +22,7 @@ import CloseIcon from 'components/icons/CloseIcon'
import networkService from 'services/networkService'
import { makeStyles } from '@mui/styles'
import Copy from 'components/copy/Copy'
+import Disconnect from 'components/disconnect/Disconnect'
import { useSelector } from 'react-redux'
import {
selectAccountEnabled,
@@ -169,7 +170,10 @@ const PageHeader = ({ maintenance }) => {
{!!accountEnabled ? (
-
+ <>
+
+
+ >
) : null}
diff --git a/packages/boba/gateway/src/containers/home/Home.js b/packages/boba/gateway/src/containers/home/Home.js
index 667eaace0e..5762738e3b 100644
--- a/packages/boba/gateway/src/containers/home/Home.js
+++ b/packages/boba/gateway/src/containers/home/Home.js
@@ -74,6 +74,7 @@ import TransferPendingModal from 'containers/modals/transferPending/TransferPend
import WrongNetworkModal from 'containers/modals/wrongNetwork/WrongNetworkModal';
import ManageLockModal from 'containers/modals/veBoba/ManageLockModal';
import NoMetaMaskModal from 'containers/modals/noMetaMask/NoMetaMaskModal'
+import WalletSelectorModal from 'containers/modals/walletSelector/WalletSelectorModal'
import CDMCompletionModal from 'containers/modals/CDMCompletion/CDMCompletionModal'
/******** COMPONENTS ********/
@@ -118,6 +119,7 @@ function Home() {
const noMetaMaskModalState = useSelector(selectModalState('noMetaMaskModal'));
const installMetaMaskModalState = useSelector(selectModalState('installMetaMaskModal'));
const manageLockModalState = useSelector(selectModalState('manageLock'));
+ const walletSelectorModalState = useSelector(selectModalState('walletSelectorModal'));
const CDMCompletionModalState = useSelector(selectModalState('CDMCompletionModal'));
const fast = useSelector(selectModalState('fast'))
@@ -247,6 +249,7 @@ function Home() {
{!!noMetaMaskModalState && }
{!!installMetaMaskModalState && }
{!!manageLockModalState && }
+ {!!walletSelectorModalState && }
{!!CDMCompletionModalState && }
{
+ function resetConnectChain() {
+ dispatch(setConnectETH(false))
+ dispatch(setConnectBOBA(false))
+ }
+
+ try {
+ if (await networkService.walletService.connectWallet(type)) {
+ dispatch(closeModal('walletSelectorModal'))
+ dispatch(setWalletConnected(true))
+ } else {
+ resetConnectChain()
+ }
+ } catch (error) {
+ console.log(`Error connecting wallet: ${error}`)
+ resetConnectChain()
+ }
+ }
+
+ function handleClose () {
+ dispatch(closeModal('walletSelectorModal'))
+ dispatch(setConnectETH(false))
+ dispatch(setConnectBOBA(false))
+ }
+
+ return (
+
+
+
+ connectToWallet('metamask')}>
+
+
+ MetaMask
+
+
+ connectToWallet('walletconnect')}>
+
+
+ WalletConnect
+
+
+
+
+
+ )
+}
+
+export default React.memo(WalletSelectorModal)
diff --git a/packages/boba/gateway/src/containers/modals/wrongNetwork/WrongNetworkModal.js b/packages/boba/gateway/src/containers/modals/wrongNetwork/WrongNetworkModal.js
index a124b69872..9738834722 100644
--- a/packages/boba/gateway/src/containers/modals/wrongNetwork/WrongNetworkModal.js
+++ b/packages/boba/gateway/src/containers/modals/wrongNetwork/WrongNetworkModal.js
@@ -4,15 +4,23 @@ import { closeModal } from 'actions/uiAction';
import Button from 'components/button/Button';
import Modal from 'components/modal/Modal';
-import React from 'react';
+import React, { useEffect } from 'react';
import { useDispatch, useSelector } from 'react-redux';
import { selectNetwork } from 'selectors/networkSelector';
+import { restTokenList } from 'actions/tokenAction';
function WrongNetworkModal({open}) {
const dispatch = useDispatch();
const network = useSelector(selectNetwork());
+ useEffect(() => {
+ if (open){
+ dispatch(restTokenList())
+ }
+ }, [dispatch, open])
+
+
function handleClose() {
dispatch(setConnect(false));
dispatch(closeModal('wrongNetworkModal'));
diff --git a/packages/boba/gateway/src/images/metamask.svg b/packages/boba/gateway/src/images/metamask.svg
new file mode 100644
index 0000000000..47ccb58a16
--- /dev/null
+++ b/packages/boba/gateway/src/images/metamask.svg
@@ -0,0 +1,18 @@
+
+
\ No newline at end of file
diff --git a/packages/boba/gateway/src/images/walletconnect.png b/packages/boba/gateway/src/images/walletconnect.png
deleted file mode 100644
index 4977c99599..0000000000
Binary files a/packages/boba/gateway/src/images/walletconnect.png and /dev/null differ
diff --git a/packages/boba/gateway/src/images/walletconnect.svg b/packages/boba/gateway/src/images/walletconnect.svg
new file mode 100644
index 0000000000..a03a5d6726
--- /dev/null
+++ b/packages/boba/gateway/src/images/walletconnect.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/packages/boba/gateway/src/reducers/setupReducer.js b/packages/boba/gateway/src/reducers/setupReducer.js
index e8781023ff..745f5e3151 100644
--- a/packages/boba/gateway/src/reducers/setupReducer.js
+++ b/packages/boba/gateway/src/reducers/setupReducer.js
@@ -29,7 +29,9 @@ const initialState = {
bobaFeeChoice: null,
connectETH: false,
connectBOBA: false,
- connect: false
+ connect: false,
+ walletConnected: false,
+ chainIdChanged: false,
}
function setupReducer(state = initialState, action) {
@@ -71,6 +73,11 @@ function setupReducer(state = initialState, action) {
...state,
connect: action.payload
}
+ case 'SETUP/WALLET_CONNECTED':
+ return {
+ ...state,
+ walletConnected: action.payload
+ }
case 'SETUP/SWITCH/REQUEST':
localStorage.setItem("justSwitchedChain", JSON.stringify(true))
return {
@@ -95,6 +102,16 @@ function setupReducer(state = initialState, action) {
appChain: action.payload,
network: action.payload
}
+ case 'SETUP/CHAINIDCHANGED/SET':
+ return {
+ ...state,
+ chainIdChanged: action.payload
+ }
+ case 'SETUP/CHAINIDCHANGED/RESET':
+ return {
+ ...state,
+ chainIdChanged: false
+ }
default:
return state
}
diff --git a/packages/boba/gateway/src/reducers/tokenReducer.js b/packages/boba/gateway/src/reducers/tokenReducer.js
index a3b6b40ee7..04a473a370 100644
--- a/packages/boba/gateway/src/reducers/tokenReducer.js
+++ b/packages/boba/gateway/src/reducers/tokenReducer.js
@@ -31,6 +31,9 @@ const initialState = {
function tokenReducer(state = initialState, action) {
switch (action.type) {
+ case 'TOKEN/GET/RESET':
+ state = initialState
+ return state
case 'TOKEN/GET/SUCCESS':
return {
...state,
diff --git a/packages/boba/gateway/src/reducers/uiReducer.js b/packages/boba/gateway/src/reducers/uiReducer.js
index e5d529b749..9dff1a64cc 100644
--- a/packages/boba/gateway/src/reducers/uiReducer.js
+++ b/packages/boba/gateway/src/reducers/uiReducer.js
@@ -34,6 +34,7 @@ const initialState = {
delegateDaoModal: false,
delegateDaoXModal: false,
newProposalModal: false,
+ walletSelectorModal: false,
CDMCompletionModal: false,
ledger: false,
alert: null,
diff --git a/packages/boba/gateway/src/selectors/setupSelector.js b/packages/boba/gateway/src/selectors/setupSelector.js
index e365fa0f5e..47b36934f9 100644
--- a/packages/boba/gateway/src/selectors/setupSelector.js
+++ b/packages/boba/gateway/src/selectors/setupSelector.js
@@ -87,3 +87,14 @@ export function selectMonsterInfo () {
}
}
+export function selectWalletConnected () {
+ return function (state) {
+ return state.setup['walletConnected']
+ }
+}
+
+export function selectChainIdChanged () {
+ return function (state) {
+ return state.setup['chainIdChanged']
+ }
+}
diff --git a/packages/boba/gateway/src/services/networkService.js b/packages/boba/gateway/src/services/networkService.js
index 8f8103dcc5..2f5f6c762a 100644
--- a/packages/boba/gateway/src/services/networkService.js
+++ b/packages/boba/gateway/src/services/networkService.js
@@ -96,6 +96,8 @@ import { MIN_NATIVE_L1_BALANCE } from 'util/constant'
import { getPoolDetail } from 'util/poolDetails'
import { pingRpcUrl, getNetworkDetail, NETWORK, NETWORK_TYPE } from 'util/network/network.util'
import appService from './app.service'
+import walletService from './wallet.service'
+
import BobaGasPriceOracleABI from './abi/BobaGasPriceOracle.abi'
import L1StandardBridgeABI from './abi/L1StandardBridge.abi'
@@ -109,15 +111,6 @@ const L2_SECONDARYFEETOKEN_ADDRESS = '0x4200000000000000000000000000000000000023
let allTokens = {}
-function handleChangeChainOnce(chainID_hex_string) {
-
- localStorage.setItem('chainChangedInit', true)
-
- localStorage.setItem('newChain', Number(chainID_hex_string))
- // and remove the listner
- window.ethereum.removeListener('chainChanged', handleChangeChainOnce)
-}
-
class NetworkService {
constructor() {
@@ -156,10 +149,6 @@ class NetworkService {
this.tokenAddresses = null
- // chain ID
- this.chainID = null
- this.networkName = null
-
// gas
this.L1GasLimit = 9999999
// setting of this value not important since it's not connected to anything in the contracts
@@ -197,28 +186,11 @@ class NetworkService {
this.addresses = {}
this.network = null;
this.networkConfig = null
- }
- bindProviderListeners() {
- window.ethereum.on('accountsChanged', () => {
- window.location.reload()
- })
- window.ethereum.on('chainChanged', () => {
- const chainChangedInit = JSON.parse(localStorage.getItem('chainChangedInit'))
- // do not reload window in the special case where the user
- // changed chains AND conncted at the same time
- // otherwise the user gets confused about why they are going through
- // two window reloads
- if(chainChangedInit) {
- localStorage.setItem('chainChangedInit', false)
- } else {
- localStorage.setItem('chainChangedFromMM', true)
- window.location.reload()
- }
- })
+ // wallet service
+ this.walletService = walletService
}
-
async getBobaFeeChoice() {
const bobaFeeContract = new ethers.Contract(
@@ -238,12 +210,8 @@ class NetworkService {
feeChoice = await bobaFeeContract.secondaryFeeTokenUsers(this.account)
// if it's false which means boba is getting used as tokenfee which is default value.
feeChoice = !feeChoice;
-
}
-
- console.log(
- 'Fee used as boba', feeChoice
- )
+ console.log('Fee used as boba', feeChoice)
const bobaFee = {
priceRatio: priceRatio.toString(),
feeChoice
@@ -620,8 +588,12 @@ class NetworkService {
fastRelayer: true,
})
+ let l2SecondaryFeeTokenAddress = L2_SECONDARYFEETOKEN_ADDRESS
+ if (NETWORK.ETHEREUM === network && chainId === 1) {
+ l2SecondaryFeeTokenAddress = allTokens.BOBA.L2
+ }
this.BobaContract = new ethers.Contract(
- L2_SECONDARYFEETOKEN_ADDRESS,
+ l2SecondaryFeeTokenAddress,
Boba.abi,
this.L2Provider
)
@@ -669,7 +641,7 @@ class NetworkService {
}
}
- async initializeAccount({ networkGateway: network, networkType }) {
+ async initializeAccount({ networkGateway: network, networkType, chainIdChanged }) {
try {
@@ -677,14 +649,16 @@ class NetworkService {
return 'nometamask'
}
+ this.walletService.bindProviderListeners()
+
// connect to the wallet
- await window.ethereum.request({method: 'eth_requestAccounts'})
- this.provider = new ethers.providers.Web3Provider(window.ethereum)
+ this.provider = this.walletService.provider
this.account = await this.provider.getSigner().getAddress()
- const networkMM = await this.provider.getNetwork()
- this.chainID = networkMM.chainId
- this.networkName = networkMM.name
+ let chainId = chainIdChanged
+ if (!chainId) {
+ chainId = await this.provider.getNetwork().then(network => network.chainId)
+ }
this.networkGateway = network
this.networkType = networkType
@@ -693,23 +667,20 @@ class NetworkService {
network,
networkType
})
-
const L1ChainId = networkDetail['L1']['chainId']
const L2ChainId = networkDetail['L2']['chainId']
// there are numerous possible chains we could be on also, either L1 or L2
// at this point, we only know whether we want to be on which network etc
- if (!!NETWORK[ network ] && networkMM.chainId === L2ChainId) {
+ if (!!NETWORK[ network ] && chainId === L2ChainId) {
this.L1orL2 = 'L2';
- } else if(!!NETWORK[ network ] && networkMM.chainId === L1ChainId) {
+ } else if(!!NETWORK[ network ] && chainId === L1ChainId) {
this.L1orL2 = 'L1';
} else {
- this.bindProviderListeners()
return 'wrongnetwork'
}
- this.bindProviderListeners()
// this should not do anything unless we changed chains
if (this.L1orL2 === 'L2') {
await this.getBobaFeeChoice()
@@ -725,6 +696,8 @@ class NetworkService {
async switchChain(targetLayer) {
+ // ignore request if we are already on the target layer
+ if (!targetLayer) { return false }
const networkDetail = getNetworkDetail({
network: this.networkGateway,
@@ -732,46 +705,20 @@ class NetworkService {
})
const targetIDHex = networkDetail[targetLayer].chainIdHex
-
- try {
-
- this.provider = new ethers.providers.Web3Provider(window.ethereum)
-
- await this.provider.send('wallet_switchEthereumChain', [{ chainId: targetIDHex }])
- window.ethereum.on('chainChanged', handleChangeChainOnce)
-
- return true
- } catch (error) {
- // 4902 = the chain has not been added to MetaMask.
- // So, lets add it
- if (error.code === 4902) {
- const rpcURL = targetLayer === 'L1' ? this.L1Provider.connection.url : networkDetail[targetLayer].rpcURL
- try {
- //the chainParams are only needed for the L2s
- const chainParam = {
- chainId: '0x' + networkDetail[targetLayer].chainId.toString(16),
- chainName: networkDetail[targetLayer].name,
- rpcUrls: rpcURL,
- nativeCurrency: {
- name: networkDetail[targetLayer].tokenName,
- symbol: networkDetail[targetLayer].symbol,
- decimals: 18,
- },
- blockExplorerUrls: [networkDetail[targetLayer]?.blockExplorer?.slice(0, -1)]
- }
-
- await this.provider.send('wallet_addEthereumChain', [chainParam, this.account])
- window.ethereum.on('chainChanged', handleChangeChainOnce)
- return true
- } catch (addError) {
- console.log("MetaMask - Error adding new RPC: ", addError)
- throw new Error(addError.code)
- }
- } else { //some other error code
- console.log("MetaMask - Switch Error: ", error.code)
- throw new Error(error.code)
- }
- }
+ const rpcURL = targetLayer === 'L1' ? this.L1Provider.connection.url : networkDetail[targetLayer].rpcUrl
+ const chainParam = {
+ chainId: '0x' + networkDetail[targetLayer].chainId.toString(16),
+ chainName: networkDetail[targetLayer].name,
+ rpcUrls: [rpcURL],
+ nativeCurrency: {
+ name: networkDetail[targetLayer].tokenName,
+ symbol: networkDetail[targetLayer].symbol,
+ decimals: 18,
+ },
+ blockExplorerUrls: [networkDetail[targetLayer]?.blockExplorerUrl?.slice(0, -1)]
+ }
+
+ return await this.walletService.switchChain(targetIDHex, chainParam)
}
async getSevens() {
@@ -4079,9 +4026,13 @@ class NetworkService {
/***** L2 Fee *****/
/***********************************************/
async estimateL2Fee(payload=this.payloadForL1SecurityFee) {
- const l2GasPrice = await this.L2Provider.getGasPrice()
- const l2GasEstimate = await this.L2Provider.estimateGas(payload)
- return l2GasPrice.mul(l2GasEstimate).toNumber()
+ try {
+ const l2GasPrice = await this.L2Provider.getGasPrice()
+ const l2GasEstimate = await this.L2Provider.estimateGas(payload)
+ return l2GasPrice.mul(l2GasEstimate).toNumber()
+ } catch {
+ return 0
+ }
}
/***********************************************/
diff --git a/packages/boba/gateway/src/services/wallet.service.js b/packages/boba/gateway/src/services/wallet.service.js
index 556e783318..2f9faa3e1b 100644
--- a/packages/boba/gateway/src/services/wallet.service.js
+++ b/packages/boba/gateway/src/services/wallet.service.js
@@ -14,57 +14,164 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License. */
-import { providers } from "ethers"
+import { providers, utils } from "ethers"
+import WalletConnectProvider from "@walletconnect/web3-provider"
+import { rpcUrls } from 'util/network/network.util'
+import store from 'store'
class WalletService {
constructor() {
this.provider = null
this.account = null
+
+ this.walletConnectProvider = null
+ this.walletType = null
}
- async connectWallet() {
+ async connectMetaMask() {
try {
await window.ethereum.request({ method: 'eth_requestAccounts' })
- this.provider = new providers.Web3Provider(window.ethereum)
+ this.provider = new providers.Web3Provider(window.ethereum, 'any')
this.account = await this.provider.getSigner().getAddress()
+ this.walletType = 'metamask'
+ return true
} catch (e) {
console.log(`Error connecting wallet: ${e}`)
+ return false
}
}
- async disconnectWallet() {
+ async disconnectMetaMask() {
try {
await window.ethereum.request({ method: "eth_requestAccounts", params: [{ eth_accounts: {} }] })
- this.provider = null
- this.account = null
+ return true
} catch (e) {
console.log(`Error disconnecting wallet: ${e}`)
+ return false
}
}
+ async listenMetaMask() {
+ window.ethereum.on('accountsChanged', () => {
+ window.location.reload()
+ })
+
+ window.ethereum.on('chainChanged', (chainId) => {
+ console.log(`MetaMask chain changed to ${Number(chainId)}`)
+ store.dispatch({ type: 'SETUP/CHAINIDCHANGED/SET', payload: Number(chainId) })
+ })
+ }
+
+ async connectWalletConnect() {
+ try {
+ this.walletConnectProvider = new WalletConnectProvider({
+ rpc: rpcUrls
+ })
+ await this.walletConnectProvider.enable()
+ this.provider = new providers.Web3Provider(this.walletConnectProvider, 'any')
+ this.account = await this.provider.getSigner().getAddress()
+ this.walletType = 'walletconnect'
+ return true
+ } catch (e) {
+ console.log(`Error connecting WalletConnect: ${e}`)
+ return false
+ }
+ }
+
+ async disconnectWalletConnect() {
+ try {
+ await this.walletConnectProvider.disconnect()
+ return true
+ } catch (e) {
+ console.log(`Error disconnecting WalletConnect: ${e}`)
+ return false
+ }
+ }
+
+ async listenWalletConnect() {
+ this.walletConnectProvider.on("accountsChanged", (accounts) => {
+ if (utils.getAddress(this.account) !== utils.getAddress(accounts[0])) {
+ window.location.reload()
+ }
+ });
+
+ this.walletConnectProvider.on("chainChanged", (chainId) => {
+ console.log(`WalletConnect chain changed to: ${chainId}`)
+ store.dispatch({ type: 'SETUP/CHAINIDCHANGED/SET', payload: chainId })
+ });
+ }
+
async switchChain(chainId, chainInfo) {
+ const provider = this.walletType === 'metamask' ? window.ethereum : this.walletConnectProvider
try {
- await window.ethereum.request({
+ await provider.request({
method: "wallet_switchEthereumChain",
params: [{ chainId }],
})
+ return true
} catch (error) {
- if (error.code === 4902) {
+ if (error.code === 4902 || this.walletType === 'walletconnect') {
try {
- await window.ethereum.request({
+ await provider.request({
method: "wallet_addEthereumChain",
params: [chainInfo, this.account],
})
+ // After adding the chain, we need to call switchEthereumChain again to finish the process for WalletConnect
+ if (this.walletType === 'walletconnect') {
+ await provider.request({
+ method: "wallet_switchEthereumChain",
+ params: [{ chainId }],
+ })
+ }
+ return true
} catch (addError) {
console.log(`Error adding chain: ${addError}`)
- throw new Error(addError.code)
+ return false
}
} else {
- console.log(`Error switching chain: ${error}`)
- throw new Error(error.code)
+ console.log(`Error switching chain: ${error?.message}`)
+ return false
}
}
}
+
+ async connectWallet(type) {
+ if (type === 'metamask') {
+ return await this.connectMetaMask()
+ }
+ if (type === 'walletconnect') {
+ return await this.connectWalletConnect()
+ }
+ }
+
+ async disconnectWallet() {
+ let result = false
+ if (this.walletType === 'metamask') {
+ result = await this.disconnectMetaMask()
+ }
+ if (this.walletType === 'walletconnect') {
+ result = await this.disconnectWalletConnect()
+ }
+ this.resetValues()
+ return result
+ }
+
+ bindProviderListeners() {
+ if (this.walletType === 'metamask') {
+ this.listenMetaMask()
+ }
+ if (this.walletType === 'walletconnect') {
+ this.listenWalletConnect()
+ }
+ }
+
+ resetValues() {
+ this.walletConnectProvider = null
+ this.provider = null
+ this.account = null
+ this.walletType = null
+ store.dispatch({ type: 'SETUP/CHAINIDCHANGED/RESET' })
+ }
}
const walletService = new WalletService();
diff --git a/packages/boba/gateway/src/util/constant.js b/packages/boba/gateway/src/util/constant.js
index 02f51fb942..f0d6e9547e 100644
--- a/packages/boba/gateway/src/util/constant.js
+++ b/packages/boba/gateway/src/util/constant.js
@@ -20,6 +20,8 @@ export const SPEED_CHECK = process.env.REACT_APP_SPEED_CHECK
export const TARGET_CHAIN_URL = process.env.REACT_APP_TARGET_CHAIN_URL
// VE DAO FLAG
export const DISABLE_VE_DAO = process.env.REACT_APP_DISABLE_VE_DAO
+// WalletConnect FLAG
+export const DISABLE_WALLETCONNECT = process.env.REACT_APP_DISABLE_WALLETCONNECT
export const BRIDGE_TYPE = {
FAST_BRIDGE: "FAST_BRIDGE",
diff --git a/packages/boba/gateway/src/util/network/network.util.js b/packages/boba/gateway/src/util/network/network.util.js
index 333dc63d3e..457a2fa364 100644
--- a/packages/boba/gateway/src/util/network/network.util.js
+++ b/packages/boba/gateway/src/util/network/network.util.js
@@ -272,6 +272,14 @@ const networkConfig = {
[NETWORK.MOONBEAM] : moonbeamConfig
}
+export const rpcUrls = Object.values(networkConfig).reduce((networkConfigs, networkConfig) => {
+ networkConfigs[networkConfig.Mainnet.L1.chainId] = networkConfig.Mainnet.L1.rpcUrl[0]
+ networkConfigs[networkConfig.Mainnet.L2.chainId] = networkConfig.Mainnet.L2.rpcUrl
+ networkConfigs[networkConfig.Testnet.L1.chainId] = networkConfig.Testnet.L1.rpcUrl[0]
+ networkConfigs[networkConfig.Testnet.L2.chainId] = networkConfig.Testnet.L2.rpcUrl
+ return networkConfigs
+}, {})
+
export const getNetworkDetail = ({
network,
networkType
diff --git a/yarn.lock b/yarn.lock
index fa45298686..dc45f83d9c 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -968,6 +968,18 @@
babel-plugin-polyfill-regenerator "^0.4.1"
semver "^6.3.0"
+"@babel/plugin-transform-runtime@^7.5.5":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.21.0.tgz#2a884f29556d0a68cd3d152dcc9e6c71dfb6eee8"
+ integrity sha512-ReY6pxwSzEU0b3r2/T/VhqMKg/AkceBT19X0UptA3/tYi5Pe2eXgEUH+NNMC5nok6c6XQz5tyVTUpuezRfSMSg==
+ dependencies:
+ "@babel/helper-module-imports" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.20.2"
+ babel-plugin-polyfill-corejs2 "^0.3.3"
+ babel-plugin-polyfill-corejs3 "^0.6.0"
+ babel-plugin-polyfill-regenerator "^0.4.1"
+ semver "^6.3.0"
+
"@babel/plugin-transform-shorthand-properties@^7.18.6", "@babel/plugin-transform-shorthand-properties@^7.8.3":
version "7.18.6"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz#6d6df7983d67b195289be24909e3f12a8f664dc9"
@@ -3331,6 +3343,11 @@
tweetnacl "^1.0.3"
tweetnacl-util "^0.15.1"
+"@metamask/safe-event-emitter@^2.0.0":
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/@metamask/safe-event-emitter/-/safe-event-emitter-2.0.0.tgz#af577b477c683fad17c619a78208cede06f9605c"
+ integrity sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q==
+
"@mrmlnc/readdir-enhanced@^2.2.1":
version "2.2.1"
resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde"
@@ -5578,6 +5595,190 @@
resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.45.tgz#a3fffa7489eafff38d984e23d0236e230c818bc2"
integrity sha512-Ewzq5Yhimg7pSztDV+RH1UDKBzmtqieXQlpTVm2AwraoRL/Rks96mvd8Vgi7Lj+h+TH8dv7mXD3FRZR3TUvbSg==
+"@walletconnect/browser-utils@^1.8.0":
+ version "1.8.0"
+ resolved "https://registry.yarnpkg.com/@walletconnect/browser-utils/-/browser-utils-1.8.0.tgz#33c10e777aa6be86c713095b5206d63d32df0951"
+ integrity sha512-Wcqqx+wjxIo9fv6eBUFHPsW1y/bGWWRboni5dfD8PtOmrihrEpOCmvRJe4rfl7xgJW8Ea9UqKEaq0bIRLHlK4A==
+ dependencies:
+ "@walletconnect/safe-json" "1.0.0"
+ "@walletconnect/types" "^1.8.0"
+ "@walletconnect/window-getters" "1.0.0"
+ "@walletconnect/window-metadata" "1.0.0"
+ detect-browser "5.2.0"
+
+"@walletconnect/client@^1.8.0":
+ version "1.8.0"
+ resolved "https://registry.yarnpkg.com/@walletconnect/client/-/client-1.8.0.tgz#6f46b5499c7c861c651ff1ebe5da5b66225ca696"
+ integrity sha512-svyBQ14NHx6Cs2j4TpkQaBI/2AF4+LXz64FojTjMtV4VMMhl81jSO1vNeg+yYhQzvjcGH/GpSwixjyCW0xFBOQ==
+ dependencies:
+ "@walletconnect/core" "^1.8.0"
+ "@walletconnect/iso-crypto" "^1.8.0"
+ "@walletconnect/types" "^1.8.0"
+ "@walletconnect/utils" "^1.8.0"
+
+"@walletconnect/core@^1.8.0":
+ version "1.8.0"
+ resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-1.8.0.tgz#6b2748b90c999d9d6a70e52e26a8d5e8bfeaa81e"
+ integrity sha512-aFTHvEEbXcZ8XdWBw6rpQDte41Rxwnuk3SgTD8/iKGSRTni50gI9S3YEzMj05jozSiOBxQci4pJDMVhIUMtarw==
+ dependencies:
+ "@walletconnect/socket-transport" "^1.8.0"
+ "@walletconnect/types" "^1.8.0"
+ "@walletconnect/utils" "^1.8.0"
+
+"@walletconnect/crypto@^1.0.2":
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/@walletconnect/crypto/-/crypto-1.0.3.tgz#7b8dd4d7e2884fe3543c7c07aea425eef5ef9dd4"
+ integrity sha512-+2jdORD7XQs76I2Odgr3wwrtyuLUXD/kprNVsjWRhhhdO9Mt6WqVzOPu0/t7OHSmgal8k7SoBQzUc5hu/8zL/g==
+ dependencies:
+ "@walletconnect/encoding" "^1.0.2"
+ "@walletconnect/environment" "^1.0.1"
+ "@walletconnect/randombytes" "^1.0.3"
+ aes-js "^3.1.2"
+ hash.js "^1.1.7"
+ tslib "1.14.1"
+
+"@walletconnect/encoding@^1.0.1", "@walletconnect/encoding@^1.0.2":
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/@walletconnect/encoding/-/encoding-1.0.2.tgz#cb3942ad038d6a6bf01158f66773062dd25724da"
+ integrity sha512-CrwSBrjqJ7rpGQcTL3kU+Ief+Bcuu9PH6JLOb+wM6NITX1GTxR/MfNwnQfhLKK6xpRAyj2/nM04OOH6wS8Imag==
+ dependencies:
+ is-typedarray "1.0.0"
+ tslib "1.14.1"
+ typedarray-to-buffer "3.1.5"
+
+"@walletconnect/environment@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@walletconnect/environment/-/environment-1.0.1.tgz#1d7f82f0009ab821a2ba5ad5e5a7b8ae3b214cd7"
+ integrity sha512-T426LLZtHj8e8rYnKfzsw1aG6+M0BT1ZxayMdv/p8yM0MU+eJDISqNY3/bccxRr4LrF9csq02Rhqt08Ibl0VRg==
+ dependencies:
+ tslib "1.14.1"
+
+"@walletconnect/http-connection@^1.8.0":
+ version "1.8.0"
+ resolved "https://registry.yarnpkg.com/@walletconnect/http-connection/-/http-connection-1.8.0.tgz#c19fff5c179d5180d8b974faef2621bd012adb4e"
+ integrity sha512-IziEr3c53qsMromK7jz0EkbKDHlryRbxXdFR+xaG+S5nfxtUdAfjzlZabvczXdDCgmTij6KbNsZAjBMqCBzACw==
+ dependencies:
+ "@walletconnect/types" "^1.8.0"
+ "@walletconnect/utils" "^1.8.0"
+ eventemitter3 "4.0.7"
+ xhr2-cookies "1.1.0"
+
+"@walletconnect/iso-crypto@^1.8.0":
+ version "1.8.0"
+ resolved "https://registry.yarnpkg.com/@walletconnect/iso-crypto/-/iso-crypto-1.8.0.tgz#44ddf337c4f02837c062dbe33fa7ab36789df451"
+ integrity sha512-pWy19KCyitpfXb70hA73r9FcvklS+FvO9QUIttp3c2mfW8frxgYeRXfxLRCIQTkaYueRKvdqPjbyhPLam508XQ==
+ dependencies:
+ "@walletconnect/crypto" "^1.0.2"
+ "@walletconnect/types" "^1.8.0"
+ "@walletconnect/utils" "^1.8.0"
+
+"@walletconnect/jsonrpc-types@^1.0.2":
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.2.tgz#b79519f679cd6a5fa4a1bea888f27c1916689a20"
+ integrity sha512-CZe8tjJX73OWdHjrBHy7HtAapJ2tT0Q3TYhPBhRxi3643lwPIQWC9En45ldY14TZwgSewkbZ0FtGBZK0G7Bbyg==
+ dependencies:
+ keyvaluestorage-interface "^1.0.0"
+ tslib "1.14.1"
+
+"@walletconnect/jsonrpc-utils@^1.0.3":
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.6.tgz#7fa58e6671247e64e189828103282e6258f5330f"
+ integrity sha512-snp0tfkjPiDLQp/jrBewI+9SM33GPV4+Gjgldod6XQ7rFyQ5FZjnBxUkY4xWH0+arNxzQSi6v5iDXjCjSaorpg==
+ dependencies:
+ "@walletconnect/environment" "^1.0.1"
+ "@walletconnect/jsonrpc-types" "^1.0.2"
+ tslib "1.14.1"
+
+"@walletconnect/mobile-registry@^1.4.0":
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/@walletconnect/mobile-registry/-/mobile-registry-1.4.0.tgz#502cf8ab87330841d794819081e748ebdef7aee5"
+ integrity sha512-ZtKRio4uCZ1JUF7LIdecmZt7FOLnX72RPSY7aUVu7mj7CSfxDwUn6gBuK6WGtH+NZCldBqDl5DenI5fFSvkKYw==
+
+"@walletconnect/qrcode-modal@^1.8.0":
+ version "1.8.0"
+ resolved "https://registry.yarnpkg.com/@walletconnect/qrcode-modal/-/qrcode-modal-1.8.0.tgz#ddd6f5c9b7ee52c16adf9aacec2a3eac4994caea"
+ integrity sha512-BueaFefaAi8mawE45eUtztg3ZFbsAH4DDXh1UNwdUlsvFMjqcYzLUG0xZvDd6z2eOpbgDg2N3bl6gF0KONj1dg==
+ dependencies:
+ "@walletconnect/browser-utils" "^1.8.0"
+ "@walletconnect/mobile-registry" "^1.4.0"
+ "@walletconnect/types" "^1.8.0"
+ copy-to-clipboard "^3.3.1"
+ preact "10.4.1"
+ qrcode "1.4.4"
+
+"@walletconnect/randombytes@^1.0.3":
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/@walletconnect/randombytes/-/randombytes-1.0.3.tgz#e795e4918367fd1e6a2215e075e64ab93e23985b"
+ integrity sha512-35lpzxcHFbTN3ABefC9W+uBpNZl1GC4Wpx0ed30gibfO/y9oLdy1NznbV96HARQKSBV9J9M/rrtIvf6a23jfYw==
+ dependencies:
+ "@walletconnect/encoding" "^1.0.2"
+ "@walletconnect/environment" "^1.0.1"
+ randombytes "^2.1.0"
+ tslib "1.14.1"
+
+"@walletconnect/safe-json@1.0.0":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/@walletconnect/safe-json/-/safe-json-1.0.0.tgz#12eeb11d43795199c045fafde97e3c91646683b2"
+ integrity sha512-QJzp/S/86sUAgWY6eh5MKYmSfZaRpIlmCJdi5uG4DJlKkZrHEF7ye7gA+VtbVzvTtpM/gRwO2plQuiooIeXjfg==
+
+"@walletconnect/socket-transport@^1.8.0":
+ version "1.8.0"
+ resolved "https://registry.yarnpkg.com/@walletconnect/socket-transport/-/socket-transport-1.8.0.tgz#9a1128a249628a0be11a0979b522fe82b44afa1b"
+ integrity sha512-5DyIyWrzHXTcVp0Vd93zJ5XMW61iDM6bcWT4p8DTRfFsOtW46JquruMhxOLeCOieM4D73kcr3U7WtyR4JUsGuQ==
+ dependencies:
+ "@walletconnect/types" "^1.8.0"
+ "@walletconnect/utils" "^1.8.0"
+ ws "7.5.3"
+
+"@walletconnect/types@^1.8.0":
+ version "1.8.0"
+ resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-1.8.0.tgz#3f5e85b2d6b149337f727ab8a71b8471d8d9a195"
+ integrity sha512-Cn+3I0V0vT9ghMuzh1KzZvCkiAxTq+1TR2eSqw5E5AVWfmCtECFkVZBP6uUJZ8YjwLqXheI+rnjqPy7sVM4Fyg==
+
+"@walletconnect/utils@^1.8.0":
+ version "1.8.0"
+ resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-1.8.0.tgz#2591a197c1fa7429941fe428876088fda6632060"
+ integrity sha512-zExzp8Mj1YiAIBfKNm5u622oNw44WOESzo6hj+Q3apSMIb0Jph9X3GDIdbZmvVZsNPxWDL7uodKgZcCInZv2vA==
+ dependencies:
+ "@walletconnect/browser-utils" "^1.8.0"
+ "@walletconnect/encoding" "^1.0.1"
+ "@walletconnect/jsonrpc-utils" "^1.0.3"
+ "@walletconnect/types" "^1.8.0"
+ bn.js "4.11.8"
+ js-sha3 "0.8.0"
+ query-string "6.13.5"
+
+"@walletconnect/web3-provider@^1.8.0":
+ version "1.8.0"
+ resolved "https://registry.yarnpkg.com/@walletconnect/web3-provider/-/web3-provider-1.8.0.tgz#e90d903f4c609b7158ecb5f0f41df121e93b56b5"
+ integrity sha512-lqqEO0oRmCehH+c8ZPk3iH7I7YtbzmkWd58/Or2AgWAl869JamzndKCD3sTlNsPRQLxxPpraHQqzur7uclLWvg==
+ dependencies:
+ "@walletconnect/client" "^1.8.0"
+ "@walletconnect/http-connection" "^1.8.0"
+ "@walletconnect/qrcode-modal" "^1.8.0"
+ "@walletconnect/types" "^1.8.0"
+ "@walletconnect/utils" "^1.8.0"
+ web3-provider-engine "16.0.1"
+
+"@walletconnect/window-getters@1.0.0":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/@walletconnect/window-getters/-/window-getters-1.0.0.tgz#1053224f77e725dfd611c83931b5f6c98c32bfc8"
+ integrity sha512-xB0SQsLaleIYIkSsl43vm8EwETpBzJ2gnzk7e0wMF3ktqiTGS6TFHxcprMl5R44KKh4tCcHCJwolMCaDSwtAaA==
+
+"@walletconnect/window-getters@^1.0.0":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@walletconnect/window-getters/-/window-getters-1.0.1.tgz#f36d1c72558a7f6b87ecc4451fc8bd44f63cbbdc"
+ integrity sha512-vHp+HqzGxORPAN8gY03qnbTMnhqIwjeRJNOMOAzePRg4xVEEE2WvYsI9G2NMjOknA8hnuYbU3/hwLcKbjhc8+Q==
+ dependencies:
+ tslib "1.14.1"
+
+"@walletconnect/window-metadata@1.0.0":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/@walletconnect/window-metadata/-/window-metadata-1.0.0.tgz#93b1cc685e6b9b202f29c26be550fde97800c4e5"
+ integrity sha512-9eFvmJxIKCC3YWOL97SgRkKhlyGXkrHwamfechmqszbypFspaSk+t2jQXAEU7YClHF6Qjw5eYOmy1//zFi9/GA==
+ dependencies:
+ "@walletconnect/window-getters" "^1.0.0"
+
"@webassemblyjs/ast@1.11.1":
version "1.11.1"
resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7"
@@ -6617,6 +6818,13 @@ async-limiter@~1.0.0:
resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd"
integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==
+async-mutex@^0.2.6:
+ version "0.2.6"
+ resolved "https://registry.yarnpkg.com/async-mutex/-/async-mutex-0.2.6.tgz#0d7a3deb978bc2b984d5908a2038e1ae2e54ff40"
+ integrity sha512-Hs4R+4SPgamu6rSGW8C7cV9gaWUKEHykfzCCvIRuaVv636Ju10ZdeUbvb4TBEW0INuq2DHZqXbK4Nd3yG4RaRw==
+ dependencies:
+ tslib "^2.0.0"
+
async-mutex@^0.3.2:
version "0.3.2"
resolved "https://registry.yarnpkg.com/async-mutex/-/async-mutex-0.3.2.tgz#1485eda5bda1b0ec7c8df1ac2e815757ad1831df"
@@ -7614,6 +7822,11 @@ bn.js@4.11.6:
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215"
integrity sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==
+bn.js@4.11.8:
+ version "4.11.8"
+ resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f"
+ integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==
+
bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.10.0, bn.js@^4.11.0, bn.js@^4.11.6, bn.js@^4.11.8, bn.js@^4.11.9, bn.js@^4.8.0:
version "4.12.0"
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88"
@@ -7881,7 +8094,30 @@ bsert@~0.0.10:
resolved "https://registry.yarnpkg.com/bsert/-/bsert-0.0.10.tgz#231ac82873a1418c6ade301ab5cd9ae385895597"
integrity sha512-NHNwlac+WPy4t2LoNh8pXk8uaIGH3NSaIUbTTRXGpE2WEbq0te/tDykYHkFK57YKLPjv/aGHmbqvnGeVWDz57Q==
-buffer-from@^1.0.0, buffer-from@^1.1.0:
+btoa@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/btoa/-/btoa-1.2.1.tgz#01a9909f8b2c93f6bf680ba26131eb30f7fa3d73"
+ integrity sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==
+
+buffer-alloc-unsafe@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0"
+ integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==
+
+buffer-alloc@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec"
+ integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==
+ dependencies:
+ buffer-alloc-unsafe "^1.1.0"
+ buffer-fill "^1.0.0"
+
+buffer-fill@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c"
+ integrity sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==
+
+buffer-from@^1.0.0, buffer-from@^1.1.0, buffer-from@^1.1.1:
version "1.1.2"
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
@@ -7930,7 +8166,7 @@ buffer@^4.3.0:
ieee754 "^1.1.4"
isarray "^1.0.0"
-buffer@^5.0.5, buffer@^5.2.1, buffer@^5.5.0, buffer@^5.6.0:
+buffer@^5.0.5, buffer@^5.2.1, buffer@^5.4.3, buffer@^5.5.0, buffer@^5.6.0:
version "5.7.1"
resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0"
integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==
@@ -8752,7 +8988,7 @@ clone-response@^1.0.2:
dependencies:
mimic-response "^1.0.0"
-clone@2.1.2, clone@^2.0.0:
+clone@2.1.2, clone@^2.0.0, clone@^2.1.1:
version "2.1.2"
resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f"
integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==
@@ -10156,6 +10392,11 @@ destroy@1.2.0:
resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015"
integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==
+detect-browser@5.2.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/detect-browser/-/detect-browser-5.2.0.tgz#c9cd5afa96a6a19fda0bbe9e9be48a6b6e1e9c97"
+ integrity sha512-tr7XntDAu50BVENgQfajMLzacmSe34D+qZc4zjnniz0ZVuw/TZcLcyxHQjYpJTM36sGEkZZlYLnIM1hH7alTMA==
+
detect-indent@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208"
@@ -10246,6 +10487,11 @@ diffie-hellman@^5.0.0:
miller-rabin "^4.0.0"
randombytes "^2.0.0"
+dijkstrajs@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/dijkstrajs/-/dijkstrajs-1.0.2.tgz#2e48c0d3b825462afe75ab4ad5e829c8ece36257"
+ integrity sha512-QV6PMaHTCNmKSeP6QoXhVTw9snc9VD8MulTT0Bd99Pacp4SS1cjcrYPgBPmibqKVtMJJfqC6XvOXgPMEEPH/fg==
+
dir-glob@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.0.0.tgz#0b205d2b6aef98238ca286598a8204d29d0a0034"
@@ -11568,6 +11814,18 @@ eth-block-tracker@^3.0.0:
pify "^2.3.0"
tape "^4.6.3"
+eth-block-tracker@^4.4.2:
+ version "4.4.3"
+ resolved "https://registry.yarnpkg.com/eth-block-tracker/-/eth-block-tracker-4.4.3.tgz#766a0a0eb4a52c867a28328e9ae21353812cf626"
+ integrity sha512-A8tG4Z4iNg4mw5tP1Vung9N9IjgMNqpiMoJ/FouSFwNCGHv2X0mmOYwtQOJzki6XN7r7Tyo01S29p7b224I4jw==
+ dependencies:
+ "@babel/plugin-transform-runtime" "^7.5.5"
+ "@babel/runtime" "^7.5.5"
+ eth-query "^2.1.0"
+ json-rpc-random-id "^1.0.1"
+ pify "^3.0.0"
+ safe-event-emitter "^1.0.1"
+
eth-ens-namehash@2.0.8, eth-ens-namehash@^2.0.8:
version "2.0.8"
resolved "https://registry.yarnpkg.com/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz#229ac46eca86d52e0c991e7cb2aef83ff0f68bcf"
@@ -11597,6 +11855,18 @@ eth-gas-reporter@^0.2.25:
sha1 "^1.1.1"
sync-request "^6.0.0"
+eth-json-rpc-filters@^4.2.1:
+ version "4.2.2"
+ resolved "https://registry.yarnpkg.com/eth-json-rpc-filters/-/eth-json-rpc-filters-4.2.2.tgz#eb35e1dfe9357ace8a8908e7daee80b2cd60a10d"
+ integrity sha512-DGtqpLU7bBg63wPMWg1sCpkKCf57dJ+hj/k3zF26anXMzkmtSBDExL8IhUu7LUd34f0Zsce3PYNO2vV2GaTzaw==
+ dependencies:
+ "@metamask/safe-event-emitter" "^2.0.0"
+ async-mutex "^0.2.6"
+ eth-json-rpc-middleware "^6.0.0"
+ eth-query "^2.1.2"
+ json-rpc-engine "^6.1.0"
+ pify "^5.0.0"
+
eth-json-rpc-infura@^3.1.0:
version "3.2.1"
resolved "https://registry.yarnpkg.com/eth-json-rpc-infura/-/eth-json-rpc-infura-3.2.1.tgz#26702a821067862b72d979c016fd611502c6057f"
@@ -11607,6 +11877,16 @@ eth-json-rpc-infura@^3.1.0:
json-rpc-engine "^3.4.0"
json-rpc-error "^2.0.0"
+eth-json-rpc-infura@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/eth-json-rpc-infura/-/eth-json-rpc-infura-5.1.0.tgz#e6da7dc47402ce64c54e7018170d89433c4e8fb6"
+ integrity sha512-THzLye3PHUSGn1EXMhg6WTLW9uim7LQZKeKaeYsS9+wOBcamRiCQVGHa6D2/4P0oS0vSaxsBnU/J6qvn0MPdow==
+ dependencies:
+ eth-json-rpc-middleware "^6.0.0"
+ eth-rpc-errors "^3.0.0"
+ json-rpc-engine "^5.3.0"
+ node-fetch "^2.6.0"
+
eth-json-rpc-middleware@^1.5.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/eth-json-rpc-middleware/-/eth-json-rpc-middleware-1.6.0.tgz#5c9d4c28f745ccb01630f0300ba945f4bef9593f"
@@ -11626,6 +11906,23 @@ eth-json-rpc-middleware@^1.5.0:
promise-to-callback "^1.0.0"
tape "^4.6.3"
+eth-json-rpc-middleware@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/eth-json-rpc-middleware/-/eth-json-rpc-middleware-6.0.0.tgz#4fe16928b34231a2537856f08a5ebbc3d0c31175"
+ integrity sha512-qqBfLU2Uq1Ou15Wox1s+NX05S9OcAEL4JZ04VZox2NS0U+RtCMjSxzXhLFWekdShUPZ+P8ax3zCO2xcPrp6XJQ==
+ dependencies:
+ btoa "^1.2.1"
+ clone "^2.1.1"
+ eth-query "^2.1.2"
+ eth-rpc-errors "^3.0.0"
+ eth-sig-util "^1.4.2"
+ ethereumjs-util "^5.1.2"
+ json-rpc-engine "^5.3.0"
+ json-stable-stringify "^1.0.1"
+ node-fetch "^2.6.1"
+ pify "^3.0.0"
+ safe-event-emitter "^1.0.1"
+
eth-lib@0.2.8:
version "0.2.8"
resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.2.8.tgz#b194058bef4b220ad12ea497431d6cb6aa0623c8"
@@ -11655,6 +11952,20 @@ eth-query@^2.0.2, eth-query@^2.1.0, eth-query@^2.1.2:
json-rpc-random-id "^1.0.0"
xtend "^4.0.1"
+eth-rpc-errors@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/eth-rpc-errors/-/eth-rpc-errors-3.0.0.tgz#d7b22653c70dbf9defd4ef490fd08fe70608ca10"
+ integrity sha512-iPPNHPrLwUlR9xCSYm7HHQjWBasor3+KZfRvwEWxMz3ca0yqnlBeJrnyphkGIXZ4J7AMAaOLmwy4AWhnxOiLxg==
+ dependencies:
+ fast-safe-stringify "^2.0.6"
+
+eth-rpc-errors@^4.0.2:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/eth-rpc-errors/-/eth-rpc-errors-4.0.3.tgz#6ddb6190a4bf360afda82790bb7d9d5e724f423a"
+ integrity sha512-Z3ymjopaoft7JDoxZcEb3pwdGh7yiYMhOwm2doUt6ASXlMavpNlK6Cre0+IMl2VSGyEU9rkiperQhp5iRxn5Pg==
+ dependencies:
+ fast-safe-stringify "^2.0.6"
+
eth-sig-util@3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/eth-sig-util/-/eth-sig-util-3.0.0.tgz#75133b3d7c20a5731af0690c385e184ab942b97e"
@@ -12099,7 +12410,7 @@ eventemitter3@4.0.4:
resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.4.tgz#b5463ace635a083d018bdc7c917b4c5f10a85384"
integrity sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==
-eventemitter3@^4.0.0, eventemitter3@^4.0.1, eventemitter3@^4.0.4:
+eventemitter3@4.0.7, eventemitter3@^4.0.0, eventemitter3@^4.0.1, eventemitter3@^4.0.4:
version "4.0.7"
resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f"
integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==
@@ -12403,7 +12714,7 @@ fast-redact@^3.0.0:
resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-3.1.2.tgz#d58e69e9084ce9fa4c1a6fa98a3e1ecf5d7839aa"
integrity sha512-+0em+Iya9fKGfEQGcd62Yv6onjBmmhV1uh86XVfOU8VwAe6kaFdQCWI9s0/Nnugx5Vd9tdbZ7e6gE2tR9dzXdw==
-fast-safe-stringify@^2.0.7, fast-safe-stringify@^2.0.8, fast-safe-stringify@^2.1.1:
+fast-safe-stringify@^2.0.6, fast-safe-stringify@^2.0.7, fast-safe-stringify@^2.0.8, fast-safe-stringify@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884"
integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==
@@ -15067,7 +15378,7 @@ is-typed-array@^1.1.10, is-typed-array@^1.1.3, is-typed-array@^1.1.9:
gopd "^1.0.1"
has-tostringtag "^1.0.0"
-is-typedarray@^1.0.0, is-typedarray@~1.0.0:
+is-typedarray@1.0.0, is-typedarray@^1.0.0, is-typedarray@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==
@@ -15128,6 +15439,11 @@ isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0:
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==
+isarray@^2.0.1:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723"
+ integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==
+
isexe@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
@@ -15872,6 +16188,22 @@ json-rpc-engine@^3.4.0, json-rpc-engine@^3.6.0:
promise-to-callback "^1.0.0"
safe-event-emitter "^1.0.1"
+json-rpc-engine@^5.3.0:
+ version "5.4.0"
+ resolved "https://registry.yarnpkg.com/json-rpc-engine/-/json-rpc-engine-5.4.0.tgz#75758609d849e1dba1e09021ae473f3ab63161e5"
+ integrity sha512-rAffKbPoNDjuRnXkecTjnsE3xLLrb00rEkdgalINhaYVYIxDwWtvYBr9UFbhTvPB1B2qUOLoFd/cV6f4Q7mh7g==
+ dependencies:
+ eth-rpc-errors "^3.0.0"
+ safe-event-emitter "^1.0.1"
+
+json-rpc-engine@^6.1.0:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/json-rpc-engine/-/json-rpc-engine-6.1.0.tgz#bf5ff7d029e1c1bf20cb6c0e9f348dcd8be5a393"
+ integrity sha512-NEdLrtrq1jUZyfjkr9OCz9EzCNhnRyWtt1PAnvnhwy6e8XETS0Dtc+ZNCO2gvuAoKsIn2+vCSowXTYE4CkgnAQ==
+ dependencies:
+ "@metamask/safe-event-emitter" "^2.0.0"
+ eth-rpc-errors "^4.0.2"
+
json-rpc-error@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/json-rpc-error/-/json-rpc-error-2.0.0.tgz#a7af9c202838b5e905c7250e547f1aff77258a02"
@@ -15879,7 +16211,7 @@ json-rpc-error@^2.0.0:
dependencies:
inherits "^2.0.1"
-json-rpc-random-id@^1.0.0:
+json-rpc-random-id@^1.0.0, json-rpc-random-id@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/json-rpc-random-id/-/json-rpc-random-id-1.0.1.tgz#ba49d96aded1444dbb8da3d203748acbbcdec8c8"
integrity sha512-RJ9YYNCkhVDBuP4zN5BBtYAzEl03yq/jIIsyif0JY9qyJuQQZNeDK7anAPKKlyEtLSj2s8h6hNh2F8zO5q7ScA==
@@ -16113,6 +16445,11 @@ keyv@^4.0.0:
dependencies:
json-buffer "3.0.1"
+keyvaluestorage-interface@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/keyvaluestorage-interface/-/keyvaluestorage-interface-1.0.0.tgz#13ebdf71f5284ad54be94bd1ad9ed79adad515ff"
+ integrity sha512-8t6Q3TclQ4uZynJY9IGr2+SsIGwK9JHcO6ootkHCGA0CrQCRy+VkouYNO2xicET6b9al7QKzpebNow+gkpCL8g==
+
killable@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892"
@@ -18350,6 +18687,13 @@ node-fetch@2.6.7, node-fetch@^2.6.1, node-fetch@^2.6.7:
dependencies:
whatwg-url "^5.0.0"
+node-fetch@^2.6.0:
+ version "2.6.9"
+ resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.9.tgz#7c7f744b5cc6eb5fd404e0c7a9fec630a55657e6"
+ integrity sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==
+ dependencies:
+ whatwg-url "^5.0.0"
+
node-fetch@~1.7.1:
version "1.7.3"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef"
@@ -19807,6 +20151,11 @@ pn@^1.1.0:
resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb"
integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==
+pngjs@^3.3.0:
+ version "3.4.0"
+ resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f"
+ integrity sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==
+
pnp-webpack-plugin@1.6.4:
version "1.6.4"
resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz#c9711ac4dc48a685dabafc86f8b6dd9f8df84149"
@@ -20499,6 +20848,11 @@ postinstall-postinstall@^2.1.0:
resolved "https://registry.yarnpkg.com/postinstall-postinstall/-/postinstall-postinstall-2.1.0.tgz#4f7f77441ef539d1512c40bd04c71b06a4704ca3"
integrity sha512-7hQX6ZlZXIoRiWNrbMQaLzUUfH+sSx39u8EJ9HYuDc1kLo9IXKWjM5RSquZN1ad5GnH8CGFM78fsAAQi3OKEEQ==
+preact@10.4.1:
+ version "10.4.1"
+ resolved "https://registry.yarnpkg.com/preact/-/preact-10.4.1.tgz#9b3ba020547673a231c6cf16f0fbaef0e8863431"
+ integrity sha512-WKrRpCSwL2t3tpOOGhf2WfTpcmbpxaWtDbdJdKdjd0aEiTkvOmS4NBkG6kzlaAHI9AkQ3iVqbFWM3Ei7mZ4o1Q==
+
prebuild-install@^5.3.4:
version "5.3.6"
resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-5.3.6.tgz#7c225568d864c71d89d07f8796042733a3f54291"
@@ -20883,6 +21237,19 @@ q@^1.1.2, q@^1.5.1:
resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7"
integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==
+qrcode@1.4.4:
+ version "1.4.4"
+ resolved "https://registry.yarnpkg.com/qrcode/-/qrcode-1.4.4.tgz#f0c43568a7e7510a55efc3b88d9602f71963ea83"
+ integrity sha512-oLzEC5+NKFou9P0bMj5+v6Z40evexeE29Z9cummZXZ9QXyMr3lphkURzxjXgPJC5azpxcshoDWV1xE46z+/c3Q==
+ dependencies:
+ buffer "^5.4.3"
+ buffer-alloc "^1.2.0"
+ buffer-from "^1.1.1"
+ dijkstrajs "^1.0.1"
+ isarray "^2.0.1"
+ pngjs "^3.3.0"
+ yargs "^13.2.4"
+
qs@6.11.0, qs@^6.10.5, qs@^6.11.0, qs@^6.4.0, qs@^6.7.0, qs@^6.9.4:
version "6.11.0"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a"
@@ -20903,6 +21270,15 @@ query-ast@^1.0.3:
invariant "2.2.4"
lodash "^4.17.21"
+query-string@6.13.5:
+ version "6.13.5"
+ resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.13.5.tgz#99e95e2fb7021db90a6f373f990c0c814b3812d8"
+ integrity sha512-svk3xg9qHR39P3JlHuD7g3nRnyay5mHbrPctEBDUxUkHRifPHXJDhBUycdCC0NBjXoDf44Gb+IsOZL1Uwn8M/Q==
+ dependencies:
+ decode-uri-component "^0.2.0"
+ split-on-first "^1.0.0"
+ strict-uri-encode "^2.0.0"
+
query-string@^4.1.0:
version "4.3.4"
resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb"
@@ -24519,15 +24895,20 @@ tsconfig-paths@^3.14.1, tsconfig-paths@^3.5.0:
minimist "^1.2.6"
strip-bom "^3.0.0"
+tslib@1.14.1, tslib@^1.13.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3:
+ version "1.14.1"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
+ integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
+
tslib@2.3.1:
version "2.3.1"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01"
integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==
-tslib@^1.13.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3:
- version "1.14.1"
- resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
- integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
+tslib@^2.0.0:
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf"
+ integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==
tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.0, tslib@^2.3.1:
version "2.4.1"
@@ -24727,7 +25108,7 @@ typed-array-length@^1.0.4:
for-each "^0.3.3"
is-typed-array "^1.1.9"
-typedarray-to-buffer@^3.1.5:
+typedarray-to-buffer@3.1.5, typedarray-to-buffer@^3.1.5:
version "3.1.5"
resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080"
integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==
@@ -25175,7 +25556,7 @@ util@^0.11.0:
dependencies:
inherits "2.0.3"
-util@^0.12.0:
+util@^0.12.0, util@^0.12.5:
version "0.12.5"
resolved "https://registry.yarnpkg.com/util/-/util-0.12.5.tgz#5f17a6059b73db61a875668781a1c2b136bd6fbc"
integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==
@@ -25406,6 +25787,15 @@ web3-bzz@1.8.1:
got "12.1.0"
swarm-js "^0.1.40"
+web3-bzz@1.8.2:
+ version "1.8.2"
+ resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.8.2.tgz#67ea1c775874056250eece551ded22905ed08784"
+ integrity sha512-1EEnxjPnFnvNWw3XeeKuTR8PBxYd0+XWzvaLK7OJC/Go9O8llLGxrxICbKV+8cgIE0sDRBxiYx02X+6OhoAQ9w==
+ dependencies:
+ "@types/node" "^12.12.6"
+ got "12.1.0"
+ swarm-js "^0.1.40"
+
web3-core-helpers@1.2.11:
version "1.2.11"
resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.2.11.tgz#84c681ed0b942c0203f3b324a245a127e8c67a99"
@@ -25431,6 +25821,14 @@ web3-core-helpers@1.8.1:
web3-eth-iban "1.8.1"
web3-utils "1.8.1"
+web3-core-helpers@1.8.2:
+ version "1.8.2"
+ resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.8.2.tgz#82066560f8085e6c7b93bcc8e88b441289ea9f9f"
+ integrity sha512-6B1eLlq9JFrfealZBomd1fmlq1o4A09vrCVQSa51ANoib/jllT3atZrRDr0zt1rfI7TSZTZBXdN/aTdeN99DWw==
+ dependencies:
+ web3-eth-iban "1.8.2"
+ web3-utils "1.8.2"
+
web3-core-method@1.2.11:
version "1.2.11"
resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.2.11.tgz#f880137d1507a0124912bf052534f168b8d8fbb6"
@@ -25465,6 +25863,17 @@ web3-core-method@1.8.1:
web3-core-subscriptions "1.8.1"
web3-utils "1.8.1"
+web3-core-method@1.8.2:
+ version "1.8.2"
+ resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.8.2.tgz#ba5ec68084e903f0516415010477618be017eac2"
+ integrity sha512-1qnr5mw5wVyULzLOrk4B+ryO3gfGjGd/fx8NR+J2xCGLf1e6OSjxT9vbfuQ3fErk/NjSTWWreieYWLMhaogcRA==
+ dependencies:
+ "@ethersproject/transactions" "^5.6.2"
+ web3-core-helpers "1.8.2"
+ web3-core-promievent "1.8.2"
+ web3-core-subscriptions "1.8.2"
+ web3-utils "1.8.2"
+
web3-core-promievent@1.2.11:
version "1.2.11"
resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.2.11.tgz#51fe97ca0ddec2f99bf8c3306a7a8e4b094ea3cf"
@@ -25486,6 +25895,13 @@ web3-core-promievent@1.8.1:
dependencies:
eventemitter3 "4.0.4"
+web3-core-promievent@1.8.2:
+ version "1.8.2"
+ resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.8.2.tgz#e670d6b4453632e6ecfd9ad82da44f77ac1585c9"
+ integrity sha512-nvkJWDVgoOSsolJldN33tKW6bKKRJX3MCPDYMwP5SUFOA/mCzDEoI88N0JFofDTXkh1k7gOqp1pvwi9heuaxGg==
+ dependencies:
+ eventemitter3 "4.0.4"
+
web3-core-requestmanager@1.2.11:
version "1.2.11"
resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.2.11.tgz#fe6eb603fbaee18530293a91f8cf26d8ae28c45a"
@@ -25519,6 +25935,17 @@ web3-core-requestmanager@1.8.1:
web3-providers-ipc "1.8.1"
web3-providers-ws "1.8.1"
+web3-core-requestmanager@1.8.2:
+ version "1.8.2"
+ resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.8.2.tgz#dda95e83ca4808949612a41e54ecea557f78ef26"
+ integrity sha512-p1d090RYs5Mu7DK1yyc3GCBVZB/03rBtFhYFoS2EruGzOWs/5Q0grgtpwS/DScdRAm8wB8mYEBhY/RKJWF6B2g==
+ dependencies:
+ util "^0.12.5"
+ web3-core-helpers "1.8.2"
+ web3-providers-http "1.8.2"
+ web3-providers-ipc "1.8.2"
+ web3-providers-ws "1.8.2"
+
web3-core-subscriptions@1.2.11:
version "1.2.11"
resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.2.11.tgz#beca908fbfcb050c16f45f3f0f4c205e8505accd"
@@ -25544,6 +25971,14 @@ web3-core-subscriptions@1.8.1:
eventemitter3 "4.0.4"
web3-core-helpers "1.8.1"
+web3-core-subscriptions@1.8.2:
+ version "1.8.2"
+ resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.8.2.tgz#0c8bd49439d83c6f0a03c70f00b24a915a70a5ed"
+ integrity sha512-vXQogHDmAIQcKpXvGiMddBUeP9lnKgYF64+yQJhPNE5PnWr1sAibXuIPV7mIPihpFr/n/DORRj6Wh1pUv9zaTw==
+ dependencies:
+ eventemitter3 "4.0.4"
+ web3-core-helpers "1.8.2"
+
web3-core@1.2.11:
version "1.2.11"
resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.2.11.tgz#1043cacc1becb80638453cc5b2a14be9050288a7"
@@ -25583,6 +26018,19 @@ web3-core@1.8.1:
web3-core-requestmanager "1.8.1"
web3-utils "1.8.1"
+web3-core@1.8.2:
+ version "1.8.2"
+ resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.8.2.tgz#333e93d7872b1a36efe758ed8b89a7acbdd962c2"
+ integrity sha512-DJTVEAYcNqxkqruJE+Rxp3CIv0y5AZMwPHQmOkz/cz+MM75SIzMTc0AUdXzGyTS8xMF8h3YWMQGgGEy8SBf1PQ==
+ dependencies:
+ "@types/bn.js" "^5.1.0"
+ "@types/node" "^12.12.6"
+ bignumber.js "^9.0.0"
+ web3-core-helpers "1.8.2"
+ web3-core-method "1.8.2"
+ web3-core-requestmanager "1.8.2"
+ web3-utils "1.8.2"
+
web3-eth-abi@1.2.11:
version "1.2.11"
resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.2.11.tgz#a887494e5d447c2926d557a3834edd66e17af9b0"
@@ -25608,6 +26056,14 @@ web3-eth-abi@1.8.1, web3-eth-abi@^1.6.1:
"@ethersproject/abi" "^5.6.3"
web3-utils "1.8.1"
+web3-eth-abi@1.8.2:
+ version "1.8.2"
+ resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.8.2.tgz#16e1e9be40e2527404f041a4745111211488f31a"
+ integrity sha512-Om9g3kaRNjqiNPAgKwGT16y+ZwtBzRe4ZJFGjLiSs6v5I7TPNF+rRMWuKnR6jq0azQZDj6rblvKFMA49/k48Og==
+ dependencies:
+ "@ethersproject/abi" "^5.6.3"
+ web3-utils "1.8.2"
+
web3-eth-accounts@1.2.11:
version "1.2.11"
resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.2.11.tgz#a9e3044da442d31903a7ce035a86d8fa33f90520"
@@ -25659,6 +26115,22 @@ web3-eth-accounts@1.8.1:
web3-core-method "1.8.1"
web3-utils "1.8.1"
+web3-eth-accounts@1.8.2:
+ version "1.8.2"
+ resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.8.2.tgz#b894f5d5158fcae429da42de75d96520d0712971"
+ integrity sha512-c367Ij63VCz9YdyjiHHWLFtN85l6QghgwMQH2B1eM/p9Y5lTlTX7t/Eg/8+f1yoIStXbk2w/PYM2lk+IkbqdLA==
+ dependencies:
+ "@ethereumjs/common" "2.5.0"
+ "@ethereumjs/tx" "3.3.2"
+ eth-lib "0.2.8"
+ ethereumjs-util "^7.1.5"
+ scrypt-js "^3.0.1"
+ uuid "^9.0.0"
+ web3-core "1.8.2"
+ web3-core-helpers "1.8.2"
+ web3-core-method "1.8.2"
+ web3-utils "1.8.2"
+
web3-eth-contract@1.2.11:
version "1.2.11"
resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.2.11.tgz#917065902bc27ce89da9a1da26e62ef663663b90"
@@ -25702,6 +26174,20 @@ web3-eth-contract@1.8.1:
web3-eth-abi "1.8.1"
web3-utils "1.8.1"
+web3-eth-contract@1.8.2:
+ version "1.8.2"
+ resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.8.2.tgz#5388b7130923d2b790c09a420391a81312a867fb"
+ integrity sha512-ID5A25tHTSBNwOPjiXSVzxruz006ULRIDbzWTYIFTp7NJ7vXu/kynKK2ag/ObuTqBpMbobP8nXcA9b5EDkIdQA==
+ dependencies:
+ "@types/bn.js" "^5.1.0"
+ web3-core "1.8.2"
+ web3-core-helpers "1.8.2"
+ web3-core-method "1.8.2"
+ web3-core-promievent "1.8.2"
+ web3-core-subscriptions "1.8.2"
+ web3-eth-abi "1.8.2"
+ web3-utils "1.8.2"
+
web3-eth-ens@1.2.11:
version "1.2.11"
resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.2.11.tgz#26d4d7f16d6cbcfff918e39832b939edc3162532"
@@ -25745,6 +26231,20 @@ web3-eth-ens@1.8.1:
web3-eth-contract "1.8.1"
web3-utils "1.8.1"
+web3-eth-ens@1.8.2:
+ version "1.8.2"
+ resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.8.2.tgz#0a086ad4d919102e28b9fd3036df246add9df22a"
+ integrity sha512-PWph7C/CnqdWuu1+SH4U4zdrK4t2HNt0I4XzPYFdv9ugE8EuojselioPQXsVGvjql+Nt3jDLvQvggPqlMbvwRw==
+ dependencies:
+ content-hash "^2.5.2"
+ eth-ens-namehash "2.0.8"
+ web3-core "1.8.2"
+ web3-core-helpers "1.8.2"
+ web3-core-promievent "1.8.2"
+ web3-eth-abi "1.8.2"
+ web3-eth-contract "1.8.2"
+ web3-utils "1.8.2"
+
web3-eth-iban@1.2.11:
version "1.2.11"
resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.2.11.tgz#f5f73298305bc7392e2f188bf38a7362b42144ef"
@@ -25769,6 +26269,14 @@ web3-eth-iban@1.8.1:
bn.js "^5.2.1"
web3-utils "1.8.1"
+web3-eth-iban@1.8.2:
+ version "1.8.2"
+ resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.8.2.tgz#5cb3022234b13986f086353b53f0379a881feeaf"
+ integrity sha512-h3vNblDWkWMuYx93Q27TAJz6lhzpP93EiC3+45D6xoz983p6si773vntoQ+H+5aZhwglBtoiBzdh7PSSOnP/xQ==
+ dependencies:
+ bn.js "^5.2.1"
+ web3-utils "1.8.2"
+
web3-eth-personal@1.2.11:
version "1.2.11"
resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.2.11.tgz#a38b3942a1d87a62070ce0622a941553c3d5aa70"
@@ -25805,6 +26313,18 @@ web3-eth-personal@1.8.1:
web3-net "1.8.1"
web3-utils "1.8.1"
+web3-eth-personal@1.8.2:
+ version "1.8.2"
+ resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.8.2.tgz#3526c1ebaa4e7bf3a0a8ec77e34f067cc9a750b2"
+ integrity sha512-Vg4HfwCr7doiUF/RC+Jz0wT4+cYaXcOWMAW2AHIjHX6Z7Xwa8nrURIeQgeEE62qcEHAzajyAdB1u6bJyTfuCXw==
+ dependencies:
+ "@types/node" "^12.12.6"
+ web3-core "1.8.2"
+ web3-core-helpers "1.8.2"
+ web3-core-method "1.8.2"
+ web3-net "1.8.2"
+ web3-utils "1.8.2"
+
web3-eth@1.2.11:
version "1.2.11"
resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.2.11.tgz#4c81fcb6285b8caf544058fba3ae802968fdc793"
@@ -25860,6 +26380,24 @@ web3-eth@1.8.1:
web3-net "1.8.1"
web3-utils "1.8.1"
+web3-eth@1.8.2:
+ version "1.8.2"
+ resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.8.2.tgz#8562287ae1803c30eb54dc7d832092e5739ce06a"
+ integrity sha512-JoTiWWc4F4TInpbvDUGb0WgDYJsFhuIjJlinc5ByjWD88Gvh+GKLsRjjFdbqe5YtwIGT4NymwoC5LQd1K6u/QQ==
+ dependencies:
+ web3-core "1.8.2"
+ web3-core-helpers "1.8.2"
+ web3-core-method "1.8.2"
+ web3-core-subscriptions "1.8.2"
+ web3-eth-abi "1.8.2"
+ web3-eth-accounts "1.8.2"
+ web3-eth-contract "1.8.2"
+ web3-eth-ens "1.8.2"
+ web3-eth-iban "1.8.2"
+ web3-eth-personal "1.8.2"
+ web3-net "1.8.2"
+ web3-utils "1.8.2"
+
web3-net@1.2.11:
version "1.2.11"
resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.2.11.tgz#eda68ef25e5cdb64c96c39085cdb74669aabbe1b"
@@ -25887,6 +26425,15 @@ web3-net@1.8.1:
web3-core-method "1.8.1"
web3-utils "1.8.1"
+web3-net@1.8.2:
+ version "1.8.2"
+ resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.8.2.tgz#97e1e0015fabc4cda31017813e98d0b5468dd04f"
+ integrity sha512-1itkDMGmbgb83Dg9nporFes9/fxsU7smJ3oRXlFkg4ZHn8YJyP1MSQFPJWWwSc+GrcCFt4O5IrUTvEkHqE3xag==
+ dependencies:
+ web3-core "1.8.2"
+ web3-core-method "1.8.2"
+ web3-utils "1.8.2"
+
web3-provider-engine@14.2.1:
version "14.2.1"
resolved "https://registry.yarnpkg.com/web3-provider-engine/-/web3-provider-engine-14.2.1.tgz#ef351578797bf170e08d529cb5b02f8751329b95"
@@ -25913,6 +26460,34 @@ web3-provider-engine@14.2.1:
xhr "^2.2.0"
xtend "^4.0.1"
+web3-provider-engine@16.0.1:
+ version "16.0.1"
+ resolved "https://registry.yarnpkg.com/web3-provider-engine/-/web3-provider-engine-16.0.1.tgz#2600a39ede364cdc0a1fc773bf40a94f2177e605"
+ integrity sha512-/Eglt2aocXMBiDj7Se/lyZnNDaHBaoJlaUfbP5HkLJQC/HlGbR+3/W+dINirlJDhh7b54DzgykqY7ksaU5QgTg==
+ dependencies:
+ async "^2.5.0"
+ backoff "^2.5.0"
+ clone "^2.0.0"
+ cross-fetch "^2.1.0"
+ eth-block-tracker "^4.4.2"
+ eth-json-rpc-filters "^4.2.1"
+ eth-json-rpc-infura "^5.1.0"
+ eth-json-rpc-middleware "^6.0.0"
+ eth-rpc-errors "^3.0.0"
+ eth-sig-util "^1.4.2"
+ ethereumjs-block "^1.2.2"
+ ethereumjs-tx "^1.2.0"
+ ethereumjs-util "^5.1.5"
+ ethereumjs-vm "^2.3.4"
+ json-stable-stringify "^1.0.1"
+ promise-to-callback "^1.0.0"
+ readable-stream "^2.2.9"
+ request "^2.85.0"
+ semaphore "^1.0.3"
+ ws "^5.1.1"
+ xhr "^2.2.0"
+ xtend "^4.0.1"
+
web3-providers-http@1.2.11:
version "1.2.11"
resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.2.11.tgz#1cd03442c61670572d40e4dcdf1faff8bd91e7c6"
@@ -25939,6 +26514,16 @@ web3-providers-http@1.8.1:
es6-promise "^4.2.8"
web3-core-helpers "1.8.1"
+web3-providers-http@1.8.2:
+ version "1.8.2"
+ resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.8.2.tgz#fbda3a3bbc8db004af36e91bec35f80273b37885"
+ integrity sha512-2xY94IIEQd16+b+vIBF4IC1p7GVaz9q4EUFscvMUjtEq4ru4Atdzjs9GP+jmcoo49p70II0UV3bqQcz0TQfVyQ==
+ dependencies:
+ abortcontroller-polyfill "^1.7.3"
+ cross-fetch "^3.1.4"
+ es6-promise "^4.2.8"
+ web3-core-helpers "1.8.2"
+
web3-providers-ipc@1.2.11:
version "1.2.11"
resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.2.11.tgz#d16d6c9be1be6e0b4f4536c4acc16b0f4f27ef21"
@@ -25964,6 +26549,14 @@ web3-providers-ipc@1.8.1:
oboe "2.1.5"
web3-core-helpers "1.8.1"
+web3-providers-ipc@1.8.2:
+ version "1.8.2"
+ resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.8.2.tgz#e52a7250f40c83b99a2482ec5b4cf2728377ae5c"
+ integrity sha512-p6fqKVGFg+WiXGHWnB1hu43PbvPkDHTz4RgoEzbXugv5rtv5zfYLqm8Ba6lrJOS5ks9kGKR21a0y3NzE3u7V4w==
+ dependencies:
+ oboe "2.1.5"
+ web3-core-helpers "1.8.2"
+
web3-providers-ws@1.2.11:
version "1.2.11"
resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.2.11.tgz#a1dfd6d9778d840561d9ec13dd453046451a96bb"
@@ -25992,6 +26585,15 @@ web3-providers-ws@1.8.1:
web3-core-helpers "1.8.1"
websocket "^1.0.32"
+web3-providers-ws@1.8.2:
+ version "1.8.2"
+ resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.8.2.tgz#56a2b701387011aca9154ca4bc06ea4b5f27e4ef"
+ integrity sha512-3s/4K+wHgbiN+Zrp9YjMq2eqAF6QGABw7wFftPdx+m5hWImV27/MoIx57c6HffNRqZXmCHnfWWFCNHHsi7wXnA==
+ dependencies:
+ eventemitter3 "4.0.4"
+ web3-core-helpers "1.8.2"
+ websocket "^1.0.32"
+
web3-shh@1.2.11:
version "1.2.11"
resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.2.11.tgz#f5d086f9621c9a47e98d438010385b5f059fd88f"
@@ -26022,6 +26624,16 @@ web3-shh@1.8.1:
web3-core-subscriptions "1.8.1"
web3-net "1.8.1"
+web3-shh@1.8.2:
+ version "1.8.2"
+ resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.8.2.tgz#217a417f0d6e243dd4d441848ffc2bd164cea8a0"
+ integrity sha512-uZ+3MAoNcaJsXXNCDnizKJ5viBNeHOFYsCbFhV755Uu52FswzTOw6DtE7yK9nYXMtIhiSgi7nwl1RYzP8pystw==
+ dependencies:
+ web3-core "1.8.2"
+ web3-core-method "1.8.2"
+ web3-core-subscriptions "1.8.2"
+ web3-net "1.8.2"
+
web3-utils@1.2.11:
version "1.2.11"
resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.2.11.tgz#af1942aead3fb166ae851a985bed8ef2c2d95a82"
@@ -26062,6 +26674,19 @@ web3-utils@1.8.1, web3-utils@^1.0.0-beta.31, web3-utils@^1.2.5, web3-utils@^1.3.
randombytes "^2.1.0"
utf8 "3.0.0"
+web3-utils@1.8.2:
+ version "1.8.2"
+ resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.8.2.tgz#c32dec5e9b955acbab220eefd7715bc540b75cc9"
+ integrity sha512-v7j6xhfLQfY7xQDrUP0BKbaNrmZ2/+egbqP9q3KYmOiPpnvAfol+32slgL0WX/5n8VPvKCK5EZ1HGrAVICSToA==
+ dependencies:
+ bn.js "^5.2.1"
+ ethereum-bloom-filters "^1.0.6"
+ ethereumjs-util "^7.1.0"
+ ethjs-unit "0.1.6"
+ number-to-bn "1.7.0"
+ randombytes "^2.1.0"
+ utf8 "3.0.0"
+
web3@1.2.11:
version "1.2.11"
resolved "https://registry.yarnpkg.com/web3/-/web3-1.2.11.tgz#50f458b2e8b11aa37302071c170ed61cff332975"
@@ -26101,6 +26726,19 @@ web3@1.8.1, web3@^1.2.5, web3@^1.6.1:
web3-shh "1.8.1"
web3-utils "1.8.1"
+web3@^1.8.2:
+ version "1.8.2"
+ resolved "https://registry.yarnpkg.com/web3/-/web3-1.8.2.tgz#95a4e5398fd0f01325264bf8e5e8cdc69a7afe86"
+ integrity sha512-92h0GdEHW9wqDICQQKyG4foZBYi0OQkyg4CRml2F7XBl/NG+fu9o6J19kzfFXzSBoA4DnJXbyRgj/RHZv5LRiw==
+ dependencies:
+ web3-bzz "1.8.2"
+ web3-core "1.8.2"
+ web3-eth "1.8.2"
+ web3-eth-personal "1.8.2"
+ web3-net "1.8.2"
+ web3-shh "1.8.2"
+ web3-utils "1.8.2"
+
webidl-conversions@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
@@ -26766,6 +27404,11 @@ ws@7.4.6:
resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c"
integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==
+ws@7.5.3:
+ version "7.5.3"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.3.tgz#160835b63c7d97bfab418fc1b8a9fced2ac01a74"
+ integrity sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg==
+
ws@^3.0.0:
version "3.3.3"
resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2"
@@ -26968,7 +27611,7 @@ yargs-unparser@2.0.0:
flat "^5.0.2"
is-plain-obj "^2.1.0"
-yargs@13.3.2, yargs@^13.3.0, yargs@^13.3.2:
+yargs@13.3.2, yargs@^13.2.4, yargs@^13.3.0, yargs@^13.3.2:
version "13.3.2"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd"
integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==