fix(dapps): normalize addresses to lowercase when validating signatures

fix(dapp-v2): normalize addresses to lowercase when validating signatures

chore: updates yarn.lock

fix(with-ethers): normalize addresses to lowercase for sig validation

fix(with-web3js): normalize addresses to lowercase for sig validation

Fixes #18
This commit is contained in:
Ben Kremer
2022-04-08 17:09:37 +02:00
parent c36bbd3357
commit 3a2ac70f1f
4 changed files with 115 additions and 89 deletions
+8 -8
View File
@@ -65,6 +65,9 @@ export default function App() {
web3Provider,
} = useWalletConnectClient();
const verifyEip155MessageSignature = (message: string, signature: string, address: string) =>
utils.verifyMessage(message, signature).toLowerCase() === address.toLowerCase();
const ping = async () => {
if (typeof client === "undefined") {
throw new Error("WalletConnect Client is not initialized");
@@ -150,7 +153,7 @@ export default function App() {
const hexMsg = encoding.utf8ToHex(msg, true);
const [address] = await web3Provider.listAccounts();
const signature = await web3Provider.send("personal_sign", [hexMsg, address]);
const valid = utils.verifyMessage(msg, signature) === address;
const valid = verifyEip155MessageSignature(msg, signature, address);
return {
method: "personal_sign",
address,
@@ -167,7 +170,7 @@ export default function App() {
const hexMsg = encoding.utf8ToHex(msg, true);
const [address] = await web3Provider.listAccounts();
const signature = await web3Provider.send("eth_sign", [address, hexMsg]);
const valid = utils.verifyMessage(msg, signature) === address;
const valid = verifyEip155MessageSignature(msg, signature, address);
return {
method: "eth_sign (standard)",
address,
@@ -198,12 +201,9 @@ export default function App() {
eip712.example.types;
const valid =
utils.verifyTypedData(
eip712.example.domain,
nonDomainTypes,
eip712.example.message,
signature,
) === address;
utils
.verifyTypedData(eip712.example.domain, nonDomainTypes, eip712.example.message, signature)
.toLowerCase() === address.toLowerCase();
return {
method: "eth_signTypedData",
address,