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); }
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); }); } }
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); } } }
public Task HandleContractCreationTransactionAsync(ContractCreationTransaction contractCreationTransaction) { ContractCreationTransactionsHandled.Add(contractCreationTransaction); return(Task.CompletedTask); }
public Task HandleContractCreationTransactionAsync( ContractCreationTransaction contractCreationTransaction) => HandleAsync(contractCreationTransaction);