Solidity

在將與 Truffle 的契約部署到 Ganache 或 Kovan 後,獲取 JSON ABI 的最佳方式是什麼?

  • December 21, 2021

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

希望能幫助到你。

引用自:https://ethereum.stackexchange.com/questions/38828