0.6.3 • Published 4 years ago
@openzeppelin/contract-loader v0.6.3
OpenZeppelin Contract Loader
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-loaderYou 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.