public async Task PrepareFunds() { var nrlBalance = (await NRustLightningHttpClient.GetWalletInfoAsync()).OnChainBalanceSatoshis; if (nrlBalance > 0) { return; } var clAddress = (await CLightningClient.NewAddressAsync()); var lndAddress = BitcoinAddress.Create((await LndClient.SwaggerClient.NewWitnessAddressAsync()).Address, Network.RegTest); var nrlAddress = (await NRustLightningHttpClient.GetNewDepositAddressAsync()).Address; foreach (var addr in new[] { clAddress, lndAddress, nrlAddress }) { await this.BitcoinRPCClient.SendToAddressAsync(addr, Money.Coins(2m)); await this.BitcoinRPCClient.SendToAddressAsync(addr, Money.Coins(2m)); await this.BitcoinRPCClient.SendToAddressAsync(addr, Money.Coins(2m)); } await this.BitcoinRPCClient.GenerateAsync(20); // check wallet info and nbxplorer info is synchronized. await Support.Utils.Retry(5, TimeSpan.FromSeconds(3), async() => { var walletInfo = await this.NRustLightningHttpClient.GetWalletInfoAsync(); if (walletInfo.OnChainBalanceSatoshis == 0) { return(false); } var explorerInfo = await NBXClient.GetBalanceAsync(walletInfo.DerivationStrategy); return(NBitcoin.Money.Satoshis(walletInfo.OnChainBalanceSatoshis).Equals(explorerInfo.Total)); }, "walletinfo in nbxplorer and nrustlightning not synchronized"); await WaitChainSync(); }