Documentation
¶
Overview ¶
Overflow is a DSL to help interact with the flow blockchain using go
By bjartek aka Bjarte Karlsen
Example ¶
// in order to start overflow use the Overflow function // it can be customized with lots of OverflowOption Overflow()
Output: 🧑 Created account: emulator-first with address: 01cf0e2f2f715450 with flow: 10.00 🧑 Created account: emulator-second with address: 179b6b1cb6755e31 with flow: 10.00 📜 deploy contracts NonFungibleToken, Debug, MetadataViews
Index ¶
- func CadenceValueToInterface(field cadence.Value) interface{}
- func CadenceValueToJsonString(value cadence.Value) (string, error)
- func ExtractAddresses(field cadence.Value) []string
- func InputToCadence(v interface{}, resolver InputResolver) (cadence.Value, error)
- func ReflectToCadence(value reflect.Value, resolver InputResolver) (cadence.Value, error)
- type Argument
- type BlockResult
- type CadenceArguments
- type EmbedWrapper
- type EventFetcherResult
- type FilterFunction
- type Import
- type InMemoryProgressKeeper
- type InputResolver
- type MetadataViews_Display_Http
- type MetadataViews_Display_IPFS
- type MetadataViews_Edition
- type MetadataViews_Editions
- type MetadataViews_ExternalURL
- type MetadataViews_HTTPFile
- type MetadataViews_IPFSFile
- type MetadataViews_Media_HTTP
- type MetadataViews_Media_IPFS
- type MetadataViews_Rarity
- type MetadataViews_Serial
- type MetadataViews_Trait
- type MetadataViews_Traits
- type MetadtaViews_Licensce
- type OverflowArgument
- type OverflowArgumentList
- type OverflowArguments
- type OverflowBetaClient
- type OverflowBuilder
- type OverflowClient
- type OverflowCodeWithSpec
- type OverflowDeclarationInfo
- type OverflowEmulatorLogMessage
- type OverflowEvent
- type OverflowEventFetcherBuilder
- type OverflowEventFetcherOption
- func WithBatchSize(size uint64) OverflowEventFetcherOption
- func WithEndIndex(blockHeight uint64) OverflowEventFetcherOption
- func WithEvent(eventName string) OverflowEventFetcherOption
- func WithEventFetcherContext(ctx context.Context) OverflowEventFetcherOption
- func WithEventIgnoringField(eventName string, ignoreFields []string) OverflowEventFetcherOption
- func WithFromIndex(blockHeight int64) OverflowEventFetcherOption
- func WithLastBlocks(number uint64) OverflowEventFetcherOption
- func WithReturnProgressWriter() OverflowEventFetcherOption
- func WithStartHeight(blockHeight int64) OverflowEventFetcherOption
- func WithTrackProgress(progressReaderWriter ProgressReaderWriter) OverflowEventFetcherOption
- func WithTrackProgressIn(fileName string) OverflowEventFetcherOption
- func WithUntilBlock(blockHeight uint64) OverflowEventFetcherOption
- func WithUntilCurrentBlock() OverflowEventFetcherOption
- func WithWorkers(workers int) OverflowEventFetcherOption
- type OverflowEventFilter
- type OverflowEventList
- type OverflowEvents
- func (overflowEvents OverflowEvents) FilterEvents(ignoreFields OverflowEventFilter) OverflowEvents
- func (overflowEvents OverflowEvents) FilterFees(fee float64, payer string) OverflowEvents
- func (overflowEvents OverflowEvents) FilterTempWithdrawDeposit() OverflowEvents
- func (me OverflowEvents) GetStakeholders(stakeholders map[string][]string) map[string][]string
- func (overflowEvents OverflowEvents) Print(t *testing.T)
- type OverflowGraffleEvent
- type OverflowInteractionBuilder
- type OverflowInteractionOption
- func WithAddresses(name string, value ...string) OverflowInteractionOption
- func WithArg(name string, value interface{}) OverflowInteractionOption
- func WithArgDateTime(name string, dateString string, timezone string) OverflowInteractionOption
- func WithArgs(args ...interface{}) OverflowInteractionOption
- func WithArgsMap(args map[string]interface{}) OverflowInteractionOption
- func WithAuthorizer(signer ...string) OverflowInteractionOption
- func WithContext(ctx context.Context) OverflowInteractionOption
- func WithEventsFilter(filter OverflowEventFilter) OverflowInteractionOption
- func WithExecuteScriptAtBlockHeight(height uint64) OverflowInteractionOption
- func WithExecuteScriptAtBlockIdHex(blockId string) OverflowInteractionOption
- func WithExecuteScriptAtBlockIdentifier(blockId flow.Identifier) OverflowInteractionOption
- func WithManualAuthorizer(signer ...*accounts.Account) OverflowInteractionOption
- func WithManualPayloadSigner(signer ...*accounts.Account) OverflowInteractionOption
- func WithManualProposer(account *accounts.Account) OverflowInteractionOption
- func WithManualSigner(account *accounts.Account) OverflowInteractionOption
- func WithMaxGas(gas uint64) OverflowInteractionOption
- func WithName(name string) OverflowInteractionOption
- func WithPanicInteractionOnError(stop bool) OverflowInteractionOption
- func WithPayloadSigner(signer ...string) OverflowInteractionOption
- func WithPrintOptions(opts ...OverflowPrinterOption) OverflowInteractionOption
- func WithProposer(proposer string) OverflowInteractionOption
- func WithProposerServiceAccount() OverflowInteractionOption
- func WithSigner(signer string) OverflowInteractionOption
- func WithSignerServiceAccount() OverflowInteractionOption
- func WithStructArgCustomResolver(name string, resolver InputResolver, value interface{}) OverflowInteractionOption
- func WithStructArgsCustomQualifier(name string, resolver InputResolver, values ...interface{}) OverflowInteractionOption
- func WithoutGlobalEventFilter() OverflowInteractionOption
- func WithoutLog() OverflowInteractionOption
- type OverflowMeter
- type OverflowMeteredComputationIntensities
- type OverflowMeteredMemoryIntensities
- type OverflowOption
- func WithArchiveNodeUrl(url string) OverflowOption
- func WithBasePath(path string) OverflowOption
- func WithCoverageReport() OverflowOption
- func WithEmbedFS(fs embed.FS) OverflowOption
- func WithEmptyDepositWithdrawEvents() OverflowOption
- func WithEmulatorOption(opt ...emulator.Option) OverflowOption
- func WithExistingEmulator() OverflowOption
- func WithFeesEvents() OverflowOption
- func WithFlowConfig(files ...string) OverflowOption
- func WithFlowForNewUsers(amount float64) OverflowOption
- func WithGas(gas int) OverflowOption
- func WithGlobalEventFilter(filter OverflowEventFilter) OverflowOption
- func WithGlobalPrintOptions(opts ...OverflowPrinterOption) OverflowOption
- func WithGrpcDialOption(opt ...grpc.DialOption) OverflowOption
- func WithInputResolver(ir InputResolver) OverflowOption
- func WithLogFull() OverflowOption
- func WithLogInfo() OverflowOption
- func WithLogNone() OverflowOption
- func WithNetwork(network string) OverflowOption
- func WithNetworkNost(host string) OverflowOption
- func WithNoPrefixToAccountNames() OverflowOption
- func WithPanicOnError() OverflowOption
- func WithPrintResults(opts ...OverflowPrinterOption) OverflowOption
- func WithReturnErrors() OverflowOption
- func WithScriptFolderName(name string) OverflowOption
- func WithServiceAccountSuffix(suffix string) OverflowOption
- func WithTransactionFolderName(name string) OverflowOption
- func WithoutTransactionFees() OverflowOption
- type OverflowPastEvent
- type OverflowPrinterBuilder
- type OverflowPrinterOption
- func WithArguments() OverflowPrinterOption
- func WithEmulatorLog() OverflowPrinterOption
- func WithEventFilter(filter OverflowEventFilter) OverflowPrinterOption
- func WithFullMeter() OverflowPrinterOption
- func WithMeter() OverflowPrinterOption
- func WithTransactionUrl() OverflowPrinterOption
- func WithoutEvents() OverflowPrinterOption
- func WithoutId() OverflowPrinterOption
- func WithoutMeter(value int) OverflowPrinterOption
- type OverflowResult
- func (o OverflowResult) AssertComputationLessThenOrEqual(t *testing.T, computation int) OverflowResult
- func (o OverflowResult) AssertComputationUsed(t *testing.T, computation int) OverflowResult
- func (o OverflowResult) AssertDebugLog(t *testing.T, message ...string) OverflowResult
- func (o OverflowResult) AssertEmitEventName(t *testing.T, event ...string) OverflowResult
- func (o OverflowResult) AssertEmulatorLog(t *testing.T, message string) OverflowResult
- func (o OverflowResult) AssertEvent(t *testing.T, name string, fields map[string]interface{}) OverflowResult
- func (o OverflowResult) AssertEventCount(t *testing.T, number int) OverflowResult
- func (o OverflowResult) AssertFailure(t *testing.T, msg string) OverflowResult
- func (o OverflowResult) AssertNoEvents(t *testing.T) OverflowResult
- func (o OverflowResult) AssertSuccess(t *testing.T) OverflowResult
- func (o OverflowResult) GetEventsWithName(eventName string) []OverflowEvent
- func (o OverflowResult) GetIdFromEvent(eventName string, fieldName string) (uint64, error)
- func (o OverflowResult) GetIdsFromEvent(eventName string, fieldName string) []uint64
- func (o OverflowResult) MarshalEventsWithName(eventName string, result interface{}) error
- func (o OverflowResult) Print(opbs ...OverflowPrinterOption) OverflowResult
- func (o OverflowResult) PrintArguments(t *testing.T)
- type OverflowScriptFunction
- type OverflowScriptOptsFunction
- type OverflowScriptResult
- func (osr *OverflowScriptResult) AssertLengthWithPointer(t *testing.T, pointer string, length int) *OverflowScriptResult
- func (osr *OverflowScriptResult) AssertWant(t *testing.T, want autogold.Value) *OverflowScriptResult
- func (osr *OverflowScriptResult) AssertWithPointer(t *testing.T, pointer string, value interface{}) *OverflowScriptResult
- func (osr *OverflowScriptResult) AssertWithPointerError(t *testing.T, pointer string, message string) *OverflowScriptResult
- func (osr *OverflowScriptResult) AssertWithPointerWant(t *testing.T, pointer string, want autogold.Value) *OverflowScriptResult
- func (osr *OverflowScriptResult) GetAsInterface() (interface{}, error)
- func (osr *OverflowScriptResult) GetAsJson() (string, error)
- func (osr *OverflowScriptResult) GetWithPointer(pointer string) (interface{}, error)
- func (osr *OverflowScriptResult) MarshalAs(marshalTo interface{}) error
- func (osr *OverflowScriptResult) MarshalPointerAs(pointer string, marshalTo interface{}) error
- func (osr *OverflowScriptResult) Print() *OverflowScriptResult
- func (osr *OverflowScriptResult) PrintArguments(t *testing.T)
- type OverflowSolution
- type OverflowSolutionMerged
- type OverflowSolutionMergedNetwork
- type OverflowSolutionNetwork
- type OverflowState
- func (o *OverflowState) Account(key string) *accounts.Account
- func (o *OverflowState) AccountE(key string) (*accounts.Account, error)
- func (o *OverflowState) AccountPublicKey(name string) (string, error)
- func (o *OverflowState) AddContract(ctx context.Context, name string, code []byte, args []cadence.Value, ...) error
- func (o *OverflowState) Address(key string) string
- func (o *OverflowState) BuildInteraction(filename string, interactionType string, opts ...OverflowInteractionOption) *OverflowInteractionBuilder
- func (o *OverflowState) CreateAccountsE(ctx context.Context) (*OverflowState, error)
- func (o *OverflowState) DownloadAndUploadFile(url string, accountName string) error
- func (o *OverflowState) DownloadImageAndUploadAsDataUrl(url, accountName string) error
- func (o *OverflowState) FetchEvents(opts ...OverflowEventFetcherOption) ([]OverflowPastEvent, error)
- func (o *OverflowState) FetchEventsWithResult(opts ...OverflowEventFetcherOption) EventFetcherResult
- func (o *OverflowState) FillUpStorage(accountName string) *OverflowState
- func (o *OverflowState) FlowAddress(key string) flow.Address
- func (o *OverflowState) GenerateStub(network, filePath string, standalone bool) (string, error)
- func (o *OverflowState) GetAccount(ctx context.Context, key string) (*flow.Account, error)
- func (o *OverflowState) GetBlockAtHeight(ctx context.Context, height uint64) (*flow.Block, error)
- func (o *OverflowState) GetBlockById(ctx context.Context, blockId string) (*flow.Block, error)
- func (o *OverflowState) GetBlockResult(ctx context.Context, height uint64, logg *zap.Logger) (*BlockResult, error)
- func (o *OverflowState) GetCoverageReport() *runtime.CoverageReport
- func (o *OverflowState) GetFreeCapacity(accountName string) int
- func (o *OverflowState) GetLatestBlock(ctx context.Context) (*flow.Block, error)
- func (o *OverflowState) GetNetwork() string
- func (o *OverflowState) GetOverflowTransactionById(ctx context.Context, id flow.Identifier) (*OverflowTransaction, error)
- func (o *OverflowState) GetTransactionById(ctx context.Context, id flow.Identifier) (*flow.Transaction, error)
- func (o *OverflowState) GetTransactions(ctx context.Context, id flow.Identifier, logg *zap.Logger) ([]OverflowTransaction, OverflowEvents, error)
- func (o *OverflowState) InitializeContracts(ctx context.Context) *OverflowState
- func (o *OverflowState) MintFlowTokens(accountName string, amount float64) *OverflowState
- func (o *OverflowState) Parse(codeFileName string, code []byte, network config.Network) (string, error)
- func (o *OverflowState) ParseAll() (*OverflowSolution, error)
- func (o *OverflowState) ParseAllWithConfig(skipContracts bool, txSkip []string, scriptSkip []string) (*OverflowSolution, error)
- func (o *OverflowState) QualifiedIdentifier(contract string, name string) (string, error)
- func (o *OverflowState) QualifiedIdentifierFromSnakeCase(typeName string) (string, error)
- func (o *OverflowState) RollbackToBlockHeight(height uint64) error
- func (o *OverflowState) Script(filename string, opts ...OverflowInteractionOption) *OverflowScriptResult
- func (o *OverflowState) ScriptFN(outerOpts ...OverflowInteractionOption) OverflowScriptFunction
- func (o *OverflowState) ScriptFileNameFN(filename string, outerOpts ...OverflowInteractionOption) OverflowScriptOptsFunction
- func (o *OverflowState) ServiceAccountName() string
- func (o *OverflowState) SignUserMessage(account string, message string) (string, error)
- func (o *OverflowState) StreamTransactions(ctx context.Context, poll time.Duration, height uint64, logger *zap.Logger, ...) error
- func (o *OverflowState) Tx(filename string, opts ...OverflowInteractionOption) *OverflowResult
- func (o *OverflowState) TxFN(outerOpts ...OverflowInteractionOption) OverflowTransactionFunction
- func (o *OverflowState) TxFileNameFN(filename string, outerOpts ...OverflowInteractionOption) OverflowTransactionOptsFunction
- func (o *OverflowState) UploadFile(filename string, accountName string) error
- func (o *OverflowState) UploadImageAsDataUrl(filename string, accountName string) error
- func (o *OverflowState) UploadString(content string, accountName string) error
- type OverflowTest
- type OverflowTransaction
- type OverflowTransactionFunction
- type OverflowTransactionOptsFunction
- type ProgressReaderWriter
- type ProgressWriterFunction
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CadenceValueToInterface ¶
CadenceValueToInterface convert a candence.Value into interface{}
func CadenceValueToJsonString ¶
CadenceValueToJsonString converts a cadence.Value into a json pretty printed string
func ExtractAddresses ¶
func InputToCadence ¶
func InputToCadence(v interface{}, resolver InputResolver) (cadence.Value, error)
func ReflectToCadence ¶
Types ¶
type BlockResult ¶
type BlockResult struct {
Transactions []OverflowTransaction
SystemChunkEvents OverflowEvents
Block flow.Block
Error error
Logger *zap.Logger
// until we have view in flow.Block we add this here
View uint64
StartTime time.Time
}
type CadenceArguments ¶
type EmbedWrapper ¶
func (*EmbedWrapper) MkdirAll ¶ added in v1.16.0
func (ew *EmbedWrapper) MkdirAll(path string, perm os.FileMode) error
type EventFetcherResult ¶
type EventFetcherResult struct {
Events []OverflowPastEvent
Error error
State *OverflowEventFetcherBuilder
From int64
To uint64
ProgressWriteFunction ProgressWriterFunction
}
func (EventFetcherResult) String ¶
func (efr EventFetcherResult) String() string
type FilterFunction ¶
type FilterFunction func(OverflowTransaction) bool
type InMemoryProgressKeeper ¶
type InMemoryProgressKeeper struct {
Progress int64
}
func (*InMemoryProgressKeeper) ReadProgress ¶
func (self *InMemoryProgressKeeper) ReadProgress() (int64, error)
func (*InMemoryProgressKeeper) WriteProgress ¶
func (self *InMemoryProgressKeeper) WriteProgress(progress int64) error
type InputResolver ¶
a resolver to resolve a input type into a name, can be used to resolve struct names for instance
type MetadataViews_Display_Http ¶
type MetadataViews_Display_Http struct {
Name string
Description string
Thumbnail MetadataViews_HTTPFile
}
type MetadataViews_Display_IPFS ¶
type MetadataViews_Display_IPFS struct {
Name string
Description string
Thumbnail MetadataViews_IPFSFile
}
type MetadataViews_Edition ¶
type MetadataViews_Editions ¶
type MetadataViews_Editions struct {
Editions []MetadataViews_Edition `cadence:"infoList"`
}
type MetadataViews_ExternalURL ¶
type MetadataViews_ExternalURL struct {
Url string
}
type MetadataViews_HTTPFile ¶
type MetadataViews_HTTPFile struct {
Url string
}
type MetadataViews_IPFSFile ¶
type MetadataViews_Media_HTTP ¶
type MetadataViews_Media_HTTP struct {
File MetadataViews_HTTPFile
MediaType string `cadence:"mediaType"`
}
type MetadataViews_Media_IPFS ¶
type MetadataViews_Media_IPFS struct {
File MetadataViews_IPFSFile
MediaType string `cadence:"mediaType"`
}
type MetadataViews_Rarity ¶
type MetadataViews_Serial ¶
type MetadataViews_Serial struct {
Number uint64
}
type MetadataViews_Trait ¶
type MetadataViews_Trait struct {
Name string
Value interface{}
DisplayType string `cadence:"displayType"`
Rarity *MetadataViews_Rarity
}
type MetadataViews_Traits ¶
type MetadataViews_Traits struct {
Traits []MetadataViews_Trait
}
type MetadtaViews_Licensce ¶
type MetadtaViews_Licensce struct {
Spdx string `cadence:"spdxIdentifier"`
}
type OverflowArgument ¶
type OverflowArgumentList ¶
type OverflowArgumentList []OverflowArgument
type OverflowArguments ¶
type OverflowArguments map[string]OverflowArgument
type OverflowBetaClient ¶
type OverflowBetaClient interface {
OverflowClient
GetTransactionById(ctx context.Context, id flow.Identifier) (*flow.Transaction, error)
GetOverflowTransactionById(ctx context.Context, id flow.Identifier) (*OverflowTransaction, error)
GetTransactions(ctx context.Context, id flow.Identifier, logg *zap.Logger) ([]OverflowTransaction, OverflowEvents, error)
StreamTransactions(ctx context.Context, poll time.Duration, height uint64, logger *zap.Logger, channel chan<- BlockResult) error
GetBlockResult(ctx context.Context, height uint64, logger *zap.Logger) (*BlockResult, error)
}
beta client with unstable features
type OverflowBuilder ¶
type OverflowBuilder struct {
Ctx context.Context
TransactionFees bool
Network string
InMemory bool
DeployContracts bool
GasLimit int
Path string
NetworkHost string
LogLevel int
InitializeAccounts bool
PrependNetworkName bool
ServiceSuffix string
ConfigFiles []string
TransactionFolderName string
ScriptFolderName string
FilterOutFeeEvents bool
FilterOutEmptyWithDrawDepositEvents bool
GlobalEventFilter OverflowEventFilter
StopOnError bool
PrintOptions *[]OverflowPrinterOption
NewAccountFlowAmount float64
ReaderWriter flowkit.ReaderWriter
InputResolver *InputResolver
ArchiveNodeUrl string
Coverage *runtime.CoverageReport
GrpcDialOptions []grpc.DialOption
EmulatorOptions []emulator.Option
}
OverflowBuilder is the struct used to gather up configuration when building an overflow instance
func (*OverflowBuilder) StartE ¶
func (o *OverflowBuilder) StartE() (*OverflowState, error)
func (*OverflowBuilder) StartResult ¶
func (o *OverflowBuilder) StartResult() *OverflowState
StartE will start Overflow and return State and error if any
type OverflowClient ¶
type OverflowClient interface {
ScriptFN(outerOpts ...OverflowInteractionOption) OverflowScriptFunction
ScriptFileNameFN(filename string, outerOpts ...OverflowInteractionOption) OverflowScriptOptsFunction
Script(filename string, opts ...OverflowInteractionOption) *OverflowScriptResult
QualifiedIdentifierFromSnakeCase(typeName string) (string, error)
QualifiedIdentifier(contract string, name string) (string, error)
AddContract(ctx context.Context, name string, code []byte, args []cadence.Value, filename string, update bool) error
GetNetwork() string
AccountE(key string) (*accounts.Account, error)
Address(key string) string
Account(key string) *accounts.Account
AccountPublicKey(name string) (string, error)
// Note that this returns a flow account and not a flowkit account like the others, is this needed?
GetAccount(ctx context.Context, key string) (*flow.Account, error)
Tx(filename string, opts ...OverflowInteractionOption) *OverflowResult
TxFN(outerOpts ...OverflowInteractionOption) OverflowTransactionFunction
TxFileNameFN(filename string, outerOpts ...OverflowInteractionOption) OverflowTransactionOptsFunction
GetLatestBlock(ctx context.Context) (*flow.Block, error)
GetBlockAtHeight(ctx context.Context, height uint64) (*flow.Block, error)
GetBlockById(ctx context.Context, blockId string) (*flow.Block, error)
FetchEventsWithResult(opts ...OverflowEventFetcherOption) EventFetcherResult
UploadFile(filename string, accountName string) error
DownloadAndUploadFile(url string, accountName string) error
DownloadImageAndUploadAsDataUrl(url, accountName string) error
UploadImageAsDataUrl(filename string, accountName string) error
UploadString(content string, accountName string) error
GetFreeCapacity(accountName string) int
MintFlowTokens(accountName string, amount float64) *OverflowState
FillUpStorage(accountName string) *OverflowState
SignUserMessage(account string, message string) (string, error)
}
Overflow client is an interface with the most used v1 api methods for overflow
type OverflowCodeWithSpec ¶
type OverflowCodeWithSpec struct {
Code string `json:"code"`
Spec *OverflowDeclarationInfo `json:"spec"`
}
representing code with specification if parameters
type OverflowDeclarationInfo ¶
type OverflowDeclarationInfo struct {
ParameterOrder []string `json:"order"`
Parameters map[string]string `json:"parameters"`
}
a type containing information about parameter types and orders
type OverflowEmulatorLogMessage ¶
type OverflowEmulatorLogMessage struct {
ComputationUsed int
Level string
Msg string
Fields map[string]interface{}
}
OverflowEmulatorLogMessage a log message from the logrus implementation used in the flow emulator
func (OverflowEmulatorLogMessage) String ¶
func (me OverflowEmulatorLogMessage) String() string
type OverflowEvent ¶
type OverflowEvent struct {
Id string `json:"id"`
Fields map[string]interface{} `json:"fields"`
TransactionId string `json:"transactionID"`
EventIndex uint32 `json:"eventIndex"`
Name string `json:"name"`
Addresses map[string][]string `json:"addresses"`
}
func (OverflowEvent) ExistIn ¶
func (o OverflowEvent) ExistIn(events []OverflowEvent) bool
Check if an event exist in the other events
func (OverflowEvent) GetStakeholders ¶
func (me OverflowEvent) GetStakeholders() map[string][]string
list of address to a list of roles for that address
func (OverflowEvent) MarshalAs ¶
func (e OverflowEvent) MarshalAs(marshalTo interface{}) error
type OverflowEventFetcherBuilder ¶
type OverflowEventFetcherBuilder struct {
Ctx context.Context
OverflowState *OverflowState
EventsAndIgnoreFields OverflowEventFilter
FromIndex int64
EndAtCurrentHeight bool
EndIndex uint64
ProgressFile string
ProgressRW ProgressReaderWriter
NumberOfWorkers int
EventBatchSize uint64
ReturnWriterFunction bool
}
OverflowEventFetcherBuilder builder to hold info about eventhook context.
type OverflowEventFetcherOption ¶
type OverflowEventFetcherOption func(*OverflowEventFetcherBuilder)
Event fetching
A function to customize the transaction builder
func WithBatchSize ¶
func WithBatchSize(size uint64) OverflowEventFetcherOption
Set the batch size for FetchEvents
func WithEndIndex ¶
func WithEndIndex(blockHeight uint64) OverflowEventFetcherOption
set the end index to use
func WithEvent ¶
func WithEvent(eventName string) OverflowEventFetcherOption
set that we want to fetch an event and all its fields
func WithEventFetcherContext ¶
func WithEventFetcherContext(ctx context.Context) OverflowEventFetcherOption
Set the Workers size for FetchEvents
func WithEventIgnoringField ¶
func WithEventIgnoringField(eventName string, ignoreFields []string) OverflowEventFetcherOption
set that we want the following events and ignoring the fields mentioned
func WithFromIndex ¶
func WithFromIndex(blockHeight int64) OverflowEventFetcherOption
set the from index to use alias to WithStartHeight
func WithLastBlocks ¶
func WithLastBlocks(number uint64) OverflowEventFetcherOption
set the relative list of blocks to fetch events from
func WithReturnProgressWriter ¶
func WithReturnProgressWriter() OverflowEventFetcherOption
track what block we have read since last run in a file
func WithStartHeight ¶
func WithStartHeight(blockHeight int64) OverflowEventFetcherOption
set the start height to use
func WithTrackProgress ¶
func WithTrackProgress(progressReaderWriter ProgressReaderWriter) OverflowEventFetcherOption
track what block we have read since last run in a file
func WithTrackProgressIn ¶
func WithTrackProgressIn(fileName string) OverflowEventFetcherOption
track what block we have read since last run in a file
func WithUntilBlock ¶
func WithUntilBlock(blockHeight uint64) OverflowEventFetcherOption
fetch events until theg given height alias to WithEndHeight
func WithUntilCurrentBlock ¶
func WithUntilCurrentBlock() OverflowEventFetcherOption
set the end index to the current height
func WithWorkers ¶
func WithWorkers(workers int) OverflowEventFetcherOption
Set the Workers size for FetchEvents
type OverflowEventFilter ¶
Event parsing
a type alias to an OverflowEventFilter to filter out all events with a given suffix and the fields with given suffixes
type OverflowEventList ¶
type OverflowEventList []OverflowEvent
func (OverflowEventList) MarshalAs ¶
func (e OverflowEventList) MarshalAs(marshalTo interface{}) error
type OverflowEvents ¶
type OverflowEvents map[string]OverflowEventList
a type holding all events that are emitted from a Transaction
func (OverflowEvents) FilterEvents ¶
func (overflowEvents OverflowEvents) FilterEvents(ignoreFields OverflowEventFilter) OverflowEvents
Filter out events given the sent in filter
func (OverflowEvents) FilterFees ¶
func (overflowEvents OverflowEvents) FilterFees(fee float64, payer string) OverflowEvents
Filtter out fee events
func (OverflowEvents) FilterTempWithdrawDeposit ¶
func (overflowEvents OverflowEvents) FilterTempWithdrawDeposit() OverflowEvents
Filter out temp withdraw deposit events
func (OverflowEvents) GetStakeholders ¶
func (me OverflowEvents) GetStakeholders(stakeholders map[string][]string) map[string][]string
func (OverflowEvents) Print ¶
func (overflowEvents OverflowEvents) Print(t *testing.T)
type OverflowGraffleEvent ¶
type OverflowGraffleEvent struct {
EventDate time.Time `json:"eventDate"`
FlowEventID string `json:"flowEventId"`
FlowTransactionID string `json:"flowTransactionId"`
ID string `json:"id"`
BlockEventData map[string]interface{} `json:"blockEventData"`
}
func (OverflowGraffleEvent) MarshalAs ¶
func (e OverflowGraffleEvent) MarshalAs(marshalTo interface{}) error
type OverflowInteractionBuilder ¶
type OverflowInteractionBuilder struct {
Ctx context.Context
//the name of the integration, for inline variants
Name string
//force that this interaction will not print log, even if overflow state has specified it
NoLog bool
//The underlying state of overflow used to fetch some global settings
Overflow *OverflowState
//The file name of the interaction
FileName string
//The content of the interaction
Content string
//The list of raw arguments
Arguments []cadence.Value
NamedCadenceArguments CadenceArguments
//The main signer used to sign the transaction
// Payer: the account paying for the transaction fees.
Payer *accounts.Account
//The propser account
// Proposer: the account that specifies a proposal key.
Proposer *accounts.Account
//The payload signers that will sign the payload
//Authorizers: zero or more accounts authorizing the transaction to mutate their state.
PayloadSigners []*accounts.Account
//The gas limit to set for this given interaction
GasLimit uint64
//The basepath on where to look for interactions
BasePath string
//An error object to store errors that arrive as you configure an interaction
Error error
//The code of the tranasction in bytes
TransactionCode []byte
//The named arguments
NamedArgs map[string]interface{}
//Event filters to apply to the interaction
EventFilter OverflowEventFilter
//Wheter to ignore global event filters from OverflowState or not
IgnoreGlobalEventFilters bool
//Options to use when printing results
PrintOptions *[]OverflowPrinterOption
//Query to use for running scripts
ScriptQuery *flowkit.ScriptQuery
//
StopOnError *bool
}
OverflowInteractionBuilder used to create a builder pattern for an interaction
func (OverflowInteractionBuilder) Send ¶
func (oib OverflowInteractionBuilder) Send() *OverflowResult
Send a interaction builder as a Transaction returning an overflow result
type OverflowInteractionOption ¶
type OverflowInteractionOption func(*OverflowInteractionBuilder)
A function to customize the transaction builder
func WithAddresses ¶
func WithAddresses(name string, value ...string) OverflowInteractionOption
Send in an array of addresses as an argument
func WithArg ¶
func WithArg(name string, value interface{}) OverflowInteractionOption
Send an argument into a transaction
The value is treated in the given way depending on type - cadence.Value is sent as straight argument - string argument are resolved into cadence.Value using flowkit - ofther values are converted to string with %v and resolved into cadence.Value using flowkit - if the type of the parameter is Address and the string you send in is a valid account in flow.json it will resolve
func WithArgDateTime ¶
func WithArgDateTime(name string, dateString string, timezone string) OverflowInteractionOption
sending in a timestamp as an arg is quite complicated, use this method with the name of the arg, the datestring and the given timezone to parse it at
func WithArgs ¶
func WithArgs(args ...interface{}) OverflowInteractionOption
set a list of args as key, value in an interaction, see Arg for options you can pass in
func WithArgsMap ¶
func WithArgsMap(args map[string]interface{}) OverflowInteractionOption
set arguments to the interaction from a map. See Arg for options on what you can pass in
func WithAuthorizer ¶ added in v1.14.0
func WithAuthorizer(signer ...string) OverflowInteractionOption
func WithContext ¶
func WithContext(ctx context.Context) OverflowInteractionOption
func WithEventsFilter ¶
func WithEventsFilter(filter OverflowEventFilter) OverflowInteractionOption
set a filter for events
func WithExecuteScriptAtBlockHeight ¶
func WithExecuteScriptAtBlockHeight(height uint64) OverflowInteractionOption
set what block height to execute a script at! NB! if very old will not work on normal AN
func WithExecuteScriptAtBlockIdHex ¶
func WithExecuteScriptAtBlockIdHex(blockId string) OverflowInteractionOption
set what block height to execute a script at! NB! if very old will not work on normal AN
func WithExecuteScriptAtBlockIdentifier ¶
func WithExecuteScriptAtBlockIdentifier(blockId flow.Identifier) OverflowInteractionOption
set what block height to execute a script at! NB! if very old will not work on normal AN
func WithManualAuthorizer ¶ added in v1.14.0
func WithManualAuthorizer(signer ...*accounts.Account) OverflowInteractionOption
alias for adding manual payload signers
func WithManualPayloadSigner ¶ added in v1.14.0
func WithManualPayloadSigner(signer ...*accounts.Account) OverflowInteractionOption
set an aditional authorizer that will sign the payload
func WithManualProposer ¶ added in v1.14.0
func WithManualProposer(account *accounts.Account) OverflowInteractionOption
set payer, proposer authorizer as the signer
func WithManualSigner ¶ added in v1.14.0
func WithManualSigner(account *accounts.Account) OverflowInteractionOption
set payer, proposer authorizer as the signer
func WithName ¶
func WithName(name string) OverflowInteractionOption
set the name of this interaction, for inline interactions this will be the entire name for file interactions they will be combined
func WithPanicInteractionOnError ¶
func WithPanicInteractionOnError(stop bool) OverflowInteractionOption
func WithPayloadSigner ¶
func WithPayloadSigner(signer ...string) OverflowInteractionOption
set an aditional authorizer that will sign the payload
func WithPrintOptions ¶
func WithPrintOptions(opts ...OverflowPrinterOption) OverflowInteractionOption
print interactions using the following options
func WithProposerServiceAccount ¶
func WithProposerServiceAccount() OverflowInteractionOption
set the propser to be the service account
func WithSigner ¶
func WithSigner(signer string) OverflowInteractionOption
set payer, proposer authorizer as the signer
func WithSignerServiceAccount ¶
func WithSignerServiceAccount() OverflowInteractionOption
set service account as payer, proposer, authorizer
func WithStructArgCustomResolver ¶
func WithStructArgCustomResolver(name string, resolver InputResolver, value interface{}) OverflowInteractionOption
use the `cadence` struct tag to name a field or it will be given the lowercase name of the field
func WithStructArgsCustomQualifier ¶
func WithStructArgsCustomQualifier(name string, resolver InputResolver, values ...interface{}) OverflowInteractionOption
use the `cadence` struct tag to name a field or it will be given the lowercase name of the field
func WithoutGlobalEventFilter ¶
func WithoutGlobalEventFilter() OverflowInteractionOption
ignore global events filters defined on OverflowState
func WithoutLog ¶
func WithoutLog() OverflowInteractionOption
force no printing for this interaction
type OverflowMeter ¶
type OverflowMeter struct {
LedgerInteractionUsed int `json:"ledgerInteractionUsed"`
ComputationUsed int `json:"computationUsed"`
MemoryUsed int `json:"memoryUsed"`
ComputationIntensities OverflowMeteredComputationIntensities `json:"computationIntensities"`
MemoryIntensities OverflowMeteredMemoryIntensities `json:"memoryIntensities"`
}
a type representing a meter that contains information about the inner workings of an interaction, only available on local emulator
func (OverflowMeter) FunctionInvocations ¶
func (m OverflowMeter) FunctionInvocations() int
get the number of functions invocations
func (OverflowMeter) Statements ¶
func (m OverflowMeter) Statements() int
get the number of statements
type OverflowMeteredComputationIntensities ¶
type OverflowMeteredComputationIntensities map[common.ComputationKind]uint
type collecting computatationIntensities
type OverflowMeteredMemoryIntensities ¶
type OverflowMeteredMemoryIntensities map[common.MemoryKind]uint
type collecting memoryIntensities
type OverflowOption ¶
type OverflowOption func(*OverflowBuilder)
OverflowOption and option function that you can send in to configure Overflow
func WithArchiveNodeUrl ¶
func WithArchiveNodeUrl(url string) OverflowOption
func WithBasePath ¶
func WithBasePath(path string) OverflowOption
WithBasePath will change the standard basepath `.` to another folder
func WithCoverageReport ¶
func WithCoverageReport() OverflowOption
func WithEmbedFS ¶
func WithEmbedFS(fs embed.FS) OverflowOption
func WithEmptyDepositWithdrawEvents ¶
func WithEmptyDepositWithdrawEvents() OverflowOption
filter out empty deposit and withdraw events
func WithEmulatorOption ¶ added in v1.22.0
func WithEmulatorOption(opt ...emulator.Option) OverflowOption
func WithExistingEmulator ¶
func WithExistingEmulator() OverflowOption
WithExistingEmulator will attach to an existing emulator, not deploying contracts and creating accounts
func WithFeesEvents ¶
func WithFeesEvents() OverflowOption
WithTransactionFolderName will overwite the default script subdir for transactions `transactions`
func WithFlowConfig ¶
func WithFlowConfig(files ...string) OverflowOption
WithFlowConfig will set the path to one or more flow.json config files The default is ~/flow.json and ./flow.json.
func WithFlowForNewUsers ¶
func WithFlowForNewUsers(amount float64) OverflowOption
Set the amount of flow for new account, default is 0.001
func WithGas ¶
func WithGas(gas int) OverflowOption
WithGas set the default gas limit, standard is 9999 (max)
func WithGlobalEventFilter ¶
func WithGlobalEventFilter(filter OverflowEventFilter) OverflowOption
set global filters to events
func WithGlobalPrintOptions ¶
func WithGlobalPrintOptions(opts ...OverflowPrinterOption) OverflowOption
automatically print interactions using the following options
func WithGrpcDialOption ¶ added in v1.22.0
func WithGrpcDialOption(opt ...grpc.DialOption) OverflowOption
func WithInputResolver ¶
func WithInputResolver(ir InputResolver) OverflowOption
func WithLogFull ¶
func WithLogFull() OverflowOption
func WithLogInfo ¶
func WithLogInfo() OverflowOption
func WithLogNone ¶
func WithLogNone() OverflowOption
WithNoLog will not log anything from results or flowkit logger
func WithNetwork ¶
func WithNetwork(network string) OverflowOption
WithNetwork will start overflow with the given network. This function will also set up other options that are common for a given Network. embedded: starts in memory, will deploy contracts and create accounts, will panic on errors and show terse output testing: as embedeed, but will not stop on errors and turn off all logs emulator: will connect to running local emulator, deploy contracts and create account testnet|mainnet: will only set network, not deploy contracts or create accounts
func WithNetworkNost ¶ added in v1.24.2
func WithNetworkNost(host string) OverflowOption
Set custom network host if different from the one in flow.json since we cannot env substs there
func WithNoPrefixToAccountNames ¶
func WithNoPrefixToAccountNames() OverflowOption
DoNotPrependNetworkToAccountNames will not prepend the name of the network to account names
func WithPanicOnError ¶
func WithPanicOnError() OverflowOption
If this option is used a panic will be called if an error occurs after an interaction is run
func WithPrintResults ¶
func WithPrintResults(opts ...OverflowPrinterOption) OverflowOption
alias for WithGLobalPrintOptions
func WithReturnErrors ¶
func WithReturnErrors() OverflowOption
If this option is used a panic will be called if an error occurs after an interaction is run
func WithScriptFolderName ¶
func WithScriptFolderName(name string) OverflowOption
WithScriptFolderName will overwite the default script subdir for scripts `scripts`
func WithServiceAccountSuffix ¶
func WithServiceAccountSuffix(suffix string) OverflowOption
WithServiceAccountSuffix will set the suffix of the service account
func WithTransactionFolderName ¶
func WithTransactionFolderName(name string) OverflowOption
WithTransactionFolderName will overwite the default script subdir for transactions `transactions`
type OverflowPastEvent ¶
type OverflowPastEvent struct {
Name string `json:"name"`
BlockHeight uint64 `json:"blockHeight,omitempty"`
BlockID string `json:"blockID,omnitEmpty"`
Time time.Time `json:"time,omitempty"`
Event OverflowEvent `json:"event"`
}
a type to represent an event that we get from FetchEvents
func (OverflowPastEvent) GetFieldAsUInt64 ¶
func (e OverflowPastEvent) GetFieldAsUInt64(field string) uint64
get the given field as an uint64
func (OverflowPastEvent) MarshalAs ¶
func (e OverflowPastEvent) MarshalAs(marshalTo interface{}) error
func (OverflowPastEvent) String ¶
func (e OverflowPastEvent) String() string
String pretty print an event as a String
func (OverflowPastEvent) ToGraffleEvent ¶
func (e OverflowPastEvent) ToGraffleEvent() OverflowGraffleEvent
type OverflowPrinterBuilder ¶
type OverflowPrinterBuilder struct {
//set to false to disable all events
Events bool
//filter out some events
EventFilter OverflowEventFilter
//0 to print no meter, 1 to print some, 2 to pritn all NB verbose
Meter int
//print the emulator log, NB! Verbose
EmulatorLog bool
//print transaction id, useful to disable in tests
Id bool
Arguments bool
TransactionUrl bool
}
a type representing the accuumlated state in the builder
the default setting is to print one line for each transaction with meter and all events
type OverflowPrinterOption ¶
type OverflowPrinterOption func(*OverflowPrinterBuilder)
a type represneting seting an obtion in the printer builder
func WithArguments ¶
func WithArguments() OverflowPrinterOption
func WithEmulatorLog ¶
func WithEmulatorLog() OverflowPrinterOption
print the emulator log. NB! Verbose
func WithEventFilter ¶
func WithEventFilter(filter OverflowEventFilter) OverflowPrinterOption
filter out events that are printed
func WithMeter ¶
func WithMeter() OverflowPrinterOption
print meters as part of the transaction output line
func WithTransactionUrl ¶
func WithTransactionUrl() OverflowPrinterOption
func WithoutId ¶
func WithoutId() OverflowPrinterOption
type OverflowResult ¶
type OverflowResult struct {
StopOnError bool
// The error if any
Err error
// The id of the transaction
Id flow.Identifier
// If running on an emulator
// the meter that contains useful debug information on memory and interactions
Meter *OverflowMeter
// The Raw log from the emulator
RawLog []OverflowEmulatorLogMessage
// The log from the emulator
EmulatorLog []string
// The computation used
ComputationUsed int
// The raw unfiltered events
RawEvents []flow.Event
// Events that are filtered and parsed into a terse format
Events OverflowEvents
// The underlying transaction if we need to look into that
Transaction *flow.Transaction
// The transaction result if we need to look into that
TransactionResult *flow.TransactionResult
// TODO: consider marshalling this as a struct for convenience
// The fee event if any
Fee map[string]interface{}
FeeGas int
// The name of the Transaction
Name string
Arguments CadenceArguments
}
OverflowResult represents the state after running an transaction
func (OverflowResult) AssertComputationLessThenOrEqual ¶
func (o OverflowResult) AssertComputationLessThenOrEqual(t *testing.T, computation int) OverflowResult
Assert that this transaction did not use more then the given amount of computation
func (OverflowResult) AssertComputationUsed ¶
func (o OverflowResult) AssertComputationUsed(t *testing.T, computation int) OverflowResult
Assert that the transaction uses exactly the given computation amount
func (OverflowResult) AssertDebugLog ¶
func (o OverflowResult) AssertDebugLog(t *testing.T, message ...string) OverflowResult
Assert that a Debug.Log event was emitted that contains the given messages
func (OverflowResult) AssertEmitEventName ¶
func (o OverflowResult) AssertEmitEventName(t *testing.T, event ...string) OverflowResult
Assert that events with the given suffixes are present
func (OverflowResult) AssertEmulatorLog ¶
func (o OverflowResult) AssertEmulatorLog(t *testing.T, message string) OverflowResult
Assert that the internal log of the emulator contains the given message
func (OverflowResult) AssertEvent ¶
func (o OverflowResult) AssertEvent(t *testing.T, name string, fields map[string]interface{}) OverflowResult
Assert that the event with the given name suffix and fields are present
func (OverflowResult) AssertEventCount ¶
func (o OverflowResult) AssertEventCount(t *testing.T, number int) OverflowResult
Assert that the transaction result contains the amount of events
func (OverflowResult) AssertFailure ¶
func (o OverflowResult) AssertFailure(t *testing.T, msg string) OverflowResult
Assert that this particular transaction was a failure that has a message that contains the sendt in assertion
func (OverflowResult) AssertNoEvents ¶
func (o OverflowResult) AssertNoEvents(t *testing.T) OverflowResult
Assert that this transaction emitted no events
func (OverflowResult) AssertSuccess ¶
func (o OverflowResult) AssertSuccess(t *testing.T) OverflowResult
Assert that this transaction was an success
func (OverflowResult) GetEventsWithName ¶
func (o OverflowResult) GetEventsWithName(eventName string) []OverflowEvent
Get all events that end with the given suffix
func (OverflowResult) GetIdFromEvent ¶
func (o OverflowResult) GetIdFromEvent(eventName string, fieldName string) (uint64, error)
Get a uint64 field with the given fieldname(most often an id) from an event with a given suffix
func (OverflowResult) GetIdsFromEvent ¶
func (o OverflowResult) GetIdsFromEvent(eventName string, fieldName string) []uint64
func (OverflowResult) MarshalEventsWithName ¶
func (o OverflowResult) MarshalEventsWithName(eventName string, result interface{}) error
Get all events that end with the given suffix
func (OverflowResult) Print ¶
func (o OverflowResult) Print(opbs ...OverflowPrinterOption) OverflowResult
print out an result
func (OverflowResult) PrintArguments ¶
func (o OverflowResult) PrintArguments(t *testing.T)
type OverflowScriptFunction ¶
type OverflowScriptFunction func(filename string, opts ...OverflowInteractionOption) *OverflowScriptResult
a type used for composing scripts
type OverflowScriptOptsFunction ¶
type OverflowScriptOptsFunction func(opts ...OverflowInteractionOption) *OverflowScriptResult
a type used for composing scripts
type OverflowScriptResult ¶
type OverflowScriptResult struct {
Err error
Result cadence.Value
Input *OverflowInteractionBuilder
Log []OverflowEmulatorLogMessage
Output interface{}
}
result after running a script
func (*OverflowScriptResult) AssertLengthWithPointer ¶
func (osr *OverflowScriptResult) AssertLengthWithPointer(t *testing.T, pointer string, length int) *OverflowScriptResult
Assert that the length of a jsonPointer is equal to length
func (*OverflowScriptResult) AssertWant ¶
func (osr *OverflowScriptResult) AssertWant(t *testing.T, want autogold.Value) *OverflowScriptResult
Assert that the result is equal to the given autogold.Want
func (*OverflowScriptResult) AssertWithPointer ¶
func (osr *OverflowScriptResult) AssertWithPointer(t *testing.T, pointer string, value interface{}) *OverflowScriptResult
Assert that a jsonPointer into the result is equal to the given value
func (*OverflowScriptResult) AssertWithPointerError ¶
func (osr *OverflowScriptResult) AssertWithPointerError(t *testing.T, pointer string, message string) *OverflowScriptResult
Assert that a jsonPointer into the result is an error
func (*OverflowScriptResult) AssertWithPointerWant ¶
func (osr *OverflowScriptResult) AssertWithPointerWant(t *testing.T, pointer string, want autogold.Value) *OverflowScriptResult
Assert that a jsonPointer into the result is equal to the given autogold Want
func (*OverflowScriptResult) GetAsInterface ¶
func (osr *OverflowScriptResult) GetAsInterface() (interface{}, error)
get the script as interface{}
func (*OverflowScriptResult) GetAsJson ¶
func (osr *OverflowScriptResult) GetAsJson() (string, error)
get the script as json
func (*OverflowScriptResult) GetWithPointer ¶
func (osr *OverflowScriptResult) GetWithPointer(pointer string) (interface{}, error)
get the given jsonPointer as interface{}
func (*OverflowScriptResult) MarshalAs ¶
func (osr *OverflowScriptResult) MarshalAs(marshalTo interface{}) error
Marshal the script output as the given sent in type
func (*OverflowScriptResult) MarshalPointerAs ¶
func (osr *OverflowScriptResult) MarshalPointerAs(pointer string, marshalTo interface{}) error
Marshal the given jsonPointer as the given type
func (*OverflowScriptResult) Print ¶
func (osr *OverflowScriptResult) Print() *OverflowScriptResult
Print the result
func (*OverflowScriptResult) PrintArguments ¶
func (osr *OverflowScriptResult) PrintArguments(t *testing.T)
type OverflowSolution ¶
type OverflowSolution struct {
//all transactions with name and what paremters they have
Transactions map[string]*OverflowDeclarationInfo `json:"transactions"`
//all scripts with name and parameter they have
Scripts map[string]*OverflowDeclarationInfo `json:"scripts"`
//all networks with associated scripts/tranasctions/contracts preresolved
Networks map[string]*OverflowSolutionNetwork `json:"networks"`
//warnings accumulated during parsing
Warnings []string `json:"warnings"`
}
a type representing the raw solutions that contains all transactions, scripts, networks and warnings of any
func (*OverflowSolution) MergeSpecAndCode ¶
func (s *OverflowSolution) MergeSpecAndCode() *OverflowSolutionMerged
merge the given Solution into a MergedSolution that is suited for exposing as an NPM module
type OverflowSolutionMerged ¶
type OverflowSolutionMerged struct {
Networks map[string]OverflowSolutionMergedNetwork `json:"networks"`
}
a type representing a merged solution that will be serialized as the json file for the npm module
type OverflowSolutionMergedNetwork ¶
type OverflowSolutionMergedNetwork struct {
Scripts map[string]OverflowCodeWithSpec `json:"scripts"`
Transactions map[string]OverflowCodeWithSpec `json:"transactions,omitempty"`
Contracts *map[string]string `json:"contracts,omitempty"`
}
a network in the merged solution
type OverflowSolutionNetwork ¶
type OverflowSolutionNetwork struct {
Scripts map[string]string `json:"scripts"`
Transactions map[string]string `json:"transactions,omitempty"`
Contracts *map[string]string `json:"contracts,omitempty"`
}
a type representing one network in a solution, so mainnet/testnet/emulator
type OverflowState ¶
type OverflowState struct {
State *flowkit.State
// the services from flowkit to performed operations on
Flowkit *flowkit.Flowkit
EmulatorGatway *gateway.EmulatorGateway
ArchiveFlowkit *flowkit.Flowkit
// Configured variables that are taken from the builder since we need them in the execution of overflow later on
Network config.Network
PrependNetworkToAccountNames bool
ServiceAccountSuffix string
Gas int
// flowkit, emulator and emulator debug log uses three different logging technologies so we have them all stored here
// this flowkit Logger can go away when we can remove deprecations!
Logger output.Logger
Log *bytes.Buffer
LogLevel int
// If there was an error starting overflow it is stored here
Error error
// Paths that points to where .cdc files are stored and the posibilty to specify something besides the standard `transactions`/`scripts`subdirectories
BasePath string
TransactionBasePath string
ScriptBasePath string
// Filters to events to remove uneeded noise
FilterOutFeeEvents bool
FilterOutEmptyWithDrawDepositEvents bool
GlobalEventFilter OverflowEventFilter
// Signal to overflow that if there is an error after running a single interaction we should panic
StopOnError bool
// Signal to overflow that if this is not nil we should print events on interaction completion
PrintOptions *[]OverflowPrinterOption
// Mint this amount of flow to new accounts
NewUserFlowAmount float64
InputResolver InputResolver
// the coverage report if any
CoverageReport *runtime.CoverageReport
// the string id of the system chunk transaction
SystemChunkTransactionId string
}
OverflowState contains information about how to Overflow is confitured and the current runnig state
func Overflow ¶
func Overflow(opts ...OverflowOption) *OverflowState
Overflow will start an Overflow instance that panics if there are initialization errors
Will read the following ENV vars as default: OVERFLOW_ENV : set to "mainnet|testnet|emulator|embedded", default embedded OVERFLOW_LOGGING: set from 0-3. 0 is silent, 1 is print terse output, 2 is print output from flowkit, 3 is all lots we can OVERFLOW_CONTINUE: to continue this overflow on an already running emulator., default false OVERFLOW_STOP_ON_ERROR: will the process panic if an erorr is encountered. If set to false the result objects will have the error. default: false
Starting overflow without env vars will make it start in embedded mode deploying all contracts creating accounts ¶
You can then chose to override this setting with the builder methods example
Overflow(WithNetwork("mainnet"))
func OverflowTesting ¶
func OverflowTesting(opts ...OverflowOption) (*OverflowState, error)
func (*OverflowState) Account ¶
func (o *OverflowState) Account(key string) *accounts.Account
return the account of a given account
func (*OverflowState) AccountE ¶
func (o *OverflowState) AccountE(key string) (*accounts.Account, error)
AccountE fetch an account from State Note that if `PrependNetworkToAccountNames` is specified it is prefixed with the network so that you can use the same logical name across networks
func (*OverflowState) AccountPublicKey ¶ added in v1.14.0
func (o *OverflowState) AccountPublicKey(name string) (string, error)
func (*OverflowState) AddContract ¶
func (*OverflowState) Address ¶
func (o *OverflowState) Address(key string) string
return the address of an given account
func (*OverflowState) BuildInteraction ¶
func (o *OverflowState) BuildInteraction(filename string, interactionType string, opts ...OverflowInteractionOption) *OverflowInteractionBuilder
create a flowInteractionBuilder from the sent in options
func (*OverflowState) CreateAccountsE ¶
func (o *OverflowState) CreateAccountsE(ctx context.Context) (*OverflowState, error)
CreateAccountsE ensures that all accounts present in the deployment block for the given network is present
func (*OverflowState) DownloadAndUploadFile ¶
func (o *OverflowState) DownloadAndUploadFile(url string, accountName string) error
DownloadAndUploadFile reads a file, base64 encodes it and chunk upload to /storage/upload
func (*OverflowState) DownloadImageAndUploadAsDataUrl ¶
func (o *OverflowState) DownloadImageAndUploadAsDataUrl(url, accountName string) error
DownloadImageAndUploadAsDataUrl download an image and upload as data url
func (*OverflowState) FetchEvents ¶
func (o *OverflowState) FetchEvents(opts ...OverflowEventFetcherOption) ([]OverflowPastEvent, error)
FetchEvents using the given options
func (*OverflowState) FetchEventsWithResult ¶
func (o *OverflowState) FetchEventsWithResult(opts ...OverflowEventFetcherOption) EventFetcherResult
FetchEvents using the given options
func (*OverflowState) FillUpStorage ¶
func (o *OverflowState) FillUpStorage(accountName string) *OverflowState
A method to fill up a users storage, useful when testing This has some issues with transaction fees
func (*OverflowState) FlowAddress ¶
func (o *OverflowState) FlowAddress(key string) flow.Address
return the flow Address of the given name
func (*OverflowState) GenerateStub ¶
func (o *OverflowState) GenerateStub(network, filePath string, standalone bool) (string, error)
func (*OverflowState) GetAccount ¶
func (o *OverflowState) GetAccount(ctx context.Context, key string) (*flow.Account, error)
GetAccount takes the account name and returns the state of that account on the given network.
func (*OverflowState) GetBlockAtHeight ¶
func (o *OverflowState) GetBlockAtHeight(ctx context.Context, height uint64) (*flow.Block, error)
get block at a given height
func (*OverflowState) GetBlockById ¶
func (o *OverflowState) GetBlockById(ctx context.Context, blockId string) (*flow.Block, error)
blockId should be a hexadecimal string
func (*OverflowState) GetBlockResult ¶
func (o *OverflowState) GetBlockResult(ctx context.Context, height uint64, logg *zap.Logger) (*BlockResult, error)
func (*OverflowState) GetCoverageReport ¶
func (o *OverflowState) GetCoverageReport() *runtime.CoverageReport
func (*OverflowState) GetFreeCapacity ¶
func (o *OverflowState) GetFreeCapacity(accountName string) int
Get the free capacity in an account
func (*OverflowState) GetLatestBlock ¶
func (o *OverflowState) GetLatestBlock(ctx context.Context) (*flow.Block, error)
get the latest block
func (*OverflowState) GetNetwork ¶
func (o *OverflowState) GetNetwork() string
func (*OverflowState) GetOverflowTransactionById ¶
func (o *OverflowState) GetOverflowTransactionById(ctx context.Context, id flow.Identifier) (*OverflowTransaction, error)
func (*OverflowState) GetTransactionById ¶
func (o *OverflowState) GetTransactionById(ctx context.Context, id flow.Identifier) (*flow.Transaction, error)
func (*OverflowState) GetTransactions ¶
func (o *OverflowState) GetTransactions(ctx context.Context, id flow.Identifier, logg *zap.Logger) ([]OverflowTransaction, OverflowEvents, error)
this is get from block, needs to return system chunk information
func (*OverflowState) InitializeContracts ¶
func (o *OverflowState) InitializeContracts(ctx context.Context) *OverflowState
InitializeContracts installs all contracts in the deployment block for the configured network
func (*OverflowState) MintFlowTokens ¶
func (o *OverflowState) MintFlowTokens(accountName string, amount float64) *OverflowState
func (*OverflowState) Parse ¶
func (o *OverflowState) Parse(codeFileName string, code []byte, network config.Network) (string, error)
Parse a given file into a resolved version
func (*OverflowState) ParseAll ¶
func (o *OverflowState) ParseAll() (*OverflowSolution, error)
Parse the given overflow state into a solution/npm-module
func (*OverflowState) ParseAllWithConfig ¶
func (o *OverflowState) ParseAllWithConfig(skipContracts bool, txSkip []string, scriptSkip []string) (*OverflowSolution, error)
Parse the gieven overflow state with filters
func (*OverflowState) QualifiedIdentifier ¶
func (o *OverflowState) QualifiedIdentifier(contract string, name string) (string, error)
account can either be a name from accounts or the raw value
func (*OverflowState) QualifiedIdentifierFromSnakeCase ¶
func (o *OverflowState) QualifiedIdentifierFromSnakeCase(typeName string) (string, error)
Qualified identifier from a snakeCase string Account_Contract_Struct
func (*OverflowState) RollbackToBlockHeight ¶
func (o *OverflowState) RollbackToBlockHeight(height uint64) error
func (*OverflowState) Script ¶
func (o *OverflowState) Script(filename string, opts ...OverflowInteractionOption) *OverflowScriptResult
run a script with the given code/filanem an options
Example ¶
o := Overflow(docOptions)
// the other major interaction you can run on Flow is a script, it uses the script DSL.
// Start it by specifying the script name from `scripts` folder
o.Script("test",
// the test script requires an address as arguments, Overflow is smart enough that it
// sees this and knows that there is an account for the emulator network called
// `emulator-first` so it will insert that address as the argument.
// If you change the network to testnet/mainnet later and name your stakholders
// accordingly it will just work
WithArg("account", "first"),
)
Output: 🧑 Created account: emulator-first with address: 01cf0e2f2f715450 with flow: 10.00 🧑 Created account: emulator-second with address: 179b6b1cb6755e31 with flow: 10.00 📜 deploy contracts NonFungibleToken, Debug, MetadataViews ⭐ Script test run result:"0x01cf0e2f2f715450"
Example (Inline) ¶
o := Overflow(docOptions)
// Script can be run inline
o.Script(`
pub fun main(account: Address): String {
return getAccount(account).address.toString()
}`,
WithArg("account", "first"),
WithName("get_address"),
)
Output: 🧑 Created account: emulator-first with address: 01cf0e2f2f715450 with flow: 10.00 🧑 Created account: emulator-second with address: 179b6b1cb6755e31 with flow: 10.00 📜 deploy contracts NonFungibleToken, Debug, MetadataViews ⭐ Script get_address run result:"0x01cf0e2f2f715450"
func (*OverflowState) ScriptFN ¶
func (o *OverflowState) ScriptFN(outerOpts ...OverflowInteractionOption) OverflowScriptFunction
compose interactionOptions into a new Script function
func (*OverflowState) ScriptFileNameFN ¶
func (o *OverflowState) ScriptFileNameFN(filename string, outerOpts ...OverflowInteractionOption) OverflowScriptOptsFunction
compose fileName and interactionOptions into a new Script function
func (*OverflowState) ServiceAccountName ¶
func (o *OverflowState) ServiceAccountName() string
ServiceAccountName return the name of the current service account Note that if `PrependNetworkToAccountNames` is specified it is prefixed with the network so that you can use the same logical name across networks
func (*OverflowState) SignUserMessage ¶
func (o *OverflowState) SignUserMessage(account string, message string) (string, error)
Sign a user message
func (*OverflowState) StreamTransactions ¶
func (o *OverflowState) StreamTransactions(ctx context.Context, poll time.Duration, height uint64, logger *zap.Logger, channel chan<- BlockResult) error
This code is beta
func (*OverflowState) Tx ¶
func (o *OverflowState) Tx(filename string, opts ...OverflowInteractionOption) *OverflowResult
The main function for running an transasction in overflow
Example ¶
o := Overflow(docOptions)
// start the Tx DSL with the name of the transactions file, by default this
// is in the `transactions` folder in your root dit
o.Tx("arguments",
// Customize the Transaction by sending in more InteractionOptions,
// at minimum you need to set Signer and Args if any
WithSigner("first"),
// Arguments are always passed by name in the DSL builder, order does not matter
WithArg("test", "overflow ftw!"),
)
Output: 🧑 Created account: emulator-first with address: 01cf0e2f2f715450 with flow: 10.00 🧑 Created account: emulator-second with address: 179b6b1cb6755e31 with flow: 10.00 📜 deploy contracts NonFungibleToken, Debug, MetadataViews 👌 Tx:arguments fee:0.00001000 gas:17
Example (Inline) ¶
o := Overflow(docOptions)
// The Tx dsl can also contain an inline transaction
o.Tx(`
import Debug from "../contracts/Debug.cdc"
transaction(message:String) {
prepare(acct: AuthAccount) {
Debug.log(message)
}
}`,
WithSigner("first"),
WithArg("message", "overflow ftw!"),
)
Output: 🧑 Created account: emulator-first with address: 01cf0e2f2f715450 with flow: 10.00 🧑 Created account: emulator-second with address: 179b6b1cb6755e31 with flow: 10.00 📜 deploy contracts NonFungibleToken, Debug, MetadataViews 👌 Tx: fee:0.00001000 gas:25 === Events === A.f8d6e0586b0a20c7.Debug.Log msg -> overflow ftw!
Example (Multisign) ¶
o := Overflow(docOptions)
// The Tx dsl supports multiple signers, note that the mainSigner is the last account
o.Tx(`
import Debug from "../contracts/Debug.cdc"
transaction {
prepare(acct: AuthAccount, acct2: AuthAccount) {
Debug.log("acct:".concat(acct.address.toString()))
Debug.log("acct2:".concat(acct2.address.toString()))
}
}`,
WithSigner("first"),
WithPayloadSigner("second"),
)
Output: 🧑 Created account: emulator-first with address: 01cf0e2f2f715450 with flow: 10.00 🧑 Created account: emulator-second with address: 179b6b1cb6755e31 with flow: 10.00 📜 deploy contracts NonFungibleToken, Debug, MetadataViews 👌 Tx: fee:0.00001000 gas:25 === Events === A.f8d6e0586b0a20c7.Debug.Log msg -> acct:0x179b6b1cb6755e31 A.f8d6e0586b0a20c7.Debug.Log msg -> acct2:0x01cf0e2f2f715450
func (*OverflowState) TxFN ¶
func (o *OverflowState) TxFN(outerOpts ...OverflowInteractionOption) OverflowTransactionFunction
If you store this in a struct and add arguments to it it will not reset between calls
func (*OverflowState) TxFileNameFN ¶
func (o *OverflowState) TxFileNameFN(filename string, outerOpts ...OverflowInteractionOption) OverflowTransactionOptsFunction
func (*OverflowState) UploadFile ¶
func (o *OverflowState) UploadFile(filename string, accountName string) error
UploadFile reads a file, base64 encodes it and chunk upload to /storage/upload
func (*OverflowState) UploadImageAsDataUrl ¶
func (o *OverflowState) UploadImageAsDataUrl(filename string, accountName string) error
UploadImageAsDataUrl will upload a image file from the filesystem into /storage/upload of the given account
func (*OverflowState) UploadString ¶
func (o *OverflowState) UploadString(content string, accountName string) error
UploadString will upload the given string data in 1mb chunkts to /storage/upload of the given account
type OverflowTest ¶
type OverflowTest struct {
O *OverflowState
// contains filtered or unexported fields
}
func SetupTest ¶
func SetupTest(opts []OverflowOption, setup func(o *OverflowState) error) (*OverflowTest, error)
func (*OverflowTest) Reset ¶
func (ot *OverflowTest) Reset() error
func (*OverflowTest) Teardown ¶
func (ot *OverflowTest) Teardown()
type OverflowTransaction ¶
type OverflowTransaction struct {
Id string
TransactionIndex int
BlockId string
Events []OverflowEvent
Error error
Fee float64
Status string
Arguments []Argument
Authorizers []string
Stakeholders map[string][]string
Imports []Import
Payer string
ProposalKey flow.ProposalKey
GasLimit uint64
GasUsed uint64
ExecutionEffort float64
Script []byte
}
func CreateOverflowTransactions ¶
func CreateOverflowTransactions(blockId string, transactionResult flow.TransactionResult, transaction flow.Transaction, txIndex int) (*OverflowTransaction, error)
type OverflowTransactionFunction ¶
type OverflowTransactionFunction func(filename string, opts ...OverflowInteractionOption) *OverflowResult
a type to define a function used to compose Transaction interactions
type OverflowTransactionOptsFunction ¶
type OverflowTransactionOptsFunction func(opts ...OverflowInteractionOption) *OverflowResult
a type to define a function used to compose Transaction interactions
type ProgressReaderWriter ¶
type ProgressWriterFunction ¶
type ProgressWriterFunction func() error