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));
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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());
        }
Exemple #5
0
 internal void SetTransactionResultStatus(TransactionResultStatus transactionResultStatus)
 {
     _transactionResultStatus = transactionResultStatus;
 }