refactor(types,client,simapp): remove some address String() calls (#21455)

This commit is contained in:
Julián Toledano
2024-09-02 10:28:12 +00:00
committed by GitHub
parent f79b3802ac
commit a51b432b76
23 changed files with 243 additions and 103 deletions
+18 -4
View File
@@ -15,7 +15,6 @@ import (
codectypes "github.com/cosmos/cosmos-sdk/codec/types"
cryptocodec "github.com/cosmos/cosmos-sdk/crypto/codec"
cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types"
sdk "github.com/cosmos/cosmos-sdk/types"
qtypes "github.com/cosmos/cosmos-sdk/types/query"
"github.com/cosmos/cosmos-sdk/version"
)
@@ -73,10 +72,15 @@ func (s queryServer) GetLatestBlock(ctx context.Context, _ *GetLatestBlockReques
return nil, err
}
sdkBlock, err := convertBlock(protoBlock, s.clientCtx.ConsensusAddressCodec)
if err != nil {
return nil, err
}
return &GetLatestBlockResponse{
BlockId: &protoBlockID,
Block: protoBlock,
SdkBlock: convertBlock(protoBlock),
SdkBlock: sdkBlock,
}, nil
}
@@ -96,10 +100,15 @@ func (s queryServer) GetBlockByHeight(ctx context.Context, req *GetBlockByHeight
return nil, err
}
sdkBlock, err := convertBlock(protoBlock, s.clientCtx.ConsensusAddressCodec)
if err != nil {
return nil, err
}
return &GetBlockByHeightResponse{
BlockId: &protoBlockID,
Block: protoBlock,
SdkBlock: convertBlock(protoBlock),
SdkBlock: sdkBlock,
}, nil
}
@@ -177,8 +186,13 @@ func ValidatorsOutput(ctx context.Context, clientCtx client.Context, height *int
return nil, err
}
addr, err := clientCtx.ConsensusAddressCodec.BytesToString(v.Address)
if err != nil {
return nil, err
}
resp.Validators[i] = &Validator{
Address: sdk.ConsAddress(v.Address).String(),
Address: addr,
ProposerPriority: v.ProposerPriority,
PubKey: anyPub,
VotingPower: v.VotingPower,
+16 -8
View File
@@ -3,11 +3,16 @@ package cmtservice
import (
cmtprototypes "github.com/cometbft/cometbft/api/cometbft/types/v1"
sdk "github.com/cosmos/cosmos-sdk/types"
"cosmossdk.io/core/address"
)
// convertHeader converts CometBFT header to sdk header
func convertHeader(h cmtprototypes.Header) Header {
func convertHeader(h cmtprototypes.Header, ac address.Codec) (Header, error) {
proposerAddr, err := ac.BytesToString(h.ProposerAddress)
if err != nil {
return Header{}, err
}
return Header{
Version: h.Version,
ChainID: h.ChainID,
@@ -22,18 +27,21 @@ func convertHeader(h cmtprototypes.Header) Header {
EvidenceHash: h.EvidenceHash,
LastResultsHash: h.LastResultsHash,
LastCommitHash: h.LastCommitHash,
ProposerAddress: sdk.ConsAddress(h.ProposerAddress).String(),
}
ProposerAddress: proposerAddr,
}, nil
}
// convertBlock converts CometBFT block to sdk block
func convertBlock(cmtblock *cmtprototypes.Block) *Block {
func convertBlock(cmtblock *cmtprototypes.Block, ac address.Codec) (*Block, error) {
b := new(Block)
b.Header = convertHeader(cmtblock.Header)
var err error
b.Header, err = convertHeader(cmtblock.Header, ac)
if err != nil {
return nil, err
}
b.LastCommit = cmtblock.LastCommit
b.Data = cmtblock.Data
b.Evidence = cmtblock.Evidence
return b
return b, nil
}
+3 -1
View File
@@ -116,8 +116,10 @@ func Test_runShowCmd(t *testing.T) {
require.NoError(t, err)
addr, err := k.GetAddress()
require.NoError(t, err)
addrStr, err := clientCtx.AddressCodec.BytesToString(addr)
require.NoError(t, err)
cmd.SetArgs([]string{
addr.String(),
addrStr,
fmt.Sprintf("--%s=%s", flags.FlagKeyringDir, kbHome),
fmt.Sprintf("--%s=%s", FlagBechPrefix, sdk.PrefixAccount),
fmt.Sprintf("--%s=%s", flags.FlagKeyringBackend, keyring.BackendTest),
+15 -13
View File
@@ -45,8 +45,13 @@ type TestAccountRetriever struct {
}
// GetAccount implements AccountRetriever.GetAccount
func (t TestAccountRetriever) GetAccount(_ Context, addr sdk.AccAddress) (Account, error) {
acc, ok := t.Accounts[addr.String()]
func (t TestAccountRetriever) GetAccount(clientCtx Context, addr sdk.AccAddress) (Account, error) {
addrStr, err := clientCtx.AddressCodec.BytesToString(addr)
if err != nil {
return nil, err
}
acc, ok := t.Accounts[addrStr]
if !ok {
return nil, fmt.Errorf("account: account %s not found", addr)
}
@@ -65,19 +70,16 @@ func (t TestAccountRetriever) GetAccountWithHeight(clientCtx Context, addr sdk.A
}
// EnsureExists implements AccountRetriever.EnsureExists
func (t TestAccountRetriever) EnsureExists(_ Context, addr sdk.AccAddress) error {
_, ok := t.Accounts[addr.String()]
if !ok {
return fmt.Errorf("ensureExists: account %s not found", addr)
}
return nil
func (t TestAccountRetriever) EnsureExists(clientCtx Context, addr sdk.AccAddress) error {
_, err := t.GetAccount(clientCtx, addr)
return err
}
// GetAccountNumberSequence implements AccountRetriever.GetAccountNumberSequence
func (t TestAccountRetriever) GetAccountNumberSequence(_ Context, addr sdk.AccAddress) (accNum, accSeq uint64, err error) {
acc, ok := t.Accounts[addr.String()]
if !ok {
return 0, 0, fmt.Errorf("accountNumberSequence: account %s not found", addr)
func (t TestAccountRetriever) GetAccountNumberSequence(clientCtx Context, addr sdk.AccAddress) (accNum, accSeq uint64, err error) {
acc, err := t.GetAccount(clientCtx, addr)
if err != nil {
return 0, 0, err
}
return acc.Num, acc.Seq, nil
return acc.GetAccountNumber(), acc.GetSequence(), nil
}
+6 -5
View File
@@ -26,8 +26,9 @@ const (
var (
_, pub1, addr1 = testdata.KeyTestPubAddr()
addr1Str, _ = testutil.CodecOptions{}.GetAddressCodec().BytesToString(addr1)
rawSig = []byte("dummy")
msg1 = &countertypes.MsgIncreaseCounter{Signer: addr1.String(), Count: 1}
msg1 = &countertypes.MsgIncreaseCounter{Signer: addr1Str, Count: 1}
chainID = "test-chain"
)
@@ -131,7 +132,7 @@ func TestAuxTxBuilder(t *testing.T) {
func() error {
require.NoError(t, b.SetMsgs(msg1))
require.NoError(t, b.SetPubKey(pub1))
b.SetAddress(addr1.String())
b.SetAddress(addr1Str)
require.NoError(t, b.SetSignMode(signing.SignMode_SIGN_MODE_DIRECT_AUX))
_, err := b.GetSignBytes()
@@ -152,7 +153,7 @@ func TestAuxTxBuilder(t *testing.T) {
b.SetChainID(chainID)
require.NoError(t, b.SetMsgs(msg1))
require.NoError(t, b.SetPubKey(pub1))
b.SetAddress(addr1.String())
b.SetAddress(addr1Str)
err := b.SetSignMode(signing.SignMode_SIGN_MODE_DIRECT_AUX)
require.NoError(t, err)
@@ -174,7 +175,7 @@ func TestAuxTxBuilder(t *testing.T) {
func() error {
require.NoError(t, b.SetMsgs(msg1))
require.NoError(t, b.SetPubKey(pub1))
b.SetAddress(addr1.String())
b.SetAddress(addr1Str)
err := b.SetSignMode(signing.SignMode_SIGN_MODE_LEGACY_AMINO_JSON)
require.NoError(t, err)
@@ -193,7 +194,7 @@ func TestAuxTxBuilder(t *testing.T) {
b.SetChainID(chainID)
require.NoError(t, b.SetMsgs(msg1))
require.NoError(t, b.SetPubKey(pub1))
b.SetAddress(addr1.String())
b.SetAddress(addr1Str)
err := b.SetSignMode(signing.SignMode_SIGN_MODE_LEGACY_AMINO_JSON)
require.NoError(t, err)
+6 -1
View File
@@ -382,7 +382,12 @@ func makeAuxSignerData(clientCtx client.Context, f Factory, msgs ...sdk.Msg) (tx
return tx.AuxSignerData{}, err
}
b.SetAddress(fromAddress.String())
fromAddrStr, err := clientCtx.AddressCodec.BytesToString(fromAddress)
if err != nil {
return tx.AuxSignerData{}, err
}
b.SetAddress(fromAddrStr)
if clientCtx.Offline {
b.SetAccountNumber(f.accountNumber)
b.SetSequence(f.sequence)
+28 -8
View File
@@ -30,6 +30,8 @@ import (
signingtypes "github.com/cosmos/cosmos-sdk/types/tx/signing"
)
var ac = testutil.CodecOptions{}.GetAddressCodec()
func newTestTxConfig() (client.TxConfig, codec.Codec) {
encodingConfig := moduletestutil.MakeTestEncodingConfig(testutil.CodecOptions{})
cdc := codec.NewProtoCodec(encodingConfig.InterfaceRegistry)
@@ -130,8 +132,11 @@ func TestBuildSimTx(t *testing.T) {
_, _, err = kb.NewMnemonic("test_key1", keyring.English, path, keyring.DefaultBIP39Passphrase, hd.Secp256k1)
require.NoError(t, err)
fromAddr, err := ac.BytesToString(sdk.AccAddress("from"))
require.NoError(t, err)
txf := mockTxFactory(txCfg).WithSignMode(defaultSignMode).WithKeybase(kb)
msg := &countertypes.MsgIncreaseCounter{Signer: sdk.AccAddress("from").String(), Count: 1}
msg := &countertypes.MsgIncreaseCounter{Signer: fromAddr, Count: 1}
bz, err := txf.BuildSimTx(msg)
require.NoError(t, err)
require.NotNil(t, bz)
@@ -146,8 +151,10 @@ func TestBuildUnsignedTx(t *testing.T) {
_, _, err = kb.NewMnemonic("test_key1", keyring.English, path, keyring.DefaultBIP39Passphrase, hd.Secp256k1)
require.NoError(t, err)
fromAddr, err := ac.BytesToString(sdk.AccAddress("from"))
require.NoError(t, err)
txf := mockTxFactory(txConfig).WithKeybase(kb)
msg := &countertypes.MsgIncreaseCounter{Signer: sdk.AccAddress("from").String(), Count: 1}
msg := &countertypes.MsgIncreaseCounter{Signer: fromAddr, Count: 1}
tx, err := txf.BuildUnsignedTx(msg)
require.NoError(t, err)
require.NotNil(t, tx)
@@ -165,8 +172,11 @@ func TestBuildUnsignedTxWithWithExtensionOptions(t *testing.T) {
Value: []byte("test"),
},
}
fromAddr, err := ac.BytesToString(sdk.AccAddress("from"))
require.NoError(t, err)
txf := mockTxFactory(txCfg).WithExtensionOptions(extOpts...)
msg := &countertypes.MsgIncreaseCounter{Signer: sdk.AccAddress("from").String(), Count: 1}
msg := &countertypes.MsgIncreaseCounter{Signer: fromAddr, Count: 1}
tx, err := txf.BuildUnsignedTx(msg)
require.NoError(t, err)
require.NotNil(t, tx)
@@ -209,7 +219,9 @@ func TestMnemonicInMemo(t *testing.T) {
WithChainID("test-chain").
WithKeybase(kb)
msg := &countertypes.MsgIncreaseCounter{Signer: sdk.AccAddress("from").String(), Count: 1}
fromAddr, err := ac.BytesToString(sdk.AccAddress("from"))
require.NoError(t, err)
msg := &countertypes.MsgIncreaseCounter{Signer: fromAddr, Count: 1}
tx, err := txf.BuildUnsignedTx(msg)
if tc.error {
require.Error(t, err)
@@ -260,8 +272,12 @@ func TestSign(t *testing.T) {
requireT.NoError(err)
addr2, err := k2.GetAddress()
requireT.NoError(err)
msg1 := &countertypes.MsgIncreaseCounter{Signer: addr1.String(), Count: 1}
msg2 := &countertypes.MsgIncreaseCounter{Signer: addr2.String(), Count: 1}
addr1Str, err := ac.BytesToString(addr1)
require.NoError(t, err)
addr2Str, err := ac.BytesToString(addr2)
require.NoError(t, err)
msg1 := &countertypes.MsgIncreaseCounter{Signer: addr1Str, Count: 1}
msg2 := &countertypes.MsgIncreaseCounter{Signer: addr2Str, Count: 1}
txb, err := txfNoKeybase.BuildUnsignedTx(msg1, msg2)
requireT.NoError(err)
txb2, err := txfNoKeybase.BuildUnsignedTx(msg1, msg2)
@@ -414,8 +430,12 @@ func TestPreprocessHook(t *testing.T) {
addr1, err := kr.GetAddress()
requireT.NoError(err)
msg1 := &countertypes.MsgIncreaseCounter{Signer: addr1.String(), Count: 1}
msg2 := &countertypes.MsgIncreaseCounter{Signer: addr2.String(), Count: 1}
addr1Str, err := ac.BytesToString(addr1)
require.NoError(t, err)
addr2Str, err := ac.BytesToString(addr2)
require.NoError(t, err)
msg1 := &countertypes.MsgIncreaseCounter{Signer: addr1Str, Count: 1}
msg2 := &countertypes.MsgIncreaseCounter{Signer: addr2Str, Count: 1}
txb, err := txfDirect.BuildUnsignedTx(msg1, msg2)
requireT.NoError(err)