Skip to content
/ solc Public

πŸ’Ž Solidity compiler bindings for Deno

License

Notifications You must be signed in to change notification settings

deno-web3/solc

Folders and files

NameName
Last commit message
Last commit date
Feb 27, 2025
Jan 4, 2024
Feb 27, 2025
Feb 27, 2025
Feb 26, 2025
May 18, 2023
Sep 24, 2021
Feb 27, 2025
Feb 27, 2025
Feb 27, 2025
Feb 27, 2025
Feb 27, 2025
Feb 26, 2025
Feb 27, 2025
Feb 26, 2025
May 8, 2023
May 8, 2023
Feb 27, 2025
Feb 27, 2025
Feb 27, 2025
Feb 27, 2025

Repository files navigation

logo

solc

GitHub Workflow Status Codecov

Solidity bindings for Deno, based on solc-js.

Solidity 0.7+ is supported.

For a CLI and a higher level API you can use sol_build.

Docs

See solc-js README and Deno doc.

Example

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

deno run --allow-net --allow-read --allow-write mod.ts