Package org.ethereum.net.submit

Source Code of org.ethereum.net.submit.TransactionTask

package org.ethereum.net.submit;

import org.ethereum.core.Transaction;
import org.ethereum.core.Wallet;
import org.ethereum.manager.WorldManager;
import org.ethereum.net.client.PeerClient;
import org.ethereum.net.server.ChannelManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.concurrent.Callable;

import static java.lang.Thread.sleep;

/**
* @author Roman Mandeleil
* Created on: 23/05/2014 18:33
*/
public class TransactionTask implements Callable<Transaction> {

  private static final Logger logger = LoggerFactory.getLogger(TransactionTask.class);

  private Transaction tx;
    private WorldManager worldManager;

  public TransactionTask(Transaction tx, WorldManager worldManager) {
    this.tx = tx;
        this.worldManager = worldManager;
  }

  @Override
  public Transaction call() throws Exception {

    try {
      logger.info("Call() tx: {}", tx.toString());

            Wallet wallet = worldManager.getWallet();
            ChannelManager channelManager = worldManager.getChannelManager();

      WalletTransaction walletTransaction = wallet.addByWalletTransaction(tx);
      channelManager.sendTransaction(tx);

      while (walletTransaction.getApproved() < 1) {
        sleep(10);
      }
      logger.info("return approved: {}", walletTransaction.getApproved());
    } catch (Throwable th) {
      logger.warn("Exception caught: {}", th);
            worldManager.getWallet().removeTransaction(tx);
    }
    return null;
  }
}
TOP

Related Classes of org.ethereum.net.submit.TransactionTask

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.