4.0.2 • Published 11 months ago

@envatic/web3-eth-contract v4.0.2

Weekly downloads
-
License
LGPL-3.0
Repository
github
Last release
11 months ago

web3.js - Eth Contract Package

ES Version Node Version NPM Package Downloads

This is a sub-package of web3.js.

web3-eth-contract contains the contract package used in web3-eth.

Installation

You can install the package either using NPM or using Yarn

Using NPM

npm install web3-eth-contract

Using Yarn

yarn add web3-eth-contract

Getting Started

Prerequisites

Usage

You can initialize the typesafe Contract API instance with the following.

import { Contract } from 'web3-eth-contract';

const abi = [...] as const;

const contract = new Contract(abi);
  • We prefer that you use web3.eth.Contract API in normal usage.
  • The use of as const is necessary to have fully type-safe interface for the contract.
  • As the ABIs are not extensive in size, we suggest declaring them as const in your TS project.
  • This approach is more flexible and seamless compared to other approaches of off-line compiling ABIs to TS interfaces (such as TypeChain.

Compatibility

We have tested the Typescript interface support for the ABIs compiled with solidity version v0.4.x and above. If you face any issue regarding the contract typing, please create an issue to report to us.

The Typescript support for fixed length array types are supported up 30 elements. See more details here. This limitation is only to provide more performant developer experience in IDEs. In future we may come up with a workaround to avoid this limitation. If you have any idea feel free to share.

Package.json Scripts

ScriptDescription
cleanUses rimraf to remove dist/
buildUses tsc to build package and dependent packages
lintUses eslint to lint package
lint:fixUses eslint to check and fix any warnings
formatUses prettier to format the code
testUses jest to run unit tests
test:integrationUses jest to run tests under /test/integration
test:unitUses jest to run tests under /test/unit