nventuro / openzeppelin-contract-loader

Load contract ABIs from built artifacts and return contract objects

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

OpenZeppelin Contract Loader

NPM Package Build Status

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, // optional
  defaultGas, // optional - defaults to 8 million
});

Loading web3 contracts

const web3Loader = loader.web3;

// Load from artifacts built by the compiler (stored in .json files)
const ERC20 = web3Loader.fromArtifact('ERC20');

// Or load directly from an ABI
const abi = [ ... ];
const ERC20 = web3Loader.fromABI(abi);

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

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

Loading truffle contracts

const truffleLoader = loader.truffle;

// Load from artifacts built by the compiler (stored in .json files)
const ERC20 = truffleLoader.fromArtifact('ERC20');

// Or load directly from an ABI
const abi = [ ... ];
const ERC20 = truffleLoader.fromABI(abi);

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

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

About

Load contract ABIs from built artifacts and return contract objects

License:MIT License


Languages

Language:JavaScript 76.3%Language:TypeScript 21.5%Language:Shell 2.2%