Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature add readme #14

Merged
merged 9 commits into from
Dec 6, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
node_modules
16 changes: 16 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
### 1.0.0 (2023-12-05)

##### Implemented Keyring Controller for Base Chain and Added support for Type-2 transactions

- Added method to generate keyring
- Added method to restore a keyring
- Added method to add a new account to the keyring object
- Added method to export the private key of an address
- Added method to sign a transaction
- Added method to sign a message
- Added method to sign Typed Data (EIP-712)
- Added importWallet() to import account using privateKey.
- Added sign() to sign a message or transaction and get signature along with v,r,s.
- Added getBalance() to fetch the balance in native currency.
- Added getFee() method for gas estimation for the Type-2 transactions.
- Added support for EIP 1559 Type-2 transactions.
100 changes: 98 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,98 @@
# vault-base-controller
Base blockchain controller for Safle Vault
# Vault-base-controller <code><a href="https://www.docker.com/" target="_blank"><img height="50" src="https://docs.base.org/img/logo_dark.svg"></a></code>

[![npm version](https://badge.fury.io/js/@getsafle%2Fvault-base-controller.svg)](https://badge.fury.io/js/@getsafle%2Fvault-base-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/Base_controller-documentation-purple">

A Module written in javascript for managing various keyrings of Base accounts, encrypting them, and using them.

- [Installation](#installation)
- [Initialize the Base Controller class](#initialize-the-base-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-base-controller
```
## Initialize the Base Controller class

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

const baseController = 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 baseController.createNewVaultAndKeychain(password);
```

### Restore a keyring with the first account using a mnemonic

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

### Add a new account to the keyring object

```
const keyringState = await baseController.addNewAccount(keyringObject);
```

### Export the private key of an address present in the keyring

```
const privateKey = await baseController.exportAccount(address);
```

### Sign a transaction

```
const signedTx = await baseController.signTransaction(baseTx, privateKey);
```

### Sign a message

```
const signedMsg = await baseController.signMessage(msgParams);
```

### Sign a message

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

### Sign Typed Data (EIP-712)

```
const signedData = await baseController.signTypedMessage(msgParams);
```

### Get balance

```
const balance = await getBalance(address, web3);
```
[discussions-badge]: https://img.shields.io/badge/Code_Quality-passing-rgba
[discussions-link]: https://github.com/getsafle/vault-base-controller/actions
Loading
Loading