Blockchain Soldity接收功能错误-混音和#x27;s";交易";还有另一份合同的.transfer()?
我正在努力使用Solidity中的接收功能。我尝试通过ContractOne为ContractTwo提供资金,然后立即将收到的资金转换为WETH。如果我通过调用有价值的合同(按transact on Remix),一切正常,但是,只要我尝试使用另一个合同,它就会失败 ContractOne如下所示:Blockchain Soldity接收功能错误-混音和#x27;s";交易";还有另一份合同的.transfer()?,blockchain,ethereum,remix,Blockchain,Ethereum,Remix,我正在努力使用Solidity中的接收功能。我尝试通过ContractOne为ContractTwo提供资金,然后立即将收到的资金转换为WETH。如果我通过调用有价值的合同(按transact on Remix),一切正常,但是,只要我尝试使用另一个合同,它就会失败 ContractOne如下所示: contract ParteinaherVerein { constructor(address payable party) payable { party.transfer(msg.v
contract ParteinaherVerein {
constructor(address payable party) payable {
party.transfer(msg.value);
}}
ContractTwo具有以下接收功能:
receive() external payable {
if (msg.sender == wrappedEtherAddr) {
// Do nothing
} else {
ETH2WETH(); // Locks Eth to get Weth
}
}
在混音中,我的错误如下所示:
VM错误:还原。还原事务已还原为初始状态。注意:如果您发送值,并且您发送的值应该小于您当前的余额,则调用的函数应该是可支付的。调试事务以获取更多信息
注意:我的ETH2WETH由以下几行组成:(但这不应包括任何错误,因为当我通过Remix接口直接从EOA进行交易时,它工作正常)
提前谢谢。现在已经花了我的时间了。
最好的
function ETH2WETH()
public
{
(bool success, ) = address(WETHLike).call
{
value: address(this).balance
}
(
abi.encodeWithSignature("deposit(uint256)",
address(this).balance)
);
require(success);
}