/// <summary>
 /// Gets the hash code
 /// </summary>
 /// <returns>Hash code</returns>
 public override int GetHashCode()
 {
     unchecked // Overflow is fine, just wrap
     {
         var hashCode = 41;
         // Suitable nullity checks etc, of course :)
         if (TransactionId != null)
         {
             hashCode = hashCode * 59 + TransactionId.GetHashCode();
         }
         if (TransactionProcessingState != null)
         {
             hashCode = hashCode * 59 + TransactionProcessingState.GetHashCode();
         }
         if (InputFirstSeenTime != null)
         {
             hashCode = hashCode * 59 + InputFirstSeenTime.GetHashCode();
         }
         if (InputFullyConfirmedTime != null)
         {
             hashCode = hashCode * 59 + InputFullyConfirmedTime.GetHashCode();
         }
         if (InputNumberOfConfirmations != null)
         {
             hashCode = hashCode * 59 + InputNumberOfConfirmations.GetHashCode();
         }
         if (InputAmount != null)
         {
             hashCode = hashCode * 59 + InputAmount.GetHashCode();
         }
         if (InputTransactionHash != null)
         {
             hashCode = hashCode * 59 + InputTransactionHash.GetHashCode();
         }
         if (InputCoinType != null)
         {
             hashCode = hashCode * 59 + InputCoinType.GetHashCode();
         }
         if (InputWalletType != null)
         {
             hashCode = hashCode * 59 + InputWalletType.GetHashCode();
         }
         if (InputAddress != null)
         {
             hashCode = hashCode * 59 + InputAddress.GetHashCode();
         }
         if (PrimarySourceAddress != null)
         {
             hashCode = hashCode * 59 + PrimarySourceAddress.GetHashCode();
         }
         if (OutputInitiationTime != null)
         {
             hashCode = hashCode * 59 + OutputInitiationTime.GetHashCode();
         }
         if (OutputAmount != null)
         {
             hashCode = hashCode * 59 + OutputAmount.GetHashCode();
         }
         if (OutputTransactionHash != null)
         {
             hashCode = hashCode * 59 + OutputTransactionHash.GetHashCode();
         }
         if (OutputCoinType != null)
         {
             hashCode = hashCode * 59 + OutputCoinType.GetHashCode();
         }
         if (OutputWalletType != null)
         {
             hashCode = hashCode * 59 + OutputWalletType.GetHashCode();
         }
         if (OutputAddress != null)
         {
             hashCode = hashCode * 59 + OutputAddress.GetHashCode();
         }
         if (OutputMemo != null)
         {
             hashCode = hashCode * 59 + OutputMemo.GetHashCode();
         }
         if (OutputAddressNickname != null)
         {
             hashCode = hashCode * 59 + OutputAddressNickname.GetHashCode();
         }
         if (LastModifiedTime != null)
         {
             hashCode = hashCode * 59 + LastModifiedTime.GetHashCode();
         }
         if (RequiredNumberOfInputConfirmations != null)
         {
             hashCode = hashCode * 59 + RequiredNumberOfInputConfirmations.GetHashCode();
         }
         if (InputUsdEquivalent != null)
         {
             hashCode = hashCode * 59 + InputUsdEquivalent.GetHashCode();
         }
         if (DelegationId != null)
         {
             hashCode = hashCode * 59 + DelegationId.GetHashCode();
         }
         if (VestsDelegated != null)
         {
             hashCode = hashCode * 59 + VestsDelegated.GetHashCode();
         }
         if (SteemPowerDelegated != null)
         {
             hashCode = hashCode * 59 + SteemPowerDelegated.GetHashCode();
         }
         if (SteemPowerDelegatee != null)
         {
             hashCode = hashCode * 59 + SteemPowerDelegatee.GetHashCode();
         }
         if (DelegationExtensionDuration != null)
         {
             hashCode = hashCode * 59 + DelegationExtensionDuration.GetHashCode();
         }
         return(hashCode);
     }
 }