solc

package
v0.0.0-...-5d12baa Latest Latest
Warning

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

Go to latest
Published: Oct 18, 2024 License: MIT Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Ast

type Ast struct {
	AbsolutePath    string            `json:"absolutePath"`
	ExportedSymbols map[string][]uint `json:"exportedSymbols"`
	Id              uint              `json:"id"`
	License         string            `json:"license"`
	NodeType        string            `json:"nodeType"`
	Nodes           json.RawMessage   `json:"nodes"`
}

type CompilerInput

type CompilerInput struct {
	Language string                       `json:"language"`
	Sources  map[string]map[string]string `json:"sources"`
	Settings CompilerSettings             `json:"settings"`
}

type CompilerInputMetadata

type CompilerInputMetadata struct {
	UseLiteralContent bool `json:"useLiteralContent"`
}

type CompilerOutput

type CompilerOutput struct {
	Contracts map[string]CompilerOutputContracts `json:"contracts"`
	Sources   CompilerOutputSources              `json:"sources"`
}

type CompilerOutputBytecode

type CompilerOutputBytecode struct {
	Object              string              `json:"object"`
	Opcodes             string              `json:"opcodes"`
	SourceMap           string              `json:"sourceMap"`
	LinkReferences      LinkReferences      `json:"linkReferences"`
	ImmutableReferences ImmutableReferences `json:"immutableReferences"`
}

Object must be a string because its not guaranteed to be a hex string

type CompilerOutputContract

type CompilerOutputContract struct {
	Abi           abi.ABI           `json:"abi"`
	Evm           CompilerOutputEvm `json:"evm"`
	Metadata      string            `json:"metadata"`
	StorageLayout StorageLayout     `json:"storageLayout"`
}

CompilerOutputContract represents the solc compiler output for a contract. Ignoring some fields such as devdoc and userdoc.

type CompilerOutputContracts

type CompilerOutputContracts map[string]CompilerOutputContract

type CompilerOutputEvm

type CompilerOutputEvm struct {
	Bytecode          CompilerOutputBytecode       `json:"bytecode"`
	DeployedBytecode  CompilerOutputBytecode       `json:"deployedBytecode"`
	GasEstimates      map[string]map[string]string `json:"gasEstimates"`
	MethodIdentifiers map[string]string            `json:"methodIdentifiers"`
}

type CompilerOutputSource

type CompilerOutputSource struct {
	Id  uint `json:"id"`
	Ast Ast  `json:"ast"`
}

type CompilerOutputSources

type CompilerOutputSources map[string]CompilerOutputSource

type CompilerSettings

type CompilerSettings struct {
	Optimizer       OptimizerSettings              `json:"optimizer"`
	Metadata        CompilerInputMetadata          `json:"metadata"`
	OutputSelection map[string]map[string][]string `json:"outputSelection"`
	EvmVersion      string                         `json:"evmVersion,omitempty"`
	Libraries       map[string]map[string]string   `json:"libraries,omitempty"`
}

type ImmutableReference

type ImmutableReference struct {
	Length int `json:"length"`
	Start  int `json:"start"`
}

type ImmutableReferences

type ImmutableReferences map[string][]ImmutableReference

type LinkReference

type LinkReference map[string][]LinkReferenceOffset

type LinkReferenceOffset

type LinkReferenceOffset struct {
	Length uint `json:"length"`
	Start  uint `json:"start"`
}

type LinkReferences

type LinkReferences map[string]LinkReference

type OptimizerSettings

type OptimizerSettings struct {
	Enabled bool `json:"enabled"`
	Runs    uint `json:"runs"`
}

type StorageLayout

type StorageLayout struct {
	Storage []StorageLayoutEntry         `json:"storage"`
	Types   map[string]StorageLayoutType `json:"types"`
}

StorageLayout represents the solc compilers output storage layout for a contract.

func (*StorageLayout) GetStorageLayoutEntry

func (s *StorageLayout) GetStorageLayoutEntry(name string) (StorageLayoutEntry, error)

GetStorageLayoutEntry returns the StorageLayoutEntry where the label matches the provided name.

func (*StorageLayout) GetStorageLayoutType

func (s *StorageLayout) GetStorageLayoutType(name string) (StorageLayoutType, error)

GetStorageLayoutType returns the StorageLayoutType where the label matches the provided name.

type StorageLayoutEntry

type StorageLayoutEntry struct {
	AstId    uint   `json:"astId"`
	Contract string `json:"contract"`
	Label    string `json:"label"`
	Offset   uint   `json:"offset"`
	Slot     uint   `json:"slot,string"`
	Type     string `json:"type"`
}

type StorageLayoutType

type StorageLayoutType struct {
	Encoding      string               `json:"encoding"`
	Label         string               `json:"label"`
	NumberOfBytes uint                 `json:"numberOfBytes,string"`
	Key           string               `json:"key,omitempty"`
	Value         string               `json:"value,omitempty"`
	Base          string               `json:"base,omitempty"`
	Members       []StorageLayoutEntry `json:"members,omitempty"`
}

Jump to

Keyboard shortcuts

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