Ensure custom slippage is a number (#9915)

This fixes a PropType error when using non-custom slippage, and it
fixes a type inconsistency when custom slippage is used.

Previously, `slippage` was being converted explicitly to a `Number` as
it was passed into `BuildQuote`, but not as it was passed into
`AwaitingSwap`. Also the PropType was set as `string`, despite the fact
that it's a number in most cases, and is used for math.

The PropType has been changed to `number`, and the selective casting to
`Number` has been removed. Instead, the `maxSlippage` value is cast to
a `Number` as it's being selected, so that the type is always
consistent.
feature/default_network_editable
Mark Stacey 4 years ago committed by GitHub
parent a9fcf0ea86
commit bb3a0423d4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      ui/app/pages/swaps/index.js
  2. 2
      ui/app/pages/swaps/select-quote-popover/select-quote-popover-constants.js
  3. 2
      ui/app/pages/swaps/slippage-buttons/slippage-buttons.js

@ -299,7 +299,7 @@ export default function Swap() {
ethBalance={ethBalance} ethBalance={ethBalance}
setMaxSlippage={setMaxSlippage} setMaxSlippage={setMaxSlippage}
selectedAccountAddress={selectedAccountAddress} selectedAccountAddress={selectedAccountAddress}
maxSlippage={Number(maxSlippage)} maxSlippage={maxSlippage}
/> />
) )
}} }}

@ -10,7 +10,7 @@ export const QUOTE_DATA_ROWS_PROPTYPES_SHAPE = PropTypes.shape({
networkFees: PropTypes.string.isRequired, networkFees: PropTypes.string.isRequired,
quoteSource: PropTypes.string.isRequired, quoteSource: PropTypes.string.isRequired,
rawNetworkFees: PropTypes.string.isRequired, rawNetworkFees: PropTypes.string.isRequired,
slippage: PropTypes.string.isRequired, slippage: PropTypes.number.isRequired,
sourceTokenDecimals: PropTypes.number.isRequired, sourceTokenDecimals: PropTypes.number.isRequired,
sourceTokenSymbol: PropTypes.string.isRequired, sourceTokenSymbol: PropTypes.string.isRequired,
sourceTokenValue: PropTypes.string.isRequired, sourceTokenValue: PropTypes.string.isRequired,

@ -116,7 +116,7 @@ export default function SlippageButtons({ onSelect }) {
<input <input
onChange={(event) => { onChange={(event) => {
setCustomValue(event.target.value) setCustomValue(event.target.value)
onSelect(event.target.value) onSelect(Number(event.target.value))
}} }}
type="number" type="number"
step="0.1" step="0.1"

Loading…
Cancel
Save