Ejemplo n.º 1
0
        public (IContainer resolver, ILog logToConsole) GetResolver(IReloadingManager <AppSettings> appSettings)
        {
            ContainerBuilder   containerBuilder = new ContainerBuilder();
            IServiceCollection collection       = new Microsoft.Extensions.DependencyInjection.ServiceCollection();

            containerBuilder.RegisterInstance(appSettings);
            containerBuilder.RegisterInstance <IBaseSettings>(appSettings.CurrentValue.EthereumCore);
            containerBuilder.RegisterInstance <ISlackNotificationSettings>(appSettings.CurrentValue.SlackNotifications);
            containerBuilder.RegisterInstance(appSettings.Nested(x => x.EthereumCore));
            containerBuilder.RegisterInstance(appSettings.CurrentValue);
            var consoleLogger = new LogToConsole();

            collection.AddSingleton <ILog>(consoleLogger);
            RegisterReposExt.RegisterAzureQueues(containerBuilder, appSettings.Nested(x => x.EthereumCore.Db.DataConnString),
                                                 appSettings.Nested(x => x.SlackNotifications));
            RegisterReposExt.RegisterAzureStorages(containerBuilder, appSettings.Nested(x => x.EthereumCore),
                                                   appSettings.Nested(x => x.SlackNotifications), consoleLogger);
            RegisterRabbitQueueEx.RegisterRabbitQueue(collection,
                                                      appSettings.Nested(x => x.EthereumCore.RabbitMq),
                                                      appSettings.Nested(x => x.EthereumCore.Db.DataConnString),
                                                      consoleLogger);
            RegisterDependency.RegisterServices(collection);
            RegisterDependency.RegisterServices(containerBuilder);
            containerBuilder.Populate(collection);
            containerBuilder.RegisterInstance <ILog>(consoleLogger);
            var resolver = containerBuilder.Build();

            resolver.ActivateRequestInterceptor();

            return(resolver, consoleLogger);
        }
Ejemplo n.º 2
0
        public void GetUsuario()
        {
            RegisterDependency.Init();
            var usuario = Cuenta.Get("admin");

            Assert.AreEqual(false, usuario == null);
        }
Ejemplo n.º 3
0
        public void ObtenerMenu()
        {
            RegisterDependency.Init();
            var criteria = ModuloFuncionalidadCriteria.New();

            criteria.Usuario = "admin";

            System.Diagnostics.Trace.WriteLine("Test Cache");

            var t1 = DateTime.Now.Ticks;

            var funcionalidades = ModuloFuncionalidadList.Get(criteria);

            var t2 = DateTime.Now.Ticks;

            var funcionalidades1 = ModuloFuncionalidadList.Get(criteria);

            var t3 = DateTime.Now.Ticks;

            var funcionalidades3 = ModuloFuncionalidadList.Get(criteria);

            var t4 = DateTime.Now.Ticks;

            System.Diagnostics.Trace.WriteLine(string.Format("Tiempos:{0}, {1}, {2}, {3}", t1, t2, t3, t4));

            System.Diagnostics.Trace.WriteLine("T1:" + ((t2 - t1) / 1000));
            System.Diagnostics.Trace.WriteLine("T2:" + ((t3 - t2) / 1000));
            System.Diagnostics.Trace.WriteLine("T3:" + ((t4 - t3) / 1000));

            Assert.AreEqual(funcionalidades1.Count, funcionalidades.Count);
            Assert.AreEqual(funcionalidades3.Count, funcionalidades.Count);
            Assert.AreEqual(funcionalidades1.First().Id, funcionalidades.First().Id);
            Assert.AreEqual(funcionalidades3.First().Id, funcionalidades.First().Id);
        }
Ejemplo n.º 4
0
        /// <summary>Registers the type mappings with the Unity container.</summary>
        /// <param name="container">The unity container to configure.</param>
        /// <remarks>There is no need to register concrete types such as controllers or API controllers (unless you want to
        /// change the defaults), as Unity allows resolving a concrete type even if it was not previously registered.</remarks>
        public static void RegisterTypes(IUnityContainer container)
        {
            // NOTE: To load from web.config uncomment the line below. Make sure to add a Microsoft.Practices.Unity.Configuration to the using statements.
            // container.LoadConfiguration();

            // TODO: Register your types here
            RegisterDependency.Configure(container);
        }
Ejemplo n.º 5
0
        static void Main(string[] args)
        {
            RegisterDependency.Init();
            IServiceLocator locator = ServiceLocator.Current;
            IEncripta       e       = locator.GetInstance <IEncripta>();

            Console.Read();
        }
Ejemplo n.º 6
0
 protected void Application_Start()
 {
     AreaRegistration.RegisterAllAreas();
     FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
     RouteConfig.RegisterRoutes(RouteTable.Routes);
     BundleConfig.RegisterBundles(BundleTable.Bundles);
     RegisterDependency.Init();
 }
Ejemplo n.º 7
0
 protected void Application_Start(object sender, EventArgs e)
 {
     AreaRegistration.RegisterAllAreas();
     FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
     RouteConfig.RegisterRoutes(RouteTable.Routes);
     BundleConfig.RegisterBundles(BundleTable.Bundles);
     RegisterDependency.Init();
     ModelBinders.Binders.DefaultBinder = new Csla.Web.Mvc.CslaModelBinder();
 }
Ejemplo n.º 8
0
 public static IHostBuilder CreateHostBuilder(string[] args)
 {
     return(Host.CreateDefaultBuilder(args)
            .UseWindowsService()
            .ConfigureServices((hostContext, services) =>
     {
         RegisterDependency.RegisterAll(services);
         services.AddHostedService <EmailWorkerService>();
         //services.AddSingleton<IEmaiService, EmailService>();
     })
            .UseSerilog());
 }
Ejemplo n.º 9
0
        public void RemoveMongoInfo()
        {
            RegisterDependency.Init();

            ICache mongoDb = ServiceLocator.Current.GetInstance <ICache>();

            mongoDb.RemoveItem(key);

            var data1 = (ObjTest)(mongoDb.GetData(key));

            Assert.IsNull(data1);
        }
        private void WriteRegisterDependency(XmlWriter writer, RegisterDependency dependency)
        {
            writer.WriteStartElement("register");

            writer.WriteAttributeString("type", dependency.Type);
            writer.WriteAttributeString("as", dependency.As);

            if (dependency.Name.IsNotNullOrWhiteSpace())
            {
                writer.WriteAttributeString("name", dependency.Name);
            }

            writer.WriteEndElement();
        }
Ejemplo n.º 11
0
        public void ActualizarUsuario()
        {
            RegisterDependency.Init();
            var usuario = Cuenta.Get("admin");

            usuario.EnLinea      = false;
            usuario.Accesos      = usuario.Accesos + 1;
            usuario.UltimoAcceso = DateTime.Now;

            var user = usuario.Save();

            Assert.AreEqual(false, user == null);
            Assert.AreEqual(true, user != null && usuario.Accesos == user.Accesos);
        }
Ejemplo n.º 12
0
        public void InsertMongoInfo()
        {
            RegisterDependency.Init();

            ICache mongoDb = ServiceLocator.Current.GetInstance <ICache>();
            var    data    = new ObjTest();

            data.Clave = "clave";
            data.Valor = "Vaqlor";

            mongoDb.AddItem(key, data, "");
            var data1 = (ObjTest)(mongoDb.GetData(key));

            Assert.AreEqual(data1.Valor, data.Valor);
        }
Ejemplo n.º 13
0
        public void GetPersonaList()
        {
            RegisterDependency.Init();

            var t1 = DateTime.Now.Ticks;
            var personaCriteria = PersonaNaturalCriteria.New();

            personaCriteria.Identificacion = "001";
            var personaList = PersonaNaturalList.Get(personaCriteria);
            //var persona = PersonaNatural.Get(personaList.First().Id);
            var t2 = DateTime.Now.Ticks;

            System.Diagnostics.Trace.WriteLine("T2:" + ((t2 - t1) / 1000));
            Assert.AreNotEqual(personaList.Count, 0);
        }
Ejemplo n.º 14
0
        private void WriteRegisterDependency(JsonWriter jsonWriter, RegisterDependency dependency)
        {
            jsonWriter.WriteStartObject();

            jsonWriter.WritePropertyName("type");
            jsonWriter.WriteValue(dependency.Type);

            jsonWriter.WritePropertyName("as");
            jsonWriter.WriteValue(dependency.As);

            if (dependency.Name.IsNotNullOrWhiteSpace())
            {
                jsonWriter.WritePropertyName("name");
                jsonWriter.WriteValue(dependency.Name);
            }

            jsonWriter.WriteEndObject();
        }
Ejemplo n.º 15
0
        public static void Register(HttpConfiguration config)
        {
            // Web API routes
            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
                );

            // Force always JSON formatter
            config.Formatters
            .JsonFormatter
            .SupportedMediaTypes
            .Add(new MediaTypeHeaderValue("text/html"));

            // IoC
            config.DependencyResolver =
                new IoCResolverConfiguration(RegisterDependency.Register());
        }
Ejemplo n.º 16
0
        public void GetCatalogo()
        {
            RegisterDependency.Init();

            var t1 = DateTime.Now.Ticks;

            CatalogoItemList.Get(CatalogoConstantes.CatIdentificacionTipo);
            var t2 = DateTime.Now.Ticks;

            CatalogoItemList.Get(CatalogoConstantes.CatGenero);
            var t3 = DateTime.Now.Ticks;

            CatalogoItemList.Get(CatalogoConstantes.CatEstadoCivil);
            var t4 = DateTime.Now.Ticks;

            System.Diagnostics.Trace.WriteLine(string.Format("Tiempos:{0}, {1}, {2}, {3}", t1, t2, t3, t4));
            System.Diagnostics.Trace.WriteLine("T1:" + ((t2 - t1) / 1000));
            System.Diagnostics.Trace.WriteLine("T2:" + ((t3 - t2) / 1000));
            System.Diagnostics.Trace.WriteLine("T3:" + ((t4 - t3) / 1000));
            System.Diagnostics.Trace.WriteLine("T3:" + ((t4 - t1) / 1000));

            t1 = DateTime.Now.Ticks;
            CatalogoItemList.Get(CatalogoConstantes.CatIdentificacionTipo);
            t2 = DateTime.Now.Ticks;
            CatalogoItemList.Get(CatalogoConstantes.CatGenero);
            t3 = DateTime.Now.Ticks;
            CatalogoItemList.Get(CatalogoConstantes.CatEstadoCivil);
            t4 = DateTime.Now.Ticks;

            System.Diagnostics.Trace.WriteLine(string.Format("Tiempos:{0}, {1}, {2}, {3}", t1, t2, t3, t4));
            System.Diagnostics.Trace.WriteLine("T1:" + ((t2 - t1) / 1000));
            System.Diagnostics.Trace.WriteLine("T2:" + ((t3 - t2) / 1000));
            System.Diagnostics.Trace.WriteLine("T3:" + ((t4 - t3) / 1000));
            System.Diagnostics.Trace.WriteLine("T3:" + ((t4 - t1) / 1000));

            Assert.AreNotEqual(t4, 0);
            Assert.AreNotEqual(t4, 0);
        }
Ejemplo n.º 17
0
        static async Task <int> DeployTokenAsync(
            string settingsUrl,
            string tokenCfgPath)
        {
            #region RegisterDependencies

            var appSettings = GetCurrentSettingsFromUrl(settingsUrl);
            ContainerBuilder   containerBuilder = new ContainerBuilder();
            IServiceCollection collection       = new Microsoft.Extensions.DependencyInjection.ServiceCollection();
            containerBuilder.RegisterInstance(appSettings);
            containerBuilder.RegisterInstance <IBaseSettings>(appSettings.CurrentValue.EthereumCore);
            containerBuilder.RegisterInstance <ISlackNotificationSettings>(appSettings.CurrentValue.SlackNotifications);
            containerBuilder.RegisterInstance(appSettings.Nested(x => x.EthereumCore));
            containerBuilder.RegisterInstance(appSettings.CurrentValue);
            var consoleLogger = new LogToConsole();
            collection.AddSingleton <ILog>(consoleLogger);
            RegisterReposExt.RegisterAzureQueues(containerBuilder, appSettings.Nested(x => x.EthereumCore.Db.DataConnString),
                                                 appSettings.Nested(x => x.SlackNotifications));
            RegisterReposExt.RegisterAzureStorages(containerBuilder, appSettings.Nested(x => x.EthereumCore),
                                                   appSettings.Nested(x => x.SlackNotifications), consoleLogger);
            RegisterRabbitQueueEx.RegisterRabbitQueue(collection,
                                                      appSettings.Nested(x => x.EthereumCore.RabbitMq),
                                                      appSettings.Nested(x => x.EthereumCore.Db.DataConnString),
                                                      consoleLogger);
            RegisterDependency.RegisterServices(collection);
            RegisterDependency.RegisterServices(containerBuilder);
            containerBuilder.Populate(collection);
            containerBuilder.RegisterInstance <ILog>(consoleLogger);
            var resolver = containerBuilder.Build();
            resolver.ActivateRequestInterceptor();
            #endregion

            var web3                    = resolver.Resolve <IWeb3>();
            var contractService         = resolver.Resolve <IContractService>();
            var ercInterfaceService     = resolver.Resolve <IErcInterfaceService>();
            var exchangeContractService = resolver.Resolve <IExchangeContractService>();
            var text                    = File.ReadAllText(tokenCfgPath);
            var tokenCfg                = Newtonsoft.Json.JsonConvert.DeserializeObject <TokenCfg>(text);
            var addressUtil             = new AddressUtil();

            if (!exchangeContractService.IsValidAddress(tokenCfg.HotwalletAddress))
            {
                await consoleLogger.WriteInfoAsync(nameof(Main),
                                                   tokenCfg.ToJson(),
                                                   $"HotwalletAddress is not a valid address.");

                return(0);
            }

            await consoleLogger.WriteInfoAsync(nameof(Main), "", $"Started Deployment");

            foreach (var tokenDescr in tokenCfg.Tokens)
            {
                await consoleLogger.WriteInfoAsync(nameof(Main), "", $"Processing {tokenDescr.TokenName}");

                if (!BigInteger.TryParse(tokenDescr.InitialSupply, out var initialSupply) || initialSupply == 0)
                {
                    await consoleLogger.WriteInfoAsync(nameof(Main),
                                                       tokenDescr.ToJson(),
                                                       $"Can't parse initial supply value. It is not a BigInt or zero");

                    continue;
                }

                if (!exchangeContractService.IsValidAddress(tokenDescr.IssuerAddress))
                {
                    await consoleLogger.WriteInfoAsync(nameof(Main),
                                                       tokenDescr.ToJson(),
                                                       $"Issuer address is not a valid address.");

                    continue;
                }

                var(abi, bytecode) = GetContractDeploymentForTokenType(tokenDescr.TokenType);
                string address = tokenDescr.TokenType == TokenType.Emissive ?
                                 await contractService.CreateContract(abi,
                                                                      bytecode,
                                                                      4000000,
                                                                      tokenDescr.IssuerAddress,
                                                                      tokenDescr.TokenName,
                                                                      tokenDescr.Divisibility,
                                                                      tokenDescr.TokenSymbol,
                                                                      tokenDescr.Version) :
                                 await contractService.CreateContract(abi,
                                                                      bytecode,
                                                                      4000000,
                                                                      tokenDescr.IssuerAddress,
                                                                      tokenDescr.TokenName,
                                                                      tokenDescr.Divisibility,
                                                                      tokenDescr.TokenSymbol,
                                                                      tokenDescr.Version,
                                                                      initialSupply);

                await consoleLogger.WriteInfoAsync(nameof(Main), tokenDescr.ToJson(), $"Deployed at address {address}");

                if (tokenDescr.TokenType == TokenType.Emissive)
                {
                    await consoleLogger.WriteInfoAsync(nameof(Main), tokenDescr.ToJson(),
                                                       $"Starting Emission to {tokenCfg.HotwalletAddress}");

                    var transactionHash = await ercInterfaceService.Transfer(address,
                                                                             addressUtil.ConvertToChecksumAddress(tokenDescr.IssuerAddress), //Should be in SigningService
                                                                             tokenCfg.HotwalletAddress,
                                                                             initialSupply);

                    await consoleLogger.WriteInfoAsync(nameof(Main), tokenDescr.ToJson(), $"Emission txHash is {transactionHash}. " +
                                                       $"Waiting for compleation");

                    WaitForTransactionCompleation(web3, transactionHash);

                    await consoleLogger.WriteInfoAsync(nameof(Main), tokenDescr.ToJson(), "Completed.");
                }
            }

            await consoleLogger.WriteInfoAsync(nameof(Main), "", "Completed processing all tokens.");

            return(0);
        }
Ejemplo n.º 18
0
 /// <summary>
 /// Load your modules or register your services here!
 /// </summary>
 /// <param name="kernel">The kernel.</param>
 private static void RegisterServices(IKernel kernel)
 {
     RegisterDependency.RegisterDependencies(kernel, GlobalConstants.DBConn, GlobalConstants.DefaultPageListSize, GetAllConfigs());
 }
Ejemplo n.º 19
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            RegisterDependency.Register(services);

            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);

            services.AddDbContext <ApiContext>(o =>
                                               o.UseNpgsql(Configuration.GetConnectionString("SgpConnection")));

            var jwtConfiguration = Configuration
                                   .GetSection(nameof(JwtTokenSettings));

            services.Configure <JwtTokenSettings>(jwtConfiguration);
            var jwtTokenSettings = jwtConfiguration
                                   .Get <JwtTokenSettings>();

            services.AddAuthentication(o =>
            {
                o.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
                o.DefaultChallengeScheme    = JwtBearerDefaults.AuthenticationScheme;
            }).AddJwtBearer(o =>
            {
                o.TokenValidationParameters = new TokenValidationParameters
                {
                    ValidateLifetime         = true,
                    ValidateAudience         = true,
                    ValidAudience            = jwtTokenSettings.Audience,
                    ValidateIssuer           = true,
                    ValidIssuer              = jwtTokenSettings.Issuer,
                    ValidateIssuerSigningKey = true,
                    IssuerSigningKey         = new SymmetricSecurityKey(UTF8
                                                                        .GetBytes(jwtTokenSettings.IssuerSigningKey))
                };
            });

            services.Configure <ConnectionStrings>(Configuration
                                                   .GetSection(nameof(ConnectionStrings)));

            services.Configure <PaginacaoSettings>(Configuration
                                                   .GetSection(nameof(PaginacaoSettings)));

            services.Configure <AutorizacaoSettings>(Configuration
                                                     .GetSection(nameof(AutorizacaoSettings)));

            // CORS (Cross-Origin Requests)
            services.AddCors(options =>
            {
                options.AddPolicy("CorsPolicy",
                                  builder => builder
                                  .AllowAnyOrigin()
                                  //.WithOrigins("https://origem1.com", "http://origem2.com.br")
                                  .AllowAnyMethod()
                                  .AllowAnyHeader()
                                  .AllowCredentials()
                                  .Build());
            });

            services.AddSwaggerGen(o =>
            {
                o.SwaggerDoc("v1", new Info
                {
                    Title   = "SME - API Pedagógico",
                    Version = "v1"
                });
            });
        }
Ejemplo n.º 20
0
        public static void Main(string[] args)
        {
            var exit = false;

            var configurationBuilder = new ConfigurationBuilder()
                                       .SetBasePath(Directory.GetCurrentDirectory())
                                       .AddJsonFile("appsettings.json").AddEnvironmentVariables();
            var configuration = configurationBuilder.Build();

            var settings = GetCurrentSettingsFromUrl();

            SaveSettings(settings);

            IServiceCollection collection = new Microsoft.Extensions.DependencyInjection.ServiceCollection();

            collection.AddSingleton(settings);
            collection.AddSingleton <IBaseSettings>(settings.CurrentValue.EthereumCore);
            collection.AddSingleton <ISlackNotificationSettings>(settings.CurrentValue.SlackNotifications);
            collection.AddSingleton(settings.Nested(x => x.EthereumCore));
            collection.AddSingleton(settings.CurrentValue);
            var consoleLogger = new LogToConsole();

            collection.AddSingleton <ILog>(consoleLogger);

            RegisterReposExt.RegisterAzureQueues(collection, settings.Nested(x => x.EthereumCore), settings.Nested(x => x.SlackNotifications));
            RegisterReposExt.RegisterAzureStorages(collection, settings.Nested(x => x.EthereumCore), settings.Nested(x => x.SlackNotifications));
            ServiceProvider = collection.BuildServiceProvider();
            RegisterRabbitQueueEx.RegisterRabbitQueue(collection, settings.Nested(x => x.EthereumCore), ServiceProvider.GetService <ILog>());
            RegisterDependency.RegisterServices(collection);
            Lykke.Job.EthereumCore.Config.RegisterDependency.RegisterJobs(collection);
            //var web3 = ServiceProvider.GetService<Web3>();
            //web3.Eth.GetBalance.SendRequestAsync("");
            // web3.Eth.Transactions.SendTransaction.SendRequestAsync(new Nethereum.RPC.Eth.DTOs.TransactionInput()
            //{
            //
            //}).Result;
            //var key = EthECKey.GenerateKey().GetPrivateKeyAsBytes();
            //var stringKey = Encoding.Unicode.GetString(key);
            GetAllContractInJson();
            ServiceProvider = collection.BuildServiceProvider();
            ServiceProvider.ActivateRequestInterceptor();
            //var lykkeSigningAPI = ServiceProvider.GetService<ILykkeSigningAPI>();
            //lykkeSigningAPI.ApiEthereumAddkeyPost(new AddKeyRequest()
            //{
            //    Key = "",
            //});

            //var eventService = ServiceProvider.GetService<ITransactionEventsService>();
            //eventService.IndexCashinEventsForAdapter("0x1c4ca817d1c61f9c47ce2bec9d7106393ff981ce",
            //    "0x512867d36f1d6ee43f2056a7c41606133bce514fbc8e911c1834eeae80800ceb").Wait();


            #region DBE TOKEN

            //string tokenAddress;
            //string depositAddress;
            //Contract contract;

            //var web3 = ServiceProvider.GetService<IWeb3>();
            //{
            //    var abi = GetFileContent("Erc20DepositContract.abi");
            //    var bytecode = GetFileContent("Erc20DepositContract.bin");
            //    depositAddress =
            //        ServiceProvider.GetService<IContractService>()
            //        .CreateContract(abi, bytecode, 4000000)
            //        .Result;
            //}
            //{


            //    var abi = GetFileContent("debtoken.abi");
            //    var bytecode = GetFileContent("debtoken.bin");
            //    tokenAddress =
            //        ServiceProvider.GetService<IContractService>()
            //        .CreateContract(abi, bytecode, 4000000)
            //        .Result;
            //    contract = web3.Eth.GetContract(abi, tokenAddress);
            //}

            //{
            //    var unfreezeFunc = contract.GetFunction("unfreeze");
            //    var transactionHash = unfreezeFunc.SendTransactionAsync(settings.CurrentValue.EthereumCore.EthereumMainAccount,
            //                new HexBigInteger(BigInteger.Parse("200000")), new HexBigInteger(0)).Result;
            //}

            //{
            //    var erc20Service = ServiceProvider.GetService<IErcInterfaceService>();
            //    var transactionHash = erc20Service.Transfer(tokenAddress, settings.CurrentValue.EthereumCore.EthereumMainAccount,
            //        depositAddress, System.Numerics.BigInteger.Parse("1000000000000000000")).Result;
            //}


            #endregion

            #region StatusExamples
            //var service = ServiceProvider.GetService<ICoinTransactionService>();
            //{
            //    //fail
            //    var x = service.ProcessTransaction(new Services.Coins.Models.CoinTransactionMessage()
            //    {
            //        TransactionHash = "0xf86efe1b8de285b8255519ca7d0ac76088132e6c5306f88dfc27312c6d7127ea",
            //    }).Result;
            //}

            //{
            //    //ok
            //    var x = service.ProcessTransaction(new Services.Coins.Models.CoinTransactionMessage()
            //    {
            //        TransactionHash = "0xa237230df97a0d6710241597a0186662928afa373c13b8d4eac86f36aa678985",
            //    }).Result;
            //}

            //{
            //    //fail
            //    var x = service.ProcessTransaction(new Services.Coins.Models.CoinTransactionMessage()
            //    {
            //        TransactionHash = "0xb63ac4f94006cbbfe58a1d651e173c56dc74a45e4d1141ac57fc51a0d4202e95",
            //    }).Result;
            //}

            //{
            //    //fail
            //    var x = service.ProcessTransaction(new Services.Coins.Models.CoinTransactionMessage()
            //    {
            //        TransactionHash = "0x1df50ee79d0af8b433f7f0be2a84cbb5dc3e29e5822e78b9c6a7ec33d027e286",
            //    }).Result;
            //}

            //{
            //    //fail
            //    var x = service.ProcessTransaction(new Services.Coins.Models.CoinTransactionMessage()
            //    {
            //        TransactionHash = "0xa3d4c1da523273371fe45c928b9236b353976e7b9e6d2b31e659f7a4c781a764",
            //    }).Result;
            //}

            #endregion

            //0xf86efe1b8de285b8255519ca7d0ac76088132e6c5306f88dfc27312c6d7127ea      0x0
            //0xa237230df97a0d6710241597a0186662928afa373c13b8d4eac86f36aa678985      0x1
            //0xb63ac4f94006cbbfe58a1d651e173c56dc74a45e4d1141ac57fc51a0d4202e95

            var service = ServiceProvider.GetService <IErcInterfaceService>();
            service.Transfer("0x5adbf411faf2595698d80b7f93d570dd16d7f4b2", settings.CurrentValue.EthereumCore.EthereumMainAccount,
                             "0xae4d8b0c887508750ddb6b32752a82431941e2e7", System.Numerics.BigInteger.Parse("10000000000000000000")).Wait();
            //var paymentService = ServiceProvider.GetService<IPaymentService>();
            //    string result = paymentService.SendEthereum(settings.EthereumMainAccount,
            //    "0xbb0a9c08030898cdaf1f28633f0d3c8556155482", new System.Numerics.BigInteger(5000000000000000)).Result;
            //var coinEv = ServiceProvider.GetService<ICoinEventService>();
            //var ev1 = coinEv.GetCoinEvent("0xbfb8d6a561c1a088c347efb989e19cb02c1028b34a337e001b146fd1360dc714").Result;
            //var ev2 = coinEv.GetCoinEvent("0xa0876a676d695ab145fcf70ac0b2ae02e8b00351a5193352ffb37ad37dce6848").Result;
            //coinEv.InsertAsync(ev1).Wait();
            //coinEv.InsertAsync(ev2).Wait();
            //var paymentService = ServiceProvider.GetService<ICoinTransactionService>();
            //paymentService.PutTransactionToQueue("0xbfb8d6a561c1a088c347efb989e19cb02c1028b34a337e001b146fd1360dc714").Wait();
            //paymentService.PutTransactionToQueue("0xa0876a676d695ab145fcf70ac0b2ae02e8b00351a5193352ffb37ad37dce6848").Wait();
            //var pendingOperationService = ServiceProvider.GetService<IPendingOperationService>();
            //var op = pendingOperationService.GetOperationAsync("40017691-1656-4d71-a8a6-4187200dca73").Result;
            //pendingOperationService.CreateOperation(op).Wait();
            //var op2 = pendingOperationService.GetOperationAsync("41e19fd5-2660-469b-9315-b768f701e742").Result;
            //pendingOperationService.CreateOperation(op2).Wait();

            while (!exit)
            {
                Console.WriteLine("Choose number: ");
                //Console.WriteLine("1. Deploy main contract from local json file");
                Console.WriteLine("2. Deploy main exchange contract");
                Console.WriteLine("3. Deploy coin contract using local json file");
                Console.WriteLine("4. Deploy transfer");
                Console.WriteLine("5. Deploy BCAP Token");
                Console.WriteLine("6. Deploy main exchange contract with multiple owners!(Make sure that jobs are stopped)");
                Console.WriteLine("7. Add more owners to Main Exchange Contract with multiple owners!(Add addresses with some eth on it)");
                Console.WriteLine("9. Deploy And Migrate To NM!(Make sure that jobs are stopped)");
                Console.WriteLine("10. Send transaction to MainExchange!(Make sure that jobs are stopped)");
                Console.WriteLine("0. Exit");

                var input = Console.ReadLine();

                switch (input)
                {
                case "2":
                    DeployMainExchangeContract().Wait();
                    break;

                case "3":
                    //DeployCoinContract().Wait();
                    break;

                case "4":
                    DeployTokenTransferContract().Wait();
                    break;

                case "0":
                    exit = true;
                    break;

                case "5":
                    DeployBCAP().Wait();
                    break;

                case "6":
                    DeployAndMigrateMainExchangeContractWithMultipleOwners().Wait();
                    break;

                case "7":
                    AddOwners().Wait();
                    break;

                //case "8":
                //    MigrateAdapter(,).Wait();
                //    break;
                case "9":
                    DeployAndMigrateToNM().Wait();
                    break;

                case "10":
                    SendTransactionFromMainExchange().Wait();
                    break;

                default:
                    Console.WriteLine("Bad input!");
                    continue;
                }

                Console.WriteLine("Done!");
            }
        }
Ejemplo n.º 21
0
 // This method gets called by the runtime. Use this method to add services to the container.
 public void ConfigureServices(IServiceCollection services)
 {
     services.AddDbContext <PaymentContext>(opt => opt.UseSqlServer(Configuration.GetConnectionString("PaymentDB")));
     RegisterDependency.RegisterDI(services);
     services.AddControllers();
 }
Ejemplo n.º 22
0
        static void Main(string[] args)
        {
            var configurationBuilder = new ConfigurationBuilder()
                                       .SetBasePath(Directory.GetCurrentDirectory())
                                       .AddJsonFile("appsettings.json").AddEnvironmentVariables();
            var configuration = configurationBuilder.Build();

            var settings = GetCurrentSettings();

            IServiceCollection collection = new Microsoft.Extensions.DependencyInjection.ServiceCollection();

            collection.AddSingleton <IBaseSettings>(settings.CurrentValue.EthereumCore);
            collection.AddSingleton <ISlackNotificationSettings>(settings.CurrentValue.SlackNotifications);

            //RegisterReposExt.RegisterAzureLogs(collection, settings.EthereumCore, "");
            RegisterReposExt.RegisterAzureQueues(collection, settings.Nested(x => x.EthereumCore), settings.Nested(x => x.SlackNotifications));
            RegisterReposExt.RegisterAzureStorages(collection, settings.Nested(x => x.EthereumCore), settings.Nested(x => x.SlackNotifications));
            ServiceProvider = collection.BuildServiceProvider();
            RegisterRabbitQueueEx.RegisterRabbitQueue(collection, settings.Nested(x => x.EthereumCore), ServiceProvider.GetService <ILog>());
            RegisterDependency.RegisterServices(collection);
            ServiceProvider = collection.BuildServiceProvider();

            var web3 = ServiceProvider.GetService <Web3>();

            try
            {
                var blockNumber = web3.Eth.Blocks.GetBlockNumber.SendRequestAsync().Result;
                Console.WriteLine($"RPC Works! {blockNumber.Value.ToString()}");
            }
            catch (Exception e)
            {
                Console.WriteLine($"Rpc does not work at all! {e.Message}");
            }
            Console.WriteLine($"Type 0 to exit");
            Console.WriteLine($"Type 1 to SHOW pending Transactions");
            Console.WriteLine($"Type 2 to REPEAT all operation without hash");
            Console.WriteLine($"Type 3 to CHECK pending operations");
            Console.WriteLine($"Type 4 to SCAN transfer contracts for issues");
            Console.WriteLine($"Type 5 to REASSIGN contracts");
            Console.WriteLine($"Type 6 to List all sucesful coin events");
            Console.WriteLine($"Type 7 to RESUBMIT all succesful coin events(except cashin)");
            Console.WriteLine($"Type 8 to RESUBMIT all cashin coin events");
            Console.WriteLine($"Type 9 to REMOVE DUPLICATE user transfer wallet locks");
            Console.WriteLine($"Type 10 to move from pending-poison to processing");
            Console.WriteLine($"Type 11 to PUT EVERYTHING IN PENDING WITH zero dequeue count");
            var command = "";

            do
            {
                command = Console.ReadLine();
                switch (command)
                {
                case "1":
                    ShowPendingTransactionsAmount();
                    break;

                case "2":
                    OperationResubmit();
                    break;

                case "3":
                    OperationCheck();
                    break;

                case "4":
                    GetAllFailedAssignments();
                    break;

                case "5":
                    StartReassignment();
                    break;

                case "6":
                    ListUnPublishedCoinEvents();
                    break;

                case "7":
                    ResubmittUnPublishedCoinEventsWithMatches();
                    break;

                case "8":
                    ResubmittUnPublishedCoinEventsCashinOnly();
                    break;

                case "9":
                    RemoveDuplicateUserTransferWallets();
                    break;

                case "10":
                    MoveFromPoisonToProcessing();
                    break;

                case "11":
                    MoveFromPendingAndPoisonToProcessing();
                    break;

                default:
                    break;
                }
            }while (command != "0");

            Console.WriteLine("Exited");
        }
Ejemplo n.º 23
0
 public void Logear()
 {
     RegisterDependency.Init();
     Assert.AreEqual(true, LoginCmd.Execute("admin", "Adm1nAdm1n").Identity.IsAuthenticated);
 }
Ejemplo n.º 24
0
        public static void Main(string[] args)
        {
            if (args == null || !args.Any())
            {
                throw new Exception("Specify parameters! url to EtherteumCore service");
            }

            var exit = false;

            string settingsArg = args.First();

            var settings = new SettingsServiceReloadingManager <AppSettings>(settingsArg);

            SaveSettings(settings);

            ContainerBuilder   containerBuilder = new ContainerBuilder();
            IServiceCollection collection       = new Microsoft.Extensions.DependencyInjection.ServiceCollection();

            containerBuilder.RegisterInstance(settings);
            containerBuilder.RegisterInstance <IBaseSettings>(settings.CurrentValue.EthereumCore);
            containerBuilder.RegisterInstance <ISlackNotificationSettings>(settings.CurrentValue.SlackNotifications);
            containerBuilder.RegisterInstance(settings.Nested(x => x.EthereumCore));
            containerBuilder.RegisterInstance(settings.CurrentValue);
            var consoleLogger = new LogToConsole();

            collection.AddSingleton <ILog>(consoleLogger);

            //TODO: Uncomment and fix registrations
            RegisterReposExt.RegisterAzureQueues(containerBuilder, settings.Nested(x => x.EthereumCore.Db.DataConnString),
                                                 settings.Nested(x => x.SlackNotifications));
            RegisterReposExt.RegisterAzureStorages(containerBuilder, settings.Nested(x => x.EthereumCore),
                                                   settings.Nested(x => x.SlackNotifications), consoleLogger);
            RegisterRabbitQueueEx.RegisterRabbitQueue(collection,
                                                      settings.Nested(x => x.EthereumCore.RabbitMq),
                                                      settings.Nested(x => x.EthereumCore.Db.DataConnString),
                                                      consoleLogger);
            RegisterDependency.RegisterServices(collection);
            RegisterDependency.RegisterServices(containerBuilder);
            //Lykke.Job.EthereumCore.Config.RegisterDependency.RegisterJobs(collection);
            //var web3 = ServiceProvider.GetService<Web3>();
            //web3.Eth.GetBalance.SendRequestAsync("");
            // web3.Eth.Transactions.SendTransaction.SendRequestAsync(new Nethereum.RPC.Eth.DTOs.TransactionInput()
            //{
            //
            //}).Result;
            //var key = EthECKey.GenerateKey().GetPrivateKeyAsBytes();
            //var stringKey = Encoding.Unicode.GetString(key);
            GetAllContractInJson();
            containerBuilder.Populate(collection);
            ServiceProvider = containerBuilder.Build();
            ServiceProvider.ActivateRequestInterceptor();
            //var signApi = ServiceProvider.Resolve<ILykkeSigningAPI>();
            //var signed = signApi.ApiEthereumSignPostWithHttpMessagesAsync(new EthereumTransactionSignRequest()
            //{
            //    FromProperty = "0x406561F72e25af10fD28b41200FA3D52badC5A21",
            //    Transaction = "f86b8201618483215600830186a094db6ea754f2afb4257b9bea0828771b19504aeac380b844a9059cbb00000000000000000000000033c6b8907d65d5a53cc301c544abf99f2e783242000000000000000000000000000000000000000000000000000000000000000c808080"
            //}).Result;
            //var xa = 1;
            //var lykkeSigningAPI = ServiceProvider.Resolve<ILykkeSigningAPI>();
            //var key1 = lykkeSigningAPI.ApiEthereumKeyGetAsync().Result;

            //var eventService = ServiceProvider.GetService<ITransactionEventsService>();
            //eventService.IndexCashinEventsForAdapter("0x1c4ca817d1c61f9c47ce2bec9d7106393ff981ce",
            //    "0x512867d36f1d6ee43f2056a7c41606133bce514fbc8e911c1834eeae80800ceb").Wait();

            //#region EmissiveErc223 TOKEN

            //string tokenAddress = "";
            //string depositAddress = "";
            //Contract contract;

            //var web3 = ServiceProvider.Resolve<IWeb3>();
            //{
            //    var abi = GetFileContent("Erc20DepositContract.abi");
            //    var bytecode = GetFileContent("Erc20DepositContract.bin");
            //    depositAddress = string.IsNullOrEmpty(depositAddress) ?
            //        ServiceProvider.Resolve<IContractService>()
            //        .CreateContract(abi,
            //                bytecode,
            //                4000000)
            //        .Result : depositAddress;
            //}
            //{
            //    //address issuer,
            //    //string tokenName,
            //    //uint8 divisibility,
            //    //string tokenSymbol,
            //    //string version
            //    var abi = GetFileContent("EmissiveErc223Token.abi");
            //    var bytecode = GetFileContent("EmissiveErc223Token.bin");
            //    tokenAddress = string.IsNullOrEmpty(tokenAddress) ?
            //        ServiceProvider.Resolve<IContractService>()
            //        .CreateContract(abi,
            //                bytecode,
            //                4000000,
            //                settings.CurrentValue.EthereumCore.EthereumMainAccount,
            //                "LykkeErc223Token",
            //                18,
            //                "LTE223",
            //                "1.0.0")
            //        .Result : tokenAddress;
            //    contract = web3.Eth.GetContract(abi, tokenAddress);
            //}

            //{
            //    //Transfer to the deposit contract
            //    var erc20Service = ServiceProvider.Resolve<IErcInterfaceService>();
            //    var balanceOld = erc20Service.GetBalanceForExternalTokenAsync(depositAddress, tokenAddress).Result;
            //    var transactionHash = erc20Service.Transfer(tokenAddress, settings.CurrentValue.EthereumCore.EthereumMainAccount,
            //        depositAddress, System.Numerics.BigInteger.Parse("1000000000000000000")).Result;
            //    WaitForTransactionCompleation(web3, transactionHash);
            //    var balance = erc20Service.GetBalanceForExternalTokenAsync(depositAddress, tokenAddress).Result;
            //    var isPossibleToWithdrawWithTokenFallback = erc20Service.CheckTokenFallback(depositAddress).Result;
            //    var isPossibleToWithdrawToExternal =
            //        erc20Service.CheckTokenFallback("0x856924997fa22efad8dc75e83acfa916490989a4").Result;
            //}

            //{
            //    //Transfer to the account managed by external private key
            //    var toAddress = "0x856924997fa22efad8dc75e83acfa916490989a4";
            //    var erc20Service = ServiceProvider.Resolve<IErcInterfaceService>();
            //    var balanceOld = erc20Service.GetBalanceForExternalTokenAsync(toAddress, tokenAddress).Result;
            //    var transactionHash = erc20Service.Transfer(tokenAddress, settings.CurrentValue.EthereumCore.EthereumMainAccount,
            //        toAddress, System.Numerics.BigInteger.Parse("1000000000000000000")).Result;
            //    WaitForTransactionCompleation(web3, transactionHash);
            //    var balance = erc20Service.GetBalanceForExternalTokenAsync(toAddress, tokenAddress).Result;
            //}

            //{
            //    //Transfer to the contract without fallback function
            //    string contractWithoutFallback = "0xd6ff42fa358403e0f9462c08e78c4baea1093945";
            //    var erc20Service = ServiceProvider.Resolve<IErcInterfaceService>();
            //    var balanceOld = erc20Service.GetBalanceForExternalTokenAsync(contractWithoutFallback, tokenAddress).Result;
            //    var transactionHash = erc20Service.Transfer(tokenAddress, settings.CurrentValue.EthereumCore.EthereumMainAccount,
            //        contractWithoutFallback, System.Numerics.BigInteger.Parse("1000000000000000000")).Result;
            //    WaitForTransactionCompleation(web3, transactionHash);
            //    var balance = erc20Service.GetBalanceForExternalTokenAsync(contractWithoutFallback, tokenAddress).Result;
            //    var isPossibleToWithdrawWithoutTokenFallback = erc20Service.CheckTokenFallback(contractWithoutFallback).Result;
            //}

            //#endregion

            //#region DBE TOKEN

            //{
            //    //var abi = GetFileContent("Erc20DepositContract.abi");
            //    //var bytecode = GetFileContent("Erc20DepositContract.bin");
            //    //depositAddress =
            //    //    ServiceProvider.Resolve<IContractService>()
            //    //    .CreateContract(abi, bytecode, 4000000)
            //    //    .Result;
            //}
            //{


            //    var abi = GetFileContent("debtoken.abi");
            //    var bytecode = GetFileContent("debtoken.bin");
            //    //tokenAddress =
            //    //    ServiceProvider.Resolve<IContractService>()
            //    //    .CreateContract(abi, bytecode, 4000000)
            //    //    .Result;
            //    contract = web3.Eth.GetContract(abi, tokenAddress);
            //}

            //{
            //    //var unfreezeFunc = contract.GetFunction("unfreeze");
            //    //var transactionHash = unfreezeFunc.SendTransactionAsync(settings.CurrentValue.EthereumCore.EthereumMainAccount,
            //    //            new HexBigInteger(BigInteger.Parse("200000")), new HexBigInteger(0)).Result;
            //}

            //{
            //    var erc20Service = ServiceProvider.Resolve<IErcInterfaceService>();
            //    var transactionHash = erc20Service.Transfer(tokenAddress, settings.CurrentValue.EthereumCore.EthereumMainAccount,
            //        depositAddress, System.Numerics.BigInteger.Parse("1000000000000000000")).Result;
            //}


            //#endregion

            //#region StatusExamples
            ////var service = ServiceProvider.GetService<ICoinTransactionService>();
            ////{
            ////    //fail
            ////    var x = service.ProcessTransaction(new Services.Coins.Models.CoinTransactionMessage()
            ////    {
            ////        TransactionHash = "0xf86efe1b8de285b8255519ca7d0ac76088132e6c5306f88dfc27312c6d7127ea",
            ////    }).Result;
            ////}

            ////{
            ////    //ok
            ////    var x = service.ProcessTransaction(new Services.Coins.Models.CoinTransactionMessage()
            ////    {
            ////        TransactionHash = "0xa237230df97a0d6710241597a0186662928afa373c13b8d4eac86f36aa678985",
            ////    }).Result;
            ////}

            ////{
            ////    //fail
            ////    var x = service.ProcessTransaction(new Services.Coins.Models.CoinTransactionMessage()
            ////    {
            ////        TransactionHash = "0xb63ac4f94006cbbfe58a1d651e173c56dc74a45e4d1141ac57fc51a0d4202e95",
            ////    }).Result;
            ////}

            ////{
            ////    //fail
            ////    var x = service.ProcessTransaction(new Services.Coins.Models.CoinTransactionMessage()
            ////    {
            ////        TransactionHash = "0x1df50ee79d0af8b433f7f0be2a84cbb5dc3e29e5822e78b9c6a7ec33d027e286",
            ////    }).Result;
            ////}

            ////{
            ////    //fail
            ////    var x = service.ProcessTransaction(new Services.Coins.Models.CoinTransactionMessage()
            ////    {
            ////        TransactionHash = "0xa3d4c1da523273371fe45c928b9236b353976e7b9e6d2b31e659f7a4c781a764",
            ////    }).Result;
            ////}

            //#endregion

            //0xf86efe1b8de285b8255519ca7d0ac76088132e6c5306f88dfc27312c6d7127ea      0x0
            //0xa237230df97a0d6710241597a0186662928afa373c13b8d4eac86f36aa678985      0x1
            //0xb63ac4f94006cbbfe58a1d651e173c56dc74a45e4d1141ac57fc51a0d4202e95

            //var service = ServiceProvider.Resolve<IErcInterfaceService>();
            //service.Transfer("0x5adbf411faf2595698d80b7f93d570dd16d7f4b2", settings.CurrentValue.EthereumCore.EthereumMainAccount,
            //    "0xae4d8b0c887508750ddb6b32752a82431941e2e7", System.Numerics.BigInteger.Parse("10000000000000000000")).Wait();
            //var paymentService = ServiceProvider.GetService<IPaymentService>();
            //    string result = paymentService.SendEthereum(settings.EthereumMainAccount,
            //    "0xbb0a9c08030898cdaf1f28633f0d3c8556155482", new System.Numerics.BigInteger(5000000000000000)).Result;
            //var coinEv = ServiceProvider.GetService<ICoinEventService>();
            //var ev1 = coinEv.GetCoinEvent("0xbfb8d6a561c1a088c347efb989e19cb02c1028b34a337e001b146fd1360dc714").Result;
            //var ev2 = coinEv.GetCoinEvent("0xa0876a676d695ab145fcf70ac0b2ae02e8b00351a5193352ffb37ad37dce6848").Result;
            //coinEv.InsertAsync(ev1).Wait();
            //coinEv.InsertAsync(ev2).Wait();
            //var paymentService = ServiceProvider.GetService<ICoinTransactionService>();
            //paymentService.PutTransactionToQueue("0xbfb8d6a561c1a088c347efb989e19cb02c1028b34a337e001b146fd1360dc714").Wait();
            //paymentService.PutTransactionToQueue("0xa0876a676d695ab145fcf70ac0b2ae02e8b00351a5193352ffb37ad37dce6848").Wait();
            //var pendingOperationService = ServiceProvider.GetService<IPendingOperationService>();
            //var op = pendingOperationService.GetOperationAsync("40017691-1656-4d71-a8a6-4187200dca73").Result;
            //pendingOperationService.CreateOperation(op).Wait();
            //var op2 = pendingOperationService.GetOperationAsync("41e19fd5-2660-469b-9315-b768f701e742").Result;
            //pendingOperationService.CreateOperation(op2).Wait();

            while (!exit)
            {
                Console.WriteLine("Choose number: ");
                //Console.WriteLine("1. Deploy main contract from local json file");
                Console.WriteLine("2. Deploy main exchange contract");
                Console.WriteLine("3. Deploy coin contract using local json file");
                Console.WriteLine("4. Deploy transfer");
                Console.WriteLine("5. Deploy BCAP Token");
                Console.WriteLine("6. Deploy main exchange contract with multiple owners!(Make sure that jobs are stopped)");
                Console.WriteLine("7. Add more owners to Main Exchange Contract with multiple owners!(Add addresses with some eth on it)");
                Console.WriteLine("9. Deploy And Migrate To NM!(Make sure that jobs are stopped)");
                Console.WriteLine("10. Send transaction to MainExchange!(Make sure that jobs are stopped)");
                Console.WriteLine("0. Exit");

                var input = Console.ReadLine();

                switch (input)
                {
                case "2":
                    DeployMainExchangeContract().Wait();
                    break;

                case "3":
                    //DeployCoinContract().Wait();
                    break;

                case "4":
                    DeployTokenTransferContract().Wait();
                    break;

                case "0":
                    exit = true;
                    break;

                case "5":
                    DeployBCAP().Wait();
                    break;

                case "6":
                    DeployAndMigrateMainExchangeContractWithMultipleOwners().Wait();
                    break;

                case "7":
                    AddOwners().Wait();
                    break;

                //case "8":
                //    MigrateAdapter(,).Wait();
                //    break;
                case "9":
                    DeployAndMigrateToNM().Wait();
                    break;

                case "10":
                    SendTransactionFromMainExchange().Wait();
                    break;

                default:
                    Console.WriteLine("Bad input!");
                    continue;
                }

                Console.WriteLine("Done!");
            }
        }
Ejemplo n.º 25
0
        public static void Main(string[] args)
        {
            var exit = false;

            var configurationBuilder = new ConfigurationBuilder()
                                       .SetBasePath(Directory.GetCurrentDirectory())
                                       .AddJsonFile("appsettings.json").AddEnvironmentVariables();
            var configuration = configurationBuilder.Build();

            var settings = GetCurrentSettingsFromUrl();

            SaveSettings(settings);

            IServiceCollection collection = new Microsoft.Extensions.DependencyInjection.ServiceCollection();

            collection.AddSingleton <IBaseSettings>(settings.EthereumCore);
            collection.AddSingleton <ISlackNotificationSettings>(settings.SlackNotifications);

            RegisterReposExt.RegisterAzureLogs(collection, settings.EthereumCore, "");
            RegisterReposExt.RegisterAzureQueues(collection, settings.EthereumCore, settings.SlackNotifications);
            RegisterReposExt.RegisterAzureStorages(collection, settings.EthereumCore, settings.SlackNotifications);
            ServiceProvider = collection.BuildServiceProvider();
            RegisterRabbitQueueEx.RegisterRabbitQueue(collection, settings.EthereumCore, ServiceProvider.GetService <ILog>());
            RegisterDependency.RegisterServices(collection);
            EthereumJobs.Config.RegisterDependency.RegisterJobs(collection);
            //var web3 = ServiceProvider.GetService<Web3>();
            //web3.Eth.GetBalance.SendRequestAsync("");
            // web3.Eth.Transactions.SendTransaction.SendRequestAsync(new Nethereum.RPC.Eth.DTOs.TransactionInput()
            //{
            //
            //}).Result;
            //var key = EthECKey.GenerateKey().GetPrivateKeyAsBytes();
            //var stringKey = Encoding.Unicode.GetString(key);
            GetAllContractInJson();
            ServiceProvider = collection.BuildServiceProvider();
            ServiceProvider.ActivateRequestInterceptor();
            //var lykkeSigningAPI = ServiceProvider.GetService<ILykkeSigningAPI>();
            //lykkeSigningAPI.ApiEthereumAddkeyPost(new AddKeyRequest()
            //{
            //    Key = "",
            //});

            var service = ServiceProvider.GetService <IErcInterfaceService>();

            service.Transfer("0x5adbf411faf2595698d80b7f93d570dd16d7f4b2", settings.EthereumCore.EthereumMainAccount,
                             "0xae4d8b0c887508750ddb6b32752a82431941e2e7", System.Numerics.BigInteger.Parse("10000000000000000000")).Wait();
            //var paymentService = ServiceProvider.GetService<IPaymentService>();
            //    string result = paymentService.SendEthereum(settings.EthereumMainAccount,
            //    "0xbb0a9c08030898cdaf1f28633f0d3c8556155482", new System.Numerics.BigInteger(5000000000000000)).Result;
            //var coinEv = ServiceProvider.GetService<ICoinEventService>();
            //var ev1 = coinEv.GetCoinEvent("0xbfb8d6a561c1a088c347efb989e19cb02c1028b34a337e001b146fd1360dc714").Result;
            //var ev2 = coinEv.GetCoinEvent("0xa0876a676d695ab145fcf70ac0b2ae02e8b00351a5193352ffb37ad37dce6848").Result;
            //coinEv.InsertAsync(ev1).Wait();
            //coinEv.InsertAsync(ev2).Wait();
            //var paymentService = ServiceProvider.GetService<ICoinTransactionService>();
            //paymentService.PutTransactionToQueue("0xbfb8d6a561c1a088c347efb989e19cb02c1028b34a337e001b146fd1360dc714").Wait();
            //paymentService.PutTransactionToQueue("0xa0876a676d695ab145fcf70ac0b2ae02e8b00351a5193352ffb37ad37dce6848").Wait();
            //var pendingOperationService = ServiceProvider.GetService<IPendingOperationService>();
            //var op = pendingOperationService.GetOperationAsync("40017691-1656-4d71-a8a6-4187200dca73").Result;
            //pendingOperationService.CreateOperation(op).Wait();
            //var op2 = pendingOperationService.GetOperationAsync("41e19fd5-2660-469b-9315-b768f701e742").Result;
            //pendingOperationService.CreateOperation(op2).Wait();

            while (!exit)
            {
                Console.WriteLine("Choose number: ");
                //Console.WriteLine("1. Deploy main contract from local json file");
                Console.WriteLine("2. Deploy main exchange contract");
                Console.WriteLine("3. Deploy coin contract using local json file");
                Console.WriteLine("4. Deploy transfer");
                Console.WriteLine("5. Deploy BCAP Token");
                Console.WriteLine("6. Deploy main exchange contract with multiple owners!(Make sure that jobs are stopped)");
                Console.WriteLine("7. Add more owners to Main Exchange Contract with multiple owners!(Add addresses with some eth on it)");
                Console.WriteLine("9. Deploy And Migrate To NM!(Make sure that jobs are stopped)");
                Console.WriteLine("10. Send transaction to MainExchange!(Make sure that jobs are stopped)");
                Console.WriteLine("0. Exit");

                var input = Console.ReadLine();

                switch (input)
                {
                case "2":
                    DeployMainExchangeContract().Wait();
                    break;

                case "3":
                    DeployCoinContract().Wait();
                    break;

                case "4":
                    DeployTokenTransferContract().Wait();
                    break;

                case "0":
                    exit = true;
                    break;

                case "5":
                    DeployBCAP().Wait();
                    break;

                case "6":
                    DeployAndMigrateMainExchangeContractWithMultipleOwners().Wait();
                    break;

                case "7":
                    AddOwners().Wait();
                    break;

                //case "8":
                //    MigrateAdapter(,).Wait();
                //    break;
                case "9":
                    DeployAndMigrateToNM().Wait();
                    break;

                case "10":
                    SendTransactionFromMainExchange().Wait();
                    break;

                default:
                    Console.WriteLine("Bad input!");
                    continue;
                }

                Console.WriteLine("Done!");
            }
        }
Ejemplo n.º 26
0
        public void PersonaCreate()
        {
            RegisterDependency.Init();

            var persona = PersonaNatural.New();

            persona.FechaNacimiento = DateTime.Now.AddYears(-5);
            persona.Identificacion  = "1103776313";
            persona.PrimerApellido  = "Sinche";
            persona.SegundoApellido = "Salinas";
            persona.PrimerNombre    = "Junior";
            persona.SegundoNombre   = "Ulises";

            var correo = persona.Correos.AddNew();

            correo.Correo = "*****@*****.**";


            persona.Correos.Add(correo);
            var t1 = DateTime.Now.Ticks;

            persona.TipoIdentificacion = CatalogoItemList.Get(CatalogoConstantes.CatIdentificacionTipo).GetItem(CatalogoConstantes.IdentificacionCedula).Id;

            var t2 = DateTime.Now.Ticks;

            persona.Genero = CatalogoItemList.Get(CatalogoConstantes.CatGenero).GetItem(CatalogoConstantes.GeneroMasculino).Id;
            var t3 = DateTime.Now.Ticks;

            persona.EstadoCivil = CatalogoItemList.Get(CatalogoConstantes.CatEstadoCivil).GetItem(CatalogoConstantes.EstadoCivilUnionlibre).Id;

            var t4 = DateTime.Now.Ticks;

            System.Diagnostics.Trace.WriteLine(string.Format("Tiempos:{0}, {1}, {2}, {3}", t1, t2, t3, t4));

            System.Diagnostics.Trace.WriteLine("T1:" + ((t2 - t1) / 1000));
            System.Diagnostics.Trace.WriteLine("T2:" + ((t3 - t2) / 1000));
            System.Diagnostics.Trace.WriteLine("T3:" + ((t4 - t3) / 1000));
            System.Diagnostics.Trace.WriteLine("T3:" + ((t4 - t1) / 1000));

            persona.Save();

            var personaCriteria = PersonaNaturalCriteria.New();
            var personaList     = PersonaNaturalList.Get(personaCriteria);

            var id = personaList.First(x => x.Identificacion == persona.Identificacion).Id;


            var persona1 = PersonaNatural.Get(id);

            persona1.EstadoCivil = CatalogoItemList.Get(CatalogoConstantes.CatEstadoCivil).GetItem(CatalogoConstantes.EstadoCivilUnionlibre).Id;
            persona1.Save();


            var persona2 = PersonaNatural.Get(id);

            persona2.Delete();
            persona2.Save();


            Assert.AreNotEqual(personaList.Count, 0);

            var personaList1 = PersonaNaturalList.Get(personaCriteria);

            Assert.AreNotEqual(personaList1.Count, personaList.Count);
        }