首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >节点:assert:400抛出错误;^ AssertionError [ERR_ASSERTION]:指定的回调对象无效

节点:assert:400抛出错误;^ AssertionError [ERR_ASSERTION]:指定的回调对象无效
EN

Stack Overflow用户
提问于 2021-11-10 14:26:05
回答 3查看 401关注 0票数 0

尝试运行节点compile.js,但它通过我上面提到的错误和想法,我正在做的错误

我的inbox.sol

代码语言:javascript
复制
pragma solidity ^0.8.9;

contract Inbox{
    string public message;

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

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

我的package.json

代码语言:javascript
复制
{
  "dependencies": {
    "ganache-cli": "^6.12.2",
    "mocha": "^9.1.3",
    "solc": "^0.8.9",
    "web3": "^1.6.0"
  }
}

我是这项技术的初学者,非常感谢您的宝贵时间。

EN

回答 3

Stack Overflow用户

发布于 2021-11-11 00:21:02

只需在函数参数中的两个字符串后面添加内存即可。

函数收件箱(String memory initialMessage)...和函数setMessage(string memory newMessage)...

票数 0
EN

Stack Overflow用户

发布于 2021-11-12 06:57:30

该课程已经过时,solidity版本0.6.6已经发布,您最好将代码更新到该版本。如果你不是一个好的程序员,你最好退还这门课,因为你以后会遇到很多问题,你会看到一些使用元掩码和Web3的错误。这门课程教会了你很多东西,所以我真的建议你继续学习这门课程,并在整个课程中不断更新自己。这是第一个问题,更新版本的解决方案是这样的。

这将是你的"inbox.sol“代码:

代码语言:javascript
复制
pragma solidity ^0.6.6;

contract Inbox{
string public message;

constructor (string memory initialMessage) public{
    message = initialMessage;
}

function setMessage(string memory newMessage) public{
    message = newMessage;
}
}

这将是你的"compile.js“代码:

代码语言:javascript
复制
const path = require('path');
const fs = require('fs');
const solc = require('solc');

const inboxpath = path.resolve(__dirname, 'Contracts', 'Inbox.sol');
const source = fs.readFileSync(inboxpath, 'UTF-8');

var input = {
  language: 'Solidity',
  sources: {
    'Inbox.sol' : {
        content: source
    }
},
settings: {
    outputSelection: {
        '*': {
            '*': [ '*' ]
        }
    }
}
};

var output = JSON.parse(solc.compile(JSON.stringify(input)));

exports.abi = output.contracts['Inbox.sol']['Inbox'].abi;
exports.bytecode = output.contracts['Inbox.sol'] ['Inbox'].evm.bytecode.object;

在新的稳定性中,编译器将提供与旧编译器相比的另一个编译代码版本,因此您需要将json文件传递给您的编译器,并且为了访问abi(接口)和字节码,您需要像我在这里所做的那样做。

票数 0
EN

Stack Overflow用户

发布于 2021-11-25 00:47:43

它将与solc版本0.4.17一起工作。

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

https://stackoverflow.com/questions/69915001

复制
相关文章

相似问题

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