エーテルを使用して署名を生成し検証する方法を学ぶ
1737 ワード
ethersモジュールは、JavaScript(およびtypescript)で完全なEthereum財布実装とユーティリティを提供します.
エーテルのインポート
import { ethers } from "ethers"
財布のインストールを確認する
const isWalletInstalled = () => {
if (!window.ethereum) {
throw new Error("No crypto wallet found. Please install it.");
} else {
return true;
}
};
依頼口座
const requestAccount = async () => {
if (!window.ethereum) {
throw new Error("No crypto wallet found. Please install it.");
}
const accounts = await window.ethereum.send("eth_requestAccounts");
if (accounts.result.length) {
const account = accounts.result[0];
}
};
メッセージに署名するための財布の使用
const signMessage = async (message) => {
try {
if (isWalletInstalled()) {
const provider = new ethers.providers.Web3Provider(window.ethereum);
const signer = provider.getSigner();
const signature = await signer.signMessage(message);
const address = await signer.getAddress();
return {
signature,
address,
};
}
} catch (err) {
console.log(err);
}
};
確認メッセージ
const verifyMessage = async ({ message, address, signature }) => {
try {
const signerAddr = await ethers.utils.verifyMessage(message, signature);
if (signerAddr !== address) {
return false;
}
return true;
} catch (err) {
console.log(err);
return false;
}
アルト・チャロReference
この問題について(エーテルを使用して署名を生成し検証する方法を学ぶ), 我々は、より多くの情報をここで見つけました https://dev.to/chandramarch18/learn-how-to-generate-and-verify-signatures-using-ethers-76jテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol