Ethereum Remix 在部署合约时会忽略某些函数参数吗?
Does Ethereum Remix ignore certain function parameters when deploying a contract?
我有一个使用 remix 开发的合同。复制合约并编写 mocha 测试后,我在 运行 部署测试时收到以下错误:
Error: Invalid number of parameters for "undefined"
1) "before each" hook for "deploys a contract":
Error: Invalid number of parameters for "undefined". Got 0 expected 1!
构造函数之前使用了一个参数&
我意识到我错误地将变量类型 address 作为我在测试中没有提供的测试(合同)构造函数的参数。删除参数(构造函数中未使用)后,测试通过。
function Test(address) public {...
它在混音中工作(没有 errors/warnings),正如我预期的那样,所以我在将代码复制到编辑器之前没有捕捉到它。
remix 在部署合约时会忽略错误参数吗?有没有办法在混音中捕捉到这个?
Does remix ignore unused parameters when it deploys a contract?
好吧,实际上当你没有使用参数时它会给你一个警告:
Warning: Unused function parameter. Remove or comment out the variable name to silence this warning. function demo(address _unused) public pure returns (uint8) {
但似乎如果你只提供没有名字的变量类型,那么 remix 就会忽略它:
Is there a way to catch this in remix?
如果无名变量的值存储在堆栈中,则可能会在 assembly 中捕获此类内容,但这是对 Solidity 代码的编译方式的深入研究,可能不符合目的只是测试。
我有一个使用 remix 开发的合同。复制合约并编写 mocha 测试后,我在 运行 部署测试时收到以下错误:
Error: Invalid number of parameters for "undefined"
1) "before each" hook for "deploys a contract": Error: Invalid number of parameters for "undefined". Got 0 expected 1!
构造函数之前使用了一个参数& 我意识到我错误地将变量类型 address 作为我在测试中没有提供的测试(合同)构造函数的参数。删除参数(构造函数中未使用)后,测试通过。
function Test(address) public {...
它在混音中工作(没有 errors/warnings),正如我预期的那样,所以我在将代码复制到编辑器之前没有捕捉到它。
remix 在部署合约时会忽略错误参数吗?有没有办法在混音中捕捉到这个?
Does remix ignore unused parameters when it deploys a contract?
好吧,实际上当你没有使用参数时它会给你一个警告:
Warning: Unused function parameter. Remove or comment out the variable name to silence this warning. function demo(address _unused) public pure returns (uint8) {
但似乎如果你只提供没有名字的变量类型,那么 remix 就会忽略它:
Is there a way to catch this in remix?
如果无名变量的值存储在堆栈中,则可能会在 assembly 中捕获此类内容,但这是对 Solidity 代码的编译方式的深入研究,可能不符合目的只是测试。