在你的合约中,如果你有接收枚举类型的方法,你将如何从安全帽脚本传递参数?
contract SomeContract {
enum WinStatus {
PENDING,
LOST,
WON
}
WinStatus status;
function updateWinStatus(WinStatus _status) public {
status = _status;
}
}
Run Code Online (Sandbox Code Playgroud)
// in your hardhat script
...
await someContract.updateWinStatus() // how should i call it. bare in mind hardhat is setup using javascript not typescript in my case.
Run Code Online (Sandbox Code Playgroud)
我尝试传递一个数字,希望它能按顺序(索引)获取它。但我收到“无效的 BigNumber 值”。另外,我尝试传递像“PENDING”或“WinType.PENDING”这样的字符串:思考:
Javascript 本身不支持非常大的数字(最高uint256可达 Solidity 中支持的类型),因此 Ethers.js(包含在 Hardhat 中)接受BigNumber实例。
const myNumber = ethers.BigNumber.from("0") // pass the numeric value as a string
await someContract.updateWinStatus(myNumber) // pass the BigNumber instance
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1304 次 |
| 最近记录: |