github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/libs/cosmos-sdk/x/auth/ibc-tx/internal/adapter/keyTpAdapter.go (about) 1 package adapter 2 3 import ( 4 "errors" 5 6 ethsecp256k12 "github.com/fibonacci-chain/fbc/app/crypto/ethsecp256k1" 7 "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/crypto/types" 8 "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/x/auth/ibc-tx/internal/ethsecp256k1" 9 secp256k1 "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/x/auth/ibc-tx/internal/secp256k1" 10 LagacyPubKey "github.com/fibonacci-chain/fbc/libs/tendermint/crypto" 11 secp256k12 "github.com/fibonacci-chain/fbc/libs/tendermint/crypto/secp256k1" 12 ) 13 14 func LagacyPubkey2ProtoBuffPubkey(pubKey LagacyPubKey.PubKey) types.PubKey { 15 var pubKeyPB types.PubKey 16 17 switch v := pubKey.(type) { 18 case ethsecp256k12.PubKey: 19 ethsecp256k1Pk := ðsecp256k1.PubKey{ 20 Key: v, 21 } 22 pubKeyPB = ethsecp256k1Pk 23 case secp256k12.PubKeySecp256k1: 24 secp256k1Pk := &secp256k1.PubKey{ 25 Key: v[:], 26 } 27 pubKeyPB = secp256k1Pk 28 default: 29 panic("not supported key algo") 30 } 31 return pubKeyPB 32 } 33 34 func ProtoBufPubkey2LagacyPubkey(pkData types.PubKey) (LagacyPubKey.PubKey, error) { 35 var pubkey LagacyPubKey.PubKey 36 switch v := pkData.(type) { 37 case *ethsecp256k1.PubKey: 38 pubkey = ethsecp256k12.PubKey(v.Bytes()) 39 case *secp256k1.PubKey: 40 secpPk := &secp256k12.PubKeySecp256k1{} 41 copy(secpPk[:], v.Bytes()) 42 pubkey = (LagacyPubKey.PubKey)(secpPk) 43 default: 44 return pubkey, errors.New("not support pub key type") 45 } 46 return pubkey, nil 47 }