From e5d89f15bdd22b4546dd592ca95916b20569d016 Mon Sep 17 00:00:00 2001 From: julian Date: Fri, 10 May 2024 15:54:41 -0600 Subject: [PATCH] dirty peercoin fee calc hack --- lib/wallets/wallet/impl/peercoin_wallet.dart | 23 +++++++++---------- .../electrumx_interface.dart | 4 +++- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/lib/wallets/wallet/impl/peercoin_wallet.dart b/lib/wallets/wallet/impl/peercoin_wallet.dart index 535f537b9..e08566f45 100644 --- a/lib/wallets/wallet/impl/peercoin_wallet.dart +++ b/lib/wallets/wallet/impl/peercoin_wallet.dart @@ -49,22 +49,21 @@ class PeercoinWallet extends Bip39HDWallet @override Amount roughFeeEstimate(int inputCount, int outputCount, int feeRatePerKB) { - // TODO: check ppc fee stuff - throw Exception("TODO"); - // return Amount( - // rawValue: BigInt.from( - // ((42 + (272 * inputCount) + (128 * outputCount)) / 4).ceil() * - // (feeRatePerKB / 1000).ceil(), - // ), - // fractionDigits: cryptoCurrency.fractionDigits, - // ); + // TODO: actually do this properly for peercoin + // this is probably wrong for peercoin + return Amount( + rawValue: BigInt.from( + ((42 + (272 * inputCount) + (128 * outputCount)) / 4).ceil() * + (feeRatePerKB / 1000).ceil(), + ), + fractionDigits: cryptoCurrency.fractionDigits, + ); } + /// we can just pretend vSize is size for peercoin @override int estimateTxFee({required int vSize, required int feeRatePerKB}) { - // TODO: check ppc fee stuff - throw Exception("TODO"); - // return vSize * (feeRatePerKB / 1000).ceil(); + return vSize * (feeRatePerKB / 1000).ceil(); } // =========================================================================== diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart index b4fdb7a9d..026e9f5fc 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart @@ -24,6 +24,7 @@ import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; import 'package:stackwallet/wallets/crypto_currency/intermediate/bip39_hd_currency.dart'; import 'package:stackwallet/wallets/models/tx_data.dart'; import 'package:stackwallet/wallets/wallet/impl/bitcoin_wallet.dart'; +import 'package:stackwallet/wallets/wallet/impl/peercoin_wallet.dart'; import 'package:stackwallet/wallets/wallet/intermediate/bip39_hd_wallet.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart'; @@ -768,7 +769,8 @@ mixin ElectrumXInterface on Bip39HDWallet { return txData.copyWith( raw: clTx.toHex(), - vSize: clTx.vSize(), + // dirty shortcut for peercoin's weirdness + vSize: this is PeercoinWallet ? clTx.size : clTx.vSize(), tempTx: TransactionV2( walletId: walletId, blockHash: null,