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

如何在JavaScript测试中向Solidity合约函数传入常量地址变量

在JavaScript测试中传递常量地址到Solidity合约函数的方法

这事儿其实挺简单的,主流以太坊测试框架(比如Hardhat、Truffle)或者直接用Ethers.js都能轻松搞定——核心是Solidity的address类型在JavaScript里就对应带0x前缀的十六进制字符串,你的常量地址刚好就是这个格式,直接传就行。

具体操作示例(以Hardhat + Ethers.js为例)

  1. 先定义你的常量地址:
const addr = '0x...'; // 替换成你的实际常量地址
  1. 获取已部署的合约实例(测试脚本里通常会先完成合约部署):
const MyContract = await ethers.getContractFactory("YourContractName");
const myContract = await MyContract.deploy();
await myContract.deployed();
  1. 直接调用合约的temp函数,把常量地址传进去:
// 如果是写入型函数,用await等待交易上链;view/pure函数可省略await
await myContract.temp(addr);

额外注意事项

  • 确保常量地址格式正确:必须是带0x前缀的42位十六进制字符串(0x + 40位0-9、a-f字符)
  • 要是担心地址无效,可以用Ethers.js工具提前校验:
const isValid = ethers.utils.isAddress(addr);
if (!isValid) {
  throw new Error("Invalid address provided!");
}
  • 用Truffle的话逻辑完全一致,获取合约实例后直接调用方法传入地址字符串即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 18:22:45