merge master

pull/402/head^2
slowbackspace 5 years ago
commit 005cd8ae02

@ -6,7 +6,8 @@
], ],
"globals": { "globals": {
"LOCAL": true, "LOCAL": true,
"COMMITHASH": true "COMMITHASH": true,
"VERSION": true
}, },
"env": { "env": {
"browser": true, "browser": true,

@ -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 ## 1.0.3-beta
__added__ __added__
- Ethereum: sign & verify tab - Ethereum: sign & verify tab

@ -1,13 +1,11 @@
# Trezor Wallet # Trezor Wallet
You can try this wallet live [HERE](https://beta-wallet.trezor.io/next/)
To install dependencies run `npm install` or `yarn` To install dependencies run `npm install` or `yarn`
To start locally run `npm run dev` or `yarn run dev` To start locally run `npm run dev` or `yarn run dev`
To build the project run `npm run build` or `yarn run build` 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 ## Project structure
The project is divided into two parts - data that are used when compiling the project and data that aren't. The project is divided into two parts - data that are used when compiling the project and data that aren't.

@ -1,6 +1,6 @@
{ {
"name": "trezor-wallet", "name": "trezor-wallet",
"version": "1.0.0", "version": "1.0.3-beta",
"author": "TREZOR <info@trezor.io>", "author": "TREZOR <info@trezor.io>",
"description": "", "description": "",
"bin": { "bin": {
@ -31,16 +31,16 @@
}, },
"dependencies": { "dependencies": {
"@babel/polyfill": "^7.2.5", "@babel/polyfill": "^7.2.5",
"bignumber.js": "2.4.0", "bignumber.js": "8.0.2",
"color-hash": "^1.0.3", "color-hash": "^1.0.3",
"commander": "^2.19.0", "commander": "^2.19.0",
"connected-react-router": "^6.2.2", "connected-react-router": "6.0.0",
"copy-webpack-plugin": "^4.6.0", "copy-webpack-plugin": "^4.6.0",
"cross-env": "^5.2.0", "cross-env": "^5.2.0",
"date-fns": "^1.30.1", "date-fns": "^1.30.1",
"ethereumjs-tx": "^1.3.7", "ethereumjs-tx": "^1.3.7",
"ethereumjs-units": "^0.2.0", "ethereumjs-units": "^0.2.0",
"ethereumjs-util": "^5.2.0", "ethereumjs-util": "^6.0.0",
"express": "^4.16.4", "express": "^4.16.4",
"friendly-errors-webpack-plugin": "^1.7.0", "friendly-errors-webpack-plugin": "^1.7.0",
"git-revision-webpack-plugin": "^3.0.3", "git-revision-webpack-plugin": "^3.0.3",
@ -54,8 +54,8 @@
"raf": "^3.4.1", "raf": "^3.4.1",
"raven-js": "^3.27.0", "raven-js": "^3.27.0",
"rc-tooltip": "^3.7.3", "rc-tooltip": "^3.7.3",
"react": "^16.8.0", "react": "^16.8.1",
"react-dom": "^16.8.0", "react-dom": "^16.8.1",
"react-hot-loader": "^4.6.5", "react-hot-loader": "^4.6.5",
"react-intl": "^2.8.0", "react-intl": "^2.8.0",
"react-json-view": "^1.19.1", "react-json-view": "^1.19.1",
@ -80,8 +80,8 @@
"trezor-bridge-communicator": "1.0.2", "trezor-bridge-communicator": "1.0.2",
"trezor-connect": "7.0.0-beta.2", "trezor-connect": "7.0.0-beta.2",
"wallet-address-validator": "^0.2.4", "wallet-address-validator": "^0.2.4",
"web3": "1.0.0-beta.41", "web3": "1.0.0-beta.43",
"webpack": "^4.29.1", "webpack": "^4.29.3",
"webpack-build-notifier": "^0.1.30", "webpack-build-notifier": "^0.1.30",
"webpack-bundle-analyzer": "^3.0.3", "webpack-bundle-analyzer": "^3.0.3",
"whatwg-fetch": "^3.0.0", "whatwg-fetch": "^3.0.0",

@ -8,6 +8,7 @@ import * as TOKEN from 'actions/constants/token';
import * as PENDING from 'actions/constants/pendingTx'; import * as PENDING from 'actions/constants/pendingTx';
import * as reducerUtils from 'reducers/utils'; import * as reducerUtils from 'reducers/utils';
import { getVersion } from 'utils/device';
import { initialState } from 'reducers/SelectedAccountReducer'; import { initialState } from 'reducers/SelectedAccountReducer';
import type { import type {
@ -51,10 +52,11 @@ const getExceptionPage = (state: State, selectedAccount: SelectedAccountState):
shortcut: 'not-used', shortcut: 'not-used',
}; };
} }
if (discovery.fwNotSupported) { if (discovery.fwNotSupported) {
return { return {
type: 'fwNotSupported', 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.', message: 'Find more information on Trezor Wiki.',
shortcut: network.shortcut, shortcut: network.shortcut,
}; };

@ -226,16 +226,16 @@ export const amountValidation = ($state: State): PayloadAction<State> => (dispat
if (!state.amount.match(decimalRegExp)) { if (!state.amount.match(decimalRegExp)) {
state.errors.amount = `Maximum ${token.decimals} decimals allowed`; 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`; 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'; 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'; state.errors.amount = 'Amount is too low';
} }
} else if (!state.amount.match(ETH_18_RE)) { } else if (!state.amount.match(ETH_18_RE)) {
state.errors.amount = 'Maximum 18 decimals allowed'; 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'; state.errors.amount = 'Not enough funds';
} }
} }
@ -261,9 +261,9 @@ export const gasLimitValidation = ($state: State): PayloadAction<State> => (disp
state.errors.gasLimit = 'Gas limit is not a number'; state.errors.gasLimit = 'Gas limit is not a number';
} else { } else {
const gl: BigNumber = new BigNumber(gasLimit); const gl: BigNumber = new BigNumber(gasLimit);
if (gl.lessThan(1)) { if (gl.isLessThan(1)) {
state.errors.gasLimit = 'Gas limit is too low'; 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'; state.warnings.gasLimit = 'Gas limit is below recommended';
} }
} }
@ -284,9 +284,9 @@ export const gasPriceValidation = ($state: State): PayloadAction<State> => (): S
state.errors.gasPrice = 'Gas price is not a number'; state.errors.gasPrice = 'Gas price is not a number';
} else { } else {
const gp: BigNumber = new BigNumber(gasPrice); const gp: BigNumber = new BigNumber(gasPrice);
if (gp.greaterThan(1000)) { if (gp.isGreaterThan(1000)) {
state.warnings.gasPrice = 'Gas price is too high'; 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'; state.errors.gasPrice = 'Gas price is too low';
} }
} }
@ -312,9 +312,9 @@ export const nonceValidation = ($state: State): PayloadAction<State> => (dispatc
state.errors.nonce = 'Nonce is not a valid number'; state.errors.nonce = 'Nonce is not a valid number';
} else { } else {
const n: BigNumber = new BigNumber(nonce); const n: BigNumber = new BigNumber(nonce);
if (n.lessThan(account.nonce)) { if (n.isLessThan(account.nonce)) {
state.warnings.nonce = 'Nonce is lower than recommended'; 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'; 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 => { export const calculateTotal = (amount: string, gasPrice: string, gasLimit: string): string => {
try { 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) { } catch (error) {
return '0'; return '0';
} }
@ -358,7 +363,7 @@ export const calculateMaxAmount = (balance: BigNumber, gasPrice: string, gasLimi
// TODO - minus pendings // TODO - minus pendings
const fee = calculateFee(gasPrice, gasLimit); const fee = calculateFee(gasPrice, gasLimit);
const max = balance.minus(fee); const max = balance.minus(fee);
if (max.lessThan(0)) return '0'; if (max.isLessThan(0)) return '0';
return max.toFixed(); return max.toFixed();
} catch (error) { } catch (error) {
return '0'; return '0';

@ -236,7 +236,7 @@ const amountValidation = ($state: State): PayloadAction<State> => (dispatch: Dis
const pendingAmount: BigNumber = getPendingAmount(pending, state.networkSymbol); const pendingAmount: BigNumber = getPendingAmount(pending, state.networkSymbol);
if (!state.amount.match(XRP_6_RE)) { if (!state.amount.match(XRP_6_RE)) {
state.errors.amount = 'Maximum 6 decimals allowed'; 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'; state.errors.amount = 'Not enough funds';
} }
} }
@ -271,9 +271,9 @@ export const feeValidation = ($state: State): PayloadAction<State> => (dispatch:
state.errors.fee = 'Fee must be an absolute number'; state.errors.fee = 'Fee must be an absolute number';
} else { } else {
const gl: BigNumber = new BigNumber(fee); 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'; 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'; state.errors.fee = 'Fee is above recommended';
} }
} }
@ -300,7 +300,12 @@ export const destinationTagValidation = ($state: State): PayloadAction<State> =>
const calculateTotal = (amount: string, fee: string): string => { const calculateTotal = (amount: string, fee: string): string => {
try { 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) { } catch (error) {
return '0'; return '0';
} }
@ -310,7 +315,7 @@ const calculateMaxAmount = (balance: BigNumber, fee: string): string => {
try { try {
// TODO - minus pendings // TODO - minus pendings
const max = balance.minus(fee); const max = balance.minus(fee);
if (max.lessThan(0)) return '0'; if (max.isLessThan(0)) return '0';
return max.toFixed(); return max.toFixed();
} catch (error) { } catch (error) {
return '0'; return '0';

@ -12,8 +12,6 @@ import colors from 'config/colors';
import { FONT_SIZE } from 'config/variables'; import { FONT_SIZE } from 'config/variables';
import * as LogActions from 'actions/LogActions'; import * as LogActions from 'actions/LogActions';
declare var COMMITHASH: string;
type Props = { type Props = {
opened: boolean, opened: boolean,
isLanding: boolean, isLanding: boolean,
@ -60,7 +58,7 @@ const Right = styled.div`
const Footer = ({ opened, toggle, isLanding }: Props) => ( const Footer = ({ opened, toggle, isLanding }: Props) => (
<Wrapper> <Wrapper>
<Left> <Left>
<Copy title={COMMITHASH}>&copy; {getYear(new Date())}</Copy> <Copy>&copy; {getYear(new Date())}</Copy>
<StyledLink href="http://satoshilabs.com" isGreen>SatoshiLabs</StyledLink> <StyledLink href="http://satoshilabs.com" isGreen>SatoshiLabs</StyledLink>
<StyledLink href="./assets/tos.pdf" isGreen>Terms</StyledLink> <StyledLink href="./assets/tos.pdf" isGreen>Terms</StyledLink>
<StyledLink onClick={toggle} isGreen>{ opened ? 'Hide Log' : 'Show Log' }</StyledLink> <StyledLink onClick={toggle} isGreen>{ opened ? 'Hide Log' : 'Show Log' }</StyledLink>

@ -5,6 +5,9 @@ import styled from 'styled-components';
import { NavLink } from 'react-router-dom'; import { NavLink } from 'react-router-dom';
import colors from 'config/colors'; import colors from 'config/colors';
import { SCREEN_SIZE } from 'config/variables'; 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 type { toggleSidebar as toggleSidebarType } from 'actions/WalletActions';
import LanguagePicker from './components/LanguagePicker/Container'; import LanguagePicker from './components/LanguagePicker/Container';
@ -14,12 +17,6 @@ const Wrapper = styled.header`
background: ${colors.HEADER}; background: ${colors.HEADER};
overflow: hidden; overflow: hidden;
z-index: 200; z-index: 200;
svg {
fill: ${colors.WHITE};
height: 28px;
width: 100px;
}
`; `;
const LayoutWrapper = styled.div` const LayoutWrapper = styled.div`
@ -50,21 +47,32 @@ const MenuToggler = styled.div`
white-space: nowrap; white-space: nowrap;
color: ${colors.WHITE}; color: ${colors.WHITE};
align-self: center; align-self: center;
align-items: center;
cursor: pointer; cursor: pointer;
user-select: none; user-select: none;
padding: 10px 0px; padding: 10px 0px;
transition: all .1s ease-in; transition: all .1s ease-in;
@media screen and (max-width: ${SCREEN_SIZE.SM}) { @media screen and (max-width: ${SCREEN_SIZE.SM}) {
display: initial; display: flex;
} }
`; `;
const TogglerText = styled.div`
`;
const Logo = styled.div` const Logo = styled.div`
flex: 1; flex: 1;
justify-content: flex-start; justify-content: flex-start;
display: flex; display: flex;
svg {
fill: ${colors.WHITE};
height: 28px;
width: 100px;
}
@media screen and (max-width: ${SCREEN_SIZE.SM}) { @media screen and (max-width: ${SCREEN_SIZE.SM}) {
flex: 1 0 33%; flex: 1 0 33%;
justify-content: center; justify-content: center;
@ -127,7 +135,29 @@ const Header = ({ sidebarEnabled, sidebarOpened, toggleSidebar }: Props) => (
<Wrapper data-test="Main__page__navigation"> <Wrapper data-test="Main__page__navigation">
<LayoutWrapper> <LayoutWrapper>
<Left> <Left>
{ sidebarEnabled && <MenuToggler onClick={toggleSidebar}>{sidebarOpened ? '✕ Close' : '☰ Menu'}</MenuToggler>} { sidebarEnabled && (
<MenuToggler onClick={toggleSidebar}>
{sidebarOpened ? (
<>
<Icon
size={24}
color={colors.WHITE}
icon={icons.CLOSE}
/>
<TogglerText>Close</TogglerText>
</>
) : (
<>
<Icon
color={colors.WHITE}
size={24}
icon={icons.MENU}
/>
<TogglerText>Menu</TogglerText>
</>
)}
</MenuToggler>
)}
</Left> </Left>
<Logo> <Logo>
<NavLink to="/"> <NavLink to="/">

@ -68,7 +68,7 @@ Tooltip.propTypes = {
PropTypes.string, PropTypes.string,
]), ]),
readMoreLink: PropTypes.string, readMoreLink: PropTypes.string,
enterDelayMs: PropTypes.bool, enterDelayMs: PropTypes.number,
}; };
export default Tooltip; export default Tooltip;

@ -15,8 +15,9 @@ const Img = styled.img`
`; `;
const TrezorImage = ({ model }: Props) => { const TrezorImage = ({ model }: Props) => {
const imageName = model === 'One' ? 1 : model;
// $FlowIssue: `require` must be a string literal. // $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 ( return (
<Wrapper> <Wrapper>
<Img model={model} src={src} /> <Img model={model} src={src} />

@ -38,11 +38,18 @@ const CameraPlaceholder = styled(P)`
padding: 10px 0; padding: 10px 0;
`; `;
const Error = styled(P)` const Error = styled.div`
text-align: center;
padding: 10px 0; padding: 10px 0;
`;
const ErrorTitle = styled(P)`
text-align: center;
color: ${colors.ERROR_PRIMARY}; color: ${colors.ERROR_PRIMARY};
`; `;
const ErrorMessage = styled.span`
text-align: center;
color: ${colors.TEXT_PRIMARY};
`;
const StyledQrReader = styled(QrReader)` const StyledQrReader = styled(QrReader)`
padding: 10px 0; padding: 10px 0;
@ -95,14 +102,26 @@ class QrModal extends React.Component<Props, State> {
} }
handleError = (err: any) => { handleError = (err: any) => {
console.log(err); // log thrown error
this.setState({ console.error(err);
error: err,
});
if (this.props.onError) { if (this.props.onError) {
this.props.onError(err); 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 = () => { handleCancel = () => {
@ -123,29 +142,25 @@ class QrModal extends React.Component<Props, State> {
/> />
</CloseLink> </CloseLink>
<Padding> <Padding>
<H2>Scan an address from a QR code</H2> <H2>Scan QR code</H2>
{!this.state.readerLoaded && ( {!this.state.readerLoaded && !this.state.error && <CameraPlaceholder>Waiting for camera...</CameraPlaceholder>}
<CameraPlaceholder>
Waiting for camera...
</CameraPlaceholder>
)
}
</Padding>
<StyledQrReader
delay={500}
onError={this.handleError}
onScan={this.handleScan}
onLoad={this.onLoad}
style={{ width: '100%' }}
showViewFinder={false}
/>
<Padding>
{this.state.error && ( {this.state.error && (
<Error> <Error>
{this.state.error.toString()} <ErrorTitle>Oops! Something went wrong!</ErrorTitle>
<ErrorMessage>{this.state.error.toString()}</ErrorMessage>
</Error> </Error>
)} )}
</Padding> </Padding>
{!this.state.error && (
<StyledQrReader
delay={500}
onError={this.handleError}
onScan={this.handleScan}
onLoad={this.onLoad}
style={{ width: '100%' }}
showViewFinder={false}
/>
)}
</Wrapper> </Wrapper>
); );
} }

@ -19,7 +19,7 @@ export default (props: Props) => {
const { reserve, balance } = account; const { reserve, balance } = account;
const bigBalance = new Bignumber(balance); const bigBalance = new Bignumber(balance);
const bigReserve = new Bignumber(reserve); const bigReserve = new Bignumber(reserve);
if (bigBalance.lessThan(bigReserve)) { if (bigBalance.isLessThan(bigReserve)) {
notifications.push( notifications.push(
<Notification <Notification
key="xrp-warning" key="xrp-warning"

@ -79,6 +79,9 @@ export default {
QRCODE: [ QRCODE: [
'M832 1024l-64 0l0 -128l64 0l0 128Zm-320 0l-64 0l0 -128l64 0l0 128Zm192 0l-128 0l0 -128l128 0l0 128Zm192 -192l64 0l0 64l64 0l0 128l-128 0l0 -192Zm-896 -192l384 0l0 384l-384 0l0 -384Zm320 320l0 -256l-256 0l0 256l256 0Zm-64 -64l-128 0l0 -128l128 0l0 128Zm512 0l-64 0l0 -64l64 0l0 64Zm-192 -128l0 128l-64 0l0 -64l-64 0l0 -64l128 0Zm128 64l-64 0l0 -64l64 0l0 64Zm192 0l-128 0l0 -64l128 0l0 64Zm-256 -64l-64 0l0 -64l64 0l0 64Zm320 -64l-64 0l0 -64l128 0l0 128l-64 0l0 -64Zm-384 0l-128 0l0 -128l128 0l0 128Zm64 -64l64 0l0 -64l128 0l0 128l-192 0l0 -64Zm-320 -128l64 0l0 -64l64 0l0 128l-128 0l0 -64Zm256 0l-64 0l0 -64l192 0l0 128l-128 0l0 -64Zm-576 -64l128 0l0 64l64 0l0 64l-192 0l0 -128Zm896 64l-128 0l0 -64l256 0l0 128l-128 0l0 -64Zm-576 0l-128 0l0 -64l128 0l0 64Zm192 -64l-64 0l0 -64l64 0l0 64Zm-512 -448l384 0l0 384l-384 0l0 -384Zm576 384l-64 0l0 -128l64 0l0 128Zm64 -384l384 0l0 384l-384 0l0 -384Zm-320 320l0 -256l-256 0l0 256l256 0Zm640 0l0 -256l-256 0l0 256l256 0Zm-704 -64l-128 0l0 -128l128 0l0 128Zm640 0l-128 0l0 -128l128 0l0 128Zm-384 -256l0 64l64 0l0 128l-64 0l0 64l-64 0l0 -256l64 0Z', 'M832 1024l-64 0l0 -128l64 0l0 128Zm-320 0l-64 0l0 -128l64 0l0 128Zm192 0l-128 0l0 -128l128 0l0 128Zm192 -192l64 0l0 64l64 0l0 128l-128 0l0 -192Zm-896 -192l384 0l0 384l-384 0l0 -384Zm320 320l0 -256l-256 0l0 256l256 0Zm-64 -64l-128 0l0 -128l128 0l0 128Zm512 0l-64 0l0 -64l64 0l0 64Zm-192 -128l0 128l-64 0l0 -64l-64 0l0 -64l128 0Zm128 64l-64 0l0 -64l64 0l0 64Zm192 0l-128 0l0 -64l128 0l0 64Zm-256 -64l-64 0l0 -64l64 0l0 64Zm320 -64l-64 0l0 -64l128 0l0 128l-64 0l0 -64Zm-384 0l-128 0l0 -128l128 0l0 128Zm64 -64l64 0l0 -64l128 0l0 128l-192 0l0 -64Zm-320 -128l64 0l0 -64l64 0l0 128l-128 0l0 -64Zm256 0l-64 0l0 -64l192 0l0 128l-128 0l0 -64Zm-576 -64l128 0l0 64l64 0l0 64l-192 0l0 -128Zm896 64l-128 0l0 -64l256 0l0 128l-128 0l0 -64Zm-576 0l-128 0l0 -64l128 0l0 64Zm192 -64l-64 0l0 -64l64 0l0 64Zm-512 -448l384 0l0 384l-384 0l0 -384Zm576 384l-64 0l0 -128l64 0l0 128Zm64 -384l384 0l0 384l-384 0l0 -384Zm-320 320l0 -256l-256 0l0 256l256 0Zm640 0l0 -256l-256 0l0 256l256 0Zm-704 -64l-128 0l0 -128l128 0l0 128Zm640 0l-128 0l0 -128l128 0l0 128Zm-384 -256l0 64l64 0l0 128l-64 0l0 64l-64 0l0 -256l64 0Z',
], ],
MENU: [
'M192,265.497l640,0l0,119.906l-640,0l0,-119.906Zm0,186.56l640,0l0,119.946l-640,0l0,-119.946Zm0,186.56l640,0l0,119.886l-640,0l0,-119.886Z',
],
}; };
/* /*

@ -27,22 +27,21 @@ declare module 'bignumber.js' {
// Methods // Methods
abs(): T_BigNumber; abs(): T_BigNumber;
cmp(n: $npm$big$number$object): $npm$cmp$result;
div(n: $npm$big$number$object): T_BigNumber; div(n: $npm$big$number$object): T_BigNumber;
dividedBy(n: $npm$big$number$object): T_BigNumber; dividedBy(n: $npm$big$number$object): T_BigNumber;
eq(n: $npm$big$number$object): boolean; eq(n: $npm$big$number$object): boolean;
gt(n: $npm$big$number$object): boolean; gt(n: $npm$big$number$object): boolean;
greaterThan(n: $npm$big$number$object): boolean; isGreaterThan(n: $npm$big$number$object): boolean;
gte(n: $npm$big$number$object): boolean; gte(n: $npm$big$number$object): boolean;
lt(n: $npm$big$number$object): boolean; lt(n: $npm$big$number$object): boolean;
lessThan(n: $npm$big$number$object): boolean; isLessThan(n: $npm$big$number$object): boolean;
lte(n: $npm$big$number$object): boolean; lte(n: $npm$big$number$object): boolean;
lessThanOrEqualTo(n: $npm$big$number$object): boolean; isLessThanOrEqualTo(n: $npm$big$number$object): boolean;
isNaN(): boolean;
minus(n: $npm$big$number$object): T_BigNumber; minus(n: $npm$big$number$object): T_BigNumber;
mod(n: $npm$big$number$object): T_BigNumber; mod(n: $npm$big$number$object): T_BigNumber;
plus(n: $npm$big$number$object): T_BigNumber; plus(n: $npm$big$number$object): T_BigNumber;
pow(exp: number): BigNumber; pow(exp: number): BigNumber;
round(dp: ?number, rm: ?RM): T_BigNumber;
sqrt(): T_BigNumber; sqrt(): T_BigNumber;
times(n: $npm$big$number$object): T_BigNumber; times(n: $npm$big$number$object): T_BigNumber;
toExponential(dp: ?number): string; toExponential(dp: ?number): string;

@ -33,7 +33,7 @@ const initialState: State = {
dropdownOpened: false, dropdownOpened: false,
firstLocationChange: true, firstLocationChange: true,
showBetaDisclaimer: false, showBetaDisclaimer: false,
showSidebar: true, showSidebar: false,
initialParams: null, initialParams: null,
initialPathname: null, initialPathname: null,
disconnectRequest: null, disconnectRequest: null,

@ -12,6 +12,11 @@ export const routes: Array<Route> = [
pattern: '/', pattern: '/',
fields: [], fields: [],
}, },
{
name: 'landing-version',
pattern: '/version',
fields: ['version'],
},
{ {
name: 'landing-bridge', name: 'landing-bridge',
pattern: '/bridge', pattern: '/bridge',

@ -44,15 +44,15 @@ exports[`device utils get status name 7`] = `"Disconnected"`;
exports[`device utils get status name 8`] = `"Unavailable"`; 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"`; exports[`device utils get version 6`] = `"T"`;

@ -104,7 +104,7 @@ export const getVersion = (device: TrezorDevice): string => {
if (device.features && device.features.major_version > 1) { if (device.features && device.features.major_version > 1) {
version = 'T'; version = 'T';
} else { } else {
version = '1'; version = 'One';
} }
return version; return version;
}; };

@ -56,7 +56,12 @@ export const hexToString = (hex: string): string => {
export const toDecimalAmount = (amount: string | number, decimals: number): string => { export const toDecimalAmount = (amount: string | number, decimals: number): string => {
try { 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) { } catch (error) {
return '0'; return '0';
} }
@ -64,7 +69,12 @@ export const toDecimalAmount = (amount: string | number, decimals: number): stri
export const fromDecimalAmount = (amount: string | number, decimals: number): string => { export const fromDecimalAmount = (amount: string | number, decimals: number): string => {
try { 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) { } catch (error) {
return '0'; return '0';
} }

@ -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 = () => (
<LandingWrapper>
<Wrapper>
<H3>APPLICATION VERSION</H3>
<H2>{VERSION}</H2>
<Line />
<H3>LAST COMMIT HASH</H3>
<Link href={`https://github.com/trezor/trezor-wallet/commits/${COMMITHASH}`}>
<H2>{COMMITHASH}</H2>
</Link>
</Wrapper>
</LandingWrapper>
);
export default Version;

@ -36,7 +36,7 @@ const Wrapper = styled.div`
`; `;
const CoinLogoWrapper = styled.div` const CoinLogoWrapper = styled.div`
margin: 10px 0; margin: 10px 0 20px 0;
`; `;
const StyledCoinLogo = styled(CoinLogo)` const StyledCoinLogo = styled(CoinLogo)`

@ -16,6 +16,9 @@ type Props = {
router: $ElementType<State, 'router'>, router: $ElementType<State, 'router'>,
selectedAccount: $ElementType<State, 'selectedAccount'>, selectedAccount: $ElementType<State, 'selectedAccount'>,
}; };
type LocalState = {
wrapper: ?HTMLElement,
};
const Wrapper = styled.div` const Wrapper = styled.div`
position: relative; position: relative;
@ -68,9 +71,18 @@ const StyledNavLink = styled(NavLink)`
} }
`; `;
class TopNavigationAccount extends React.PureComponent<Props> { class TopNavigationAccount extends React.PureComponent<Props, LocalState> {
constructor(props) {
super(props);
this.state = {
wrapper: null,
};
}
wrapperRefCallback = (element: ?HTMLElement) => { wrapperRefCallback = (element: ?HTMLElement) => {
this.wrapper = element; this.setState({
wrapper: element,
});
} }
wrapper: ?HTMLElement; wrapper: ?HTMLElement;
@ -91,7 +103,7 @@ class TopNavigationAccount extends React.PureComponent<Props> {
{network.type === 'ethereum' {network.type === 'ethereum'
&& <StyledNavLink to={`${basePath}/signverify`}><FormattedMessage {...l10nMessages.TR_SIGN_AND_VERIFY} /></StyledNavLink> && <StyledNavLink to={`${basePath}/signverify`}><FormattedMessage {...l10nMessages.TR_SIGN_AND_VERIFY} /></StyledNavLink>
} }
<Indicator pathname={pathname} wrapper={() => this.wrapper} /> <Indicator pathname={pathname} wrapper={() => this.state.wrapper} />
</Wrapper> </Wrapper>
); );
} }

@ -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 isSendButtonDisabled: boolean = Object.keys(errors).length > 0 || total === '0' || amount.length === 0 || address.length === 0 || sending;
let sendButtonText = <FormattedMessage {...l10nSendMessages.TR_SEND} values={{ amount: `${total} ${network.symbol}` }} />; let sendButtonText = <FormattedMessage {...l10nSendMessages.TR_SEND} values={{ amount: '' }} />;
if (total !== '0') {
sendButtonText = <FormattedMessage {...l10nSendMessages.TR_SEND} values={{ amount: `${total} ${network.symbol}` }} />;
}
if (!device.connected) { if (!device.connected) {
sendButtonText = <FormattedMessage {...l10nSendMessages.TR_DEVICE_IS_NOT_CONNECTED} />; sendButtonText = <FormattedMessage {...l10nSendMessages.TR_DEVICE_IS_NOT_CONNECTED} />;
isSendButtonDisabled = true; isSendButtonDisabled = true;

@ -19,8 +19,11 @@ const Wrapper = styled.div`
display: flex; display: flex;
flex: 1; flex: 1;
flex-direction: row; flex-direction: row;
flex-wrap: wrap;
background: ${colors.WHITE}; background: ${colors.WHITE};
@media screen and (max-width: ${SCREEN_SIZE.MD}) {
flex-wrap: wrap;
}
`; `;
const Row = styled.div` const Row = styled.div`
@ -31,11 +34,6 @@ const RowButtons = styled(Row)`
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: flex-end; justify-content: flex-end;
@media all and (max-width: 850px) {
flex-wrap: wrap;
margin: -5px;
}
`; `;
const StyledButton = styled(Button)` const StyledButton = styled(Button)`
@ -45,15 +43,6 @@ const StyledButton = styled(Button)`
&:first-child { &:first-child {
margin-left: 0; margin-left: 0;
} }
@media all and (max-width: 850px) {
flex: 1;
margin: 5px;
&:first-child {
margin-left: 5px;
}
}
`; `;
const Column = styled.div` const Column = styled.div`
@ -61,7 +50,7 @@ const Column = styled.div`
flex: 1 1 50%; flex: 1 1 50%;
flex-direction: column; flex-direction: column;
@media screen and (max-width: ${SCREEN_SIZE.XS}) { @media screen and (max-width: ${SCREEN_SIZE.MD}) {
flex: 1 1 100%; flex: 1 1 100%;
} }
`; `;
@ -71,7 +60,7 @@ const Sign = styled(Column)``;
const Verify = styled(Column)` const Verify = styled(Column)`
padding-left: 20px; padding-left: 20px;
@media screen and (max-width: ${SCREEN_SIZE.XS}) { @media screen and (max-width: ${SCREEN_SIZE.MD}) {
padding-left: 0px; padding-left: 0px;
} }
`; `;

@ -8,6 +8,7 @@ import { ConnectedRouter } from 'connected-react-router';
import ConnectedIntlProvider from 'support/ConnectedIntlProvider'; import ConnectedIntlProvider from 'support/ConnectedIntlProvider';
import ErrorBoundary from 'support/ErrorBoundary'; import ErrorBoundary from 'support/ErrorBoundary';
import ImagesPreloader from 'support/ImagesPreloader'; import ImagesPreloader from 'support/ImagesPreloader';
import Version from 'views/Landing/views/Version';
import { getPattern } from 'support/routes'; import { getPattern } from 'support/routes';
// landing views // landing views
@ -40,6 +41,7 @@ const App = () => (
<ConnectedRouter history={history}> <ConnectedRouter history={history}>
<Switch> <Switch>
<Route exact path={getPattern('landing-home')} component={RootView} /> <Route exact path={getPattern('landing-home')} component={RootView} />
<Route exact path={getPattern('landing-version')} component={Version} />
<Route exact path={getPattern('landing-bridge')} component={InstallBridge} /> <Route exact path={getPattern('landing-bridge')} component={InstallBridge} />
<Route exact path={getPattern('landing-import')} component={ImportView} /> <Route exact path={getPattern('landing-import')} component={ImportView} />
<Route> <Route>

@ -3,14 +3,15 @@ import GitRevisionPlugin from 'git-revision-webpack-plugin';
import HtmlWebpackPlugin from 'html-webpack-plugin'; import HtmlWebpackPlugin from 'html-webpack-plugin';
import FriendlyErrorsWebpackPlugin from 'friendly-errors-webpack-plugin'; import FriendlyErrorsWebpackPlugin from 'friendly-errors-webpack-plugin';
import WebpackBuildNotifierPlugin from 'webpack-build-notifier'; import WebpackBuildNotifierPlugin from 'webpack-build-notifier';
import packageJson from '../package.json';
// turn on for bundle analyzing
// import { BundleAnalyzerPlugin } from 'webpack-bundle-analyzer';
import { import {
SRC, BUILD, PORT, PUBLIC, TRANSLATIONS, SRC, BUILD, PORT, PUBLIC, TRANSLATIONS,
} from './constants'; } from './constants';
// turn on for bundle analyzing
// import { BundleAnalyzerPlugin } from 'webpack-bundle-analyzer';
const gitRevisionPlugin = new GitRevisionPlugin(); const gitRevisionPlugin = new GitRevisionPlugin();
module.exports = { module.exports = {
@ -103,6 +104,7 @@ module.exports = {
suppressSuccess: true, suppressSuccess: true,
}), }),
new webpack.DefinePlugin({ new webpack.DefinePlugin({
VERSION: JSON.stringify(packageJson.version),
COMMITHASH: JSON.stringify(gitRevisionPlugin.commithash()), COMMITHASH: JSON.stringify(gitRevisionPlugin.commithash()),
}), }),
new HtmlWebpackPlugin({ new HtmlWebpackPlugin({

@ -3,6 +3,7 @@ import GitRevisionPlugin from 'git-revision-webpack-plugin';
import HtmlWebpackPlugin from 'html-webpack-plugin'; import HtmlWebpackPlugin from 'html-webpack-plugin';
import FriendlyErrorsWebpackPlugin from 'friendly-errors-webpack-plugin'; import FriendlyErrorsWebpackPlugin from 'friendly-errors-webpack-plugin';
import CopyWebpackPlugin from 'copy-webpack-plugin'; import CopyWebpackPlugin from 'copy-webpack-plugin';
import packageJson from '../package.json';
import { import {
SRC, BUILD, PUBLIC, TRANSLATIONS, SRC, BUILD, PUBLIC, TRANSLATIONS,
} from './constants'; } from './constants';
@ -67,6 +68,7 @@ module.exports = {
plugins: [ plugins: [
new webpack.DefinePlugin({ new webpack.DefinePlugin({
'process.env.BUILD': JSON.stringify(process.env.BUILD), 'process.env.BUILD': JSON.stringify(process.env.BUILD),
VERSION: JSON.stringify(packageJson.version),
COMMITHASH: JSON.stringify(gitRevisionPlugin.commithash()), COMMITHASH: JSON.stringify(gitRevisionPlugin.commithash()),
}), }),
new HtmlWebpackPlugin({ new HtmlWebpackPlugin({

@ -934,6 +934,13 @@
resolved "https://registry.yarnpkg.com/@types/bluebird/-/bluebird-3.5.18.tgz#6a60435d4663e290f3709898a4f75014f279c4d6" resolved "https://registry.yarnpkg.com/@types/bluebird/-/bluebird-3.5.18.tgz#6a60435d4663e290f3709898a4f75014f279c4d6"
integrity sha512-OTPWHmsyW18BhrnG5x8F7PzeZ2nFxmHGb42bZn79P9hl+GI5cMzyPgQTwNjbem0lJhoru/8vtjAFCUOu3+gE2w== 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": "@types/chai-jquery@1.1.35":
version "1.1.35" version "1.1.35"
resolved "https://registry.yarnpkg.com/@types/chai-jquery/-/chai-jquery-1.1.35.tgz#9a8f0a39ec0851b2768a8f8c764158c2a2568d04" 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" resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328"
integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== 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" version "2.4.0"
resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-2.4.0.tgz#838a992da9f9d737e0f4b2db0be62bb09dd0c5e8" 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" version "1.5.0"
resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz#b06873934bc5e344fef611a196a6faae0aee015a" resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz#b06873934bc5e344fef611a196a6faae0aee015a"
connected-react-router@^6.2.2: connected-react-router@6.0.0:
version "6.2.2" version "6.0.0"
resolved "https://registry.yarnpkg.com/connected-react-router/-/connected-react-router-6.2.2.tgz#10ed0942ee2032de7cb0fd8479bde526853906ed" resolved "https://registry.yarnpkg.com/connected-react-router/-/connected-react-router-6.0.0.tgz#cb7ccbbc5ed353832ecd91d68289c916e8aba734"
integrity sha512-tPI3s7yYtnTt/XLoQFsQqIEQxdQCrsZltEdozjG7LPkOTNglJJ7WqUqnlnh9thC6ebavfaJoTtPa9G2EibuJbg== integrity sha512-TarPqf2wY3cz993Mw3eBg2U12M5OmaGwKzJsinvRQh61nKb8WMUvimyhu6u2HeWS8625PHFXjNOU0OIAMWj/bQ==
dependencies: dependencies:
immutable "^3.8.1" immutable "^3.8.1"
seamless-immutable "^7.1.3" seamless-immutable "^7.1.3"
@ -4238,14 +4250,14 @@ ethereumjs-util@^5.0.0:
rlp "^2.0.0" rlp "^2.0.0"
secp256k1 "^3.0.1" secp256k1 "^3.0.1"
ethereumjs-util@^5.2.0: ethereumjs-util@^6.0.0:
version "5.2.0" version "6.0.0"
resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-5.2.0.tgz#3e0c0d1741471acf1036052d048623dee54ad642" resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-6.0.0.tgz#f14841c182b918615afefd744207c7932c8536c0"
integrity sha512-CJAKdI0wgMbQFLlLRtZKGcy/L6pzVRgelIZqRqNbuVFM3K9VEnyfbcvz0ncWMRNCe4kaHWjwRYQcYMucmwsnWA== integrity sha512-E3yKUyl0Fs95nvTFQZe/ZSNcofhDzUsDlA5y2uoRmf1+Ec7gpGhNCsgKkZBRh7Br5op8mJcYF/jFbmjj909+nQ==
dependencies: dependencies:
bn.js "^4.11.0" bn.js "^4.11.0"
create-hash "^1.1.2" create-hash "^1.1.2"
ethjs-util "^0.1.3" ethjs-util "^0.1.6"
keccak "^1.0.2" keccak "^1.0.2"
rlp "^2.0.0" rlp "^2.0.0"
safe-buffer "^5.1.1" safe-buffer "^5.1.1"
@ -4282,6 +4294,14 @@ ethjs-util@^0.1.3:
is-hex-prefixed "1.0.0" is-hex-prefixed "1.0.0"
strip-hex-prefix "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: event-stream@~3.3.0:
version "3.3.4" version "3.3.4"
resolved "http://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571" 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" object-assign "^4.1.1"
prop-types "^15.6.0" prop-types "^15.6.0"
react-dom@^16.8.0: react-dom@^16.8.1:
version "16.8.0" version "16.8.1"
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.8.0.tgz#18f28d4be3571ed206672a267c66dd083145a9c4" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.8.1.tgz#ec860f98853d09d39bafd3a6f1e12389d283dbb4"
integrity sha512-dBzoAGYZpW9Yggp+CzBPC7q1HmWSeRc93DWrwbskmG1eHJWznZB/p0l/Sm+69leIGUS91AXPB/qB3WcPnKx8Sw== integrity sha512-N74IZUrPt6UiDjXaO7UbDDFXeUXnVhZzeRLy/6iqqN1ipfjrhR60Bp5NuBK+rv3GMdqdIuwIl22u1SYwf330bg==
dependencies: dependencies:
loose-envify "^1.1.0" loose-envify "^1.1.0"
object-assign "^4.1.1" object-assign "^4.1.1"
prop-types "^15.6.2" prop-types "^15.6.2"
scheduler "^0.13.0" scheduler "^0.13.1"
react-hot-loader@^4.6.5: react-hot-loader@^4.6.5:
version "4.6.5" version "4.6.5"
@ -8933,15 +8953,15 @@ react-transition-group@^2.5.3:
object-assign "^4.1.1" object-assign "^4.1.1"
prop-types "^15.6.0" prop-types "^15.6.0"
react@^16.8.0: react@^16.8.1:
version "16.8.0" version "16.8.1"
resolved "https://registry.yarnpkg.com/react/-/react-16.8.0.tgz#8533f0e4af818f448a276eae71681d09e8dd970a" resolved "https://registry.yarnpkg.com/react/-/react-16.8.1.tgz#ae11831f6cb2a05d58603a976afc8a558e852c4a"
integrity sha512-g+nikW2D48kqgWSPwNo0NH9tIGG3DsQFlrtrQ1kj6W77z5ahyIHG0w8kPpz4Sdj6gyLnz0lEd/xsjOoGge2MYQ== integrity sha512-wLw5CFGPdo7p/AgteFz7GblI2JPOos0+biSoxf1FPsGxWQZdN/pj6oToJs1crn61DL3Ln7mN86uZ4j74p31ELQ==
dependencies: dependencies:
loose-envify "^1.1.0" loose-envify "^1.1.0"
object-assign "^4.1.1" object-assign "^4.1.1"
prop-types "^15.6.2" prop-types "^15.6.2"
scheduler "^0.13.0" scheduler "^0.13.1"
read-pkg-up@^1.0.1: read-pkg-up@^1.0.1:
version "1.0.1" version "1.0.1"
@ -9563,21 +9583,14 @@ sax@^1.2.4:
version "1.2.4" version "1.2.4"
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
scheduler@^0.13.0: scheduler@^0.13.1:
version "0.13.0" version "0.13.1"
resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.13.0.tgz#e701f62e1b3e78d2bbb264046d4e7260f12184dd" resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.13.1.tgz#1a217df1bfaabaf4f1b92a9127d5d732d85a9591"
integrity sha512-w7aJnV30jc7OsiZQNPVmBc+HooZuvQZIZIShKutC3tnMFMkcwVN9CZRRSSNw03OnSCKmEkK8usmwcw6dqBaLzw== integrity sha512-VJKOkiKIN2/6NOoexuypwSrybx13MY7NSy9RNt8wPvZDMRT1CW6qlpF5jXRToXNHz3uWzbm2elNpZfXfGPqP9A==
dependencies: dependencies:
loose-envify "^1.1.0" loose-envify "^1.1.0"
object-assign "^4.1.1" 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: schema-utils@^1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" 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: dependencies:
minimalistic-assert "^1.0.0" minimalistic-assert "^1.0.0"
web3-bzz@1.0.0-beta.41: web3-bzz@1.0.0-beta.43:
version "1.0.0-beta.41" version "1.0.0-beta.43"
resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.0.0-beta.41.tgz#3f9eaac2376ce56aa4d3f5ab23299a6d8c9cb658" resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.0.0-beta.43.tgz#6c2ee480fe74212c70c1c712a20516c64cfb086b"
integrity sha512-vLNYGlm3tmi31huIpQpizHxXw5yidx5FtF4zze5VsdMH3r7iVzuRjgShdB/XLUFvL7sdnJ0KNW2ULrScqaZ9aA== integrity sha512-5h0MCfJaguwI2TbqSp9elmbZs201uiorRqSxl/TUqeZkzj7hvBjI4nzaCipNxUDoJq2N9Z4J4qVEppj9SsyVLg==
dependencies: dependencies:
"@babel/runtime" "^7.3.1" "@babel/runtime" "^7.3.1"
"@types/node" "^10.12.18" "@types/node" "^10.12.18"
lodash "^4.17.11" lodash "^4.17.11"
swarm-js "^0.1.39" swarm-js "^0.1.39"
web3-core-helpers@1.0.0-beta.41: web3-core-helpers@1.0.0-beta.43:
version "1.0.0-beta.41" version "1.0.0-beta.43"
resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.0.0-beta.41.tgz#12d99b249f8436c714905bb345365ef8ce515989" resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.0.0-beta.43.tgz#4dfd75e21fd1dff55d8d526512afb9c0a6830e70"
integrity sha512-dYUYkN8XjSfAOeok8Od4nkzTWVnzKx65bPTJ+aUKuIegZ2qEuzwu6Aalfy09MGxs9tlylkblTg6nk1t7YoOgcQ== integrity sha512-AtDS3elq03vCj4YsivP9WM27BKGEpGg1y6zmbe+gXY8i0MGOiUo3yrolIoeAw5hZzwEyRdBgCzfkL8Mfb7aABA==
dependencies: dependencies:
"@babel/runtime" "^7.3.1" "@babel/runtime" "^7.3.1"
lodash "^4.17.11" lodash "^4.17.11"
web3-eth-iban "1.0.0-beta.41" web3-eth-iban "1.0.0-beta.43"
web3-utils "1.0.0-beta.41" web3-utils "1.0.0-beta.43"
web3-core-method@1.0.0-beta.41: web3-core-method@1.0.0-beta.43:
version "1.0.0-beta.41" version "1.0.0-beta.43"
resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.0.0-beta.41.tgz#d19eaf02a56918a31a80db4218b8f196bf55f0b3" resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.0.0-beta.43.tgz#e2e7f3751f806ca87758fb43b7181c73378e8547"
integrity sha512-+E70WoTqExXRJRIOBRo4KJVArhR8o5Zh38djQjo/Ddaj5Eu7KiiPTK0z0axXjUQnFyrQbbb1nUmbBJboVxgvKA== integrity sha512-lZvU1FAEdBIm65KmqpYDWIqFaK5aqoNtgLgxqPs6xMEDX1MCqzoimKlNaGZn3oLxt2wpCawtaCymqE4v2KBf9w==
dependencies: dependencies:
"@babel/runtime" "^7.3.1" "@babel/runtime" "^7.3.1"
eventemitter3 "3.1.0" eventemitter3 "3.1.0"
web3-core "1.0.0-beta.41" lodash "^4.17.11"
web3-core-helpers "1.0.0-beta.41" web3-core "1.0.0-beta.43"
web3-core-promievent "1.0.0-beta.41" web3-core-helpers "1.0.0-beta.43"
web3-core-subscriptions "1.0.0-beta.41" web3-core-promievent "1.0.0-beta.43"
web3-utils "1.0.0-beta.41" web3-core-subscriptions "1.0.0-beta.43"
web3-utils "1.0.0-beta.43"
web3-core-promievent@1.0.0-beta.41: web3-core-promievent@1.0.0-beta.43:
version "1.0.0-beta.41" version "1.0.0-beta.43"
resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.0.0-beta.41.tgz#b50c780aaf52ef547b3c6508f7f0b464bc796cfb" resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.0.0-beta.43.tgz#759ee03d8db179e8c439ade69b863c9b79c34d29"
integrity sha512-0ByKXY26lGRKHz05MtqiZwB5cILvdTbNlUdQU94lMFm2KD5XKRvoQjeRAnugr07d8L2q+3LIU1vIGy/OLLi9sQ== integrity sha512-HaQY6FuP+I0cn+Wi87Us24P4tAjUbhoDVtzE4K9CtmFTY1lvIQSLn+pzGhbwDYyKyovQpVMS/oroaI8QI46N1A==
dependencies: dependencies:
"@babel/runtime" "^7.3.1" "@babel/runtime" "^7.3.1"
eventemitter3 "^3.1.0" eventemitter3 "^3.1.0"
web3-core-subscriptions@1.0.0-beta.41: web3-core-subscriptions@1.0.0-beta.43:
version "1.0.0-beta.41" version "1.0.0-beta.43"
resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.0.0-beta.41.tgz#5ff628ce7b7c2c59fda2615ff78059afb4287578" resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.0.0-beta.43.tgz#c0ac44558fc2769ab7f4ade07c3be5643b920bbd"
integrity sha512-kSaWfnDuPK3IQXMuNCixe7aq63qOBa2/21WKTpsXNA2yiwPBUmVylwiRMYwhf1ieZFPj9baEtVP8+0wxpXGE4g== integrity sha512-M7XuypZZvkPZNQg415j6CZ4Q0Mukydpup4aKiUwpQreJ2CnM05etaNkyhKydVRiAB3v7m63MLTz+LyHBsDjZKA==
dependencies: dependencies:
"@babel/runtime" "^7.3.1" "@babel/runtime" "^7.3.1"
eventemitter3 "^3.1.0" eventemitter3 "^3.1.0"
lodash "^4.17.11" lodash "^4.17.11"
web3-core-helpers "1.0.0-beta.41" web3-core-helpers "1.0.0-beta.43"
web3-utils "1.0.0-beta.41" web3-utils "1.0.0-beta.43"
web3-core@1.0.0-beta.41: web3-core@1.0.0-beta.43:
version "1.0.0-beta.41" version "1.0.0-beta.43"
resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.0.0-beta.41.tgz#91068e6364c7a95301c243782255192bae5e18ea" resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.0.0-beta.43.tgz#e6337e4f1d08b102b45c418376f1488e62aa688e"
integrity sha512-giFB+1G6NyF0r8UAdmOf4j1d9uyrKjm38bz4KKVBGMaM87KvuDAtu0/1RajdPzpQZ3e424CV5VVSxibvVv5fEg== integrity sha512-YkLehXkKpI0jyVqyEsuYR1JUeCcuCs2ihXbV4bPyM9DNbw+RryYZoyb7tMP3LtRuXFIDfBxn+rw3TrKiiAfgMQ==
dependencies: dependencies:
"@babel/runtime" "^7.3.1" "@babel/runtime" "^7.3.1"
"@types/node" "^10.12.18" "@types/node" "^10.12.18"
lodash "^4.17.11" 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: web3-eth-abi@1.0.0-beta.43:
version "1.0.0-beta.41" version "1.0.0-beta.43"
resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.0.0-beta.41.tgz#52ce83ee29cfbef7bca5577272ef544bf4ac735e" resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.0.0-beta.43.tgz#fd07ad664f9a2030a451f8128a65e426ff407490"
integrity sha512-p/AcM7ASsYaHsqtR8vZD0tMQKnFC3ZMHYfI1HcEvyeMM3/hhLHPXIDGgqVVSTil5tJFz38YWzPGt/cWplIQPqw== integrity sha512-2ghl2N6XHkHlUjkJFIOk8atiNYUFh+fijNci+lxMzeY7RoYA4lIF+o3Z422FhKlZdw8ySPaILTQ8wcwjiiuaEw==
dependencies: dependencies:
"@babel/runtime" "^7.3.1" "@babel/runtime" "^7.3.1"
ethers "^4.0.0" ethers "^4.0.0"
lodash "^4.17.11" 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: web3-eth-accounts@1.0.0-beta.43:
version "1.0.0-beta.41" version "1.0.0-beta.43"
resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.0.0-beta.41.tgz#9a272100eb9e3f508fbc58bea389d654e1786928" resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.0.0-beta.43.tgz#abbcda793b058211c912127e89247639165aa5b0"
integrity sha512-+E+DIOF7B/dlln0aPh05FtYh1vk5oBd/bDOyXI4ki0R3L+1zGppUDxm7lOURqbYE0Ny5RFw4i8i1ygFNCTpBBw== integrity sha512-GaHW0ELydWkbd6uiSsjagd9egeGNG9kaAeSjuwNlcouXMMuaC+TkYTwvy7vVFhk+/qusxdw0jWr+PBWcc0q6/g==
dependencies: dependencies:
"@babel/runtime" "^7.3.1" "@babel/runtime" "^7.3.1"
crypto-browserify "3.12.0" crypto-browserify "3.12.0"
@ -11250,107 +11264,107 @@ web3-eth-accounts@1.0.0-beta.41:
lodash "^4.17.11" lodash "^4.17.11"
scrypt.js "0.2.0" scrypt.js "0.2.0"
uuid "3.3.2" uuid "3.3.2"
web3-core "1.0.0-beta.41" web3-core "1.0.0-beta.43"
web3-core-helpers "1.0.0-beta.41" web3-core-helpers "1.0.0-beta.43"
web3-core-method "1.0.0-beta.41" web3-core-method "1.0.0-beta.43"
web3-providers "1.0.0-beta.41" web3-providers "1.0.0-beta.43"
web3-utils "1.0.0-beta.41" web3-utils "1.0.0-beta.43"
web3-eth-contract@1.0.0-beta.41: web3-eth-contract@1.0.0-beta.43:
version "1.0.0-beta.41" version "1.0.0-beta.43"
resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.0.0-beta.41.tgz#9196df3b78eab00fe5357ba19b8b57e03bbdff2e" resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.0.0-beta.43.tgz#59cfac2ecaa86fadff84d7df7cd37a077fbe84b7"
integrity sha512-irzF24h+R4nVOH5S54YwOBqyXGGJ/tj1SgW+cKRtUPzRdGTqefBv7jdMcpV7N7J0jZObfNxA5bnUBanvP/Ef0g== integrity sha512-/ydJTHgM2yzOF8N2lLbMOp31d6ne/KdAC/EAujWeT0i5kf78X4cWGe0payGYbZ10Qj0S1OsfBS6RBqih7s2neA==
dependencies: dependencies:
"@babel/runtime" "^7.3.1" "@babel/runtime" "^7.3.1"
lodash "^4.17.11" lodash "^4.17.11"
web3-core "1.0.0-beta.41" web3-core "1.0.0-beta.43"
web3-core-helpers "1.0.0-beta.41" web3-core-helpers "1.0.0-beta.43"
web3-core-method "1.0.0-beta.41" web3-core-method "1.0.0-beta.43"
web3-core-promievent "1.0.0-beta.41" web3-core-promievent "1.0.0-beta.43"
web3-core-subscriptions "1.0.0-beta.41" web3-core-subscriptions "1.0.0-beta.43"
web3-eth-abi "1.0.0-beta.41" web3-eth-abi "1.0.0-beta.43"
web3-eth-accounts "1.0.0-beta.41" web3-eth-accounts "1.0.0-beta.43"
web3-providers "1.0.0-beta.41" web3-providers "1.0.0-beta.43"
web3-utils "1.0.0-beta.41" web3-utils "1.0.0-beta.43"
web3-eth-ens@1.0.0-beta.41: web3-eth-ens@1.0.0-beta.43:
version "1.0.0-beta.41" version "1.0.0-beta.43"
resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.0.0-beta.41.tgz#1fa2ae69b5440b6c77804464025e741682cd1659" resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.0.0-beta.43.tgz#894332725418c4582b0a6a727cc69b1ab6bceac0"
integrity sha512-bB/LME1//Hw9CGeKfl1D6LfLNoDZdESavzNMdXFukHqB7QtfC1ck6DzEz2TfHOIigoNy0XPPSBpqZH/LdrH8Nw== integrity sha512-SVpukYXhGOJTdGxztzvzAOZJMbjn9kItV8iBAUtTnffMvA09BPI+VcC4KYvmKfruhbkm3EJnKox8PrY36MukNQ==
dependencies: dependencies:
"@babel/runtime" "^7.3.1" "@babel/runtime" "^7.3.1"
eth-ens-namehash "2.0.8" eth-ens-namehash "2.0.8"
lodash "^4.17.11" lodash "^4.17.11"
web3-core "1.0.0-beta.41" web3-core "1.0.0-beta.43"
web3-core-helpers "1.0.0-beta.41" web3-core-helpers "1.0.0-beta.43"
web3-core-method "1.0.0-beta.41" web3-core-method "1.0.0-beta.43"
web3-core-promievent "1.0.0-beta.41" web3-core-promievent "1.0.0-beta.43"
web3-eth-abi "1.0.0-beta.41" web3-eth-abi "1.0.0-beta.43"
web3-eth-contract "1.0.0-beta.41" web3-eth-contract "1.0.0-beta.43"
web3-net "1.0.0-beta.41" web3-net "1.0.0-beta.43"
web3-providers "1.0.0-beta.41" web3-providers "1.0.0-beta.43"
web3-utils "1.0.0-beta.41" web3-utils "1.0.0-beta.43"
web3-eth-iban@1.0.0-beta.41: web3-eth-iban@1.0.0-beta.43:
version "1.0.0-beta.41" version "1.0.0-beta.43"
resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.0.0-beta.41.tgz#a651ae9043f552945c48ce10f50c99cf760ff15a" resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.0.0-beta.43.tgz#d48aa1c11707a6dddd168e3bf2ab00b766a79a55"
integrity sha512-NbaBVApKIEB/1G0OVio0IOWmEvBM87lGO/bGB1xkH44GDdmBaLihBe7KoWcE81AEkBM3l24w7hPApOuD1qfUqg== integrity sha512-qJMzjWWlHJuWFFYO4meoPfUQMBaUZ4RZnD2jUPAtjnoVa5s4Kc1j4MiSPsAbxSjVdy0gRrCydIufAtBVYCV8eg==
dependencies: dependencies:
"@babel/runtime" "^7.3.1" "@babel/runtime" "^7.3.1"
bn.js "4.11.8" 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: web3-eth-personal@1.0.0-beta.43:
version "1.0.0-beta.41" version "1.0.0-beta.43"
resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.0.0-beta.41.tgz#fa2b2b1e90582986f194639db6e2395a90a46c2a" resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.0.0-beta.43.tgz#8dc8eeb95479e6c57db489f494c66223fa82b1ce"
integrity sha512-yBzw21B/F5ld7SCReBVk/fxGlQBaRYmC4/lqb1M1DoSI8xjVUF8tJuxbecGG8dofS5f86vmB+CEA1CdSiRx94A== integrity sha512-NoPZHaetrFaVSCLpjIOG8DQvPPVpSf41Z5PM4VMRGLXC1Ofkomwr+MF3ewdHMjjRTUxJam/ksCFHbsNDxOM54w==
dependencies: dependencies:
"@babel/runtime" "^7.3.1" "@babel/runtime" "^7.3.1"
web3-core "1.0.0-beta.41" web3-core "1.0.0-beta.43"
web3-core-helpers "1.0.0-beta.41" web3-core-helpers "1.0.0-beta.43"
web3-core-method "1.0.0-beta.41" web3-core-method "1.0.0-beta.43"
web3-net "1.0.0-beta.41" web3-net "1.0.0-beta.43"
web3-providers "1.0.0-beta.41" web3-providers "1.0.0-beta.43"
web3-utils "1.0.0-beta.41" web3-utils "1.0.0-beta.43"
web3-eth@1.0.0-beta.41: web3-eth@1.0.0-beta.43:
version "1.0.0-beta.41" version "1.0.0-beta.43"
resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.0.0-beta.41.tgz#e78b4a3cf7e83b9999d1525d081c433bd71c9e45" resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.0.0-beta.43.tgz#754448452b168611c574a2f838e273a8a728ec56"
integrity sha512-gLQaLB+aIr2iIU3eVMbsR1fMF38pgPaYeK0NvCuO0s87a/PrlEREwGxNQhxjAjZXFWgWGF1fQ2tiojP8toezrQ== integrity sha512-RUxbgPY4lyYozYwdI6ClyJrLACoY1JNywjM/wwno212B2/aDnzOMKPeZdi5py7pPh/RKlfEPOdsT6kVYf79S3A==
dependencies: dependencies:
"@babel/runtime" "^7.3.1" "@babel/runtime" "^7.3.1"
web3-core "1.0.0-beta.41" web3-core "1.0.0-beta.43"
web3-core-helpers "1.0.0-beta.41" web3-core-helpers "1.0.0-beta.43"
web3-core-method "1.0.0-beta.41" web3-core-method "1.0.0-beta.43"
web3-core-promievent "1.0.0-beta.41" web3-core-promievent "1.0.0-beta.43"
web3-core-subscriptions "1.0.0-beta.41" web3-core-subscriptions "1.0.0-beta.43"
web3-eth-abi "1.0.0-beta.41" web3-eth-abi "1.0.0-beta.43"
web3-eth-accounts "1.0.0-beta.41" web3-eth-accounts "1.0.0-beta.43"
web3-eth-contract "1.0.0-beta.41" web3-eth-contract "1.0.0-beta.43"
web3-eth-ens "1.0.0-beta.41" web3-eth-ens "1.0.0-beta.43"
web3-eth-iban "1.0.0-beta.41" web3-eth-iban "1.0.0-beta.43"
web3-eth-personal "1.0.0-beta.41" web3-eth-personal "1.0.0-beta.43"
web3-net "1.0.0-beta.41" web3-net "1.0.0-beta.43"
web3-providers "1.0.0-beta.41" web3-providers "1.0.0-beta.43"
web3-utils "1.0.0-beta.41" web3-utils "1.0.0-beta.43"
web3-net@1.0.0-beta.41: web3-net@1.0.0-beta.43:
version "1.0.0-beta.41" version "1.0.0-beta.43"
resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.0.0-beta.41.tgz#a371805739126bdf6fa3a404fcb9ec0a29480314" resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.0.0-beta.43.tgz#43635466a100ff3f6702a784223c24965a48dc21"
integrity sha512-JbefIb0jas6HhkQFx24UzhX0cy4ZZdebNk6eqAQ9G8YDz9yq8Cc7FwVppZDQW7Ka+O7StpRLUzoxXIIeIfiSkA== integrity sha512-fWoTlXneRG/4yOTQ+c6iwDcu63OE4PnB+PRnBFLtArTPVr6U1ndQwRUOzlm8PgkGd6ieHZuFnrj3uGcUR6ZU9A==
dependencies: dependencies:
"@babel/runtime" "^7.3.1" "@babel/runtime" "^7.3.1"
lodash "^4.17.11" lodash "^4.17.11"
web3-core "1.0.0-beta.41" web3-core "1.0.0-beta.43"
web3-core-helpers "1.0.0-beta.41" web3-core-helpers "1.0.0-beta.43"
web3-core-method "1.0.0-beta.41" web3-core-method "1.0.0-beta.43"
web3-providers "1.0.0-beta.41" web3-providers "1.0.0-beta.43"
web3-utils "1.0.0-beta.41" web3-utils "1.0.0-beta.43"
web3-providers@1.0.0-beta.41: web3-providers@1.0.0-beta.43:
version "1.0.0-beta.41" version "1.0.0-beta.43"
resolved "https://registry.yarnpkg.com/web3-providers/-/web3-providers-1.0.0-beta.41.tgz#64e7d61429b677280c9dcb7d310f3a0759c8f8a9" resolved "https://registry.yarnpkg.com/web3-providers/-/web3-providers-1.0.0-beta.43.tgz#158f4a0ac8325b484c7383a01d1d7a3ab638926a"
integrity sha512-KTx9yw2inJwUvl5BDHzAYPQ5WmUAPaO/IxWHvS7WvPOCiQonq2HbSF9bOSl5uWkqWeqhIl0nUhGKU7ED5q6yLQ== integrity sha512-1BMXNLzmQ9HlX8lBq9Eze4yE1VMFekp/fp85hL+garX3fVEeIDVNtA7/AnWGaoe19UMNx8WGAPL19pgUnkoCCQ==
dependencies: dependencies:
"@babel/runtime" "^7.3.1" "@babel/runtime" "^7.3.1"
"@types/node" "^10.12.18" "@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" websocket "git://github.com/frozeman/WebSocket-Node.git#browserifyCompatible"
xhr2-cookies "1.1.0" xhr2-cookies "1.1.0"
web3-shh@1.0.0-beta.41: web3-shh@1.0.0-beta.43:
version "1.0.0-beta.41" version "1.0.0-beta.43"
resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.0.0-beta.41.tgz#d24bf9a8a1993e7ee15a7523838dc8ab8468dee4" resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.0.0-beta.43.tgz#2231540323946e29f590bbfe36bae9c47b4c4fd9"
integrity sha512-qFXmyAGh7oYizTv/vJWjMrSe5IMCBpU3IR1bliCd/GVqGKylH13N1oe8ifWk+EO8jPfFy7qWlJrbMKfAOAj2Lg== integrity sha512-S4Petfrb+998persyS/zuK4Qhc8BDqefVpMhAyMiF8tCbOSvP667L4cOV6FCq5peAJ/hJk1HEC3WUJlX5m6SBw==
dependencies: dependencies:
"@babel/runtime" "^7.3.1" "@babel/runtime" "^7.3.1"
web3-core "1.0.0-beta.41" web3-core "1.0.0-beta.43"
web3-core-helpers "1.0.0-beta.41" web3-core-helpers "1.0.0-beta.43"
web3-core-method "1.0.0-beta.41" web3-core-method "1.0.0-beta.43"
web3-core-subscriptions "1.0.0-beta.41" web3-core-subscriptions "1.0.0-beta.43"
web3-net "1.0.0-beta.41" web3-net "1.0.0-beta.43"
web3-providers "1.0.0-beta.41" web3-providers "1.0.0-beta.43"
web3-utils "1.0.0-beta.41" web3-utils "1.0.0-beta.43"
web3-utils@1.0.0-beta.41: web3-utils@1.0.0-beta.43:
version "1.0.0-beta.41" version "1.0.0-beta.43"
resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.0.0-beta.41.tgz#83301ffd85cbf9b99a8bd5ca828f96113a1ccc71" resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.0.0-beta.43.tgz#a8f167c7bc9ab0632e43ba3de5cf0aca12038d96"
integrity sha512-6Vf+jzZEsYoAvECm+/mQx4L0p5eOxpDmbR7baFUZpB+DQyNFBc3XPSMUNWHBLqe/OpXjDrS2TeYv40Ai8bd4bg== integrity sha512-fdV3TELMnbzV75awcRFFzbfpt+FhJrKUHFRmE1KSxFIPSDFTgTBo3KpCvS5D4PajXOAnNb0QbSML9ekSqKtx/A==
dependencies: dependencies:
"@babel/runtime" "^7.3.1" "@babel/runtime" "^7.3.1"
"@types/bn.js" "^4.11.4"
"@types/node" "^10.12.18" "@types/node" "^10.12.18"
bn.js "4.11.8" bn.js "4.11.8"
eth-lib "0.2.8" eth-lib "0.2.8"
@ -11390,23 +11405,23 @@ web3-utils@1.0.0-beta.41:
randomhex "0.1.5" randomhex "0.1.5"
utf8 "2.1.1" utf8 "2.1.1"
web3@1.0.0-beta.41: web3@1.0.0-beta.43:
version "1.0.0-beta.41" version "1.0.0-beta.43"
resolved "https://registry.yarnpkg.com/web3/-/web3-1.0.0-beta.41.tgz#ed2f7ae63d4db89820a4f6b0d4a0a7cc53eee5e1" resolved "https://registry.yarnpkg.com/web3/-/web3-1.0.0-beta.43.tgz#e378315a3262a90b93b453529ada7c82db5d76b1"
integrity sha512-G4s5GBLP+xxwcIhevc4rmSg1PpQB/ou6KGCAR6UqGaRXNkSysjjifU1eywaCpcbjIN5FXjIOh/HGjVMdkt0VZQ== integrity sha512-jEQJ4NHoMI3dPum/kiFiVapOa16Pi5dZ5WWg3A7IpRPlalmaQTV2EGffYmfLbLt0UbbpBhF2M2yXnaGLy4izLQ==
dependencies: dependencies:
"@babel/runtime" "^7.3.1" "@babel/runtime" "^7.3.1"
"@types/node" "^10.12.18" "@types/node" "^10.12.18"
web3-bzz "1.0.0-beta.41" web3-bzz "1.0.0-beta.43"
web3-core "1.0.0-beta.41" web3-core "1.0.0-beta.43"
web3-core-helpers "1.0.0-beta.41" web3-core-helpers "1.0.0-beta.43"
web3-core-method "1.0.0-beta.41" web3-core-method "1.0.0-beta.43"
web3-eth "1.0.0-beta.41" web3-eth "1.0.0-beta.43"
web3-eth-personal "1.0.0-beta.41" web3-eth-personal "1.0.0-beta.43"
web3-net "1.0.0-beta.41" web3-net "1.0.0-beta.43"
web3-providers "1.0.0-beta.41" web3-providers "1.0.0-beta.43"
web3-shh "1.0.0-beta.41" web3-shh "1.0.0-beta.43"
web3-utils "1.0.0-beta.41" web3-utils "1.0.0-beta.43"
webidl-conversions@^4.0.2: webidl-conversions@^4.0.2:
version "4.0.2" version "4.0.2"
@ -11525,10 +11540,10 @@ webpack-sources@^1.3.0:
source-list-map "^2.0.0" source-list-map "^2.0.0"
source-map "~0.6.1" source-map "~0.6.1"
webpack@^4.29.1: webpack@^4.29.3:
version "4.29.1" version "4.29.3"
resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.29.1.tgz#a6533d7bc6a6b1ed188cb029d53d231be777e175" resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.29.3.tgz#e0b406a7b4201ed5e4fb4f84fd7359f9a7db4647"
integrity sha512-dY3KyQIVeg6cDPj9G5Bnjy9Pt9SoCpbNWl0RDKHstbd3MWe0dG9ri4RQRpCm43iToy3zoA1IMOpFkJ8Clnc7FQ== integrity sha512-xPJvFeB+8tUflXFq+OgdpiSnsCD5EANyv56co5q8q8+YtEasn5Sj3kzY44mta+csCIEB0vneSxnuaHkOL2h94A==
dependencies: dependencies:
"@webassemblyjs/ast" "1.7.11" "@webassemblyjs/ast" "1.7.11"
"@webassemblyjs/helper-module-context" "1.7.11" "@webassemblyjs/helper-module-context" "1.7.11"
@ -11549,7 +11564,7 @@ webpack@^4.29.1:
mkdirp "~0.5.0" mkdirp "~0.5.0"
neo-async "^2.5.0" neo-async "^2.5.0"
node-libs-browser "^2.0.0" node-libs-browser "^2.0.0"
schema-utils "^0.4.4" schema-utils "^1.0.0"
tapable "^1.1.0" tapable "^1.1.0"
terser-webpack-plugin "^1.1.0" terser-webpack-plugin "^1.1.0"
watchpack "^1.5.0" watchpack "^1.5.0"

Loading…
Cancel
Save