[Ethereum] the best way to get the JSON ABI after deploying a contract with Truffle to Ganache or Kovan

abisoliditytruffle

Remix makes it so easy to get the JSON ABI.

Does anyone have any recommendation on how best to get the JSON ABI after successfully deploying a contract using Truffle without having to leverage Remix?

Best Answer

when you run

$ truffle compile

truffle creates and saves a json file per contract in /yourProjectPath/build/contracts. In this json file you'll find the abi, the bytecode, the topics (if you have any event in your smart contract), the function definitions etc (you get the point I guess, I encourage you to spend some time understanding that file - just to get a broad understanding).

personally I use python for my projects. Here is how I automatically load my abi into my scripts for transacting with my contracts (using web3py)

import json

PATH_TRUFFLE_WK = '/home/myUserName/Projects/myEthereumProjet/'
truffleFile = json.load(open(PATH_TRUFFLE_WK + '/build/contracts/myContractName.json'))

abi = truffleFile['abi']
bytecode = truffleFile['bytecode']

You can do the same with your favorite programming language or simply copying-pasting your abi by hand.