Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func FExecute ¶ added in v0.103.0
FExecute tries to execute given template over the data provided, apply gofmt rules to the result and write the result to the provided io.Writer. If a format error occurs while formatting the resulting binding, then the generated binding is written "as is" and no error is returned.
Types ¶
type Config ¶
type Config struct {
Package string `yaml:"package,omitempty"`
Manifest *manifest.Manifest `yaml:"-"`
// Hash denotes the contract hash and is allowed to be empty for RPC bindings
// generation (if not provided by the user).
Hash util.Uint160 `yaml:"hash,omitempty"`
Overrides map[string]Override `yaml:"overrides,omitempty"`
CallFlags map[string]callflag.CallFlag `yaml:"callflags,omitempty"`
// NamedTypes contains exported structured types that have some name (even
// if the original structure doesn't) and a number of internal fields. The
// map key is in the form of `namespace.name`, the value is fully-qualified
// and possibly nested description of the type structure.
NamedTypes map[string]ExtendedType `yaml:"namedtypes,omitempty"`
// Types contains type structure description for various types used in
// smartcontract. The map key has one of the following forms:
// - `methodName` for method return value;
// - `mathodName.paramName` for method's parameter value.
// - `eventName.paramName` for event's parameter value.
Types map[string]ExtendedType `yaml:"types,omitempty"`
Output io.Writer `yaml:"-"`
}
Config contains parameter for the generated binding.
type ContractTmpl ¶ added in v0.99.5
type ContractTmpl struct {
PackageName string
ContractName string
Imports []string
Hash string
Methods []MethodTmpl
}
func TemplateFromManifest ¶ added in v0.99.5
func TemplateFromManifest(cfg Config, scTypeConverter func(string, smartcontract.ParamType, *Config) (string, string)) ContractTmpl
TemplateFromManifest create a contract template using the given configuration and type conversion function. It assumes manifest to be present in the configuration and assumes it to be correct (passing IsValid check).
type ExtendedType ¶ added in v0.100.0
type ExtendedType struct {
Base smartcontract.ParamType `yaml:"base"`
Name string `yaml:"name,omitempty"` // Structure name, omitted for arrays, interfaces and maps.
Interface string `yaml:"interface,omitempty"` // Interface type name, "iterator" only for now.
Key smartcontract.ParamType `yaml:"key,omitempty"` // Key type (only simple types can be used for keys) for maps.
Value *ExtendedType `yaml:"value,omitempty"` // Value type for iterators, arrays and maps.
Fields []FieldExtendedType `yaml:"fields,omitempty"` // Ordered type data for structure fields.
}
func (*ExtendedType) Equals ¶ added in v0.102.0
func (e *ExtendedType) Equals(other *ExtendedType) bool
Equals compares two extended types field-by-field and returns true if they are equal.
type FieldExtendedType ¶ added in v0.100.0
type FieldExtendedType struct {
Field string `yaml:"field"`
ExtendedType `yaml:",inline"`
}
type MethodTmpl ¶ added in v0.99.5
type Override ¶
type Override struct {
// Package contains a fully-qualified package name.
Package string
// TypeName contains type name together with a package alias.
TypeName string
}
Override contains a package and a type to replace manifest method parameter type with.
func NewOverrideFromString ¶
NewOverrideFromString parses s and returns method parameter type override spec.
func (Override) MarshalYAML ¶
MarshalYAML implements the YAML marshaler interface.
func (*Override) UnmarshalYAML ¶
UnmarshalYAML implements the YAML Unmarshaler interface.