Polkadot-Dart
is a Dart-lang library to use access API of Polkadot network.
This library contains a set of crypto libraries and implementations of utils.
Status | Number | Deliverable | Specification |
---|---|---|---|
☑ | 0 | Licence | Apache 2.0 |
☑ | 1 | bindings/crypto | Rust binding and implements @polkadot/wasm |
☑ | 2 | util_crypto | Porting and implements @polkadot/util-crypto |
☑ | 3 | utils | Porting and implements @polkadot/utils |
☑ | 4 | keyring | Porting and implements @polkadot/keyring |
☑ | 5 | networks | Porting and implements @polkadot/networks |
☑ | 6 | tests | Unit tests for deliverables above |
Status | Number | Deliverable | Specification |
---|---|---|---|
75% | 1 | types | Porting @polkadot/types |
0% | 2 | rpc_core | Porting and implements @polkadot/rpc |
75% | 3 | rpc_provider | Porting and implements @polkadot/rpc_provider |
90% | 4 | metadata | Porting @polkadot/metadata |
0% | 5 | api_derive | Porting @polkadot/api-derive |
0% | 6 | api_contract | Porting @polkadot/api-contract |
0% | 7 | api | Porting @polkadot/api |
30% | 8 | type_gen | Types generator for @polkadot/types |
15% | 9 | tests | Unit tests for deliverables above |
0% | 10 | pub.dev | Publish to pub.dev for v1.0.0-dev1 |
Status | Number | Deliverable | Specification |
---|---|---|---|
0% | 1 | tests | Integration tests for all milestones |
0% | 2 | documentations | Documentations for all packages |
0% | 3 | pub.dev | Publish to pub.dev for v1.0.0 |
There are a few settings that needed before manually build, here is the guide.
We will try to make a .make
file afterwards to simply the process.
There are dynamic libs to be build during the process.
This repository use CI to generate dynamic libs, tests are ensured passed, better not build them yourself.
With Macos (because we need to build iOS)
brew upgrade && brew install llvm
Verify your flutter version and env settings, make sure everything works
flutter doctor -v
Download NDK and set NDK_HOME
to env.
export NDK_HOME=~/ndk/android-ndk-r21b
# or if you use `ndk-bundle` of Android SDK locally, for macos:
export ANDROID_HOME=~/Library/Android/sdk
export ANDROID_NDK_HOME=~/Library/Android/sdk/ndk-bundle
export NDK_HOME=~/Library/Android/sdk/ndk-bundle
# and for linux, its like
export NDK_HOME=/home/${User}/dev/android/ndk-bundle
All others are in /scripts
folder, the steps below are not neccesary , just in-case something's missing.
Install cargo-lipo(for ios building) and cbindgen
cargo install cargo-lipo && cargo install --force cbindgen
Install Android and iOS targets:
rustup target add aarch64-linux-android armv7-linux-androideabi x86_64-linux-android i686-linux-android aarch64-apple-ios x86_64-apple-ios
.so
and .a
manually./scripts/clean.sh && ./scripts/init.sh && ./scripts/build.sh
android/src/main/jniLibs/
ios
macos
(Caution: Build it on macos only)linux
(Caution: Build it on linux only)windows
(unavailable for now)Caution!! Do Not use flutter test
directly
All test scripts are in /test
folder. The folder structure matches the lib
struture.
For example:
A .dart
file name hex.dart
In lib folder, that is lib/utils/hex.dart
In test folder, that is test/utils/hex.dart
To test it, in root folder run flutter test test/utils/hex.dart
lib folder | test folder | test script |
---|---|---|
lib/utils/hex.dart |
test/utils/hex.dart |
flutter test test/utils/hex.dart |
The polkadot_dart_test.dart
is the entry of all unit tests, simply run:
flutter test test/polkadot_dart_test.dart
lcov
first:
brew install lcov
sudo apt install lcov
./scripts/runTest.sh
TODO
Later