Documentation ¶
Index ¶
- Constants
- Variables
- func CodeToHashValue(inter *interpreter.Interpreter, code []byte) *interpreter.ArrayValue
- func CryptoChecker() *sema.Checker
- func CryptoContractInitializerTypes() []sema.Type
- func CryptoContractType() *sema.CompositeType
- func NewAccountKeyValue(inter *interpreter.Interpreter, locationRange interpreter.LocationRange, ...) interpreter.Value
- func NewAuthAccountValue(gauge common.MemoryGauge, handler AuthAccountHandler, ...) interpreter.Value
- func NewBlockValue(inter *interpreter.Interpreter, locationRange interpreter.LocationRange, ...) interpreter.Value
- func NewCryptoContract(inter *interpreter.Interpreter, constructor interpreter.FunctionValue, ...) (*interpreter.CompositeValue, error)
- func NewHashAlgorithmCase(rawValue interpreter.UInt8Value, hasher Hasher) (interpreter.MemberAccessibleValue, error)
- func NewHashAlgorithmFromValue(inter *interpreter.Interpreter, locationRange interpreter.LocationRange, ...) sema.HashAlgorithm
- func NewPublicAccountValue(gauge common.MemoryGauge, handler PublicAccountHandler, ...) interpreter.Value
- func NewPublicKeyFromFields(inter *interpreter.Interpreter, locationRange interpreter.LocationRange, ...) *interpreter.CompositeValue
- func NewPublicKeyValue(inter *interpreter.Interpreter, locationRange interpreter.LocationRange, ...) *interpreter.CompositeValue
- func NewSignatureAlgorithmCase(rawValue interpreter.UInt8Value) interpreter.MemberAccessibleValue
- func NewTestContract(inter *interpreter.Interpreter, testFramework TestFramework, ...) (*interpreter.CompositeValue, error)
- func NewTestInterpreterContractValueHandler(testFramework TestFramework) interpreter.ContractValueHandlerFunc
- func TestCheckerContractValueHandler(checker *sema.Checker, declaration *ast.CompositeDeclaration, ...) sema.ValueDeclaration
- type Account
- type AccountContractAdditionHandler
- type AccountContractNamesProvider
- type AccountContractProvider
- type AccountContractRemovalHandler
- type AccountCreator
- type AccountEncodedKeyAdditionHandler
- type AccountEncodedKeyRevocationHandler
- type AccountKey
- type AccountKeyAdditionHandler
- type AccountKeyProvider
- type AccountKeyRevocationHandler
- type AssertionError
- type AuthAccountContractsHandler
- type AuthAccountHandler
- type AuthAccountKeysHandler
- type AvailableBalanceProvider
- type BLSContractHandler
- type BLSPoPVerifier
- type BLSPublicKeyAggregator
- type BLSSignatureAggregator
- type BalanceProvider
- type Block
- type BlockAtHeightProvider
- type BlockHash
- type Configuration
- type ConformanceMismatchError
- type ContractNotFoundError
- type ContractRemovalError
- type ContractUpdateError
- type ContractUpdateValidator
- type CurrentBlockProvider
- type DeployedContractConstructorInvocation
- type EnumCaseMismatchError
- type EventEmitter
- type ExtraneousFieldError
- type FieldMismatchError
- type FlowLocation
- func (l FlowLocation) Description() string
- func (l FlowLocation) MarshalJSON() ([]byte, error)
- func (l FlowLocation) QualifiedIdentifier(typeID common.TypeID) string
- func (l FlowLocation) String() string
- func (l FlowLocation) TypeID(memoryGauge common.MemoryGauge, qualifiedIdentifier string) common.TypeID
- type Hasher
- type InvalidContractArgumentError
- type InvalidContractDeploymentError
- type InvalidContractDeploymentOriginError
- type InvalidDeclarationKindChangeError
- type Logger
- type MissingDeclarationError
- type MissingEnumCasesError
- type PanicError
- type PublicAccountContractsHandler
- type PublicAccountHandler
- type PublicAccountKeysHandler
- type PublicKey
- type PublicKeySignatureVerifier
- type PublicKeyValidator
- type RLPDecodeListError
- type RLPDecodeStringError
- type ScriptResult
- type StandardLibraryHandler
- type StandardLibraryType
- type StandardLibraryValue
- func DefaultScriptStandardLibraryValues(handler StandardLibraryHandler) []StandardLibraryValue
- func DefaultStandardLibraryValues(handler StandardLibraryHandler) []StandardLibraryValue
- func NewAuthAccountConstructor(creator AccountCreator) StandardLibraryValue
- func NewBLSContract(gauge common.MemoryGauge, handler BLSContractHandler) StandardLibraryValue
- func NewGetAccountFunction(handler PublicAccountHandler) StandardLibraryValue
- func NewGetAuthAccountFunction(handler AuthAccountHandler) StandardLibraryValue
- func NewGetBlockFunction(provider BlockAtHeightProvider) StandardLibraryValue
- func NewGetCurrentBlockFunction(provider CurrentBlockProvider) StandardLibraryValue
- func NewHashAlgorithmConstructor(hasher Hasher) StandardLibraryValue
- func NewLogFunction(logger Logger) StandardLibraryValue
- func NewPublicKeyConstructor(publicKeyValidator PublicKeyValidator, ...) StandardLibraryValue
- func NewStandardLibraryFunction(name string, functionType *sema.FunctionType, docString string, ...) StandardLibraryValue
- func NewUnsafeRandomFunction(generator UnsafeRandomGenerator) StandardLibraryValue
- func (v StandardLibraryValue) ValueDeclarationArgumentLabels() []string
- func (v StandardLibraryValue) ValueDeclarationDocString() string
- func (v StandardLibraryValue) ValueDeclarationIsConstant() bool
- func (v StandardLibraryValue) ValueDeclarationKind() common.DeclarationKind
- func (v StandardLibraryValue) ValueDeclarationName() string
- func (v StandardLibraryValue) ValueDeclarationPosition() *ast.Position
- func (v StandardLibraryValue) ValueDeclarationType() sema.Type
- func (v StandardLibraryValue) ValueDeclarationValue() interpreter.Value
- type StorageCapacityProvider
- type StorageUsedProvider
- type TestFailedError
- type TestFramework
- type TransactionResult
- type TypeComparator
- func (c *TypeComparator) CheckConstantSizedTypeEquality(expected *ast.ConstantSizedType, found ast.Type) error
- func (c *TypeComparator) CheckDictionaryTypeEquality(expected *ast.DictionaryType, found ast.Type) error
- func (c *TypeComparator) CheckFunctionTypeEquality(expected *ast.FunctionType, found ast.Type) error
- func (c *TypeComparator) CheckInstantiationTypeEquality(expected *ast.InstantiationType, found ast.Type) error
- func (c *TypeComparator) CheckNominalTypeEquality(expected *ast.NominalType, found ast.Type) error
- func (c *TypeComparator) CheckOptionalTypeEquality(expected *ast.OptionalType, found ast.Type) error
- func (c *TypeComparator) CheckReferenceTypeEquality(expected *ast.ReferenceType, found ast.Type) error
- func (c *TypeComparator) CheckRestrictedTypeEquality(expected *ast.RestrictedType, found ast.Type) error
- func (c *TypeComparator) CheckVariableSizedTypeEquality(expected *ast.VariableSizedType, found ast.Type) error
- type TypeMismatchError
- type UnsafeRandomGenerator
Constants ¶
const BlockHashLength = 32
const CryptoCheckerLocation = common.IdentifierLocation("Crypto")
const FlowLocationPrefix = "flow"
const HashSize = 32
Variables ¶
var AccountContractAddedEventType = newFlowEventType( "AccountContractAdded", AccountEventAddressParameter, AccountEventCodeHashParameter, AccountEventContractParameter, )
var AccountContractRemovedEventType = newFlowEventType( "AccountContractRemoved", AccountEventAddressParameter, AccountEventCodeHashParameter, AccountEventContractParameter, )
var AccountContractUpdatedEventType = newFlowEventType( "AccountContractUpdated", AccountEventAddressParameter, AccountEventCodeHashParameter, AccountEventContractParameter, )
var AccountCreatedEventType = newFlowEventType( "AccountCreated", AccountEventAddressParameter, )
var AccountEventAddressParameter = sema.Parameter{ Identifier: "address", TypeAnnotation: sema.NewTypeAnnotation(sema.TheAddressType), }
var AccountEventCodeHashParameter = sema.Parameter{ Identifier: "codeHash", TypeAnnotation: sema.NewTypeAnnotation(HashType), }
var AccountEventContractParameter = sema.Parameter{ Identifier: "contract", TypeAnnotation: sema.NewTypeAnnotation(sema.StringType), }
var AccountEventNameParameter = sema.Parameter{ Identifier: "name", TypeAnnotation: sema.NewTypeAnnotation(sema.StringType), }
var AccountEventProviderParameter = sema.Parameter{ Identifier: "provider", TypeAnnotation: sema.NewTypeAnnotation(sema.TheAddressType), }
var AccountEventPublicKeyParameter = sema.Parameter{ Identifier: "publicKey", TypeAnnotation: sema.NewTypeAnnotation( sema.ByteArrayType, ), }
var AccountEventRecipientParameter = sema.Parameter{ Identifier: "recipient", TypeAnnotation: sema.NewTypeAnnotation(sema.TheAddressType), }
var AccountEventTypeParameter = sema.Parameter{ Identifier: "type", TypeAnnotation: sema.NewTypeAnnotation(sema.MetaType), }
var AccountInboxClaimedEventType = newFlowEventType( "InboxValueClaimed", AccountEventProviderParameter, AccountEventRecipientParameter, AccountEventNameParameter, )
var AccountInboxPublishedEventType = newFlowEventType( "InboxValuePublished", AccountEventProviderParameter, AccountEventRecipientParameter, AccountEventNameParameter, AccountEventTypeParameter, )
var AccountInboxUnpublishedEventType = newFlowEventType( "InboxValueUnpublished", AccountEventProviderParameter, AccountEventNameParameter, )
var AccountKeyAddedEventType = newFlowEventType( "AccountKeyAdded", AccountEventAddressParameter, AccountEventPublicKeyParameter, )
var AccountKeyRemovedEventType = newFlowEventType( "AccountKeyRemoved", AccountEventAddressParameter, AccountEventPublicKeyParameter, )
var AssertFunction = NewStandardLibraryFunction( "assert", assertFunctionType, assertFunctionDocString, func(invocation interpreter.Invocation) interpreter.Value { result, ok := invocation.Arguments[0].(interpreter.BoolValue) if !ok { panic(errors.NewUnreachableError()) } if !result { var message string if len(invocation.Arguments) > 1 { messageValue, ok := invocation.Arguments[1].(*interpreter.StringValue) if !ok { panic(errors.NewUnreachableError()) } message = messageValue.Str } panic(AssertionError{ Message: message, LocationRange: invocation.LocationRange, }) } return interpreter.Void }, )
var BlockIDStaticType = interpreter.ConstantSizedStaticType{ Type: interpreter.PrimitiveStaticTypeUInt8, Size: 32, }
var EmulatorBackendType = func() *sema.CompositeType { ty := &sema.CompositeType{ Identifier: emulatorBackendTypeName, Kind: common.CompositeKindStructure, Location: TestContractLocation, ExplicitInterfaceConformances: []*sema.InterfaceType{ blockchainBackendInterfaceType, }, } var members = []*sema.Member{ sema.NewUnmeteredPublicFunctionMember( ty, emulatorBackendExecuteScriptFunctionName, emulatorBackendExecuteScriptFunctionType, emulatorBackendExecuteScriptFunctionDocString, ), sema.NewUnmeteredPublicFunctionMember( ty, emulatorBackendCreateAccountFunctionName, emulatorBackendCreateAccountFunctionType, emulatorBackendCreateAccountFunctionDocString, ), sema.NewUnmeteredPublicFunctionMember( ty, emulatorBackendAddTransactionFunctionName, emulatorBackendAddTransactionFunctionType, emulatorBackendAddTransactionFunctionDocString, ), sema.NewUnmeteredPublicFunctionMember( ty, emulatorBackendExecuteNextTransactionFunctionName, emulatorBackendExecuteNextTransactionFunctionType, emulatorBackendExecuteNextTransactionFunctionDocString, ), sema.NewUnmeteredPublicFunctionMember( ty, emulatorBackendCommitBlockFunctionName, emulatorBackendCommitBlockFunctionType, emulatorBackendCommitBlockFunctionDocString, ), sema.NewUnmeteredPublicFunctionMember( ty, emulatorBackendDeployContractFunctionName, emulatorBackendDeployContractFunctionType, emulatorBackendDeployContractFunctionDocString, ), sema.NewUnmeteredPublicFunctionMember( ty, emulatorBackendUseConfigFunctionName, emulatorBackendUseConfigFunctionType, emulatorBackendUseConfigFunctionDocString, ), } ty.Members = sema.GetMembersAsMap(members) ty.Fields = sema.GetFieldNames(members) return ty }()
var HashType = &sema.ConstantSizedType{ Size: HashSize, Type: sema.UInt8Type, }
var LogFunctionType = &sema.FunctionType{ Parameters: []sema.Parameter{ { Label: sema.ArgumentLabelNotRequired, Identifier: "value", TypeAnnotation: sema.NewTypeAnnotation( sema.AnyStructType, ), }, }, ReturnTypeAnnotation: sema.NewTypeAnnotation( sema.VoidType, ), }
var PanicFunction = NewStandardLibraryFunction( "panic", panicFunctionType, panicFunctionDocString, func(invocation interpreter.Invocation) interpreter.Value { messageValue, ok := invocation.Arguments[0].(*interpreter.StringValue) if !ok { panic(errors.NewUnreachableError()) } message := messageValue.Str panic(PanicError{ Message: message, LocationRange: invocation.LocationRange, }) }, )
var RLPContract = StandardLibraryValue{ Name: "RLP", Type: rlpContractType, Value: rlpContractValue, Kind: common.DeclarationKindContract, }
var SignatureAlgorithmConstructor = StandardLibraryValue{ Name: sema.SignatureAlgorithmTypeName, Type: cryptoAlgorithmEnumConstructorType( sema.SignatureAlgorithmType, sema.SignatureAlgorithms, ), Value: signatureAlgorithmConstructorValue, Kind: common.DeclarationKindEnum, }
var TestContractChecker = func() *sema.Checker { program, err := parser.ParseProgram(nil, contracts.TestContract, parser.Config{}) if err != nil { panic(err) } activation := sema.NewVariableActivation(sema.BaseValueActivation) activation.DeclareValue(AssertFunction) var checker *sema.Checker checker, err = sema.NewChecker( program, TestContractLocation, nil, &sema.Config{ BaseValueActivation: activation, AccessCheckMode: sema.AccessCheckModeStrict, }, ) if err != nil { panic(err) } err = checker.Check() if err != nil { panic(err) } return checker }()
var TestContractLocation = common.IdentifierLocation(testContractTypeName)
var _, SignatureAlgorithmCaseValues = cryptoAlgorithmEnumValueAndCaseValues(
sema.SignatureAlgorithmType,
sema.SignatureAlgorithms,
NewSignatureAlgorithmCase,
)
Functions ¶
func CodeToHashValue ¶ added in v0.26.0
func CodeToHashValue(inter *interpreter.Interpreter, code []byte) *interpreter.ArrayValue
func CryptoChecker ¶ added in v0.5.0
func CryptoContractInitializerTypes ¶ added in v0.30.0
func CryptoContractType ¶ added in v0.30.0
func CryptoContractType() *sema.CompositeType
func NewAccountKeyValue ¶ added in v0.26.0
func NewAccountKeyValue( inter *interpreter.Interpreter, locationRange interpreter.LocationRange, accountKey *AccountKey, publicKeySignatureVerifier PublicKeySignatureVerifier, blsPoPVerifier BLSPoPVerifier, hasher Hasher, ) interpreter.Value
func NewAuthAccountValue ¶ added in v0.26.0
func NewAuthAccountValue( gauge common.MemoryGauge, handler AuthAccountHandler, addressValue interpreter.AddressValue, ) interpreter.Value
func NewBlockValue ¶ added in v0.26.0
func NewBlockValue( inter *interpreter.Interpreter, locationRange interpreter.LocationRange, block Block, ) interpreter.Value
func NewCryptoContract ¶ added in v0.5.0
func NewCryptoContract( inter *interpreter.Interpreter, constructor interpreter.FunctionValue, invocationRange ast.Range, ) ( *interpreter.CompositeValue, error, )
func NewHashAlgorithmCase ¶ added in v0.18.0
func NewHashAlgorithmCase( rawValue interpreter.UInt8Value, hasher Hasher, ) ( interpreter.MemberAccessibleValue, error, )
func NewHashAlgorithmFromValue ¶ added in v0.26.0
func NewHashAlgorithmFromValue( inter *interpreter.Interpreter, locationRange interpreter.LocationRange, value interpreter.Value, ) sema.HashAlgorithm
func NewPublicAccountValue ¶ added in v0.26.0
func NewPublicAccountValue( gauge common.MemoryGauge, handler PublicAccountHandler, addressValue interpreter.AddressValue, ) interpreter.Value
func NewPublicKeyFromFields ¶ added in v0.30.0
func NewPublicKeyFromFields( inter *interpreter.Interpreter, locationRange interpreter.LocationRange, publicKey *interpreter.ArrayValue, signAlgo *interpreter.SimpleCompositeValue, publicKeyValidator PublicKeyValidator, publicKeySignatureVerifier PublicKeySignatureVerifier, blsPoPVerifier BLSPoPVerifier, ) *interpreter.CompositeValue
func NewPublicKeyValue ¶ added in v0.26.0
func NewPublicKeyValue( inter *interpreter.Interpreter, locationRange interpreter.LocationRange, publicKey *PublicKey, publicKeySignatureVerifier PublicKeySignatureVerifier, blsPoPVerifier BLSPoPVerifier, ) *interpreter.CompositeValue
func NewSignatureAlgorithmCase ¶ added in v0.18.0
func NewSignatureAlgorithmCase(rawValue interpreter.UInt8Value) interpreter.MemberAccessibleValue
func NewTestContract ¶ added in v0.27.0
func NewTestContract( inter *interpreter.Interpreter, testFramework TestFramework, constructor interpreter.FunctionValue, invocationRange ast.Range, ) ( *interpreter.CompositeValue, error, )
func NewTestInterpreterContractValueHandler ¶ added in v0.30.0
func NewTestInterpreterContractValueHandler( testFramework TestFramework, ) interpreter.ContractValueHandlerFunc
func TestCheckerContractValueHandler ¶ added in v0.30.0
func TestCheckerContractValueHandler( checker *sema.Checker, declaration *ast.CompositeDeclaration, compositeType *sema.CompositeType, ) sema.ValueDeclaration
Types ¶
type AccountContractAdditionHandler ¶ added in v0.26.0
type AccountContractAdditionHandler interface { EventEmitter AccountContractProvider ParseAndCheckProgram( code []byte, location common.Location, program bool, ) (*interpreter.Program, error) // UpdateAccountContractCode updates the code associated with an account contract. UpdateAccountContractCode(address common.Address, name string, code []byte) error RecordContractUpdate(address common.Address, name string, value *interpreter.CompositeValue) InterpretContract( location common.AddressLocation, program *interpreter.Program, name string, invocation DeployedContractConstructorInvocation, ) ( *interpreter.CompositeValue, error, ) TemporarilyRecordCode(location common.AddressLocation, code []byte) }
type AccountContractNamesProvider ¶ added in v0.26.0
type AccountContractProvider ¶ added in v0.26.0
type AccountContractRemovalHandler ¶ added in v0.26.0
type AccountContractRemovalHandler interface { EventEmitter AccountContractProvider RemoveAccountContractCode(address common.Address, name string) error RecordContractRemoval(address common.Address, name string) }
type AccountCreator ¶ added in v0.26.0
type AccountCreator interface { EventEmitter AuthAccountHandler // CreateAccount creates a new account. CreateAccount(payer common.Address) (address common.Address, err error) }
type AccountEncodedKeyAdditionHandler ¶ added in v0.26.0
type AccountEncodedKeyAdditionHandler interface { EventEmitter // AddEncodedAccountKey appends an encoded key to an account. AddEncodedAccountKey(address common.Address, key []byte) error }
type AccountEncodedKeyRevocationHandler ¶ added in v0.26.0
type AccountKey ¶ added in v0.26.0
type AccountKeyAdditionHandler ¶ added in v0.26.0
type AccountKeyAdditionHandler interface { EventEmitter PublicKeyValidator PublicKeySignatureVerifier BLSPoPVerifier Hasher // AddAccountKey appends a key to an account. AddAccountKey(address common.Address, key *PublicKey, algo sema.HashAlgorithm, weight int) (*AccountKey, error) }
type AccountKeyProvider ¶ added in v0.26.0
type AccountKeyProvider interface { PublicKeyValidator PublicKeySignatureVerifier BLSPoPVerifier Hasher // GetAccountKey retrieves a key from an account by index. GetAccountKey(address common.Address, index int) (*AccountKey, error) AccountKeysCount(address common.Address) (uint64, error) }
type AccountKeyRevocationHandler ¶ added in v0.26.0
type AccountKeyRevocationHandler interface { EventEmitter Hasher PublicKeyValidator PublicKeySignatureVerifier BLSPoPVerifier // RevokeAccountKey removes a key from an account by index. RevokeAccountKey(address common.Address, index int) (*AccountKey, error) }
type AssertionError ¶
type AssertionError struct { Message string interpreter.LocationRange }
func (AssertionError) Error ¶
func (e AssertionError) Error() string
func (AssertionError) IsUserError ¶ added in v0.25.0
func (AssertionError) IsUserError()
type AuthAccountContractsHandler ¶ added in v0.26.0
type AuthAccountContractsHandler interface { AccountContractProvider AccountContractAdditionHandler AccountContractRemovalHandler AccountContractNamesProvider }
type AuthAccountHandler ¶ added in v0.26.0
type AuthAccountKeysHandler ¶ added in v0.26.0
type AuthAccountKeysHandler interface { AccountKeyProvider AccountKeyAdditionHandler AccountKeyRevocationHandler }
type AvailableBalanceProvider ¶ added in v0.26.0
type BLSContractHandler ¶ added in v0.30.0
type BLSContractHandler interface { PublicKeyValidator PublicKeySignatureVerifier BLSPoPVerifier BLSPublicKeyAggregator BLSSignatureAggregator }
type BLSPoPVerifier ¶ added in v0.30.0
type BLSPublicKeyAggregator ¶ added in v0.30.0
type BLSPublicKeyAggregator interface { PublicKeySignatureVerifier BLSPoPVerifier // BLSAggregatePublicKeys aggregate multiple BLS public keys into one. BLSAggregatePublicKeys(publicKeys []*PublicKey) (*PublicKey, error) }
type BLSSignatureAggregator ¶ added in v0.30.0
type BalanceProvider ¶ added in v0.26.0
type BlockAtHeightProvider ¶ added in v0.26.0
type BlockHash ¶ added in v0.26.0
type BlockHash [BlockHashLength]byte
type Configuration ¶ added in v0.27.0
type ConformanceMismatchError ¶ added in v0.26.0
ConformanceMismatchError is reported during a contract update, when the enum conformance of the new program does not match the existing one.
func (*ConformanceMismatchError) Error ¶ added in v0.26.0
func (e *ConformanceMismatchError) Error() string
func (*ConformanceMismatchError) IsUserError ¶ added in v0.26.0
func (*ConformanceMismatchError) IsUserError()
type ContractNotFoundError ¶ added in v0.26.0
ContractNotFoundError is reported during a contract update, if no contract can be found in the program.
func (*ContractNotFoundError) Error ¶ added in v0.26.0
func (e *ContractNotFoundError) Error() string
func (*ContractNotFoundError) IsUserError ¶ added in v0.26.0
func (*ContractNotFoundError) IsUserError()
type ContractRemovalError ¶ added in v0.26.0
type ContractRemovalError struct { Name string interpreter.LocationRange }
ContractRemovalError
func (*ContractRemovalError) Error ¶ added in v0.26.0
func (e *ContractRemovalError) Error() string
func (*ContractRemovalError) IsUserError ¶ added in v0.26.0
func (*ContractRemovalError) IsUserError()
type ContractUpdateError ¶ added in v0.26.0
ContractUpdateError is reported upon any invalid update to a contract or contract interface. It contains all the errors reported during the update validation.
func (*ContractUpdateError) ChildErrors ¶ added in v0.26.0
func (e *ContractUpdateError) ChildErrors() []error
func (*ContractUpdateError) Error ¶ added in v0.26.0
func (e *ContractUpdateError) Error() string
func (*ContractUpdateError) ImportLocation ¶ added in v0.26.0
func (e *ContractUpdateError) ImportLocation() common.Location
func (*ContractUpdateError) IsUserError ¶ added in v0.26.0
func (*ContractUpdateError) IsUserError()
type ContractUpdateValidator ¶ added in v0.26.0
type ContractUpdateValidator struct { TypeComparator // contains filtered or unexported fields }
func NewContractUpdateValidator ¶ added in v0.26.0
func NewContractUpdateValidator( location common.Location, contractName string, oldProgram *ast.Program, newProgram *ast.Program, ) *ContractUpdateValidator
NewContractUpdateValidator initializes and returns a validator, without performing any validation. Invoke the `Validate()` method of the validator returned, to start validating the contract.
func (*ContractUpdateValidator) Validate ¶ added in v0.26.0
func (validator *ContractUpdateValidator) Validate() error
Validate validates the contract update, and returns an error if it is an invalid update.
type CurrentBlockProvider ¶ added in v0.26.0
type CurrentBlockProvider interface { BlockAtHeightProvider // GetCurrentBlockHeight returns the current block height. GetCurrentBlockHeight() (uint64, error) }
type DeployedContractConstructorInvocation ¶ added in v0.26.0
type DeployedContractConstructorInvocation struct { Address common.Address ContractType *sema.CompositeType ConstructorArguments []interpreter.Value ArgumentTypes []sema.Type ParameterTypes []sema.Type }
type EnumCaseMismatchError ¶ added in v0.26.0
EnumCaseMismatchError is reported during an enum update, when an updated enum case does not match the existing enum case.
func (*EnumCaseMismatchError) Error ¶ added in v0.26.0
func (e *EnumCaseMismatchError) Error() string
func (*EnumCaseMismatchError) IsUserError ¶ added in v0.26.0
func (*EnumCaseMismatchError) IsUserError()
type EventEmitter ¶ added in v0.26.0
type EventEmitter interface { EmitEvent( inter *interpreter.Interpreter, eventType *sema.CompositeType, values []interpreter.Value, locationRange interpreter.LocationRange, ) }
type ExtraneousFieldError ¶ added in v0.26.0
ExtraneousFieldError is reported during a contract update, when an updated composite declaration has more fields than the existing declaration.
func (*ExtraneousFieldError) Error ¶ added in v0.26.0
func (e *ExtraneousFieldError) Error() string
func (*ExtraneousFieldError) IsUserError ¶ added in v0.26.0
func (*ExtraneousFieldError) IsUserError()
type FieldMismatchError ¶ added in v0.26.0
FieldMismatchError is reported during a contract update, when a type of a field does not match the existing type of the same field.
func (*FieldMismatchError) Error ¶ added in v0.26.0
func (e *FieldMismatchError) Error() string
func (*FieldMismatchError) IsUserError ¶ added in v0.26.0
func (*FieldMismatchError) IsUserError()
func (*FieldMismatchError) SecondaryError ¶ added in v0.26.0
func (e *FieldMismatchError) SecondaryError() string
type FlowLocation ¶ added in v0.5.0
type FlowLocation struct{}
func (FlowLocation) Description ¶ added in v0.25.0
func (l FlowLocation) Description() string
func (FlowLocation) MarshalJSON ¶ added in v0.12.0
func (l FlowLocation) MarshalJSON() ([]byte, error)
func (FlowLocation) QualifiedIdentifier ¶ added in v0.10.2
func (l FlowLocation) QualifiedIdentifier(typeID common.TypeID) string
func (FlowLocation) String ¶ added in v0.12.0
func (l FlowLocation) String() string
func (FlowLocation) TypeID ¶ added in v0.10.2
func (l FlowLocation) TypeID(memoryGauge common.MemoryGauge, qualifiedIdentifier string) common.TypeID
type InvalidContractArgumentError ¶ added in v0.30.0
func (*InvalidContractArgumentError) Error ¶ added in v0.30.0
func (e *InvalidContractArgumentError) Error() string
func (*InvalidContractArgumentError) IsUserError ¶ added in v0.30.0
func (*InvalidContractArgumentError) IsUserError()
type InvalidContractDeploymentError ¶ added in v0.26.0
type InvalidContractDeploymentError struct { Err error interpreter.LocationRange }
InvalidContractDeploymentError
func (*InvalidContractDeploymentError) ChildErrors ¶ added in v0.26.0
func (e *InvalidContractDeploymentError) ChildErrors() []error
func (*InvalidContractDeploymentError) Error ¶ added in v0.26.0
func (e *InvalidContractDeploymentError) Error() string
func (*InvalidContractDeploymentError) IsUserError ¶ added in v0.26.0
func (*InvalidContractDeploymentError) IsUserError()
func (*InvalidContractDeploymentError) Unwrap ¶ added in v0.26.0
func (e *InvalidContractDeploymentError) Unwrap() error
type InvalidContractDeploymentOriginError ¶ added in v0.26.0
type InvalidContractDeploymentOriginError struct {
interpreter.LocationRange
}
InvalidContractDeploymentOriginError
func (*InvalidContractDeploymentOriginError) Error ¶ added in v0.26.0
func (*InvalidContractDeploymentOriginError) Error() string
func (*InvalidContractDeploymentOriginError) IsUserError ¶ added in v0.26.0
func (*InvalidContractDeploymentOriginError) IsUserError()
type InvalidDeclarationKindChangeError ¶ added in v0.26.0
type InvalidDeclarationKindChangeError struct { Name string OldKind common.DeclarationKind NewKind common.DeclarationKind ast.Range }
InvalidDeclarationKindChangeError is reported during a contract update, when an attempt is made to convert an existing contract to a contract interface, or vise versa.
func (*InvalidDeclarationKindChangeError) Error ¶ added in v0.26.0
func (e *InvalidDeclarationKindChangeError) Error() string
func (*InvalidDeclarationKindChangeError) IsUserError ¶ added in v0.26.0
func (*InvalidDeclarationKindChangeError) IsUserError()
type MissingDeclarationError ¶ added in v0.26.0
type MissingDeclarationError struct { Name string Kind common.DeclarationKind ast.Range }
MissingDeclarationError is reported during a contract update, if an existing declaration is removed.
func (*MissingDeclarationError) Error ¶ added in v0.26.0
func (e *MissingDeclarationError) Error() string
func (*MissingDeclarationError) IsUserError ¶ added in v0.26.0
func (*MissingDeclarationError) IsUserError()
type MissingEnumCasesError ¶ added in v0.26.0
MissingEnumCasesError is reported during an enum update, if any enum cases are removed from an existing enum.
func (*MissingEnumCasesError) Error ¶ added in v0.26.0
func (e *MissingEnumCasesError) Error() string
func (*MissingEnumCasesError) IsUserError ¶ added in v0.26.0
func (*MissingEnumCasesError) IsUserError()
type PanicError ¶
type PanicError struct { Message string interpreter.LocationRange }
func (PanicError) Error ¶
func (e PanicError) Error() string
func (PanicError) IsUserError ¶ added in v0.25.0
func (PanicError) IsUserError()
type PublicAccountContractsHandler ¶ added in v0.26.0
type PublicAccountContractsHandler interface { AccountContractNamesProvider AccountContractProvider }
type PublicAccountHandler ¶ added in v0.26.0
type PublicAccountHandler interface { BalanceProvider AvailableBalanceProvider StorageUsedProvider StorageCapacityProvider PublicAccountKeysHandler PublicAccountContractsHandler }
type PublicAccountKeysHandler ¶ added in v0.26.0
type PublicAccountKeysHandler interface { AccountKeyProvider }
type PublicKey ¶ added in v0.26.0
type PublicKey struct { PublicKey []byte SignAlgo sema.SignatureAlgorithm }
func NewPublicKeyFromValue ¶ added in v0.26.0
func NewPublicKeyFromValue( inter *interpreter.Interpreter, locationRange interpreter.LocationRange, publicKey interpreter.MemberAccessibleValue, ) ( *PublicKey, error, )
type PublicKeySignatureVerifier ¶ added in v0.30.0
type PublicKeySignatureVerifier interface { // 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 sema.SignatureAlgorithm, hashAlgorithm sema.HashAlgorithm, ) (bool, error) }
type PublicKeyValidator ¶ added in v0.30.0
type RLPDecodeListError ¶ added in v0.23.0
type RLPDecodeListError struct { Msg string interpreter.LocationRange }
func (RLPDecodeListError) Error ¶ added in v0.23.0
func (e RLPDecodeListError) Error() string
func (RLPDecodeListError) IsUserError ¶ added in v0.25.0
func (RLPDecodeListError) IsUserError()
type RLPDecodeStringError ¶ added in v0.23.0
type RLPDecodeStringError struct { Msg string interpreter.LocationRange }
func (RLPDecodeStringError) Error ¶ added in v0.23.0
func (e RLPDecodeStringError) Error() string
func (RLPDecodeStringError) IsUserError ¶ added in v0.25.0
func (RLPDecodeStringError) IsUserError()
type ScriptResult ¶ added in v0.27.0
type ScriptResult struct { Value interpreter.Value Error error }
type StandardLibraryHandler ¶ added in v0.27.0
type StandardLibraryHandler interface { Logger UnsafeRandomGenerator BlockAtHeightProvider CurrentBlockProvider PublicAccountHandler AccountCreator PublicKeyValidator PublicKeySignatureVerifier BLSPoPVerifier BLSPublicKeyAggregator BLSSignatureAggregator Hasher }
type StandardLibraryType ¶
type StandardLibraryType struct { Name string Type sema.Type Kind common.DeclarationKind }
func (StandardLibraryType) TypeDeclarationKind ¶
func (t StandardLibraryType) TypeDeclarationKind() common.DeclarationKind
func (StandardLibraryType) TypeDeclarationName ¶ added in v0.12.0
func (t StandardLibraryType) TypeDeclarationName() string
func (StandardLibraryType) TypeDeclarationPosition ¶
func (StandardLibraryType) TypeDeclarationPosition() *ast.Position
func (StandardLibraryType) TypeDeclarationType ¶
func (t StandardLibraryType) TypeDeclarationType() sema.Type
type StandardLibraryValue ¶
type StandardLibraryValue struct { Name string Type sema.Type DocString string Value interpreter.Value Kind common.DeclarationKind Position *ast.Position ArgumentLabels []string }
func DefaultScriptStandardLibraryValues ¶ added in v0.27.0
func DefaultScriptStandardLibraryValues(handler StandardLibraryHandler) []StandardLibraryValue
func DefaultStandardLibraryValues ¶ added in v0.27.0
func DefaultStandardLibraryValues(handler StandardLibraryHandler) []StandardLibraryValue
func NewAuthAccountConstructor ¶ added in v0.26.0
func NewAuthAccountConstructor(creator AccountCreator) StandardLibraryValue
func NewBLSContract ¶ added in v0.30.0
func NewBLSContract( gauge common.MemoryGauge, handler BLSContractHandler, ) StandardLibraryValue
func NewGetAccountFunction ¶ added in v0.26.0
func NewGetAccountFunction(handler PublicAccountHandler) StandardLibraryValue
func NewGetAuthAccountFunction ¶ added in v0.26.0
func NewGetAuthAccountFunction(handler AuthAccountHandler) StandardLibraryValue
func NewGetBlockFunction ¶ added in v0.26.0
func NewGetBlockFunction(provider BlockAtHeightProvider) StandardLibraryValue
func NewGetCurrentBlockFunction ¶ added in v0.26.0
func NewGetCurrentBlockFunction(provider CurrentBlockProvider) StandardLibraryValue
func NewHashAlgorithmConstructor ¶ added in v0.30.0
func NewHashAlgorithmConstructor(hasher Hasher) StandardLibraryValue
func NewLogFunction ¶ added in v0.26.0
func NewLogFunction(logger Logger) StandardLibraryValue
func NewPublicKeyConstructor ¶ added in v0.30.0
func NewPublicKeyConstructor( publicKeyValidator PublicKeyValidator, publicKeySignatureVerifier PublicKeySignatureVerifier, blsPoPVerifier BLSPoPVerifier, ) StandardLibraryValue
func NewStandardLibraryFunction ¶
func NewStandardLibraryFunction( name string, functionType *sema.FunctionType, docString string, function interpreter.HostFunction, ) StandardLibraryValue
func NewUnsafeRandomFunction ¶ added in v0.26.0
func NewUnsafeRandomFunction(generator UnsafeRandomGenerator) StandardLibraryValue
func (StandardLibraryValue) ValueDeclarationArgumentLabels ¶
func (v StandardLibraryValue) ValueDeclarationArgumentLabels() []string
func (StandardLibraryValue) ValueDeclarationDocString ¶ added in v0.17.0
func (v StandardLibraryValue) ValueDeclarationDocString() string
func (StandardLibraryValue) ValueDeclarationIsConstant ¶
func (v StandardLibraryValue) ValueDeclarationIsConstant() bool
func (StandardLibraryValue) ValueDeclarationKind ¶
func (v StandardLibraryValue) ValueDeclarationKind() common.DeclarationKind
func (StandardLibraryValue) ValueDeclarationName ¶ added in v0.12.0
func (v StandardLibraryValue) ValueDeclarationName() string
func (StandardLibraryValue) ValueDeclarationPosition ¶
func (v StandardLibraryValue) ValueDeclarationPosition() *ast.Position
func (StandardLibraryValue) ValueDeclarationType ¶
func (v StandardLibraryValue) ValueDeclarationType() sema.Type
func (StandardLibraryValue) ValueDeclarationValue ¶ added in v0.12.0
func (v StandardLibraryValue) ValueDeclarationValue() interpreter.Value
type StorageCapacityProvider ¶ added in v0.26.0
type StorageCapacityProvider interface { CommitStorageTemporarily(inter *interpreter.Interpreter) error // GetStorageCapacity gets storage capacity in bytes on the address. GetStorageCapacity(address common.Address) (uint64, error) }
type StorageUsedProvider ¶ added in v0.26.0
type StorageUsedProvider interface { CommitStorageTemporarily(inter *interpreter.Interpreter) error // GetStorageUsed gets storage used in bytes by the address at the moment of the function call. GetStorageUsed(address common.Address) (uint64, error) }
type TestFailedError ¶ added in v0.27.0
type TestFailedError struct {
Err error
}
func (TestFailedError) Error ¶ added in v0.27.0
func (e TestFailedError) Error() string
func (TestFailedError) IsUserError ¶ added in v0.27.0
func (TestFailedError) IsUserError()
func (TestFailedError) Unwrap ¶ added in v0.27.0
func (e TestFailedError) Unwrap() error
type TestFramework ¶ added in v0.27.0
type TestFramework interface { RunScript(inter *interpreter.Interpreter, code string, arguments []interpreter.Value) *ScriptResult CreateAccount() (*Account, error) AddTransaction( inter *interpreter.Interpreter, code string, authorizers []common.Address, signers []*Account, arguments []interpreter.Value, ) error ExecuteNextTransaction() *TransactionResult CommitBlock() error DeployContract( inter *interpreter.Interpreter, name string, code string, account *Account, arguments []interpreter.Value, ) error ReadFile(string) (string, error) UseConfiguration(configuration *Configuration) StandardLibraryHandler() StandardLibraryHandler }
TestFramework is the interface to be implemented by the test providers. Cadence standard library talks to test providers via this interface. This is used as a way to inject test provider dependencies dynamically.
type TransactionResult ¶ added in v0.27.0
type TransactionResult struct {
Error error
}
type TypeComparator ¶ added in v0.26.0
type TypeComparator struct {
RootDeclIdentifier *ast.Identifier
}
func (*TypeComparator) CheckConstantSizedTypeEquality ¶ added in v0.26.0
func (c *TypeComparator) CheckConstantSizedTypeEquality(expected *ast.ConstantSizedType, found ast.Type) error
func (*TypeComparator) CheckDictionaryTypeEquality ¶ added in v0.26.0
func (c *TypeComparator) CheckDictionaryTypeEquality(expected *ast.DictionaryType, found ast.Type) error
func (*TypeComparator) CheckFunctionTypeEquality ¶ added in v0.26.0
func (c *TypeComparator) CheckFunctionTypeEquality(expected *ast.FunctionType, found ast.Type) error
func (*TypeComparator) CheckInstantiationTypeEquality ¶ added in v0.26.0
func (c *TypeComparator) CheckInstantiationTypeEquality(expected *ast.InstantiationType, found ast.Type) error
func (*TypeComparator) CheckNominalTypeEquality ¶ added in v0.26.0
func (c *TypeComparator) CheckNominalTypeEquality(expected *ast.NominalType, found ast.Type) error
func (*TypeComparator) CheckOptionalTypeEquality ¶ added in v0.26.0
func (c *TypeComparator) CheckOptionalTypeEquality(expected *ast.OptionalType, found ast.Type) error
func (*TypeComparator) CheckReferenceTypeEquality ¶ added in v0.26.0
func (c *TypeComparator) CheckReferenceTypeEquality(expected *ast.ReferenceType, found ast.Type) error
func (*TypeComparator) CheckRestrictedTypeEquality ¶ added in v0.26.0
func (c *TypeComparator) CheckRestrictedTypeEquality(expected *ast.RestrictedType, found ast.Type) error
func (*TypeComparator) CheckVariableSizedTypeEquality ¶ added in v0.26.0
func (c *TypeComparator) CheckVariableSizedTypeEquality(expected *ast.VariableSizedType, found ast.Type) error
type TypeMismatchError ¶ added in v0.26.0
TypeMismatchError is reported during a contract update, when a type of the new program does not match the existing type.
func (*TypeMismatchError) Error ¶ added in v0.26.0
func (e *TypeMismatchError) Error() string
func (*TypeMismatchError) IsUserError ¶ added in v0.26.0
func (*TypeMismatchError) IsUserError()