Changeset View
Changeset View
Standalone View
Standalone View
web/cashtab/src/components/SignVerifyMsg/SignVerifyMsg.js
Show First 20 Lines • Show All 92 Lines • ▼ Show 20 Lines | const SignVerifyMsg = () => { | ||||
const [messageVerificationAddrError, setMessageVerificationAddrError] = | const [messageVerificationAddrError, setMessageVerificationAddrError] = | ||||
useState(false); | useState(false); | ||||
const [messageVerificationAddrIsValid, setMessageVerificationAddrIsValid] = | const [messageVerificationAddrIsValid, setMessageVerificationAddrIsValid] = | ||||
useState(false); | useState(false); | ||||
const [messageVerificationSigIsValid, setMessageVerificationSigIsValid] = | const [messageVerificationSigIsValid, setMessageVerificationSigIsValid] = | ||||
useState(false); | useState(false); | ||||
const [messageVerificationSigError, setMessageVerificationSigError] = | const [messageVerificationSigError, setMessageVerificationSigError] = | ||||
useState(false); | useState(false); | ||||
const signMessageByPk = () => { | const signMessageByPk = async () => { | ||||
try { | try { | ||||
// First, get required params | // First, get required params | ||||
const keyPair = getECPairFromWIF(wallet.Path1899.fundingWif); | const keyPair = getECPairFromWIF(wallet.Path1899.fundingWif); | ||||
// Reference https://github.com/Permissionless-Software-Foundation/bch-js/blob/master/src/bitcoincash.js#L161 | // Reference https://github.com/Permissionless-Software-Foundation/bch-js/blob/master/src/bitcoincash.js#L161 | ||||
const privKey = keyPair.d.toBuffer(32); | const privKey = keyPair.d.toBuffer(32); | ||||
// Now you can get the local signature | // Now you can get the local signature | ||||
const messageSignature = xecMessage | const messageSignature = xecMessage | ||||
.sign(msgToSign, privKey, keyPair.compressed) | .sign(msgToSign, privKey, keyPair.compressed) | ||||
.toString('base64'); | .toString('base64'); | ||||
// Also test the async function | |||||
let asyncSignature = await ( | |||||
await xecMessage.signAsync( | |||||
msgToSign, | |||||
privKey, | |||||
keyPair.compressed, | |||||
) | |||||
).toString('base64'); | |||||
console.log(`sync sig`, messageSignature); | |||||
console.log(`asyncSignature`, asyncSignature); | |||||
if (messageSignature === asyncSignature) { | |||||
console.log(`Both methods not broken`); | |||||
} | |||||
setMessageSignature(messageSignature); | setMessageSignature(messageSignature); | ||||
messageSignedNotification(messageSignature); | messageSignedNotification(messageSignature); | ||||
} catch (err) { | } catch (err) { | ||||
let message; | let message; | ||||
if (!err.error && !err.message) { | if (!err.error && !err.message) { | ||||
message = err.message || err.error || JSON.stringify(err); | message = err.message || err.error || JSON.stringify(err); | ||||
} | } | ||||
errorNotification(err, message, 'Message Signing Error'); | errorNotification(err, message, 'Message Signing Error'); | ||||
▲ Show 20 Lines • Show All 346 Lines • Show Last 20 Lines |