Максимальный размер стека вызовов Solc превышен у объекта. $ db [как dynCall_viiiiii]

#javascript #compiler-errors #solidity

#javascript #ошибки компилятора #надежность

Вопрос:

Когда я пытаюсь скомпилировать свой контракт, я получаю ошибку превышения максимального размера стека вызовов и не могу понять это. Любая информация будет с благодарностью оценена

Ошибка

 RangeError: Maximum call stack size exceeded
    at Object.$db [as dynCall_viiiiii] (C:UsersmolliDesktopCodingUdemySolidity Courseinboxnode_modules[4msolc[24msoljson.js:12:120931)
    at invoke_viiiiii (C:UsersmolliDesktopCodingUdemySolidity Courseinboxnode_modules[4msolc[24msoljson.js:1:1118207)
    at Array.pva (C:UsersmolliDesktopCodingUdemySolidity Courseinboxnode_modules[4msolc[24msoljson.js:13:29030)
    at Object.M9a [as dynCall_vi] (C:UsersmolliDesktopCodingUdemySolidity Courseinboxnode_modules[4msolc[24msoljson.js:12:99033)
    at invoke_vi (C:UsersmolliDesktopCodingUdemySolidity Courseinboxnode_modules[4msolc[24msoljson.js:1:1115011)
    at Array.xta (C:UsersmolliDesktopCodingUdemySolidity Courseinboxnode_modules[4msolc[24msoljson.js:10:704784)
    at Object.Dfb [as dynCall_iii] (C:UsersmolliDesktopCodingUdemySolidity Courseinboxnode_modules[4msolc[24msoljson.js:12:130740)
    at invoke_iii (C:UsersmolliDesktopCodingUdemySolidity Courseinboxnode_modules[4msolc[24msoljson.js:1:1119442)
    at Array.vta (C:UsersmolliDesktopCodingUdemySolidity Courseinboxnode_modules[4msolc[24msoljson.js:10:703080)
    at Object.Yfb [as dynCall_iiiiii] (C:UsersmolliDesktopCodingUdemySolidity Courseinboxnode_modules[4msolc[24msoljson.js:12:131900)
  

Входящие.sol

 
pragma solidity ^0.4.17;

contract Inbox {
    string public message;

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

compile.js

 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, 'utf8');

module.exports = solc.compile(source, 1).contracts[':Inbox'];
  

Ответ №1:

Я столкнулся с той же проблемой. Я смог решить эту проблему, понизив версию модуля. Версия, когда я добьюсь успеха, приведена ниже.

 "ganache-cli": "^6.12.1",
"mocha": "^8.2.1",
"solc": "^0.4.17",
"web3": "^1.0.0-beta.26"