flowkit

package
v0.25.0 Latest Latest
Warning

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

Go to latest
Published: Jun 24, 2021 License: Apache-2.0 Imports: 21 Imported by: 7

README

Flow CLI

Flow CLI package contains all the functionality used in CLI. This package is meant to be used by third party (langauge server etc...).

Config

Config package implements parsing and serializing configuration and persisting state needed for some commands.

Gateway

Gateway package contains functions that interact with the Flow blockchain. This package offers abstraction over communicating with the Flow network and takes care of initializing the network client and handling errors.

Function accept arguments in go-sdk types or lib types and must already be validated. Client is already initialized and only referenced inside here.

Services

Service layer is meant to be used as an api. Service function accepts raw arguments, validate them, use gateways to do network interactions and lib to build resources needed in gateways.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Exists

func Exists(path string) bool

Exists checks if a project configuration exists.

func NewStakingInfoFromValue

func NewStakingInfoFromValue(value cadence.Value) map[string]interface{}

func ParseArguments

func ParseArguments(args []string, argsJSON string) (scriptArgs []cadence.Value, err error)

func ParseArgumentsCommaSplit

func ParseArgumentsCommaSplit(input []string) ([]cadence.Value, error)

func ParseArgumentsJSON

func ParseArgumentsJSON(input string) ([]cadence.Value, error)

Types

type Account

type Account struct {
	// contains filtered or unexported fields
}

Account is a flowkit specific account implementation.

func (*Account) Address

func (a *Account) Address() flow.Address

Address get account address.

func (*Account) Key

func (a *Account) Key() AccountKey

Key get account key.

func (*Account) Name

func (a *Account) Name() string

Name get account name.

func (*Account) SetAddress

func (a *Account) SetAddress(address flow.Address)

SetAddress sets account address.

func (*Account) SetKey

func (a *Account) SetKey(key AccountKey)

SetKey sets account key.

func (*Account) SetName

func (a *Account) SetName(name string)

SetName sets account name.

type AccountKey

type AccountKey interface {
	Type() config.KeyType
	Index() int
	SigAlgo() crypto.SignatureAlgorithm
	HashAlgo() crypto.HashAlgorithm
	Signer(ctx context.Context) (crypto.Signer, error)
	ToConfig() config.AccountKey
	Validate() error
	PrivateKey() (*crypto.PrivateKey, error)
}

AccountKey is a flowkit specific account key implementation allowing us to sign the transactions using different implemented methods.

func NewAccountKey

func NewAccountKey(accountKeyConf config.AccountKey) (AccountKey, error)

type Accounts

type Accounts []Account

Accounts is a collection of account.

func (*Accounts) AddOrUpdate

func (a *Accounts) AddOrUpdate(account *Account)

AddOrUpdate add account if missing or updates if present.

func (Accounts) ByAddress

func (a Accounts) ByAddress(address flow.Address) *Account

ByAddress get an account by address.

func (Accounts) ByName

func (a Accounts) ByName(name string) *Account

ByName get an account by name.

func (*Accounts) Remove

func (a *Accounts) Remove(name string) error

Remove an account.

type Aliases

type Aliases map[string]string

type CadenceArgument

type CadenceArgument struct {
	Value cadence.Value
}

func (CadenceArgument) MarshalJSON

func (v CadenceArgument) MarshalJSON() ([]byte, error)

func (*CadenceArgument) UnmarshalJSON

func (v *CadenceArgument) UnmarshalJSON(b []byte) (err error)

type Contract

type Contract struct {
	Name   string
	Source string
	Target flow.Address
	Args   []cadence.Value
}

Contract is a Cadence contract definition for a project.

type Event

type Event struct {
	Type   string
	Values map[string]string
}

type Events

type Events []Event

func EventsFromTransaction

func EventsFromTransaction(tx *flow.TransactionResult) Events

func (*Events) GetAddress

func (e *Events) GetAddress() *flow.Address

type HexAccountKey

type HexAccountKey struct {
	// contains filtered or unexported fields
}

HexAccountKey implements account key in hex representation.

func NewHexAccountKeyFromPrivateKey

func NewHexAccountKeyFromPrivateKey(
	index int,
	hashAlgo crypto.HashAlgorithm,
	privateKey crypto.PrivateKey,
) *HexAccountKey

func (HexAccountKey) HashAlgo

func (a HexAccountKey) HashAlgo() crypto.HashAlgorithm

func (HexAccountKey) Index

func (a HexAccountKey) Index() int

func (*HexAccountKey) PrivateKey

func (a *HexAccountKey) PrivateKey() (*crypto.PrivateKey, error)

func (*HexAccountKey) PrivateKeyHex

func (a *HexAccountKey) PrivateKeyHex() string

func (HexAccountKey) SigAlgo

func (a HexAccountKey) SigAlgo() crypto.SignatureAlgorithm

func (*HexAccountKey) Signer

func (a *HexAccountKey) Signer(ctx context.Context) (crypto.Signer, error)

func (*HexAccountKey) ToConfig

func (a *HexAccountKey) ToConfig() config.AccountKey

func (HexAccountKey) Type

func (a HexAccountKey) Type() config.KeyType

func (*HexAccountKey) Validate

func (a *HexAccountKey) Validate() error

type KmsAccountKey

type KmsAccountKey struct {
	// contains filtered or unexported fields
}

KmsAccountKey implements Gcloud KMS system for signing.

func (KmsAccountKey) HashAlgo

func (a KmsAccountKey) HashAlgo() crypto.HashAlgorithm

func (KmsAccountKey) Index

func (a KmsAccountKey) Index() int

func (*KmsAccountKey) PrivateKey

func (a *KmsAccountKey) PrivateKey() (*crypto.PrivateKey, error)

func (KmsAccountKey) SigAlgo

func (a KmsAccountKey) SigAlgo() crypto.SignatureAlgorithm

func (*KmsAccountKey) Signer

func (a *KmsAccountKey) Signer(ctx context.Context) (crypto.Signer, error)

func (*KmsAccountKey) ToConfig

func (a *KmsAccountKey) ToConfig() config.AccountKey

ToConfig convert account key to configuration.

func (KmsAccountKey) Type

func (a KmsAccountKey) Type() config.KeyType

func (*KmsAccountKey) Validate

func (a *KmsAccountKey) Validate() error

type ReaderWriter

type ReaderWriter interface {
	ReadFile(source string) ([]byte, error)
	WriteFile(filename string, data []byte, perm os.FileMode) error
}

ReaderWriter is implemented by any value that has ReadFile and WriteFile and it is used to load and save files.

type State

type State struct {
	// contains filtered or unexported fields
}

State manages the state for a Flow project.

func Init

func Init(readerWriter ReaderWriter, sigAlgo crypto.SignatureAlgorithm, hashAlgo crypto.HashAlgorithm) (*State, error)

Init initializes a new Flow project.

func Load

func Load(configFilePaths []string, readerWriter ReaderWriter) (*State, error)

Load loads a project configuration and returns the resulting project.

func (*State) AccountNamesForNetwork

func (p *State) AccountNamesForNetwork(network string) []string

AccountNamesForNetwork returns all configured account names for a network.

func (*State) Accounts

func (p *State) Accounts() *Accounts

Accounts get accounts.

func (*State) AliasesForNetwork

func (p *State) AliasesForNetwork(network string) Aliases

AliasesForNetwork returns all deployment aliases for a network.

func (*State) Config

func (p *State) Config() *config.Config

Config get underlying configuration for advanced usage.

func (*State) ContractConflictExists

func (p *State) ContractConflictExists(network string) bool

ContractConflictExists returns true if the same contract is configured to deploy to more than one account in the same network.

The CLI currently does not allow the same contract to be deployed to multiple accounts in the same network.

func (*State) Contracts

func (p *State) Contracts() *config.Contracts

Contracts get contracts configuration.

func (*State) DeploymentContractsByNetwork

func (p *State) DeploymentContractsByNetwork(network string) ([]Contract, error)

DeploymentContractsByNetwork returns all contracts for a network.

func (*State) Deployments

func (p *State) Deployments() *config.Deployments

Deployments get deployments configuration.

func (*State) EmulatorServiceAccount

func (p *State) EmulatorServiceAccount() (*Account, error)

EmulatorServiceAccount returns the service account for the default emulator profile.

func (*State) Networks

func (p *State) Networks() *config.Networks

Networks get network configuration.

func (*State) ReadFile

func (p *State) ReadFile(source string) ([]byte, error)

ReadFile exposes an injected file loader.

func (*State) ReaderWriter

func (p *State) ReaderWriter() ReaderWriter

ReaderWriter retrieve current file reader writer.

func (*State) Save

func (p *State) Save(path string) error

Save saves the project configuration to the given path.

func (*State) SaveDefault

func (p *State) SaveDefault() error

SaveDefault saves configuration to default path.

func (*State) SetEmulatorKey

func (p *State) SetEmulatorKey(privateKey crypto.PrivateKey)

SetEmulatorKey sets the default emulator service account private key.

type Transaction

type Transaction struct {
	// contains filtered or unexported fields
}

Transaction builder of flow transactions.

func NewAddAccountContractTransaction

func NewAddAccountContractTransaction(
	signer *Account,
	name string,
	source string,
	args []cadence.Value,
) (*Transaction, error)

NewAddAccountContractTransaction add new contract to the account.

func NewCreateAccountTransaction

func NewCreateAccountTransaction(
	signer *Account,
	keys []*flow.AccountKey,
	contracts []templates.Contract,
) (*Transaction, error)

NewCreateAccountTransaction creates new transaction for account.

func NewRemoveAccountContractTransaction

func NewRemoveAccountContractTransaction(signer *Account, name string) (*Transaction, error)

NewRemoveAccountContractTransaction creates new transaction to remove contract.

func NewTransaction

func NewTransaction() *Transaction

NewTransaction create new instance of transaction.

func NewTransactionFromPayload

func NewTransactionFromPayload(payload []byte) (*Transaction, error)

NewTransactionFromPayload build transaction from payload.

func NewUpdateAccountContractTransaction

func NewUpdateAccountContractTransaction(signer *Account, name string, source string) (*Transaction, error)

NewUpdateAccountContractTransaction update account contract.

func (*Transaction) AddArgument

func (t *Transaction) AddArgument(arg cadence.Value) error

AddArgument add cadence typed argument.

func (*Transaction) AddArguments

func (t *Transaction) AddArguments(args []cadence.Value) error

AddArguments add array of cadence arguments.

func (*Transaction) AddAuthorizers

func (t *Transaction) AddAuthorizers(authorizers []flow.Address) *Transaction

AddAuthorizers add group of authorizers.

func (*Transaction) FlowTransaction

func (t *Transaction) FlowTransaction() *flow.Transaction

FlowTransaction get flow transaction.

func (*Transaction) Proposer

func (t *Transaction) Proposer() *flow.Account

Proposer get proposer.

func (*Transaction) SetBlockReference

func (t *Transaction) SetBlockReference(block *flow.Block) *Transaction

SetBlockReference sets block reference for transaction.

func (*Transaction) SetGasLimit

func (t *Transaction) SetGasLimit(gasLimit uint64) *Transaction

SetGasLimit sets the gas limit for transaction.

func (*Transaction) SetPayer

func (t *Transaction) SetPayer(address flow.Address) *Transaction

SetPayer sets the payer for transaction.

func (*Transaction) SetProposer

func (t *Transaction) SetProposer(proposer *flow.Account, keyIndex int) *Transaction

SetProposer sets the proposer for transaction.

func (*Transaction) SetScriptWithArgs

func (t *Transaction) SetScriptWithArgs(script []byte, args []cadence.Value) error

func (*Transaction) SetSigner

func (t *Transaction) SetSigner(account *Account) error

SetSigner sets the signer for transaction.

func (*Transaction) Sign

func (t *Transaction) Sign() (*Transaction, error)

Sign signs transaction using signer account.

func (*Transaction) Signer

func (t *Transaction) Signer() *Account

Signer get signer.

Directories

Path Synopsis
Package cli defines constants, configurations, and utilities that are used across the Flow CLI.
Package cli defines constants, configurations, and utilities that are used across the Flow CLI.

Jump to

Keyboard shortcuts

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