Hi
I am trying to write Unit Tests for testing Signing and Verification of data payloads using eth_signTypedData_v4
.
In my unit test i write Typescript code to sign the data, and then pass that signature to the SmartContract wherein I attempt to verify it. But I am unable to sign the data in the first place using the web3
provided by @openzeppelin/test-environment
.
Here is my code inside my Unit test to try and sign it.
import { accounts, contract, web3 } from "@openzeppelin/test-environment";
...
...
async function signVoucher(payload: any, signerAddress: string) {
return new Promise((resolve, reject) => {
(web3.currentProvider as any).send(
{
method: "eth_signTypedData_v4",
params: [signerAddress, payload],
},
(err: any, res: any) => {
if (err) {
reject(err);
} else {
console.log("Signature :", res);
resolve(res);
}
}
);
});
}
This is the error I get:
error: {
message: 'Method eth_signTypedData_v4 not supported.',
code: -32000,
data: {
stack: 'Error: Method eth_signTypedData_v4 not supported.\n' +
:
:
name: 'Error'
}
This is the version of my modules:
"@openzeppelin/test-environment": "0.1.9",
"@openzeppelin/test-helpers": "0.5.15",
How do I call eth_signTypedData_v4
from within my Unit Tests ?
Thanks.