static void Main(string[] args) { // This particular sample should be run with the following CLI args // A random contract on the Rinkeby network was chosen as an example // --Blockchain rinkeby --FromBlock 3146650 System.Console.WriteLine("CLI args: " + string.Join(" ", args)); var appConfig = ConfigurationUtils.Build(args).AddConsoleLogging(); var targetBlockchain = BlockchainSourceConfigurationFactory.Get(appConfig); System.Console.WriteLine($"Target Node/Name (URL): {targetBlockchain.Name}, {targetBlockchain.BlockchainUrl}"); //only process transactions that created or called our contract var filters = new ContractSpecificFilterBuilder(ContractAddress).Filters; //for specific functions on our contract, output the name and input arg values var transactionRouter = new TransactionRouter(); transactionRouter.AddContractCreationHandler( new ContractCreationPrinter <GlitchGoonsItemConstructor>()); transactionRouter.AddTransactionHandler(new FunctionPrinter <BuyApprenticeFunction>()); transactionRouter.AddTransactionHandler(new FunctionPrinter <OpenChestFunction>()); //for specific events, output the values var transactionLogRouter = new TransactionLogRouter(); transactionLogRouter.AddHandler(new EventPrinter <TransferEvent>()); var handlers = new HandlerContainer() { TransactionHandler = transactionRouter, TransactionLogHandler = transactionLogRouter, }; var blockchainProxy = new BlockchainProxyService(targetBlockchain.BlockchainUrl); var blockProcessor = BlockProcessorFactory.Create( blockchainProxy, handlers, filters, processTransactionsInParallel: false); var strategy = new ProcessingStrategy(blockProcessor) { MinimumBlockConfirmations = 6 //wait for 6 block confirmations before processing block }; var blockchainProcessor = new BlockchainProcessor(strategy); blockchainProcessor.ExecuteAsync (targetBlockchain.FromBlock, targetBlockchain.ToBlock) .GetAwaiter().GetResult(); System.Console.WriteLine($"Contracts Created: {transactionRouter.ContractsCreated}"); System.Console.WriteLine($"Transactions Handled: {transactionRouter.TransactionsHandled}"); System.Console.ReadLine(); }
public static int Main(string[] args) { var appConfig = ConfigurationUtils.Build(args).AddConsoleLogging(); var contextFactory = new SqliteBlockchainDbContextFactory("BlockchainDbContext"); var repositoryFactory = new BlockchainStoreRepositoryFactory(contextFactory); var configuration = BlockchainSourceConfigurationFactory.Get(appConfig); configuration.ProcessBlockTransactionsInParallel = false; return(ProcessorConsole.Execute(repositoryFactory, configuration).Result); }
static int Main(string[] args) { var appConfig = ConfigurationUtils .Build(args, userSecretsId: "Nethereum.BlockchainStore.CosmosCore.UserSecrets") .AddConsoleLogging(); var configuration = BlockchainSourceConfigurationFactory.Get(appConfig); var repositoryFactory = CosmosRepositoryFactory.Create(appConfig); return(StorageProcessorConsole.Execute(repositoryFactory, configuration).Result); }
public static int Main(string[] args) { var appConfig = ConfigurationUtils .Build(args, userSecretsId: "Nethereum.BlockchainStorage.EFCore.Sqlite") .AddConsoleLogging(); var blockchainSourceConfiguration = BlockchainSourceConfigurationFactory.Get(appConfig); var contextFactory = new SqliteBlockchainDbContextFactory(appConfig.GetBlockchainStorageConnectionString()); var repositoryFactory = new BlockchainStoreRepositoryFactory(contextFactory); return(ProcessorConsole.Execute(repositoryFactory, blockchainSourceConfiguration).Result); }
static int Main(string[] args) { var log = ApplicationLogging.CreateConsoleLogger <Program>().ToILog(); var appConfig = ConfigurationUtils .Build(args, userSecretsId: "Nethereum.BlockchainStore.MongoDb.UserSecrets"); var configuration = BlockchainSourceConfigurationFactory.Get(appConfig); var repositoryFactory = MongoDbRepositoryFactory.Create(appConfig); return(StorageProcessorConsole.Execute(repositoryFactory, configuration, log: log).Result); }
static int Main(string[] args) { var appConfig = ConfigurationUtils .Build(args, userSecretsId: "Nethereum.BlockchainStore.Csv.UserSecrets") .AddConsoleLogging(); var configuration = BlockchainSourceConfigurationFactory.Get(appConfig); var outputPath = appConfig["CsvOutputPath"]; var repositoryFactory = new CsvBlockchainStoreRepositoryFactory(outputPath); return(StorageProcessorConsole.Execute(repositoryFactory, configuration).Result); }
public static int Main(string[] args) { var appConfig = ConfigurationUtils .Build(args, userSecretsId: "Nethereum.BlockchainStorage.EFCore.SqlServer") .AddConsoleLogging(); var blockchainConfig = BlockchainSourceConfigurationFactory.Get(appConfig); var dbContextFactory = SqlServerCoreBlockchainDbContextFactory.Create(appConfig); var repositoryFactory = new BlockchainStoreRepositoryFactory(dbContextFactory); return(ProcessorConsole.Execute(repositoryFactory, blockchainConfig).Result); }
public static int Main(string[] args) { var appConfig = ConfigurationUtils .Build(args, userSecretsId: "Nethereum.BlockchainStore.AzureTables") .AddConsoleLogging(); var configuration = BlockchainSourceConfigurationFactory.Get(appConfig); var connectionString = appConfig[ConnectionStringKey]; if (string.IsNullOrEmpty(connectionString)) { throw ConfigurationUtils.CreateKeyNotFoundException(ConnectionStringKey); } var repositoryFactory = new CloudTableSetup(connectionString, configuration.Name); return(StorageProcessorConsole.Execute(repositoryFactory, configuration).Result); }