public async void ConnectPeer(string pubkey, string host) { var request = new ConnectPeerRequest(); request.Addr = parsePubToAddr(pubkey, host); var response = await lndClient.ConnectPeerAsync(request); }
private void SubmitButtonOnClick(object sender, EventArgs e) { ClearErrorData(); if (typeof(TRequestMessage) == typeof(ConnectPeerRequest)) { var fullAddress = (string)Ws.Cells[_fieldToRow["addr"], EndColumn].Value2; if (fullAddress == null) { return; } var addressParts = fullAddress.Split('@'); string pubkey; string host; switch (addressParts.Length) { case 0: return; case 2: pubkey = addressParts[0]; host = addressParts[1]; break; default: Utilities.DisplayError(ErrorData, "Error", "Invalid address, must be pubkey@ip:host"); return; } var permanent = Ws.Cells[_fieldToRow["perm"], EndColumn].Value2; bool perm = permanent == null || (bool)permanent; var address = new LightningAddress { Host = host, Pubkey = pubkey }; var request = new ConnectPeerRequest { Addr = address, Perm = perm }; try { _lApp.LndClient.ConnectPeer(request); _lApp.Refresh(SheetNames.Peers); ClearForm(); } catch (RpcException rpcException) { DisplayError(rpcException); } } else if (typeof(TRequestMessage) == typeof(SendCoinsRequest)) { var request = new SendCoinsRequest { Addr = Ws.Cells[_fieldToRow["addr"], EndColumn].Value2, Amount = (long)Ws.Cells[_fieldToRow["amount"], EndColumn].Value2 }; var satPerByte = Ws.Cells[_fieldToRow["sat_per_byte"], EndColumn].Value2; if (satPerByte == null) { satPerByte = 0; } if (satPerByte > 0) { request.SatPerByte = satPerByte; } var targetConf = Ws.Cells[_fieldToRow["target_conf"], EndColumn].Value2; if (targetConf == null) { targetConf = 0; } if (targetConf > 0) { request.TargetConf = targetConf; } try { _lApp.LndClient.SendCoins(request); _lApp.Refresh(SheetNames.Transactions); ClearForm(); } catch (RpcException rpcException) { DisplayError(rpcException); } } else if (typeof(TRequestMessage) == typeof(OpenChannelRequest)) { var localFundingAmount = long.Parse(GetValue("local_funding_amount")); var minConfs = int.Parse(GetValue("min_confs")); var minHtlcMsat = long.Parse(GetValue("min_htlc_msat")); var nodePubKeyString = GetValue("node_pubkey"); var isPrivate = true; if (bool.TryParse(GetValue("private"), out var result)) { isPrivate = result; } var pushSat = long.Parse(GetValue("push_sat")); var remoteCsvDelay = uint.Parse(GetValue("remote_csv_delay")); var satPerByte = long.Parse(GetValue("sat_per_byte")); var targetConf = int.Parse(GetValue("target_conf")); var request = new OpenChannelRequest { LocalFundingAmount = localFundingAmount, MinConfs = minConfs, MinHtlcMsat = minHtlcMsat, NodePubkeyString = nodePubKeyString, Private = isPrivate, PushSat = pushSat }; if (remoteCsvDelay > 0) { request.RemoteCsvDelay = remoteCsvDelay; } if (satPerByte > 0) { request.SatPerByte = satPerByte; } if (targetConf > 0) { request.TargetConf = targetConf; } try { _lApp.LndClient.OpenChannel(request); _lApp.Refresh(SheetNames.Channels); ClearForm(); } catch (RpcException rpcException) { DisplayError(rpcException); } } else { var request = new TRequestMessage(); var rowNumber = _dataStartRow; foreach (var field in Fields) { Range dataCell = Ws.Cells[rowNumber, EndColumn]; var value = dataCell.Value2; if (!string.IsNullOrWhiteSpace(value?.ToString())) { field.Accessor.SetValue(request, dataCell.Value2); } } _query(request); } }