diff --git a/cashtab/extension/public/manifest.json b/cashtab/extension/public/manifest.json
--- a/cashtab/extension/public/manifest.json
+++ b/cashtab/extension/public/manifest.json
@@ -2,7 +2,7 @@
"manifest_version": 3,
"name": "Cashtab",
"description": "A browser-integrated eCash wallet from Bitcoin ABC",
- "version": "3.29.2",
+ "version": "3.30.0",
"content_scripts": [
{
"matches": ["file://*/*", "http://*/*", "https://*/*"],
diff --git a/cashtab/package-lock.json b/cashtab/package-lock.json
--- a/cashtab/package-lock.json
+++ b/cashtab/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "cashtab",
- "version": "2.29.7",
+ "version": "2.30.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "cashtab",
- "version": "2.29.7",
+ "version": "2.30.0",
"dependencies": {
"@bitgo/utxo-lib": "^9.33.0",
"@zxing/browser": "^0.1.4",
diff --git a/cashtab/package.json b/cashtab/package.json
--- a/cashtab/package.json
+++ b/cashtab/package.json
@@ -1,6 +1,6 @@
{
"name": "cashtab",
- "version": "2.29.7",
+ "version": "2.30.0",
"private": true,
"scripts": {
"start": "node scripts/start.js",
diff --git a/cashtab/src/airdrop/fixtures/vectors.js b/cashtab/src/airdrop/fixtures/vectors.js
--- a/cashtab/src/airdrop/fixtures/vectors.js
+++ b/cashtab/src/airdrop/fixtures/vectors.js
@@ -225,7 +225,7 @@
excludedAddresses: [],
airdropAmountXec: 5,
minTokenQtyUndecimalized: '0',
- err: `6 eligible recipients. Recipients would receive less than 550 sats with a total airdrop amount of 5 XEC. Please increase your airdrop amount or ignore more addresses.`,
+ err: `6 eligible recipients. Recipients would receive less than 546 sats with a total airdrop amount of 5 XEC. Please increase your airdrop amount or ignore more addresses.`,
},
],
},
diff --git a/cashtab/src/components/App/__tests__/App.test.js b/cashtab/src/components/App/__tests__/App.test.js
--- a/cashtab/src/components/App/__tests__/App.test.js
+++ b/cashtab/src/components/App/__tests__/App.test.js
@@ -523,7 +523,7 @@
'ecash:qphlhe78677sz227k83hrh542qeehh8el5lcjwk72y',
);
// The value field is populated with dust
- expect(screen.getByPlaceholderText('Amount')).toHaveValue(5.5);
+ expect(screen.getByPlaceholderText('Amount')).toHaveValue(5.46);
});
it('If Cashtab starts up with some settings keys missing, the missing keys are migrated to default values', async () => {
// Note: this is what happens to existing users when we add a new key to cashtabState.settings
diff --git a/cashtab/src/components/Etokens/CreateToken.js b/cashtab/src/components/Etokens/CreateToken.js
--- a/cashtab/src/components/Etokens/CreateToken.js
+++ b/cashtab/src/components/Etokens/CreateToken.js
@@ -37,8 +37,8 @@
{balanceSats < appConfig.dustSats ? (
You need at least {toXec(appConfig.dustSats).toString()}{' '}
- {appConfig.ticker} {minTokenCreationFiatPriceString} to
- create a token
+ spendable {appConfig.ticker}{' '}
+ {minTokenCreationFiatPriceString} to create a token
) : (
diff --git a/cashtab/src/components/Etokens/__tests__/CreateToken.test.js b/cashtab/src/components/Etokens/__tests__/CreateToken.test.js
--- a/cashtab/src/components/Etokens/__tests__/CreateToken.test.js
+++ b/cashtab/src/components/Etokens/__tests__/CreateToken.test.js
@@ -93,7 +93,7 @@
// Does not render insufficient balance alert
expect(
screen.queryByText(
- 'You need at least 5.5 XEC ($0.0002 USD) to create a token',
+ 'You need at least 5.46 spendable XEC ($0.0002 USD) to create a token',
),
).not.toBeInTheDocument();
});
@@ -134,7 +134,7 @@
// In this case, we do not display the fiat price
expect(
await screen.findByText(
- 'You need at least 5.5 XEC ($0.0002 USD) to create a token',
+ 'You need at least 5.46 spendable XEC ($0.0002 USD) to create a token',
),
).toBeInTheDocument();
});
diff --git a/cashtab/src/components/Send/__tests__/SendXec.test.js b/cashtab/src/components/Send/__tests__/SendXec.test.js
--- a/cashtab/src/components/Send/__tests__/SendXec.test.js
+++ b/cashtab/src/components/Send/__tests__/SendXec.test.js
@@ -652,7 +652,7 @@
// We get expected addr validation error
expect(
- screen.getByText(`Send amount must be at least 5.5 XEC`),
+ screen.getByText(`Send amount must be at least 5.46 XEC`),
).toBeInTheDocument();
// The Send button is disabled
diff --git a/cashtab/src/config/app.js b/cashtab/src/config/app.js
--- a/cashtab/src/config/app.js
+++ b/cashtab/src/config/app.js
@@ -16,8 +16,7 @@
fiatUpdateIntervalMs: 90000,
defaultFee: 2.01,
minFee: 1,
- dustSats: 550,
- etokenSats: 546,
+ dustSats: 546,
cashDecimals: 2,
fiatDecimals: 2,
pricePrecisionDecimals: 8,
diff --git a/cashtab/src/slpv1/__tests__/index.test.js b/cashtab/src/slpv1/__tests__/index.test.js
--- a/cashtab/src/slpv1/__tests__/index.test.js
+++ b/cashtab/src/slpv1/__tests__/index.test.js
@@ -42,7 +42,7 @@
);
// The output at the 1-index is dust to given address
expect(calculatedTargetOutputs[1]).toStrictEqual({
- value: appConfig.etokenSats,
+ value: appConfig.dustSats,
});
if (calculatedTargetOutputs.length > 2) {
// If we have a mint baton
@@ -54,7 +54,7 @@
// The mint baton is at index 2
// eslint-disable-next-line jest/no-conditional-expect
expect(calculatedTargetOutputs[2]).toStrictEqual({
- value: appConfig.etokenSats,
+ value: appConfig.dustSats,
});
}
});
@@ -118,7 +118,7 @@
// We will always have the destination output at index 1
expect(calculatedTargetOutputs[1].value).toBe(
- appConfig.etokenSats,
+ appConfig.dustSats,
);
expect(calculatedTargetOutputs[1].address).toBe(
SEND_DESTINATION_ADDRESS,
@@ -134,7 +134,7 @@
// assert the expected change output
// eslint-disable-next-line jest/no-conditional-expect
expect(calculatedTargetOutputs[2].value).toBe(
- appConfig.etokenSats,
+ appConfig.dustSats,
);
// eslint-disable-next-line jest/no-conditional-expect
expect('address' in calculatedTargetOutputs[2]).toBe(false);
@@ -204,7 +204,7 @@
// We will always have the destination output at index 1
expect(calculatedTargetOutputs[1].value).toBe(
- appConfig.etokenSats,
+ appConfig.dustSats,
);
expect(calculatedTargetOutputs[1].address).toBe(
SEND_DESTINATION_ADDRESS,
@@ -220,7 +220,7 @@
// assert the expected change output
// eslint-disable-next-line jest/no-conditional-expect
expect(calculatedTargetOutputs[2].value).toBe(
- appConfig.etokenSats,
+ appConfig.dustSats,
);
// eslint-disable-next-line jest/no-conditional-expect
expect('address' in calculatedTargetOutputs[2]).toBe(false);
@@ -294,7 +294,7 @@
// BURN txs always have 2 outputs
expect(targetOutput.length).toBe(2);
// assert the expected change output
- expect(targetOutput[1].value).toBe(appConfig.etokenSats);
+ expect(targetOutput[1].value).toBe(appConfig.dustSats);
expect('address' in targetOutput[1]).toBe(false);
});
});
@@ -364,8 +364,8 @@
);
expect(mintTargetOutputs.length).toBe(3);
expect(mintTargetOutputs.splice(1, 3)).toStrictEqual([
- { value: appConfig.etokenSats },
- { value: appConfig.etokenSats },
+ { value: appConfig.dustSats },
+ { value: appConfig.dustSats },
]);
});
});
diff --git a/cashtab/src/slpv1/fixtures/vectors.js b/cashtab/src/slpv1/fixtures/vectors.js
--- a/cashtab/src/slpv1/fixtures/vectors.js
+++ b/cashtab/src/slpv1/fixtures/vectors.js
@@ -511,7 +511,7 @@
script: '6a04534c500001010453454e4420111111111111111111111111111111111111111111111111111111111111111108000000000000000f080000000000000005',
},
{
- value: appConfig.etokenSats,
+ value: appConfig.dustSats,
address: SEND_DESTINATION_ADDRESS,
},
],
@@ -574,7 +574,7 @@
script: '6a04534c500001010453454e4420111111111111111111111111111111111111111111111111111111111111111108000000000000001e',
},
{
- value: appConfig.etokenSats,
+ value: appConfig.dustSats,
address: SEND_DESTINATION_ADDRESS,
},
],
@@ -630,7 +630,7 @@
script: '6a04534c500001010453454e44201111111111111111111111111111111111111111111111111111111111111111080000000008f0d180080000000002faf080',
},
{
- value: appConfig.etokenSats,
+ value: appConfig.dustSats,
address: SEND_DESTINATION_ADDRESS,
},
],
@@ -1267,7 +1267,7 @@
),
},
{
- value: appConfig.etokenSats,
+ value: appConfig.dustSats,
},
],
},
@@ -1291,10 +1291,10 @@
),
},
{
- value: appConfig.etokenSats,
+ value: appConfig.dustSats,
},
{
- value: appConfig.etokenSats,
+ value: appConfig.dustSats,
},
],
},
@@ -1318,7 +1318,7 @@
),
},
{
- value: appConfig.etokenSats,
+ value: appConfig.dustSats,
},
],
},
diff --git a/cashtab/src/slpv1/index.js b/cashtab/src/slpv1/index.js
--- a/cashtab/src/slpv1/index.js
+++ b/cashtab/src/slpv1/index.js
@@ -63,14 +63,14 @@
// Expected behavior for Cashtab tx building is to add change address to output
// with no address
targetOutputs.push({
- value: appConfig.etokenSats,
+ value: appConfig.dustSats,
});
// If the user specified the creation of a mint baton, add it
// Note: Cashtab only supports the creation of one mint baton at index 2
if (mintBatonVout !== null) {
targetOutputs.push({
- value: appConfig.etokenSats,
+ value: appConfig.dustSats,
});
}
@@ -104,7 +104,7 @@
// Add first 'to' amount to 1 index. This could be any index between 1 and 19.
targetOutputs.push({
- value: appConfig.etokenSats,
+ value: appConfig.dustSats,
address: destinationAddress,
});
@@ -114,7 +114,7 @@
// Note that change addresses are added after ecash-coinselect by wallet
// Change output is denoted by lack of address key
targetOutputs.push({
- value: appConfig.etokenSats,
+ value: appConfig.dustSats,
});
}
@@ -244,7 +244,7 @@
// burn tx logic separate from ecash tx creation logic
// But lets just add the min output
- return [{ value: 0, script }, { value: appConfig.etokenSats }];
+ return [{ value: 0, script }, { value: appConfig.dustSats }];
};
/**
@@ -400,12 +400,12 @@
// Add mint amount at index 1
targetOutputs.push({
- value: appConfig.etokenSats,
+ value: appConfig.dustSats,
});
// Add mint baton at index 2
targetOutputs.push({
- value: appConfig.etokenSats,
+ value: appConfig.dustSats,
});
return targetOutputs;
@@ -473,14 +473,14 @@
// In Cashtab, we mint genesis txs to our own Path1899 address
// If an output does not have an address, Cashtab will add its change address
targetOutputs.push({
- value: appConfig.etokenSats,
+ value: appConfig.dustSats,
});
// If the user specified the creation of a mint baton, add it
// Note: Cashtab only supports the creation of one mint baton at index 2
if (mintBatonVout !== null) {
targetOutputs.push({
- value: appConfig.etokenSats,
+ value: appConfig.dustSats,
});
}
diff --git a/cashtab/src/validation/fixtures/vectors.js b/cashtab/src/validation/fixtures/vectors.js
--- a/cashtab/src/validation/fixtures/vectors.js
+++ b/cashtab/src/validation/fixtures/vectors.js
@@ -1597,7 +1597,7 @@
userMultisendInput: `ecash:qplkmuz3rx480u6vc4xgc0qxnza42p0e7vll6p90wr, 1\necash:qqxrrls4u0znxx2q7e5m4en4z2yjrqgqeucckaerq3, 33\necash:qphlhe78677sz227k83hrh542qeehh8el5lcjwk72y, 55`,
balanceSats: 11000,
userLocale: appConfig.defaultLocale,
- returned: `Send amount must be at least 5.5 XEC: check value "1" at line 1`,
+ returned: `Send amount must be at least 5.46 XEC: check value "1" at line 1`,
},
{
description: