Socket
Socket
Sign inDemoInstall

nestjs-web3js

Package Overview
Dependencies
294
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    nestjs-web3js

The nestjs-web3js is a NestJS module that provides a connection to Ethereum's blockchain. It uses the web3.js library, which is a collection of libraries that allow you to interact with a local or remote Ethereum node using HTTP, IPC, or WebSocket.


Version published
Weekly downloads
32
increased by220%
Maintainers
1
Created
Weekly downloads
 

Readme

Source

Web3jsModule - Interacting with Ethereum Blockchain

Build

The Web3jsModule is a NestJS module that provides a connection to Ethereum's blockchain. It uses the web3.js library, which is a collection of libraries that allow you to interact with a local or remote Ethereum node using HTTP, IPC, or WebSocket.

Features

  • Easily connect to Ethereum's blockchain through Infura or other Ethereum nodes.
  • Provides a service Web3jsService that can be injected to interact with Ethereum.
  • Highly modular, can be imported anywhere in your NestJS application.

Installation

To install this module, run:

npm install nestjs-web3js

Then, import Web3jsModule into your AppModule:

@Module({
  imports: [
    Web3jsModule.forRoot({
      infuraUrl: '<Your-infura-url>',
    }),
  ],
})
export class AppModule {}

or

@Module({
  imports: [
    Web3jsModule.forRootAsync({
      imports: [ConfigModule],
      useFactory: (configService: ConfigService) => ({
        infuraUrl: configService.get<string>('INFURA_URL'),
      }),
      inject: [ConfigService],
    }),
  ],
  providers: [AppService],
})
export class AppModule {}

Usage

Once Web3jsModule is imported, you can inject Web3jsService into your services, controllers, or providers:

@Injectable()
export class AppService {
  constructor(@Web3js private readonly web3: Web3) {}

  async getBalance() {
    const balance = await this.web3.eth.getBalance('Your account address');
    return balance;
  }
}

API

Web3jsModule.forRoot(options: CreateWeb3jsServiceDto): DynamicModule

The forRoot method accepts an options object with the following properties:

  • infuraUrl (string): The URL to your Infura Ethereum node. This property must be a valid URL.

DTO

The CreateWeb3jsServiceDto class is used as a type for the argument passed to the forRoot method. The schema for this class is as follows:

const CreateWeb3jsServiceSchema = z
  .object({
    infuraUrl: z.string().url().min(3),
  })
  .required();

This schema is validated using the nestjs-zod library.

Dependencies

This module depends on the following packages:

  • @nestjs/common
  • web3
  • nestjs-zod

Contribution

For issues, feature requests, and contributions, please open an issue in the repository.

License

This project is licensed under the MIT License.

Authors

  • Cláudio Filipe Lima Rapôso - Sertão será Cloud

See also the list of contributors who participated in this project.

Keywords

FAQs

Last updated on 30 Aug 2023

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc