Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@openzeppelin/contract-loader

OpenZeppelin110.5kMIT0.6.3TypeScript support: included

Load contract ABIs from built artifacts and return contract objects

smart-contracts, solidity, ethereum, javascript, web3

readme

OpenZeppelin Contract Loader

Docs NPM Package Build Status

Load contract objects from built artifacts or ABIs. Includes support for both web3-eth-contract and @truffle/contract objects.

const { setupLoader } = require('@openzeppelin/contract-loader');
const loader = setupLoader({ provider: new Web3('http://localhost:8545') }).web3;

const address = '0xCfEB869F69431e42cdB54A4F4f105C19C080A601';
const erc20 = loader.fromArtifact('ERC20', address);

const totalSupply = await token.methods.totalSupply().call();

Overview

Installation

npm install @openzeppelin/contract-loader

You may also need to install web3-eth-contract or @truffle/contract, depending on which abstractions you want to be able to load.

Contract Loader requires access to the filesystem to read contract ABIs. Because of this, it will not work in a browser-based Dapp.

Usage

Create a loader object:

const { setupLoader } = require('@openzeppelin/contract-loader');

const loader = setupLoader({
  provider,      // either a web3 provider or a web3 instance
  defaultSender, // optional
  defaultGas,    // optional, defaults to 8 million
});

Load web3 contracts:

const ERC20 = loader.web3.fromArtifact('ERC20');

// Deploy contract
const token = await ERC20.deploy().send();

// Send transactions and query state
const balance = await token.methods.balanceOf(sender).call();
await token.methods.transfer(receiver, balance).send({ from: sender });

Load Truffle contracts:

const ERC20 = loader.truffle.fromArtifact('ERC20');

// Deploy contract
const token = await ERC20.new();

// Send transactions and query state
const balance = await token.balanceOf(sender);
await token.transfer(receiver, balance, { from: sender });

Learn More

  • For detailed usage information, take a look at the API Reference.

License

MIT.

changelog

Changelog

0.6.3 (2021-08-20)

  • Remove default gas price, for compatibility with the London hard fork.

0.6.2 (2020-10-27)

  • Remove try-require depedency as it caused issues in some cases.

0.6.1 (2020-01-20)

  • Added artifactsDir option. (#17)

0.6.0 (2019-12-26)

  • Made defaultSender and defaultGas optional, reduced default gas to 200k, added defaultGasPrice option. (6b543b, 971bdc, 9a71df)

0.5.0 (2019-11-16)

  • Renamed fromArtifacts to fromArtifact. (56c483)

0.4.0 (2019-11-8)

0.3.0 (2019-11-1)

  • Add support to @truffle/contract objects. (e95e5b)