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 := &ethsecp256k1.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  }