Page MenuHomePhabricator

D11850.diff
No OneTemporary

D11850.diff

diff --git a/web/cashtab/src/components/Airdrop/Airdrop.js b/web/cashtab/src/components/Airdrop/Airdrop.js
--- a/web/cashtab/src/components/Airdrop/Airdrop.js
+++ b/web/cashtab/src/components/Airdrop/Airdrop.js
@@ -23,7 +23,7 @@
import {
getWalletState,
convertEtokenToEcashAddr,
- fromSmallestDenomination,
+ fromSatoshisToXec,
convertToEcashPrefix,
convertEcashtoEtokenAddr,
} from 'utils/cashMethods';
@@ -312,7 +312,7 @@
if (ignoreRecipientsBelowDust) {
// minimum airdrop threshold
const minEligibleAirdrop = new BigNumber(
- fromSmallestDenomination(currency.dustSats),
+ fromSatoshisToXec(currency.dustSats),
);
// first calculation on expected pro rata airdrops
@@ -628,7 +628,7 @@
/>
 Ignore airdrops below min.
payment (
- {fromSmallestDenomination(
+ {fromSatoshisToXec(
currency.dustSats,
)}{' '}
XEC)
@@ -753,7 +753,7 @@
<Alert
description={
'At least one airdrop is below the minimum ' +
- fromSmallestDenomination(
+ fromSatoshisToXec(
currency.dustSats,
) +
' XEC dust. Please increase the total XEC airdrop.'
diff --git a/web/cashtab/src/components/Send/Send.js b/web/cashtab/src/components/Send/Send.js
--- a/web/cashtab/src/components/Send/Send.js
+++ b/web/cashtab/src/components/Send/Send.js
@@ -50,7 +50,7 @@
convertToEcashPrefix,
toLegacyCash,
toLegacyCashArray,
- fromSmallestDenomination,
+ fromSatoshisToXec,
} from 'utils/cashMethods';
import ApiError from 'components/Common/ApiError';
import { formatFiatBalance, formatBalance } from 'utils/formatting';
@@ -235,7 +235,7 @@
if (location && location.state && location.state.replyAddress) {
setFormData({
address: location.state.replyAddress,
- value: `${fromSmallestDenomination(currency.dustSats)}`,
+ value: `${fromSatoshisToXec(currency.dustSats)}`,
});
}
@@ -579,7 +579,7 @@
}));
}
if (!validValueString) {
- error = `Amount must be at least ${fromSmallestDenomination(
+ error = `Amount must be at least ${fromSatoshisToXec(
currency.dustSats,
)} XEC: ${addressString}, ${valueString}`;
setSendBchAddressError(error);
diff --git a/web/cashtab/src/components/Tokens/Tokens.js b/web/cashtab/src/components/Tokens/Tokens.js
--- a/web/cashtab/src/components/Tokens/Tokens.js
+++ b/web/cashtab/src/components/Tokens/Tokens.js
@@ -1,7 +1,7 @@
import React from 'react';
import PropTypes from 'prop-types';
import { WalletContext } from 'utils/context';
-import { fromSmallestDenomination, getWalletState } from 'utils/cashMethods';
+import { fromSatoshisToXec, getWalletState } from 'utils/cashMethods';
import CreateTokenForm from 'components/Tokens/CreateTokenForm';
import { currency } from 'components/Common/Ticker.js';
import useBCH from 'hooks/useBCH';
@@ -53,7 +53,7 @@
{balances.totalBalanceInSatoshis < currency.dustSats && (
<AlertMsg>
You need at least{' '}
- {fromSmallestDenomination(currency.dustSats).toString()}{' '}
+ {fromSatoshisToXec(currency.dustSats).toString()}{' '}
{currency.ticker} (
{cashtabSettings
? `${
@@ -63,9 +63,8 @@
}`
: '$'}
{(
- fromSmallestDenomination(
- currency.dustSats,
- ).toString() * fiatPrice
+ fromSatoshisToXec(currency.dustSats).toString() *
+ fiatPrice
).toFixed(4)}{' '}
{cashtabSettings
? `${currency.fiatCurrencies[
diff --git a/web/cashtab/src/hooks/__mocks__/sendBCH.js b/web/cashtab/src/hooks/__mocks__/sendBCH.js
--- a/web/cashtab/src/hooks/__mocks__/sendBCH.js
+++ b/web/cashtab/src/hooks/__mocks__/sendBCH.js
@@ -1,4 +1,4 @@
-import { fromSmallestDenomination } from 'utils/cashMethods';
+import { fromSatoshisToXec } from 'utils/cashMethods';
import { currency } from 'components/Common/Ticker';
export default {
@@ -29,7 +29,7 @@
},
destinationAddress:
'bitcoincash:qr2npxqwznhp7gphatcqzexeclx0hhwdxg386ez36n',
- sendAmount: fromSmallestDenomination(currency.dustSats).toString(),
+ sendAmount: fromSatoshisToXec(currency.dustSats).toString(),
expectedTxId:
'7a39961bbd7e27d804fb3169ef38a83234710fbc53897a4eb0c98454854a26d1',
expectedHex: [
diff --git a/web/cashtab/src/hooks/__tests__/migrations.test.js b/web/cashtab/src/hooks/__tests__/migrations.test.js
--- a/web/cashtab/src/hooks/__tests__/migrations.test.js
+++ b/web/cashtab/src/hooks/__tests__/migrations.test.js
@@ -1,17 +1,14 @@
import { currency } from '../../components/Common/Ticker';
import BigNumber from 'bignumber.js';
import BCHJS from '@psf/bch-js';
-import {
- fromSmallestDenomination,
- toSmallestDenomination,
-} from 'utils/cashMethods';
+import { fromSatoshisToXec, toSmallestDenomination } from 'utils/cashMethods';
describe('Testing functions for upgrading Cashtab', () => {
it('Replacement currency.dustSats parameter parsing matches legacy DUST parameter', () => {
expect(
parseFloat(
new BigNumber(
- fromSmallestDenomination(currency.dustSats, 8).toString(),
+ fromSatoshisToXec(currency.dustSats, 8).toString(),
).toFixed(8),
),
).toBe(0.0000055);
@@ -107,31 +104,31 @@
const remainder = new BigNumber('12345678');
expect(parseInt(remainder)).toStrictEqual(12345678);
});
- it('Replicates return value from instance of toBitcoinCash with fromSmallestDenomination and cashDecimals = 8', () => {
+ it('Replicates return value from instance of toBitcoinCash with fromSatoshisToXec and cashDecimals = 8', () => {
const BCH = new BCHJS();
const testSendAmount = '12345678';
- expect(fromSmallestDenomination(testSendAmount, 8)).toBe(
+ expect(fromSatoshisToXec(testSendAmount, 8)).toBe(
BCH.BitcoinCash.toBitcoinCash(testSendAmount),
);
});
- it('Replicates largest possible digits return value from instance of toBitcoinCash with fromSmallestDenomination and cashDecimals = 8', () => {
+ it('Replicates largest possible digits return value from instance of toBitcoinCash with fromSatoshisToXec and cashDecimals = 8', () => {
const BCH = new BCHJS();
const testSendAmount = '1000000012345678';
- expect(fromSmallestDenomination(testSendAmount, 8)).toBe(
+ expect(fromSatoshisToXec(testSendAmount, 8)).toBe(
BCH.BitcoinCash.toBitcoinCash(testSendAmount),
);
});
- it('Replicates smallest unit value return value from instance of toBitcoinCash with fromSmallestDenomination and cashDecimals = 8', () => {
+ it('Replicates smallest unit value return value from instance of toBitcoinCash with fromSatoshisToXec and cashDecimals = 8', () => {
const BCH = new BCHJS();
const testSendAmount = '1';
- expect(fromSmallestDenomination(testSendAmount, 8)).toBe(
+ expect(fromSatoshisToXec(testSendAmount, 8)).toBe(
BCH.BitcoinCash.toBitcoinCash(testSendAmount),
);
});
it(`Converts dust limit in satoshis to dust limit in current app setting`, () => {
- expect(fromSmallestDenomination(currency.dustSats, 8).toString()).toBe(
+ expect(fromSatoshisToXec(currency.dustSats, 8).toString()).toBe(
'0.0000055',
);
});
diff --git a/web/cashtab/src/hooks/__tests__/useBCH.test.js b/web/cashtab/src/hooks/__tests__/useBCH.test.js
--- a/web/cashtab/src/hooks/__tests__/useBCH.test.js
+++ b/web/cashtab/src/hooks/__tests__/useBCH.test.js
@@ -38,7 +38,7 @@
import BCHJS from '@psf/bch-js'; // TODO: should be removed when external lib not needed anymore
import { currency } from '../../components/Common/Ticker';
import BigNumber from 'bignumber.js';
-import { fromSmallestDenomination } from 'utils/cashMethods';
+import { fromSatoshisToXec } from 'utils/cashMethods';
describe('useBCH hook', () => {
it('gets Rest Api Url on testnet', () => {
@@ -279,9 +279,7 @@
false,
null,
destinationAddress,
- new BigNumber(
- fromSmallestDenomination(currency.dustSats).toString(),
- )
+ new BigNumber(fromSatoshisToXec(currency.dustSats).toString())
.minus(new BigNumber('0.00000001'))
.toString(),
);
diff --git a/web/cashtab/src/hooks/useBCH.js b/web/cashtab/src/hooks/useBCH.js
--- a/web/cashtab/src/hooks/useBCH.js
+++ b/web/cashtab/src/hooks/useBCH.js
@@ -4,7 +4,7 @@
import SlpWallet from 'minimal-slp-wallet';
import {
toSmallestDenomination,
- fromSmallestDenomination,
+ fromSatoshisToXec,
batchArray,
flattenBatchedHydratedUtxos,
isValidStoredWallet,
@@ -1434,9 +1434,7 @@
if (
value.lt(
new BigNumber(
- fromSmallestDenomination(
- currency.dustSats,
- ).toString(),
+ fromSatoshisToXec(currency.dustSats).toString(),
),
)
) {
@@ -1457,9 +1455,7 @@
if (
value.lt(
new BigNumber(
- fromSmallestDenomination(
- currency.dustSats,
- ).toString(),
+ fromSatoshisToXec(currency.dustSats).toString(),
),
)
) {
diff --git a/web/cashtab/src/utils/__tests__/cashMethods.test.js b/web/cashtab/src/utils/__tests__/cashMethods.test.js
--- a/web/cashtab/src/utils/__tests__/cashMethods.test.js
+++ b/web/cashtab/src/utils/__tests__/cashMethods.test.js
@@ -1,6 +1,6 @@
import BigNumber from 'bignumber.js';
import {
- fromSmallestDenomination,
+ fromSatoshisToXec,
batchArray,
flattenContactList,
flattenBatchedHydratedUtxos,
@@ -590,7 +590,7 @@
const { destinationAddress, wallet } = sendBCHMock;
const isOneToMany = false;
const singleSendValue = new BigNumber(
- fromSmallestDenomination(
+ fromSatoshisToXec(
mockOneToOneSendXecTxBuilderObj.transaction.tx.outs[0].value,
),
);
@@ -900,20 +900,16 @@
describe('Correctly executes cash utility functions', () => {
it(`Correctly converts smallest base unit to smallest decimal for cashDecimals = 2`, () => {
- expect(fromSmallestDenomination(1, 2)).toBe(0.01);
+ expect(fromSatoshisToXec(1, 2)).toBe(0.01);
});
it(`Correctly converts largest base unit to smallest decimal for cashDecimals = 2`, () => {
- expect(fromSmallestDenomination(1000000012345678, 2)).toBe(
- 10000000123456.78,
- );
+ expect(fromSatoshisToXec(1000000012345678, 2)).toBe(10000000123456.78);
});
it(`Correctly converts smallest base unit to smallest decimal for cashDecimals = 8`, () => {
- expect(fromSmallestDenomination(1, 8)).toBe(0.00000001);
+ expect(fromSatoshisToXec(1, 8)).toBe(0.00000001);
});
it(`Correctly converts largest base unit to smallest decimal for cashDecimals = 8`, () => {
- expect(fromSmallestDenomination(1000000012345678, 8)).toBe(
- 10000000.12345678,
- );
+ expect(fromSatoshisToXec(1000000012345678, 8)).toBe(10000000.12345678);
});
it(`Correctly converts an array of length 10 to an array of 4 arrays, each with max length 3`, () => {
expect(batchArray(unbatchedArray, 3)).toStrictEqual(
diff --git a/web/cashtab/src/utils/__tests__/validation.test.js b/web/cashtab/src/utils/__tests__/validation.test.js
--- a/web/cashtab/src/utils/__tests__/validation.test.js
+++ b/web/cashtab/src/utils/__tests__/validation.test.js
@@ -24,7 +24,7 @@
parseInvalidSettingsForMigration,
} from '../validation';
import { currency } from 'components/Common/Ticker.js';
-import { fromSmallestDenomination } from 'utils/cashMethods';
+import { fromSatoshisToXec } from 'utils/cashMethods';
import {
stStatsValid,
noCovidStatsValid,
@@ -91,17 +91,16 @@
});
it(`Returns error if ${
currency.ticker
- } send amount is less than ${fromSmallestDenomination(
+ } send amount is less than ${fromSatoshisToXec(
currency.dustSats,
).toString()} minimum`, () => {
- const expectedValidationError = `Send amount must be at least ${fromSmallestDenomination(
+ const expectedValidationError = `Send amount must be at least ${fromSatoshisToXec(
currency.dustSats,
).toString()} ${currency.ticker}`;
expect(
shouldRejectAmountInput(
(
- fromSmallestDenomination(currency.dustSats).toString() -
- 0.00000001
+ fromSatoshisToXec(currency.dustSats).toString() - 0.00000001
).toString(),
currency.ticker,
20.0,
@@ -111,10 +110,10 @@
});
it(`Returns error if ${
currency.ticker
- } send amount is less than ${fromSmallestDenomination(
+ } send amount is less than ${fromSatoshisToXec(
currency.dustSats,
).toString()} minimum in fiat currency`, () => {
- const expectedValidationError = `Send amount must be at least ${fromSmallestDenomination(
+ const expectedValidationError = `Send amount must be at least ${fromSatoshisToXec(
currency.dustSats,
).toString()} ${currency.ticker}`;
expect(
@@ -385,12 +384,11 @@
expect(isValidEtokenAddress(addr)).toBe(false);
});
it(`isValidXecSendAmount accepts the dust minimum`, () => {
- const testXecSendAmount = fromSmallestDenomination(currency.dustSats);
+ const testXecSendAmount = fromSatoshisToXec(currency.dustSats);
expect(isValidXecSendAmount(testXecSendAmount)).toBe(true);
});
it(`isValidXecSendAmount accepts arbitrary number above dust minimum`, () => {
- const testXecSendAmount =
- fromSmallestDenomination(currency.dustSats) + 1.75;
+ const testXecSendAmount = fromSatoshisToXec(currency.dustSats) + 1.75;
expect(isValidXecSendAmount(testXecSendAmount)).toBe(true);
});
it(`isValidXecSendAmount rejects zero`, () => {
@@ -403,7 +401,7 @@
});
it(`isValidXecSendAmount accepts arbitrary number above dust minimum as a string`, () => {
const testXecSendAmount = `${
- fromSmallestDenomination(currency.dustSats) + 1.75
+ fromSatoshisToXec(currency.dustSats) + 1.75
}`;
expect(isValidXecSendAmount(testXecSendAmount)).toBe(true);
});
diff --git a/web/cashtab/src/utils/cashMethods.js b/web/cashtab/src/utils/cashMethods.js
--- a/web/cashtab/src/utils/cashMethods.js
+++ b/web/cashtab/src/utils/cashMethods.js
@@ -130,9 +130,7 @@
// If user is attempting to send an aggregate value that is less than minimum accepted by the backend
if (
value.lt(
- new BigNumber(
- fromSmallestDenomination(currency.dustSats).toString(),
- ),
+ new BigNumber(fromSatoshisToXec(currency.dustSats).toString()),
)
) {
// Throw the same error given by the backend attempting to broadcast such a tx
@@ -418,7 +416,7 @@
return amountSmallestDenomination;
};
-export const fromSmallestDenomination = (
+export const fromSatoshisToXec = (
amount,
cashDecimals = currency.cashDecimals,
) => {
@@ -551,7 +549,7 @@
);
return {
totalBalanceInSatoshis,
- totalBalance: fromSmallestDenomination(totalBalanceInSatoshis),
+ totalBalance: fromSatoshisToXec(totalBalanceInSatoshis),
};
};
diff --git a/web/cashtab/src/utils/validation.js b/web/cashtab/src/utils/validation.js
--- a/web/cashtab/src/utils/validation.js
+++ b/web/cashtab/src/utils/validation.js
@@ -1,6 +1,6 @@
import BigNumber from 'bignumber.js';
import { currency } from 'components/Common/Ticker.js';
-import { fromSmallestDenomination } from 'utils/cashMethods';
+import { fromSatoshisToXec } from 'utils/cashMethods';
import cashaddr from 'ecashaddrjs';
// Validate cash amount
@@ -25,9 +25,9 @@
} else if (testedAmount.lte(0)) {
error = 'Amount must be greater than 0';
} else if (
- testedAmount.lt(fromSmallestDenomination(currency.dustSats).toString())
+ testedAmount.lt(fromSatoshisToXec(currency.dustSats).toString())
) {
- error = `Send amount must be at least ${fromSmallestDenomination(
+ error = `Send amount must be at least ${fromSatoshisToXec(
currency.dustSats,
).toString()} ${currency.ticker}`;
} else if (testedAmount.gt(totalCashBalance)) {
@@ -298,7 +298,7 @@
xecSendAmount !== null &&
typeof xecSendAmount !== 'undefined' &&
!isNaN(parseFloat(xecSendAmount)) &&
- parseFloat(xecSendAmount) >= fromSmallestDenomination(currency.dustSats)
+ parseFloat(xecSendAmount) >= fromSatoshisToXec(currency.dustSats)
);
};
@@ -428,7 +428,7 @@
// if the XEC being sent is less than dust sats or contains extra values per line
if (
new BigNumber(valueString).lt(
- fromSmallestDenomination(currency.dustSats),
+ fromSatoshisToXec(currency.dustSats),
) ||
substring.length !== 2
) {

File Metadata

Mime Type
text/plain
Expires
Mon, May 12, 01:50 (20 h, 53 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5777082
Default Alt Text
D11850.diff (18 KB)

Event Timeline