欢迎使用 BitcoinKit
BitcoinKit 库是 Bitcoin 协议的 Swift 实现,支持 BCH 和 BTC。我们致力于改善 Bitcoin 开发者的移动生态系统。
BitcoinKit 允许在不使用完整区块链节点的情况下管理钱包、发送或接收交易。以下是一个演示如何使用它的钱包应用。
发布说明在这里 CHANGELOG.md。
特性
- 地址编码/解码:base58、Cashaddr、P2PKH、P2SH、WIF 格式。
- 交易构建块:输入、输出、脚本。
- EC 密钥和签名。
- BIP32、BIP44 层次确定性钱包。
- BIP39 实现。
- SPV 功能 正在建设中。以下功能有时无法有效工作。
- 发送/接收交易。
- 查看钱包中的当前余额。
使用方法
生成地址
// from Testnet Cashaddr
let cashaddrTest = try AddressFactory.create("bchtest:pr6m7j9njldwwzlg9v7v53unlr4jkmx6eyvwc0uz5t")
// from Mainnet Cashaddr
let cashaddrMain = try AddressFactory.create("bitcoincash:qpjdpjrm5zvp2al5u4uzmp36t9m0ll7gd525rss978")
// from Base58 format
let address = try AddressFactory.create("1AC4gh14wwZPULVPCdxUkgqbtPvC92PQPN")
创建新钱包
let privateKey = PrivateKey(network: .testnet) // You can choose .mainnet or .testnet
let wallet = Wallet(privateKey: privateKey)
从WIF导入钱包
let wallet = try Wallet(wif: "92pMamV6jNyEq9pDpY4f6nBy9KpV2cfJT4L5zDUYiGqyQHJfF1K")
分层确定性钱包
// Generate mnemonic
let mnemonic = try Mnemonic.generate()
// Generate seed from the mnemonic
let seed = Mnemonic.seed(mnemonic: mnemonic)
let wallet = HDWallet(seed: seed, network: .testnet)
密钥推导
let mnemonic = try Mnemonic.generate()
let seed = Mnemonic.seed(mnemonic: mnemonic)
let privateKey = HDPrivateKey(seed: seed, network: .testnet)
// m/0'
let m0prv = try! privateKey.derived(at: 0, hardened: true)
// m/0'/1
let m01prv = try! m0prv.derived(at: 1)
// m/0'/1/2'
let m012prv = try! m01prv.derived(at: 2, hardened: true)
HD钱包密钥推导
let keychain = HDKeychain(seed: seed, network: .mainnet)
let privateKey = try! keychain.derivedKey(path: "m/44'/1'/0'/0/0")
扩展密钥
let extendedKey = privateKey.extended()
同步区块链
let blockStore = try! SQLiteBlockStore.default()
let blockChain = BlockChain(network: .testnet, blockStore: blockStore)
let peerGroup = PeerGroup(blockChain: blockChain)
let peerGroup.delegate = self
let peerGroup.start()
需求
- iOS 9.0+ / Mac OS X 10.11+ / tvOS 9.0+ / watchOS 2.0+
- Xcode 10.0+
- Swift 5.0+
安装
CocoaPods
CocoaPods 是 Cocoa 项目的依赖管理器。您可以使用以下命令安装它
$ gem install cocoapods
构建 BitcoinKit 需要 CocoaPods 1.5.0+。
要将 BitcoinKit 整合到您的 Xcode 项目中,使用 CocoaPods,请在 Podfile
中指定它
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '10.0'
use_frameworks!
target '<Your Target Name>' do
pod 'BitcoinKit'
end
然后,运行以下命令
$ pod install
Carthage
Carthage 是一个去中心化的依赖管理器,它构建您的依赖并提供二进制框架。
您可以使用 Homebrew 安装 Carthage,以下命令
$ brew update
$ brew install carthage
要将 BitcoinKit 整合到您的 Xcode 项目中,使用 Carthage,请在 Cartfile
中指定它
github "yenom/BitcoinKit"
运行 carthage update
构建框架,并将构建好的 BitcoinKit.framework
拖到您的 Xcode 项目中。
Swift Package Manager
BitcoinKit 可以通过 Swift Package Manager 使用。要安装它,只需将以下行添加到您的 Package.swift 的依赖中。
.package(url: "https://github.com/yenom/BitcoinKit.git", .upToNextMinor(from: "1.0.0"))
请注意,以下数据类型和功能当前不支持在 Linux 平台上。
Peer
和PeerGroup
- 基于 SQLite 的 BlockStore
贡献
我们欢迎并对 BitcoinKit 的贡献表示鼓励!请随时提出问题或向我们提交拉取请求。
作者 & 维护者
关于
BitcoinKit 由 Yenom 维护和资助。访问我们的网站或通过twitter打招呼(@Yenom_wallet_en)
许可证
BitcoinKit 在MIT许可证下可用。更多信息请参阅LICENSE文件。
贡献者
支持者
感谢所有支持者!
赞助商
通过成为赞助商来支持此项目。您的标志将在此处显示,并链接到您的网站。[成为赞助商]