diff --git a/.env.local-hyperspace b/.env.local-hyperspace new file mode 100644 index 000000000..da3d40686 --- /dev/null +++ b/.env.local-hyperspace @@ -0,0 +1,68 @@ +## all +NODE_ENV = 'production' +LOG_DESTINATION = 'console' +LOG_LEVEL = 'info' +# e2e-tests +BROWSER_LOG_DESTINATION = 'browser.log' +HEADLESS = 'false' +USE_DAPPETEER = 'true' +WEB3TORRENT_URL = 'http://localhost:3000' +CLOSE_BROWSERS = 'true' + +## web3torrent, xstate-wallet, rps, simple-hub +CHAIN_NETWORK_ID = '3141' + +## simple-hub, e2e +INFURA_API_KEY = '' +RPC_ENDPOINT = https://api.hyperspace.node.glif.io/rpc/v1 + +## simple-hub, rps +FIREBASE_API_KEY = 'AIzaSyAOvhDzJir_El3O6SJ2xQlrpOisnObq6zw' +FIREBASE_PREFIX = 'netlify-hyperspace' +FIREBASE_PROJECT = 'web3torrent-default-rtdb' + +## rps, xstate-wallet, ttt +TARGET_NETWORK = 'hyperspace' + +## web3torrent, rps, ttt +WALLET_URL = 'http://localhost:3055' + +## simple-hub, xstate-wallet +CONSENSUS_APP_ADDRESS = '0xeB1170bf49fac482fA296C98Ac04024e8a2d6519' + +NITRO_ADJUDICATOR_ADDRESS = '0xaA512d99EC808FBf49b1e6491A251f2E75f913Ad' +ETH_ASSET_HOLDER_ADDRESS = '0x6abaBB7e642C794264DAa2a1477B48521AaE1553' + +TRIVIAL_APP_ADDRESS = '0x95900b17Bd2CE12431C99A886FfDC5a451C14344' + +## simple-hub +FIREBASE_URL = https://${FIREBASE_PROJECT}.firebaseio.com/ +# This is a funded address on goerli for the hub. This is NOT the production address/key +HUB_CHAIN_PK = '0xBB72BD0824663E0B52FA3523ACED0F866550BBC1FD600D7F2DA9C45CAC509AE7' +HUB_PARTICIPANT_ID = 'firebase:simple-hub' + +## xstate-wallet +# This is a funded address on goerli for the hub. This is NOT the production address/key +HUB_DESTINATION = '0x000000000000000000000000c4FB59b7fb0D8001Bda6DEA539117664573006c9' +USE_INDEXED_DB = 'true' + +## web3torrent +FUNDING_STRATEGY = 'Virtual' +SINGLE_ASSET_PAYMENT_CONTRACT_ADDRESS = '0x4964f1aE3Ca9Ea0a1e7EF873a379768dBc74F034' +SKIP_PREFLIGHT_CHECK = 'true' +TRACKER_URL = 'localhost:8000' +TRACKER_URL_HTTP_PROTOCOL = 'http' +GENERATE_SOURCEMAP = 'true' + +## rps +RPS_CONTRACT_ADDRESS = '0x' + +## web3torrent-tracker +TRACKER_PORT = 80 + +## ttt +TTT_CONTRACT_ADDRESS = '0x' +FIREBASE_PROJECT_TTT = 'tic-tac-toe-production' + + +ADD_LOGS = true \ No newline at end of file diff --git a/.env.production-hyperspace b/.env.production-hyperspace new file mode 100644 index 000000000..7bb3d450b --- /dev/null +++ b/.env.production-hyperspace @@ -0,0 +1,68 @@ +## all +NODE_ENV = 'production' +LOG_DESTINATION = 'console' +LOG_LEVEL = 'info' +# e2e-tests +BROWSER_LOG_DESTINATION = 'browser.log' +HEADLESS = 'false' +USE_DAPPETEER = 'true' +WEB3TORRENT_URL = 'https://hyperspace-torrent.statechannels.org' +CLOSE_BROWSERS = 'true' + +## web3torrent, xstate-wallet, rps, simple-hub +CHAIN_NETWORK_ID = '3141' + +## simple-hub, e2e +INFURA_API_KEY = '' +RPC_ENDPOINT = https://api.hyperspace.node.glif.io/rpc/v1 + +## simple-hub, rps +FIREBASE_API_KEY = 'AIzaSyAOvhDzJir_El3O6SJ2xQlrpOisnObq6zw' +FIREBASE_PREFIX = 'netlify-hyperspace' +FIREBASE_PROJECT = 'web3torrent-default-rtdb' + +## rps, xstate-wallet, ttt +TARGET_NETWORK = 'hyperspace' + +## web3torrent, rps, ttt +WALLET_URL = 'https://hyperspace-wallet.statechannels.org/' + +## simple-hub, xstate-wallet +CONSENSUS_APP_ADDRESS = '0xeB1170bf49fac482fA296C98Ac04024e8a2d6519' + +NITRO_ADJUDICATOR_ADDRESS = '0xaA512d99EC808FBf49b1e6491A251f2E75f913Ad' +ETH_ASSET_HOLDER_ADDRESS = '0x6abaBB7e642C794264DAa2a1477B48521AaE1553' + +TRIVIAL_APP_ADDRESS = '0x95900b17Bd2CE12431C99A886FfDC5a451C14344' + +## simple-hub +FIREBASE_URL = https://${FIREBASE_PROJECT}.firebaseio.com/ +# This is a funded address on goerli for the hub. This is NOT the production address/key +HUB_CHAIN_PK = '0xBB72BD0824663E0B52FA3523ACED0F866550BBC1FD600D7F2DA9C45CAC509AE7' +HUB_PARTICIPANT_ID = 'firebase:simple-hub' + +## xstate-wallet +# This is a funded address on goerli for the hub. This is NOT the production address/key +HUB_DESTINATION = '0x000000000000000000000000c4FB59b7fb0D8001Bda6DEA539117664573006c9' +USE_INDEXED_DB = 'true' + +## web3torrent +FUNDING_STRATEGY = 'Virtual' +SINGLE_ASSET_PAYMENT_CONTRACT_ADDRESS = '0x4964f1aE3Ca9Ea0a1e7EF873a379768dBc74F034' +SKIP_PREFLIGHT_CHECK = 'true' +TRACKER_URL = 'web3torrent-tracker-hyperspace.herokuapp.com' +TRACKER_URL_HTTP_PROTOCOL = 'https' +GENERATE_SOURCEMAP = 'true' + +## rps +RPS_CONTRACT_ADDRESS = '0x' + +## web3torrent-tracker +TRACKER_PORT = 80 + +## ttt +TTT_CONTRACT_ADDRESS = '0x' +FIREBASE_PROJECT_TTT = 'tic-tac-toe-production' + + +ADD_LOGS = true \ No newline at end of file diff --git a/package.json b/package.json index 4648cd15f..3e9ac7121 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,6 @@ "lint:check": "lerna run lint:check --no-sort --no-bail -- --max-warnings=0", "lint:write": "lerna run lint:write --no-sort --no-bail", "postinstall": "patch-package", - "preinstall": "npx typesync", "prepare": "lerna run --concurrency 8 --stream prepare", "publish": "lerna publish --yes from-package patch", "release:netlify": "lerna run release:netlify --stream -- --auth $NETLIFY_ACCESS_TOKEN --message $(git rev-parse --short HEAD) $([ $(git rev-parse --abbrev-ref HEAD) = master ] && echo --prod)", diff --git a/packages/persistent-seeder/build-push-release.sh b/packages/persistent-seeder/build-push-release.sh index 8b4c4f0de..0705ca036 100755 --- a/packages/persistent-seeder/build-push-release.sh +++ b/packages/persistent-seeder/build-push-release.sh @@ -4,6 +4,6 @@ set -euf -o pipefail BASEDIR=$(dirname "$0") # MAIN SCRIPT -docker build -t registry.heroku.com/persistent-seeder-production/persistent-seeder -f persistent-seeder.dockerfile "$BASEDIR"/../../.. -docker push registry.heroku.com/persistent-seeder-production/persistent-seeder -heroku container:release -a persistent-seeder-staging persistent-seeder +docker build -t registry.heroku.com/persistent-seeder-hyperspace/persistent-seeder -f persistent-seeder.dockerfile "$BASEDIR"/../.. +docker push registry.heroku.com/persistent-seeder-hyperspace/persistent-seeder +heroku container:release -a persistent-seeder-hyperspace persistent-seeder diff --git a/packages/persistent-seeder/package.json b/packages/persistent-seeder/package.json index 99b15458f..d29e46f80 100644 --- a/packages/persistent-seeder/package.json +++ b/packages/persistent-seeder/package.json @@ -31,6 +31,6 @@ "scripts": { "lint:check": "eslint \"**/*.ts\" --cache", "lint:write": "eslint \"**/*.ts\" --fix", - "start": "SC_ENV=persistent-seeder ts-node ./persistent-seeder.ts" + "start": "SC_ENV=production-hyperspace ts-node ./persistent-seeder.ts" } } diff --git a/packages/persistent-seeder/persistent-seeder.dockerfile b/packages/persistent-seeder/persistent-seeder.dockerfile index d91480ff3..94c2a8328 100644 --- a/packages/persistent-seeder/persistent-seeder.dockerfile +++ b/packages/persistent-seeder/persistent-seeder.dockerfile @@ -1,30 +1,28 @@ FROM circleci/node:12.16.3-browsers USER root ENV DISPLAY :99.0 - +ENV SC_ENV=production-hyperspace RUN apt-get install -y xvfb libudev-dev -WORKDIR /statechannels/monorepo +WORKDIR /statechannels/apps # Copy the necessary packages COPY .env.* ./ COPY *.json ./ COPY yarn.lock ./ -COPY ./packages/devtools packages/devtools/ COPY ./packages/persistent-seeder/ packages/persistent-seeder/ -COPY ./packages/channel-provider packages/channel-provider/ -COPY ./packages/client-api-schema packages/client-api-schema/ + COPY ./packages/e2e-tests packages/e2e-tests/ # Add non-root, set permissions, switch user RUN useradd --create-home --no-log-init --shell /bin/bash seeder -RUN chown -R seeder: /statechannels/monorepo +RUN chown -R seeder: /statechannels/apps USER seeder # Install dependencies -RUN yarn +RUN yarn --network-timeout 100000 -WORKDIR /statechannels/monorepo/packages/persistent-seeder +WORKDIR /statechannels/apps/packages/persistent-seeder COPY ./packages/persistent-seeder/entrypoint.sh /entrypoint.sh diff --git a/packages/simple-hub/docker/build-push-release.sh b/packages/simple-hub/docker/build-push-release.sh index b6f3b3eac..76cb6e109 100755 --- a/packages/simple-hub/docker/build-push-release.sh +++ b/packages/simple-hub/docker/build-push-release.sh @@ -2,6 +2,6 @@ set -euf -o pipefail BASEDIR=$(dirname "$0") -docker build -t registry.heroku.com/simple-hub-production/simple-hub -f "$BASEDIR"/simple-hub.dockerfile "$BASEDIR"/../../.. -docker push registry.heroku.com/simple-hub-production/simple-hub -heroku container:release -a simple-hub-production simple-hub +docker build -t registry.heroku.com/simple-hub-hyperspace/simple-hub -f "$BASEDIR"/simple-hub.dockerfile "$BASEDIR"/../../.. +docker push registry.heroku.com/simple-hub-hyperspace/simple-hub +heroku container:release -a simple-hub-hyperspace simple-hub diff --git a/packages/simple-hub/docker/simple-hub.dockerfile b/packages/simple-hub/docker/simple-hub.dockerfile index 6e9e0473e..cba8e1d23 100644 --- a/packages/simple-hub/docker/simple-hub.dockerfile +++ b/packages/simple-hub/docker/simple-hub.dockerfile @@ -1,37 +1,23 @@ FROM counterfactual/statechannels:0.5.13 +FROM --platform=linux/amd64 node:12.16.3 +ENV SC_ENV=production-hyperspace +ENV NODE_ENV=production +WORKDIR /statechannels/apps -WORKDIR /statechannels/monorepo +# TODO: This can be narrowed down to just the simple-hub package and it's dependencies +COPY . /statechannels/apps/ -# ASSUMPTIONS -# -# - That ./packages/simple-hub has been built, so a lib directory exists -# - That ./packages/nitro-protocol has been built, so the .json artifacts exist -# - That ./packages/wire-format has been built, so a lib directory exists -# INSTALL DEPENDENCIES -COPY ./package.json /statechannels/monorepo/ -COPY ./packages/nitro-protocol/package.json packages/nitro-protocol/ -COPY ./packages/simple-hub/package.json packages/simple-hub/ -COPY ./packages/wire-format/package.json packages/wire-format/ - -# Remove the devtools and jest-gas-reporter devDependencies from package.json files (avoid resolution) -RUN sed -ie "/@statechannels\/devtools/d" package.json -RUN sed -ie "/@statechannels\/jest-gas-reporter/d" package.json -RUN sed -ie "/@statechannels\/devtools/d" **/*/package.json -RUN sed -ie "/@statechannels\/jest-gas-reporter/d" **/*/package.json # Install production dependencies for simple-hub -COPY ./yarn.lock /statechannels/monorepo/ -RUN yarn --production --prefer-offline +RUN yarn global add typescript ts-node +RUN yarn + + -# COPY SOURCE -WORKDIR /statechannels/monorepo -COPY .env.* ./ -COPY ./packages/nitro-protocol/ packages/nitro-protocol/ -COPY ./packages/simple-hub/ packages/simple-hub/ -COPY ./packages/wire-format/ packages/wire-format/ -WORKDIR /statechannels/monorepo/packages/simple-hub +WORKDIR /statechannels/apps/packages/simple-hub +RUN yarn build # docker-entrypoint.sh starts a shell that execs the list of arguments in CMD # This works around the following heroku constraint: diff --git a/packages/simple-hub/package.json b/packages/simple-hub/package.json index c3d56df6a..9410b0676 100644 --- a/packages/simple-hub/package.json +++ b/packages/simple-hub/package.json @@ -13,7 +13,7 @@ "async-lock": "1.2.2", "dotenv": "8.2.0", "dotenv-expand": "5.1.0", - "ethers": "5.0.0-beta.191", + "ethers": "5.5.0", "firebase": "7.11.0", "fp-ts": "2.5.3", "lodash": "4.17.19", diff --git a/packages/simple-hub/src/blockchain/eth-asset-holder.ts b/packages/simple-hub/src/blockchain/eth-asset-holder.ts index 5b05126d3..8e53c7721 100644 --- a/packages/simple-hub/src/blockchain/eth-asset-holder.ts +++ b/packages/simple-hub/src/blockchain/eth-asset-holder.ts @@ -1,16 +1,15 @@ import AsyncLock from 'async-lock'; -import {Contract, ContractFactory, ethers, providers, BigNumber, utils} from 'ethers'; +import {Contract, ContractFactory, ethers, providers, BigNumber} from 'ethers'; import {ContractArtifacts} from '@statechannels/nitro-protocol'; import {cHubChainPK, cHubChainDestination} from '../constants'; import {log} from '../logger'; -import {NonceManager} from '@ethersproject/experimental'; import {TransactionResponse} from '@ethersproject/providers'; import * as Sentry from '@sentry/node'; const rpcEndpoint = process.env.RPC_ENDPOINT; const provider = new providers.JsonRpcProvider(rpcEndpoint); const walletWithProvider = new ethers.Wallet(cHubChainPK, provider); -const nonceManager = new NonceManager(walletWithProvider); + let ethAssetHolder: Contract = null; const lock = new AsyncLock(); @@ -41,6 +40,7 @@ async function fund(channelID: string, value: BigNumber): Promise { } await lock.acquire(channelID, async () => { + console.log('SANITYTYUASDAS'); const expectedHeld: BigNumber = await ethAssetHolder.holdings(channelID); if (expectedHeld.gte(value)) { return; @@ -58,7 +58,6 @@ async function fund(channelID: string, value: BigNumber): Promise { expectedHeld.toHexString(), value, { - gasPrice: utils.parseUnits('15', 'gwei'), value: value.sub(expectedHeld) } ); @@ -78,7 +77,7 @@ async function createEthAssetHolder() { try { ethAssetHolderFactory = await ContractFactory.fromSolidity( ContractArtifacts.EthAssetHolderArtifact, - nonceManager + walletWithProvider ); } catch (err) { if (err.message.match('bytecode must be a valid hex string')) { @@ -94,7 +93,7 @@ async function createEthAssetHolder() { {ETH_ASSET_HOLDER_ADDRESS: process.env.ETH_ASSET_HOLDER_ADDRESS}, 'Connected to eth asset holder' ); - + console.log(contract); return contract; } diff --git a/packages/simple-hub/start-dev-server.ts b/packages/simple-hub/start-dev-server.ts index 103dbe7ef..5c2d87564 100644 --- a/packages/simple-hub/start-dev-server.ts +++ b/packages/simple-hub/start-dev-server.ts @@ -7,7 +7,11 @@ import {startServer} from './src/server'; import {log} from './src/logger'; async function setupGanacheAndContracts() { - if (getNetworkName(process.env.CHAIN_NETWORK_ID) === 'development') { + // TODO: Devtools doesn't support hyperspace yet so we manually hav e to check for it + if ( + getNetworkName(process.env.CHAIN_NETWORK_ID || 0) === 'development' && + Number(process.env.CHAIN_NETWORK_ID) !== 3141 + ) { const {deployer} = await setupGanache(Number(process.env.SIMPLE_HUB_DEPLOYER_ACCOUNT_INDEX)); const deployedArtifacts = await deploy(deployer); diff --git a/packages/web3torrent/package.json b/packages/web3torrent/package.json index ef0b1ae0c..8f19b1b9f 100644 --- a/packages/web3torrent/package.json +++ b/packages/web3torrent/package.json @@ -20,8 +20,9 @@ "@material-ui/icons": "4.9.1", "@rimble/connection-banner": "1.2.3", "@sentry/browser": "5.15.5", - "@statechannels/channel-client": "0.0.6", + "@statechannels/channel-client": "0.3.0", "@statechannels/devtools": "0.1.4", + "@statechannels/iframe-channel-provider": "0.3.0-hyperspace-patch-0", "@svgr/webpack": "4.3.2", "@typescript-eslint/eslint-plugin": "2.18.0", "@typescript-eslint/parser": "2.18.0", @@ -36,7 +37,7 @@ "css-loader": "3.4.2", "dotenv": "8.2.0", "dotenv-expand": "5.1.0", - "ethers": "4.0.45", + "ethers": "5.5.0", "eventemitter3": "4.0.0", "file-loader": "5.0.2", "firebase": "7.11.0", @@ -84,7 +85,6 @@ "workbox-webpack-plugin": "5.0.0" }, "devDependencies": { - "@statechannels/channel-provider": "0.0.5", "@storybook/addon-actions": "5.3.9", "@storybook/addon-knobs": "5.2.5", "@storybook/addon-notes": "5.2.5", diff --git a/packages/web3torrent/public/index.html b/packages/web3torrent/public/index.html index f256a45ee..3e7320db8 100644 --- a/packages/web3torrent/public/index.html +++ b/packages/web3torrent/public/index.html @@ -58,46 +58,6 @@ })(); - - <% } %> diff --git a/packages/web3torrent/scripts/start.js b/packages/web3torrent/scripts/start.js index d323b64cf..8657a1c0e 100644 --- a/packages/web3torrent/scripts/start.js +++ b/packages/web3torrent/scripts/start.js @@ -81,7 +81,11 @@ void (async () => { }); process.env.TARGET_NETWORK = getNetworkName(process.env.CHAIN_NETWORK_ID); - + // TODO: Devtools doesn't support hyperspace yet + if (Number(process.env.CHAIN_NETWORK_ID) === 3141) { + process.env.TARGET_NETWORK = 'hyperspace'; + console.log("Using 'hyperspace' as the target network"); + } if (process.env.TARGET_NETWORK === 'development') { // Add contract addresses to process.env if running ganache const {deployer} = await await setupGanache(process.env.WEB3TORRENT_DEPLOYER_ACCOUNT_INDEX); diff --git a/packages/web3torrent/src/App.tsx b/packages/web3torrent/src/App.tsx index 5a8e5239a..98f7d90b5 100644 --- a/packages/web3torrent/src/App.tsx +++ b/packages/web3torrent/src/App.tsx @@ -21,7 +21,7 @@ const log = logger.child({module: 'App'}); const App: React.FC = () => { const [currentNetwork, setCurrentNetwork] = useState( - window.ethereum ? Number(window.ethereum.networkVersion) : undefined + window.ethereum ? Number(window.ethereum.chainId) : undefined ); const [initialized, setInitialized] = useState(false); @@ -44,15 +44,17 @@ const App: React.FC = () => { useEffect(() => { if (window.ethereum && typeof window.ethereum.on === 'function') { const networkChangeListener = chainId => setCurrentNetwork(Number(chainId)); - window.ethereum.on('networkChanged', networkChangeListener); + window.ethereum.on('chainChanged', networkChangeListener); return () => { - window.ethereum.removeListener('networkChanged', networkChangeListener); + window.ethereum.removeListener('chainChanged', networkChangeListener); }; } return () => ({}); }, []); - const ready = currentNetwork === requiredNetwork && initialized; + // TODO: re-enable this when we figure out the proper way to do this + //const ready = currentNetwork === requiredNetwork && initialized; + const ready = initialized; return ( @@ -73,14 +75,12 @@ const App: React.FC = () => { - } /> - /> diff --git a/packages/web3torrent/src/clients/payment-channel-client.ts b/packages/web3torrent/src/clients/payment-channel-client.ts index 8b32e2ab7..e84643ad3 100644 --- a/packages/web3torrent/src/clients/payment-channel-client.ts +++ b/packages/web3torrent/src/clients/payment-channel-client.ts @@ -1,4 +1,4 @@ -import {utils, constants} from 'ethers'; +import {utils, constants, BigNumber} from 'ethers'; import { FakeChannelProvider, ChannelClient, @@ -22,7 +22,7 @@ import { FUNDING_STRATEGY, INITIAL_BUDGET_AMOUNT } from '../constants'; -import {AddressZero} from 'ethers/constants'; + import * as firebase from 'firebase/app'; import 'firebase/database'; import {map, filter, first} from 'rxjs/operators'; @@ -37,8 +37,8 @@ function sanitizeMessageForFirebase(message) { return JSON.parse(JSON.stringify(message)); } -const bigNumberify = utils.bigNumberify; -const FINAL_SETUP_STATE = utils.bigNumberify(3); // for a 2 party ForceMove channel +const bigNumberify = BigNumber.from; +const FINAL_SETUP_STATE = bigNumberify(3); // for a 2 party ForceMove channel const APP_DATA = constants.HashZero; // unused in the SingleAssetPaymentApp export interface Peer { @@ -55,11 +55,11 @@ export const peer = ( ): Peer => ({ signingAddress, outcomeAddress, - balance: utils.bigNumberify(balance).toHexString() + balance: bigNumberify(balance).toHexString() }); export interface ChannelState { channelId: string; - turnNum: utils.BigNumber; + turnNum: BigNumber; status: ChannelStatus; challengeExpirationTime; beneficiary: Peer; @@ -83,7 +83,7 @@ const convertToChannelState = (channelResult: ChannelResult): ChannelState => { return { channelId, - turnNum: utils.bigNumberify(turnNum), + turnNum: bigNumberify(turnNum), status, challengeExpirationTime, beneficiary: peer( @@ -124,7 +124,7 @@ const formatItem = (p: Peer): AllocationItem => ({ destination: p.outcomeAddress }); const formatAllocations = (peers: Peers): Allocations => [ - {token: AddressZero, allocationItems: arrangePeers(peers).map(formatItem)} + {token: '0x00', allocationItems: arrangePeers(peers).map(formatItem)} ]; const subtract = (a: string, b: string) => @@ -151,7 +151,7 @@ if (process.env.FAKE_CHANNEL_PROVIDER === 'true') { } else { // TODO: Replace with injection via other means than direct app import // NOTE: This adds `channelProvider` to the `Window` object - require('@statechannels/channel-provider'); + require('@statechannels/iframe-channel-provider'); } export type ChannelCache = Record; @@ -186,7 +186,6 @@ export class PaymentChannelClient { async initialize() { await this.channelClient.provider.mountWalletComponent(process.env.WALLET_URL); - await this.initializeHubComms(); } async enable() { @@ -196,6 +195,9 @@ export class PaymentChannelClient { log.debug('payment channel client enabled'); + log.debug('Initializing hub comms'); + this.initializeHubComms(); + log.debug('Initialized hub comms'); const doesBudgetExist = async () => { const budget = await this.getBudget(); return !!budget && !_.isEmpty(budget); diff --git a/packages/web3torrent/src/components/domain-budget/DomainBudget.tsx b/packages/web3torrent/src/components/domain-budget/DomainBudget.tsx index bfb149190..c22228aab 100644 --- a/packages/web3torrent/src/components/domain-budget/DomainBudget.tsx +++ b/packages/web3torrent/src/components/domain-budget/DomainBudget.tsx @@ -1,7 +1,6 @@ import React, {useContext} from 'react'; import {DomainBudget as DomainBudgetType} from '@statechannels/client-api-schema'; import {ChannelState} from '../../clients/payment-channel-client'; -import {utils} from 'ethers'; import {Web3TorrentClientContext} from '../../clients/web3torrent-client'; import './DomainBudget.scss'; import {track} from '../../segment-analytics'; @@ -11,16 +10,17 @@ import { LinearProgress, Box, Typography, - LinearProgressProps + LinearProgressProps, + Icon } from '@material-ui/core'; -import HelpOutlineIcon from '@material-ui/icons/HelpOutline'; + import {Blockie} from 'rimble-ui'; import {PieChart} from 'react-minimal-pie-chart'; import {prettyPrintWei} from '../../utils/calculateWei'; -import {BigNumber} from 'ethers/utils'; +import {BigNumber} from 'ethers'; import bigDecimal from 'js-big-decimal'; -const bigNumberify = utils.bigNumberify; +const bigNumberify = BigNumber.from; export type DomainBudgetProps = { channelCache: Record; @@ -107,7 +107,7 @@ export const DomainBudget: React.FC = props => { title="A budget represents the funds that web3torrent is managing on your behalf. These funds can be used to pay for parts of a file." > - +

Your Budget:

diff --git a/packages/web3torrent/src/components/layout/layout-header/LayoutHeader.tsx b/packages/web3torrent/src/components/layout/layout-header/LayoutHeader.tsx index df96bae70..efc812fe4 100644 --- a/packages/web3torrent/src/components/layout/layout-header/LayoutHeader.tsx +++ b/packages/web3torrent/src/components/layout/layout-header/LayoutHeader.tsx @@ -31,7 +31,7 @@ export const LayoutHeader: React.FC = () => { onClick={() => { track('FAQ Nav'); window.open( - 'https://www.notion.so/web3Torrent-FAQ-9f384d9dbadc4828aa81e14fcc360466', + 'https://statechannels.notion.site/web3Torrent-FAQ-hyperspace-2df7fbdc03ce418e8c609d48453abdf7', '_blank)' ); }} diff --git a/packages/web3torrent/src/components/torrent-info/channels-list/ChannelsList.tsx b/packages/web3torrent/src/components/torrent-info/channels-list/ChannelsList.tsx index 28cefc983..ab8616b28 100644 --- a/packages/web3torrent/src/components/torrent-info/channels-list/ChannelsList.tsx +++ b/packages/web3torrent/src/components/torrent-info/channels-list/ChannelsList.tsx @@ -4,7 +4,7 @@ import React, {useContext} from 'react'; import {ChannelCache, ChannelState} from '../../../clients/payment-channel-client'; import './ChannelsList.scss'; import {prettyPrintWei, prettyPrintBytes} from '../../../utils/calculateWei'; -import {utils} from 'ethers'; +import {BigNumber} from 'ethers'; import {TorrentUI} from '../../../types'; import {Blockie} from 'rimble-ui'; import {Badge, Avatar, Tooltip} from '@material-ui/core'; @@ -40,10 +40,10 @@ function channelIdToTableRow( dataTransferred = isBeneficiary ? prettier(wire.uploaded) : prettier(wire.downloaded); } else { // Use the beneficiery balance as an approximate of the file size, when wire is dropped. - dataTransferred = prettyPrintBytes(utils.bigNumberify(channelState.beneficiary.balance)); + dataTransferred = prettyPrintBytes(BigNumber.from(channelState.beneficiary.balance)); } - const weiTransferred = prettyPrintWei(utils.bigNumberify(channelState.beneficiary.balance)); + const weiTransferred = prettyPrintWei(BigNumber.from(channelState.beneficiary.balance)); let connectionStatus; if (wire) { diff --git a/packages/web3torrent/src/constants.ts b/packages/web3torrent/src/constants.ts index 888234f98..9426f1157 100644 --- a/packages/web3torrent/src/constants.ts +++ b/packages/web3torrent/src/constants.ts @@ -1,12 +1,12 @@ import {Status, TorrentUI} from './types'; import {ChannelState, Peer} from './clients/payment-channel-client'; -import {utils} from 'ethers'; +import {BigNumber, utils} from 'ethers'; import path from 'path'; export const VERSION = process.env.VERSION; export const COMMIT_HASH = process.env.COMMIT_HASH; -export const WEI_PER_BYTE = utils.bigNumberify(1); // cost per byte +export const WEI_PER_BYTE = BigNumber.from(1); // cost per byte export const BLOCK_LENGTH = 1 << 14; // Standard request length. export const PEER_TRUST = 5; //amount of trust between peers. It's equivalent to the amount of request to pre-pay. // The recomended value is 5 ( the size of the queue of requests made by the leecher to the seeder) @@ -17,7 +17,7 @@ export const PEER_TRUST = 5; //amount of trust between peers. It's equivalent to // A high BUFFER_REFILL_RATE increases the need for trust, but decreases the number of additional messages and therefore latency // It can also cause a payment to go above the leecher's balance / capabilities -export const INITIAL_SEEDER_BALANCE = utils.bigNumberify(0); // needs to be zero so that depositing works correctly (unidirectional payment channel) +export const INITIAL_SEEDER_BALANCE = BigNumber.from(0); // needs to be zero so that depositing works correctly (unidirectional payment channel) const randomNumberGenerator = (length: number) => { // Programatic way of getting fixed length number, based of https://stackoverflow.com/a/21816636/6569950 @@ -43,7 +43,6 @@ export const fireBaseConfig = process.env.FUNDING_STRATEGY !== 'Virtual' ? undefined : { - apiKey: process.env.FIREBASE_API_KEY, databaseURL: process.env.FIREBASE_URL }; @@ -143,7 +142,7 @@ export const mockSeeder = '0xc631e3bf86075f4d2b45ba974cff4ef5a5f922a0'; const peer = (signingAddress, balance: number): Peer => ({ signingAddress, - balance: utils.bigNumberify(balance).toString(), + balance: BigNumber.from(balance).toString(), outcomeAddress: 'outcome' }); @@ -176,7 +175,7 @@ export {SINGLE_ASSET_PAYMENT_CONTRACT_ADDRESS}; export const FUNDING_STRATEGY = process.env.FUNDING_STRATEGY === 'Direct' ? 'Direct' : 'Virtual'; export const INITIAL_BUDGET_AMOUNT = utils.hexZeroPad( - utils.parseUnits(process.env.INITIAL_BUDGET_AMOUNT ?? '100', 'Mwei').toHexString(), + utils.parseUnits(process.env.INITIAL_BUDGET_AMOUNT ?? '100', 'mwei').toHexString(), 32 ); // Defaults to 100 Mwei, or MAX_FILE_SIZE * 10 diff --git a/packages/web3torrent/src/library/testing/test-utils.ts b/packages/web3torrent/src/library/testing/test-utils.ts index 8c4f08a7f..a52a40913 100644 --- a/packages/web3torrent/src/library/testing/test-utils.ts +++ b/packages/web3torrent/src/library/testing/test-utils.ts @@ -1,7 +1,7 @@ import MemoryChunkStore from 'memory-chunk-store'; import fixtures from 'webtorrent-fixtures'; import {ChannelState, peer} from '../../clients/payment-channel-client'; -import {utils} from 'ethers'; +import {BigNumber} from 'ethers'; import {PaidStreamingWire} from '../types'; import WebTorrentPaidStreamingClient from '../web3torrent-lib'; @@ -57,7 +57,7 @@ export function togglePeerByChannel( export const mockChannelState: ChannelState = { channelId: '0x0', - turnNum: utils.bigNumberify(0), + turnNum: BigNumber.from(0), status: 'running', challengeExpirationTime: '0x0', beneficiary: peer('0x0', '0x0', '0x0'), diff --git a/packages/web3torrent/src/library/web3torrent-lib.ts b/packages/web3torrent/src/library/web3torrent-lib.ts index 918c8d6db..1d6a4f42d 100644 --- a/packages/web3torrent/src/library/web3torrent-lib.ts +++ b/packages/web3torrent/src/library/web3torrent-lib.ts @@ -24,14 +24,14 @@ import { PEER_TRUST } from '../constants'; import {Message} from '@statechannels/client-api-schema'; -import {utils} from 'ethers'; +import {BigNumber, utils} from 'ethers'; import {logger} from '../logger'; import * as rxjs from 'rxjs'; import {track} from '../segment-analytics'; const hexZeroPad = utils.hexZeroPad; -const bigNumberify = utils.bigNumberify; +const bigNumberify = BigNumber.from; const log = logger.child({module: 'web3torrent-lib'}); export * from './types'; diff --git a/packages/web3torrent/src/pages/file/File.tsx b/packages/web3torrent/src/pages/file/File.tsx index cd817f1cd..3341bc377 100644 --- a/packages/web3torrent/src/pages/file/File.tsx +++ b/packages/web3torrent/src/pages/file/File.tsx @@ -20,7 +20,7 @@ import {logger} from '../../logger'; const log = logger.child({module: 'File'}); import {WEI_PER_BYTE} from '../../constants'; -import {bigNumberify} from 'ethers/utils'; +import {BigNumber} from 'ethers'; import {safeUnsubscribe} from '../../utils/react-utls'; import {ChannelState} from '../../clients/payment-channel-client'; @@ -52,7 +52,7 @@ const File: React.FC = props => { const [loading, setLoading] = useState(false); const [errorLabel, setErrorLabel] = useState(''); const [warningState, setWarningState] = useState(''); - const [channels, setChannels] = useState>(undefined); + const [channels, setChannels] = useState>({}); const torrentName = queryParams.get('name'); const torrentLength = Number(queryParams.get('length')); @@ -123,13 +123,13 @@ const File: React.FC = props => { if (showBudget) { if ( (torrent.status === Status.Seeding || torrent.status === Status.Downloading) && - bigNumberify(budget.budgets[0].availableReceiveCapacity).lt(fileCost) + BigNumber.from(budget.budgets[0].availableReceiveCapacity).lt(fileCost) ) { warning = `You're running out of room to receive funds in your budget! You won't be able to upload to new peers!`; } if ( torrent.status === Status.Idle && - bigNumberify(budget.budgets[0].availableSendCapacity).lt(fileCost) + BigNumber.from(budget.budgets[0].availableSendCapacity).lt(fileCost) ) { warning = 'You do not have enough funds in your budget to download this file.'; buttonEnabled = false; @@ -193,7 +193,7 @@ const File: React.FC = props => {

How do I pay for the download?
- When you click "Start Download", you'll be asked to allocate an amount of ETH so + When you click "Start Download", you'll be asked to allocate an amount of tFIL so Web3Torrent can collect payments on your behalf and transfer those funds to peers who have pieces of the file . Unlike other systems, the payment is not upfront; instead, you pay as you download. diff --git a/packages/web3torrent/src/pages/welcome/Welcome.tsx b/packages/web3torrent/src/pages/welcome/Welcome.tsx index d03b5c5a6..c33b16cca 100644 --- a/packages/web3torrent/src/pages/welcome/Welcome.tsx +++ b/packages/web3torrent/src/pages/welcome/Welcome.tsx @@ -21,29 +21,27 @@ const Welcome: React.FC = () => {

WITH MICROPAYMENTS

-

-

- { - track('Sample Download Nav'); - history.push(generateURL(preseededTorrentsUI[0])); - }} - > - Download a sample file - - { - track('Upload Your Own Nav'); - history.push(RoutePath.Upload); - }} - > - Upload your own file - -
-

+
+ { + track('Sample Download Nav'); + history.push(generateURL(preseededTorrentsUI[0])); + }} + > + Download a sample file + + { + track('Upload Your Own Nav'); + history.push(RoutePath.Upload); + }} + > + Upload your own file + +

@@ -54,11 +52,15 @@ const Welcome: React.FC = () => { {' '} client, and uses{' '} - State Channels + State Channel {' '} - technology to achieve seamless value transfer on the ethereum blockchain. Peers can share - files in a torrent swarm and downloaders make micropayments to uploaders for the data they - provide. + technology to achieve seamless value transfer on the Hyperspace FVM test net (connect your + wallet + + HERE + + ). Peers can share files in a torrent swarm and downloaders make micropayments to + uploaders for the data they provide.

diff --git a/packages/web3torrent/src/utils/calculateWei.ts b/packages/web3torrent/src/utils/calculateWei.ts index 92d13ef56..223087a0c 100644 --- a/packages/web3torrent/src/utils/calculateWei.ts +++ b/packages/web3torrent/src/utils/calculateWei.ts @@ -1,4 +1,4 @@ -import {utils} from 'ethers'; +import {BigNumber} from 'ethers'; import prettier from 'prettier-bytes'; import {WEI_PER_BYTE} from '../constants'; import bigDecimal from 'js-big-decimal'; @@ -6,29 +6,29 @@ import bigDecimal from 'js-big-decimal'; export const calculateWei = (fileSize: number | string) => { if (!isNaN(Number(fileSize))) { return WEI_PER_BYTE.mul(fileSize); - } else return utils.bigNumberify(NaN); + } else return BigNumber.from(NaN); }; -export const prettyPrintBytes = (wei: utils.BigNumber): string => { +export const prettyPrintBytes = (wei: BigNumber): string => { const bytes = wei.div(WEI_PER_BYTE); return prettier(bytes.toNumber()); }; -export const prettyPrintWei = (wei: utils.BigNumber): string => { +export const prettyPrintWei = (wei: BigNumber): string => { const PRECISION = 1; - const names = ['wei', 'kwei', 'Mwei', 'Gwei', 'szabo', 'finney', 'ether']; + const names = ['attoTFIL', 'femtoTFIL', 'picoTFIL', 'nanoTFIL', 'microTFIL', 'milliTFIL', 'TFIL']; const decimals = [0, 3, 6, 9, 12, 15, 18]; if (!wei) { return 'unknown'; - } else if (wei.eq(utils.bigNumberify(0))) { - return '0 wei'; + } else if (wei.eq(BigNumber.from(0))) { + return '0 attoTFIL'; } else { let formattedString; decimals.forEach((decimal, index) => { - if (wei.gte(utils.bigNumberify(10).pow(decimal))) { + if (wei.gte(BigNumber.from(10).pow(decimal))) { formattedString = - bigDecimal.divide(wei.toString(), utils.bigNumberify(10).pow(decimal), PRECISION) + + bigDecimal.divide(wei.toString(), BigNumber.from(10).pow(decimal), PRECISION) + ' ' + names[index]; } diff --git a/packages/web3torrent/tracker/build-push-release.sh b/packages/web3torrent/tracker/build-push-release.sh index ec09919e5..428adcd85 100755 --- a/packages/web3torrent/tracker/build-push-release.sh +++ b/packages/web3torrent/tracker/build-push-release.sh @@ -2,8 +2,8 @@ set -euf BASEDIR=$(dirname "$0") -docker build -t registry.heroku.com/web3torrent-tracker-staging/web -f "$BASEDIR"/Dockerfile "$BASEDIR" -docker push registry.heroku.com/web3torrent-tracker-staging/web -heroku container:release -a web3torrent-tracker-staging web +docker build -t registry.heroku.com/web3torrent-tracker-hyperspace/web -f "$BASEDIR"/Dockerfile "$BASEDIR" +docker push registry.heroku.com/web3torrent-tracker-hyperspace/web +heroku container:release -a web3torrent-tracker-hyperspace web # In order to push this to heroku, one must run `heroku container:login` in order to avoid the "no basic auth credentials" error \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 1d91605a9..717e7331e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1619,6 +1619,21 @@ bech32 "^1.1.3" crypto-addr-codec "^0.1.7" +"@ethersproject/abi@5.5.0": + version "5.5.0" + resolved "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.5.0.tgz#fb52820e22e50b854ff15ce1647cc508d6660613" + integrity sha512-loW7I4AohP5KycATvc0MgujU6JyCHPqHdeoo9z3Nr9xEiNioxa65ccdm1+fsoJhkuhdRtfcL8cfyGamz2AxZ5w== + dependencies: + "@ethersproject/address" "^5.5.0" + "@ethersproject/bignumber" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/constants" "^5.5.0" + "@ethersproject/hash" "^5.5.0" + "@ethersproject/keccak256" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + "@ethersproject/strings" "^5.5.0" + "@ethersproject/abi@>=5.0.0-beta.153", "@ethersproject/abi@^5.0.0": version "5.0.1" resolved "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.1.tgz#b6ba2bfb4278fbd6328b608e09741c2475ddad9c" @@ -1634,6 +1649,34 @@ "@ethersproject/properties" "^5.0.0" "@ethersproject/strings" "^5.0.0" +"@ethersproject/abi@^5.5.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz#b3f3e045bbbeed1af3947335c247ad625a44e449" + integrity sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA== + dependencies: + "@ethersproject/address" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + +"@ethersproject/abstract-provider@5.5.0": + version "5.5.0" + resolved "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.5.0.tgz#06aeb4dc7eff72a32d85c232836802843de5a6f5" + integrity sha512-+HI8NKNBoWITakRIxoJlV3W1CtzU9uUVlbuw7b0Lk3JfuXUdz4vZX6RyDQgjfB/cK/CZJlrL8WDcAp9Q0SDjgA== + dependencies: + "@ethersproject/bignumber" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/networks" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + "@ethersproject/transactions" "^5.5.0" + "@ethersproject/web" "^5.5.0" + "@ethersproject/abstract-provider@>=5.0.0-beta.139", "@ethersproject/abstract-provider@^5.0.0": version "5.0.1" resolved "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.0.1.tgz#7d4828a3b4690f95f4462abedcba7aeb118dadd5" @@ -1647,6 +1690,30 @@ "@ethersproject/transactions" "^5.0.0" "@ethersproject/web" "^5.0.0" +"@ethersproject/abstract-provider@^5.5.0", "@ethersproject/abstract-provider@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz#b0a8550f88b6bf9d51f90e4795d48294630cb9ef" + integrity sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/networks" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/web" "^5.7.0" + +"@ethersproject/abstract-signer@5.5.0": + version "5.5.0" + resolved "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.5.0.tgz#590ff6693370c60ae376bf1c7ada59eb2a8dd08d" + integrity sha512-lj//7r250MXVLKI7sVarXAbZXbv9P50lgmJQGr2/is82EwEb8r7HrxsmMqAjTsztMYy7ohrIhGMIml+Gx4D3mA== + dependencies: + "@ethersproject/abstract-provider" "^5.5.0" + "@ethersproject/bignumber" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + "@ethersproject/abstract-signer@>=5.0.0-beta.142", "@ethersproject/abstract-signer@^5.0.0": version "5.0.1" resolved "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.0.1.tgz#92149e771366467e86cc44dd0c49d28f93eaa852" @@ -1658,6 +1725,28 @@ "@ethersproject/logger" "^5.0.0" "@ethersproject/properties" "^5.0.0" +"@ethersproject/abstract-signer@^5.5.0", "@ethersproject/abstract-signer@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz#13f4f32117868452191a4649723cb086d2b596b2" + integrity sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ== + dependencies: + "@ethersproject/abstract-provider" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + +"@ethersproject/address@5.5.0": + version "5.5.0" + resolved "https://registry.npmjs.org/@ethersproject/address/-/address-5.5.0.tgz#bcc6f576a553f21f3dd7ba17248f81b473c9c78f" + integrity sha512-l4Nj0eWlTUh6ro5IbPTgbpT4wRbdH5l8CQf7icF7sb/SI3Nhd9Y9HzhonTSTi6CefI0necIw7LJqQPopPLZyWw== + dependencies: + "@ethersproject/bignumber" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/keccak256" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/rlp" "^5.5.0" + "@ethersproject/address@>=5.0.0-beta.134", "@ethersproject/address@^5.0.0": version "5.0.1" resolved "https://registry.npmjs.org/@ethersproject/address/-/address-5.0.1.tgz#882424fbbec1111abc1aa3482e647a72683c5377" @@ -1670,6 +1759,24 @@ "@ethersproject/rlp" "^5.0.0" bn.js "^4.4.0" +"@ethersproject/address@^5.5.0", "@ethersproject/address@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz#19b56c4d74a3b0a46bfdbb6cfcc0a153fc697f37" + integrity sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/rlp" "^5.7.0" + +"@ethersproject/base64@5.5.0": + version "5.5.0" + resolved "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.5.0.tgz#881e8544e47ed976930836986e5eb8fab259c090" + integrity sha512-tdayUKhU1ljrlHzEWbStXazDpsx4eg1dBXUSI6+mHlYklOXoXF6lZvw8tnD6oVaWfnMxAgRSKROg3cVKtCcppA== + dependencies: + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/base64@>=5.0.0-beta.133", "@ethersproject/base64@^5.0.0": version "5.0.1" resolved "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.0.1.tgz#9f067855f59db94edebb6cd80fbe79033406b317" @@ -1677,6 +1784,21 @@ dependencies: "@ethersproject/bytes" "^5.0.0" +"@ethersproject/base64@^5.5.0", "@ethersproject/base64@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz#ac4ee92aa36c1628173e221d0d01f53692059e1c" + integrity sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ== + dependencies: + "@ethersproject/bytes" "^5.7.0" + +"@ethersproject/basex@5.5.0": + version "5.5.0" + resolved "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.5.0.tgz#e40a53ae6d6b09ab4d977bd037010d4bed21b4d3" + integrity sha512-ZIodwhHpVJ0Y3hUCfUucmxKsWQA5TMnavp5j/UOuDdzZWzJlRmuOjcTMIGgHCYuZmHt36BfiSyQPSRskPxbfaQ== + dependencies: + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + "@ethersproject/basex@^5.0.0": version "5.0.1" resolved "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.0.1.tgz#226ae11bb5c6453398cece08b9548a5f896e24e5" @@ -1685,6 +1807,23 @@ "@ethersproject/bytes" "^5.0.0" "@ethersproject/properties" "^5.0.0" +"@ethersproject/basex@^5.5.0", "@ethersproject/basex@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz#97034dc7e8938a8ca943ab20f8a5e492ece4020b" + integrity sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + +"@ethersproject/bignumber@5.5.0": + version "5.5.0" + resolved "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.5.0.tgz#875b143f04a216f4f8b96245bde942d42d279527" + integrity sha512-6Xytlwvy6Rn3U3gKEc1vP7nR92frHkv6wtVr95LFR3jREXiCPzdWxKQ1cx4JGQBXxcguAwjA8murlYN2TSiEbg== + dependencies: + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + bn.js "^4.11.9" + "@ethersproject/bignumber@>=5.0.0-beta.138", "@ethersproject/bignumber@^5.0.0": version "5.0.4" resolved "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.0.4.tgz#2061a85cfe07d496a005047442fcb3277d371169" @@ -1695,6 +1834,22 @@ "@ethersproject/properties" "^5.0.0" bn.js "^4.4.0" +"@ethersproject/bignumber@^5.5.0", "@ethersproject/bignumber@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz#e2f03837f268ba655ffba03a57853e18a18dc9c2" + integrity sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + bn.js "^5.2.1" + +"@ethersproject/bytes@5.5.0": + version "5.5.0" + resolved "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.5.0.tgz#cb11c526de657e7b45d2e0f0246fb3b9d29a601c" + integrity sha512-ABvc7BHWhZU9PNM/tANm/Qx4ostPGadAuQzWTr3doklZOhDlmcBqclrQe/ZXUIj3K8wC28oYeuRa+A37tX9kog== + dependencies: + "@ethersproject/logger" "^5.5.0" + "@ethersproject/bytes@>=5.0.0-beta.137", "@ethersproject/bytes@^5.0.0": version "5.0.2" resolved "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.0.2.tgz#42aa6e6fca4c594b282ef424dd082b8ffd67058b" @@ -1702,6 +1857,20 @@ dependencies: "@ethersproject/logger" "^5.0.0" +"@ethersproject/bytes@^5.5.0", "@ethersproject/bytes@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz#a00f6ea8d7e7534d6d87f47188af1148d71f155d" + integrity sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A== + dependencies: + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/constants@5.5.0": + version "5.5.0" + resolved "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.5.0.tgz#d2a2cd7d94bd1d58377d1d66c4f53c9be4d0a45e" + integrity sha512-2MsRRVChkvMWR+GyMGY4N1sAX9Mt3J9KykCsgUFd/1mwS0UH1qw+Bv9k1UJb3X3YJYFco9H20pjSlOIfCG5HYQ== + dependencies: + "@ethersproject/bignumber" "^5.5.0" + "@ethersproject/constants@>=5.0.0-beta.133", "@ethersproject/constants@^5.0.0": version "5.0.1" resolved "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.0.1.tgz#51426b1d673661e905418ddeefca1f634866860d" @@ -1709,6 +1878,29 @@ dependencies: "@ethersproject/bignumber" "^5.0.0" +"@ethersproject/constants@^5.5.0", "@ethersproject/constants@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz#df80a9705a7e08984161f09014ea012d1c75295e" + integrity sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + +"@ethersproject/contracts@5.5.0": + version "5.5.0" + resolved "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.5.0.tgz#b735260d4bd61283a670a82d5275e2a38892c197" + integrity sha512-2viY7NzyvJkh+Ug17v7g3/IJC8HqZBDcOjYARZLdzRxrfGlRgmYgl6xPRKVbEzy1dWKw/iv7chDcS83pg6cLxg== + dependencies: + "@ethersproject/abi" "^5.5.0" + "@ethersproject/abstract-provider" "^5.5.0" + "@ethersproject/abstract-signer" "^5.5.0" + "@ethersproject/address" "^5.5.0" + "@ethersproject/bignumber" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/constants" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + "@ethersproject/transactions" "^5.5.0" + "@ethersproject/contracts@>=5.0.0-beta.151", "@ethersproject/contracts@^5.0.0": version "5.0.1" resolved "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.0.1.tgz#b11ad52f98f807e13a4bf0a89e45a2c56db19df3" @@ -1734,6 +1926,20 @@ ethers ">=5.0.0-beta.186" scrypt-js "3.0.1" +"@ethersproject/hash@5.5.0": + version "5.5.0" + resolved "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.5.0.tgz#7cee76d08f88d1873574c849e0207dcb32380cc9" + integrity sha512-dnGVpK1WtBjmnp3mUT0PlU2MpapnwWI0PibldQEq1408tQBAbZpPidkWoVVuNMOl/lISO3+4hXZWCL3YV7qzfg== + dependencies: + "@ethersproject/abstract-signer" "^5.5.0" + "@ethersproject/address" "^5.5.0" + "@ethersproject/bignumber" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/keccak256" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + "@ethersproject/strings" "^5.5.0" + "@ethersproject/hash@>=5.0.0-beta.133", "@ethersproject/hash@^5.0.0": version "5.0.1" resolved "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.0.1.tgz#8190240d250b9442dd25f1e8ec2d66e7d0d38237" @@ -1744,6 +1950,39 @@ "@ethersproject/logger" "^5.0.0" "@ethersproject/strings" "^5.0.0" +"@ethersproject/hash@^5.5.0", "@ethersproject/hash@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz#eb7aca84a588508369562e16e514b539ba5240a7" + integrity sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g== + dependencies: + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/base64" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + +"@ethersproject/hdnode@5.5.0": + version "5.5.0" + resolved "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.5.0.tgz#4a04e28f41c546f7c978528ea1575206a200ddf6" + integrity sha512-mcSOo9zeUg1L0CoJH7zmxwUG5ggQHU1UrRf8jyTYy6HxdZV+r0PBoL1bxr+JHIPXRzS6u/UW4mEn43y0tmyF8Q== + dependencies: + "@ethersproject/abstract-signer" "^5.5.0" + "@ethersproject/basex" "^5.5.0" + "@ethersproject/bignumber" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/pbkdf2" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + "@ethersproject/sha2" "^5.5.0" + "@ethersproject/signing-key" "^5.5.0" + "@ethersproject/strings" "^5.5.0" + "@ethersproject/transactions" "^5.5.0" + "@ethersproject/wordlists" "^5.5.0" + "@ethersproject/hdnode@>=5.0.0-beta.139", "@ethersproject/hdnode@^5.0.0": version "5.0.1" resolved "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.0.1.tgz#28c621c6fdb1a744c870212405e87c64e714e05f" @@ -1762,6 +2001,43 @@ "@ethersproject/transactions" "^5.0.0" "@ethersproject/wordlists" "^5.0.0" +"@ethersproject/hdnode@^5.5.0", "@ethersproject/hdnode@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz#e627ddc6b466bc77aebf1a6b9e47405ca5aef9cf" + integrity sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg== + dependencies: + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/basex" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/pbkdf2" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/sha2" "^5.7.0" + "@ethersproject/signing-key" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/wordlists" "^5.7.0" + +"@ethersproject/json-wallets@5.5.0": + version "5.5.0" + resolved "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.5.0.tgz#dd522d4297e15bccc8e1427d247ec8376b60e325" + integrity sha512-9lA21XQnCdcS72xlBn1jfQdj2A1VUxZzOzi9UkNdnokNKke/9Ya2xA9aIK1SC3PQyBDLt4C+dfps7ULpkvKikQ== + dependencies: + "@ethersproject/abstract-signer" "^5.5.0" + "@ethersproject/address" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/hdnode" "^5.5.0" + "@ethersproject/keccak256" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/pbkdf2" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + "@ethersproject/random" "^5.5.0" + "@ethersproject/strings" "^5.5.0" + "@ethersproject/transactions" "^5.5.0" + aes-js "3.0.0" + scrypt-js "3.0.1" + "@ethersproject/json-wallets@>=5.0.0-beta.138", "@ethersproject/json-wallets@^5.0.0": version "5.0.1" resolved "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.0.1.tgz#a04a728cbf1974fc0a618794ef348335d4522848" @@ -1782,6 +2058,33 @@ scrypt-js "3.0.1" uuid "2.0.1" +"@ethersproject/json-wallets@^5.5.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz#5e3355287b548c32b368d91014919ebebddd5360" + integrity sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g== + dependencies: + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/hdnode" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/pbkdf2" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/random" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + aes-js "3.0.0" + scrypt-js "3.0.1" + +"@ethersproject/keccak256@5.5.0": + version "5.5.0" + resolved "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.5.0.tgz#e4b1f9d7701da87c564ffe336f86dcee82983492" + integrity sha512-5VoFCTjo2rYbBe1l2f4mccaRFN/4VQEYFwwn04aJV2h7qf4ZvI2wFxUE1XOX+snbwCLRzIeikOqtAoPwMza9kg== + dependencies: + "@ethersproject/bytes" "^5.5.0" + js-sha3 "0.8.0" + "@ethersproject/keccak256@>=5.0.0-beta.131", "@ethersproject/keccak256@^5.0.0": version "5.0.1" resolved "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.0.1.tgz#be91c11a8bdf4e94c8b900502d2a46b223fbdeb3" @@ -1790,11 +2093,36 @@ "@ethersproject/bytes" "^5.0.0" js-sha3 "0.5.7" +"@ethersproject/keccak256@^5.5.0", "@ethersproject/keccak256@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz#3186350c6e1cd6aba7940384ec7d6d9db01f335a" + integrity sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg== + dependencies: + "@ethersproject/bytes" "^5.7.0" + js-sha3 "0.8.0" + +"@ethersproject/logger@5.5.0": + version "5.5.0" + resolved "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.5.0.tgz#0c2caebeff98e10aefa5aef27d7441c7fd18cf5d" + integrity sha512-rIY/6WPm7T8n3qS2vuHTUBPdXHl+rGxWxW5okDfo9J4Z0+gRRZT0msvUdIJkE4/HS29GUMziwGaaKO2bWONBrg== + "@ethersproject/logger@>=5.0.0-beta.137", "@ethersproject/logger@^5.0.0": version "5.0.2" resolved "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.0.2.tgz#f24aa14a738a428d711c1828b44d50114a461b8b" integrity sha512-NQe3O1/Nwkcp6bto6hsTvrcCeR/cOGK+RhOMn0Zi2FND6gdWsf1g+5ie8gQ1REqDX4MTGP/Y131dZas985ls/g== +"@ethersproject/logger@^5.5.0", "@ethersproject/logger@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz#6ce9ae168e74fecf287be17062b590852c311892" + integrity sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig== + +"@ethersproject/networks@5.5.0": + version "5.5.0" + resolved "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.5.0.tgz#babec47cab892c51f8dd652ce7f2e3e14283981a" + integrity sha512-KWfP3xOnJeF89Uf/FCJdV1a2aDJe5XTN2N52p4fcQ34QhDqQFkgQKZ39VGtiqUgHcLI8DfT0l9azC3KFTunqtA== + dependencies: + "@ethersproject/logger" "^5.5.0" + "@ethersproject/networks@>=5.0.0-beta.136", "@ethersproject/networks@^5.0.0": version "5.0.1" resolved "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.0.1.tgz#c06ac151d0dfec421c1cb98a9153c109b3117111" @@ -1802,6 +2130,21 @@ dependencies: "@ethersproject/logger" "^5.0.0" +"@ethersproject/networks@^5.5.0", "@ethersproject/networks@^5.7.0": + version "5.7.1" + resolved "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz#118e1a981d757d45ccea6bb58d9fd3d9db14ead6" + integrity sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ== + dependencies: + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/pbkdf2@5.5.0": + version "5.5.0" + resolved "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.5.0.tgz#e25032cdf02f31505d47afbf9c3e000d95c4a050" + integrity sha512-SaDvQFvXPnz1QGpzr6/HToLifftSXGoXrbpZ6BvoZhmx4bNLHrxDe8MZisuecyOziP1aVEwzC2Hasj+86TgWVg== + dependencies: + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/sha2" "^5.5.0" + "@ethersproject/pbkdf2@>=5.0.0-beta.135", "@ethersproject/pbkdf2@^5.0.0": version "5.0.1" resolved "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.0.1.tgz#86d4340f88ebb97254c7e0d26830c24fb45b1642" @@ -1810,6 +2153,21 @@ "@ethersproject/bytes" "^5.0.0" "@ethersproject/sha2" "^5.0.0" +"@ethersproject/pbkdf2@^5.5.0", "@ethersproject/pbkdf2@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz#d2267d0a1f6e123f3771007338c47cccd83d3102" + integrity sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/sha2" "^5.7.0" + +"@ethersproject/properties@5.5.0": + version "5.5.0" + resolved "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.5.0.tgz#61f00f2bb83376d2071baab02245f92070c59995" + integrity sha512-l3zRQg3JkD8EL3CPjNK5g7kMx4qSwiR60/uk5IVjd3oq1MZR5qUg40CNOoEJoX5wc3DyY5bt9EbMk86C7x0DNA== + dependencies: + "@ethersproject/logger" "^5.5.0" + "@ethersproject/properties@>=5.0.0-beta.140", "@ethersproject/properties@^5.0.0": version "5.0.1" resolved "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.0.1.tgz#e1fecbfcb24f23bf3b64a2ac74f2751113d116e0" @@ -1817,6 +2175,38 @@ dependencies: "@ethersproject/logger" "^5.0.0" +"@ethersproject/properties@^5.5.0", "@ethersproject/properties@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz#a6e12cb0439b878aaf470f1902a176033067ed30" + integrity sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw== + dependencies: + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/providers@5.5.0": + version "5.5.0" + resolved "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.5.0.tgz#bc2876a8fe5e0053ed9828b1f3767ae46e43758b" + integrity sha512-xqMbDnS/FPy+J/9mBLKddzyLLAQFjrVff5g00efqxPzcAwXiR+SiCGVy6eJ5iAIirBOATjx7QLhDNPGV+AEQsw== + dependencies: + "@ethersproject/abstract-provider" "^5.5.0" + "@ethersproject/abstract-signer" "^5.5.0" + "@ethersproject/address" "^5.5.0" + "@ethersproject/basex" "^5.5.0" + "@ethersproject/bignumber" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/constants" "^5.5.0" + "@ethersproject/hash" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/networks" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + "@ethersproject/random" "^5.5.0" + "@ethersproject/rlp" "^5.5.0" + "@ethersproject/sha2" "^5.5.0" + "@ethersproject/strings" "^5.5.0" + "@ethersproject/transactions" "^5.5.0" + "@ethersproject/web" "^5.5.0" + bech32 "1.1.4" + ws "7.4.6" + "@ethersproject/providers@>=5.0.0-beta.166", "@ethersproject/providers@^5.0.0": version "5.0.4" resolved "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.0.4.tgz#18f3857651fc479f0606815db07335f311bcabbf" @@ -1839,6 +2229,14 @@ "@ethersproject/web" "^5.0.0" ws "7.2.3" +"@ethersproject/random@5.5.0": + version "5.5.0" + resolved "https://registry.npmjs.org/@ethersproject/random/-/random-5.5.0.tgz#305ed9e033ca537735365ac12eed88580b0f81f9" + integrity sha512-egGYZwZ/YIFKMHcoBUo8t3a8Hb/TKYX8BCBoLjudVCZh892welR3jOxgOmb48xznc9bTcMm7Tpwc1gHC1PFNFQ== + dependencies: + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/random@>=5.0.0-beta.135", "@ethersproject/random@^5.0.0": version "5.0.1" resolved "https://registry.npmjs.org/@ethersproject/random/-/random-5.0.1.tgz#cc5433c54e26faddf7c036e07a4f125d64503edb" @@ -1847,6 +2245,22 @@ "@ethersproject/bytes" "^5.0.0" "@ethersproject/logger" "^5.0.0" +"@ethersproject/random@^5.5.0", "@ethersproject/random@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz#af19dcbc2484aae078bb03656ec05df66253280c" + integrity sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/rlp@5.5.0": + version "5.5.0" + resolved "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.5.0.tgz#530f4f608f9ca9d4f89c24ab95db58ab56ab99a0" + integrity sha512-hLv8XaQ8PTI9g2RHoQGf/WSxBfTB/NudRacbzdxmst5VHAqd1sMibWG7SENzT5Dj3yZ3kJYx+WiRYEcQTAkcYA== + dependencies: + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/rlp@>=5.0.0-beta.132", "@ethersproject/rlp@^5.0.0": version "5.0.1" resolved "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.0.1.tgz#3407b0cb78f82a1a219aecff57578c0558ae26c8" @@ -1855,6 +2269,23 @@ "@ethersproject/bytes" "^5.0.0" "@ethersproject/logger" "^5.0.0" +"@ethersproject/rlp@^5.5.0", "@ethersproject/rlp@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz#de39e4d5918b9d74d46de93af80b7685a9c21304" + integrity sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/sha2@5.5.0": + version "5.5.0" + resolved "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.5.0.tgz#a40a054c61f98fd9eee99af2c3cc6ff57ec24db7" + integrity sha512-B5UBoglbCiHamRVPLA110J+2uqsifpZaTmid2/7W5rbtYVz6gus6/hSDieIU/6gaKIDcOj12WnOdiymEUHIAOA== + dependencies: + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + hash.js "1.1.7" + "@ethersproject/sha2@>=5.0.0-beta.136", "@ethersproject/sha2@^5.0.0": version "5.0.1" resolved "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.0.1.tgz#46b1b06cfd7d557ae4deab4cc85773f7512c4022" @@ -1864,6 +2295,27 @@ "@ethersproject/logger" "^5.0.0" hash.js "1.1.3" +"@ethersproject/sha2@^5.5.0", "@ethersproject/sha2@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz#9a5f7a7824ef784f7f7680984e593a800480c9fb" + integrity sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + hash.js "1.1.7" + +"@ethersproject/signing-key@5.5.0": + version "5.5.0" + resolved "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.5.0.tgz#2aa37169ce7e01e3e80f2c14325f624c29cedbe0" + integrity sha512-5VmseH7qjtNmDdZBswavhotYbWB0bOwKIlOTSlX14rKn5c11QmJwGt4GHeo7NrL/Ycl7uo9AHvEqs5xZgFBTng== + dependencies: + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + bn.js "^4.11.9" + elliptic "6.5.4" + hash.js "1.1.7" + "@ethersproject/signing-key@>=5.0.0-beta.135", "@ethersproject/signing-key@^5.0.0": version "5.0.2" resolved "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.0.2.tgz#ca3cff00d92220fcf7d124e03a139182d627cff3" @@ -1874,6 +2326,30 @@ "@ethersproject/properties" "^5.0.0" elliptic "6.5.3" +"@ethersproject/signing-key@^5.5.0", "@ethersproject/signing-key@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz#06b2df39411b00bc57c7c09b01d1e41cf1b16ab3" + integrity sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + bn.js "^5.2.1" + elliptic "6.5.4" + hash.js "1.1.7" + +"@ethersproject/solidity@5.5.0": + version "5.5.0" + resolved "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.5.0.tgz#2662eb3e5da471b85a20531e420054278362f93f" + integrity sha512-9NgZs9LhGMj6aCtHXhtmFQ4AN4sth5HuFXVvAQtzmm0jpSCNOTGtrHZJAeYTh7MBjRR8brylWZxBZR9zDStXbw== + dependencies: + "@ethersproject/bignumber" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/keccak256" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/sha2" "^5.5.0" + "@ethersproject/strings" "^5.5.0" + "@ethersproject/solidity@>=5.0.0-beta.131", "@ethersproject/solidity@^5.0.0": version "5.0.1" resolved "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.0.1.tgz#df561603ba1c420e2ea309fca746698c55710a6d" @@ -1885,6 +2361,15 @@ "@ethersproject/sha2" "^5.0.0" "@ethersproject/strings" "^5.0.0" +"@ethersproject/strings@5.5.0": + version "5.5.0" + resolved "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.5.0.tgz#e6784d00ec6c57710755699003bc747e98c5d549" + integrity sha512-9fy3TtF5LrX/wTrBaT8FGE6TDJyVjOvXynXJz5MT5azq+E6D92zuKNx7i29sWW2FjVOaWjAsiZ1ZWznuduTIIQ== + dependencies: + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/constants" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/strings@>=5.0.0-beta.136", "@ethersproject/strings@^5.0.0": version "5.0.1" resolved "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.0.1.tgz#a93aafeede100c4aad7f48e25aad1ddc42eeccc7" @@ -1894,6 +2379,30 @@ "@ethersproject/constants" "^5.0.0" "@ethersproject/logger" "^5.0.0" +"@ethersproject/strings@^5.5.0", "@ethersproject/strings@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz#54c9d2a7c57ae8f1205c88a9d3a56471e14d5ed2" + integrity sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/transactions@5.5.0": + version "5.5.0" + resolved "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.5.0.tgz#7e9bf72e97bcdf69db34fe0d59e2f4203c7a2908" + integrity sha512-9RZYSKX26KfzEd/1eqvv8pLauCKzDTub0Ko4LfIgaERvRuwyaNV78mJs7cpIgZaDl6RJui4o49lHwwCM0526zA== + dependencies: + "@ethersproject/address" "^5.5.0" + "@ethersproject/bignumber" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/constants" "^5.5.0" + "@ethersproject/keccak256" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + "@ethersproject/rlp" "^5.5.0" + "@ethersproject/signing-key" "^5.5.0" + "@ethersproject/transactions@>=5.0.0-beta.135", "@ethersproject/transactions@^5.0.0": version "5.0.1" resolved "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.0.1.tgz#61480dc600f4a49eb99627778e3b46b381f8bdd9" @@ -1909,6 +2418,30 @@ "@ethersproject/rlp" "^5.0.0" "@ethersproject/signing-key" "^5.0.0" +"@ethersproject/transactions@^5.5.0", "@ethersproject/transactions@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz#91318fc24063e057885a6af13fdb703e1f993d3b" + integrity sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ== + dependencies: + "@ethersproject/address" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/rlp" "^5.7.0" + "@ethersproject/signing-key" "^5.7.0" + +"@ethersproject/units@5.5.0": + version "5.5.0" + resolved "https://registry.npmjs.org/@ethersproject/units/-/units-5.5.0.tgz#104d02db5b5dc42cc672cc4587bafb87a95ee45e" + integrity sha512-7+DpjiZk4v6wrikj+TCyWWa9dXLNU73tSTa7n0TSJDxkYbV3Yf1eRh9ToMLlZtuctNYu9RDNNy2USq3AdqSbag== + dependencies: + "@ethersproject/bignumber" "^5.5.0" + "@ethersproject/constants" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/units@>=5.0.0-beta.132", "@ethersproject/units@^5.0.0": version "5.0.1" resolved "https://registry.npmjs.org/@ethersproject/units/-/units-5.0.1.tgz#f9fd97d0bfa0c23d55084b428053a29b42082a1f" @@ -1918,6 +2451,27 @@ "@ethersproject/constants" "^5.0.0" "@ethersproject/logger" "^5.0.0" +"@ethersproject/wallet@5.5.0": + version "5.5.0" + resolved "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.5.0.tgz#322a10527a440ece593980dca6182f17d54eae75" + integrity sha512-Mlu13hIctSYaZmUOo7r2PhNSd8eaMPVXe1wxrz4w4FCE4tDYBywDH+bAR1Xz2ADyXGwqYMwstzTrtUVIsKDO0Q== + dependencies: + "@ethersproject/abstract-provider" "^5.5.0" + "@ethersproject/abstract-signer" "^5.5.0" + "@ethersproject/address" "^5.5.0" + "@ethersproject/bignumber" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/hash" "^5.5.0" + "@ethersproject/hdnode" "^5.5.0" + "@ethersproject/json-wallets" "^5.5.0" + "@ethersproject/keccak256" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + "@ethersproject/random" "^5.5.0" + "@ethersproject/signing-key" "^5.5.0" + "@ethersproject/transactions" "^5.5.0" + "@ethersproject/wordlists" "^5.5.0" + "@ethersproject/wallet@>=5.0.0-beta.140", "@ethersproject/wallet@^5.0.0": version "5.0.1" resolved "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.0.1.tgz#595077365c674654e90d3884594a86d70ba07e7e" @@ -1939,6 +2493,17 @@ "@ethersproject/transactions" "^5.0.0" "@ethersproject/wordlists" "^5.0.0" +"@ethersproject/web@5.5.0": + version "5.5.0" + resolved "https://registry.npmjs.org/@ethersproject/web/-/web-5.5.0.tgz#0e5bb21a2b58fb4960a705bfc6522a6acf461e28" + integrity sha512-BEgY0eL5oH4mAo37TNYVrFeHsIXLRxggCRG/ksRIxI2X5uj5IsjGmcNiRN/VirQOlBxcUhCgHhaDLG4m6XAVoA== + dependencies: + "@ethersproject/base64" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + "@ethersproject/strings" "^5.5.0" + "@ethersproject/web@>=5.0.0-beta.138", "@ethersproject/web@^5.0.0": version "5.0.1" resolved "https://registry.npmjs.org/@ethersproject/web/-/web-5.0.1.tgz#b741096b5ad9465a1148b7dba8988c1da16f592a" @@ -1949,6 +2514,28 @@ "@ethersproject/properties" "^5.0.0" "@ethersproject/strings" "^5.0.0" +"@ethersproject/web@^5.5.0", "@ethersproject/web@^5.7.0": + version "5.7.1" + resolved "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz#de1f285b373149bee5928f4eb7bcb87ee5fbb4ae" + integrity sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w== + dependencies: + "@ethersproject/base64" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + +"@ethersproject/wordlists@5.5.0": + version "5.5.0" + resolved "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.5.0.tgz#aac74963aa43e643638e5172353d931b347d584f" + integrity sha512-bL0UTReWDiaQJJYOC9sh/XcRu/9i2jMrzf8VLRmPKx58ckSlOJiohODkECCO50dtLZHcGU6MLXQ4OOrgBwP77Q== + dependencies: + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/hash" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + "@ethersproject/strings" "^5.5.0" + "@ethersproject/wordlists@>=5.0.0-beta.136", "@ethersproject/wordlists@^5.0.0": version "5.0.1" resolved "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.0.1.tgz#4b1ef0894665fc8e7898235d3aa155f1724efa75" @@ -1960,6 +2547,17 @@ "@ethersproject/properties" "^5.0.0" "@ethersproject/strings" "^5.0.0" +"@ethersproject/wordlists@^5.5.0", "@ethersproject/wordlists@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz#8fb2c07185d68c3e09eb3bfd6e779ba2774627f5" + integrity sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + "@evocateur/libnpmaccess@^3.1.2": version "3.1.2" resolved "https://registry.npmjs.org/@evocateur/libnpmaccess/-/libnpmaccess-3.1.2.tgz#ecf7f6ce6b004e9f942b098d92200be4a4b1c845" @@ -3659,8 +4257,6 @@ version "4.9.1" resolved "https://registry.npmjs.org/@material-ui/icons/-/icons-4.9.1.tgz#fdeadf8cb3d89208945b33dbc50c7c616d0bd665" integrity sha512-GBitL3oBWO0hzBhvA9KxqcowRUsA0qzwKkURyC8nppnC3fw54KPKZ+d4V1Eeg/UnDRSzDaI9nGCdel/eh9AQMg== - dependencies: - "@babel/runtime" "^7.4.4" "@material-ui/styles@^4.9.14": version "4.10.0" @@ -4491,16 +5087,18 @@ ethers "4.0.45" eventemitter3 "4.0.0" -"@statechannels/channel-provider@*": - version "0.0.4" - resolved "https://registry.npmjs.org/@statechannels/channel-provider/-/channel-provider-0.0.4.tgz#9a0c635283ddcc12e6080948d761b5b585cf3bbd" - integrity sha512-bVUxPTq38WqftpaNHmvyG9flM8kviqP6/SzGl04497FhlwtbRF4UTGToouzRse76uLWMULe9GEEcAsT1dxSxrg== +"@statechannels/channel-client@0.3.0": + version "0.3.0" + resolved "https://registry.npmjs.org/@statechannels/channel-client/-/channel-client-0.3.0.tgz#c5db5b565973ab6feab5ce111b65900260f4feaf" + integrity sha512-k2VaU1R64byZuBx5n/epfn23rwUlDEISd7hRmcJ7LwZJlUuQX7IqtfhMaLbuMqr9iTSd5lg2kURJH1izYwJG5w== dependencies: + "@statechannels/client-api-schema" "^0.3.0" + "@statechannels/iframe-channel-provider" "^0.3.0" + ethers "4.0.45" eventemitter3 "4.0.0" - guid-typescript "1.0.9" - pino "6.2.0" + loglevel "1.6.8" -"@statechannels/channel-provider@0.0.5": +"@statechannels/channel-provider@*", "@statechannels/channel-provider@0.0.5": version "0.0.5" resolved "https://registry.npmjs.org/@statechannels/channel-provider/-/channel-provider-0.0.5.tgz#bf61011ffe4a01e268909ad2ec460664ddd05e4d" integrity sha512-lL6VXoWL99RziDz9guet9w3kAOVUHUVLXq3NXp8I34oOu+WNVfCqb1+jDPpevrEdTsO+4yh91+qPMaoAco5Dew== @@ -4516,6 +5114,20 @@ dependencies: ajv "6.11.0" +"@statechannels/client-api-schema@0.4.5": + version "0.4.5" + resolved "https://registry.npmjs.org/@statechannels/client-api-schema/-/client-api-schema-0.4.5.tgz#bf293179008d136c833c6a1a8e06e4a814a9d656" + integrity sha512-gclJYSMF6OazrGM+Q/NbQqGR1qlQb2QrufHN43Dz8TR8McZdJOqg98J8b86oOasJ/T9ZfypP9uLapp4jQDyhLw== + dependencies: + ajv "6.11.0" + +"@statechannels/client-api-schema@^0.3.0": + version "0.3.10" + resolved "https://registry.npmjs.org/@statechannels/client-api-schema/-/client-api-schema-0.3.10.tgz#f712c912c21863bbca79d0061ccadcf72eb0cb8f" + integrity sha512-gCoaGQ+PsX9ZwICh+QxBHD29OwWzmW3gKecbUcZcw5GFOTefVF8cnXsPbje9EjSvyWDCapWz3BCtrH9DdI1JIg== + dependencies: + ajv "6.11.0" + "@statechannels/devtools@0.1.4": version "0.1.4" resolved "https://registry.npmjs.org/@statechannels/devtools/-/devtools-0.1.4.tgz#1257825523e93ddd6af91d153bed86562c1eea48" @@ -4540,6 +5152,27 @@ write-json-file "4.2.0" yargs "15.1.0" +"@statechannels/iframe-channel-provider@0.3.0-hyperspace-patch-0": + version "0.3.0-hyperspace-patch-0" + resolved "https://registry.npmjs.org/@statechannels/iframe-channel-provider/-/iframe-channel-provider-0.3.0-hyperspace-patch-0.tgz#3bf13287b2fc6500c86e74f912fc73d5c9006bda" + integrity sha512-PVPu05JdZ2UQOZfGFYO8459KDsmxwTVrqLuayGHQ83LZ6npE0UF3th8b0YOrF++ZVEQfll2Mt4VUj+4k8NF1lQ== + dependencies: + eventemitter3 "4.0.0" + guid-typescript "1.0.9" + pino "6.2.0" + +"@statechannels/iframe-channel-provider@^0.3.0": + version "0.3.17" + resolved "https://registry.npmjs.org/@statechannels/iframe-channel-provider/-/iframe-channel-provider-0.3.17.tgz#e0b335ce4db170aef2a9a0765903376155accc9a" + integrity sha512-xKDjPdRpdwqvykv/PYpNxT6wHo+lQ+SJNxqVhCKFMVPTlxZ5QR8+nhX9FLwqPCvG7G6XXM9/EbBKsc9ZbGtJjQ== + dependencies: + "@statechannels/client-api-schema" "0.4.5" + eventemitter3 "4.0.7" + guid-typescript "1.0.9" + lodash "4.17.20" + normalize-url "4.5.0" + pino "6.2.0" + "@statechannels/jest-gas-reporter@0.0.2": version "0.0.2" resolved "https://registry.npmjs.org/@statechannels/jest-gas-reporter/-/jest-gas-reporter-0.0.2.tgz#6a3ab9bd5af1467d69c7328de8eaddd2dcd570e7" @@ -9714,7 +10347,7 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" -bech32@^1.1.3: +bech32@1.1.4, bech32@^1.1.3: version "1.1.4" resolved "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9" integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ== @@ -9946,11 +10579,21 @@ bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.0, bn.js@^4.11.1, bn.js@^4.11.6, bn.js@^ resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== +bn.js@^4.11.9: + version "4.12.0" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" + integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== + bn.js@^5.1.1: version "5.1.2" resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.1.2.tgz#c9686902d3c9a27729f43ab10f9d79c2004da7b0" integrity sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA== +bn.js@^5.2.1: + version "5.2.1" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" + integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== + bn@^1.0.1: version "1.0.5" resolved "https://registry.npmjs.org/bn/-/bn-1.0.5.tgz#fdf5fdeede044884ea7ee62adff763ee99144fa5" @@ -10727,7 +11370,7 @@ broccoli@3.3.3, broccoli@^3.2.0: underscore.string "^3.2.2" watch-detector "^1.0.0" -brorand@^1.0.1: +brorand@^1.0.1, brorand@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= @@ -14065,6 +14708,19 @@ elliptic@6.5.3, elliptic@^6.0.0, elliptic@^6.4.0, elliptic@^6.5.2: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.0" +elliptic@6.5.4: + version "6.5.4" + resolved "https://registry.npmjs.org/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" + ember-assign-polyfill@^2.5.0, ember-assign-polyfill@^2.6.0: version "2.7.0" resolved "https://registry.npmjs.org/ember-assign-polyfill/-/ember-assign-polyfill-2.7.0.tgz#21aeef798e61904362e469a8ba2abc8d45f505ae" @@ -15883,6 +16539,42 @@ ethers@5.0.0-beta.191: "@ethersproject/web" ">=5.0.0-beta.138" "@ethersproject/wordlists" ">=5.0.0-beta.136" +ethers@5.5.0: + version "5.5.0" + resolved "https://registry.npmjs.org/ethers/-/ethers-5.5.0.tgz#c600abe5c7f3b10ee25de1cb82bcdf30ee8bcafa" + integrity sha512-Z9SqECMNhkc6cA29KI+epfXB3NPaRZJL9Eo2KfO6pU/n7BKRDey+gTRwzC6/3OPX3ySItC/mltWB01aT8AdNsw== + dependencies: + "@ethersproject/abi" "5.5.0" + "@ethersproject/abstract-provider" "5.5.0" + "@ethersproject/abstract-signer" "5.5.0" + "@ethersproject/address" "5.5.0" + "@ethersproject/base64" "5.5.0" + "@ethersproject/basex" "5.5.0" + "@ethersproject/bignumber" "5.5.0" + "@ethersproject/bytes" "5.5.0" + "@ethersproject/constants" "5.5.0" + "@ethersproject/contracts" "5.5.0" + "@ethersproject/hash" "5.5.0" + "@ethersproject/hdnode" "5.5.0" + "@ethersproject/json-wallets" "5.5.0" + "@ethersproject/keccak256" "5.5.0" + "@ethersproject/logger" "5.5.0" + "@ethersproject/networks" "5.5.0" + "@ethersproject/pbkdf2" "5.5.0" + "@ethersproject/properties" "5.5.0" + "@ethersproject/providers" "5.5.0" + "@ethersproject/random" "5.5.0" + "@ethersproject/rlp" "5.5.0" + "@ethersproject/sha2" "5.5.0" + "@ethersproject/signing-key" "5.5.0" + "@ethersproject/solidity" "5.5.0" + "@ethersproject/strings" "5.5.0" + "@ethersproject/transactions" "5.5.0" + "@ethersproject/units" "5.5.0" + "@ethersproject/wallet" "5.5.0" + "@ethersproject/web" "5.5.0" + "@ethersproject/wordlists" "5.5.0" + ethers@>=5.0.0-beta.186: version "5.0.5" resolved "https://registry.npmjs.org/ethers/-/ethers-5.0.5.tgz#09b37c27d3b7d93c084af7ec4cad72ca8cfa5b7a" @@ -15986,6 +16678,11 @@ eventemitter3@4.0.0: resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.0.tgz#d65176163887ee59f386d64c82610b696a4a74eb" integrity sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg== +eventemitter3@4.0.7: + version "4.0.7" + resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + eventemitter3@^4.0.0: version "4.0.4" resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz#b5463ace635a083d018bdc7c917b4c5f10a85384" @@ -18084,7 +18781,7 @@ hash.js@1.1.3: inherits "^2.0.3" minimalistic-assert "^1.0.0" -hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: +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.npmjs.org/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== @@ -18186,7 +18883,7 @@ history@^4.9.0: tiny-warning "^1.0.0" value-equal "^1.0.1" -hmac-drbg@^1.0.0: +hmac-drbg@^1.0.0, hmac-drbg@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= @@ -21301,6 +21998,11 @@ lodash@4.17.19, "lodash@>=3.5 <5", lodash@^4.0.0, lodash@^4.0.1, lodash@^4.15.0, resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b" integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ== +lodash@4.17.20: + version "4.17.20" + resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" + integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== + log-process-errors@^5.0.3: version "5.1.2" resolved "https://registry.npmjs.org/log-process-errors/-/log-process-errors-5.1.2.tgz#5d0f195309d9c725a010587527ade00db1fe1646" @@ -21344,7 +22046,7 @@ log-update@^2.3.0: cli-cursor "^2.0.0" wrap-ansi "^3.0.1" -loglevel@^1.6.6: +loglevel@1.6.8, loglevel@^1.6.6: version "1.6.8" resolved "https://registry.npmjs.org/loglevel/-/loglevel-1.6.8.tgz#8a25fb75d092230ecd4457270d80b54e28011171" integrity sha512-bsU7+gc9AJ2SqpzxwU3+1fedl8zAntbtC5XYlt3s2j1hJcn2PsXSmgN8TaLG/J1/2mod4+cE/3vNL70/c1RNCA== @@ -22995,16 +23697,16 @@ normalize-url@2.0.1: query-string "^5.0.1" sort-keys "^2.0.0" +normalize-url@4.5.0, normalize-url@^4.1.0: + version "4.5.0" + resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" + integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== + normalize-url@^3.0.0, normalize-url@^3.3.0: version "3.3.0" resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== -normalize-url@^4.1.0: - version "4.5.0" - resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" - integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== - normalize.css@^8.0.1: version "8.0.1" resolved "https://registry.npmjs.org/normalize.css/-/normalize.css-8.0.1.tgz#9b98a208738b9cc2634caacbc42d131c97487bf3" @@ -32289,6 +32991,11 @@ ws@7.2.3: resolved "https://registry.npmjs.org/ws/-/ws-7.2.3.tgz#a5411e1fb04d5ed0efee76d26d5c46d830c39b46" integrity sha512-HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ== +ws@7.4.6: + version "7.4.6" + resolved "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" + integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== + ws@^3.0.0: version "3.3.3" resolved "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2"