OpenZeppelin Contract Loader
Load contract objects from built artifacts or ABIs. Includes support for both web3-eth-contract and @truffle/contract objects.
Installation
npm install @openzeppelin/contract-loader
You will also need to install web3-eth-contract
and/or @truffle/contract
, depending on which abstractions you want to be able to load.
Usage
Basic setup
const { setupLoader } = require('@openzeppelin/contract-loader');
const loader = setupLoader({
provider,
defaultSender,
defaultGas,
});
Loading web3 contracts
const web3Loader = loader.web3;
const ERC20 = web3Loader.fromArtifacts('ERC20');
const abi = [ ... ];
const ERC20 = web3Loader.fromABI(abi);
const token = await ERC20.deploy().send();
const balance = await token.methods.balanceOf(sender).call();
await token.methods.transfer(receiver, balance).send({ from: sender });
Loading truffle contracts
const truffleLoader = loader.truffle;
const ERC20 = truffleLoader.fromArtifacts('ERC20');
const abi = [ ... ];
const ERC20 = truffleLoader.fromABI(abi);
const token = await ERC20.new();
const balance = await token.balanceOf(sender);
await token.transfer(receiver, balance, { from: sender });