diff --git a/apps/circuit-compiler/src/app/services/circomPluginClient.ts b/apps/circuit-compiler/src/app/services/circomPluginClient.ts index 03bbddd0f0..5507cda874 100644 --- a/apps/circuit-compiler/src/app/services/circomPluginClient.ts +++ b/apps/circuit-compiler/src/app/services/circomPluginClient.ts @@ -163,6 +163,8 @@ export class CircomPluginClient extends PluginClient { if (stdout) this.call('terminal', 'log', { type: 'log', value: stdout }) } catch (error) { this.call('terminal', 'log', { type: 'error', value: error.message }) + this.internalEvents.emit('circuit_compiling_errored', error) + this.emit('statusChanged', { key: 'errored', title: 'Compilation failed', type: 'error' }) return } // @ts-ignore diff --git a/apps/remixdesktop/src/tools/circom.ts b/apps/remixdesktop/src/tools/circom.ts index c998e362ac..d3df17b2dc 100644 --- a/apps/remixdesktop/src/tools/circom.ts +++ b/apps/remixdesktop/src/tools/circom.ts @@ -101,7 +101,15 @@ export const circomCli = { const installationPath = getInstallationPath(version) const cmd = `${installationPath} ${filePath} ${Object.keys(options || {}).map((key) => options[key] ? `--${key} ${options[key]}` : `--${key}`).join(' ')}` - return await execAsync(cmd) + return new Promise((resolve, reject) => { + exec(cmd, (error, stdout, stderr) => { + if (error) { + reject(error) + } else { + resolve({ stdout, stderr }) + } + }) + }) } }