Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
python_open_ai
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
haojie
python_open_ai
Commits
294f883a
Commit
294f883a
authored
Apr 14, 2023
by
lei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1
parent
d6989f0b
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
1 additions
and
734 deletions
+1
-734
Helper.py
+0
-733
gpt.py
+1
-1
No files found.
Helper.py
View file @
294f883a
import
time
import
time
import
json
import
json
import
redis
import
redis
import
random
import
aiohttp
import
requests
import
requests
import
datetime
import
numpy
as
np
from
aredis
import
StrictRedis
,
ConnectionPool
from
aredis
import
StrictRedis
,
ConnectionPool
uni256Max
=
2
**
256
uni256Max
=
2
**
256
...
@@ -147,22 +143,6 @@ class RedisCon:
...
@@ -147,22 +143,6 @@ class RedisCon:
print
(
"Redis lrem error:"
,
e
)
print
(
"Redis lrem error:"
,
e
)
@staticmethod
@staticmethod
def
ex_data
(
key
,
v_time
,
value
):
"""
redis setex
:param key:
:param v_time:
:param value:
:return:
"""
redis_con
=
redis
.
Redis
(
connection_pool
=
RedisConnSingleton
())
try
:
redis_con
.
setex
(
key
,
v_time
,
value
)
except
Exception
as
e
:
print
(
"Redis setex error:"
,
e
)
@staticmethod
def
get_task_num
(
key
):
def
get_task_num
(
key
):
"""
"""
redis llen
redis llen
...
@@ -294,719 +274,6 @@ class Helper:
...
@@ -294,719 +274,6 @@ class Helper:
except
Exception
as
e
:
except
Exception
as
e
:
print
(
"Redis lpop error:"
,
e
)
print
(
"Redis lpop error:"
,
e
)
@staticmethod
async
def
save_hash_data
(
redis_key
,
key
,
value
):
"""
aredis hset
:param redis_key:
:param key:
:param value:
:return:
"""
redis_con
=
StrictRedis
(
connection_pool
=
RedisConnectionPoolSingleton
())
try
:
await
redis_con
.
hset
(
redis_key
,
key
,
value
)
except
Exception
as
e
:
print
(
"Redis hset error"
,
e
)
@staticmethod
async
def
del_hash_data
(
redis_key
,
key
):
"""
aredis hdel
:param redis_key:
:param key:
:return:
"""
redis_con
=
StrictRedis
(
connection_pool
=
RedisConnectionPoolSingleton
())
try
:
await
redis_con
.
hdel
(
redis_key
,
key
)
except
Exception
as
e
:
print
(
"Redis hdel error"
,
e
)
@staticmethod
async
def
get_string_value
(
name
):
"""
aredis get
:param name:
:return:
"""
redis_con
=
StrictRedis
(
connection_pool
=
RedisConnectionPoolSingleton
())
try
:
data
=
await
redis_con
.
get
(
name
)
return
data
except
Exception
as
e
:
print
(
"Redis get error"
,
e
)
@staticmethod
async
def
ex_data
(
key
,
time
,
value
):
"""
aredis setex
:param key:
:param time:
:param value:
:return:
"""
redis_con
=
StrictRedis
(
connection_pool
=
RedisConnectionPoolSingleton
())
try
:
await
redis_con
.
setex
(
key
,
time
,
value
)
except
Exception
as
e
:
print
(
"Redis setex error"
,
e
)
@staticmethod
async
def
get_token_decimals
(
token
,
web_async
):
"""
web3 decimals
:param token:
:param web_async:
:return:
"""
fn_abi
=
{
'inputs'
:
[],
'name'
:
'decimals'
,
'outputs'
:
[{
'internalType'
:
'uint8'
,
'name'
:
''
,
'type'
:
'uint8'
}],
'stateMutability'
:
'view'
,
'type'
:
'function'
}
transaction
=
{
'to'
:
f
'{token}'
,
'data'
:
'0x313ce567'
}
function
=
await
Helper
.
get_functions_
(
fn_abi
,
transaction
,
web_async
)
# print("decimals", function)
return
function
@staticmethod
async
def
get_token_name
(
token
,
web_async
):
"""
web3 name
:param token:
:param web_async:
:return:
"""
fn_abi
=
{
'inputs'
:
[],
'name'
:
'name'
,
'outputs'
:
[{
'internalType'
:
'string'
,
'name'
:
''
,
'type'
:
'string'
}],
'stateMutability'
:
'view'
,
'type'
:
'function'
}
transaction
=
{
'to'
:
f
'{token}'
,
'data'
:
'0x06fdde03'
}
function
=
await
Helper
.
get_functions_
(
fn_abi
,
transaction
,
web_async
)
# print("name", function)
return
function
@staticmethod
async
def
get_token_supply
(
token
,
web_async
):
"""
web3 supply
:param token:
:param web_async:
:return:
"""
fn_abi
=
{
'inputs'
:
[],
'name'
:
'totalSupply'
,
'outputs'
:
[{
'internalType'
:
'uint256'
,
'name'
:
''
,
'type'
:
'uint256'
}],
'stateMutability'
:
'view'
,
'type'
:
'function'
}
transaction
=
{
'to'
:
f
'{token}'
,
'data'
:
'0x18160ddd'
}
function
=
await
Helper
.
get_functions_
(
fn_abi
,
transaction
,
web_async
)
# print("total supply", function)
return
function
@staticmethod
async
def
get_token_symbol
(
token
,
web_async
):
"""
web3 symbol
:param token:
:param web_async:
:return:
"""
fn_abi
=
{
'inputs'
:
[],
'name'
:
'symbol'
,
'outputs'
:
[{
'internalType'
:
'string'
,
'name'
:
''
,
'type'
:
'string'
}],
'stateMutability'
:
'view'
,
'type'
:
'function'
}
transaction
=
{
'to'
:
f
'{token}'
,
'data'
:
'0x95d89b41'
}
function
=
await
Helper
.
get_functions_
(
fn_abi
,
transaction
,
web_async
)
# print("symbol", function)
return
function
@staticmethod
async
def
get_token_balance
(
token
,
address
,
web_async
):
"""
web3 balanceOf
:param token:
:param address:
:param web_async:
:return:
"""
fn_abi
=
{
'inputs'
:
[{
'internalType'
:
'address'
,
'name'
:
''
,
'type'
:
'address'
}],
'name'
:
'balanceOf'
,
'outputs'
:
[{
'internalType'
:
'uint256'
,
'name'
:
''
,
'type'
:
'uint256'
}],
'stateMutability'
:
'view'
,
'type'
:
'function'
}
address
=
'0x70a08231000000000000000000000000'
+
(
address
.
lower
()[
2
:])
transaction
=
{
'to'
:
f
'{token}'
,
'data'
:
address
}
function
=
await
Helper
.
get_functions_
(
fn_abi
,
transaction
,
web_async
)
# print("token balance", function)
return
function
@staticmethod
def
trans_address_n0x
(
address
):
"""
address type change
:param address:
:return:
"""
address
=
address
[
2
:]
while
len
(
address
)
<
64
:
address
=
'0'
+
address
return
address
.
lower
()
@staticmethod
async
def
get_amounts_out_op
(
token0
,
token1
,
web_async
,
Router
,
token0_d
):
"""
get price rate - op
:param token0:
:param token1:
:param web_async:
:param Router:
:param token0_d:
:return:
"""
fn_abi
=
{
'inputs'
:
[{
'internalType'
:
'uint256'
,
'name'
:
'amountIn'
,
'type'
:
'uint256'
},
{
'internalType'
:
'address[]'
,
'name'
:
'path'
,
'type'
:
'address[]'
}],
'name'
:
'getAmountsOut'
,
'outputs'
:
[{
'internalType'
:
'uint256[]'
,
'name'
:
'amounts'
,
'type'
:
'uint256[]'
}],
'stateMutability'
:
'view'
,
'type'
:
'function'
}
str_0
=
'0x9881fcb4'
str_1
=
Helper
.
trans_address_n0x
(
web_async
.
toHex
(
1
*
(
10
**
token0_d
)))
str_2
=
'00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000001'
str_3
=
Helper
.
trans_address_n0x
(
token0
)
str_4
=
Helper
.
trans_address_n0x
(
token1
)
str_5
=
"0000000000000000000000000000000000000000000000000000000000000001"
data_str
=
str_0
+
str_1
+
str_2
+
str_3
+
str_4
+
str_5
transaction
=
{
'to'
:
f
'{Router}'
,
'data'
:
data_str
}
function
=
await
Helper
.
get_functions_
(
fn_abi
,
transaction
,
web_async
)
# print("token amount", function)
return
function
@staticmethod
async
def
get_amounts_out
(
token0
,
token1
,
web_async
,
Router
,
token0_d
):
"""
get price rate
:param token0:
:param token1:
:param web_async:
:param Router:
:param token0_d:
:return:
"""
fn_abi
=
{
'inputs'
:
[{
'internalType'
:
'uint256'
,
'name'
:
'amountIn'
,
'type'
:
'uint256'
},
{
'internalType'
:
'address[]'
,
'name'
:
'path'
,
'type'
:
'address[]'
}],
'name'
:
'getAmountsOut'
,
'outputs'
:
[{
'internalType'
:
'uint256[]'
,
'name'
:
'amounts'
,
'type'
:
'uint256[]'
}],
'stateMutability'
:
'view'
,
'type'
:
'function'
}
str_0
=
'0xd06ca61f'
str_1
=
Helper
.
trans_address_n0x
(
web_async
.
toHex
(
1
*
(
10
**
token0_d
)))
str_2
=
'00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000002'
str_3
=
Helper
.
trans_address_n0x
(
token0
)
str_4
=
Helper
.
trans_address_n0x
(
token1
)
data_str
=
str_0
+
str_1
+
str_2
+
str_3
+
str_4
transaction
=
{
'to'
:
f
'{Router}'
,
'data'
:
data_str
}
function
=
await
Helper
.
get_functions_
(
fn_abi
,
transaction
,
web_async
)
# print("token amount", function)
return
function
@staticmethod
async
def
redis_data
(
data
,
info
,
ts_
,
redisKey
,
public_token
,
chainId
,
stable
,
search_table
,
web_async
):
"""
taos save insert task list
:param data:
:param info:
:param ts_:
:param redisKey:
:param public_token:
:param chainId:
:param stable:
:param search_table:
:param web_async:
:return:
"""
token
=
data
[
'token'
]
if
info
is
None
:
try
:
supply
=
await
Helper
.
get_token_supply
(
token
,
web_async
)
/
(
10
**
data
[
'token_decimals'
])
symbol
=
await
Helper
.
get_token_symbol
(
token
,
web_async
)
name
=
await
Helper
.
get_token_name
(
token
,
web_async
)
except
:
da
=
await
Helper
.
get_token_detail_web
(
token
,
chainId
)
name
=
da
[
'token_name'
]
if
"token_name"
in
da
else
""
symbol
=
da
[
'token_symbol'
]
if
"token_symbol"
in
da
else
""
supply
=
da
[
'total_supply'
]
if
"total_supply"
in
da
else
""
redis_token
=
{
'name'
:
name
,
'symbol'
:
symbol
,
'supply'
:
supply
,
'decimals'
:
data
[
'token_decimals'
],
'token'
:
token
}
await
Helper
.
save_hash_data
(
f
'{redisKey}:tokens'
,
token
,
json
.
dumps
(
redis_token
))
else
:
name
=
info
[
'name'
]
symbol
=
info
[
'symbol'
]
supply
=
info
[
'supply'
]
basic_info
=
{
'name'
:
name
,
'symbol'
:
symbol
,
'supply'
:
supply
,
}
chainInfo
=
{
'stable'
:
stable
,
'search_table'
:
search_table
,
'chain_id'
:
chainId
,
'redis_key'
:
redisKey
}
if
chainId
==
1
or
chainId
==
56
:
token_info
=
dict
(
**
data
,
**
basic_info
)
await
Helper
.
task_list
(
f
"{redisKey}:taos:tokens"
,
json
.
dumps
(
token_info
))
else
:
token_info
=
dict
(
**
data
,
**
basic_info
,
**
chainInfo
)
await
Helper
.
task_list
(
"taos:insert:tokens"
,
json
.
dumps
(
token_info
))
@staticmethod
def
get_swap_amount
(
amount
):
"""
uniSwap v2 tx amount
:param amount:
:return:
"""
if
amount
[
0
:
2
]
==
"0x"
:
amount0In
=
eval
(
'0x'
+
amount
[
2
:
66
])
amount1In
=
eval
(
'0x'
+
amount
[
66
:
130
])
else
:
amount0In
=
eval
(
'0x'
+
amount
[
0
:
64
])
amount1In
=
eval
(
'0x'
+
amount
[
64
:
128
])
amount0Out
=
eval
(
'0x'
+
amount
[
-
128
:
-
64
])
amount1Out
=
eval
(
'0x'
+
amount
[
-
64
:])
swap_info
=
{
'0In'
:
amount0In
,
'1In'
:
amount1In
,
'0Out'
:
amount0Out
,
'1Out'
:
amount1Out
}
return
swap_info
@staticmethod
def
getUniswapV3Amount
(
amount
):
"""
uniSwap v3 tx amount
:param amount:
:return:
"""
amount0
=
eval
(
'0x'
+
amount
[
2
:
66
])
amount1
=
eval
(
'0x'
+
amount
[
66
:
130
])
if
amount0
>
amount1
:
amount0
=
-
(
uni256Max
-
amount0
)
else
:
amount1
=
-
(
uni256Max
-
amount1
)
swapinfo
=
{
"amount0"
:
amount0
,
"amount1"
:
amount1
}
return
swapinfo
@staticmethod
def
getBalancerAmount
(
amount
):
"""
balancer tx amount
:param amount:
:return:
"""
amountIn
=
eval
(
'0x'
+
amount
[
2
:
66
])
amountOut
=
eval
(
'0x'
+
amount
[
66
:
130
])
return
amountIn
,
amountOut
@staticmethod
async
def
redisSaveList
(
pool
,
dataProcess
,
redisKey
,
public_token
,
chainId
,
stable
,
search_table
,
web_async
):
"""
redis task list
:param pool
:param dataProcess
:param redisKey
:param public_token
:param chainId
:param stable
:param search_table
:param web_async
"""
data
=
dataProcess
[
'data'
]
token_detail
=
dataProcess
[
'info'
]
ts_
=
Helper
.
get_time_stamp
(
data
[
'time'
])
if
'p'
in
pool
[
'r'
]:
pass
else
:
new
=
await
Helper
.
query_hash
(
f
'{redisKey}:open:recent'
,
data
[
'pool_address'
])
if
new
:
new
=
json
.
loads
(
new
)
if
'time'
in
new
:
ts
=
Helper
.
get_time_stamp
(
new
[
'time'
])
if
ts_
-
ts
<=
86400
:
data
[
'new_token'
]
=
1
else
:
data
[
'new_token'
]
=
0
else
:
data
[
'new_token'
]
=
1
new
[
'time'
]
=
data
[
'time'
]
await
Helper
.
save_hash_data
(
f
'{redisKey}:open:recent'
,
data
[
'pool_address'
],
json
.
dumps
(
new
))
else
:
data
[
'new_token'
]
=
0
data
[
'is100'
]
=
0
holder_info
=
await
Helper
.
query_hash
(
f
'{redisKey}:holder:100'
,
data
[
'token'
])
data_
=
{
'chain'
:
redisKey
,
'token'
:
data
[
'token'
]
}
if
holder_info
is
not
None
:
holder_info
=
json
.
loads
(
holder_info
)
holder_list
=
holder_info
[
'holder_100'
]
time_
=
holder_info
[
'date'
]
stamp
=
Helper
.
get_time_stamp
(
time_
)
if
ts_
-
stamp
<=
3600
:
if
(
data
[
'swap_address'
])
.
lower
()
in
holder_list
:
data
[
'is100'
]
=
1
else
:
await
Helper
.
task_list
(
'chain:holderQueue'
,
json
.
dumps
(
data_
))
else
:
await
Helper
.
task_list
(
'chain:holderQueue'
,
json
.
dumps
(
data_
))
await
Helper
.
redis_data
(
data
,
token_detail
,
ts_
,
redisKey
,
public_token
,
chainId
,
stable
,
search_table
,
web_async
)
@staticmethod
def
get_time
():
"""
get millisecond time
:return:
"""
ct
=
time
.
time
()
local_time
=
time
.
localtime
(
ct
)
data_head
=
time
.
strftime
(
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
,
local_time
)
data_secs
=
(
ct
-
np
.
compat
.
long
(
ct
))
*
1000
time_stamp
=
"
%
s.
%03
d"
%
(
data_head
,
data_secs
)
return
time_stamp
@staticmethod
def
get_time_add
(
s
):
"""
recent time add millisecond time
:param s:
:return:
"""
ct
=
(
Helper
.
get_stamp
(
Helper
.
get_time
())
+
s
)
/
1000
local_time
=
time
.
localtime
(
ct
)
data_head
=
time
.
strftime
(
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
,
local_time
)
data_secs
=
(
ct
-
np
.
compat
.
long
(
ct
))
*
1000
time_stamp
=
"
%
s.
%03
d"
%
(
data_head
,
data_secs
)
return
time_stamp
@staticmethod
def
get_time_add_old
(
ts
,
s
):
"""
ts add millisecond time
:param ts:
:param s:
:return:
"""
ct
=
(
int
(
ts
)
+
s
)
/
1000
local_time
=
time
.
localtime
(
ct
)
data_head
=
time
.
strftime
(
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
,
local_time
)
data_secs
=
(
ct
-
np
.
compat
.
long
(
ct
))
*
1000
time_stamp
=
"
%
s.
%03
d"
%
(
data_head
,
data_secs
)
return
time_stamp
@staticmethod
def
get_stamp
(
timeStr
):
"""
get millisecond timestamp
:param timeStr:
:return:
"""
try
:
datetime_obj
=
datetime
.
datetime
.
strptime
(
timeStr
,
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S.
%
f"
)
except
ValueError
:
datetime_obj
=
datetime
.
datetime
.
strptime
(
timeStr
,
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
)
obj_stamp
=
int
(
time
.
mktime
(
datetime_obj
.
timetuple
())
*
1000.0
+
datetime_obj
.
microsecond
/
1000.0
)
return
obj_stamp
@staticmethod
def
get_time_stamp
(
date
):
"""
get seconds timestamp
:param date:
:return:
"""
try
:
d
=
datetime
.
datetime
.
strptime
(
date
,
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S.
%
f"
)
except
:
d
=
datetime
.
datetime
.
strptime
(
date
,
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
)
t
=
d
.
timetuple
()
time_stamp
=
int
(
time
.
mktime
(
t
))
return
time_stamp
@staticmethod
def
get_all_proxy
():
"""
get rola all type proxy
:return:
"""
proxies_address
=
requests
.
get
(
'http://list.rola.info:8088/user_get_ip_list?token=JyJu6trbF4LguQxA1656402892061&type=datacenter&qty=1&time=5&country=&format=txt&protocol=http&filter=1'
)
.
text
async_proxy
=
f
"http://{proxies_address}"
proxy
=
{
'https'
:
f
"http://{proxies_address}"
,
'http'
:
f
"http://{proxies_address}"
,
}
return
{
"proxy"
:
proxy
,
"async_proxy"
:
async_proxy
}
@staticmethod
def
all_proxy_pool
():
"""
get random all type proxy
:return:
"""
proxy_lst
=
Helper
.
getProxyList
()
index
=
random
.
randint
(
0
,
999
)
proxies_address
=
proxy_lst
[
index
]
async_proxy
=
f
"http://{proxies_address}"
proxy
=
{
'https'
:
f
"http://{proxies_address}"
,
'http'
:
f
"http://{proxies_address}"
,
}
return
{
"proxy"
:
proxy
,
"async_proxy"
:
async_proxy
}
@staticmethod
def
aiohttp_proxy_pool
():
"""
get aiohttp proxy
:return:
"""
proxy_lst
=
Helper
.
getProxyList
()
index
=
random
.
randint
(
0
,
999
)
proxy
=
proxy_lst
[
index
]
proxies
=
f
"http://{proxy}"
return
proxies
@staticmethod
def
requests_proxy_pool
():
"""
get http proxy
:return:
"""
proxy_lst
=
Helper
.
getProxyList
()
index
=
random
.
randint
(
0
,
999
)
proxy
=
proxy_lst
[
index
]
proxies
=
{
'https'
:
f
"http://{proxy}"
,
'http'
:
f
"http://{proxy}"
,
}
return
proxies
@staticmethod
def
get_radio
(
radio
):
"""
get radio
:param radio:
:return:
"""
fen
=
"
%.2
f
%%
"
%
(
radio
*
100
)
return
fen
@staticmethod
def
getHeaders
():
"""
get http headers
:return:
"""
ua
=
UserAgent
()
headers
=
{
'accept'
:
'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9'
,
'accept-language'
:
'zh-CN,zh;q=0.9'
,
'sec-ch-ua'
:
'" Not A;Brand";v="99", "Chromium";v="99", "Google Chrome";v="99"'
,
'sec-ch-ua-mobile'
:
'?0'
,
'sec-ch-ua-platform'
:
'"Windows"'
,
'sec-fetch-dest'
:
'iframe'
,
'sec-fetch-mode'
:
'navigate'
,
'sec-fetch-site'
:
'same-origin'
,
'sec-fetch-user'
:
'?1'
,
'upgrade-insecure-requests'
:
'1'
,
'user-agent'
:
ua
.
chrome
}
return
headers
@staticmethod
async
def
request_page
(
url
,
proxy
):
"""
aiohttp get page
:param url:
:param proxy:
:return:
"""
# headers = Helper.getHeaders()
async
with
aiohttp
.
ClientSession
()
as
session
:
# response = await session.get(url, headers=headers, proxy=proxy, timeout=20)
response
=
await
session
.
get
(
url
,
proxy
=
proxy
,
timeout
=
20
)
return
await
response
.
text
()
@staticmethod
async
def
getTroops
(
chain
,
token
):
"""
get bsc/eth troops info
:param chain:
:param token:
:return:
"""
if
chain
==
56
:
url
=
f
'https://aywt3wreda.execute-api.eu-west-1.amazonaws.com/default/IsHoneypot?chain=bsc2&token={token}'
else
:
url
=
f
'https://aywt3wreda.execute-api.eu-west-1.amazonaws.com/default/IsHoneypot?chain=eth&token={token}'
troops
=
dict
()
for
i
in
range
(
5
):
try
:
proxy
=
Helper
.
aiohttp_proxy_pool
()
res
=
await
Helper
.
request_page
(
url
,
proxy
)
troops
=
json
.
loads
(
res
)
break
except
Exception
as
e
:
print
(
"get troops error!"
,
e
)
return
troops
@staticmethod
def
bscPoolType
(
token
):
"""
bsc public token
:param token:
:return:
"""
if
token
==
'WBNB'
:
return
'0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c'
elif
token
==
'BUSD'
:
return
'0xe9e7CEA3DedcA5984780Bafc599bD69ADd087D56'
elif
token
==
'USDT'
:
return
'0x55d398326f99059fF775485246999027B3197955'
elif
token
==
'USDC'
:
return
'0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d'
elif
token
==
'BTCB'
:
return
'0x7130d2A12B9BCbFAe4f2634d864A1Ee1Ce3Ead9c'
elif
token
==
'DAI'
:
return
'0x1AF3F329e8BE154074D8769D1FFa4eE058B1DBc3'
elif
token
==
'ETH'
:
return
'0x2170Ed0880ac9A755fd29B2688956BD959F933F8'
elif
token
==
'FIST'
:
return
'0xC9882dEF23bc42D53895b8361D0b1EDC7570Bc6A'
elif
token
==
'DOGE'
:
return
'0xbA2aE424d960c26247Dd6c32edC70B295c744C43'
elif
token
==
'Cake'
:
return
'0x0E09FaBB73Bd3Ade0a17ECC321fD13a19e81cE82'
@staticmethod
def
bscPoolDecimal
(
token
):
"""
bsc pool decimals
:param token:
:return:
"""
if
token
==
'WBNB'
:
return
18
elif
token
==
'BUSD'
:
return
18
elif
token
==
'USDT'
:
return
18
elif
token
==
'USDC'
:
return
18
elif
token
==
'BTCB'
:
return
18
elif
token
==
'DAI'
:
return
18
elif
token
==
'ETH'
:
return
18
elif
token
==
'FIST'
:
return
6
elif
token
==
'DOGE'
:
return
8
elif
token
==
'Cake'
:
return
18
@staticmethod
def
ethPoolType
(
token
):
"""
eth public token
:param token:
:return:
"""
if
token
==
'WETH'
:
return
'0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2'
elif
token
==
'USDT'
:
return
'0xdAC17F958D2ee523a2206206994597C13D831ec7'
elif
token
==
'USDC'
:
return
'0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'
elif
token
==
'BUSD'
:
return
'0x4Fabb145d64652a948d72533023f6E7A623C7C53'
elif
token
==
'WBTC'
:
return
'0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599'
elif
token
==
'DAI'
:
return
'0x6B175474E89094C44Da98b954EedeAC495271d0F'
elif
token
==
'BNB'
:
return
'0xB8c77482e45F1F44dE1745F52C74426C631bDD52'
@staticmethod
def
ethPoolDecimal
(
token
):
"""
eth pool decimals
:param token:
:return:
"""
if
token
==
'WETH'
:
return
18
elif
token
==
'USDT'
:
return
6
elif
token
==
'USDC'
:
return
6
elif
token
==
'BUSD'
:
return
18
elif
token
==
'WBTC'
:
return
8
elif
token
==
'DAI'
:
return
18
elif
token
==
'BNB'
:
return
18
if
__name__
==
'__main__'
:
if
__name__
==
'__main__'
:
# a = Helper.updateProxyLst()
# if a[0] == 0:
# print("代理未过期!")
# else:
# proxyLst = a[1]
# print(proxyLst)
print
(
Helper
.
getProxyLst
())
print
(
Helper
.
getProxyLst
())
gpt.py
View file @
294f883a
...
@@ -7,7 +7,7 @@ import requests
...
@@ -7,7 +7,7 @@ import requests
import
re
import
re
import
openai
import
openai
from
loguru
import
logger
from
loguru
import
logger
from
Helper
import
RedisCon
,
Helper
from
Helper
import
RedisCon
# key
# key
api_key
=
'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'
api_key
=
'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'
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment