-
Notifications
You must be signed in to change notification settings - Fork 990
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
personal_sign method does not work in status #11333
Comments
so there is the error |
Another way to recreate the error is using snapshot which is the primary use case that is being blocked by this issue now. It does trigger the signing box but it is empty. You can recreate this error by going to: https://demo.snapshot.page/#/status/create and attempting to publish a poll by filling in all the fields. |
@bgits it seems you're trying to sign typed data ? in that case you have to use a different method |
Here is another test: trying to sign both a plain text string and typed data works using metamask but neither works in Status. https://gateway.pinata.cloud/ipfs/QmckPsNLbGSQjTTAwchqyrUrG7FwnrhdHsJh5n7gMn9ykV/ |
in this example sign message doesn't work because it uses eth.sign which is not supported, and for typed data it uses |
do you know what's the difference between v3 and v4 and why you can't use v3 ? |
It's being used because that is what ethers.js exposes. It does not exposes any other typed signer. |
I don't believe the error is due to typed data. The data being sent over is a JSON to sign but not typed data. Furthermore I created an additional test to use the same updated test can be found here: https://gateway.pinata.cloud/ipfs/QmXECbBSchgQja9VQAqQopNTMwtwKcF46BEWrCgkfTJYGN/ |
we expect the message as a hex for |
eth_signTypedData_v4 status-im/status-go#2062 |
This is problematic because the user will not be able to understand what they are signing. How would signing status principles work for example? This is also not consistent with how other wallets handle it. |
we convert it to a string, all dapps sign fine in status, CK and others
it works according to spec in status https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_sign |
I don't see anything in the spec that requires the message to be in hex. This is consistent with how every other wallet is handling it. |
This is not true. This issue is open because https://snapshot.page/ does not sign in status while it does work with other wallets. This is the most used voting dapp and we have been trying to use it with Status and are blocked by this. |
then we need to implement something similar to MetaMask/metamask-extension#1177 |
It also does not display hex as a string to the user. https://gateway.pinata.cloud/ipfs/QmVjDxwxTN4zDPDp9NzzANEEp5pUhNzKGUjHXFD9Sf1MRw/ |
let's ask @richard-ramos about that |
it looks like its just will be better to implement it similar to MM |
thanks @bgits |
I added that because back when I was working on teller network, the GSN made the users sign a random bytes32 hash that wasn't being shown at all in status, or displayed weird characters, and this way it would show the hex string (or at least did back then) ... @bgits, how do you trigger the personal_sign to show the ascii for the messages when the lenght of the message is 32 bytes?
|
@richard-ramos https://github.com/status-im/ethers-testbed/blob/master/src/App.jsx#L68-L70 |
Regarding signtypeddata_v4 , I have noticed that metamask might not be according to specs: So before we proceed any further it would be good to clarify exactly which one is the correct behavior. We will also look at |
same for |
On desktop for |
Signed-off-by: andrey <[email protected]>
Bug Report
Using the
personal_sign
method does not seem to work within Status while it works from web3 wallets.Problem
Using the personal sign method fails to trigger a populated dialog that can be signed by the user.
An overview of the background required to understand the problem.
Attempting to use snapshot.page we discovered that Status is the only wallet unable to sign messages for voting.
A problem description.
Using the following test page: https://danfinlay.github.io/js-eth-personal-sign-examples/
When clicking on
personal_sign
it should trigger a populated dialog to sign (as in metamask). It either fails to trigger or populated an empty dialog box as when attempting to vote using snapshot.Expected behavior
It should populate a dialog box and allow the user to sign it.
Actual behavior
Either no dialog box appears or an empty one sign request appears.
Reproduction
Additional Information
The text was updated successfully, but these errors were encountered: