/// <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)); }
/// <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)); }
/// <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()); }