0.4.0 • Published 5 years ago

solcjs-lightweight v0.4.0

Weekly downloads
4
License
MIT
Repository
github
Last release
5 years ago

solcjs lightweight

Travis codecovnpm downloads Dependency Status

Install

npm install solcjs-lightweight

Relevant Projects

License

MIT © alincode

Usage

await solcjs(version)

const solcjs = require('solcjs-lightweight');
const version = 'v0.5.1-stable-2018.12.03';
let compiler = await solcjs(version);

// or

// let compiler = await solcjs();

const sourceCode = `
  pragma solidity >0.4.99 <0.6.0;

  library OldLibrary {
    function someFunction(uint8 a) public returns(bool);
  }

  contract NewContract {
    function f(uint8 a) public returns (bool) {
        return OldLibrary.someFunction(a);
    }
  }`;
let output = await compiler(sourceCode);

await solcjs(version).version

const solcjs = require('solcjs-lightweight');
const version = 'v0.4.25-stable-2018.09.13';
let compiler = await solcjs(version);
console.dir(compiler.version);
// { name: 'v0.4.25-stable-2018.09.13',
// url: 'https://solc-bin.ethereum.org/bin/soljson-v0.4.25+commit.59dbf8f1.js' }

await solcjs.versions()

const solcjs = require('solcjs-lightweight');
let select = await solcjs.versions();
const { releases, nightly, all } = select;
console.log(releases[0]);
// v0.4.25-stable-2018.09.13

await solcjs.version2url(version)

const solcjs = require('solcjs-lightweight');
let version = 'v0.4.25-stable-2018.09.13';
let url = await solcjs.version2url(version);
console.log(url);
// https://solc-bin.ethereum.org/bin/soljson-v0.4.25+commit.59dbf8f1.js
const solcjs = require('solcjs-lightweight');
let version = 'latest';
let url = await solcjs.version2url(version);
console.log(url);
// https://solc-bin.ethereum.org/bin/soljson-v0.1.1+commit.6ff4cd6.js

await compiler(sourceCode);

const solcjs = require('solcjs-lightweight');
let compiler = await solcjs();

const sourceCode = `
  library OldLibrary {
      function someFunction(uint8 a) public returns(bool);
  }

  contract NewContract {
      function f(uint8 a) public returns (bool) {
          return OldLibrary.someFunction(a);
      }
  }`;

let output = await compiler(sourceCode);

await compiler(sourceCode, getImportContent)

const solcjs = require('solcjs-lightweight');
const version = 'v0.5.1-stable-2018.12.03';
let compiler = await solcjs(version);

const sourceCode = `
  pragma solidity >0.4.99 <0.6.0;

  import "lib.sol";

  library OldLibrary {
    function someFunction(uint8 a) public returns(bool);
  }

  contract NewContract {
    function f(uint8 a) public returns (bool) {
        return OldLibrary.someFunction(a);
    }
  }`;

let myDB = new Map();
myDB.set('lib.sol', 'library L { function f() internal returns (uint) { return 7; } }');

const ResolverEngine = require('solc-resolver').resolverEngine;
let resolverEngine = new ResolverEngine();
let resolveGithub = require('resolve-github');
resolverEngine.addResolver(resolveGithub);
let resolveIpfs = require('resolve-ipfs');
resolverEngine.addResolver(resolveIpfs);

const getImportContent = async function (path) {
  return myDB.has(path) ? myDB.get(path) : await resolverEngine.require(path);
};

let output = await compiler(sourceCode, getImportContent);
0.4.0

5 years ago

0.3.0

5 years ago

0.2.0

5 years ago

0.1.0

5 years ago

0.0.3

5 years ago

0.0.2

5 years ago

0.0.1

5 years ago