private Hash GetHashCombiningTransactionAndStatus(Hash txId, TransactionResultStatus executionReturnStatus) { // combine tx result status var rawBytes = txId.ToByteArray().Concat(Encoding.UTF8.GetBytes(executionReturnStatus.ToString())) .ToArray(); return(Hash.FromRawBytes(rawBytes)); }
private Hash GetHashCombiningTransactionAndStatus(Hash txId, TransactionResultStatus executionReturnStatus) { // combine tx result status var rawBytes = ByteArrayHelper.ConcatArrays(txId.ToByteArray(), EncodingHelper.EncodeUtf8(executionReturnStatus.ToString())); return(HashHelper.ComputeFrom(rawBytes)); }
public TransactionResult GenerateTransactionResult(Transaction transaction, TransactionResultStatus status, LogEvent logEvent = null) { var transactionResult = new TransactionResult { TransactionId = transaction.GetHash(), Status = status }; if (logEvent != null) { transactionResult.Logs.Add(logEvent); } transactionResult.UpdateBloom(); return(transactionResult); }
public async Task ValidateTransactionFailedTest(TransactionResultStatus status) { TransactionValidationStatusChangedEvent transactionValidationStatusChangedEventData = null; _eventBus.Subscribe <TransactionValidationStatusChangedEvent>(d => { transactionValidationStatusChangedEventData = d; return(Task.CompletedTask); }); TransactionExecutionValidationFailedEvent transactionExecutionValidationFailedEvent = null; _eventBus.Subscribe <TransactionExecutionValidationFailedEvent>(d => { transactionExecutionValidationFailedEvent = d; return(Task.CompletedTask); }); var transactionMockExecutionHelper = GetRequiredService <TransactionMockExecutionHelper>(); transactionMockExecutionHelper.SetTransactionResultStatus(status); var kernelTestHelper = GetRequiredService <KernelTestHelper>(); var transaction = kernelTestHelper.GenerateTransaction(); var result = await _transactionExecutionValidationProvider.ValidateTransactionAsync(transaction, await _kernelTestHelper.GetChainContextAsync()); result.ShouldBeFalse(); transactionValidationStatusChangedEventData.ShouldNotBeNull(); transactionValidationStatusChangedEventData.TransactionId.ShouldBe(transaction.GetHash()); transactionValidationStatusChangedEventData.TransactionResultStatus.ShouldBe(TransactionResultStatus .NodeValidationFailed); transactionExecutionValidationFailedEvent.ShouldNotBeNull(); transactionExecutionValidationFailedEvent.TransactionId.ShouldBe(transaction.GetHash()); }
internal void SetTransactionResultStatus(TransactionResultStatus transactionResultStatus) { _transactionResultStatus = transactionResultStatus; }