config

package
v0.0.0-...-a3dd185 Latest Latest
Warning

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

Go to latest
Published: Apr 24, 2023 License: Apache-2.0 Imports: 10 Imported by: 6

Documentation

Index

Constants

View Source
const (
	KeyTypeHex       KeyType = "hex"
	KeyTypeGoogleKMS KeyType = "google-kms"
	KeyTypeBip44     KeyType = "bip44"
	KeyTypeFile      KeyType = "file"

	DefaultEmulatorConfigName         = "default"
	DefaultEmulatorServiceAccountName = "emulator-account"
	DefaultEmulatorPort               = 3569
)
View Source
const DefaultPath = "flow.json"

Variables

View Source
var ErrDoesNotExist = errors.New("missing configuration")

ErrDoesNotExist is error to be returned when config file does not exists.

View Source
var ErrOutdatedFormat = errors.New("you are using old configuration format")

Functions

func DefaultPaths

func DefaultPaths() []string

DefaultPaths determines default paths for configuration.

func Exists

func Exists(path string) bool

Exists checks if file exists on the specified path.

func GlobalPath

func GlobalPath() string

GlobalPath gets global path based on home dir.

func IsDefaultPath

func IsDefaultPath(paths []string) bool

func ProcessorRun

func ProcessorRun(raw []byte) ([]byte, map[string]string)

ProcessorRun all pre-processors.

func StringToAddress

func StringToAddress(value string) (flow.Address, error)

StringToAddress converts string to valid Flow address.

func StringToHexKey

func StringToHexKey(key string, sigAlgo string) (crypto.PrivateKey, error)

StringToHexKey converts string private key and signature algorithm to private key.

func StringToKeyIndex

func StringToKeyIndex(value string) (int, error)

StringToKeyIndex converts string key index to valid key index integer.

Types

type Account

type Account struct {
	Name    string
	Address flow.Address
	Key     AccountKey

	// Location is the configuration file containing this account.
	//
	// This field is only set if the external "location"
	// syntax is used. Otherwise this field is empty.
	//
	// Ref: https://docs.onflow.org/flow-cli/security/#private-account-configuration-file
	Location         string
	UseAdvanceFormat bool
}

Account defines the configuration for a Flow account.

func StringToAccount

func StringToAccount(
	name string,
	address string,
	index string,
	sigAlgo string,
	hashAlgo string,
	key string,
) (*Account, error)

StringToAccount converts string values to account.

type AccountKey

type AccountKey struct {
	Type           KeyType
	Index          int
	SigAlgo        crypto.SignatureAlgorithm
	HashAlgo       crypto.HashAlgorithm
	ResourceID     string
	Mnemonic       string
	DerivationPath string
	PrivateKey     crypto.PrivateKey
	Location       string
	Env            string
}

AccountKey represents account key and all their possible configuration formats.

type Accounts

type Accounts []Account

func (*Accounts) AddOrUpdate

func (a *Accounts) AddOrUpdate(name string, account Account)

AddOrUpdate add new or update if already present.

func (*Accounts) ByName

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

ByName get account by name.

func (*Accounts) Remove

func (a *Accounts) Remove(name string)

Remove remove account by name.

type Alias

type Alias struct {
	Network string
	Address flow.Address
}

Alias defines an existing pre-deployed contract address for specific network.

type Aliases

type Aliases []Alias

func (*Aliases) Add

func (a *Aliases) Add(network string, address flow.Address)

func (*Aliases) ByNetwork

func (a *Aliases) ByNetwork(network string) *Alias

type Config

type Config struct {
	Emulators   Emulators
	Contracts   Contracts
	Networks    Networks
	Accounts    Accounts
	Deployments Deployments
}

Config contains all the configuration for CLI and implements getters and setters for properties. Config is agnostic to format from which it is built and it doesn't provide persistence functionality.

Emulators contains all the emulator config Contracts contains all contracts definitions and their sources Networks defines all the Flow networks addresses Accounts defines Flow accounts and their addresses, private key and more properties Deployments describes which contracts should be deployed to which accounts

func Default

func Default() *Config

Default returns the default configuration.

func Empty

func Empty() *Config

Empty returns an empty configuration.

func (*Config) Validate

func (c *Config) Validate() error

Validate the configuration values.

type Contract

type Contract struct {
	Name     string
	Location string
	Aliases  Aliases
}

Contract defines the configuration for a Cadence contract.

func StringToContract

func StringToContract(
	name string,
	source string,
	emulatorAlias string,
	testnetAlias string,
	mainnetAlias string,
) Contract

StringToContract converts strings to contracts.

func (*Contract) IsAliased

func (c *Contract) IsAliased() bool

IsAliased checks if contract has an alias.

type ContractDeployment

type ContractDeployment struct {
	Name string
	Args []cadence.Value
}

ContractDeployment defines the deployment of the contract with possible args.

type Contracts

type Contracts []Contract

func (*Contracts) AddOrUpdate

func (c *Contracts) AddOrUpdate(contract Contract)

AddOrUpdate add new or update if already present.

func (*Contracts) ByName

func (c *Contracts) ByName(name string) *Contract

ByName get contract by name.

func (*Contracts) Remove

func (c *Contracts) Remove(name string) error

Remove contract by its name.

type Deployment

type Deployment struct {
	Network   string               // network name to deploy to
	Account   string               // account name to which to deploy to
	Contracts []ContractDeployment // contracts to deploy
}

Deployment defines the configuration for a contract deployment.

func StringToDeployment

func StringToDeployment(network string, account string, contracts []string) Deployment

StringToDeployment converts string to deployment.

type Deployments

type Deployments []Deployment

func (*Deployments) AddContract

func (d *Deployments) AddContract(account string, network string, contract ContractDeployment)

AddContract to deployment list on the account name and network name.

Deployment needs to be previously created by calling AddOrUpdate otherwise the contract is not added.

func (*Deployments) AddOrUpdate

func (d *Deployments) AddOrUpdate(deployment Deployment)

AddOrUpdate add new or update if already present.

func (*Deployments) ByAccountAndNetwork

func (d *Deployments) ByAccountAndNetwork(account string, network string) Deployments

ByAccountAndNetwork get deploy by account and network.

func (*Deployments) ByNetwork

func (d *Deployments) ByNetwork(network string) Deployments

ByNetwork get all deployments by network.

func (*Deployments) Remove

func (d *Deployments) Remove(account string, network string) error

Remove removes deployment by account and network.

func (*Deployments) RemoveContract

func (d *Deployments) RemoveContract(account string, network string, contractName string)

RemoveContract removes a specific contract by name from an existing deployment identified by account name and network name.

type Emulator

type Emulator struct {
	Name           string
	Port           int
	ServiceAccount string
}

Emulator defines the configuration for a Flow Emulator instance.

func DefaultEmulator

func DefaultEmulator() Emulator

DefaultEmulator gets default emulator.

type Emulators

type Emulators []Emulator

func DefaultEmulators

func DefaultEmulators() Emulators

DefaultEmulators gets all default emulators.

func (*Emulators) AddOrUpdate

func (e *Emulators) AddOrUpdate(name string, emulator Emulator)

AddOrUpdate add new or update if already present.

func (Emulators) Default

func (e Emulators) Default() *Emulator

Default gets default emulator.

type KeyType

type KeyType string

type Loader

type Loader struct {
	LoadedLocations []string
	// contains filtered or unexported fields
}

Loader contains actions for composing and modifying configuration.

func NewLoader

func NewLoader(readerWriter ReaderWriter) *Loader

NewLoader returns a new loader.

func (*Loader) AccountsFromFile

func (l *Loader) AccountsFromFile() map[string]string

func (*Loader) AddConfigParser

func (l *Loader) AddConfigParser(format Parser)

AddConfigParser adds a new configuration parser.

func (*Loader) Load

func (l *Loader) Load(paths []string) (*Config, error)

Load loads configuration from one or more file paths.

If more than one path is specified, their contents are merged together into on configuration object.

func (*Loader) Save

func (l *Loader) Save(conf *Config, path string) error

Save saves a configuration to a path with correct serializer.

func (*Loader) SetAccountFromFile

func (l *Loader) SetAccountFromFile(name string, location string)

type Network

type Network struct {
	Name string
	Host string
	Key  string
}

Network defines the configuration for a Flow network.

func DefaultEmulatorNetwork

func DefaultEmulatorNetwork() Network

DefaultEmulatorNetwork get default emulator network.

func DefaultMainnetNetwork

func DefaultMainnetNetwork() Network

DefaultMainnetNetwork get default mainnet network.

func DefaultSandboxNetwork

func DefaultSandboxNetwork() Network

func DefaultTestnetNetwork

func DefaultTestnetNetwork() Network

DefaultTestnetNetwork get default testnet network.

func StringToNetwork

func StringToNetwork(name, host, networkKey string) Network

StringToNetwork converts string to network.

type Networks

type Networks []Network

func DefaultNetworks

func DefaultNetworks() Networks

DefaultNetworks gets all default networks.

func (*Networks) AddOrUpdate

func (n *Networks) AddOrUpdate(name string, network Network)

AddOrUpdate add new network or update if already present.

func (*Networks) ByName

func (n *Networks) ByName(name string) (*Network, error)

ByName get network by name.

func (*Networks) Remove

func (n *Networks) Remove(name string) error

Remove network by the name.

type Parser

type Parser interface {
	Serialize(*Config) ([]byte, error)
	Deserialize([]byte) (*Config, error)
	SupportsFormat(string) bool
}

Parser is interface for any configuration format parser to implement.

type Parsers

type Parsers []Parser

Parsers is a list of all configuration parsers.

func (*Parsers) FindForFormat

func (c *Parsers) FindForFormat(extension string) Parser

FindForFormat finds a parser that can parse a specific format based on extension.

type ReaderWriter

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

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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