flutter_libra_core 0.0.3 copy "flutter_libra_core: ^0.0.3" to clipboard
flutter_libra_core: ^0.0.3 copied to clipboard

outdated

A plugin implementing cryptography tools used by the Libra.

Build Status

Libra Core #

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

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

2
likes
0
pub points
0%
popularity

Publisher

unverified uploader

A plugin implementing cryptography tools used by the Libra.

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

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

More

Packages that depend on flutter_libra_core