fix(x/auth/tx): add missing timeoutTimestamp in newBuilderFromDecodedTx (backport #23492) (#23497)

Co-authored-by: mmsqe <mavis@crypto.com>
Co-authored-by: Julien Robert <julien@rbrt.fr>
This commit is contained in:
mergify[bot] 2025-01-24 08:26:28 +00:00 committed by GitHub
parent a2fdd50b20
commit 36e0cbed15
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 24 additions and 0 deletions

View File

@ -62,6 +62,7 @@ Every module contains its own CHANGELOG.md. Please refer to the module you are i
### Bug Fixes
* (x/auth/tx) [#23492](https://github.com/cosmos/cosmos-sdk/pull/23492) Add missing timeoutTimestamp in newBuilderFromDecodedTx.
* (query) [#23002](https://github.com/cosmos/cosmos-sdk/pull/23002) Fix collection filtered pagination.
* (x/auth/tx) [#23170](https://github.com/cosmos/cosmos-sdk/pull/23170) Avoid panic from `newWrapperFromDecodedTx` when `AuthInfo.Fee` is optional in decodedTx.
* (x/auth/tx) [#23144](https://github.com/cosmos/cosmos-sdk/pull/23144) Add missing `CacheWithValue` for `ExtensionOptions`.

View File

@ -63,6 +63,7 @@ func newBuilderFromDecodedTx(
codec: codec,
msgs: decoded.Messages,
timeoutHeight: decoded.GetTimeoutHeight(),
timeoutTimestamp: decoded.GetTimeoutTimeStamp(),
granter: decoded.FeeGranter(),
payer: payer,
unordered: decoded.GetUnordered(),

View File

@ -6,10 +6,32 @@ import (
any "github.com/cosmos/gogoproto/types/any"
"github.com/stretchr/testify/require"
"github.com/cosmos/cosmos-sdk/client"
codectestutil "github.com/cosmos/cosmos-sdk/codec/testutil"
"github.com/cosmos/cosmos-sdk/testutil"
"github.com/cosmos/cosmos-sdk/types/tx"
authclient "github.com/cosmos/cosmos-sdk/x/auth/client"
)
func TestIntoV2SignerInfo(t *testing.T) {
require.NotNil(t, intoV2SignerInfo([]*tx.SignerInfo{{}}))
require.NotNil(t, intoV2SignerInfo([]*tx.SignerInfo{{PublicKey: &any.Any{}}}))
}
func TestBuilderWithTimeoutTimestamp(t *testing.T) {
cdc := codectestutil.CodecOptions{}.NewCodec()
interfaceRegistry := cdc.InterfaceRegistry()
signingCtx := interfaceRegistry.SigningContext()
txConfig := NewTxConfig(cdc, signingCtx.AddressCodec(), signingCtx.ValidatorAddressCodec(), DefaultSignModes)
txBuilder := txConfig.NewTxBuilder()
encodedTx, err := txConfig.TxJSONEncoder()(txBuilder.GetTx())
require.NoError(t, err)
file := testutil.WriteToNewTempFile(t, string(encodedTx))
clientCtx := client.Context{InterfaceRegistry: interfaceRegistry, TxConfig: txConfig}
decodedTx, err := authclient.ReadTxFromFile(clientCtx, file.Name())
require.NoError(t, err)
txBldr, err := txConfig.WrapTxBuilder(decodedTx)
require.NoError(t, err)
b := txBldr.(*builder)
require.False(t, b.timeoutTimestamp.IsZero())
}