Node.js Ошибка диапазона: Превышен максимальный размер стека вызовов. Я не понимаю, где моя программа застряла в цикле?

#javascript #node.js #solidity

Вопрос:

Всем привет, я работаю над своим курсом udemy, и у меня возникла проблема при компиляции с node.js файл солидности с моим компилятором, использующим терминальную машину Windows… это ошибка, которую я получаю:

сообщение об ошибке компилятора

и чтобы было ясно, я покажу свой код солидности и JavaScript, чтобы у вас, ребята, был лучший обзор, и было бы неплохо, если бы вы могли просто объяснить мне подробнее, что я делаю не так… извините, что я могу дать не так много информации, но я надеюсь, что вы, ребята, понимаете мою проблему.

надежность и код JavaScript

compile.js файл:

 const path = require('path');

// fs = file system module
const fs = require('fs');

const solc = require('solc');

// give a path to a compiler the file you want to compile:
// "__dirname" means it will start the path from the files folder root in this project root folder is "Inbox"

const inboxPath = path.resolve(__dirname, 'contracts', 'Inbox.sol');
const source = fs.readFileSync(inboxPath, 'utf8');

console.log(solc.compile(source, 1));
 

и файл solidity.sol

 // SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.4.17;

contract Inbox{

    string public message;

    constructor(string initialMessage) public {

            message = initialMessage;
    }

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

Комментарии:

1. Пожалуйста, не включайте код в изображения.

2. конечно, только что исправил это, извините, я здесь новенький

Ответ №1:

Вам нужно передать options в функцию объект, закодированный в JSON compile() , а не только исходный код (это то, что делает ваш текущий код).

Пример кода вы можете найти в solc файле readme пакета.

Комментарии:

1. спасибо, сэр, я ценю ваш ответ, я решил эту проблему