laconicd/utils/signature.go
Isha Venikar a21e9ea387 Implement onboarding module for testnet validator enrollment (#3)
* Add proto files for onboarding module

* Add generated proto bindings

* Define onboarding object

* Define the participants state in keeper

* Update genesis file to initialize and export module state to/from genesis

* Add msg to onboard participant

* Register command to enroll participant

* Add functionality to decode ethereum address from signature

* Add comments for messages and fields

* Fix lint errors in proto files

* Add message validation and events in msg_server

* Reuse crypto utils from go-nitro

* Sign entire eth_payload object

* Use google API for rpc method

* Regenerate proto bindings

---------

Co-authored-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
2024-07-16 09:25:39 +05:30

19 lines
426 B
Go

package utils
import (
"github.com/ethereum/go-ethereum/common"
"github.com/statechannels/go-nitro/crypto"
)
func DecodeEthereumAddress(message []byte, sig string) (string, error) {
if len(sig) > 2 && sig[:2] == "0x" {
sig = sig[2:]
}
signature := crypto.SplitSignature(common.Hex2Bytes(sig))
ethereumAddress, err := crypto.RecoverEthereumMessageSigner(message, signature)
return ethereumAddress.String(), err
}