Я пытался написать компилятор для нового контракта. Он находится в compile.js и содержит:
pragma solidity ^0.4.7;
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');
console.info(solc.compile(source, 1));
файл compile.js находится в папке "Входящие" каталога Файл Inbox.sol находится в папке "Входящие" / контракты / Inbox.sol.
вызывая "node compile.js" в консоли, я получаю:
SyntaxError: Unexpected identifier
at createScript (vm.js:80:10)
at Object.runInThisContext (vm.js:139:10)
at Module._compile (module.js:616:28)
at Object.Module._extensions..js (module.js:663:10)
at Module.load (module.js:565:32)
at tryModuleLoad (module.js:505:12)
at Function.Module._load (module.js:497:3)
at Function.Module.runMain (module.js:693:10)
at startup (bootstrap_node.js:191:16)
at bootstrap_node.js:612:3
как я понял не может найти источник?
это удивительно. Я думал, что он не нашел этот контракт Inbox.sol, потому что, когда я тестирую компилятор и пытаюсь указать неправильный путь к контракту, информация журнала консоли была такой же. В этом случае действительно ли что-то не так с исходным контрактом?
Ну, если бы они не были файлом, fs.readFileSync() он должен был сломаться, однако я предлагаю вам взглянуть на свой источник, посмотреть, является ли это ваш контракт, а затем проверить его напрямую с компилятором
Удалите строку прагмы, ваш файл компиляции является файлом JS, а не Solid.
OMG, конечно .. Большое спасибо, теперь все работает!



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Нет, он сказал, что есть что-то непредвиденное (синтаксическая ошибка), вероятно, исходящее из вашего исходного контракта, возможно, внутри есть ошибка