Co-authored-by: Vishal Potpelliwar <71565171+vishal-kanna@users.noreply.github.com>
This commit is contained in:
parent
7d07df5bd8
commit
5ca5039cf2
@ -51,6 +51,7 @@ Ref: https://keepachangelog.com/en/1.0.0/
|
||||
|
||||
### API Breaking Changes
|
||||
|
||||
* (types) [#16272](https://github.com/cosmos/cosmos-sdk/pull/16272) From now the `FeeGranter` in the `FeeTx` interface takes the byte type instead of string.
|
||||
* (testutil) [#16899](https://github.com/cosmos/cosmos-sdk/pull/16899) The *cli testutil* `QueryBalancesExec` has been removed. Use the gRPC or REST query instead.
|
||||
* (x/auth) [#16650](https://github.com/cosmos/cosmos-sdk/pull/16650) The *cli testutil* `QueryAccountExec` has been removed. Use the gRPC or REST query instead.
|
||||
* (types/math) [#16040](https://github.com/cosmos/cosmos-sdk/pull/16798) Remove aliases in `types/math.go` (part 2).
|
||||
|
||||
@ -61,7 +61,7 @@ type (
|
||||
GetGas() uint64
|
||||
GetFee() Coins
|
||||
FeePayer() []byte
|
||||
FeeGranter() string
|
||||
FeeGranter() []byte
|
||||
}
|
||||
|
||||
// TxWithMemo must have GetMemo() method to use ValidateMemoDecorator
|
||||
|
||||
@ -86,11 +86,8 @@ func (dfd DeductFeeDecorator) checkDeductFee(ctx sdk.Context, sdkTx sdk.Tx, fee
|
||||
|
||||
// if feegranter set deduct fee from feegranter account.
|
||||
// this works with only when feegrant enabled.
|
||||
if feeGranter != "" {
|
||||
feeGranterAddr, err := sdk.AccAddressFromBech32(feeGranter)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if feeGranter != nil {
|
||||
feeGranterAddr := sdk.AccAddress(feeGranter)
|
||||
|
||||
if dfd.feegrantKeeper == nil {
|
||||
return sdkerrors.ErrInvalidRequest.Wrap("fee grants are not enabled")
|
||||
|
||||
@ -210,12 +210,12 @@ func (w *wrapper) FeePayer() []byte {
|
||||
return signers[0]
|
||||
}
|
||||
|
||||
func (w *wrapper) FeeGranter() string {
|
||||
func (w *wrapper) FeeGranter() []byte {
|
||||
feeGranter := w.tx.AuthInfo.Fee.Granter
|
||||
if feeGranter != "" {
|
||||
return feeGranter
|
||||
return sdk.MustAccAddressFromBech32(feeGranter)
|
||||
}
|
||||
return ""
|
||||
return nil
|
||||
}
|
||||
|
||||
func (w *wrapper) GetTip() *tx.Tip {
|
||||
|
||||
@ -317,5 +317,5 @@ func TestBuilderFeeGranter(t *testing.T) {
|
||||
|
||||
// set fee granter
|
||||
txBuilder.SetFeeGranter(addr1)
|
||||
require.Equal(t, addr1.String(), txBuilder.GetTx().FeeGranter())
|
||||
require.Equal(t, addr1.String(), sdk.AccAddress(txBuilder.GetTx().FeeGranter()).String())
|
||||
}
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
package tx
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
errorsmod "cosmossdk.io/errors"
|
||||
|
||||
@ -56,13 +56,8 @@ func (signModeDirectAuxHandler) GetSignBytes(
|
||||
|
||||
// Fee payer cannot use SIGN_MODE_DIRECT_AUX, because SIGN_MODE_DIRECT_AUX
|
||||
// does not sign over fees, which would create malleability issues.
|
||||
addrBz, err := sdk.AccAddressFromBech32(data.Address)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if bytes.Equal(feePayer, addrBz) {
|
||||
return nil, sdkerrors.ErrUnauthorized.Wrapf("fee payer %s cannot sign with %s", feePayer, signingtypes.SignMode_SIGN_MODE_DIRECT_AUX)
|
||||
if strings.EqualFold(sdk.AccAddress(feePayer).String(), data.Address) {
|
||||
return nil, sdkerrors.ErrUnauthorized.Wrapf("fee payer %s cannot sign with %s", sdk.AccAddress(feePayer).String(), signingtypes.SignMode_SIGN_MODE_DIRECT_AUX)
|
||||
}
|
||||
|
||||
signDocDirectAux := types.SignDocDirectAux{
|
||||
|
||||
@ -82,7 +82,7 @@ func TestDirectAuxHandler(t *testing.T) {
|
||||
|
||||
t.Log("verify fee payer cannot use SIGN_MODE_DIRECT_AUX")
|
||||
_, err = modeHandler.GetSignBytes(signingtypes.SignMode_SIGN_MODE_DIRECT_AUX, feePayerSigningData, txBuilder.GetTx())
|
||||
require.EqualError(t, err, fmt.Sprintf("fee payer %s cannot sign with %s: unauthorized", []byte(feePayerAddr), signingtypes.SignMode_SIGN_MODE_DIRECT_AUX))
|
||||
require.EqualError(t, err, fmt.Sprintf("fee payer %s cannot sign with %s: unauthorized", feePayerAddr.String(), signingtypes.SignMode_SIGN_MODE_DIRECT_AUX))
|
||||
|
||||
t.Log("verify GetSignBytes with generating sign bytes by marshaling signDocDirectAux")
|
||||
signBytes, err := modeHandler.GetSignBytes(signingtypes.SignMode_SIGN_MODE_DIRECT_AUX, signingData, txBuilder.GetTx())
|
||||
|
||||
Loading…
Reference in New Issue
Block a user