common

package
v0.34.0 Latest Latest
Warning

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

Go to latest
Published: Feb 16, 2023 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const AddressLength = 8
View Source
const AddressLocationPrefix = "A"
View Source
const BigIntWordSize = int(unsafe.Sizeof(big.Word(0)))
View Source
const ComputationKindRangeStart = 1000

[1000,2000) is reserved for Cadence interpreter and runtime

View Source
const IdentifierLocationPrefix = "I"
View Source
const REPLLocationPrefix = "REPL"
View Source
const ScriptIDLength = 32
View Source
const ScriptLocationPrefix = "s"
View Source
const StringLocationPrefix = "S"
View Source
const TransactionIDLength = 32
View Source
const TransactionLocationPrefix = "t"

Variables

View Source
var (
	TypeTokenMemoryUsage  = NewConstantMemoryUsage(MemoryKindTypeToken)
	ErrorTokenMemoryUsage = NewConstantMemoryUsage(MemoryKindErrorToken)
	SpaceTokenMemoryUsage = NewConstantMemoryUsage(MemoryKindSpaceToken)

	ProgramMemoryUsage           = NewConstantMemoryUsage(MemoryKindProgram)
	IdentifierMemoryUsage        = NewConstantMemoryUsage(MemoryKindIdentifier)
	ArgumentMemoryUsage          = NewConstantMemoryUsage(MemoryKindArgument)
	BlockMemoryUsage             = NewConstantMemoryUsage(MemoryKindBlock)
	FunctionBlockMemoryUsage     = NewConstantMemoryUsage(MemoryKindFunctionBlock)
	ParameterMemoryUsage         = NewConstantMemoryUsage(MemoryKindParameter)
	ParameterListMemoryUsage     = NewConstantMemoryUsage(MemoryKindParameterList)
	TypeParameterMemoryUsage     = NewConstantMemoryUsage(MemoryKindTypeParameter)
	TypeParameterListMemoryUsage = NewConstantMemoryUsage(MemoryKindTypeParameterList)
	TransferMemoryUsage          = NewConstantMemoryUsage(MemoryKindTransfer)
	TypeAnnotationMemoryUsage    = NewConstantMemoryUsage(MemoryKindTypeAnnotation)
	DictionaryEntryMemoryUsage   = NewConstantMemoryUsage(MemoryKindDictionaryEntry)

	FunctionDeclarationMemoryUsage        = NewConstantMemoryUsage(MemoryKindFunctionDeclaration)
	CompositeDeclarationMemoryUsage       = NewConstantMemoryUsage(MemoryKindCompositeDeclaration)
	InterfaceDeclarationMemoryUsage       = NewConstantMemoryUsage(MemoryKindInterfaceDeclaration)
	ImportDeclarationMemoryUsage          = NewConstantMemoryUsage(MemoryKindImportDeclaration)
	TransactionDeclarationMemoryUsage     = NewConstantMemoryUsage(MemoryKindTransactionDeclaration)
	FieldDeclarationMemoryUsage           = NewConstantMemoryUsage(MemoryKindFieldDeclaration)
	EnumCaseDeclarationMemoryUsage        = NewConstantMemoryUsage(MemoryKindEnumCaseDeclaration)
	VariableDeclarationMemoryUsage        = NewConstantMemoryUsage(MemoryKindVariableDeclaration)
	SpecialFunctionDeclarationMemoryUsage = NewConstantMemoryUsage(MemoryKindSpecialFunctionDeclaration)
	PragmaDeclarationMemoryUsage          = NewConstantMemoryUsage(MemoryKindPragmaDeclaration)

	AssignmentStatementMemoryUsage = NewConstantMemoryUsage(MemoryKindAssignmentStatement)
	BreakStatementMemoryUsage      = NewConstantMemoryUsage(MemoryKindBreakStatement)
	ContinueStatementMemoryUsage   = NewConstantMemoryUsage(MemoryKindContinueStatement)
	EmitStatementMemoryUsage       = NewConstantMemoryUsage(MemoryKindEmitStatement)
	ExpressionStatementMemoryUsage = NewConstantMemoryUsage(MemoryKindExpressionStatement)
	ForStatementMemoryUsage        = NewConstantMemoryUsage(MemoryKindForStatement)
	IfStatementMemoryUsage         = NewConstantMemoryUsage(MemoryKindIfStatement)
	ReturnStatementMemoryUsage     = NewConstantMemoryUsage(MemoryKindReturnStatement)
	SwapStatementMemoryUsage       = NewConstantMemoryUsage(MemoryKindSwapStatement)
	SwitchStatementMemoryUsage     = NewConstantMemoryUsage(MemoryKindSwitchStatement)
	WhileStatementMemoryUsage      = NewConstantMemoryUsage(MemoryKindWhileStatement)

	BooleanExpressionMemoryUsage     = NewConstantMemoryUsage(MemoryKindBooleanExpression)
	VoidExpressionMemoryUsage        = NewConstantMemoryUsage(MemoryKindVoidExpression)
	NilExpressionMemoryUsage         = NewConstantMemoryUsage(MemoryKindNilExpression)
	StringExpressionMemoryUsage      = NewConstantMemoryUsage(MemoryKindStringExpression)
	IntegerExpressionMemoryUsage     = NewConstantMemoryUsage(MemoryKindIntegerExpression)
	FixedPointExpressionMemoryUsage  = NewConstantMemoryUsage(MemoryKindFixedPointExpression)
	IdentifierExpressionMemoryUsage  = NewConstantMemoryUsage(MemoryKindIdentifierExpression)
	InvocationExpressionMemoryUsage  = NewConstantMemoryUsage(MemoryKindInvocationExpression)
	MemberExpressionMemoryUsage      = NewConstantMemoryUsage(MemoryKindMemberExpression)
	IndexExpressionMemoryUsage       = NewConstantMemoryUsage(MemoryKindIndexExpression)
	ConditionalExpressionMemoryUsage = NewConstantMemoryUsage(MemoryKindConditionalExpression)
	UnaryExpressionMemoryUsage       = NewConstantMemoryUsage(MemoryKindUnaryExpression)
	BinaryExpressionMemoryUsage      = NewConstantMemoryUsage(MemoryKindBinaryExpression)
	FunctionExpressionMemoryUsage    = NewConstantMemoryUsage(MemoryKindFunctionExpression)
	CastingExpressionMemoryUsage     = NewConstantMemoryUsage(MemoryKindCastingExpression)
	CreateExpressionMemoryUsage      = NewConstantMemoryUsage(MemoryKindCreateExpression)
	DestroyExpressionMemoryUsage     = NewConstantMemoryUsage(MemoryKindDestroyExpression)
	ReferenceExpressionMemoryUsage   = NewConstantMemoryUsage(MemoryKindReferenceExpression)
	ForceExpressionMemoryUsage       = NewConstantMemoryUsage(MemoryKindForceExpression)
	PathExpressionMemoryUsage        = NewConstantMemoryUsage(MemoryKindPathExpression)

	ConstantSizedTypeMemoryUsage = NewConstantMemoryUsage(MemoryKindConstantSizedType)
	DictionaryTypeMemoryUsage    = NewConstantMemoryUsage(MemoryKindDictionaryType)
	FunctionTypeMemoryUsage      = NewConstantMemoryUsage(MemoryKindFunctionType)
	InstantiationTypeMemoryUsage = NewConstantMemoryUsage(MemoryKindInstantiationType)
	NominalTypeMemoryUsage       = NewConstantMemoryUsage(MemoryKindNominalType)
	OptionalTypeMemoryUsage      = NewConstantMemoryUsage(MemoryKindOptionalType)
	ReferenceTypeMemoryUsage     = NewConstantMemoryUsage(MemoryKindReferenceType)
	RestrictedTypeMemoryUsage    = NewConstantMemoryUsage(MemoryKindRestrictedType)
	VariableSizedTypeMemoryUsage = NewConstantMemoryUsage(MemoryKindVariableSizedType)

	PositionMemoryUsage = NewConstantMemoryUsage(MemoryKindPosition)
	RangeMemoryUsage    = NewConstantMemoryUsage(MemoryKindRange)

	ElaborationMemoryUsage       = NewConstantMemoryUsage(MemoryKindElaboration)
	ActivationMemoryUsage        = NewConstantMemoryUsage(MemoryKindActivation)
	ActivationEntriesMemoryUsage = NewConstantMemoryUsage(MemoryKindActivationEntries)

	SimpleCompositeValueBaseMemoryUsage = NewConstantMemoryUsage(MemoryKindSimpleCompositeValueBase)
	AtreeMapElementOverhead             = NewConstantMemoryUsage(MemoryKindAtreeMapElementOverhead)
	AtreeArrayElementOverhead           = NewConstantMemoryUsage(MemoryKindAtreeArrayElementOverhead)
	CompositeTypeInfoMemoryUsage        = NewConstantMemoryUsage(MemoryKindCompositeTypeInfo)
	CompositeFieldMemoryUsage           = NewConstantMemoryUsage(MemoryKindCompositeField)
	DictionaryValueBaseMemoryUsage      = NewConstantMemoryUsage(MemoryKindDictionaryValueBase)
	ArrayValueBaseMemoryUsage           = NewConstantMemoryUsage(MemoryKindArrayValueBase)
	CompositeValueBaseMemoryUsage       = NewConstantMemoryUsage(MemoryKindCompositeValueBase)
	AddressValueMemoryUsage             = NewConstantMemoryUsage(MemoryKindAddressValue)
	BoundFunctionValueMemoryUsage       = NewConstantMemoryUsage(MemoryKindBoundFunctionValue)
	HostFunctionValueMemoryUsage        = NewConstantMemoryUsage(MemoryKindHostFunctionValue)
	InterpretedFunctionValueMemoryUsage = NewConstantMemoryUsage(MemoryKindInterpretedFunctionValue)
	StorageCapabilityValueMemoryUsage   = NewConstantMemoryUsage(MemoryKindStorageCapabilityValue)
	EphemeralReferenceValueMemoryUsage  = NewConstantMemoryUsage(MemoryKindEphemeralReferenceValue)
	StorageReferenceValueMemoryUsage    = NewConstantMemoryUsage(MemoryKindStorageReferenceValue)
	AccountReferenceValueMemoryUsage    = NewConstantMemoryUsage(MemoryKindAccountReferenceValue)
	PathLinkValueMemoryUsage            = NewConstantMemoryUsage(MemoryKindPathLinkValue)
	AccountLinkValueMemoryUsage         = NewConstantMemoryUsage(MemoryKindAccountLinkValue)
	PathValueMemoryUsage                = NewConstantMemoryUsage(MemoryKindPathValue)
	OptionalValueMemoryUsage            = NewConstantMemoryUsage(MemoryKindOptionalValue)
	TypeValueMemoryUsage                = NewConstantMemoryUsage(MemoryKindTypeValue)
	PublishedValueMemoryUsage           = NewConstantMemoryUsage(MemoryKindPublishedValue)

	PrimitiveStaticTypeMemoryUsage     = NewConstantMemoryUsage(MemoryKindPrimitiveStaticType)
	CompositeStaticTypeMemoryUsage     = NewConstantMemoryUsage(MemoryKindCompositeStaticType)
	InterfaceStaticTypeMemoryUsage     = NewConstantMemoryUsage(MemoryKindInterfaceStaticType)
	VariableSizedStaticTypeMemoryUsage = NewConstantMemoryUsage(MemoryKindVariableSizedStaticType)
	ConstantSizedStaticTypeMemoryUsage = NewConstantMemoryUsage(MemoryKindConstantSizedStaticType)
	DictionaryStaticTypeMemoryUsage    = NewConstantMemoryUsage(MemoryKindDictionaryStaticType)
	OptionalStaticTypeMemoryUsage      = NewConstantMemoryUsage(MemoryKindOptionalStaticType)
	RestrictedStaticTypeMemoryUsage    = NewConstantMemoryUsage(MemoryKindRestrictedStaticType)
	ReferenceStaticTypeMemoryUsage     = NewConstantMemoryUsage(MemoryKindReferenceStaticType)
	CapabilityStaticTypeMemoryUsage    = NewConstantMemoryUsage(MemoryKindCapabilityStaticType)
	FunctionStaticTypeMemoryUsage      = NewConstantMemoryUsage(MemoryKindFunctionStaticType)

	VariableSizedSemaTypeMemoryUsage = NewConstantMemoryUsage(MemoryKindVariableSizedSemaType)
	ConstantSizedSemaTypeMemoryUsage = NewConstantMemoryUsage(MemoryKindConstantSizedSemaType)
	DictionarySemaTypeMemoryUsage    = NewConstantMemoryUsage(MemoryKindDictionarySemaType)
	OptionalSemaTypeMemoryUsage      = NewConstantMemoryUsage(MemoryKindOptionalSemaType)
	RestrictedSemaTypeMemoryUsage    = NewConstantMemoryUsage(MemoryKindRestrictedSemaType)
	ReferenceSemaTypeMemoryUsage     = NewConstantMemoryUsage(MemoryKindReferenceSemaType)
	CapabilitySemaTypeMemoryUsage    = NewConstantMemoryUsage(MemoryKindCapabilitySemaType)

	OrderedMapMemoryUsage = NewConstantMemoryUsage(MemoryKindOrderedMap)
	InvocationMemoryUsage = NewConstantMemoryUsage(MemoryKindInvocation)
	StorageMapMemoryUsage = NewConstantMemoryUsage(MemoryKindStorageMap)
	StorageKeyMemoryUsage = NewConstantMemoryUsage(MemoryKindStorageKey)

	CadenceDictionaryValueMemoryUsage        = NewConstantMemoryUsage(MemoryKindCadenceDictionaryValue)
	CadenceArrayValueBaseMemoryUsage         = NewConstantMemoryUsage(MemoryKindCadenceArrayValueBase)
	CadenceStructValueBaseMemoryUsage        = NewConstantMemoryUsage(MemoryKindCadenceStructValueBase)
	CadenceResourceValueBaseMemoryUsage      = NewConstantMemoryUsage(MemoryKindCadenceResourceValueBase)
	CadenceEventValueBaseMemoryUsage         = NewConstantMemoryUsage(MemoryKindCadenceEventValueBase)
	CadenceContractValueBaseMemoryUsage      = NewConstantMemoryUsage(MemoryKindCadenceContractValueBase)
	CadenceEnumValueBaseMemoryUsage          = NewConstantMemoryUsage(MemoryKindCadenceEnumValueBase)
	CadenceAddressValueMemoryUsage           = NewConstantMemoryUsage(MemoryKindCadenceAddressValue)
	CadenceBoolValueMemoryUsage              = NewConstantMemoryUsage(MemoryKindCadenceBoolValue)
	CadenceStorageCapabilityValueMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceStorageCapabilityValue)
	CadenceFunctionValueMemoryUsage          = NewConstantMemoryUsage(MemoryKindCadenceFunctionValue)
	CadenceKeyValuePairMemoryUsage           = NewConstantMemoryUsage(MemoryKindCadenceKeyValuePair)
	CadencePathLinkValueMemoryUsage          = NewConstantMemoryUsage(MemoryKindCadencePathLinkValue)
	CadenceOptionalValueMemoryUsage          = NewConstantMemoryUsage(MemoryKindCadenceOptionalValue)
	CadencePathValueMemoryUsage              = NewConstantMemoryUsage(MemoryKindCadencePathValue)
	CadenceVoidValueMemoryUsage              = NewConstantMemoryUsage(MemoryKindCadenceVoidValue)
	CadenceTypeValueMemoryUsage              = NewConstantMemoryUsage(MemoryKindCadenceTypeValue)

	CadenceCapabilityTypeMemoryUsage         = NewConstantMemoryUsage(MemoryKindCadenceCapabilityType)
	CadenceConstantSizedArrayTypeMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceConstantSizedArrayType)
	CadenceVariableSizedArrayTypeMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceVariableSizedArrayType)
	CadenceContractInterfaceTypeMemoryUsage  = NewConstantMemoryUsage(MemoryKindCadenceContractInterfaceType)
	CadenceContractTypeMemoryUsage           = NewConstantMemoryUsage(MemoryKindCadenceContractType)
	CadenceDictionaryTypeMemoryUsage         = NewConstantMemoryUsage(MemoryKindCadenceDictionaryType)
	CadenceEnumTypeMemoryUsage               = NewConstantMemoryUsage(MemoryKindCadenceEnumType)
	CadenceEventTypeMemoryUsage              = NewConstantMemoryUsage(MemoryKindCadenceEventType)
	CadenceFunctionTypeMemoryUsage           = NewConstantMemoryUsage(MemoryKindCadenceFunctionType)
	CadenceOptionalTypeMemoryUsage           = NewConstantMemoryUsage(MemoryKindCadenceOptionalType)
	CadenceReferenceTypeMemoryUsage          = NewConstantMemoryUsage(MemoryKindCadenceReferenceType)
	CadenceResourceInterfaceTypeMemoryUsage  = NewConstantMemoryUsage(MemoryKindCadenceResourceInterfaceType)
	CadenceResourceTypeMemoryUsage           = NewConstantMemoryUsage(MemoryKindCadenceResourceType)
	CadenceRestrictedTypeMemoryUsage         = NewConstantMemoryUsage(MemoryKindCadenceRestrictedType)
	CadenceStructInterfaceTypeMemoryUsage    = NewConstantMemoryUsage(MemoryKindCadenceStructInterfaceType)
	CadenceStructTypeMemoryUsage             = NewConstantMemoryUsage(MemoryKindCadenceStructType)

	VoidStringMemoryUsage                   = NewRawStringMemoryUsage(len("()"))
	TrueStringMemoryUsage                   = NewRawStringMemoryUsage(len("true"))
	FalseStringMemoryUsage                  = NewRawStringMemoryUsage(len("false"))
	TypeValueStringMemoryUsage              = NewRawStringMemoryUsage(len("Type<>()"))
	NilValueStringMemoryUsage               = NewRawStringMemoryUsage(len("nil"))
	StorageReferenceValueStringMemoryUsage  = NewRawStringMemoryUsage(len("StorageReference()"))
	AccountReferenceValueStringMemoryUsage  = NewRawStringMemoryUsage(len("AccountReference()"))
	SeenReferenceStringMemoryUsage          = NewRawStringMemoryUsage(3)                   // len(ellipsis)
	AddressValueStringMemoryUsage           = NewRawStringMemoryUsage(AddressLength*2 + 2) // len(bytes-to-hex + prefix)
	HostFunctionValueStringMemoryUsage      = NewRawStringMemoryUsage(len("Function(...)"))
	AuthAccountValueStringMemoryUsage       = NewRawStringMemoryUsage(len("AuthAccount()"))
	PublicAccountValueStringMemoryUsage     = NewRawStringMemoryUsage(len("PublicAccount()"))
	AuthAccountContractsStringMemoryUsage   = NewRawStringMemoryUsage(len("AuthAccount.Contracts()"))
	PublicAccountContractsStringMemoryUsage = NewRawStringMemoryUsage(len("PublicAccount.Contracts()"))
	AuthAccountKeysStringMemoryUsage        = NewRawStringMemoryUsage(len("AuthAccount.Keys()"))
	PublicAccountKeysStringMemoryUsage      = NewRawStringMemoryUsage(len("PublicAccount.Keys()"))
	AuthAccountInboxStringMemoryUsage       = NewRawStringMemoryUsage(len("AuthAccount.Inbox()"))
	StorageCapabilityValueStringMemoryUsage = NewRawStringMemoryUsage(len("Capability<>(address: , path: )"))
	PathLinkValueStringMemoryUsage          = NewRawStringMemoryUsage(len("PathLink<>()"))
	PublishedValueStringMemoryUsage         = NewRawStringMemoryUsage(len("PublishedValue<>()"))

	VariableSizedStaticTypeStringMemoryUsage = NewRawStringMemoryUsage(2)  // []
	DictionaryStaticTypeStringMemoryUsage    = NewRawStringMemoryUsage(4)  // {: }
	OptionalStaticTypeStringMemoryUsage      = NewRawStringMemoryUsage(1)  // ?
	AuthReferenceStaticTypeStringMemoryUsage = NewRawStringMemoryUsage(5)  // auth&
	ReferenceStaticTypeStringMemoryUsage     = NewRawStringMemoryUsage(1)  // &
	CapabilityStaticTypeStringMemoryUsage    = NewRawStringMemoryUsage(12) // Capability<>
)
View Source
var AllPathDomainsByIdentifier = map[string]PathDomain{}

Functions

func AdditionalAtreeMemoryUsage added in v0.24.0

func AdditionalAtreeMemoryUsage(originalCount uint64, elementSize uint, array bool) (MemoryUsage, MemoryUsage)

func BigIntByteLength added in v0.24.0

func BigIntByteLength(v *big.Int) int

func CompositeKindCount added in v0.8.0

func CompositeKindCount() int

func DeclarationKindCount added in v0.8.0

func DeclarationKindCount() int

func EnumerateWords

func EnumerateWords(words []string, conjunction string) string

func LocationsInSameAccount added in v0.13.10

func LocationsInSameAccount(first, second Location) bool

LocationsInSameAccount returns true if both locations are nil, if both locations are address locations when both locations have the same address, or otherwise if their IDs are the same.

func NewArrayMemoryUsages added in v0.24.0

func NewArrayMemoryUsages(count uint64, elementSize uint) (MemoryUsage, MemoryUsage, MemoryUsage, MemoryUsage)

func NewBigInt added in v0.24.0

func NewBigInt(gauge MemoryGauge) *big.Int

func NewBigIntFromAbsoluteValue added in v0.24.0

func NewBigIntFromAbsoluteValue(gauge MemoryGauge, value *big.Int) *big.Int

func NewCadenceArrayMemoryUsages added in v0.24.0

func NewCadenceArrayMemoryUsages(length int) (MemoryUsage, MemoryUsage)

func NewCadenceContractMemoryUsages added in v0.24.0

func NewCadenceContractMemoryUsages(fields int) (MemoryUsage, MemoryUsage)

func NewCadenceEnumMemoryUsages added in v0.24.0

func NewCadenceEnumMemoryUsages(fields int) (MemoryUsage, MemoryUsage)

func NewCadenceEventMemoryUsages added in v0.24.0

func NewCadenceEventMemoryUsages(fields int) (MemoryUsage, MemoryUsage)

func NewCadenceResourceMemoryUsages added in v0.24.0

func NewCadenceResourceMemoryUsages(fields int) (MemoryUsage, MemoryUsage)

func NewCadenceStructMemoryUsages added in v0.24.0

func NewCadenceStructMemoryUsages(fields int) (MemoryUsage, MemoryUsage)

func NewCompositeMemoryUsages added in v0.24.0

func NewCompositeMemoryUsages(count uint64, elementSize uint) (MemoryUsage, MemoryUsage, MemoryUsage, MemoryUsage)

func NewDictionaryMemoryUsages added in v0.24.0

func NewDictionaryMemoryUsages(count uint64, elementSize uint) (MemoryUsage, MemoryUsage, MemoryUsage, MemoryUsage)

func NewOrderedMapMemoryUsages added in v0.24.0

func NewOrderedMapMemoryUsages(size uint64) (MemoryUsage, MemoryUsage, MemoryUsage)

func OverEstimateBigIntFromString added in v0.24.0

func OverEstimateBigIntFromString(s string, literalKind IntegerLiteralKind) int

OverEstimateBigIntFromString is an approximate inverse of `interpreter.OverEstimateBigIntStringLength`. Returns the estimated size in bytes.

func RegisterTypeIDDecoder added in v0.12.0

func RegisterTypeIDDecoder(prefix string, decoder TypeIDDecoder)

func UseMemory added in v0.24.0

func UseMemory(gauge MemoryGauge, usage MemoryUsage)

Types

type Address

type Address [AddressLength]byte
var ZeroAddress Address = Address{}

Singleton for address 0x0. This should be used in place of an empty initializer `Address{}`

func BytesToAddress

func BytesToAddress(b []byte) (Address, error)

BytesToAddress returns Address with value b.

If the address is too large, then the function returns an error.

func HexToAddress added in v0.17.0

func HexToAddress(h string) (Address, error)

HexToAddress converts a hex string to an Address.

func MustBytesToAddress added in v0.21.0

func MustBytesToAddress(b []byte) Address

MustBytesToAddress returns Address with value b.

If the address is too large, then the function panics.

func (Address) Bytes added in v0.2.0

func (a Address) Bytes() []byte

Bytes returns address without leading zeros. The fast path is inlined and handles the most common scenario of address having no leading zeros. Otherwise, bytes() is called to trim leading zeros.

func (Address) Hex

func (a Address) Hex() string

Hex returns the hex string representation of the address.

func (Address) HexWithPrefix added in v0.24.0

func (a Address) HexWithPrefix() string

func (*Address) SetBytes

func (a *Address) SetBytes(b []byte)

SetBytes sets the address to the value of b.

If b is larger than len(a) it will panic.

func (Address) ShortHexWithPrefix added in v0.9.0

func (a Address) ShortHexWithPrefix() string

func (Address) String

func (a Address) String() string

type AddressLocation added in v0.12.0

type AddressLocation struct {
	Name    string
	Address Address
}

AddressLocation is the location of a contract/contract interface at an address

func NewAddressLocation added in v0.24.0

func NewAddressLocation(gauge MemoryGauge, addr Address, name string) AddressLocation

func (AddressLocation) Description added in v0.25.0

func (l AddressLocation) Description() string

func (AddressLocation) MarshalJSON added in v0.12.0

func (l AddressLocation) MarshalJSON() ([]byte, error)

func (AddressLocation) QualifiedIdentifier added in v0.12.0

func (l AddressLocation) QualifiedIdentifier(typeID TypeID) string

func (AddressLocation) String added in v0.12.0

func (l AddressLocation) String() string

func (AddressLocation) TypeID added in v0.12.0

func (l AddressLocation) TypeID(memoryGauge MemoryGauge, qualifiedIdentifier string) TypeID

type CompositeKind

type CompositeKind uint
const (
	CompositeKindUnknown CompositeKind = iota
	CompositeKindStructure
	CompositeKindResource
	CompositeKindContract
	CompositeKindEvent
	CompositeKindEnum
)

func (CompositeKind) Annotation

func (k CompositeKind) Annotation() string

func (CompositeKind) ConstructionKeyword

func (k CompositeKind) ConstructionKeyword() string

func (CompositeKind) DeclarationKind

func (k CompositeKind) DeclarationKind(isInterface bool) DeclarationKind

func (CompositeKind) DestructionKeyword

func (k CompositeKind) DestructionKeyword() any

func (CompositeKind) Keyword

func (k CompositeKind) Keyword() string

func (CompositeKind) MarshalJSON added in v0.8.0

func (k CompositeKind) MarshalJSON() ([]byte, error)

func (CompositeKind) MoveOperator

func (k CompositeKind) MoveOperator() string

func (CompositeKind) Name

func (k CompositeKind) Name() string

func (CompositeKind) String

func (i CompositeKind) String() string

func (CompositeKind) SupportsInterfaces

func (k CompositeKind) SupportsInterfaces() bool

func (CompositeKind) TransferOperator

func (k CompositeKind) TransferOperator() string

type ComputationKind added in v0.23.2

type ComputationKind uint

ComputationKind captures kind of computation that would be used for metring computation

const (
	ComputationKindUnknown ComputationKind = 0
	// interpreter - base
	ComputationKindStatement ComputationKind = ComputationKindRangeStart + iota
	ComputationKindLoop
	ComputationKindFunctionInvocation

	// interpreter value operations
	ComputationKindCreateCompositeValue
	ComputationKindTransferCompositeValue
	ComputationKindDestroyCompositeValue

	ComputationKindCreateArrayValue
	ComputationKindTransferArrayValue
	ComputationKindDestroyArrayValue

	ComputationKindCreateDictionaryValue
	ComputationKindTransferDictionaryValue
	ComputationKindDestroyDictionaryValue

	// stdlibs computation kinds
	//
	ComputationKindSTDLIBPanic
	ComputationKindSTDLIBAssert
	ComputationKindSTDLIBUnsafeRandom

	// RLP
	ComputationKindSTDLIBRLPDecodeString
	ComputationKindSTDLIBRLPDecodeList
)

func (ComputationKind) String added in v0.23.2

func (i ComputationKind) String() string

type ControlStatement

type ControlStatement uint
const (
	ControlStatementUnknown ControlStatement = iota
	ControlStatementBreak
	ControlStatementContinue
)

func (ControlStatement) String

func (i ControlStatement) String() string

func (ControlStatement) Symbol

func (s ControlStatement) Symbol() string

type DeclarationKind

type DeclarationKind uint
const (
	DeclarationKindUnknown DeclarationKind = iota
	DeclarationKindValue
	DeclarationKindFunction
	DeclarationKindVariable
	DeclarationKindConstant
	DeclarationKindType
	DeclarationKindParameter
	DeclarationKindArgumentLabel
	DeclarationKindStructure
	DeclarationKindResource
	DeclarationKindContract
	DeclarationKindEvent
	DeclarationKindField
	DeclarationKindInitializer
	DeclarationKindDestructor
	DeclarationKindStructureInterface
	DeclarationKindResourceInterface
	DeclarationKindContractInterface
	DeclarationKindImport
	DeclarationKindSelf
	DeclarationKindTransaction
	DeclarationKindPrepare
	DeclarationKindExecute
	DeclarationKindTypeParameter
	DeclarationKindPragma
	DeclarationKindEnum
	DeclarationKindEnumCase
)

func (DeclarationKind) IsTypeDeclaration

func (k DeclarationKind) IsTypeDeclaration() bool

func (DeclarationKind) Keywords

func (k DeclarationKind) Keywords() string

func (DeclarationKind) MarshalJSON added in v0.8.0

func (k DeclarationKind) MarshalJSON() ([]byte, error)

func (DeclarationKind) Name

func (k DeclarationKind) Name() string

func (DeclarationKind) String

func (i DeclarationKind) String() string

type HasLocation added in v0.25.0

type HasLocation interface {
	ImportLocation() Location
}

type IdentifierLocation added in v0.12.0

type IdentifierLocation string

IdentifierLocation

func NewIdentifierLocation added in v0.24.0

func NewIdentifierLocation(gauge MemoryGauge, id string) IdentifierLocation

func (IdentifierLocation) Description added in v0.25.0

func (l IdentifierLocation) Description() string

func (IdentifierLocation) MarshalJSON added in v0.12.0

func (l IdentifierLocation) MarshalJSON() ([]byte, error)

func (IdentifierLocation) QualifiedIdentifier added in v0.12.0

func (l IdentifierLocation) QualifiedIdentifier(typeID TypeID) string

func (IdentifierLocation) String added in v0.12.0

func (l IdentifierLocation) String() string

func (IdentifierLocation) TypeID added in v0.12.0

func (l IdentifierLocation) TypeID(memoryGauge MemoryGauge, qualifiedIdentifier string) TypeID

type IntegerLiteralKind added in v0.30.0

type IntegerLiteralKind uint
const (
	IntegerLiteralKindUnknown IntegerLiteralKind = iota
	IntegerLiteralKindBinary
	IntegerLiteralKindOctal
	IntegerLiteralKindDecimal
	IntegerLiteralKindHexadecimal
)

func (IntegerLiteralKind) Base added in v0.30.0

func (k IntegerLiteralKind) Base() int

func (IntegerLiteralKind) Name added in v0.30.0

func (k IntegerLiteralKind) Name() string

func (IntegerLiteralKind) String added in v0.30.0

func (i IntegerLiteralKind) String() string

type Location added in v0.12.0

type Location interface {
	fmt.Stringer
	// TypeID returns a type ID for the given qualified identifier
	TypeID(memoryGauge MemoryGauge, qualifiedIdentifier string) TypeID
	// QualifiedIdentifier returns the qualified identifier for the given type ID
	QualifiedIdentifier(typeID TypeID) string
	// Description returns a human-readable description. For example, it can be used in error messages
	Description() string
}

Location describes the origin of a Cadence script. This could be a file, a transaction, or a smart contract.

func DecodeTypeID added in v0.12.0

func DecodeTypeID(gauge MemoryGauge, typeID string) (location Location, qualifiedIdentifier string, err error)

type MemoryGauge added in v0.24.0

type MemoryGauge interface {
	MeterMemory(usage MemoryUsage) error
}

type MemoryKind added in v0.24.0

type MemoryKind uint

MemoryKind

const (
	MemoryKindUnknown MemoryKind = iota

	MemoryKindAddressValue
	MemoryKindStringValue
	MemoryKindCharacterValue
	MemoryKindNumberValue
	MemoryKindArrayValueBase
	MemoryKindDictionaryValueBase
	MemoryKindCompositeValueBase
	MemoryKindSimpleCompositeValueBase
	MemoryKindOptionalValue
	MemoryKindTypeValue
	MemoryKindPathValue
	MemoryKindStorageCapabilityValue
	MemoryKindPathLinkValue
	MemoryKindAccountLinkValue
	MemoryKindStorageReferenceValue
	MemoryKindAccountReferenceValue
	MemoryKindEphemeralReferenceValue
	MemoryKindInterpretedFunctionValue
	MemoryKindHostFunctionValue
	MemoryKindBoundFunctionValue
	MemoryKindBigInt
	MemoryKindSimpleCompositeValue
	MemoryKindPublishedValue

	// Atree Nodes
	MemoryKindAtreeArrayDataSlab
	MemoryKindAtreeArrayMetaDataSlab
	MemoryKindAtreeArrayElementOverhead
	MemoryKindAtreeMapDataSlab
	MemoryKindAtreeMapMetaDataSlab
	MemoryKindAtreeMapElementOverhead
	MemoryKindAtreeMapPreAllocatedElement
	MemoryKindAtreeEncodedSlab

	// Static Types
	MemoryKindPrimitiveStaticType
	MemoryKindCompositeStaticType
	MemoryKindInterfaceStaticType
	MemoryKindVariableSizedStaticType
	MemoryKindConstantSizedStaticType
	MemoryKindDictionaryStaticType
	MemoryKindOptionalStaticType
	MemoryKindRestrictedStaticType
	MemoryKindReferenceStaticType
	MemoryKindCapabilityStaticType
	MemoryKindFunctionStaticType

	// Cadence Values
	MemoryKindCadenceVoidValue
	MemoryKindCadenceOptionalValue
	MemoryKindCadenceBoolValue
	MemoryKindCadenceStringValue
	MemoryKindCadenceCharacterValue
	MemoryKindCadenceAddressValue
	MemoryKindCadenceIntValue
	MemoryKindCadenceNumberValue
	MemoryKindCadenceArrayValueBase
	MemoryKindCadenceArrayValueLength
	MemoryKindCadenceDictionaryValue
	MemoryKindCadenceKeyValuePair
	MemoryKindCadenceStructValueBase
	MemoryKindCadenceStructValueSize
	MemoryKindCadenceResourceValueBase
	MemoryKindCadenceResourceValueSize
	MemoryKindCadenceEventValueBase
	MemoryKindCadenceEventValueSize
	MemoryKindCadenceContractValueBase
	MemoryKindCadenceContractValueSize
	MemoryKindCadenceEnumValueBase
	MemoryKindCadenceEnumValueSize
	MemoryKindCadencePathLinkValue
	MemoryKindCadencePathValue
	MemoryKindCadenceTypeValue
	MemoryKindCadenceStorageCapabilityValue
	MemoryKindCadenceFunctionValue

	// Cadence Types
	MemoryKindCadenceOptionalType
	MemoryKindCadenceVariableSizedArrayType
	MemoryKindCadenceConstantSizedArrayType
	MemoryKindCadenceDictionaryType
	MemoryKindCadenceField
	MemoryKindCadenceParameter
	MemoryKindCadenceStructType
	MemoryKindCadenceResourceType
	MemoryKindCadenceEventType
	MemoryKindCadenceContractType
	MemoryKindCadenceStructInterfaceType
	MemoryKindCadenceResourceInterfaceType
	MemoryKindCadenceContractInterfaceType
	MemoryKindCadenceFunctionType
	MemoryKindCadenceReferenceType
	MemoryKindCadenceRestrictedType
	MemoryKindCadenceCapabilityType
	MemoryKindCadenceEnumType

	MemoryKindRawString
	MemoryKindAddressLocation
	MemoryKindBytes
	MemoryKindVariable
	MemoryKindCompositeTypeInfo
	MemoryKindCompositeField
	MemoryKindInvocation
	MemoryKindStorageMap
	MemoryKindStorageKey

	MemoryKindTypeToken
	MemoryKindErrorToken
	MemoryKindSpaceToken

	MemoryKindProgram
	MemoryKindIdentifier
	MemoryKindArgument
	MemoryKindBlock
	MemoryKindFunctionBlock
	MemoryKindParameter
	MemoryKindParameterList
	MemoryKindTypeParameter
	MemoryKindTypeParameterList
	MemoryKindTransfer
	MemoryKindMembers
	MemoryKindTypeAnnotation
	MemoryKindDictionaryEntry

	MemoryKindFunctionDeclaration
	MemoryKindCompositeDeclaration
	MemoryKindInterfaceDeclaration
	MemoryKindEnumCaseDeclaration
	MemoryKindFieldDeclaration
	MemoryKindTransactionDeclaration
	MemoryKindImportDeclaration
	MemoryKindVariableDeclaration
	MemoryKindSpecialFunctionDeclaration
	MemoryKindPragmaDeclaration

	MemoryKindAssignmentStatement
	MemoryKindBreakStatement
	MemoryKindContinueStatement
	MemoryKindEmitStatement
	MemoryKindExpressionStatement
	MemoryKindForStatement
	MemoryKindIfStatement
	MemoryKindReturnStatement
	MemoryKindSwapStatement
	MemoryKindSwitchStatement
	MemoryKindWhileStatement

	MemoryKindBooleanExpression
	MemoryKindVoidExpression
	MemoryKindNilExpression
	MemoryKindStringExpression
	MemoryKindIntegerExpression
	MemoryKindFixedPointExpression
	MemoryKindArrayExpression
	MemoryKindDictionaryExpression
	MemoryKindIdentifierExpression
	MemoryKindInvocationExpression
	MemoryKindMemberExpression
	MemoryKindIndexExpression
	MemoryKindConditionalExpression
	MemoryKindUnaryExpression
	MemoryKindBinaryExpression
	MemoryKindFunctionExpression
	MemoryKindCastingExpression
	MemoryKindCreateExpression
	MemoryKindDestroyExpression
	MemoryKindReferenceExpression
	MemoryKindForceExpression
	MemoryKindPathExpression

	MemoryKindConstantSizedType
	MemoryKindDictionaryType
	MemoryKindFunctionType
	MemoryKindInstantiationType
	MemoryKindNominalType
	MemoryKindOptionalType
	MemoryKindReferenceType
	MemoryKindRestrictedType
	MemoryKindVariableSizedType

	MemoryKindPosition
	MemoryKindRange

	MemoryKindElaboration
	MemoryKindActivation
	MemoryKindActivationEntries

	// sema types
	MemoryKindVariableSizedSemaType
	MemoryKindConstantSizedSemaType
	MemoryKindDictionarySemaType
	MemoryKindOptionalSemaType
	MemoryKindRestrictedSemaType
	MemoryKindReferenceSemaType
	MemoryKindCapabilitySemaType

	// ordered-map
	MemoryKindOrderedMap
	MemoryKindOrderedMapEntryList
	MemoryKindOrderedMapEntry

	// Placeholder kind to allow consistent indexing
	// this should always be the last kind
	MemoryKindLast
)

func (MemoryKind) String added in v0.24.0

func (i MemoryKind) String() string

type MemoryUsage added in v0.24.0

type MemoryUsage struct {
	Kind   MemoryKind
	Amount uint64
}

func NewArrayExpressionMemoryUsage added in v0.24.0

func NewArrayExpressionMemoryUsage(length int) MemoryUsage

func NewAtreeEncodedSlabMemoryUsage added in v0.24.0

func NewAtreeEncodedSlabMemoryUsage(slabsCount uint) MemoryUsage

func NewAtreeMapPreAllocatedElementsMemoryUsage added in v0.24.0

func NewAtreeMapPreAllocatedElementsMemoryUsage(count uint64, elementSize uint) MemoryUsage

func NewBigIntMemoryUsage added in v0.24.0

func NewBigIntMemoryUsage(bytes int) MemoryUsage

func NewBitwiseAndBigIntMemoryUsage added in v0.24.0

func NewBitwiseAndBigIntMemoryUsage(a, b *big.Int) MemoryUsage

func NewBitwiseLeftShiftBigIntMemoryUsage added in v0.24.0

func NewBitwiseLeftShiftBigIntMemoryUsage(a, b *big.Int) MemoryUsage

func NewBitwiseOrBigIntMemoryUsage added in v0.24.0

func NewBitwiseOrBigIntMemoryUsage(a, b *big.Int) MemoryUsage

func NewBitwiseRightShiftBigIntMemoryUsage added in v0.24.0

func NewBitwiseRightShiftBigIntMemoryUsage(a, b *big.Int) MemoryUsage

func NewBitwiseXorBigIntMemoryUsage added in v0.24.0

func NewBitwiseXorBigIntMemoryUsage(a, b *big.Int) MemoryUsage

func NewBytesMemoryUsage added in v0.24.0

func NewBytesMemoryUsage(length int) MemoryUsage

func NewCadenceBigIntMemoryUsage added in v0.24.0

func NewCadenceBigIntMemoryUsage(bytes int) MemoryUsage

func NewCadenceCharacterMemoryUsage added in v0.24.0

func NewCadenceCharacterMemoryUsage(length int) MemoryUsage

func NewCadenceIntMemoryUsage added in v0.24.0

func NewCadenceIntMemoryUsage(bytes int) MemoryUsage

func NewCadenceNumberMemoryUsage added in v0.24.0

func NewCadenceNumberMemoryUsage(bytes int) MemoryUsage

func NewCadenceStringMemoryUsage added in v0.24.0

func NewCadenceStringMemoryUsage(length int) MemoryUsage

func NewCharacterMemoryUsage added in v0.24.0

func NewCharacterMemoryUsage(length int) MemoryUsage

func NewConstantMemoryUsage added in v0.24.0

func NewConstantMemoryUsage(kind MemoryKind) MemoryUsage

func NewDictionaryExpressionMemoryUsage added in v0.24.0

func NewDictionaryExpressionMemoryUsage(length int) MemoryUsage

func NewDivBigIntMemoryUsage added in v0.24.0

func NewDivBigIntMemoryUsage(a, b *big.Int) MemoryUsage

func NewMembersMemoryUsage added in v0.24.0

func NewMembersMemoryUsage(length int) MemoryUsage

func NewMinusBigIntMemoryUsage added in v0.24.0

func NewMinusBigIntMemoryUsage(a, b *big.Int) MemoryUsage

func NewModBigIntMemoryUsage added in v0.24.0

func NewModBigIntMemoryUsage(a, b *big.Int) MemoryUsage

func NewMulBigIntMemoryUsage added in v0.24.0

func NewMulBigIntMemoryUsage(a, b *big.Int) MemoryUsage

func NewNegateBigIntMemoryUsage added in v0.24.0

func NewNegateBigIntMemoryUsage(b *big.Int) MemoryUsage

func NewNumberMemoryUsage added in v0.24.0

func NewNumberMemoryUsage(bytes int) MemoryUsage

func NewPlusBigIntMemoryUsage added in v0.24.0

func NewPlusBigIntMemoryUsage(a, b *big.Int) MemoryUsage

func NewRawStringMemoryUsage added in v0.24.0

func NewRawStringMemoryUsage(length int) MemoryUsage

func NewSimpleCompositeMemoryUsage added in v0.24.0

func NewSimpleCompositeMemoryUsage(length int) MemoryUsage

func NewStringMemoryUsage added in v0.24.0

func NewStringMemoryUsage(length int) MemoryUsage

type OperandSide

type OperandSide uint
const (
	OperandSideUnknown OperandSide = iota
	OperandSideLeft
	OperandSideRight
)

func (OperandSide) Name

func (s OperandSide) Name() string

func (OperandSide) String

func (i OperandSide) String() string

type OperationKind

type OperationKind uint
const (
	OperationKindUnknown OperationKind = iota
	OperationKindUnary
	OperationKindBinary
	OperationKindTernary
)

func (OperationKind) Name

func (k OperationKind) Name() string

func (OperationKind) String

func (i OperationKind) String() string

type PathDomain

type PathDomain uint8
const (
	PathDomainUnknown PathDomain = iota
	PathDomainStorage
	PathDomainPrivate
	PathDomainPublic
)

func PathDomainFromIdentifier

func PathDomainFromIdentifier(domain string) PathDomain

func (PathDomain) Identifier

func (i PathDomain) Identifier() string

func (PathDomain) String

func (i PathDomain) String() string

type REPLLocation added in v0.12.0

type REPLLocation struct{}

REPLLocation

func (REPLLocation) Description added in v0.25.0

func (l REPLLocation) Description() string

func (REPLLocation) MarshalJSON added in v0.12.0

func (l REPLLocation) MarshalJSON() ([]byte, error)

func (REPLLocation) QualifiedIdentifier added in v0.12.0

func (l REPLLocation) QualifiedIdentifier(typeID TypeID) string

func (REPLLocation) String added in v0.12.0

func (l REPLLocation) String() string

func (REPLLocation) TypeID added in v0.12.0

func (l REPLLocation) TypeID(memoryGauge MemoryGauge, qualifiedIdentifier string) TypeID

type ScriptLocation added in v0.12.0

type ScriptLocation [ScriptIDLength]byte

ScriptLocation

func NewScriptLocation added in v0.24.0

func NewScriptLocation(gauge MemoryGauge, identifier []byte) (location ScriptLocation)

func (ScriptLocation) Description added in v0.25.0

func (l ScriptLocation) Description() string

func (ScriptLocation) MarshalJSON added in v0.12.0

func (l ScriptLocation) MarshalJSON() ([]byte, error)

func (ScriptLocation) QualifiedIdentifier added in v0.12.0

func (l ScriptLocation) QualifiedIdentifier(typeID TypeID) string

func (ScriptLocation) String added in v0.12.0

func (l ScriptLocation) String() string

func (ScriptLocation) TypeID added in v0.12.0

func (l ScriptLocation) TypeID(memoryGauge MemoryGauge, qualifiedIdentifier string) TypeID

type StringLocation added in v0.12.0

type StringLocation string

StringLocation

func NewStringLocation added in v0.24.0

func NewStringLocation(gauge MemoryGauge, id string) StringLocation

func (StringLocation) Description added in v0.25.0

func (l StringLocation) Description() string

func (StringLocation) MarshalJSON added in v0.12.0

func (l StringLocation) MarshalJSON() ([]byte, error)

func (StringLocation) QualifiedIdentifier added in v0.12.0

func (l StringLocation) QualifiedIdentifier(typeID TypeID) string

func (StringLocation) String added in v0.12.0

func (l StringLocation) String() string

func (StringLocation) TypeID added in v0.12.0

func (l StringLocation) TypeID(memoryGauge MemoryGauge, qualifiedIdentifier string) TypeID

type TransactionLocation added in v0.12.0

type TransactionLocation [TransactionIDLength]byte

TransactionLocation

func NewTransactionLocation added in v0.24.0

func NewTransactionLocation(gauge MemoryGauge, identifier []byte) (location TransactionLocation)

func (TransactionLocation) Description added in v0.25.0

func (l TransactionLocation) Description() string

func (TransactionLocation) MarshalJSON added in v0.12.0

func (l TransactionLocation) MarshalJSON() ([]byte, error)

func (TransactionLocation) QualifiedIdentifier added in v0.12.0

func (l TransactionLocation) QualifiedIdentifier(typeID TypeID) string

func (TransactionLocation) String added in v0.12.0

func (l TransactionLocation) String() string

func (TransactionLocation) TypeID added in v0.12.0

func (l TransactionLocation) TypeID(memoryGauge MemoryGauge, qualifiedIdentifier string) TypeID

type TypeID added in v0.12.0

type TypeID string

TypeID

func NewTypeIDFromQualifiedName added in v0.24.0

func NewTypeIDFromQualifiedName(memoryGauge MemoryGauge, location Location, qualifiedIdentifier string) TypeID

type TypeIDDecoder added in v0.12.0

type TypeIDDecoder func(gauge MemoryGauge, typeID string) (location Location, qualifiedIdentifier string, err error)

Directories

Path Synopsis
Package list implements a doubly linked list.
Package list implements a doubly linked list.

Jump to

Keyboard shortcuts

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