go-ethereum: github.com/axiomzen/go-ethereum/common/compiler Index | Files

package compiler

import "github.com/axiomzen/go-ethereum/common/compiler"

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

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

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

Index

Package Files

helpers.go solidity.go vyper.go

func CompileSolidity Uses

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

CompileSolidity compiles all given Solidity source files.

func CompileSolidityString Uses

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

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

func CompileVyper Uses

func CompileVyper(vyper string, sourcefiles ...string) (map[string]*Contract, error)

CompileVyper compiles all given Vyper source files.

func ParseCombinedJSON Uses

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.

func ParseVyperJSON Uses

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

ParseVyperJSON takes the direct output of a vyper --f combined_json 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 vyper output is expected to contain ABI and source mapping.

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

type Contract Uses

type Contract struct {
    Code        string       `json:"code"`
    RuntimeCode string       `json:"runtime-code"`
    Info        ContractInfo `json:"info"`
}

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

type ContractInfo Uses

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 Uses

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

Solidity contains information about the solidity compiler.

func SolidityVersion Uses

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

SolidityVersion runs solc and parses its version output.

type Vyper Uses

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

Vyper contains information about the vyper compiler.

func VyperVersion Uses

func VyperVersion(vyper string) (*Vyper, error)

VyperVersion runs vyper and parses its version output.

Package compiler imports 9 packages (graph). Updated 2019-07-06. Refresh now. Tools for package owners.