OpenSea Listings order hash and signature return recovered deifferent address #573
-
So I was trying to validate order components payload on my back end, and somehow when I try to recover the signer using OpenSea order hash and signature, it returned a wrong address. My first hypothesis was that there is something wrong with ecdsa lib on the backend. Hence I created a simple contract signature and hash verifier. https://rinkeby.etherscan.io/address/0xc6c1c47713603f9d22ba3012d8bb49ddb2ade88e#code I try to do the same thing there and it also returned different signer. Now I am confused on how to verify the hash and signature. "order_hash": "0x125fd17c5c0ff73edc4861a037d2cbea75301474e9e6128947521c172a2aaee1" signer should be "offerer": "0x8924f3f982a1c6b59fbdcc8ece1cbdd46188fda2" but some how it recovered 0xf4511BbE781158A6B2fb3D0Cc85A961e431762CB Still have no clue what happened |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments
-
Okey I just found out that, the data on the endpoint was only the hash for the typed data, so without domain, so I need to re construct the typed domain, and concat them into one, still trying to concat them ill update later for the final summary |
Beta Was this translation helpful? Give feedback.
-
So I can confirm that the orderHash returned by the endpoint is indeed the typeddata hash only, for the domainSepartor, I use the value from contract (information function), and it work like a charm now. Tho I still cant construct the separator in my backend using the same value EDIT: Found it, my verifyContract data type was string instead of address |
Beta Was this translation helpful? Give feedback.
So I can confirm that the orderHash returned by the endpoint is indeed the typeddata hash only, for the domainSepartor, I use the value from contract (information function), and it work like a charm now.
Tho I still cant construct the separator in my backend using the same value
EDIT:
Found it, my verifyContract data type was string instead of address