diff --git a/packages/extension-base/src/koni/background/handlers/Extension.ts b/packages/extension-base/src/koni/background/handlers/Extension.ts index f4258a15fdf..86b09872f69 100644 --- a/packages/extension-base/src/koni/background/handlers/Extension.ts +++ b/packages/extension-base/src/koni/background/handlers/Extension.ts @@ -2483,6 +2483,9 @@ export default class KoniExtension { utxos }; const { fee: _estimatedFee, inputs, outputs } = transferAll ? determineUtxosForSpendAll(determineUtxosArgs) : determineUtxosForSpend(determineUtxosArgs); + + maxTransferable = inputs.reduce((previous, input) => previous.plus(input.value), new BigN(0)); + const recipients = outputs.filter((o) => o.address).map((o) => o.address || ''); const { txVBytes: vSize } = getSizeInfo({ inputLength: inputs.length, diff --git a/packages/extension-base/src/services/balance-service/helpers/transfer/bitcoin.ts b/packages/extension-base/src/services/balance-service/helpers/transfer/bitcoin.ts index 501868e1492..26f7c3bd850 100644 --- a/packages/extension-base/src/services/balance-service/helpers/transfer/bitcoin.ts +++ b/packages/extension-base/src/services/balance-service/helpers/transfer/bitcoin.ts @@ -51,9 +51,14 @@ export async function getBitcoinTransactionObject ({ bitcoinApi, ? determineUtxosForSpendAll(determineUtxosArgs) : determineUtxosForSpend(determineUtxosArgs); + console.log(inputs, outputs); + console.log(inputs, inputs.reduce((v, i) => v + i.value, 0)); + console.log(outputs, (outputs as Array<{value: number}>).reduce((v, i) => v + i.value, 0)); + console.log(fee, bitcoinFee); + const pair = keyring.getPair(from); const tx = new Psbt({ network }); - const transferAmount = new BigN(0); + let transferAmount = new BigN(0); for (const input of inputs) { if (pair.type === 'bitcoin-44' || pair.type === 'bittest-44') { @@ -74,8 +79,6 @@ export async function getBitcoinTransactionObject ({ bitcoinApi, } }); } - - transferAmount.plus(input.value); } for (const output of outputs) { @@ -84,8 +87,8 @@ export async function getBitcoinTransactionObject ({ bitcoinApi, value: output.value }); - if (output.address) { - transferAmount.minus(output.value); + if (output.address === to) { + transferAmount = transferAmount.plus(output.value); } } @@ -93,8 +96,6 @@ export async function getBitcoinTransactionObject ({ bitcoinApi, console.log(outputs, (outputs as Array<{value: number}>).reduce((v, i) => v + i.value, 0)); console.log(fee, bitcoinFee); - transferAmount.minus(fee); - console.log('Transfer Amount:', transferAmount.toString()); return [tx, transferAmount.toString()];