manifest

package
v0.0.6-beta Latest Latest
Warning

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

Go to latest
Published: May 17, 2022 License: Apache-2.0 Imports: 29 Imported by: 18

Documentation

Index

Constants

View Source
const (
	ModuleKindStore = "store"
	ModuleKindMap   = "map"
)
View Source
const (
	UpdatePolicyReplace = "replace"
	UpdatePolicyIgnore  = "ignore"
	UpdatePolicySum     = "sum"
	UpdatePolicyMax     = "max"
	UpdatePolicyMin     = "min"
)
View Source
const PrefixSeparator = ":"
View Source
const UNSET = math.MaxUint64

Variables

This section is empty.

Functions

func HashModuleAsString

func HashModuleAsString(modules *pbsubstreams.Modules, graph *ModuleGraph, module *pbsubstreams.Module) string

func New

func New(input string) (m *pbsubstreams.Package, err error)

func NewFromContents

func NewFromContents(inputFile string, contents []byte) (pkg *pbsubstreams.Package, err error)

func NewFromFile

func NewFromFile(inputFile string) (pkg *pbsubstreams.Package, err error)

func NewFromURL

func NewFromURL(input string) (pkg *pbsubstreams.Package, err error)

func NewFromYAML

func NewFromYAML(inputPath string) (pkg *pbsubstreams.Package, err error)

func PrintMermaid

func PrintMermaid(mods *pbsubstreams.Modules)

func ValidateModules

func ValidateModules(mods *pbsubstreams.Modules) error

ValidateModules is run both by the client _and_ the server.

Types

type Code

type Code struct {
	File       string `yaml:"file"`
	Type       string `yaml:"type"`
	Native     string `yaml:"native"`
	Content    []byte `yaml:"-"`
	Entrypoint string `yaml:"entrypoint"`
}

type Input

type Input struct {
	Source string `yaml:"source"`
	Store  string `yaml:"store"`
	Map    string `yaml:"map"`
	Mode   string `yaml:"mode"`

	Name string `yaml:"-"`
}

type Manifest

type Manifest struct {
	SpecVersion string      `yaml:"specVersion"` // check that it equals v0.1.0
	Package     PackageMeta `yaml:"package"`
	Protobuf    Protobuf    `yaml:"protobuf"`
	Imports     mapSlice    `yaml:"imports"`
	Modules     []*Module   `yaml:"modules"`

	Graph   *ModuleGraph `yaml:"-"`
	Workdir string       `yaml:"-"`
}

Manifest is a YAML structure used to create a Package and its list of Modules. The notion of a manifest does not live in protobuf definitions.

type Module

type Module struct {
	Name       string  `yaml:"name"`
	Doc        string  `yaml:"doc"`
	Kind       string  `yaml:"kind"`
	StartBlock *uint64 `yaml:"startBlock"`

	UpdatePolicy string       `yaml:"updatePolicy"`
	ValueType    string       `yaml:"valueType"`
	Code         Code         `yaml:"code"`
	Inputs       []*Input     `yaml:"inputs"`
	Output       StreamOutput `yaml:"output"`
}

func (*Module) String

func (m *Module) String() string

func (*Module) ToProtoNative

func (m *Module) ToProtoNative() (*pbsubstreams.Module, error)

func (*Module) ToProtoWASM

func (m *Module) ToProtoWASM(codeIndex uint32) (*pbsubstreams.Module, error)

type ModuleGraph

type ModuleGraph struct {
	*graph.Mutable
	// contains filtered or unexported fields
}

func NewModuleGraph

func NewModuleGraph(modules []*pbsubstreams.Module) (*ModuleGraph, error)

func (*ModuleGraph) AncestorStoresOf

func (g *ModuleGraph) AncestorStoresOf(moduleName string) ([]*pbsubstreams.Module, error)

func (*ModuleGraph) AncestorsOf

func (g *ModuleGraph) AncestorsOf(moduleName string) ([]*pbsubstreams.Module, error)

func (*ModuleGraph) GetSources

func (g *ModuleGraph) GetSources() []string

func (*ModuleGraph) ModuleStartBlock

func (g *ModuleGraph) ModuleStartBlock(moduleName string) (uint64, error)

func (*ModuleGraph) ModulesDownTo

func (g *ModuleGraph) ModulesDownTo(moduleNames []string) ([]*pbsubstreams.Module, error)

func (*ModuleGraph) ParentsOf

func (g *ModuleGraph) ParentsOf(moduleName string) ([]*pbsubstreams.Module, error)

func (*ModuleGraph) StoresDownTo

func (g *ModuleGraph) StoresDownTo(moduleNames []string) ([]*pbsubstreams.Module, error)

func (*ModuleGraph) TopologicalSort

func (g *ModuleGraph) TopologicalSort() ([]*pbsubstreams.Module, bool)

type ModuleHash

type ModuleHash []byte

func HashModule

func HashModule(modules *pbsubstreams.Modules, module *pbsubstreams.Module, graph *ModuleGraph) ModuleHash

type ModuleMarshaler

type ModuleMarshaler []*pbsubstreams.Module

func (ModuleMarshaler) MarshalJSON

func (m ModuleMarshaler) MarshalJSON() ([]byte, error)

type PackageMeta

type PackageMeta struct {
	Name    string `yaml:"name"`
	Version string `yaml:"version"` // Semver for package authors
	URL     string `yaml:"url"`
	Doc     string `yaml:"doc"`
}

type Protobuf

type Protobuf struct {
	Files       []string `yaml:"files"`
	ImportPaths []string `yaml:"importPaths"`
}

type StreamOutput

type StreamOutput struct {
	// For 'map'
	Type string `yaml:"type"`
}

Jump to

Keyboard shortcuts

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