Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pubkey/solidity-cli
Compile solidity-code faster, easier and more reliable
https://github.com/pubkey/solidity-cli
blockchain dapp ethereum smart-contracts solc solidity typescript web3 web3js
Last synced: about 2 months ago
JSON representation
Compile solidity-code faster, easier and more reliable
- Host: GitHub
- URL: https://github.com/pubkey/solidity-cli
- Owner: pubkey
- License: apache-2.0
- Created: 2018-05-18T18:34:44.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2018-11-30T17:25:50.000Z (about 6 years ago)
- Last Synced: 2024-11-02T02:42:09.075Z (2 months ago)
- Topics: blockchain, dapp, ethereum, smart-contracts, solc, solidity, typescript, web3, web3js
- Language: TypeScript
- Homepage:
- Size: 90.8 KB
- Stars: 50
- Watchers: 7
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Solidity-Cli
Compile solidity-code faster, easier and more reliable
* * *
## 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`
```json
{
"scripts": {
"pretest": "solidity-cli -i './contracts/*.sol' -o ./compiled"
},
"dependencies": {
"solidity-cli": "X.X.X"
}
}
```### Programmatically
Compile the given solidity-code.
```js
import * as SolidityCli from 'solidity-cli';
const compiled = await SolidityCli.compileCode(myCode);
```Compile the the given solidity-file.
```js
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.
```js
import * as SolidityCli from 'solidity-cli';
await SolidityCli.runCli({
sourceFolder: '/home/foobar/myProject/contracts/*.sol',
destinationFolder: '/home/foobar/myProject/compiled/*.sol'
});
```