Chúng ta cần hai thứ để tương tác với một contract bất kỳ: address và ABI của contract.

  • Contract ABI: viết tắt của Application Binary Interface. Về cơ bản nó là dạng biểu diễn JSON của contract và sẽ được tạo ra trong quá trình biên dịch.
  • Contract address: là địa chỉ của smart contract sau khi nó được deploy lên blockchain. Địa chỉ này là cố định.

Hai giá trị này có thể có dạng như sau:

const { abi } = require('./build/contracts/MyContract.json');
const deployedAddress = '0x56cBc45068D84dE56Dd964956983Bc8145A17E28';

Sau khi có ABI và contract address thì ta khởi tạo instance của contract như sau:

var MyContract = new web3.eth.Contract(myABI, myContractAddress);