当我试图编译时,我会得到这个错误。
Airlines.sol:49:5: ParserError:预期“{”,但得到“非法”➥公开{
以下是代码:
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发布于 2022-03-07 18:50:09
尝试在一行中设置方法的签名。在代码中,使用以下内容更改request()函数:
function request(address toAirline, uint hashOfDetails) onlyMember public{
if(membership[toAirline]!=1){
revert(); }
balanceDetails[msg.sender].status=0;
balanceDetails[msg.sender].hashOfDetails = hashOfDetails;
}发布于 2022-03-08 09:45:25
如果从代码中删除➥,该问题将得到解决。
不管怎么说,我推荐你通过稳健编码的样式指南。它可能会使您更容易发现将来的问题,使代码更易读和更易于维护。
https://ethereum.stackexchange.com/questions/123287
复制相似问题