Categorygithub.com/PostApocalypseCore/solc
repositorypackage
0.0.4
Repository: https://github.com/postapocalypsecore/solc.git
Documentation: pkg.go.dev

# README

go-solc: Go Bindings for the Solidity Compiler

Go Reference Go Report Card

go-solc provides an easy way to compile Solidity contracts from Go.

go get github.com/lmittmann/go-solc

Getting Started

go-solc automatically downloads the specified version of the Solidity compiler from https://binaries.soliditylang.org and caches it at .solc/bin/.

Example test:

// contract_test.go
func TestContract(t *testing.T) {
    c := solc.New("0.8.21")
    contract, err := c.Compile("src", "Test",
        solc.WithOptimizer(&solc.Optimizer{Enabled: true, Runs: 999999}),
    )
    // ...
}

Example directory structure:

workspace/
├── .solc/
│   └── bin/ # cached solc binaries
│       └── solc_v0.8.21
├── src/
│   └── test.sol
├── contract_test.go
├── go.mod
└── go.sum

generate *.sol and compile it at runtime

[!WARNING]

This package is pre-1.0. There might be breaking changes between minor versions.