state

package
v0.20.4-bifurcation Latest Latest
Warning

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

Go to latest
Published: Dec 6, 2024 License: Apache-2.0 Imports: 21 Imported by: 0

Documentation

Index

Constants

View Source
const DefaultKeyName = "my_celes_key"

Variables

View Source
var ErrNoStateAccess = errors.New("node is running without state access. run with --core.ip <CORE NODE IP> to resolve")

Functions

func ConstructModule

func ConstructModule(tp node.Type, cfg *Config, coreCfg *core.Config) fx.Option

ConstructModule provides all components necessary to construct the state service.

func Flags

func Flags() *flag.FlagSet

Flags gives a set of hardcoded State flags.

func ParseFlags

func ParseFlags(cmd *cobra.Command, cfg *Config)

ParseFlags parses State flags from the given cmd and saves them to the passed config.

func WithKeyName added in v0.13.7

func WithKeyName(name AccountName) fx.Option

WithKeyName configures the signer to use the given key.

func WithKeyring added in v0.13.7

func WithKeyring(keyring kr.Keyring) fx.Option

WithKeyring overrides the default keyring constructed by the node.

Types

type API added in v0.5.0

type API struct {
	Internal struct {
		AccountAddress    func(ctx context.Context) (state.Address, error)                      `perm:"read"`
		Balance           func(ctx context.Context) (*state.Balance, error)                     `perm:"read"`
		BalanceForAddress func(ctx context.Context, addr state.Address) (*state.Balance, error) `perm:"read"`
		Transfer          func(
			ctx context.Context,
			to state.AccAddress,
			amount state.Int,
			config *state.TxConfig,
		) (*state.TxResponse, error) `perm:"write"`
		SubmitPayForBlob func(
			ctx context.Context,
			blobs []*libshare.Blob,
			config *state.TxConfig,
		) (*state.TxResponse, error) `perm:"write"`
		CancelUnbondingDelegation func(
			ctx context.Context,
			valAddr state.ValAddress,
			amount, height state.Int,
			config *state.TxConfig,
		) (*state.TxResponse, error) `perm:"write"`
		BeginRedelegate func(
			ctx context.Context,
			srcValAddr,
			dstValAddr state.ValAddress,
			amount state.Int,
			config *state.TxConfig,
		) (*state.TxResponse, error) `perm:"write"`
		Undelegate func(
			ctx context.Context,
			delAddr state.ValAddress,
			amount state.Int,
			config *state.TxConfig,
		) (*state.TxResponse, error) `perm:"write"`
		Delegate func(
			ctx context.Context,
			delAddr state.ValAddress,
			amount state.Int,
			config *state.TxConfig,
		) (*state.TxResponse, error) `perm:"write"`
		QueryDelegation func(
			ctx context.Context,
			valAddr state.ValAddress,
		) (*types.QueryDelegationResponse, error) `perm:"read"`
		QueryUnbonding func(
			ctx context.Context,
			valAddr state.ValAddress,
		) (*types.QueryUnbondingDelegationResponse, error) `perm:"read"`
		QueryRedelegations func(
			ctx context.Context,
			srcValAddr,
			dstValAddr state.ValAddress,
		) (*types.QueryRedelegationsResponse, error) `perm:"read"`
		GrantFee func(
			ctx context.Context,
			grantee state.AccAddress,
			amount state.Int,
			config *state.TxConfig,
		) (*state.TxResponse, error) `perm:"write"`
		RevokeGrantFee func(
			ctx context.Context,
			grantee state.AccAddress,
			config *state.TxConfig,
		) (*state.TxResponse, error) `perm:"write"`
	}
}

API is a wrapper around Module for the RPC.

func (*API) AccountAddress added in v0.5.0

func (api *API) AccountAddress(ctx context.Context) (state.Address, error)

func (*API) Balance added in v0.5.0

func (api *API) Balance(ctx context.Context) (*state.Balance, error)

func (*API) BalanceForAddress added in v0.5.0

func (api *API) BalanceForAddress(ctx context.Context, addr state.Address) (*state.Balance, error)

func (*API) BeginRedelegate added in v0.5.0

func (api *API) BeginRedelegate(
	ctx context.Context,
	srcValAddr, dstValAddr state.ValAddress,
	amount state.Int,
	config *state.TxConfig,
) (*state.TxResponse, error)

func (*API) CancelUnbondingDelegation added in v0.5.0

func (api *API) CancelUnbondingDelegation(
	ctx context.Context,
	valAddr state.ValAddress,
	amount, height state.Int,
	config *state.TxConfig,
) (*state.TxResponse, error)

func (*API) Delegate added in v0.5.0

func (api *API) Delegate(
	ctx context.Context,
	delAddr state.ValAddress,
	amount state.Int,
	config *state.TxConfig,
) (*state.TxResponse, error)

func (*API) GrantFee added in v0.14.0

func (api *API) GrantFee(
	ctx context.Context,
	grantee state.AccAddress,
	amount state.Int,
	config *state.TxConfig,
) (*state.TxResponse, error)

func (*API) QueryDelegation added in v0.5.0

func (api *API) QueryDelegation(ctx context.Context, valAddr state.ValAddress) (*types.QueryDelegationResponse, error)

func (*API) QueryRedelegations added in v0.5.0

func (api *API) QueryRedelegations(
	ctx context.Context,
	srcValAddr, dstValAddr state.ValAddress,
) (*types.QueryRedelegationsResponse, error)

func (*API) QueryUnbonding added in v0.5.0

func (api *API) QueryUnbonding(
	ctx context.Context,
	valAddr state.ValAddress,
) (*types.QueryUnbondingDelegationResponse, error)

func (*API) RevokeGrantFee added in v0.14.0

func (api *API) RevokeGrantFee(
	ctx context.Context,
	grantee state.AccAddress,
	config *state.TxConfig,
) (*state.TxResponse, error)

func (*API) SubmitPayForBlob added in v0.7.0

func (api *API) SubmitPayForBlob(
	ctx context.Context,
	blobs []*libshare.Blob,
	config *state.TxConfig,
) (*state.TxResponse, error)

func (*API) Transfer added in v0.5.0

func (api *API) Transfer(
	ctx context.Context,
	to state.AccAddress,
	amount state.Int,
	config *state.TxConfig,
) (*state.TxResponse, error)

func (*API) Undelegate added in v0.5.0

func (api *API) Undelegate(
	ctx context.Context,
	delAddr state.ValAddress,
	amount state.Int,
	config *state.TxConfig,
) (*state.TxResponse, error)

type AccountName added in v0.13.7

type AccountName string

func Keyring

func Keyring(cfg Config, ks keystore.Keystore) (kr.Keyring, AccountName, error)

Keyring constructs a new keyring. NOTE: we construct keyring before constructing node for easier UX as having keyring-backend set to `file` prompts user for password.

type Config

type Config struct {
	DefaultKeyName     string
	DefaultBackendName string
}

Config contains configuration parameters for constructing the node's keyring signer.

func DefaultConfig

func DefaultConfig() Config

func (*Config) Validate

func (cfg *Config) Validate() error

Validate performs basic validation of the config.

type Module

type Module interface {
	// AccountAddress retrieves the address of the node's account/signer
	AccountAddress(ctx context.Context) (state.Address, error)
	// Balance retrieves the Celestia coin balance for the node's account/signer
	// and verifies it against the corresponding block's AppHash.
	Balance(ctx context.Context) (*state.Balance, error)
	// BalanceForAddress retrieves the Celestia coin balance for the given address and verifies
	// the returned balance against the corresponding block's AppHash.
	//
	// NOTE: the balance returned is the balance reported by the block right before
	// the node's current head (head-1). This is due to the fact that for block N, the block's
	// `AppHash` is the result of applying the previous block's transaction list.
	BalanceForAddress(ctx context.Context, addr state.Address) (*state.Balance, error)
	// Transfer sends the given amount of coins from default wallet of the node to the given account
	// address.
	Transfer(
		ctx context.Context, to state.AccAddress, amount state.Int, config *state.TxConfig,
	) (*state.TxResponse, error)
	// SubmitPayForBlob builds, signs and submits a PayForBlob transaction.
	SubmitPayForBlob(
		ctx context.Context,
		blobs []*libshare.Blob,
		config *state.TxConfig,
	) (*state.TxResponse, error)
	// CancelUnbondingDelegation cancels a user's pending undelegation from a validator.
	CancelUnbondingDelegation(
		ctx context.Context,
		valAddr state.ValAddress,
		amount,
		height state.Int,
		config *state.TxConfig,
	) (*state.TxResponse, error)
	// BeginRedelegate sends a user's delegated tokens to a new validator for redelegation.
	BeginRedelegate(
		ctx context.Context,
		srcValAddr,
		dstValAddr state.ValAddress,
		amount state.Int,
		config *state.TxConfig,
	) (*state.TxResponse, error)
	// Undelegate undelegates a user's delegated tokens, unbonding them from the current validator.
	Undelegate(
		ctx context.Context,
		delAddr state.ValAddress,
		amount state.Int,
		config *state.TxConfig,
	) (*state.TxResponse, error)
	// Delegate sends a user's liquid tokens to a validator for delegation.
	Delegate(
		ctx context.Context,
		delAddr state.ValAddress,
		amount state.Int,
		config *state.TxConfig,
	) (*state.TxResponse, error)

	// QueryDelegation retrieves the delegation information between a delegator and a validator.
	QueryDelegation(ctx context.Context, valAddr state.ValAddress) (*types.QueryDelegationResponse, error)
	// QueryUnbonding retrieves the unbonding status between a delegator and a validator.
	QueryUnbonding(ctx context.Context, valAddr state.ValAddress) (*types.QueryUnbondingDelegationResponse, error)
	// QueryRedelegations retrieves the status of the redelegations between a delegator and a validator.
	QueryRedelegations(
		ctx context.Context,
		srcValAddr,
		dstValAddr state.ValAddress,
	) (*types.QueryRedelegationsResponse, error)

	GrantFee(
		ctx context.Context,
		grantee state.AccAddress,
		amount state.Int,
		config *state.TxConfig,
	) (*state.TxResponse, error)

	RevokeGrantFee(
		ctx context.Context,
		grantee state.AccAddress,
		config *state.TxConfig,
	) (*state.TxResponse, error)
}

Module represents the behaviors necessary for a user to query for state-related information and submit transactions/ messages to the Celestia network.

Directories

Path Synopsis
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.

Jump to

Keyboard shortcuts

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