本頁面為社群翻譯版本,僅供參考;內容以英文原版為準。
查看英文原版 ↗

籤名

建議使用現有的 SDK,而不是手動生成籤名。籤名出錯的可能性有很多。錯誤的籤名會使得根據籤名和負載恢復出的籤名者與預期不同,並導致以下錯誤之一:\ "L1 error: User or API Wallet 0x0123... does not exist."\ Must deposit before performing actions. User: 0x123...\ 其中返回的地址與你籤名的錢包的公開地址不一致。並且對於不同的輸入,返回的地址也會不同。\ 錯誤的籤名並不會指出錯在哪裡,這讓調試變得更具挑戰性。要調試此問題,建議仔細閱讀 Python SDK 並確保你的實現與其完全一致。如果仍然不行,添加日誌以找出輸出產生分歧的位置。

一些常見的錯誤:\ 1. 沒有意識到存在兩種籤名方案(Python SDK 中的方法爲 sign_l1_action 與 sign_user_signed_action)。\ 2. 沒有意識到欄位順序對 msgpack 很重要。\ 3. 數字末尾的零引發的問題。\ 4. 地址欄位中出現大寫字母引發的問題。建議在籤名和發送前將任何地址轉爲小寫。有時該欄位會被解析爲字節,導致其在網路傳輸中被自動轉爲小寫。\ 5. 認爲籤名一定是正確的,因爲在本地呼叫 recover signer 得到了正確的地址。recover signer 所用的負載是根據 action 構造的,未必與實際籤名所用的負載一致。

英文官方來源: https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/signing
原文擷取日期: · 鏡像建置日期: · 社群翻譯,以英文原版為準
非官方社群鏡像與翻譯,內容版權歸 Hyperliquid 所有,以英文原版為準。 來源: https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/signing