forked from cerc-io/laconicd
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>
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user