From 1a88c8393c0a68b9482f7a87fd018870b8eb4619 Mon Sep 17 00:00:00 2001 From: Barry Gitarts Date: Tue, 14 Jul 2020 12:02:04 -0400 Subject: [PATCH] add message signing --- dapp/src/utils/signing.ts | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 dapp/src/utils/signing.ts diff --git a/dapp/src/utils/signing.ts b/dapp/src/utils/signing.ts new file mode 100644 index 0000000..85a1d26 --- /dev/null +++ b/dapp/src/utils/signing.ts @@ -0,0 +1,32 @@ +declare var web3: any + +type signedMessage = { + address: string, + msg: string, + sig: string, + version: number +} + +export function sign(message: string): Promise { + return web3.eth.personal.sign(message, web3.eth.defaultAccount) +} + +export function verify(message: string, sig: string): Promise { + return web3.eth.personal.ecRecover(message, sig) +} + +export async function verifySignedMessage(message: signedMessage): Promise { + const { address, msg, sig } = message + const resAddress = await verify(msg, sig) + return address.toLowerCase() == resAddress.toLowerCase() +} + +export async function prettySign(message: string): Promise { + const sig = await sign(message) + return { + address: web3.eth.defaultAccount, + msg: message, + sig, + version: 2 + }; +}