Categorygithub.com/xiaobaiskill/solc-go
repositorypackage
0.0.0-20220623102747-ef5a700c9fa1
Repository: https://github.com/xiaobaiskill/solc-go.git
Documentation: pkg.go.dev

# README

solc-go

require

example

package main

import (
	"fmt"

	solc "github.com/xiaobaiskill/solc-go"
)

func main() {
	input := &solc.Input{
		Language: "Solidity",
		Sources: map[string]solc.SourceIn{
			"One.sol": solc.SourceIn{Content: "pragma solidity ^0.8.0; contract One { function one() public pure returns (uint) { return 1; } }"},
		},
		Settings: solc.Settings{
			Optimizer: solc.Optimizer{
				Enabled: true,
				Runs:    200,
			},
			EVMVersion: "byzantium",
			OutputSelection: map[string]map[string][]string{
				"*": map[string][]string{
					"*": []string{
						"abi",
						"evm.deployedBytecode",
						"evm.methodIdentifiers",
					},
				},
			},
		},
	}

	s := solc.NewSolc("/Users/jinmingzhi/Downloads/solc-0.8.4")
	out, err := s.Compile(input)
	if err != nil {
		fmt.Printf("compile :%v\n", err)
		return
	}
	fmt.Println(out)
}