diff --git a/.eslintrc b/.eslintrc index 4e457674..37d11b68 100644 --- a/.eslintrc +++ b/.eslintrc @@ -6,7 +6,8 @@ ], "globals": { "LOCAL": true, - "COMMITHASH": true + "COMMITHASH": true, + "VERSION": true }, "env": { "browser": true, diff --git a/CHANGELOG.md b/CHANGELOG.md index d772cfce..440a3eb6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,22 @@ +## 1.1.0-beta +__added__ +- Ripple support enabled +- responsive sidebar +- QR code scanner in send form +- clear send form button + +__changed__ +- update dependencies +- upgrade babel7 +- split icons for T1 and TT +- device header styles +- input styles +- split sign and verify title + +__fixed__ +- beta disclaimer wrapper position +- sidebar scrollbar + ## 1.0.3-beta __added__ - Ethereum: sign & verify tab diff --git a/README.md b/README.md index f016fcf9..2162d8c7 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,11 @@ # Trezor Wallet +You can try this wallet live [HERE](https://beta-wallet.trezor.io/next/) + To install dependencies run `npm install` or `yarn` To start locally run `npm run dev` or `yarn run dev` To build the project run `npm run build` or `yarn run build` -## Docker -- Build `./scripts/docker-build.sh` -- Run `./scripts/docker-run.sh` - ## Project structure The project is divided into two parts - data that are used when compiling the project and data that aren't. diff --git a/package.json b/package.json index f825bf4a..d1493b21 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "trezor-wallet", - "version": "1.0.0", + "version": "1.0.3-beta", "author": "TREZOR ", "description": "", "bin": { @@ -31,16 +31,16 @@ }, "dependencies": { "@babel/polyfill": "^7.2.5", - "bignumber.js": "2.4.0", + "bignumber.js": "8.0.2", "color-hash": "^1.0.3", "commander": "^2.19.0", - "connected-react-router": "^6.2.2", + "connected-react-router": "6.0.0", "copy-webpack-plugin": "^4.6.0", "cross-env": "^5.2.0", "date-fns": "^1.30.1", "ethereumjs-tx": "^1.3.7", "ethereumjs-units": "^0.2.0", - "ethereumjs-util": "^5.2.0", + "ethereumjs-util": "^6.0.0", "express": "^4.16.4", "friendly-errors-webpack-plugin": "^1.7.0", "git-revision-webpack-plugin": "^3.0.3", @@ -54,8 +54,8 @@ "raf": "^3.4.1", "raven-js": "^3.27.0", "rc-tooltip": "^3.7.3", - "react": "^16.8.0", - "react-dom": "^16.8.0", + "react": "^16.8.1", + "react-dom": "^16.8.1", "react-hot-loader": "^4.6.5", "react-intl": "^2.8.0", "react-json-view": "^1.19.1", @@ -80,8 +80,8 @@ "trezor-bridge-communicator": "1.0.2", "trezor-connect": "7.0.0-beta.2", "wallet-address-validator": "^0.2.4", - "web3": "1.0.0-beta.41", - "webpack": "^4.29.1", + "web3": "1.0.0-beta.43", + "webpack": "^4.29.3", "webpack-build-notifier": "^0.1.30", "webpack-bundle-analyzer": "^3.0.3", "whatwg-fetch": "^3.0.0", diff --git a/src/actions/SelectedAccountActions.js b/src/actions/SelectedAccountActions.js index 868b7155..c71c0457 100644 --- a/src/actions/SelectedAccountActions.js +++ b/src/actions/SelectedAccountActions.js @@ -8,6 +8,7 @@ import * as TOKEN from 'actions/constants/token'; import * as PENDING from 'actions/constants/pendingTx'; import * as reducerUtils from 'reducers/utils'; +import { getVersion } from 'utils/device'; import { initialState } from 'reducers/SelectedAccountReducer'; import type { @@ -51,10 +52,11 @@ const getExceptionPage = (state: State, selectedAccount: SelectedAccountState): shortcut: 'not-used', }; } + if (discovery.fwNotSupported) { return { type: 'fwNotSupported', - title: `${network.name} is not supported with Trezor ${device.features.model}`, + title: `${network.name} is not supported with Trezor ${getVersion(device)}`, message: 'Find more information on Trezor Wiki.', shortcut: network.shortcut, }; diff --git a/src/actions/ethereum/SendFormValidationActions.js b/src/actions/ethereum/SendFormValidationActions.js index 16a30c7f..66d787d4 100644 --- a/src/actions/ethereum/SendFormValidationActions.js +++ b/src/actions/ethereum/SendFormValidationActions.js @@ -226,16 +226,16 @@ export const amountValidation = ($state: State): PayloadAction => (dispat if (!state.amount.match(decimalRegExp)) { state.errors.amount = `Maximum ${token.decimals} decimals allowed`; - } else if (new BigNumber(state.total).greaterThan(account.balance)) { + } else if (new BigNumber(state.total).isGreaterThan(account.balance)) { state.errors.amount = `Not enough ${state.networkSymbol} to cover transaction fee`; - } else if (new BigNumber(state.amount).greaterThan(new BigNumber(token.balance).minus(pendingAmount))) { + } else if (new BigNumber(state.amount).isGreaterThan(new BigNumber(token.balance).minus(pendingAmount))) { state.errors.amount = 'Not enough funds'; - } else if (new BigNumber(state.amount).lessThanOrEqualTo('0')) { + } else if (new BigNumber(state.amount).isLessThanOrEqualTo('0')) { state.errors.amount = 'Amount is too low'; } } else if (!state.amount.match(ETH_18_RE)) { state.errors.amount = 'Maximum 18 decimals allowed'; - } else if (new BigNumber(state.total).greaterThan(new BigNumber(account.balance).minus(pendingAmount))) { + } else if (new BigNumber(state.total).isGreaterThan(new BigNumber(account.balance).minus(pendingAmount))) { state.errors.amount = 'Not enough funds'; } } @@ -261,9 +261,9 @@ export const gasLimitValidation = ($state: State): PayloadAction => (disp state.errors.gasLimit = 'Gas limit is not a number'; } else { const gl: BigNumber = new BigNumber(gasLimit); - if (gl.lessThan(1)) { + if (gl.isLessThan(1)) { state.errors.gasLimit = 'Gas limit is too low'; - } else if (gl.lessThan(state.currency !== state.networkSymbol ? network.defaultGasLimitTokens : network.defaultGasLimit)) { + } else if (gl.isLessThan(state.currency !== state.networkSymbol ? network.defaultGasLimitTokens : network.defaultGasLimit)) { state.warnings.gasLimit = 'Gas limit is below recommended'; } } @@ -284,9 +284,9 @@ export const gasPriceValidation = ($state: State): PayloadAction => (): S state.errors.gasPrice = 'Gas price is not a number'; } else { const gp: BigNumber = new BigNumber(gasPrice); - if (gp.greaterThan(1000)) { + if (gp.isGreaterThan(1000)) { state.warnings.gasPrice = 'Gas price is too high'; - } else if (gp.lessThanOrEqualTo('0')) { + } else if (gp.isLessThanOrEqualTo('0')) { state.errors.gasPrice = 'Gas price is too low'; } } @@ -312,9 +312,9 @@ export const nonceValidation = ($state: State): PayloadAction => (dispatc state.errors.nonce = 'Nonce is not a valid number'; } else { const n: BigNumber = new BigNumber(nonce); - if (n.lessThan(account.nonce)) { + if (n.isLessThan(account.nonce)) { state.warnings.nonce = 'Nonce is lower than recommended'; - } else if (n.greaterThan(account.nonce)) { + } else if (n.isGreaterThan(account.nonce)) { state.warnings.nonce = 'Nonce is greater than recommended'; } } @@ -347,7 +347,12 @@ export const calculateFee = (gasPrice: string, gasLimit: string): string => { export const calculateTotal = (amount: string, gasPrice: string, gasLimit: string): string => { try { - return new BigNumber(amount).plus(calculateFee(gasPrice, gasLimit)).toFixed(); + const bAmount = new BigNumber(amount); + // BigNumber() returns NaN on non-numeric string + if (bAmount.isNaN()) { + throw new Error('Amount is not a number'); + } + return bAmount.plus(calculateFee(gasPrice, gasLimit)).toFixed(); } catch (error) { return '0'; } @@ -358,7 +363,7 @@ export const calculateMaxAmount = (balance: BigNumber, gasPrice: string, gasLimi // TODO - minus pendings const fee = calculateFee(gasPrice, gasLimit); const max = balance.minus(fee); - if (max.lessThan(0)) return '0'; + if (max.isLessThan(0)) return '0'; return max.toFixed(); } catch (error) { return '0'; diff --git a/src/actions/ripple/SendFormValidationActions.js b/src/actions/ripple/SendFormValidationActions.js index 4ee3a2f9..6ef5bbca 100644 --- a/src/actions/ripple/SendFormValidationActions.js +++ b/src/actions/ripple/SendFormValidationActions.js @@ -236,7 +236,7 @@ const amountValidation = ($state: State): PayloadAction => (dispatch: Dis const pendingAmount: BigNumber = getPendingAmount(pending, state.networkSymbol); if (!state.amount.match(XRP_6_RE)) { state.errors.amount = 'Maximum 6 decimals allowed'; - } else if (new BigNumber(state.total).greaterThan(new BigNumber(account.balance).minus(pendingAmount))) { + } else if (new BigNumber(state.total).isGreaterThan(new BigNumber(account.balance).minus(pendingAmount))) { state.errors.amount = 'Not enough funds'; } } @@ -271,9 +271,9 @@ export const feeValidation = ($state: State): PayloadAction => (dispatch: state.errors.fee = 'Fee must be an absolute number'; } else { const gl: BigNumber = new BigNumber(fee); - if (gl.lessThan(network.fee.minFee)) { + if (gl.isLessThan(network.fee.minFee)) { state.errors.fee = 'Fee is below recommended'; - } else if (gl.greaterThan(network.fee.maxFee)) { + } else if (gl.isGreaterThan(network.fee.maxFee)) { state.errors.fee = 'Fee is above recommended'; } } @@ -300,7 +300,12 @@ export const destinationTagValidation = ($state: State): PayloadAction => const calculateTotal = (amount: string, fee: string): string => { try { - return new BigNumber(amount).plus(fee).toFixed(); + const bAmount = new BigNumber(amount); + // BigNumber() returns NaN on non-numeric string + if (bAmount.isNaN()) { + throw new Error('Amount is not a number'); + } + return bAmount.plus(fee).toFixed(); } catch (error) { return '0'; } @@ -310,7 +315,7 @@ const calculateMaxAmount = (balance: BigNumber, fee: string): string => { try { // TODO - minus pendings const max = balance.minus(fee); - if (max.lessThan(0)) return '0'; + if (max.isLessThan(0)) return '0'; return max.toFixed(); } catch (error) { return '0'; diff --git a/src/components/Footer/index.js b/src/components/Footer/index.js index b9df79fc..7dfd026c 100644 --- a/src/components/Footer/index.js +++ b/src/components/Footer/index.js @@ -12,8 +12,6 @@ import colors from 'config/colors'; import { FONT_SIZE } from 'config/variables'; import * as LogActions from 'actions/LogActions'; -declare var COMMITHASH: string; - type Props = { opened: boolean, isLanding: boolean, @@ -60,7 +58,7 @@ const Right = styled.div` const Footer = ({ opened, toggle, isLanding }: Props) => ( - © {getYear(new Date())} + © {getYear(new Date())} SatoshiLabs Terms { opened ? 'Hide Log' : 'Show Log' } diff --git a/src/components/Header/index.js b/src/components/Header/index.js index 5c80068b..26283f19 100644 --- a/src/components/Header/index.js +++ b/src/components/Header/index.js @@ -5,6 +5,9 @@ import styled from 'styled-components'; import { NavLink } from 'react-router-dom'; import colors from 'config/colors'; import { SCREEN_SIZE } from 'config/variables'; +import Icon from 'components/Icon'; +import icons from 'config/icons'; + import type { toggleSidebar as toggleSidebarType } from 'actions/WalletActions'; import LanguagePicker from './components/LanguagePicker/Container'; @@ -14,12 +17,6 @@ const Wrapper = styled.header` background: ${colors.HEADER}; overflow: hidden; z-index: 200; - - svg { - fill: ${colors.WHITE}; - height: 28px; - width: 100px; - } `; const LayoutWrapper = styled.div` @@ -50,21 +47,32 @@ const MenuToggler = styled.div` white-space: nowrap; color: ${colors.WHITE}; align-self: center; + align-items: center; cursor: pointer; user-select: none; padding: 10px 0px; transition: all .1s ease-in; @media screen and (max-width: ${SCREEN_SIZE.SM}) { - display: initial; + display: flex; } `; +const TogglerText = styled.div` + +`; + const Logo = styled.div` flex: 1; justify-content: flex-start; display: flex; + svg { + fill: ${colors.WHITE}; + height: 28px; + width: 100px; + } + @media screen and (max-width: ${SCREEN_SIZE.SM}) { flex: 1 0 33%; justify-content: center; @@ -127,7 +135,29 @@ const Header = ({ sidebarEnabled, sidebarOpened, toggleSidebar }: Props) => ( - { sidebarEnabled && {sidebarOpened ? '✕ Close' : '☰ Menu'}} + { sidebarEnabled && ( + + {sidebarOpened ? ( + <> + + Close + + ) : ( + <> + + Menu + + )} + + )} diff --git a/src/components/Tooltip/index.js b/src/components/Tooltip/index.js index 9bd4ec68..17cb2344 100644 --- a/src/components/Tooltip/index.js +++ b/src/components/Tooltip/index.js @@ -68,7 +68,7 @@ Tooltip.propTypes = { PropTypes.string, ]), readMoreLink: PropTypes.string, - enterDelayMs: PropTypes.bool, + enterDelayMs: PropTypes.number, }; export default Tooltip; diff --git a/src/components/images/TrezorImage/index.js b/src/components/images/TrezorImage/index.js index abc6fdf0..0e0c716b 100644 --- a/src/components/images/TrezorImage/index.js +++ b/src/components/images/TrezorImage/index.js @@ -15,8 +15,9 @@ const Img = styled.img` `; const TrezorImage = ({ model }: Props) => { + const imageName = model === 'One' ? 1 : model; // $FlowIssue: `require` must be a string literal. - const src = require(`./images/trezor-${model}.png`); // eslint-disable-line + const src = require(`./images/trezor-${imageName}.png`); // eslint-disable-line return ( diff --git a/src/components/modals/QrModal/index.js b/src/components/modals/QrModal/index.js index 1eef2b10..2666584a 100644 --- a/src/components/modals/QrModal/index.js +++ b/src/components/modals/QrModal/index.js @@ -38,11 +38,18 @@ const CameraPlaceholder = styled(P)` padding: 10px 0; `; -const Error = styled(P)` - text-align: center; +const Error = styled.div` padding: 10px 0; +`; + +const ErrorTitle = styled(P)` + text-align: center; color: ${colors.ERROR_PRIMARY}; `; +const ErrorMessage = styled.span` + text-align: center; + color: ${colors.TEXT_PRIMARY}; +`; const StyledQrReader = styled(QrReader)` padding: 10px 0; @@ -95,14 +102,26 @@ class QrModal extends React.Component { } handleError = (err: any) => { - console.log(err); - this.setState({ - error: err, - }); - + // log thrown error + console.error(err); if (this.props.onError) { this.props.onError(err); } + + if (err.name === 'NotAllowedError' || err.name === 'PermissionDeniedError' + || err.name === 'NotReadableError' || err.name === 'TrackStartError') { + this.setState({ + error: 'Permission to access the camera was denied.', + }); + } else if (err.name === 'NotFoundError' || err.name === 'DevicesNotFoundError') { + this.setState({ + error: 'The camera was not recognized.', + }); + } else { + this.setState({ + error: 'Unknown error. See console logs for details.', + }); + } } handleCancel = () => { @@ -123,29 +142,25 @@ class QrModal extends React.Component { /> -

Scan an address from a QR code

- {!this.state.readerLoaded && ( - - Waiting for camera... - - ) - } -
- - +

Scan QR code

+ {!this.state.readerLoaded && !this.state.error && Waiting for camera...} {this.state.error && ( - {this.state.error.toString()} + Oops! Something went wrong! + {this.state.error.toString()} )}
+ {!this.state.error && ( + + )}
); } diff --git a/src/components/notifications/Context/components/Static/index.js b/src/components/notifications/Context/components/Static/index.js index af8b09d5..912569cf 100644 --- a/src/components/notifications/Context/components/Static/index.js +++ b/src/components/notifications/Context/components/Static/index.js @@ -19,7 +19,7 @@ export default (props: Props) => { const { reserve, balance } = account; const bigBalance = new Bignumber(balance); const bigReserve = new Bignumber(reserve); - if (bigBalance.lessThan(bigReserve)) { + if (bigBalance.isLessThan(bigReserve)) { notifications.push( = [ pattern: '/', fields: [], }, + { + name: 'landing-version', + pattern: '/version', + fields: ['version'], + }, { name: 'landing-bridge', pattern: '/bridge', diff --git a/src/utils/__tests__/__snapshots__/device.test.js.snap b/src/utils/__tests__/__snapshots__/device.test.js.snap index 8ce5ffe6..d7109016 100644 --- a/src/utils/__tests__/__snapshots__/device.test.js.snap +++ b/src/utils/__tests__/__snapshots__/device.test.js.snap @@ -44,15 +44,15 @@ exports[`device utils get status name 7`] = `"Disconnected"`; exports[`device utils get status name 8`] = `"Unavailable"`; -exports[`device utils get version 1`] = `"1"`; +exports[`device utils get version 1`] = `"One"`; -exports[`device utils get version 2`] = `"1"`; +exports[`device utils get version 2`] = `"One"`; -exports[`device utils get version 3`] = `"1"`; +exports[`device utils get version 3`] = `"One"`; -exports[`device utils get version 4`] = `"1"`; +exports[`device utils get version 4`] = `"One"`; -exports[`device utils get version 5`] = `"1"`; +exports[`device utils get version 5`] = `"One"`; exports[`device utils get version 6`] = `"T"`; diff --git a/src/utils/device.js b/src/utils/device.js index e0cada08..b1b4db72 100644 --- a/src/utils/device.js +++ b/src/utils/device.js @@ -104,7 +104,7 @@ export const getVersion = (device: TrezorDevice): string => { if (device.features && device.features.major_version > 1) { version = 'T'; } else { - version = '1'; + version = 'One'; } return version; }; diff --git a/src/utils/formatUtils.js b/src/utils/formatUtils.js index a273959c..37231d7c 100644 --- a/src/utils/formatUtils.js +++ b/src/utils/formatUtils.js @@ -56,7 +56,12 @@ export const hexToString = (hex: string): string => { export const toDecimalAmount = (amount: string | number, decimals: number): string => { try { - return new BigNumber(amount).div(10 ** decimals).toString(10); + const bAmount = new BigNumber(amount); + // BigNumber() returns NaN on non-numeric string + if (bAmount.isNaN()) { + throw new Error('Amount is not a number'); + } + return bAmount.div(10 ** decimals).toString(10); } catch (error) { return '0'; } @@ -64,7 +69,12 @@ export const toDecimalAmount = (amount: string | number, decimals: number): stri export const fromDecimalAmount = (amount: string | number, decimals: number): string => { try { - return new BigNumber(amount).times(10 ** decimals).toString(10); + const bAmount = new BigNumber(amount); + // BigNumber() returns NaN on non-numeric string + if (bAmount.isNaN()) { + throw new Error('Amount is not a number'); + } + return bAmount.times(10 ** decimals).toString(10); } catch (error) { return '0'; } diff --git a/src/views/Landing/views/Version/index.js b/src/views/Landing/views/Version/index.js new file mode 100644 index 00000000..dee88428 --- /dev/null +++ b/src/views/Landing/views/Version/index.js @@ -0,0 +1,33 @@ +import React from 'react'; +import styled from 'styled-components'; +import { H3, H2 } from 'components/Heading'; +import LandingWrapper from 'views/Landing/components/LandingWrapper'; +import Link from 'components/Link'; + +const Wrapper = styled.div` + display: flex; + flex: 1; + flex-direction: column; + align-items: center; + justify-content: center; +`; + +const Line = styled.div` + padding: 20px; +`; + +const Version = () => ( + + +

APPLICATION VERSION

+

{VERSION}

+ +

LAST COMMIT HASH

+ +

{COMMITHASH}

+ +
+
+); + +export default Version; \ No newline at end of file diff --git a/src/views/Wallet/components/Content/components/FirmwareUnsupported/index.js b/src/views/Wallet/components/Content/components/FirmwareUnsupported/index.js index 1f8f55db..115af1fc 100644 --- a/src/views/Wallet/components/Content/components/FirmwareUnsupported/index.js +++ b/src/views/Wallet/components/Content/components/FirmwareUnsupported/index.js @@ -36,7 +36,7 @@ const Wrapper = styled.div` `; const CoinLogoWrapper = styled.div` - margin: 10px 0; + margin: 10px 0 20px 0; `; const StyledCoinLogo = styled(CoinLogo)` diff --git a/src/views/Wallet/components/TopNavigationAccount/index.js b/src/views/Wallet/components/TopNavigationAccount/index.js index 15fd708a..6a9e221c 100644 --- a/src/views/Wallet/components/TopNavigationAccount/index.js +++ b/src/views/Wallet/components/TopNavigationAccount/index.js @@ -16,6 +16,9 @@ type Props = { router: $ElementType, selectedAccount: $ElementType, }; +type LocalState = { + wrapper: ?HTMLElement, +}; const Wrapper = styled.div` position: relative; @@ -68,9 +71,18 @@ const StyledNavLink = styled(NavLink)` } `; -class TopNavigationAccount extends React.PureComponent { +class TopNavigationAccount extends React.PureComponent { + constructor(props) { + super(props); + this.state = { + wrapper: null, + }; + } + wrapperRefCallback = (element: ?HTMLElement) => { - this.wrapper = element; + this.setState({ + wrapper: element, + }); } wrapper: ?HTMLElement; @@ -91,7 +103,7 @@ class TopNavigationAccount extends React.PureComponent { {network.type === 'ethereum' && } - this.wrapper} /> + this.state.wrapper} />
); } diff --git a/src/views/Wallet/views/Account/Send/ripple/index.js b/src/views/Wallet/views/Account/Send/ripple/index.js index e82ed306..dfb3921b 100644 --- a/src/views/Wallet/views/Account/Send/ripple/index.js +++ b/src/views/Wallet/views/Account/Send/ripple/index.js @@ -253,7 +253,10 @@ const AccountSend = (props: Props) => { } let isSendButtonDisabled: boolean = Object.keys(errors).length > 0 || total === '0' || amount.length === 0 || address.length === 0 || sending; - let sendButtonText = ; + let sendButtonText = ; + if (total !== '0') { + sendButtonText = ; + } if (!device.connected) { sendButtonText = ; isSendButtonDisabled = true; diff --git a/src/views/Wallet/views/Account/SignVerify/index.js b/src/views/Wallet/views/Account/SignVerify/index.js index d772cf03..ada61e99 100644 --- a/src/views/Wallet/views/Account/SignVerify/index.js +++ b/src/views/Wallet/views/Account/SignVerify/index.js @@ -19,8 +19,11 @@ const Wrapper = styled.div` display: flex; flex: 1; flex-direction: row; - flex-wrap: wrap; background: ${colors.WHITE}; + + @media screen and (max-width: ${SCREEN_SIZE.MD}) { + flex-wrap: wrap; + } `; const Row = styled.div` @@ -31,11 +34,6 @@ const RowButtons = styled(Row)` display: flex; align-items: center; justify-content: flex-end; - - @media all and (max-width: 850px) { - flex-wrap: wrap; - margin: -5px; - } `; const StyledButton = styled(Button)` @@ -45,15 +43,6 @@ const StyledButton = styled(Button)` &:first-child { margin-left: 0; } - - @media all and (max-width: 850px) { - flex: 1; - margin: 5px; - - &:first-child { - margin-left: 5px; - } - } `; const Column = styled.div` @@ -61,7 +50,7 @@ const Column = styled.div` flex: 1 1 50%; flex-direction: column; - @media screen and (max-width: ${SCREEN_SIZE.XS}) { + @media screen and (max-width: ${SCREEN_SIZE.MD}) { flex: 1 1 100%; } `; @@ -71,7 +60,7 @@ const Sign = styled(Column)``; const Verify = styled(Column)` padding-left: 20px; - @media screen and (max-width: ${SCREEN_SIZE.XS}) { + @media screen and (max-width: ${SCREEN_SIZE.MD}) { padding-left: 0px; } `; diff --git a/src/views/index.js b/src/views/index.js index cc8bdc23..0bb6a44b 100644 --- a/src/views/index.js +++ b/src/views/index.js @@ -8,6 +8,7 @@ import { ConnectedRouter } from 'connected-react-router'; import ConnectedIntlProvider from 'support/ConnectedIntlProvider'; import ErrorBoundary from 'support/ErrorBoundary'; import ImagesPreloader from 'support/ImagesPreloader'; +import Version from 'views/Landing/views/Version'; import { getPattern } from 'support/routes'; // landing views @@ -40,6 +41,7 @@ const App = () => ( + diff --git a/webpack/dev.babel.js b/webpack/dev.babel.js index 24111565..4b1c2ba7 100644 --- a/webpack/dev.babel.js +++ b/webpack/dev.babel.js @@ -3,14 +3,15 @@ import GitRevisionPlugin from 'git-revision-webpack-plugin'; import HtmlWebpackPlugin from 'html-webpack-plugin'; import FriendlyErrorsWebpackPlugin from 'friendly-errors-webpack-plugin'; import WebpackBuildNotifierPlugin from 'webpack-build-notifier'; - -// turn on for bundle analyzing -// import { BundleAnalyzerPlugin } from 'webpack-bundle-analyzer'; +import packageJson from '../package.json'; import { SRC, BUILD, PORT, PUBLIC, TRANSLATIONS, } from './constants'; +// turn on for bundle analyzing +// import { BundleAnalyzerPlugin } from 'webpack-bundle-analyzer'; + const gitRevisionPlugin = new GitRevisionPlugin(); module.exports = { @@ -103,6 +104,7 @@ module.exports = { suppressSuccess: true, }), new webpack.DefinePlugin({ + VERSION: JSON.stringify(packageJson.version), COMMITHASH: JSON.stringify(gitRevisionPlugin.commithash()), }), new HtmlWebpackPlugin({ diff --git a/webpack/production.babel.js b/webpack/production.babel.js index aba7935d..39e4a3b5 100644 --- a/webpack/production.babel.js +++ b/webpack/production.babel.js @@ -3,6 +3,7 @@ import GitRevisionPlugin from 'git-revision-webpack-plugin'; import HtmlWebpackPlugin from 'html-webpack-plugin'; import FriendlyErrorsWebpackPlugin from 'friendly-errors-webpack-plugin'; import CopyWebpackPlugin from 'copy-webpack-plugin'; +import packageJson from '../package.json'; import { SRC, BUILD, PUBLIC, TRANSLATIONS, } from './constants'; @@ -67,6 +68,7 @@ module.exports = { plugins: [ new webpack.DefinePlugin({ 'process.env.BUILD': JSON.stringify(process.env.BUILD), + VERSION: JSON.stringify(packageJson.version), COMMITHASH: JSON.stringify(gitRevisionPlugin.commithash()), }), new HtmlWebpackPlugin({ diff --git a/yarn.lock b/yarn.lock index af026aed..f2e7cda6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -934,6 +934,13 @@ resolved "https://registry.yarnpkg.com/@types/bluebird/-/bluebird-3.5.18.tgz#6a60435d4663e290f3709898a4f75014f279c4d6" integrity sha512-OTPWHmsyW18BhrnG5x8F7PzeZ2nFxmHGb42bZn79P9hl+GI5cMzyPgQTwNjbem0lJhoru/8vtjAFCUOu3+gE2w== +"@types/bn.js@^4.11.4": + version "4.11.4" + resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-4.11.4.tgz#a7bed5bdef9f16b25c92ba27745ab261374787d7" + integrity sha512-AO8WW+aRcKWKQAYTfKLzwnpL6U+TfPqS+haRrhCy5ff04Da8WZud3ZgVjspQXaEXJDcTlsjUEVvL39wegDek5w== + dependencies: + "@types/node" "*" + "@types/chai-jquery@1.1.35": version "1.1.35" resolved "https://registry.yarnpkg.com/@types/chai-jquery/-/chai-jquery-1.1.35.tgz#9a8f0a39ec0851b2768a8f8c764158c2a2568d04" @@ -2168,7 +2175,12 @@ big.js@^5.2.2: resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== -bignumber.js@2.4.0, bignumber.js@^2.3.0: +bignumber.js@8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-8.0.2.tgz#d8c4e1874359573b1ef03011a2d861214aeef137" + integrity sha512-EiuvFrnbv0jFixEQ9f58jo7X0qI2lNGIr/MxntmVzQc5JUweDSh8y8hbTCAomFtqwUPIOWcLXP0VEOSZTG7FFw== + +bignumber.js@^2.3.0: version "2.4.0" resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-2.4.0.tgz#838a992da9f9d737e0f4b2db0be62bb09dd0c5e8" @@ -2970,10 +2982,10 @@ connect-history-api-fallback@^1.3.0: version "1.5.0" resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz#b06873934bc5e344fef611a196a6faae0aee015a" -connected-react-router@^6.2.2: - version "6.2.2" - resolved "https://registry.yarnpkg.com/connected-react-router/-/connected-react-router-6.2.2.tgz#10ed0942ee2032de7cb0fd8479bde526853906ed" - integrity sha512-tPI3s7yYtnTt/XLoQFsQqIEQxdQCrsZltEdozjG7LPkOTNglJJ7WqUqnlnh9thC6ebavfaJoTtPa9G2EibuJbg== +connected-react-router@6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/connected-react-router/-/connected-react-router-6.0.0.tgz#cb7ccbbc5ed353832ecd91d68289c916e8aba734" + integrity sha512-TarPqf2wY3cz993Mw3eBg2U12M5OmaGwKzJsinvRQh61nKb8WMUvimyhu6u2HeWS8625PHFXjNOU0OIAMWj/bQ== dependencies: immutable "^3.8.1" seamless-immutable "^7.1.3" @@ -4238,14 +4250,14 @@ ethereumjs-util@^5.0.0: rlp "^2.0.0" secp256k1 "^3.0.1" -ethereumjs-util@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-5.2.0.tgz#3e0c0d1741471acf1036052d048623dee54ad642" - integrity sha512-CJAKdI0wgMbQFLlLRtZKGcy/L6pzVRgelIZqRqNbuVFM3K9VEnyfbcvz0ncWMRNCe4kaHWjwRYQcYMucmwsnWA== +ethereumjs-util@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-6.0.0.tgz#f14841c182b918615afefd744207c7932c8536c0" + integrity sha512-E3yKUyl0Fs95nvTFQZe/ZSNcofhDzUsDlA5y2uoRmf1+Ec7gpGhNCsgKkZBRh7Br5op8mJcYF/jFbmjj909+nQ== dependencies: bn.js "^4.11.0" create-hash "^1.1.2" - ethjs-util "^0.1.3" + ethjs-util "^0.1.6" keccak "^1.0.2" rlp "^2.0.0" safe-buffer "^5.1.1" @@ -4282,6 +4294,14 @@ ethjs-util@^0.1.3: is-hex-prefixed "1.0.0" strip-hex-prefix "1.0.0" +ethjs-util@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/ethjs-util/-/ethjs-util-0.1.6.tgz#f308b62f185f9fe6237132fb2a9818866a5cd536" + integrity sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w== + dependencies: + is-hex-prefixed "1.0.0" + strip-hex-prefix "1.0.0" + event-stream@~3.3.0: version "3.3.4" resolved "http://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571" @@ -8755,15 +8775,15 @@ react-base16-styling@^0.6.0: object-assign "^4.1.1" prop-types "^15.6.0" -react-dom@^16.8.0: - version "16.8.0" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.8.0.tgz#18f28d4be3571ed206672a267c66dd083145a9c4" - integrity sha512-dBzoAGYZpW9Yggp+CzBPC7q1HmWSeRc93DWrwbskmG1eHJWznZB/p0l/Sm+69leIGUS91AXPB/qB3WcPnKx8Sw== +react-dom@^16.8.1: + version "16.8.1" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.8.1.tgz#ec860f98853d09d39bafd3a6f1e12389d283dbb4" + integrity sha512-N74IZUrPt6UiDjXaO7UbDDFXeUXnVhZzeRLy/6iqqN1ipfjrhR60Bp5NuBK+rv3GMdqdIuwIl22u1SYwf330bg== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" prop-types "^15.6.2" - scheduler "^0.13.0" + scheduler "^0.13.1" react-hot-loader@^4.6.5: version "4.6.5" @@ -8933,15 +8953,15 @@ react-transition-group@^2.5.3: object-assign "^4.1.1" prop-types "^15.6.0" -react@^16.8.0: - version "16.8.0" - resolved "https://registry.yarnpkg.com/react/-/react-16.8.0.tgz#8533f0e4af818f448a276eae71681d09e8dd970a" - integrity sha512-g+nikW2D48kqgWSPwNo0NH9tIGG3DsQFlrtrQ1kj6W77z5ahyIHG0w8kPpz4Sdj6gyLnz0lEd/xsjOoGge2MYQ== +react@^16.8.1: + version "16.8.1" + resolved "https://registry.yarnpkg.com/react/-/react-16.8.1.tgz#ae11831f6cb2a05d58603a976afc8a558e852c4a" + integrity sha512-wLw5CFGPdo7p/AgteFz7GblI2JPOos0+biSoxf1FPsGxWQZdN/pj6oToJs1crn61DL3Ln7mN86uZ4j74p31ELQ== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" prop-types "^15.6.2" - scheduler "^0.13.0" + scheduler "^0.13.1" read-pkg-up@^1.0.1: version "1.0.1" @@ -9563,21 +9583,14 @@ sax@^1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" -scheduler@^0.13.0: - version "0.13.0" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.13.0.tgz#e701f62e1b3e78d2bbb264046d4e7260f12184dd" - integrity sha512-w7aJnV30jc7OsiZQNPVmBc+HooZuvQZIZIShKutC3tnMFMkcwVN9CZRRSSNw03OnSCKmEkK8usmwcw6dqBaLzw== +scheduler@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.13.1.tgz#1a217df1bfaabaf4f1b92a9127d5d732d85a9591" + integrity sha512-VJKOkiKIN2/6NOoexuypwSrybx13MY7NSy9RNt8wPvZDMRT1CW6qlpF5jXRToXNHz3uWzbm2elNpZfXfGPqP9A== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" -schema-utils@^0.4.4: - version "0.4.5" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.5.tgz#21836f0608aac17b78f9e3e24daff14a5ca13a3e" - dependencies: - ajv "^6.1.0" - ajv-keywords "^3.1.0" - schema-utils@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" @@ -11167,82 +11180,83 @@ wbuf@^1.1.0, wbuf@^1.7.3: dependencies: minimalistic-assert "^1.0.0" -web3-bzz@1.0.0-beta.41: - version "1.0.0-beta.41" - resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.0.0-beta.41.tgz#3f9eaac2376ce56aa4d3f5ab23299a6d8c9cb658" - integrity sha512-vLNYGlm3tmi31huIpQpizHxXw5yidx5FtF4zze5VsdMH3r7iVzuRjgShdB/XLUFvL7sdnJ0KNW2ULrScqaZ9aA== +web3-bzz@1.0.0-beta.43: + version "1.0.0-beta.43" + resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.0.0-beta.43.tgz#6c2ee480fe74212c70c1c712a20516c64cfb086b" + integrity sha512-5h0MCfJaguwI2TbqSp9elmbZs201uiorRqSxl/TUqeZkzj7hvBjI4nzaCipNxUDoJq2N9Z4J4qVEppj9SsyVLg== dependencies: "@babel/runtime" "^7.3.1" "@types/node" "^10.12.18" lodash "^4.17.11" swarm-js "^0.1.39" -web3-core-helpers@1.0.0-beta.41: - version "1.0.0-beta.41" - resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.0.0-beta.41.tgz#12d99b249f8436c714905bb345365ef8ce515989" - integrity sha512-dYUYkN8XjSfAOeok8Od4nkzTWVnzKx65bPTJ+aUKuIegZ2qEuzwu6Aalfy09MGxs9tlylkblTg6nk1t7YoOgcQ== +web3-core-helpers@1.0.0-beta.43: + version "1.0.0-beta.43" + resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.0.0-beta.43.tgz#4dfd75e21fd1dff55d8d526512afb9c0a6830e70" + integrity sha512-AtDS3elq03vCj4YsivP9WM27BKGEpGg1y6zmbe+gXY8i0MGOiUo3yrolIoeAw5hZzwEyRdBgCzfkL8Mfb7aABA== dependencies: "@babel/runtime" "^7.3.1" lodash "^4.17.11" - web3-eth-iban "1.0.0-beta.41" - web3-utils "1.0.0-beta.41" + web3-eth-iban "1.0.0-beta.43" + web3-utils "1.0.0-beta.43" -web3-core-method@1.0.0-beta.41: - version "1.0.0-beta.41" - resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.0.0-beta.41.tgz#d19eaf02a56918a31a80db4218b8f196bf55f0b3" - integrity sha512-+E70WoTqExXRJRIOBRo4KJVArhR8o5Zh38djQjo/Ddaj5Eu7KiiPTK0z0axXjUQnFyrQbbb1nUmbBJboVxgvKA== +web3-core-method@1.0.0-beta.43: + version "1.0.0-beta.43" + resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.0.0-beta.43.tgz#e2e7f3751f806ca87758fb43b7181c73378e8547" + integrity sha512-lZvU1FAEdBIm65KmqpYDWIqFaK5aqoNtgLgxqPs6xMEDX1MCqzoimKlNaGZn3oLxt2wpCawtaCymqE4v2KBf9w== dependencies: "@babel/runtime" "^7.3.1" eventemitter3 "3.1.0" - web3-core "1.0.0-beta.41" - web3-core-helpers "1.0.0-beta.41" - web3-core-promievent "1.0.0-beta.41" - web3-core-subscriptions "1.0.0-beta.41" - web3-utils "1.0.0-beta.41" + lodash "^4.17.11" + web3-core "1.0.0-beta.43" + web3-core-helpers "1.0.0-beta.43" + web3-core-promievent "1.0.0-beta.43" + web3-core-subscriptions "1.0.0-beta.43" + web3-utils "1.0.0-beta.43" -web3-core-promievent@1.0.0-beta.41: - version "1.0.0-beta.41" - resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.0.0-beta.41.tgz#b50c780aaf52ef547b3c6508f7f0b464bc796cfb" - integrity sha512-0ByKXY26lGRKHz05MtqiZwB5cILvdTbNlUdQU94lMFm2KD5XKRvoQjeRAnugr07d8L2q+3LIU1vIGy/OLLi9sQ== +web3-core-promievent@1.0.0-beta.43: + version "1.0.0-beta.43" + resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.0.0-beta.43.tgz#759ee03d8db179e8c439ade69b863c9b79c34d29" + integrity sha512-HaQY6FuP+I0cn+Wi87Us24P4tAjUbhoDVtzE4K9CtmFTY1lvIQSLn+pzGhbwDYyKyovQpVMS/oroaI8QI46N1A== dependencies: "@babel/runtime" "^7.3.1" eventemitter3 "^3.1.0" -web3-core-subscriptions@1.0.0-beta.41: - version "1.0.0-beta.41" - resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.0.0-beta.41.tgz#5ff628ce7b7c2c59fda2615ff78059afb4287578" - integrity sha512-kSaWfnDuPK3IQXMuNCixe7aq63qOBa2/21WKTpsXNA2yiwPBUmVylwiRMYwhf1ieZFPj9baEtVP8+0wxpXGE4g== +web3-core-subscriptions@1.0.0-beta.43: + version "1.0.0-beta.43" + resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.0.0-beta.43.tgz#c0ac44558fc2769ab7f4ade07c3be5643b920bbd" + integrity sha512-M7XuypZZvkPZNQg415j6CZ4Q0Mukydpup4aKiUwpQreJ2CnM05etaNkyhKydVRiAB3v7m63MLTz+LyHBsDjZKA== dependencies: "@babel/runtime" "^7.3.1" eventemitter3 "^3.1.0" lodash "^4.17.11" - web3-core-helpers "1.0.0-beta.41" - web3-utils "1.0.0-beta.41" + web3-core-helpers "1.0.0-beta.43" + web3-utils "1.0.0-beta.43" -web3-core@1.0.0-beta.41: - version "1.0.0-beta.41" - resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.0.0-beta.41.tgz#91068e6364c7a95301c243782255192bae5e18ea" - integrity sha512-giFB+1G6NyF0r8UAdmOf4j1d9uyrKjm38bz4KKVBGMaM87KvuDAtu0/1RajdPzpQZ3e424CV5VVSxibvVv5fEg== +web3-core@1.0.0-beta.43: + version "1.0.0-beta.43" + resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.0.0-beta.43.tgz#e6337e4f1d08b102b45c418376f1488e62aa688e" + integrity sha512-YkLehXkKpI0jyVqyEsuYR1JUeCcuCs2ihXbV4bPyM9DNbw+RryYZoyb7tMP3LtRuXFIDfBxn+rw3TrKiiAfgMQ== dependencies: "@babel/runtime" "^7.3.1" "@types/node" "^10.12.18" lodash "^4.17.11" - web3-utils "1.0.0-beta.41" + web3-utils "1.0.0-beta.43" -web3-eth-abi@1.0.0-beta.41: - version "1.0.0-beta.41" - resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.0.0-beta.41.tgz#52ce83ee29cfbef7bca5577272ef544bf4ac735e" - integrity sha512-p/AcM7ASsYaHsqtR8vZD0tMQKnFC3ZMHYfI1HcEvyeMM3/hhLHPXIDGgqVVSTil5tJFz38YWzPGt/cWplIQPqw== +web3-eth-abi@1.0.0-beta.43: + version "1.0.0-beta.43" + resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.0.0-beta.43.tgz#fd07ad664f9a2030a451f8128a65e426ff407490" + integrity sha512-2ghl2N6XHkHlUjkJFIOk8atiNYUFh+fijNci+lxMzeY7RoYA4lIF+o3Z422FhKlZdw8ySPaILTQ8wcwjiiuaEw== dependencies: "@babel/runtime" "^7.3.1" ethers "^4.0.0" lodash "^4.17.11" - web3-utils "1.0.0-beta.41" + web3-utils "1.0.0-beta.43" -web3-eth-accounts@1.0.0-beta.41: - version "1.0.0-beta.41" - resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.0.0-beta.41.tgz#9a272100eb9e3f508fbc58bea389d654e1786928" - integrity sha512-+E+DIOF7B/dlln0aPh05FtYh1vk5oBd/bDOyXI4ki0R3L+1zGppUDxm7lOURqbYE0Ny5RFw4i8i1ygFNCTpBBw== +web3-eth-accounts@1.0.0-beta.43: + version "1.0.0-beta.43" + resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.0.0-beta.43.tgz#abbcda793b058211c912127e89247639165aa5b0" + integrity sha512-GaHW0ELydWkbd6uiSsjagd9egeGNG9kaAeSjuwNlcouXMMuaC+TkYTwvy7vVFhk+/qusxdw0jWr+PBWcc0q6/g== dependencies: "@babel/runtime" "^7.3.1" crypto-browserify "3.12.0" @@ -11250,107 +11264,107 @@ web3-eth-accounts@1.0.0-beta.41: lodash "^4.17.11" scrypt.js "0.2.0" uuid "3.3.2" - web3-core "1.0.0-beta.41" - web3-core-helpers "1.0.0-beta.41" - web3-core-method "1.0.0-beta.41" - web3-providers "1.0.0-beta.41" - web3-utils "1.0.0-beta.41" + web3-core "1.0.0-beta.43" + web3-core-helpers "1.0.0-beta.43" + web3-core-method "1.0.0-beta.43" + web3-providers "1.0.0-beta.43" + web3-utils "1.0.0-beta.43" -web3-eth-contract@1.0.0-beta.41: - version "1.0.0-beta.41" - resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.0.0-beta.41.tgz#9196df3b78eab00fe5357ba19b8b57e03bbdff2e" - integrity sha512-irzF24h+R4nVOH5S54YwOBqyXGGJ/tj1SgW+cKRtUPzRdGTqefBv7jdMcpV7N7J0jZObfNxA5bnUBanvP/Ef0g== +web3-eth-contract@1.0.0-beta.43: + version "1.0.0-beta.43" + resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.0.0-beta.43.tgz#59cfac2ecaa86fadff84d7df7cd37a077fbe84b7" + integrity sha512-/ydJTHgM2yzOF8N2lLbMOp31d6ne/KdAC/EAujWeT0i5kf78X4cWGe0payGYbZ10Qj0S1OsfBS6RBqih7s2neA== dependencies: "@babel/runtime" "^7.3.1" lodash "^4.17.11" - web3-core "1.0.0-beta.41" - web3-core-helpers "1.0.0-beta.41" - web3-core-method "1.0.0-beta.41" - web3-core-promievent "1.0.0-beta.41" - web3-core-subscriptions "1.0.0-beta.41" - web3-eth-abi "1.0.0-beta.41" - web3-eth-accounts "1.0.0-beta.41" - web3-providers "1.0.0-beta.41" - web3-utils "1.0.0-beta.41" - -web3-eth-ens@1.0.0-beta.41: - version "1.0.0-beta.41" - resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.0.0-beta.41.tgz#1fa2ae69b5440b6c77804464025e741682cd1659" - integrity sha512-bB/LME1//Hw9CGeKfl1D6LfLNoDZdESavzNMdXFukHqB7QtfC1ck6DzEz2TfHOIigoNy0XPPSBpqZH/LdrH8Nw== + web3-core "1.0.0-beta.43" + web3-core-helpers "1.0.0-beta.43" + web3-core-method "1.0.0-beta.43" + web3-core-promievent "1.0.0-beta.43" + web3-core-subscriptions "1.0.0-beta.43" + web3-eth-abi "1.0.0-beta.43" + web3-eth-accounts "1.0.0-beta.43" + web3-providers "1.0.0-beta.43" + web3-utils "1.0.0-beta.43" + +web3-eth-ens@1.0.0-beta.43: + version "1.0.0-beta.43" + resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.0.0-beta.43.tgz#894332725418c4582b0a6a727cc69b1ab6bceac0" + integrity sha512-SVpukYXhGOJTdGxztzvzAOZJMbjn9kItV8iBAUtTnffMvA09BPI+VcC4KYvmKfruhbkm3EJnKox8PrY36MukNQ== dependencies: "@babel/runtime" "^7.3.1" eth-ens-namehash "2.0.8" lodash "^4.17.11" - web3-core "1.0.0-beta.41" - web3-core-helpers "1.0.0-beta.41" - web3-core-method "1.0.0-beta.41" - web3-core-promievent "1.0.0-beta.41" - web3-eth-abi "1.0.0-beta.41" - web3-eth-contract "1.0.0-beta.41" - web3-net "1.0.0-beta.41" - web3-providers "1.0.0-beta.41" - web3-utils "1.0.0-beta.41" - -web3-eth-iban@1.0.0-beta.41: - version "1.0.0-beta.41" - resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.0.0-beta.41.tgz#a651ae9043f552945c48ce10f50c99cf760ff15a" - integrity sha512-NbaBVApKIEB/1G0OVio0IOWmEvBM87lGO/bGB1xkH44GDdmBaLihBe7KoWcE81AEkBM3l24w7hPApOuD1qfUqg== + web3-core "1.0.0-beta.43" + web3-core-helpers "1.0.0-beta.43" + web3-core-method "1.0.0-beta.43" + web3-core-promievent "1.0.0-beta.43" + web3-eth-abi "1.0.0-beta.43" + web3-eth-contract "1.0.0-beta.43" + web3-net "1.0.0-beta.43" + web3-providers "1.0.0-beta.43" + web3-utils "1.0.0-beta.43" + +web3-eth-iban@1.0.0-beta.43: + version "1.0.0-beta.43" + resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.0.0-beta.43.tgz#d48aa1c11707a6dddd168e3bf2ab00b766a79a55" + integrity sha512-qJMzjWWlHJuWFFYO4meoPfUQMBaUZ4RZnD2jUPAtjnoVa5s4Kc1j4MiSPsAbxSjVdy0gRrCydIufAtBVYCV8eg== dependencies: "@babel/runtime" "^7.3.1" bn.js "4.11.8" - web3-utils "1.0.0-beta.41" + web3-utils "1.0.0-beta.43" -web3-eth-personal@1.0.0-beta.41: - version "1.0.0-beta.41" - resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.0.0-beta.41.tgz#fa2b2b1e90582986f194639db6e2395a90a46c2a" - integrity sha512-yBzw21B/F5ld7SCReBVk/fxGlQBaRYmC4/lqb1M1DoSI8xjVUF8tJuxbecGG8dofS5f86vmB+CEA1CdSiRx94A== +web3-eth-personal@1.0.0-beta.43: + version "1.0.0-beta.43" + resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.0.0-beta.43.tgz#8dc8eeb95479e6c57db489f494c66223fa82b1ce" + integrity sha512-NoPZHaetrFaVSCLpjIOG8DQvPPVpSf41Z5PM4VMRGLXC1Ofkomwr+MF3ewdHMjjRTUxJam/ksCFHbsNDxOM54w== dependencies: "@babel/runtime" "^7.3.1" - web3-core "1.0.0-beta.41" - web3-core-helpers "1.0.0-beta.41" - web3-core-method "1.0.0-beta.41" - web3-net "1.0.0-beta.41" - web3-providers "1.0.0-beta.41" - web3-utils "1.0.0-beta.41" - -web3-eth@1.0.0-beta.41: - version "1.0.0-beta.41" - resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.0.0-beta.41.tgz#e78b4a3cf7e83b9999d1525d081c433bd71c9e45" - integrity sha512-gLQaLB+aIr2iIU3eVMbsR1fMF38pgPaYeK0NvCuO0s87a/PrlEREwGxNQhxjAjZXFWgWGF1fQ2tiojP8toezrQ== + web3-core "1.0.0-beta.43" + web3-core-helpers "1.0.0-beta.43" + web3-core-method "1.0.0-beta.43" + web3-net "1.0.0-beta.43" + web3-providers "1.0.0-beta.43" + web3-utils "1.0.0-beta.43" + +web3-eth@1.0.0-beta.43: + version "1.0.0-beta.43" + resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.0.0-beta.43.tgz#754448452b168611c574a2f838e273a8a728ec56" + integrity sha512-RUxbgPY4lyYozYwdI6ClyJrLACoY1JNywjM/wwno212B2/aDnzOMKPeZdi5py7pPh/RKlfEPOdsT6kVYf79S3A== dependencies: "@babel/runtime" "^7.3.1" - web3-core "1.0.0-beta.41" - web3-core-helpers "1.0.0-beta.41" - web3-core-method "1.0.0-beta.41" - web3-core-promievent "1.0.0-beta.41" - web3-core-subscriptions "1.0.0-beta.41" - web3-eth-abi "1.0.0-beta.41" - web3-eth-accounts "1.0.0-beta.41" - web3-eth-contract "1.0.0-beta.41" - web3-eth-ens "1.0.0-beta.41" - web3-eth-iban "1.0.0-beta.41" - web3-eth-personal "1.0.0-beta.41" - web3-net "1.0.0-beta.41" - web3-providers "1.0.0-beta.41" - web3-utils "1.0.0-beta.41" - -web3-net@1.0.0-beta.41: - version "1.0.0-beta.41" - resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.0.0-beta.41.tgz#a371805739126bdf6fa3a404fcb9ec0a29480314" - integrity sha512-JbefIb0jas6HhkQFx24UzhX0cy4ZZdebNk6eqAQ9G8YDz9yq8Cc7FwVppZDQW7Ka+O7StpRLUzoxXIIeIfiSkA== + web3-core "1.0.0-beta.43" + web3-core-helpers "1.0.0-beta.43" + web3-core-method "1.0.0-beta.43" + web3-core-promievent "1.0.0-beta.43" + web3-core-subscriptions "1.0.0-beta.43" + web3-eth-abi "1.0.0-beta.43" + web3-eth-accounts "1.0.0-beta.43" + web3-eth-contract "1.0.0-beta.43" + web3-eth-ens "1.0.0-beta.43" + web3-eth-iban "1.0.0-beta.43" + web3-eth-personal "1.0.0-beta.43" + web3-net "1.0.0-beta.43" + web3-providers "1.0.0-beta.43" + web3-utils "1.0.0-beta.43" + +web3-net@1.0.0-beta.43: + version "1.0.0-beta.43" + resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.0.0-beta.43.tgz#43635466a100ff3f6702a784223c24965a48dc21" + integrity sha512-fWoTlXneRG/4yOTQ+c6iwDcu63OE4PnB+PRnBFLtArTPVr6U1ndQwRUOzlm8PgkGd6ieHZuFnrj3uGcUR6ZU9A== dependencies: "@babel/runtime" "^7.3.1" lodash "^4.17.11" - web3-core "1.0.0-beta.41" - web3-core-helpers "1.0.0-beta.41" - web3-core-method "1.0.0-beta.41" - web3-providers "1.0.0-beta.41" - web3-utils "1.0.0-beta.41" + web3-core "1.0.0-beta.43" + web3-core-helpers "1.0.0-beta.43" + web3-core-method "1.0.0-beta.43" + web3-providers "1.0.0-beta.43" + web3-utils "1.0.0-beta.43" -web3-providers@1.0.0-beta.41: - version "1.0.0-beta.41" - resolved "https://registry.yarnpkg.com/web3-providers/-/web3-providers-1.0.0-beta.41.tgz#64e7d61429b677280c9dcb7d310f3a0759c8f8a9" - integrity sha512-KTx9yw2inJwUvl5BDHzAYPQ5WmUAPaO/IxWHvS7WvPOCiQonq2HbSF9bOSl5uWkqWeqhIl0nUhGKU7ED5q6yLQ== +web3-providers@1.0.0-beta.43: + version "1.0.0-beta.43" + resolved "https://registry.yarnpkg.com/web3-providers/-/web3-providers-1.0.0-beta.43.tgz#158f4a0ac8325b484c7383a01d1d7a3ab638926a" + integrity sha512-1BMXNLzmQ9HlX8lBq9Eze4yE1VMFekp/fp85hL+garX3fVEeIDVNtA7/AnWGaoe19UMNx8WGAPL19pgUnkoCCQ== dependencies: "@babel/runtime" "^7.3.1" "@types/node" "^10.12.18" @@ -11361,26 +11375,27 @@ web3-providers@1.0.0-beta.41: websocket "git://github.com/frozeman/WebSocket-Node.git#browserifyCompatible" xhr2-cookies "1.1.0" -web3-shh@1.0.0-beta.41: - version "1.0.0-beta.41" - resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.0.0-beta.41.tgz#d24bf9a8a1993e7ee15a7523838dc8ab8468dee4" - integrity sha512-qFXmyAGh7oYizTv/vJWjMrSe5IMCBpU3IR1bliCd/GVqGKylH13N1oe8ifWk+EO8jPfFy7qWlJrbMKfAOAj2Lg== +web3-shh@1.0.0-beta.43: + version "1.0.0-beta.43" + resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.0.0-beta.43.tgz#2231540323946e29f590bbfe36bae9c47b4c4fd9" + integrity sha512-S4Petfrb+998persyS/zuK4Qhc8BDqefVpMhAyMiF8tCbOSvP667L4cOV6FCq5peAJ/hJk1HEC3WUJlX5m6SBw== dependencies: "@babel/runtime" "^7.3.1" - web3-core "1.0.0-beta.41" - web3-core-helpers "1.0.0-beta.41" - web3-core-method "1.0.0-beta.41" - web3-core-subscriptions "1.0.0-beta.41" - web3-net "1.0.0-beta.41" - web3-providers "1.0.0-beta.41" - web3-utils "1.0.0-beta.41" - -web3-utils@1.0.0-beta.41: - version "1.0.0-beta.41" - resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.0.0-beta.41.tgz#83301ffd85cbf9b99a8bd5ca828f96113a1ccc71" - integrity sha512-6Vf+jzZEsYoAvECm+/mQx4L0p5eOxpDmbR7baFUZpB+DQyNFBc3XPSMUNWHBLqe/OpXjDrS2TeYv40Ai8bd4bg== + web3-core "1.0.0-beta.43" + web3-core-helpers "1.0.0-beta.43" + web3-core-method "1.0.0-beta.43" + web3-core-subscriptions "1.0.0-beta.43" + web3-net "1.0.0-beta.43" + web3-providers "1.0.0-beta.43" + web3-utils "1.0.0-beta.43" + +web3-utils@1.0.0-beta.43: + version "1.0.0-beta.43" + resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.0.0-beta.43.tgz#a8f167c7bc9ab0632e43ba3de5cf0aca12038d96" + integrity sha512-fdV3TELMnbzV75awcRFFzbfpt+FhJrKUHFRmE1KSxFIPSDFTgTBo3KpCvS5D4PajXOAnNb0QbSML9ekSqKtx/A== dependencies: "@babel/runtime" "^7.3.1" + "@types/bn.js" "^4.11.4" "@types/node" "^10.12.18" bn.js "4.11.8" eth-lib "0.2.8" @@ -11390,23 +11405,23 @@ web3-utils@1.0.0-beta.41: randomhex "0.1.5" utf8 "2.1.1" -web3@1.0.0-beta.41: - version "1.0.0-beta.41" - resolved "https://registry.yarnpkg.com/web3/-/web3-1.0.0-beta.41.tgz#ed2f7ae63d4db89820a4f6b0d4a0a7cc53eee5e1" - integrity sha512-G4s5GBLP+xxwcIhevc4rmSg1PpQB/ou6KGCAR6UqGaRXNkSysjjifU1eywaCpcbjIN5FXjIOh/HGjVMdkt0VZQ== +web3@1.0.0-beta.43: + version "1.0.0-beta.43" + resolved "https://registry.yarnpkg.com/web3/-/web3-1.0.0-beta.43.tgz#e378315a3262a90b93b453529ada7c82db5d76b1" + integrity sha512-jEQJ4NHoMI3dPum/kiFiVapOa16Pi5dZ5WWg3A7IpRPlalmaQTV2EGffYmfLbLt0UbbpBhF2M2yXnaGLy4izLQ== dependencies: "@babel/runtime" "^7.3.1" "@types/node" "^10.12.18" - web3-bzz "1.0.0-beta.41" - web3-core "1.0.0-beta.41" - web3-core-helpers "1.0.0-beta.41" - web3-core-method "1.0.0-beta.41" - web3-eth "1.0.0-beta.41" - web3-eth-personal "1.0.0-beta.41" - web3-net "1.0.0-beta.41" - web3-providers "1.0.0-beta.41" - web3-shh "1.0.0-beta.41" - web3-utils "1.0.0-beta.41" + web3-bzz "1.0.0-beta.43" + web3-core "1.0.0-beta.43" + web3-core-helpers "1.0.0-beta.43" + web3-core-method "1.0.0-beta.43" + web3-eth "1.0.0-beta.43" + web3-eth-personal "1.0.0-beta.43" + web3-net "1.0.0-beta.43" + web3-providers "1.0.0-beta.43" + web3-shh "1.0.0-beta.43" + web3-utils "1.0.0-beta.43" webidl-conversions@^4.0.2: version "4.0.2" @@ -11525,10 +11540,10 @@ webpack-sources@^1.3.0: source-list-map "^2.0.0" source-map "~0.6.1" -webpack@^4.29.1: - version "4.29.1" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.29.1.tgz#a6533d7bc6a6b1ed188cb029d53d231be777e175" - integrity sha512-dY3KyQIVeg6cDPj9G5Bnjy9Pt9SoCpbNWl0RDKHstbd3MWe0dG9ri4RQRpCm43iToy3zoA1IMOpFkJ8Clnc7FQ== +webpack@^4.29.3: + version "4.29.3" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.29.3.tgz#e0b406a7b4201ed5e4fb4f84fd7359f9a7db4647" + integrity sha512-xPJvFeB+8tUflXFq+OgdpiSnsCD5EANyv56co5q8q8+YtEasn5Sj3kzY44mta+csCIEB0vneSxnuaHkOL2h94A== dependencies: "@webassemblyjs/ast" "1.7.11" "@webassemblyjs/helper-module-context" "1.7.11" @@ -11549,7 +11564,7 @@ webpack@^4.29.1: mkdirp "~0.5.0" neo-async "^2.5.0" node-libs-browser "^2.0.0" - schema-utils "^0.4.4" + schema-utils "^1.0.0" tapable "^1.1.0" terser-webpack-plugin "^1.1.0" watchpack "^1.5.0"