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

如何通过Web3调用已部署Setup合约中model成员变量的函数?

解决方法

步骤1:获取Model合约的部署地址

Solidity中,public修饰的状态变量会自动生成一个同名的view类型getter函数,你可以直接调用setup_contract的model()方法获取Model合约的地址:

model_address = setup_contract.functions.model().call()

步骤2:准备Model合约的ABI

要调用Model合约的函数,你需要拥有Model合约的ABI(可从Model.sol编译产物中获取,或从部署记录里提取)。

步骤3:创建Model合约的实例

用获取到的model_address和Model的ABI,通过web3创建合约实例:

model_contract = w3.eth.contract(address=model_address, abi=model_abi)

步骤4:调用Model合约的函数

现在可以通过model_contract调用Model合约内的任意公开函数,比如如果Model里有solved()函数:

is_solved = model_contract.functions.solved().call()

额外说明

你提供的Setup.sol代码存在一处笔误:isSolved()函数里的magic.solved()应改为model.solved(),否则合约无法正常编译。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 02:23:11