mirror of
https://github.com/0glabs/0g-chain.git
synced 2024-11-10 10:05:18 +00:00
ceaed3f0e1
* proto types * proto generated types * liquidstaking top level files: module, genesis * liquidstaking types * liquidstaking keeper * liquidstaking client/cli * add liquidstaking to app, simapp * implement mint derivative * set up liquidstaking keeper test suite * test mint derivative * rename module to liquid * rename proto types, app.go to liquid * use sdk.Coin instead of shares * mint liquid tokens to delegator * burn derivative tokens to receive delegation * use conversion method instead of type cast * simplify delegation transfer logic * broaden delegation transfer tests * simplify transfer delegation method This removes a source of rounding errors * move derivative denom to keeper config * check for invalid coins in msg validation * block 0share transfers to avoid handling edge case * refactor MintDerivative to test calculations * simplify burn method so shares and tokens equal * convert TransferShares back to old design this makes handling vesting tokens easier * fix missed merge conflict * remove deprecated constants * tidy up msg.go * add msg tests * remove unused store key * fix msg event sender * remove unused params * tidy up documentation and errors * remove unused mocks * remove unused keepers from AppModule * tidy up msg return values keeper return values to be used in router msgs * reinstate unintentionally removed interface check * catch invalid input for MnitDerivative clear up test TODOs * clear up InitGenesis TODO * Update x/liquid/client/cli/tx.go Co-authored-by: Derrick Lee <derrick@dlee.dev> * Update x/liquid/client/cli/tx.go Co-authored-by: Derrick Lee <derrick@dlee.dev> * show error logs in devnet * unblock mod account so it can receive dist rewards * catch zero amout msgs early * minor cli fixes Co-authored-by: rhuairahrighairigh <ruaridh.odonnell@gmail.com> Co-authored-by: Ruaridh <rhuairahrighairidh@users.noreply.github.com> Co-authored-by: Derrick Lee <derrick@dlee.dev>
53 lines
1.2 KiB
Go
53 lines
1.2 KiB
Go
package keeper
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/cosmos/cosmos-sdk/codec"
|
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
|
"github.com/tendermint/tendermint/libs/log"
|
|
|
|
"github.com/kava-labs/kava/x/liquid/types"
|
|
)
|
|
|
|
// Keeper struct for the liquid module.
|
|
type Keeper struct {
|
|
cdc codec.Codec
|
|
|
|
accountKeeper types.AccountKeeper
|
|
bankKeeper types.BankKeeper
|
|
stakingKeeper types.StakingKeeper
|
|
|
|
derivativeDenom string
|
|
}
|
|
|
|
// NewKeeper returns a new keeper for the liquid module.
|
|
func NewKeeper(
|
|
cdc codec.Codec,
|
|
ak types.AccountKeeper, bk types.BankKeeper, sk types.StakingKeeper,
|
|
derivativeDenom string,
|
|
) Keeper {
|
|
|
|
return Keeper{
|
|
cdc: cdc,
|
|
accountKeeper: ak,
|
|
bankKeeper: bk,
|
|
stakingKeeper: sk,
|
|
derivativeDenom: derivativeDenom,
|
|
}
|
|
}
|
|
|
|
// NewDefaultKeeper returns a new keeper for the liquid module with default values.
|
|
func NewDefaultKeeper(
|
|
cdc codec.Codec,
|
|
ak types.AccountKeeper, bk types.BankKeeper, sk types.StakingKeeper,
|
|
) Keeper {
|
|
|
|
return NewKeeper(cdc, ak, bk, sk, types.DefaultDerivativeDenom)
|
|
}
|
|
|
|
// Logger returns a module-specific logger.
|
|
func (k Keeper) Logger(ctx sdk.Context) log.Logger {
|
|
return ctx.Logger().With("module", fmt.Sprintf("x/%s", types.ModuleName))
|
|
}
|