diff --git a/CONTRIBUTIONS.md b/CONTRIBUTIONS.md index 95b072de..a3bf15a8 100644 --- a/CONTRIBUTIONS.md +++ b/CONTRIBUTIONS.md @@ -1,8 +1,10 @@ ## Guidelines for Pull Requests and Releases +_These guidelines are a work in progress and will be changed/updated as the project evolves._ + This document provides some ground rules for contributors (including the maintainer(s) of the project) about how to make, review and publish changes. The most basic requirement is -that **Web3 not break**. +that **this should not break**. ### Pull Requests for substantive changes (e.g. everything except comments and docs) @@ -45,7 +47,3 @@ Read more in [Release Guidelines](./RELEASE.md). ### Emergencies Emergency releases are allowed to shorten waiting periods depending on the severity of the issue. - -There is precedent set for this in the 1.2.6 release (see [#3351](https://github.com/ethereum/web3.js/pull/3351)), where the consensus view was to make the smallest change necessary to address the emergency while waiving the `rc` process (meaning many existing additions to master were excluded). - -This topic is under further org-wide discussion at [ethereum/js-organization#6](https://github.com/ethereum/js-organization/issues/6). diff --git a/README.md b/README.md index f3711ae5..474ec1ab 100644 --- a/README.md +++ b/README.md @@ -9,32 +9,32 @@ ![Contributors](https://img.shields.io/github/contributors/web3/web3.js?label=contributors%20on%20all%20branches) ![ES Version](https://img.shields.io/badge/ES-2020-yellow) -![Node Version](https://img.shields.io/badge/node-14.x-green) +![Node Version](https://img.shields.io/badge/node-18.x-green) -Web3.js is a TypeScript implementation of the [Zond JSON RPC API](https://eth.wiki/json-rpc/API) and related tooling maintained by [ChainSafe Systems](https://chainsafe.io). +Web3.js is a TypeScript implementation of the [Zond JSON RPC API](https://eth.wiki/json-rpc/API) and related tooling maintained by [The QRL Contributors](https://chainsafe.io). ## Installation -You can install the package either using [NPM](https://www.npmjs.com/package/web3) or using [Yarn](https://yarnpkg.com/package/web3) +You can install the package either using [NPM](https://www.npmjs.com/package/@theqrl/web3) or using [Yarn](https://yarnpkg.com/package/@theqrl/web3) -> If you wanna checkout latest bugfix or feature, use `npm install web3@dev` +> If you wanna checkout latest bugfix or feature, use `npm install @theqrl/web3@dev` ### Using NPM ```bash -npm install web3 +npm install @theqrl/web3 ``` ### Using Yarn ```bash -yarn add web3 +yarn add @theqrl/web3 ``` ## Getting Started -- :writing_hand: If you have questions [submit an issue](https://github.com/ChainSafe/web3.js/issues/new/choose) or join us on [Discord](https://discord.gg/yjyvFRP) - ![Discord](https://img.shields.io/discord/593655374469660673.svg?label=Discord&logo=discord) +- :writing_hand: 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 @@ -43,30 +43,32 @@ yarn add web3 ## Useful links -- [Web3 tree shaking support guide](https://docs.web3js.org/guides/advanced/web3_tree_shaking_support_guide/) +These links are for the Web3.js but should be useful pointers in the correct direction for theQRL/Web3.js as well. + +- [Web3 tree shaking support guide](https://docs.web3js.org/guides/advanced/tree_shaking) - [React App Example](https://github.com/ChainSafe/web3js-example-react-app) ## Architecture Overview | Package | Version | License | Docs | Description | | ------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | -| [web3](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3) | [![npm](https://img.shields.io/github/package-json/v/web3/web3.js/4.x?filename=packages%2Fweb3%2Fpackage.json)](https://www.npmjs.com/package/web3) | [![License: LGPL v3](https://img.shields.io/badge/License-LGPL%20v3-blue.svg)](https://www.gnu.org/licenses/lgpl-3.0) | [![documentation](https://img.shields.io/badge/typedoc-blue)](https://docs.web3js.org/api/web3) | :rotating_light: Entire Web3.js offering (includes all packages) | -| [web3-core](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-core) | [![npm](https://img.shields.io/github/package-json/v/web3/web3.js/4.x?filename=packages%2Fweb3-core%2Fpackage.json)](https://www.npmjs.com/package/web3-core) | [![License: LGPL v3](https://img.shields.io/badge/License-LGPL%20v3-blue.svg)](https://www.gnu.org/licenses/lgpl-3.0) | [![documentation](https://img.shields.io/badge/typedoc-blue)](https://docs.web3js.org/api/web3-core) | Core functions for web3.js packages | -| [web3-errors](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-errors) | [![npm](https://img.shields.io/github/package-json/v/web3/web3.js/4.x?filename=packages%2Fweb3-errors%2Fpackage.json)](https://www.npmjs.com/package/web3-core) | [![License: LGPL v3](https://img.shields.io/badge/License-LGPL%20v3-blue.svg)](https://www.gnu.org/licenses/lgpl-3.0) | [![documentation](https://img.shields.io/badge/typedoc-blue)](https://docs.web3js.org/api/web3-errors) | Errors Objects | -| [web3-zond](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-eth) | [![npm](https://img.shields.io/github/package-json/v/web3/web3.js/4.x?filename=packages%2Fweb3-eth%2Fpackage.json)](https://www.npmjs.com/package/web3-eth) | [![License: LGPL v3](https://img.shields.io/badge/License-LGPL%20v3-blue.svg)](https://www.gnu.org/licenses/lgpl-3.0) | [![documentation](https://img.shields.io/badge/typedoc-blue)](https://docs.web3js.org/api/web3-eth) | Modules to interact with the Zond blockchain and smart contracts | -| [web3-zond-abi](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-eth-abi) | [![npm](https://img.shields.io/github/package-json/v/web3/web3.js/4.x?filename=packages%2Fweb3-eth-abi%2Fpackage.json)](https://www.npmjs.com/package/web3-eth-abi) | [![License: LGPL v3](https://img.shields.io/badge/License-LGPL%20v3-blue.svg)](https://www.gnu.org/licenses/lgpl-3.0) | [![documentation](https://img.shields.io/badge/typedoc-blue)](https://docs.web3js.org/api/web3-eth-abi) | Functions for encoding and decoding ZVM in/output | -| [web3-zond-accounts](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-eth-accounts) | [![npm](https://img.shields.io/github/package-json/v/web3/web3.js/4.x?filename=packages%2Fweb3-eth-accounts%2Fpackage.json)](https://www.npmjs.com/package/web3-eth-accounts) | [![License: LGPL v3](https://img.shields.io/badge/License-LGPL%20v3-blue.svg)](https://www.gnu.org/licenses/lgpl-3.0) | [![documentation](https://img.shields.io/badge/typedoc-blue)](https://docs.web3js.org/api/web3-eth-accounts) | Functions for managing Zond accounts and signing | -| [web3-zond-contract](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-eth-contract) | [![npm](https://img.shields.io/github/package-json/v/web3/web3.js/4.x?filename=packages%2Fweb3-eth-contract%2Fpackage.json)](https://www.npmjs.com/package/web3-eth-contract) | [![License: LGPL v3](https://img.shields.io/badge/License-LGPL%20v3-blue.svg)](https://www.gnu.org/licenses/lgpl-3.0) | [![documentation](https://img.shields.io/badge/typedoc-blue)](https://docs.web3js.org/api/web3-eth-contract) | The contract package contained in [web3-zond](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-eth) | -| [web3-zond-ens](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-eth-ens) | [![npm](https://img.shields.io/github/package-json/v/web3/web3.js/4.x?filename=packages%2Fweb3-eth-ens%2Fpackage.json)](https://www.npmjs.com/package/web3-eth-ens) | [![License: LGPL v3](https://img.shields.io/badge/License-LGPL%20v3-blue.svg)](https://www.gnu.org/licenses/lgpl-3.0) | [![documentation](https://img.shields.io/badge/typedoc-blue)](https://docs.web3js.org/api/web3-eth-ens) | Functions for interacting with the Ethereum Name Service | -| [web3-zond-iban](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-eth-iban) | [![npm](https://img.shields.io/github/package-json/v/web3/web3.js/4.x?filename=packages%2Fweb3-eth-iban%2Fpackage.json)](https://www.npmjs.com/package/web3-eth-iban) | [![License: LGPL v3](https://img.shields.io/badge/License-LGPL%20v3-blue.svg)](https://www.gnu.org/licenses/lgpl-3.0) | [![documentation](https://img.shields.io/badge/typedoc-blue)](https://docs.web3js.org/api/web3-eth-iban) | Functionality for converting Zond addressed to IBAN addressed and vice versa | -| [web3-net](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-net) | [![npm](https://img.shields.io/github/package-json/v/web3/web3.js/4.x?filename=packages%2Fweb3-net%2Fpackage.json)](https://www.npmjs.com/package/web3-net) | [![License: LGPL v3](https://img.shields.io/badge/License-LGPL%20v3-blue.svg)](https://www.gnu.org/licenses/lgpl-3.0) | [![documentation](https://img.shields.io/badge/typedoc-blue)](https://docs.web3js.org/api/web3-net) | Functions to interact with an Zond node's network properties | -| [web3-providers-http](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-providers-http) | [![npm](https://img.shields.io/github/package-json/v/web3/web3.js/4.x?filename=packages%2Fweb3-providers-http%2Fpackage.json)](https://www.npmjs.com/package/web3-providers-http) | [![License: LGPL v3](https://img.shields.io/badge/License-LGPL%20v3-blue.svg)](https://www.gnu.org/licenses/lgpl-3.0) | [![documentation](https://img.shields.io/badge/typedoc-blue)](https://docs.web3js.org/api/web3-providers-http) | Web3.js provider for the HTTP protocol | -| [web3-providers-ipc](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-providers-ipc) | [![npm](https://img.shields.io/github/package-json/v/web3/web3.js/4.x?filename=packages%2Fweb3-providers-ipc%2Fpackage.json)](https://www.npmjs.com/package/web3-providers-ipc) | [![License: LGPL v3](https://img.shields.io/badge/License-LGPL%20v3-blue.svg)](https://www.gnu.org/licenses/lgpl-3.0) | [![documentation](https://img.shields.io/badge/typedoc-blue)](https://docs.web3js.org/api/web3-providers-ipc) | Web3.js provider for IPC | -| [web3-providers-ws](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-providers-ws) | [![npm](https://img.shields.io/github/package-json/v/web3/web3.js/4.x?filename=packages%2Fweb3-providers-ws%2Fpackage.json)](https://www.npmjs.com/package/web3-providers-ws) | [![License: LGPL v3](https://img.shields.io/badge/License-LGPL%20v3-blue.svg)](https://www.gnu.org/licenses/lgpl-3.0) | [![documentation](https://img.shields.io/badge/typedoc-blue)](https://docs.web3js.org/api/web3-providers-ws) | Web3.js provider for the Websocket protocol | -| [web3-rpc-methods](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-rpc-methods) | [![npm](https://img.shields.io/github/package-json/v/web3/web3.js/4.x?filename=packages%2Fweb3-rpc-methods%2Fpackage.json)](https://www.npmjs.com/package/web3-types) | [![License: LGPL v3](https://img.shields.io/badge/License-LGPL%20v3-blue.svg)](https://www.gnu.org/licenses/lgpl-3.0) | [![documentation](https://img.shields.io/badge/typedoc-blue)](https://docs.web3js.org/api/) | RPC Methods | -| [web3-types](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-types) | [![npm](https://img.shields.io/github/package-json/v/web3/web3.js/4.x?filename=packages%2Fweb3-types%2Fpackage.json)](https://www.npmjs.com/package/web3-types) | [![License: LGPL v3](https://img.shields.io/badge/License-LGPL%20v3-blue.svg)](https://www.gnu.org/licenses/lgpl-3.0) | [![documentation](https://img.shields.io/badge/typedoc-blue)](https://docs.web3js.org/api/web3-types) | Shared useable types | -| [web3-utils](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-utils) | [![npm](https://img.shields.io/github/package-json/v/web3/web3.js/4.x?filename=packages%2Fweb3-utils%2Fpackage.json)](https://www.npmjs.com/package/web3-utils) | [![License: LGPL v3](https://img.shields.io/badge/License-LGPL%20v3-blue.svg)](https://www.gnu.org/licenses/lgpl-3.0) | [![documentation](https://img.shields.io/badge/typedoc-blue)](https://docs.web3js.org/api/web3-utils) | Useful utility functions for Dapp developers | -| [web3-validator](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-validator) | [![npm](https://img.shields.io/github/package-json/v/web3/web3.js/4.x?filename=packages%2Fweb3-validator%2Fpackage.json)](https://www.npmjs.com/package/web3-validator) | [![License: LGPL v3](https://img.shields.io/badge/License-LGPL%20v3-blue.svg)](https://www.gnu.org/licenses/lgpl-3.0) | [![documentation](https://img.shields.io/badge/typedoc-blue)](https://docs.web3js.org/api/web3-validator) | Utilities for validating objects | +| [web3](https://github.com/theqrl/web3.js/tree/main/packages/web3) | [![npm](https://img.shields.io/github/package-json/v/web3/web3.js/main?filename=packages%2Fweb3%2Fpackage.json)](https://www.npmjs.com/package/@theqrl/web3) | [![License: LGPL v3](https://img.shields.io/badge/License-LGPL%20v3-blue.svg)](https://www.gnu.org/licenses/lgpl-3.0) | [![documentation](https://img.shields.io/badge/typedoc-blue)](https://docs.theqrl.org/api/web3) | :rotating_light: Entire Web3.js offering (includes all packages) | +| [web3-core](https://github.com/theqrl/web3.js/tree/main/packages/web3-core) | [![npm](https://img.shields.io/github/package-json/v/web3/web3.js/main?filename=packages%2Fweb3-core%2Fpackage.json)](https://www.npmjs.com/package/@theqrl/web3-core) | [![License: LGPL v3](https://img.shields.io/badge/License-LGPL%20v3-blue.svg)](https://www.gnu.org/licenses/lgpl-3.0) | [![documentation](https://img.shields.io/badge/typedoc-blue)](https://docs.theqrl.org/api/web3-core) | Core functions for web3.js packages | +| [web3-errors](https://github.com/theqrl/web3.js/tree/main/packages/web3-errors) | [![npm](https://img.shields.io/github/package-json/v/web3/web3.js/main?filename=packages%2Fweb3-errors%2Fpackage.json)](https://www.npmjs.com/package/@theqrl/web3-core) | [![License: LGPL v3](https://img.shields.io/badge/License-LGPL%20v3-blue.svg)](https://www.gnu.org/licenses/lgpl-3.0) | [![documentation](https://img.shields.io/badge/typedoc-blue)](https://docs.theqrl.org/api/web3-errors) | Errors Objects | +| [web3-zond](https://github.com/theqrl/web3.js/tree/main/packages/web3-zond) | [![npm](https://img.shields.io/github/package-json/v/web3/web3.js/main?filename=packages%2Fweb3-eth%2Fpackage.json)](https://www.npmjs.com/package/@theqrl/web3-eth) | [![License: LGPL v3](https://img.shields.io/badge/License-LGPL%20v3-blue.svg)](https://www.gnu.org/licenses/lgpl-3.0) | [![documentation](https://img.shields.io/badge/typedoc-blue)](https://docs.theqrl.org/api/web3-eth) | Modules to interact with the Zond blockchain and smart contracts | +| [web3-zond-abi](https://github.com/theqrl/web3.js/tree/main/packages/web3-zond-abi) | [![npm](https://img.shields.io/github/package-json/v/web3/web3.js/main?filename=packages%2Fweb3-zond-abi%2Fpackage.json)](https://www.npmjs.com/package/@theqrl/web3-zond-abi) | [![License: LGPL v3](https://img.shields.io/badge/License-LGPL%20v3-blue.svg)](https://www.gnu.org/licenses/lgpl-3.0) | [![documentation](https://img.shields.io/badge/typedoc-blue)](https://docs.theqrl.org/api/web3-zond-abi) | Functions for encoding and decoding ZVM in/output | +| [web3-zond-accounts](https://github.com/theqrl/web3.js/tree/main/packages/web3-zond-accounts) | [![npm](https://img.shields.io/github/package-json/v/web3/web3.js/main?filename=packages%2Fweb3-zond-accounts%2Fpackage.json)](https://www.npmjs.com/package/@theqrl/web3-zond-accounts) | [![License: LGPL v3](https://img.shields.io/badge/License-LGPL%20v3-blue.svg)](https://www.gnu.org/licenses/lgpl-3.0) | [![documentation](https://img.shields.io/badge/typedoc-blue)](https://docs.theqrl.org/api/web3-zond-accounts) | Functions for managing Zond accounts and signing | +| [web3-zond-contract](https://github.com/theqrl/web3.js/tree/main/packages/web3-zond-contract) | [![npm](https://img.shields.io/github/package-json/v/web3/web3.js/main?filename=packages%2Fweb3-zond-contract%2Fpackage.json)](https://www.npmjs.com/package/@theqrl/web3-zond-contract) | [![License: LGPL v3](https://img.shields.io/badge/License-LGPL%20v3-blue.svg)](https://www.gnu.org/licenses/lgpl-3.0) | [![documentation](https://img.shields.io/badge/typedoc-blue)](https://docs.theqrl.org/api/web3-zond-contract) | The contract package contained in [web3-zond](https://github.com/theqrl/web3.js/tree/main/packages/web3-zond) | +| [web3-zond-ens](https://github.com/theqrl/web3.js/tree/main/packages/web3-zond-ens) | [![npm](https://img.shields.io/github/package-json/v/web3/web3.js/main?filename=packages%2Fweb3-zond-ens%2Fpackage.json)](https://www.npmjs.com/package/@theqrl/web3-zond-ens) | [![License: LGPL v3](https://img.shields.io/badge/License-LGPL%20v3-blue.svg)](https://www.gnu.org/licenses/lgpl-3.0) | [![documentation](https://img.shields.io/badge/typedoc-blue)](https://docs.theqrl.org/api/web3-zond-ens) | Functions for interacting with the Ethereum Name Service | +| [web3-zond-iban](https://github.com/theqrl/web3.js/tree/main/packages/web3-zond-iban) | [![npm](https://img.shields.io/github/package-json/v/web3/web3.js/main?filename=packages%2Fweb3-zond-iban%2Fpackage.json)](https://www.npmjs.com/package/@theqrl/web3-zond-iban) | [![License: LGPL v3](https://img.shields.io/badge/License-LGPL%20v3-blue.svg)](https://www.gnu.org/licenses/lgpl-3.0) | [![documentation](https://img.shields.io/badge/typedoc-blue)](https://docs.theqrl.org/api/web3-zond-iban) | Functionality for converting Zond addressed to IBAN addressed and vice versa | +| [web3-net](https://github.com/theqrl/web3.js/tree/main/packages/web3-net) | [![npm](https://img.shields.io/github/package-json/v/web3/web3.js/main?filename=packages%2Fweb3-net%2Fpackage.json)](https://www.npmjs.com/package/@theqrl/web3-net) | [![License: LGPL v3](https://img.shields.io/badge/License-LGPL%20v3-blue.svg)](https://www.gnu.org/licenses/lgpl-3.0) | [![documentation](https://img.shields.io/badge/typedoc-blue)](https://docs.theqrl.org/api/web3-net) | Functions to interact with an Zond node's network properties | +| [web3-providers-http](https://github.com/theqrl/web3.js/tree/main/packages/web3-providers-http) | [![npm](https://img.shields.io/github/package-json/v/web3/web3.js/main?filename=packages%2Fweb3-providers-http%2Fpackage.json)](https://www.npmjs.com/package/@theqrl/web3-providers-http) | [![License: LGPL v3](https://img.shields.io/badge/License-LGPL%20v3-blue.svg)](https://www.gnu.org/licenses/lgpl-3.0) | [![documentation](https://img.shields.io/badge/typedoc-blue)](https://docs.theqrl.org/api/web3-providers-http) | Web3.js provider for the HTTP protocol | +| [web3-providers-ipc](https://github.com/theqrl/web3.js/tree/main/packages/web3-providers-ipc) | [![npm](https://img.shields.io/github/package-json/v/web3/web3.js/main?filename=packages%2Fweb3-providers-ipc%2Fpackage.json)](https://www.npmjs.com/package/@theqrl/web3-providers-ipc) | [![License: LGPL v3](https://img.shields.io/badge/License-LGPL%20v3-blue.svg)](https://www.gnu.org/licenses/lgpl-3.0) | [![documentation](https://img.shields.io/badge/typedoc-blue)](https://docs.theqrl.org/api/web3-providers-ipc) | Web3.js provider for IPC | +| [web3-providers-ws](https://github.com/theqrl/web3.js/tree/main/packages/web3-providers-ws) | [![npm](https://img.shields.io/github/package-json/v/web3/web3.js/main?filename=packages%2Fweb3-providers-ws%2Fpackage.json)](https://www.npmjs.com/package/@theqrl/web3-providers-ws) | [![License: LGPL v3](https://img.shields.io/badge/License-LGPL%20v3-blue.svg)](https://www.gnu.org/licenses/lgpl-3.0) | [![documentation](https://img.shields.io/badge/typedoc-blue)](https://docs.theqrl.org/api/web3-providers-ws) | Web3.js provider for the Websocket protocol | +| [web3-rpc-methods](https://github.com/theqrl/web3.js/tree/main/packages/web3-rpc-methods) | [![npm](https://img.shields.io/github/package-json/v/web3/web3.js/main?filename=packages%2Fweb3-rpc-methods%2Fpackage.json)](https://www.npmjs.com/package/@theqrl/web3-types) | [![License: LGPL v3](https://img.shields.io/badge/License-LGPL%20v3-blue.svg)](https://www.gnu.org/licenses/lgpl-3.0) | [![documentation](https://img.shields.io/badge/typedoc-blue)](https://docs.theqrl.org/api/) | RPC Methods | +| [web3-types](https://github.com/theqrl/web3.js/tree/main/packages/web3-types) | [![npm](https://img.shields.io/github/package-json/v/web3/web3.js/main?filename=packages%2Fweb3-types%2Fpackage.json)](https://www.npmjs.com/package/@theqrl/web3-types) | [![License: LGPL v3](https://img.shields.io/badge/License-LGPL%20v3-blue.svg)](https://www.gnu.org/licenses/lgpl-3.0) | [![documentation](https://img.shields.io/badge/typedoc-blue)](https://docs.theqrl.org/api/web3-types) | Shared useable types | +| [web3-utils](https://github.com/theqrl/web3.js/tree/main/packages/web3-utils) | [![npm](https://img.shields.io/github/package-json/v/web3/web3.js/main?filename=packages%2Fweb3-utils%2Fpackage.json)](https://www.npmjs.com/package/@theqrl/web3-utils) | [![License: LGPL v3](https://img.shields.io/badge/License-LGPL%20v3-blue.svg)](https://www.gnu.org/licenses/lgpl-3.0) | [![documentation](https://img.shields.io/badge/typedoc-blue)](https://docs.theqrl.org/api/web3-utils) | Useful utility functions for Dapp developers | +| [web3-validator](https://github.com/theqrl/web3.js/tree/main/packages/web3-validator) | [![npm](https://img.shields.io/github/package-json/v/web3/web3.js/main?filename=packages%2Fweb3-validator%2Fpackage.json)](https://www.npmjs.com/package/@theqrl/web3-validator) | [![License: LGPL v3](https://img.shields.io/badge/License-LGPL%20v3-blue.svg)](https://www.gnu.org/licenses/lgpl-3.0) | [![documentation](https://img.shields.io/badge/typedoc-blue)](https://docs.theqrl.org/api/web3-validator) | Utilities for validating objects | ## Package.json Scripts diff --git a/RELEASE.md b/RELEASE.md index feb3295b..990c88cc 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -1,8 +1,10 @@ -# web3.js Release Guidelines +# @theqrl/web3.js Release Guidelines + +_This document has not yet been fully ported from the original web3.js repository. It is a work in progress and will be updated in the future._ ## Version Number Definition -The web3.js project follows the [semver 2.0.0 specification](https://semver.org/). +The @theqrl/web3.js project follows the [semver 2.0.0 specification](https://semver.org/). ### Major @@ -44,7 +46,7 @@ Further details about versioning can be found in the [semver 2.0.0 specification 8. `git tag bumped-version`: Tag the commit with bumped version having prefix `v` , e.g. `git tag v4.0.1-alpha.0` 9. `git push origin release/bumped-version`: Push release branch to `origin` 10. `git push origin --tags`: Push release tag created in `Step 8` to `origin` -11. Create a draft release on Github similar to [this](https://github.com/ChainSafe/web3.js/releases/tag/web3-providers-base%401.0.0-alpha.1) +11. Create a draft release on Github similar to [this Chainsafe example](https://github.com/chainsafe/web3.js/releases/tag/web3-providers-base%401.0.0-alpha.1) - Check `This is a pre-release` - In the release description, copy all entries in `CHANGELOG.md` for the version being released 12. Click `Save draft` diff --git a/docs/docs/guides/advanced/support_additional_rpc_methods/index.md b/docs/docs/guides/advanced/support_additional_rpc_methods/index.md index b685b292..ad0b44ca 100644 --- a/docs/docs/guides/advanced/support_additional_rpc_methods/index.md +++ b/docs/docs/guides/advanced/support_additional_rpc_methods/index.md @@ -24,7 +24,7 @@ This will give your plugin access to [requestManager](/api/web3-core/class/Web3C :::caution ```ts -import { Web3PluginBase } from 'web3'; +import { Web3PluginBase } from '@theqrl/web3'; export default class CustomRpcMethodsPlugin extends Web3PluginBase { // step 1 @@ -35,7 +35,7 @@ export default class CustomRpcMethodsPlugin extends Web3PluginBase { 2. After that add public `pluginNamespace` property. This will be used to access your plugin, as mentioned in step number 5 code example. ```ts -import { Web3PluginBase } from 'web3'; +import { Web3PluginBase } from '@theqrl/web3'; export default class CustomRpcMethodsPlugin extends Web3PluginBase { public pluginNamespace = 'customRpcMethods'; // step 2 @@ -45,7 +45,7 @@ export default class CustomRpcMethodsPlugin extends Web3PluginBase { 3. Once plugin class is created using above mentioned steps, its very easy to add new RPC methods like: ```ts -import { Web3PluginBase } from 'web3'; +import { Web3PluginBase } from '@theqrl/web3'; export default class CustomRpcMethodsPlugin extends Web3PluginBase { public pluginNamespace = 'customRpcMethods'; @@ -64,7 +64,7 @@ export default class CustomRpcMethodsPlugin extends Web3PluginBase { 4. Final step is setting up module [augmentation](https://www.typescriptlang.org/docs/handbook/declaration-merging.html#module-augmentation), this will allow you to access plugin on web3 object. ```ts -import { Web3PluginBase } from 'web3'; +import { Web3PluginBase } from '@theqrl/web3'; export default class CustomRpcMethodsPlugin extends Web3PluginBase { public pluginNamespace = 'customRpcMethods'; @@ -79,7 +79,7 @@ export default class CustomRpcMethodsPlugin extends Web3PluginBase { } // Module Augmentation -declare module 'web3' { +declare module '@theqrl/web3' { // step 4 interface Web3Context { @@ -99,8 +99,8 @@ After the plugin is ready, it is recommended to publish it on the NPM registry. Once plugin is registered its custom methods will be available to use. ```ts -import { Web3 } from 'web3'; -import CustomRpcMethodsPlugin from 'web3-plugin-example'; +import { Web3 } from '@theqrl/web3'; +import CustomRpcMethodsPlugin from '@theqrl/web3-plugin-example'; const web3 = new Web3('http://127.0.0.1:8545'); web3.registerPlugin(new CustomRpcMethodsPlugin()); // step 5 @@ -112,6 +112,6 @@ web3.customRpcMethods.customRpcMethod(); For more details follow : -- [Example Plugin Code](https://github.com/web3/web3.js/tree/4.x/tools/web3-plugin-example) +- [Example Plugin Code](https://github.com/theqrl/web3.js/tree/main/tools/web3-plugin-example) - [Web3 Plugin developers Guide](/guides/web3_plugin_guide/plugin_authors) - [Web3 Plugin Users Guide](/guides/web3_plugin_guide/plugin_users) diff --git a/docs/docs/guides/advanced/web3_tree_shaking_support_guide/index.md b/docs/docs/guides/advanced/web3_tree_shaking_support_guide/index.md index 5db3c7e9..906365ea 100644 --- a/docs/docs/guides/advanced/web3_tree_shaking_support_guide/index.md +++ b/docs/docs/guides/advanced/web3_tree_shaking_support_guide/index.md @@ -34,10 +34,10 @@ For further information about `sideEffects` see [webpack docs](https://webpack.j import Web3Zond from '@theqrl/web3-zond'; ``` -If you only need a few functions from `web3-utils`: +If you only need a few functions from `@theqrl/web3-utils`: ```ts -import { numberToHex, hexToNumber } from 'web3-utils'; +import { numberToHex, hexToNumber } from '@theqrl/web3-utils'; ``` You can find an example app with tree shaking [here](https://github.com/ChainSafe/web3js-example-react-app). diff --git a/docs/docs/guides/basics/sign_and_send_tx/local_wallet.md b/docs/docs/guides/basics/sign_and_send_tx/local_wallet.md index a3d78cec..2e546fc4 100644 --- a/docs/docs/guides/basics/sign_and_send_tx/local_wallet.md +++ b/docs/docs/guides/basics/sign_and_send_tx/local_wallet.md @@ -11,7 +11,7 @@ The simplest way to sign and send transactions is using a local wallet: ```ts // First step: initialize `web3` instance -import Web3 from 'web3'; +import Web3 from '@theqrl/web3'; const web3 = new Web3(/* PROVIDER*/); // Second step: add an account to wallet @@ -45,7 +45,7 @@ List of references: ```ts // First step: initialize `web3` instance -import Web3 from 'web3'; +import Web3 from '@theqrl/web3'; const web3 = new Web3(/* PROVIDER*/); // Second step: add an account to wallet diff --git a/docs/docs/guides/basics/sign_and_send_tx/wallet_of_zond_node.md b/docs/docs/guides/basics/sign_and_send_tx/wallet_of_zond_node.md index e3f95993..4ea60ea5 100644 --- a/docs/docs/guides/basics/sign_and_send_tx/wallet_of_zond_node.md +++ b/docs/docs/guides/basics/sign_and_send_tx/wallet_of_zond_node.md @@ -11,7 +11,7 @@ If Zond node has unlocked account in its wallet you can send transaction without ```ts // First step: initialize web3 instance -import Web3 from 'web3'; +import Web3 from '@theqrl/web3'; const web3 = new Web3(/* PROVIDER*/); // Second step: sign and send the transaction @@ -37,7 +37,7 @@ List of references: ```ts // First step: initialize web3 instance -import Web3 from 'web3'; +import Web3 from '@theqrl/web3'; const web3 = new Web3(/* PROVIDER*/); // Second step: sign and send the transaction diff --git a/docs/docs/guides/basics/zond.md b/docs/docs/guides/basics/zond.md index 1879898b..de06a331 100644 --- a/docs/docs/guides/basics/zond.md +++ b/docs/docs/guides/basics/zond.md @@ -31,8 +31,8 @@ Before we start writing and deploying our contract, we need to set up our enviro First, create a new project directory for your project and navigate into it: ``` -mkdir web3-eth-tutorial -cd web3-eth-tutorial +mkdir web3-zond-tutorial +cd web3-zond-tutorial ``` Next, initialize a new Node.js project using npm: @@ -57,7 +57,7 @@ In this step, we will set up the web3.js library and connect to the Ganache netw First, install the `web3` package using npm: ``` -npm install @theqrl/web3@4.0.1-rc.1 +npm install @theqrl/web3 ``` Note that we are installing the latest version of 4.x, at the time of this tutorial writing. You can check the latest version at https://www.npmjs.com/package/@theqrl/web3?activeTab=versions @@ -65,7 +65,7 @@ Note that we are installing the latest version of 4.x, at the time of this tutor Next, create a new file called `index.ts` in your project directory and add the following code to it: ```javascript -const { Web3 } = require('web3'); // web3.js has native ESM builds and (`import Web3 from 'web3'`) +const { Web3 } = require('@theqrl/web3'); // web3.js has native ESM builds and (`import Web3 from '@theqrl/web3'`) // Set up a connection to the Ganache network const web3 = new Web3(new Web3.providers.HttpProvider('http://localhost:7545')); @@ -99,7 +99,7 @@ In the first example, we are going to send a simple value transaction. Create a file named `transaction.ts` and fill it with the following code: ```typescript -const { Web3 } = require('web3'); // web3.js has native ESM builds and (`import Web3 from 'web3'`) +const { Web3 } = require('@theqrl/web3'); // web3.js has native ESM builds and (`import Web3 from '@theqrl/web3'`) const fs = require('fs'); const path = require('path'); @@ -202,7 +202,7 @@ transactionHash { In the next example, we are going to use `estimateGas` function to see the expected gas for contract deployment. (For more on contracts, please see the corresponding tutotial). Create a file named `estimate.ts` and fill it with the following code: ```typescript -import Web3, { ZOND_DATA_FORMAT, DEFAULT_RETURN_FORMAT } from 'web3'; +import Web3, { ZOND_DATA_FORMAT, DEFAULT_RETURN_FORMAT } from '@theqrl/web3'; async function estimate() { // abi of our contract @@ -284,7 +284,7 @@ If everything is working correctly, you should see something like the following: In the next example we are going to sign a transaction and use `sendSignedTransaction` to send the signed transaction. Create a file named `sendSigned.ts` and fill it with the following code: ```typescript -import Web3 from 'web3'; +import Web3 from '@theqrl/web3'; const web3 = new Web3('http://localhost:7545'); //make sure to copy the private key from ganache @@ -347,7 +347,7 @@ Transaction receipt: { ## Conclusion -In this tutorial, we learned how to use different methods provied by the `web3-eth` package. +In this tutorial, we learned how to use different methods provided by the `@theqrl/web3` package. With this knowledge, you can start experimenting with the Zond blockchain. Keep in mind that this is just the beginning, and there is a lot more to learn about Zond and web3.js. So keep exploring and building, and have fun! diff --git a/docs/docs/guides/smart_contracts/deploying_and_interacting_with_smart_contracts.md b/docs/docs/guides/smart_contracts/deploying_and_interacting_with_smart_contracts.md index 0ebdcd30..ad11866a 100644 --- a/docs/docs/guides/smart_contracts/deploying_and_interacting_with_smart_contracts.md +++ b/docs/docs/guides/smart_contracts/deploying_and_interacting_with_smart_contracts.md @@ -182,7 +182,7 @@ Note that we are installing the latest version of 4.x, at the time of this tutor Next, create a new file called `index.js` in your project directory and add the following code to it: ```javascript -const { Web3 } = require('web3'); // web3.js has native ESM builds and (`import Web3 from 'web3'`) +const { Web3 } = require('@theqrl/web3'); // web3.js has native ESM builds and (`import Web3 from '@theqrl/web3'`) // Set up a connection to the Ganache network const web3 = new Web3(new Web3.providers.HttpProvider('http://localhost:7545')); @@ -217,7 +217,7 @@ Create a file named `deploy.js` and fill it with the following code: ```javascript // For simplicity we use `web3` package here. However, if you are concerned with the size, // you may import individual packages like 'web3-zond', 'web3-zond-contract' and 'web3-providers-http'. -const { Web3 } = require('web3'); // web3.js has native ESM builds and (`import Web3 from 'web3'`) +const { Web3 } = require('@theqrl/web3'); // web3.js has native ESM builds and (`import Web3 from '@theqrl/web3'`) const fs = require('fs'); const path = require('path'); @@ -293,7 +293,7 @@ In this step, we will use web3.js to interact with the smart contract on the Gan Create a file named `interact.js` and fill it with the following code: ```javascript -const { Web3 } = require('web3'); // web3.js has native ESM builds and (`import Web3 from 'web3'`) +const { Web3 } = require('@theqrl/web3'); // web3.js has native ESM builds and (`import Web3 from '@theqrl/web3'`) const fs = require('fs'); const path = require('path'); @@ -420,7 +420,7 @@ With this knowledge, you can start experimenting with writing smart contract in ## Additional Resources -- [Official web3.js Documentation](https://docs.web3js.org/) +- [Official web3.js Documentation](https://docs.theqrl.org/) - [Hyperion Documentation](https://solidity.readthedocs.io/) - [Ganache](https://www.trufflesuite.com/ganache) - [Truffle](https://trufflesuite.com/) diff --git a/docs/docs/guides/smart_contracts/infer_contract_types_guide/index.md b/docs/docs/guides/smart_contracts/infer_contract_types_guide/index.md index d01993ec..e89978be 100644 --- a/docs/docs/guides/smart_contracts/infer_contract_types_guide/index.md +++ b/docs/docs/guides/smart_contracts/infer_contract_types_guide/index.md @@ -11,7 +11,7 @@ Before we dive into the problem, let's take a quick look at the problem. Web3.js Web3.js uses ABI type to dynamically load available methods and events but Typescript currently [doesn't support loading JSON as const](https://github.com/microsoft/TypeScript/issues/32063). If you go to the [Playground Link](https://www.typescriptlang.org/play?#code/MYewdgzgLgBAhgIwJYwLwwNoCga5gbxz1wCIkwAHAVyghIC5MjjdCWWywoBTAJzDgAbACoBPCtwYwS0XuQDmJADTN20gQFtJjEpu4B9ZavYko47dNkKSxvAF8VagreKce-IWIlSZUOWEVHJ3U4LR8IUQ0EEEFDIKdTc3C-axcYO1sAXXi8XzgeAFkaRCRBJDMfMHAKOFFEQUkc0jNvHVBIPypgKBBeG2IHVTYOOCqwSJAqOkYAMyEIbibpcmpaKWwnYYTyABNuAA9uHalOxbTScncBESSdOB2d3m4IOiXXPR8QAHcwPiNg6QtCwke6PZ50NKDTbnZZgPaHY6MU5vXKXPjXLzA0FPF7-YK6ULAiASOF-FHNW7SbHg-pqKFqLZqTjwo5SOaCBbk2FXTyUkhUS4AJgArAA2PEJD46ABuQiojRhiVa0gFXBF4shWSWBLCOgAghQKLwQLLBBLckCfNxpdwuLTcPTWLYQWMJlM2fMziYVjRpkxoQDmQdWUjePKuW50bzlSCHjjXoqpdIZsaNOaTJa7nGaZCUYzvaSEScw178WiPDcY9TcRGk6YQOmOJmqdncbm0vmOLtg4iYOzOYryxi+aqoOrG+9CT5TfKJxaR0KxfaWBl2NlnXXhLxRhAZmTnc2SNbbVBl47nAXVn6NgzB1wo5Wsa2E4G699fn0I4fqxCnOfiJ2rhDtGT5gjWiZTjoxK2nsn6Kt+z7LgMWobpBVKCII3yjMAComJMUBXusHZ3jyj4+KO461mhJBzhSMYUUumprtq0D5NwRRQCUZQVDKSDcF8jZKsCMxUGA3RIOAZ45J2nCEYwN7sIBqL3hWmI+D+tEhLqlgkrBmlCepiHtgGZYqcO9GLuKVHaSCGiTHaX4LmqjF-ihJh1nAhrGjagn4XJ-q3oGwFkTo0QxPpdb6YeYVmkxLDriYrGFMUyDcaIlTVLU9S4U2fIiWJUASWAUlDM6PprPJxFBWZIGGWBL74h5wCgKJp6OVWRmucxqE2QgQjYdwADyMy+TQ-kKSwSkXDVIUqpZEXUVFTlji5dJuRwSXsSlpTlOlvH8YJh75eJkmqOeMnldeCUcHWezAEgGjzKNBG+kRJnbDNak6KOAAcC02UtFlcH9cXENdribRxXG7dOfECdqR2iSdxVndJZWUK9lXvUywVfS29X-USun7oGCEE8ZgWmaReP8vN1lElQCB+HA3RHAAanKOUJIeDEal18Xard3DAE8cALHqGFYWJXO5H5mMBYpJEPjTMWEz4gPAqroN4ODuSQ9taUZZQWUIA0h15UjhWnQMaOXvLE0AUrql8hp9PhMTcGky7nV0nmTvmcCvNq1mew7Bzgizu1gfzdruC66QdbkCL3Bi9wEuYV8A3PeNVVU8rfKq27Ogaz4Wv82DLGcclnGpTDOhjDUdSmzLdHCZbRUlY7dsVZg8dacCHzanLPcO3gU3cvnMZWAEwfSCXUEpDPscwH3eTV9DPHSNKcPmzGx1WyjNuld3V2C9RERROFQ9jfbucfdTfLT4EEEA1HyT+Ioy+r-rNc7ZvJDbwOgjC2BUO6o2Pl2DGI9V51h6JxQQABlKghpBDpWvi9Eed8cafWWpRF+wJ55zWcnzNa3VEpVy2r-Q2+14YHhAcjTuY90Y52xgWB+HUCZF0BA2N+Id4xIXsH7aq7Do7ENnrZeybV4K4NWuwVcAserAmZpAPcnsODD2vFgthk9NYgCvvg9WvDpBl1IQo8hbEoa13-g3E2ZtgF73btbQRECgJQM0awyBIi6r8K4SQFMIA0xGNjOTP8Qi87Ow4T4gxOgeiEOCfwimithE6PInTaJVI7KtTiUHL+Z8bLKN3HwAAYqmbOt8PGuK8aFPRZpfFxJMXI9aEMKGWL-ntdQmUm52LoQ40BTiHREEyPACAMB2jQAANxAA) and choose ".d.ts" you can check type difference with and without `as const`. ```typescript -import { Contract, Web3 } from 'web3'; +import { Contract, Web3 } from '@theqrl/web3'; import ERC20 from './node_modules/@openzeppelin/contracts/build/contracts/ERC20.json'; (async function () { @@ -100,7 +100,7 @@ and run the script with `node -r ts-node/register +