Solidity
在將與 Truffle 的契約部署到 Ganache 或 Kovan 後,獲取 JSON ABI 的最佳方式是什麼?
Remix 使得獲取 JSON ABI 變得如此容易。
在使用 Truffle 成功部署契約而無需利用 Remix 後,是否有人對如何最好地獲取 JSON ABI 有任何建議?
當你跑步時
$ truffle compile
truffle 為每個合約創建並保存一個 json 文件
/yourProjectPath/build/contracts
。在這個 json 文件中,你會找到 abi、字節碼、主題(如果你event
的智能合約中有任何內容)、函式定義等(我猜你明白了,我鼓勵你花一些時間了解該文件 -只是為了獲得廣泛的理解)。我個人在我的項目中使用 python。這是我如何自動將我的 abi 載入到我的腳本中以與我的契約進行交易(使用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']
你可以用你最喜歡的程式語言做同樣的事情,或者簡單地手動複製粘貼你的 abi。
@salanfe:你的答案是正確的。
不過 truffle 編譯器存在一些問題。我遇到了問題,尤其是沒有輸入參數的函式……
由於這個問題,我建議改用solc:
solcjs --abi path/to/your/contract.sol
希望能幫助到你。