You need to enable JavaScript to run this app. Solidity中如何从IERC20代币实例获取对应ERC-20合约地址
优惠活动
大模型
产品
解决方案
定价
更多

Solidity中如何从IERC20代币实例获取对应ERC-20合约地址

正确获取对应ERC-20代币部署地址的写法

两个候选写法里,正确的是token.address,token.this是完全错误的写法。

具体说明

  • Solidity 语法体系中不存在 this.xxx 这类前端面向对象的实例属性调用规则:如果要获取当前执行合约本身的地址,标准写法是address(this),不存在把this作为属性挂载在其他合约实例上的用法,token.this本身就属于语法错误,编译阶段就会直接报错。
  • 所有合约类型的引用(包括IERC20这类接口类型的合约实例),Solidity 语言原生内置了 .address 成员属性,不需要你在接口定义里额外声明对应方法,直接调用就能拿到该实例指向的链上合约部署地址。

实际使用的代码参考:

// 你定义的public修饰的IERC20类型状态变量
IERC20 public token = IERC20(0xdAC17F958D2ee523a2206206994597C13D831ec7);

function getTokenAddr() public view returns(address) {
    // 直接调用.address属性即可拿到目标代币的部署地址
    return token.address;
}
  • 补充说明:你声明的token是public修饰的状态变量,合约编译时会自动生成同名的公共getter方法,外部调用这个getter返回的本身就是地址类型,不需要再额外拼接.address。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.04 13:06:05