public async Task <Coin> ReceiveUTXO(Money value, BTCPayNetwork network)
        {
            var cashCow      = parent.ExplorerNode;
            var btcPayWallet = parent.PayTester.GetService <BTCPayWalletProvider>().GetWallet(network);
            var address      = (await btcPayWallet.ReserveAddressAsync(this.DerivationScheme)).Address;
            await parent.WaitForEvent <NewOnChainTransactionEvent>(async() =>
            {
                await cashCow.SendToAddressAsync(address, value);
            });

            int i = 0;

            while (i < 30)
            {
                var result = (await btcPayWallet.GetUnspentCoins(DerivationScheme))
                             .FirstOrDefault(c => c.ScriptPubKey == address.ScriptPubKey)?.Coin;
                if (result != null)
                {
                    return(result);
                }

                await Task.Delay(1000);

                i++;
            }
            Assert.False(true);
            return(null);
        }