flutter_libra_core 0.0.3 flutter_libra_core: ^0.0.3 copied to clipboard
A plugin implementing cryptography tools used by the Libra.
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