@openzeppelin/contract-loader

0.6.3 • Public • Published

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.

Package Sidebar

Install

npm i @openzeppelin/contract-loader

Weekly Downloads

9,362

Version

0.6.3

License

MIT

Unpacked Size

80.4 kB

Total Files

8

Last publish

Collaborators

  • ernestognw
  • ericglau
  • frangio
  • amxx
  • mcarlomagno
  • collins-oz
  • dylkil
  • zeljkox
  • namis
  • tirumerla