def send_bounty(bounty: int, receiver_public_key: str, fees: int): current_balance = check_balance() if current_balance < bounty + fees: print("Insuficient balance ") print("Current balance : " + str(current_balance)) print("You need " + str(current_balance - bounty) + "more money") else: transaction = Transaction( version=1, locktime=0, timestamp=2, is_coinbase=False, fees=0, vin={}, vout={ 0: TxOut(amount=bounty, address=receiver_public_key), 1: TxOut(amount=0, address=MY_WALLET.public_key) }, ) calculate_transaction_fees(transaction, MY_WALLET, bounty, fees) logger.debug(transaction) logger.info("Wallet: Attempting to Send Transaction") try: requests.post( "http://0.0.0.0:" + str(consts.MINER_SERVER_PORT) + "/newtransaction", data=compress(transaction.to_json()), timeout=(5, 1), ) except Exception as e: logger.error("Wallet: Could not Send Transaction. Try Again." + str(e)) else: logger.info("Wallet: Transaction Sent, Wait for it to be Mined")
# The singleOutput for first coinbase transaction in genesis block so = SingleOutput(txid=dhash(first_block_transaction[0]), vout=0) first_transaction = Transaction( version=1, locktime=0, timestamp=3, is_coinbase=False, fees=4000000000, vin={0: TxIn(payout=so, sig="", pub_key=consts.WALLET_PUBLIC)}, vout={0: TxOut(amount=1000000000, address=consts.WALLET_PUBLIC)} ) sign_copy_of_tx = copy.deepcopy(first_transaction) sign_copy_of_tx.vin = {} w = Wallet() w.public_key = consts.WALLET_PUBLIC w.private_key = consts.WALLET_PRIVATE sig = w.sign(sign_copy_of_tx.to_json()) first_transaction.vin[0].sig = sig peer_list = fetch_peer_list() print(peer_list) for peer in peer_list: try: print(get_peer_url(peer)) requests.post(get_peer_url(peer) + "/newtransaction", data={"transaction": first_transaction.to_json()}) except Exception as e: logger.debug("TransactionCreator: Could no send transaction") pass
so = SingleOutput(txid=dhash(first_block_transaction[0]), vout=0) first_transaction = Transaction( version=1, locktime=0, timestamp=3, is_coinbase=False, fees=4000000000, vin={0: TxIn(payout=so, sig="", pub_key=consts.WALLET_PUBLIC)}, vout={0: TxOut(amount=1000000000, address=consts.WALLET_PUBLIC)}, ) sign_copy_of_tx = copy.deepcopy(first_transaction) sign_copy_of_tx.vin = {} w = Wallet() w.public_key = consts.WALLET_PUBLIC w.private_key = consts.WALLET_PRIVATE sig = w.sign(sign_copy_of_tx.to_json()) first_transaction.vin[0].sig = sig peer_list = fetch_peer_list() print(peer_list) for peer in peer_list: try: print(get_peer_url(peer)) requests.post(get_peer_url(peer) + "/newtransaction", data={"transaction": first_transaction.to_json()}) except Exception as e: logger.debug("TransactionCreator: Could no send transaction") pass