ProjectOpenSea / seadrop

Smart contracts for primary drops on EVM chains

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Error while executing `yarn build`

SteversIO opened this issue · comments

Following instructions exactly.

  • git clone --recurse-submodules https://github.com/ProjectOpenSea/seadrop && cd seadrop [success]
  • yarn install [success]
  • yarn build | failed with error below.
Generating typings for: 36 artifacts in dir: typechain-types for target: ethers-v5
An unexpected error occurred:

TypeError: Cannot convert a Symbol value to a string
    at Array.join (<anonymous>)
    at GlobSync._process (<root>\seadrop\node_modules\typechain\node_modules\glob\sync.js:113:53)
    at new GlobSync (<root>\seadrop\node_modules\typechain\node_modules\glob\sync.js:46:10)
    at globSync (<root>\seadrop\node_modules\typechain\node_modules\glob\sync.js:24:10)
    at <root>\seadrop\node_modules\typechain\src\utils\glob.ts:6:13
    at Array.map (<anonymous>)
    at glob (<root>\seadrop\node_modules\typechain\src\utils\glob.ts:5:35)
    at SimpleTaskDefinition.action (<root>\seadrop\node_modules\@typechain\hardhat\src\index.ts:69:26)
    at Environment._runTaskDefinition (<root>\seadrop\node_modules\hardhat\src\internal\core\runtime-environment.ts:308:35)
    at Environment.run (<root>\seadrop\node_modules\hardhat\src\internal\core\runtime-environment.ts:156:25)
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

Same problem for me as well.
TypeError: Cannot convert a Symbol value to a string

For anyone following, I did get it working by performing the following:

  1. I removed all @typechain dependencies from package.json (delete the following)
    "@typechain/ethers-v5": "^10.1.0",
    "@typechain/hardhat": "^6.1.2",
    "typechain"
  1. I did a fresh yarn install.
rm -rf node_modules
yarn install

I was then able to successfully all the steps and get the contracts to compile. Warning, the ERC721SeaDrop contract is very close to the Spurious Dragon contract size limit already. So you won't be able to add anything. We're currently stuck and have not been able to reach any devs at OpenSea, neither via email nor Discord.

I did not successfully deploy the smart contracts using the recommended approach in this project. They're using forge, and it doesn't work on Windows machines (even using WSL). I also wasn't willing to spend a half-day or more trying to figure out if i could get forge working somehow on Windows.

I did successfully deploy the ERC721SeaDrop by using the abi from the artifact that hardhat spits out and writing a script using @truffle/contract.

OpenSea devs are inundated with work and this problem isn't worth solving due to an easy workaround for Windows users.

For WIndows users, I strongly recommend using WSL (Windows Subsystem for Linux). I could not reproduce these issues in any Linux/Unix environment so far. (Tried macos and WSL).

  1. Install/Update WSL
  2. Install NVM & Set Version to 16
  3. Make sure you have your SSH key added to the SSH agent (so --recurse-submodules will work)
  4. Go through README in this project.