Skip to content

getsafle/vault-evm-controller

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Vault-evm-Controller

npm version Static Badge Discussions Static Badge

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);

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •