问题描述
我的dapp中有一个基于引用和获取概念的登录页面和注册页面,分别用于对用户进行身份验证和授权。登录部分工作正常,但是当我尝试以0.05乙醚费用向区块链注册一个新帐户时, Metamask弹出并显示ALERT:Transaction Error。合同代码中引发异常。.当我检查etherscan时,我得到的是“用户已经存在”错误。无论我使用哪个地址,该错误均保持不变。
uint lastUserId = 2;
struct User {
uint id;
address referrer;
uint partnerCount;
bool isRegistered;
}
function userRegisteration(address _userAddress,address _referAddress) private returns(bool) {
require(msg.value == 0.05 ether,'registeration cost 0.05');
// require(!isUserExists(_userAddress),"User already exists");
// require(isUserExists(_referAddress),"Referrer doesn't exist");
require(!users[_userAddress].isRegistered,"User already exists"); //The error I got
require(users[_userAddress].isRegistered,"Referrer doesn't exist");
User memory user = User({
id: lastUserId,referrer: _referAddress,partnerCount: 0,isRegistered: true
});
users[_userAddress] = user;
users[_userAddress].referrer = _referAddress;
users[_referAddress].partnerCount++;
lastUserId++;
emit registerSuccess(_userAddress,_referAddress);
return true
}
function registeration(address _referAddress) external payable {
userRegisteration(msg.sender,_referAddress);
}
Web3js
contract.registeration(
$("#refer_id").val(),{ value: web3.toWei(0.05),gasPrice: 98e9 },function (err,res) {
if (err) {
console.log(err.message);
$(".tx").show();
$(".transaction_err").text(err.message);
return false;
}
});
)
响应
Transaction has been reverted by the EVM:
{
"blockHash": "0x8338fb44f94cef337879b07ebf8251f99b3c6238489e0c2e10d903cf921a0d1c","blockNumber": 7427013,"contractAddress": null,"cumulativeGasUsed": 22838,"from": "0x8a9bbe43c28a82596f7ae4cff80377a7c8e0c25c","gasUsed": 22838,"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status": false,"to": "0x2d99d6db85b012bdd3ced1c21fc025847c6c2694","transactionHash": "0x07e03803ede8a172db5cbe27f3aafead9668af0a6e9fbe7804802b1bf0c5a6b4","transactionIndex": 0,"events": {}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)