Skip to content

Commit

Permalink
Merge pull request #17 from getsafle/feature-add-readme
Browse files Browse the repository at this point in the history
Feature add readme
  • Loading branch information
sshubhamagg authored Aug 2, 2024
2 parents 72451db + e1558bf commit 469f492
Show file tree
Hide file tree
Showing 3 changed files with 117 additions and 3 deletions.
3 changes: 2 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
### 1.0.0 (2021-12-1)

##### Polygon Keyring Implementation
##### BEVM Keyring Implementation

- Implemented Keyring functionality to manage accounts
- Implemented functions to add account, export accounts & import accounts
Expand All @@ -9,6 +9,7 @@
- Implemented functionality to sign a raw transaction
- Implemented functionality to get gass fees
- Implemented functionality to broadcast a transaction
- Added readme file



113 changes: 113 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
# vault-bevm-controller<code><a href="https://www.docker.com/" target="_blank"><img height="50" src="https://dex-bin.bnbstatic.com/static/images/logo_BNB_Chain.svg"></a></code>

[![npm version](https://badge.fury.io/js/@getsafle%2Fvault-bevm-controller.svg)](https://badge.fury.io/js/@getsafle%2Fvault-bevm-controller) <img alt="Static Badge" src="https://img.shields.io/badge/License-MIT-green"> [![Discussions][discussions-badge]][discussions-link]
<img alt="Static Badge" src="https://img.shields.io/badge/BEVM_controller-documentation-purple">

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](#installation)
- [Initialize the BEVM Controller class](#initialize-the-bevm-controller-class)
- [Methods](#methods)
- [Generate Keyring with 1 account and encrypt](#generate-keyring-with-1-account-and-encrypt)
- [Restore a keyring with the first account using a mnemonic](#restore-a-keyring-with-the-first-account-using-a-mnemonic)
- [Add a new account to the keyring object](#add-a-new-account-to-the-keyring-object)
- [Export the private key of an address present in the keyring](#export-the-private-key-of-an-address-present-in-the-keyring)
- [Sign a transaction](#sign-a-transaction)
- [Sign a message](#sign-a-message)
- [Get balance](#get-balance)



## 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);
```
[discussions-badge]: https://img.shields.io/badge/Code_Quality-passing-rgba
[discussions-link]: https://github.com/getsafle/vault-bevm-controller/actions
4 changes: 2 additions & 2 deletions src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -508,8 +508,8 @@ class KeyringController extends EventEmitter {
return { transactionDetails: receipt.transactionHash }
}

async getFees(bscTx, web3) {
const { from, to, value, data } = bscTx
async getFees(bevmTx, web3) {
const { from, to, value, data } = bevmTx
const gasLimit = await web3.eth.estimateGas({ to, from, value, data })
const gasPrice = parseInt(await web3.eth.getGasPrice());
const fees = {
Expand Down

0 comments on commit 469f492

Please sign in to comment.