auth

package
v0.0.0 Latest Latest
Warning

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

Go to latest
Published: Jun 24, 2024 License: Apache-2.0, UNKNOWN not legal advice Imports: 0 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// module name
	ModuleName = "auth"

	// StoreKey is string representation of the store key for auth
	StoreKey = "acc"

	// FeeCollectorName the root string for the fee collector account address
	FeeCollectorName = "fee_collector"

	// QuerierRoute is the querier route for acc
	QuerierRoute = StoreKey

	// AddressStoreKeyPrefix prefix for account-by-address store
	AddressStoreKeyPrefix = "/a/"

	// param key for global account number
	GlobalAccountNumberKey = "globalAccountNumber"
)
View Source
const (
	DefaultMaxMemoBytes           int64 = 65536
	DefaultTxSigLimit             int64 = 7
	DefaultTxSizeCostPerByte      int64 = 10
	DefaultSigVerifyCostED25519   int64 = 590
	DefaultSigVerifyCostSecp256k1 int64 = 1000
)

Default parameter values

View Source
const QueryAccount = "accounts"

query account path

Variables

This section is empty.

Functions

func AddressStoreKey

func AddressStoreKey(addr crypto.Address) []byte

AddressStoreKey turn an address to key used to get it from the account store

func DeductFees

func DeductFees(bank BankKeeperI, ctx sdk.Context, acc std.Account, fees std.Coins) sdk.Result

DeductFees deducts fees from the given account.

NOTE: We could use the CoinKeeper (in addition to the AccountKeeper, because the CoinKeeper doesn't give us accounts), but it seems easier to do this.

func DefaultSigVerificationGasConsumer

func DefaultSigVerificationGasConsumer(
	meter store.GasMeter, sig []byte, pubkey crypto.PubKey, params Params,
) sdk.Result

DefaultSigVerificationGasConsumer is the default implementation of SignatureVerificationGasConsumer. It consumes gas for signature verification based upon the public key type. The cost is fetched from the given params and is matched by the concrete type.

func EnsureSufficientMempoolFees

func EnsureSufficientMempoolFees(ctx sdk.Context, fee std.Fee) sdk.Result

EnsureSufficientMempoolFees verifies that the given transaction has supplied enough fees to cover a proposer's minimum fees. A result object is returned indicating success or failure.

Contract: This should only be called during CheckTx as it cannot be part of consensus.

func FeeCollectorAddress

func FeeCollectorAddress() crypto.Address

func GetSignBytes

func GetSignBytes(chainID string, tx std.Tx, acc std.Account, genesis bool) ([]byte, error)

GetSignBytes returns a slice of bytes to sign over for a given transaction and an account.

func GetSignerAcc

func GetSignerAcc(ctx sdk.Context, ak AccountKeeper, addr crypto.Address) (std.Account, sdk.Result)

GetSignerAcc returns an account for a given address that is expected to sign a transaction.

func NewAnteHandler

func NewAnteHandler(ak AccountKeeper, bank BankKeeperI, sigGasConsumer SignatureVerificationGasConsumer, opts AnteOptions) sdk.AnteHandler

NewAnteHandler returns an AnteHandler that checks and increments sequence numbers, checks signatures & account numbers, and deducts fees from the first signer.

func NewHandler

func NewHandler(acck AccountKeeper) authHandler

NewHandler returns a handler for "auth" type messages.

func ProcessPubKey

func ProcessPubKey(acc std.Account, sig std.Signature, simulate bool) (crypto.PubKey, sdk.Result)

ProcessPubKey verifies that the given account address matches that of the std.Signature. In addition, it will set the public key of the account if it has not been set.

func SetGasMeter

func SetGasMeter(simulate bool, ctx sdk.Context, gasLimit int64) sdk.Context

SetGasMeter returns a new context with a gas meter set from a given context.

func ValidateMemo

func ValidateMemo(tx std.Tx, params Params) sdk.Result

ValidateMemo validates the memo size.

func ValidateSigCount

func ValidateSigCount(tx std.Tx, params Params) sdk.Result

ValidateSigCount validates that the transaction has a valid cumulative total amount of signatures.

Types

type AccountKeeper

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

Concrete implementation of AccountKeeper.

func NewAccountKeeper

func NewAccountKeeper(
	key store.StoreKey, proto func() std.Account,
) AccountKeeper

NewAccountKeeper returns a new AccountKeeper that uses go-amino to (binary) encode and decode concrete std.Accounts.

func (AccountKeeper) GetAccount

func (ak AccountKeeper) GetAccount(ctx sdk.Context, addr crypto.Address) std.Account

GetAccount implements AccountKeeper.

func (AccountKeeper) GetAllAccounts

func (ak AccountKeeper) GetAllAccounts(ctx sdk.Context) []std.Account

GetAllAccounts returns all accounts in the AccountKeeper.

func (AccountKeeper) GetNextAccountNumber

func (ak AccountKeeper) GetNextAccountNumber(ctx sdk.Context) uint64

GetNextAccountNumber Returns and increments the global account number counter

func (AccountKeeper) GetPubKey

func (ak AccountKeeper) GetPubKey(ctx sdk.Context, addr crypto.Address) (crypto.PubKey, error)

GetPubKey Returns the PubKey of the account at address

func (AccountKeeper) GetSequence

func (ak AccountKeeper) GetSequence(ctx sdk.Context, addr crypto.Address) (uint64, error)

GetSequence Returns the Sequence of the account at address

func (AccountKeeper) IterateAccounts

func (ak AccountKeeper) IterateAccounts(ctx sdk.Context, process func(std.Account) (stop bool))

IterateAccounts implements AccountKeeper.

func (AccountKeeper) Logger

func (ak AccountKeeper) Logger(ctx sdk.Context) *slog.Logger

Logger returns a module-specific logger.

func (AccountKeeper) NewAccountWithAddress

func (ak AccountKeeper) NewAccountWithAddress(ctx sdk.Context, addr crypto.Address) std.Account

NewAccountWithAddress implements AccountKeeper.

func (AccountKeeper) RemoveAccount

func (ak AccountKeeper) RemoveAccount(ctx sdk.Context, acc std.Account)

RemoveAccount removes an account for the account mapper store. NOTE: this will cause supply invariant violation if called

func (AccountKeeper) SetAccount

func (ak AccountKeeper) SetAccount(ctx sdk.Context, acc std.Account)

SetAccount implements AccountKeeper.

type AccountKeeperI

type AccountKeeperI interface {
	NewAccountWithAddress(ctx sdk.Context, addr crypto.Address) std.Account
	GetAccount(ctx sdk.Context, addr crypto.Address) std.Account
	GetAllAccounts(ctx sdk.Context) []std.Account
	SetAccount(ctx sdk.Context, acc std.Account)
	IterateAccounts(ctx sdk.Context, process func(std.Account) bool)
}

AccountKeeper manages access to accounts.

type AnteOptions

type AnteOptions struct {
	// If verifyGenesisSignatures is false, does not check signatures when Height==0.
	// This is useful for development, and maybe production chains.
	// Always check your settings and inspect genesis transactions.
	VerifyGenesisSignatures bool
}

type AuthParamsContextKey

type AuthParamsContextKey struct{}

type BankKeeperI

type BankKeeperI interface {
	SendCoins(ctx sdk.Context, fromAddr crypto.Address, toAddr crypto.Address, amt std.Coins) error
}

Limited interface only needed for auth.

type DummyBankKeeper

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

DummyBankKeeper defines a supply keeper used only for testing to avoid circle dependencies

func NewDummyBankKeeper

func NewDummyBankKeeper(acck AccountKeeper) DummyBankKeeper

NewDummyBankKeeper creates a DummyBankKeeper instance

func (DummyBankKeeper) SendCoins

func (bank DummyBankKeeper) SendCoins(ctx sdk.Context, fromAddr crypto.Address, toAddr crypto.Address, amt std.Coins) error

SendCoins for the dummy supply keeper

type Params

type Params struct {
	MaxMemoBytes           int64 `json:"max_memo_bytes" yaml:"max_memo_bytes"`
	TxSigLimit             int64 `json:"tx_sig_limit" yaml:"tx_sig_limit"`
	TxSizeCostPerByte      int64 `json:"tx_size_cost_per_byte" yaml:"tx_size_cost_per_byte"`
	SigVerifyCostED25519   int64 `json:"sig_verify_cost_ed25519" yaml:"sig_verify_cost_ed25519"`
	SigVerifyCostSecp256k1 int64 `json:"sig_verify_cost_secp256k1" yaml:"sig_verify_cost_secp256k1"`
}

Params defines the parameters for the auth module.

func DefaultParams

func DefaultParams() Params

DefaultParams returns a default set of parameters.

func NewParams

func NewParams(maxMemoBytes, txSigLimit, txSizeCostPerByte,
	sigVerifyCostED25519, sigVerifyCostSecp256k1 int64,
) Params

NewParams creates a new Params object

func (Params) Equals

func (p Params) Equals(p2 Params) bool

Equals returns a boolean determining if two Params types are identical.

func (Params) String

func (p Params) String() string

String implements the stringer interface.

type SignatureVerificationGasConsumer

type SignatureVerificationGasConsumer = func(meter store.GasMeter, sig []byte, pubkey crypto.PubKey, params Params) sdk.Result

SignatureVerificationGasConsumer is the type of function that is used to both consume gas when verifying signatures and also to accept or reject different types of PubKey's. This is where apps can define their own PubKey

Jump to

Keyboard shortcuts

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