Documentation

Overview

    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

    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 CompileVyper

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

          CompileVyper compiles all given Vyper source files.

          func ParseCombinedJSON

          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

            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.

              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.

                      type Vyper

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

                        Vyper contains information about the vyper compiler.

                        func VyperVersion

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

                          VyperVersion runs vyper and parses its version output.