state

package
v0.14.0 Latest Latest
Warning

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

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

Documentation

Index

Constants

View Source
const DefaultAccountName = "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) error

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,
			fee state.Int,
			gasLimit uint64,
		) (*state.TxResponse, error) `perm:"write"`
		SubmitTx         func(ctx context.Context, tx state.Tx) (*state.TxResponse, error) `perm:"read"`
		SubmitPayForBlob func(
			ctx context.Context,
			fee state.Int,
			gasLim uint64,
			blobs []*blob.Blob,
		) (*state.TxResponse, error) `perm:"write"`
		CancelUnbondingDelegation func(
			ctx context.Context,
			valAddr state.ValAddress,
			amount,
			height,
			fee state.Int,
			gasLim uint64,
		) (*state.TxResponse, error) `perm:"write"`
		BeginRedelegate func(
			ctx context.Context,
			srcValAddr,
			dstValAddr state.ValAddress,
			amount,
			fee state.Int,
			gasLim uint64,
		) (*state.TxResponse, error) `perm:"write"`
		Undelegate func(
			ctx context.Context,
			delAddr state.ValAddress,
			amount,
			fee state.Int,
			gasLim uint64,
		) (*state.TxResponse, error) `perm:"write"`
		Delegate func(
			ctx context.Context,
			delAddr state.ValAddress,
			amount,
			fee state.Int,
			gasLim uint64,
		) (*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,
			fee state.Int,
			gasLim uint64,
		) (*state.TxResponse, error) `perm:"write"`

		RevokeGrantFee func(
			ctx context.Context,
			grantee state.AccAddress,
			fee state.Int,
			gasLim uint64,
		) (*state.TxResponse, error) `perm:"write"`
	}
}

API is a wrapper around Module for the RPC. TODO(@distractedm1nd): These structs need to be autogenerated.

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,
	fee state.Int,
	gasLim uint64,
) (*state.TxResponse, error)

func (*API) CancelUnbondingDelegation added in v0.5.0

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

func (*API) Delegate added in v0.5.0

func (api *API) Delegate(
	ctx context.Context,
	delAddr state.ValAddress,
	amount,
	fee state.Int,
	gasLim uint64,
) (*state.TxResponse, error)

func (*API) GrantFee added in v0.14.0

func (api *API) GrantFee(
	ctx context.Context,
	grantee state.AccAddress,
	amount,
	fee state.Int,
	gasLim uint64,
) (*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,
	fee state.Int,
	gasLim uint64,
) (*state.TxResponse, error)

func (*API) SubmitPayForBlob added in v0.7.0

func (api *API) SubmitPayForBlob(
	ctx context.Context,
	fee state.Int,
	gasLim uint64,
	blobs []*blob.Blob,
) (*state.TxResponse, error)

func (*API) SubmitTx added in v0.5.0

func (api *API) SubmitTx(ctx context.Context, tx state.Tx) (*state.TxResponse, error)

func (*API) Transfer added in v0.5.0

func (api *API) Transfer(
	ctx context.Context,
	to state.AccAddress,
	amount,
	fee state.Int,
	gasLimit uint64,
) (*state.TxResponse, error)

func (*API) Undelegate added in v0.5.0

func (api *API) Undelegate(
	ctx context.Context,
	delAddr state.ValAddress,
	amount,
	fee state.Int,
	gasLim uint64,
) (*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 {
	KeyringAccName string
	KeyringBackend string
	GranterAddress state.AccAddress
}

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, fee state.Int, gasLimit uint64,
	) (*state.TxResponse, error)
	// SubmitTx submits the given transaction/message to the
	// Celestia network and blocks until the tx is included in
	// a block.
	SubmitTx(ctx context.Context, tx state.Tx) (*state.TxResponse, error)
	// SubmitPayForBlob builds, signs and submits a PayForBlob transaction.
	SubmitPayForBlob(
		ctx context.Context,
		fee state.Int,
		gasLim uint64,
		blobs []*blob.Blob,
	) (*state.TxResponse, error)

	// CancelUnbondingDelegation cancels a user's pending undelegation from a validator.
	CancelUnbondingDelegation(
		ctx context.Context,
		valAddr state.ValAddress,
		amount,
		height,
		fee state.Int,
		gasLim uint64,
	) (*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,
		fee state.Int,
		gasLim uint64,
	) (*state.TxResponse, error)
	// Undelegate undelegates a user's delegated tokens, unbonding them from the current validator.
	Undelegate(
		ctx context.Context,
		delAddr state.ValAddress,
		amount, fee state.Int,
		gasLim uint64,
	) (*state.TxResponse, error)
	// Delegate sends a user's liquid tokens to a validator for delegation.
	Delegate(
		ctx context.Context,
		delAddr state.ValAddress,
		amount, fee state.Int,
		gasLim uint64,
	) (*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,
		fee state.Int,
		gasLim uint64,
	) (*state.TxResponse, error)

	RevokeGrantFee(
		ctx context.Context,
		grantee state.AccAddress,
		fee state.Int,
		gasLim uint64,
	) (*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