chore(types): add MustAccAddressFromBech32 util func (backport #12201) (#12205)

This commit is contained in:
mergify[bot] 2022-06-09 15:01:04 -04:00 committed by GitHub
parent 48c2f77a27
commit a3f8a83ec4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
25 changed files with 105 additions and 202 deletions

View File

@ -66,6 +66,7 @@ Ref: https://keepachangelog.com/en/1.0.0/
### Improvements ### Improvements
* (types) [\#12201](https://github.com/cosmos/cosmos-sdk/pull/12201) Add `MustAccAddressFromBech32` util function
* [\#11693](https://github.com/cosmos/cosmos-sdk/pull/11693) Add validation for gentx cmd. * [\#11693](https://github.com/cosmos/cosmos-sdk/pull/11693) Add validation for gentx cmd.
* [\#11686](https://github.com/cosmos/cosmos-sdk/pull/11686) Update the min required Golang version to `1.17`. * [\#11686](https://github.com/cosmos/cosmos-sdk/pull/11686) Update the min required Golang version to `1.17`.
* (x/auth/vesting) [\#11652](https://github.com/cosmos/cosmos-sdk/pull/11652) Add util functions for `Period(s)` * (x/auth/vesting) [\#11652](https://github.com/cosmos/cosmos-sdk/pull/11652) Add util functions for `Period(s)`

View File

@ -212,7 +212,6 @@ func (c converter) UnsignedTx(ops []*rosettatypes.Operation) (tx authsigning.Tx,
} }
return builder.GetTx(), nil return builder.GetTx(), nil
} }
// Msg unmarshals the rosetta metadata to the given sdk.Msg // Msg unmarshals the rosetta metadata to the given sdk.Msg
@ -334,7 +333,6 @@ func (c converter) BalanceOps(status string, events []abci.Event) []*rosettatype
// has changed and rosetta needs to reflect those changes too. // has changed and rosetta needs to reflect those changes too.
// The balance operations are multiple, one for each denom. // The balance operations are multiple, one for each denom.
func sdkEventToBalanceOperations(status string, event abci.Event) (operations []*rosettatypes.Operation, isBalanceEvent bool) { func sdkEventToBalanceOperations(status string, event abci.Event) (operations []*rosettatypes.Operation, isBalanceEvent bool) {
var ( var (
accountIdentifier string accountIdentifier string
coinChange sdk.Coins coinChange sdk.Coins
@ -345,10 +343,7 @@ func sdkEventToBalanceOperations(status string, event abci.Event) (operations []
default: default:
return nil, false return nil, false
case banktypes.EventTypeCoinSpent: case banktypes.EventTypeCoinSpent:
spender, err := sdk.AccAddressFromBech32((string)(event.Attributes[0].Value)) spender := sdk.MustAccAddressFromBech32((string)(event.Attributes[0].Value))
if err != nil {
panic(err)
}
coins, err := sdk.ParseCoinsNormalized((string)(event.Attributes[1].Value)) coins, err := sdk.ParseCoinsNormalized((string)(event.Attributes[1].Value))
if err != nil { if err != nil {
panic(err) panic(err)
@ -359,10 +354,7 @@ func sdkEventToBalanceOperations(status string, event abci.Event) (operations []
accountIdentifier = spender.String() accountIdentifier = spender.String()
case banktypes.EventTypeCoinReceived: case banktypes.EventTypeCoinReceived:
receiver, err := sdk.AccAddressFromBech32((string)(event.Attributes[0].Value)) receiver := sdk.MustAccAddressFromBech32((string)(event.Attributes[0].Value))
if err != nil {
panic(err)
}
coins, err := sdk.ParseCoinsNormalized((string)(event.Attributes[1].Value)) coins, err := sdk.ParseCoinsNormalized((string)(event.Attributes[1].Value))
if err != nil { if err != nil {
panic(err) panic(err)
@ -516,7 +508,7 @@ func (c converter) HashToTxType(hashBytes []byte) (txType TransactionType, realH
// StatusToSyncStatus converts a tendermint status to rosetta sync status // StatusToSyncStatus converts a tendermint status to rosetta sync status
func (c converter) SyncStatus(status *tmcoretypes.ResultStatus) *rosettatypes.SyncStatus { func (c converter) SyncStatus(status *tmcoretypes.ResultStatus) *rosettatypes.SyncStatus {
// determine sync status // determine sync status
var stage = StatusPeerSynced stage := StatusPeerSynced
if status.SyncInfo.CatchingUp { if status.SyncInfo.CatchingUp {
stage = StatusPeerSyncing stage = StatusPeerSyncing
} }
@ -584,7 +576,6 @@ func (c converter) Peers(peers []tmcoretypes.Peer) []*rosettatypes.Peer {
// OpsAndSigners takes transactions bytes and returns the operation, is signed is true it will return // OpsAndSigners takes transactions bytes and returns the operation, is signed is true it will return
// the account identifiers which have signed the transaction // the account identifiers which have signed the transaction
func (c converter) OpsAndSigners(txBytes []byte) (ops []*rosettatypes.Operation, signers []*rosettatypes.AccountIdentifier, err error) { func (c converter) OpsAndSigners(txBytes []byte) (ops []*rosettatypes.Operation, signers []*rosettatypes.AccountIdentifier, err error) {
rosTx, err := c.ToRosetta().Tx(txBytes, nil) rosTx, err := c.ToRosetta().Tx(txBytes, nil)
if err != nil { if err != nil {
return nil, nil, err return nil, nil, err
@ -678,7 +669,6 @@ func (c converter) PubKey(pubKey *rosettatypes.PublicKey) (cryptotypes.PubKey, e
// SigningComponents takes a sdk tx and construction metadata and returns signable components // SigningComponents takes a sdk tx and construction metadata and returns signable components
func (c converter) SigningComponents(tx authsigning.Tx, metadata *ConstructionMetadata, rosPubKeys []*rosettatypes.PublicKey) (txBytes []byte, payloadsToSign []*rosettatypes.SigningPayload, err error) { func (c converter) SigningComponents(tx authsigning.Tx, metadata *ConstructionMetadata, rosPubKeys []*rosettatypes.PublicKey) (txBytes []byte, payloadsToSign []*rosettatypes.SigningPayload, err error) {
// verify metadata correctness // verify metadata correctness
feeAmount, err := sdk.ParseCoinsNormalized(metadata.GasPrice) feeAmount, err := sdk.ParseCoinsNormalized(metadata.GasPrice)
if err != nil { if err != nil {

View File

@ -84,10 +84,8 @@ func (app *SimApp) prepForZeroHeightGenesis(ctx sdk.Context, jailAllowedAddrs []
panic(err) panic(err)
} }
delAddr, err := sdk.AccAddressFromBech32(delegation.DelegatorAddress) delAddr := sdk.MustAccAddressFromBech32(delegation.DelegatorAddress)
if err != nil {
panic(err)
}
_, _ = app.DistrKeeper.WithdrawDelegationRewards(ctx, delAddr, valAddr) _, _ = app.DistrKeeper.WithdrawDelegationRewards(ctx, delAddr, valAddr)
} }
@ -119,10 +117,7 @@ func (app *SimApp) prepForZeroHeightGenesis(ctx sdk.Context, jailAllowedAddrs []
if err != nil { if err != nil {
panic(err) panic(err)
} }
delAddr, err := sdk.AccAddressFromBech32(del.DelegatorAddress) delAddr := sdk.MustAccAddressFromBech32(del.DelegatorAddress)
if err != nil {
panic(err)
}
app.DistrKeeper.Hooks().BeforeDelegationCreated(ctx, delAddr, valAddr) app.DistrKeeper.Hooks().BeforeDelegationCreated(ctx, delAddr, valAddr)
app.DistrKeeper.Hooks().AfterDelegationModified(ctx, delAddr, valAddr) app.DistrKeeper.Hooks().AfterDelegationModified(ctx, delAddr, valAddr)
} }

View File

@ -154,6 +154,16 @@ func VerifyAddressFormat(bz []byte) error {
return nil return nil
} }
// MustAccAddressFromBech32 calls AccAddressFromBech32 and panics on error.
func MustAccAddressFromBech32(address string) AccAddress {
addr, err := AccAddressFromBech32(address)
if err != nil {
panic(err)
}
return addr
}
// AccAddressFromBech32 creates an AccAddress from a Bech32 string. // AccAddressFromBech32 creates an AccAddress from a Bech32 string.
func AccAddressFromBech32(address string) (addr AccAddress, err error) { func AccAddressFromBech32(address string) (addr AccAddress, err error) {
if len(strings.TrimSpace(address)) == 0 { if len(strings.TrimSpace(address)) == 0 {

View File

@ -118,10 +118,7 @@ func (t *Tx) GetSigners() []sdk.AccAddress {
// ensure any specified fee payer is included in the required signers (at the end) // ensure any specified fee payer is included in the required signers (at the end)
feePayer := t.AuthInfo.Fee.Payer feePayer := t.AuthInfo.Fee.Payer
if feePayer != "" && !seen[feePayer] { if feePayer != "" && !seen[feePayer] {
payerAddr, err := sdk.AccAddressFromBech32(feePayer) payerAddr := sdk.MustAccAddressFromBech32(feePayer)
if err != nil {
panic(err)
}
signers = append(signers, payerAddr) signers = append(signers, payerAddr)
seen[feePayer] = true seen[feePayer] = true
} }
@ -138,11 +135,7 @@ func (t *Tx) GetFee() sdk.Coins {
func (t *Tx) FeePayer() sdk.AccAddress { func (t *Tx) FeePayer() sdk.AccAddress {
feePayer := t.AuthInfo.Fee.Payer feePayer := t.AuthInfo.Fee.Payer
if feePayer != "" { if feePayer != "" {
payerAddr, err := sdk.AccAddressFromBech32(feePayer) return sdk.MustAccAddressFromBech32(feePayer)
if err != nil {
panic(err)
}
return payerAddr
} }
// use first signer as default if no payer specified // use first signer as default if no payer specified
return t.GetSigners()[0] return t.GetSigners()[0]
@ -151,11 +144,7 @@ func (t *Tx) FeePayer() sdk.AccAddress {
func (t *Tx) FeeGranter() sdk.AccAddress { func (t *Tx) FeeGranter() sdk.AccAddress {
feePayer := t.AuthInfo.Fee.Granter feePayer := t.AuthInfo.Fee.Granter
if feePayer != "" { if feePayer != "" {
granterAddr, err := sdk.AccAddressFromBech32(feePayer) return sdk.MustAccAddressFromBech32(feePayer)
if err != nil {
panic(err)
}
return granterAddr
} }
return nil return nil
} }

View File

@ -134,11 +134,7 @@ func (w *wrapper) GetFee() sdk.Coins {
func (w *wrapper) FeePayer() sdk.AccAddress { func (w *wrapper) FeePayer() sdk.AccAddress {
feePayer := w.tx.AuthInfo.Fee.Payer feePayer := w.tx.AuthInfo.Fee.Payer
if feePayer != "" { if feePayer != "" {
payerAddr, err := sdk.AccAddressFromBech32(feePayer) return sdk.MustAccAddressFromBech32(feePayer)
if err != nil {
panic(err)
}
return payerAddr
} }
// use first signer as default if no payer specified // use first signer as default if no payer specified
return w.GetSigners()[0] return w.GetSigners()[0]
@ -147,11 +143,7 @@ func (w *wrapper) FeePayer() sdk.AccAddress {
func (w *wrapper) FeeGranter() sdk.AccAddress { func (w *wrapper) FeeGranter() sdk.AccAddress {
feePayer := w.tx.AuthInfo.Fee.Granter feePayer := w.tx.AuthInfo.Fee.Granter
if feePayer != "" { if feePayer != "" {
granterAddr, err := sdk.AccAddressFromBech32(feePayer) return sdk.MustAccAddressFromBech32(feePayer)
if err != nil {
panic(err)
}
return granterAddr
} }
return nil return nil
} }

View File

@ -107,7 +107,8 @@ func (k Keeper) GranterGrants(c context.Context, req *authz.QueryGranterGrantsRe
var grants []*authz.GrantAuthorization var grants []*authz.GrantAuthorization
pageRes, err := query.FilteredPaginate(authzStore, req.Pagination, func(key []byte, value []byte, pageRes, err := query.FilteredPaginate(authzStore, req.Pagination, func(key []byte, value []byte,
accumulate bool) (bool, error) { accumulate bool,
) (bool, error) {
auth, err := unmarshalAuthorization(k.cdc, value) auth, err := unmarshalAuthorization(k.cdc, value)
if err != nil { if err != nil {
return false, err return false, err
@ -156,7 +157,8 @@ func (k Keeper) GranteeGrants(c context.Context, req *authz.QueryGranteeGrantsRe
var authorizations []*authz.GrantAuthorization var authorizations []*authz.GrantAuthorization
pageRes, err := query.FilteredPaginate(store, req.Pagination, func(key []byte, value []byte, pageRes, err := query.FilteredPaginate(store, req.Pagination, func(key []byte, value []byte,
accumulate bool) (bool, error) { accumulate bool,
) (bool, error) {
auth, err := unmarshalAuthorization(k.cdc, value) auth, err := unmarshalAuthorization(k.cdc, value)
if err != nil { if err != nil {
return false, err return false, err

View File

@ -73,7 +73,7 @@ func (k Keeper) update(ctx sdk.Context, grantee sdk.AccAddress, granter sdk.AccA
// DispatchActions attempts to execute the provided messages via authorization // DispatchActions attempts to execute the provided messages via authorization
// grants from the message signer to the grantee. // grants from the message signer to the grantee.
func (k Keeper) DispatchActions(ctx sdk.Context, grantee sdk.AccAddress, msgs []sdk.Msg) ([][]byte, error) { func (k Keeper) DispatchActions(ctx sdk.Context, grantee sdk.AccAddress, msgs []sdk.Msg) ([][]byte, error) {
var results = make([][]byte, len(msgs)) results := make([][]byte, len(msgs))
for i, msg := range msgs { for i, msg := range msgs {
signers := msg.GetSigners() signers := msg.GetSigners()
if len(signers) != 1 { if len(signers) != 1 {
@ -198,7 +198,8 @@ func (k Keeper) GetCleanAuthorization(ctx sdk.Context, grantee sdk.AccAddress, g
// This function should be used with caution because it can involve significant IO operations. // This function should be used with caution because it can involve significant IO operations.
// It should not be used in query or msg services without charging additional gas. // It should not be used in query or msg services without charging additional gas.
func (k Keeper) IterateGrants(ctx sdk.Context, func (k Keeper) IterateGrants(ctx sdk.Context,
handler func(granterAddr sdk.AccAddress, granteeAddr sdk.AccAddress, grant authz.Grant) bool) { handler func(granterAddr sdk.AccAddress, granteeAddr sdk.AccAddress, grant authz.Grant) bool,
) {
store := ctx.KVStore(k.storeKey) store := ctx.KVStore(k.storeKey)
iter := sdk.KVStorePrefixIterator(store, GrantKey) iter := sdk.KVStorePrefixIterator(store, GrantKey)
defer iter.Close() defer iter.Close()
@ -232,20 +233,14 @@ func (k Keeper) ExportGenesis(ctx sdk.Context) *authz.GenesisState {
// InitGenesis new authz genesis // InitGenesis new authz genesis
func (k Keeper) InitGenesis(ctx sdk.Context, data *authz.GenesisState) { func (k Keeper) InitGenesis(ctx sdk.Context, data *authz.GenesisState) {
for _, entry := range data.Authorization { for _, entry := range data.Authorization {
grantee, err := sdk.AccAddressFromBech32(entry.Grantee) grantee := sdk.MustAccAddressFromBech32(entry.Grantee)
if err != nil { granter := sdk.MustAccAddressFromBech32(entry.Granter)
panic(err)
}
granter, err := sdk.AccAddressFromBech32(entry.Granter)
if err != nil {
panic(err)
}
a, ok := entry.Authorization.GetCachedValue().(authz.Authorization) a, ok := entry.Authorization.GetCachedValue().(authz.Authorization)
if !ok { if !ok {
panic("expected authorization") panic("expected authorization")
} }
err = k.SaveGrant(ctx, grantee, granter, a, entry.Expiration) err := k.SaveGrant(ctx, grantee, granter, a, entry.Expiration)
if err != nil { if err != nil {
panic(err) panic(err)
} }

View File

@ -16,10 +16,7 @@ func (k BaseKeeper) InitGenesis(ctx sdk.Context, genState *types.GenesisState) {
genState.Balances = types.SanitizeGenesisBalances(genState.Balances) genState.Balances = types.SanitizeGenesisBalances(genState.Balances)
for _, balance := range genState.Balances { for _, balance := range genState.Balances {
addr, err := sdk.AccAddressFromBech32(balance.Address) addr := balance.GetAddress()
if err != nil {
panic(err)
}
if err := k.initBalances(ctx, addr, balance.Coins); err != nil { if err := k.initBalances(ctx, addr, balance.Coins); err != nil {
panic(fmt.Errorf("error on setting balances %w", err)) panic(fmt.Errorf("error on setting balances %w", err))

View File

@ -81,10 +81,8 @@ func (k msgServer) MultiSend(goCtx context.Context, msg *types.MsgMultiSend) (*t
} }
for _, out := range msg.Outputs { for _, out := range msg.Outputs {
accAddr, err := sdk.AccAddressFromBech32(out.Address) accAddr := sdk.MustAccAddressFromBech32(out.Address)
if err != nil {
panic(err)
}
if k.BlockedAddr(accAddr) { if k.BlockedAddr(accAddr) {
return nil, sdkerrors.Wrapf(sdkerrors.ErrUnauthorized, "%s is not allowed to receive transactions", out.Address) return nil, sdkerrors.Wrapf(sdkerrors.ErrUnauthorized, "%s is not allowed to receive transactions", out.Address)
} }

View File

@ -328,10 +328,7 @@ func sendMsgMultiSend(
sequenceNumbers := make([]uint64, len(msg.Inputs)) sequenceNumbers := make([]uint64, len(msg.Inputs))
for i := 0; i < len(msg.Inputs); i++ { for i := 0; i < len(msg.Inputs); i++ {
addr, err := sdk.AccAddressFromBech32(msg.Inputs[i].Address) addr := sdk.MustAccAddressFromBech32(msg.Inputs[i].Address)
if err != nil {
panic(err)
}
acc := ak.GetAccount(ctx, addr) acc := ak.GetAccount(ctx, addr)
accountNumbers[i] = acc.GetAccountNumber() accountNumbers[i] = acc.GetAccountNumber()
sequenceNumbers[i] = acc.GetSequence() sequenceNumbers[i] = acc.GetSequence()
@ -342,10 +339,7 @@ func sendMsgMultiSend(
err error err error
) )
addr, err := sdk.AccAddressFromBech32(msg.Inputs[0].Address) addr := sdk.MustAccAddressFromBech32(msg.Inputs[0].Address)
if err != nil {
panic(err)
}
// feePayer is the first signer, i.e. first input address // feePayer is the first signer, i.e. first input address
feePayer := ak.GetAccount(ctx, addr) feePayer := ak.GetAccount(ctx, addr)

View File

@ -3,7 +3,6 @@ package types
import ( import (
"bytes" "bytes"
"encoding/json" "encoding/json"
"fmt"
"sort" "sort"
"github.com/cosmos/cosmos-sdk/codec" "github.com/cosmos/cosmos-sdk/codec"
@ -15,12 +14,7 @@ var _ exported.GenesisBalance = (*Balance)(nil)
// GetAddress returns the account address of the Balance object. // GetAddress returns the account address of the Balance object.
func (b Balance) GetAddress() sdk.AccAddress { func (b Balance) GetAddress() sdk.AccAddress {
addr, err := sdk.AccAddressFromBech32(b.Address) return sdk.MustAccAddressFromBech32(b.Address)
if err != nil {
panic(fmt.Errorf("couldn't convert %q to account address: %v", b.Address, err))
}
return addr
} }
// GetCoins returns the account coins of the Balance object. // GetCoins returns the account coins of the Balance object.

View File

@ -15,15 +15,8 @@ func (k Keeper) InitGenesis(ctx sdk.Context, data types.GenesisState) {
k.SetParams(ctx, data.Params) k.SetParams(ctx, data.Params)
for _, dwi := range data.DelegatorWithdrawInfos { for _, dwi := range data.DelegatorWithdrawInfos {
delegatorAddress, err := sdk.AccAddressFromBech32(dwi.DelegatorAddress) delegatorAddress := sdk.MustAccAddressFromBech32(dwi.DelegatorAddress)
if err != nil { withdrawAddress := sdk.MustAccAddressFromBech32(dwi.WithdrawAddress)
panic(err)
}
withdrawAddress, err := sdk.AccAddressFromBech32(dwi.WithdrawAddress)
if err != nil {
panic(err)
}
k.SetDelegatorWithdrawAddr(ctx, delegatorAddress, withdrawAddress) k.SetDelegatorWithdrawAddr(ctx, delegatorAddress, withdrawAddress)
} }
@ -72,10 +65,8 @@ func (k Keeper) InitGenesis(ctx sdk.Context, data types.GenesisState) {
if err != nil { if err != nil {
panic(err) panic(err)
} }
delegatorAddress, err := sdk.AccAddressFromBech32(del.DelegatorAddress) delegatorAddress := sdk.MustAccAddressFromBech32(del.DelegatorAddress)
if err != nil {
panic(err)
}
k.SetDelegatorStartingInfo(ctx, valAddr, delegatorAddress, del.StartingInfo) k.SetDelegatorStartingInfo(ctx, valAddr, delegatorAddress, del.StartingInfo)
} }
for _, evt := range data.ValidatorSlashEvents { for _, evt := range data.ValidatorSlashEvents {

View File

@ -12,13 +12,12 @@ func HandleCommunityPoolSpendProposal(ctx sdk.Context, k Keeper, p *types.Commun
return sdkerrors.Wrapf(sdkerrors.ErrUnauthorized, "%s is not allowed to receive external funds", p.Recipient) return sdkerrors.Wrapf(sdkerrors.ErrUnauthorized, "%s is not allowed to receive external funds", p.Recipient)
} }
recipient, addrErr := sdk.AccAddressFromBech32(p.Recipient) recipient, err := sdk.AccAddressFromBech32(p.Recipient)
if addrErr != nil { if err != nil {
return addrErr return err
} }
err := k.DistributeFromFeePool(ctx, p.Amount, recipient) if err := k.DistributeFromFeePool(ctx, p.Amount, recipient); err != nil {
if err != nil {
return err return err
} }

View File

@ -28,7 +28,6 @@ func WeightedOperations(
appParams simtypes.AppParams, cdc codec.JSONCodec, appParams simtypes.AppParams, cdc codec.JSONCodec,
ak feegrant.AccountKeeper, bk feegrant.BankKeeper, k keeper.Keeper, ak feegrant.AccountKeeper, bk feegrant.BankKeeper, k keeper.Keeper,
) simulation.WeightedOperations { ) simulation.WeightedOperations {
var ( var (
weightMsgGrantAllowance int weightMsgGrantAllowance int
weightMsgRevokeAllowance int weightMsgRevokeAllowance int
@ -85,7 +84,6 @@ func SimulateMsgGrantAllowance(ak feegrant.AccountKeeper, bk feegrant.BankKeeper
SpendLimit: spendableCoins, SpendLimit: spendableCoins,
Expiration: &oneYear, Expiration: &oneYear,
}, granter.Address, grantee.Address) }, granter.Address, grantee.Address)
if err != nil { if err != nil {
return simtypes.NoOpMsg(feegrant.ModuleName, TypeMsgGrantAllowance, err.Error()), nil, err return simtypes.NoOpMsg(feegrant.ModuleName, TypeMsgGrantAllowance, err.Error()), nil, err
} }
@ -114,20 +112,12 @@ func SimulateMsgRevokeAllowance(ak feegrant.AccountKeeper, bk feegrant.BankKeepe
return func( return func(
r *rand.Rand, app *baseapp.BaseApp, ctx sdk.Context, accs []simtypes.Account, chainID string, r *rand.Rand, app *baseapp.BaseApp, ctx sdk.Context, accs []simtypes.Account, chainID string,
) (simtypes.OperationMsg, []simtypes.FutureOperation, error) { ) (simtypes.OperationMsg, []simtypes.FutureOperation, error) {
hasGrant := false hasGrant := false
var granterAddr sdk.AccAddress var granterAddr sdk.AccAddress
var granteeAddr sdk.AccAddress var granteeAddr sdk.AccAddress
k.IterateAllFeeAllowances(ctx, func(grant feegrant.Grant) bool { k.IterateAllFeeAllowances(ctx, func(grant feegrant.Grant) bool {
granter := sdk.MustAccAddressFromBech32(grant.Granter)
granter, err := sdk.AccAddressFromBech32(grant.Granter) grantee := sdk.MustAccAddressFromBech32(grant.Grantee)
if err != nil {
panic(err)
}
grantee, err := sdk.AccAddressFromBech32(grant.Grantee)
if err != nil {
panic(err)
}
granterAddr = granter granterAddr = granter
granteeAddr = grantee granteeAddr = grantee
hasGrant = true hasGrant = true

View File

@ -25,10 +25,7 @@ func (keeper Keeper) GetDeposit(ctx sdk.Context, proposalID uint64, depositorAdd
func (keeper Keeper) SetDeposit(ctx sdk.Context, deposit types.Deposit) { func (keeper Keeper) SetDeposit(ctx sdk.Context, deposit types.Deposit) {
store := ctx.KVStore(keeper.storeKey) store := ctx.KVStore(keeper.storeKey)
bz := keeper.cdc.MustMarshal(&deposit) bz := keeper.cdc.MustMarshal(&deposit)
depositor, err := sdk.AccAddressFromBech32(deposit.Depositor) depositor := sdk.MustAccAddressFromBech32(deposit.Depositor)
if err != nil {
panic(err)
}
store.Set(types.DepositKey(deposit.ProposalId, depositor), bz) store.Set(types.DepositKey(deposit.ProposalId, depositor), bz)
} }
@ -63,10 +60,8 @@ func (keeper Keeper) DeleteDeposits(ctx sdk.Context, proposalID uint64) {
panic(err) panic(err)
} }
depositor, err := sdk.AccAddressFromBech32(deposit.Depositor) depositor := sdk.MustAccAddressFromBech32(deposit.Depositor)
if err != nil {
panic(err)
}
store.Delete(types.DepositKey(proposalID, depositor)) store.Delete(types.DepositKey(proposalID, depositor))
return false return false
}) })
@ -171,12 +166,9 @@ func (keeper Keeper) RefundDeposits(ctx sdk.Context, proposalID uint64) {
store := ctx.KVStore(keeper.storeKey) store := ctx.KVStore(keeper.storeKey)
keeper.IterateDeposits(ctx, proposalID, func(deposit types.Deposit) bool { keeper.IterateDeposits(ctx, proposalID, func(deposit types.Deposit) bool {
depositor, err := sdk.AccAddressFromBech32(deposit.Depositor) depositor := sdk.MustAccAddressFromBech32(deposit.Depositor)
if err != nil {
panic(err)
}
err = keeper.bankKeeper.SendCoinsFromModuleToAccount(ctx, types.ModuleName, depositor, deposit.Amount) err := keeper.bankKeeper.SendCoinsFromModuleToAccount(ctx, types.ModuleName, depositor, deposit.Amount)
if err != nil { if err != nil {
panic(err) panic(err)
} }

View File

@ -61,11 +61,12 @@ func (k msgServer) SubmitProposal(goCtx context.Context, msg *types.MsgSubmitPro
func (k msgServer) Vote(goCtx context.Context, msg *types.MsgVote) (*types.MsgVoteResponse, error) { func (k msgServer) Vote(goCtx context.Context, msg *types.MsgVote) (*types.MsgVoteResponse, error) {
ctx := sdk.UnwrapSDKContext(goCtx) ctx := sdk.UnwrapSDKContext(goCtx)
accAddr, accErr := sdk.AccAddressFromBech32(msg.Voter) accAddr, err := sdk.AccAddressFromBech32(msg.Voter)
if accErr != nil { if err != nil {
return nil, accErr return nil, err
} }
err := k.Keeper.AddVote(ctx, msg.ProposalId, accAddr, types.NewNonSplitVoteOption(msg.Option))
err = k.Keeper.AddVote(ctx, msg.ProposalId, accAddr, types.NewNonSplitVoteOption(msg.Option))
if err != nil { if err != nil {
return nil, err return nil, err
} }

View File

@ -35,11 +35,7 @@ func (keeper Keeper) Tally(ctx sdk.Context, proposal types.Proposal) (passes boo
keeper.IterateVotes(ctx, proposal.ProposalId, func(vote types.Vote) bool { keeper.IterateVotes(ctx, proposal.ProposalId, func(vote types.Vote) bool {
// if validator, just record it in the map // if validator, just record it in the map
voter, err := sdk.AccAddressFromBech32(vote.Voter) voter := sdk.MustAccAddressFromBech32(vote.Voter)
if err != nil {
panic(err)
}
valAddrStr := sdk.ValAddress(voter.Bytes()).String() valAddrStr := sdk.ValAddress(voter.Bytes()).String()
if val, ok := currValidators[valAddrStr]; ok { if val, ok := currValidators[valAddrStr]; ok {

View File

@ -84,10 +84,8 @@ func (keeper Keeper) SetVote(ctx sdk.Context, vote types.Vote) {
store := ctx.KVStore(keeper.storeKey) store := ctx.KVStore(keeper.storeKey)
bz := keeper.cdc.MustMarshal(&vote) bz := keeper.cdc.MustMarshal(&vote)
addr, err := sdk.AccAddressFromBech32(vote.Voter) addr := sdk.MustAccAddressFromBech32(vote.Voter)
if err != nil {
panic(err)
}
store.Set(types.VoteKey(vote.ProposalId, addr), bz) store.Set(types.VoteKey(vote.ProposalId, addr), bz)
} }

View File

@ -63,10 +63,7 @@ func InitGenesis(
} }
for _, delegation := range data.Delegations { for _, delegation := range data.Delegations {
delegatorAddress, err := sdk.AccAddressFromBech32(delegation.DelegatorAddress) delegatorAddress := sdk.MustAccAddressFromBech32(delegation.DelegatorAddress)
if err != nil {
panic(err)
}
// Call the before-creation hook if not exported // Call the before-creation hook if not exported
if !data.Exported { if !data.Exported {

View File

@ -12,7 +12,8 @@ import (
// GetDelegation returns a specific delegation. // GetDelegation returns a specific delegation.
func (k Keeper) GetDelegation(ctx sdk.Context, func (k Keeper) GetDelegation(ctx sdk.Context,
delAddr sdk.AccAddress, valAddr sdk.ValAddress) (delegation types.Delegation, found bool) { delAddr sdk.AccAddress, valAddr sdk.ValAddress,
) (delegation types.Delegation, found bool) {
store := ctx.KVStore(k.storeKey) store := ctx.KVStore(k.storeKey)
key := types.GetDelegationKey(delAddr, valAddr) key := types.GetDelegationKey(delAddr, valAddr)
@ -72,7 +73,8 @@ func (k Keeper) GetValidatorDelegations(ctx sdk.Context, valAddr sdk.ValAddress)
// GetDelegatorDelegations returns a given amount of all the delegations from a // GetDelegatorDelegations returns a given amount of all the delegations from a
// delegator. // delegator.
func (k Keeper) GetDelegatorDelegations(ctx sdk.Context, delegator sdk.AccAddress, func (k Keeper) GetDelegatorDelegations(ctx sdk.Context, delegator sdk.AccAddress,
maxRetrieve uint16) (delegations []types.Delegation) { maxRetrieve uint16,
) (delegations []types.Delegation) {
delegations = make([]types.Delegation, maxRetrieve) delegations = make([]types.Delegation, maxRetrieve)
store := ctx.KVStore(k.storeKey) store := ctx.KVStore(k.storeKey)
delegatorPrefixKey := types.GetDelegationsKey(delegator) delegatorPrefixKey := types.GetDelegationsKey(delegator)
@ -92,10 +94,7 @@ func (k Keeper) GetDelegatorDelegations(ctx sdk.Context, delegator sdk.AccAddres
// SetDelegation sets a delegation. // SetDelegation sets a delegation.
func (k Keeper) SetDelegation(ctx sdk.Context, delegation types.Delegation) { func (k Keeper) SetDelegation(ctx sdk.Context, delegation types.Delegation) {
delegatorAddress, err := sdk.AccAddressFromBech32(delegation.DelegatorAddress) delegatorAddress := sdk.MustAccAddressFromBech32(delegation.DelegatorAddress)
if err != nil {
panic(err)
}
store := ctx.KVStore(k.storeKey) store := ctx.KVStore(k.storeKey)
b := types.MustMarshalDelegation(k.cdc, delegation) b := types.MustMarshalDelegation(k.cdc, delegation)
@ -104,11 +103,8 @@ func (k Keeper) SetDelegation(ctx sdk.Context, delegation types.Delegation) {
// RemoveDelegation removes a delegation. // RemoveDelegation removes a delegation.
func (k Keeper) RemoveDelegation(ctx sdk.Context, delegation types.Delegation) { func (k Keeper) RemoveDelegation(ctx sdk.Context, delegation types.Delegation) {
delegatorAddress, err := sdk.AccAddressFromBech32(delegation.DelegatorAddress) delegatorAddress := sdk.MustAccAddressFromBech32(delegation.DelegatorAddress)
if err != nil {
panic(err)
}
// TODO: Consider calling hooks outside of the store wrapper functions, it's unobvious.
k.BeforeDelegationRemoved(ctx, delegatorAddress, delegation.GetValidatorAddr()) k.BeforeDelegationRemoved(ctx, delegatorAddress, delegation.GetValidatorAddr())
store := ctx.KVStore(k.storeKey) store := ctx.KVStore(k.storeKey)
store.Delete(types.GetDelegationKey(delegatorAddress, delegation.GetValidatorAddr())) store.Delete(types.GetDelegationKey(delegatorAddress, delegation.GetValidatorAddr()))
@ -116,7 +112,8 @@ func (k Keeper) RemoveDelegation(ctx sdk.Context, delegation types.Delegation) {
// GetUnbondingDelegations returns a given amount of all the delegator unbonding-delegations. // GetUnbondingDelegations returns a given amount of all the delegator unbonding-delegations.
func (k Keeper) GetUnbondingDelegations(ctx sdk.Context, delegator sdk.AccAddress, func (k Keeper) GetUnbondingDelegations(ctx sdk.Context, delegator sdk.AccAddress,
maxRetrieve uint16) (unbondingDelegations []types.UnbondingDelegation) { maxRetrieve uint16,
) (unbondingDelegations []types.UnbondingDelegation) {
unbondingDelegations = make([]types.UnbondingDelegation, maxRetrieve) unbondingDelegations = make([]types.UnbondingDelegation, maxRetrieve)
store := ctx.KVStore(k.storeKey) store := ctx.KVStore(k.storeKey)
@ -266,7 +263,8 @@ func (k Keeper) IterateDelegatorRedelegations(ctx sdk.Context, delegator sdk.Acc
// HasMaxUnbondingDelegationEntries - check if unbonding delegation has maximum number of entries. // HasMaxUnbondingDelegationEntries - check if unbonding delegation has maximum number of entries.
func (k Keeper) HasMaxUnbondingDelegationEntries(ctx sdk.Context, func (k Keeper) HasMaxUnbondingDelegationEntries(ctx sdk.Context,
delegatorAddr sdk.AccAddress, validatorAddr sdk.ValAddress) bool { delegatorAddr sdk.AccAddress, validatorAddr sdk.ValAddress,
) bool {
ubd, found := k.GetUnbondingDelegation(ctx, delegatorAddr, validatorAddr) ubd, found := k.GetUnbondingDelegation(ctx, delegatorAddr, validatorAddr)
if !found { if !found {
return false return false
@ -277,10 +275,8 @@ func (k Keeper) HasMaxUnbondingDelegationEntries(ctx sdk.Context,
// SetUnbondingDelegation sets the unbonding delegation and associated index. // SetUnbondingDelegation sets the unbonding delegation and associated index.
func (k Keeper) SetUnbondingDelegation(ctx sdk.Context, ubd types.UnbondingDelegation) { func (k Keeper) SetUnbondingDelegation(ctx sdk.Context, ubd types.UnbondingDelegation) {
delegatorAddress, err := sdk.AccAddressFromBech32(ubd.DelegatorAddress) delegatorAddress := sdk.MustAccAddressFromBech32(ubd.DelegatorAddress)
if err != nil {
panic(err)
}
store := ctx.KVStore(k.storeKey) store := ctx.KVStore(k.storeKey)
bz := types.MustMarshalUBD(k.cdc, ubd) bz := types.MustMarshalUBD(k.cdc, ubd)
addr, err := sdk.ValAddressFromBech32(ubd.ValidatorAddress) addr, err := sdk.ValAddressFromBech32(ubd.ValidatorAddress)
@ -294,10 +290,7 @@ func (k Keeper) SetUnbondingDelegation(ctx sdk.Context, ubd types.UnbondingDeleg
// RemoveUnbondingDelegation removes the unbonding delegation object and associated index. // RemoveUnbondingDelegation removes the unbonding delegation object and associated index.
func (k Keeper) RemoveUnbondingDelegation(ctx sdk.Context, ubd types.UnbondingDelegation) { func (k Keeper) RemoveUnbondingDelegation(ctx sdk.Context, ubd types.UnbondingDelegation) {
delegatorAddress, err := sdk.AccAddressFromBech32(ubd.DelegatorAddress) delegatorAddress := sdk.MustAccAddressFromBech32(ubd.DelegatorAddress)
if err != nil {
panic(err)
}
store := ctx.KVStore(k.storeKey) store := ctx.KVStore(k.storeKey)
addr, err := sdk.ValAddressFromBech32(ubd.ValidatorAddress) addr, err := sdk.ValAddressFromBech32(ubd.ValidatorAddress)
@ -356,7 +349,8 @@ func (k Keeper) SetUBDQueueTimeSlice(ctx sdk.Context, timestamp time.Time, keys
// InsertUBDQueue inserts an unbonding delegation to the appropriate timeslice // InsertUBDQueue inserts an unbonding delegation to the appropriate timeslice
// in the unbonding queue. // in the unbonding queue.
func (k Keeper) InsertUBDQueue(ctx sdk.Context, ubd types.UnbondingDelegation, func (k Keeper) InsertUBDQueue(ctx sdk.Context, ubd types.UnbondingDelegation,
completionTime time.Time) { completionTime time.Time,
) {
dvPair := types.DVPair{DelegatorAddress: ubd.DelegatorAddress, ValidatorAddress: ubd.ValidatorAddress} dvPair := types.DVPair{DelegatorAddress: ubd.DelegatorAddress, ValidatorAddress: ubd.ValidatorAddress}
timeSlice := k.GetUBDQueueTimeSlice(ctx, completionTime) timeSlice := k.GetUBDQueueTimeSlice(ctx, completionTime)
@ -399,7 +393,8 @@ func (k Keeper) DequeueAllMatureUBDQueue(ctx sdk.Context, currTime time.Time) (m
// GetRedelegations returns a given amount of all the delegator redelegations. // GetRedelegations returns a given amount of all the delegator redelegations.
func (k Keeper) GetRedelegations(ctx sdk.Context, delegator sdk.AccAddress, func (k Keeper) GetRedelegations(ctx sdk.Context, delegator sdk.AccAddress,
maxRetrieve uint16) (redelegations []types.Redelegation) { maxRetrieve uint16,
) (redelegations []types.Redelegation) {
redelegations = make([]types.Redelegation, maxRetrieve) redelegations = make([]types.Redelegation, maxRetrieve)
store := ctx.KVStore(k.storeKey) store := ctx.KVStore(k.storeKey)
@ -420,7 +415,8 @@ func (k Keeper) GetRedelegations(ctx sdk.Context, delegator sdk.AccAddress,
// GetRedelegation returns a redelegation. // GetRedelegation returns a redelegation.
func (k Keeper) GetRedelegation(ctx sdk.Context, func (k Keeper) GetRedelegation(ctx sdk.Context,
delAddr sdk.AccAddress, valSrcAddr, valDstAddr sdk.ValAddress) (red types.Redelegation, found bool) { delAddr sdk.AccAddress, valSrcAddr, valDstAddr sdk.ValAddress,
) (red types.Redelegation, found bool) {
store := ctx.KVStore(k.storeKey) store := ctx.KVStore(k.storeKey)
key := types.GetREDKey(delAddr, valSrcAddr, valDstAddr) key := types.GetREDKey(delAddr, valSrcAddr, valDstAddr)
@ -454,7 +450,8 @@ func (k Keeper) GetRedelegationsFromSrcValidator(ctx sdk.Context, valAddr sdk.Va
// HasReceivingRedelegation checks if validator is receiving a redelegation. // HasReceivingRedelegation checks if validator is receiving a redelegation.
func (k Keeper) HasReceivingRedelegation(ctx sdk.Context, func (k Keeper) HasReceivingRedelegation(ctx sdk.Context,
delAddr sdk.AccAddress, valDstAddr sdk.ValAddress) bool { delAddr sdk.AccAddress, valDstAddr sdk.ValAddress,
) bool {
store := ctx.KVStore(k.storeKey) store := ctx.KVStore(k.storeKey)
prefix := types.GetREDsByDelToValDstIndexKey(delAddr, valDstAddr) prefix := types.GetREDsByDelToValDstIndexKey(delAddr, valDstAddr)
@ -467,7 +464,8 @@ func (k Keeper) HasReceivingRedelegation(ctx sdk.Context,
// HasMaxRedelegationEntries checks if redelegation has maximum number of entries. // HasMaxRedelegationEntries checks if redelegation has maximum number of entries.
func (k Keeper) HasMaxRedelegationEntries(ctx sdk.Context, func (k Keeper) HasMaxRedelegationEntries(ctx sdk.Context,
delegatorAddr sdk.AccAddress, validatorSrcAddr, delegatorAddr sdk.AccAddress, validatorSrcAddr,
validatorDstAddr sdk.ValAddress) bool { validatorDstAddr sdk.ValAddress,
) bool {
red, found := k.GetRedelegation(ctx, delegatorAddr, validatorSrcAddr, validatorDstAddr) red, found := k.GetRedelegation(ctx, delegatorAddr, validatorSrcAddr, validatorDstAddr)
if !found { if !found {
return false return false
@ -478,10 +476,7 @@ func (k Keeper) HasMaxRedelegationEntries(ctx sdk.Context,
// SetRedelegation set a redelegation and associated index. // SetRedelegation set a redelegation and associated index.
func (k Keeper) SetRedelegation(ctx sdk.Context, red types.Redelegation) { func (k Keeper) SetRedelegation(ctx sdk.Context, red types.Redelegation) {
delegatorAddress, err := sdk.AccAddressFromBech32(red.DelegatorAddress) delegatorAddress := sdk.MustAccAddressFromBech32(red.DelegatorAddress)
if err != nil {
panic(err)
}
store := ctx.KVStore(k.storeKey) store := ctx.KVStore(k.storeKey)
bz := types.MustMarshalRED(k.cdc, red) bz := types.MustMarshalRED(k.cdc, red)
@ -505,7 +500,8 @@ func (k Keeper) SetRedelegationEntry(ctx sdk.Context,
delegatorAddr sdk.AccAddress, validatorSrcAddr, delegatorAddr sdk.AccAddress, validatorSrcAddr,
validatorDstAddr sdk.ValAddress, creationHeight int64, validatorDstAddr sdk.ValAddress, creationHeight int64,
minTime time.Time, balance sdk.Int, minTime time.Time, balance sdk.Int,
sharesSrc, sharesDst sdk.Dec) types.Redelegation { sharesSrc, sharesDst sdk.Dec,
) types.Redelegation {
red, found := k.GetRedelegation(ctx, delegatorAddr, validatorSrcAddr, validatorDstAddr) red, found := k.GetRedelegation(ctx, delegatorAddr, validatorSrcAddr, validatorDstAddr)
if found { if found {
red.AddEntry(creationHeight, minTime, balance, sharesDst) red.AddEntry(creationHeight, minTime, balance, sharesDst)
@ -537,10 +533,8 @@ func (k Keeper) IterateRedelegations(ctx sdk.Context, fn func(index int64, red t
// RemoveRedelegation removes a redelegation object and associated index. // RemoveRedelegation removes a redelegation object and associated index.
func (k Keeper) RemoveRedelegation(ctx sdk.Context, red types.Redelegation) { func (k Keeper) RemoveRedelegation(ctx sdk.Context, red types.Redelegation) {
delegatorAddress, err := sdk.AccAddressFromBech32(red.DelegatorAddress) delegatorAddress := sdk.MustAccAddressFromBech32(red.DelegatorAddress)
if err != nil {
panic(err)
}
store := ctx.KVStore(k.storeKey) store := ctx.KVStore(k.storeKey)
valSrcAddr, err := sdk.ValAddressFromBech32(red.ValidatorSrcAddress) valSrcAddr, err := sdk.ValAddressFromBech32(red.ValidatorSrcAddress)
if err != nil { if err != nil {
@ -585,12 +579,14 @@ func (k Keeper) SetRedelegationQueueTimeSlice(ctx sdk.Context, timestamp time.Ti
// InsertRedelegationQueue insert an redelegation delegation to the appropriate // InsertRedelegationQueue insert an redelegation delegation to the appropriate
// timeslice in the redelegation queue. // timeslice in the redelegation queue.
func (k Keeper) InsertRedelegationQueue(ctx sdk.Context, red types.Redelegation, func (k Keeper) InsertRedelegationQueue(ctx sdk.Context, red types.Redelegation,
completionTime time.Time) { completionTime time.Time,
) {
timeSlice := k.GetRedelegationQueueTimeSlice(ctx, completionTime) timeSlice := k.GetRedelegationQueueTimeSlice(ctx, completionTime)
dvvTriplet := types.DVVTriplet{ dvvTriplet := types.DVVTriplet{
DelegatorAddress: red.DelegatorAddress, DelegatorAddress: red.DelegatorAddress,
ValidatorSrcAddress: red.ValidatorSrcAddress, ValidatorSrcAddress: red.ValidatorSrcAddress,
ValidatorDstAddress: red.ValidatorDstAddress} ValidatorDstAddress: red.ValidatorDstAddress,
}
if len(timeSlice) == 0 { if len(timeSlice) == 0 {
k.SetRedelegationQueueTimeSlice(ctx, completionTime, []types.DVVTriplet{dvvTriplet}) k.SetRedelegationQueueTimeSlice(ctx, completionTime, []types.DVVTriplet{dvvTriplet})
@ -656,10 +652,7 @@ func (k Keeper) Delegate(
k.BeforeDelegationCreated(ctx, delAddr, validator.GetOperator()) k.BeforeDelegationCreated(ctx, delAddr, validator.GetOperator())
} }
delegatorAddress, err := sdk.AccAddressFromBech32(delegation.DelegatorAddress) delegatorAddress := sdk.MustAccAddressFromBech32(delegation.DelegatorAddress)
if err != nil {
panic(err)
}
// if subtractAccount is true then we are // if subtractAccount is true then we are
// performing a delegation and not a redelegation, thus the source tokens are // performing a delegation and not a redelegation, thus the source tokens are

View File

@ -497,10 +497,8 @@ func RedelegationsToRedelegationResponses(
panic(err) panic(err)
} }
delegatorAddress, err := sdk.AccAddressFromBech32(redel.DelegatorAddress) delegatorAddress := sdk.MustAccAddressFromBech32(redel.DelegatorAddress)
if err != nil {
panic(err)
}
val, found := k.GetValidator(ctx, valDstAddr) val, found := k.GetValidator(ctx, valDstAddr)
if !found { if !found {
return nil, types.ErrNoValidatorFound return nil, types.ErrNoValidatorFound

View File

@ -250,10 +250,7 @@ func (k Keeper) SlashRedelegation(ctx sdk.Context, srcValidator types.Validator,
panic(err) panic(err)
} }
delegatorAddress, err := sdk.AccAddressFromBech32(redelegation.DelegatorAddress) delegatorAddress := sdk.MustAccAddressFromBech32(redelegation.DelegatorAddress)
if err != nil {
panic(err)
}
delegation, found := k.GetDelegation(ctx, delegatorAddress, valDstAddr) delegation, found := k.GetDelegation(ctx, delegatorAddress, valDstAddr)
if !found { if !found {

View File

@ -39,10 +39,8 @@ func (k Keeper) BlockValidatorUpdates(ctx sdk.Context) []abci.ValidatorUpdate {
if err != nil { if err != nil {
panic(err) panic(err)
} }
delegatorAddress, err := sdk.AccAddressFromBech32(dvPair.DelegatorAddress) delegatorAddress := sdk.MustAccAddressFromBech32(dvPair.DelegatorAddress)
if err != nil {
panic(err)
}
balances, err := k.CompleteUnbonding(ctx, delegatorAddress, addr) balances, err := k.CompleteUnbonding(ctx, delegatorAddress, addr)
if err != nil { if err != nil {
continue continue
@ -69,10 +67,8 @@ func (k Keeper) BlockValidatorUpdates(ctx sdk.Context) []abci.ValidatorUpdate {
if err != nil { if err != nil {
panic(err) panic(err)
} }
delegatorAddress, err := sdk.AccAddressFromBech32(dvvTriplet.DelegatorAddress) delegatorAddress := sdk.MustAccAddressFromBech32(dvvTriplet.DelegatorAddress)
if err != nil {
panic(err)
}
balances, err := k.CompleteRedelegation( balances, err := k.CompleteRedelegation(
ctx, ctx,
delegatorAddress, delegatorAddress,

View File

@ -60,10 +60,8 @@ func UnmarshalDelegation(cdc codec.BinaryCodec, value []byte) (delegation Delega
} }
func (d Delegation) GetDelegatorAddr() sdk.AccAddress { func (d Delegation) GetDelegatorAddr() sdk.AccAddress {
delAddr, err := sdk.AccAddressFromBech32(d.DelegatorAddress) delAddr := sdk.MustAccAddressFromBech32(d.DelegatorAddress)
if err != nil {
panic(err)
}
return delAddr return delAddr
} }
func (d Delegation) GetValidatorAddr() sdk.ValAddress { func (d Delegation) GetValidatorAddr() sdk.ValAddress {