Example #1
0
        public Task HandleContractCreationTransactionAsync(ContractCreationTransaction contractCreationTransaction)
        {
            var addresses = string.Join(",", contractCreationTransaction.GetAllRelatedAddresses());

            Log($"[ContractCreation] Block:{contractCreationTransaction.Transaction.BlockNumber.Value}, Index:{contractCreationTransaction.Transaction.TransactionIndex.Value}, Hash:{contractCreationTransaction.Transaction.TransactionHash}, Contract:{contractCreationTransaction.ContractAddress}, From:{contractCreationTransaction.Transaction.From}, To:{contractCreationTransaction.Transaction.To}, All Addresses: {addresses}");
            return(Task.CompletedTask);
        }
 private void SetUpTransactionRepoUpsert(ContractCreationTransaction txWrapper)
 {
     _transactionRepository
     .Setup(t => t.UpsertAsync(
                txWrapper.ContractAddress,
                txWrapper.Code,
                txWrapper.Transaction,
                txWrapper.TransactionReceipt,
                txWrapper.FailedCreatingContract,
                txWrapper.BlockTimestamp))
     .Returns(() =>
     {
         _txRepoUpsertCount++;
         return(Task.CompletedTask);
     });
 }
        public async Task HandleContractCreationTransactionAsync(ContractCreationTransaction tx)
        {
            await _transactionRepository.UpsertAsync(
                tx.ContractAddress,
                tx.Code,
                tx.Transaction,
                tx.TransactionReceipt,
                tx.FailedCreatingContract,
                tx.BlockTimestamp);

            await UpsertAddressTransactions(
                tx.Transaction,
                tx.TransactionReceipt,
                tx.FailedCreatingContract,
                tx.BlockTimestamp,
                contractAddress : tx.ContractAddress ?? tx.TransactionReceipt.ContractAddress);
        }
Example #4
0
        public Task HandleContractCreationTransactionAsync(ContractCreationTransaction tx)
        {
            var dto = tx.DecodeToDeploymentMessage <TDeploymentMessage>();

            if (dto == null)
            {
                return(Task.CompletedTask);
            }

            System.Console.WriteLine($"[CONTRACT CREATION]");
            System.Console.WriteLine($"\t{dto.GetType().Name ?? "unknown"}");

            foreach (var prop in dto.GetType().GetProperties())
            {
                System.Console.WriteLine($"\t\t[{prop.Name}:{prop.GetValue(dto) ?? "null"}]");
            }

            return(Task.CompletedTask);
        }
 private void SetupAddressUpsert(ContractCreationTransaction txWrapper, params string[] expectedAddresses)
 {
     foreach (var address in expectedAddresses)
     {
         _addressTransactionRepository
         .Setup(t => t.UpsertAsync(
                    txWrapper.Transaction,
                    txWrapper.TransactionReceipt,
                    txWrapper.FailedCreatingContract,
                    txWrapper.BlockTimestamp,
                    address,
                    null,
                    false,
                    txWrapper.ContractAddress))
         .Returns(() =>
         {
             _addressRepoUpsertCount++;
             return(Task.CompletedTask);
         });
     }
 }
Example #6
0
        private async Task SendToHandler(List <ITransactionHandler> handlers, string transactionHash, Transaction transaction, Hex.HexTypes.HexBigInteger blockTimestamp)
        {
            var receipt = await _blockchainProxyService.GetTransactionReceipt(transactionHash);

            if (transaction.IsForContractCreation(receipt))
            {
                var code = await _blockchainProxyService.GetCode(receipt.ContractAddress);

                var contractCreationFailure    = (code == null) || (code == "0x");
                var contactCreationTransaction = new ContractCreationTransaction(
                    receipt.ContractAddress,
                    code,
                    transaction,
                    receipt,
                    contractCreationFailure,
                    blockTimestamp);

                foreach (var handler in handlers)
                {
                    await handler.HandleContractCreationTransactionAsync(contactCreationTransaction);
                }
            }
            else
            {
                var txWithReceipt = new TransactionWithReceipt(
                    transaction,
                    receipt,
                    !receipt.Succeeded(),
                    blockTimestamp);

                foreach (var handler in handlers)
                {
                    await handler.HandleTransactionAsync(txWithReceipt);
                }
            }
        }
Example #7
0
 public Task HandleContractCreationTransactionAsync(ContractCreationTransaction contractCreationTransaction)
 {
     ContractCreationTransactionsHandled.Add(contractCreationTransaction);
     return(Task.CompletedTask);
 }
Example #8
0
 public Task HandleContractCreationTransactionAsync(
     ContractCreationTransaction contractCreationTransaction) => HandleAsync(contractCreationTransaction);