Skip to content

Commit

Permalink
Run Swift reformat
Browse files Browse the repository at this point in the history
  • Loading branch information
esen committed Dec 6, 2023
1 parent db9c6bf commit 3070be4
Show file tree
Hide file tree
Showing 22 changed files with 223 additions and 250 deletions.
1 change: 1 addition & 0 deletions .swift-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
5.8
3 changes: 2 additions & 1 deletion Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@ let package = Package(
products: [
.library(
name: "LitecoinKit",
targets: ["LitecoinKit"]),
targets: ["LitecoinKit"]
),
],
dependencies: [
.package(url: "https://github.com/horizontalsystems/BitcoinCore.Swift.git", .upToNextMajor(from: "2.2.0")),
Expand Down
71 changes: 35 additions & 36 deletions Sources/LitecoinKit/Classes/Core/Kit.swift
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,10 @@ public class Kit: AbstractKit {

var network: INetwork {
switch self {
case .mainNet:
return MainNet()
case .testNet:
return TestNet()
case .mainNet:
return MainNet()
case .testNet:
return TestNet()
}
}
}
Expand All @@ -53,22 +53,22 @@ public class Kit: AbstractKit {

let apiTransactionProvider: IApiTransactionProvider
switch networkType {
case .mainNet:
let apiTransactionProviderUrl = "https://ltc.blocksdecoded.com/api"

if case .blockchair(let key) = syncMode {
let blockchairApi = BlockchairApi(secretKey: key, chainId: network.blockchairChainId, logger: logger)
let blockchairBlockHashFetcher = BlockchairBlockHashFetcher(blockchairApi: blockchairApi)
let blockchairProvider = BlockchairTransactionProvider(blockchairApi: blockchairApi, blockHashFetcher: blockchairBlockHashFetcher)
let bCoinApiProvider = BCoinApi(url: apiTransactionProviderUrl, logger: logger)

apiTransactionProvider = BiApiBlockProvider(restoreProvider: bCoinApiProvider, syncProvider: blockchairProvider, apiSyncStateManager: apiSyncStateManager)
} else {
apiTransactionProvider = BCoinApi(url: apiTransactionProviderUrl, logger: logger)
}
case .mainNet:
let apiTransactionProviderUrl = "https://ltc.blocksdecoded.com/api"

if case let .blockchair(key) = syncMode {
let blockchairApi = BlockchairApi(secretKey: key, chainId: network.blockchairChainId, logger: logger)
let blockchairBlockHashFetcher = BlockchairBlockHashFetcher(blockchairApi: blockchairApi)
let blockchairProvider = BlockchairTransactionProvider(blockchairApi: blockchairApi, blockHashFetcher: blockchairBlockHashFetcher)
let bCoinApiProvider = BCoinApi(url: apiTransactionProviderUrl, logger: logger)

apiTransactionProvider = BiApiBlockProvider(restoreProvider: bCoinApiProvider, syncProvider: blockchairProvider, apiSyncStateManager: apiSyncStateManager)
} else {
apiTransactionProvider = BCoinApi(url: apiTransactionProviderUrl, logger: logger)
}

case .testNet:
apiTransactionProvider = BCoinApi(url: "", logger: logger)
case .testNet:
apiTransactionProvider = BCoinApi(url: "", logger: logger)
}

let paymentAddressParser = PaymentAddressParser(validScheme: "litecoin", removeScheme: true)
Expand All @@ -90,12 +90,12 @@ public class Kit: AbstractKit {
)

switch networkType {
case .mainNet:
blockValidatorChain.add(blockValidator: difficultyAdjustmentValidator)
blockValidatorChain.add(blockValidator: BitsValidator())
case .testNet:
blockValidatorChain.add(blockValidator: difficultyAdjustmentValidator)
blockValidatorChain.add(blockValidator: LegacyTestNetDifficultyValidator(blockHelper: blockHelper, heightInterval: Kit.heightInterval, targetSpacing: Kit.targetSpacing, maxTargetBits: Kit.maxTargetBits))
case .mainNet:
blockValidatorChain.add(blockValidator: difficultyAdjustmentValidator)
blockValidatorChain.add(blockValidator: BitsValidator())
case .testNet:
blockValidatorChain.add(blockValidator: difficultyAdjustmentValidator)
blockValidatorChain.add(blockValidator: LegacyTestNetDifficultyValidator(blockHelper: blockHelper, heightInterval: Kit.heightInterval, targetSpacing: Kit.targetSpacing, maxTargetBits: Kit.maxTargetBits))
}

blockValidatorSet.add(blockValidator: blockValidatorChain)
Expand All @@ -118,18 +118,18 @@ public class Kit: AbstractKit {
.build()

super.init(bitcoinCore: bitcoinCore, network: network)

let base58AddressConverter = Base58AddressConverter(addressVersion: network.pubKeyHash, addressScriptVersion: network.scriptHash)

switch purpose {
case .bip44:
bitcoinCore.add(restoreKeyConverter: Bip44RestoreKeyConverter(addressConverter: base58AddressConverter))
case .bip49:
bitcoinCore.add(restoreKeyConverter: Bip49RestoreKeyConverter(addressConverter: base58AddressConverter))
case .bip84:
bitcoinCore.add(restoreKeyConverter: KeyHashRestoreKeyConverter(scriptType: .p2wpkh))
case .bip86:
bitcoinCore.add(restoreKeyConverter: KeyHashRestoreKeyConverter(scriptType: .p2tr))
case .bip44:
bitcoinCore.add(restoreKeyConverter: Bip44RestoreKeyConverter(addressConverter: base58AddressConverter))
case .bip49:
bitcoinCore.add(restoreKeyConverter: Bip49RestoreKeyConverter(addressConverter: base58AddressConverter))
case .bip84:
bitcoinCore.add(restoreKeyConverter: KeyHashRestoreKeyConverter(scriptType: .p2wpkh))
case .bip86:
bitcoinCore.add(restoreKeyConverter: KeyHashRestoreKeyConverter(scriptType: .p2tr))
}
}

Expand Down Expand Up @@ -157,7 +157,7 @@ public class Kit: AbstractKit {

public convenience init(extendedKey: HDExtendedKey, purpose: Purpose, walletId: String, syncMode: BitcoinCore.SyncMode = .api, hasher: ((Data) -> Data)?, networkType: NetworkType = .mainNet, confirmationsThreshold: Int = 6, logger: Logger?) throws {
let network = networkType.network

try self.init(extendedKey: extendedKey, watchAddressPublicKey: nil,
purpose: purpose,
walletId: walletId,
Expand Down Expand Up @@ -194,7 +194,6 @@ public class Kit: AbstractKit {
confirmationsThreshold: confirmationsThreshold,
logger: logger)


bitcoinCore.prepend(addressConverter: bech32AddressConverter)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@ class LegacyDifficultyAdjustmentValidator: IBlockChainedValidator {
}

var timespan = previousBlock.timestamp - beforeFirstBlock.timestamp
if (timespan < targetTimespan / 4) {
if timespan < targetTimespan / 4 {
timespan = targetTimespan / 4
} else if (timespan > targetTimespan * 4) {
} else if timespan > targetTimespan * 4 {
timespan = targetTimespan * 4
}

Expand All @@ -45,8 +45,7 @@ class LegacyDifficultyAdjustmentValidator: IBlockChainedValidator {
}
}

func isBlockValidatable(block: Block, previousBlock: Block) -> Bool {
func isBlockValidatable(block: Block, previousBlock _: Block) -> Bool {
block.height % heightInterval == 0
}

}
9 changes: 4 additions & 5 deletions Sources/LitecoinKit/Classes/Core/ProofOfWorkValidator.swift
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import Foundation
import BitcoinCore
import BigInt
import BitcoinCore
import Foundation

class ProofOfWorkValidator: IBlockValidator {
var hasher: (Data) -> Data
Expand All @@ -24,13 +24,12 @@ class ProofOfWorkValidator: IBlockValidator {
return data
}

func validate(block: Block, previousBlock: Block) throws {
func validate(block: Block, previousBlock _: Block) throws {
let header = serializeHeader(block: block)
let hash = hasher(header)

guard (difficultyEncoder.compactFrom(hash: hash) < block.bits) else {
guard difficultyEncoder.compactFrom(hash: hash) < block.bits else {
throw BitcoinCoreErrors.BlockValidation.invalidProofOfWork
}
}

}
11 changes: 5 additions & 6 deletions Sources/LitecoinKit/Classes/Network/MainNet.swift
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@ public class MainNet: INetwork {
public let bundleName = "Litecoin"

public let pubKeyHash: UInt8 = 0x30
public let privateKey: UInt8 = 0xb0
public let privateKey: UInt8 = 0xB0
public let scriptHash: UInt8 = 0x32
public let bech32PrefixPattern: String = "ltc"
public let xPubKey: UInt32 = 0x0488b21e
public let xPrivKey: UInt32 = 0x0488ade4
public let magic: UInt32 = 0xfbc0b6db
public let xPubKey: UInt32 = 0x0488_B21E
public let xPrivKey: UInt32 = 0x0488_ADE4
public let magic: UInt32 = 0xFBC0_B6DB
public let port = 9333
public let coinType: UInt32 = 2
public let sigHash: SigHashType = .bitcoinAll
Expand All @@ -20,11 +20,10 @@ public class MainNet: INetwork {
"x5.dnsseed.thrasher.io",
"x5.dnsseed.litecointools.com",
"x5.dnsseed.litecoinpool.org",
"seed-a.litecoin.loshan.co.uk"
"seed-a.litecoin.loshan.co.uk",
]

public let dustRelayTxFee = 3000

public init() {}

}
12 changes: 6 additions & 6 deletions Sources/LitecoinKit/Classes/Network/TestNet.swift
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@ import BitcoinCore
class TestNet: INetwork {
let bundleName = "Litecoin"

let pubKeyHash: UInt8 = 0x6f
let privateKey: UInt8 = 0xef
let scriptHash: UInt8 = 0x3a
let pubKeyHash: UInt8 = 0x6F
let privateKey: UInt8 = 0xEF
let scriptHash: UInt8 = 0x3A
let bech32PrefixPattern: String = "tltc"
let xPubKey: UInt32 = 0x043587cf
let xPrivKey: UInt32 = 0x04358394
let magic: UInt32 = 0xfdd2c8f1
let xPubKey: UInt32 = 0x0435_87CF
let xPrivKey: UInt32 = 0x0435_8394
let magic: UInt32 = 0xFDD2_C8F1
let port = 19335
let coinType: UInt32 = 1
let sigHash: SigHashType = .bitcoinAll
Expand Down
55 changes: 26 additions & 29 deletions iOS Example/Sources/Adapters/BaseAdapter.swift
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import Foundation
import Combine
import BitcoinCore
import Combine
import Foundation

class BaseAdapter {
var feeRate: Int { 3 }
Expand Down Expand Up @@ -28,8 +28,8 @@ class BaseAdapter {

for input in transaction.inputs {
from.append(TransactionInputOutput(
mine: input.mine, address: input.address, value: input.value,
changeOutput: false, pluginId: nil, pluginData: nil
mine: input.mine, address: input.address, value: input.value,
changeOutput: false, pluginId: nil, pluginData: nil
))
}

Expand All @@ -39,25 +39,25 @@ class BaseAdapter {
}

to.append(TransactionInputOutput(
mine: output.mine, address: output.address, value: output.value,
changeOutput: output.changeOutput, pluginId: output.pluginId, pluginData: output.pluginData
mine: output.mine, address: output.address, value: output.value,
changeOutput: output.changeOutput, pluginId: output.pluginId, pluginData: output.pluginData
))
}

return TransactionRecord(
uid: transaction.uid,
transactionHash: transaction.transactionHash,
transactionIndex: transaction.transactionIndex,
interTransactionIndex: 0,
status: TransactionStatus(rawValue: transaction.status.rawValue) ?? TransactionStatus.new,
type: transaction.type,
blockHeight: transaction.blockHeight,
amount: Decimal(transaction.amount) / coinRate,
fee: transaction.fee.map { Decimal($0) / coinRate },
date: Date(timeIntervalSince1970: Double(transaction.timestamp)),
from: from,
to: to,
conflictingHash: transaction.conflictingHash
uid: transaction.uid,
transactionHash: transaction.transactionHash,
transactionIndex: transaction.transactionIndex,
interTransactionIndex: 0,
status: TransactionStatus(rawValue: transaction.status.rawValue) ?? TransactionStatus.new,
type: transaction.type,
blockHeight: transaction.blockHeight,
amount: Decimal(transaction.amount) / coinRate,
fee: transaction.fee.map { Decimal($0) / coinRate },
date: Date(timeIntervalSince1970: Double(transaction.timestamp)),
from: from,
to: to,
conflictingHash: transaction.conflictingHash
)
}

Expand All @@ -70,25 +70,23 @@ class BaseAdapter {

func transactions(fromUid: String?, type: TransactionFilterType? = nil, limit: Int) -> [TransactionRecord] {
abstractKit.transactions(fromUid: fromUid, type: type, limit: limit)
.compactMap {
transactionRecord(fromTransaction: $0)
}
.compactMap {
transactionRecord(fromTransaction: $0)
}
}

}

extension BaseAdapter {

var lastBlockPublisher: AnyPublisher<Void, Never> {
lastBlockSubject
.throttle(for: .milliseconds(200), scheduler: RunLoop.current, latest: true)
.eraseToAnyPublisher()
.throttle(for: .milliseconds(200), scheduler: RunLoop.current, latest: true)
.eraseToAnyPublisher()
}

var syncStatePublisher: AnyPublisher<Void, Never> {
syncStateSubject
.throttle(for: .milliseconds(200), scheduler: RunLoop.current, latest: true)
.eraseToAnyPublisher()
.throttle(for: .milliseconds(200), scheduler: RunLoop.current, latest: true)
.eraseToAnyPublisher()
}

var balancePublisher: AnyPublisher<Void, Never> {
Expand Down Expand Up @@ -178,7 +176,6 @@ extension BaseAdapter {
func rawTransaction(transactionHash: String) -> String? {
abstractKit.rawTransaction(transactionHash: transactionHash)
}

}

enum SendError: Error {
Expand Down
16 changes: 7 additions & 9 deletions iOS Example/Sources/Adapters/LitecoinAdapter.swift
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import LitecoinKit
import BitcoinCore
import HsToolKit
import HdWalletKit
import HsToolKit
import LitecoinKit

class LitecoinAdapter: BaseAdapter {
let litecoinKit: Kit
Expand All @@ -24,25 +24,23 @@ class LitecoinAdapter: BaseAdapter {
}

extension LitecoinAdapter: BitcoinCoreDelegate {

func transactionsUpdated(inserted: [TransactionInfo], updated: [TransactionInfo]) {
func transactionsUpdated(inserted _: [TransactionInfo], updated _: [TransactionInfo]) {
transactionsSubject.send()
}

func transactionsDeleted(hashes: [String]) {
func transactionsDeleted(hashes _: [String]) {
transactionsSubject.send()
}

func balanceUpdated(balance: BalanceInfo) {
func balanceUpdated(balance _: BalanceInfo) {
balanceSubject.send()
}

func lastBlockInfoUpdated(lastBlockInfo: BlockInfo) {
func lastBlockInfoUpdated(lastBlockInfo _: BlockInfo) {
lastBlockSubject.send()
}

public func kitStateUpdated(state: BitcoinCore.KitState) {
public func kitStateUpdated(state _: BitcoinCore.KitState) {
syncStateSubject.send()
}

}
Loading

0 comments on commit 3070be4

Please sign in to comment.