These are all the things we use from go-ethereum in status-console-client right now.
Note that this doesn't include transitive dependencies in vendor, such as status-go etc.
> ag "ethereum/go-ethereum/" --ignore vendor *.go --nofilename | sort -r | uniq
"github.com/ethereum/go-ethereum/rpc"
"github.com/ethereum/go-ethereum/p2p/enode"
"github.com/ethereum/go-ethereum/crypto/secp256k1"
"github.com/ethereum/go-ethereum/crypto"
"github.com/ethereum/go-ethereum/common/hexutil"
"github.com/ethereum/go-ethereum/common"
gethnode "github.com/ethereum/go-ethereum/node"
common.Hash
crypto.CompressPubkey(id)
crypto.FromECDSA(key)
crypto.FromECDSAPub(myPublicKey)
crypto.HexToECDSA(strings.TrimPrefix(*keyHex, "0x"))
crypto.GenerateKey()
crypto.UnmarshalPubkey(pubKey)
enode.ID
gethnode.Service
gethnode.ServiceConstructor
*gethnode.ServiceContext
hexutil.Decode(pubKeyHex)
hexutil.Encode(crypto.FromECDSAPub(pubKey))
*secp256k1.BitCurve
secp256k1.CompressPubkey(pub.X, pub.Y)
secp256k1.DecompressPubkey(buf[1:])
secp256k1.S256()
> ag "crypto\.|hexutil\.|gethnode\.|common\.|secp256k1\.|enode\." --ignore vendor *.go --nofilename | sort -r | uniq
sigBytes := crypto.FromECDSAPub(m.SigPubKey)
services := []gethnode.ServiceConstructor{
return hexutil.Encode(crypto.FromECDSAPub(pubKey))
RequestID common.Hash `json:"requestID"`
pub.X, pub.Y = secp256k1.DecompressPubkey(buf[1:])
publicKeyBytes := crypto.FromECDSAPub(c.PublicKey())
pubKey, err := hexutil.Decode(item.PublicKey)
pubKeyBytes, err := hexutil.Decode(pubKeyHex)
pub.Curve = secp256k1.S256()
myPublicKeyBytes := crypto.FromECDSAPub(myPublicKey)
log.Printf("chat address: %#x", crypto.FromECDSAPub(&privateKey.PublicKey))
LastEnvelopeHash common.Hash `json:"lastEnvelopeHash"`
key, err := crypto.GenerateKey()
k, err := crypto.HexToECDSA(strings.TrimPrefix(*keyHex, "0x"))
k, err := crypto.GenerateKey()
item.ChatAlias.publicKey, err = crypto.UnmarshalPubkey(pubKey)
hex.EncodeToString(crypto.FromECDSAPub(&privateKey.PublicKey)[:20]),
Hash common.Hash `json:"hash"`
func (s *server) Connected(id enode.ID) (bool, error) {
func(ctx *gethnode.ServiceContext) (gethnode.Service, error) {
fmt.Printf("Your private key: %#x\n", crypto.FromECDSA(key))
fmt.Printf("Starting with a new private key: %#x\n", crypto.FromECDSA(privateKey))
fmt.Printf("Chat address: %#x\n", crypto.FromECDSAPub(&privateKey.PublicKey))
crypto.FromECDSAPub(&privateKey.PublicKey),
c.publicKey, err = crypto.UnmarshalPubkey(pubKeyBytes)
copy(rst[1:], secp256k1.CompressPubkey(pub.X, pub.Y))
case *secp256k1.BitCurve:
author = "0x" + hex.EncodeToString(crypto.CompressPubkey(id))[:7]
Probably need to triage the geth in status-go modules a bit, depending on how clean the status-console-client using status-go interface is.