github.com/hungdoo/bot@v0.0.0-20240325145135-dd1f386f7b81/src/packages/tombplus/key.go (about)

     1  package tombplus
     2  
     3  import (
     4  	"crypto/ecdsa"
     5  	"errors"
     6  
     7  	"github.com/ethereum/go-ethereum/common"
     8  	"github.com/ethereum/go-ethereum/crypto"
     9  )
    10  
    11  func PrivateKeyFromHex(privateKeyHex string) (*ecdsa.PrivateKey, error) {
    12  	return crypto.HexToECDSA(privateKeyHex)
    13  }
    14  
    15  func AddressFromPriKey(privateKeyECDSA *ecdsa.PrivateKey) (common.Address, error) {
    16  	publicKey := privateKeyECDSA.Public()
    17  	publicKeyECDSA, ok := publicKey.(*ecdsa.PublicKey)
    18  	if !ok {
    19  		return common.Address{}, errors.New("error casting public key to ECDSA")
    20  	}
    21  
    22  	return crypto.PubkeyToAddress(*publicKeyECDSA), nil
    23  }