gpt4 book ai didi

node.js - Solidity:ParserError:预期的编译指示、导入指令或合约/interface/library 定义

转载 作者:行者123 更新时间:2023-12-04 02:53:37 32 4
gpt4 key购买 nike

在编写简单契约(Contract)时,最新的 solc(0.5.2 版本)和 0.4.25 也出现错误

我试过以下步骤

  • 卸载 Solc: npm uninstall solc
  • 安装的目标版本: npm install --save solc@0.4.25
  • node compile.js(下面给出的代码)
      { contracts: {},
    errors:
    [ ':1:1: ParserError: Expected pragma, import directive or contract
    /interface/library definition.\nD:\\RND\\BlockChain\\contracts\\Inbox.sol\n^\n' ],sourceList: [ '' ],sources: {} }

  • 编译.js
    const path  = require('path');
    const fs = require('fs');
    const solc = require('solc');
    const inPath = path.resolve(__dirname,'contracts','Inbox.sol');
    const src = fs.readFileSync(inPath,'UTF-8');
    const res = solc.compile(inPath, 1);

    console.log(res);

    收件箱.sol
    pragma solidity ^0.4.25;

    contract Inbox {
    string message;


    function Inbox(string passedName) public {
    message = passedName;
    }

    function setMessage(string newMsg) public {
    message = newMsg;
    }

    function getMessage() public view returns(string){
    return message;
    }
    }

    代码在 Remix 上运行良好 , 对于 0.5.2 版本,我添加了内存标签以使其在 Remix 上编译。
    ex:   function setMessage(string **memory** newMsg) 

    最佳答案

    这对您来说并非如此,但我将把这个解决方案留在这里给可能需要它的人。当我忘记分号 ';' 时出现此错误在第一行的末尾 pragma solidity ^0.4.25; .所以一定要检查一下。

    关于node.js - Solidity:ParserError:预期的编译指示、导入指令或合约/interface/library 定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53941422/

    32 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com