Contract Loader
Load contract objects from built artifacts or ABIs. Includes support for both web3-eth-contract
and @truffle/contract
objects.
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.
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.