tatate commited on
Commit
4a4792a
1 Parent(s): c1c35bf
Files changed (1) hide show
  1. app.py +567 -0
app.py ADDED
@@ -0,0 +1,567 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import requests
2
+ import time
3
+ from web3 import Web3
4
+ from time import gmtime, strftime
5
+ from st_keyup import st_keyup
6
+ import datetime
7
+ import streamlit as st
8
+ import json
9
+
10
+ # Initialise les valeurs des booléens
11
+ if "bool1" not in st.session_state:
12
+ st.session_state.bool1 = False
13
+ if "bool2" not in st.session_state:
14
+ st.session_state.bool2 = False
15
+ if "bool3" not in st.session_state:
16
+ st.session_state.bool3 = False
17
+ if "bool4" not in st.session_state:
18
+ st.session_state.bool4 = False
19
+ if "bool5" not in st.session_state:
20
+ st.session_state.bool5 = False
21
+ if "bool6" not in st.session_state:
22
+ st.session_state.bool6 = False
23
+ if "bool_abi" not in st.session_state:
24
+ st.session_state.bool_abi = False
25
+
26
+ # Initialise les valeurs des prix et montants
27
+ if "price1" not in st.session_state:
28
+ st.session_state.price1 = ""
29
+ if "price2" not in st.session_state:
30
+ st.session_state.price2 = ""
31
+ if "price3" not in st.session_state:
32
+ st.session_state.price3 = ""
33
+ if "price4" not in st.session_state:
34
+ st.session_state.price4 = ""
35
+ if "price5" not in st.session_state:
36
+ st.session_state.price5 = ""
37
+ if "price6" not in st.session_state:
38
+ st.session_state.price6 = ""
39
+
40
+ if "amount1" not in st.session_state:
41
+ st.session_state.amount1 = ""
42
+ if "amount2" not in st.session_state:
43
+ st.session_state.amount2 = ""
44
+ if "amount3" not in st.session_state:
45
+ st.session_state.amount3 = ""
46
+ if "amount4" not in st.session_state:
47
+ st.session_state.amount4 = ""
48
+ if "amount5" not in st.session_state:
49
+ st.session_state.amount5 = ""
50
+ if "amount6" not in st.session_state:
51
+ st.session_state.amount6 = ""
52
+ if "abi" not in st.session_state:
53
+ st.session_state.abi = ""
54
+
55
+
56
+ # Initialise les valeurs des prix et montants
57
+ if "trx1" not in st.session_state:
58
+ st.session_state.trx1 = "no trx"
59
+ if "trx2" not in st.session_state:
60
+ st.session_state.trx2 = "no trx"
61
+ if "trx3" not in st.session_state:
62
+ st.session_state.trx3 = "no trx"
63
+ if "trx4" not in st.session_state:
64
+ st.session_state.trx4 = "no trx"
65
+ if "trx5" not in st.session_state:
66
+ st.session_state.trx5 = "no trx"
67
+ if "trx6" not in st.session_state:
68
+ st.session_state.trx6 = "no trx"
69
+
70
+ # Fonction pour modifier la valeur du booléen 1
71
+ def toggle_bool1():
72
+ st.session_state.bool1 = not st.session_state.bool1
73
+ time.sleep(1)
74
+ # Fonction pour modifier la valeur du booléen 2
75
+ def toggle_bool2():
76
+ st.session_state.bool2 = not st.session_state.bool2
77
+ time.sleep(1)
78
+ # Fonction pour modifier la valeur du booléen 3
79
+ def toggle_bool3():
80
+ st.session_state.bool3 = not st.session_state.bool3
81
+ time.sleep(1)
82
+ def toggle_bool4():
83
+ st.session_state.bool4 = not st.session_state.bool4
84
+ time.sleep(1)
85
+ def toggle_bool5():
86
+ st.session_state.bool5 = not st.session_state.bool5
87
+ time.sleep(1)
88
+ def toggle_bool6():
89
+ st.session_state.bool6 = not st.session_state.bool6
90
+ time.sleep(0.1)
91
+
92
+ st.write(
93
+ """
94
+ <style>
95
+ body {
96
+ background-color: green !important;
97
+ color: white;
98
+ }
99
+ </style>
100
+ """,
101
+ unsafe_allow_html=True
102
+ )
103
+
104
+ st.title('🔗💬 TrollTrade - Buy/Sell BSC')
105
+ st.write('TrollTrade is a powerful trading bot designed to help users of the PancakeSwap platform improve their trading strategy. ')
106
+ prompt_address_user_container = st.empty() #situation de l'espace de trading
107
+ prompt_address_user_container.write("Wallet Adress : 0xD7eA51d434D0897DE93400b43341FB3115585111")
108
+ prompt_address_userBNB = st.text_input('Give your Wallet Address')
109
+ prompt_address_user = st.text_input('Give your Private Key')
110
+ st.write("----------------")
111
+
112
+ st.title('🔗💬 let s go trade...')
113
+ prompt_token_address = st.text_input('Choose the BSC Token Adress')
114
+ tokenAdress_container = st.empty() #situation de l'espace de trading
115
+ tokenAdress_container.write("Token Adress : 0x922722e9ef614ec9a3e94b78496e92abfbb5a624")
116
+
117
+
118
+ st.write("----------------")
119
+ output_container2 = st.empty()
120
+ output_container = st.empty()
121
+ output_container3 = st.empty()
122
+ output_container_symbole = st.empty()
123
+ output_container2.write("Time : " + strftime("%Y-%m-%d %H:%M:%S"))
124
+ output_container_symbole.write("Symbole : ")
125
+ output_container.write("Price : ")
126
+
127
+ trade7_container = st.empty() #ammount of token
128
+ trade8_container = st.empty() #ammount of token BNB
129
+ trade7_container.write("Ammount Token : ")
130
+ trade8_container.write("Ammount BNB: ")
131
+ output_container.write("Price : ")
132
+ output_container2.write("Time : " + strftime("%Y-%m-%d %H:%M:%S"))
133
+ st.write("----------------")
134
+
135
+ st.write("When Sell?")
136
+
137
+ # Crée des champs de saisie pour les prix et les montants
138
+ col1, col2, col3 = st.columns(3)
139
+ with col1:
140
+ st.write("Trade 1")
141
+ st.session_state.price1 = st.text_input("Price 1", st.session_state.price1)
142
+ st.session_state.amount1 = st.text_input("Amount 1", st.session_state.amount1)
143
+ st.write("Boolean 1:")
144
+ if st.button("START/STOP - 1"):
145
+ toggle_bool1()
146
+ # Réexécute uniquement cette partie du code
147
+ st.experimental_rerun()
148
+ st.write("Trade : " + ("True" if st.session_state.bool1 else "False"))
149
+
150
+ with col2:
151
+ st.write("Trade 2")
152
+ st.session_state.price2 = st.text_input("Price 2", st.session_state.price2)
153
+ st.session_state.amount2 = st.text_input("Amount 2", st.session_state.amount2)
154
+ st.write("Boolean 2:")
155
+ if st.button("START/STOP - 2"):
156
+ toggle_bool2()
157
+ st.experimental_rerun()
158
+ st.write("Trade : " + ("True" if st.session_state.bool2 else "False"))
159
+
160
+ with col3:
161
+ st.write("Trade 3")
162
+ st.session_state.price3 = st.text_input("Price 3", st.session_state.price3)
163
+ st.session_state.amount3 = st.text_input("Amount 3", st.session_state.amount3)
164
+ st.write("Boolean 2:")
165
+ if st.button("START/STOP - 3"):
166
+ toggle_bool3()
167
+ st.experimental_rerun()
168
+ st.write("Trade : " + ("True" if st.session_state.bool3 else "False"))
169
+
170
+ st.write("----------------")
171
+
172
+ st.write("When Buy ?")
173
+
174
+ col4 ,col5 ,col6 = st.columns(3)
175
+ with col4:
176
+ st.write("Trade 4")
177
+ st.session_state.price4 = st.text_input("Price 4", st.session_state.price4)
178
+ st.session_state.amount4= st.text_input("Amount 4 ", st.session_state.amount4)
179
+ st.write("Boolean 4:")
180
+ if st.button("START/STOP - 4"):
181
+ toggle_bool4()
182
+ st.experimental_rerun()
183
+ st.write("Trade : " + ("True" if st.session_state.bool4 else "False"))
184
+
185
+ with col5:
186
+ st.write("Trade 5")
187
+ st.session_state.price5 = st.text_input("Price 5", st.session_state.price5)
188
+ st.session_state.amount5 = st.text_input("Amount 5", st.session_state.amount5)
189
+ st.write("Boolean 5 :")
190
+ if st.button("START/STOP - 5"):
191
+ toggle_bool5()
192
+ st.experimental_rerun()
193
+ st.write("Trade : " + ("True" if st.session_state.bool5 else "False"))
194
+
195
+ with col6:
196
+ st.write("Trade 6")
197
+ st.session_state.price6 = st.text_input("Price 6", st.session_state.price6)
198
+ st.session_state.amount6 = st.text_input("Amount 6", st.session_state.amount6)
199
+ st.write("Boolean 6 :")
200
+ if st.button("START/STOP -6"):
201
+ toggle_bool6()
202
+ st.experimental_rerun()
203
+ st.write("Trade : " + ("True" if st.session_state.bool6 else "False"))
204
+
205
+
206
+ st.write("----------------")
207
+
208
+
209
+ # Affiche les informations sur les trades dans un tableau
210
+ table_data = [("Trade Sell 1", st.session_state.price1, st.session_state.amount1, "True" if st.session_state.bool1 else "False", st.session_state.trx1),
211
+ ("Trade Sell 2", st.session_state.price2, st.session_state.amount2, "True" if st.session_state.bool2 else "False", st.session_state.trx2),
212
+ ("Trade Sell 3", st.session_state.price3, st.session_state.amount3, "True" if st.session_state.bool3 else "False", st.session_state.trx3),
213
+ ("Trade Buy 1", st.session_state.price4, st.session_state.amount4, "True" if st.session_state.bool4 else "False", st.session_state.trx4),
214
+ ("Trade Buy 2", st.session_state.price5, st.session_state.amount5, "True" if st.session_state.bool5 else "False", st.session_state.trx5),
215
+ ("Trade Buy 3", st.session_state.price6, st.session_state.amount6, "True" if st.session_state.bool6 else "False", st.session_state.trx6)]
216
+ st.write("Table of trades:")
217
+ with st.container():
218
+ col1, col2, col3, col4, col5 = st.columns(5)
219
+ col1.write("Trade")
220
+ col2.write("Price")
221
+ col3.write("Amount")
222
+ col4.write("Status")
223
+ col5.write("TRX")
224
+ for data in table_data:
225
+ with st.container():
226
+ col1.write(data[0])
227
+ col2.write(data[1])
228
+ col3.write(data[2])
229
+ col4.write(data[3])
230
+ col5.write(data[4])
231
+
232
+ url = "https://api.dexscreener.com/latest/dex/tokens/"
233
+ w3 = Web3(Web3.HTTPProvider('https://bsc-dataseed1.binance.org:443'))
234
+
235
+
236
+ def modify_price(pricex, symbol, total, BNB):
237
+ price = pricex
238
+ print("edit price")
239
+ trade7_container.write("Ammount Token : " + str(total) + " " + symbol)
240
+ trade8_container.write("Ammount BNB : " + str(BNB) + " " + "BNB")
241
+ output_container.write("Price : " + pricex + " USD")
242
+ output_container_symbole.write("Symbole : " + symbol)
243
+ output_container2.write("Time : " + strftime("%Y-%m-%d %H:%M:%S"))
244
+ time.sleep(1)
245
+
246
+ def analyser_amount_token(myaddress, token):
247
+ bsc = "https://bsc-dataseed.binance.org:443"
248
+ web3 = Web3(Web3.HTTPProvider(bsc))
249
+ contract_a = your_contract_adress_retrieval_function(token)
250
+
251
+ if 'bool_abi' not in st.session_state:
252
+ st.session_state.bool_abi = False
253
+ bool_abii = False
254
+ abi = ""
255
+ else:
256
+ bool_abii = st.session_state.bool_abi
257
+ abi = get_abi(token, bool_abii)
258
+
259
+
260
+ if abi == "":
261
+ return 0
262
+ contract = web3.eth.contract(address=contract_a, abi=abi)
263
+ totalSupply = contract.functions.totalSupply().call()
264
+
265
+ address = web3.to_checksum_address(myaddress)
266
+ balance12 = contract.functions.balanceOf(myaddress).call()
267
+ print(balance12)
268
+ balance1 = web3.from_wei(balance12,"ether")
269
+ return balance1
270
+
271
+ def analyser_amount_BNB(myaddress):
272
+ bsc = "https://bsc-dataseed.binance.org/"
273
+
274
+ web3 = Web3(Web3.HTTPProvider(bsc))
275
+
276
+ balance = web3.eth.get_balance(myaddress)
277
+ print(balance)
278
+
279
+ result = web3.from_wei(balance, "ether")
280
+ print(result)
281
+ return result
282
+
283
+ def analyser_prix(adress_token):
284
+ url2 = url + adress_token
285
+ while True:
286
+ try:
287
+ response = requests.get(url2)
288
+ price = response.json()['pairs'][0]['priceUsd']
289
+ priceBNB = response.json()['pairs'][0]['priceNative']
290
+ price_change_5m = response.json()['pairs'][0]['priceChange']['m5']
291
+ price_change_1h = response.json()['pairs'][0]['priceChange']['h1']
292
+ price_change_6h = response.json()['pairs'][0]['priceChange']['h6']
293
+ price_change_24h = response.json()['pairs'][0]['priceChange']['h24']
294
+ symbole = response.json()['pairs'][0]["baseToken"]["symbol"]
295
+ # call the function and pass the initial value of x
296
+ if prompt_address_userBNB.strip():
297
+ addressUser = prompt_address_userBNB.strip()
298
+ else:
299
+ addressUser = "0xD7eA51d434D0897DE93400b43341FB3115585111"
300
+
301
+ amount_user = analyser_amount_token(addressUser,adress_token)
302
+ amount_BNB = analyser_amount_BNB(addressUser)
303
+
304
+ modify_price(price, symbole,amount_user,amount_BNB)
305
+
306
+ #modify_token_address(prompt_token_address)
307
+ print("Price : " + str(price )+ " - Price 5m : " + str(price_change_5m) + " - Price 1h : " + str(price_change_1h) + " - Price 6H " + str(price_change_6h) + " - Price 1J " + str(price_change_24h))
308
+ time.sleep(1)
309
+
310
+ return price
311
+ except requests.exceptions.RequestException as e:
312
+ print("Erreur lors de la récupération des données: ", e)
313
+ time.sleep(1)
314
+
315
+ def analyser_prixBNB(adress_token):
316
+ url2 = url + adress_token
317
+ print(url2)
318
+ while True:
319
+ try:
320
+ response = requests.get(url2)
321
+ priceBNB = response.json()['pairs'][0]['priceNative']
322
+ return priceBNB
323
+ except requests.exceptions.RequestException as e:
324
+ print("Erreur lors de la récupération des données: ", e)
325
+ time.sleep(1)
326
+
327
+ def get_abi(token, bool_abi_h):
328
+ # Vérifier si l'ABI est déjà stocké dans les variables de session
329
+ print(bool_abi_h)
330
+ print("abi")
331
+
332
+ if bool_abi_h:
333
+ print("IF")
334
+ abih = st.session_state['abi']
335
+ return abih
336
+ else:
337
+ print("ELSE")
338
+ # Récupérer l'ABI depuis la source appropriée
339
+ abi = your_abi_retrieval_function(token)
340
+ print(abi)
341
+ st.session_state['abi'] = abi
342
+ print("yasdadasd")
343
+ return abi
344
+ # Retourner l'ABI
345
+
346
+
347
+ def your_contract_adress_retrieval_function(token):
348
+ bsc = "https://bsc-dataseed.binance.org:443"
349
+ web3 = Web3(Web3.HTTPProvider(bsc))
350
+ url_eth = "https://api.bscscan.com/api"
351
+ contract_address = web3.to_checksum_address(token)
352
+ return contract_address
353
+ tempa = 0
354
+
355
+ def your_abi_retrieval_function(token):
356
+ if 'bool_abi' not in st.session_state:
357
+ st.session_state.bool_abi = True
358
+ if not st.session_state.bool_abi:
359
+ st.session_state.bool_abi = True
360
+
361
+ print("returnabi_1")
362
+ print(st.session_state.bool_abi)
363
+ token_v = token
364
+ print(token_v)
365
+
366
+ bsc = "https://bsc-dataseed.binance.org:443"
367
+ web3 = Web3(Web3.HTTPProvider(bsc))
368
+ url_eth = "https://api.bscscan.com/api"
369
+ contract_address = web3.to_checksum_address(token_v)
370
+ API_ENDPOINT = url_eth+"?module=contract&action=getabi&address="+str(contract_address)
371
+ r = requests.get(url = API_ENDPOINT)
372
+ response = r.json()
373
+ abi=json.loads(response["result"])
374
+
375
+ print("returnabi_2")
376
+ return abi
377
+ st.experimental_rerun()
378
+ else:
379
+ abi3 = st.session_state['abi']
380
+ return abi3
381
+
382
+ def reset_value(temp):
383
+ numtrade = temp
384
+ if numtrade == 1:
385
+ st.session_state.amount1 = 0
386
+ st.session_state.price1 = 0
387
+ if numtrade == 2:
388
+ st.session_state.amount2 = 0
389
+ st.session_state.price2 = 0
390
+ if numtrade == 3:
391
+ st.session_state.amount3 = 0
392
+ st.session_state.price3 = 0
393
+ if numtrade == 4:
394
+ st.session_state.amount4 = 0
395
+ st.session_state.price3 = 0
396
+ if numtrade == 5:
397
+ st.session_state.amount5 = 0
398
+ st.session_state.price3 = 0
399
+ if numtrade == 6:
400
+ st.session_state.amount6 = 0
401
+ st.session_state.price3 = 0
402
+ def sellToken(amountToken, sender_address, tokenToSell, prixNative):
403
+ bsc = "https://bsc-dataseed.binance.org/"
404
+ web3 = Web3(Web3.HTTPProvider(bsc))
405
+ print(web3.is_connected())
406
+
407
+ # Adresse du contrat du routeur PancakeSwap
408
+ panRouterContractAddress = '0x10ED43C718714eb63d5aA57B78B54704E256024E'
409
+ panabi = '[{"inputs":[{"internalType":"address","name":"_factory","type":"address"},{"internalType":"address","name":"_WETH","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"WETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"amountADesired","type":"uint256"},{"internalType":"uint256","name":"amountBDesired","type":"uint256"},{"internalType":"uint256","name":"amountAMin","type":"uint256"},{"internalType":"uint256","name":"amountBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"addLiquidity","outputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amountTokenDesired","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"addLiquidityETH","outputs":[{"internalType":"uint256","name":"amountToken","type":"uint256"},{"internalType":"uint256","name":"amountETH","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"reserveIn","type":"uint256"},{"internalType":"uint256","name":"reserveOut","type":"uint256"}],"name":"getAmountIn","outputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"reserveIn","type":"uint256"},{"internalType":"uint256","name":"reserveOut","type":"uint256"}],"name":"getAmountOut","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"}],"name":"getAmountsIn","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"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"},{"inputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"reserveA","type":"uint256"},{"internalType":"uint256","name":"reserveB","type":"uint256"}],"name":"quote","outputs":[{"internalType":"uint256","name":"amountB","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountAMin","type":"uint256"},{"internalType":"uint256","name":"amountBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"removeLiquidity","outputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"removeLiquidityETH","outputs":[{"internalType":"uint256","name":"amountToken","type":"uint256"},{"internalType":"uint256","name":"amountETH","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"removeLiquidityETHSupportingFeeOnTransferTokens","outputs":[{"internalType":"uint256","name":"amountETH","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bool","name":"approveMax","type":"bool"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"removeLiquidityETHWithPermit","outputs":[{"internalType":"uint256","name":"amountToken","type":"uint256"},{"internalType":"uint256","name":"amountETH","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bool","name":"approveMax","type":"bool"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"removeLiquidityETHWithPermitSupportingFeeOnTransferTokens","outputs":[{"internalType":"uint256","name":"amountETH","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountAMin","type":"uint256"},{"internalType":"uint256","name":"amountBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bool","name":"approveMax","type":"bool"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"removeLiquidityWithPermit","outputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapETHForExactTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactETHForTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactETHForTokensSupportingFeeOnTransferTokens","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactTokensForETH","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactTokensForETHSupportingFeeOnTransferTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactTokensForTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactTokensForTokensSupportingFeeOnTransferTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"amountInMax","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapTokensForExactETH","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"amountInMax","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapTokensForExactTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]'
410
+
411
+ # Adresse du contrat de BNB (WBNB)
412
+ receive = web3.to_checksum_address("0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c")
413
+
414
+ # Configuration du contrat PancakeSwap
415
+ contract = web3.eth.contract(address=panRouterContractAddress, abi=panabi)
416
+ nonce = web3.eth.get_transaction_count(sender_address)
417
+ start = time.time()
418
+
419
+ # Conversion des adresses en format checksum
420
+ checksum_address_sender = web3.to_checksum_address(sender_address)
421
+ checksum_address_tokenToSell = web3.to_checksum_address(tokenToSell)
422
+
423
+ # Calcul du montant total du token
424
+ totaltoken = 1000000000000000000 * int(amountToken)
425
+
426
+ # Calcul du montant total de BNB à recevoir
427
+ totalBNB = (float(prixNative) * float(amountToken) * 0.99 - float(0.000737585))
428
+
429
+ # Création de la transaction pour l'échange de tokens contre BNB
430
+ pancakeswap2_txn = contract.functions.swapExactTokensForETH(
431
+ totaltoken, # Montant du token à vendre
432
+ 0, # Montant minimum de BNB à recevoir (0 pour ignorer)
433
+ [checksum_address_tokenToSell, receive], # Adresses du contrat du token et du contrat BNB
434
+ checksum_address_sender, # Adresse de l'acheteur
435
+ (int(time.time()) + 10000) # Timestamp + 10000 (durée de validité de la transaction)
436
+ ).build_transaction({
437
+ 'from': checksum_address_sender,
438
+ 'gas': 250000,
439
+ 'gasPrice': web3.to_wei('5', 'gwei'),
440
+ 'nonce': nonce,
441
+ })
442
+
443
+ # Signature et envoi de la transaction
444
+ signed_txn = web3.eth.account.sign_transaction(pancakeswap2_txn, private_key="xxx")
445
+ tx_token = web3.eth.send_raw_transaction(signed_txn.rawTransaction)
446
+ print("TRX : " + web3.to_hex(tx_token))
447
+ trxfinal = web3.to_hex(tx_token)
448
+ return trxfinal
449
+
450
+ def buyToken(amountToken, sender_address, tokenToBuy, prixNative):
451
+
452
+ bsc = "https://bsc-dataseed.binance.org/"
453
+ web3 = Web3(Web3.HTTPProvider(bsc))
454
+ print(web3.is_connected())
455
+ #pancakeswap router #pancakeswap router abi
456
+ panRouterContractAddress = '0x10ED43C718714eb63d5aA57B78B54704E256024E'
457
+ panabi = '[{"inputs":[{"internalType":"address","name":"_factory","type":"address"},{"internalType":"address","name":"_WETH","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"WETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"amountADesired","type":"uint256"},{"internalType":"uint256","name":"amountBDesired","type":"uint256"},{"internalType":"uint256","name":"amountAMin","type":"uint256"},{"internalType":"uint256","name":"amountBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"addLiquidity","outputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amountTokenDesired","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"addLiquidityETH","outputs":[{"internalType":"uint256","name":"amountToken","type":"uint256"},{"internalType":"uint256","name":"amountETH","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"reserveIn","type":"uint256"},{"internalType":"uint256","name":"reserveOut","type":"uint256"}],"name":"getAmountIn","outputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"reserveIn","type":"uint256"},{"internalType":"uint256","name":"reserveOut","type":"uint256"}],"name":"getAmountOut","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"}],"name":"getAmountsIn","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"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"},{"inputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"reserveA","type":"uint256"},{"internalType":"uint256","name":"reserveB","type":"uint256"}],"name":"quote","outputs":[{"internalType":"uint256","name":"amountB","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountAMin","type":"uint256"},{"internalType":"uint256","name":"amountBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"removeLiquidity","outputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"removeLiquidityETH","outputs":[{"internalType":"uint256","name":"amountToken","type":"uint256"},{"internalType":"uint256","name":"amountETH","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"removeLiquidityETHSupportingFeeOnTransferTokens","outputs":[{"internalType":"uint256","name":"amountETH","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bool","name":"approveMax","type":"bool"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"removeLiquidityETHWithPermit","outputs":[{"internalType":"uint256","name":"amountToken","type":"uint256"},{"internalType":"uint256","name":"amountETH","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bool","name":"approveMax","type":"bool"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"removeLiquidityETHWithPermitSupportingFeeOnTransferTokens","outputs":[{"internalType":"uint256","name":"amountETH","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountAMin","type":"uint256"},{"internalType":"uint256","name":"amountBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bool","name":"approveMax","type":"bool"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"removeLiquidityWithPermit","outputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapETHForExactTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactETHForTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactETHForTokensSupportingFeeOnTransferTokens","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactTokensForETH","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactTokensForETHSupportingFeeOnTransferTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactTokensForTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactTokensForTokensSupportingFeeOnTransferTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"amountInMax","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapTokensForExactETH","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"amountInMax","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapTokensForExactTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]'
458
+ #balance = web3.eth.get_balance(sender_address)
459
+
460
+ #humanReadable = web3.from_wei(balance,'ether')
461
+
462
+ #Contract Address of Token we want to buy
463
+ spend = web3.to_checksum_address("0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c") #wbnb contract
464
+
465
+ #Setup the PancakeSwap contract
466
+ contract = web3.eth.contract(address=panRouterContractAddress, abi=panabi)
467
+ nonce = web3.eth.get_transaction_count(sender_address)
468
+ start = time.time()
469
+ print(sender_address)
470
+ checksum_address_sender = web3.to_checksum_address(sender_address)
471
+ checksum_address_tokenToBuy = web3.to_checksum_address(tokenToBuy)
472
+ print(checksum_address_sender)
473
+ totaltoken = 1000000000000000000 * int(amountToken)
474
+ totalBNB = (float(prixNative) * float(amountToken) * 1.01 + float(0.000737585))
475
+ pancakeswap2_txn = contract.functions.swapETHForExactTokens(
476
+ totaltoken, # set to 0, or specify minimum amount of tokeny you want to receive - consider decimals!!!
477
+ # set to 0, or specify minimum amount of tokeny you want to receive - consider decimals!!!
478
+ [spend,checksum_address_tokenToBuy],
479
+ checksum_address_sender,
480
+ (int(time.time()) + 10000)
481
+ ).build_transaction({
482
+ 'from': checksum_address_sender,
483
+ 'value': web3.to_wei(totalBNB,'ether'),#This is the Token(BNB) amount you want to Swap from
484
+ 'gas': 250000,
485
+ 'gasPrice': web3.to_wei('5','gwei'),
486
+ 'nonce': nonce,
487
+ })
488
+
489
+ signed_txn = web3.eth.account.sign_transaction(pancakeswap2_txn, private_key="privatekey")
490
+ tx_token = web3.eth.send_raw_transaction(signed_txn.rawTransaction)
491
+ print("TRX : " + web3.to_hex(tx_token))
492
+ trxfinal = web3.to_hex(tx_token)
493
+ return trxfinal
494
+
495
+
496
+
497
+ while True:
498
+ time.sleep(1)
499
+
500
+ if prompt_token_address:
501
+ price_now = analyser_prix(prompt_token_address)
502
+ print(st.session_state.bool1)
503
+ prompt_addres_userBNB = "0xD7eA51d434D0897DE93400b43341FB3115585111"
504
+ prixNative = analyser_prixBNB(prompt_token_address)
505
+
506
+ if st.session_state.bool1:
507
+ print("CHECK PRICE TRADE 1")
508
+ if price_now > st.session_state.price1:
509
+ print("Trade Sell 1 : ")
510
+ #st.session_state.trx1 = sellToken(st.session_state.amount1, prompt_addres_userBNB, prompt_token_address, prixNative)
511
+ toggle_bool1()
512
+ reset_value(1)
513
+ st.write("Trade 1 done")
514
+
515
+ st.experimental_rerun()
516
+
517
+ if st.session_state.bool2:
518
+ print("CHECK PRICE TRADE 2")
519
+ if price_now > st.session_state.price2:
520
+ print("Trade Sell 2 : ")
521
+ #st.session_state.trx2 = sellToken(st.session_state.amount2, prompt_addres_userBNB, prompt_token_address, prixNative)
522
+ toggle_bool2()
523
+ st.write("Trade 2 done")
524
+ reset_value(2)
525
+
526
+ st.experimental_rerun()
527
+
528
+ if st.session_state.bool3:
529
+ print("CHECK PRICE TRADE 3")
530
+ if price_now > st.session_state.price3:
531
+ print("Trade Sell 3 : ")
532
+ #st.session_state.trx3 = sellToken(st.session_state.amount3, prompt_addres_userBNB, prompt_token_address, prixNative)
533
+ toggle_bool3()
534
+ reset_value(3)
535
+
536
+ st.experimental_rerun()
537
+
538
+ if st.session_state.bool4:
539
+ print("CHECK PRICE TRADE 4")
540
+ if price_now < st.session_state.price4 and st.session_state.price4 > 0:
541
+ print("Trade BUY 4 : ")
542
+ #st.session_state.trx4 = buyToken(st.session_state.amount4, prompt_addres_userBNB, prompt_token_address, prixNative)
543
+ toggle_bool4()
544
+ reset_value(4)
545
+ st.experimental_rerun()
546
+
547
+ if st.session_state.bool5:
548
+ print("CHECK PRICE TRADE 5")
549
+ if price_now < st.session_state.price5 and st.session_state.price5 > 0:
550
+ print("Trade BUY 5 : ")
551
+ #st.session_state.trx5 = buyToken(st.session_state.amount5, prompt_addres_userBNB, prompt_token_address, prixNative)
552
+ toggle_bool5()
553
+ reset_value(5)
554
+ st.experimental_rerun()
555
+
556
+ if st.session_state.bool6:
557
+ print("CHECK PRICE TRADE 6")
558
+ if price_now < st.session_state.price6 and st.session_state.price6 > 0:
559
+ print("Trade BUY 6 : ")
560
+ #st.session_state.trx6 = buyToken(st.session_state.amount6, prompt_addres_userBNB, prompt_token_address, prixNative)
561
+ toggle_bool6()
562
+ reset_value(6)
563
+ st.experimental_rerun()
564
+
565
+ time.sleep(1)
566
+
567
+