/// <summary>
        /// Returns true if TransactionInfo instances are equal
        /// </summary>
        /// <param name="other">Instance of TransactionInfo to be compared</param>
        /// <returns>Boolean</returns>
        public bool Equals(TransactionInfo other)
        {
            if (ReferenceEquals(null, other))
            {
                return(false);
            }
            if (ReferenceEquals(this, other))
            {
                return(true);
            }

            return
                ((
                     TransactionId == other.TransactionId ||
                     TransactionId != null &&
                     TransactionId.Equals(other.TransactionId)
                     ) &&
                 (
                     TransactionProcessingState == other.TransactionProcessingState ||
                     TransactionProcessingState != null &&
                     TransactionProcessingState.Equals(other.TransactionProcessingState)
                 ) &&
                 (
                     InputFirstSeenTime == other.InputFirstSeenTime ||
                     InputFirstSeenTime != null &&
                     InputFirstSeenTime.Equals(other.InputFirstSeenTime)
                 ) &&
                 (
                     InputFullyConfirmedTime == other.InputFullyConfirmedTime ||
                     InputFullyConfirmedTime != null &&
                     InputFullyConfirmedTime.Equals(other.InputFullyConfirmedTime)
                 ) &&
                 (
                     InputNumberOfConfirmations == other.InputNumberOfConfirmations ||
                     InputNumberOfConfirmations != null &&
                     InputNumberOfConfirmations.Equals(other.InputNumberOfConfirmations)
                 ) &&
                 (
                     InputAmount == other.InputAmount ||
                     InputAmount != null &&
                     InputAmount.Equals(other.InputAmount)
                 ) &&
                 (
                     InputTransactionHash == other.InputTransactionHash ||
                     InputTransactionHash != null &&
                     InputTransactionHash.Equals(other.InputTransactionHash)
                 ) &&
                 (
                     InputCoinType == other.InputCoinType ||
                     InputCoinType != null &&
                     InputCoinType.Equals(other.InputCoinType)
                 ) &&
                 (
                     InputWalletType == other.InputWalletType ||
                     InputWalletType != null &&
                     InputWalletType.Equals(other.InputWalletType)
                 ) &&
                 (
                     InputAddress == other.InputAddress ||
                     InputAddress != null &&
                     InputAddress.Equals(other.InputAddress)
                 ) &&
                 (
                     PrimarySourceAddress == other.PrimarySourceAddress ||
                     PrimarySourceAddress != null &&
                     PrimarySourceAddress.Equals(other.PrimarySourceAddress)
                 ) &&
                 (
                     OutputInitiationTime == other.OutputInitiationTime ||
                     OutputInitiationTime != null &&
                     OutputInitiationTime.Equals(other.OutputInitiationTime)
                 ) &&
                 (
                     OutputAmount == other.OutputAmount ||
                     OutputAmount != null &&
                     OutputAmount.Equals(other.OutputAmount)
                 ) &&
                 (
                     OutputTransactionHash == other.OutputTransactionHash ||
                     OutputTransactionHash != null &&
                     OutputTransactionHash.Equals(other.OutputTransactionHash)
                 ) &&
                 (
                     OutputCoinType == other.OutputCoinType ||
                     OutputCoinType != null &&
                     OutputCoinType.Equals(other.OutputCoinType)
                 ) &&
                 (
                     OutputWalletType == other.OutputWalletType ||
                     OutputWalletType != null &&
                     OutputWalletType.Equals(other.OutputWalletType)
                 ) &&
                 (
                     OutputAddress == other.OutputAddress ||
                     OutputAddress != null &&
                     OutputAddress.Equals(other.OutputAddress)
                 ) &&
                 (
                     OutputMemo == other.OutputMemo ||
                     OutputMemo != null &&
                     OutputMemo.Equals(other.OutputMemo)
                 ) &&
                 (
                     OutputAddressNickname == other.OutputAddressNickname ||
                     OutputAddressNickname != null &&
                     OutputAddressNickname.Equals(other.OutputAddressNickname)
                 ) &&
                 (
                     LastModifiedTime == other.LastModifiedTime ||
                     LastModifiedTime != null &&
                     LastModifiedTime.Equals(other.LastModifiedTime)
                 ) &&
                 (
                     RequiredNumberOfInputConfirmations == other.RequiredNumberOfInputConfirmations ||
                     RequiredNumberOfInputConfirmations != null &&
                     RequiredNumberOfInputConfirmations.Equals(other.RequiredNumberOfInputConfirmations)
                 ) &&
                 (
                     InputUsdEquivalent == other.InputUsdEquivalent ||
                     InputUsdEquivalent != null &&
                     InputUsdEquivalent.Equals(other.InputUsdEquivalent)
                 ) &&
                 (
                     DelegationId == other.DelegationId ||
                     DelegationId != null &&
                     DelegationId.Equals(other.DelegationId)
                 ) &&
                 (
                     VestsDelegated == other.VestsDelegated ||
                     VestsDelegated != null &&
                     VestsDelegated.Equals(other.VestsDelegated)
                 ) &&
                 (
                     SteemPowerDelegated == other.SteemPowerDelegated ||
                     SteemPowerDelegated != null &&
                     SteemPowerDelegated.Equals(other.SteemPowerDelegated)
                 ) &&
                 (
                     SteemPowerDelegatee == other.SteemPowerDelegatee ||
                     SteemPowerDelegatee != null &&
                     SteemPowerDelegatee.Equals(other.SteemPowerDelegatee)
                 ) &&
                 (
                     DelegationExtensionDuration == other.DelegationExtensionDuration ||
                     DelegationExtensionDuration != null &&
                     DelegationExtensionDuration.Equals(other.DelegationExtensionDuration)
                 ));
        }