首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Newby学习稳健性分析错误

Newby学习稳健性分析错误
EN

Ethereum用户
提问于 2022-03-07 13:18:25
回答 2查看 37关注 0票数 0

当我试图编译时,我会得到这个错误。

Airlines.sol:49:5: ParserError:预期“{”,但得到“非法”➥公开{

以下是代码:

代码语言:javascript
复制
pragma solidity ^0.6.0;    
//SPDX-License-Identifier: UNLICENSED for non-open-source code.  Please see https://spdx.org for more information
    contract Airlines  {
    address chairperson;
    struct details{
        uint escrow; // deposit for payment settlement
        uint status;
        uint hashOfDetails;
    }
    
    mapping (address=>details) public balanceDetails;
    mapping (address=>uint) membership;
    
    // modifiers or rules
    modifier onlyChairperson{
        require(msg.sender==chairperson);
        _;
    }
    modifier onlyMember{
        require(membership[msg.sender]==1);
        _;
    }
    
    // constructor function
    constructor () public payable  {
      
        chairperson=msg.sender;
        membership[msg.sender]=1; // automatically registered
        balanceDetails[msg.sender].escrow = msg.value;
    }
    
    function register ( ) public payable{
        
        address AirlineA = msg.sender;
        membership[AirlineA]=1;
        balanceDetails[msg.sender].escrow = msg.value;
    }
        
   function unregister (address payable AirlineZ) onlyChairperson public {
        if(chairperson!=msg.sender){
            revert(); }
        membership[AirlineZ]=0;
        // return escrow to leaving airline: verify other conditions 
        AirlineZ.transfer(balanceDetails[AirlineZ].escrow);
        balanceDetails[AirlineZ].escrow = 0; 
    }
    
    function request(address toAirline, uint hashOfDetails) onlyMember
    ➥ public{
        if(membership[toAirline]!=1){
            revert(); }
        balanceDetails[msg.sender].status=0;
        balanceDetails[msg.sender].hashOfDetails = hashOfDetails;
    }
    
    function  response(address fromAirline, uint hashOfDetails, uint done) 
                               onlyMember public{
      
        if(membership[fromAirline]!=1){
            revert();  }
        balanceDetails[msg.sender].status=done;
        balanceDetails[fromAirline].hashOfDetails = hashOfDetails;
    }
    
    
function settlePayment  (address payable toAirline) onlyMember payable     
                                       public{
        address fromAirline=msg.sender;
        uint amt = msg.value; 
        balanceDetails[toAirline].escrow = balanceDetails[toAirline].escrow 
                                                   + amt;
        balanceDetails[fromAirline].escrow =      
                balanceDetails[fromAirline].escrow - amt;
       
       // amt subtracted from msg.sender and given to toAirline
        toAirline.transfer(amt
EN

回答 2

Ethereum用户

发布于 2022-03-07 18:50:09

尝试在一行中设置方法的签名。在代码中,使用以下内容更改request()函数:

代码语言:javascript
复制
function request(address toAirline, uint hashOfDetails) onlyMember public{
        if(membership[toAirline]!=1){
            revert(); }
        balanceDetails[msg.sender].status=0;
        balanceDetails[msg.sender].hashOfDetails = hashOfDetails;
}
票数 0
EN

Ethereum用户

发布于 2022-03-08 09:45:25

如果从代码中删除,该问题将得到解决。

不管怎么说,我推荐你通过稳健编码的样式指南。它可能会使您更容易发现将来的问题,使代码更易读和更易于维护。

票数 0
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/123287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档