Git Product home page Git Product logo

solidity-cli's Introduction

Solidity-Cli

Compile solidity-code faster, easier and more reliable

follow on Twitter



Features

  • Caching

    When you run the compilation as one step of your build-process, it could waste you much time always compiling the same contracts again and again. Solidity-Cli caches the compilation output and only recompiles when the code of your contract actually has changed.

  • Multi-Threading

    Compiling multiple contracts can take very long when done on a single process in series. Solidity-Cli compiles multiple contracts with a dedicated process per contract.

  • Version-Discovery

    Often you have different contracts with different solidity-versions. It is a struggle to install multiple compiler-versions in the same project. Solidity-Cli detects the version by the contracts code pragma solidity 0.X.X; and automatically installs it if needed.

  • Imports

    Solidity-Cli automatically manages the import-statements of your code. import "./OtherContract.sol"; just works.

  • Typescript-Support

    When you use typescript, you no longer have to manually add typings to the compilation output. Solidity-Cli generates a javascript and a typescript-file which only has to be imported.

Usage

CLI

npm install -g solidity-cli

Compile all *.sol files from one folder into the destination.

solidity -i './test/contracts/*.sol' -o ./test/compiled/

It's recommended to use solidity-cli inside of a script in your package.json

npm install solidity-cli --save-dev

{
    "scripts": {
      "pretest": "solidity-cli -i './contracts/*.sol' -o ./compiled"
    },
    "dependencies": {
        "solidity-cli": "X.X.X"
    }
}

Programmatically

Compile the given solidity-code.

import * as SolidityCli from 'solidity-cli';
const compiled = await SolidityCli.compileCode(myCode);

Compile the the given solidity-file.

import * as SolidityCli from 'solidity-cli';
const compiled = await SolidityCli.compileFile('/home/foobar/myProject/contracts/Basic.sol');

Compile all files from one folder and write the output to another.

import * as SolidityCli from 'solidity-cli';
await SolidityCli.runCli({
    sourceFolder: '/home/foobar/myProject/contracts/*.sol',
    destinationFolder: '/home/foobar/myProject/compiled/*.sol'
});

solidity-cli's People

Contributors

pubkey avatar helderjnpinto avatar

Watchers

James Cloos avatar  avatar

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.