diff --git a/CHANGELOG.md b/CHANGELOG.md index 5e10fc4952..a1e4f72649 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -51,6 +51,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ * (global) [\#611](https://github.com/line/lbm-sdk/pull/611) bump github.com/cosmos/cosmos-sdk from v0.45.1 to v0.45.6 * (simapp) [\#620](https://github.com/line/lbm-sdk/pull/620) chore: add iterator feature for simapp * (x/collection) [\#622](https://github.com/line/lbm-sdk/pull/622) add Query/TokenClassTypeName +* (x/bank) [\#629](https://github.com/line/lbm-sdk/pull/629) remove unsafe balance changing methods from bank keeper such as `SetBalance` and `SetSupply`. ### Improvements diff --git a/store/listenkv/store.go b/store/listenkv/store.go index 589a4827dd..462f7a7427 100644 --- a/store/listenkv/store.go +++ b/store/listenkv/store.go @@ -91,8 +91,6 @@ func (li *listenIterator) Domain() (start []byte, end []byte) { return li.parent.Domain() } -// TODO(dudong2): remove Domain() func (removed in other stores by woosang). Add it later, if it's needed. - // Valid implements the Iterator interface. func (li *listenIterator) Valid() bool { return li.parent.Valid() diff --git a/x/bank/keeper/keeper.go b/x/bank/keeper/keeper.go index 4fe462f7e3..ee0ade08fa 100644 --- a/x/bank/keeper/keeper.go +++ b/x/bank/keeper/keeper.go @@ -29,7 +29,6 @@ type Keeper interface { HasSupply(ctx sdk.Context, denom string) bool GetPaginatedTotalSupply(ctx sdk.Context, pagination *query.PageRequest) (sdk.Coins, *query.PageResponse, error) IterateTotalSupply(ctx sdk.Context, cb func(sdk.Coin) bool) - SetSupply(ctx sdk.Context, coin sdk.Coin) // TODO(dudong2): remove after x/wasm version up(>= v0.22.0) GetDenomMetaData(ctx sdk.Context, denom string) (types.Metadata, bool) SetDenomMetaData(ctx sdk.Context, denomMetaData types.Metadata) @@ -487,24 +486,6 @@ func (k BaseKeeper) setSupply(ctx sdk.Context, coin sdk.Coin) { } } -// SetSupply sets the supply for the given coin -func (k BaseKeeper) SetSupply(ctx sdk.Context, coin sdk.Coin) { - intBytes, err := coin.Amount.Marshal() - if err != nil { - panic(fmt.Errorf("unable to marshal amount value %v", err)) - } - - store := ctx.KVStore(k.storeKey) - supplyStore := prefix.NewStore(store, types.SupplyKey) - - // Bank invariants and IBC requires to remove zero coins. - if coin.IsZero() { - supplyStore.Delete(conv.UnsafeStrToBytes(coin.GetDenom())) - } else { - supplyStore.Set([]byte(coin.GetDenom()), intBytes) - } -} - // trackDelegation tracks the delegation of the given account if it is a vesting account func (k BaseKeeper) trackDelegation(ctx sdk.Context, addr sdk.AccAddress, balance, amt sdk.Coins) error { acc := k.ak.GetAccount(ctx, addr) diff --git a/x/bank/keeper/send.go b/x/bank/keeper/send.go index 6aba1be430..528a454d6d 100644 --- a/x/bank/keeper/send.go +++ b/x/bank/keeper/send.go @@ -17,8 +17,6 @@ type SendKeeper interface { InputOutputCoins(ctx sdk.Context, inputs []types.Input, outputs []types.Output) error SendCoins(ctx sdk.Context, fromAddr sdk.AccAddress, toAddr sdk.AccAddress, amt sdk.Coins) error - SetBalance(ctx sdk.Context, addr sdk.AccAddress, balance sdk.Coin) error // TODO(dudong2): remove after x/wasm version up(>= v0.22.0) - GetParams(ctx sdk.Context) types.Params SetParams(ctx sdk.Context, params types.Params) @@ -268,28 +266,6 @@ func (k BaseSendKeeper) setBalance(ctx sdk.Context, addr sdk.AccAddress, balance return nil } -// SetBalance sets the coin balance for an account by address. -func (k BaseSendKeeper) SetBalance(ctx sdk.Context, addr sdk.AccAddress, balance sdk.Coin) error { - if !balance.IsValid() { - return sdkerrors.Wrap(sdkerrors.ErrInvalidCoins, balance.String()) - } - - accountStore := k.getAccountStore(ctx, addr) - - // Bank invariants require to not store zero balances. - if balance.IsZero() { - accountStore.Delete([]byte(balance.Denom)) - } else { - bz, err := balance.Marshal() - if err != nil { - return err - } - accountStore.Set([]byte(balance.Denom), bz) - } - - return nil -} - // IsSendEnabledCoins checks the coins provide and returns an ErrSendDisabled if // any of the coins are not configured for sending. Returns nil if sending is enabled // for all provided coin diff --git a/x/wasm/keeper/test_common.go b/x/wasm/keeper/test_common.go index bc8584a4a4..2930c024e8 100644 --- a/x/wasm/keeper/test_common.go +++ b/x/wasm/keeper/test_common.go @@ -714,9 +714,6 @@ func (m BurnerExampleInitMsg) GetBytes(t testing.TB) []byte { func fundAccounts(t testing.TB, ctx sdk.Context, am authkeeper.AccountKeeper, bank bankkeeper.Keeper, addr sdk.AccAddress, coins sdk.Coins) { acc := am.NewAccountWithAddress(ctx, addr) am.SetAccount(ctx, acc) - for _, coin := range coins { - require.NoError(t, bank.SetBalance(ctx, addr, coin)) - } NewTestFaucet(t, ctx, bank, minttypes.ModuleName, coins...).Fund(ctx, addr, coins...) } diff --git a/x/wasm/module_test.go b/x/wasm/module_test.go index f8d7a2544e..ac1d30f539 100644 --- a/x/wasm/module_test.go +++ b/x/wasm/module_test.go @@ -202,9 +202,7 @@ func TestHandleInstantiate(t *testing.T) { func TestHandleStoreAndInstantiate(t *testing.T) { data := setupTest(t) - - deposit := sdk.NewCoins(sdk.NewInt64Coin("denom", 100000)) - creator := createFakeFundedAccount(t, data.ctx, data.acctKeeper, data.bankKeeper, deposit) + creator := data.faucet.NewFundedAccount(data.ctx, sdk.NewInt64Coin("denom", 100000)) h := data.module.Route().Handler() q := data.module.LegacyQuerierHandler(nil) @@ -761,13 +759,3 @@ func assertContractInfo(t *testing.T, q sdk.Querier, ctx sdk.Context, contractBe assert.Equal(t, codeID, res.CodeID) assert.Equal(t, creator.String(), res.Creator) } -func createFakeFundedAccount(t *testing.T, ctx sdk.Context, am authkeeper.AccountKeeper, bankKeeper bankkeeper.Keeper, coins sdk.Coins) sdk.AccAddress { - t.Helper() - _, _, addr := keyPubAddr() - acc := am.NewAccountWithAddress(ctx, addr) - am.SetAccount(ctx, acc) - for _, coin := range coins { - require.NoError(t, bankKeeper.SetBalance(ctx, addr, coin)) - } - return addr -}