Browse Source

REF: transaction value

master
Overtorment 5 years ago
parent
commit
2ec23d9147
  1. 2
      screen/send/confirm.js
  2. 4
      screen/send/create.js
  3. 20
      screen/send/details.js

2
screen/send/confirm.js

@ -127,7 +127,7 @@ export default class Confirm extends Component {
fontWeight: '600',
}}
>
{!item.amount || item.amount === BitcoinUnit.MAX
{!item.value || item.value === BitcoinUnit.MAX
? currency.satoshiToBTC(this.state.fromWallet.getBalance() - this.state.feeSatoshi)
: item.amount || currency.satoshiToBTC(item.value)}
</Text>

4
screen/send/create.js

@ -104,9 +104,9 @@ export default class SendCreate extends Component {
<Text style={styles.transactionDetailsSubtitle}>{item.address}</Text>
<Text style={styles.transactionDetailsTitle}>{loc.send.create.amount}</Text>
<Text style={styles.transactionDetailsSubtitle}>
{item.amount === BitcoinUnit.MAX || !item.amount
{item.value === BitcoinUnit.MAX || !item.value
? currency.satoshiToBTC(this.state.wallet.getBalance()) - this.state.fee
: item.amount || currency.satoshiToBTC(item.value)}{' '}
: currency.satoshiToBTC(item.value)}{' '}
{BitcoinUnit.BTC}
</Text>
{this.state.recipients.length > 1 && (

20
screen/send/details.js

@ -438,23 +438,21 @@ export default class SendDetails extends Component {
/** @type {HDSegwitBech32Wallet} */
const wallet = this.state.fromWallet;
await wallet.fetchUtxo();
const firstTransaction = this.state.addresses[0];
const changeAddress = await wallet.getChangeAddressAsync();
let satoshis = new BigNumber(firstTransaction.amount).multipliedBy(100000000).toNumber();
const requestedSatPerByte = +this.state.fee.toString().replace(/\D/g, '');
console.log({ satoshis, requestedSatPerByte, utxo: wallet.getUtxo() });
console.log({ requestedSatPerByte, utxo: wallet.getUtxo() });
let targets = [];
for (const transaction of this.state.addresses) {
const amount =
transaction.amount === BitcoinUnit.MAX ? BitcoinUnit.MAX : new BigNumber(transaction.amount).multipliedBy(100000000).toNumber();
if (amount > 0.0 || amount === BitcoinUnit.MAX) {
targets.push({ address: transaction.address, value: amount });
if (transaction.amount === BitcoinUnit.MAX) {
// single output with MAX
targets = [{ address: transaction.address }];
break;
}
const value = new BigNumber(transaction.amount).multipliedBy(100000000).toNumber();
if (value > 0) {
targets.push({ address: transaction.address, value });
}
}
if (firstTransaction.amount === BitcoinUnit.MAX) {
targets = [{ address: firstTransaction.address }];
}
let { tx, fee, psbt } = wallet.createTransaction(

Loading…
Cancel
Save