nestjs-web3 icon indicating copy to clipboard operation
nestjs-web3 copied to clipboard

Module that makes it possible to work with Ethereum JavaScript API with NestJS

Web3 module for NestJS that allow to work with blockhains

This is first release of this module. Readme under construction but here are a couple of tips

Installation

Yarn

yarn add nest-web3

NPM

yarn add nest-web3

Getting started with module

Register Web3Module module in yours app.module.ts (or other main module of yours project)

import { Module } from '@nestjs/common';
import { Web3Module } from 'nest-web3';

@Module({
    imports: [
        Web3Module.forRoot({
            name: 'eth',
            url: 'http://localhost:3450',
        }),
    ]
})
export class AppModule {}

Or with Async

import { Module } from '@nestjs/common';
import { Web3Module } from 'nest-web3';

@Module({
    imports: [
        Web3Module.forRootAsync({
            useFactory: (configService: ConfigService) => configService.get('web3'),
            inject:[ConfigService]
        }),
    ]
})
export class AppModule {}

Configuration

For now module accept two parameters:

export interface Web3ModuleOptions {
  name?: string;
  url: string;
}

Using in project

import { Injectable } from '@nestjs/common';
import { Web3Service } from "nest-web3";

@Injectable()
export class SomeClass {
    constructor(
        private readonly web3Service: Web3Service
    ) {}
    
    async method(): Promise<number> {
        const client = this.web3Service.getClient('eth'); // we are give name of client in config file
        return await client.eth.getChainId();
    }
}

Available methods and API of Web3 available here https://web3js.readthedocs.io/