You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Web3.py调用合约owner()返回零地址,请求代码问题排查

问题分析与解决:Web3.py获取BAYC合约所有者返回零地址

核心结论

你的代码本身没有问题,返回零地址是合约的实际状态,而非代码错误。

具体说明

  1. 代码逻辑验证
    你的代码完全符合Web3.py读取合约view函数的标准流程:

    • 正确连接Infura主网节点
    • ABI包含owner()函数的完整定义
    • 调用contractInstance.functions.owner().call()的方式合规,无语法或用法错误
  2. 合约实际状态说明
    你查询的BAYC合约(地址0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D)项目方已调用renounceOwnership()函数主动放弃合约所有权,链上存储的owner变量因此被设置为零地址0x0000000000000000000000000000000000000000,这是合约的真实状态。

  3. 额外验证方法
    可通过读取合约的OwnershipTransferred事件确认所有权变更历史:

    # 获取最后一次所有权转移事件
    events = contractInstance.events.OwnershipTransferred.get_logs(fromBlock=0)
    print("最后一次所有权转移:", events[-1])
    

    输出会显示最后一次转移的newOwner为零地址,验证当前所有权状态。

内容的提问来源于stack exchange,提问作者Geo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 06:24:52