Documentation
¶
Index ¶
- Constants
- Variables
- func EmitEventFields(inter *interpreter.Interpreter, locationRange interpreter.LocationRange, ...)
- func ExportMeteredType(gauge common.MemoryGauge, t sema.Type, results map[sema.TypeID]cadence.Type) cadence.Type
- func ExportType(t sema.Type, results map[sema.TypeID]cadence.Type) cadence.Type
- func ExportValue(value interpreter.Value, inter *interpreter.Interpreter, ...) (cadence.Value, error)
- func ImportType(memoryGauge common.MemoryGauge, t cadence.Type) interpreter.StaticType
- func ImportValue(inter *interpreter.Interpreter, locationRange interpreter.LocationRange, ...) (interpreter.Value, error)
- func LiteralValue(inter *interpreter.Interpreter, expression ast.Expression, ty sema.Type) (cadence.Value, error)
- func NewBaseInterpreterEnvironment(config Config) *interpreterEnvironment
- func ParseLiteral(literal string, ty sema.Type, inter *interpreter.Interpreter) (cadence.Value, error)
- func ParseLiteralArgumentList(argumentList string, parameterTypes []sema.Type, ...) ([]cadence.Value, error)
- func SortContractUpdates(updates []ContractUpdate)
- func UserPanicToError(f func()) (returnedError error)
- type AccountKey
- type Address
- type ArgumentDecoder
- type ArgumentNotImportableError
- type Block
- type CallStackLimitExceededError
- type CodesAndPrograms
- type Config
- type Context
- type ContractUpdate
- type CoverageReport
- func (r *CoverageReport) AddLineHit(location Location, line int)
- func (r *CoverageReport) Diff(other CoverageReport) CoverageReportSummary
- func (r *CoverageReport) ExcludeLocation(location Location)
- func (r *CoverageReport) ExcludedLocationIDs() []string
- func (r *CoverageReport) Hits() int
- func (r *CoverageReport) InspectProgram(location Location, program *ast.Program)
- func (r *CoverageReport) IsLocationExcluded(location Location) bool
- func (r *CoverageReport) IsLocationInspected(location Location) bool
- func (r *CoverageReport) MarshalJSON() ([]byte, error)
- func (r *CoverageReport) MarshalLCOV() ([]byte, error)
- func (r *CoverageReport) Merge(other CoverageReport)
- func (r *CoverageReport) Misses() int
- func (r *CoverageReport) Percentage() string
- func (r *CoverageReport) Reset()
- func (r *CoverageReport) Statements() int
- func (r *CoverageReport) String() string
- func (r *CoverageReport) Summary() CoverageReportSummary
- func (r *CoverageReport) TotalLocations() int
- func (r *CoverageReport) UnmarshalJSON(data []byte) error
- func (r *CoverageReport) WithLocationFilter(locationFilter LocationFilter)
- func (r *CoverageReport) WithLocationMappings(locationMappings map[string]string)
- type CoverageReportSummary
- type EmptyRuntimeInterface
- func (EmptyRuntimeInterface) AccountKeysCount(_ Address) (uint32, error)
- func (EmptyRuntimeInterface) AddAccountKey(_ Address, _ *PublicKey, _ HashAlgorithm, _ int) (*AccountKey, error)
- func (EmptyRuntimeInterface) AllocateSlabIndex(_ []byte) (atree.SlabIndex, error)
- func (EmptyRuntimeInterface) BLSAggregatePublicKeys(_ []*PublicKey) (*PublicKey, error)
- func (EmptyRuntimeInterface) BLSAggregateSignatures(_ [][]byte) ([]byte, error)
- func (EmptyRuntimeInterface) BLSVerifyPOP(_ *PublicKey, _ []byte) (bool, error)
- func (EmptyRuntimeInterface) ComputationUsed() (uint64, error)
- func (EmptyRuntimeInterface) CreateAccount(_ Address) (address Address, err error)
- func (EmptyRuntimeInterface) DecodeArgument(_ []byte, _ cadence.Type) (cadence.Value, error)
- func (EmptyRuntimeInterface) EmitEvent(_ cadence.Event) error
- func (EmptyRuntimeInterface) GenerateAccountID(_ common.Address) (uint64, error)
- func (EmptyRuntimeInterface) GenerateUUID() (uint64, error)
- func (EmptyRuntimeInterface) GetAccountAvailableBalance(_ common.Address) (value uint64, err error)
- func (EmptyRuntimeInterface) GetAccountBalance(_ common.Address) (value uint64, err error)
- func (EmptyRuntimeInterface) GetAccountContractCode(_ common.AddressLocation) (code []byte, err error)
- func (EmptyRuntimeInterface) GetAccountContractNames(_ Address) ([]string, error)
- func (EmptyRuntimeInterface) GetAccountKey(_ Address, _ uint32) (*AccountKey, error)
- func (EmptyRuntimeInterface) GetBlockAtHeight(_ uint64) (block Block, exists bool, err error)
- func (EmptyRuntimeInterface) GetCode(_ Location) ([]byte, error)
- func (EmptyRuntimeInterface) GetCurrentBlockHeight() (uint64, error)
- func (EmptyRuntimeInterface) GetInterpreterSharedState() *interpreter.SharedState
- func (EmptyRuntimeInterface) GetOrLoadProgram(_ Location, _ func() (*interpreter.Program, error)) (*interpreter.Program, error)
- func (EmptyRuntimeInterface) GetSigningAccounts() ([]Address, error)
- func (EmptyRuntimeInterface) GetStorageCapacity(_ Address) (value uint64, err error)
- func (EmptyRuntimeInterface) GetStorageUsed(_ Address) (value uint64, err error)
- func (EmptyRuntimeInterface) GetValue(_, _ []byte) (value []byte, err error)
- func (EmptyRuntimeInterface) Hash(_ []byte, _ string, _ HashAlgorithm) ([]byte, error)
- func (EmptyRuntimeInterface) ImplementationDebugLog(_ string) error
- func (EmptyRuntimeInterface) InteractionUsed() (uint64, error)
- func (EmptyRuntimeInterface) MemoryUsed() (uint64, error)
- func (EmptyRuntimeInterface) MeterComputation(_ common.ComputationKind, _ uint) error
- func (EmptyRuntimeInterface) MeterMemory(_ common.MemoryUsage) error
- func (EmptyRuntimeInterface) MinimumRequiredVersion() (string, error)
- func (EmptyRuntimeInterface) ProgramLog(_ string) error
- func (EmptyRuntimeInterface) ReadRandom(_ []byte) error
- func (EmptyRuntimeInterface) RecordTrace(_ string, _ Location, _ time.Duration, _ []attribute.KeyValue)
- func (EmptyRuntimeInterface) RecoverProgram(_ *ast.Program, _ common.Location) ([]byte, error)
- func (EmptyRuntimeInterface) RemoveAccountContractCode(_ common.AddressLocation) (err error)
- func (EmptyRuntimeInterface) ResolveLocation(_ []Identifier, _ Location) ([]ResolvedLocation, error)
- func (EmptyRuntimeInterface) ResourceOwnerChanged(_ *interpreter.Interpreter, _ *interpreter.CompositeValue, _ common.Address, ...)
- func (EmptyRuntimeInterface) RevokeAccountKey(_ Address, _ uint32) (*AccountKey, error)
- func (EmptyRuntimeInterface) SetInterpreterSharedState(_ *interpreter.SharedState)
- func (EmptyRuntimeInterface) SetValue(_, _, _ []byte) (err error)
- func (EmptyRuntimeInterface) UpdateAccountContractCode(_ common.AddressLocation, _ []byte) (err error)
- func (EmptyRuntimeInterface) ValidateAccountCapabilitiesGet(_ *interpreter.Interpreter, _ interpreter.LocationRange, ...) (bool, error)
- func (EmptyRuntimeInterface) ValidateAccountCapabilitiesPublish(_ *interpreter.Interpreter, _ interpreter.LocationRange, ...) (bool, error)
- func (EmptyRuntimeInterface) ValidatePublicKey(_ *PublicKey) error
- func (EmptyRuntimeInterface) ValueExists(_, _ []byte) (exists bool, err error)
- func (EmptyRuntimeInterface) VerifySignature(_ []byte, _ string, _ []byte, _ []byte, _ SignatureAlgorithm, _ HashAlgorithm) (bool, error)
- type Environment
- type Error
- type Executor
- type HashAlgorithm
- type Identifier
- type ImportResolver
- type Interface
- type InterpretFunc
- type InvalidEntryPointArgumentError
- type InvalidEntryPointParameterCountError
- type InvalidScriptReturnTypeError
- type InvalidTransactionAuthorizerCountError
- type InvalidTransactionCountError
- type InvalidValueTypeError
- type Location
- type LocationCoverage
- type LocationFilter
- type MalformedValueError
- type MeterInterface
- type Metrics
- type ParsingCheckingError
- type PublicKey
- type REPL
- type REPLSuggestion
- type ResolvedLocation
- type Runtime
- type Script
- type ScriptParameterTypeNotImportableError
- type ScriptParameterTypeNotStorableError
- type SignatureAlgorithm
- type Storage
- func (s *Storage) CheckHealth() error
- func (s *Storage) Commit(inter *interpreter.Interpreter, commitContractUpdates bool) error
- func (s *Storage) GetStorageMap(address common.Address, domain string, createIfNotExists bool) (storageMap *interpreter.StorageMap)
- func (s *Storage) NondeterministicCommit(inter *interpreter.Interpreter, commitContractUpdates bool) error
- func (s *Storage) StoreNewStorageMap(address atree.Address, domain string) *interpreter.StorageMap
- type UnreferencedRootSlabsError
- type ValueNotExportableError
Constants ¶
const ( // Supported signing algorithms SignatureAlgorithmUnknown = sema.SignatureAlgorithmUnknown SignatureAlgorithmECDSA_P256 = sema.SignatureAlgorithmECDSA_P256 SignatureAlgorithmECDSA_secp256k1 = sema.SignatureAlgorithmECDSA_secp256k1 SignatureAlgorithmBLS_BLS12_381 = sema.SignatureAlgorithmBLS_BLS12_381 )
const ( // Supported hashing algorithms HashAlgorithmUnknown = sema.HashAlgorithmUnknown HashAlgorithmSHA2_256 = sema.HashAlgorithmSHA2_256 HashAlgorithmSHA2_384 = sema.HashAlgorithmSHA2_384 HashAlgorithmSHA3_256 = sema.HashAlgorithmSHA3_256 HashAlgorithmSHA3_384 = sema.HashAlgorithmSHA3_384 HashAlgorithmKMAC128_BLS_BLS12_381 = sema.HashAlgorithmKMAC128_BLS_BLS12_381 HashAlgorithmKECCAK_256 = sema.HashAlgorithmKECCAK_256 )
const StorageDomainContract = "contract"
Variables ¶
var InvalidLiteralError = parser.NewSyntaxError( ast.Position{Line: 1}, "invalid literal", )
var LiteralExpressionTypeError = parser.NewSyntaxError( ast.Position{Line: 1}, "input is not a literal", )
var UnsupportedLiteralError = parser.NewSyntaxError( ast.Position{Line: 1}, "unsupported literal", )
Functions ¶
func EmitEventFields ¶ added in v1.0.0
func EmitEventFields( inter *interpreter.Interpreter, locationRange interpreter.LocationRange, eventType *sema.CompositeType, eventFields []interpreter.Value, emitEvent func(cadence.Event) error, )
func ExportMeteredType ¶ added in v0.24.0
func ExportMeteredType( gauge common.MemoryGauge, t sema.Type, results map[sema.TypeID]cadence.Type, ) cadence.Type
ExportMeteredType converts a runtime type to its corresponding Go representation.
func ExportType ¶ added in v0.11.0
ExportType converts a runtime type to its corresponding Go representation.
func ExportValue ¶ added in v0.12.0
func ExportValue( value interpreter.Value, inter *interpreter.Interpreter, locationRange interpreter.LocationRange, ) (cadence.Value, error)
ExportValue converts a runtime value to its native Go representation.
func ImportType ¶ added in v0.24.0
func ImportType(memoryGauge common.MemoryGauge, t cadence.Type) interpreter.StaticType
func ImportValue ¶ added in v0.27.0
func ImportValue( inter *interpreter.Interpreter, locationRange interpreter.LocationRange, standardLibraryHandler stdlib.StandardLibraryHandler, value cadence.Value, expectedType sema.Type, ) (interpreter.Value, error)
ImportValue converts a Cadence value to a runtime value.
func LiteralValue ¶ added in v0.12.0
func LiteralValue(inter *interpreter.Interpreter, expression ast.Expression, ty sema.Type) (cadence.Value, error)
func NewBaseInterpreterEnvironment ¶ added in v0.26.0
func NewBaseInterpreterEnvironment(config Config) *interpreterEnvironment
func ParseLiteral ¶ added in v0.12.0
func ParseLiteral( literal string, ty sema.Type, inter *interpreter.Interpreter, ) ( cadence.Value, error, )
ParseLiteral parses a single literal string, that should have the given type.
Returns an error if the literal string is not a literal (e.g. it does not have valid syntax, or does not parse to a literal).
func ParseLiteralArgumentList ¶ added in v0.12.4
func ParseLiteralArgumentList( argumentList string, parameterTypes []sema.Type, inter *interpreter.Interpreter, ) ( []cadence.Value, error, )
ParseLiteralArgumentList parses an argument list with literals, that should have the given types. Returns an error if the code is not a valid argument list, or the arguments are not literals.
Note: This method is not used directly within Cadence, but used by downstream dependencies such as CLI, playground, etc. Hence, shouldn't be moved to test.
func SortContractUpdates ¶ added in v0.23.0
func SortContractUpdates(updates []ContractUpdate)
func UserPanicToError ¶ added in v1.0.0
func UserPanicToError(f func()) (returnedError error)
UserPanicToError Executes `f` and gracefully handle `UserError` panics. All on-user panics (including `InternalError` and `ExternalError`) are propagated up.
Types ¶
type AccountKey ¶ added in v0.14.0
type AccountKey = stdlib.AccountKey
type ArgumentDecoder ¶ added in v0.30.0
type ArgumentNotImportableError ¶ added in v0.18.0
type ArgumentNotImportableError struct {
Type interpreter.StaticType
}
ArgumentNotImportableError is an error that is reported for script arguments that belongs to non-importable types.
func (*ArgumentNotImportableError) Error ¶ added in v0.18.0
func (e *ArgumentNotImportableError) Error() string
func (*ArgumentNotImportableError) IsUserError ¶ added in v0.25.0
func (*ArgumentNotImportableError) IsUserError()
type CallStackLimitExceededError ¶ added in v0.20.0
type CallStackLimitExceededError struct {
Limit uint64
}
func (CallStackLimitExceededError) Error ¶ added in v0.20.0
func (e CallStackLimitExceededError) Error() string
func (CallStackLimitExceededError) IsUserError ¶ added in v0.25.0
func (CallStackLimitExceededError) IsUserError()
type CodesAndPrograms ¶ added in v0.41.0
type CodesAndPrograms struct {
// contains filtered or unexported fields
}
CodesAndPrograms collects the source code and AST for each location. It is purely used for debugging: Both the codes and the programs are provided in runtime errors.
func NewCodesAndPrograms ¶ added in v0.41.0
func NewCodesAndPrograms() CodesAndPrograms
type Config ¶ added in v0.26.0
type Config struct {
Debugger *interpreter.Debugger
// StackDepthLimit specifies the maximum depth for call stacks
StackDepthLimit uint64
// AtreeValidationEnabled configures if atree validation is enabled
AtreeValidationEnabled bool
// TracingEnabled configures if tracing is enabled
TracingEnabled bool
// ResourceOwnerChangeCallbackEnabled configures if the resource owner change callback is enabled
ResourceOwnerChangeHandlerEnabled bool
// CoverageReport enables and collects coverage reporting metrics
CoverageReport *CoverageReport
// AttachmentsEnabled specifies if attachments are enabled
AttachmentsEnabled bool
// LegacyContractUpgradeEnabled enabled specifies whether to use the old parser when parsing an old contract
LegacyContractUpgradeEnabled bool
// ContractUpdateTypeRemovalEnabled specifies if type removal is enabled in contract updates
ContractUpdateTypeRemovalEnabled bool
}
Config is a constant/read-only configuration of an environment.
type Context ¶ added in v0.12.0
type Context struct {
Interface Interface
Location Location
Environment Environment
CoverageReport *CoverageReport
}
type ContractUpdate ¶ added in v0.13.2
type ContractUpdate struct {
ContractValue *interpreter.CompositeValue
Key interpreter.StorageKey
}
type CoverageReport ¶ added in v0.12.0
type CoverageReport struct {
// Contains a *LocationCoverage per location.
Coverage map[common.Location]*LocationCoverage
// Contains locations whose programs are already inspected.
Locations map[common.Location]struct{}
// Contains locations excluded from coverage collection.
ExcludedLocations map[common.Location]struct{}
// contains filtered or unexported fields
}
CoverageReport collects coverage information per location. It keeps track of inspected locations, and can also exclude locations from coverage collection.
func NewCoverageReport ¶ added in v0.12.0
func NewCoverageReport() *CoverageReport
NewCoverageReport creates and returns a *CoverageReport.
func (*CoverageReport) AddLineHit ¶ added in v0.12.0
func (r *CoverageReport) AddLineHit(location Location, line int)
AddLineHit increments the hit count for the given line, on the given location. The method call is a NO-OP in two cases: - If the location is excluded from coverage collection - If the location has not been inspected for its statements
func (*CoverageReport) Diff ¶ added in v0.38.0
func (r *CoverageReport) Diff(other CoverageReport) CoverageReportSummary
Diff computes the incremental diff between the calling object and a new CoverageReport. The returned result is a CoverageReportSummary object.
CoverageReportSummary{
Locations: 0,
Statements: 0,
Hits: 2,
Misses: -2,
Coverage: "100.0%",
}
The above diff is interpreted as follows: - No diff in locations, - No diff in statements, - Hits increased by 2, - Misses decreased by 2, - Coverage Δ increased by 100.0%.
func (*CoverageReport) ExcludeLocation ¶ added in v0.33.1
func (r *CoverageReport) ExcludeLocation(location Location)
ExcludeLocation adds the given location to the map of excluded locations.
func (*CoverageReport) ExcludedLocationIDs ¶ added in v0.38.0
func (r *CoverageReport) ExcludedLocationIDs() []string
ExcludedLocationIDs returns the ID of each excluded location. This is helpful in order to marshal/unmarshal a CoverageReport, without losing any valuable information.
func (*CoverageReport) Hits ¶ added in v0.38.0
func (r *CoverageReport) Hits() int
Hits returns the total count of covered lines, for all the locations included in the CoverageReport.
func (*CoverageReport) InspectProgram ¶ added in v0.33.1
func (r *CoverageReport) InspectProgram(location Location, program *ast.Program)
InspectProgram inspects the elements of the given *ast.Program, and counts its statements. If inspection is successful, the location is marked as inspected. If the given location is excluded from coverage collection, the method call results in a NO-OP. If the CoverageReport.LocationFilter is present, and calling it with the given location results to false, the method call also results in a NO-OP.
func (*CoverageReport) IsLocationExcluded ¶ added in v0.33.1
func (r *CoverageReport) IsLocationExcluded(location Location) bool
IsLocationExcluded checks whether the given location is excluded or not, from coverage collection.
func (*CoverageReport) IsLocationInspected ¶ added in v0.38.0
func (r *CoverageReport) IsLocationInspected(location Location) bool
IsLocationInspected checks whether the given location, has been inspected or not.
func (*CoverageReport) MarshalJSON ¶ added in v0.27.0
func (r *CoverageReport) MarshalJSON() ([]byte, error)
MarshalJSON serializes each common.Location/*LocationCoverage key/value pair on the *CoverageReport.Coverage map, as well as the IDs on the *CoverageReport.ExcludedLocations map.
func (*CoverageReport) MarshalLCOV ¶ added in v0.39.10
func (r *CoverageReport) MarshalLCOV() ([]byte, error)
MarshalLCOV serializes each common.Location/*LocationCoverage key/value pair on the *CoverageReport.Coverage map, to the LCOV format. Currently supports only line coverage, function and branch coverage are not yet available. Description for the LCOV file format, can be found here https://github.com/linux-test-project/lcov/blob/master/man/geninfo.1#L948.
func (*CoverageReport) Merge ¶ added in v0.38.0
func (r *CoverageReport) Merge(other CoverageReport)
Merge adds all the collected coverage information to the calling object. Excluded locations are also taken into account.
func (*CoverageReport) Misses ¶ added in v0.38.0
func (r *CoverageReport) Misses() int
Misses returns the total count of non-covered lines, for all the locations included in the CoverageReport.
func (*CoverageReport) Percentage ¶ added in v0.38.0
func (r *CoverageReport) Percentage() string
Percentage returns a string representation of the covered statements percentage. It is defined as the ratio of total covered lines over total statements, for all locations.
func (*CoverageReport) Reset ¶ added in v0.37.0
func (r *CoverageReport) Reset()
Reset flushes the collected coverage information for all locations and inspected locations. Excluded locations remain intact.
func (*CoverageReport) Statements ¶ added in v0.38.0
func (r *CoverageReport) Statements() int
Statements returns the total count of statements, for all the locations included in the CoverageReport.
func (*CoverageReport) String ¶ added in v0.38.0
func (r *CoverageReport) String() string
String returns a human-friendly message for the covered statements percentage.
func (*CoverageReport) Summary ¶ added in v0.38.0
func (r *CoverageReport) Summary() CoverageReportSummary
Summary returns a CoverageReportSummary object, containing key metrics for a CoverageReport, such as: - Total Locations, - Total Statements, - Total Hits, - Total Misses, - Overall Coverage Percentage.
func (*CoverageReport) TotalLocations ¶ added in v0.38.0
func (r *CoverageReport) TotalLocations() int
TotalLocations returns the count of locations included in the CoverageReport. This implies that these locations are: - inspected, - not marked as exlucded.
func (*CoverageReport) UnmarshalJSON ¶ added in v0.38.0
func (r *CoverageReport) UnmarshalJSON(data []byte) error
UnmarshalJSON deserializes a JSON structure and populates the calling object with the respective *CoverageReport.Coverage & *CoverageReport.ExcludedLocations maps.
func (*CoverageReport) WithLocationFilter ¶ added in v0.39.0
func (r *CoverageReport) WithLocationFilter( locationFilter LocationFilter, )
WithLocationFilter sets the LocationFilter for the current CoverageReport.
func (*CoverageReport) WithLocationMappings ¶ added in v0.42.1
func (r *CoverageReport) WithLocationMappings( locationMappings map[string]string, )
WithLocationMappings sets the LocationMappings for the current CoverageReport.
type CoverageReportSummary ¶ added in v0.38.0
type CoverageReportSummary struct {
Locations int `json:"locations"`
Statements int `json:"statements"`
Hits int `json:"hits"`
Misses int `json:"misses"`
Coverage string `json:"coverage"`
}
CoverageReportSummary contains key metrics that are derived from a CoverageReport object, such as: - Total Locations, - Total Statements, - Total Hits, - Total Misses, - Overall Coverage Percentage. This metrics can be utilized in various ways, such as a CI plugin/app.
type EmptyRuntimeInterface ¶
type EmptyRuntimeInterface struct{}
EmptyRuntimeInterface is an empty implementation of runtime.Interface. It can be embedded in other types implementing runtime.Interface to avoid having to implement all methods.
func (EmptyRuntimeInterface) AccountKeysCount ¶ added in v1.0.0
func (EmptyRuntimeInterface) AccountKeysCount(_ Address) (uint32, error)
func (EmptyRuntimeInterface) AddAccountKey ¶
func (EmptyRuntimeInterface) AddAccountKey( _ Address, _ *PublicKey, _ HashAlgorithm, _ int, ) (*AccountKey, error)
func (EmptyRuntimeInterface) AllocateSlabIndex ¶ added in v1.0.0
func (EmptyRuntimeInterface) AllocateSlabIndex(_ []byte) (atree.SlabIndex, error)
func (EmptyRuntimeInterface) BLSAggregatePublicKeys ¶ added in v1.0.0
func (EmptyRuntimeInterface) BLSAggregatePublicKeys(_ []*PublicKey) (*PublicKey, error)
func (EmptyRuntimeInterface) BLSAggregateSignatures ¶ added in v1.0.0
func (EmptyRuntimeInterface) BLSAggregateSignatures(_ [][]byte) ([]byte, error)
func (EmptyRuntimeInterface) BLSVerifyPOP ¶ added in v1.0.0
func (EmptyRuntimeInterface) BLSVerifyPOP(_ *PublicKey, _ []byte) (bool, error)
func (EmptyRuntimeInterface) ComputationUsed ¶ added in v1.0.0
func (EmptyRuntimeInterface) ComputationUsed() (uint64, error)
func (EmptyRuntimeInterface) CreateAccount ¶
func (EmptyRuntimeInterface) CreateAccount(_ Address) (address Address, err error)
func (EmptyRuntimeInterface) DecodeArgument ¶ added in v0.2.0
func (EmptyRuntimeInterface) EmitEvent ¶
func (EmptyRuntimeInterface) EmitEvent(_ cadence.Event) error
func (EmptyRuntimeInterface) GenerateAccountID ¶ added in v1.0.0
func (EmptyRuntimeInterface) GenerateAccountID(_ common.Address) (uint64, error)
func (EmptyRuntimeInterface) GenerateUUID ¶
func (EmptyRuntimeInterface) GenerateUUID() (uint64, error)
func (EmptyRuntimeInterface) GetAccountAvailableBalance ¶ added in v1.0.0
func (EmptyRuntimeInterface) GetAccountAvailableBalance(_ common.Address) (value uint64, err error)
func (EmptyRuntimeInterface) GetAccountBalance ¶ added in v1.0.0
func (EmptyRuntimeInterface) GetAccountBalance(_ common.Address) (value uint64, err error)
func (EmptyRuntimeInterface) GetAccountContractCode ¶ added in v0.10.0
func (EmptyRuntimeInterface) GetAccountContractCode(_ common.AddressLocation) (code []byte, err error)
func (EmptyRuntimeInterface) GetAccountContractNames ¶ added in v1.0.0
func (EmptyRuntimeInterface) GetAccountContractNames(_ Address) ([]string, error)
func (EmptyRuntimeInterface) GetAccountKey ¶ added in v1.0.0
func (EmptyRuntimeInterface) GetAccountKey(_ Address, _ uint32) (*AccountKey, error)
func (EmptyRuntimeInterface) GetBlockAtHeight ¶ added in v0.3.0
func (EmptyRuntimeInterface) GetBlockAtHeight(_ uint64) (block Block, exists bool, err error)
func (EmptyRuntimeInterface) GetCode ¶ added in v0.10.0
func (EmptyRuntimeInterface) GetCode(_ Location) ([]byte, error)
func (EmptyRuntimeInterface) GetCurrentBlockHeight ¶ added in v0.3.0
func (EmptyRuntimeInterface) GetCurrentBlockHeight() (uint64, error)
func (EmptyRuntimeInterface) GetInterpreterSharedState ¶ added in v1.0.0
func (EmptyRuntimeInterface) GetInterpreterSharedState() *interpreter.SharedState
func (EmptyRuntimeInterface) GetOrLoadProgram ¶ added in v1.0.0
func (EmptyRuntimeInterface) GetOrLoadProgram(_ Location, _ func() (*interpreter.Program, error)) (*interpreter.Program, error)
func (EmptyRuntimeInterface) GetSigningAccounts ¶
func (EmptyRuntimeInterface) GetSigningAccounts() ([]Address, error)
func (EmptyRuntimeInterface) GetStorageCapacity ¶ added in v0.10.3
func (EmptyRuntimeInterface) GetStorageCapacity(_ Address) (value uint64, err error)
func (EmptyRuntimeInterface) GetStorageUsed ¶ added in v0.10.3
func (EmptyRuntimeInterface) GetStorageUsed(_ Address) (value uint64, err error)
func (EmptyRuntimeInterface) GetValue ¶
func (EmptyRuntimeInterface) GetValue(_, _ []byte) (value []byte, err error)
func (EmptyRuntimeInterface) Hash ¶ added in v0.10.0
func (EmptyRuntimeInterface) Hash(_ []byte, _ string, _ HashAlgorithm) ([]byte, error)
func (EmptyRuntimeInterface) ImplementationDebugLog ¶ added in v0.12.8
func (EmptyRuntimeInterface) ImplementationDebugLog(_ string) error
func (EmptyRuntimeInterface) InteractionUsed ¶ added in v1.0.0
func (EmptyRuntimeInterface) InteractionUsed() (uint64, error)
func (EmptyRuntimeInterface) MemoryUsed ¶ added in v1.0.0
func (EmptyRuntimeInterface) MemoryUsed() (uint64, error)
func (EmptyRuntimeInterface) MeterComputation ¶ added in v1.0.0
func (EmptyRuntimeInterface) MeterComputation(_ common.ComputationKind, _ uint) error
func (EmptyRuntimeInterface) MeterMemory ¶ added in v1.0.0
func (EmptyRuntimeInterface) MeterMemory(_ common.MemoryUsage) error
func (EmptyRuntimeInterface) MinimumRequiredVersion ¶ added in v1.0.2
func (EmptyRuntimeInterface) MinimumRequiredVersion() (string, error)
func (EmptyRuntimeInterface) ProgramLog ¶ added in v0.12.8
func (EmptyRuntimeInterface) ProgramLog(_ string) error
func (EmptyRuntimeInterface) ReadRandom ¶ added in v1.0.0
func (EmptyRuntimeInterface) ReadRandom(_ []byte) error
func (EmptyRuntimeInterface) RecordTrace ¶ added in v1.0.0
func (EmptyRuntimeInterface) RecoverProgram ¶ added in v1.0.0
func (EmptyRuntimeInterface) RemoveAccountContractCode ¶ added in v0.10.0
func (EmptyRuntimeInterface) RemoveAccountContractCode(_ common.AddressLocation) (err error)
func (EmptyRuntimeInterface) ResolveLocation ¶ added in v0.10.0
func (EmptyRuntimeInterface) ResolveLocation(_ []Identifier, _ Location) ([]ResolvedLocation, error)
func (EmptyRuntimeInterface) ResourceOwnerChanged ¶ added in v1.0.0
func (EmptyRuntimeInterface) ResourceOwnerChanged( _ *interpreter.Interpreter, _ *interpreter.CompositeValue, _ common.Address, _ common.Address, )
func (EmptyRuntimeInterface) RevokeAccountKey ¶ added in v1.0.0
func (EmptyRuntimeInterface) RevokeAccountKey(_ Address, _ uint32) (*AccountKey, error)
func (EmptyRuntimeInterface) SetInterpreterSharedState ¶ added in v1.0.0
func (EmptyRuntimeInterface) SetInterpreterSharedState(_ *interpreter.SharedState)
func (EmptyRuntimeInterface) SetValue ¶
func (EmptyRuntimeInterface) SetValue(_, _, _ []byte) (err error)
func (EmptyRuntimeInterface) UpdateAccountContractCode ¶ added in v0.10.0
func (EmptyRuntimeInterface) UpdateAccountContractCode(_ common.AddressLocation, _ []byte) (err error)
func (EmptyRuntimeInterface) ValidateAccountCapabilitiesGet ¶ added in v1.0.0
func (EmptyRuntimeInterface) ValidateAccountCapabilitiesGet( _ *interpreter.Interpreter, _ interpreter.LocationRange, _ interpreter.AddressValue, _ interpreter.PathValue, _ *sema.ReferenceType, _ *sema.ReferenceType, ) (bool, error)
func (EmptyRuntimeInterface) ValidateAccountCapabilitiesPublish ¶ added in v1.0.0
func (EmptyRuntimeInterface) ValidateAccountCapabilitiesPublish( _ *interpreter.Interpreter, _ interpreter.LocationRange, _ interpreter.AddressValue, _ interpreter.PathValue, _ *interpreter.ReferenceStaticType, ) (bool, error)
func (EmptyRuntimeInterface) ValidatePublicKey ¶ added in v1.0.0
func (EmptyRuntimeInterface) ValidatePublicKey(_ *PublicKey) error
func (EmptyRuntimeInterface) ValueExists ¶
func (EmptyRuntimeInterface) ValueExists(_, _ []byte) (exists bool, err error)
func (EmptyRuntimeInterface) VerifySignature ¶ added in v0.5.0
func (EmptyRuntimeInterface) VerifySignature( _ []byte, _ string, _ []byte, _ []byte, _ SignatureAlgorithm, _ HashAlgorithm, ) (bool, error)
type Environment ¶ added in v0.26.0
type Environment interface {
ArgumentDecoder
SetCompositeValueFunctionsHandler(
typeID common.TypeID,
handler stdlib.CompositeValueFunctionsHandler,
)
DeclareValue(
valueDeclaration stdlib.StandardLibraryValue,
location common.Location,
)
DeclareType(
typeDeclaration stdlib.StandardLibraryType,
location common.Location,
)
Configure(
runtimeInterface Interface,
codesAndPrograms CodesAndPrograms,
storage *Storage,
coverageReport *CoverageReport,
)
ParseAndCheckProgram(
code []byte,
location common.Location,
getAndSetProgram bool,
) (
*interpreter.Program,
error,
)
Interpret(
location common.Location,
program *interpreter.Program,
f InterpretFunc,
) (
interpreter.Value,
*interpreter.Interpreter,
error,
)
CommitStorage(inter *interpreter.Interpreter) error
NewAccountValue(inter *interpreter.Interpreter, address interpreter.AddressValue) interpreter.Value
}
func NewScriptInterpreterEnvironment ¶ added in v0.26.0
func NewScriptInterpreterEnvironment(config Config) Environment
type Error ¶
type Error struct {
Err error
Location Location
Codes map[Location][]byte
Programs map[Location]*ast.Program
}
Error is the containing type for all errors produced by the runtime.
type Executor ¶ added in v0.25.0
type Executor interface {
// Preprocess prepares the transaction/script for execution.
//
// This function returns an error if the program has errors (e.g., syntax
// errors, type errors).
//
// This method may be called multiple times. Only the first call will
// trigger meaningful work; subsequent calls will return the cached return
// value from the original call (i.e., an Executor implementation must
// guard this method with sync.Once).
Preprocess() error
// Execute executes the transaction/script.
//
// This function returns an error if Preprocess failed or if the execution
// fails.
//
// This method may be called multiple times. Only the first call will
// trigger meaningful work; subsequent calls will return the cached return
// value from the original call (i.e., an Executor implementation must
// guard this method with sync.Once).
//
// Note: Execute will invoke Preprocess to ensure Preprocess was called at
// least once.
Execute() error
// Result returns the transaction/scipt's execution result.
//
// This function returns an error if Preproces or Execute fails. The
// cadence.Value is always nil for transaction.
//
// This method may be called multiple times. Only the first call will
// trigger meaningful work; subsequent calls will return the cached return
// value from the original call (i.e., an Executor implementation must
// guard this method with sync.Once).
//
// Note: Result will invoke Execute to ensure Execute was called at least
// once.
Result() (cadence.Value, error)
}
Executor is a continuation which represents a full unit of transaction/script execution.
The full unit of execution is divided into stages:
- Preprocess() initializes the executor in preparation for the actual transaction execution (e.g., parse / type check the input). Note that the work done by Preprocess() should be embrassingly parallel.
- Execute() performs the actual transaction execution (e.g., run the interpreter to produce the transaction result).
- Result() returns the result of the full unit of execution.
TODO: maybe add Cleanup/Postprocess in the future
type HashAlgorithm ¶ added in v0.14.0
type HashAlgorithm = sema.HashAlgorithm
type Identifier ¶ added in v0.10.0
type Identifier = ast.Identifier
type Interface ¶
type Interface interface {
MeterInterface
// ResolveLocation resolves an import location.
ResolveLocation(identifiers []Identifier, location Location) ([]ResolvedLocation, error)
// GetCode returns the code at a given location
GetCode(location Location) ([]byte, error)
// GetOrLoadProgram returns the program for the given location, if available,
// or sets the program by calling the given load function.
//
// For implementations:
// - Perform a lookup for the location and return the program if it exists.
// - If the program does not exist, call load, and store the result,
// *EVEN IF loading failed* (program is nil / error is non-nil)!
// - During execution of a high-level program (e.g. script, transaction, etc.),
// this function MUST always return the *same* program,
// i.e. it may NOT return a different program,
// an elaboration in the program that is not annotating the AST in the program;
// or a program/elaboration and then nothing in a subsequent call.
// - This function MUST also return exactly what was previously returned from load,
// *EVEN IF loading failed* (program is nil / error is non-nil),
// and it may NOT return something different
// - Do NOT implement this as a cache!
GetOrLoadProgram(
location Location,
load func() (*interpreter.Program, error),
) (*interpreter.Program, error)
SetInterpreterSharedState(state *interpreter.SharedState)
// May return nil if none is available or use is not applicable.
GetInterpreterSharedState() *interpreter.SharedState
// GetValue gets a value for the given key in the storage, owned by the given account.
GetValue(owner, key []byte) (value []byte, err error)
// SetValue sets a value for the given key in the storage, owned by the given account.
SetValue(owner, key, value []byte) (err error)
// ValueExists returns true if the given key exists in the storage, owned by the given account.
ValueExists(owner, key []byte) (exists bool, err error)
// AllocateSlabIndex allocates a new slab index under the given account.
AllocateSlabIndex(owner []byte) (atree.SlabIndex, error)
// CreateAccount creates a new account.
CreateAccount(payer Address) (address Address, err error)
// AddAccountKey appends a key to an account.
AddAccountKey(address Address, publicKey *PublicKey, hashAlgo HashAlgorithm, weight int) (*AccountKey, error)
// GetAccountKey retrieves a key from an account by index.
GetAccountKey(address Address, index uint32) (*AccountKey, error)
AccountKeysCount(address Address) (uint32, error)
// RevokeAccountKey removes a key from an account by index.
RevokeAccountKey(address Address, index uint32) (*AccountKey, error)
// UpdateAccountContractCode updates the code associated with an account contract.
UpdateAccountContractCode(location common.AddressLocation, code []byte) (err error)
// GetAccountContractCode returns the code associated with an account contract.
GetAccountContractCode(location common.AddressLocation) (code []byte, err error)
// RemoveAccountContractCode removes the code associated with an account contract.
RemoveAccountContractCode(location common.AddressLocation) (err error)
// GetSigningAccounts returns the signing accounts.
GetSigningAccounts() ([]Address, error)
// ProgramLog logs program logs.
ProgramLog(string) error
// EmitEvent is called when an event is emitted by the runtime.
EmitEvent(cadence.Event) error
// GenerateUUID is called to generate a UUID.
GenerateUUID() (uint64, error)
// DecodeArgument decodes a transaction/script argument against the given type.
DecodeArgument(argument []byte, argumentType cadence.Type) (cadence.Value, error)
// GetCurrentBlockHeight returns the current block height.
GetCurrentBlockHeight() (uint64, error)
// GetBlockAtHeight returns the block at the given height.
GetBlockAtHeight(height uint64) (block Block, exists bool, err error)
// ReadRandom reads pseudo-random bytes into the input slice, using distributed randomness.
ReadRandom([]byte) error
// VerifySignature returns true if the given signature was produced by signing the given tag + data
// using the given public key, signature algorithm, and hash algorithm.
VerifySignature(
signature []byte,
tag string,
signedData []byte,
publicKey []byte,
signatureAlgorithm SignatureAlgorithm,
hashAlgorithm HashAlgorithm,
) (bool, error)
// Hash returns the digest of hashing the given data with using the given hash algorithm
Hash(data []byte, tag string, hashAlgorithm HashAlgorithm) ([]byte, error)
// GetAccountBalance gets accounts default flow token balance.
GetAccountBalance(address common.Address) (value uint64, err error)
// GetAccountAvailableBalance gets accounts default flow token balance - balance that is reserved for storage.
GetAccountAvailableBalance(address common.Address) (value uint64, err error)
// GetStorageUsed gets storage used in bytes by the address at the moment of the function call.
GetStorageUsed(address Address) (value uint64, err error)
// GetStorageCapacity gets storage capacity in bytes on the address.
GetStorageCapacity(address Address) (value uint64, err error)
// ImplementationDebugLog logs implementation log statements on a debug-level
ImplementationDebugLog(message string) error
// ValidatePublicKey verifies the validity of a public key.
ValidatePublicKey(key *PublicKey) error
// GetAccountContractNames returns the names of all contracts deployed in an account.
GetAccountContractNames(address Address) ([]string, error)
// RecordTrace records an opentelemetry trace.
RecordTrace(operation string, location Location, duration time.Duration, attrs []attribute.KeyValue)
// BLSVerifyPOP verifies a proof of possession (PoP) for the receiver public key.
BLSVerifyPOP(publicKey *PublicKey, signature []byte) (bool, error)
// BLSAggregateSignatures aggregate multiple BLS signatures into one.
BLSAggregateSignatures(signatures [][]byte) ([]byte, error)
// BLSAggregatePublicKeys aggregate multiple BLS public keys into one.
BLSAggregatePublicKeys(publicKeys []*PublicKey) (*PublicKey, error)
// ResourceOwnerChanged gets called when a resource's owner changed (if enabled)
ResourceOwnerChanged(
interpreter *interpreter.Interpreter,
resource *interpreter.CompositeValue,
oldOwner common.Address,
newOwner common.Address,
)
// GenerateAccountID generates a new, *non-zero*, unique ID for the given account.
GenerateAccountID(address common.Address) (uint64, error)
RecoverProgram(program *ast.Program, location common.Location) ([]byte, error)
ValidateAccountCapabilitiesGet(
inter *interpreter.Interpreter,
locationRange interpreter.LocationRange,
address interpreter.AddressValue,
path interpreter.PathValue,
wantedBorrowType *sema.ReferenceType,
capabilityBorrowType *sema.ReferenceType,
) (bool, error)
ValidateAccountCapabilitiesPublish(
inter *interpreter.Interpreter,
locationRange interpreter.LocationRange,
address interpreter.AddressValue,
path interpreter.PathValue,
capabilityBorrowType *interpreter.ReferenceStaticType,
) (bool, error)
MinimumRequiredVersion() (string, error)
}
type InterpretFunc ¶ added in v0.26.0
type InterpretFunc func(inter *interpreter.Interpreter) (interpreter.Value, error)
type InvalidEntryPointArgumentError ¶ added in v0.5.0
InvalidEntryPointArgumentError
func (*InvalidEntryPointArgumentError) Error ¶ added in v0.5.0
func (e *InvalidEntryPointArgumentError) Error() string
func (*InvalidEntryPointArgumentError) IsUserError ¶ added in v0.25.0
func (*InvalidEntryPointArgumentError) IsUserError()
func (*InvalidEntryPointArgumentError) Unwrap ¶ added in v0.5.0
func (e *InvalidEntryPointArgumentError) Unwrap() error
type InvalidEntryPointParameterCountError ¶ added in v0.5.0
func (InvalidEntryPointParameterCountError) Error ¶ added in v0.5.0
func (e InvalidEntryPointParameterCountError) Error() string
func (InvalidEntryPointParameterCountError) IsUserError ¶ added in v0.25.0
func (InvalidEntryPointParameterCountError) IsUserError()
type InvalidScriptReturnTypeError ¶ added in v0.11.0
InvalidScriptReturnTypeError is an error that is reported for invalid script return types.
A type is invalid if it cannot be exported / returned externally.
func (*InvalidScriptReturnTypeError) Error ¶ added in v0.11.0
func (e *InvalidScriptReturnTypeError) Error() string
func (*InvalidScriptReturnTypeError) IsUserError ¶ added in v0.25.0
func (*InvalidScriptReturnTypeError) IsUserError()
type InvalidTransactionAuthorizerCountError ¶ added in v0.2.0
func (InvalidTransactionAuthorizerCountError) Error ¶ added in v0.2.0
func (e InvalidTransactionAuthorizerCountError) Error() string
func (InvalidTransactionAuthorizerCountError) IsUserError ¶ added in v0.25.0
func (InvalidTransactionAuthorizerCountError) IsUserError()
type InvalidTransactionCountError ¶
type InvalidTransactionCountError struct {
Count int
}
func (InvalidTransactionCountError) Error ¶
func (e InvalidTransactionCountError) Error() string
func (InvalidTransactionCountError) IsUserError ¶ added in v0.25.0
func (InvalidTransactionCountError) IsUserError()
type InvalidValueTypeError ¶ added in v0.15.0
InvalidValueTypeError
func (*InvalidValueTypeError) Error ¶ added in v0.15.0
func (e *InvalidValueTypeError) Error() string
func (*InvalidValueTypeError) IsUserError ¶ added in v0.25.0
func (*InvalidValueTypeError) IsUserError()
type LocationCoverage ¶ added in v0.12.0
type LocationCoverage struct {
// Contains hit count for each line on a given location.
// A hit count of 0 means the line was not covered.
LineHits map[int]int
// Total number of statements on a given location.
Statements int
}
LocationCoverage records coverage information for a location.
func NewLocationCoverage ¶ added in v0.12.0
func NewLocationCoverage(lineHits map[int]int) *LocationCoverage
NewLocationCoverage creates and returns a *LocationCoverage with the given lineHits map.
func (*LocationCoverage) AddLineHit ¶ added in v0.12.0
func (c *LocationCoverage) AddLineHit(line int)
AddLineHit increments the hit count for the given line.
func (*LocationCoverage) CoveredLines ¶ added in v0.33.1
func (c *LocationCoverage) CoveredLines() int
CoveredLines returns the count of covered lines for a given location. This is the number of lines with a hit count > 0.
func (*LocationCoverage) MissedLines ¶ added in v0.33.1
func (c *LocationCoverage) MissedLines() []int
MissedLines returns an array with the missed lines for a given location. These are all the lines with a hit count == 0. The resulting array is sorted in ascending order.
func (*LocationCoverage) Percentage ¶ added in v0.33.1
func (c *LocationCoverage) Percentage() string
Percentage returns a string representation of the covered statements percentage. It is defined as the ratio of covered lines over the total statements for a given location.
type LocationFilter ¶ added in v0.39.0
type MalformedValueError ¶ added in v0.15.0
func (*MalformedValueError) Error ¶ added in v0.15.0
func (e *MalformedValueError) Error() string
func (*MalformedValueError) IsUserError ¶ added in v0.25.0
func (*MalformedValueError) IsUserError()
type MeterInterface ¶ added in v0.32.0
type MeterInterface interface {
// MeterMemory gets called when new memory is allocated or used by the interpreter
MeterMemory(usage common.MemoryUsage) error
// MeterComputation is a callback method for metering computation, it returns error
// when computation passes the limit (set by the environment)
MeterComputation(operationType common.ComputationKind, intensity uint) error
// ComputationUsed returns the total computation used in the current runtime.
ComputationUsed() (uint64, error)
// MemoryUsed returns the total memory (estimate) used in the current runtime.
MemoryUsed() (uint64, error)
// InteractionUsed returns the total storage interaction used in the current runtime.
InteractionUsed() (uint64, error)
}
type ParsingCheckingError ¶ added in v0.9.3
ParsingCheckingError is an error wrapper for a parsing or a checking error at a specific location
func (*ParsingCheckingError) ChildErrors ¶ added in v0.9.3
func (e *ParsingCheckingError) ChildErrors() []error
func (*ParsingCheckingError) Error ¶ added in v0.9.3
func (e *ParsingCheckingError) Error() string
func (*ParsingCheckingError) ImportLocation ¶ added in v0.12.1
func (e *ParsingCheckingError) ImportLocation() Location
func (*ParsingCheckingError) IsUserError ¶ added in v0.25.0
func (*ParsingCheckingError) IsUserError()
func (*ParsingCheckingError) Unwrap ¶ added in v0.9.3
func (e *ParsingCheckingError) Unwrap() error
type REPL ¶
type REPL struct {
OnError func(err error, location Location, codes map[Location][]byte)
OnExpressionType func(sema.Type)
OnResult func(interpreter.Value)
// contains filtered or unexported fields
}
func (*REPL) ExportValue ¶ added in v0.30.0
func (*REPL) Suggestions ¶
func (r *REPL) Suggestions() (result []REPLSuggestion)
type REPLSuggestion ¶ added in v0.2.0
type REPLSuggestion struct {
Name, Description string
}
type ResolvedLocation ¶ added in v0.10.0
type ResolvedLocation = sema.ResolvedLocation
type Runtime ¶
type Runtime interface {
// Config returns the runtime.Config this Runtime was instantiated with.
Config() Config
// NewScriptExecutor returns an executor which executes the given script.
NewScriptExecutor(Script, Context) Executor
// ExecuteScript executes the given script.
//
// This function returns an error if the program has errors (e.g syntax errors, type errors),
// or if the execution fails.
ExecuteScript(Script, Context) (cadence.Value, error)
// NewTransactionExecutor returns an executor which executes the given
// transaction.
NewTransactionExecutor(Script, Context) Executor
// ExecuteTransaction executes the given transaction.
//
// This function returns an error if the program has errors (e.g syntax errors, type errors),
// or if the execution fails.
ExecuteTransaction(Script, Context) error
// NewContractFunctionExecutor returns an executor which invokes a contract
// function with the given arguments.
NewContractFunctionExecutor(
contractLocation common.AddressLocation,
functionName string,
arguments []cadence.Value,
argumentTypes []sema.Type,
context Context,
) Executor
// InvokeContractFunction invokes a contract function with the given arguments.
//
// This function returns an error if the execution fails.
// If the contract function accepts an &Account as a parameter,
// the corresponding argument can be an interpreter.Address.
// Returns a cadence.Value
InvokeContractFunction(
contractLocation common.AddressLocation,
functionName string,
arguments []cadence.Value,
argumentTypes []sema.Type,
context Context,
) (cadence.Value, error)
// ParseAndCheckProgram parses and checks the given code without executing the program.
//
// This function returns an error if the program contains any syntax or semantic errors.
ParseAndCheckProgram(source []byte, context Context) (*interpreter.Program, error)
// ReadStored reads the value stored at the given path
//
ReadStored(address common.Address, path cadence.Path, context Context) (cadence.Value, error)
// Storage returns the storage system and an interpreter which can be used for
// accessing values in storage.
//
// NOTE: only use the interpreter for storage operations,
// do *NOT* use the interpreter for any other purposes,
// such as executing a program.
//
Storage(context Context) (*Storage, *interpreter.Interpreter, error)
SetDebugger(debugger *interpreter.Debugger)
}
Runtime is a runtime capable of executing Cadence.
func NewInterpreterRuntime ¶
NewInterpreterRuntime returns an interpreter-based version of the Flow runtime.
type ScriptParameterTypeNotImportableError ¶ added in v0.17.0
ScriptParameterTypeNotImportableError is an error that is reported for script parameter types that are not importable.
For example, the type `Int` is an importable type, whereas a function-type is not.
func (*ScriptParameterTypeNotImportableError) Error ¶ added in v0.17.0
func (e *ScriptParameterTypeNotImportableError) Error() string
func (*ScriptParameterTypeNotImportableError) IsUserError ¶ added in v0.25.0
func (*ScriptParameterTypeNotImportableError) IsUserError()
type ScriptParameterTypeNotStorableError ¶ added in v0.8.0
ScriptParameterTypeNotStorableError is an error that is reported for script parameter types that are not storable.
For example, the type `Int` is a storable type, whereas a function type is not.
func (*ScriptParameterTypeNotStorableError) Error ¶ added in v0.8.0
func (e *ScriptParameterTypeNotStorableError) Error() string
func (*ScriptParameterTypeNotStorableError) IsUserError ¶ added in v0.25.0
func (*ScriptParameterTypeNotStorableError) IsUserError()
type SignatureAlgorithm ¶ added in v0.14.0
type SignatureAlgorithm = sema.SignatureAlgorithm
type Storage ¶ added in v0.20.0
type Storage struct {
*atree.PersistentSlabStorage
NewStorageMaps *orderedmap.OrderedMap[interpreter.StorageKey, atree.SlabIndex]
Ledger atree.Ledger
// contains filtered or unexported fields
}
func NewStorage ¶ added in v0.20.0
func NewStorage(ledger atree.Ledger, memoryGauge common.MemoryGauge) *Storage
func (*Storage) CheckHealth ¶ added in v0.20.0
func (*Storage) Commit ¶ added in v0.20.0
func (s *Storage) Commit(inter *interpreter.Interpreter, commitContractUpdates bool) error
Commit serializes/saves all values in the readCache in storage (through the runtime interface).
func (*Storage) GetStorageMap ¶ added in v0.23.0
func (s *Storage) GetStorageMap( address common.Address, domain string, createIfNotExists bool, ) ( storageMap *interpreter.StorageMap, )
func (*Storage) NondeterministicCommit ¶ added in v1.0.0
func (s *Storage) NondeterministicCommit(inter *interpreter.Interpreter, commitContractUpdates bool) error
NondeterministicCommit serializes and commits all values in the deltas storage in nondeterministic order. This function is used when commit ordering isn't required (e.g. migration programs).
func (*Storage) StoreNewStorageMap ¶ added in v1.0.0
func (s *Storage) StoreNewStorageMap(address atree.Address, domain string) *interpreter.StorageMap
type UnreferencedRootSlabsError ¶ added in v0.42.10
func (UnreferencedRootSlabsError) Error ¶ added in v0.42.10
func (e UnreferencedRootSlabsError) Error() string
func (UnreferencedRootSlabsError) IsInternalError ¶ added in v0.42.10
func (UnreferencedRootSlabsError) IsInternalError()
type ValueNotExportableError ¶ added in v0.30.0
type ValueNotExportableError struct {
Type interpreter.StaticType
}
ValueNotExportableError is an error that is reported for values that cannot be exported.
func (*ValueNotExportableError) Error ¶ added in v0.30.0
func (e *ValueNotExportableError) Error() string
func (*ValueNotExportableError) IsUserError ¶ added in v0.30.0
func (*ValueNotExportableError) IsUserError()
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
Package ast contains all AST nodes for Cadence.
|
Package ast contains all AST nodes for Cadence. |
|
check
command
|
|
|
compile
command
|
|
|
decode-state-values
command
|
|
|
info
command
|
|
|
json-cdc
command
|
|
|
main
command
|
|
|
minifier
command
* Cadence - The resource-oriented smart contract programming language * * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License.
|
* Cadence - The resource-oriented smart contract programming language * * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. |
|
parse
command
|
|
|
uses the provided function `f` to generate a slice with no duplicates.
|
uses the provided function `f` to generate a slice with no duplicates. |
|
list
Package list implements a doubly linked list.
|
Package list implements a doubly linked list. |
|
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. |
|
wasm/gen
command
|
|
|
gen
command
|
|
|
tests
|
|