web3x icon indicating copy to clipboard operation
web3x copied to clipboard

eth_signTypedData example

Open alko89 opened this issue 6 years ago • 6 comments

Please provide an example for eth_signTypedData method. I'm trying to use your library instead of web3 and so far it works great! However I'm trying to implement signTypedData and don't know exactly how. I'm getting Method not found error. Having a working example would help a lot.

alko89 avatar Mar 18 '19 13:03 alko89

@Alko89 Could this be due to the provider you are using not supporting eth_signTypedData? Usage should be as simple as calling it with TypedSigningData as per the function signature. If you can provide an example of what you're trying that would help diagnose.

xf00f avatar Mar 23 '19 15:03 xf00f

Yes I think this was also the case. I ended up calling the providers send function directly.

However when looking at the code I noticed dataToSign type is defined as dataToSign: { type: string; name: string; value: string }[] which would make it incompatible with EIPs structure (I might be wrong since I'm new to ts). You can have a look at the sample structure in EIP712 example: https://github.com/ethereum/EIPs/blob/master/assets/eip-712/Example.js

alko89 avatar Mar 24 '19 11:03 alko89

@Alko89 To be honest I implemented this very quickly to get it working in MetaMask a few months back. I wouldn't be surprised if it's now broken.

I will leave the issue open but will probably not get round to doing a proper job on this for a few weeks. I'll gladly accept a PR if you have the time yourself.

xf00f avatar Mar 25 '19 16:03 xf00f

Is there any movement on this issue? We're trying to understand how to sign data using Web3x.

hickscorp avatar Jun 26 '19 19:06 hickscorp

Unfortunately I'm not working on the project I have been using web3x for and am currently not involved in Ethereum development.

alko89 avatar Jun 27 '19 11:06 alko89

We were able to get this to work:

// Here, eth is an instance of Web3x/Eth.
// data is an instance of Web3x/Eth/TypedSigningData.
eth.signTypedData(state.account, data)

hickscorp avatar Jun 28 '19 21:06 hickscorp