Skip to content

Commit

Permalink
Merge pull request #30 from getsafle/test
Browse files Browse the repository at this point in the history
Test
  • Loading branch information
sshubhamagg authored Aug 20, 2024
2 parents dae2f84 + 34ea85f commit 1dd8e3c
Show file tree
Hide file tree
Showing 5 changed files with 660 additions and 541 deletions.
11 changes: 10 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

##### BEVM Keyring Implementation

- Implemented Keyring functionality to manage accounts
- Implemented Keyring functionality to manage accounts
- Implemented functions to add account, export accounts & import accounts
- Implemented functionality to sign a message
- Implemented functionality to get coin balance for a wallet
Expand All @@ -13,4 +13,13 @@
- Added test suite

### 1.0.1 (2024-08-2)

- Updated package name

### 1.0.2 (2024-08-3)

- Updated documentation

### 1.0.3 (2024-08-20)

- Update Sign transaction functionality
152 changes: 131 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,113 +1,223 @@
# 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">
# vault-bevm-controller



[![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)

- [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' });
},
},
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

[discussions-link]: https://github.com/getsafle/vault-bevm-controller/actions
2 changes: 1 addition & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@getsafle/vault-bevm-controller",
"version": "1.0.1",
"version": "1.0.3",
"description": "BEVM controller for safle vault",
"main": "src/index.js",
"scripts": {
Expand Down
Loading

0 comments on commit 1dd8e3c

Please sign in to comment.