diff --git a/packages/backend/package.json b/packages/backend/package.json index 79d44ffaa..0a2030828 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -24,7 +24,7 @@ "bluebird": "3.7.2", "body-parser": "1.19.0", "discord.js": "^12.5.1", - "ethers": "4.0.48", + "ethers": "5.0.32", "express": "4.17.1", "express-graphql": "0.11.0", "graphql": "15.4.0", diff --git a/packages/backend/src/handlers/auth-webhook/handler.ts b/packages/backend/src/handlers/auth-webhook/handler.ts index 3b178c4bf..fb8a7d0a8 100644 --- a/packages/backend/src/handlers/auth-webhook/handler.ts +++ b/packages/backend/src/handlers/auth-webhook/handler.ts @@ -1,6 +1,7 @@ import { did } from '@metafam/utils'; import { Request, Response } from 'express'; +import { defaultProvider } from '../../lib/ethereum'; import { getOrCreatePlayer } from './users'; const unauthorizedVariables = { @@ -33,7 +34,7 @@ export const authHandler = async ( if (!token) { res.json(unauthorizedVariables); } else { - const claim = did.verifyToken(token); + const claim = await did.verifyToken(token, defaultProvider); if (!claim) { res.status(401).send(); return; diff --git a/packages/utils/package.json b/packages/utils/package.json index b41054fe3..e745c5b9d 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -14,7 +14,7 @@ }, "dependencies": { "bignumber.js": "^9.0.1", - "ethers": "5.0.17", + "ethers": "5.0.32", "js-base64": "3.5.2", "uuid": "8.3.2" }, diff --git a/packages/utils/src/did/index.ts b/packages/utils/src/did/index.ts index 85b876fc4..c25e3d02e 100644 --- a/packages/utils/src/did/index.ts +++ b/packages/utils/src/did/index.ts @@ -1,8 +1,8 @@ -import { providers, utils } from 'ethers'; +import { providers } from 'ethers'; import { Base64 } from 'js-base64'; import { v4 as uuidv4 } from 'uuid'; -import { signerHelper } from '../ethereumHelper'; +import { signerHelper, verifySignature } from '../ethereumHelper'; const tokenDuration = 1000 * 60 * 60 * 24 * 7; // 7 days @@ -36,26 +36,20 @@ export async function createToken( return Base64.encode(JSON.stringify([proof, serializedClaim])); } -export function getSignerAddress(token: string): string | null { - try { - const rawToken = Base64.decode(token); - const [proof, rawClaim] = JSON.parse(rawToken); - return utils.verifyMessage(rawClaim, proof); - } catch (e) { - console.error('Token verification failed', e); - return null; - } -} - -export function verifyToken(token: string): Claim | null { +export async function verifyToken( + token: string, + provider: providers.JsonRpcProvider, +): Promise { try { const rawToken = Base64.decode(token, 'base64'); const [proof, rawClaim] = JSON.parse(rawToken); const claim: Claim = JSON.parse(rawClaim); + const address = claim.iss; + + const valid = await verifySignature(address, rawClaim, proof, provider); - const signerAddress = utils.verifyMessage(rawClaim, proof); - if (signerAddress !== claim.iss) { - return null; + if (!valid) { + throw new Error('invalid signature'); } return claim; } catch (e) { diff --git a/packages/utils/src/ethereumHelper.ts b/packages/utils/src/ethereumHelper.ts index 88c20e044..1f8181515 100644 --- a/packages/utils/src/ethereumHelper.ts +++ b/packages/utils/src/ethereumHelper.ts @@ -1,9 +1,9 @@ -import { providers } from 'ethers'; +import { Contract, providers, utils } from 'ethers'; export async function signerHelper( provider: providers.Web3Provider, rawMessage: string, -) { +): Promise { const ethereum = provider.provider; const signer = provider.getSigner(); const address = await signer.getAddress(); @@ -19,3 +19,48 @@ export async function signerHelper( }); return signature; } + +const smartWalletABI = [ + 'function isValidSignature(bytes32 _message, bytes _signature) public view returns (bool)', +]; + +enum WalletType { + EOA, + SMART, +} + +async function getWalletType( + address: string, + provider: providers.BaseProvider, +): Promise { + const code = await provider.getCode(address); + return code === '0x' ? WalletType.EOA : WalletType.SMART; +} + +export async function verifySignature( + address: string, + message: string, + signature: string, + provider: providers.BaseProvider, +): Promise { + const walletType = await getWalletType(address, provider); + + if (walletType === WalletType.EOA) { + const recoveredAddress = utils.verifyMessage(message, signature); + return address === recoveredAddress; + } + + // Smart wallet + const arrayishMessage = utils.toUtf8Bytes(message); + const hexMessage = utils.hexlify(arrayishMessage); + const hexArray = utils.arrayify(hexMessage); + const hashMessage = utils.hashMessage(hexArray); + + const contract = new Contract(address, smartWalletABI, provider); + try { + const returnValue = await contract.isValidSignature(hashMessage, signature); + return returnValue; + } catch(error) { + throw new Error('unsupported smart wallet'); + } +} diff --git a/packages/web/contexts/Web3Context.tsx b/packages/web/contexts/Web3Context.tsx index 281a3b0b0..82d46c13d 100644 --- a/packages/web/contexts/Web3Context.tsx +++ b/packages/web/contexts/Web3Context.tsx @@ -3,11 +3,17 @@ import WalletConnectProvider from '@walletconnect/web3-provider'; import { providers } from 'ethers'; import { clearToken, - clearWCMobile, + clearWalletConnect, getTokenFromStore, setTokenInStore, } from 'lib/auth'; -import React, { createContext, useCallback, useEffect, useRef,useState } from 'react'; +import React, { + createContext, + useCallback, + useEffect, + useRef, + useState, +} from 'react'; import Web3Modal from 'web3modal'; import { CONFIG } from '../config'; @@ -49,19 +55,19 @@ const web3Modal = providerOptions, }); -function getExistingAuth(ethAddress: string): string | null { +async function getExistingAuth( + ethersProvider: providers.Web3Provider, +): Promise { const token = getTokenFromStore(); if (!token) return null; - const signerAddress = did.getSignerAddress(token); - if ( - !signerAddress || - signerAddress.toLowerCase() !== ethAddress.toLowerCase() - ) { + try { + await did.verifyToken(token, ethersProvider); + return token; + } catch (e) { clearToken(); return null; } - return token; } async function authenticateWallet( @@ -73,11 +79,14 @@ async function authenticateWallet( } interface Web3ContextProviderOptions { - children: React.ReactElement, - resetUrqlClient?: () => void, + children: React.ReactElement; + resetUrqlClient?: () => void; } -export const Web3ContextProvider: React.FC = ({ children, resetUrqlClient }) => { +export const Web3ContextProvider: React.FC = ({ + children, + resetUrqlClient, +}) => { const [provider, setProvider] = useState(null); const [isConnected, setIsConnected] = useState(false); const [isConnecting, setIsConnecting] = useState(false); @@ -89,14 +98,14 @@ export const Web3ContextProvider: React.FC = ({ chil if (web3Modal === false) return; web3Modal.clearCachedProvider(); - clearWCMobile(); + clearWalletConnect(); clearToken(); setAuthToken(null); setAddress(null); setProvider(null); setIsConnecting(false); setIsConnected(false); - if(resetUrqlClient) resetUrqlClient(); + if (resetUrqlClient) resetUrqlClient(); }, [resetUrqlClient]); const connectWeb3 = useCallback(async () => { @@ -104,12 +113,12 @@ export const Web3ContextProvider: React.FC = ({ chil setIsConnecting(true); try { - const modalProvider = await web3Modal.connect(); - const ethersProvider = new providers.Web3Provider(modalProvider); + const web3Provider = await web3Modal.connect(); + const ethersProvider = new providers.Web3Provider(web3Provider); const ethAddress = await ethersProvider.getSigner().getAddress(); - let token: string | null = getExistingAuth(ethAddress); + let token: string | null = await getExistingAuth(ethersProvider); if (!token) { token = await authenticateWallet(ethersProvider); } @@ -119,15 +128,16 @@ export const Web3ContextProvider: React.FC = ({ chil setAuthToken(token); setIsConnecting(false); setIsConnected(true); - if(resetUrqlClient) resetUrqlClient(); - } catch (_) { + if (resetUrqlClient) resetUrqlClient(); + } catch (error) { + console.log(error); setIsConnecting(false); disconnect(); } }, [resetUrqlClient, disconnect]); useEffect(() => { - if(calledOnce.current) return; + if (calledOnce.current) return; calledOnce.current = true; if (web3Modal === false) return; diff --git a/packages/web/lib/auth.ts b/packages/web/lib/auth.ts index 60b2c1e40..cfad66f2d 100644 --- a/packages/web/lib/auth.ts +++ b/packages/web/lib/auth.ts @@ -1,6 +1,7 @@ import { get, remove, set } from './store'; const STORAGE_KEY = 'metagame-auth-token'; +const walletconnectKey = 'walletconnect'; const mobileLinkChoiceKey = 'WALLETCONNECT_DEEPLINK_CHOICE'; export const getTokenFromStore = (): string | null => get(STORAGE_KEY); @@ -11,4 +12,7 @@ export const clearToken = (): void => remove(STORAGE_KEY); // Temporary workaround to clear cached walletconnect mobile wallet // https://github.com/WalletConnect/walletconnect-monorepo/issues/394 -export const clearWCMobile = (): void => remove(mobileLinkChoiceKey); +export const clearWalletConnect = (): void => { + remove(walletconnectKey); + remove(mobileLinkChoiceKey); +}; diff --git a/packages/web/package.json b/packages/web/package.json index 84e74579f..1915b0627 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -17,7 +17,7 @@ "@metafam/utils": "1.0.0", "@walletconnect/web3-provider": "1.3.1", "copy-to-clipboard": "^3.3.1", - "ethers": "5.0.17", + "ethers": "5.0.32", "fake-tag": "2.0.0", "framer-motion": "3.1.1", "graphql": "15.4.0", diff --git a/yarn.lock b/yarn.lock index 1a1f4e9b0..8e5bd5056 100644 --- a/yarn.lock +++ b/yarn.lock @@ -393,6 +393,13 @@ dependencies: tslib "~2.0.1" +"@argent/smartwallet-utils@0.0.12": + version "0.0.12" + resolved "https://registry.yarnpkg.com/@argent/smartwallet-utils/-/smartwallet-utils-0.0.12.tgz#12a29fc7b6d107a45abb8c36aca153a7a121aed8" + integrity sha512-dCHoLS6rdLo8UJZXTbnIbXdrAsGe+Tb8Xvm2t/Ak4QqkHoXG6emv7acsLZGLtytImfIkwY2oi7AO845Op35ZWw== + dependencies: + ethers "^5.0.18" + "@assemblyscript/loader@^0.9.2": version "0.9.4" resolved "https://registry.yarnpkg.com/@assemblyscript/loader/-/loader-0.9.4.tgz#a483c54c1253656bb33babd464e3154a173e1577" @@ -2777,6 +2784,21 @@ minimatch "^3.0.4" strip-json-comments "^3.1.1" +"@ethersproject/abi@5.0.13", "@ethersproject/abi@^5.0.10": + version "5.0.13" + resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.0.13.tgz#600a559c3730467716595658beaa2894b4352bcc" + integrity sha512-2coOH3D7ra1lwamKEH0HVc+Jbcsw5yfeCgmY8ekhCDualEiyyovD2qDcMBBcY3+kjoLHVTmo7ost6MNClxdOrg== + dependencies: + "@ethersproject/address" "^5.0.9" + "@ethersproject/bignumber" "^5.0.13" + "@ethersproject/bytes" "^5.0.9" + "@ethersproject/constants" "^5.0.8" + "@ethersproject/hash" "^5.0.10" + "@ethersproject/keccak256" "^5.0.7" + "@ethersproject/logger" "^5.0.8" + "@ethersproject/properties" "^5.0.7" + "@ethersproject/strings" "^5.0.8" + "@ethersproject/abi@5.0.7", "@ethersproject/abi@^5.0.5": version "5.0.7" resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.0.7.tgz#79e52452bd3ca2956d0e1c964207a58ad1a0ee7b" @@ -2792,6 +2814,19 @@ "@ethersproject/properties" "^5.0.3" "@ethersproject/strings" "^5.0.4" +"@ethersproject/abstract-provider@5.0.10", "@ethersproject/abstract-provider@^5.0.8": + version "5.0.10" + resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.0.10.tgz#a533aed39a5f27312745c8c4c40fa25fc884831c" + integrity sha512-OSReY5iz94iIaPlRvLiJP8YVIvQLx4aUvMMnHWSaA/vTU8QHZmgNlt4OBdYV1+aFY8Xl+VRYiWBHq72ZDKXXCQ== + dependencies: + "@ethersproject/bignumber" "^5.0.13" + "@ethersproject/bytes" "^5.0.9" + "@ethersproject/logger" "^5.0.8" + "@ethersproject/networks" "^5.0.7" + "@ethersproject/properties" "^5.0.7" + "@ethersproject/transactions" "^5.0.9" + "@ethersproject/web" "^5.0.12" + "@ethersproject/abstract-provider@5.0.5", "@ethersproject/abstract-provider@^5.0.0", "@ethersproject/abstract-provider@^5.0.4": version "5.0.5" resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.0.5.tgz#797a32a8707830af1ad8f833e9c228994d5572b9" @@ -2805,6 +2840,17 @@ "@ethersproject/transactions" "^5.0.5" "@ethersproject/web" "^5.0.6" +"@ethersproject/abstract-signer@5.0.14", "@ethersproject/abstract-signer@^5.0.10": + version "5.0.14" + resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.0.14.tgz#30ef912b0f86599d90fdffc65c110452e7b55cf1" + integrity sha512-JztBwVO7o5OHLh2vyjordlS4/1EjRyaECtc8vPdXTF1i4dXN+J0coeRoPN6ZFbBvi/YbaB6br2fvqhst1VQD/g== + dependencies: + "@ethersproject/abstract-provider" "^5.0.8" + "@ethersproject/bignumber" "^5.0.13" + "@ethersproject/bytes" "^5.0.9" + "@ethersproject/logger" "^5.0.8" + "@ethersproject/properties" "^5.0.7" + "@ethersproject/abstract-signer@5.0.6", "@ethersproject/abstract-signer@^5.0.0", "@ethersproject/abstract-signer@^5.0.4": version "5.0.6" resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.0.6.tgz#c01211665ab9c9e93988c4783b789712fd93a388" @@ -2816,6 +2862,17 @@ "@ethersproject/logger" "^5.0.5" "@ethersproject/properties" "^5.0.3" +"@ethersproject/address@5.0.11", "@ethersproject/address@^5.0.9": + version "5.0.11" + resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.0.11.tgz#12022e8c590c33939beb5ab18b401ecf585eac59" + integrity sha512-Et4GBdD8/tsBGjCEOKee9upN29qjL5kbRcmJifb4Penmiuh9GARXL2/xpXvEp5EW+EIW/rfCHFJrkYBgoQFQBw== + dependencies: + "@ethersproject/bignumber" "^5.0.13" + "@ethersproject/bytes" "^5.0.9" + "@ethersproject/keccak256" "^5.0.7" + "@ethersproject/logger" "^5.0.8" + "@ethersproject/rlp" "^5.0.7" + "@ethersproject/address@5.0.5", "@ethersproject/address@^5.0.0", "@ethersproject/address@^5.0.4": version "5.0.5" resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.0.5.tgz#2caa65f6b7125015395b1b54c985ee0b27059cc7" @@ -2835,6 +2892,13 @@ dependencies: "@ethersproject/bytes" "^5.0.4" +"@ethersproject/base64@5.0.9", "@ethersproject/base64@^5.0.7": + version "5.0.9" + resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.0.9.tgz#bb1f35d3dba92082a574d5e2418f9202a0a1a7e6" + integrity sha512-37RBz5LEZ9SlTNGiWCYFttnIN9J7qVs9Xo2EbqGqDH5LfW9EIji66S+YDMpXVo1zWDax1FkEldAoatxHK2gfgA== + dependencies: + "@ethersproject/bytes" "^5.0.9" + "@ethersproject/basex@5.0.4", "@ethersproject/basex@^5.0.0", "@ethersproject/basex@^5.0.3": version "5.0.4" resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.0.4.tgz#93e1cd11f9a47281da2389de24f88e13e9d90847" @@ -2843,6 +2907,23 @@ "@ethersproject/bytes" "^5.0.4" "@ethersproject/properties" "^5.0.3" +"@ethersproject/basex@5.0.9", "@ethersproject/basex@^5.0.7": + version "5.0.9" + resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.0.9.tgz#00d727a031bac563cb8bb900955206f1bf3cf1fc" + integrity sha512-FANswl1IN3PS0eltQxH2aM2+utPrkLUVG4XVFi6SafRG9EpAqXCgycxC8PU90mPGhigYTpg9cnTB5mCZ6ejQjw== + dependencies: + "@ethersproject/bytes" "^5.0.9" + "@ethersproject/properties" "^5.0.7" + +"@ethersproject/bignumber@5.0.15", "@ethersproject/bignumber@^5.0.13": + version "5.0.15" + resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.0.15.tgz#b089b3f1e0381338d764ac1c10512f0c93b184ed" + integrity sha512-MTADqnyacvdRwtKh7o9ujwNDSM1SDJjYDMYAzjIgjoi9rh6TY4suMbhCa3i2vh3SUXiXSICyTI8ui+NPdrZ9Lw== + dependencies: + "@ethersproject/bytes" "^5.0.9" + "@ethersproject/logger" "^5.0.8" + bn.js "^4.4.0" + "@ethersproject/bignumber@5.0.8", "@ethersproject/bignumber@^5.0.0", "@ethersproject/bignumber@^5.0.7": version "5.0.8" resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.0.8.tgz#cee33bd8eb0266176def0d371b45274b1d2c4ec0" @@ -2852,6 +2933,13 @@ "@ethersproject/logger" "^5.0.5" bn.js "^4.4.0" +"@ethersproject/bytes@5.0.11", "@ethersproject/bytes@^5.0.9": + version "5.0.11" + resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.0.11.tgz#21118e75b1d00db068984c15530e316021101276" + integrity sha512-D51plLYY5qF05AsoVQwIZVLqlBkaTPVHVP/1WmmBIWyHB0cRW0C9kh0kx5Exo51rB63Hk8PfHxc7SmpoaQFEyg== + dependencies: + "@ethersproject/logger" "^5.0.8" + "@ethersproject/bytes@5.0.5", "@ethersproject/bytes@^5.0.0", "@ethersproject/bytes@^5.0.4": version "5.0.5" resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.0.5.tgz#688b70000e550de0c97a151a21f15b87d7f97d7c" @@ -2859,6 +2947,13 @@ dependencies: "@ethersproject/logger" "^5.0.5" +"@ethersproject/constants@5.0.10", "@ethersproject/constants@^5.0.8": + version "5.0.10" + resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.0.10.tgz#eb0c604fbc44c53ba9641eed31a1d0c9e1ebcadc" + integrity sha512-OSo8jxkHLDXieCy8bgOFR7lMfgPxEzKvSDdP+WAWHCDM8+orwch0B6wzkTmiQFgryAtIctrBt5glAdJikZ3hGw== + dependencies: + "@ethersproject/bignumber" "^5.0.13" + "@ethersproject/constants@5.0.5", "@ethersproject/constants@^5.0.4": version "5.0.5" resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.0.5.tgz#0ed19b002e8404bdf6d135234dc86a7d9bcf9b71" @@ -2866,6 +2961,21 @@ dependencies: "@ethersproject/bignumber" "^5.0.7" +"@ethersproject/contracts@5.0.12": + version "5.0.12" + resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.0.12.tgz#6d488db46221258399dfe80b89bf849b3afd7897" + integrity sha512-srijy31idjz8bE+gL1I6IRj2H4I9dUwfQ+QroLrIgNdGArqY8y2iFUKa3QTy+JBX26fJsdYiCQi1kKkaNpnMpQ== + dependencies: + "@ethersproject/abi" "^5.0.10" + "@ethersproject/abstract-provider" "^5.0.8" + "@ethersproject/abstract-signer" "^5.0.10" + "@ethersproject/address" "^5.0.9" + "@ethersproject/bignumber" "^5.0.13" + "@ethersproject/bytes" "^5.0.9" + "@ethersproject/constants" "^5.0.8" + "@ethersproject/logger" "^5.0.8" + "@ethersproject/properties" "^5.0.7" + "@ethersproject/contracts@5.0.5", "@ethersproject/contracts@^5.0.1": version "5.0.5" resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.0.5.tgz#64831a341ec8ca225e83ff3e9437c26b970fd5d7" @@ -2881,6 +2991,20 @@ "@ethersproject/logger" "^5.0.5" "@ethersproject/properties" "^5.0.3" +"@ethersproject/hash@5.0.12", "@ethersproject/hash@^5.0.10": + version "5.0.12" + resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.0.12.tgz#1074599f7509e2ca2bb7a3d4f4e39ab3a796da42" + integrity sha512-kn4QN+fhNFbUgX3XZTZUaQixi0oyfIEY+hfW+KtkHu+rq7dV76oAIvaLEEynu1/4npOL38E4X4YI42gGZk+C0Q== + dependencies: + "@ethersproject/abstract-signer" "^5.0.10" + "@ethersproject/address" "^5.0.9" + "@ethersproject/bignumber" "^5.0.13" + "@ethersproject/bytes" "^5.0.9" + "@ethersproject/keccak256" "^5.0.7" + "@ethersproject/logger" "^5.0.8" + "@ethersproject/properties" "^5.0.7" + "@ethersproject/strings" "^5.0.8" + "@ethersproject/hash@5.0.5", "@ethersproject/hash@^5.0.0", "@ethersproject/hash@^5.0.4": version "5.0.5" resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.0.5.tgz#e383ba2c7941834266fa6e2cf543d2b0c50a9d59" @@ -2891,6 +3015,24 @@ "@ethersproject/logger" "^5.0.5" "@ethersproject/strings" "^5.0.4" +"@ethersproject/hdnode@5.0.10", "@ethersproject/hdnode@^5.0.8": + version "5.0.10" + resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.0.10.tgz#f7cdf154bf5d104c76dce2940745fc71d9e7eb1b" + integrity sha512-ZLwMtIcXK7xz2lSITDCl40W04CtRq4K9NwBxhCzdzPdaz6XnoJMwGz2YMVLg+8ksseq+RYtTwIIXtlK6vyvQyg== + dependencies: + "@ethersproject/abstract-signer" "^5.0.10" + "@ethersproject/basex" "^5.0.7" + "@ethersproject/bignumber" "^5.0.13" + "@ethersproject/bytes" "^5.0.9" + "@ethersproject/logger" "^5.0.8" + "@ethersproject/pbkdf2" "^5.0.7" + "@ethersproject/properties" "^5.0.7" + "@ethersproject/sha2" "^5.0.7" + "@ethersproject/signing-key" "^5.0.8" + "@ethersproject/strings" "^5.0.8" + "@ethersproject/transactions" "^5.0.9" + "@ethersproject/wordlists" "^5.0.8" + "@ethersproject/hdnode@5.0.2": version "5.0.2" resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.0.2.tgz#c4f2152590a64822d0c0feb90f09cc247af657e0" @@ -2927,6 +3069,25 @@ "@ethersproject/transactions" "^5.0.5" "@ethersproject/wordlists" "^5.0.4" +"@ethersproject/json-wallets@5.0.12", "@ethersproject/json-wallets@^5.0.10": + version "5.0.12" + resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.0.12.tgz#8946a0fcce1634b636313a50330b7d30a24996e8" + integrity sha512-nac553zGZnOewpjlqbfy7WBl8m3y7qudzRsI2dCxrediYtPIVIs9f6Pbnou8vDmmp8X4/U4W788d+Ma88o+Gbg== + dependencies: + "@ethersproject/abstract-signer" "^5.0.10" + "@ethersproject/address" "^5.0.9" + "@ethersproject/bytes" "^5.0.9" + "@ethersproject/hdnode" "^5.0.8" + "@ethersproject/keccak256" "^5.0.7" + "@ethersproject/logger" "^5.0.8" + "@ethersproject/pbkdf2" "^5.0.7" + "@ethersproject/properties" "^5.0.7" + "@ethersproject/random" "^5.0.7" + "@ethersproject/strings" "^5.0.8" + "@ethersproject/transactions" "^5.0.9" + aes-js "3.0.0" + scrypt-js "3.0.1" + "@ethersproject/json-wallets@5.0.7", "@ethersproject/json-wallets@^5.0.0", "@ethersproject/json-wallets@^5.0.6": version "5.0.7" resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.0.7.tgz#4c48753b38ce7bce23a55f25c23f24617cf560e5" @@ -2954,6 +3115,19 @@ "@ethersproject/bytes" "^5.0.4" js-sha3 "0.5.7" +"@ethersproject/keccak256@5.0.9", "@ethersproject/keccak256@^5.0.7": + version "5.0.9" + resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.0.9.tgz#ca0d86e4af56c13b1ef25e533bde3e96d28f647d" + integrity sha512-zhdUTj6RGtCJSgU+bDrWF6cGbvW453LoIC1DSNWrTlXzC7WuH4a+EiPrgc7/kNoRxerKuA/cxYlI8GwNtVtDlw== + dependencies: + "@ethersproject/bytes" "^5.0.9" + js-sha3 "0.5.7" + +"@ethersproject/logger@5.0.10", "@ethersproject/logger@^5.0.8": + version "5.0.10" + resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.0.10.tgz#fd884688b3143253e0356ef92d5f22d109d2e026" + integrity sha512-0y2T2NqykDrbPM3Zw9RSbPkDOxwChAL8detXaom76CfYoGxsOnRP/zTX8OUAV+x9LdwzgbWvWmeXrc0M7SuDZw== + "@ethersproject/logger@5.0.6", "@ethersproject/logger@^5.0.0", "@ethersproject/logger@^5.0.5": version "5.0.6" resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.0.6.tgz#faa484203e86e08be9e07fef826afeef7183fe88" @@ -2966,6 +3140,13 @@ dependencies: "@ethersproject/logger" "^5.0.5" +"@ethersproject/networks@5.0.9", "@ethersproject/networks@^5.0.7": + version "5.0.9" + resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.0.9.tgz#ec5da11e4d4bfd69bec4eaebc9ace33eb9569279" + integrity sha512-L8+VCQwArBLGkxZb/5Ns/OH/OxP38AcaveXIxhUTq+VWpXYjrObG3E7RDQIKkUx1S1IcQl/UWTz5w4DK0UitJg== + dependencies: + "@ethersproject/logger" "^5.0.8" + "@ethersproject/pbkdf2@5.0.4", "@ethersproject/pbkdf2@^5.0.0", "@ethersproject/pbkdf2@^5.0.3": version "5.0.4" resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.0.4.tgz#a0841d53f5ce9a2b52a65a349d2dc15910b0a767" @@ -2974,6 +3155,14 @@ "@ethersproject/bytes" "^5.0.4" "@ethersproject/sha2" "^5.0.3" +"@ethersproject/pbkdf2@5.0.9", "@ethersproject/pbkdf2@^5.0.7": + version "5.0.9" + resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.0.9.tgz#be39c7f0a66c0d3cb1ad1dbb12a78e9bcdf9b5ae" + integrity sha512-ItE/wQ/WVw/ajEHPUVgfu0aEvksPgOQc+278bke8sGKnGO3ppjmqp0MHh17tHc1EBTzJbSms5aLIqc56qZ/oiA== + dependencies: + "@ethersproject/bytes" "^5.0.9" + "@ethersproject/sha2" "^5.0.7" + "@ethersproject/properties@5.0.4", "@ethersproject/properties@^5.0.0", "@ethersproject/properties@^5.0.3": version "5.0.4" resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.0.4.tgz#a67a1f5a52c30850b5062c861631e73d131f666e" @@ -2981,6 +3170,13 @@ dependencies: "@ethersproject/logger" "^5.0.5" +"@ethersproject/properties@5.0.9", "@ethersproject/properties@^5.0.7": + version "5.0.9" + resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.0.9.tgz#d7aae634680760136ea522e25c3ef043ec15b5c2" + integrity sha512-ZCjzbHYTw+rF1Pn8FDCEmx3gQttwIHcm/6Xee8g/M3Ga3SfW4tccNMbs5zqnBH0E4RoOPaeNgyg1O68TaF0tlg== + dependencies: + "@ethersproject/logger" "^5.0.8" + "@ethersproject/providers@5.0.12", "@ethersproject/providers@^5.0.4": version "5.0.12" resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.0.12.tgz#de05e865e130709ea1e0870511eb892bda7d41cb" @@ -3006,6 +3202,31 @@ bech32 "1.1.4" ws "7.2.3" +"@ethersproject/providers@5.0.24": + version "5.0.24" + resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.0.24.tgz#4c638a029482d052faa18364b5e0e2d3ddd9c0cb" + integrity sha512-M4Iw1r4gGJkt7ZUa++iREuviKL/DIpmIMsaUlVlXtV+ZrUXeN8xQ3zOTrbz7R4h9W9oljBZM7i4D3Kn1krJ30A== + dependencies: + "@ethersproject/abstract-provider" "^5.0.8" + "@ethersproject/abstract-signer" "^5.0.10" + "@ethersproject/address" "^5.0.9" + "@ethersproject/basex" "^5.0.7" + "@ethersproject/bignumber" "^5.0.13" + "@ethersproject/bytes" "^5.0.9" + "@ethersproject/constants" "^5.0.8" + "@ethersproject/hash" "^5.0.10" + "@ethersproject/logger" "^5.0.8" + "@ethersproject/networks" "^5.0.7" + "@ethersproject/properties" "^5.0.7" + "@ethersproject/random" "^5.0.7" + "@ethersproject/rlp" "^5.0.7" + "@ethersproject/sha2" "^5.0.7" + "@ethersproject/strings" "^5.0.8" + "@ethersproject/transactions" "^5.0.9" + "@ethersproject/web" "^5.0.12" + bech32 "1.1.4" + ws "7.2.3" + "@ethersproject/random@5.0.4", "@ethersproject/random@^5.0.0", "@ethersproject/random@^5.0.3": version "5.0.4" resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.0.4.tgz#98f7cf65b0e588cec39ef24843e391ed5004556f" @@ -3014,6 +3235,14 @@ "@ethersproject/bytes" "^5.0.4" "@ethersproject/logger" "^5.0.5" +"@ethersproject/random@5.0.9", "@ethersproject/random@^5.0.7": + version "5.0.9" + resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.0.9.tgz#1903d4436ba66e4c8ac77968b16f756abea3a0d0" + integrity sha512-DANG8THsKqFbJOantrxumtG6gyETNE54VfbsWa+SQAT8WKpDo9W/X5Zhh73KuhClaey1UI32uVmISZeq/Zxn1A== + dependencies: + "@ethersproject/bytes" "^5.0.9" + "@ethersproject/logger" "^5.0.8" + "@ethersproject/rlp@5.0.4", "@ethersproject/rlp@^5.0.3": version "5.0.4" resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.0.4.tgz#0090a0271e84ea803016a112a79f5cfd80271a77" @@ -3022,6 +3251,14 @@ "@ethersproject/bytes" "^5.0.4" "@ethersproject/logger" "^5.0.5" +"@ethersproject/rlp@5.0.9", "@ethersproject/rlp@^5.0.7": + version "5.0.9" + resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.0.9.tgz#da205bf8a34d3c3409eb73ddd237130a4b376aff" + integrity sha512-ns1U7ZMVeruUW6JXc4om+1w3w4ynHN/0fpwmeNTsAjwGKoF8SAUgue6ylKpHKWSti2idx7jDxbn8hNNFHk67CA== + dependencies: + "@ethersproject/bytes" "^5.0.9" + "@ethersproject/logger" "^5.0.8" + "@ethersproject/sha2@5.0.4", "@ethersproject/sha2@^5.0.0", "@ethersproject/sha2@^5.0.3": version "5.0.4" resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.0.4.tgz#40f639721a27dbe034b3dee021ba20b054586fec" @@ -3031,6 +3268,25 @@ "@ethersproject/logger" "^5.0.5" hash.js "1.1.3" +"@ethersproject/sha2@5.0.9", "@ethersproject/sha2@^5.0.7": + version "5.0.9" + resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.0.9.tgz#41275ee03e6e1660b3c997754005e089e936adc6" + integrity sha512-5FH4s47gM7N1fFAYQ1+m7aX0SbLg0Xr+6tvqndmNqc382/qBIbzXiGlUookrsjlPb6gLNurnTssCXjNM72J6lQ== + dependencies: + "@ethersproject/bytes" "^5.0.9" + "@ethersproject/logger" "^5.0.8" + hash.js "1.1.3" + +"@ethersproject/signing-key@5.0.11", "@ethersproject/signing-key@^5.0.8": + version "5.0.11" + resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.0.11.tgz#19fc5c4597e18ad0a5efc6417ba5b74069fdd2af" + integrity sha512-Jfcru/BGwdkXhLxT+8WCZtFy7LL0TPFZw05FAb5asxB/MyVsEfNdNxGDtjVE9zXfmRSPe/EusXYY4K7wcygOyQ== + dependencies: + "@ethersproject/bytes" "^5.0.9" + "@ethersproject/logger" "^5.0.8" + "@ethersproject/properties" "^5.0.7" + elliptic "6.5.4" + "@ethersproject/signing-key@5.0.5", "@ethersproject/signing-key@^5.0.0", "@ethersproject/signing-key@^5.0.4": version "5.0.5" resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.0.5.tgz#acfd06fc05a14180df7e027688bbd23fc4baf782" @@ -3041,6 +3297,17 @@ "@ethersproject/properties" "^5.0.3" elliptic "6.5.3" +"@ethersproject/solidity@5.0.10": + version "5.0.10" + resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.0.10.tgz#128c9289761cf83d81ff62a1195d6079a924a86c" + integrity sha512-8OG3HLqynWXDA6mVIHuHfF/ojTTwBahON7hc9GAKCqglzXCkVA3OpyxOJXPzjHClRIAUUiU7r9oy9Z/nsjtT/g== + dependencies: + "@ethersproject/bignumber" "^5.0.13" + "@ethersproject/bytes" "^5.0.9" + "@ethersproject/keccak256" "^5.0.7" + "@ethersproject/sha2" "^5.0.7" + "@ethersproject/strings" "^5.0.8" + "@ethersproject/solidity@5.0.5": version "5.0.5" resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.0.5.tgz#97a7d8a67f2d944f208c948fed0d565512bcc2be" @@ -3052,6 +3319,15 @@ "@ethersproject/sha2" "^5.0.3" "@ethersproject/strings" "^5.0.4" +"@ethersproject/strings@5.0.10", "@ethersproject/strings@^5.0.8": + version "5.0.10" + resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.0.10.tgz#ddce1e9724f4ac4f3f67e0cac0b48748e964bfdb" + integrity sha512-KAeoS1tZ9/5ECXiIZA6S6hywbD0so2VmuW+Wfyo5EDXeyZ6Na1nxTPhTnW7voQmjbeYJffCrOc0qLFJeylyg7w== + dependencies: + "@ethersproject/bytes" "^5.0.9" + "@ethersproject/constants" "^5.0.8" + "@ethersproject/logger" "^5.0.8" + "@ethersproject/strings@5.0.5", "@ethersproject/strings@^5.0.0", "@ethersproject/strings@^5.0.4": version "5.0.5" resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.0.5.tgz#ed7e99a282a02f40757691b04a24cd83f3752195" @@ -3061,6 +3337,21 @@ "@ethersproject/constants" "^5.0.4" "@ethersproject/logger" "^5.0.5" +"@ethersproject/transactions@5.0.11", "@ethersproject/transactions@^5.0.9": + version "5.0.11" + resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.0.11.tgz#b31df5292f47937136a45885d6ee6112477c13df" + integrity sha512-ftsRvR9+gQp7L63F6+XmstvsZ4w8GtWvQB08e/zB+oB86Fnhq8+i/tkgpJplSHC8I/qgiCisva+M3u2GVhDFPA== + dependencies: + "@ethersproject/address" "^5.0.9" + "@ethersproject/bignumber" "^5.0.13" + "@ethersproject/bytes" "^5.0.9" + "@ethersproject/constants" "^5.0.8" + "@ethersproject/keccak256" "^5.0.7" + "@ethersproject/logger" "^5.0.8" + "@ethersproject/properties" "^5.0.7" + "@ethersproject/rlp" "^5.0.7" + "@ethersproject/signing-key" "^5.0.8" + "@ethersproject/transactions@5.0.6", "@ethersproject/transactions@^5.0.0", "@ethersproject/transactions@^5.0.5": version "5.0.6" resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.0.6.tgz#b8b27938be6e9ed671dbdd35fe98af8b14d0df7c" @@ -3076,6 +3367,15 @@ "@ethersproject/rlp" "^5.0.3" "@ethersproject/signing-key" "^5.0.4" +"@ethersproject/units@5.0.11": + version "5.0.11" + resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.0.11.tgz#f82f6e353ac0d6fa43b17337790f1f9aa72cb4c8" + integrity sha512-nOSPmcCWyB/dwoBRhhTtPGCsTbiXqmc7Q0Adwvafc432AC7hy3Fj3IFZtnSXsbtJ/GdHCIUIoA8gtvxSsFuBJg== + dependencies: + "@ethersproject/bignumber" "^5.0.13" + "@ethersproject/constants" "^5.0.8" + "@ethersproject/logger" "^5.0.8" + "@ethersproject/units@5.0.6": version "5.0.6" resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.0.6.tgz#e1169ecffb7e8d5eab84e1481a4e35df19045708" @@ -3085,6 +3385,27 @@ "@ethersproject/constants" "^5.0.4" "@ethersproject/logger" "^5.0.5" +"@ethersproject/wallet@5.0.12": + version "5.0.12" + resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.0.12.tgz#bfb96f95e066b4b1b4591c4615207b87afedda8b" + integrity sha512-rboJebGf47/KPZrKZQdYg9BAYuXbc/OwcUyML1K1f2jnJeo1ObWV11U1PAWTjTbhhSy6/Fg+34GO2yMb5Dt1Rw== + dependencies: + "@ethersproject/abstract-provider" "^5.0.8" + "@ethersproject/abstract-signer" "^5.0.10" + "@ethersproject/address" "^5.0.9" + "@ethersproject/bignumber" "^5.0.13" + "@ethersproject/bytes" "^5.0.9" + "@ethersproject/hash" "^5.0.10" + "@ethersproject/hdnode" "^5.0.8" + "@ethersproject/json-wallets" "^5.0.10" + "@ethersproject/keccak256" "^5.0.7" + "@ethersproject/logger" "^5.0.8" + "@ethersproject/properties" "^5.0.7" + "@ethersproject/random" "^5.0.7" + "@ethersproject/signing-key" "^5.0.8" + "@ethersproject/transactions" "^5.0.9" + "@ethersproject/wordlists" "^5.0.8" + "@ethersproject/wallet@5.0.2": version "5.0.2" resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.0.2.tgz#714ca8324c1b3b66e51b9b4e0358c882e88caf1d" @@ -3127,6 +3448,17 @@ "@ethersproject/transactions" "^5.0.5" "@ethersproject/wordlists" "^5.0.4" +"@ethersproject/web@5.0.14", "@ethersproject/web@^5.0.12": + version "5.0.14" + resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.0.14.tgz#6e7bebdd9fb967cb25ee60f44d9218dc0803bac4" + integrity sha512-QpTgplslwZ0Sp9oKNLoRuS6TKxnkwfaEk3gr7zd7XLF8XBsYejsrQO/03fNfnMx/TAT/RR6WEw/mbOwpRSeVRA== + dependencies: + "@ethersproject/base64" "^5.0.7" + "@ethersproject/bytes" "^5.0.9" + "@ethersproject/logger" "^5.0.8" + "@ethersproject/properties" "^5.0.7" + "@ethersproject/strings" "^5.0.8" + "@ethersproject/web@5.0.9", "@ethersproject/web@^5.0.6": version "5.0.9" resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.0.9.tgz#b08f8295f4bfd4777c8723fe9572f5453b9f03cb" @@ -3138,6 +3470,17 @@ "@ethersproject/properties" "^5.0.3" "@ethersproject/strings" "^5.0.4" +"@ethersproject/wordlists@5.0.10", "@ethersproject/wordlists@^5.0.8": + version "5.0.10" + resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.0.10.tgz#177b9a0b4d72b9c4f304d08b36612d6c60e9b896" + integrity sha512-jWsEm1iJzpg9SCXnNfFz+tcp4Ofzv0TJb6mj+soCNcar9GcT0yGz62ZsHC3pLQWaF4LkCzGwRJHJTXKjHQfG1A== + dependencies: + "@ethersproject/bytes" "^5.0.9" + "@ethersproject/hash" "^5.0.10" + "@ethersproject/logger" "^5.0.8" + "@ethersproject/properties" "^5.0.7" + "@ethersproject/strings" "^5.0.8" + "@ethersproject/wordlists@5.0.5", "@ethersproject/wordlists@^5.0.0", "@ethersproject/wordlists@^5.0.4": version "5.0.5" resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.0.5.tgz#a935b7fdb86c96b44ea8391fed94b3fa2f33c606" @@ -10267,7 +10610,7 @@ braces@^3.0.1, braces@~3.0.2: dependencies: fill-range "^7.0.1" -brorand@^1.0.1: +brorand@^1.0.1, brorand@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= @@ -13305,6 +13648,19 @@ elliptic@6.5.3, elliptic@^6.4.0, elliptic@^6.5.2, elliptic@^6.5.3: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.0" +elliptic@6.5.4: + version "6.5.4" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" + integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== + dependencies: + bn.js "^4.11.9" + brorand "^1.1.0" + hash.js "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" + emittery@^0.7.1: version "0.7.2" resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.7.2.tgz#25595908e13af0f5674ab419396e2fb394cdfa82" @@ -14427,22 +14783,43 @@ ethereumjs-vm@^2.0.2, ethereumjs-vm@^2.3.4, ethereumjs-vm@^2.6.0: rustbn.js "~0.2.0" safe-buffer "^5.1.1" -ethers@4.0.48: - version "4.0.48" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-4.0.48.tgz#330c65b8133e112b0613156e57e92d9009d8fbbe" - integrity sha512-sZD5K8H28dOrcidzx9f8KYh8083n5BexIO3+SbE4jK83L85FxtpXZBCQdXb8gkg+7sBqomcLhhkU7UHL+F7I2g== - dependencies: - aes-js "3.0.0" - bn.js "^4.4.0" - elliptic "6.5.3" - hash.js "1.1.3" - js-sha3 "0.5.7" - scrypt-js "2.0.4" - setimmediate "1.0.4" - uuid "2.0.1" - xmlhttprequest "1.8.0" - -ethers@5.0.17, ethers@^5.0.8: +ethers@5.0.32, ethers@^5.0.18: + version "5.0.32" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.0.32.tgz#f009970be31d96a589bf0ce597a39c10c7e297a6" + integrity sha512-rORfGWR0HsA4pjKMMcWZorw12DHsXqfIAuPVHJsXt+vI24jvXcVqx+rLsSvgOoLdaCMdxiN5qlIq2+4axKG31g== + dependencies: + "@ethersproject/abi" "5.0.13" + "@ethersproject/abstract-provider" "5.0.10" + "@ethersproject/abstract-signer" "5.0.14" + "@ethersproject/address" "5.0.11" + "@ethersproject/base64" "5.0.9" + "@ethersproject/basex" "5.0.9" + "@ethersproject/bignumber" "5.0.15" + "@ethersproject/bytes" "5.0.11" + "@ethersproject/constants" "5.0.10" + "@ethersproject/contracts" "5.0.12" + "@ethersproject/hash" "5.0.12" + "@ethersproject/hdnode" "5.0.10" + "@ethersproject/json-wallets" "5.0.12" + "@ethersproject/keccak256" "5.0.9" + "@ethersproject/logger" "5.0.10" + "@ethersproject/networks" "5.0.9" + "@ethersproject/pbkdf2" "5.0.9" + "@ethersproject/properties" "5.0.9" + "@ethersproject/providers" "5.0.24" + "@ethersproject/random" "5.0.9" + "@ethersproject/rlp" "5.0.9" + "@ethersproject/sha2" "5.0.9" + "@ethersproject/signing-key" "5.0.11" + "@ethersproject/solidity" "5.0.10" + "@ethersproject/strings" "5.0.10" + "@ethersproject/transactions" "5.0.11" + "@ethersproject/units" "5.0.11" + "@ethersproject/wallet" "5.0.12" + "@ethersproject/web" "5.0.14" + "@ethersproject/wordlists" "5.0.10" + +ethers@^5.0.8: version "5.0.17" resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.0.17.tgz#35dea41f1d09d31f80e0bb4c03cb633cd6673756" integrity sha512-E0MrwCttHgdD6Irfa0B9cNdX0VoWVWLusaj51+EQalkl3pqhV2zGMPncfhYbc9+4nD2u81dbX8Pk9UN5kh/jew== @@ -16324,7 +16701,7 @@ history@^5.0.0: dependencies: "@babel/runtime" "^7.7.6" -hmac-drbg@^1.0.0: +hmac-drbg@^1.0.0, hmac-drbg@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= @@ -26808,11 +27185,6 @@ schema-utils@^3.0.0: ajv "^6.12.5" ajv-keywords "^3.5.2" -scrypt-js@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-2.0.4.tgz#32f8c5149f0797672e551c07e230f834b6af5f16" - integrity sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw== - scrypt-js@3.0.1, scrypt-js@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312" @@ -26977,11 +27349,6 @@ set-value@^2.0.0, set-value@^2.0.1: is-plain-object "^2.0.3" split-string "^3.0.1" -setimmediate@1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.4.tgz#20e81de622d4a02588ce0c8da8973cbcf1d3138f" - integrity sha1-IOgd5iLUoCWIzgyNqJc8vPHTE48= - setimmediate@^1.0.4, setimmediate@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" @@ -29946,11 +30313,6 @@ utils-merge@1.0.1: resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= -uuid@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.1.tgz#c2a30dedb3e535d72ccf82e343941a50ba8533ac" - integrity sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w= - uuid@3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1" @@ -30985,7 +31347,7 @@ xmlhttprequest-ssl@~1.5.4: resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e" integrity sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4= -xmlhttprequest@*, xmlhttprequest@1.8.0, xmlhttprequest@^1.8.0: +xmlhttprequest@*, xmlhttprequest@^1.8.0: version "1.8.0" resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" integrity sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=