/// <summary>
        /// Adds a new signature ed25519PublicKey to this transaction.
        /// </summary>
        /// <param name="signer"> signer <see cref="KeyPair"/> object representing a signer</param>
        public void Sign(KeyPair signer)
        {
            if (signer == null)
                throw new ArgumentNullException(nameof(signer), "signer cannot be null");

            var txHash = Hash();
            Signatures.Add(signer.SignDecorated(txHash));
        }
        /// <summary>
        ///     Adds a new signature ed25519PublicKey to this transaction.
        /// </summary>
        /// <param name="signer"> signer <see cref="KeyPair" /> object representing a signer</param>
        /// <param name="network">The network <see cref="Network" /> the transaction will be sent to.</param>
        public void Sign(KeyPair signer, Network network)
        {
            if (signer == null)
            {
                throw new ArgumentNullException(nameof(signer), "signer cannot be null");
            }

            byte[] txHash = Hash(network);
            Signatures.Add(signer.SignDecorated(txHash));
        }