Skip to content

Commit

Permalink
update to 2.3.0
Browse files Browse the repository at this point in the history
  • Loading branch information
JiangSonglun committed Mar 25, 2024
1 parent 3070be4 commit 2a91a64
Show file tree
Hide file tree
Showing 13 changed files with 104 additions and 112 deletions.
10 changes: 5 additions & 5 deletions Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -3,24 +3,24 @@
import PackageDescription

let package = Package(
name: "LitecoinKit",
name: "DogecoinKit",
platforms: [
.iOS(.v13),
],
products: [
.library(
name: "LitecoinKit",
targets: ["LitecoinKit"]
name: "DogecoinKit",
targets: ["DogecoinKit"]
),
],
dependencies: [
.package(url: "https://github.com/horizontalsystems/BitcoinCore.Swift.git", .upToNextMajor(from: "2.2.0")),
.package(url: "https://github.com/SAFE-anwang/BitcoinCore.Swift.git", .upToNextMajor(from: "2.2.3")),
.package(url: "https://github.com/greymass/swift-scrypt.git", from: "1.0.0"),
.package(url: "https://github.com/horizontalsystems/HsToolKit.Swift.git", .upToNextMajor(from: "2.0.5")),
],
targets: [
.target(
name: "LitecoinKit",
name: "DogecoinKit",
dependencies: [
.product(name: "Scrypt", package: "swift-scrypt"),
.product(name: "BitcoinCore", package: "BitcoinCore.Swift"),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ public class Kit: AbstractKit {
return Data(bytes ?? [])
}

private static let name = "LitecoinKit"
private static let name = "DogecoinKit"

public enum NetworkType: String, CaseIterable {
case mainNet, testNet
Expand Down Expand Up @@ -71,32 +71,32 @@ public class Kit: AbstractKit {
apiTransactionProvider = BCoinApi(url: "", logger: logger)
}

let paymentAddressParser = PaymentAddressParser(validScheme: "litecoin", removeScheme: true)
let paymentAddressParser = PaymentAddressParser(validScheme: "dogecoin", removeScheme: true)
let difficultyEncoder = DifficultyEncoder()

let blockValidatorSet = BlockValidatorSet()
let hasher = hasher ?? Self.defaultHasher
blockValidatorSet.add(blockValidator: ProofOfWorkValidator(hasher: hasher, difficultyEncoder: difficultyEncoder))

let blockValidatorChain = BlockValidatorChain()
let blockHelper = BlockValidatorHelper(storage: storage)

let difficultyAdjustmentValidator = LegacyDifficultyAdjustmentValidator(
encoder: difficultyEncoder,
blockValidatorHelper: blockHelper,
heightInterval: Kit.heightInterval,
targetTimespan: Kit.heightInterval * Kit.targetSpacing,
maxTargetBits: Kit.maxTargetBits
)

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))
}
// let blockHelper = BlockValidatorHelper(storage: storage)

// let difficultyAdjustmentValidator = LegacyDifficultyAdjustmentValidator(
// encoder: difficultyEncoder,
// blockValidatorHelper: blockHelper,
// heightInterval: Kit.heightInterval,
// targetTimespan: Kit.heightInterval * Kit.targetSpacing,
// maxTargetBits: Kit.maxTargetBits
// )
//
// 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))
// }

blockValidatorSet.add(blockValidator: blockValidatorChain)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,9 @@ class ProofOfWorkValidator: IBlockValidator {
let header = serializeHeader(block: block)
let hash = hasher(header)

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

}
30 changes: 30 additions & 0 deletions Sources/DogecoinKit/Classes/Network/MainNet.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import BitcoinCore

public class MainNet: INetwork {

public let bundleName = "Dogecoin"

public let pubKeyHash: UInt8 = 0x1e
public let privateKey: UInt8 = 0xb0
public let scriptHash: UInt8 = 0x16
public let bech32PrefixPattern: String = "doge"
public let xPubKey: UInt32 = 0xfdcafa02// 0x02facafd
public let xPrivKey: UInt32 = 0x98c3fa02// 0x02fac398
public let magic: UInt32 = 0xc0c0c0c0
public let port = 22556
public let coinType: UInt32 = 3
public let sigHash: SigHashType = .bitcoinAll
public var syncableFromApi: Bool = false
public var blockchairChainId: String = "dogecoin"

public let dnsSeeds = [
"seed.multidoge.org",
"seed2.multidoge.org",
"seed.doger.dogecoin.com"
]

public let dustRelayTxFee = 3000

public init() {}

}
24 changes: 24 additions & 0 deletions Sources/DogecoinKit/Classes/Network/TestNet.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import BitcoinCore

class TestNet: INetwork {
let bundleName = "Dogecoin"

let pubKeyHash: UInt8 = 0x6f
let privateKey: UInt8 = 0xef
let scriptHash: UInt8 = 0x3a
let bech32PrefixPattern: String = "tdge"
let xPubKey: UInt32 = 0xcf873504
let xPrivKey: UInt32 = 0x94833504
let magic: UInt32 = 0xdcb7c1fc
let port = 44556
let coinType: UInt32 = 1
let sigHash: SigHashType = .bitcoinAll
var syncableFromApi: Bool = false
public var blockchairChainId: String = ""

let dnsSeeds = [
"testseed.jrn.me.uk",
]

let dustRelayTxFee = 3000 // https://github.com/bitcoin/bitcoin/blob/c536dfbcb00fb15963bf5d507b7017c241718bf6/src/policy/policy.h#L50
}
29 changes: 0 additions & 29 deletions Sources/LitecoinKit/Classes/Network/MainNet.swift

This file was deleted.

26 changes: 0 additions & 26 deletions Sources/LitecoinKit/Classes/Network/TestNet.swift

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,29 +1,29 @@
import BitcoinCore
import HdWalletKit
import HsToolKit
import LitecoinKit
import DogecoinKit

class LitecoinAdapter: BaseAdapter {
let litecoinKit: Kit
class DogecoinAdapter: BaseAdapter {
let dogecoinKit: Kit

init(words: [String], purpose: Purpose, testMode: Bool, syncMode: BitcoinCore.SyncMode, logger: Logger) {
let networkType: Kit.NetworkType = testMode ? .testNet : .mainNet
guard let seed = Mnemonic.seed(mnemonic: words) else {
fatalError("Can't Create Seed")
}

litecoinKit = try! Kit(seed: seed, purpose: purpose, walletId: "walletId", syncMode: syncMode, hasher: nil, networkType: networkType, confirmationsThreshold: 1, logger: logger.scoped(with: "LitecoinKit"))
dogecoinKit = try! Kit(seed: seed, purpose: purpose, walletId: "walletId", syncMode: syncMode, hasher: nil, networkType: networkType, confirmationsThreshold: 1, logger: logger.scoped(with: "DogecoinKit"))

super.init(name: "Litecoin", coinCode: "LTC", abstractKit: litecoinKit)
litecoinKit.delegate = self
super.init(name: "Dogecoin", coinCode: "DOGE", abstractKit: dogecoinKit)
dogecoinKit.delegate = self
}

class func clear() {
try? Kit.clear()
}
}

extension LitecoinAdapter: BitcoinCoreDelegate {
extension DogecoinAdapter: BitcoinCoreDelegate {
func transactionsUpdated(inserted _: [TransactionInfo], updated _: [TransactionInfo]) {
transactionsSubject.send()
}
Expand Down
2 changes: 1 addition & 1 deletion iOS Example/Sources/Controllers/WordsController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ class WordsController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()

title = "LitecoinKit Demo"
title = "DogecoinKit Demo"

textView?.textContainerInset = UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10)
textView?.layer.cornerRadius = 8
Expand Down
4 changes: 2 additions & 2 deletions iOS Example/Sources/Core/Manager.swift
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ class Manager {
let logger = Logger(minLogLevel: Configuration.shared.minLogLevel)

adapters = [
LitecoinAdapter(words: words, purpose: .bip44, testMode: configuration.testNet, syncMode: syncMode, logger: logger),
DogecoinAdapter(words: words, purpose: .bip44, testMode: configuration.testNet, syncMode: syncMode, logger: logger),
]

adapterSubject.send()
Expand Down Expand Up @@ -78,6 +78,6 @@ class Manager {
}

private func clearKits() {
LitecoinAdapter.clear()
DogecoinAdapter.clear()
}
}
24 changes: 8 additions & 16 deletions iOS Example/iOS Example.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,13 @@
archiveVersion = 1;
classes = {
};
objectVersion = 52;
objectVersion = 54;
objects = {

/* Begin PBXBuildFile section */
2FA5D47CFAEB8DB143F27645 /* Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2FA5DACF4DE83AC5FE512D28 /* Extensions.swift */; };
607FACD61AFB9204008FA782 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 607FACD51AFB9204008FA782 /* AppDelegate.swift */; };
6BC11A5D28EEC7D30001FDF1 /* LitecoinAdapter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6BC11A5C28EEC7D30001FDF1 /* LitecoinAdapter.swift */; };
6BC11A6128EECBE90001FDF1 /* LitecoinKit in Frameworks */ = {isa = PBXBuildFile; productRef = 6BC11A6028EECBE90001FDF1 /* LitecoinKit */; };
D36AAA9823A2125E0065B32B /* BaseAdapter.swift in Sources */ = {isa = PBXBuildFile; fileRef = D36AAA7F23A2125D0065B32B /* BaseAdapter.swift */; };
D36AAA9923A2125E0065B32B /* SendController.xib in Resources */ = {isa = PBXBuildFile; fileRef = D36AAA8123A2125D0065B32B /* SendController.xib */; };
D36AAA9A23A2125E0065B32B /* BalanceController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D36AAA8223A2125D0065B32B /* BalanceController.swift */; };
Expand All @@ -37,7 +36,8 @@
607FACD41AFB9204008FA782 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
607FACD51AFB9204008FA782 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
6BC11A5C28EEC7D30001FDF1 /* LitecoinAdapter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LitecoinAdapter.swift; sourceTree = "<group>"; };
6BC11A5E28EEC7EC0001FDF1 /* LitecoinKit Demo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "LitecoinKit Demo.app"; sourceTree = BUILT_PRODUCTS_DIR; };
6BC11A5E28EEC7EC0001FDF1 /* DogecoinKit Demo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "DogecoinKit Demo.app"; sourceTree = BUILT_PRODUCTS_DIR; };
C8F6D4062BB1B25F00832A69 /* Package.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Package.swift; path = ../Package.swift; sourceTree = "<group>"; };
D36AAA7F23A2125D0065B32B /* BaseAdapter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaseAdapter.swift; sourceTree = "<group>"; };
D36AAA8123A2125D0065B32B /* SendController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SendController.xib; sourceTree = "<group>"; };
D36AAA8223A2125D0065B32B /* BalanceController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BalanceController.swift; sourceTree = "<group>"; };
Expand All @@ -64,7 +64,6 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
6BC11A6128EECBE90001FDF1 /* LitecoinKit in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand All @@ -75,7 +74,7 @@
isa = PBXGroup;
children = (
607FACD21AFB9204008FA782 /* Sources */,
6BC11A5E28EEC7EC0001FDF1 /* LitecoinKit Demo.app */,
6BC11A5E28EEC7EC0001FDF1 /* DogecoinKit Demo.app */,
6BC11A5F28EECBE90001FDF1 /* Frameworks */,
);
sourceTree = "<group>";
Expand Down Expand Up @@ -106,6 +105,7 @@
6BC11A5F28EECBE90001FDF1 /* Frameworks */ = {
isa = PBXGroup;
children = (
C8F6D4062BB1B25F00832A69 /* Package.swift */,
);
name = Frameworks;
sourceTree = "<group>";
Expand Down Expand Up @@ -174,10 +174,9 @@
);
name = "iOS Example";
packageProductDependencies = (
6BC11A6028EECBE90001FDF1 /* LitecoinKit */,
);
productName = LitecoinKit;
productReference = 6BC11A5E28EEC7EC0001FDF1 /* LitecoinKit Demo.app */;
productReference = 6BC11A5E28EEC7EC0001FDF1 /* DogecoinKit Demo.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
Expand Down Expand Up @@ -379,7 +378,7 @@
);
MODULE_NAME = ExampleApp;
PRODUCT_BUNDLE_IDENTIFIER = "org.horizontalsystems.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "LitecoinKit Demo";
PRODUCT_NAME = "DogecoinKit Demo";
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
SWIFT_VERSION = 5.0;
};
Expand All @@ -397,7 +396,7 @@
);
MODULE_NAME = ExampleApp;
PRODUCT_BUNDLE_IDENTIFIER = "org.horizontalsystems.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "LitecoinKit Demo";
PRODUCT_NAME = "DogecoinKit Demo";
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
SWIFT_VERSION = 5.0;
};
Expand Down Expand Up @@ -436,13 +435,6 @@
};
};
/* End XCRemoteSwiftPackageReference section */

/* Begin XCSwiftPackageProductDependency section */
6BC11A6028EECBE90001FDF1 /* LitecoinKit */ = {
isa = XCSwiftPackageProductDependency;
productName = LitecoinKit;
};
/* End XCSwiftPackageProductDependency section */
};
rootObject = 607FACC81AFB9204008FA782 /* Project object */;
}
Loading

0 comments on commit 2a91a64

Please sign in to comment.