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

如何在Solidity中通过合约地址获取已部署的智能合约实例?

已知合约地址重新获取Solidity合约实例的方法

在Solidity中,无需调用特殊函数,直接通过合约类型地址转换就能实现需求,具体语法如下:

MySmartContract originalFoo = MySmartContract(fooAdress);

说明

只要当前代码中已经定义了MySmartContract的合约接口或完整代码,就可以直接将目标合约地址转换为对应的合约类型实例。转换完成后,originalFoo拥有和最初foo实例完全相同的调用权限,可正常调用合约的所有公开/外部方法。

完整示例

// 定义目标合约
contract MySmartContract {
    // 示例方法
    function doSomething() public pure returns(string memory) {
        return "Hello World";
    }
}

contract Example {
    function createAndRestore() public {
        // 创建合约实例
        MySmartContract foo = new MySmartContract();
        // 获取合约地址
        address fooAdress = address(foo);
        
        // 从地址恢复合约实例
        MySmartContract originalFoo = MySmartContract(fooAdress);
        
        // 验证:调用恢复后的实例方法
        string memory result = originalFoo.doSomething();
        // result 将返回 "Hello World"
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 23:30:18