broadcasted_on_target = all( broadcast_on_destinationchain(rpc_connection_destinationchain, complete_tx, dest_txs) for complete_tx in complete_list) if not broadcasted_on_target: print("Waiting for imports to be broadcasted on destination chain") else: print("All imports are broadcasted to destination chain") break # Wait for a confirmation on destination chain while True: try: confirmed = all( int( rpc_connection_destinationchain.getrawtransaction(dest_tx, 1) ["confirmations"]) > 0 for dest_tx in dest_txs) except Exception as e: print(e) print("Transaction is not on blockchain yet. Let's wait a little.") time.sleep(10) pass else: if not confirmed: print( "Waiting for all export transactions to be confirmed on source chain" ) time.sleep(5) else: print("All export transactions confirmed!") break
sent_itx = rpc_connection_destinationchain.sendrawtransaction( complete_tx) except Exception: attempts = attempts + 1 print("Tried to broadcast " + str(attempts) + " times") print("Will try to do it 60 times in total") else: break else: print("To many attempts. Bye bye.") sys.exit() final_confirmations = 0 #wait_for_confirmation(rpc_connection_destinationchain, sent_itx, 3) while final_confirmations < 0: try: final_confirmations = int( rpc_connection_destinationchain.getrawtransaction( sent_itx, 1)["confirmations"]) except Exception as e: print(e) pass else: print("Waiting") print(rpc_connection_destinationchain.getinfo()["name"] + " : Confirmed import " + sent_itx + " at: " + str(datetime.datetime.today().strftime('%Y-%m-%d'))) print_balance(rpc_connection_sourcechain, rpc_connection_destinationchain) t1 = time.time() print(str(t1 - t0) + " migration time (sec)")
#To use this test run in the terminal: # $: python3 test_rpc.py from slickrpc import Proxy rpc_user="******" rpc_password="******" rpc_host="127.0.0.1" rpc_port="8332" bitcoin = Proxy("http://%s:%[email protected]:8332"%(rpc_user, rpc_password)) hex = bitcoin.getrawtransaction ("a9a9db6b085df091ea1491e57df9177d128f6650ec9405148c9c2b64a835e88e", False, #"00000000e6f2148b04603d41257bb25b984787f6e5d0aadbfcda1b517806f9df" ) decoded_tx = bitcoin.decoderawtransaction (hex) print(decoded_tx) transactions = bitcoin.listtransactions("bc1qfm5repssqrnx9twvzw4glkcmk4z0gha5lnaeyp") print(transactions)