diff --git a/CHANGELOG.md b/CHANGELOG.md index 592a655f8b8..1b67ecdff3c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,18 @@ # edge-react-gui +## 2.0.8 (2021-04-08) + +- Reset the slider on the send screen when the pending state changes. +- Hide 0 crypto amount if balance is hidden. +- Fix tokens not showing the correct icon on Request Scene. +- Fix a crash when initiating password recovery. +- Remove the BPay option for Banxa Australia. +- edge-currency-bitcoin v4.9.14 + - Fix the BECH32 Litecoin prefix. +- edge-login-ui-rn to v0.8.0 + - Re-theme the change password recovery modals. + - Fix broken links when setting up password recovery using the "share" option. + ## 2.0.7 (2021-03-19) - Brand new themed send screen and workflow diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 410354fff41..9860e6efa05 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -9,7 +9,7 @@ PODS: - disklet (0.4.5): - React - DoubleConversion (1.1.6) - - edge-login-ui-rn (0.8.1): + - edge-login-ui-rn (0.8.2): - React - FBLazyVector (0.63.4) - FBReactNativeSpec (0.63.4): @@ -737,7 +737,7 @@ SPEC CHECKSUMS: CocoaLibEvent: 2fab71b8bd46dd33ddb959f7928ec5909f838e3f disklet: 4f586f90b70fdb46f06614a5b7342eda5c90f253 DoubleConversion: cde416483dac037923206447da6e1454df403714 - edge-login-ui-rn: 349ea377e7a4fd2068dc467a631e10789c07f38d + edge-login-ui-rn: cd93e2dcabc89a20b30cee9f7a0909b86b3e8ece FBLazyVector: 3bb422f41b18121b71783a905c10e58606f7dc3e FBReactNativeSpec: f2c97f2529dd79c083355182cc158c9f98f4bd6e Firebase: 458d109512200d1aca2e1b9b6cf7d68a869a4a46 diff --git a/package.json b/package.json index 860863405d9..2a0d5797dee 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "edge-react-gui", - "version": "2.0.7", + "version": "2.0.8", "private": true, "description": "Edge Wallet React GUI", "homepage": "https://edge.app", @@ -133,10 +133,10 @@ "edge-components": "^0.0.31", "edge-core-js": "^0.17.29", "edge-currency-accountbased": "^0.7.51", - "edge-currency-bitcoin": "^4.9.13", + "edge-currency-bitcoin": "^4.9.14", "edge-currency-monero": "^0.2.9", "edge-exchange-plugins": "^0.11.23", - "edge-login-ui-rn": "^0.8.1", + "edge-login-ui-rn": "^0.8.2", "lodash": "^4.17.19", "qrcode-generator": "^1.4.4", "react": "16.13.1", diff --git a/src/actions/CryptoExchangeActions.js b/src/actions/CryptoExchangeActions.js index 966883d1910..42e89148d9e 100644 --- a/src/actions/CryptoExchangeActions.js +++ b/src/actions/CryptoExchangeActions.js @@ -8,8 +8,12 @@ import { type EdgeSwapQuote, type EdgeSwapRequest, type EdgeSwapResult, - errorNames -} from 'edge-core-js/types' + asMaybeInsufficientFundsError, + asMaybeSwapAboveLimitError, + asMaybeSwapBelowLimitError, + asMaybeSwapCurrencyError, + asMaybeSwapPermissionError +} from 'edge-core-js' import * as React from 'react' import { Alert } from 'react-native' import { Actions } from 'react-native-router-flux' @@ -67,8 +71,9 @@ export const getQuoteForTransaction = (info: SetNativeAmountInfo) => async (disp dispatch({ type: 'UPDATE_SWAP_QUOTE', data: swapInfo }) } catch (error) { Actions.popTo(Constants.EXCHANGE_SCENE) - if (error.name === 'InsufficientFundsError' && error.currencyCode != null && fromCurrencyCode !== error.currencyCode) { - const { currencyCode } = error + const insufficientFunds = asMaybeInsufficientFundsError(error) + if (insufficientFunds != null && insufficientFunds.currencyCode != null && fromCurrencyCode !== insufficientFunds.currencyCode) { + const { currencyCode } = insufficientFunds const result = await Airship.show(bridge => ( async (disp case 'exchange': dispatch({ type: 'SHIFT_COMPLETE' }) if (fromWallet != null) { - dispatch(selectWalletForExchange(fromWallet.id, error.currencyCode, 'to')) + dispatch(selectWalletForExchange(fromWallet.id, currencyCode, 'to')) } break } @@ -222,7 +227,7 @@ async function fetchSwapQuote(state: RootState, request: EdgeSwapRequest): Promi return swapInfo } -const processSwapQuoteError = (error: any) => (dispatch: Dispatch, getState: GetState) => { +const processSwapQuoteError = (error: mixed) => (dispatch: Dispatch, getState: GetState) => { const state = getState() const { fromCurrencyCode, toCurrencyCode } = state.cryptoExchange @@ -231,70 +236,73 @@ const processSwapQuoteError = (error: any) => (dispatch: Dispatch, getState: Get if (fromCurrencyCode == null || toCurrencyCode == null) return // Check for known error types: - switch (error.name) { - case errorNames.InsufficientFundsError: { - return dispatch({ type: 'RECEIVED_INSUFFICENT_FUNDS_ERROR' }) - } + const insufficientFunds = asMaybeInsufficientFundsError(error) + if (insufficientFunds != null) { + return dispatch({ type: 'RECEIVED_INSUFFICENT_FUNDS_ERROR' }) + } - case errorNames.SwapAboveLimitError: { - const settings = SETTINGS_SELECTORS.getSettings(state) - const currentCurrencyDenomination = SETTINGS_SELECTORS.getDisplayDenominationFromSettings(settings, fromCurrencyCode) + const aboveLimit = asMaybeSwapAboveLimitError(error) + if (aboveLimit != null) { + const settings = SETTINGS_SELECTORS.getSettings(state) + const currentCurrencyDenomination = SETTINGS_SELECTORS.getDisplayDenominationFromSettings(settings, fromCurrencyCode) - const nativeMax: string = error.nativeMax - const displayDenomination = SETTINGS_SELECTORS.getDisplayDenomination(state, fromCurrencyCode) - const nativeToDisplayRatio = displayDenomination.multiplier - const displayMax = UTILS.convertNativeToDisplay(nativeToDisplayRatio)(nativeMax) + const { nativeMax } = aboveLimit + const displayDenomination = SETTINGS_SELECTORS.getDisplayDenomination(state, fromCurrencyCode) + const nativeToDisplayRatio = displayDenomination.multiplier + const displayMax = UTILS.convertNativeToDisplay(nativeToDisplayRatio)(nativeMax) - return dispatch({ - type: 'GENERIC_SHAPE_SHIFT_ERROR', - data: sprintf(s.strings.amount_above_limit, displayMax, currentCurrencyDenomination.name) - }) - } + return dispatch({ + type: 'GENERIC_SHAPE_SHIFT_ERROR', + data: sprintf(s.strings.amount_above_limit, displayMax, currentCurrencyDenomination.name) + }) + } - case errorNames.SwapBelowLimitError: { - const settings = SETTINGS_SELECTORS.getSettings(state) - const currentCurrencyDenomination = SETTINGS_SELECTORS.getDisplayDenominationFromSettings(settings, fromCurrencyCode) + const belowLimit = asMaybeSwapBelowLimitError(error) + if (belowLimit) { + const settings = SETTINGS_SELECTORS.getSettings(state) + const currentCurrencyDenomination = SETTINGS_SELECTORS.getDisplayDenominationFromSettings(settings, fromCurrencyCode) - const nativeMin: string = error.nativeMin - const displayDenomination = SETTINGS_SELECTORS.getDisplayDenomination(state, fromCurrencyCode) - const nativeToDisplayRatio = displayDenomination.multiplier - const displayMin = UTILS.convertNativeToDisplay(nativeToDisplayRatio)(nativeMin) + const { nativeMin } = belowLimit + const displayDenomination = SETTINGS_SELECTORS.getDisplayDenomination(state, fromCurrencyCode) + const nativeToDisplayRatio = displayDenomination.multiplier + const displayMin = UTILS.convertNativeToDisplay(nativeToDisplayRatio)(nativeMin) - return dispatch({ - type: 'GENERIC_SHAPE_SHIFT_ERROR', - data: sprintf(s.strings.amount_below_limit, displayMin, currentCurrencyDenomination.name) - }) - } + return dispatch({ + type: 'GENERIC_SHAPE_SHIFT_ERROR', + data: sprintf(s.strings.amount_below_limit, displayMin, currentCurrencyDenomination.name) + }) + } - case errorNames.SwapCurrencyError: { - return dispatch({ - type: 'GENERIC_SHAPE_SHIFT_ERROR', - data: sprintf(s.strings.ss_unable, fromCurrencyCode, toCurrencyCode) - }) - } + const currencyError = asMaybeSwapCurrencyError(error) + if (currencyError != null) { + return dispatch({ + type: 'GENERIC_SHAPE_SHIFT_ERROR', + data: sprintf(s.strings.ss_unable, fromCurrencyCode, toCurrencyCode) + }) + } - case errorNames.SwapPermissionError: { - switch (error.reason) { - case 'geoRestriction': { - return dispatch({ - type: 'GENERIC_SHAPE_SHIFT_ERROR', - data: s.strings.ss_geolock - }) - } + const permissionError = asMaybeSwapPermissionError(error) + if (permissionError != null) { + switch (permissionError.reason) { + case 'geoRestriction': { + return dispatch({ + type: 'GENERIC_SHAPE_SHIFT_ERROR', + data: s.strings.ss_geolock + }) } - break // Not handled } } // Some plugins get this error wrong: - if (error.message === errorNames.InsufficientFundsError) { + if (error.message === 'InsufficientFundsError') { return dispatch({ type: 'RECEIVED_INSUFFICENT_FUNDS_ERROR' }) } // Anything else: + const typeHack: any = error return dispatch({ type: 'GENERIC_SHAPE_SHIFT_ERROR', - data: error.message + data: typeHack.message }) } diff --git a/src/actions/SendConfirmationActions.js b/src/actions/SendConfirmationActions.js index 74de72be999..4d30b8fd821 100644 --- a/src/actions/SendConfirmationActions.js +++ b/src/actions/SendConfirmationActions.js @@ -1,7 +1,14 @@ // @flow import { bns } from 'biggystring' -import type { EdgeCurrencyWallet, EdgeMetadata, EdgeParsedUri, EdgeSpendInfo, EdgeTransaction } from 'edge-core-js' +import { + type EdgeCurrencyWallet, + type EdgeMetadata, + type EdgeParsedUri, + type EdgeSpendInfo, + type EdgeTransaction, + asMaybeInsufficientFundsError +} from 'edge-core-js' import * as React from 'react' import { Alert } from 'react-native' import { Actions } from 'react-native-router-flux' @@ -146,10 +153,11 @@ export const sendConfirmationUpdateTx = ( .then(edgeTransaction => { return dispatch(updateTransaction(edgeTransaction, guiMakeSpendInfoClone, forceUpdateGui, null)) }) - .catch(async e => { - console.log(e) - if (e.name === 'InsufficientFundsError' && e.currencyCode != null && spendInfo.currencyCode !== e.currencyCode) { - const { currencyCode } = e + .catch(async (error: mixed) => { + console.log(error) + const insufficientFunds = asMaybeInsufficientFundsError(error) + if (insufficientFunds != null && insufficientFunds.currencyCode != null && spendInfo.currencyCode !== insufficientFunds.currencyCode) { + const { currencyCode } = insufficientFunds const result = await Airship.show(bridge => ( { const resolveValue = await Airship.show(bridge => ( - + diff --git a/src/components/modals/FlipInputModal.js b/src/components/modals/FlipInputModal.js index 4a8f46daa1b..14c6b50c199 100644 --- a/src/components/modals/FlipInputModal.js +++ b/src/components/modals/FlipInputModal.js @@ -1,7 +1,7 @@ // @flow import { bns } from 'biggystring' -import { errorNames } from 'edge-core-js' +import { asMaybeNoAmountSpecifiedError } from 'edge-core-js' import * as React from 'react' import { TouchableOpacity, View } from 'react-native' import { type AirshipBridge } from 'react-native-airship' @@ -278,7 +278,7 @@ export const FlipInputModal = connect( // Error const error = state.ui.scenes.sendConfirmation.error let errorMessage - if (error && error.message !== 'broadcastError' && error.message !== 'transactionCancelled' && error.name !== errorNames.NoAmountSpecifiedError) { + if (error && error.message !== 'broadcastError' && error.message !== 'transactionCancelled' && asMaybeNoAmountSpecifiedError(error) == null) { errorMessage = error.message } diff --git a/src/components/scenes/GuiPluginListScene.js b/src/components/scenes/GuiPluginListScene.js index e5c67aee1d9..175847f60d5 100644 --- a/src/components/scenes/GuiPluginListScene.js +++ b/src/components/scenes/GuiPluginListScene.js @@ -38,7 +38,6 @@ const paymentTypeLogosById = { applepay: 'paymentTypeLogoApplePay', bank: 'paymentTypeLogoBankTransfer', bankgirot: 'paymentTypeLogoBankgirot', - bpay: 'paymentTypeLogoBpay', cash: 'paymentTypeLogoCash', debit: 'paymentTypeLogoDebitCard', fasterPayments: 'paymentTypeLogoFasterPayments', diff --git a/src/components/scenes/RequestScene.js b/src/components/scenes/RequestScene.js index a7936e6313c..17ae2ed15a5 100644 --- a/src/components/scenes/RequestScene.js +++ b/src/components/scenes/RequestScene.js @@ -39,6 +39,7 @@ export type RequestStateProps = { currencyCode: string, currencyInfo: EdgeCurrencyInfo | null, edgeWallet: EdgeCurrencyWallet, + currencyIcon?: string, exchangeSecondaryToPrimaryRatio: number, guiWallet: GuiWallet, loading: false, @@ -55,6 +56,7 @@ export type RequestLoadingProps = { edgeWallet: null, currencyCode: null, currencyInfo: null, + currencyIcon?: string, exchangeSecondaryToPrimaryRatio: null, guiWallet: null, loading: true, @@ -291,7 +293,7 @@ export class RequestComponent extends React.PureComponent { } render() { - const { theme } = this.props + const { currencyIcon, theme } = this.props const styles = getStyles(theme) if (this.props.loading) { @@ -301,7 +303,6 @@ export class RequestComponent extends React.PureComponent { const { primaryCurrencyInfo, secondaryCurrencyInfo, exchangeSecondaryToPrimaryRatio, guiWallet } = this.props const requestAddress = this.props.useLegacyAddress ? this.state.legacyAddress : this.state.publicAddress const flipInputHeaderText = guiWallet ? sprintf(s.strings.send_to_wallet, guiWallet.name) : '' - const flipInputHeaderLogo = guiWallet.symbolImageDarkMono const { keysOnlyMode = false } = Constants.getSpecialCurrencyInfo(primaryCurrencyInfo.displayCurrencyCode) return ( @@ -313,7 +314,7 @@ export class RequestComponent extends React.PureComponent { token.currencyCode === currencyCode) + currencyIcon = meta ? meta.symbolImage : undefined + } + return { currencyCode, currencyInfo: currencyInfo || null, + currencyIcon, edgeWallet, exchangeSecondaryToPrimaryRatio, guiWallet, diff --git a/src/components/scenes/SendScene.js b/src/components/scenes/SendScene.js index cc00ca29a80..bef9a41bde9 100644 --- a/src/components/scenes/SendScene.js +++ b/src/components/scenes/SendScene.js @@ -8,7 +8,7 @@ import { type EdgeParsedUri, type EdgeSpendTarget, type EdgeTransaction, - errorNames + asMaybeNoAmountSpecifiedError } from 'edge-core-js' import * as React from 'react' import { TextInput, View } from 'react-native' @@ -107,6 +107,7 @@ type WalletStates = { type State = { recipientAddress: string, loading: boolean, + resetSlider: boolean, fioSender: FioSenderInfo } & WalletStates @@ -119,6 +120,7 @@ class SendComponent extends React.PureComponent { this.state = { recipientAddress: '', loading: false, + resetSlider: false, fioSender: { fioAddress: props.guiMakeSpendInfo && props.guiMakeSpendInfo.fioPendingRequest ? props.guiMakeSpendInfo.fioPendingRequest.payer_fio_address : '', fioWallet: null, @@ -164,6 +166,15 @@ class SendComponent extends React.PureComponent { } } + componentDidUpdate(prevProps: Props): void { + if (prevProps.pending && !this.props.pending) { + this.setState({ resetSlider: true }) + } + if (!prevProps.pending && !this.props.pending && this.state.resetSlider) { + this.setState({ resetSlider: false }) + } + } + resetSendTransaction = () => { this.props.reset() this.setState({ recipientAddress: '' }) @@ -389,7 +400,7 @@ class SendComponent extends React.PureComponent { const { error, exchangeRates, settings, transaction, theme } = this.props const { guiWallet, selectedCurrencyCode, recipientAddress } = this.state - if (error && error.name !== errorNames.NoAmountSpecifiedError) { + if (error && asMaybeNoAmountSpecifiedError(error) == null) { return ( {error.message} @@ -504,7 +515,7 @@ class SendComponent extends React.PureComponent { // Render render() { const { pending, resetSlider, sliderDisabled, theme } = this.props - const { loading, recipientAddress } = this.state + const { loading, recipientAddress, resetSlider: localResetSlider } = this.state const styles = getStyles(theme) return ( @@ -520,10 +531,10 @@ class SendComponent extends React.PureComponent { {this.renderInfoTiles()} {this.renderAuthentication()} - {!!recipientAddress && ( + {!!recipientAddress && !localResetSlider && ( (message: string, promise: Promise): * Used when some user-requested operation fails. */ export function showError(error: mixed): void { - console.log(error) + console.error('Showing error drop-down alert:', error) // TODO: Run the errors through our translation infrastructure: const message = error instanceof Error ? error.message : String(error) @@ -56,7 +56,12 @@ export function showError(error: mixed): void { * Shows an error warning to the user. * Used when some user-requested operation succeeds but with a warning. */ -export function showWarning(message: string): void { +export function showWarning(error: mixed): void { + console.error('Showing warning drop-down alert:', error) + + // TODO: Run the errors through our translation infrastructure: + const message = error instanceof Error ? error.message : String(error) + Airship.show(bridge => ) } diff --git a/src/components/services/EdgeContextCallbackManager.js b/src/components/services/EdgeContextCallbackManager.js index 4edd53875d6..eb13dbdb749 100644 --- a/src/components/services/EdgeContextCallbackManager.js +++ b/src/components/services/EdgeContextCallbackManager.js @@ -1,6 +1,6 @@ // @flow -import { type EdgeContext, type OtpError } from 'edge-core-js' +import { type EdgeContext, type OtpError, asMaybeOtpError } from 'edge-core-js' import * as React from 'react' import { connect } from 'react-redux' @@ -30,8 +30,9 @@ class EdgeContextCallbackManager extends React.Component { context.on('error', (error: mixed) => { console.log(error) - if (error instanceof Error && error.name === 'OtpError') { - return this.props.onOtpError(error) + const otpError = asMaybeOtpError(error) + if (otpError != null) { + return this.props.onOtpError(otpError) } if (!errorShown) { @@ -48,7 +49,13 @@ class EdgeContextCallbackManager extends React.Component { for (const cleanup of this.cleanups) cleanup() } + /** + * Like AirshipInstance/showWarning, + * but asynchronous so we don't spam multiple pop-ups. + */ showError(error: mixed): Promise { + console.error('Showing core drop-down alert:', error) + // TODO: Run the errors through our translation infrastructure: const message = error instanceof Error ? error.message : String(error) diff --git a/src/components/services/ErrorBoundary.js b/src/components/services/ErrorBoundary.js index a4fffcd2a5d..a9bf094f9ac 100644 --- a/src/components/services/ErrorBoundary.js +++ b/src/components/services/ErrorBoundary.js @@ -5,7 +5,8 @@ import * as React from 'react' type Props = { children: React.Node, - FallbackComponent: React.ComponentType + FallbackComponent: React.ComponentType<{}>, + onError?: (error: { originalError: mixed }) => void } type State = { hasError: boolean @@ -21,11 +22,16 @@ class ErrorBoundaryComponent extends React.Component { this.state = { hasError: false } } - static getDerivedStateFromError(error: mixed) { - console.error(error) + static getDerivedStateFromError() { return { hasError: true } } + componentDidCatch(error: mixed) { + if (this.props.onError != null) { + this.props.onError({ originalError: error }) + } + } + render(): React.Node { const { children, FallbackComponent } = this.props if (this.state.hasError) return diff --git a/src/components/themed/ExchangedFlipInput.js b/src/components/themed/ExchangedFlipInput.js index a2ae8a511a7..ef3d6b1eda0 100644 --- a/src/components/themed/ExchangedFlipInput.js +++ b/src/components/themed/ExchangedFlipInput.js @@ -116,7 +116,7 @@ function propsToState(props: Props): State { return { primaryInfo, secondaryInfo, exchangeSecondaryToPrimaryRatio, overridePrimaryDecimalAmount } } -export class ExchangedFlipInput extends React.PureComponent { +export class ExchangedFlipInput extends React.Component { flipInput: React.ElementRef | null = null static defaultProps = { diff --git a/src/components/themed/FlipInput.js b/src/components/themed/FlipInput.js index e78917b6324..efb1afbd3a7 100644 --- a/src/components/themed/FlipInput.js +++ b/src/components/themed/FlipInput.js @@ -201,7 +201,8 @@ class FlipInputComponent extends React.PureComponent { }) Animated.timing(this.animatedValue, { toValue: 1, - duration: 0 + duration: 0, + useNativeDriver: true }).start() setTimeout(() => { this.setState({ @@ -300,7 +301,8 @@ class FlipInputComponent extends React.PureComponent { Animated.spring(this.animatedValue, { toValue: 0, friction: 8, - tension: 10 + tension: 10, + useNativeDriver: true }).start() } if (!this.state.isToggled) { @@ -310,7 +312,8 @@ class FlipInputComponent extends React.PureComponent { Animated.spring(this.animatedValue, { toValue: 1, friction: 8, - tension: 10 + tension: 10, + useNativeDriver: true }).start() } } @@ -482,7 +485,7 @@ class FlipInputComponent extends React.PureComponent { return ( - + {headerLogo ? : null} {headerCallback ? : {headerText}} diff --git a/src/components/themed/WalletList.js b/src/components/themed/WalletList.js index b6fa2b839e0..2d663a8cee6 100644 --- a/src/components/themed/WalletList.js +++ b/src/components/themed/WalletList.js @@ -221,8 +221,11 @@ class WalletListComponent extends React.PureComponent { const fiatDenomination = getDenomFromIsoCode(guiWallet.fiatCurrencyCode) const rateKey = `${currencyCode}_${guiWallet.isoFiatCurrencyCode}` const exchangeRate = exchangeRates[rateKey] ? exchangeRates[rateKey] : undefined - const cryptoAmount = - balance && balance !== '0' ? this.getCryptoAmount(balance, denomination, exchangeDenomination, fiatDenomination, exchangeRate, guiWallet) : '0' + const cryptoAmount = showBalance + ? balance && balance !== '0' + ? this.getCryptoAmount(balance, denomination, exchangeDenomination, fiatDenomination, exchangeRate, guiWallet) + : '0' + : '' // Fiat Balance const fiatBalance = calculateWalletFiatBalanceWithoutState(guiWallet, currencyCode, settings, exchangeRates) diff --git a/src/connectors/scenes/SendConfirmationConnector.js b/src/connectors/scenes/SendConfirmationConnector.js index b8fd8d5e4ba..cb2ea6df007 100644 --- a/src/connectors/scenes/SendConfirmationConnector.js +++ b/src/connectors/scenes/SendConfirmationConnector.js @@ -1,6 +1,6 @@ // @flow -import { type EdgeCurrencyInfo, type EdgeSpendInfo, type EdgeTransaction, errorNames } from 'edge-core-js' +import { type EdgeCurrencyInfo, type EdgeSpendInfo, type EdgeTransaction, asMaybeNoAmountSpecifiedError } from 'edge-core-js' import { connect } from 'react-redux' import { @@ -73,7 +73,7 @@ const mapStateToProps = (state: RootState): SendConfirmationStateProps => { resetSlider = true } errorMsg = error ? error.message : '' - if (error && error.name === errorNames.NoAmountSpecifiedError) errorMsg = '' + if (error && asMaybeNoAmountSpecifiedError(error.name) != null) errorMsg = '' const networkFee = transaction ? transaction.networkFee : null const parentNetworkFee = transaction && transaction.parentNetworkFee ? transaction.parentNetworkFee : null const uniqueIdentifier = sceneState.guiMakeSpendInfo.uniqueIdentifier diff --git a/src/constants/plugins/buyPluginList.json b/src/constants/plugins/buyPluginList.json index b22fe587e24..bb5f527aae4 100644 --- a/src/constants/plugins/buyPluginList.json +++ b/src/constants/plugins/buyPluginList.json @@ -641,30 +641,6 @@ "payment_id": "5035" } }, - { - "id": "banxa.bpay", - "pluginId": "banxa", - "paymentTypes": [ - "bank" - ], - "description": "Fee: 2% / Settlement: 1 - 48hours\nLimit: $10000+/day", - "title": "BPay", - "partnerIconPath": "https://developer.airbitz.co/content/banxa.png", - "forCountries": [ - "AU" - ], - "cryptoCodes": [ - "BTC", - "LTC", - "ETH", - "USDT" - ], - "paymentTypeLogoKey": "bpay", - "deepQuery": { - "country": "AU", - "payment_id": "5034" - } - }, { "id": "banxa.auspost", "pluginId": "banxa", @@ -918,10 +894,6 @@ "id": "banxa.cash", "sortIndex": 7 }, - { - "id": "banxa.bpay", - "sortIndex": 3 - }, { "id": "banxa.payid", "sortIndex": 3 diff --git a/src/theme/variables/edgeDark.js b/src/theme/variables/edgeDark.js index 19175b47695..2a47ab15ef3 100644 --- a/src/theme/variables/edgeDark.js +++ b/src/theme/variables/edgeDark.js @@ -19,7 +19,6 @@ import paymentTypeLogoApplePay from '../../assets/images/paymentTypes/paymentTyp import paymentTypeLogoAuspost from '../../assets/images/paymentTypes/paymentTypeLogoAuspost.png' import paymentTypeLogoBankgirot from '../../assets/images/paymentTypes/paymentTypeLogoBankgirot.png' import paymentTypeLogoBankTransfer from '../../assets/images/paymentTypes/paymentTypeLogoBankTransfer.png' -import paymentTypeLogoBpay from '../../assets/images/paymentTypes/paymentTypeLogoBpay.png' import paymentTypeLogoCash from '../../assets/images/paymentTypes/paymentTypeLogoCash.png' import paymentTypeLogoCreditCard from '../../assets/images/paymentTypes/paymentTypeLogoCreditCard.png' import paymentTypeLogoDebitCard from '../../assets/images/paymentTypes/paymentTypeLogoDebitCard.png' @@ -264,7 +263,6 @@ export const edgeDark: Theme = { paymentTypeLogoAuspost: paymentTypeLogoAuspost, paymentTypeLogoBankgirot: paymentTypeLogoBankgirot, paymentTypeLogoBankTransfer: paymentTypeLogoBankTransfer, - paymentTypeLogoBpay: paymentTypeLogoBpay, paymentTypeLogoCash: paymentTypeLogoCash, paymentTypeLogoCreditCard: paymentTypeLogoCreditCard, paymentTypeLogoDebitCard: paymentTypeLogoDebitCard, diff --git a/src/theme/variables/edgeLight.js b/src/theme/variables/edgeLight.js index 1a982bc6931..3b493a7cef5 100644 --- a/src/theme/variables/edgeLight.js +++ b/src/theme/variables/edgeLight.js @@ -19,7 +19,6 @@ import paymentTypeLogoApplePay from '../../assets/images/paymentTypes/paymentTyp import paymentTypeLogoAuspost from '../../assets/images/paymentTypes/paymentTypeLogoAuspost.png' import paymentTypeLogoBankgirot from '../../assets/images/paymentTypes/paymentTypeLogoBankgirot.png' import paymentTypeLogoBankTransfer from '../../assets/images/paymentTypes/paymentTypeLogoBankTransfer.png' -import paymentTypeLogoBpay from '../../assets/images/paymentTypes/paymentTypeLogoBpay.png' import paymentTypeLogoCash from '../../assets/images/paymentTypes/paymentTypeLogoCash.png' import paymentTypeLogoCreditCard from '../../assets/images/paymentTypes/paymentTypeLogoCreditCard.png' import paymentTypeLogoDebitCard from '../../assets/images/paymentTypes/paymentTypeLogoDebitCard.png' @@ -262,7 +261,6 @@ export const edgeLight: Theme = { paymentTypeLogoAuspost: paymentTypeLogoAuspost, paymentTypeLogoBankgirot: paymentTypeLogoBankgirot, paymentTypeLogoBankTransfer: paymentTypeLogoBankTransfer, - paymentTypeLogoBpay: paymentTypeLogoBpay, paymentTypeLogoCash: paymentTypeLogoCash, paymentTypeLogoCreditCard: paymentTypeLogoCreditCard, paymentTypeLogoDebitCard: paymentTypeLogoDebitCard, diff --git a/src/types/Theme.js b/src/types/Theme.js index 28aa45771af..3e7ee149478 100644 --- a/src/types/Theme.js +++ b/src/types/Theme.js @@ -197,7 +197,6 @@ export type Theme = { paymentTypeLogoAuspost: string, paymentTypeLogoBankgirot: string, paymentTypeLogoBankTransfer: string, - paymentTypeLogoBpay: string, paymentTypeLogoCash: string, paymentTypeLogoCreditCard: string, paymentTypeLogoDebitCard: string, diff --git a/yarn.lock b/yarn.lock index 2e16fa91c24..4a4a7f87ec9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5176,10 +5176,10 @@ edge-currency-accountbased@^0.7.51: uri-js "^3.0.2" url-parse "^1.4.1" -edge-currency-bitcoin@^4.9.13: - version "4.9.13" - resolved "https://registry.yarnpkg.com/edge-currency-bitcoin/-/edge-currency-bitcoin-4.9.13.tgz#ce1ea4bc734cb4460e4fc48ef10424b78c958529" - integrity sha512-UYrAjde0jzPn5cDUqihNbkB720fBErsYUWIgMsTx94xM8sBrPE0pLl+MrPnSxHXSRoH265IclT5EDzDAcM3W4g== +edge-currency-bitcoin@^4.9.14: + version "4.9.14" + resolved "https://registry.yarnpkg.com/edge-currency-bitcoin/-/edge-currency-bitcoin-4.9.14.tgz#26f1dc3bede5765057976d3e593e2825c623d5fd" + integrity sha512-yx8j8DkiNEz7kQZ4E94ysUF2MFALfb5UuWs1Cnz6hOP51CTxK+R6Ugzqo0dP+eX+8X8FRLuk71L8Xz1cU67+Yw== dependencies: bcoin "git+https://github.com/Airbitz/bcoin.git#primitiveBuild" biggystring "3.0.2" @@ -5221,10 +5221,10 @@ edge-exchange-plugins@^0.11.23: iso4217 "^0.2.0" utf8 "^3.0.0" -edge-login-ui-rn@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/edge-login-ui-rn/-/edge-login-ui-rn-0.8.1.tgz#69a9c73c223847598119890f9b3f07178d3427f0" - integrity sha512-RE0+yp1S8k8PL9yIrsMFqXuHgvOSbc5l68Eiw/Jt5bV8CSitsyq6GbUKZxAAkdz/fvOq7GEvVECgjq5dXo5UOg== +edge-login-ui-rn@^0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/edge-login-ui-rn/-/edge-login-ui-rn-0.8.2.tgz#6757f39a8400b8e9f17c9e2d42851163ed245a61" + integrity sha512-euUyVlF5uJnkds5zLG3uCJuWI8EbU6SUY52IoR8/LF2EP3hjfGfHYaLuqy99LiDixMB4X3DnZK0ClGJjchnK6w== dependencies: cleaners "^0.3.1" qrcode-generator "^1.4.4" @@ -5235,7 +5235,6 @@ edge-login-ui-rn@^0.8.1: react-native-localize "^2.0.2" react-native-mail "^6.0.0" react-native-material-textfield "git://github.com/EdgeApp/react-native-material-textfield.git" - react-native-modal "^11.0.1" react-native-patina "^0.1.3" react-native-share "^5.1.4" react-native-vector-icons "^7.1.0" @@ -14181,9 +14180,9 @@ yargs@^15.0.2, yargs@^15.1.0, yargs@^15.3.1: yargs-parser "^18.1.2" yavent@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/yavent/-/yavent-0.1.1.tgz#cc6458d24ded144da7126b8445163b11b967646f" - integrity sha512-jeFpwxVlI7AM9D+a+K36gmKV7lE41Nq0LZ48NhLQ+dKSWkf4GzxKn9NZ3yat/EsvEfNkKBdY1JTNNuXi0TdRuA== + version "0.1.2" + resolved "https://registry.yarnpkg.com/yavent/-/yavent-0.1.2.tgz#eb826c8c5e344e86e1398a463a3d5092f919edeb" + integrity sha512-hd1tUDabbB6dUoOcHLB1rRlydNC9DGKGMMwotnEvWdNyFNgSN7k4djW6Db6MtGPctGgiJyhDr26PFF1APfqoqA== yazl@2.5.1: version "2.5.1"