| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178 |
- import time
- import os
- import requests
- import json
- import hashlib
- import logging
- from osTools import *
- # 设置日志格式
- logging.basicConfig(format='%(asctime)s %(message)s', level=logging.INFO)
- DIR = os.path.dirname(os.path.abspath(__file__))
- IS_DEV = os.path.isfile(os.path.join(DIR, '.debug'))
- # 定义base url
- BASE_URL = "http://www.410eth.com:8088"
- if IS_DEV:
- BASE_URL = "http://localhost:8088/ethmev"
- class Auth:
- @staticmethod
- def build_auth(json_data):
- timestamp = int(time.time())
- ready_str = '410410' + str(timestamp)
- replaced_str = ready_str.replace(ready_str[-1:], '')
- json_data['timestamp'] = timestamp
- json_data['replace_str'] = replaced_str
- json_data['auth'] = hashlib.md5(replaced_str.encode('utf-8')).hexdigest()
- return json_data
- class EthMevModel:
- @staticmethod
- def append_or_update(block_number, hash_code, data):
- url = BASE_URL + '/ethmev/appendOrUpdate'
- json_data = {
- 'block': block_number,
- 'hash': hash_code,
- 'data': json.dumps(data),
- }
- json_data = Auth.build_auth(json_data)
- response = requests.post(url, data=json_data)
- return response.json()
- @staticmethod
- def find_by_block(block_number):
- url = BASE_URL + '/ethmev/findByBlock'
- json_data = {
- 'block': str(block_number)
- }
- json_data = Auth.build_auth(json_data)
- response = requests.post(url, data=json_data).json()
- return response
- @staticmethod
- def find_by_hash(hash_code):
- url = BASE_URL + '/ethmev/findByHash'
- json_data = {
- 'hash': hash_code
- }
- json_data = Auth.build_auth(json_data)
- response = requests.post(url, data=json_data)
- return response.json()
- @staticmethod
- def find_by_data_vague(data_vague):
- url = BASE_URL + '/ethmev/findByDataVague'
- json_data = {
- 'dataVague': data_vague
- }
- json_data = Auth.build_auth(json_data)
- response = requests.post(url, data=json_data)
- return response.json()
- @staticmethod
- def find_by_block_or_hash_or_data_vague(block_number, hash_code, data_vague):
- url = BASE_URL + '/ethmev/findByHashOrBlockOrDataVague'
- json_data = {
- 'block': block_number,
- 'hash': hash_code,
- 'dataVague': data_vague
- }
- json_data = Auth.build_auth(json_data)
- response = requests.post(url, data=json_data)
- return response.json()
- @staticmethod
- def find_sum2(token0, token1, level):
- url = BASE_URL + '/swappath/findBySumValueAndLevel'
- sumValue = hex(int(token0, 16) + int(token1, 16))
- json_data = {
- 'sum_value': sumValue,
- 'level': level
- }
- json_data = Auth.build_auth(json_data)
- response = requests.post(url, data=json_data)
- return response.json()
- @staticmethod
- def find_lp_route(lp):
- url = BASE_URL + '/swappath/findLevel2PathByLpAddress'
- json_data = {
- 'lp_address': lp,
- }
- json_data = Auth.build_auth(json_data)
- response = requests.post(url, data=json_data)
- return response.json()
- #[{'factory': '0xC0AEe478e3658e2610c5F7A4A2E1777cE9e4f2Ac', 'LP': '0x397FF1542f962076d0BFE58eA045FfA2d347ACa0',
- # 'isEthW': False, 'feei': '3000', 'symbol1': 'WETH', 'symbol0': 'DEAD',
- # 'sum2': '0x160e313cb784589c3cbdff999568989d6727c580a', 'router': '0xd9e1ce17f2641f24ae83637ab66a2cca9c378b9f',
- # 'token0': '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', 'name': 'SUSHI_DEAD_WETH',
- # 'token1': '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 'decimals1': '18', 'id': 17,
- # 'decimals0': '6', 'r0': '454361158501473', 'r1': '324837295322546263677'},
- # {'factory': '0x9DEB29c9a4c7A88a3C0257393b7f3335338D9A9D', 'LP': '0x3Aa370AacF4CB08C7E1E7AA8E8FF9418D73C7e0F',
- # 'isEthW': False, 'feei': '3000', 'symbol1': 'WETH', 'symbol0': 'DEAD',
- # 'sum2': '0x160e313cb784589c3cbdff999568989d6727c580a', 'router': '0xCeB90E4C17d626BE0fACd78b79c9c87d7ca181b3',
- # 'token0': '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', 'name': 'CRO_DEAD_WETH',
- # 'token1': '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 'decimals1': '18', 'id': 1,
- # 'decimals0': '6', 'r0': '78658280524836', 'r1': '56258963016259372187'}]
- @staticmethod
- def delete_by_hash(hash_code):
- url = BASE_URL + '/ethmev/deleteByHash'
- json_data = {
- 'hash': hash_code,
- }
- json_data = Auth.build_auth(json_data)
- response = requests.post(url, data=json_data)
- return json.loads(response.text)
- def newBot(add):
- name = 'BOT.' + add[2:4]+ add[-2:]
- print(EthMevModel.append_or_update(2, add, {'name': name}))
- def isHsInSql(hash):
- r = EthMevModel.find_by_hash(hash)
- if r['data']:
- return eval(r['data'][0]['data'])
- return False
- def getSUM2Path(token0, token1):
- r = EthMevModel.find_sum2(token0, token1, 2)
- data = []
- if r['data']:
- r = eval(r['data']['data'])
- for lp2 in r:
- if lp2[0]['type'] != lp2[1]['type']:
- continue
- lp0 = lp2[0]['LP']
- lp1 = lp2[1]['LP']
- if {'lp0': lp0, 'lp1': lp1} in data:
- continue
- data.append({'lp0': lp0, 'lp1': lp1})
- return data
- printTime('SQL:OK')
- if __name__ == '__main__':
- #print('SQL:OK')
- #newBot('0x04156f068e0e8b5abe30fac002ae3b05529a3ddc')
- #printTime()
- #printTime((EthMevModel.find_by_block('topLp')['data']) + (EthMevModel.find_by_block('normalLp')['data']))
- printTime(speedTest(EthMevModel.find_by_hash, '0x123'))
- #printTime(EthMevModel.find_lp_route('0x397FF1542f962076d0BFE58eA045FfA2d347ACa0'))
- #printTime()
- #print(EthMevModel.append_or_update(1, '0xethw', {'name': 'ETHW', 'symbol': 'ETHW', 'decimals': 18}))
- #print(EthMevModel.append_or_update(2, '0xb4971d0dda22359ad86867362b7fc3206ea0d86b', {'name': '410.v4.0'}))
- #0x3b3ae79`0df4f312e745d270119c6052904fb6790
- #print(EthMevModel.find_by_hash('0xc5831a345bbc3fef632705ca72b5a16c5d0f2e22642a03cc22779cca56b2a0c8'))
- #print(EthMevModel.find_by_data_vague("0x19aec29cf3f52e3b0ac2ebe55c13070c979f88b89"))
- #print(EthMevModel.find_by_block_or_hash_or_data_vague(1, '', ''))
- #print(EthMevModel.delete_by_hash(123))
- #printTime((EthMevModel.find_by_block(15766460)))
- #dexArray = (EthMevModel.find_by_block(2))
- #tokenArray = (EthMevModel.find_by_block(1))
- #lpArray = (EthMevModel.find_by_block(0))
|