BitcoinKit
BitcoinKit copied to clipboard
We're back. Sorry for long absence.
Hi all. Thanks for your long patience, and I apologize for long absence. I've been overwhelmed by personal problems. But most of them will be resolved soon. And I was not just hanging around, but I've been learning a lot, in order to make it better. I'm preparing updates. Will respond to issues as well.
P.S. I've created discord for BitcoinKit development. If you're interested in developing BitcoinKit, feel free to visit here. https://discord.gg/TZZs7uQ
Great to hear @usatie we all know how it is, balancing OSS and life, it's hard! Hope you are feeling alright! And don't work yourself to death! :)
Did you see that Apple announced support for Swift Package Manager for iOS during WWDC? It would be really cool to be able to use BitcoinKit and SPM in Xcode 11 :D
Thank you. That would be on our roadmap. I'm starting to work on.
- Review all the PRs
- Start preparation for next version 2.0.0
Finished for reviewing and merging all the PRs. Next, I'm working on preparation for the next version.
What is your plan for the next version?
@jbdtky First of all, I want to hear from people. And I want to make this place more active. But okay, these are in my mind for now, and I need help to accomplish them all.
1. SwiftPM support
SwiftPM for iOS Including refactoring the dependencies to openssl/secp256k1
2. Break down BitcoinKit into smaller frameworks
Wallet/API implementation is not good to be included in this library. It's more like an application or higher-level library.
3. Add some changes to the code imported from my wallet project.
Currently I'm wrapping BitcoinKit in other framework to be more usable in our wallet project, and most of the code can be imported to BitcoinKit. ex.
├── FeeCalculator.swift
├── HDWallet.swift
├── Info.plist
├── LockScriptConverter.swift
├── PaymentURI
│ ├── BitcoinScheme.swift
│ ├── PaymentURI.swift
│ ├── PaymentURIError.swift
│ └── PaymentURIParameter.swift
├── QRCodeParser
│ ├── QRCodeParseResult.swift
│ └── QRCodeParser.swift
├── RedeemScriptProvider.swift
├── TransactionBuilder.swift
├── TransactionPlan.swift
├── TransactionPlanner.swift
├── TransactionSigner.swift
├── UnspentSelector.swift
├── Wallet.swift
├── WalletError.swift
4. Refactor private/internal/public modifiers
Currently, some of them are messed around.
5. Increase test coverage and stability
Add tests.
6. Implement full SPV feature
This was on the way and stuck.
7. Better documentation
We only have README.md now.
Both documentation in codes, and Documentation/something.md
are necessary.
8. Implement more powerful features
- Cashshuffle
- Shnorr etc...
Sounds like a good start. 2. May be a great idea. It could be separated frameworks that I have done in my side for more focus token. However we could add some basic functionality for tokens in the sdk like address format (for slp), I have it in a fork. 8. In my fork, I added support for the new OP_CODE, I think it’s really important to add the OP_CHECKDATASIG and VERIFY. It is a great opportunity for script.
- Schnorr signature support would be awesome.
- Cash shuffle is a bit complex in the workflow and I don’t think people would like to use it by default in their wallet, it could be provided by an external lib as plugin based on BitcoinKit maybe, what do you think?
Anyway, It’s already a great list. If you need help for anything, please contact me on telegram @jbdtky and or invite me in the workgroup if there is and I will participate in the dev with pleasure.
@jbdtky Thank you. I appreciate for your cooperation!
PR is welcom for both of what you implemented.
I agree.
Cash shuffle is a bit complex in the workflow and I don’t think people would like to use it by default in their wallet, it could be provided by an external lib as plugin based on BitcoinKit maybe, what do you think?
I created a discord group for the workgroup. This is the invitation link. https://discord.gg/TZZs7uQ
Can you elaborate what's the problem with SPV? Where are you stuck at? I see there is a branch for that already