Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F14362800
D11850.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
18 KB
Subscribers
None
D11850.diff
View Options
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
Details
Attached
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)
Attached To
D11850: [Cashtab] [p1 rename smallestDenomination] Rename fromSmallestDenomination to fromSatoshisToXec
Event Timeline
Log In to Comment