From 9697ccbd47650adebcb3c4b14be2251a39fb1747 Mon Sep 17 00:00:00 2001 From: hanifdamarjati20 Date: Sun, 2 Feb 2025 21:40:08 +0700 Subject: [PATCH 01/13] update --- config.py | 39 +++++++++++++++++++++++++++++ data_bridge.py | 13 ---------- keys_and_addresses.py | 13 ---------- network_config.py | 24 ------------------ t3rn-bot.py | 58 ++++++++++++++++--------------------------- 5 files changed, 60 insertions(+), 87 deletions(-) create mode 100644 config.py delete mode 100644 data_bridge.py delete mode 100644 keys_and_addresses.py delete mode 100644 network_config.py diff --git a/config.py b/config.py new file mode 100644 index 0000000..939afc4 --- /dev/null +++ b/config.py @@ -0,0 +1,39 @@ +data_bridge = { + "Arbitrum - BASE": '0x56591d5962737370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dd76822450987d8e929f17ae50e7d9f0b99fbb960000000000000000000000000000000000000000000000000dd99ba123d5635e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a7640000', + "Arbitrum - OP": '0x56591d596f707370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dd76822450987d8e929f17ae50e7d9f0b99fbb960000000000000000000000000000000000000000000000000dd99a2c14fe85b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a7640000', + + "OP - Arbitrum": '0x56591d5961726274000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dd76822450987d8e929f17ae50e7d9f0b99fbb960000000000000000000000000000000000000000000000000dd99ba123b9565d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a7640000', + "OP - BASE": '0x56591d5962737370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dd76822450987d8e929f17ae50e7d9f0b99fbb960000000000000000000000000000000000000000000000000dbd3e3947dd4a8a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dc44abe81300000', + + "BASE - OP": '0x56591d596f707370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dd76822450987d8e929f17ae50e7d9f0b99fbb960000000000000000000000000000000000000000000000000dab83e2fb6963a7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000db28745494f8000', + "BASE - Arbitrum": '0x56591d5961726274000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dd76822450987d8e929f17ae50e7d9f0b99fbb960000000000000000000000000000000000000000000000000dd99ba1235fd903000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a7640000', +} + +networks = { + 'Arbitrum Sepolia': { + 'rpc_url': 'https://arb-sepolia.g.alchemy.com/v2/xYu4WpjXgnrRuWucBGGiWzXeott18G-9', + 'chain_id': 421614, + 'contract_address': '0x8D86c3573928CE125f9b2df59918c383aa2B514D' + }, + 'OP Sepolia': { + 'rpc_url': 'https://opt-sepolia.g.alchemy.com/v2/Xr-VU76P_nl32pDDXh102_x6zRQsxxaV', + 'chain_id': 11155420, + 'contract_address': '0xF221750e52aA080835d2957F2Eed0d5d7dDD8C38' + }, + 'Blast Sepolia': { + 'rpc_url': 'https://blast-sepolia.g.alchemy.com/v2/Gv98S5D61xGly9QOcYhtmVMKOM5g06rT', + 'chain_id': 168587773, + 'contract_address': '0x1D5FD4ed9bDdCCF5A74718B556E9d15743cB26A2' + }, + 'Base Sepolia': { + 'rpc_url': 'https://base-sepolia.g.alchemy.com/v2/ia2mGIJ9XRc2xrsJOsyrjU5QkoVqCvtu', + 'chain_id': 84532, + 'contract_address': '0x30A0155082629940d4bd9Cd41D6EF90876a0F1b5' + } +} + +private_keys = ['pk'] + +my_addresses = ['address'] + +labels = ['WalletX'] diff --git a/data_bridge.py b/data_bridge.py deleted file mode 100644 index f3db468..0000000 --- a/data_bridge.py +++ /dev/null @@ -1,13 +0,0 @@ -# data_bridge.py - -data_bridge = { - "Arbitrum - BASE": 'pastehex', - "Arbitrum - OP": 'pastehex', - - "OP - Arbitrum": 'pastehex', - "OP - BASE": 'pastehex', - - "BASE - OP": 'pastehex', - "BASE - Arbitrum": 'pastehex', - - } diff --git a/keys_and_addresses.py b/keys_and_addresses.py deleted file mode 100644 index 4c914b5..0000000 --- a/keys_and_addresses.py +++ /dev/null @@ -1,13 +0,0 @@ -# keys_and_addresses.py -# replace you key and address -private_keys = [ - 'pk' # Example: '9da...365' -] - -my_addresses = [ - 'address' # Example: '0x087....E85' -] - -labels = [ - 'wallet1' -] diff --git a/network_config.py b/network_config.py deleted file mode 100644 index 724c70f..0000000 --- a/network_config.py +++ /dev/null @@ -1,24 +0,0 @@ -# network_config.py - -networks = { - 'Arbitrum Sepolia': { - 'rpc_url': 'https://arb-sepolia.g.alchemy.com/v2/xYu4WpjXgnrRuWucBGGiWzXeott18G-9', - 'chain_id': 421614, - 'contract_address': '0x8D86c3573928CE125f9b2df59918c383aa2B514D' - }, - 'OP Sepolia': { - 'rpc_url': 'https://opt-sepolia.g.alchemy.com/v2/Xr-VU76P_nl32pDDXh102_x6zRQsxxaV', - 'chain_id': 11155420, - 'contract_address': '0xF221750e52aA080835d2957F2Eed0d5d7dDD8C38' - }, - 'Blast Sepolia': { - 'rpc_url': 'https://blast-sepolia.g.alchemy.com/v2/Gv98S5D61xGly9QOcYhtmVMKOM5g06rT', - 'chain_id': 168587773, - 'contract_address': '0x1D5FD4ed9bDdCCF5A74718B556E9d15743cB26A2' - }, - 'Base Sepolia': { - 'rpc_url': 'https://base-sepolia.g.alchemy.com/v2/ia2mGIJ9XRc2xrsJOsyrjU5QkoVqCvtu', - 'chain_id': 84532, - 'contract_address': '0x30A0155082629940d4bd9Cd41D6EF90876a0F1b5' - } -} diff --git a/t3rn-bot.py b/t3rn-bot.py index ac90dab..4681764 100644 --- a/t3rn-bot.py +++ b/t3rn-bot.py @@ -2,9 +2,7 @@ from eth_account import Account import time import os -from data_bridge import data_bridge -from keys_and_addresses import private_keys, my_addresses, labels -from network_config import networks +from config import networks, private_keys, my_addresses, labels, data_bridge import codecs # Fungsi untuk memusatkan teks @@ -12,11 +10,11 @@ def center_text(text): terminal_width = os.get_terminal_size().columns lines = text.splitlines() centered_lines = [line.center(terminal_width) for line in lines] - return "\n".join(centered_lines) +return "\n".join(centered_lines) # Fungsi untuk membersihkan terminal def clear_terminal(): - os.system('cls' if os.name == 'nt' else 'clear') +os.system('cls' if os.name == 'nt' else 'clear') ascii_art = """ @@ -31,10 +29,6 @@ def clear_terminal(): """ -description = """ - -""" - chain_symbols = { 'Arbitrum Sepolia': '\033[34m', 'OP Sepolia': '\033[91m', @@ -56,7 +50,7 @@ def clear_terminal(): def get_brn_balance(web3, my_address): balance = web3.eth.get_balance(my_address) - return web3.from_wei(balance, 'ether') +return web3.from_wei(balance, 'ether') def send_bridge_transaction(web3, account, my_address, data, network_name): my_address = Web3.to_checksum_address(my_address) # Mengonversi alamat ke format checksum @@ -118,12 +112,12 @@ def send_bridge_transaction(web3, account, my_address, data, network_name): return web3.to_hex(tx_hash), value_in_ether except Exception as e: print(f"Error sending transaction: {e}") - return None, None +return None, None def process_network_transactions(network_name, bridges, chain_data, successful_txs): web3 = Web3(Web3.HTTPProvider(chain_data['rpc_url'])) if not web3.is_connected(): - raise Exception(f"Tidak dapat terhubung ke jaringan {network_name}") + raise Exception(f"Tidak dapat terhubung ke jaringan {network_name}") for bridge in bridges: for i, private_key in enumerate(private_keys): @@ -133,17 +127,14 @@ def process_network_transactions(network_name, bridges, chain_data, successful_t if result: tx_hash, value_sent = result successful_txs += 1 - if value_sent is not None: print(f"{chain_symbols[network_name]} Total Tx Sukses: {successful_txs} | {labels[i]} | Bridge: {bridge} | Jumlah Bridge: {value_sent:.5f} ETH ✅{reset_color}\n") else: print(f"{chain_symbols[network_name]} Total Tx Sukses: {successful_txs} | {labels[i]} | Bridge: {bridge} ✅{reset_color}\n") - - print(f"{'='*150}") - print("\n") - time.sleep(3) - - return successful_txs + print(f"{'='*150}") + print("\n") + time.sleep(3) +return successful_txs def display_menu(): print(f"{menu_color}Pilih chain untuk menjalankan transaksi:{reset_color}") @@ -155,11 +146,10 @@ def display_menu(): print(f"{menu_color}5. Run all transactions repeatedly..recommended.. {reset_color}") print("") choice = input("choose (1-5): ") - return choice +return choice def main(): - print("\033[92m" + center_text(ascii_art) + "\033[0m") - print(center_text(description)) + print("\033[92m" + center_text(ascii_art) + "\033[0m") print("\n\n") successful_txs = 0 @@ -168,7 +158,6 @@ def main(): choice = display_menu() clear_terminal() print("\033[92m" + center_text(ascii_art) + "\033[0m") - print(center_text(description)) print("\n\n") try: @@ -177,29 +166,25 @@ def main(): while True: successful_txs = process_network_transactions('OP Sepolia', ["OP - BASE"], networks['OP Sepolia'], successful_txs) print("Wait 10 Second for Safety (OP -> BASE)...") - time.sleep(10) - + time.sleep(10) elif choice == '2': print(f"{menu_color}Jalankan transaksi BASE -> OP Sepolia secara terus-menerus...{reset_color}") while True: successful_txs = process_network_transactions('Base Sepolia', ["BASE - OP"], networks['Base Sepolia'], successful_txs) print("Wait 10 Second for Safety (BASE -> OP)...") - time.sleep(10) - + time.sleep(10) elif choice == '3': print(f"{menu_color}Jalankan transaksi BASE -> Arbitrum Sepolia secara terus-menerus...{reset_color}") while True: successful_txs = process_network_transactions('Base Sepolia', ["BASE - Arbitrum"], networks['Base Sepolia'], successful_txs) print("Wait 10 Second for Safety (BASE -> Arbitrum)...") - time.sleep(10) - + time.sleep(10) elif choice == '4': print(f"{menu_color}Jalankan transaksi Arbitrum -> BASE Sepolia secara terus-menerus...{reset_color}") while True: successful_txs = process_network_transactions('Arbitrum Sepolia', ["Arbitrum - BASE"], networks['Arbitrum Sepolia'], successful_txs) print("Wait 10 Second for Safety (Arbitrum -> BASE)...") - time.sleep(10) - + time.sleep(10) elif choice == '5': print(f"{menu_color}Jalankan transaksi secara terus-menerus dari OP -> BASE, BASE -> OP, BASE -> Arbitrum, Arbitrum -> BASE{reset_color}") while True: @@ -217,12 +202,11 @@ def main(): successful_txs = process_network_transactions('Arbitrum Sepolia', ["Arbitrum - BASE"], networks['Arbitrum Sepolia'], successful_txs) print("Wait 10 Second for Safety (Arbitrum -> BASE)...") - time.sleep(10) - - except Exception as e: - print(f"Terjadi kesalahan: {e}") - print("Wait 5 Second for Safety...") - time.sleep(5) + time.sleep(10) + except Exception as e: + print(f"Terjadi kesalahan: {e}") + print("Wait 5 Second for Safety...") +time.sleep(5) if __name__ == "__main__": main() From 1d54e5191a8510b5c6a1e4da4013a4646921910a Mon Sep 17 00:00:00 2001 From: H <68972646+hnfdm@users.noreply.github.com> Date: Sun, 2 Feb 2025 21:43:38 +0700 Subject: [PATCH 02/13] Update README.md --- README.md | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 69 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 4c164df..cf1b21d 100644 --- a/README.md +++ b/README.md @@ -1 +1,69 @@ -# tbot \ No newline at end of file +### T3rnBot - Bot Auto Bridge Multi-Chain (Arbitrum Sepolia, OP Sepolia, Blast Sepolia, Base Sepolia) + +T3rnBot adalah bot otomatis yang melakukan bridging token di antara beberapa jaringan, termasuk +Arbitrum Sepolia, OP Sepolia, Blast Sepolia, dan Base Sepolia. Bot ini dirancang untuk memudahkan +transfer token antarjaringan dengan cepat dan efisien. + + +### Fitur +- **Auto Bridging Multi-Chain:** Mengotomatisasi proses bridging dari Arbitrum Sepolia, OP Sepolia, + Blast Sepolia, dan Base Sepolia. +- **Notifikasi Transaksi Real-Time:** Menampilkan hasil transaksi yang berhasil secara real-time + dengan detail seperti hash transaksi, jumlah ETH yang dikirim, dan total transaksi yang sukses. +- **Penandaan Jaringan dengan Warna:** Output menampilkan warna berbeda untuk setiap jaringan + (Arbitrum, OP, Blast, Base) agar mudah diidentifikasi. +- **Pengecekan Koneksi Jaringan:** Bot akan memeriksa apakah terhubung ke setiap jaringan sebelum + memulai proses bridging. +- **Retry Transaksi:** Jika ada kegagalan dalam perkiraan gas atau pengiriman transaksi, bot akan + menampilkan pesan kesalahan. + +### Instalasi + +1. Clone repository ini ke lokal Anda: + + ```bash + git clone https://github.com/hnfdm/tbot-asc.git + ``` + +2. Masuk ke direktori proyek: + ```bash + cd tbot-asc + ``` + +3. Install dependencies yang diperlukan: + ```bash + pip install web3 eth_account + ``` + +4. Pip install error? Pake virtual environtment: + ```bash + python3 -m venv t3rn + ``` + ```bash + source t3rn/bin/activate + ``` + +### Konfigurasi + +1. Ganti `private_keys`, `my_addresses`, dan `labels` dengan pk dan address di file `config.py`. + +2. Atur rpc dan ca di file `config.py` sesuai dengan jaringan yang ingin Anda gunakan. + +3. Masukkan data hex pada `config.py` dengan cara lakukan swap manual & copy HEX. + +### Cara Penggunaan + +1. Jalankan bot dengan perintah berikut: + + ```bash + python t3rn-bot.py + ``` + +2. Bot akan secara otomatis melakukan bridging antarjaringan sesuai dengan konfigurasi yang telah diatur. + +### Catatan +- Bot ini dapat dihentikan kapan saja dengan menggunakan kombinasi **Ctrl + C** di terminal. +- Pastikan saldo yang cukup tersedia di setiap jaringan sebelum memulai bridging. + +### Acknowledgements +- Inspired by [airdropinsiders](https://github.com/airdropinsiders) From bf31c37cc5e2d6b68dfe9036f42f6860ecdf63ef Mon Sep 17 00:00:00 2001 From: hanifdamarjati20 Date: Sun, 2 Feb 2025 21:50:47 +0700 Subject: [PATCH 03/13] fix --- t3rn-bot.py | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/t3rn-bot.py b/t3rn-bot.py index 4681764..27b7800 100644 --- a/t3rn-bot.py +++ b/t3rn-bot.py @@ -10,11 +10,11 @@ def center_text(text): terminal_width = os.get_terminal_size().columns lines = text.splitlines() centered_lines = [line.center(terminal_width) for line in lines] -return "\n".join(centered_lines) + return "\n".join(centered_lines) # Fungsi untuk membersihkan terminal def clear_terminal(): -os.system('cls' if os.name == 'nt' else 'clear') + os.system('cls' if os.name == 'nt' else 'clear') ascii_art = """ @@ -50,7 +50,7 @@ def clear_terminal(): def get_brn_balance(web3, my_address): balance = web3.eth.get_balance(my_address) -return web3.from_wei(balance, 'ether') + return web3.from_wei(balance, 'ether') def send_bridge_transaction(web3, account, my_address, data, network_name): my_address = Web3.to_checksum_address(my_address) # Mengonversi alamat ke format checksum @@ -68,7 +68,7 @@ def send_bridge_transaction(web3, account, my_address, data, network_name): gas_limit = gas_estimate + 50000 except Exception as e: print(f"Error estimating gas: {e}") - return None + return None base_fee = web3.eth.get_block('latest')['baseFeePerGas'] priority_fee = web3.to_wei(5, 'gwei') @@ -112,12 +112,12 @@ def send_bridge_transaction(web3, account, my_address, data, network_name): return web3.to_hex(tx_hash), value_in_ether except Exception as e: print(f"Error sending transaction: {e}") -return None, None + return None, None def process_network_transactions(network_name, bridges, chain_data, successful_txs): web3 = Web3(Web3.HTTPProvider(chain_data['rpc_url'])) if not web3.is_connected(): - raise Exception(f"Tidak dapat terhubung ke jaringan {network_name}") + raise Exception(f"Tidak dapat terhubung ke jaringan {network_name}") for bridge in bridges: for i, private_key in enumerate(private_keys): @@ -131,10 +131,10 @@ def process_network_transactions(network_name, bridges, chain_data, successful_t print(f"{chain_symbols[network_name]} Total Tx Sukses: {successful_txs} | {labels[i]} | Bridge: {bridge} | Jumlah Bridge: {value_sent:.5f} ETH ✅{reset_color}\n") else: print(f"{chain_symbols[network_name]} Total Tx Sukses: {successful_txs} | {labels[i]} | Bridge: {bridge} ✅{reset_color}\n") - print(f"{'='*150}") - print("\n") - time.sleep(3) -return successful_txs + print(f"{'='*150}") + print("\n") + time.sleep(3) + return successful_txs def display_menu(): print(f"{menu_color}Pilih chain untuk menjalankan transaksi:{reset_color}") @@ -146,7 +146,7 @@ def display_menu(): print(f"{menu_color}5. Run all transactions repeatedly..recommended.. {reset_color}") print("") choice = input("choose (1-5): ") -return choice + return choice def main(): print("\033[92m" + center_text(ascii_art) + "\033[0m") @@ -206,7 +206,7 @@ def main(): except Exception as e: print(f"Terjadi kesalahan: {e}") print("Wait 5 Second for Safety...") -time.sleep(5) + time.sleep(5) if __name__ == "__main__": main() From 4e17b20f257b94a2ff96154903f2f5418bfe7251 Mon Sep 17 00:00:00 2001 From: hanifdamarjati20 Date: Sun, 2 Feb 2025 21:57:08 +0700 Subject: [PATCH 04/13] fix 2 --- t3rn-bot.py | 47 ++++++++++++++++++++++++++++------------------- 1 file changed, 28 insertions(+), 19 deletions(-) diff --git a/t3rn-bot.py b/t3rn-bot.py index 27b7800..213f22e 100644 --- a/t3rn-bot.py +++ b/t3rn-bot.py @@ -29,6 +29,10 @@ def clear_terminal(): """ +description = """ + +""" + chain_symbols = { 'Arbitrum Sepolia': '\033[34m', 'OP Sepolia': '\033[91m', @@ -68,7 +72,7 @@ def send_bridge_transaction(web3, account, my_address, data, network_name): gas_limit = gas_estimate + 50000 except Exception as e: print(f"Error estimating gas: {e}") - return None + return None base_fee = web3.eth.get_block('latest')['baseFeePerGas'] priority_fee = web3.to_wei(5, 'gwei') @@ -94,12 +98,9 @@ def send_bridge_transaction(web3, account, my_address, data, network_name): try: tx_hash = web3.eth.send_raw_transaction(signed_txn.raw_transaction) tx_receipt = web3.eth.wait_for_transaction_receipt(tx_hash) - balance = web3.eth.get_balance(my_address) formatted_balance = web3.from_wei(balance, 'ether') - brn_balance = get_brn_balance(Web3(Web3.HTTPProvider('https://brn.rpc.caldera.xyz/http')), my_address) - explorer_link = f"{explorer_urls[network_name]}{web3.to_hex(tx_hash)}" print(f"{green_color} Alamat Pengirim: {account.address}") @@ -112,7 +113,7 @@ def send_bridge_transaction(web3, account, my_address, data, network_name): return web3.to_hex(tx_hash), value_in_ether except Exception as e: print(f"Error sending transaction: {e}") - return None, None + return None, None def process_network_transactions(network_name, bridges, chain_data, successful_txs): web3 = Web3(Web3.HTTPProvider(chain_data['rpc_url'])) @@ -131,9 +132,10 @@ def process_network_transactions(network_name, bridges, chain_data, successful_t print(f"{chain_symbols[network_name]} Total Tx Sukses: {successful_txs} | {labels[i]} | Bridge: {bridge} | Jumlah Bridge: {value_sent:.5f} ETH ✅{reset_color}\n") else: print(f"{chain_symbols[network_name]} Total Tx Sukses: {successful_txs} | {labels[i]} | Bridge: {bridge} ✅{reset_color}\n") - print(f"{'='*150}") - print("\n") - time.sleep(3) + print(f"{'='*150}") + print("\n") + time.sleep(3) + return successful_txs def display_menu(): @@ -149,7 +151,8 @@ def display_menu(): return choice def main(): - print("\033[92m" + center_text(ascii_art) + "\033[0m") + print("\033[92m" + center_text(ascii_art) + "\033[0m") + print(center_text(description)) print("\n\n") successful_txs = 0 @@ -158,6 +161,7 @@ def main(): choice = display_menu() clear_terminal() print("\033[92m" + center_text(ascii_art) + "\033[0m") + print(center_text(description)) print("\n\n") try: @@ -166,25 +170,29 @@ def main(): while True: successful_txs = process_network_transactions('OP Sepolia', ["OP - BASE"], networks['OP Sepolia'], successful_txs) print("Wait 10 Second for Safety (OP -> BASE)...") - time.sleep(10) + time.sleep(10) + elif choice == '2': print(f"{menu_color}Jalankan transaksi BASE -> OP Sepolia secara terus-menerus...{reset_color}") while True: successful_txs = process_network_transactions('Base Sepolia', ["BASE - OP"], networks['Base Sepolia'], successful_txs) print("Wait 10 Second for Safety (BASE -> OP)...") - time.sleep(10) + time.sleep(10) + elif choice == '3': print(f"{menu_color}Jalankan transaksi BASE -> Arbitrum Sepolia secara terus-menerus...{reset_color}") while True: successful_txs = process_network_transactions('Base Sepolia', ["BASE - Arbitrum"], networks['Base Sepolia'], successful_txs) print("Wait 10 Second for Safety (BASE -> Arbitrum)...") - time.sleep(10) + time.sleep(10) + elif choice == '4': print(f"{menu_color}Jalankan transaksi Arbitrum -> BASE Sepolia secara terus-menerus...{reset_color}") while True: successful_txs = process_network_transactions('Arbitrum Sepolia', ["Arbitrum - BASE"], networks['Arbitrum Sepolia'], successful_txs) print("Wait 10 Second for Safety (Arbitrum -> BASE)...") - time.sleep(10) + time.sleep(10) + elif choice == '5': print(f"{menu_color}Jalankan transaksi secara terus-menerus dari OP -> BASE, BASE -> OP, BASE -> Arbitrum, Arbitrum -> BASE{reset_color}") while True: @@ -202,11 +210,12 @@ def main(): successful_txs = process_network_transactions('Arbitrum Sepolia', ["Arbitrum - BASE"], networks['Arbitrum Sepolia'], successful_txs) print("Wait 10 Second for Safety (Arbitrum -> BASE)...") - time.sleep(10) - except Exception as e: - print(f"Terjadi kesalahan: {e}") - print("Wait 5 Second for Safety...") - time.sleep(5) + time.sleep(10) + + except Exception as e: + print(f"Terjadi kesalahan: {e}") + print("Wait 5 Second for Safety...") + time.sleep(5) if __name__ == "__main__": - main() + main() \ No newline at end of file From c8740382ab21b4a93019126494f06eec9b752d0f Mon Sep 17 00:00:00 2001 From: hanifdamarjati20 Date: Sun, 2 Feb 2025 22:05:39 +0700 Subject: [PATCH 05/13] update --- README.md | 2 +- config.py | 10 +++++----- t3rn-bot.py => t3rn.py | 32 ++++++++++++++++---------------- 3 files changed, 22 insertions(+), 22 deletions(-) rename t3rn-bot.py => t3rn.py (88%) diff --git a/README.md b/README.md index cf1b21d..57dd395 100644 --- a/README.md +++ b/README.md @@ -56,7 +56,7 @@ transfer token antarjaringan dengan cepat dan efisien. 1. Jalankan bot dengan perintah berikut: ```bash - python t3rn-bot.py + python t3rn.py ``` 2. Bot akan secara otomatis melakukan bridging antarjaringan sesuai dengan konfigurasi yang telah diatur. diff --git a/config.py b/config.py index 939afc4..7df9826 100644 --- a/config.py +++ b/config.py @@ -1,16 +1,16 @@ data_bridge = { - "Arbitrum - BASE": '0x56591d5962737370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dd76822450987d8e929f17ae50e7d9f0b99fbb960000000000000000000000000000000000000000000000000dd99ba123d5635e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a7640000', - "Arbitrum - OP": '0x56591d596f707370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dd76822450987d8e929f17ae50e7d9f0b99fbb960000000000000000000000000000000000000000000000000dd99a2c14fe85b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a7640000', + "ARB - BASE": '0x56591d5962737370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dd76822450987d8e929f17ae50e7d9f0b99fbb960000000000000000000000000000000000000000000000000dd99ba123d5635e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a7640000', + "ARB - OP": '0x56591d596f707370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dd76822450987d8e929f17ae50e7d9f0b99fbb960000000000000000000000000000000000000000000000000dd99a2c14fe85b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a7640000', - "OP - Arbitrum": '0x56591d5961726274000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dd76822450987d8e929f17ae50e7d9f0b99fbb960000000000000000000000000000000000000000000000000dd99ba123b9565d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a7640000', + "OP - ARB": '0x56591d5961726274000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dd76822450987d8e929f17ae50e7d9f0b99fbb960000000000000000000000000000000000000000000000000dd99ba123b9565d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a7640000', "OP - BASE": '0x56591d5962737370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dd76822450987d8e929f17ae50e7d9f0b99fbb960000000000000000000000000000000000000000000000000dbd3e3947dd4a8a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dc44abe81300000', "BASE - OP": '0x56591d596f707370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dd76822450987d8e929f17ae50e7d9f0b99fbb960000000000000000000000000000000000000000000000000dab83e2fb6963a7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000db28745494f8000', - "BASE - Arbitrum": '0x56591d5961726274000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dd76822450987d8e929f17ae50e7d9f0b99fbb960000000000000000000000000000000000000000000000000dd99ba1235fd903000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a7640000', + "BASE - ARB": '0x56591d5961726274000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dd76822450987d8e929f17ae50e7d9f0b99fbb960000000000000000000000000000000000000000000000000dd99ba1235fd903000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a7640000', } networks = { - 'Arbitrum Sepolia': { + 'ARB Sepolia': { 'rpc_url': 'https://arb-sepolia.g.alchemy.com/v2/xYu4WpjXgnrRuWucBGGiWzXeott18G-9', 'chain_id': 421614, 'contract_address': '0x8D86c3573928CE125f9b2df59918c383aa2B514D' diff --git a/t3rn-bot.py b/t3rn.py similarity index 88% rename from t3rn-bot.py rename to t3rn.py index 213f22e..d9089dd 100644 --- a/t3rn-bot.py +++ b/t3rn.py @@ -34,7 +34,7 @@ def clear_terminal(): """ chain_symbols = { - 'Arbitrum Sepolia': '\033[34m', + 'ARB Sepolia': '\033[34m', 'OP Sepolia': '\033[91m', 'Blast Sepolia': '\033[93m', 'Base Sepolia': '\033[96m' @@ -45,7 +45,7 @@ def clear_terminal(): menu_color = '\033[95m' explorer_urls = { - 'Arbitrum Sepolia': 'https://sepolia.arbiscan.io/tx/', + 'ARB Sepolia': 'https://sepolia.arbiscan.io/tx/', 'OP Sepolia': 'https://sepolia-optimism.etherscan.io/tx/', 'Blast Sepolia': 'https://testnet.blastscan.io/tx/', 'Base Sepolia': 'https://sepolia.basescan.org/tx/', @@ -143,9 +143,9 @@ def display_menu(): print("") print(f"{chain_symbols['OP Sepolia']}1. OP -> BASE Sepolia{reset_color}") print(f"{chain_symbols['Base Sepolia']}2. BASE -> OP Sepolia{reset_color}") - print(f"{chain_symbols['Arbitrum Sepolia']}3. BASE -> Arbitrum Sepolia{reset_color}") - print(f"{chain_symbols['Arbitrum Sepolia']}4. Arbitrum -> BASE Sepolia{reset_color}") - print(f"{menu_color}5. Run all transactions repeatedly..recommended.. {reset_color}") + print(f"{chain_symbols['ARB Sepolia']}3. BASE -> ARB Sepolia{reset_color}") + print(f"{chain_symbols['ARB Sepolia']}4. ARB -> BASE Sepolia{reset_color}") + print(f"{menu_color}5. Run All & Looping (Recommended) {reset_color}") print("") choice = input("choose (1-5): ") return choice @@ -180,21 +180,21 @@ def main(): time.sleep(10) elif choice == '3': - print(f"{menu_color}Jalankan transaksi BASE -> Arbitrum Sepolia secara terus-menerus...{reset_color}") + print(f"{menu_color}Jalankan transaksi BASE -> ARB Sepolia secara terus-menerus...{reset_color}") while True: - successful_txs = process_network_transactions('Base Sepolia', ["BASE - Arbitrum"], networks['Base Sepolia'], successful_txs) - print("Wait 10 Second for Safety (BASE -> Arbitrum)...") + successful_txs = process_network_transactions('Base Sepolia', ["BASE - ARB"], networks['Base Sepolia'], successful_txs) + print("Wait 10 Second for Safety (BASE -> ARB)...") time.sleep(10) elif choice == '4': - print(f"{menu_color}Jalankan transaksi Arbitrum -> BASE Sepolia secara terus-menerus...{reset_color}") + print(f"{menu_color}Jalankan transaksi ARB -> BASE Sepolia secara terus-menerus...{reset_color}") while True: - successful_txs = process_network_transactions('Arbitrum Sepolia', ["Arbitrum - BASE"], networks['Arbitrum Sepolia'], successful_txs) - print("Wait 10 Second for Safety (Arbitrum -> BASE)...") + successful_txs = process_network_transactions('ARB Sepolia', ["ARB - BASE"], networks['ARB Sepolia'], successful_txs) + print("Wait 10 Second for Safety (ARB -> BASE)...") time.sleep(10) elif choice == '5': - print(f"{menu_color}Jalankan transaksi secara terus-menerus dari OP -> BASE, BASE -> OP, BASE -> Arbitrum, Arbitrum -> BASE{reset_color}") + print(f"{menu_color}Jalankan transaksi secara terus-menerus dari OP -> BASE, BASE -> OP, BASE -> ARB, ARB -> BASE{reset_color}") while True: successful_txs = process_network_transactions('OP Sepolia', ["OP - BASE"], networks['OP Sepolia'], successful_txs) print("Wait 10 Second for Safety (OP -> BASE)...") @@ -204,12 +204,12 @@ def main(): print("Wait 10 Second for Safety (BASE -> OP)...") time.sleep(10) - successful_txs = process_network_transactions('Base Sepolia', ["BASE - Arbitrum"], networks['Base Sepolia'], successful_txs) - print("Wait 10 Second for Safety (BASE -> Arbitrum)...") + successful_txs = process_network_transactions('Base Sepolia', ["BASE - ARB"], networks['Base Sepolia'], successful_txs) + print("Wait 10 Second for Safety (BASE -> ARB)...") time.sleep(10) - successful_txs = process_network_transactions('Arbitrum Sepolia', ["Arbitrum - BASE"], networks['Arbitrum Sepolia'], successful_txs) - print("Wait 10 Second for Safety (Arbitrum -> BASE)...") + successful_txs = process_network_transactions('ARB Sepolia', ["ARB - BASE"], networks['ARB Sepolia'], successful_txs) + print("Wait 10 Second for Safety (ARB -> BASE)...") time.sleep(10) except Exception as e: From 8570f2ad08aa8be83086846245305a1d3fdfbf8d Mon Sep 17 00:00:00 2001 From: hanifdamarjati20 Date: Sun, 2 Feb 2025 22:07:59 +0700 Subject: [PATCH 06/13] update time sleep --- t3rn.py | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/t3rn.py b/t3rn.py index d9089dd..4fa8a57 100644 --- a/t3rn.py +++ b/t3rn.py @@ -169,53 +169,53 @@ def main(): print(f"{menu_color}Jalankan transaksi OP -> BASE Sepolia secara terus-menerus...{reset_color}") while True: successful_txs = process_network_transactions('OP Sepolia', ["OP - BASE"], networks['OP Sepolia'], successful_txs) - print("Wait 10 Second for Safety (OP -> BASE)...") - time.sleep(10) + print("Wait 5s for Safety (OP -> BASE)...") + time.sleep(5) elif choice == '2': print(f"{menu_color}Jalankan transaksi BASE -> OP Sepolia secara terus-menerus...{reset_color}") while True: successful_txs = process_network_transactions('Base Sepolia', ["BASE - OP"], networks['Base Sepolia'], successful_txs) - print("Wait 10 Second for Safety (BASE -> OP)...") - time.sleep(10) + print("Wait 5s for Safety (BASE -> OP)...") + time.sleep(5) elif choice == '3': print(f"{menu_color}Jalankan transaksi BASE -> ARB Sepolia secara terus-menerus...{reset_color}") while True: successful_txs = process_network_transactions('Base Sepolia', ["BASE - ARB"], networks['Base Sepolia'], successful_txs) - print("Wait 10 Second for Safety (BASE -> ARB)...") - time.sleep(10) + print("Wait 5s for Safety (BASE -> ARB)...") + time.sleep(5) elif choice == '4': print(f"{menu_color}Jalankan transaksi ARB -> BASE Sepolia secara terus-menerus...{reset_color}") while True: successful_txs = process_network_transactions('ARB Sepolia', ["ARB - BASE"], networks['ARB Sepolia'], successful_txs) - print("Wait 10 Second for Safety (ARB -> BASE)...") - time.sleep(10) + print("Wait 5s for Safety (ARB -> BASE)...") + time.sleep(5) elif choice == '5': print(f"{menu_color}Jalankan transaksi secara terus-menerus dari OP -> BASE, BASE -> OP, BASE -> ARB, ARB -> BASE{reset_color}") while True: successful_txs = process_network_transactions('OP Sepolia', ["OP - BASE"], networks['OP Sepolia'], successful_txs) - print("Wait 10 Second for Safety (OP -> BASE)...") - time.sleep(10) + print("Wait 5s for Safety (OP -> BASE)...") + time.sleep(5) successful_txs = process_network_transactions('Base Sepolia', ["BASE - OP"], networks['Base Sepolia'], successful_txs) - print("Wait 10 Second for Safety (BASE -> OP)...") - time.sleep(10) + print("Wait 5s for Safety (BASE -> OP)...") + time.sleep(5) successful_txs = process_network_transactions('Base Sepolia', ["BASE - ARB"], networks['Base Sepolia'], successful_txs) - print("Wait 10 Second for Safety (BASE -> ARB)...") - time.sleep(10) + print("Wait 5s for Safety (BASE -> ARB)...") + time.sleep(5) successful_txs = process_network_transactions('ARB Sepolia', ["ARB - BASE"], networks['ARB Sepolia'], successful_txs) - print("Wait 10 Second for Safety (ARB -> BASE)...") - time.sleep(10) + print("Wait 5s for Safety (ARB -> BASE)...") + time.sleep(5) except Exception as e: - print(f"Terjadi kesalahan: {e}") - print("Wait 5 Second for Safety...") - time.sleep(5) + print(f"Error cok ^^ {e}") + print("Wait 10s for Safety...") + time.sleep(10) if __name__ == "__main__": main() \ No newline at end of file From 9aace1eb40488376424fe9e4f61aaddc61e21e32 Mon Sep 17 00:00:00 2001 From: H <68972646+hnfdm@users.noreply.github.com> Date: Mon, 3 Feb 2025 00:02:55 +0700 Subject: [PATCH 07/13] Update config.py update hex --- config.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/config.py b/config.py index 7df9826..ba8e9bd 100644 --- a/config.py +++ b/config.py @@ -1,12 +1,12 @@ data_bridge = { - "ARB - BASE": '0x56591d5962737370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dd76822450987d8e929f17ae50e7d9f0b99fbb960000000000000000000000000000000000000000000000000dd99ba123d5635e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a7640000', - "ARB - OP": '0x56591d596f707370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dd76822450987d8e929f17ae50e7d9f0b99fbb960000000000000000000000000000000000000000000000000dd99a2c14fe85b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a7640000', + "ARB - BASE": '0x56591d5962737370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000DD76822450987d8e929F17aE50e7D9f0B99fBB960000000000000000000000000000000000000000000000000dd99a190675a352000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a7640000', + "ARB - OP": '0x56591d596f707370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000DD76822450987d8e929F17aE50e7D9f0B99fBB960000000000000000000000000000000000000000000000000b147ba627d7ef8e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1a2bc2ec500000', - "OP - ARB": '0x56591d5961726274000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dd76822450987d8e929f17ae50e7d9f0b99fbb960000000000000000000000000000000000000000000000000dd99ba123b9565d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a7640000', - "OP - BASE": '0x56591d5962737370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dd76822450987d8e929f17ae50e7d9f0b99fbb960000000000000000000000000000000000000000000000000dbd3e3947dd4a8a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dc44abe81300000', + "OP - ARB": '0x56591d5961726274000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000DD76822450987d8e929F17aE50e7D9f0B99fBB960000000000000000000000000000000000000000000000005319a630f7144d890000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000053444835ec580000', + "OP - BASE": '0x56591d5962737370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000DD76822450987d8e929F17aE50e7D9f0B99fBB960000000000000000000000000000000000000000000000004c2cd6cdacbd2352000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004c53ecdc18a60000', - "BASE - OP": '0x56591d596f707370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dd76822450987d8e929f17ae50e7d9f0b99fbb960000000000000000000000000000000000000000000000000dab83e2fb6963a7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000db28745494f8000', - "BASE - ARB": '0x56591d5961726274000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dd76822450987d8e929f17ae50e7d9f0b99fbb960000000000000000000000000000000000000000000000000dd99ba1235fd903000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a7640000', + "BASE - OP": '0x56591d596f707370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000DD76822450987d8e929F17aE50e7D9f0B99fBB96000000000000000000000000000000000000000000000000298cd2375cb0ef8e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029a2241af62c0000', + "BASE - ARB": '0x56591d5961726274000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000DD76822450987d8e929F17aE50e7D9f0B99fBB96000000000000000000000000000000000000000000000000298cd30ddd8f4d890000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029a2241af62c0000', } networks = { From fb34ea28ed78720e8f5f479c6c36701a992db7ad Mon Sep 17 00:00:00 2001 From: H <68972646+hnfdm@users.noreply.github.com> Date: Mon, 3 Feb 2025 04:25:06 +0700 Subject: [PATCH 08/13] Update config.py update hex --- config.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/config.py b/config.py index ba8e9bd..6ae139c 100644 --- a/config.py +++ b/config.py @@ -1,12 +1,12 @@ data_bridge = { - "ARB - BASE": '0x56591d5962737370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000DD76822450987d8e929F17aE50e7D9f0B99fBB960000000000000000000000000000000000000000000000000dd99a190675a352000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a7640000', - "ARB - OP": '0x56591d596f707370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000DD76822450987d8e929F17aE50e7D9f0B99fBB960000000000000000000000000000000000000000000000000b147ba627d7ef8e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1a2bc2ec500000', + "ARB - BASE": '0x56591d5962737370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dd76822450987d8e929f17ae50e7d9f0b99fbb960000000000000000000000000000000000000000000000000b147c7fee939dfc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1a2bc2ec500000', + "ARB - OP": '0x56591d596f707370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dd76822450987d8e929f17ae50e7d9f0b99fbb960000000000000000000000000000000000000000000000000b147bc10045faca000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1a2bc2ec500000', - "OP - ARB": '0x56591d5961726274000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000DD76822450987d8e929F17aE50e7D9f0B99fBB960000000000000000000000000000000000000000000000005319a630f7144d890000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000053444835ec580000', - "OP - BASE": '0x56591d5962737370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000DD76822450987d8e929F17aE50e7D9f0B99fBB960000000000000000000000000000000000000000000000004c2cd6cdacbd2352000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004c53ecdc18a60000', + "OP - ARB": '0x56591d5961726274000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dd76822450987d8e929f17ae50e7d9f0b99fbb960000000000000000000000000000000000000000000000000b147c7cab363202000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1a2bc2ec500000', + "OP - BASE": '0x56591d5962737370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dd76822450987d8e929f17ae50e7d9f0b99fbb960000000000000000000000000000000000000000000000000b147c7caa9a3426000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1a2bc2ec500000', - "BASE - OP": '0x56591d596f707370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000DD76822450987d8e929F17aE50e7D9f0B99fBB96000000000000000000000000000000000000000000000000298cd2375cb0ef8e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029a2241af62c0000', - "BASE - ARB": '0x56591d5961726274000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000DD76822450987d8e929F17aE50e7D9f0B99fBB96000000000000000000000000000000000000000000000000298cd30ddd8f4d890000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029a2241af62c0000', + "BASE - OP": '0x56591d596f707370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dd76822450987d8e929f17ae50e7d9f0b99fbb960000000000000000000000000000000000000000000000000b147c8747e6f7b6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1a2bc2ec500000', + "BASE - ARB": '0x56591d5961726274000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dd76822450987d8e929f17ae50e7d9f0b99fbb960000000000000000000000000000000000000000000000000b147c7caab2faf2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1a2bc2ec500000', } networks = { @@ -34,6 +34,6 @@ private_keys = ['pk'] -my_addresses = ['address'] +my_addresses = ['0xDD76822450987d8e929F17aE50e7D9f0B99fBB96'] labels = ['WalletX'] From 9973437b5147dad6e7c6e7f84650f72c494ff8dc Mon Sep 17 00:00:00 2001 From: H <68972646+hnfdm@users.noreply.github.com> Date: Mon, 3 Feb 2025 04:43:20 +0700 Subject: [PATCH 09/13] Update README.md --- README.md | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 57dd395..8cf033f 100644 --- a/README.md +++ b/README.md @@ -35,14 +35,6 @@ transfer token antarjaringan dengan cepat dan efisien. pip install web3 eth_account ``` -4. Pip install error? Pake virtual environtment: - ```bash - python3 -m venv t3rn - ``` - ```bash - source t3rn/bin/activate - ``` - ### Konfigurasi 1. Ganti `private_keys`, `my_addresses`, dan `labels` dengan pk dan address di file `config.py`. @@ -61,6 +53,20 @@ transfer token antarjaringan dengan cepat dan efisien. 2. Bot akan secara otomatis melakukan bridging antarjaringan sesuai dengan konfigurasi yang telah diatur. +### FAQ + +1. Q: "Pip install error?" + A: Pake virtual environtment: + ```bash + python3 -m venv t3rn + ``` + ```bash + source t3rn/bin/activate + ``` + +2. Q: "Error estimating gas...R07..." / "BRN ga sinkron" + A: Ganti HEX dengan punya kalian & pastikan dari transaksi yang sudah berhasil + ### Catatan - Bot ini dapat dihentikan kapan saja dengan menggunakan kombinasi **Ctrl + C** di terminal. - Pastikan saldo yang cukup tersedia di setiap jaringan sebelum memulai bridging. From be1b2f9710a5f122e376f0529088a3f320f8b14a Mon Sep 17 00:00:00 2001 From: H <68972646+hnfdm@users.noreply.github.com> Date: Mon, 3 Feb 2025 04:44:58 +0700 Subject: [PATCH 10/13] Update README.md --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 8cf033f..f3f31a2 100644 --- a/README.md +++ b/README.md @@ -55,20 +55,20 @@ transfer token antarjaringan dengan cepat dan efisien. ### FAQ -1. Q: "Pip install error?" - A: Pake virtual environtment: +- Q: "Pip install error?" +- A: Pake virtual environtment: ```bash python3 -m venv t3rn ``` ```bash source t3rn/bin/activate ``` - -2. Q: "Error estimating gas...R07..." / "BRN ga sinkron" - A: Ganti HEX dengan punya kalian & pastikan dari transaksi yang sudah berhasil + +- Q: "Error estimating gas...R07..." / "BRN ga sinkron" +- A: Ganti HEX dengan punya kalian & pastikan dari transaksi yang sudah berhasil ### Catatan -- Bot ini dapat dihentikan kapan saja dengan menggunakan kombinasi **Ctrl + C** di terminal. +- Jangan lupa pakein screen/tmux. - Pastikan saldo yang cukup tersedia di setiap jaringan sebelum memulai bridging. ### Acknowledgements From 3baa7e7c4345652261dbe3f0ac668cd4eb280d30 Mon Sep 17 00:00:00 2001 From: H <68972646+hnfdm@users.noreply.github.com> Date: Mon, 3 Feb 2025 04:45:36 +0700 Subject: [PATCH 11/13] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index f3f31a2..4316ab3 100644 --- a/README.md +++ b/README.md @@ -56,7 +56,7 @@ transfer token antarjaringan dengan cepat dan efisien. ### FAQ - Q: "Pip install error?" -- A: Pake virtual environtment: +- A: "Pake virtual environtment" ```bash python3 -m venv t3rn ``` @@ -64,8 +64,8 @@ transfer token antarjaringan dengan cepat dan efisien. source t3rn/bin/activate ``` -- Q: "Error estimating gas...R07..." / "BRN ga sinkron" -- A: Ganti HEX dengan punya kalian & pastikan dari transaksi yang sudah berhasil +- Q: "Error estimating gas...R07..." / "BRN ga sinkron?" +- A: "Ganti HEX dengan punya kalian & pastikan dari transaksi yang sudah berhasil" ### Catatan - Jangan lupa pakein screen/tmux. From b28c193654f2fd26075f1792745b31c46c751a68 Mon Sep 17 00:00:00 2001 From: H <68972646+hnfdm@users.noreply.github.com> Date: Mon, 3 Feb 2025 15:52:14 +0700 Subject: [PATCH 12/13] Update t3rn.py increase minimum --- t3rn.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/t3rn.py b/t3rn.py index 4fa8a57..e67a545 100644 --- a/t3rn.py +++ b/t3rn.py @@ -59,7 +59,7 @@ def get_brn_balance(web3, my_address): def send_bridge_transaction(web3, account, my_address, data, network_name): my_address = Web3.to_checksum_address(my_address) # Mengonversi alamat ke format checksum nonce = web3.eth.get_transaction_count(my_address, 'pending') - value_in_ether = 0.8 + value_in_ether = 1.6 value_in_wei = web3.to_wei(value_in_ether, 'ether') try: @@ -218,4 +218,4 @@ def main(): time.sleep(10) if __name__ == "__main__": - main() \ No newline at end of file + main() From 668e08c0006d33f40d287ba14bbb650bbfca9743 Mon Sep 17 00:00:00 2001 From: H <68972646+hnfdm@users.noreply.github.com> Date: Mon, 3 Feb 2025 16:11:13 +0700 Subject: [PATCH 13/13] Update config.py --- config.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/config.py b/config.py index 6ae139c..f37d7d2 100644 --- a/config.py +++ b/config.py @@ -1,12 +1,12 @@ data_bridge = { - "ARB - BASE": '0x56591d5962737370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dd76822450987d8e929f17ae50e7d9f0b99fbb960000000000000000000000000000000000000000000000000b147c7fee939dfc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1a2bc2ec500000', - "ARB - OP": '0x56591d596f707370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dd76822450987d8e929f17ae50e7d9f0b99fbb960000000000000000000000000000000000000000000000000b147bc10045faca000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1a2bc2ec500000', + "ARB - BASE": '0x56591d5962737370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dd76822450987d8e929f17ae50e7d9f0b99fbb960000000000000000000000000000000000000000000000001628f91136a77ce00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016345785d8a00000', + "ARB - OP": '0x56591d596f707370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dd76822450987d8e929f17ae50e7d9f0b99fbb960000000000000000000000000000000000000000000000001628f90e8e8ef7f90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016345785d8a00000', - "OP - ARB": '0x56591d5961726274000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dd76822450987d8e929f17ae50e7d9f0b99fbb960000000000000000000000000000000000000000000000000b147c7cab363202000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1a2bc2ec500000', - "OP - BASE": '0x56591d5962737370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dd76822450987d8e929f17ae50e7d9f0b99fbb960000000000000000000000000000000000000000000000000b147c7caa9a3426000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1a2bc2ec500000', + "OP - ARB": '0x56591d5961726274000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dd76822450987d8e929f17ae50e7d9f0b99fbb960000000000000000000000000000000000000000000000001628f90e8ff11d210000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016345785d8a00000', + "OP - BASE": '0x56591d5962737370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dd76822450987d8e929f17ae50e7d9f0b99fbb960000000000000000000000000000000000000000000000001628f91136a77ce00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016345785d8a00000', - "BASE - OP": '0x56591d596f707370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dd76822450987d8e929f17ae50e7d9f0b99fbb960000000000000000000000000000000000000000000000000b147c8747e6f7b6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1a2bc2ec500000', - "BASE - ARB": '0x56591d5961726274000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dd76822450987d8e929f17ae50e7d9f0b99fbb960000000000000000000000000000000000000000000000000b147c7caab2faf2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1a2bc2ec500000', + "BASE - OP": '0x56591d596f707370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dd76822450987d8e929f17ae50e7d9f0b99fbb960000000000000000000000000000000000000000000000001628f90e8e8ef7f90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016345785d8a00000', + "BASE - ARB": '0x56591d5961726274000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dd76822450987d8e929f17ae50e7d9f0b99fbb960000000000000000000000000000000000000000000000001628f90e8ff11d210000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016345785d8a00000', } networks = {