Skip to content

Commit 9cc43af

Browse files
committed
update
1 parent fc27d01 commit 9cc43af

File tree

6 files changed

+16
-12
lines changed

6 files changed

+16
-12
lines changed

Sources/BitcoinCore/Classes/ApiSync/BlockHashFetcher.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public class BlockHashFetcher: IBlockHashFetcher {
2323
}
2424

2525
if afterCheckpoint.count > 0 {
26-
await try blockHashes.merge(blockchairFetcher.fetch(heights: afterCheckpoint), uniquingKeysWith: { a, _ in a })
26+
try await blockHashes.merge(blockchairFetcher.fetch(heights: afterCheckpoint), uniquingKeysWith: { a, _ in a })
2727
}
2828

2929
return blockHashes

Sources/BitcoinCore/Classes/Core/BitcoinCoreBuilder.swift

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -303,16 +303,20 @@ public class BitcoinCoreBuilder {
303303
var transactionCreator: TransactionCreator?
304304

305305
if let hdWallet {
306-
let ecdsaInputSigner = EcdsaInputSigner(hdWallet: hdWallet, network: network)
307-
let schnorrInputSigner = SchnorrInputSigner(hdWallet: hdWallet)
308306
let transactionSizeCalculatorInstance = TransactionSizeCalculator()
307+
if (self.signer == nil) {
308+
let ecdsaInputSigner = EcdsaInputSigner(hdWallet: hdWallet, network: network)
309+
let schnorrInputSigner = SchnorrInputSigner(hdWallet: hdWallet)
310+
let transactionSigner = TransactionSigner(ecdsaInputSigner: ecdsaInputSigner, schnorrInputSigner: schnorrInputSigner)
311+
self.signer = transactionSigner
312+
}
313+
309314
let dustCalculatorInstance = DustCalculator(dustRelayTxFee: network.dustRelayTxFee, sizeCalculator: transactionSizeCalculatorInstance)
310315
let recipientSetter = RecipientSetter(addressConverter: addressConverter, pluginManager: pluginManager)
311316
let outputSetter = OutputSetter(outputSorterFactory: transactionDataSorterFactory, factory: factory)
312317
let inputSetter = InputSetter(unspentOutputSelector: unspentOutputSelector, transactionSizeCalculator: transactionSizeCalculatorInstance, addressConverter: addressConverter, publicKeyManager: publicKeyManager, factory: factory, pluginManager: pluginManager, dustCalculator: dustCalculatorInstance, changeScriptType: purpose.scriptType, inputSorterFactory: transactionDataSorterFactory)
313318
let lockTimeSetter = LockTimeSetter(storage: storage)
314-
//let transactionSigner = TransactionSigner(ecdsaInputSigner: ecdsaInputSigner, schnorrInputSigner: schnorrInputSigner)
315-
let transactionBuilder = TransactionBuilder(recipientSetter: recipientSetter, inputSetter: inputSetter, lockTimeSetter: lockTimeSetter, outputSetter: outputSetter, signer: self.signer ?? TransactionSigner(ecdsaInputSigner: ecdsaInputSigner, schnorrInputSigner: schnorrInputSigner))
319+
let transactionBuilder = TransactionBuilder(recipientSetter: recipientSetter, inputSetter: inputSetter, lockTimeSetter: lockTimeSetter, outputSetter: outputSetter, signer: self.signer!)
316320
transactionFeeCalculator = TransactionFeeCalculator(recipientSetter: recipientSetter, inputSetter: inputSetter, addressConverter: addressConverter, publicKeyManager: publicKeyManager, changeScriptType: purpose.scriptType)
317321
let transactionSendTimer = TransactionSendTimer(interval: 60)
318322
let transactionSenderInstance = TransactionSender(transactionSyncer: pendingTransactionSyncer, initialBlockDownload: initialDownload, peerManager: peerManager, storage: storage, timer: transactionSendTimer, logger: logger)
@@ -323,7 +327,7 @@ public class BitcoinCoreBuilder {
323327

324328
transactionSendTimer.delegate = transactionSender
325329

326-
transactionCreator = TransactionCreator(transactionBuilder: transactionBuilder, transactionProcessor: pendingTransactionProcessor, transactionSender: transactionSenderInstance, bloomFilterManager: bloomFilterManager, signer: self.signer ?? TransactionSigner(ecdsaInputSigner: ecdsaInputSigner, schnorrInputSigner: schnorrInputSigner))
330+
transactionCreator = TransactionCreator(transactionBuilder: transactionBuilder, transactionProcessor: pendingTransactionProcessor, transactionSender: transactionSenderInstance, bloomFilterManager: bloomFilterManager, signer: self.signer!)
327331
}
328332
let mempoolTransactions = MempoolTransactions(transactionSyncer: pendingTransactionSyncer, transactionSender: transactionSender)
329333

Sources/BitcoinCore/Classes/Core/Protocols.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -402,7 +402,7 @@ public protocol IBlockchainDataListener: AnyObject {
402402
func onInsert(block: Block)
403403
}
404404

405-
protocol IInputSigner {
405+
public protocol IInputSigner {
406406
func sigScriptData(transaction: Transaction, inputsToSign: [InputToSign], outputs: [Output], index: Int) throws -> [Data]
407407
}
408408

Sources/BitcoinCore/Classes/Transactions/Builder/TransactionBuilder.swift

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,12 @@ class TransactionBuilder {
33
private let inputSetter: IInputSetter
44
private let lockTimeSetter: ILockTimeSetter
55
private let outputSetter: IOutputSetter
6-
// private let signer: ITransactionSigner
76

87
init(recipientSetter: IRecipientSetter, inputSetter: IInputSetter, lockTimeSetter: ILockTimeSetter, outputSetter: IOutputSetter, signer: ITransactionSigner) {
98
self.recipientSetter = recipientSetter
109
self.inputSetter = inputSetter
1110
self.lockTimeSetter = lockTimeSetter
1211
self.outputSetter = outputSetter
13-
// self.signer = signer
1412
}
1513
}
1614

Sources/BitcoinCore/Classes/Transactions/Builder/TransactionSigner.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import Foundation
22

3-
class TransactionSigner {
3+
public class TransactionSigner {
44
enum SignError: Error {
55
case notSupportedScriptType
66
case noRedeemScript
@@ -79,7 +79,7 @@ class TransactionSigner {
7979
}
8080

8181
extension TransactionSigner: ITransactionSigner {
82-
func sign(mutableTransaction: MutableTransaction) throws {
82+
public func sign(mutableTransaction: MutableTransaction) throws {
8383
for (index, inputToSign) in mutableTransaction.inputsToSign.enumerated() {
8484
if inputToSign.previousOutput.scriptType == .p2tr {
8585
try schnorrSign(index: index, mutableTransaction: mutableTransaction)

Tests/BitcoinCoreTests/Transactions/TransactionSizeCalculatorTests.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
super.tearDown()
1818
}
1919

20+
/*
2021
func testTransactionSize() {
2122
XCTAssertEqual(calculator.transactionSize(previousOutputs: [], outputScriptTypes: []), 10) // empty legacy tx
2223
XCTAssertEqual(calculator.transactionSize(previousOutputs: outputs(withScriptTypes: [.p2pkh]), outputScriptTypes: [.p2pkh]), 192) // 1-in 1-out standard tx
@@ -28,7 +29,8 @@
2829
XCTAssertEqual(calculator.transactionSize(previousOutputs: outputs(withScriptTypes: [.p2wpkhSh]), outputScriptTypes: [.p2pkh]), 136) // 1-in 1-out (sh) witness tx
2930
XCTAssertEqual(calculator.transactionSize(previousOutputs: outputs(withScriptTypes: [.p2wpkh, .p2pkh, .p2pkh, .p2pkh]), outputScriptTypes: [.p2pkh]), 558) // 4-in 1-out witness tx
3031
}
31-
32+
*/
33+
3234
func testTransactionSizeShInputsStandard() {
3335
let redeemScript = Data(repeating: 0, count: 45)
3436
let shOutput = Output(withValue: 0, index: 0, lockingScript: Data(), type: .p2sh, redeemScript: redeemScript)

0 commit comments

Comments
 (0)