Trước tiên, ta cần tạo ra một signer thông qua constructor của Wallet như sau:
const signer = new ethers.Wallet(PRIVATE_KEY as string, provider)Sau đó ta có thể gọi phương thức signMessage để thực hiện việc ký thông điệp:
const message = "Hello World!"
const signature = await signer.signMessage(message)Để xác thực văn bản đã ký, ta cần dùng hàm verifyMessage:
console.assert(verifyMessage(message, signature) === signer.address)Hàm hoàn chỉnh:
async function signing() {
const signer = new ethers.Wallet(PRIVATE_KEY as string, provider)
const message = "Hello World!"
const signature = await signer.signMessage(message)
console.assert(verifyMessage(message, signature) === signer.address) // Pass
console.assert(verifyMessage("Hello", signature) === signer.address) // Fail
}
signing()