1.0.0 • Published 11 months ago

vault-bevm-controller v1.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
11 months ago

vault-bevm-controller

npm version Discussions

A Module written in javascript for managing various keyrings of BEVM accounts, encrypting them, and using them. This repository contains BEVMHdKeyring class to create BEVM wallet from Safle Vault.

Installation

npm install --save @getsafle/vault-bevm-controller

Initialize the BEVM Controller class

const { KeyringController, getBalance } = require('@getsafle/vault-bevm-controller');

const bevmController = new KeyringController({
  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 bevmController.createNewVaultAndKeychain(password);

Restore a keyring with the first account using a mnemonic

const keyringState = await bevmController.createNewVaultAndRestore(password, mnemonic);

Add a new account to the keyring object

const keyringState = await bevmController.addNewAccount(keyringObject);

Export the private key of an address present in the keyring

const privateKey = await bevmController.exportAccount(address);

Sign a transaction

const signedTx = await bevmController.signTransaction(bevmTx, _fromAddress);

Sign a message

const signedMsg = await bevmController.signMessage(msgParams);

Sign a message

const signedObj = await bevmController.sign(msgParams, pvtKey, web3Obj);

Sign Typed Data (EIP-712)

const signedData = await bevmController.signTypedMessage(msgParams);

Get balance

const balance = await bevmController.getBalance(address, web3);

Send Transaction

const receipt = await bevmController.sendTransaction(signedTx, web3);

Calculate Tx Fees

const fees = await bevmController.getFees(rawTx, web3);