diff --git a/.babelrc b/.babelrc
index ad8a1331703..5166f5e0e89 100644
--- a/.babelrc
+++ b/.babelrc
@@ -10,7 +10,6 @@
}
},
"plugins": [
- "babel-plugin-rewire",
"babel-plugin-styled-components",
"date-fns",
[
diff --git a/ios/Podfile.lock b/ios/Podfile.lock
index f254ba7cd49..8b682b9c6eb 100644
--- a/ios/Podfile.lock
+++ b/ios/Podfile.lock
@@ -35,11 +35,11 @@ PODS:
- DoubleConversion
- glog
- glog (0.3.5)
- - GoogleToolboxForMac/Defines (2.2.0)
- - GoogleToolboxForMac/Logger (2.2.0):
- - GoogleToolboxForMac/Defines (= 2.2.0)
- - "GoogleToolboxForMac/NSData+zlib (2.2.0)":
- - GoogleToolboxForMac/Defines (= 2.2.0)
+ - GoogleToolboxForMac/Defines (2.2.1)
+ - GoogleToolboxForMac/Logger (2.2.1):
+ - GoogleToolboxForMac/Defines (= 2.2.1)
+ - "GoogleToolboxForMac/NSData+zlib (2.2.1)":
+ - GoogleToolboxForMac/Defines (= 2.2.1)
- libwebp (1.0.2):
- libwebp/core (= 1.0.2)
- libwebp/dec (= 1.0.2)
@@ -69,7 +69,7 @@ PODS:
- nanopb/encode (= 0.3.901)
- nanopb/decode (0.3.901)
- nanopb/encode (0.3.901)
- - Protobuf (3.7.0)
+ - Protobuf (3.9.0)
- React (0.59.9):
- React/Core (= 0.59.9)
- react-native-blur (0.8.0):
@@ -149,7 +149,7 @@ PODS:
- React
- RNCMaskedView (0.1.1):
- React
- - RNDeviceInfo (2.3.0):
+ - RNDeviceInfo (2.3.1):
- React
- RNIOS11DeviceCheck (0.0.3):
- React
@@ -161,9 +161,9 @@ PODS:
- React
- RNStoreReview (0.1.5):
- React
- - SDWebImage (5.0.2):
- - SDWebImage/Core (= 5.0.2)
- - SDWebImage/Core (5.0.2)
+ - SDWebImage (5.0.6):
+ - SDWebImage/Core (= 5.0.6)
+ - SDWebImage/Core (5.0.6)
- yoga (0.59.9.React)
DEPENDENCIES:
@@ -279,18 +279,18 @@ SPEC CHECKSUMS:
Crashlytics: 55e24fc23989680285a21cb1146578d9d18e432c
DoubleConversion: bb338842f62ab1d708ceb63ec3d999f0f3d98ecd
Fabric: 25d0963b691fc97be566392243ff0ecef5a68338
- Firebase: 76ec2a7cde90fb4037793f83aeeca48451543487
- FirebaseAnalytics: b8bce8d5c40173328b8a4300da18c5c7e0a1908d
- FirebaseCore: 31d258ec80ea97e1e8e40ce00a7ba7297afb45c2
- FirebaseInstanceID: 4f7768a98c5c3c5bd9a4c9e431ea98dccc0a51f9
- FirebaseMessaging: 94579ae655d817287f029ebfebd5b0811fbb3a51
+ Firebase: 68afeeb05461db02d7c9e3215cda28068670f4aa
+ FirebaseAnalytics: b3628aea54c50464c32c393fb2ea032566e7ecc2
+ FirebaseCore: 62f1b792a49bb9e8b4073f24606d2c93ffc352f0
+ FirebaseInstanceID: f3f0657372592ecdfdfe2cac604a5a75758376a6
+ FirebaseMessaging: 6894b8fe0a0cf26c3b13dad729f1131654ae0bdb
FLAnimatedImage: 4a0b56255d9b05f18b6dd7ee06871be5d3b89e31
Folly: de497beb10f102453a1afa9edbf8cf8a251890de
glog: aefd1eb5dda2ab95ba0938556f34b98e2da3a60d
- GoogleToolboxForMac: ff31605b7d66400dcec09bed5861689aebadda4d
+ GoogleToolboxForMac: b3553629623a3b1bff17f555e736cd5a6d95ad55
libwebp: b068a3bd7c45f7460f6715be7bed1a18fd5d6b48
nanopb: 2901f78ea1b7b4015c860c2fdd1ea2fee1a18d48
- Protobuf: 7a877b7f3e5964e3fce995e2eb323dbc6831bb5a
+ Protobuf: 1097ca58584c8d9be81bfbf2c5ff5975648dd87a
React: a86b92f00edbe1873a63e4a212c29b7a7ad5224f
react-native-blur: cad4d93b364f91e7b7931b3fa935455487e5c33c
react-native-camera: f1fbfc336ba8ca6de5296190341d1b6022c71cff
@@ -300,13 +300,13 @@ SPEC CHECKSUMS:
RNAnalytics: d110195618296fed3907830911f01cb6e9be53d0
RNCAsyncStorage: 9436928b444c5f5361960a7eea051a697c244b68
RNCMaskedView: b79e193409a90bf6b5170d421684f437ff4e2278
- RNDeviceInfo: 65106cc87ad6f6f71ef2ecc667f4c59b840888e2
+ RNDeviceInfo: 74ee98a0b3ef57604ea9953f03eca549a9335160
RNIOS11DeviceCheck: a4a545fdd08230a17a8ce7608e95038ee23a32aa
RNLanguages: 962e562af0d34ab1958d89bcfdb64fafc37c513e
RNReanimated: 7a52c90473b5e81c13408d40d797b98387eaddde
RNScreens: f28b48b8345f2f5f39ed6195518291515032a788
RNStoreReview: 62d6afd7c37db711a594bbffca6b0ea3a812b7a8
- SDWebImage: 6764b5fa0f73c203728052955dbefa2bf1f33282
+ SDWebImage: 920f1a2ff1ca8296ad34f6e0510a1ef1d70ac965
yoga: 03ff42a6f223fb88deeaed60249020d80c3091ee
PODFILE CHECKSUM: 9a1477d30332ab86b10fd2ec7e7842ad52b5382e
diff --git a/package.json b/package.json
index 0bec8ec0193..7cd3644a50d 100644
--- a/package.json
+++ b/package.json
@@ -236,4 +236,4 @@
"vm": "vm-browserify",
"tls": false
}
-}
+}
\ No newline at end of file
diff --git a/patches/recyclerlistview+2.0.1-alpha.1.patch b/patches/recyclerlistview+2.0.1-alpha.1.patch
index d648f64f476..afda92693bc 100644
--- a/patches/recyclerlistview+2.0.1-alpha.1.patch
+++ b/patches/recyclerlistview+2.0.1-alpha.1.patch
@@ -13,6 +13,42 @@ index 26e19af..e2a2913 100644
};
ViewabilityTracker.prototype.forceRefreshWithOffset = function (offset) {
this._currentOffset = -1;
+diff --git a/node_modules/recyclerlistview/dist/reactnative/core/StickyContainer.js b/node_modules/recyclerlistview/dist/reactnative/core/StickyContainer.js
+index e3af431..8de1ec4 100644
+--- a/node_modules/recyclerlistview/dist/reactnative/core/StickyContainer.js
++++ b/node_modules/recyclerlistview/dist/reactnative/core/StickyContainer.js
+@@ -54,14 +54,14 @@ var StickyContainer = /** @class */ (function (_super) {
+ }
+ };
+ _this._getStickyHeaderRef = function (stickyHeaderRef) {
+- if (!_this._stickyHeaderRef) {
++ if (_this._stickyHeaderRef !== stickyHeaderRef) {
+ _this._stickyHeaderRef = stickyHeaderRef;
+ // TODO: Resetting state once ref is initialized. Can look for better solution.
+ _this._callStickyObjectsOnVisibleIndicesChanged(_this._visibleIndicesAll);
+ }
+ };
+ _this._getStickyFooterRef = function (stickyFooterRef) {
+- if (!_this._stickyFooterRef) {
++ if (_this._stickyFooterRef !== stickyFooterRef) {
+ _this._stickyFooterRef = stickyFooterRef;
+ // TODO: Resetting state once ref is initialized. Can look for better solution.
+ _this._callStickyObjectsOnVisibleIndicesChanged(_this._visibleIndicesAll);
+diff --git a/node_modules/recyclerlistview/dist/reactnative/core/layoutmanager/LayoutManager.js b/node_modules/recyclerlistview/dist/reactnative/core/layoutmanager/LayoutManager.js
+index 3851852..23075a0 100644
+--- a/node_modules/recyclerlistview/dist/reactnative/core/layoutmanager/LayoutManager.js
++++ b/node_modules/recyclerlistview/dist/reactnative/core/layoutmanager/LayoutManager.js
+@@ -172,6 +172,10 @@ var WrapGridLayoutManager = /** @class */ (function (_super) {
+ }
+ var i = startIndex - 1;
+ for (; i >= 0; i--) {
++ if (!this._layouts[i]) {
++ console.warn("WrapGridLayoutManager layout at index", i, "does not exist"); //tslint:disable-line
++ continue;
++ }
+ if (this._isHorizontal) {
+ if (this._layouts[i].y === 0) {
+ break;
diff --git a/node_modules/recyclerlistview/dist/reactnative/core/sticky/StickyHeader.js b/node_modules/recyclerlistview/dist/reactnative/core/sticky/StickyHeader.js
index 7074f36..5e72f6e 100644
--- a/node_modules/recyclerlistview/dist/reactnative/core/sticky/StickyHeader.js
diff --git a/src/components/asset-list/AssetList.js b/src/components/asset-list/AssetList.js
index 6d3f72e3cb2..a2f1f3a22aa 100644
--- a/src/components/asset-list/AssetList.js
+++ b/src/components/asset-list/AssetList.js
@@ -1,6 +1,7 @@
import PropTypes from 'prop-types';
import React from 'react';
-import { onlyUpdateForKeys } from 'recompact';
+import { compose, onlyUpdateForKeys } from 'recompact';
+import { withIsWalletImporting } from '../../hoc';
import { safeAreaInsetValues } from '../../utils';
import { FabWrapper, FloatingActionButton } from '../fab';
import { ListFooter } from '../list';
@@ -14,21 +15,26 @@ const AssetList = ({
fetchData,
hideHeader,
isEmpty,
- sections,
+ isImporting,
+ isWalletEthZero,
scrollViewTracker,
+ sections,
...props
}) => (
- isEmpty
- ?
- : (
-
+ ) : (
+
)
);
@@ -37,13 +43,18 @@ AssetList.propTypes = {
fetchData: PropTypes.func.isRequired,
hideHeader: PropTypes.bool,
isEmpty: PropTypes.bool,
+ isImporting: PropTypes.bool,
isWalletEthZero: PropTypes.bool,
scrollViewTracker: PropTypes.object,
sections: PropTypes.arrayOf(PropTypes.object),
};
-export default onlyUpdateForKeys([
- 'isEmpty',
- 'isWalletEthZero',
- 'sections',
-])(AssetList);
+export default compose(
+ withIsWalletImporting,
+ onlyUpdateForKeys([
+ 'isEmpty',
+ 'isImporting',
+ 'isWalletEthZero',
+ 'sections',
+ ]),
+)(AssetList);
diff --git a/src/components/asset-list/EmptyAssetList.js b/src/components/asset-list/EmptyAssetList.js
index 4939c91093b..0c10cf0138e 100644
--- a/src/components/asset-list/EmptyAssetList.js
+++ b/src/components/asset-list/EmptyAssetList.js
@@ -1,5 +1,6 @@
import lang from 'i18n-js';
import { times } from 'lodash';
+import PropTypes from 'prop-types';
import React from 'react';
import { withNeverRerender } from '../../hoc';
import { position } from '../../styles';
@@ -32,4 +33,8 @@ const EmptyAssetList = ({ isWalletEthZero, ...props }) => (
);
+EmptyAssetList.propTypes = {
+ isWalletEthZero: PropTypes.bool,
+};
+
export default withNeverRerender(EmptyAssetList);
diff --git a/src/components/asset-list/RecyclerAssetList.js b/src/components/asset-list/RecyclerAssetList.js
index 4ffea173bb8..85ee7be7ae9 100644
--- a/src/components/asset-list/RecyclerAssetList.js
+++ b/src/components/asset-list/RecyclerAssetList.js
@@ -394,14 +394,14 @@ class RecyclerAssetList extends Component {
rowRenderer = (type, data, index) => {
if (isNil(data) || isNil(index)) {
- return null;
+ return NOOP;
}
const { item = {}, renderItem } = data;
const { hideHeader, sections } = this.props;
if (type === ViewTypes.HEADER) {
- return hideHeader ? null : ;
+ return hideHeader ? NOOP : ;
}
const isNotUniqueToken = (
diff --git a/src/components/list/SectionList.js b/src/components/list/SectionList.js
deleted file mode 100644
index 138fdc06a58..00000000000
--- a/src/components/list/SectionList.js
+++ /dev/null
@@ -1,101 +0,0 @@
-import PropTypes from 'prop-types';
-import React, { PureComponent } from 'react';
-import { RefreshControl, SectionList as ReactSectionList } from 'react-native';
-import { View } from 'react-primitives';
-import styled from 'styled-components/primitives';
-import { withSafeAreaViewInsetValues } from '../../hoc';
-import { colors, position } from '../../styles';
-import ListFooter from './ListFooter';
-import ListHeader from './ListHeader';
-
-const DefaultRenderItem = renderItemProps => ;
-
-const List = styled(ReactSectionList)`
- ${position.size('100%')}
- background-color: ${colors.white};
-`;
-
-class SectionList extends PureComponent {
- static propTypes = {
- enablePullToRefresh: PropTypes.bool,
- fetchData: PropTypes.func,
- hideHeader: PropTypes.bool,
- isRefreshing: PropTypes.bool,
- onRefresh: PropTypes.func,
- renderItem: PropTypes.func,
- renderSectionFooter: PropTypes.func,
- safeAreaInset: PropTypes.object,
- showSafeAreaInsetBottom: PropTypes.bool,
- }
-
- static defaultProps = {
- enablePullToRefresh: false,
- renderItem: DefaultRenderItem,
- renderSectionFooter: ListFooter,
- showSafeAreaInsetBottom: true,
- }
-
- state = { isRefreshing: false }
-
- componentDidMount = () => {
- this.isCancelled = false;
- }
-
- componentWillUnmount = () => {
- this.isCancelled = true;
- }
-
- listRef = null
-
- handleListRef = (ref) => { this.listRef = ref; }
-
- handleRefresh = () => {
- if (this.state.isRefreshing) return;
-
- this.setState({ isRefreshing: true });
- this.props.fetchData().then(() => {
- if (!this.isCancelled) {
- this.setState({ isRefreshing: false });
- }
- });
- }
-
- renderRefreshControl = () => {
- if (!this.props.enablePullToRefresh) return null;
-
- return (
-
- );
- }
-
- render = () => {
- const {
- hideHeader,
- renderItem,
- renderSectionFooter,
- safeAreaInset,
- showSafeAreaInsetBottom,
- ...props
- } = this.props;
-
- return (
-
- );
- }
-}
-
-export default withSafeAreaViewInsetValues(SectionList);
diff --git a/src/components/list/index.js b/src/components/list/index.js
index 92f3e7a8c1b..ad6a5eeba32 100644
--- a/src/components/list/index.js
+++ b/src/components/list/index.js
@@ -4,4 +4,3 @@ export { default as ListHeader } from './ListHeader';
export { default as ListItem } from './ListItem';
export { default as ListItemArrowGroup } from './ListItemArrowGroup';
export { default as ListItemDivider } from './ListItemDivider';
-export { default as SectionList } from './SectionList';
diff --git a/src/hoc/index.js b/src/hoc/index.js
index 75a125c5b22..897406e5151 100644
--- a/src/hoc/index.js
+++ b/src/hoc/index.js
@@ -12,6 +12,7 @@ export { default as withHideSplashScreen } from './withHideSplashScreen';
export { default as withImageDimensionsCache } from './withImageDimensionsCache';
export { default as withIsWalletEmpty } from './withIsWalletEmpty';
export { default as withIsWalletEthZero } from './withIsWalletEthZero';
+export { default as withIsWalletImporting } from './withIsWalletImporting';
export { default as withMessageSigningScreen } from './withMessageSigningScreen';
export { default as withNetInfo } from './withNetInfo';
export { default as withNeverRerender } from './withNeverRerender';
diff --git a/src/hoc/withDataInit.js b/src/hoc/withDataInit.js
index 1c32bfa3283..54672c92d0a 100644
--- a/src/hoc/withDataInit.js
+++ b/src/hoc/withDataInit.js
@@ -39,6 +39,13 @@ import {
} from '../redux/walletconnect';
import withHideSplashScreen from './withHideSplashScreen';
+const PromiseAllWithFails = async (promises) => (
+ Promise.all(promises.map(promise => (
+ (promise && promise.catch)
+ ? promise.catch(error => error)
+ : promise
+ ))));
+
export default Component => compose(
connect(null, {
clearIsWalletEmpty,
@@ -80,8 +87,7 @@ export default Component => compose(
const p6 = ownProps.nonceClearState();
const p7 = ownProps.requestsClearState();
const p8 = ownProps.uniswapClearState();
- const promises = [p1, p2, p3, p4, p5, p6, p7, p8];
- await Promise.all(promises.map(p => p.catch(e => e)));
+ return PromiseAllWithFails([p1, p2, p3, p4, p5, p6, p7, p8]);
},
initializeAccountData: (ownProps) => async () => {
try {
@@ -98,8 +104,7 @@ export default Component => compose(
const p4 = ownProps.walletConnectLoadState();
const p5 = ownProps.uniswapLoadState();
const p6 = ownProps.requestsLoadState();
- const promises = [p1, p2, p3, p4, p5, p6];
- await Promise.all(promises.map(p => p.catch(e => e)));
+ return PromiseAllWithFails([p1, p2, p3, p4, p5, p6]);
},
refreshAccountData: (ownProps) => async () => {
try {
diff --git a/src/hoc/withIsWalletImporting.js b/src/hoc/withIsWalletImporting.js
new file mode 100644
index 00000000000..1f689a15af6
--- /dev/null
+++ b/src/hoc/withIsWalletImporting.js
@@ -0,0 +1,6 @@
+import { connect } from 'react-redux';
+import { setIsWalletImporting } from '../redux/isWalletImporting';
+
+const mapStateToProps = ({ isWalletImporting }) => isWalletImporting;
+
+export default Component => connect(mapStateToProps, { setIsWalletImporting })(Component);
diff --git a/src/redux/isWalletImporting.js b/src/redux/isWalletImporting.js
new file mode 100644
index 00000000000..a7719114db1
--- /dev/null
+++ b/src/redux/isWalletImporting.js
@@ -0,0 +1,22 @@
+import produce from 'immer';
+
+// -- Constants --------------------------------------- //
+const SET_IS_WALLET_IMPORTING = 'isWalletImporting/SET_IS_WALLET_IMPORTING';
+
+export const setIsWalletImporting = payload => dispatch => (
+ dispatch({
+ payload,
+ type: SET_IS_WALLET_IMPORTING,
+ })
+);
+
+// -- Reducer ----------------------------------------- //
+const INITIAL_STATE = { isImporting: false };
+
+export default (state = INITIAL_STATE, action) => (
+ produce(state, draft => {
+ if (action.type === SET_IS_WALLET_IMPORTING) {
+ draft.isImporting = action.payload;
+ }
+ })
+);
diff --git a/src/redux/reducers.js b/src/redux/reducers.js
index a3cc41f903c..3d481529cb6 100644
--- a/src/redux/reducers.js
+++ b/src/redux/reducers.js
@@ -5,6 +5,7 @@ import data from './data';
import imageDimensionsCache from './imageDimensionsCache';
import isWalletEmpty from './isWalletEmpty';
import isWalletEthZero from './isWalletEthZero';
+import isWalletImporting from './isWalletImporting';
import navigation from './navigation';
import nonce from './nonce';
import openFamilyTabs from './openFamilyTabs';
@@ -22,6 +23,7 @@ export default combineReducers({
imageDimensionsCache,
isWalletEmpty,
isWalletEthZero,
+ isWalletImporting,
navigation,
nonce,
openFamilyTabs,
diff --git a/src/screens/ImportSeedPhraseSheetWithData.js b/src/screens/ImportSeedPhraseSheetWithData.js
index 1ac632d2fc6..0018dee9a2d 100644
--- a/src/screens/ImportSeedPhraseSheetWithData.js
+++ b/src/screens/ImportSeedPhraseSheetWithData.js
@@ -11,7 +11,7 @@ import {
withState,
} from 'recompact';
import { Alert } from '../components/alerts';
-import { withDataInit, withIsWalletEmpty } from '../hoc';
+import { withDataInit, withIsWalletEmpty, withIsWalletImporting } from '../hoc';
import { deviceUtils } from '../utils';
import ImportSeedPhraseSheet from './ImportSeedPhraseSheet';
import { isValidSeed as validateSeed } from '../helpers/validators';
@@ -35,9 +35,9 @@ const ConfirmImportAlert = onSuccess => (
const ImportSeedPhraseSheetWithData = compose(
withDataInit,
withIsWalletEmpty,
+ withIsWalletImporting,
withNavigation,
withState('clipboardContents', 'setClipboardContents', ''),
- withState('isImporting', 'setIsImporting', false),
withState('seedPhrase', 'setSeedPhrase', ''),
withHandlers({
importSeedPhrase: ({
@@ -45,7 +45,7 @@ const ImportSeedPhraseSheetWithData = compose(
isEmpty,
navigation,
seedPhrase,
- setIsImporting,
+ setIsWalletImporting,
}) => async () => {
try {
const address = await initializeWallet(seedPhrase.trim());
@@ -53,20 +53,20 @@ const ImportSeedPhraseSheetWithData = compose(
analytics.track('Imported seed phrase', {
hadPreviousAddressWithValue: isEmpty,
});
- setIsImporting(false);
+ setIsWalletImporting(false);
navigation.navigate('WalletScreen');
} else {
- setIsImporting(false);
+ setIsWalletImporting(false);
}
} catch (error) {
- setIsImporting(false);
+ setIsWalletImporting(false);
console.error('error importing seed phrase: ', error);
}
},
}),
withHandlers({
getClipboardContents: ({ setClipboardContents }) => async () => Clipboard.getString().then(setClipboardContents),
- onImportSeedPhrase: ({ setIsImporting }) => () => ConfirmImportAlert(() => setIsImporting(true)),
+ onImportSeedPhrase: ({ setIsWalletImporting }) => () => ConfirmImportAlert(() => setIsWalletImporting(true)),
onInputChange: ({ isImporting, setSeedPhrase }) => ({ nativeEvent }) => {
if (!isImporting) {
setSeedPhrase(nativeEvent.text);
diff --git a/yarn.lock b/yarn.lock
index 66e9565b42f..6099e48497c 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -826,9 +826,9 @@
js-sha3 "0.5.7"
"@ethersproject/properties@>5.0.0-beta.0":
- version "5.0.0-beta.127"
- resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.0.0-beta.127.tgz#ec2032675e909fa1d2e6adae09502271b2a702c6"
- integrity sha512-zD14d+byTbdDRDPzHGkSW30bBtpFWaQpgzHh3ia6huJfr3qK8rVqGiDSYeNGJQdtdscss2l/F9yFuLd6ZdITPQ==
+ version "5.0.0-beta.128"
+ resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.0.0-beta.128.tgz#26e8a4cb95f0d048531f0a8da39773b16b4633b4"
+ integrity sha512-4ABgX2WmpQLlmbyR6EwxoT5YTRYxV6fGRtK+1nt48dvG2Y8FSkg33JvCfei3w432RjEEHEN5IOmTf+nTr9n6VA==
dependencies:
"@ethersproject/errors" ">5.0.0-beta.0"
@@ -840,9 +840,9 @@
"@ethersproject/bytes" ">5.0.0-beta.0"
"@ethersproject/strings@^5.0.0-beta.125":
- version "5.0.0-beta.126"
- resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.0.0-beta.126.tgz#5dc4452611d79bdaac46836fd9be5cc3f6ee4abf"
- integrity sha512-DDIp4iY9tlnfdri1ObXFt65L0v4niQk1bZZnk9ItMokdjWfoEYVN/ym45FZPFepJWliY4HQQhv/LvPsO3iCJoA==
+ version "5.0.0-beta.127"
+ resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.0.0-beta.127.tgz#e07848b92cb1b615a11d7289449312c069a234e9"
+ integrity sha512-FKQDBKgcX7Bc0J45TIwwT4PTnE1TvtDRka3dAkH1VX4odnj6DzpZ99QdkhX4mBL2J+6/XK+trA7m/HTDx+5YqA==
dependencies:
"@ethersproject/bytes" ">5.0.0-beta.0"
"@ethersproject/constants" ">5.0.0-beta.0"
@@ -2648,9 +2648,9 @@ camelize@^1.0.0:
integrity sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs=
caniuse-lite@^1.0.30000980, caniuse-lite@^1.0.30000984:
- version "1.0.30000985"
- resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000985.tgz#0eb40f6c8a8c219155cbe43c4975c0efb4a0f77f"
- integrity sha512-1ngiwkgqAYPG0JSSUp3PUDGPKKY59EK7NrGGX+VOxaKCNzRbNc7uXMny+c3VJfZxtoK3wSImTvG9T9sXiTw2+w==
+ version "1.0.30000987"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000987.tgz#bc6b47217afd8226a2b1964635c6bff62cdf5738"
+ integrity sha512-O3VrjtRMTxoU5Cn5/QSmXeIR1gkVps4j9jqfIm4FLaQ5JzqBlVjMUG1xWnoYFv8N+H3Lp++aa05TekyIbjHL7g==
capture-exit@^1.2.0:
version "1.2.0"
@@ -3653,9 +3653,9 @@ ee-first@1.1.1:
integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
electron-to-chromium@^1.3.191:
- version "1.3.200"
- resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.200.tgz#78fb858b466269e8eb46d31a52562f00c865127f"
- integrity sha512-PUurrpyDA74MuAjJRD+79ss5BqJlU3mdArRbuu4wO/dt6jc3Ic/6BDmFJxkdwbfq39cHf/XKm2vW98XSvut9Dg==
+ version "1.3.204"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.204.tgz#1ea5c6d495bab77995aa135dbcbc1d383dd4e21e"
+ integrity sha512-T0eXE6hfbtpzRUaI7aHI/HYJ29Ndk84aVSborRAmXfWvBvz2EuB2OWYUxNcUX9d+jtqEIjgZjWMdoxS0hp5j1g==
elliptic@6.3.3:
version "6.3.3"
@@ -5180,9 +5180,9 @@ i18n-js@^3.0.11:
integrity sha512-+m8jh84IIWlFwEJgwrWCkeIwIES9ilJKBOj5qx8ZTLLmlPz7bjKnCdxf254wRf6M4pkQHtgXGT9r9lGk0e9aug==
i18next@^17.0.3:
- version "17.0.6"
- resolved "https://registry.yarnpkg.com/i18next/-/i18next-17.0.6.tgz#01079cc2bcef408139ea8ce24d18ac0d512fbe85"
- integrity sha512-bdNhzhcM6RG5m82RypVguCrAQNie/ycxW0Q5C6K9UDWD5hqApZfdJFbj4Ikz9jxIR+Ja1eg0yCQLhlCT+opwIg==
+ version "17.0.7"
+ resolved "https://registry.yarnpkg.com/i18next/-/i18next-17.0.7.tgz#aae8591634b109c0ecec755b46c6414b0d743e07"
+ integrity sha512-fQn+gcyDaHb3qXIeahjCnGMsCeHaKveSORclang55stBjOL13oK7ZYxXVz1AaFV6p3SzOSu/KW+tgZcUuDdf6Q==
dependencies:
"@babel/runtime" "^7.3.1"
@@ -8622,9 +8622,9 @@ postcss-html@^0.36.0:
htmlparser2 "^3.10.0"
postcss-jsx@^0.36.1:
- version "0.36.2"
- resolved "https://registry.yarnpkg.com/postcss-jsx/-/postcss-jsx-0.36.2.tgz#34bcd6752426a60b8df73f069e7595383060a794"
- integrity sha512-7B8a8a6YDOQFqMQ9UmOo+IPPb2i14Z57Fvc9cOI11B3bWMSY2O6r2XJ3tlcQhUhv93TeN0ntxehTaSWJDQavlg==
+ version "0.36.3"
+ resolved "https://registry.yarnpkg.com/postcss-jsx/-/postcss-jsx-0.36.3.tgz#c91113eae2935a1c94f00353b788ece9acae3f46"
+ integrity sha512-yV8Ndo6KzU8eho5mCn7LoLUGPkXrRXRjhMpX4AaYJ9wLJPv099xbtpbRQ8FrPnzVxb/cuMebbPR7LweSt+hTfA==
dependencies:
"@babel/core" ">=7.2.2"
@@ -8936,9 +8936,9 @@ qs@~6.5.2:
integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==
query-string@^6.4.2:
- version "6.8.1"
- resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.8.1.tgz#62c54a7ef37d01b538c8fd56f95740c81d438a26"
- integrity sha512-g6y0Lbq10a5pPQpjlFuojfMfV1Pd2Jw9h75ypiYPPia3Gcq2rgkKiIwbkS6JxH7c5f5u/B/sB+d13PU+g1eu4Q==
+ version "6.8.2"
+ resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.8.2.tgz#36cb7e452ae11a4b5e9efee83375e0954407b2f6"
+ integrity sha512-J3Qi8XZJXh93t2FiKyd/7Ec6GNifsjKXUsVFkSBj/kjLsDylWhnCz4NT1bkPcKotttPW+QbKGqqPH8OoI2pdqw==
dependencies:
decode-uri-component "^0.2.0"
split-on-first "^1.0.0"
@@ -9095,9 +9095,9 @@ react-native-crypto@^2.1.2:
public-encrypt "^4.0.0"
react-native-device-info@^2.1.3:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/react-native-device-info/-/react-native-device-info-2.3.0.tgz#7b2a8baf8453324bd8d120ce46e5e2bb0181ccd4"
- integrity sha512-ISEChH2zg4bRX8PL1cYoNWffJ7wmgYosKyJbkWyTxs8g+rpeGkmMf9Wo4COriAt1AJ2jC78IGhJYFzbIc+Przw==
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/react-native-device-info/-/react-native-device-info-2.3.1.tgz#363267c4574dbd779290cdc06bb423f9c16d68d8"
+ integrity sha512-4kIBeBdYB/IwNjbSTEvfnWgFB4cXL0drvdXKfcAgfI5vxmsLElR5HI6t9fqVkPyMCiRtI7mvS6PbG2kjGdbQMw==
react-native-dotenv@^0.2.0:
version "0.2.0"
@@ -10109,9 +10109,9 @@ sane@^4.0.3:
walker "~1.0.5"
sanitize-filename@^1.6.1:
- version "1.6.1"
- resolved "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.1.tgz#612da1c96473fa02dccda92dcd5b4ab164a6772a"
- integrity sha1-YS2hyWRz+gLczaktzVtKsWSmdyo=
+ version "1.6.2"
+ resolved "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.2.tgz#01b4fc8809f14e9d22761fe70380fe7f3f902185"
+ integrity sha512-cmTzND7RMxUB+f7gI+4+KAVHWEg0lfXvQJdko+FXDP5bNbGIdx4KMP5pX6lv5jfT9jSf6OBbjyxjFtZQwYA/ig==
dependencies:
truncate-utf8-bytes "^1.0.0"