【发布时间】:2020-10-02 19:48:47
【问题描述】:
TypeError:函数调用中的参数类型无效。从合约 spsTokenSale 到请求地址的隐式转换无效。 要求(tokenContract.balanceOf(this)>= _numberOfTokens);
函数调用中的参数类型无效。请求的从地址到应付地址的隐式转换无效。 自毁(管理员);
【问题讨论】:
标签: blockchain ethereum solidity truffle cryptocurrency
TypeError:函数调用中的参数类型无效。从合约 spsTokenSale 到请求地址的隐式转换无效。 要求(tokenContract.balanceOf(this)>= _numberOfTokens);
函数调用中的参数类型无效。请求的从地址到应付地址的隐式转换无效。 自毁(管理员);
【问题讨论】:
标签: blockchain ethereum solidity truffle cryptocurrency
您需要提供代码以便更好地理解。可能是您尚未声明地址“应付”,这就是为什么您面临“从地址到地址的隐式转换请求的地址无效”问题。
在最新版本的 Solidity 中,如果要接收/转移以太币,您还必须将地址声明为应付。
如果问题出在 truffle 而不是 remix 中,您可以检查 truffle box 中的solidity 版本。因为它很可能是版本不匹配的问题。
【讨论】:
我在另一个论坛上看到了这个问题的解决方案。编译器要求你显式声明令牌地址的类型。
不要使用tokenContract.balanceOf(this),而是将其更改为tokenContract.balanceOf(address(this))。
【讨论】:
如果您使用的是solidity 版本> 7,那么您的语法不正确。如果您想访问您的合约地址并使用,请使用address(this) selfdestruct(payable(admin)); 如果你想销毁你的智能合约。
require(tokenContract.balanceOf(address(this))>= _numberOfTokens);
selfdestruct(payable(admin));
【讨论】: