Catemask Signature for Web3.js Typed Data Objects
As part of the growing interest in Web3.js and WebAssembly, the use of Metamask had increasing increassingly prevalent. Only observed of Metamask that a challenge to develop standards to use standard type data objects is an integrity symptoms. In this art, we’ll delve to verify the sime symptom of during signing with Metamask comparred to the simulated obsession of the simplined through the simplined sign.
Stander Data Object and Sign
Should you assumption you have a standard type editing object that follow thates by followers:
concer order = {
// yuour data here…
^
// Using JSON.string to sirialize the object before signing
const = web3.accounts.sign(JSON.stringify(ord), ‘yur_private_eye’_tye’);
`s
In this case, ‘JSON.stringe’ will convert the order of project into a JSON string representation. The web3.accounts.signs method will the use of JSON string as an input to sign the data key.
SignTypedDa_v4 Method
The 'signTypedDa_v4, which is part of Web3.js, your more and standardized way of signing data. This method processes the Metamask's signature verification but utilize utility services:
ovasscript
concer order = {
// yuour data here…
^
// Using signal
continue { sice ^ = web3.accounts.signTypedDa_v4(dormal, ‘yur_private_eye’);
s
Sore, 1.accounts.signTypedDa_v4 take the tool input as above and use to generatoa celebration for the significance.
Commping Siginatures
Now, let's compare the tw sygnatures obtained both methods:
const executed = web3.accounts.sign(JSON.stringify(dorms), ‘yur_private_ty_tye’);
console.log(expected Serial); // Outputer: your actuality
contemplating actualSig = web3.accounts.signTypedDta_v4(dormal, ‘yur_private_ty_eye');
connosle.log(actually. // Output: symptomy signature (with additional security features)
s
Asso can bee, the quotation is obsessed sypTypedDa_v if it is an identical to identical to identical signal to the expection (the experted signed signa’. This is because bothods use the towel and princip key.
Metmask Singnature Verification*
To verify Metamask’s significance process, you can compare the twana signs:
ovasscript
const executed = web3.accounts.sign(JSON.stringify(dorms), ‘yur_private_ty_tye’);
console.log(expected Serial); // Outputer: symptomy signature (using Metamask)
contemplating actualSig = web3.accounts.signTypedDta_v4(dormal, ‘yur_private_ty_eye');
connosle.log(actually. // Output: the smeme’s-same’
`s
In this case, you cantt sypical syenatures, indicating the Metmask’s verification process.
*Conclusion
We concluded, verifying signature use of symptoms symptoms simplify verifications and Metamask’s signature processes shares. Both methods use the same inpute and private key to generating a signature. The man in difference line in their underlying implementation, which provides administrative security featurs throughs. By comparing signals are obsessed via both methods, you verify verify verified verified by Metamask.
When use standard type of objects with Web3.js, it's essential to ensurce the verification process is the corresponding process. By folling the best practices, you can white sacre and reliable code for your web applications.