From a5cf91cb9ade2582111d9c64c285ec2136fe0002 Mon Sep 17 00:00:00 2001 From: feruz Date: Tue, 11 Feb 2020 14:36:12 +0200 Subject: [PATCH 01/10] upd render library --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 754617734..75a051244 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ }, "dependencies": { "@babel/runtime": "^7.5.5", - "@esteemapp/esteem-render-helpers": "^1.3.6", + "@esteemapp/esteem-render-helpers": "^1.3.7", "@esteemapp/react-native-autocomplete-input": "^4.2.1", "@esteemapp/react-native-modal-popover": "^0.0.15", "@esteemapp/react-native-multi-slider": "^1.1.0", diff --git a/yarn.lock b/yarn.lock index 05d69dbfb..fdcbeb14c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1113,10 +1113,10 @@ exec-sh "^0.3.2" minimist "^1.2.0" -"@esteemapp/esteem-render-helpers@^1.3.6": - version "1.3.6" - resolved "https://registry.yarnpkg.com/@esteemapp/esteem-render-helpers/-/esteem-render-helpers-1.3.6.tgz#320d39012fda19c88ada266e133cb8d2e25bc076" - integrity sha512-CHD5INnrEb5efL1OcSix84D2QFBYV3xivu0tfGo4wIhj8pCTgH0cR3sLsVks8oHwmBftzQ9uDGYkbzOp83XwsA== +"@esteemapp/esteem-render-helpers@^1.3.7": + version "1.3.7" + resolved "https://registry.yarnpkg.com/@esteemapp/esteem-render-helpers/-/esteem-render-helpers-1.3.7.tgz#1d8c4b6c8f4bc909ea7a511a2689ee5c8288a96a" + integrity sha512-iF3zWL0IMnHBcz+tW61TNYWhhoT3v+daWmMygTupE02moJpxDOh05hYuGQX/ROHPFOVi9OYesckWjyLSFj7+yw== dependencies: he "^1.2.0" lru-cache "^5.1.1" From 1f32ed98966d0b319daa61076bb2e9b49589a518 Mon Sep 17 00:00:00 2001 From: feruz Date: Tue, 11 Feb 2020 14:46:22 +0200 Subject: [PATCH 02/10] enable Chinese simplified and traditional --- src/config/locales/index.js | 4 ++++ src/constants/options/language.js | 2 ++ 2 files changed, 6 insertions(+) diff --git a/src/config/locales/index.js b/src/config/locales/index.js index 88f688990..e2e909fdc 100644 --- a/src/config/locales/index.js +++ b/src/config/locales/index.js @@ -20,6 +20,8 @@ export default { 'ms-MY': require('./ms-MY.json'), 'ku-TR': require('./ku-TR.json'), 'vi-VN': require('./vi-VN.json'), + 'zh-CN': require('./zh-CN.json'), + 'zh-TW': require('./zh-TW.json'), }; export const locales = [ @@ -44,4 +46,6 @@ export const locales = [ { id: 'ms-MY', name: 'Malay' }, { id: 'ku-TR', name: 'Kurdish' }, { id: 'vi-VN', name: 'Vietnamese' }, + { id: 'zh-CN', name: '汉语' }, + { id: 'zh-TW', name: '漢語' }, ]; diff --git a/src/constants/options/language.js b/src/constants/options/language.js index eb63d27ac..fd4c18e6f 100644 --- a/src/constants/options/language.js +++ b/src/constants/options/language.js @@ -42,4 +42,6 @@ export const VALUE = [ 'fa-IR', 'ro-RO', 'vi-VN', + 'zh-CN', + 'zh-TW', ]; From d098027ef76868bc82f0ca655f73677147534a24 Mon Sep 17 00:00:00 2001 From: feruz Date: Thu, 13 Feb 2020 08:41:16 +0200 Subject: [PATCH 03/10] estm auto increment, language reordering... --- .../UserInterfaceState.xcuserstate | Bin 33893 -> 34047 bytes .../walletHeader/view/walletHeaderView.js | 3 +- src/config/locales/index.js | 8 ++--- src/constants/options/language.js | 34 +++++++++--------- src/containers/pointsContainer.js | 14 ++++++++ src/screens/wallet/screen/estmView.js | 2 ++ 6 files changed, 40 insertions(+), 21 deletions(-) diff --git a/ios/eSteem.xcworkspace/xcuserdata/f.xcuserdatad/UserInterfaceState.xcuserstate b/ios/eSteem.xcworkspace/xcuserdata/f.xcuserdatad/UserInterfaceState.xcuserstate index e2beeec2352e478330baa351dde051352d5aaa49..920fa801581953967bec5caba100d8bbe87fe9eb 100644 GIT binary patch delta 14734 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 diff --git a/src/components/walletHeader/view/walletHeaderView.js b/src/components/walletHeader/view/walletHeaderView.js index 8e110a7f3..064378706 100644 --- a/src/components/walletHeader/view/walletHeaderView.js +++ b/src/components/walletHeader/view/walletHeaderView.js @@ -22,6 +22,7 @@ const WalletHeaderView = ({ navigation, unclaimedBalance, userBalance, + counter, type = '', componentDidUpdate, showIconList, @@ -57,7 +58,7 @@ const WalletHeaderView = ({ const _getBalanceItem = (balance, options, _key) => balance !== undefined && ( - {balance} + {_key === 'estm' ? counter : balance} { if (isConnected) { _fetchUserPointActivities(username); @@ -64,6 +66,16 @@ const PointsContainer = ({ } }, [_fetchUserPointActivities, isConnected, navigation, username]); + useEffect(() => { + const interval = setInterval(() => { + setCounter(_counter => Math.round((_counter + 0.001) * 1000) / 1000); + }, 3600); + + return () => { + clearInterval(interval); + }; + }, []); + useEffect(() => { if (isConnected && activeBottomTab === ROUTES.TABBAR.WALLET && username) { _fetchUserPointActivities(username); @@ -135,6 +147,7 @@ const PointsContainer = ({ const _balance = Math.round(get(userPointsP, 'points') * 1000) / 1000; setUserPoints(userPointsP); setBalance(_balance); + setCounter(_balance); setEstimatedEstm(await getPointsEstimate(_balance, currency)); }) .catch(err => { @@ -235,6 +248,7 @@ const PointsContainer = ({ refreshing, userActivities, userPoints, + counter, estimatedEstm, redeemType: get(navigationParams, 'redeemType'), user, diff --git a/src/screens/wallet/screen/estmView.js b/src/screens/wallet/screen/estmView.js index 9407549eb..dd6b98861 100644 --- a/src/screens/wallet/screen/estmView.js +++ b/src/screens/wallet/screen/estmView.js @@ -21,6 +21,7 @@ const EstmView = ({ handleOnSelected, index, currentIndex, refreshing: reload }) userPoints, estimatedEstm, dropdownOptions, + counter, }) => ( handleOnSelected(userActivities, isLoading, fetchUserActivity)} @@ -38,6 +39,7 @@ const EstmView = ({ handleOnSelected, index, currentIndex, refreshing: reload }) userBalance={[ { balance: get(userPoints, 'points'), nameKey: 'estm', options: dropdownOptions }, ]} + counter={counter} handleOnDropdownSelected={handleOnDropdownSelected} type="estm" currentIndex={currentIndex} From 7099c4b32fd35452018909cc1c53e9ce2e5783ed Mon Sep 17 00:00:00 2001 From: feruz Date: Thu, 13 Feb 2020 08:43:12 +0200 Subject: [PATCH 04/10] remove estm auto increment counter --- .../walletHeader/view/walletHeaderView.js | 3 +-- src/containers/pointsContainer.js | 14 -------------- src/screens/wallet/screen/estmView.js | 2 -- 3 files changed, 1 insertion(+), 18 deletions(-) diff --git a/src/components/walletHeader/view/walletHeaderView.js b/src/components/walletHeader/view/walletHeaderView.js index 064378706..8e110a7f3 100644 --- a/src/components/walletHeader/view/walletHeaderView.js +++ b/src/components/walletHeader/view/walletHeaderView.js @@ -22,7 +22,6 @@ const WalletHeaderView = ({ navigation, unclaimedBalance, userBalance, - counter, type = '', componentDidUpdate, showIconList, @@ -58,7 +57,7 @@ const WalletHeaderView = ({ const _getBalanceItem = (balance, options, _key) => balance !== undefined && ( - {_key === 'estm' ? counter : balance} + {balance} { if (isConnected) { _fetchUserPointActivities(username); @@ -66,16 +64,6 @@ const PointsContainer = ({ } }, [_fetchUserPointActivities, isConnected, navigation, username]); - useEffect(() => { - const interval = setInterval(() => { - setCounter(_counter => Math.round((_counter + 0.001) * 1000) / 1000); - }, 3600); - - return () => { - clearInterval(interval); - }; - }, []); - useEffect(() => { if (isConnected && activeBottomTab === ROUTES.TABBAR.WALLET && username) { _fetchUserPointActivities(username); @@ -147,7 +135,6 @@ const PointsContainer = ({ const _balance = Math.round(get(userPointsP, 'points') * 1000) / 1000; setUserPoints(userPointsP); setBalance(_balance); - setCounter(_balance); setEstimatedEstm(await getPointsEstimate(_balance, currency)); }) .catch(err => { @@ -248,7 +235,6 @@ const PointsContainer = ({ refreshing, userActivities, userPoints, - counter, estimatedEstm, redeemType: get(navigationParams, 'redeemType'), user, diff --git a/src/screens/wallet/screen/estmView.js b/src/screens/wallet/screen/estmView.js index dd6b98861..9407549eb 100644 --- a/src/screens/wallet/screen/estmView.js +++ b/src/screens/wallet/screen/estmView.js @@ -21,7 +21,6 @@ const EstmView = ({ handleOnSelected, index, currentIndex, refreshing: reload }) userPoints, estimatedEstm, dropdownOptions, - counter, }) => ( handleOnSelected(userActivities, isLoading, fetchUserActivity)} @@ -39,7 +38,6 @@ const EstmView = ({ handleOnSelected, index, currentIndex, refreshing: reload }) userBalance={[ { balance: get(userPoints, 'points'), nameKey: 'estm', options: dropdownOptions }, ]} - counter={counter} handleOnDropdownSelected={handleOnDropdownSelected} type="estm" currentIndex={currentIndex} From 5c3261a8a1b71129cc3244baf742f46f1fdbd7c9 Mon Sep 17 00:00:00 2001 From: feruz Date: Thu, 13 Feb 2020 14:15:06 +0200 Subject: [PATCH 05/10] add get estm for steem and sbd --- .../walletDetails/view/walletDetailsView.js | 4 ++-- src/config/locales/en-US.json | 2 ++ src/containers/steemWalletContainer.js | 14 ++++++++++---- src/containers/transferContainer.js | 13 +++++++++++-- src/screens/transfer/index.js | 1 + src/screens/transfer/screen/transferScreen.js | 13 ++++++++++--- 6 files changed, 36 insertions(+), 11 deletions(-) diff --git a/src/components/walletDetails/view/walletDetailsView.js b/src/components/walletDetails/view/walletDetailsView.js index 9c303c9a2..e143ae196 100644 --- a/src/components/walletDetails/view/walletDetailsView.js +++ b/src/components/walletDetails/view/walletDetailsView.js @@ -11,8 +11,8 @@ import { vestsToSp } from '../../../utils/conversions'; import styles from './walletDetailsStyles'; const WalletDetailsView = ({ walletData, intl, navigate, isShowDropdowns }) => { - const steemDropdown = ['transfer_token', 'transfer_to_saving', 'powerUp']; - const sbdDropdown = ['transfer_token', 'transfer_to_saving']; + const steemDropdown = ['purchase_estm', 'transfer_token', 'transfer_to_saving', 'powerUp']; + const sbdDropdown = ['purchase_estm', 'transfer_token', 'transfer_to_saving']; const savingSteemDropdown = ['withdraw_steem']; const savingSbdDropdown = ['withdraw_sbd']; const steemPowerDropdown = ['delegate', 'power_down']; diff --git a/src/config/locales/en-US.json b/src/config/locales/en-US.json index 0a8653680..b47406c0d 100644 --- a/src/config/locales/en-US.json +++ b/src/config/locales/en-US.json @@ -59,6 +59,7 @@ "to_placeholder": "Username", "memo_placeholder": "Enter your notes here", "transfer_token": "Transfer", + "purchase_estm": "GET ESTM", "points": "Gift ESTM to someone", "transfer_to_saving": "To Saving", "powerUp": "Power Up", @@ -412,6 +413,7 @@ "to_placeholder": "Username", "memo_placeholder": "Enter your notes here", "transfer_token": "Transfer", + "purchase_estm": "Purchase ESTM", "points": "Gift ESTM to someone", "transfer_to_saving": "Transfer To Saving", "powerUp": "Power Up", diff --git a/src/containers/steemWalletContainer.js b/src/containers/steemWalletContainer.js index ca04a1135..1f8130298 100644 --- a/src/containers/steemWalletContainer.js +++ b/src/containers/steemWalletContainer.js @@ -21,8 +21,8 @@ import { getEstimatedAmount } from '../utils/vote'; // Constants import ROUTES from '../constants/routeNames'; -const STEEM_DROPDOWN = ['transfer_token', 'transfer_to_saving', 'powerUp']; -const SBD_DROPDOWN = ['transfer_token', 'transfer_to_saving']; +const STEEM_DROPDOWN = ['purchase_estm', 'transfer_token', 'transfer_to_saving', 'powerUp']; +const SBD_DROPDOWN = ['purchase_estm', 'transfer_token', 'transfer_to_saving']; const SAVING_STEEM_DROPDOWN = ['withdraw_steem']; const SAVING_SBD_DROPDOWN = ['withdraw_sbd']; const STEEM_POWER_DROPDOWN = ['delegate', 'power_down']; @@ -235,10 +235,16 @@ const WalletContainer = ({ const _navigate = async (transferType, fundType) => { let balance; - if (transferType === 'transfer_token' && fundType === 'STEEM') { + if ( + (transferType === 'transfer_token' || transferType === 'purchase_estm') && + fundType === 'STEEM' + ) { balance = Math.round(walletData.balance * 1000) / 1000; } - if (transferType === 'transfer_token' && fundType === 'SBD') { + if ( + (transferType === 'transfer_token' || transferType === 'purchase_estm') && + fundType === 'SBD' + ) { balance = Math.round(walletData.sbdBalance * 1000) / 1000; } if (transferType === 'withdraw_steem' && fundType === 'STEEM') { diff --git a/src/containers/transferContainer.js b/src/containers/transferContainer.js index 0b1106ab9..6252b0f2b 100644 --- a/src/containers/transferContainer.js +++ b/src/containers/transferContainer.js @@ -70,10 +70,16 @@ class TransferContainer extends Component { getAccount(username).then(async account => { let balance; - if (transferType === 'transfer_token' && fundType === 'STEEM') { + if ( + (transferType === 'purchase_estm' || transferType === 'transfer_token') && + fundType === 'STEEM' + ) { balance = account[0].balance.replace(fundType, ''); } - if (transferType === 'transfer_token' && fundType === 'SBD') { + if ( + (transferType === 'purchase_estm' || transferType === 'transfer_token') && + fundType === 'SBD' + ) { balance = account[0].sbd_balance.replace(fundType, ''); } if (transferType === 'points' && fundType === 'ESTM') { @@ -132,6 +138,9 @@ class TransferContainer extends Component { case 'transfer_token': func = transferToken; break; + case 'purchase_estm': + func = transferToken; + break; case 'transfer_to_saving': func = transferToSavings; break; diff --git a/src/screens/transfer/index.js b/src/screens/transfer/index.js index 8481556fe..ce6d1c57b 100644 --- a/src/screens/transfer/index.js +++ b/src/screens/transfer/index.js @@ -25,6 +25,7 @@ const Transfer = ({ navigation }) => ( }) => { switch (transferType) { case 'transfer_token': + case 'purchase_estm': case 'transfer_to_saving': case 'powerUp': case 'points': diff --git a/src/screens/transfer/screen/transferScreen.js b/src/screens/transfer/screen/transferScreen.js index f6405a8d3..1a816fd94 100644 --- a/src/screens/transfer/screen/transferScreen.js +++ b/src/screens/transfer/screen/transferScreen.js @@ -36,10 +36,13 @@ class TransferView extends Component { props.transferType === 'withdraw_steem' || props.transferType === 'withdraw_steem' ? props.currentAccountName + : props.transferType === 'purchase_estm' + ? 'esteem.app' : '', amount: '', - memo: '', + memo: props.transferType === 'purchase_estm' ? 'estm-purchase' : '', isUsernameValid: !!( + props.transferType === 'purchase_estm' || props.transferType === 'powerUp' || props.transferType === 'withdraw_steem' || (props.transferType === 'withdraw_steem' && props.currentAccountName) @@ -226,7 +229,9 @@ class TransferView extends Component { )} /> - {(transferType === 'points' || transferType === 'transfer_token') && ( + {(transferType === 'points' || + transferType === 'transfer_token' || + transferType === 'purchase_estm') && ( @@ -239,7 +244,9 @@ class TransferView extends Component { } /> )} - {(transferType === 'points' || transferType === 'transfer_token') && ( + {(transferType === 'points' || + transferType === 'transfer_token' || + transferType === 'purchase_estm') && ( this._renderDescription(intl.formatMessage({ id: 'transfer.memo_desc' })) From 79746a7776447cfbb72f6c27857e75329d3feaa5 Mon Sep 17 00:00:00 2001 From: feruz Date: Fri, 14 Feb 2020 07:03:34 +0200 Subject: [PATCH 06/10] add SBD convert --- .../walletDetails/view/walletDetailsView.js | 2 +- src/config/locales/en-US.json | 2 + src/containers/steemWalletContainer.js | 6 ++- src/containers/transferContainer.js | 9 +++- src/providers/steem/dsteem.js | 35 +++++++++++++++ src/screens/transfer/index.js | 1 + src/screens/transfer/screen/transferScreen.js | 45 ++++++++++++------- 7 files changed, 79 insertions(+), 21 deletions(-) diff --git a/src/components/walletDetails/view/walletDetailsView.js b/src/components/walletDetails/view/walletDetailsView.js index e143ae196..01de54e3b 100644 --- a/src/components/walletDetails/view/walletDetailsView.js +++ b/src/components/walletDetails/view/walletDetailsView.js @@ -12,7 +12,7 @@ import styles from './walletDetailsStyles'; const WalletDetailsView = ({ walletData, intl, navigate, isShowDropdowns }) => { const steemDropdown = ['purchase_estm', 'transfer_token', 'transfer_to_saving', 'powerUp']; - const sbdDropdown = ['purchase_estm', 'transfer_token', 'transfer_to_saving']; + const sbdDropdown = ['purchase_estm', 'transfer_token', 'transfer_to_saving', 'convert']; const savingSteemDropdown = ['withdraw_steem']; const savingSbdDropdown = ['withdraw_sbd']; const steemPowerDropdown = ['delegate', 'power_down']; diff --git a/src/config/locales/en-US.json b/src/config/locales/en-US.json index b47406c0d..db861e0ed 100644 --- a/src/config/locales/en-US.json +++ b/src/config/locales/en-US.json @@ -410,10 +410,12 @@ "information": "Are you sure to transfer funds?", "amount_desc": "Balance", "memo_desc": "This memo is public", + "convert_desc": "Convert takes 3.5 days and NOT recommended IF SBD price is higher than $1", "to_placeholder": "Username", "memo_placeholder": "Enter your notes here", "transfer_token": "Transfer", "purchase_estm": "Purchase ESTM", + "convert": "Convert SBD to STEEM", "points": "Gift ESTM to someone", "transfer_to_saving": "Transfer To Saving", "powerUp": "Power Up", diff --git a/src/containers/steemWalletContainer.js b/src/containers/steemWalletContainer.js index 1f8130298..d7e6455c8 100644 --- a/src/containers/steemWalletContainer.js +++ b/src/containers/steemWalletContainer.js @@ -22,7 +22,7 @@ import { getEstimatedAmount } from '../utils/vote'; import ROUTES from '../constants/routeNames'; const STEEM_DROPDOWN = ['purchase_estm', 'transfer_token', 'transfer_to_saving', 'powerUp']; -const SBD_DROPDOWN = ['purchase_estm', 'transfer_token', 'transfer_to_saving']; +const SBD_DROPDOWN = ['purchase_estm', 'transfer_token', 'transfer_to_saving', 'convert']; const SAVING_STEEM_DROPDOWN = ['withdraw_steem']; const SAVING_SBD_DROPDOWN = ['withdraw_sbd']; const STEEM_POWER_DROPDOWN = ['delegate', 'power_down']; @@ -242,7 +242,9 @@ const WalletContainer = ({ balance = Math.round(walletData.balance * 1000) / 1000; } if ( - (transferType === 'transfer_token' || transferType === 'purchase_estm') && + (transferType === 'transfer_token' || + transferType === 'convert' || + transferType === 'purchase_estm') && fundType === 'SBD' ) { balance = Math.round(walletData.sbdBalance * 1000) / 1000; diff --git a/src/containers/transferContainer.js b/src/containers/transferContainer.js index 6252b0f2b..7b7b2e79e 100644 --- a/src/containers/transferContainer.js +++ b/src/containers/transferContainer.js @@ -7,6 +7,7 @@ import get from 'lodash/get'; import { lookupAccounts, transferToken, + convert, transferFromSavings, transferToSavings, transferToVesting, @@ -77,7 +78,9 @@ class TransferContainer extends Component { balance = account[0].balance.replace(fundType, ''); } if ( - (transferType === 'purchase_estm' || transferType === 'transfer_token') && + (transferType === 'purchase_estm' || + transferType === 'convert' || + transferType === 'transfer_token') && fundType === 'SBD' ) { balance = account[0].sbd_balance.replace(fundType, ''); @@ -141,6 +144,10 @@ class TransferContainer extends Component { case 'purchase_estm': func = transferToken; break; + case 'convert': + func = convert; + data.requestId = new Date().getTime() >>> 0; + break; case 'transfer_to_saving': func = transferToSavings; break; diff --git a/src/providers/steem/dsteem.js b/src/providers/steem/dsteem.js index b9cad552e..a10e41766 100644 --- a/src/providers/steem/dsteem.js +++ b/src/providers/steem/dsteem.js @@ -565,6 +565,41 @@ export const transferToken = (currentAccount, pin, data) => { return Promise.reject(new Error('Check private key permission!')); }; +export const convert = (currentAccount, pin, data) => { + const digitPinCode = getDigitPinCode(pin); + const key = getAnyPrivateKey({ activeKey: get(currentAccount, 'local.activeKey') }, digitPinCode); + + if (key) { + const privateKey = PrivateKey.fromString(key); + + const args = [ + [ + 'convert', + { + owner: get(data, 'from'), + amount: get(data, 'amount'), + requestid: get(data, 'requestId'), + }, + ], + ]; + + return new Promise((resolve, reject) => { + client.broadcast + .sendOperations(args, privateKey) + .then(result => { + if (result) { + resolve(result); + } + }) + .catch(err => { + reject(err); + }); + }); + } + + return Promise.reject(new Error('Check private key permission!')); +}; + export const transferToSavings = (currentAccount, pin, data) => { const digitPinCode = getDigitPinCode(pin); const key = getAnyPrivateKey({ activeKey: get(currentAccount, 'local.activeKey') }, digitPinCode); diff --git a/src/screens/transfer/index.js b/src/screens/transfer/index.js index ce6d1c57b..f5084e765 100644 --- a/src/screens/transfer/index.js +++ b/src/screens/transfer/index.js @@ -26,6 +26,7 @@ const Transfer = ({ navigation }) => ( switch (transferType) { case 'transfer_token': case 'purchase_estm': + case 'convert': case 'transfer_to_saving': case 'powerUp': case 'points': diff --git a/src/screens/transfer/screen/transferScreen.js b/src/screens/transfer/screen/transferScreen.js index 1a816fd94..9e7cd1d00 100644 --- a/src/screens/transfer/screen/transferScreen.js +++ b/src/screens/transfer/screen/transferScreen.js @@ -38,11 +38,14 @@ class TransferView extends Component { ? props.currentAccountName : props.transferType === 'purchase_estm' ? 'esteem.app' + : props.transferType === 'convert' + ? props.currentAccountName : '', amount: '', memo: props.transferType === 'purchase_estm' ? 'estm-purchase' : '', isUsernameValid: !!( props.transferType === 'purchase_estm' || + props.transferType === 'convert' || props.transferType === 'powerUp' || props.transferType === 'withdraw_steem' || (props.transferType === 'withdraw_steem' && props.currentAccountName) @@ -132,10 +135,13 @@ class TransferView extends Component { ); _handleOnDropdownChange = value => { - const { fetchBalance } = this.props; + const { fetchBalance, transferType } = this.props; fetchBalance(value); this.setState({ from: value }); + if (transferType === 'convert') { + this.setState({ destination: value }); + } }; _renderDescription = text => {text}; @@ -198,16 +204,18 @@ class TransferView extends Component { label={intl.formatMessage({ id: 'transfer.from' })} rightComponent={() => this._renderDropdown(accounts, currentAccountName)} /> - - this._renderInput( - intl.formatMessage({ id: 'transfer.to_placeholder' }), - 'destination', - 'default', - ) - } - /> + {transferType !== 'convert' && ( + + this._renderInput( + intl.formatMessage({ id: 'transfer.to_placeholder' }), + 'destination', + 'default', + ) + } + /> + )} @@ -229,9 +237,7 @@ class TransferView extends Component { )} /> - {(transferType === 'points' || - transferType === 'transfer_token' || - transferType === 'purchase_estm') && ( + {(transferType === 'points' || transferType === 'transfer_token') && ( @@ -244,15 +250,20 @@ class TransferView extends Component { } /> )} - {(transferType === 'points' || - transferType === 'transfer_token' || - transferType === 'purchase_estm') && ( + {(transferType === 'points' || transferType === 'transfer_token') && ( this._renderDescription(intl.formatMessage({ id: 'transfer.memo_desc' })) } /> )} + {transferType === 'convert' && ( + + this._renderDescription(intl.formatMessage({ id: 'transfer.convert_desc' })) + } + /> + )} Date: Fri, 14 Feb 2020 07:10:20 +0200 Subject: [PATCH 07/10] rm logs --- .../UserInterfaceState.xcuserstate | Bin 34047 -> 33899 bytes src/providers/esteem/esteem.js | 1 - 2 files changed, 1 deletion(-) diff --git a/ios/eSteem.xcworkspace/xcuserdata/f.xcuserdatad/UserInterfaceState.xcuserstate b/ios/eSteem.xcworkspace/xcuserdata/f.xcuserdatad/UserInterfaceState.xcuserstate index 920fa801581953967bec5caba100d8bbe87fe9eb..fa79648e4cc963d5ca9cae583052bf5897826e52 100644 GIT binary patch delta 16322 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 delta 16311 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 CQ=Omy diff --git a/src/providers/esteem/esteem.js b/src/providers/esteem/esteem.js index 1bab98cac..ce86dda55 100644 --- a/src/providers/esteem/esteem.js +++ b/src/providers/esteem/esteem.js @@ -405,7 +405,6 @@ export const getCommunity = tag => id: 1, }) .then(resp => { - console.log(resp); if (resp.data.result) { const { title } = resp.data.result; cache[tag] = title; From 8744c7067ec998931cd4b19af0863091a7163907 Mon Sep 17 00:00:00 2001 From: feruz Date: Thu, 20 Feb 2020 05:31:13 +0200 Subject: [PATCH 08/10] WIP, btc wallet --- ios/Podfile.lock | 10 +- .../UserInterfaceState.xcuserstate | Bin 33899 -> 35947 bytes package.json | 37 +- release-notes.sh | 4 + shim.js | 26 + .../walletHeader/view/walletHeaderStyles.js | 2 +- .../walletHeader/view/walletHeaderView.js | 21 + src/config/locales/en-US.json | 10 +- src/containers/steemWalletContainer.js | 25 +- src/containers/transferContainer.js | 9 +- src/providers/steem/dsteem.js | 24 +- src/screens/transfer/index.js | 12 + src/screens/transfer/screen/addressScreen.js | 95 ++++ .../transfer/screen/transferTokenScreen.js | 292 ++++++++++ src/screens/wallet/screen/btcView.js | 59 ++ src/screens/wallet/screen/walletScreen.js | 13 +- src/utils/crypto.js | 7 +- src/utils/wallet.js | 11 +- yarn.lock | 508 +++++++++++++++++- 19 files changed, 1127 insertions(+), 38 deletions(-) create mode 100644 release-notes.sh create mode 100644 shim.js create mode 100644 src/screens/transfer/screen/addressScreen.js create mode 100644 src/screens/transfer/screen/transferTokenScreen.js create mode 100644 src/screens/wallet/screen/btcView.js diff --git a/ios/Podfile.lock b/ios/Podfile.lock index b301a7c9c..9999de0eb 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -230,6 +230,8 @@ PODS: - SDWebImage/GIF - react-native-netinfo (5.3.3): - React + - react-native-randombytes (3.5.3): + - React - react-native-version-number (0.3.6): - React - react-native-webview (8.0.4): @@ -269,7 +271,7 @@ PODS: - React-cxxreact (= 0.61.5) - React-jsi (= 0.61.5) - ReactCommon/jscallinvoker (= 0.61.5) - - ReactNativeDarkMode (0.2.1): + - ReactNativeDarkMode (0.2.2): - React - rn-fetch-blob (0.12.0): - React-Core @@ -326,6 +328,7 @@ DEPENDENCIES: - react-native-config (from `../node_modules/react-native-config`) - react-native-fast-image (from `../node_modules/react-native-fast-image`) - "react-native-netinfo (from `../node_modules/@react-native-community/netinfo`)" + - react-native-randombytes (from `../node_modules/react-native-randombytes`) - react-native-version-number (from `../node_modules/react-native-version-number`) - react-native-webview (from `../node_modules/react-native-webview`) - React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`) @@ -413,6 +416,8 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native-fast-image" react-native-netinfo: :path: "../node_modules/@react-native-community/netinfo" + react-native-randombytes: + :path: "../node_modules/react-native-randombytes" react-native-version-number: :path: "../node_modules/react-native-version-number" react-native-webview: @@ -490,6 +495,7 @@ SPEC CHECKSUMS: react-native-config: f2c2ae45625a068c35681a16b9bfb1ca58b0adc7 react-native-fast-image: 6d50167ad4d68b59640ceead8c2bc4e58d91d8bd react-native-netinfo: 8884d510fe67349940b4399c01db3e3591c922aa + react-native-randombytes: 3638d24759d67c68f6ccba60c52a7a8a8faa6a23 react-native-version-number: b415bbec6a13f2df62bf978e85bc0d699462f37f react-native-webview: 3f5aa91c3cb083ea4762e006b9653291a96a777a React-RCTActionSheet: 600b4d10e3aea0913b5a92256d2719c0cdd26d76 @@ -502,7 +508,7 @@ SPEC CHECKSUMS: React-RCTText: 9ccc88273e9a3aacff5094d2175a605efa854dbe React-RCTVibration: a49a1f42bf8f5acf1c3e297097517c6b3af377ad ReactCommon: 198c7c8d3591f975e5431bec1b0b3b581aa1c5dd - ReactNativeDarkMode: 0e6e7bdbd387eb949fa7ff238a48f6d6431a428d + ReactNativeDarkMode: 0178ffca3b10f6a7c9f49d6f9810232b328fa949 rn-fetch-blob: f065bb7ab7fb48dd002629f8bdcb0336602d3cba RNCAsyncStorage: 44395cb9c7c1523104c2b499eb426ef7aff82bca RNGestureHandler: 946a7691e41df61e2c4b1884deab41a4cdc3afff diff --git a/ios/eSteem.xcworkspace/xcuserdata/f.xcuserdatad/UserInterfaceState.xcuserstate b/ios/eSteem.xcworkspace/xcuserdata/f.xcuserdatad/UserInterfaceState.xcuserstate index fa79648e4cc963d5ca9cae583052bf5897826e52..a19c2e9cb0c1f75b279c9f3d422e9d54f4b8bc23 100644 GIT binary patch delta 18676 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 delta 16803 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 C=r2tG diff --git a/package.json b/package.json index 75a051244..b6a433d73 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,8 @@ "start": "react-native start", "android": "react-native run-android", "ios": "react-native run-ios", + "releasenotes": "./release-notes.sh > release-notes.txt; node -e 'console.log(JSON.stringify(require(\"fs\").readFileSync(\"release-notes.txt\", \"utf8\")));' > release-notes.json", + "postinstall": "rn-nodeify --install buffer,stream,assert,events,crypto,vm,process --hack", "test": "node node_modules/jest/bin/jest.js --watch", "lint": "eslint src/", "lint:fix": "eslint src/ --fix", @@ -35,8 +37,10 @@ "appcenter-analytics": "^2.6.0", "appcenter-crashes": "^2.6.0", "appcenter-push": "^2.6.0", + "assert": "^1.5.0", "axios": "^0.18.0", - "buffer": "^5.2.1", + "bitcoinjs-lib": "5.1.1", + "buffer": "^5.4.3", "bugsnag-react-native": "^2.23.4", "core-js": "^2.6.0", "crypto-js": "^3.1.9-1", @@ -55,6 +59,7 @@ "react-native-actionsheet": "esteemapp/react-native-actionsheet", "react-native-autoheight-webview": "^1.4.1", "react-native-config": "luggit/react-native-config#master", + "react-native-crypto": "^2.2.0", "react-native-dark-mode": "^0.2.2", "react-native-datepicker": "esteemapp/react-native-datepicker", "react-native-extended-stylesheet": "^0.10.0", @@ -68,6 +73,8 @@ "react-native-modal-dropdown": "esteemapp/react-native-modal-dropdown", "react-native-modal-translucent": "^5.0.0", "react-native-navigation-bar-color": "^1.0.0", + "react-native-qrcode-svg": "^6.0.3", + "react-native-randombytes": "^3.5.3", "react-native-reanimated": "^1.3.0", "react-native-scrollable-tab-view": "esteemapp/react-native-scrollable-tab-view", "react-native-snap-carousel": "^3.8.0", @@ -83,6 +90,7 @@ "react-navigation-stack": "^1.10.3", "react-navigation-tabs": "^2.6.2", "react-redux": "^7.1.1", + "readable-stream": "^3.6.0", "redux": "^4.0.4", "redux-persist": "^6.0.0", "redux-promise": "^0.6.0", @@ -91,7 +99,9 @@ "rn-placeholder": "^1.3.2", "speakingurl": "^14.0.1", "stacktrace-parser": "0.1.4", - "steemconnect": "^3.0.4" + "steemconnect": "^3.0.4", + "stream-browserify": "^1.0.0", + "vm-browserify": "0.0.4" }, "devDependencies": { "@babel/core": "^7.6.2", @@ -120,7 +130,8 @@ "prettier-eslint": "^8.8.2", "react-test-renderer": "16.9.0", "redux-devtools-extension": "^2.13.5", - "redux-logger": "^3.0.6" + "redux-logger": "^3.0.6", + "rn-nodeify": "^10.2.0" }, "lint-staged": { "*.js": [ @@ -138,5 +149,25 @@ }, "resolutions": { "underscore.string": "^3.3.5" + }, + "react-native": { + "crypto": "react-native-crypto", + "_stream_transform": "readable-stream/transform", + "_stream_readable": "readable-stream/readable", + "_stream_writable": "readable-stream/writable", + "_stream_duplex": "readable-stream/duplex", + "_stream_passthrough": "readable-stream/passthrough", + "stream": "stream-browserify", + "vm": "vm-browserify" + }, + "browser": { + "crypto": "react-native-crypto", + "_stream_transform": "readable-stream/transform", + "_stream_readable": "readable-stream/readable", + "_stream_writable": "readable-stream/writable", + "_stream_duplex": "readable-stream/duplex", + "_stream_passthrough": "readable-stream/passthrough", + "stream": "stream-browserify", + "vm": "vm-browserify" } } diff --git a/release-notes.sh b/release-notes.sh new file mode 100644 index 000000000..f8b3cd2f3 --- /dev/null +++ b/release-notes.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash +TAG=`git tag | sort | tail -n 1` +HASH=`git show-ref -s $TAG` +git log --pretty=format:'* %s %b' $HASH..HEAD | grep -Ev 'New translations' \ No newline at end of file diff --git a/shim.js b/shim.js new file mode 100644 index 000000000..0e7070f90 --- /dev/null +++ b/shim.js @@ -0,0 +1,26 @@ +if (typeof __dirname === 'undefined') global.__dirname = '/'; +if (typeof __filename === 'undefined') global.__filename = ''; +if (typeof process === 'undefined') { + global.process = require('process'); +} else { + const bProcess = require('process'); + for (var p in bProcess) { + if (!(p in process)) { + process[p] = bProcess[p]; + } + } +} + +process.browser = false; +if (typeof Buffer === 'undefined') global.Buffer = require('buffer').Buffer; + +// global.location = global.location || { port: 80 } +const isDev = typeof __DEV__ === 'boolean' && __DEV__; +process.env.NODE_ENV = isDev ? 'development' : 'production'; +if (typeof localStorage !== 'undefined') { + localStorage.debug = isDev ? '*' : ''; +} + +// If using the crypto shim, uncomment the following line to ensure +// crypto is loaded first, so it can populate global.crypto +require('crypto'); diff --git a/src/components/walletHeader/view/walletHeaderStyles.js b/src/components/walletHeader/view/walletHeaderStyles.js index f6a7887a2..6a8f2a559 100644 --- a/src/components/walletHeader/view/walletHeaderStyles.js +++ b/src/components/walletHeader/view/walletHeaderStyles.js @@ -31,7 +31,7 @@ export default EStyleSheet.create({ }, subText: { color: '$darkIconColor', - fontSize: 8, + fontSize: 18, justifyContent: 'center', alignSelf: 'center', marginTop: 5, diff --git a/src/components/walletHeader/view/walletHeaderView.js b/src/components/walletHeader/view/walletHeaderView.js index 8e110a7f3..e095ba761 100644 --- a/src/components/walletHeader/view/walletHeaderView.js +++ b/src/components/walletHeader/view/walletHeaderView.js @@ -28,8 +28,10 @@ const WalletHeaderView = ({ currentIndex, valueDescriptions, showBuyButton, + showAddressButton, index, fetchUserActivity, + getTokenAddress, reload, refreshing, }) => { @@ -105,6 +107,25 @@ const WalletHeaderView = ({ )} + {showAddressButton && ( + getTokenAddress()} + > + + + {intl.formatMessage({ id: `wallet.${type}.address` })} + + + + + + + )} + {valueDescriptions && valueDescriptions.map((item, _index) => ( { + if (tokenType === 'BTC') { + console.log(getBtcAddress(pinCode, currentAccount)); + } + }; + return ( children && children({ @@ -288,16 +303,20 @@ const WalletContainer = ({ steemBalance, spBalance, sbdBalance, + btcBalance, + getTokenAddress, steemSavingBalance, sbdSavingBalance, estimatedValue, estimatedSteemValue, estimatedSbdValue, + estimatedBtcValue, estimatedSpValue, delegationsAmount, navigate: _navigate, steemDropdown: STEEM_DROPDOWN, sbdDropdown: SBD_DROPDOWN, + btcDropdown: BTC_DROPDOWN, savingSteemDropdown: SAVING_STEEM_DROPDOWN, savingSbdDropdown: SAVING_SBD_DROPDOWN, steemPowerDropdown: STEEM_POWER_DROPDOWN, diff --git a/src/containers/transferContainer.js b/src/containers/transferContainer.js index 7b7b2e79e..a5ed39836 100644 --- a/src/containers/transferContainer.js +++ b/src/containers/transferContainer.js @@ -36,6 +36,7 @@ class TransferContainer extends Component { this.state = { fundType: props.navigation.getParam('fundType', ''), balance: props.navigation.getParam('balance', ''), + btcAddress: props.navigation.getParam('btcAddress', ''), transferType: props.navigation.getParam('transferType', ''), selectedAccount: props.currentAccount, }; @@ -66,7 +67,7 @@ class TransferContainer extends Component { }; fetchBalance = username => { - const { fundType, transferType } = this.state; + const { fundType, transferType, btcAddress } = this.state; getAccount(username).then(async account => { let balance; @@ -97,6 +98,9 @@ class TransferContainer extends Component { if (transferType === 'powerUp' && fundType === 'STEEM') { balance = account[0].balance.replace(fundType, ''); } + if (transferType === 'address_view' && fundType === 'BTC') { + console.log('transcontaier, address_view', btcAddress); + } const local = await getUserDataWithUsername(username); @@ -216,7 +220,7 @@ class TransferContainer extends Component { render() { const { accounts, navigation, children, steemPerMVests, currentAccount } = this.props; - const { balance, fundType, selectedAccount } = this.state; + const { balance, fundType, selectedAccount, btcAddress } = this.state; const transferType = navigation.getParam('transferType', ''); @@ -225,6 +229,7 @@ class TransferContainer extends Component { children({ accounts, balance, + btcAddress, fundType, transferType, selectedAccount, diff --git a/src/providers/steem/dsteem.js b/src/providers/steem/dsteem.js index a10e41766..f9edea1bb 100644 --- a/src/providers/steem/dsteem.js +++ b/src/providers/steem/dsteem.js @@ -1,9 +1,11 @@ /* eslint-disable camelcase */ +import '../../../shim'; +import * as bitcoin from 'bitcoinjs-lib'; + import { Client, PrivateKey } from 'dsteem'; import steemconnect from 'steemconnect'; import Config from 'react-native-config'; import { get, has } from 'lodash'; - import { getServer } from '../../realm/realm'; import { getUnreadActivityCount } from '../esteem/esteem'; import { userActivity } from '../esteem/ePoint'; @@ -1336,6 +1338,26 @@ export const profileUpdate = async (params, pin, currentAccount) => { return Promise.reject(new Error('Check private key permission!')); }; +export const getBtcAddress = (pin, currentAccount) => { + const digitPinCode = getDigitPinCode(pin); + const key = getActiveKey(get(currentAccount, 'local'), digitPinCode); + console.log(pin, currentAccount, digitPinCode, key); + /*if (get(currentAccount, 'local.authType') === AUTH_TYPE.STEEM_CONNECT) { + return { address: '' }; + }*/ + + if (key) { + console.log(key); + const keyPair = bitcoin.ECPair.fromWIF(key); + const { address } = bitcoin.payments.p2pkh({ pubkey: keyPair.publicKey }); + + console.log('btc address', address); + return { address: address }; + } + + return { address: '' }; +}; + // HELPERS const getAnyPrivateKey = (local, pin) => { diff --git a/src/screens/transfer/index.js b/src/screens/transfer/index.js index f5084e765..6dca69694 100644 --- a/src/screens/transfer/index.js +++ b/src/screens/transfer/index.js @@ -3,6 +3,7 @@ import React from 'react'; import { TransferContainer } from '../../containers'; import TransferView from './screen/transferScreen'; +import AddressView from './screen/addressScreen'; import PowerDownView from './screen/powerDownScreen'; import DelegateView from './screen/delegateScreen'; @@ -80,6 +81,17 @@ const Transfer = ({ navigation }) => ( setWithdrawVestingRoute={setWithdrawVestingRoute} /> ); + case 'address_view': + return ( + + ); default: return null; diff --git a/src/screens/transfer/screen/addressScreen.js b/src/screens/transfer/screen/addressScreen.js new file mode 100644 index 000000000..d3746e43c --- /dev/null +++ b/src/screens/transfer/screen/addressScreen.js @@ -0,0 +1,95 @@ +import React, { Fragment, Component } from 'react'; +import { Text, View, ScrollView, TouchableOpacity } from 'react-native'; +import { WebView } from 'react-native-webview'; +import ActionSheet from 'react-native-actionsheet'; +import { injectIntl } from 'react-intl'; +import get from 'lodash/get'; +import QRCode from 'react-native-qrcode-svg'; +import { connect, useDispatch } from 'react-redux'; + +import { steemConnectOptions } from '../../../constants/steemConnectOptions'; +import AUTH_TYPE from '../../../constants/authType'; +import { encryptKey, decryptKey } from '../../../utils/crypto'; + +import { + BasicHeader, + TextInput, + TransferFormItem, + MainButton, + DropdownButton, + UserAvatar, + Icon, + Modal, +} from '../../../components'; + +import styles from './transferStyles'; + +/* Props + * ------------------------------------------------ + * @prop { type } name - Description.... + */ +const AddressView = ({ + intl, + handleOnModalClose, + fundType, + transferType, + balance, + currentAccountName, + selectedAccount, + accountType, + pinCode, +}) => { + console.log( + fundType, + transferType, + balance, + currentAccountName, + selectedAccount, + accountType, + pinCode, + ); + + let base64Logo = + 'data:image/png;base64,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'; + + return ( + + + + + {accountType !== 'postingKey' && + accountType !== 'memoKey' && + accountType !== 'steemConnect' && ( + + + + + + TEST + + + )} + {(accountType === 'postingKey' || + accountType === 'memoKey' || + accountType === 'steemConnect') && Cannot generate Address} + + + + ); +}; + +const mapStateToProps = state => ({ + pinCode: state.application.pin, + globalProps: state.account.globalProps, + currency: state.application.currency.currency, + isPinCodeOpen: state.application.isPinCodeOpen, +}); + +export default connect(mapStateToProps)(injectIntl(AddressView)); diff --git a/src/screens/transfer/screen/transferTokenScreen.js b/src/screens/transfer/screen/transferTokenScreen.js new file mode 100644 index 000000000..6ed10d14d --- /dev/null +++ b/src/screens/transfer/screen/transferTokenScreen.js @@ -0,0 +1,292 @@ +import React, { Fragment, Component } from 'react'; +import { Text, View, ScrollView, TouchableOpacity } from 'react-native'; +import { WebView } from 'react-native-webview'; +import ActionSheet from 'react-native-actionsheet'; +import { injectIntl } from 'react-intl'; +import get from 'lodash/get'; + +import { steemConnectOptions } from '../../../constants/steemConnectOptions'; +import AUTH_TYPE from '../../../constants/authType'; + +import { + BasicHeader, + TextInput, + TransferFormItem, + MainButton, + DropdownButton, + UserAvatar, + Icon, + Modal, +} from '../../../components'; + +import styles from './transferStyles'; + +/* Props + * ------------------------------------------------ + * @prop { type } name - Description.... + */ + +class TransferTokenView extends Component { + constructor(props) { + super(props); + this.state = { + from: props.currentAccountName, + destination: '', + amount: '', + steemConnectTransfer: false, + isTransfering: false, + }; + } + + // Component Life Cycles + + // Component Functions + _setState = (key, value) => { + const { getAccountsWithUsername, balance } = this.props; + + if (key) { + switch (key) { + case 'destination': + getAccountsWithUsername(value).then(res => { + const isValid = res.includes(value); + + this.setState({ isUsernameValid: isValid }); + }); + this.setState({ [key]: value }); + break; + case 'amount': + if (parseFloat(Number(value)) <= parseFloat(balance)) { + this.setState({ [key]: value }); + } + break; + + default: + this.setState({ [key]: value }); + break; + } + } + }; + + _handleTransferAction = () => { + const { transferToAccount, accountType } = this.props; + const { from, destination, amount, memo } = this.state; + + this.setState({ isTransfering: true }); + + if (accountType === AUTH_TYPE.STEEM_CONNECT) { + this.setState({ steemConnectTransfer: true }); + } else { + transferToAccount(from, destination, amount, memo); + } + }; + + _handleOnAmountChange = (state, amount) => { + let _amount = amount.toString(); + if (_amount.includes(',')) { + _amount = amount.replace(',', '.'); + } + + this._setState(state, _amount); + }; + + _renderInput = (placeholder, state, keyboardType, isTextArea) => ( + this._handleOnAmountChange(state, amount)} + value={this.state[state]} + placeholder={placeholder} + placeholderTextColor="#c1c5c7" + autoCapitalize="none" + multiline={isTextArea} + numberOfLines={isTextArea ? 4 : 1} + keyboardType={keyboardType} + /> + ); + + _renderDropdown = (accounts, currentAccountName) => ( + item.username)} + defaultText={currentAccountName} + selectedOptionIndex={accounts.findIndex(item => item.username === currentAccountName)} + onSelect={(index, value) => this._handleOnDropdownChange(value)} + /> + ); + + _handleOnDropdownChange = value => { + const { fetchBalance, transferType } = this.props; + + fetchBalance(value); + this.setState({ from: value }); + if (transferType === 'convert') { + this.setState({ destination: value }); + } + }; + + _renderDescription = text => {text}; + + render() { + const { + accounts, + intl, + handleOnModalClose, + balance, + fundType, + transferType, + currentAccountName, + selectedAccount, + } = this.props; + const { + destination, + isUsernameValid, + amount, + steemConnectTransfer, + memo, + isTransfering, + from, + } = this.state; + let path; + + if (transferType === 'points') { + const json = JSON.stringify({ + sender: get(selectedAccount, 'name'), + receiver: destination, + amount: `${Number(amount).toFixed(3)} ${fundType}`, + memo, + }); + path = `sign/custom-json?authority=active&required_auths=%5B%22${get( + selectedAccount, + 'name', + )}%22%5D&required_posting_auths=%5B%5D&id=esteem_point_transfer&json=${encodeURIComponent( + json, + )}`; + } else { + path = `sign/transfer?from=${ + accounts[0].username + }&to=${destination}&amount=${encodeURIComponent( + `${amount} ${fundType}`, + )}&memo=${encodeURIComponent(memo)}`; + } + + return ( + + + + + + + + + + + this._renderDropdown(accounts, currentAccountName)} + /> + {transferType !== 'convert' && ( + + this._renderInput( + intl.formatMessage({ id: 'transfer.to_placeholder' }), + 'destination', + 'default', + ) + } + /> + )} + + this._renderInput( + intl.formatMessage({ id: 'transfer.amount' }), + 'amount', + 'numeric', + ) + } + /> + ( + this._handleOnAmountChange('amount', balance)}> + {this._renderDescription( + `${intl.formatMessage({ + id: 'transfer.amount_desc', + })} ${balance} ${fundType}`, + )} + + )} + /> + {(transferType === 'points' || transferType === 'transfer_token') && ( + + this._renderInput( + intl.formatMessage({ id: 'transfer.memo_placeholder' }), + 'memo', + 'default', + true, + ) + } + /> + )} + {(transferType === 'points' || transferType === 'transfer_token') && ( + + this._renderDescription(intl.formatMessage({ id: 'transfer.memo_desc' })) + } + /> + )} + {transferType === 'convert' && ( + + this._renderDescription(intl.formatMessage({ id: 'transfer.convert_desc' })) + } + /> + )} + + + = 0.001 && isUsernameValid)} + onPress={() => this.ActionSheet.show()} + isLoading={isTransfering} + > + {intl.formatMessage({ id: 'transfer.next' })} + + + + + (this.ActionSheet = o)} + options={[ + intl.formatMessage({ id: 'alert.confirm' }), + intl.formatMessage({ id: 'alert.cancel' }), + ]} + title={intl.formatMessage({ id: 'transfer.information' })} + cancelButtonIndex={1} + destructiveButtonIndex={0} + onPress={index => { + index === 0 ? this._handleTransferAction() : null; + }} + /> + {path && ( + + + + )} + + ); + } +} + +export default injectIntl(TransferTokenView); diff --git a/src/screens/wallet/screen/btcView.js b/src/screens/wallet/screen/btcView.js new file mode 100644 index 000000000..cbf54a814 --- /dev/null +++ b/src/screens/wallet/screen/btcView.js @@ -0,0 +1,59 @@ +import React from 'react'; +import { View } from 'react-native'; + +import { WalletHeader, FormattedCurrency } from '../../../components'; +import { SteemWalletContainer, AccountContainer } from '../../../containers'; + +import globalStyles from '../../../globalStyles'; + +const BtcView = ({ handleOnSelected, index, currentIndex, refreshing: reload }) => ( + + + {({ currentAccount }) => ( + + {({ + isClaiming, + claimRewardBalance, + handleOnWalletRefresh, + refreshing, + transferHistory, + btcBalance, + getTokenAddress, + isLoading, + estimatedBtcValue, + btcDropdown, + navigate, + }) => ( + handleOnSelected(transferHistory, isLoading)} + index={index} + claim={claimRewardBalance} + reload={reload} + fetchUserActivity={handleOnWalletRefresh} + getTokenAddress={() => getTokenAddress('BTC')} + isClaiming={isClaiming} + isLoading={isLoading} + refreshing={refreshing} + unclaimedBalance={0} + userBalance={[{ balance: btcBalance, nameKey: 'btc', options: btcDropdown }]} + handleOnDropdownSelected={option => navigate(option, 'BTC')} + type="btc" + currentIndex={currentIndex} + showAddressButton + showIconList={false} + valueDescriptions={[ + { + textKey: 'estimated_value', + value: , + subTextKey: 'estimated_value_desc', + }, + ]} + /> + )} + + )} + + +); + +export default BtcView; diff --git a/src/screens/wallet/screen/walletScreen.js b/src/screens/wallet/screen/walletScreen.js index 36047624b..adb59a3de 100644 --- a/src/screens/wallet/screen/walletScreen.js +++ b/src/screens/wallet/screen/walletScreen.js @@ -12,6 +12,7 @@ import EstmView from './estmView'; import SteemView from './steemView'; import SpView from './spView'; import SbdView from './sbdView'; +import BtcView from './btcView'; // Styles import globalStyles from '../../../globalStyles'; @@ -61,20 +62,26 @@ const WalletScreen = () => { refreshing={refreshing} currentIndex={currentIndex} /> - - - + CryptoJS.AES.encrypt(key, data).toString(); -export const decryptKey = (key, data) => - CryptoJS.AES.decrypt(key, data).toString(CryptoJS.enc.Utf8); +export const decryptKey = (key, data) => { + console.log('key', key, 'data', data); + + return CryptoJS.AES.decrypt(key, data).toString(CryptoJS.enc.Utf8); +}; diff --git a/src/utils/wallet.js b/src/utils/wallet.js index 77ce77a03..09b0245c4 100644 --- a/src/utils/wallet.js +++ b/src/utils/wallet.js @@ -165,7 +165,7 @@ export const groomingWalletData = async (user, globalProps, userCurrency) => { if (!user) { return walletData; } - + console.log('groomingWalletData', user); const state = await getState(`/@${get(user, 'name')}/transfers`); const { accounts } = state; if (!accounts) { @@ -266,3 +266,12 @@ export const getPointsEstimate = async (amount, userCurrency) => { return ppEstm * amount; }; + +export const getBtcEstimate = async (amount, userCurrency) => { + if (!amount) { + return 0; + } + const ppBtc = await getCurrencyTokenRate(userCurrency, 'btc'); + + return ppBtc * amount; +}; diff --git a/yarn.lock b/yarn.lock index fdcbeb14c..2b6b86523 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1609,6 +1609,11 @@ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.3.tgz#bdfd69d61e464dcc81b25159c270d75a73c1a636" integrity sha512-Il2DtDVRGDcqjDtE+rF8iqg1CArehSK84HZJCT7AMITlyXRBpuPhqGLDQMowraqqu1coEaimg4ZOqggt6L6L+A== +"@types/node@10.12.18": + version "10.12.18" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.18.tgz#1d3ca764718915584fcd9f6344621b7672665c67" + integrity sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ== + "@types/normalize-package-data@^2.4.0": version "2.4.0" resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" @@ -1690,6 +1695,11 @@ lodash.unescape "4.0.1" semver "5.5.0" +"@yarnpkg/lockfile@^1.0.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" + integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== + abab@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.3.tgz#623e2075e02eb2d3f2475e49f99c91846467907a" @@ -2016,6 +2026,15 @@ asap@~2.0.3: resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= +asn1.js@^4.0.0: + version "4.10.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" + integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + asn1@~0.2.3: version "0.2.4" resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" @@ -2028,6 +2047,14 @@ assert-plus@1.0.0, assert-plus@^1.0.0: resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= +assert@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" + integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== + dependencies: + object-assign "^4.1.1" + util "0.10.3" + assign-symbols@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" @@ -2309,26 +2336,76 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" +bech32@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.3.tgz#bd47a8986bbb3eec34a56a097a84b8d3e9a2dfcd" + integrity sha512-yuVFUvrNcoJi0sv5phmqc6P+Fl1HjRDRNOOkHY2X/3LBy2bIGNSFx4fZ95HMaXHupuS7cZR15AsvtmCIF4UEyg== + big-integer@^1.6.44: version "1.6.48" resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.48.tgz#8fd88bd1632cba4a1c8c3e3d7159f08bb95b4b9e" integrity sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w== -bindings@^1.5.0: +bindings@^1.3.0, bindings@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== dependencies: file-uri-to-path "1.0.0" -bip66@^1.1.5: +bip174@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/bip174/-/bip174-1.0.1.tgz#858a587f9529e22ee9b0572fd884e5783696824d" + integrity sha512-Mq2aFs1TdMfxBpYPg7uzjhsiXbAtoVq44TNjEWtvuZBiBgc3m7+n55orYMtTAxdg7jWbL4DtH0MKocJER4xERQ== + +bip32@^2.0.3: + version "2.0.5" + resolved "https://registry.yarnpkg.com/bip32/-/bip32-2.0.5.tgz#e3808a9e97a880dbafd0f5f09ca4a1e14ee275d2" + integrity sha512-zVY4VvJV+b2fS0/dcap/5XLlpqtgwyN8oRkuGgAS1uLOeEp0Yo6Tw2yUTozTtlrMJO3G8n4g/KX/XGFHW6Pq3g== + dependencies: + "@types/node" "10.12.18" + bs58check "^2.1.1" + create-hash "^1.2.0" + create-hmac "^1.1.7" + tiny-secp256k1 "^1.1.3" + typeforce "^1.11.5" + wif "^2.0.6" + +bip66@^1.1.0, bip66@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/bip66/-/bip66-1.1.5.tgz#01fa8748785ca70955d5011217d1b3139969ca22" integrity sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI= dependencies: safe-buffer "^5.0.1" -bn.js@^4.11.8, bn.js@^4.4.0: +bitcoin-ops@^1.3.0, bitcoin-ops@^1.4.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/bitcoin-ops/-/bitcoin-ops-1.4.1.tgz#e45de620398e22fd4ca6023de43974ff42240278" + integrity sha512-pef6gxZFztEhaE9RY9HmWVmiIHqCb2OyS4HPKkpc6CIiiOa3Qmuoylxc5P2EkU3w+5eTSifI9SEZC88idAIGow== + +bitcoinjs-lib@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/bitcoinjs-lib/-/bitcoinjs-lib-5.1.1.tgz#fa682d7fc1d7bb67aff0a0cf2de999cd7633d88c" + integrity sha512-BrjFqv+yE9YV1edKdPMIjZMg31Q1I5b1sniIQDOuuwa5/rv6FYG/m4jH/bR8t0M0yzeeEcqF5M4zxKqK1TrVHA== + dependencies: + "@types/node" "10.12.18" + bech32 "^1.1.2" + bip174 "^1.0.0" + bip32 "^2.0.3" + bip66 "^1.1.0" + bitcoin-ops "^1.4.0" + bs58check "^2.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.3" + merkle-lib "^2.0.10" + pushdata-bitcoin "^1.0.1" + randombytes "^2.0.1" + tiny-secp256k1 "^1.1.1" + typeforce "^1.11.3" + varuint-bitcoin "^1.0.4" + wif "^2.0.1" + +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.11.8, bn.js@^4.4.0: version "4.11.8" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== @@ -2393,7 +2470,7 @@ browser-resolve@^1.11.3: dependencies: resolve "1.1.7" -browserify-aes@^1.0.6: +browserify-aes@^1.0.0, browserify-aes@^1.0.4, browserify-aes@^1.0.6: version "1.2.0" resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== @@ -2405,13 +2482,62 @@ browserify-aes@^1.0.6: inherits "^2.0.1" safe-buffer "^5.0.1" -bs58@^4.0.1: +browserify-cipher@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" + integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +browserify-rsa@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" + integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= + dependencies: + bn.js "^4.1.0" + randombytes "^2.0.1" + +browserify-sign@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" + integrity sha1-qk62jl17ZYuqa/alfmMMvXqT0pg= + dependencies: + bn.js "^4.1.1" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.2" + elliptic "^6.0.0" + inherits "^2.0.1" + parse-asn1 "^5.0.0" + +bs58@^4.0.0, bs58@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" integrity sha1-vhYedsNU9veIrkBx9j806MTwpCo= dependencies: base-x "^3.0.2" +bs58check@<3.0.0, bs58check@^2.0.0, bs58check@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-2.1.2.tgz#53b018291228d82a5aa08e7d796fdafda54aebfc" + integrity sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA== + dependencies: + bs58 "^4.0.0" + create-hash "^1.1.0" + safe-buffer "^5.1.2" + bser@2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" @@ -2434,7 +2560,7 @@ buffer-xor@^1.0.3: resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= -buffer@^4.5.1: +buffer@^4.5.1, buffer@^4.9.1: version "4.9.2" resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== @@ -2443,7 +2569,7 @@ buffer@^4.5.1: ieee754 "^1.1.4" isarray "^1.0.0" -buffer@^5.2.1: +buffer@^5.4.3: version "5.4.3" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.4.3.tgz#3fbc9c69eb713d323e3fc1a895eee0710c072115" integrity sha512-zvj65TkFeIt3i6aj5bIvJDzjjQQGs4o/sNoezg1F1kYap9Nu2jcUdpwzRSJTHMMzG0H7bZkn4rNQpImhuxWX2A== @@ -2533,6 +2659,13 @@ camelcase@^5.0.0, camelcase@^5.3.1: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== +can-promise@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/can-promise/-/can-promise-0.0.1.tgz#7a7597ad801fb14c8b22341dfec314b6bd6ad8d3" + integrity sha512-gzVrHyyrvgt0YpDm7pn04MQt8gjh0ZAhN4ZDyCRtGl6YnuuK6b4aiUTD7G52r9l4YNmxfTtEscb92vxtAlL6XQ== + dependencies: + window-or-global "^1.0.1" + capture-exit@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" @@ -2854,6 +2987,14 @@ cosmiconfig@^5.0.2, cosmiconfig@^5.0.5, cosmiconfig@^5.1.0, cosmiconfig@^5.2.1: js-yaml "^3.13.1" parse-json "^4.0.0" +create-ecdh@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" + integrity sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw== + dependencies: + bn.js "^4.1.0" + elliptic "^6.0.0" + create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" @@ -2865,7 +3006,7 @@ create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: ripemd160 "^2.0.1" sha.js "^2.4.0" -create-hmac@^1.1.4: +create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.3, create-hmac@^1.1.4, create-hmac@^1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== @@ -3058,6 +3199,18 @@ deep-diff@^0.3.5: resolved "https://registry.yarnpkg.com/deep-diff/-/deep-diff-0.3.8.tgz#c01de63efb0eec9798801d40c7e0dae25b582c84" integrity sha1-wB3mPvsO7JeYgB1Ax+Da4ltYLIQ= +deep-equal@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" + integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== + dependencies: + is-arguments "^1.0.4" + is-date-object "^1.0.1" + is-regex "^1.0.4" + object-is "^1.0.1" + object-keys "^1.1.1" + regexp.prototype.flags "^1.2.0" + deep-is@~0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" @@ -3129,6 +3282,14 @@ deprecated-react-native-listview@0.0.5: invariant "*" react-clone-referenced-element "*" +des.js@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" + integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + destroy@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" @@ -3154,6 +3315,20 @@ diff-sequences@^24.9.0: resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.9.0.tgz#5715d6244e2aa65f48bba0bc972db0b0b11e95b5" integrity sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew== +diffie-hellman@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + +dijkstrajs@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/dijkstrajs/-/dijkstrajs-1.0.1.tgz#d3cd81221e3ea40742cfcde556d4e99e98ddc71b" + integrity sha1-082BIh4+pAdCz83lVtTpnpjdxxs= + dlv@^1.1.0: version "1.1.3" resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79" @@ -3280,7 +3455,7 @@ elegant-spinner@^1.0.1: resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" integrity sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4= -elliptic@^6.4.1: +elliptic@^6.0.0, elliptic@^6.4.0, elliptic@^6.4.1: version "6.5.2" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.2.tgz#05c5678d7173c049d8ca433552224a495d0e3762" integrity sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw== @@ -3782,7 +3957,7 @@ events@^3.0.0: resolved "https://registry.yarnpkg.com/events/-/events-3.0.0.tgz#9a0a0dfaf62893d92b875b8f2698ca4114973e88" integrity sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA== -evp_bytestokey@^1.0.3: +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== @@ -4117,6 +4292,11 @@ find-up@^4.0.0, find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" +findit@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/findit/-/findit-2.0.0.tgz#6509f0126af4c178551cfa99394e032e13a4d56e" + integrity sha1-ZQnwEmr0wXhVHPqZOU4DLhOk1W4= + flat-cache@^1.2.1: version "1.3.4" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.4.tgz#2c2ef77525cc2929007dfffa1dd314aa9c9dee6f" @@ -4186,6 +4366,15 @@ fresh@0.5.2: resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= +fs-extra@^0.22.1: + version "0.22.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.22.1.tgz#5fd6f8049dc976ca19eb2355d658173cabcce056" + integrity sha1-X9b4BJ3JdsoZ6yNV1lgXPKvM4FY= + dependencies: + graceful-fs "^4.1.2" + jsonfile "^2.1.0" + rimraf "^2.2.8" + fs-extra@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-1.0.0.tgz#cd3ce5f7e7cb6145883fcae3191e9877f8587950" @@ -4598,6 +4787,11 @@ indent-string@^3.0.0, indent-string@^3.2.0: resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok= +indexof@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10= + inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" @@ -4606,11 +4800,16 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== +inherits@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= + inherits@2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" @@ -4721,6 +4920,11 @@ is-accessor-descriptor@^1.0.0: dependencies: kind-of "^6.0.0" +is-arguments@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" + integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA== + is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" @@ -4916,6 +5120,11 @@ isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= +isarray@^2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + iserror@^0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/iserror/-/iserror-0.0.2.tgz#bd53451fe2f668b9f2402c1966787aaa2c7c0bf5" @@ -5998,6 +6207,11 @@ merge-stream@^2.0.0: resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== +merkle-lib@^2.0.10: + version "2.0.10" + resolved "https://registry.yarnpkg.com/merkle-lib/-/merkle-lib-2.0.10.tgz#82b8dbae75e27a7785388b73f9d7725d0f6f3326" + integrity sha1-grjbrnXieneFOItz+ddyXQ9vMyY= + metro-babel-register@0.56.3, metro-babel-register@^0.56.0: version "0.56.3" resolved "https://registry.yarnpkg.com/metro-babel-register/-/metro-babel-register-0.56.3.tgz#d0cfb38adf45cb35965649ede794f2308562e20f" @@ -6243,6 +6457,14 @@ micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8: snapdragon "^0.8.1" to-regex "^3.0.2" +miller-rabin@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + mime-db@1.42.0, "mime-db@>= 1.40.0 < 2": version "1.42.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.42.0.tgz#3e252907b4c7adb906597b4b65636272cf9e7bac" @@ -6309,7 +6531,7 @@ minimist@0.0.8: resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= -minimist@^1.1.1, minimist@^1.2.0: +minimist@^1.1.1, minimist@^1.1.2, minimist@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= @@ -6370,7 +6592,7 @@ mute-stream@0.0.7: resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= -nan@^2.12.1, nan@^2.14.0: +nan@^2.12.1, nan@^2.13.2, nan@^2.14.0: version "2.14.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg== @@ -6545,6 +6767,11 @@ object-inspect@^1.7.0: resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67" integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw== +object-is@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.2.tgz#6b80eb84fe451498f65007982f035a5b445edec4" + integrity sha512-Epah+btZd5wrrfjkJZq1AOB9O6OxUQto45hzFd7lXGrpHPGE0W1k+426yrZV+k6NJOzLNNW/nVsmZdIWsAqoOQ== + object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" @@ -6600,7 +6827,7 @@ object.getownpropertydescriptors@^2.0.3: define-properties "^1.1.3" es-abstract "^1.17.0-next.1" -object.pick@^1.3.0: +object.pick@^1.1.1, object.pick@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= @@ -6830,6 +7057,18 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" +parse-asn1@^5.0.0: + version "5.1.5" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.5.tgz#003271343da58dc94cace494faef3d2147ecea0e" + integrity sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ== + dependencies: + asn1.js "^4.0.0" + browserify-aes "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + safe-buffer "^5.1.1" + parse-json@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" @@ -6934,6 +7173,24 @@ path@^0.12.7: process "^0.11.1" util "^0.10.3" +pbkdf2@3.0.8: + version "3.0.8" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.8.tgz#2f8abf16ebecc82277945d748aba1d78761f61e2" + integrity sha1-L4q/FuvsyCJ3lF10irodeHYfYeI= + dependencies: + create-hmac "^1.1.2" + +pbkdf2@^3.0.3: + version "3.0.17" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" + integrity sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA== + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + pbxproj-dom@^1.0.11: version "1.2.0" resolved "https://registry.yarnpkg.com/pbxproj-dom/-/pbxproj-dom-1.2.0.tgz#1cf4101163bd666eba9eb92a5b8f616ce824ea85" @@ -7024,6 +7281,11 @@ pn@^1.1.0: resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== +pngjs@^3.3.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f" + integrity sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w== + posix-character-classes@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" @@ -7164,6 +7426,18 @@ psl@^1.1.24, psl@^1.1.28: resolved "https://registry.yarnpkg.com/psl/-/psl-1.6.0.tgz#60557582ee23b6c43719d9890fb4170ecd91e110" integrity sha512-SYKKmVel98NCOYXpkwUqZqh0ahZeeKfmisiLIcEZdsb+WbLv02g/dI5BUmZnIyOe7RzZtLax81nnb2HbvC2tzA== +public-encrypt@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" + integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + safe-buffer "^5.1.2" + pump@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" @@ -7187,6 +7461,24 @@ punycode@^2.1.0, punycode@^2.1.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== +pushdata-bitcoin@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/pushdata-bitcoin/-/pushdata-bitcoin-1.0.1.tgz#15931d3cd967ade52206f523aa7331aef7d43af7" + integrity sha1-FZMdPNlnreUiBvUjqnMxrvfUOvc= + dependencies: + bitcoin-ops "^1.3.0" + +qrcode@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/qrcode/-/qrcode-1.2.0.tgz#330d24313fbf8d429a806091af9525250239e44a" + integrity sha512-wZK0Z0eYmOUDP2tOGzmLdeBn5Npa+4wms9GdvzH7HrywvGUq/Stz0BKUhW4DfmBf1PSrm9dNfdnVDq683Zxvag== + dependencies: + can-promise "^0.0.1" + dijkstrajs "^1.0.1" + isarray "^2.0.1" + pngjs "^3.3.0" + yargs "^8.0.2" + qs@~6.5.2: version "6.5.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" @@ -7206,6 +7498,21 @@ querystring@0.2.0: resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +randomfill@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + range-parser@~1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" @@ -7283,6 +7590,22 @@ react-native-config@luggit/react-native-config#master: version "0.12.0" resolved "https://codeload.github.com/luggit/react-native-config/tar.gz/cf8ab95350a227d1a932fec7a920df562b3e9ae5" +react-native-crypto@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/react-native-crypto/-/react-native-crypto-2.2.0.tgz#c999ed7c96064f830e1f958687f53d0c44025770" + integrity sha512-eZu9Y8pa8BN9FU2pIex7MLRAi+Cd1Y6bsxfiufKh7sfraAACJvjQTeW7/zcQAT93WMfM+D0OVk+bubvkrbrUkw== + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.4" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "3.0.8" + public-encrypt "^4.0.0" + randomfill "^1.0.3" + react-native-dark-mode@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/react-native-dark-mode/-/react-native-dark-mode-0.2.2.tgz#4faa335e36330bfca832ba8b3d2bd84c7b880381" @@ -7390,6 +7713,22 @@ react-native-navigation-bar-color@^1.0.0: resolved "https://registry.yarnpkg.com/react-native-navigation-bar-color/-/react-native-navigation-bar-color-1.0.0.tgz#04ff752a58049af93ceea9ccf266b8d3fbc6514a" integrity sha512-djBE0zSp+JT65VeUm4UpIpr9DA9SpE9YTLwDAcqkWfB9JI8l3djSx+SmrIYfc7dUs216Y6qo2dr0qR3+M5qbOQ== +react-native-qrcode-svg@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/react-native-qrcode-svg/-/react-native-qrcode-svg-6.0.3.tgz#27b6a7a1df02c5bf10796fd97e8b55c0044dc0f8" + integrity sha512-Zag+k0TEkRQ5jwGaidXvwCB4PXvxeeTr0OrQbXPRGvSohshRaNmsv2q7ib1FYdvvDeOygWOA5XdgmOH9D8xdAA== + dependencies: + prop-types "^15.5.10" + qrcode "1.2.0" + +react-native-randombytes@^3.5.3: + version "3.5.3" + resolved "https://registry.yarnpkg.com/react-native-randombytes/-/react-native-randombytes-3.5.3.tgz#b3bdcd11473cce106551a586244b98855e443cd1" + integrity sha512-n/7QwMrRJxHr+/3mt2KxqqacGylM+ssW+FfBTgXGzvwq5KzSohooEWf6Z6MTSByuJ/izP9VbSPtwomPwzvupKQ== + dependencies: + buffer "^4.9.1" + sjcl "^1.0.3" + react-native-reanimated@^1.3.0: version "1.4.0" resolved "https://registry.yarnpkg.com/react-native-reanimated/-/react-native-reanimated-1.4.0.tgz#7f1acbf9be08492d834f512700570978052be2f9" @@ -7651,6 +7990,16 @@ read-pkg@^5.2.0: parse-json "^5.0.0" type-fest "^0.6.0" +readable-stream@^1.0.27-1: + version "1.1.14" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + integrity sha1-fPTFTvZI44EwhMY23SB54WbAgdk= + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + readable-stream@^2.0.1, readable-stream@^2.2.2, readable-stream@~2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" @@ -7673,6 +8022,15 @@ readable-stream@^3.1.1: string_decoder "^1.1.1" util-deprecate "^1.0.1" +readable-stream@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + realpath-native@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.1.0.tgz#2003294fea23fb0672f2476ebe22fcf498a2d65c" @@ -7762,6 +8120,14 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" +regexp.prototype.flags@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75" + integrity sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + regexpp@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-1.1.0.tgz#0e3516dd0b7904f413d2d4193dce4618c3a689ab" @@ -7953,7 +8319,7 @@ rimraf@2.6.3, rimraf@~2.6.2: dependencies: glob "^7.1.3" -rimraf@^2.5.4, rimraf@^2.6.3: +rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.3: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== @@ -7981,6 +8347,21 @@ rn-fetch-blob@^0.12.0: base-64 "0.1.0" glob "7.0.6" +rn-nodeify@^10.2.0: + version "10.2.0" + resolved "https://registry.yarnpkg.com/rn-nodeify/-/rn-nodeify-10.2.0.tgz#e68843bf280edf878b7615b255fb5e71cde9f8f6" + integrity sha512-mPNe2vNR14UTwAbpebI9fXn9HAU37vebyZDCqZOK6G5GBEUiMCANIVa7zgc9aJ1JeziLUGLR9c+H9/BSbVdd4Q== + dependencies: + "@yarnpkg/lockfile" "^1.0.0" + deep-equal "^1.0.0" + findit "^2.0.0" + fs-extra "^0.22.1" + minimist "^1.1.2" + object.pick "^1.1.1" + run-parallel "^1.1.2" + semver "^5.0.1" + xtend "^4.0.0" + rn-placeholder@^1.3.2: version "1.3.3" resolved "https://registry.yarnpkg.com/rn-placeholder/-/rn-placeholder-1.3.3.tgz#205067c1a2f08bcdfe09971b0c48b46afcd9c952" @@ -8005,6 +8386,11 @@ run-node@^1.0.0: resolved "https://registry.yarnpkg.com/run-node/-/run-node-1.0.0.tgz#46b50b946a2aa2d4947ae1d886e9856fd9cabe5e" integrity sha512-kc120TBlQ3mih1LSzdAJXo4xn/GWS2ec0l3S+syHDXP9uRr0JAT8Qd3mdMuyjqCzeZktgP3try92cEgf9Nks8A== +run-parallel@^1.1.2: + version "1.1.9" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" + integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q== + rx-lite-aggregates@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" @@ -8036,7 +8422,7 @@ safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== @@ -8116,7 +8502,7 @@ semver-compare@^1.0.0: resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= -"semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: +"semver@2 || 3 || 4 || 5", semver@^5.0.1, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -8259,6 +8645,11 @@ sisteransi@^1.0.3: resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.4.tgz#386713f1ef688c7c0304dc4c0632898941cad2e3" integrity sha512-/ekMoM4NJ59ivGSfKapeG+FWtrmWvA1p6FBZwXrqojw90vJu8lBmrTxCMuBCydKtkaUe2zt4PlxeTKpjwMbyig== +sjcl@^1.0.3: + version "1.0.8" + resolved "https://registry.yarnpkg.com/sjcl/-/sjcl-1.0.8.tgz#f2ec8d7dc1f0f21b069b8914a41a8f236b0e252a" + integrity sha512-LzIjEQ0S0DpIgnxMEayM1rq9aGwGRG4OnZhCdjx7glTaJtf4zRfpg87ImfjSJjoW9vKpagd82McDOwbRT5kQKQ== + slash@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" @@ -8489,6 +8880,14 @@ steemconnect@^3.0.4: cross-fetch "^3.0.1" steem-uri "^0.1.1" +stream-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-1.0.0.tgz#bf9b4abfb42b274d751479e44e0ff2656b6f1193" + integrity sha1-v5tKv7QrJ011FHnkTg/yZWtvEZM= + dependencies: + inherits "~2.0.1" + readable-stream "^1.0.27-1" + stream-buffers@~2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/stream-buffers/-/stream-buffers-2.2.0.tgz#91d5f5130d1cef96dcfa7f726945188741d09ee4" @@ -8568,6 +8967,11 @@ string_decoder@^1.1.1: dependencies: safe-buffer "~5.2.0" +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= + string_decoder@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" @@ -8727,6 +9131,17 @@ time-stamp@^1.0.0: resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3" integrity sha1-dkpaEa9QVhkhsTPztE5hhofg9cM= +tiny-secp256k1@^1.1.1, tiny-secp256k1@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/tiny-secp256k1/-/tiny-secp256k1-1.1.3.tgz#e93b1e1bf62e9bd1ad3ab24af27ff6127ce0e077" + integrity sha512-ZpobrhOtHP98VYEN51IYQH1YcrbFpnxFhI6ceWa3OEbJn7eHvSd8YFjGPxbedGCy7PNYU1v/+BRsdvyr5uRd4g== + dependencies: + bindings "^1.3.0" + bn.js "^4.11.8" + create-hmac "^1.1.7" + elliptic "^6.4.0" + nan "^2.13.2" + tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -8853,6 +9268,11 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= +typeforce@^1.11.3, typeforce@^1.11.5: + version "1.18.0" + resolved "https://registry.yarnpkg.com/typeforce/-/typeforce-1.18.0.tgz#d7416a2c5845e085034d70fcc5b6cc4a90edbfdc" + integrity sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g== + typescript-eslint-parser@^16.0.0: version "16.0.1" resolved "https://registry.yarnpkg.com/typescript-eslint-parser/-/typescript-eslint-parser-16.0.1.tgz#b40681c7043b222b9772748b700a000b241c031b" @@ -8994,6 +9414,13 @@ util.promisify@^1.0.0: define-properties "^1.1.2" object.getownpropertydescriptors "^2.0.3" +util@0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= + dependencies: + inherits "2.0.1" + util@^0.10.3: version "0.10.4" resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901" @@ -9019,6 +9446,13 @@ validate-npm-package-license@^3.0.1: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" +varuint-bitcoin@^1.0.4: + version "1.1.2" + resolved "https://registry.yarnpkg.com/varuint-bitcoin/-/varuint-bitcoin-1.1.2.tgz#e76c138249d06138b480d4c5b40ef53693e24e92" + integrity sha512-4EVb+w4rx+YfVM32HQX42AbbT7/1f5zwAYhIujKXKk8NQK+JfRVl3pqT3hjNn/L+RstigmGGKVwHA/P0wgITZw== + dependencies: + safe-buffer "^5.1.1" + vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" @@ -9038,6 +9472,13 @@ vlq@^1.0.0: resolved "https://registry.yarnpkg.com/vlq/-/vlq-1.0.1.tgz#c003f6e7c0b4c1edd623fd6ee50bbc0d6a1de468" integrity sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w== +vm-browserify@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" + integrity sha1-XX6kW7755Kb/ZflUOOCofDV9WnM= + dependencies: + indexof "0.0.1" + vue-eslint-parser@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-2.0.3.tgz#c268c96c6d94cfe3d938a5f7593959b0ca3360d1" @@ -9130,6 +9571,18 @@ which@^1.2.10, which@^1.2.9, which@^1.3.0: dependencies: isexe "^2.0.0" +wif@^2.0.1, wif@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/wif/-/wif-2.0.6.tgz#08d3f52056c66679299726fade0d432ae74b4704" + integrity sha1-CNP1IFbGZnkplyb63g1DKudLRwQ= + dependencies: + bs58check "<3.0.0" + +window-or-global@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/window-or-global/-/window-or-global-1.0.1.tgz#dbe45ba2a291aabc56d62cf66c45b7fa322946de" + integrity sha1-2+RboqKRqrxW1iz2bEW3+jIpRt4= + word-wrap@~1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" @@ -9266,7 +9719,7 @@ xpipe@^1.0.5: resolved "https://registry.yarnpkg.com/xpipe/-/xpipe-1.0.5.tgz#8dd8bf45fc3f7f55f0e054b878f43a62614dafdf" integrity sha1-jdi/Rfw/f1Xw4FS4ePQ6YmFNr98= -xtend@^4.0.1, xtend@~4.0.1: +xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== @@ -9348,6 +9801,25 @@ yargs@^13.2.2, yargs@^13.3.0: y18n "^4.0.0" yargs-parser "^13.1.1" +yargs@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360" + integrity sha1-YpmpBVsc78lp/355wdkY3Osiw2A= + dependencies: + camelcase "^4.1.0" + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + os-locale "^2.0.0" + read-pkg-up "^2.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1" + yargs-parser "^7.0.0" + yargs@^9.0.0: version "9.0.1" resolved "https://registry.yarnpkg.com/yargs/-/yargs-9.0.1.tgz#52acc23feecac34042078ee78c0c007f5085db4c" From e31f63e12837ce8e876e1aae320cfd57ccd41048 Mon Sep 17 00:00:00 2001 From: feruz Date: Thu, 20 Feb 2020 06:36:07 +0200 Subject: [PATCH 09/10] clean up btc related files --- .../UserInterfaceState.xcuserstate | Bin 35947 -> 36003 bytes src/containers/steemWalletContainer.js | 22 ++++++++---------- src/containers/transferContainer.js | 11 +++++---- .../editor/container/editorContainer.js | 4 ++-- src/screens/transfer/screen/addressScreen.js | 11 +-------- src/screens/wallet/screen/btcView.js | 8 +++---- src/screens/wallet/screen/walletScreen.js | 13 +++-------- 7 files changed, 26 insertions(+), 43 deletions(-) diff --git a/ios/eSteem.xcworkspace/xcuserdata/f.xcuserdatad/UserInterfaceState.xcuserstate b/ios/eSteem.xcworkspace/xcuserdata/f.xcuserdatad/UserInterfaceState.xcuserstate index a19c2e9cb0c1f75b279c9f3d422e9d54f4b8bc23..7280e63ca1d5129fca13511d3e644254caa1c9af 100644 GIT binary patch delta 3947 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 K|L}i4v-jUJgUpWr diff --git a/src/containers/steemWalletContainer.js b/src/containers/steemWalletContainer.js index 558197184..1589629ae 100644 --- a/src/containers/steemWalletContainer.js +++ b/src/containers/steemWalletContainer.js @@ -46,8 +46,8 @@ const WalletContainer = ({ const [walletData, setWalletData] = useState(null); const [userActivities, setUserActivities] = useState([]); const [sbdBalance, setSbdBalance] = useState(0); - const [btcBalance, setBtcBalance] = useState(0); - const [btcAddress, setBtcAddress] = useState(''); + const [tokenBalance, setTokenBalance] = useState(0); + const [tokenAddress, setTokenAddress] = useState(''); const [steemBalance, setSteemBalance] = useState(0); const [spBalance, setSpBalance] = useState(0); const [steemSavingBalance, setSteemSavingBalance] = useState(0); @@ -55,7 +55,7 @@ const WalletContainer = ({ const [estimatedValue, setEstimatedValue] = useState(0); const [estimatedSteemValue, setEstimatedSteemValue] = useState(0); const [estimatedSbdValue, setEstimatedSbdValue] = useState(0); - const [estimatedBtcValue, setEstimatedBtcValue] = useState(0); + const [estimatedTokenValue, setEstimatedTokenValue] = useState(0); const [estimatedSpValue, setEstimatedSpValue] = useState(0); const [unclaimedBalance, setUnclaimedBalance] = useState(''); const [estimatedAmount, setEstimatedAmount] = useState(0); @@ -95,8 +95,8 @@ const WalletContainer = ({ setTransferHistory(_transferHistory); setSbdBalance(Math.round(get(walletData, 'sbdBalance', 0) * 1000) / 1000); - setBtcBalance(Math.round(get(walletData, 'btcBalance', 0) * 1000) / 1000); - setBtcAddress(get(walletData, 'btcAddress', '')); + setTokenBalance(Math.round(get(walletData, 'tokenBalance', 0) * 1000) / 1000); + setTokenAddress(get(walletData, 'tokenAddress', '')); setSteemBalance(Math.round(get(walletData, 'balance', 0) * 1000) / 1000); setSteemSavingBalance(Math.round(get(walletData, 'savingBalance', 0) * 1000) / 1000); setSbdSavingBalance(Math.round(get(walletData, 'savingBalanceSbd', 0) * 1000) / 1000); @@ -108,7 +108,7 @@ const WalletContainer = ({ setEstimatedValue(get(walletData, 'estimatedValue', 0)); setEstimatedSteemValue(get(walletData, 'estimatedSteemValue', 0)); setEstimatedSbdValue(get(walletData, 'estimatedSbdValue', 0)); - setEstimatedBtcValue(get(walletData, 'estimatedBtcValue', 0)); + setEstimatedTokenValue(get(walletData, 'estimatedTokenValue', 0)); setEstimatedSpValue(get(walletData, 'estimatedSpValue', 0)); setDelegationsAmount( vestsToSp( @@ -262,20 +262,18 @@ const WalletContainer = ({ if (transferType === 'withdraw_sbd' && fundType === 'SBD') { balance = Math.round(walletData.savingBalanceSbd * 1000) / 1000; } - if (transferType === 'address_view' && fundType === 'BTC') { - } if (isPinCodeOpen) { dispatch( openPinCodeModal({ navigateTo: ROUTES.SCREENS.TRANSFER, - navigateParams: { transferType, fundType, balance, btcAddress }, + navigateParams: { transferType, fundType, balance, tokenAddress }, }), ); } else { navigate({ routeName: ROUTES.SCREENS.TRANSFER, - params: { transferType, fundType, balance, btcAddress }, + params: { transferType, fundType, balance, tokenAddress }, }); } }; @@ -303,14 +301,14 @@ const WalletContainer = ({ steemBalance, spBalance, sbdBalance, - btcBalance, + tokenBalance, getTokenAddress, steemSavingBalance, sbdSavingBalance, estimatedValue, estimatedSteemValue, estimatedSbdValue, - estimatedBtcValue, + estimatedTokenValue, estimatedSpValue, delegationsAmount, navigate: _navigate, diff --git a/src/containers/transferContainer.js b/src/containers/transferContainer.js index a5ed39836..8bc6f7666 100644 --- a/src/containers/transferContainer.js +++ b/src/containers/transferContainer.js @@ -36,7 +36,7 @@ class TransferContainer extends Component { this.state = { fundType: props.navigation.getParam('fundType', ''), balance: props.navigation.getParam('balance', ''), - btcAddress: props.navigation.getParam('btcAddress', ''), + tokenAddress: props.navigation.getParam('tokenAddress', ''), transferType: props.navigation.getParam('transferType', ''), selectedAccount: props.currentAccount, }; @@ -67,7 +67,7 @@ class TransferContainer extends Component { }; fetchBalance = username => { - const { fundType, transferType, btcAddress } = this.state; + const { fundType, transferType, tokenAddress } = this.state; getAccount(username).then(async account => { let balance; @@ -99,7 +99,8 @@ class TransferContainer extends Component { balance = account[0].balance.replace(fundType, ''); } if (transferType === 'address_view' && fundType === 'BTC') { - console.log('transcontaier, address_view', btcAddress); + //TOD implement transfer of custom tokens + console.log(tokenAddress); } const local = await getUserDataWithUsername(username); @@ -220,7 +221,7 @@ class TransferContainer extends Component { render() { const { accounts, navigation, children, steemPerMVests, currentAccount } = this.props; - const { balance, fundType, selectedAccount, btcAddress } = this.state; + const { balance, fundType, selectedAccount, tokenAddress } = this.state; const transferType = navigation.getParam('transferType', ''); @@ -229,7 +230,7 @@ class TransferContainer extends Component { children({ accounts, balance, - btcAddress, + tokenAddress, fundType, transferType, selectedAccount, diff --git a/src/screens/editor/container/editorContainer.js b/src/screens/editor/container/editorContainer.js index 9c9db7eaf..7ed43d339 100644 --- a/src/screens/editor/container/editorContainer.js +++ b/src/screens/editor/container/editorContainer.js @@ -539,7 +539,7 @@ class EditorContainer extends Component { if (navigation.state && navigation.state.params) { const navigationParams = navigation.state.params; - if (navigationParams.draft) { + /*if (navigationParams.draft) { _draft = navigationParams.draft; this.setState({ @@ -551,7 +551,7 @@ class EditorContainer extends Component { draftId: _draft._id, isDraft: true, }); - } + }*/ if (navigationParams.post) { ({ post } = navigationParams); diff --git a/src/screens/transfer/screen/addressScreen.js b/src/screens/transfer/screen/addressScreen.js index d3746e43c..77a529de4 100644 --- a/src/screens/transfer/screen/addressScreen.js +++ b/src/screens/transfer/screen/addressScreen.js @@ -11,16 +11,7 @@ import { steemConnectOptions } from '../../../constants/steemConnectOptions'; import AUTH_TYPE from '../../../constants/authType'; import { encryptKey, decryptKey } from '../../../utils/crypto'; -import { - BasicHeader, - TextInput, - TransferFormItem, - MainButton, - DropdownButton, - UserAvatar, - Icon, - Modal, -} from '../../../components'; +import { BasicHeader, MainButton } from '../../../components'; import styles from './transferStyles'; diff --git a/src/screens/wallet/screen/btcView.js b/src/screens/wallet/screen/btcView.js index cbf54a814..7c45b2068 100644 --- a/src/screens/wallet/screen/btcView.js +++ b/src/screens/wallet/screen/btcView.js @@ -17,10 +17,10 @@ const BtcView = ({ handleOnSelected, index, currentIndex, refreshing: reload }) handleOnWalletRefresh, refreshing, transferHistory, - btcBalance, + tokenBalance, getTokenAddress, isLoading, - estimatedBtcValue, + estimatedTokenValue, btcDropdown, navigate, }) => ( @@ -35,7 +35,7 @@ const BtcView = ({ handleOnSelected, index, currentIndex, refreshing: reload }) isLoading={isLoading} refreshing={refreshing} unclaimedBalance={0} - userBalance={[{ balance: btcBalance, nameKey: 'btc', options: btcDropdown }]} + userBalance={[{ balance: tokenBalance, nameKey: 'btc', options: btcDropdown }]} handleOnDropdownSelected={option => navigate(option, 'BTC')} type="btc" currentIndex={currentIndex} @@ -44,7 +44,7 @@ const BtcView = ({ handleOnSelected, index, currentIndex, refreshing: reload }) valueDescriptions={[ { textKey: 'estimated_value', - value: , + value: , subTextKey: 'estimated_value_desc', }, ]} diff --git a/src/screens/wallet/screen/walletScreen.js b/src/screens/wallet/screen/walletScreen.js index adb59a3de..36047624b 100644 --- a/src/screens/wallet/screen/walletScreen.js +++ b/src/screens/wallet/screen/walletScreen.js @@ -12,7 +12,6 @@ import EstmView from './estmView'; import SteemView from './steemView'; import SpView from './spView'; import SbdView from './sbdView'; -import BtcView from './btcView'; // Styles import globalStyles from '../../../globalStyles'; @@ -62,26 +61,20 @@ const WalletScreen = () => { refreshing={refreshing} currentIndex={currentIndex} /> - - - Date: Thu, 20 Feb 2020 06:41:00 +0200 Subject: [PATCH 10/10] api change --- src/providers/esteem/esteem.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/providers/esteem/esteem.js b/src/providers/esteem/esteem.js index ce86dda55..611ff6a63 100644 --- a/src/providers/esteem/esteem.js +++ b/src/providers/esteem/esteem.js @@ -398,7 +398,7 @@ export const getCommunity = tag => } axios - .post('https://beta-api.steemit.com', { + .post('https://api.steemit.com', { jsonrpc: '2.0', method: 'bridge.get_community', params: { name: tag, observer: '' },