Es kann keine gültigen Signaturen für vier.Meme -Brieftaschen -Authentifizierung generierenPython

Python-Programme
Anonymous
 Es kann keine gültigen Signaturen für vier.Meme -Brieftaschen -Authentifizierung generieren

Post by Anonymous »

Problembeschreibung:
Ich versuche, mich mit vier zu authentifizieren. Ich habe mehrere Ansätze ausprobiert, um Nachrichten mit dem privaten Schlüssel meiner Brieftasche zu unterschreiben, aber keiner von ihnen erzeugt eine Signatur, die die Four.meme -API akzeptiert.

Code: Select all

import requests
from web3 import Web3, Account
from eth_account.messages import encode_defunct

# Setup
PRIVATE_KEY = "YOUR_PRIVATE_KEY"  # Private key redacted for security
WALLET_ADDRESS = Web3.to_checksum_address("0x8358494c81a35db01AfB1EEb93cBfe995B0cF057")
web3 = Web3(Web3.HTTPProvider("https://bsc-dataseed.binance.org/"))

# Create session
session = requests.Session()
session.headers.update({
"Origin": "https://four.meme",
"Referer": "https://four.meme/",
"User-Agent": "Mozilla/5.0",
"Content-Type": "application/json"
})

# Get nonce
nonce_url = "https://four.meme/meme-api/v1/private/user/nonce/generate"
nonce_payload = {
"accountAddress": WALLET_ADDRESS,
"verifyType": "LOGIN"
}
resp = session.post(nonce_url, json=nonce_payload)
nonce = resp.json()["data"]

# Sign message
message = str(nonce)  # Just the nonce as a string, without formatting
message_encoded = encode_defunct(text=message)
signed_msg = Account.from_key(PRIVATE_KEY).sign_message(message_encoded)
signature = signed_msg.signature.hex()
if not signature.startswith("0x"):
signature = "0x" + signature

# Login attempt
login_url = "https://four.meme/meme-api/v1/private/user/login/dex"
login_payload = {
"region": "WEB",
"langType": "EN",
"loginIp": "",
"inviteCode": "",
"verifyInfo": {
"address": WALLET_ADDRESS,
"networkCode": "BSC",
"signature": signature,
"verifyType": "LOGIN"
},
"walletName": "MetaMask"
}

login_resp = session.post(login_url, json=login_payload)
print(login_resp.json())  # {"code": -1006, "msg": "Signature for this request is not valid"}
What I've Tried
Different message formats:
Just the nonce as a string: "123456"

Formatted message: "Login Four.Meme:\n\n123456"

Hex-encoded nonce

UTF-8 Codierte Bytes < /p>
Verschiedene Signaturmethoden: < /p>
Verwenden von EnCOde_Defunct () mit verschiedenen Parametern

Versicherer-Wiederherstellungs-ID-Formate (0/1 vs 27/28)

persönliche Signaturen-Format mit ETHEREUM-Spezifikations-Prefixes < /p> < /> < /> < /> < /> < /> < /> < /> < /> < /> < /> < /Hier-pl-Schaltungsformats: < /p> < /> < /
Eine Meldung manuell mit Metamaske im Browser

verwendet. (65 Bytes mit 0x Präfix) < /p>
Ich habe sogar versucht, eine erfolgreiche Signatur aus einer Browserverbindung direkt zu kopieren, aber es wird immer noch abgelehnt, wenn ich aus meinem Skript stammt. />
Metamaske für Browservergleich < /p>
Frage < /p>
Was könnte dazu führen, dass die "Signatur für diese Anforderung nicht gültig ist" Fehler, wenn meine Unterschriften korrekt formatiert werden und sich an meine Brieftaschenadresse erholen? Gibt es spezifische Anforderungen für die Signaturvalidierung von Four.Meme, die mir fehlt?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post