Beispiel #1
0
        /// <summary>
        /// Signs the transaction with the given <see cref="KeyPair"/>.
        /// </summary>
        /// <param name="keyPair">The <see cref="KeyPair"/>.</param>
        /// <returns><see cref="SignedTransaction"/>.</returns>
        /// <exception cref="ArgumentNullException">keyPair</exception>
        public SignedTransaction SignWith(KeyPair keyPair)
        {
            if (keyPair == null)
            {
                throw new ArgumentNullException(nameof(keyPair));
            }

            Signer = new PublicAccount(keyPair.PublicKeyString, NetworkType);

            Bytes = GenerateBytes();

            var sig = TransactionExtensions.SignTransaction(keyPair, Bytes);

            return(SignedTransaction.Create(Bytes, sig, TransactionExtensions.Hasher(Bytes), keyPair.PublicKey, TransactionType));
        }
Beispiel #2
0
        /// <summary>
        /// Signs the MultisigTransaction with a KeyPair and sets the inner transaction signer.
        /// </summary>
        /// <param name="cosignatory">The cosignatory.</param>
        /// <param name="multisigAccount">The multisig account.</param>
        /// <returns>SignedMultisigTransaction.</returns>
        /// <exception cref="System.ArgumentNullException">
        /// cosignatory
        /// or
        /// multisigAccount
        /// </exception>
        public SignedMultisigTransaction SignWith(KeyPair cosignatory, PublicAccount multisigAccount)
        {
            if (cosignatory == null)
            {
                throw new ArgumentNullException(nameof(cosignatory));
            }
            if (multisigAccount == null)
            {
                throw new ArgumentNullException(nameof(multisigAccount));
            }

            Signer = PublicAccount.CreateFromPublicKey(cosignatory.PublicKeyString, NetworkType);
            InnerTransaction.Signer = multisigAccount;
            Bytes = GenerateBytes();
            var sig = TransactionExtensions.SignTransaction(cosignatory, Bytes);

            return(SignedMultisigTransaction.Create(Bytes, sig, TransactionExtensions.Hasher(Bytes), InnerTransaction.CreateTransactionHash().FromHex(), cosignatory.PublicKey, TransactionType));
        }
Beispiel #3
0
 /// <summary>
 /// Generates the hash of the serialized transaction payload.
 /// </summary>
 /// <returns>The hash in hex format.</returns>
 public string CreateTransactionHash()
 {
     return(TransactionExtensions.Hasher(GenerateBytes()).ToHexUpper());
 }