flutter_libra_core 0.1.3

Flutter Android iOS

Libra Core is a Dart library client that can be used to interact with Libra nodes.

Build Status

Libra Core #

Libra Core is a Dart library client that can be used to interact with Libra nodes.

Thanks to JavaScript Libra Core from Perfect Makanju.

There is an example Flutter application built for Android, [iOS] coming soon.

Table of Content #

Usage #

There are two main interface classes:

  • LibraWallet
  • LibraClient

Creating an Account #

Instantiate LibraWallet to create a libra account:

LibraWallet wallet = new LibraWallet();

Mnemonic is optional, a random mnemonic is generated and used without specifying one

const String mnemonic = 'danger gravity ... flip';
LibraWallet wallet = new LibraWallet(mnemonic: mnemonic);

A LibraWallet holds more than one LibraAccount objects, each account being a child of the wallet (start with index 0).

LibraAccount alice = wallet.newAccount();
LibraAccount bob = wallet.newAccount();

Generate addres from account:

String aliceAddress = alice.getAddress();

Minting Amount #

Instantiate LibraClient and uses faucet service to mint, default config as Testnet:

LibraClient client = new LibraClient();
int amount = 1000000;
await client.mintWithFaucetService(aliceAddress, BigInt.from(amount), needWait: false);

Checking an address balance #

Get state from alice which contains balance and other information such as sequenceNumber

LibraAccountState aliceState = await client.getAccountState(aliceAddress);
print('alice state: ${aliceState.balance}, ${aliceState.sequenceNumber}');

Transferring Libra Coins #

Transfer from alice to bob, implemented with Libra Canonical Serialization:

LibraAccount bob = wallet.newAccount();
String bobAddress = bob.getAddress();
int amount = 1000000;
await client.transferCoins(alice, bobAddress, amount);

// Get bob state
LibraAccountState bobState = await client.getAccountState(bobAddress);
print('bob state: ${bobState.balance}, ${bobState.sequenceNumber}');

Query Transaction with Sequence Number #

Query detail of the transaction sending from alice to bob, implemented with Libra Canonical Deserialization:

LibraSignedTransactionWithProof lastTransaction = await client.getAccountTransaction(aliceAddress, aliceState.sequenceNumber);
print('publicKey from alice: ${LibraHelpers.byteToHex(lastTransaction.signedTransaction.publicKey)}');

License #

MIT

1
likes
70
pub points
16%
popularity

Libra Core is a Dart library client that can be used to interact with Libra nodes.

Repository (GitHub)
View/report issues

Documentation

API reference

Uploader

tqd0800210105@gmail.com

License

MIT (LICENSE)

Dependencies

bip39, convert, ed25519_dart_base, fixnum, flutter, grpc, hex, pointycastle_base, protoc_plugin

More

Packages that depend on flutter_libra_core