diff --git a/.changeset/small-hornets-accept.md b/.changeset/small-hornets-accept.md new file mode 100644 index 000000000000..55242d8c5edd --- /dev/null +++ b/.changeset/small-hornets-accept.md @@ -0,0 +1,5 @@ +--- +"@ledgerhq/coin-stacks": patch +--- + +Fix transaction broadcast diff --git a/libs/coin-modules/coin-stacks/src/bridge/estimateMaxSpendable.ts b/libs/coin-modules/coin-stacks/src/bridge/estimateMaxSpendable.ts index dfc19e8003da..463bb3f0262d 100644 --- a/libs/coin-modules/coin-stacks/src/bridge/estimateMaxSpendable.ts +++ b/libs/coin-modules/coin-stacks/src/bridge/estimateMaxSpendable.ts @@ -5,6 +5,7 @@ import { StacksMainnet } from "@stacks/network"; import { UnsignedTokenTransferOptions, estimateTransaction, + estimateTransactionByteLength, makeUnsignedSTXTokenTransfer, } from "@stacks/transactions"; import BigNumber from "bignumber.js"; @@ -43,7 +44,7 @@ export const estimateMaxSpendable: AccountBridge["estimateMaxSpenda const tx = await makeUnsignedSTXTokenTransfer(options); - const [feeEst] = await estimateTransaction(tx.payload); + const [feeEst] = await estimateTransaction(tx.payload, estimateTransactionByteLength(tx)); const diff = spendableBalance.minus(new BigNumber(feeEst.fee)); return diff.gte(0) ? diff : new BigNumber(0); diff --git a/libs/coin-modules/coin-stacks/src/bridge/prepareTransaction.ts b/libs/coin-modules/coin-stacks/src/bridge/prepareTransaction.ts index 4e1ed0e7b94d..d8384e8a4858 100644 --- a/libs/coin-modules/coin-stacks/src/bridge/prepareTransaction.ts +++ b/libs/coin-modules/coin-stacks/src/bridge/prepareTransaction.ts @@ -6,6 +6,7 @@ import { TransactionVersion, UnsignedTokenTransferOptions, estimateTransaction, + estimateTransactionByteLength, makeUnsignedSTXTokenTransfer, } from "@stacks/transactions"; import BigNumber from "bignumber.js"; @@ -48,7 +49,7 @@ export const prepareTransaction: AccountBridge["prepareTransaction" : AddressVersion.TestnetSingleSig; const senderAddress = c32address(addressVersion, tx.auth.spendingCondition!.signer); - const [fee] = await estimateTransaction(tx.payload); + const [fee] = await estimateTransaction(tx.payload, estimateTransactionByteLength(tx)); patch.fee = new BigNumber(fee.fee); patch.nonce = await findNextNonce(senderAddress, pendingOperations);