github.com/lino-network/lino@v0.6.11/x/account/keeper.go (about)

     1  package account
     2  
     3  //go:generate mockery -name AccountKeeper
     4  
     5  import (
     6  	codec "github.com/cosmos/cosmos-sdk/codec"
     7  	sdk "github.com/cosmos/cosmos-sdk/types"
     8  	"github.com/tendermint/tendermint/crypto"
     9  
    10  	"github.com/lino-network/lino/types"
    11  	"github.com/lino-network/lino/x/account/manager"
    12  	"github.com/lino-network/lino/x/account/model"
    13  )
    14  
    15  type AccountKeeper interface {
    16  	InitGenesis(ctx sdk.Context, total types.Coin, pools []model.Pool)
    17  	// core bank APIs.
    18  	MoveCoin(ctx sdk.Context, sender, receiver types.AccOrAddr, coin types.Coin) sdk.Error
    19  	MoveFromPool(
    20  		ctx sdk.Context, poolName types.PoolName, dest types.AccOrAddr, amount types.Coin) sdk.Error
    21  	MoveToPool(
    22  		ctx sdk.Context, poolName types.PoolName, from types.AccOrAddr, amount types.Coin) sdk.Error
    23  	MoveBetweenPools(ctx sdk.Context, from, to types.PoolName, amount types.Coin) sdk.Error
    24  	Mint(ctx sdk.Context) sdk.Error
    25  
    26  	DoesAccountExist(ctx sdk.Context, username types.AccountKey) bool
    27  	GenesisAccount(ctx sdk.Context, username types.AccountKey,
    28  		signingKey, transactionKey crypto.PubKey) sdk.Error
    29  	RegisterAccount(
    30  		ctx sdk.Context, referrer types.AccOrAddr, registerFee types.Coin,
    31  		username types.AccountKey, signingKey, transactionKey crypto.PubKey) sdk.Error
    32  	UpdateJSONMeta(ctx sdk.Context, username types.AccountKey, JSONMeta string) sdk.Error
    33  	GetPool(ctx sdk.Context, poolName types.PoolName) (types.Coin, sdk.Error)
    34  	GetTransactionKey(ctx sdk.Context, username types.AccountKey) (crypto.PubKey, sdk.Error)
    35  	GetSigningKey(ctx sdk.Context, username types.AccountKey) (crypto.PubKey, sdk.Error)
    36  	GetSavingFromUsername(ctx sdk.Context, username types.AccountKey) (types.Coin, sdk.Error)
    37  	GetSequence(ctx sdk.Context, address sdk.Address) (uint64, sdk.Error)
    38  	GetAddress(ctx sdk.Context, username types.AccountKey) (sdk.AccAddress, sdk.Error)
    39  	GetFrozenMoneyList(ctx sdk.Context, addr sdk.Address) ([]model.FrozenMoney, sdk.Error)
    40  	GetSupply(ctx sdk.Context) model.Supply
    41  	IncreaseSequenceByOne(ctx sdk.Context, address sdk.Address) sdk.Error
    42  	AddFrozenMoney(
    43  		ctx sdk.Context, username types.AccountKey, amount types.Coin, start, interval, times int64) sdk.Error
    44  	CheckSigningPubKeyOwner(
    45  		ctx sdk.Context, me types.AccountKey, signKey crypto.PubKey) (types.AccountKey, sdk.Error)
    46  	CheckSigningPubKeyOwnerByAddress(
    47  		ctx sdk.Context, addr sdk.AccAddress, signkey crypto.PubKey, isPaid bool) sdk.Error
    48  	RecoverAccount(
    49  		ctx sdk.Context, username types.AccountKey, newTransactionPubKey, newSigningKey crypto.PubKey) sdk.Error
    50  
    51  	// getter
    52  	GetInfo(ctx sdk.Context, username types.AccountKey) (*model.AccountInfo, sdk.Error)
    53  	GetBank(ctx sdk.Context, username types.AccountKey) (*model.AccountBank, sdk.Error)
    54  	GetBankByAddress(ctx sdk.Context, addr sdk.AccAddress) (*model.AccountBank, sdk.Error)
    55  	GetMeta(ctx sdk.Context, username types.AccountKey) (*model.AccountMeta, sdk.Error)
    56  
    57  	// import export
    58  	ExportToFile(ctx sdk.Context, cdc *codec.Codec, filepath string) error
    59  	ImportFromFile(ctx sdk.Context, cdc *codec.Codec, filepath string) error
    60  }
    61  
    62  var _ AccountKeeper = manager.AccountManager{}