Solc
無法擺脫來自 solc-js “AssertionError”的錯誤和RR一種小號小號和RT一世開_和RR一種小號小號和R噸一世這ñERR_ASSERTION:指定的回調無效。”
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'); solc.compile(source,1);
這是我的錯誤:
kowsik@kowsik:~/Desktop/etherium_project$ node compile.js assert.js:43 throw new errors.AssertionError(obj); ^ AssertionError [ERR_ASSERTION]: Invalid callback specified. at wrapCallback (/home/kowsik/Desktop/etherium_project/node_modules/solc/wrapper.js:16:5) at runWithReadCallback (/home/kowsik/Desktop/etherium_project/node_modules/solc/wrapper.js:42:26) at compileStandard (/home/kowsik/Desktop/etherium_project/node_modules/solc/wrapper.js:83:14) at Object.compileStandardWrapper (/home/kowsik/Desktop/etherium_project/node_modules/solc/wrapper.js:90:14) at Object.<anonymous> (/home/kowsik/Desktop/etherium_project/compile.js:7:6) at Module._compile (module.js:653:30) at Object.Module._extensions..js (module.js:664:10) at Module.load (module.js:566:32) at tryModuleLoad (module.js:506:12) at Function.Module._load (module.js:498:3)
使用較舊的 solc 版本,例如 “solc”: “^0.4.25”
如果您使用的是新版本的solidity(目前我的是0.6.1):那麼下面的程式碼應該適合您!
這裡只是數據格式發生了變化,因為新版本不支持您使用的格式,所以我們定義了 o/p 的數據類型並將 json 數據轉換為字元串。
module.exports = solc.compile( JSON.stringify({ language: "Solidity", sources: { "lottery.sol": { content: source } }, settings: { outputSelection: { "*": { "*": ["evm", "bytecode"] } } } }) );