Detailed Plan
Fund 5 Recap
If you browse the repository site on the pub.dev link above, you'll find the Fund 5 project is well documented and architected with significant test coverage. However, what makes this SDK a truly first class Cardano client library is that it's written in 100%-pure Dart code. The majority of Cardano client libraries rely on linked Rust code for private key and address management, transaction signing and binary encoding. Although it was a lot more work to duplicate this functionality in Dart, the results are a superior developer experience, no duplicated code or linking problems and, most importantly, it guarantees this complex cryptographic code will work seamlessly on all of Flutter's supported platforms: iOS, Android, web and desktop.
Flutter Recap
Flutter is a Google-backed, cross-platform mobile development environment that generates native apps for both iOS and Android. Recently, web app support was added (see this projects live demo wallet: https://flutter-cardano-wallet.web.app/)))) and Flutter will soon support desktop apps. Other Flutter strengths are fast, fluid, pixel-perfect user interfaces, rapid prototyping, excellent developer tooling and a modern, user-friendly, strongly-typed, null-safe programming language.
Fund 7 Goals
Although the current code base has evolved way beyond the orriginal Fund 5 prototype proposal, it is still not production ready. In particular, it does not support smart contracts, native tokens or staking. A Fund 7 grant would support the 400 hours of work still needed to push this project over the finish line:
-
Smart contracts (150 hours). - This will focus on basic handling, verification and signing of smart contracts. At least two common use-cases will be provided as hand-written samples. Lastly, tooling for off-chain code generation will be explored.
-
CBOR (50 hours) - Finish the Shelley binary data binding using code generation wherever possible.
-
Native Token/NFT (25 hours) - Provide minting and burning support for Native Tokens and NFTs.
-
Staking (25 hours) - Provide stake pool ranking and stake delegation support.
-
Secure storage (25 hours) - Provide a cross-platform, encrypted storage solution for private keys and passwords.
-
Multi-signature Support (25 hours) - Support multi-party signatures on scripts and contracts.
-
Alternate Addresses (25 hours) - Support Enterprise and Pointer addresses, in addition to legacy addresses as time allows.
-
API clean-up (25 hours) - Designing good APIs is hard. In addition to refactoring for clarity, this task would standardize the model and service interface patterns, as well as, reduce third-party dependencies.
-
Use-case examples (25 hours) - Document common use-cases with clear, concise code examples.
-
Test coverage (25 hours) - Plug holes in test coverage.