diff --git a/package.json b/package.json index 57dbfcd12..07dc931f3 100644 --- a/package.json +++ b/package.json @@ -82,6 +82,7 @@ "@trodi/electron-splashscreen": "0.3.4", "@walletconnect/client": "1.3.1", "@walletconnect/utils": "1.3.1", + "@walletconnect/web3-provider": "^1.3.6", "ajv": "6.10.0", "async": "2.6.2", "awilix": "4.2.1", diff --git a/src/common/config.js b/src/common/config.js index d59297c26..ff18d9224 100644 --- a/src/common/config.js +++ b/src/common/config.js @@ -164,7 +164,8 @@ const common = { hdWallet: true, deepLinks: true, moonpay: false, - moonpayWalletLogin: false + moonpayWalletLogin: false, + walletSync: false } }; @@ -205,7 +206,8 @@ const dev = { hdWallet: true, deepLinks: true, moonpay: true, - moonpayWalletLogin: true + moonpayWalletLogin: true, + walletSync: true }, moonPayApiKey: 'pk_test_oMn5N1gYzf5eufwrs4AJUKhlZHBjVD', moonPayApiEndpoint: 'https://api.moonpay.com/v3', diff --git a/src/common/store/reducers.js b/src/common/store/reducers.js index 1bccf1cf0..0dc6bb4cf 100644 --- a/src/common/store/reducers.js +++ b/src/common/store/reducers.js @@ -31,6 +31,7 @@ import walletConnect from '../wallet-connect'; import { moonPayAuth, moonPayPayment } from '../moonpay'; import hardwareWallet from '../hardware-wallet'; import navigationFlow from '../navigation/flow'; +import walletSync from '../wallet-sync'; export const createReducers = (scope = 'main') => { let scopedReducers = {}; @@ -69,6 +70,7 @@ export const createReducers = (scope = 'main') => { moonPayPayment, hardwareWallet, navigationFlow, + walletSync, ...scopedReducers }); diff --git a/src/common/wallet-sync/index.js b/src/common/wallet-sync/index.js new file mode 100644 index 000000000..0948329bc --- /dev/null +++ b/src/common/wallet-sync/index.js @@ -0,0 +1,60 @@ +// import { Logger } from 'common/logger'; +import { createSelector } from 'reselect'; +import { createAliasedSlice } from '../utils/duck'; +import WalletConnectProvider from '@walletconnect/web3-provider'; + +// const log = new Logger('WalletSync'); + +const SLICE_NAME = 'walletSync'; + +const initialState = { + serverUri: null +}; + +const selectSelf = state => state[SLICE_NAME]; + +const selectServerUri = createSelector( + selectSelf, + state => state.serverUri +); + +const selectors = { + selectServerUri +}; + +const initializeServer = ops => () => async (dispatch, getState) => { + const provider = new WalletConnectProvider({ + // TODO: Need to create an ENV variable for it + infuraId: '42c72df6422e4bc4847f137125953bc2', + qrcode: false + }); + + ops.setServerUri(null); + + provider.connector.on('display_uri', (_, payload) => { + const uri = payload.params[0]; + // goToSelfkey(`wc?uri=${uri}`) + ops.setServerUri(uri); + }); + + await provider.enable(); +}; + +const walletSync = createAliasedSlice({ + name: SLICE_NAME, + initialState, + reducers: { + setServerUri(state, action) { + state.serverUri = action.payload; + } + }, + aliasedOperations: { + initializeServer + } +}); + +const { reducer, operations } = walletSync; + +export { operations as walletSyncOperations, selectors as walletSyncSelectors }; + +export default reducer; diff --git a/src/renderer/app.jsx b/src/renderer/app.jsx index 11e556c1b..a97eb57a8 100644 --- a/src/renderer/app.jsx +++ b/src/renderer/app.jsx @@ -35,6 +35,7 @@ import AutoUpdateProgress from './auto-update/auto-update-progress-contatiner'; import ApproveSessionContainer from './wallet-connect/approve-session-container'; import SignMessageContainer from './wallet-connect/sign-message-container'; import TransactionContainer from './wallet-connect/transaction-container'; +import { SyncWallet } from './sync-wallet'; const log = new Logger('AppComponent'); @@ -68,6 +69,7 @@ class AppContainerComponent extends PureComponent { + diff --git a/src/renderer/wallet-sync/wallet-sync.jsx b/src/renderer/wallet-sync/wallet-sync.jsx new file mode 100644 index 000000000..5164fc523 --- /dev/null +++ b/src/renderer/wallet-sync/wallet-sync.jsx @@ -0,0 +1,102 @@ +import React from 'react'; +import { makeStyles } from '@material-ui/styles'; +import { Grid } from '@material-ui/core'; +import Toolbar from './wallet/main/toolbar-container'; +import QRCode from 'qrcode.react'; +import { walletSyncOperations, walletSyncSelectors } from 'common/wallet-sync'; + +// import WalletConnectProvider from "@walletconnect/web3-provider"; + +// export async function createWalletConnectWeb3() { +// const provider = new WalletConnectProvider({ +// // TODO: Need to create an ENV variable for it +// infuraId: "42c72df6422e4bc4847f137125953bc2", +// }); + +// // provider.disconnect(); + +// // It will launch the wallet connect QR Code modal +// await provider.enable(); + +// const web3 = new Web3(provider); +// web3.eth.defaultAccount = provider.accounts[0]; + +// window.send = (e, t) => { +// return provider.send(e, t); +// }; + +// // loadWalletConnectEvents(provider); + +// return web3; +// } +// import WalletConnectProvider from '@walletconnect/web3-provider'; + +const useStyles = makeStyles(theme => ({ + headerSection: { + marginLeft: 0, + marginRi: 0, + width: '100%' + }, + bodySection: { + maxWidth: '1074px', + width: '100%' + }, + '@media screen and (min-width: 1230px)': { + bodySection: { + maxWidth: '1140px' + } + }, + page: {} +})); + +const contentWrapperStyle = { + marginBottom: '60px', + marginRight: '-55px', + marginTop: '128px' +}; + +// function createWCProvider() { +// const provider = new WalletConnectProvider({ +// // TODO: Need to create an ENV variable for it +// infuraId: '42c72df6422e4bc4847f137125953bc2' +// }); + +// // provider.disconnect(); + +// // It will launch the wallet connect QR Code modal +// return provider.enable(); +// } + +export function WalletSync() { + const classes = useStyles(); + const dispatch = useDispatch(); + const serverUri = useSelector(walletSyncSelectors.selectServerUri); + + useEffect(() => { + dispatch(walletSyncOperations.initializeServer()); + }); + + return ( + + + + + + {serverUri ? ( + <> + +
{serverUri}
+ + ) : ( + 'Loading...' + )} +
+
+ ); +} diff --git a/src/renderer/wallet/main/sidebar.jsx b/src/renderer/wallet/main/sidebar.jsx index a1511c2c6..69c612a29 100644 --- a/src/renderer/wallet/main/sidebar.jsx +++ b/src/renderer/wallet/main/sidebar.jsx @@ -25,13 +25,14 @@ import { PowerIcon, // KeyTooltip, // TooltipArrow, - // MenuAffiliateIcon, + MenuAffiliateIcon, MenuStakingIcon, MenuExportIcon, // InfoTooltip, primary } from 'selfkey-ui'; // import { KeyboardArrowDown } from '@material-ui/icons'; +import { featureIsEnabled } from 'common/feature-flags'; const styles = theme => ({ list: { @@ -197,6 +198,9 @@ const addressBook = React.forwardRef((props, ref) => ( )); const switchAccount = React.forwardRef((props, ref) => ); +const syncWallet = React.forwardRef((props, ref) => ( + +)); const exportAccount = React.forwardRef((props, ref) => ( )); @@ -402,6 +406,21 @@ class Sidebar extends PureComponent { */} + {featureIsEnabled('walletSync') && ( + + + + + + Sync Wallet + + + )} { diff --git a/yarn.lock b/yarn.lock index 9f3ed4b68..f6bc659b3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2216,6 +2216,20 @@ "@types/yargs" "^15.0.0" chalk "^3.0.0" +"@json-rpc-tools/types@^1.6.1": + version "1.6.1" + resolved "https://registry.yarnpkg.com/@json-rpc-tools/types/-/types-1.6.1.tgz#b892599c31fb1cd62172b86fb38d0bfcbd52fe30" + integrity sha512-Fg8Dke0+K92cZaWm0/vFIZgNdHftEI5GXbgT2rwUmmo/GrjlXJn5cPRghq5ee+QGTeZvWcjYmqdwrdGbTGBCMw== + dependencies: + keyvaluestorage-interface "^1.0.0" + +"@json-rpc-tools/utils@1.6.1": + version "1.6.1" + resolved "https://registry.yarnpkg.com/@json-rpc-tools/utils/-/utils-1.6.1.tgz#26e37d0fc4522721158d0f6057e136daa8813263" + integrity sha512-cNwP4QapAls+xATU8zLLqPYa9qCbgwEyWEK7vE1oH91b3LfbUYwHtiWZ1+rv0X/mh/9cWNTo2Oi2Sah/QX0WwA== + dependencies: + "@json-rpc-tools/types" "^1.6.1" + "@ledgerhq/cryptoassets@^5.28.0": version "5.28.0" resolved "https://registry.yarnpkg.com/@ledgerhq/cryptoassets/-/cryptoassets-5.28.0.tgz#0d12f0ca51e4aef98ec29ee18ba30ab6ad6d06a3" @@ -2414,6 +2428,11 @@ prop-types "^15.7.2" react-is "^16.8.0" +"@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" @@ -2427,6 +2446,16 @@ resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== +"@pedrouid/iso-crypto@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@pedrouid/iso-crypto/-/iso-crypto-1.0.0.tgz#cf06b40ef3da3d7ca7363bd7a521ed59fa2fd13d" + integrity sha512-gSz/81Cz2n9p1RHalxN8STtOHg6Dqa+l2Phz36GptpneAcAwOzPmty7FSg58htF4u9V44vEXsc7L8V9ze9j4Xg== + dependencies: + aes-js "^3.1.2" + enc-utils "^3.0.0" + hash.js "^1.1.7" + randombytes "^2.1.0" + "@posthtml/esm@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@posthtml/esm/-/esm-1.0.0.tgz#09bcb28a02438dcee22ad1970ca1d85a000ae0cf" @@ -3741,6 +3770,16 @@ "@walletconnect/types" "^1.3.1" "@walletconnect/utils" "^1.3.1" +"@walletconnect/client@^1.3.6": + version "1.3.6" + resolved "https://registry.yarnpkg.com/@walletconnect/client/-/client-1.3.6.tgz#537b7af6bf87a906fcf171fd5bc4e56a2a3d1908" + integrity sha512-HmzUpF/cPqPf8huaVg45SXk2hKQ6yxisy/qJ+51SoRGmtZDokJGxpq6+RFOnE8jFtUhTZRaK9UZ/jvsJAxIhEw== + dependencies: + "@walletconnect/core" "^1.3.6" + "@walletconnect/iso-crypto" "^1.3.6" + "@walletconnect/types" "^1.3.6" + "@walletconnect/utils" "^1.3.6" + "@walletconnect/core@^1.3.1": version "1.3.1" resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-1.3.1.tgz#7f7c692ad4c7de37544c610ad0d863dddcb23b19" @@ -3750,6 +3789,15 @@ "@walletconnect/types" "^1.3.1" "@walletconnect/utils" "^1.3.1" +"@walletconnect/core@^1.3.6": + version "1.3.6" + resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-1.3.6.tgz#1690081bc4666b6644ed6a1bed128509a5259e50" + integrity sha512-1HHP2xZI6b88WQgszs3gP5xkkCwwlWgDJz+J6ADGzVXhQP21p1mZhKezUtx27rOtQimMIrPDfgPyAHwQBZkkSw== + dependencies: + "@walletconnect/socket-transport" "^1.3.6" + "@walletconnect/types" "^1.3.6" + "@walletconnect/utils" "^1.3.6" + "@walletconnect/http-connection@^1.3.1": version "1.3.1" resolved "https://registry.yarnpkg.com/@walletconnect/http-connection/-/http-connection-1.3.1.tgz#fd5af6a3cb6014cd99b48ea827a8664b61df7f8a" @@ -3759,6 +3807,16 @@ "@walletconnect/utils" "^1.3.1" xhr2-cookies "1.1.0" +"@walletconnect/http-connection@^1.3.6": + version "1.3.6" + resolved "https://registry.yarnpkg.com/@walletconnect/http-connection/-/http-connection-1.3.6.tgz#98be28c312cfcca86b962b5a3a2813ac7b3f4866" + integrity sha512-uK9Z8JP7dxo59t9gIQqcAfiuhlpl4fQFh6gRvP8V7sjrEfxqN/GkJaTVzbE6VaYivrSaVeut65wcBOJS47R8Aw== + dependencies: + "@walletconnect/types" "^1.3.6" + "@walletconnect/utils" "^1.3.6" + eventemitter3 "4.0.7" + xhr2-cookies "1.1.0" + "@walletconnect/iso-crypto@^1.3.1": version "1.3.1" resolved "https://registry.yarnpkg.com/@walletconnect/iso-crypto/-/iso-crypto-1.3.1.tgz#fce8d1235a2059728dfb87a8d0dfac205f295937" @@ -3768,11 +3826,25 @@ "@walletconnect/utils" "^1.3.1" eccrypto-js "5.2.0" +"@walletconnect/iso-crypto@^1.3.6": + version "1.3.6" + resolved "https://registry.yarnpkg.com/@walletconnect/iso-crypto/-/iso-crypto-1.3.6.tgz#e6003d46fbc12b979e96269d94eebd8e801c0305" + integrity sha512-HypXNSmMAuEvNhllXWsCHtCVK4JfFFcZqPijurcXmOtWanjZV+8NuiYnKG11qAllSbYRwqKchb7GTDp33n0g0Q== + dependencies: + "@pedrouid/iso-crypto" "^1.0.0" + "@walletconnect/types" "^1.3.6" + "@walletconnect/utils" "^1.3.6" + "@walletconnect/mobile-registry@^1.3.1": version "1.3.1" resolved "https://registry.yarnpkg.com/@walletconnect/mobile-registry/-/mobile-registry-1.3.1.tgz#9fdea8d7ac4655a63c59a84ed76780530820808d" integrity sha512-wOGSqf1xCoMRvsLZ7IEYBwCnojtCbsSd+dc6dJCVWkFcRptjmnInIrP7bg7YIllUCSusWhKjPCYyRsyffNYCyQ== +"@walletconnect/mobile-registry@^1.3.6": + version "1.3.6" + resolved "https://registry.yarnpkg.com/@walletconnect/mobile-registry/-/mobile-registry-1.3.6.tgz#891d08b62c8e5c61f96203aad588c2c463c5d7f3" + integrity sha512-OhOCFJhUWKVbRzU9XcAcYIW9cC6gNb+kFttIAtjbaocRGgN+n5NDoUZsrrd6iurjvS6ToCWkalvlYbXDU5/xtw== + "@walletconnect/qrcode-modal@^1.3.1": version "1.3.1" resolved "https://registry.yarnpkg.com/@walletconnect/qrcode-modal/-/qrcode-modal-1.3.1.tgz#d546531fc5b18431470aeeab071939c861f8e8a2" @@ -3784,6 +3856,17 @@ preact "10.4.1" qrcode "1.4.4" +"@walletconnect/qrcode-modal@^1.3.6": + version "1.3.6" + resolved "https://registry.yarnpkg.com/@walletconnect/qrcode-modal/-/qrcode-modal-1.3.6.tgz#4ab9562e19069d453e04a3376f485aadf5f91de3" + integrity sha512-fQ7DQViX913EUc36rsglr6Jd76DbOiATUVroFZ8VeVcgbBuH9dTqBeCRuBCQ0MBe8v33IpRBjZDTsIdSOxFiaA== + dependencies: + "@walletconnect/mobile-registry" "^1.3.6" + "@walletconnect/types" "^1.3.6" + "@walletconnect/utils" "^1.3.6" + preact "10.4.1" + qrcode "1.4.4" + "@walletconnect/rpc-connection@^1.3.1": version "1.3.1" resolved "https://registry.yarnpkg.com/@walletconnect/rpc-connection/-/rpc-connection-1.3.1.tgz#f699801c9591f7d630e2576aa6c36d70c0c5b0a8" @@ -3802,6 +3885,15 @@ "@walletconnect/types" "^1.3.1" ws "7.3.0" +"@walletconnect/socket-transport@^1.3.6": + version "1.3.6" + resolved "https://registry.yarnpkg.com/@walletconnect/socket-transport/-/socket-transport-1.3.6.tgz#702951831ff17db8f4c337dcdcb107cce377dae4" + integrity sha512-dvO8mRECU4I6FpoQX9GMh9BNzR2/g6vcj9LEIjgApW6Rfx0mCKUgoVBSi2W7NHC94zfdYiJdaH950oismj5gNw== + dependencies: + "@walletconnect/types" "^1.3.6" + "@walletconnect/utils" "^1.3.6" + ws "7.3.0" + "@walletconnect/starkware-provider@^1.3.1": version "1.3.1" resolved "https://registry.yarnpkg.com/@walletconnect/starkware-provider/-/starkware-provider-1.3.1.tgz#eaa41178be35c009c2d4f2c8d9b58e6e4268c333" @@ -3817,6 +3909,11 @@ resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-1.3.1.tgz#fefa3d5cfb2e68c0439d07f7d32134f692775a80" integrity sha512-lf8hAFT7OIEgyc0FkLZPPjF4bMql+Svg4SNKj1a1oMTCdA+NPlqMUwOqcIJeIolULZbpFl3DkX3omSy8RNIbkg== +"@walletconnect/types@^1.3.6": + version "1.3.6" + resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-1.3.6.tgz#892da6fb4570d9bc5450dc1a5810d7b4d345dd08" + integrity sha512-fNir3Pi1ZpuVlgNr8qtP2LOSsV9rNgJGHmBnHHqKNmpuRpPxG1mhmKFdDHNGyVIP5bM5CWIXmlULDTax63UJbg== + "@walletconnect/utils@1.3.1", "@walletconnect/utils@^1.3.1": version "1.3.1" resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-1.3.1.tgz#88418856d28bdc683d53d0fad2acdc70b5c88528" @@ -3832,6 +3929,22 @@ window-getters "1.0.0" window-metadata "1.0.0" +"@walletconnect/utils@^1.3.6": + version "1.3.6" + resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-1.3.6.tgz#e55cb5510eb41b4ae6be8e88c1de42abf309bdd3" + integrity sha512-nzTO5A3Ltjrsu6u8SR/KqdHTH03848KIj5MQlOCUjwxW1fXOvuri8+kwFKqlMn0bk1Qvlt6rrOptbt14PW8kSA== + dependencies: + "@json-rpc-tools/utils" "1.6.1" + "@walletconnect/types" "^1.3.6" + bn.js "4.11.8" + detect-browser "5.1.0" + enc-utils "3.0.0" + js-sha3 "0.8.0" + query-string "6.13.5" + safe-json-utils "1.0.0" + window-getters "1.0.0" + window-metadata "1.0.0" + "@walletconnect/web3-provider@^1.3.1": version "1.3.1" resolved "https://registry.yarnpkg.com/@walletconnect/web3-provider/-/web3-provider-1.3.1.tgz#031c1cc7a52ea12287f1278929501ee91847e237" @@ -3844,6 +3957,18 @@ "@walletconnect/utils" "^1.3.1" web3-provider-engine "15.0.12" +"@walletconnect/web3-provider@^1.3.6": + version "1.3.6" + resolved "https://registry.yarnpkg.com/@walletconnect/web3-provider/-/web3-provider-1.3.6.tgz#a09f0c08115475918ed4fe8d0503d28e29ac1877" + integrity sha512-49B7P4DjpK3LziW/IQTORc6+K2LmmK/qPFfjq/RWi5NIl/09D1D73UhCEIjZPJwNiAdd2V3wVKtSr/noj3PLgw== + dependencies: + "@walletconnect/client" "^1.3.6" + "@walletconnect/http-connection" "^1.3.6" + "@walletconnect/qrcode-modal" "^1.3.6" + "@walletconnect/types" "^1.3.6" + "@walletconnect/utils" "^1.3.6" + web3-provider-engine "16.0.1" + "@webassemblyjs/ast@1.7.11": version "1.7.11" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.7.11.tgz#b988582cafbb2b095e8b556526f30c90d057cace" @@ -4247,7 +4372,7 @@ aes-js@3.0.0: resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d" integrity sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0= -aes-js@3.1.2: +aes-js@3.1.2, aes-js@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.1.2.tgz#db9aabde85d5caabbfc0d4f2a4446960f627146a" integrity sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ== @@ -4825,6 +4950,13 @@ async-limiter@^1.0.0, 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-retry@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/async-retry/-/async-retry-1.3.1.tgz#139f31f8ddce50c0870b0ba558a6079684aaed55" @@ -9683,6 +9815,14 @@ enc-utils@2.1.0: is-typedarray "1.0.0" typedarray-to-buffer "3.1.5" +enc-utils@3.0.0, enc-utils@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/enc-utils/-/enc-utils-3.0.0.tgz#65935d2d6a867fa0ae995f05f3a2f055ce764dcf" + integrity sha512-e57t/Z2HzWOLwOp7DZcV0VMEY8t7ptWwsxyp6kM2b2zrk6JqIpXxzkruHAMiBsy5wg9jp/183GdiRXCvBtzsYg== + dependencies: + is-typedarray "1.0.0" + typedarray-to-buffer "3.1.5" + enc-utils@^2.2.1, enc-utils@^2.2.2: version "2.2.3" resolved "https://registry.yarnpkg.com/enc-utils/-/enc-utils-2.2.3.tgz#2e4536e152b03209b8078cfff562cad6a2841489" @@ -10369,6 +10509,18 @@ eth-json-rpc-filters@^4.1.1: lodash.flatmap "^4.5.0" safe-event-emitter "^1.0.1" +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@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/eth-json-rpc-infura/-/eth-json-rpc-infura-4.0.2.tgz#8af1a1a2e9a0a82aaa302bbc96fb1a4c15d69b83" @@ -10379,6 +10531,16 @@ eth-json-rpc-infura@^4.0.1: eth-json-rpc-middleware "^4.1.4" json-rpc-engine "^5.1.3" +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@^4.1.4, eth-json-rpc-middleware@^4.1.5: version "4.4.1" resolved "https://registry.yarnpkg.com/eth-json-rpc-middleware/-/eth-json-rpc-middleware-4.4.1.tgz#07d3dd0724c24a8d31e4a172ee96271da71b4228" @@ -10399,6 +10561,23 @@ eth-json-rpc-middleware@^4.1.4, eth-json-rpc-middleware@^4.1.5: pify "^3.0.0" safe-event-emitter "^1.0.1" +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" @@ -10428,6 +10607,20 @@ 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.2" + resolved "https://registry.yarnpkg.com/eth-rpc-errors/-/eth-rpc-errors-4.0.2.tgz#11bc164e25237a679061ac05b7da7537b673d3b7" + integrity sha512-n+Re6Gu8XGyfFy1it0AwbD1x0MUzspQs0D5UiPs1fFPCr6WAwZM+vbIhXheBFrpgosqN9bs5PqlB4Q61U/QytQ== + dependencies: + fast-safe-stringify "^2.0.6" + eth-sig-util@^1.4.2: version "1.4.2" resolved "https://registry.yarnpkg.com/eth-sig-util/-/eth-sig-util-1.4.2.tgz#8d958202c7edbaae839707fba6f09ff327606210" @@ -10630,6 +10823,11 @@ eventemitter3@4.0.4: resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.4.tgz#b5463ace635a083d018bdc7c917b4c5f10a85384" integrity sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ== +eventemitter3@4.0.7: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + events@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" @@ -12441,7 +12639,7 @@ hash.js@1.1.3: inherits "^2.0.3" minimalistic-assert "^1.0.0" -hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3: +hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== @@ -15423,6 +15621,22 @@ json-rpc-engine@^5.1.3: 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-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" @@ -15731,6 +15945,11 @@ keyv@^3.0.0: dependencies: json-buffer "3.0.0" +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" @@ -17579,6 +17798,11 @@ node-fetch@^2.1.2, node-fetch@^2.6.0: resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA== +node-fetch@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" + integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== + node-forge@0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.9.0.tgz#d624050edbb44874adca12bb9a52ec63cb782579" @@ -18926,6 +19150,11 @@ pify@^4.0.1: resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== +pify@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-5.0.0.tgz#1f5eca3f5e87ebec28cc6d54a0e4aaf00acc127f" + integrity sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA== + pinkie-promise@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" @@ -24269,6 +24498,11 @@ tslib@^1, tslib@^1.10.0, tslib@^1.9.0, tslib@^1.9.3: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35" integrity sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA== +tslib@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a" + integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A== + tty-browserify@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" @@ -25171,6 +25405,34 @@ web3-provider-engine@15.0.4: 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"