예제 #1
0
        static async Task Main(string[] args)
        {
            Application.Init();
            var addressesModule = new AddressesModule();

            addressesModule.AddressesSelected += async(_, data) =>
            {
                var urls       = new[] { data.nodeAddress };
                var httpClient = new HttpClient();

                AddAuthorizationHeader(httpClient, data.nodeAddress);

                var jsonRpcClientProxy = new JsonRpcClientProxy(new DefaultHttpClient(httpClient,
                                                                                      new EthereumJsonSerializer(), LimboLogs.Instance, int.MaxValue), urls, LimboLogs.Instance);

                var jsonRpcWalletClientProxy = new JsonRpcWalletClientProxy(jsonRpcClientProxy);
                var ethJsonRpcClientProxy    = new EthJsonRpcClientProxy(jsonRpcClientProxy);

                var dataModule = new DataModule(ethJsonRpcClientProxy, data.address);
                dataModule.TransferClicked += async(_, e) =>
                {
                    var transferModule = new TransferModule(ethJsonRpcClientProxy, jsonRpcWalletClientProxy,
                                                            e.Address, e.Balance);
                    var transferWindow = await transferModule.InitAsync();

                    Application.Top.Add(transferWindow);
                    Application.Run(transferWindow);
                };
                var dataWindow = await dataModule.InitAsync();

                Application.Top.Add(dataWindow);
                Application.Run(dataWindow);
            };
            Application.Top.Add(await addressesModule.InitAsync());
            Application.Run();
        }