Open connorbode opened 2 years ago
I am having this issue importing circomlibjs into .tsx/ .jsx files. Off the bat I was having multiple issues with webpack building, which I was able to resolve adding the following to my package.json:
...
"devDependencies": {
"assert": "npm:assert-browserify",
"crypto": "npm:crypto-browserify",
"fs": "npm:-@^0.0.1",
"os": "npm:os-browserify",
"path": "npm:path-browserify",
"stream": "npm:stream-browserify"
}
...
There is this repeating error left. For all files that import ethers using import ethers as "ethers"
this error throws during build process:
ERROR in ./node_modules/circomlibjs/src/poseidon_gencontract.js 139:32-56
export 'default' (imported as 'ethers') was not found in 'ethers' (possible exports: BaseContract, BigNumber, Contract, ContractFactory, FixedNumber, Signer, VoidSigner, Wallet, Wordlist, constants, errors, ethers, getDefaultProvider, logger, providers, utils, version, wordlists)
@ ./node_modules/circomlibjs/main.js 12:0-67 13:32-49
@ ./src/zk/index.ts 3:0-46 9:27-42
@ ./src/views/Game/index.tsx 11:0-32 127:10-20
@ ./src/Routes.tsx 8:0-30 20:32-36
@ ./src/App.tsx 4:0-28 10:35-41
@ ./src/index.tsx 7:0-24 11:33-36
Based on @connorbode 's juggestion I have set up the following postinstall.sh
:
#!/bin/bash
sed -i'' 's/import ethers as "ethers"/import { ethers } as "ethers"/g' ./node_modules/circomlibjs/src/evmasm.js
sed -i'' 's/import ethers as "ethers"/import { ethers } as "ethers"/g' ./node_modules/circomlibjs/src/mimcsponge.js
sed -i'' 's/import ethers as "ethers"/import { ethers } as "ethers"/g' ./node_modules/circomlibjs/src/mimc7_gencontract.js
sed -i'' 's/import ethers as "ethers"/import { ethers } as "ethers"/g' ./node_modules/circomlibjs/src/poseidon_gencontract.js
sed -i'' 's/import ethers as "ethers"/import { ethers } as "ethers"/g' ./node_modules/circomlibjs/src/mimcsponge_gencontract.js
sed -i'' 's/import ethers as "ethers"/import { ethers } as "ethers"/g' ./node_modules/circomlibjs/src/mimc7.js
This results in a "successful" complilation, however webpack serves a blank page. Any input would be greatly appreciated
Edit: here is the offending repository of code: https://github.com/Ian-Bright/battlezip-frontend/tree/zk
Having the same issue myself
There are a number of ethersjs imports in the library as follows:
import ethers from 'ethers'
In my build process, this causes an error as ethersjs does not have a default export. The correct way of importing seems to be
import { ethers } from 'ethers'