Skip to content
This repository has been archived by the owner on Dec 2, 2024. It is now read-only.

Commit

Permalink
Bugfix/ios 7494 fix bitcoin fee (#785)
Browse files Browse the repository at this point in the history
  • Loading branch information
skibinalexander authored Aug 8, 2024
1 parent d255513 commit cf7f8db
Show file tree
Hide file tree
Showing 10 changed files with 17 additions and 66 deletions.
22 changes: 5 additions & 17 deletions BlockchainSdk.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@
0A7624DB2C2950E8002FA139 /* ICPTransactionBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A7624DA2C2950E8002FA139 /* ICPTransactionBuilder.swift */; };
0A7624E32C296969002FA139 /* ICPWalletManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A7624E22C296969002FA139 /* ICPWalletManager.swift */; };
0A7973FE2C5B9F7500CE8182 /* IcpKit in Frameworks */ = {isa = PBXBuildFile; productRef = 0A7973FD2C5B9F7500CE8182 /* IcpKit */; };
0A7E10B92C4E8E5700644977 /* ICPTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A7E10B82C4E8E5700644977 /* ICPTests.swift */; };
0A7C5BFB2C174E6400B32CA5 /* DwellirAPIResolver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A7C5BFA2C174E6400B32CA5 /* DwellirAPIResolver.swift */; };
0A7C5BFD2C174E7700B32CA5 /* OnfinalityAPIResolver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A7C5BFC2C174E7700B32CA5 /* OnfinalityAPIResolver.swift */; };
0A7E10B92C4E8E5700644977 /* ICPTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A7E10B82C4E8E5700644977 /* ICPTests.swift */; };
0A92275F2C16E5D500CB7777 /* BittensorExternalLinkProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A92275E2C16E5D500CB7777 /* BittensorExternalLinkProvider.swift */; };
0AA9E3792B9A03450084E8A7 /* MantaExternalLinkProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0AA9E3782B9A03450084E8A7 /* MantaExternalLinkProvider.swift */; };
0ABC60F02C4101ED00065EBA /* TonSwift in Frameworks */ = {isa = PBXBuildFile; productRef = 0ABC60EF2C4101ED00065EBA /* TonSwift */; };
Expand Down Expand Up @@ -187,13 +187,11 @@
5D4B33C023F6EA6C00C93A84 /* BlockchairNetworkProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D4B33BF23F6EA6C00C93A84 /* BlockchairNetworkProvider.swift */; };
5D4B33C223F72C0400C93A84 /* BitcoinCashNetworkService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D4B33C123F72C0400C93A84 /* BitcoinCashNetworkService.swift */; };
5D4B33C623F72F1100C93A84 /* BitcoinCashAddressService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D4B33C523F72F1100C93A84 /* BitcoinCashAddressService.swift */; };
5D4B33C823F72F2700C93A84 /* BitcoinCashWalletManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D4B33C723F72F2700C93A84 /* BitcoinCashWalletManager.swift */; };
5D4B33CD23F7DC0400C93A84 /* BinanceWalletManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D4B33CC23F7DC0400C93A84 /* BinanceWalletManager.swift */; };
5D4B33D123F7DC7500C93A84 /* BinanceAddressService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D4B33D023F7DC7500C93A84 /* BinanceAddressService.swift */; };
5D4B33D323F7DF1F00C93A84 /* BinanceNetworkService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D4B33D223F7DF1F00C93A84 /* BinanceNetworkService.swift */; };
5D4B33D523F7DFB400C93A84 /* BinanceTransactionBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D4B33D423F7DFB400C93A84 /* BinanceTransactionBuilder.swift */; };
5D54FE1A23E41E5A009FAC2F /* LitecoinNetworkParams.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D54FE1923E41E5A009FAC2F /* LitecoinNetworkParams.swift */; };
5D54FE1E23E4313A009FAC2F /* LitecoinWalletManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D54FE1D23E4313A009FAC2F /* LitecoinWalletManager.swift */; };
5D557CB023AA888D009B32AF /* Uint64+.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D557CAF23AA888D009B32AF /* Uint64+.swift */; };
5D557CB523ACCAD2009B32AF /* BlockcypherNetworkProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D557CB423ACCAD2009B32AF /* BlockcypherNetworkProvider.swift */; };
5D5CE0D52625C8EC009023EC /* XrpNetworkProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D5CE0D42625C8EC009023EC /* XrpNetworkProvider.swift */; };
Expand Down Expand Up @@ -712,7 +710,6 @@
EF0DA78928523FAC0081092A /* LitecoinTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5DFCE547274BB85B00C1B1A0 /* LitecoinTests.swift */; };
EF0DA78A28523FAC0081092A /* PolkadotTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA7CA47527AD4BD90041B1A1 /* PolkadotTests.swift */; };
EF0DA78C285246A90081092A /* DashMainNetworkParams.swift in Sources */ = {isa = PBXBuildFile; fileRef = EF680A74284F556A00F6B1BD /* DashMainNetworkParams.swift */; };
EF0DA78D285246A90081092A /* DashWalletManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = EF680A72284F524300F6B1BD /* DashWalletManager.swift */; };
EF0DA78E285246A90081092A /* DashTestNetworkParams.swift in Sources */ = {isa = PBXBuildFile; fileRef = EFFB30742851ECD90040A67D /* DashTestNetworkParams.swift */; };
EF1339B62AB4B2A600B78BA3 /* TransferERC20TokenMethod.swift in Sources */ = {isa = PBXBuildFile; fileRef = EF1339B52AB4B2A600B78BA3 /* TransferERC20TokenMethod.swift */; };
EF1339B82AB4B2C300B78BA3 /* SmartContractMethod.swift in Sources */ = {isa = PBXBuildFile; fileRef = EF1339B72AB4B2C300B78BA3 /* SmartContractMethod.swift */; };
Expand Down Expand Up @@ -914,9 +911,9 @@
0A7084B72BF797E900FD519D /* TONAddressService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TONAddressService.swift; sourceTree = "<group>"; };
0A7624DA2C2950E8002FA139 /* ICPTransactionBuilder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ICPTransactionBuilder.swift; sourceTree = "<group>"; };
0A7624E22C296969002FA139 /* ICPWalletManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ICPWalletManager.swift; sourceTree = "<group>"; };
0A7E10B82C4E8E5700644977 /* ICPTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ICPTests.swift; sourceTree = "<group>"; };
0A7C5BFA2C174E6400B32CA5 /* DwellirAPIResolver.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DwellirAPIResolver.swift; sourceTree = "<group>"; };
0A7C5BFC2C174E7700B32CA5 /* OnfinalityAPIResolver.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnfinalityAPIResolver.swift; sourceTree = "<group>"; };
0A7E10B82C4E8E5700644977 /* ICPTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ICPTests.swift; sourceTree = "<group>"; };
0A92275E2C16E5D500CB7777 /* BittensorExternalLinkProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BittensorExternalLinkProvider.swift; sourceTree = "<group>"; };
0AA9E3782B9A03450084E8A7 /* MantaExternalLinkProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MantaExternalLinkProvider.swift; sourceTree = "<group>"; };
0AEE1E6F2C1B1BEA000BFCB2 /* BittensorWalletAssembly.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BittensorWalletAssembly.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -1081,13 +1078,11 @@
5D4B33BF23F6EA6C00C93A84 /* BlockchairNetworkProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlockchairNetworkProvider.swift; sourceTree = "<group>"; };
5D4B33C123F72C0400C93A84 /* BitcoinCashNetworkService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BitcoinCashNetworkService.swift; sourceTree = "<group>"; };
5D4B33C523F72F1100C93A84 /* BitcoinCashAddressService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BitcoinCashAddressService.swift; sourceTree = "<group>"; };
5D4B33C723F72F2700C93A84 /* BitcoinCashWalletManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BitcoinCashWalletManager.swift; sourceTree = "<group>"; };
5D4B33CC23F7DC0400C93A84 /* BinanceWalletManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BinanceWalletManager.swift; sourceTree = "<group>"; };
5D4B33D023F7DC7500C93A84 /* BinanceAddressService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BinanceAddressService.swift; sourceTree = "<group>"; };
5D4B33D223F7DF1F00C93A84 /* BinanceNetworkService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BinanceNetworkService.swift; sourceTree = "<group>"; };
5D4B33D423F7DFB400C93A84 /* BinanceTransactionBuilder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BinanceTransactionBuilder.swift; sourceTree = "<group>"; };
5D54FE1923E41E5A009FAC2F /* LitecoinNetworkParams.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LitecoinNetworkParams.swift; sourceTree = "<group>"; };
5D54FE1D23E4313A009FAC2F /* LitecoinWalletManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LitecoinWalletManager.swift; sourceTree = "<group>"; };
5D557CAF23AA888D009B32AF /* Uint64+.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Uint64+.swift"; sourceTree = "<group>"; };
5D557CB423ACCAD2009B32AF /* BlockcypherNetworkProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlockcypherNetworkProvider.swift; sourceTree = "<group>"; };
5D5CE0D42625C8EC009023EC /* XrpNetworkProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = XrpNetworkProvider.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -1722,7 +1717,6 @@
EF666C2D2A2F3EE90044986F /* BitcoinLegacyAddressService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BitcoinLegacyAddressService.swift; sourceTree = "<group>"; };
EF666C2F2A2F3F200044986F /* BitcoinBech32AddressService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BitcoinBech32AddressService.swift; sourceTree = "<group>"; };
EF666C312A2F43370044986F /* PolkadotAddress.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PolkadotAddress.swift; sourceTree = "<group>"; };
EF680A72284F524300F6B1BD /* DashWalletManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DashWalletManager.swift; sourceTree = "<group>"; };
EF680A74284F556A00F6B1BD /* DashMainNetworkParams.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DashMainNetworkParams.swift; sourceTree = "<group>"; };
EF72577D2A8D42A100EA8CB2 /* TransactionHistory.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TransactionHistory.swift; sourceTree = "<group>"; };
EF72578F2A8F938400EA8CB2 /* KeyedDecodingContainer+.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "KeyedDecodingContainer+.swift"; sourceTree = "<group>"; };
Expand Down Expand Up @@ -1778,7 +1772,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
0A7973FE2C5B9F7500CE8182 /* IcpKit in Frameworks */,
0A7973FE2C5B9F7500CE8182 /* IcpKit in Frameworks */,
0ABC60F32C41021000065EBA /* ScaleCodec in Frameworks */,
B6A2CC432B6C55FE00864CD2 /* secp256k1 in Frameworks */,
0ABC60F02C4101ED00065EBA /* TonSwift in Frameworks */,
Expand Down Expand Up @@ -2359,7 +2353,6 @@
5D4B33C123F72C0400C93A84 /* BitcoinCashNetworkService.swift */,
0A158C042B74E4680004DC23 /* BitcoinCashNowNodesNetworkProvider.swift */,
2DDE5B9229C4F8D200A5B708 /* BitcoinCashWalletAssembly.swift */,
5D4B33C723F72F2700C93A84 /* BitcoinCashWalletManager.swift */,
EF32FEC12A3072B9002ED43F /* CashAddrService.swift */,
);
path = BitcoinCash;
Expand Down Expand Up @@ -2405,7 +2398,6 @@
isa = PBXGroup;
children = (
2DDE5B9729C4F8D200A5B708 /* LitecoinWalletAssembly.swift */,
5D54FE1D23E4313A009FAC2F /* LitecoinWalletManager.swift */,
5D54FE1923E41E5A009FAC2F /* LitecoinNetworkParams.swift */,
B0FF8816264AEA60003E000A /* LitecoinNetworkService.swift */,
);
Expand Down Expand Up @@ -4048,7 +4040,6 @@
children = (
2DDE5B9D29C4F8D200A5B708 /* DashWalletAssembly.swift */,
EF3B19492AA85E7B0084AA1C /* DashExternalLinkProvider.swift */,
EF680A72284F524300F6B1BD /* DashWalletManager.swift */,
EF680A74284F556A00F6B1BD /* DashMainNetworkParams.swift */,
EFFB30742851ECD90040A67D /* DashTestNetworkParams.swift */,
);
Expand Down Expand Up @@ -4632,7 +4623,6 @@
B6D7131F2AEBEF750095FE6A /* NEARNetworkResult.APIError.swift in Sources */,
B633EA222B8FC5DD00F11BFF /* UTXOTransactionHistoryProvider.swift in Sources */,
EF2D9E0F2BC43DA80055C485 /* EthereumNetworkProvider.swift in Sources */,
5D4B33C823F72F2700C93A84 /* BitcoinCashWalletManager.swift in Sources */,
DC5E65272B1650F400E81AA5 /* OP_0.swift in Sources */,
B6BA93732AEA0E9B00F84E36 /* NEARNetworkParams.Transaction.swift in Sources */,
EF332D19288EAEAC00AE3C85 /* NetworkProvider.swift in Sources */,
Expand Down Expand Up @@ -4720,7 +4710,6 @@
B00B58CE2BCEBC0D007475F7 /* HederaAPIResolver.swift in Sources */,
2DDEFBC92B59B39900885675 /* AlgorandExternalLinkProvider.swift in Sources */,
DAB87CB1297ADCDC00FF30EB /* GetBlockBlockBookConfig.swift in Sources */,
EF0DA78D285246A90081092A /* DashWalletManager.swift in Sources */,
0AEFB5392B7656EC007519F9 /* NodeRequest.swift in Sources */,
EF3B19642AA85F280084AA1C /* ChiaExternalLinkProvider.swift in Sources */,
EF32FEBF2A306E51002ED43F /* AddressService.swift in Sources */,
Expand Down Expand Up @@ -4876,7 +4865,6 @@
B62344992AF26C0F00B82306 /* BigUInt+.swift in Sources */,
DC5E652B2B1650F400E81AA5 /* OP_NOTIF.swift in Sources */,
DA1BA9A72C454AFB006F6839 /* MantleWalletManager.swift in Sources */,
5D54FE1E23E4313A009FAC2F /* LitecoinWalletManager.swift in Sources */,
2DDE5BA629C4F8D200A5B708 /* CardanoWalletAssembly.swift in Sources */,
B6F89E942BB20C600009A453 /* SubscanAPITarget.swift in Sources */,
0A158C022B74E44D0004DC23 /* BlockBookResponses.swift in Sources */,
Expand Down Expand Up @@ -5743,7 +5731,7 @@
/* End XCConfigurationList section */

/* Begin XCRemoteSwiftPackageReference section */
0A7973FC2C5B9F7500CE8182 /* XCRemoteSwiftPackageReference "IcpKit" */ = {
0A7973FC2C5B9F7500CE8182 /* XCRemoteSwiftPackageReference "IcpKit" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/tangem/IcpKit";
requirement = {
Expand Down Expand Up @@ -5818,7 +5806,7 @@
/* End XCRemoteSwiftPackageReference section */

/* Begin XCSwiftPackageProductDependency section */
0A7973FD2C5B9F7500CE8182 /* IcpKit */ = {
0A7973FD2C5B9F7500CE8182 /* IcpKit */ = {
isa = XCSwiftPackageProductDependency;
package = 0A7973FC2C5B9F7500CE8182 /* XCRemoteSwiftPackageReference "IcpKit" */;
productName = IcpKit;
Expand Down
7 changes: 6 additions & 1 deletion BlockchainSdk/Blockchains/Bitcoin/BitcoinWalletManager.swift
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,11 @@ class BitcoinWalletManager: BaseManager, WalletManager, DustRestrictable {
var txBuilder: BitcoinTransactionBuilder!
var networkService: BitcoinNetworkProvider!

var minimalFeePerByte: Decimal { 10 }
/*
The current default minimum relay fee is 1 sat/vbyte.
https://learnmeabitcoin.com/technical/transaction/fee/#:~:text=The%20current%20default%20minimum%20relay,mined%20in%20to%20the%20blockchain.
*/
var minimalFeePerByte: Decimal { 1 }
var minimalFee: Decimal { 0.00001 }
var dustValue: Amount {
Amount(with: wallet.blockchain, value: minimalFee)
Expand Down Expand Up @@ -130,6 +134,7 @@ class BitcoinWalletManager: BaseManager, WalletManager, DustRestrictable {
var normalFee = txBuilder.bitcoinManager.fee(for: amount.value, address: destination, feeRate: normalRate, senderPay: false, changeScript: nil, sequence: .max)
var maxFee = txBuilder.bitcoinManager.fee(for: amount.value, address: destination, feeRate: maxRate, senderPay: false, changeScript: nil, sequence: .max)


let minimalFeeRate = (((minimalFee * Decimal(minRate)) / minFee).rounded(scale: 0, roundingMode: .up) as NSDecimalNumber).intValue
let minimalFee = txBuilder.bitcoinManager.fee(for: amount.value, address: destination, feeRate: minimalFeeRate, senderPay: false, changeScript: nil, sequence: .max)
if minFee < minimalFee {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import BitcoinCore
struct BitcoinCashWalletAssembly: WalletManagerAssembly {

func make(with input: WalletManagerAssemblyInput) throws -> WalletManager {
return try BitcoinCashWalletManager(wallet: input.wallet).then {
return try BitcoinWalletManager(wallet: input.wallet).then {
let compressed = try Secp256k1Key(with: input.wallet.publicKey.blockchainKey).compress()
let bitcoinManager = BitcoinManager(networkParams: input.blockchain.isTestnet ? BitcoinCashTestNetworkParams() : BitcoinCashNetworkParams(),
walletPublicKey: compressed,
Expand Down

This file was deleted.

2 changes: 1 addition & 1 deletion BlockchainSdk/Blockchains/Dash/DashWalletAssembly.swift
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import BitcoinCore
struct DashWalletAssembly: WalletManagerAssembly {

func make(with input: WalletManagerAssemblyInput) throws -> WalletManager {
try DashWalletManager(wallet: input.wallet).then {
try BitcoinWalletManager(wallet: input.wallet).then {
let compressed = try Secp256k1Key(with: input.wallet.publicKey.blockchainKey).compress()

let bitcoinManager = BitcoinManager(
Expand Down
13 changes: 0 additions & 13 deletions BlockchainSdk/Blockchains/Dash/DashWalletManager.swift

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import BitcoinCore
struct LitecoinWalletAssembly: WalletManagerAssembly {

func make(with input: WalletManagerAssemblyInput) throws -> WalletManager {
return try LitecoinWalletManager(wallet: input.wallet).then {
return try BitcoinWalletManager(wallet: input.wallet).then {
let bitcoinManager = BitcoinManager(networkParams: LitecoinNetworkParams(),
walletPublicKey: input.wallet.publicKey.blockchainKey,
compressedWalletPublicKey: try Secp256k1Key(with: input.wallet.publicKey.blockchainKey).compress(),
Expand Down
14 changes: 0 additions & 14 deletions BlockchainSdk/Blockchains/Litecoin/LitecoinWalletManager.swift

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,6 @@ import Foundation
/// Source: https://github.com/raven-community/ravencore-lib/blob/master/docs/transaction.md

class RavencoinWalletManager: BitcoinWalletManager {
override var minimalFeePerByte: Decimal { 1 }

override var dustValue: Amount {
let value = 642 / wallet.blockchain.decimalValue
return Amount(with: wallet.blockchain, value: value)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,9 +82,9 @@ class BlockcypherNetworkProvider: BitcoinNetworkProvider {
}

let kb = Decimal(1024)
let min = (Decimal(minKb)/kb).rounded(roundingMode: .down)
let normal = (Decimal(normalKb)/kb).rounded(roundingMode: .down)
let max = (Decimal(maxKb)/kb).rounded(roundingMode: .down)
let min = (Decimal(minKb)/kb).rounded(roundingMode: .up)
let normal = (Decimal(normalKb)/kb).rounded(roundingMode: .up)
let max = (Decimal(maxKb)/kb).rounded(roundingMode: .up)
let fee = BitcoinFee(minimalSatoshiPerByte: min, normalSatoshiPerByte: normal, prioritySatoshiPerByte: max)
return fee
}
Expand Down

0 comments on commit cf7f8db

Please sign in to comment.