/**
  * @param Transaction|null $transaction
  * @param TransactionListItem $transactionListItem
  * @param string $apiUrl
  * @param string $explorerUrl
  * @return $this
  */
 public static function from($transaction, TransactionListItem $transactionListItem, $apiUrl, $explorerUrl)
 {
     $transactionListItemDto = new self();
     // From local app transaction
     if ($transaction !== null) {
         $transactionListItemDto->setDescription($transaction->getDescription());
     } else {
         $transactionListItemDto->setDescription($transactionListItem->getTxHash());
     }
     // From BlockCypher TXRef
     $transactionListItemDto->setTxHash($transactionListItem->getTxHash());
     //$transactionListItemDto->setTxInputN($transactionListItem->getTxInputN());
     //$transactionListItemDto->setValue($transactionListItem->getValue());
     $transactionListItemDto->setConfirmations($transactionListItem->getConfirmations());
     if ($transactionListItem->getReceived() !== null) {
         $transactionListItemDto->setReceived($transactionListItem->getReceived());
     }
     if ($transactionListItem->getConfirmed() !== null) {
         $transactionListItemDto->setConfirmed($transactionListItem->getConfirmed());
     }
     $transactionListItemDto->setBlockHeight($transactionListItem->getBlockHeight());
     $transactionListItemDto->setTotal($transactionListItem->getFinalTotal());
     $transactionListItemDto->setApiUrl($apiUrl);
     $transactionListItemDto->setExplorerUrl($explorerUrl);
     return $transactionListItemDto;
 }
 /**
  * @param BlockCypherTXRef $blockCypherTXRef
  * @return TransactionListItem
  * @throws \Exception
  */
 public static function from(BlockCypherTXRef $blockCypherTXRef)
 {
     $transactionListItem = new self();
     // DEBUG
     //var_dump($blockCypherTXRef);
     //die();
     $transactionListItem->setTxHash($blockCypherTXRef->getTxHash());
     $transactionListItem->setConfirmations($blockCypherTXRef->getConfirmations());
     if ($blockCypherTXRef->getReceived() !== null) {
         $transactionListItem->setReceived(DateTimeFactory::fromISO8601($blockCypherTXRef->getReceived()));
     }
     if ($blockCypherTXRef->getConfirmed() !== null) {
         $transactionListItem->setConfirmed(DateTimeFactory::fromISO8601($blockCypherTXRef->getConfirmed()));
     }
     $transactionListItem->setBlockHeight($blockCypherTXRef->getBlockHeight());
     return $transactionListItem;
 }