Solidity

ParserError:應為“,”但得到“}”

  • January 27, 2022

我看到了類似的問題,但我的問題與任何已回答的問題都不匹配。我在一個庫中編寫了一個函式,該函式還包含彙編程式碼,但出現意外的解析器錯誤。

// SPDX-License-Identifier: GPL-3.0

pragma solidity ^0.8.11;

library CryptoSuite {

   function splitSignature(bytes memory _sign) internal pure returns(uint8 v, bytes32 r, bytes32 s) {
       
       require(_sign.length == 65);

       //accessing virtual machine to make low level changes.
       assembly {

           //first 32 bytes
           r := mload(add(_sign, 32))
           //next 32 bytes
           s := mload(add(_sign, 64))
           //last 32 bytes
           v := byte(0, mload(add(_sign, 96))
           
       } //getting error here in remix. 

       return (v, r, s);
       
   }

   //split Signature, recieve signature for message, extract signer from that message

   function recoverSigner(bytes32 _message, bytes memory _sign) internal pure returns(address){
       //first get values

       (uint8 v, bytes32 r, bytes32 s) = splitSignature(_sign);

       return ecrecover(_message, v, r, s);

   } 

}

錯誤說ParserError: Expected ',' but got '}'請任何人幫助我。

以下行中缺少右括號 v := byte(0, mload(add(_sign, 96))。該行應以“)))”結尾。

v := byte(0, mload(add(_sign, 96)))

引用自:https://ethereum.stackexchange.com/questions/120098