我能从接口中得到ABI吗?
假设我有一个名为ContractInterfaceExample.sol的文件
// SPDX-License-Identifier: agpl-3.0
pragma solidity 0.6.12;
interface ContractInterfaceExample {
function doStuff(bool val) external;
}我能从web3.py中得到这个ABI吗?
# something like
import ContractInterfaceExample.sol?
w3 = Web3(Web3.HTTPProvider(os.getenv('RPC_URL')))
contract = w3.eth.contract(address=address, abi=???)发布于 2022-12-26 22:41:05
以下是我的方法:
async def DEXFetchAbi(addr):
try:
url = abiurl
params = {
"module": "contract",
"action": "getabi",
"address": addr,
"apikey": abiurltoken }
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'}
resp = requests.get(url, params=params, headers=headers).json()
abi = resp["result"]
if(abi!=""):
return abi使用addr= 0x10ED43C718714eb63d5A57B54704E256024E(煎饼交换https://bscscan.com/address/0x10ED43C718714eb63d5aA57B78B54704E256024E) abiurltoken = API来自https://bscscan.com,如果您试图在testnet上获得它,则可能需要报头,否则可以忽略它。
https://ethereum.stackexchange.com/questions/97909
复制相似问题