a wallet and raw payload signer implementation for plugnet
import {Wallet} from '@plugnet/wallet';
const wallet = new Wallet();
await wallet.createNewVault('a passphrase');
// By default it comes with a HD Keyring
// to specify hdPath of HDKeyring,
await wallet.createNewVault('a passphrase', {hdPath: '...'});
const backup = await wallet.export('a passphrase');
// [{mnemonic, numberOfAccounts,hdPath}]
vault = wallet.vault;
wallet2 = new Wallet({vault});
//add keyringTypes: [HDKeyring, SimpleKeyring] if SimpleKeyring is used
await wallet2.unlock(<same passphrase>)
mnemonic='ready whisper vapor penalty load gesture elite brick select light caution clever';
hdKeyring=new HDKeyring({mnemonic});
wallet = new Wallet();
wallet.createNewVaultAndRestore('newpass', [hdKeyring]);
const json = await wallet.exportAccount(address, passphrase);
const TEST_ACCOUNT = {
seed: '0x3cf2ec6ffd26587529ab06c82ba9b33110198085f5c6b8d882653d056bf9e0d3',
address: '5DHzypfuQH7FPhCsrqMxpxkBaPHe8QNhc5s1PwEMDc5p5Nb7',
publicKey: '0x366010e706af618a6037731b07663d4b6f10eac201c7fdd5fb0bd4727742524d',
mnemonic: 'insane push cradle toilet token gate chair trim spare blush rebuild top',
};
const keyring = new SimpleKeyring();
await keyring.addPair(alice);
//or
keyring.addFromSeed(hexToU8a(TEST_ACCOUNT.seed));
//or
keyring.addFromMnemonic(TEST_ACCOUNT.mnemonic);
await wallet.addKeyring(keyring);
await wallet.lock();
// methods marked as @requireUnlocked such as sign, addAccount and etc will fail
await wallet.unlock(passphrase);
const address = await wallet.addAccount();
const payload = {
type: 'payload',
data: '0x01a1f9000051',
address: ...[signing account address]
}
const signature = await wallet.sign(payload);