added extend symbol change for ws

This commit is contained in:
2026-04-30 04:32:49 +00:00
parent dc3409ac40
commit 1ac0909c21
20 changed files with 28960 additions and 1221 deletions

View File

@@ -3,50 +3,51 @@ from dotenv import load_dotenv
import os
import time
import threading
import urllib
from urllib import parse
from eth_account.messages import encode_typed_data
from eth_account import Account
from eth_account.datastructures import SignedMessage
load_dotenv()
user = os.getenv("RABBY_WALLET")
signer = os.getenv("ASTER_API_WALLET_ADDRESS")
private_key = os.getenv("ASTER_API_PRIVATE_KEY")
USER: str = os.getenv(key="RABBY_WALLET") # ty:ignore[invalid-assignment]
SIGNER: str = os.getenv(key="ASTER_API_WALLET_ADDRESS") # ty:ignore[invalid-assignment]
PRIVATE_KEY: str = os.getenv(key="ASTER_API_PRIVATE_KEY") # ty:ignore[invalid-assignment]
_last_ms = 0
_i = 0
async def post_authenticated_url(req: dict) -> dict:
typed_data = {
"types": {
"EIP712Domain": [
{"name": "name", "type": "string"},
{"name": "version", "type": "string"},
{"name": "chainId", "type": "uint256"},
{"name": "verifyingContract", "type": "address"}
],
"Message": [
{ "name": "msg", "type": "string" }
]
},
"primaryType": "Message",
"domain": {
"name": "AsterSignTransaction",
"version": "1",
"chainId": 1666,
"verifyingContract": "0x0000000000000000000000000000000000000000"
},
"message": {
"msg": "$msg"
async def post_authenticated_url(req: dict) -> list | dict:
typed_data: dict = {
"types": {
"EIP712Domain": [
{"name": "name", "type": "string"},
{"name": "version", "type": "string"},
{"name": "chainId", "type": "uint256"},
{"name": "verifyingContract", "type": "address"}
],
"Message": [
{ "name": "msg", "type": "string" },
]
},
"primaryType": "Message",
"domain": {
"name": "AsterSignTransaction",
"version": "1",
"chainId": 1666,
"verifyingContract": "0x0000000000000000000000000000000000000000"
},
"message": {
"msg": "$msg"
}
}
}
headers = {
headers: dict[str, str] = {
'Content-Type': 'application/x-www-form-urlencoded',
'User-Agent': 'PythonApp/1.0'
}
host = 'https://fapi.asterdex.com'
host: str = 'https://fapi.asterdex.com'
def get_nonce():
_nonce_lock = threading.Lock()
@@ -71,38 +72,34 @@ async def post_authenticated_url(req: dict) -> dict:
)
return Account.sign_message(message, private_key=private_key)
async def send_by_url(req):
async def send_by_url(req) -> list | dict: # ty:ignore[invalid-return-type]
my_dict = req['params'].copy()
url = host + req['url']
method = req['method']
my_dict['nonce'] = str(get_nonce())
my_dict['user'] = user
my_dict['signer'] = signer
my_dict['nonce'] = str(object=get_nonce())
my_dict['user'] = USER
my_dict['signer'] = SIGNER
param = urllib.parse.urlencode(my_dict)
param: str = parse.urlencode(query=my_dict)
typed_data['message']['msg'] = param
signed = sign_typed_data(typed_data, private_key)
signed: SignedMessage = sign_typed_data(data=typed_data, private_key=PRIVATE_KEY)
full_url = url + '?' + param + '&signature=' + signed.signature.hex()
# print(full_url)
full_url: str = url + '?' + param + '&signature=' + signed.signature.hex()
if method == 'GET':
res = requests.get(full_url, headers=headers)
res: requests.Response = requests.get(url=full_url, headers=headers)
# print(res.status_code, res.text)
return res.json()
elif method == 'POST':
res = requests.post(full_url, headers=headers)
# print(res.status_code, res.text)
res: requests.Response = requests.post(url=full_url, headers=headers)
return res.json()
elif method == 'PUT':
res = requests.put(full_url, headers=headers)
# print(res.status_code, res.text)
res: requests.Response = requests.put(url=full_url, headers=headers)
return res.json()
elif method == 'DELETE':
res = requests.delete(full_url, headers=headers)
# print(res.status_code, res.text)
res: requests.Response = requests.delete(url=full_url, headers=headers)
return res.json()
return await send_by_url(req=req)