@getsafle/vault-evm-controller
v1.0.1
Published
Evm chains controller for safle vault.
Downloads
25
Readme
Vault-evm-Controller
A Module written in javascript for managing various keyrings of Ethereum accounts, encrypting them, and using them.
Installation
npm install --save @getsafle/vault-evm-controller
Initialize the Evm Controller class
const { KeyringController, getBalance } = require('@getsafle/vault-evm-controller');
const evmController = new KeyringController({
txType: //0 or 2
encryptor: {
// An optional object for defining encryption schemes:
// Defaults to Browser-native SubtleCrypto.
encrypt(password, object) {
return new Promise('encrypted!');
},
decrypt(password, encryptedString) {
return new Promise({ foo: 'bar' });
},
},
});
Methods
Generate Keyring with 1 account and encrypt
const keyringState = await evmController.createNewVaultAndKeychain(password);
Restore a keyring with the first account using a mnemonic
const keyringState = await evmController.createNewVaultAndRestore(password, mnemonic);
Add a new account to the keyring object
const keyringState = await evmController.addNewAccount(keyringObject);
Export the private key of an address present in the keyring
const privateKey = await evmController.exportAccount(address);
Sign a transaction
const signedTx = await evmController.signTransaction(ethTx, _fromAddress);
Sign a message
const signedMsg = await evmController.signMessage(msgParams);
Sign a message
const signedObj = await evmController.sign(msgParams, pvtKey, web3Obj);
Sign Typed Data (EIP-712)
const signedData = await evmController.signTypedMessage(msgParams);
Custom Sign Typed Data (EIP-712)
const signedData = await evmController.customSignTypedMessage(privateKey, typedData);
Custom Personal sign
const signedData = await evmController.customPersonalSign(privateKey, messafe);
Get balance
const balance = await getBalance(address, web3);
Send Transaction
const receipt = await evmController.sendTransaction(signedTx, web3);
Calculate Tx Fees
const fees = await evmController.getFees(rawTx, web3);