An open API service indexing awesome lists of open source software.

https://github.com/theqrl/web3.js


https://github.com/theqrl/web3.js

Last synced: about 1 month ago
JSON representation

Awesome Lists containing this project

README

          


web3.js

# QRL Web3.js

[![CI](https://github.com/theQRL/web3.js/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/theQRL/web3.js/actions/workflows/ci.yml)
[![Actionlint](https://github.com/theQRL/web3.js/actions/workflows/actionlint.yml/badge.svg?branch=main)](https://github.com/theQRL/web3.js/actions/workflows/actionlint.yml)
[![npm downloads][downloads-image]][npm-url]
![Commit Activity](https://img.shields.io/github/commit-activity/m/theQRL/web3.js/main?label=commit%20activity)
![Contributors](https://img.shields.io/github/contributors/theQRL/web3.js?label=contributors)

![ES Version](https://img.shields.io/badge/ES-2020-yellow)
![Node Version](https://img.shields.io/badge/node-%3E%3D20-green)

QRL Web3.js is a TypeScript implementation of QRL JSON-RPC client tooling maintained by [The QRL Contributors](https://theqrl.org/).

This fork is being prepared for audit and first release under the `@theqrl` npm organization. Until that release is cut, treat `main` as unreleased.

## Installation

Published releases will be available from [npm](https://www.npmjs.com/package/@theqrl/web3). Local development uses [pnpm](https://pnpm.io/).

After the first audited release:

```bash
npm install @theqrl/web3
```

```bash
pnpm add @theqrl/web3
```

## Getting Started

- If you have questions [submit an issue](https://github.com/theQRL/web3.js/issues/new/choose) or join us on [Discord](https://theqrl.org/discord).
![Discord](https://img.shields.io/discord/357604137204056065.svg?label=Discord&logo=discord)

## Prerequisites

- [NodeJS](https://nodejs.org/) (20 or newer)
- [pnpm](https://pnpm.io/) and [Turbo](https://turbo.build/)

## Useful links

- [QRL website](https://theqrl.org/)
- [QRL Discord](https://theqrl.org/discord)
- [Repository issues](https://github.com/theQRL/web3.js/issues/new/choose)

## Architecture Overview

Package names follow the repository policy in
[`docs/package-naming.md`](docs/package-naming.md); `@theqrl/abi` is the
documented foundational ABI-coder exception to the `@theqrl/web3-*` runtime
package pattern.

| Package | npm | Docs | Description |
| --------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------- | ------------------------------------------------------ | ---------------------------------------------------------------------------------- |
| [`@theqrl/abi`](https://github.com/theQRL/web3.js/tree/main/packages/abi) | [npm](https://www.npmjs.com/package/@theqrl/abi) | [API](https://docs.theqrl.org/api/abi) | ABI encoding and decoding helpers. |
| [`@theqrl/web3`](https://github.com/theQRL/web3.js/tree/main/packages/web3) | [npm](https://www.npmjs.com/package/@theqrl/web3) | [API](https://docs.theqrl.org/api/web3) | Main QRL Web3.js package. |
| [`@theqrl/web3-core`](https://github.com/theQRL/web3.js/tree/main/packages/web3-core) | [npm](https://www.npmjs.com/package/@theqrl/web3-core) | [API](https://docs.theqrl.org/api/web3-core) | Shared core classes, request management, subscriptions, and plugin infrastructure. |
| [`@theqrl/web3-errors`](https://github.com/theQRL/web3.js/tree/main/packages/web3-errors) | [npm](https://www.npmjs.com/package/@theqrl/web3-errors) | [API](https://docs.theqrl.org/api/web3-errors) | Shared error types. |
| [`@theqrl/web3-net`](https://github.com/theQRL/web3.js/tree/main/packages/web3-net) | [npm](https://www.npmjs.com/package/@theqrl/web3-net) | [API](https://docs.theqrl.org/api/web3-net) | Network metadata helpers for QRL JSON-RPC providers. |
| [`@theqrl/web3-providers-http`](https://github.com/theQRL/web3.js/tree/main/packages/web3-providers-http) | [npm](https://www.npmjs.com/package/@theqrl/web3-providers-http) | [API](https://docs.theqrl.org/api/web3-providers-http) | HTTP provider. |
| [`@theqrl/web3-providers-ipc`](https://github.com/theQRL/web3.js/tree/main/packages/web3-providers-ipc) | [npm](https://www.npmjs.com/package/@theqrl/web3-providers-ipc) | [API](https://docs.theqrl.org/api/web3-providers-ipc) | IPC provider. |
| [`@theqrl/web3-providers-ws`](https://github.com/theQRL/web3.js/tree/main/packages/web3-providers-ws) | [npm](https://www.npmjs.com/package/@theqrl/web3-providers-ws) | [API](https://docs.theqrl.org/api/web3-providers-ws) | WebSocket provider. |
| [`@theqrl/web3-qrl`](https://github.com/theQRL/web3.js/tree/main/packages/web3-qrl) | [npm](https://www.npmjs.com/package/@theqrl/web3-qrl) | [API](https://docs.theqrl.org/api/web3-qrl) | QRL blockchain and smart-contract APIs. |
| [`@theqrl/web3-qrl-abi`](https://github.com/theQRL/web3.js/tree/main/packages/web3-qrl-abi) | [npm](https://www.npmjs.com/package/@theqrl/web3-qrl-abi) | [API](https://docs.theqrl.org/api/web3-qrl-abi) | QRVM ABI helpers. |
| [`@theqrl/web3-qrl-accounts`](https://github.com/theQRL/web3.js/tree/main/packages/web3-qrl-accounts) | [npm](https://www.npmjs.com/package/@theqrl/web3-qrl-accounts) | [API](https://docs.theqrl.org/api/web3-qrl-accounts) | QRL account and signing helpers. |
| [`@theqrl/web3-qrl-contract`](https://github.com/theQRL/web3.js/tree/main/packages/web3-qrl-contract) | [npm](https://www.npmjs.com/package/@theqrl/web3-qrl-contract) | [API](https://docs.theqrl.org/api/web3-qrl-contract) | Contract wrappers and method/event helpers. |
| [`@theqrl/web3-qrl-iban`](https://github.com/theQRL/web3.js/tree/main/packages/web3-qrl-iban) | [npm](https://www.npmjs.com/package/@theqrl/web3-qrl-iban) | [API](https://docs.theqrl.org/api/web3-qrl-iban) | QRL address and IBAN conversion helpers. |
| [`@theqrl/web3-qrl-qrns`](https://github.com/theQRL/web3.js/tree/main/packages/web3-qrl-qrns) | [npm](https://www.npmjs.com/package/@theqrl/web3-qrl-qrns) | [API](https://docs.theqrl.org/api/web3-qrl-qrns) | Quantum Resistant Name Service helpers. |
| [`@theqrl/web3-rpc-methods`](https://github.com/theQRL/web3.js/tree/main/packages/web3-rpc-methods) | [npm](https://www.npmjs.com/package/@theqrl/web3-rpc-methods) | [API](https://docs.theqrl.org/api/web3-rpc-methods) | Low-level RPC method wrappers. |
| [`@theqrl/web3-types`](https://github.com/theQRL/web3.js/tree/main/packages/web3-types) | [npm](https://www.npmjs.com/package/@theqrl/web3-types) | [API](https://docs.theqrl.org/api/web3-types) | Shared TypeScript types. |
| [`@theqrl/web3-utils`](https://github.com/theQRL/web3.js/tree/main/packages/web3-utils) | [npm](https://www.npmjs.com/package/@theqrl/web3-utils) | [API](https://docs.theqrl.org/api/web3-utils) | Utility functions for QRL applications. |
| [`@theqrl/web3-validator`](https://github.com/theQRL/web3.js/tree/main/packages/web3-validator) | [npm](https://www.npmjs.com/package/@theqrl/web3-validator) | [API](https://docs.theqrl.org/api/web3-validator) | Runtime validation helpers. |
| [`@theqrl/web3-packagetemplate`](https://github.com/theQRL/web3.js/tree/main/tools/web3-packagetemplate) | [npm](https://www.npmjs.com/package/@theqrl/web3-packagetemplate) | - | Package template for maintainers. |
| [`@theqrl/web3-plugin-example`](https://github.com/theQRL/web3.js/tree/main/tools/web3-plugin-example) | [npm](https://www.npmjs.com/package/@theqrl/web3-plugin-example) | - | Example plugin package. |

## Package.json Scripts

| Script | Description |
| ---------------- | ------------------------------------------------------------------ |
| clean | Uses `rimraf` to remove `dist/` |
| build | Uses `tsc` to build all packages |
| lint | Uses `eslint` to lint all packages |
| lint:fix | Uses `eslint` to check and fix any warnings |
| format | Uses `prettier` to format the code |
| test | Uses `jest` to run unit tests in each package |
| test:integration | Uses `jest` to run tests under `/test/integration` in each package |
| test:unit | Uses `jest` to run tests under `/test/unit` in each package |

[npm-url]: https://npmjs.org/package/@theqrl/web3
[downloads-image]: https://img.shields.io/npm/dm/@theqrl/web3?label=npm%20downloads