cadence

package module
v0.29.0-stable-cadence-5 Latest Latest
Warning

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

Go to latest
Published: Nov 21, 2022 License: Apache-2.0 Imports: 13 Imported by: 312

README

CI

Cadence

Introduction

Cadence is a resource-oriented programming language that introduces new features to smart contract programming that help developers ensure that their code is safe, secure, clear, and approachable.

Some of these features are:

  • Type safety and a strong static type system
  • Resource-oriented programming, a new paradigm that pairs linear types with object capabilities to create a secure and declarative model for digital ownership by ensuring that resources (and their associated assets) can only exist in one location at a time, cannot be copied, and cannot be accidentally lost or deleted
  • Built-in pre-conditions and post-conditions for functions and transactions
  • The utilization of capability-based security, which enforces access control by requiring that access to objects is restricted to only the owner and those who have a valid reference to the object

Getting Started

To get started writing Cadence, why not try out the Playground?

If you want to develop locally, use these tools:

  • Flow CLI, which includes the Flow emulator. The emulator is a lightweight tool that emulates the behaviour of the real Flow network.
  • Visual Studio Code extension. The Visual Studio Code extension enables the development, deployment of, and interaction with Cadence contracts.

Documentation

Check out the Cadence Docs.

Contributing

If you would like to contribute to Cadence, have a look at the contributing guide.

Development documentation can be found in the /docs directory. For example, it contains the source for the language reference.

Documentation

Index

Constants

View Source
const AddressLength = 8
View Source
const Version = "v0.29.0-stable-cadence-4"

Variables

View Source
var Int128MemoryUsage = common.NewCadenceBigIntMemoryUsage(16)
View Source
var Int256MemoryUsage = common.NewCadenceBigIntMemoryUsage(32)
View Source
var UInt128MemoryUsage = common.NewCadenceBigIntMemoryUsage(16)
View Source
var UInt256MemoryUsage = common.NewCadenceBigIntMemoryUsage(32)

Functions

func CastToArray

func CastToArray(value Value) ([]any, error)

func CastToInt

func CastToInt(value Value) (int, error)

func CastToString

func CastToString(value Value) (string, error)

func CastToUInt16

func CastToUInt16(value Value) (uint16, error)

func CastToUInt8

func CastToUInt8(value Value) (uint8, error)

func Fuzz

func Fuzz(data []byte) int

func ParseUFix64 added in v0.24.0

func ParseUFix64(s string) (uint64, error)

Types

type AccountKeyType added in v0.24.0

type AccountKeyType struct{}

AccountKeyType

func NewAccountKeyType added in v0.24.0

func NewAccountKeyType() AccountKeyType

func NewMeteredAccountKeyType added in v0.24.0

func NewMeteredAccountKeyType(
	gauge common.MemoryGauge,
) AccountKeyType

func (AccountKeyType) ID added in v0.24.0

func (AccountKeyType) ID() string

type Address

type Address [AddressLength]byte

func BytesToAddress

func BytesToAddress(b []byte) Address

func BytesToMeteredAddress added in v0.24.0

func BytesToMeteredAddress(memoryGauge common.MemoryGauge, b []byte) Address

func NewAddress

func NewAddress(b [AddressLength]byte) Address

func NewMeteredAddress added in v0.24.0

func NewMeteredAddress(memoryGauge common.MemoryGauge, b [AddressLength]byte) Address

func (Address) Bytes

func (v Address) Bytes() []byte

func (Address) Hex

func (v Address) Hex() string

func (Address) MeteredType added in v0.24.0

func (Address) MeteredType(gauge common.MemoryGauge) Type

func (Address) String

func (v Address) String() string

func (Address) ToGoValue

func (v Address) ToGoValue() any

func (Address) Type

func (Address) Type() Type

type AddressType

type AddressType struct{}

func NewAddressType added in v0.24.0

func NewAddressType() AddressType

func NewMeteredAddressType added in v0.24.0

func NewMeteredAddressType(gauge common.MemoryGauge) AddressType

func (AddressType) ID

func (AddressType) ID() string

type AnyResourceType

type AnyResourceType struct{}

func NewAnyResourceType added in v0.24.0

func NewAnyResourceType() AnyResourceType

func NewMeteredAnyResourceType added in v0.24.0

func NewMeteredAnyResourceType(gauge common.MemoryGauge) AnyResourceType

func (AnyResourceType) ID

func (AnyResourceType) ID() string

type AnyStructType

type AnyStructType struct{}

func NewAnyStructType added in v0.24.0

func NewAnyStructType() AnyStructType

func NewMeteredAnyStructType added in v0.24.0

func NewMeteredAnyStructType(gauge common.MemoryGauge) AnyStructType

func (AnyStructType) ID

func (AnyStructType) ID() string

type AnyType

type AnyType struct{}

func NewAnyType added in v0.24.0

func NewAnyType() AnyType

func NewMeteredAnyType added in v0.24.0

func NewMeteredAnyType(gauge common.MemoryGauge) AnyType

func (AnyType) ID

func (AnyType) ID() string

type Array

type Array struct {
	ArrayType ArrayType
	Values    []Value
}

func NewArray

func NewArray(values []Value) Array

func NewMeteredArray added in v0.24.0

func NewMeteredArray(
	gauge common.MemoryGauge,
	length int,
	constructor func() ([]Value, error),
) (Array, error)

func (Array) MeteredType added in v0.24.0

func (v Array) MeteredType(_ common.MemoryGauge) Type

func (Array) String added in v0.12.0

func (v Array) String() string

func (Array) ToGoValue

func (v Array) ToGoValue() any

func (Array) Type

func (v Array) Type() Type

func (Array) WithType added in v0.19.0

func (v Array) WithType(arrayType ArrayType) Array

type ArrayType

type ArrayType interface {
	Type
	Element() Type
}

type AuthAccountContractsType added in v0.24.0

type AuthAccountContractsType struct{}

AuthAccountContractsType

func NewAuthAccountContractsType added in v0.24.0

func NewAuthAccountContractsType() AuthAccountContractsType

func NewMeteredAuthAccountContractsType added in v0.24.0

func NewMeteredAuthAccountContractsType(
	gauge common.MemoryGauge,
) AuthAccountContractsType

func (AuthAccountContractsType) ID added in v0.24.0

type AuthAccountKeysType added in v0.24.0

type AuthAccountKeysType struct{}

AuthAccountKeysType

func NewAuthAccountKeysType added in v0.24.0

func NewAuthAccountKeysType() AuthAccountKeysType

func NewMeteredAuthAccountKeysType added in v0.24.0

func NewMeteredAuthAccountKeysType(
	gauge common.MemoryGauge,
) AuthAccountKeysType

func (AuthAccountKeysType) ID added in v0.24.0

type AuthAccountType added in v0.7.0

type AuthAccountType struct{}

AuthAccountType

func NewAuthAccountType added in v0.24.0

func NewAuthAccountType() AuthAccountType

func NewMeteredAuthAccountType added in v0.24.0

func NewMeteredAuthAccountType(
	gauge common.MemoryGauge,
) AuthAccountType

func (AuthAccountType) ID added in v0.7.0

func (AuthAccountType) ID() string

type BlockType added in v0.7.0

type BlockType struct{}

func NewBlockType added in v0.24.0

func NewBlockType() BlockType

func NewMeteredBlockType added in v0.24.0

func NewMeteredBlockType(
	gauge common.MemoryGauge,
) BlockType

func (BlockType) ID added in v0.7.0

func (BlockType) ID() string

type Bool

type Bool bool

func NewBool

func NewBool(b bool) Bool

func NewMeteredBool added in v0.24.0

func NewMeteredBool(memoryGauge common.MemoryGauge, b bool) Bool

func (Bool) MeteredType added in v0.24.0

func (Bool) MeteredType(gauge common.MemoryGauge) Type

func (Bool) String added in v0.12.0

func (v Bool) String() string

func (Bool) ToGoValue

func (v Bool) ToGoValue() any

func (Bool) Type

func (Bool) Type() Type

type BoolType

type BoolType struct{}

func NewBoolType added in v0.24.0

func NewBoolType() BoolType

func NewMeteredBoolType added in v0.24.0

func NewMeteredBoolType(gauge common.MemoryGauge) BoolType

func (BoolType) ID

func (BoolType) ID() string

type Bytes

type Bytes []byte

func NewBytes

func NewBytes(b []byte) Bytes

Unmetered because this is only used by cadence in tests

func (Bytes) MeteredType added in v0.24.0

func (Bytes) MeteredType(gauge common.MemoryGauge) Type

func (Bytes) String added in v0.12.0

func (v Bytes) String() string

func (Bytes) ToGoValue

func (v Bytes) ToGoValue() any

func (Bytes) Type

func (Bytes) Type() Type

type BytesType

type BytesType struct{}

func NewBytesType added in v0.24.0

func NewBytesType() BytesType

func NewMeteredBytesType added in v0.24.0

func NewMeteredBytesType(gauge common.MemoryGauge) BytesType

func (BytesType) ID

func (BytesType) ID() string

type Capability added in v0.10.0

type Capability struct {
	Path       Path
	Address    Address
	BorrowType Type
}

func NewCapability added in v0.24.0

func NewCapability(path Path, address Address, borrowType Type) Capability

func NewMeteredCapability added in v0.24.0

func NewMeteredCapability(gauge common.MemoryGauge, path Path, address Address, borrowType Type) Capability

func (Capability) MeteredType added in v0.24.0

func (v Capability) MeteredType(gauge common.MemoryGauge) Type

func (Capability) String added in v0.12.0

func (v Capability) String() string

func (Capability) ToGoValue added in v0.10.0

func (Capability) ToGoValue() any

func (Capability) Type added in v0.10.0

func (v Capability) Type() Type

type CapabilityPathType added in v0.11.0

type CapabilityPathType struct{}

func NewCapabilityPathType added in v0.24.0

func NewCapabilityPathType() CapabilityPathType

func NewMeteredCapabilityPathType added in v0.24.0

func NewMeteredCapabilityPathType(
	gauge common.MemoryGauge,
) CapabilityPathType

func (CapabilityPathType) ID added in v0.11.0

type CapabilityType added in v0.7.0

type CapabilityType struct {
	BorrowType Type
}

func NewCapabilityType added in v0.24.0

func NewCapabilityType(borrowType Type) CapabilityType

func NewMeteredCapabilityType added in v0.24.0

func NewMeteredCapabilityType(
	gauge common.MemoryGauge,
	borrowType Type,
) CapabilityType

func (CapabilityType) ID added in v0.7.0

func (t CapabilityType) ID() string

type Character added in v0.24.0

type Character string

Character represents a Cadence character, which is a Unicode extended grapheme cluster. Hence, use a Go string to be able to hold multiple Unicode code points (Go runes). It should consist of exactly one grapheme cluster

func NewCharacter added in v0.24.0

func NewCharacter(b string) (Character, error)

func NewMeteredCharacter added in v0.24.0

func NewMeteredCharacter(
	memoryGauge common.MemoryGauge,
	memoryUsage common.MemoryUsage,
	stringConstructor func() string,
) (Character, error)

func (Character) MeteredType added in v0.24.0

func (Character) MeteredType(gauge common.MemoryGauge) Type

func (Character) String added in v0.24.0

func (v Character) String() string

func (Character) ToGoValue added in v0.24.0

func (v Character) ToGoValue() any

func (Character) Type added in v0.24.0

func (Character) Type() Type

type CharacterType added in v0.7.0

type CharacterType struct{}

func NewCharacterType added in v0.24.0

func NewCharacterType() CharacterType

func NewMeteredCharacterType added in v0.24.0

func NewMeteredCharacterType(gauge common.MemoryGauge) CharacterType

func (CharacterType) ID added in v0.7.0

func (CharacterType) ID() string

type CompositeType

type CompositeType interface {
	Type

	CompositeTypeLocation() common.Location
	CompositeTypeQualifiedIdentifier() string
	CompositeFields() []Field
	SetCompositeFields([]Field)
	CompositeInitializers() [][]Parameter
	// contains filtered or unexported methods
}

type ConstantSizedArrayType

type ConstantSizedArrayType struct {
	Size        uint
	ElementType Type
}

func NewConstantSizedArrayType added in v0.24.0

func NewConstantSizedArrayType(
	size uint,
	elementType Type,
) ConstantSizedArrayType

func NewMeteredConstantSizedArrayType added in v0.24.0

func NewMeteredConstantSizedArrayType(
	gauge common.MemoryGauge,
	size uint,
	elementType Type,
) ConstantSizedArrayType

func (ConstantSizedArrayType) Element

func (t ConstantSizedArrayType) Element() Type

func (ConstantSizedArrayType) ID

type Contract added in v0.6.0

type Contract struct {
	ContractType *ContractType
	Fields       []Value
}

func NewContract added in v0.6.0

func NewContract(fields []Value) Contract

func NewMeteredContract added in v0.24.0

func NewMeteredContract(
	gauge common.MemoryGauge,
	numberOfFields int,
	constructor func() ([]Value, error),
) (Contract, error)

func (Contract) MeteredType added in v0.24.0

func (v Contract) MeteredType(_ common.MemoryGauge) Type

func (Contract) String added in v0.12.0

func (v Contract) String() string

func (Contract) ToGoValue added in v0.6.0

func (v Contract) ToGoValue() any

func (Contract) Type added in v0.6.0

func (v Contract) Type() Type

func (Contract) WithType added in v0.6.0

func (v Contract) WithType(typ *ContractType) Contract

type ContractInterfaceType added in v0.7.0

type ContractInterfaceType struct {
	Location            common.Location
	QualifiedIdentifier string
	Fields              []Field
	Initializers        [][]Parameter
}

func NewContractInterfaceType added in v0.24.0

func NewContractInterfaceType(
	location common.Location,
	qualifiedIdentifier string,
	fields []Field,
	initializers [][]Parameter,
) *ContractInterfaceType

func NewMeteredContractInterfaceType added in v0.24.0

func NewMeteredContractInterfaceType(
	gauge common.MemoryGauge,
	location common.Location,
	qualifiedIdentifier string,
	fields []Field,
	initializers [][]Parameter,
) *ContractInterfaceType

func (*ContractInterfaceType) ID added in v0.7.0

func (t *ContractInterfaceType) ID() string

func (*ContractInterfaceType) InterfaceFields added in v0.7.0

func (t *ContractInterfaceType) InterfaceFields() []Field

func (*ContractInterfaceType) InterfaceInitializers added in v0.7.0

func (t *ContractInterfaceType) InterfaceInitializers() [][]Parameter

func (*ContractInterfaceType) InterfaceTypeLocation added in v0.12.0

func (t *ContractInterfaceType) InterfaceTypeLocation() common.Location

func (*ContractInterfaceType) InterfaceTypeQualifiedIdentifier added in v0.12.0

func (t *ContractInterfaceType) InterfaceTypeQualifiedIdentifier() string

func (*ContractInterfaceType) SetInterfaceFields added in v0.24.3

func (t *ContractInterfaceType) SetInterfaceFields(fields []Field)

type ContractType added in v0.6.0

type ContractType struct {
	Location            common.Location
	QualifiedIdentifier string
	Fields              []Field
	Initializers        [][]Parameter
}

func NewContractType added in v0.24.0

func NewContractType(
	location common.Location,
	qualifiedIdentifier string,
	fields []Field,
	initializers [][]Parameter,
) *ContractType

func NewMeteredContractType added in v0.24.0

func NewMeteredContractType(
	gauge common.MemoryGauge,
	location common.Location,
	qualifiedIdentifier string,
	fields []Field,
	initializers [][]Parameter,
) *ContractType

func (*ContractType) CompositeFields added in v0.6.0

func (t *ContractType) CompositeFields() []Field

func (*ContractType) CompositeInitializers added in v0.6.0

func (t *ContractType) CompositeInitializers() [][]Parameter

func (*ContractType) CompositeTypeLocation added in v0.12.0

func (t *ContractType) CompositeTypeLocation() common.Location

func (*ContractType) CompositeTypeQualifiedIdentifier added in v0.12.0

func (t *ContractType) CompositeTypeQualifiedIdentifier() string

func (*ContractType) ID added in v0.6.0

func (t *ContractType) ID() string

func (*ContractType) SetCompositeFields added in v0.24.3

func (t *ContractType) SetCompositeFields(fields []Field)

type DeployedContractType added in v0.24.0

type DeployedContractType struct{}

DeployedContractType

func NewDeployedContractType added in v0.24.0

func NewDeployedContractType() DeployedContractType

func NewMeteredDeployedContractType added in v0.24.0

func NewMeteredDeployedContractType(
	gauge common.MemoryGauge,
) DeployedContractType

func (DeployedContractType) ID added in v0.24.0

type Dictionary

type Dictionary struct {
	DictionaryType Type
	Pairs          []KeyValuePair
}

func NewDictionary

func NewDictionary(pairs []KeyValuePair) Dictionary

func NewMeteredDictionary added in v0.24.0

func NewMeteredDictionary(
	gauge common.MemoryGauge,
	size int,
	constructor func() ([]KeyValuePair, error),
) (Dictionary, error)

func (Dictionary) MeteredType added in v0.24.0

func (v Dictionary) MeteredType(_ common.MemoryGauge) Type

func (Dictionary) String added in v0.12.0

func (v Dictionary) String() string

func (Dictionary) ToGoValue

func (v Dictionary) ToGoValue() any

func (Dictionary) Type

func (v Dictionary) Type() Type

func (Dictionary) WithType added in v0.19.0

func (v Dictionary) WithType(dictionaryType DictionaryType) Dictionary

type DictionaryType

type DictionaryType struct {
	KeyType     Type
	ElementType Type
}

func NewDictionaryType added in v0.24.0

func NewDictionaryType(
	keyType Type,
	elementType Type,
) DictionaryType

func NewMeteredDictionaryType added in v0.24.0

func NewMeteredDictionaryType(
	gauge common.MemoryGauge,
	keyType Type,
	elementType Type,
) DictionaryType

func (DictionaryType) ID

func (t DictionaryType) ID() string

type Enum added in v0.14.0

type Enum struct {
	EnumType *EnumType
	Fields   []Value
}

Enum

func NewEnum added in v0.14.0

func NewEnum(fields []Value) Enum

func NewMeteredEnum added in v0.24.0

func NewMeteredEnum(
	gauge common.MemoryGauge,
	numberOfFields int,
	constructor func() ([]Value, error),
) (Enum, error)

func (Enum) MeteredType added in v0.24.0

func (v Enum) MeteredType(_ common.MemoryGauge) Type

func (Enum) String added in v0.14.0

func (v Enum) String() string

func (Enum) ToGoValue added in v0.14.0

func (v Enum) ToGoValue() any

func (Enum) Type added in v0.14.0

func (v Enum) Type() Type

func (Enum) WithType added in v0.14.0

func (v Enum) WithType(typ *EnumType) Enum

type EnumType added in v0.14.0

type EnumType struct {
	Location            common.Location
	QualifiedIdentifier string
	RawType             Type
	Fields              []Field
	Initializers        [][]Parameter
}

EnumType

func NewEnumType added in v0.24.0

func NewEnumType(
	location common.Location,
	qualifiedIdentifier string,
	rawType Type,
	fields []Field,
	initializers [][]Parameter,
) *EnumType

func NewMeteredEnumType added in v0.24.0

func NewMeteredEnumType(
	gauge common.MemoryGauge,
	location common.Location,
	qualifiedIdentifier string,
	rawType Type,
	fields []Field,
	initializers [][]Parameter,
) *EnumType

func (*EnumType) CompositeFields added in v0.14.0

func (t *EnumType) CompositeFields() []Field

func (*EnumType) CompositeInitializers added in v0.14.0

func (t *EnumType) CompositeInitializers() [][]Parameter

func (*EnumType) CompositeTypeLocation added in v0.14.0

func (t *EnumType) CompositeTypeLocation() common.Location

func (*EnumType) CompositeTypeQualifiedIdentifier added in v0.14.0

func (t *EnumType) CompositeTypeQualifiedIdentifier() string

func (*EnumType) ID added in v0.14.0

func (t *EnumType) ID() string

func (*EnumType) SetCompositeFields added in v0.24.3

func (t *EnumType) SetCompositeFields(fields []Field)

type Event

type Event struct {
	EventType *EventType
	Fields    []Value
}

func NewEvent

func NewEvent(fields []Value) Event

func NewMeteredEvent added in v0.24.0

func NewMeteredEvent(
	gauge common.MemoryGauge,
	numberOfFields int,
	constructor func() ([]Value, error),
) (Event, error)

func (Event) MeteredType added in v0.24.0

func (v Event) MeteredType(_ common.MemoryGauge) Type

func (Event) String added in v0.12.0

func (v Event) String() string

func (Event) ToGoValue

func (v Event) ToGoValue() any

func (Event) Type

func (v Event) Type() Type

func (Event) WithType

func (v Event) WithType(typ *EventType) Event

type EventType

type EventType struct {
	Location            common.Location
	QualifiedIdentifier string
	Fields              []Field
	Initializer         []Parameter
}

func NewEventType added in v0.24.0

func NewEventType(
	location common.Location,
	qualifiedIdentifer string,
	fields []Field,
	initializer []Parameter,
) *EventType

func NewMeteredEventType added in v0.24.0

func NewMeteredEventType(
	gauge common.MemoryGauge,
	location common.Location,
	qualifiedIdentifer string,
	fields []Field,
	initializer []Parameter,
) *EventType

func (*EventType) CompositeFields

func (t *EventType) CompositeFields() []Field

func (*EventType) CompositeInitializers

func (t *EventType) CompositeInitializers() [][]Parameter

func (*EventType) CompositeTypeLocation added in v0.12.0

func (t *EventType) CompositeTypeLocation() common.Location

func (*EventType) CompositeTypeQualifiedIdentifier added in v0.12.0

func (t *EventType) CompositeTypeQualifiedIdentifier() string

func (*EventType) ID

func (t *EventType) ID() string

func (*EventType) SetCompositeFields added in v0.24.3

func (t *EventType) SetCompositeFields(fields []Field)

type Field

type Field struct {
	Identifier string
	Type       Type
}

func NewField added in v0.24.0

func NewField(identifier string, typ Type) Field

Fields are always created in an array, which must be metered ahead of time. So no metering here.

type Fix64

type Fix64 int64

func NewFix64

func NewFix64(s string) (Fix64, error)

func NewFix64FromParts added in v0.5.0

func NewFix64FromParts(negative bool, integer int, fraction uint) (Fix64, error)

func NewMeteredFix64 added in v0.24.0

func NewMeteredFix64(gauge common.MemoryGauge, constructor func() (string, error)) (Fix64, error)

func (Fix64) MeteredType added in v0.24.0

func (Fix64) MeteredType(gauge common.MemoryGauge) Type

func (Fix64) String added in v0.12.0

func (v Fix64) String() string

func (Fix64) ToBigEndianBytes added in v0.5.0

func (v Fix64) ToBigEndianBytes() []byte

func (Fix64) ToGoValue

func (v Fix64) ToGoValue() any

func (Fix64) Type

func (Fix64) Type() Type

type Fix64Type

type Fix64Type struct{}

func NewFix64Type added in v0.24.0

func NewFix64Type() Fix64Type

func NewMeteredFix64Type added in v0.24.0

func NewMeteredFix64Type(gauge common.MemoryGauge) Fix64Type

func (Fix64Type) ID

func (Fix64Type) ID() string

type FixedPointType added in v0.7.0

type FixedPointType struct{}

func NewFixedPointType added in v0.24.0

func NewFixedPointType() FixedPointType

func NewMeteredFixedPointType added in v0.24.0

func NewMeteredFixedPointType(gauge common.MemoryGauge) FixedPointType

func (FixedPointType) ID added in v0.7.0

func (FixedPointType) ID() string

type Function

type Function struct {
	FunctionType *FunctionType
}

Function

func NewFunction added in v0.30.0

func NewFunction(functionType *FunctionType) Function

func NewMeteredFunction added in v0.30.0

func NewMeteredFunction(gauge common.MemoryGauge, functionType *FunctionType) Function

func (Function) MeteredType added in v0.30.0

func (v Function) MeteredType(_ common.MemoryGauge) Type

func (Function) String added in v0.30.0

func (v Function) String() string

func (Function) ToGoValue added in v0.30.0

func (Function) ToGoValue() any

func (Function) Type added in v0.30.0

func (v Function) Type() Type

type FunctionPurity added in v0.32.0

type FunctionPurity int
const (
	FunctionPurityUnspecified FunctionPurity = iota
	FunctionPurityView
)

type FunctionType added in v0.24.0

type FunctionType struct {
	Purity     FunctionPurity
	Parameters []Parameter
	ReturnType Type
	// contains filtered or unexported fields
}

TODO: type parameters

func NewFunctionType added in v0.24.0

func NewFunctionType(
	typeID string,
	purity FunctionPurity,
	parameters []Parameter,
	returnType Type,
) *FunctionType

func NewMeteredFunctionType added in v0.24.0

func NewMeteredFunctionType(
	gauge common.MemoryGauge,
	typeID string,
	purity FunctionPurity,
	parameters []Parameter,
	returnType Type,
) *FunctionType

func (*FunctionType) ID added in v0.24.0

func (t *FunctionType) ID() string

func (*FunctionType) WithID added in v0.24.0

func (t *FunctionType) WithID(id string) *FunctionType

type Int

type Int struct {
	Value *big.Int
}

func NewInt

func NewInt(i int) Int

func NewIntFromBig

func NewIntFromBig(i *big.Int) Int

func NewMeteredIntFromBig added in v0.24.0

func NewMeteredIntFromBig(
	memoryGauge common.MemoryGauge,
	memoryUsage common.MemoryUsage,
	bigIntConstructor func() *big.Int,
) Int

func (Int) Big

func (v Int) Big() *big.Int

func (Int) Int

func (v Int) Int() int

func (Int) MeteredType added in v0.24.0

func (Int) MeteredType(gauge common.MemoryGauge) Type

func (Int) String added in v0.12.0

func (v Int) String() string

func (Int) ToBigEndianBytes added in v0.5.0

func (v Int) ToBigEndianBytes() []byte

func (Int) ToGoValue

func (v Int) ToGoValue() any

func (Int) Type

func (Int) Type() Type

type Int128

type Int128 struct {
	Value *big.Int
}

func NewInt128

func NewInt128(i int) Int128

func NewInt128FromBig

func NewInt128FromBig(i *big.Int) (Int128, error)

func NewMeteredInt128FromBig added in v0.24.0

func NewMeteredInt128FromBig(
	memoryGauge common.MemoryGauge,
	bigIntConstructor func() *big.Int,
) (Int128, error)

func (Int128) Big

func (v Int128) Big() *big.Int

func (Int128) Int

func (v Int128) Int() int

func (Int128) MeteredType added in v0.24.0

func (Int128) MeteredType(gauge common.MemoryGauge) Type

func (Int128) String added in v0.12.0

func (v Int128) String() string

func (Int128) ToBigEndianBytes added in v0.5.0

func (v Int128) ToBigEndianBytes() []byte

func (Int128) ToGoValue

func (v Int128) ToGoValue() any

func (Int128) Type

func (Int128) Type() Type

type Int128Type

type Int128Type struct{}

func NewInt128Type added in v0.24.0

func NewInt128Type() Int128Type

func NewMeteredInt128Type added in v0.24.0

func NewMeteredInt128Type(gauge common.MemoryGauge) Int128Type

func (Int128Type) ID

func (Int128Type) ID() string

type Int16

type Int16 int16

func NewInt16

func NewInt16(v int16) Int16

func NewMeteredInt16 added in v0.24.0

func NewMeteredInt16(memoryGauge common.MemoryGauge, v int16) Int16

func (Int16) MeteredType added in v0.24.0

func (Int16) MeteredType(gauge common.MemoryGauge) Type

func (Int16) String added in v0.12.0

func (v Int16) String() string

func (Int16) ToBigEndianBytes added in v0.5.0

func (v Int16) ToBigEndianBytes() []byte

func (Int16) ToGoValue

func (v Int16) ToGoValue() any

func (Int16) Type

func (Int16) Type() Type

type Int16Type

type Int16Type struct{}

func NewInt16Type added in v0.24.0

func NewInt16Type() Int16Type

func NewMeteredInt16Type added in v0.24.0

func NewMeteredInt16Type(gauge common.MemoryGauge) Int16Type

func (Int16Type) ID

func (Int16Type) ID() string

type Int256

type Int256 struct {
	Value *big.Int
}

func NewInt256

func NewInt256(i int) Int256

func NewInt256FromBig

func NewInt256FromBig(i *big.Int) (Int256, error)

func NewMeteredInt256FromBig added in v0.24.0

func NewMeteredInt256FromBig(
	memoryGauge common.MemoryGauge,
	bigIntConstructor func() *big.Int,
) (Int256, error)

func (Int256) Big

func (v Int256) Big() *big.Int

func (Int256) Int

func (v Int256) Int() int

func (Int256) MeteredType added in v0.24.0

func (Int256) MeteredType(gauge common.MemoryGauge) Type

func (Int256) String added in v0.12.0

func (v Int256) String() string

func (Int256) ToBigEndianBytes added in v0.5.0

func (v Int256) ToBigEndianBytes() []byte

func (Int256) ToGoValue

func (v Int256) ToGoValue() any

func (Int256) Type

func (Int256) Type() Type

type Int256Type

type Int256Type struct{}

func NewInt256Type added in v0.24.0

func NewInt256Type() Int256Type

func NewMeteredInt256Type added in v0.24.0

func NewMeteredInt256Type(gauge common.MemoryGauge) Int256Type

func (Int256Type) ID

func (Int256Type) ID() string

type Int32

type Int32 int32

func NewInt32

func NewInt32(v int32) Int32

func NewMeteredInt32 added in v0.24.0

func NewMeteredInt32(memoryGauge common.MemoryGauge, v int32) Int32

func (Int32) MeteredType added in v0.24.0

func (Int32) MeteredType(gauge common.MemoryGauge) Type

func (Int32) String added in v0.12.0

func (v Int32) String() string

func (Int32) ToBigEndianBytes added in v0.5.0

func (v Int32) ToBigEndianBytes() []byte

func (Int32) ToGoValue

func (v Int32) ToGoValue() any

func (Int32) Type

func (Int32) Type() Type

type Int32Type

type Int32Type struct{}

func NewInt32Type added in v0.24.0

func NewInt32Type() Int32Type

func NewMeteredInt32Type added in v0.24.0

func NewMeteredInt32Type(gauge common.MemoryGauge) Int32Type

func (Int32Type) ID

func (Int32Type) ID() string

type Int64

type Int64 int64

func NewInt64

func NewInt64(i int64) Int64

func NewMeteredInt64 added in v0.24.0

func NewMeteredInt64(memoryGauge common.MemoryGauge, v int64) Int64

func (Int64) MeteredType added in v0.24.0

func (Int64) MeteredType(gauge common.MemoryGauge) Type

func (Int64) String added in v0.12.0

func (v Int64) String() string

func (Int64) ToBigEndianBytes added in v0.5.0

func (v Int64) ToBigEndianBytes() []byte

func (Int64) ToGoValue

func (v Int64) ToGoValue() any

func (Int64) Type

func (Int64) Type() Type

type Int64Type

type Int64Type struct{}

func NewInt64Type added in v0.24.0

func NewInt64Type() Int64Type

func NewMeteredInt64Type added in v0.24.0

func NewMeteredInt64Type(gauge common.MemoryGauge) Int64Type

func (Int64Type) ID

func (Int64Type) ID() string

type Int8

type Int8 int8

func NewInt8

func NewInt8(v int8) Int8

func NewMeteredInt8 added in v0.24.0

func NewMeteredInt8(memoryGauge common.MemoryGauge, v int8) Int8

func (Int8) MeteredType added in v0.24.0

func (Int8) MeteredType(gauge common.MemoryGauge) Type

func (Int8) String added in v0.12.0

func (v Int8) String() string

func (Int8) ToBigEndianBytes added in v0.5.0

func (v Int8) ToBigEndianBytes() []byte

func (Int8) ToGoValue

func (v Int8) ToGoValue() any

func (Int8) Type

func (Int8) Type() Type

type Int8Type

type Int8Type struct{}

func NewInt8Type added in v0.24.0

func NewInt8Type() Int8Type

func NewMeteredInt8Type added in v0.24.0

func NewMeteredInt8Type(gauge common.MemoryGauge) Int8Type

func (Int8Type) ID

func (Int8Type) ID() string

type IntType

type IntType struct{}

func NewIntType added in v0.24.0

func NewIntType() IntType

func NewMeteredIntType added in v0.24.0

func NewMeteredIntType(gauge common.MemoryGauge) IntType

func (IntType) ID

func (IntType) ID() string

type IntegerType added in v0.7.0

type IntegerType struct{}

func NewIntegerType added in v0.24.0

func NewIntegerType() IntegerType

func NewMeteredIntegerType added in v0.24.0

func NewMeteredIntegerType(gauge common.MemoryGauge) IntegerType

func (IntegerType) ID added in v0.7.0

func (IntegerType) ID() string

type InterfaceType added in v0.7.0

type InterfaceType interface {
	Type

	InterfaceTypeLocation() common.Location
	InterfaceTypeQualifiedIdentifier() string
	InterfaceFields() []Field
	SetInterfaceFields(fields []Field)
	InterfaceInitializers() [][]Parameter
	// contains filtered or unexported methods
}

type KeyValuePair

type KeyValuePair struct {
	Key   Value
	Value Value
}

func NewMeteredKeyValuePair added in v0.24.0

func NewMeteredKeyValuePair(gauge common.MemoryGauge, key, value Value) KeyValuePair
type Link struct {
	TargetPath Path
	// TODO: a future version might want to export the whole type
	BorrowType string
}
func NewLink(targetPath Path, borrowType string) Link
func NewMeteredLink(gauge common.MemoryGauge, targetPath Path, borrowType string) Link

func (Link) MeteredType added in v0.24.0

func (v Link) MeteredType(_ common.MemoryGauge) Type

func (Link) String added in v0.12.0

func (v Link) String() string

func (Link) ToGoValue added in v0.7.0

func (v Link) ToGoValue() any

func (Link) Type added in v0.7.0

func (v Link) Type() Type

type MetaType added in v0.4.0

type MetaType struct{}

func NewMetaType added in v0.24.0

func NewMetaType() MetaType

func NewMeteredMetaType added in v0.24.0

func NewMeteredMetaType(gauge common.MemoryGauge) MetaType

func (MetaType) ID added in v0.4.0

func (MetaType) ID() string

type NeverType added in v0.7.0

type NeverType struct{}

func NewMeteredNeverType added in v0.24.0

func NewMeteredNeverType(gauge common.MemoryGauge) NeverType

func NewNeverType added in v0.24.0

func NewNeverType() NeverType

func (NeverType) ID added in v0.7.0

func (NeverType) ID() string

type NumberType added in v0.7.0

type NumberType struct{}

func NewMeteredNumberType added in v0.24.0

func NewMeteredNumberType(gauge common.MemoryGauge) NumberType

func NewNumberType added in v0.24.0

func NewNumberType() NumberType

func (NumberType) ID added in v0.7.0

func (NumberType) ID() string

type NumberValue added in v0.5.0

type NumberValue interface {
	Value
	ToBigEndianBytes() []byte
}

type Optional

type Optional struct {
	Value Value
}

func NewMeteredOptional added in v0.24.0

func NewMeteredOptional(memoryGauge common.MemoryGauge, value Value) Optional

func NewOptional

func NewOptional(value Value) Optional

func (Optional) MeteredType added in v0.24.0

func (o Optional) MeteredType(gauge common.MemoryGauge) Type

func (Optional) String added in v0.12.0

func (o Optional) String() string

func (Optional) ToGoValue

func (o Optional) ToGoValue() any

func (Optional) Type

func (o Optional) Type() Type

type OptionalType

type OptionalType struct {
	Type Type
}

func NewMeteredOptionalType added in v0.24.0

func NewMeteredOptionalType(gauge common.MemoryGauge, typ Type) OptionalType

func NewOptionalType added in v0.24.0

func NewOptionalType(typ Type) OptionalType

func (OptionalType) ID

func (t OptionalType) ID() string

type Parameter

type Parameter struct {
	Label      string
	Identifier string
	Type       Type
}

func NewParameter added in v0.24.0

func NewParameter(
	label string,
	identifier string,
	typ Type,
) Parameter

type Path added in v0.10.0

type Path struct {
	Domain     string
	Identifier string
}

func NewMeteredPath added in v0.24.0

func NewMeteredPath(gauge common.MemoryGauge, domain, identifier string) Path

func NewPath added in v0.24.0

func NewPath(domain, identifier string) Path

func (Path) MeteredType added in v0.24.0

func (Path) MeteredType(gauge common.MemoryGauge) Type

func (Path) String added in v0.12.0

func (v Path) String() string

func (Path) ToGoValue added in v0.10.0

func (Path) ToGoValue() any

func (Path) Type added in v0.10.0

func (Path) Type() Type

type PathType added in v0.7.0

type PathType struct{}

func NewMeteredPathType added in v0.24.0

func NewMeteredPathType(
	gauge common.MemoryGauge,
) PathType

func NewPathType added in v0.24.0

func NewPathType() PathType

func (PathType) ID added in v0.7.0

func (PathType) ID() string

type PrivatePathType added in v0.11.0

type PrivatePathType struct{}

func NewMeteredPrivatePathType added in v0.24.0

func NewMeteredPrivatePathType(
	gauge common.MemoryGauge,
) PrivatePathType

func NewPrivatePathType added in v0.24.0

func NewPrivatePathType() PrivatePathType

func (PrivatePathType) ID added in v0.11.0

func (PrivatePathType) ID() string

type PublicAccountContractsType added in v0.24.0

type PublicAccountContractsType struct{}

PublicAccountContractsType

func NewMeteredPublicAccountContractsType added in v0.24.0

func NewMeteredPublicAccountContractsType(
	gauge common.MemoryGauge,
) PublicAccountContractsType

func NewPublicAccountContractsType added in v0.24.0

func NewPublicAccountContractsType() PublicAccountContractsType

func (PublicAccountContractsType) ID added in v0.24.0

type PublicAccountKeysType added in v0.24.0

type PublicAccountKeysType struct{}

PublicAccountContractsType

func NewMeteredPublicAccountKeysType added in v0.24.0

func NewMeteredPublicAccountKeysType(
	gauge common.MemoryGauge,
) PublicAccountKeysType

func NewPublicAccountKeysType added in v0.24.0

func NewPublicAccountKeysType() PublicAccountKeysType

func (PublicAccountKeysType) ID added in v0.24.0

type PublicAccountType added in v0.7.0

type PublicAccountType struct{}

PublicAccountType

func NewMeteredPublicAccountType added in v0.24.0

func NewMeteredPublicAccountType(
	gauge common.MemoryGauge,
) PublicAccountType

func NewPublicAccountType added in v0.24.0

func NewPublicAccountType() PublicAccountType

func (PublicAccountType) ID added in v0.7.0

type PublicPathType added in v0.11.0

type PublicPathType struct{}

func NewMeteredPublicPathType added in v0.24.0

func NewMeteredPublicPathType(
	gauge common.MemoryGauge,
) PublicPathType

func NewPublicPathType added in v0.24.0

func NewPublicPathType() PublicPathType

func (PublicPathType) ID added in v0.11.0

func (PublicPathType) ID() string

type ReferenceType added in v0.7.0

type ReferenceType struct {
	Authorized bool
	Type       Type
}

func NewMeteredReferenceType added in v0.24.0

func NewMeteredReferenceType(
	gauge common.MemoryGauge,
	authorized bool,
	typ Type,
) ReferenceType

func NewReferenceType added in v0.24.0

func NewReferenceType(
	authorized bool,
	typ Type,
) ReferenceType

func (ReferenceType) ID added in v0.7.0

func (t ReferenceType) ID() string

type Resource

type Resource struct {
	ResourceType *ResourceType
	Fields       []Value
}

func NewMeteredResource added in v0.24.0

func NewMeteredResource(
	gauge common.MemoryGauge,
	numberOfFields int,
	constructor func() ([]Value, error),
) (Resource, error)

func NewResource

func NewResource(fields []Value) Resource

func (Resource) MeteredType added in v0.24.0

func (v Resource) MeteredType(_ common.MemoryGauge) Type

func (Resource) String added in v0.12.0

func (v Resource) String() string

func (Resource) ToGoValue

func (v Resource) ToGoValue() any

func (Resource) Type

func (v Resource) Type() Type

func (Resource) WithType

func (v Resource) WithType(typ *ResourceType) Resource

type ResourceInterfaceType added in v0.7.0

type ResourceInterfaceType struct {
	Location            common.Location
	QualifiedIdentifier string
	Fields              []Field
	Initializers        [][]Parameter
}

func NewMeteredResourceInterfaceType added in v0.24.0

func NewMeteredResourceInterfaceType(
	gauge common.MemoryGauge,
	location common.Location,
	qualifiedIdentifier string,
	fields []Field,
	initializers [][]Parameter,
) *ResourceInterfaceType

func NewResourceInterfaceType added in v0.24.0

func NewResourceInterfaceType(
	location common.Location,
	qualifiedIdentifier string,
	fields []Field,
	initializers [][]Parameter,
) *ResourceInterfaceType

func (*ResourceInterfaceType) ID added in v0.7.0

func (t *ResourceInterfaceType) ID() string

func (*ResourceInterfaceType) InterfaceFields added in v0.7.0

func (t *ResourceInterfaceType) InterfaceFields() []Field

func (*ResourceInterfaceType) InterfaceInitializers added in v0.7.0

func (t *ResourceInterfaceType) InterfaceInitializers() [][]Parameter

func (*ResourceInterfaceType) InterfaceTypeLocation added in v0.12.0

func (t *ResourceInterfaceType) InterfaceTypeLocation() common.Location

func (*ResourceInterfaceType) InterfaceTypeQualifiedIdentifier added in v0.12.0

func (t *ResourceInterfaceType) InterfaceTypeQualifiedIdentifier() string

func (*ResourceInterfaceType) SetInterfaceFields added in v0.24.3

func (t *ResourceInterfaceType) SetInterfaceFields(fields []Field)

type ResourceType

type ResourceType struct {
	Location            common.Location
	QualifiedIdentifier string
	Fields              []Field
	Initializers        [][]Parameter
}

func NewMeteredResourceType added in v0.24.0

func NewMeteredResourceType(
	gauge common.MemoryGauge,
	location common.Location,
	qualifiedIdentifer string,
	fields []Field,
	initializers [][]Parameter,
) *ResourceType

func NewResourceType added in v0.24.0

func NewResourceType(
	location common.Location,
	qualifiedIdentifer string,
	fields []Field,
	initializers [][]Parameter,
) *ResourceType

func (*ResourceType) CompositeFields

func (t *ResourceType) CompositeFields() []Field

func (*ResourceType) CompositeInitializers

func (t *ResourceType) CompositeInitializers() [][]Parameter

func (*ResourceType) CompositeTypeLocation added in v0.12.0

func (t *ResourceType) CompositeTypeLocation() common.Location

func (*ResourceType) CompositeTypeQualifiedIdentifier added in v0.12.0

func (t *ResourceType) CompositeTypeQualifiedIdentifier() string

func (*ResourceType) ID

func (t *ResourceType) ID() string

func (*ResourceType) SetCompositeFields added in v0.24.3

func (t *ResourceType) SetCompositeFields(fields []Field)

type RestrictedType added in v0.7.0

type RestrictedType struct {
	Type         Type
	Restrictions []Type
	// contains filtered or unexported fields
}

func NewMeteredRestrictedType added in v0.24.0

func NewMeteredRestrictedType(
	gauge common.MemoryGauge,
	typeID string,
	typ Type,
	restrictions []Type,
) *RestrictedType

func NewRestrictedType added in v0.24.0

func NewRestrictedType(
	typeID string,
	typ Type,
	restrictions []Type,
) *RestrictedType

func (*RestrictedType) ID added in v0.7.0

func (t *RestrictedType) ID() string

func (*RestrictedType) WithID added in v0.7.0

func (t *RestrictedType) WithID(id string) *RestrictedType

type SignedFixedPointType added in v0.7.0

type SignedFixedPointType struct{}

func NewMeteredSignedFixedPointType added in v0.24.0

func NewMeteredSignedFixedPointType(gauge common.MemoryGauge) SignedFixedPointType

func NewSignedFixedPointType added in v0.24.0

func NewSignedFixedPointType() SignedFixedPointType

func (SignedFixedPointType) ID added in v0.7.0

type SignedIntegerType added in v0.7.0

type SignedIntegerType struct{}

func NewMeteredSignedIntegerType added in v0.24.0

func NewMeteredSignedIntegerType(gauge common.MemoryGauge) SignedIntegerType

func NewSignedIntegerType added in v0.24.0

func NewSignedIntegerType() SignedIntegerType

func (SignedIntegerType) ID added in v0.7.0

type SignedNumberType added in v0.7.0

type SignedNumberType struct{}

func NewMeteredSignedNumberType added in v0.24.0

func NewMeteredSignedNumberType(gauge common.MemoryGauge) SignedNumberType

func NewSignedNumberType added in v0.24.0

func NewSignedNumberType() SignedNumberType

func (SignedNumberType) ID added in v0.7.0

func (SignedNumberType) ID() string

type StoragePathType added in v0.11.0

type StoragePathType struct{}

func NewMeteredStoragePathType added in v0.24.0

func NewMeteredStoragePathType(
	gauge common.MemoryGauge,
) StoragePathType

func NewStoragePathType added in v0.24.0

func NewStoragePathType() StoragePathType

func (StoragePathType) ID added in v0.11.0

func (StoragePathType) ID() string

type String

type String string

func NewMeteredString added in v0.24.0

func NewMeteredString(
	memoryGauge common.MemoryGauge,
	memoryUsage common.MemoryUsage,
	stringConstructor func() string,
) (String, error)

func NewString

func NewString(s string) (String, error)

func (String) MeteredType added in v0.24.0

func (String) MeteredType(gauge common.MemoryGauge) Type

func (String) String added in v0.12.0

func (v String) String() string

func (String) ToGoValue

func (v String) ToGoValue() any

func (String) Type

func (String) Type() Type

type StringType

type StringType struct{}

func NewMeteredStringType added in v0.24.0

func NewMeteredStringType(gauge common.MemoryGauge) StringType

func NewStringType added in v0.24.0

func NewStringType() StringType

func (StringType) ID

func (StringType) ID() string

type Struct

type Struct struct {
	StructType *StructType
	Fields     []Value
}

func NewMeteredStruct added in v0.24.0

func NewMeteredStruct(
	gauge common.MemoryGauge,
	numberOfFields int,
	constructor func() ([]Value, error),
) (Struct, error)

func NewStruct

func NewStruct(fields []Value) Struct

func (Struct) MeteredType added in v0.24.0

func (v Struct) MeteredType(_ common.MemoryGauge) Type

func (Struct) String added in v0.12.0

func (v Struct) String() string

func (Struct) ToGoValue

func (v Struct) ToGoValue() any

func (Struct) Type

func (v Struct) Type() Type

func (Struct) WithType

func (v Struct) WithType(typ *StructType) Struct

type StructInterfaceType added in v0.7.0

type StructInterfaceType struct {
	Location            common.Location
	QualifiedIdentifier string
	Fields              []Field
	Initializers        [][]Parameter
}

func NewMeteredStructInterfaceType added in v0.24.0

func NewMeteredStructInterfaceType(
	gauge common.MemoryGauge,
	location common.Location,
	qualifiedIdentifier string,
	fields []Field,
	initializers [][]Parameter,
) *StructInterfaceType

func NewStructInterfaceType added in v0.24.0

func NewStructInterfaceType(
	location common.Location,
	qualifiedIdentifier string,
	fields []Field,
	initializers [][]Parameter,
) *StructInterfaceType

func (*StructInterfaceType) ID added in v0.7.0

func (t *StructInterfaceType) ID() string

func (*StructInterfaceType) InterfaceFields added in v0.7.0

func (t *StructInterfaceType) InterfaceFields() []Field

func (*StructInterfaceType) InterfaceInitializers added in v0.7.0

func (t *StructInterfaceType) InterfaceInitializers() [][]Parameter

func (*StructInterfaceType) InterfaceTypeLocation added in v0.12.0

func (t *StructInterfaceType) InterfaceTypeLocation() common.Location

func (*StructInterfaceType) InterfaceTypeQualifiedIdentifier added in v0.12.0

func (t *StructInterfaceType) InterfaceTypeQualifiedIdentifier() string

func (*StructInterfaceType) SetInterfaceFields added in v0.24.3

func (t *StructInterfaceType) SetInterfaceFields(fields []Field)

type StructType

type StructType struct {
	Location            common.Location
	QualifiedIdentifier string
	Fields              []Field
	Initializers        [][]Parameter
}

func NewMeteredStructType added in v0.24.0

func NewMeteredStructType(
	gauge common.MemoryGauge,
	location common.Location,
	qualifiedIdentifer string,
	fields []Field,
	initializers [][]Parameter,
) *StructType

func NewStructType added in v0.24.0

func NewStructType(
	location common.Location,
	qualifiedIdentifier string,
	fields []Field,
	initializers [][]Parameter,
) *StructType

func (*StructType) CompositeFields

func (t *StructType) CompositeFields() []Field

func (*StructType) CompositeInitializers

func (t *StructType) CompositeInitializers() [][]Parameter

func (*StructType) CompositeTypeLocation added in v0.12.0

func (t *StructType) CompositeTypeLocation() common.Location

func (*StructType) CompositeTypeQualifiedIdentifier added in v0.12.0

func (t *StructType) CompositeTypeQualifiedIdentifier() string

func (*StructType) ID

func (t *StructType) ID() string

func (*StructType) SetCompositeFields added in v0.24.3

func (t *StructType) SetCompositeFields(fields []Field)

type Type

type Type interface {
	ID() string
	// contains filtered or unexported methods
}

type TypeID added in v0.24.4

type TypeID string

TypeID is a type which is only known by its type ID. This type should not be used when encoding values, and should only be used for decoding values that were encoded using an older format of the JSON encoding (<v0.3.0)

func (TypeID) ID added in v0.24.4

func (t TypeID) ID() string

type TypeValue added in v0.10.0

type TypeValue struct {
	StaticType Type
}

func NewMeteredTypeValue added in v0.24.0

func NewMeteredTypeValue(gauge common.MemoryGauge, staticType Type) TypeValue

func NewTypeValue added in v0.24.0

func NewTypeValue(staticType Type) TypeValue

func (TypeValue) MeteredType added in v0.24.0

func (TypeValue) MeteredType(gauge common.MemoryGauge) Type

func (TypeValue) String added in v0.12.0

func (v TypeValue) String() string

func (TypeValue) ToGoValue added in v0.10.0

func (TypeValue) ToGoValue() any

func (TypeValue) Type added in v0.10.0

func (TypeValue) Type() Type

type UFix64

type UFix64 uint64

func NewMeteredUFix64 added in v0.24.0

func NewMeteredUFix64(gauge common.MemoryGauge, constructor func() (string, error)) (UFix64, error)

func NewUFix64

func NewUFix64(s string) (UFix64, error)

func NewUFix64FromParts added in v0.5.0

func NewUFix64FromParts(integer int, fraction uint) (UFix64, error)

func (UFix64) MeteredType added in v0.24.0

func (UFix64) MeteredType(gauge common.MemoryGauge) Type

func (UFix64) String added in v0.12.0

func (v UFix64) String() string

func (UFix64) ToBigEndianBytes added in v0.5.0

func (v UFix64) ToBigEndianBytes() []byte

func (UFix64) ToGoValue

func (v UFix64) ToGoValue() any

func (UFix64) Type

func (UFix64) Type() Type

type UFix64Type

type UFix64Type struct{}

func NewMeteredUFix64Type added in v0.24.0

func NewMeteredUFix64Type(gauge common.MemoryGauge) UFix64Type

func NewUFix64Type added in v0.24.0

func NewUFix64Type() UFix64Type

func (UFix64Type) ID

func (UFix64Type) ID() string

type UInt

type UInt struct {
	Value *big.Int
}

func NewMeteredUIntFromBig added in v0.24.0

func NewMeteredUIntFromBig(
	memoryGauge common.MemoryGauge,
	memoryUsage common.MemoryUsage,
	bigIntConstructor func() *big.Int,
) (UInt, error)

func NewUInt

func NewUInt(i uint) UInt

func NewUIntFromBig

func NewUIntFromBig(i *big.Int) (UInt, error)

func (UInt) Big

func (v UInt) Big() *big.Int

func (UInt) Int

func (v UInt) Int() int

func (UInt) MeteredType added in v0.24.0

func (UInt) MeteredType(gauge common.MemoryGauge) Type

func (UInt) String added in v0.12.0

func (v UInt) String() string

func (UInt) ToBigEndianBytes added in v0.5.0

func (v UInt) ToBigEndianBytes() []byte

func (UInt) ToGoValue

func (v UInt) ToGoValue() any

func (UInt) Type

func (UInt) Type() Type

type UInt128

type UInt128 struct {
	Value *big.Int
}

func NewMeteredUInt128FromBig added in v0.24.0

func NewMeteredUInt128FromBig(
	memoryGauge common.MemoryGauge,
	bigIntConstructor func() *big.Int,
) (UInt128, error)

func NewUInt128

func NewUInt128(i uint) UInt128

func NewUInt128FromBig

func NewUInt128FromBig(i *big.Int) (UInt128, error)

func (UInt128) Big

func (v UInt128) Big() *big.Int

func (UInt128) Int

func (v UInt128) Int() int

func (UInt128) MeteredType added in v0.24.0

func (UInt128) MeteredType(gauge common.MemoryGauge) Type

func (UInt128) String added in v0.12.0

func (v UInt128) String() string

func (UInt128) ToBigEndianBytes added in v0.5.0

func (v UInt128) ToBigEndianBytes() []byte

func (UInt128) ToGoValue

func (v UInt128) ToGoValue() any

func (UInt128) Type

func (UInt128) Type() Type

type UInt128Type

type UInt128Type struct{}

func NewMeteredUInt128Type added in v0.24.0

func NewMeteredUInt128Type(gauge common.MemoryGauge) UInt128Type

func NewUInt128Type added in v0.24.0

func NewUInt128Type() UInt128Type

func (UInt128Type) ID

func (UInt128Type) ID() string

type UInt16

type UInt16 uint16

func NewMeteredUInt16 added in v0.24.0

func NewMeteredUInt16(gauge common.MemoryGauge, v uint16) UInt16

func NewUInt16

func NewUInt16(v uint16) UInt16

func (UInt16) MeteredType added in v0.24.0

func (UInt16) MeteredType(gauge common.MemoryGauge) Type

func (UInt16) String added in v0.12.0

func (v UInt16) String() string

func (UInt16) ToBigEndianBytes added in v0.5.0

func (v UInt16) ToBigEndianBytes() []byte

func (UInt16) ToGoValue

func (v UInt16) ToGoValue() any

func (UInt16) Type

func (UInt16) Type() Type

type UInt16Type

type UInt16Type struct{}

func NewMeteredUInt16Type added in v0.24.0

func NewMeteredUInt16Type(gauge common.MemoryGauge) UInt16Type

func NewUInt16Type added in v0.24.0

func NewUInt16Type() UInt16Type

func (UInt16Type) ID

func (UInt16Type) ID() string

type UInt256

type UInt256 struct {
	Value *big.Int
}

func NewMeteredUInt256FromBig added in v0.24.0

func NewMeteredUInt256FromBig(
	memoryGauge common.MemoryGauge,
	bigIntConstructor func() *big.Int,
) (UInt256, error)

func NewUInt256

func NewUInt256(i uint) UInt256

func NewUInt256FromBig

func NewUInt256FromBig(i *big.Int) (UInt256, error)

func (UInt256) Big

func (v UInt256) Big() *big.Int

func (UInt256) Int

func (v UInt256) Int() int

func (UInt256) MeteredType added in v0.24.0

func (UInt256) MeteredType(gauge common.MemoryGauge) Type

func (UInt256) String added in v0.12.0

func (v UInt256) String() string

func (UInt256) ToBigEndianBytes added in v0.5.0

func (v UInt256) ToBigEndianBytes() []byte

func (UInt256) ToGoValue

func (v UInt256) ToGoValue() any

func (UInt256) Type

func (UInt256) Type() Type

type UInt256Type

type UInt256Type struct{}

func NewMeteredUInt256Type added in v0.24.0

func NewMeteredUInt256Type(gauge common.MemoryGauge) UInt256Type

func NewUInt256Type added in v0.24.0

func NewUInt256Type() UInt256Type

func (UInt256Type) ID

func (UInt256Type) ID() string

type UInt32

type UInt32 uint32

func NewMeteredUInt32 added in v0.24.0

func NewMeteredUInt32(gauge common.MemoryGauge, v uint32) UInt32

func NewUInt32

func NewUInt32(v uint32) UInt32

func (UInt32) MeteredType added in v0.24.0

func (UInt32) MeteredType(gauge common.MemoryGauge) Type

func (UInt32) String added in v0.12.0

func (v UInt32) String() string

func (UInt32) ToBigEndianBytes added in v0.5.0

func (v UInt32) ToBigEndianBytes() []byte

func (UInt32) ToGoValue

func (v UInt32) ToGoValue() any

func (UInt32) Type

func (UInt32) Type() Type

type UInt32Type

type UInt32Type struct{}

func NewMeteredUInt32Type added in v0.24.0

func NewMeteredUInt32Type(gauge common.MemoryGauge) UInt32Type

func NewUInt32Type added in v0.24.0

func NewUInt32Type() UInt32Type

func (UInt32Type) ID

func (UInt32Type) ID() string

type UInt64

type UInt64 uint64

func NewMeteredUInt64 added in v0.24.0

func NewMeteredUInt64(gauge common.MemoryGauge, v uint64) UInt64

func NewUInt64

func NewUInt64(v uint64) UInt64

func (UInt64) MeteredType added in v0.24.0

func (UInt64) MeteredType(gauge common.MemoryGauge) Type

func (UInt64) String added in v0.12.0

func (v UInt64) String() string

func (UInt64) ToBigEndianBytes added in v0.5.0

func (v UInt64) ToBigEndianBytes() []byte

func (UInt64) ToGoValue

func (v UInt64) ToGoValue() any

func (UInt64) Type

func (UInt64) Type() Type

type UInt64Type

type UInt64Type struct{}

func NewMeteredUInt64Type added in v0.24.0

func NewMeteredUInt64Type(gauge common.MemoryGauge) UInt64Type

func NewUInt64Type added in v0.24.0

func NewUInt64Type() UInt64Type

func (UInt64Type) ID

func (UInt64Type) ID() string

type UInt8

type UInt8 uint8

func NewMeteredUInt8 added in v0.24.0

func NewMeteredUInt8(gauge common.MemoryGauge, v uint8) UInt8

func NewUInt8

func NewUInt8(v uint8) UInt8

func (UInt8) MeteredType added in v0.24.0

func (UInt8) MeteredType(gauge common.MemoryGauge) Type

func (UInt8) String added in v0.12.0

func (v UInt8) String() string

func (UInt8) ToBigEndianBytes added in v0.5.0

func (v UInt8) ToBigEndianBytes() []byte

func (UInt8) ToGoValue

func (v UInt8) ToGoValue() any

func (UInt8) Type

func (UInt8) Type() Type

type UInt8Type

type UInt8Type struct{}

func NewMeteredUInt8Type added in v0.24.0

func NewMeteredUInt8Type(gauge common.MemoryGauge) UInt8Type

func NewUInt8Type added in v0.24.0

func NewUInt8Type() UInt8Type

func (UInt8Type) ID

func (UInt8Type) ID() string

type UIntType

type UIntType struct{}

func NewMeteredUIntType added in v0.24.0

func NewMeteredUIntType(gauge common.MemoryGauge) UIntType

func NewUIntType added in v0.24.0

func NewUIntType() UIntType

func (UIntType) ID

func (UIntType) ID() string

type Value

type Value interface {
	Type() Type
	MeteredType(gauge common.MemoryGauge) Type
	ToGoValue() any
	fmt.Stringer
	// contains filtered or unexported methods
}

func MustConvertValue

func MustConvertValue(value any) Value

MustConvertValue converts a Go value to an ABI value or panics if the value cannot be converted.

func NewValue

func NewValue(value any) (Value, error)

Unmetered because this function is only used by the client.

type VariableSizedArrayType

type VariableSizedArrayType struct {
	ElementType Type
}

func NewMeteredVariableSizedArrayType added in v0.24.0

func NewMeteredVariableSizedArrayType(
	gauge common.MemoryGauge,
	elementType Type,
) VariableSizedArrayType

func NewVariableSizedArrayType added in v0.24.0

func NewVariableSizedArrayType(
	elementType Type,
) VariableSizedArrayType

func (VariableSizedArrayType) Element

func (t VariableSizedArrayType) Element() Type

func (VariableSizedArrayType) ID

type Void

type Void struct{}

func NewMeteredVoid added in v0.24.0

func NewMeteredVoid(memoryGauge common.MemoryGauge) Void

func NewVoid

func NewVoid() Void

func (Void) MeteredType added in v0.24.0

func (Void) MeteredType(gauge common.MemoryGauge) Type

func (Void) String added in v0.12.0

func (Void) String() string

func (Void) ToGoValue

func (Void) ToGoValue() any

func (Void) Type

func (Void) Type() Type

type VoidType

type VoidType struct{}

func NewMeteredVoidType added in v0.24.0

func NewMeteredVoidType(gauge common.MemoryGauge) VoidType

func NewVoidType added in v0.24.0

func NewVoidType() VoidType

func (VoidType) ID

func (VoidType) ID() string

type Word16

type Word16 uint16

func NewMeteredWord16 added in v0.24.0

func NewMeteredWord16(gauge common.MemoryGauge, v uint16) Word16

func NewWord16

func NewWord16(v uint16) Word16

func (Word16) MeteredType added in v0.24.0

func (Word16) MeteredType(gauge common.MemoryGauge) Type

func (Word16) String added in v0.12.0

func (v Word16) String() string

func (Word16) ToBigEndianBytes added in v0.5.0

func (v Word16) ToBigEndianBytes() []byte

func (Word16) ToGoValue

func (v Word16) ToGoValue() any

func (Word16) Type

func (Word16) Type() Type

type Word16Type

type Word16Type struct{}

func NewMeteredWord16Type added in v0.24.0

func NewMeteredWord16Type(gauge common.MemoryGauge) Word16Type

func NewWord16Type added in v0.24.0

func NewWord16Type() Word16Type

func (Word16Type) ID

func (Word16Type) ID() string

type Word32

type Word32 uint32

func NewMeteredWord32 added in v0.24.0

func NewMeteredWord32(gauge common.MemoryGauge, v uint32) Word32

func NewWord32

func NewWord32(v uint32) Word32

func (Word32) MeteredType added in v0.24.0

func (Word32) MeteredType(gauge common.MemoryGauge) Type

func (Word32) String added in v0.12.0

func (v Word32) String() string

func (Word32) ToBigEndianBytes added in v0.5.0

func (v Word32) ToBigEndianBytes() []byte

func (Word32) ToGoValue

func (v Word32) ToGoValue() any

func (Word32) Type

func (Word32) Type() Type

type Word32Type

type Word32Type struct{}

func NewMeteredWord32Type added in v0.24.0

func NewMeteredWord32Type(gauge common.MemoryGauge) Word32Type

func NewWord32Type added in v0.24.0

func NewWord32Type() Word32Type

func (Word32Type) ID

func (Word32Type) ID() string

type Word64

type Word64 uint64

func NewMeteredWord64 added in v0.24.0

func NewMeteredWord64(gauge common.MemoryGauge, v uint64) Word64

func NewWord64

func NewWord64(v uint64) Word64

func (Word64) MeteredType added in v0.24.0

func (Word64) MeteredType(gauge common.MemoryGauge) Type

func (Word64) String added in v0.12.0

func (v Word64) String() string

func (Word64) ToBigEndianBytes added in v0.5.0

func (v Word64) ToBigEndianBytes() []byte

func (Word64) ToGoValue

func (v Word64) ToGoValue() any

func (Word64) Type

func (Word64) Type() Type

type Word64Type

type Word64Type struct{}

func NewMeteredWord64Type added in v0.24.0

func NewMeteredWord64Type(gauge common.MemoryGauge) Word64Type

func NewWord64Type added in v0.24.0

func NewWord64Type() Word64Type

func (Word64Type) ID

func (Word64Type) ID() string

type Word8

type Word8 uint8

func NewMeteredWord8 added in v0.24.0

func NewMeteredWord8(gauge common.MemoryGauge, v uint8) Word8

func NewWord8

func NewWord8(v uint8) Word8

func (Word8) MeteredType added in v0.24.0

func (Word8) MeteredType(gauge common.MemoryGauge) Type

func (Word8) String added in v0.12.0

func (v Word8) String() string

func (Word8) ToBigEndianBytes added in v0.5.0

func (v Word8) ToBigEndianBytes() []byte

func (Word8) ToGoValue

func (v Word8) ToGoValue() any

func (Word8) Type

func (Word8) Type() Type

type Word8Type

type Word8Type struct{}

func NewMeteredWord8Type added in v0.24.0

func NewMeteredWord8Type(gauge common.MemoryGauge) Word8Type

func NewWord8Type added in v0.24.0

func NewWord8Type() Word8Type

func (Word8Type) ID

func (Word8Type) ID() string

Directories

Path Synopsis
encoding
json
Package json implements the JSON-Cadence specification: https://github.com/onflow/flow/blob/master/docs/json-cadence-spec.md
Package json implements the JSON-Cadence specification: https://github.com/onflow/flow/blob/master/docs/json-cadence-spec.md
Package fixedpoint provides constants, as well as formatting, conversion, and checking functionality for Cadence fixed-point number types
Package fixedpoint provides constants, as well as formatting, conversion, and checking functionality for Cadence fixed-point number types
ast
Package ast contains all AST nodes for Cadence.
Package ast contains all AST nodes for Cadence.
cmd
cmd/minifier
* Cadence - The resource-oriented smart contract programming language * * Copyright 2019-2022 Dapper Labs, Inc.
* Cadence - The resource-oriented smart contract programming language * * Copyright 2019-2022 Dapper Labs, Inc.
common/list
Package list implements a doubly linked list.
Package list implements a doubly linked list.
compiler/wasm
WebAssembly (https://webassembly.org/) is an open standard for portable executable programs.
WebAssembly (https://webassembly.org/) is an open standard for portable executable programs.
tools
batch-script Module
docgen Module
get-contracts Module
golangci-lint Module
maprange Module
maprangecheck Module
unkeyed Module
utils
version
Generates a Go file version.go with a constant variableName, which contains the current semantic version as a string literal.
Generates a Go file version.go with a constant variableName, which contains the current semantic version as a string literal.

Jump to

Keyboard shortcuts

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