GithubHelp home page GithubHelp logo

Comments (13)

mattiaerre avatar mattiaerre commented on May 22, 2024 14

I've been able to fix this issue w/ Jest adding the following setup in my package.json file:

"jest": {
    "testEnvironment": "node"
  }

HTH @max-block

from solc-js.

 avatar commented on May 22, 2024 3

I have the same error "Uncaught TypeError: soljson.cwrap is not a function" in my Jest test files.

Without Jest it works fine. Is there anyone who have found a solution for Jest?

from solc-js.

jmahhh avatar jmahhh commented on May 22, 2024 1

So am I correct in thinking this + browserify/webpack is broken?

from solc-js.

axic avatar axic commented on May 22, 2024

I don't think this package has any specific browserify requirements.

from solc-js.

cofdev0 avatar cofdev0 commented on May 22, 2024

Could you please explain what the best practice is to use solc in Jest tests?

Requiring solc in Jest tests also leads to "Uncaught TypeError: soljson.cwrap is not a function"

from solc-js.

axic avatar axic commented on May 22, 2024

I am not able to reproduce that problem. Browserify works for me locally. Are you sure you have a local soljson.js? Run npm run downloadsolc to download one.

from solc-js.

wighawag avatar wighawag commented on May 22, 2024

Get the same issue with jest :

in my js test file :

const solc = require('solc');

fails with:

Uncaught TypeError: soljson.cwrap is not a function

from solc-js.

dangell7 avatar dangell7 commented on May 22, 2024

I'm where you are lol.

Webpack, react redux app. This is my only hangup. Thinking about setting up an api to a server just to get the abi and bytecode for a contract. lol

from solc-js.

woodydeck avatar woodydeck commented on May 22, 2024

Yea, can't get it to work either. Does anyone have examples of it working? I just need the bytecode, nothing else on the frontend.

I tried browser-solc, but you need to parse the results, and there is no documentation to how it actually outputs.

from solc-js.

GrandSchtroumpf avatar GrandSchtroumpf commented on May 22, 2024

Same error here. I'm in Angular (Webpack). I downloaded the soljson.js bin, and did :

const soljson = require('./soljson.js');
console.log(soljson); // Object{}

Same thing with import from :

import * as soljson from './soljson.js';  // Object{}

I saw the electron warning, but it doesn't seems relevant in this case.

from solc-js.

GrandSchtroumpf avatar GrandSchtroumpf commented on May 22, 2024

If you want to import solc in the browser you need to :

  • 1 : Add that to your index.html :
    <script type="text/javascript" src="https://ethereum.github.io/solc-bin/bin/list.js"></script>
    <script type="text/javascript" src="https://ethereum.github.io/solc-bin/bin/{{ SOLC VERSION }}.js"></script>

This will load 3 global variables : soljsonSources, soljsonReleases and Module.
Note: Check the url for the version of solc you want to use here.

  • 2 : Use a solc wrapper :
    By default solc uses its soljson.js inside its wrapper. I don't know why (yet), but it doesn't works in a browser. So you need to provide window.Module inside the wrapper :
import * as wrapper from 'solc/wrapper'; // OR const solc = require('solc/wrapper');

const solc = wrapper(window.Module);
const compiled = solc.compile(/* Your contract */);

If someone knows why the default soljson.js is not loaded correctly in a browser I'm curious to know why.

from solc-js.

axic avatar axic commented on May 22, 2024

@GrandSchtroumpf could you submit a README update?

from solc-js.

GrandSchtroumpf avatar GrandSchtroumpf commented on May 22, 2024

Sure. Btw, do you know why the default sol.json.js is not loaded in a browser?

from solc-js.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.