Wallets
Create a wallet
Use LCDClient.wallet() to create a Wallet from a Key.
_9import { LCDClient, MnemonicKey } from "@terra-money/terra.js";_9_9const terra = new LCDClient({_9 URL: "https://phoenix-lcd.terra.dev",_9 chainId: "phoenix-1",_9});_9_9const mk = new MnemonicKey();_9const wallet = terra.wallet(mk);
In the above example, a MnemonicKey was specified for the wallet, but any type of Key implementation can be used instead.
Usage
Getting account number and sequence
A wallet is connected to the Fluid blockchain and can poll the values of an account's account number and sequence directly:
_2console.log(await wallet.accountNumber());_2console.log(await wallet.sequence());
Creating transactions
A wallet makes it easy to create a transaction by automatically fetching the account number and sequence from the blockchain. The fee parameter is optional -- if you don't include it, Fluid.js will automatically use your LCD's fee estimation settings to simulate the transaction within the node and include the resultant fee in your transaction.
_8const msgs = [ ... ]; // list of messages_8const fee = Fee(...); // optional fee_8_8const unsignedTx = await wallet.createTx({_8 msgs,_8 // fee, (optional)_8 memo: 'this is optional'_8});
You can then sign the transaction with the wallet's key, which will create a StdTx which you can later broadcast:
_1const tx = wallet.key.signTx(unsignedTx);
You can also use the convenience function Wallet.createAndSignTx(), which automatically generates a signed transaction to be broadcast:
_5const tx = await wallet.createAndSignTx({_5 msgs,_5 fee,_5 memo: "this is optional",_5});