/// <summary>
        /// Use to create a new StellarAccount. This method is guarenteed to create a StellarAccount with a valid AccountID or
        /// it will throw a FormatException. This step is used to guarenteed validated data in the object.
        /// </summary>
        /// <param name="publicAccountId">The public Account Id</param>
        /// <returns>The StellarAccount to be created or NULL if the provided Account Id has an invalid checksum</returns>
        public static StellarAccount CreateAccount(string publicAccountId)
        {
            if (IsValid(publicAccountId))
            {
                StellarAccount account = new StellarAccount(publicAccountId);

                return(account);
            }
            return(null);
        }
        /// <summary>
        /// Compares equality of this and another object.
        /// </summary>
        /// <param name="obj">Object to compare equality to</param>
        /// <returns>True if the accounts are equal</returns>
        public override bool Equals(object obj)
        {
            StellarAccount account = obj as StellarAccount;

            if (account != null)
            {
                return(AccountId.Equals(account.AccountId));
            }
            return(false);
        }