bank

package
v1.1.0-beta Latest Latest
Warning

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

Go to latest
Published: Nov 27, 2024 License: GPL-3.0 Imports: 21 Imported by: 0

README

Bank Module

Table of Contents

Overview

The bank module is responsible for handling multi-asset coin transfers between accounts. It exposes several interfaces with varying capabilities for secure interaction with other modules which must alter user balances.

How does it work

type MsgSend struct {
	FromAddress types.HeimdallAddress `json:"from_address"`
	ToAddress   types.HeimdallAddress `json:"to_address"`
	Amount      sdk.Coins             `json:"amount"`
}

Handler for this transaction validates whether send is enabled or not

Once the event is validated by the Handler, it will send a particular amount of coins to the sender

How to send coins

One can run the following transactions commands from the bank module :

  • send - Send coin to an address.
CLI commands
heimdallcli tx bank send [TO_ADDRESS] [AMOUNT] --chain-id <CHAIN_ID>
REST endpoints

Rest endpoint creates a message which needs to be written to a file. Then the sender needs to sign and broadcast a transaction

curl -X POST http://localhost:1317/bank/accounts/<TO_ADDRESS>/transfers \
  -H 'Content-Type: application/json' \
  -d '{
	"base_req": {
		"chain_id": <CHAIN_ID>,
		"from": <FROM_ADDRESS>
	},
	"amount": [
		{
			"denom": "matic",
			"amount": <AMOUNT>
		}
	]
}' > <FILE>.json

heimdallcli tx sign <FILE>.json --chain-id <CHAIN_ID> > <FILE2>.json

heimdallcli tx broadcast <FILE2>.json

Query commands

One can run the following query commands from the bank module :

  • balance - Query for bank balance of an address.
CLI commands
heimdallcli query bank balance [ADDRESS]
REST endpoints
curl -X GET "localhost:1317/bank/balances/{ADDRESS}"

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// DefaultValue default value
	DefaultValue = []byte{0x01}
)

Functions

func ExportGenesis

func ExportGenesis(ctx sdk.Context, keeper Keeper) bankTypes.GenesisState

ExportGenesis returns a GenesisState for a given context and keeper.

func InitGenesis

func InitGenesis(ctx sdk.Context, keeper Keeper, data bankTypes.GenesisState)

InitGenesis sets distribution information for genesis.

func NewHandler

func NewHandler(k Keeper, contractCaller helper.IContractCaller) sdk.Handler

NewHandler returns a handler for "bank" type messages.

func NewQuerier

func NewQuerier(k Keeper) sdk.Querier

NewQuerier returns a new sdk.Keeper instance.

Types

type AppModule

type AppModule struct {
	AppModuleBasic
	// contains filtered or unexported fields
}

AppModule implements an application module for the auth module.

func NewAppModule

func NewAppModule(keeper Keeper, contractCaller helper.IContractCaller) AppModule

NewAppModule creates a new AppModule object

func (AppModule) BeginBlock

func (AppModule) BeginBlock(_ sdk.Context, _ abci.RequestBeginBlock)

BeginBlock returns the begin blocker for the auth module.

func (AppModule) EndBlock

EndBlock returns the end blocker for the auth module. It returns no validator updates.

func (AppModule) ExportGenesis

func (am AppModule) ExportGenesis(ctx sdk.Context) json.RawMessage

ExportGenesis returns the exported genesis state as raw bytes for the auth module.

func (AppModule) GenerateGenesisState added in v0.1.8

func (AppModule) GenerateGenesisState(simState *hmModule.SimulationState)

GenerateGenesisState creates a randomized GenState of the chainManager module

func (AppModule) InitGenesis

func (am AppModule) InitGenesis(ctx sdk.Context, data json.RawMessage) []abci.ValidatorUpdate

InitGenesis performs genesis initialization for the auth module. It returns no validator updates.

func (AppModule) Name

func (AppModule) Name() string

Name returns the auth module's name.

func (AppModule) NewHandler

func (am AppModule) NewHandler() sdk.Handler

NewHandler returns an sdk.Handler for the module.

func (AppModule) NewQuerierHandler

func (am AppModule) NewQuerierHandler() sdk.Querier

NewQuerierHandler returns the auth module sdk.Querier.

func (AppModule) ProposalContents added in v0.1.8

func (AppModule) ProposalContents(simState hmModule.SimulationState) []simTypes.WeightedProposalContent

ProposalContents doesn't return any content functions.

func (AppModule) QuerierRoute

func (AppModule) QuerierRoute() string

QuerierRoute returns the auth module's querier route name.

func (AppModule) RandomizedParams added in v0.1.8

func (AppModule) RandomizedParams(r *rand.Rand) []simTypes.ParamChange

RandomizedParams creates randomized param changes for the simulator.

func (AppModule) RegisterInvariants

func (AppModule) RegisterInvariants(_ sdk.InvariantRegistry)

RegisterInvariants performs a no-op.

func (AppModule) RegisterStoreDecoder added in v0.1.8

func (AppModule) RegisterStoreDecoder(sdr hmModule.StoreDecoderRegistry)

RegisterStoreDecoder registers a decoder for chainmanager module's types

func (AppModule) Route

func (AppModule) Route() string

Route returns the message routing key for the auth module.

func (AppModule) WeightedOperations added in v0.1.8

WeightedOperations doesn't return any chainmanager module operation.

type AppModuleBasic

type AppModuleBasic struct{}

AppModuleBasic defines the basic application module used by the auth module.

func (AppModuleBasic) DefaultGenesis

func (AppModuleBasic) DefaultGenesis() json.RawMessage

DefaultGenesis returns default genesis state as raw bytes for the auth module.

func (AppModuleBasic) GetQueryCmd

func (AppModuleBasic) GetQueryCmd(cdc *codec.Codec) *cobra.Command

GetQueryCmd returns the root query command for the auth module.

func (AppModuleBasic) GetTxCmd

func (AppModuleBasic) GetTxCmd(cdc *codec.Codec) *cobra.Command

GetTxCmd returns the root tx command for the auth module.

func (AppModuleBasic) Name

func (AppModuleBasic) Name() string

Name returns the auth module's name.

func (AppModuleBasic) RegisterCodec

func (AppModuleBasic) RegisterCodec(cdc *codec.Codec)

RegisterCodec registers the auth module's types for the given codec.

func (AppModuleBasic) RegisterRESTRoutes

func (AppModuleBasic) RegisterRESTRoutes(ctx context.CLIContext, rtr *mux.Router)

RegisterRESTRoutes registers the REST routes for the auth module.

func (AppModuleBasic) ValidateGenesis

func (AppModuleBasic) ValidateGenesis(bz json.RawMessage) error

ValidateGenesis performs genesis state validation for the auth module.

func (AppModuleBasic) VerifyGenesis

func (AppModuleBasic) VerifyGenesis(bz map[string]json.RawMessage) error

VerifyGenesis performs verification on auth module state.

type Keeper

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

Keeper manages transfers between accounts

func NewKeeper

func NewKeeper(
	cdc *codec.Codec,
	key sdk.StoreKey,
	paramSpace subspace.Subspace,
	codespace sdk.CodespaceType,
	ak auth.AccountKeeper,
	vm ModuleCommunicator,
) Keeper

NewKeeper returns a new Keeper

func (Keeper) AddCoins

func (keeper Keeper) AddCoins(
	ctx sdk.Context, addr hmTypes.HeimdallAddress, amt sdk.Coins,
) (sdk.Coins, sdk.Error)

AddCoins adds amt to the coins at the addr.

func (Keeper) Codespace

func (keeper Keeper) Codespace() sdk.CodespaceType

Codespace returns the keeper's codespace.

func (Keeper) GetCoins

func (keeper Keeper) GetCoins(ctx sdk.Context, addr hmTypes.HeimdallAddress) sdk.Coins

GetCoins returns the coins at the addr.

func (Keeper) GetSendEnabled

func (keeper Keeper) GetSendEnabled(ctx sdk.Context) bool

GetSendEnabled returns the current SendEnabled nolint: errcheck

func (Keeper) HasCoins

func (keeper Keeper) HasCoins(ctx sdk.Context, addr hmTypes.HeimdallAddress, amt sdk.Coins) bool

HasCoins returns whether or not an account has at least amt coins.

func (Keeper) Logger

func (keeper Keeper) Logger(ctx sdk.Context) log.Logger

Logger returns a module-specific logger

func (Keeper) SendCoins

func (keeper Keeper) SendCoins(
	ctx sdk.Context, fromAddr hmTypes.HeimdallAddress, toAddr hmTypes.HeimdallAddress, amt sdk.Coins,
) sdk.Error

SendCoins moves coins from one account to another

func (Keeper) SetCoins

func (keeper Keeper) SetCoins(
	ctx sdk.Context, addr hmTypes.HeimdallAddress, amt sdk.Coins,
) sdk.Error

SetCoins sets the coins at the addr.

func (Keeper) SetSendEnabled

func (keeper Keeper) SetSendEnabled(ctx sdk.Context, enabled bool)

SetSendEnabled sets the send enabled

func (Keeper) SubtractCoins

func (keeper Keeper) SubtractCoins(
	ctx sdk.Context, addr hmTypes.HeimdallAddress, amt sdk.Coins,
) (sdk.Coins, sdk.Error)

SubtractCoins subtracts amt from the coins at the addr.

type ModuleCommunicator

type ModuleCommunicator interface {
	// GetValidatorFromValID get validator from validator id
	GetValidatorFromValID(ctx sdk.Context, valID hmTypes.ValidatorID) (validator hmTypes.Validator, ok bool)
}

TODO: Remove this later ModuleCommunicator manager to access validator info

Directories

Path Synopsis
client
cli
rest
nolint
nolint

Jump to

Keyboard shortcuts

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