compiler

package
v1.6.0-rc.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 18, 2021 License: GPL-3.0 Imports: 9 Imported by: 8

Documentation

Overview

Package compiler wraps the Solidity compiler executable (solc).

This package is being used by `abigen` and test codes. And the package provides functions to compile Solidity source codes.

Package compiler wraps the Solidity and Vyper compiler executables (solc; vyper).

Package compiler wraps the Solidity compiler executables (solc).

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CompileSolidity

func CompileSolidity(solc string, sourcefiles ...string) (map[string]*Contract, error)

CompileSolidity compiles all given Solidity source files.

func CompileSolidityString

func CompileSolidityString(solc, source string) (map[string]*Contract, error)

CompileSolidityString builds and returns all the contracts contained within a source string.

func ParseCombinedJSON added in v1.6.0

func ParseCombinedJSON(combinedJSON []byte, source string, languageVersion string, compilerVersion string, compilerOptions string) (map[string]*Contract, error)

ParseCombinedJSON takes the direct output of a solc --combined-output run and parses it into a map of string contract name to Contract structs. The provided source, language and compiler version, and compiler options are all passed through into the Contract structs.

The solc output is expected to contain ABI, source mapping, user docs, and dev docs.

Returns an error if the JSON is malformed or missing data, or if the JSON embedded within the JSON is malformed.

Types

type Contract

type Contract struct {
	Code        string            `json:"code"`
	RuntimeCode string            `json:"runtime-code"`
	Info        ContractInfo      `json:"info"`
	Hashes      map[string]string `json:"hashes"`
}

Contract contains information about a compiled contract, alongside its code and runtime code.

type ContractInfo

type ContractInfo struct {
	Source          string      `json:"source"`
	Language        string      `json:"language"`
	LanguageVersion string      `json:"languageVersion"`
	CompilerVersion string      `json:"compilerVersion"`
	CompilerOptions string      `json:"compilerOptions"`
	SrcMap          interface{} `json:"srcMap"`
	SrcMapRuntime   string      `json:"srcMapRuntime"`
	AbiDefinition   interface{} `json:"abiDefinition"`
	UserDoc         interface{} `json:"userDoc"`
	DeveloperDoc    interface{} `json:"developerDoc"`
	Metadata        string      `json:"metadata"`
}

ContractInfo contains information about a compiled contract, including access to the ABI definition, source mapping, user and developer docs, and metadata.

Depending on the source, language version, compiler version, and compiler options will provide information about how the contract was compiled.

type Solidity

type Solidity struct {
	Path, Version, FullVersion string
	Major, Minor, Patch        int
}

Solidity contains information about the solidity compiler.

func SolidityVersion

func SolidityVersion(solc string) (*Solidity, error)

SolidityVersion runs solc and parses its version output.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL