Authentication 要求工作不正常,总是导致错误条件和相应错误

Authentication 要求工作不正常,总是导致错误条件和相应错误,authentication,blockchain,ethereum,solidity,web3js,Authentication,Blockchain,Ethereum,Solidity,Web3js,在我的dapp中有一个登录页面和注册页面,分别基于refer和earn概念对用户进行身份验证和授权。登录部分工作正常,但当我尝试以0.05以太费用向区块链注册新帐户时,metamask弹出并显示警报:交易错误。合同代码中引发异常。当我检查etherscan时,我发现用户已经存在错误。无论我使用哪个地址,错误都保持不变 uint lastUserId = 2; struct User { uint id; address referrer; uint partnerC

在我的dapp中有一个登录页面和注册页面,分别基于refer和earn概念对用户进行身份验证和授权。登录部分工作正常,但当我尝试以0.05以太费用向区块链注册新帐户时,metamask弹出并显示警报:交易错误。合同代码中引发异常。当我检查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": {}
}