https://github.com/deno-web3/solc
💎 Solidity compiler bindings for Deno
https://github.com/deno-web3/solc
deno ethereum smart-contracts solc solcjs solidity
Last synced: 12 days ago
JSON representation
💎 Solidity compiler bindings for Deno
- Host: GitHub
- URL: https://github.com/deno-web3/solc
- Owner: deno-web3
- License: mit
- Created: 2021-09-24T07:08:18.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2025-02-27T21:01:59.000Z (about 2 months ago)
- Last Synced: 2025-03-28T11:01:32.496Z (23 days ago)
- Topics: deno, ethereum, smart-contracts, solc, solcjs, solidity
- Language: TypeScript
- Homepage: https://jsr.io/@deno-web3/solc
- Size: 7.1 MB
- Stars: 74
- Watchers: 2
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
- awesome-solidity - deno-web3/solc - Solidity bindings for Deno. (Languages)
- awesome-solidity - deno-web3/solc - Solidity bindings for Deno. (Languages)
- awesome-solidity - deno-web3/solc - Solidity bindings for Deno. (Languages)
- awesome-deno - solc - 💎 Solidity bindings for Deno. (Modules / Utils)
- awesome-solidity - deno-web3/solc - Solidity bindings for Deno. (Languages)
- awesome-solidity - deno-web3/solc - Solidity bindings for Deno. (Languages)
README
# solc
[![GitHub Workflow Status][gh-actions-img]][github-actions]
[![Codecov][cov-badge-url]][cov-url] [![][code-quality-img]][code-quality]Solidity bindings for Deno, based on [solc-js](https://github.com/ethereum/solc-js).
Solidity 0.7+ is supported.
For a CLI and a higher level API you can use [sol_build](https://github.com/deno-web3/sol_build).
## Docs
See [solc-js README](https://github.com/ethereum/solc-js#readme) and [Deno doc](https://deno.land/x/solc/mod.ts).
## Example
```ts
import { wrapper } from '@deno-web3/solc'
import { Input } from '@deno-web3/solc/types'
import { download } from '@deno-web3/solc/download'
import { createRequire } from 'node:module'// Download latest Solidity compiler
await download()const solc = wrapper(createRequire(import.meta.url)('./soljson.cjs'))
const MyToken = await Deno.readTextFile('./MyToken.sol')
const ERC20 = await Deno.readTextFile('./ERC20.sol')const input: Input = {
language: 'Solidity',
sources: {
'MyToken.sol': {
content: MyToken,
},
'ERC20.sol': {
content: ERC20,
},
},
settings: {
outputSelection: {
'*': {
'*': ['*'],
},
},
},
}
console.log(JSON.parse(solc.compile(JSON.stringify(input))))
```And then run with
```sh
deno run --allow-net --allow-read --allow-write mod.ts
```[code-quality-img]: https://img.shields.io/codefactor/grade/github/deno-web3/solc?style=for-the-badge&color=626890&
[code-quality]: https://www.codefactor.io/repository/github/deno-web3/solc
[cov-badge-url]: https://img.shields.io/coveralls/github/deno-web3/solc?style=for-the-badge&color=626890&
[cov-url]: https://coveralls.io/github/deno-web3/solc
[github-actions]: https://github.com/tinyhttp/deno-web3/solc
[gh-actions-img]: https://img.shields.io/github/actions/workflow/status/deno-web3/solc/main.yml?branch=master&style=for-the-badge&color=626890&label=&logo=github