We are making a dart/flutter version of agent library for Internet Computer. Dart and Flutter devs can use it to build either mobile wallets, Stand-alone/fusion Dapps powered by canisters, or even backend service.
You can get it here:
And for source code, here:
Current version is 0.1.16, we will update latest features and changes in this post.
- added principal to accountId
- added Flutter Web support
- regroup project structure
- fixed archiver overriding
- fixed bls on dart:io and dart:html
- fixed test compatible with flutter web
- Fixed secp256k1 signature length
- Expose AgentFactory
- Fix Cbor with List casting
- Minor Fix fetch and KeySmith
- added Windows ffi support
- IMPORTANT fix candid parser with BigInt and others
Added Secp256k1 Identity with ECDA sign
Added ledger with send and getBalance
auth_clientflow is a little bit change due to Internet Identity service won’t give correct identity using local webpage like we use
How ever we keep the provider here, because we may have other Identity Provider to give other solution.
But we managed to change
- fixed uri parser, added
blsSyncinstead of async isolation, to fix memory leak in rust-dart-ffi interop
Fix cbordecode in the Delegation
Apply rosetta-api to current docker specs
Won’t support import privatekey to signer anymore, may separate different signer, eg:
SchnorrSignerin the future supporting different coin specs.
added sourceType of II, plugWallet, keysmith with different settings since they use different derivePath to generate seed
Signer.importPhraseto use settings above
added related tests
- fix delegation request sign and request_id
- fix delegation chain transformRequest
fix error decoding
Here are core features in this package:
agent, core library, with crypto and encoding/decoding methods , http call/query encapsulated, for interacting with canister.
auth_client, a popup window for flutter, used for getting authentication from Identity provider(eg, Internet Identity).
authentication, a library supports
candid, candid library, used for encoding/decoding candid data types, and used them in dart-lang.
principal, principal library, used for generate principal for many usage cases.
protobuf, protobuf library, used for interacting with
rosetta-nodein submit/query transaction
utils, common utils, including useful helpers like extension methods in dart.
wallet, wallet library, signer, rosetta, key-smith all-in-one library.