public ConsumerRocksDbProvider(string basePath, IDbConfig dbConfig, ILogManager logManager)
 {
     ConsumerDepositApprovalsDb = new ConsumerDepositApprovalsRocksDb(basePath, dbConfig, logManager);
     ConsumerReceiptsDb         = new ConsumerReceiptsRocksDb(basePath, dbConfig, logManager);
     ConsumerSessionsDb         = new ConsumerSessionsRocksDb(basePath, dbConfig, logManager);
     DepositsDb = new DepositsRocksDb(basePath, dbConfig, logManager);
 }
        public void Init(string path)
        {
            var dbOnTheRocks   = new ConsumerReceiptsRocksDb(path, new DbConfig(), LimboLogs.Instance);
            var receiptsBytes  = dbOnTheRocks.GetAll();
            var receiptDecoder = new DataDeliveryReceiptDetailsDecoder();
            var receipts       = receiptsBytes
                                 .Select(b => receiptDecoder.Decode(b.Value.AsRlpStream()));

            var window = new Window("Consumer receipts")
            {
                X = 0, Y = 10, Width = Dim.Fill(), Height = Dim.Fill()
            };

            if (!receipts.Any())
            {
                MessageBox.Query(40, 7, "Consumer receipts", "No data." +
                                 $"{Environment.NewLine}(ESC to close)");
                window.FocusPrev();
                return;
            }

            var y = 1;

            foreach (var receipt in receipts)
            {
                var receiptBtn = new Button(1, y++, $"Id: {receipt.Id}, DepositId: {receipt.DepositId}");

                receiptBtn.Clicked = () =>
                {
                    var receiptDetailsWindow = new Window("Receipt details")
                    {
                        X = 0, Y = 10, Width = Dim.Fill(), Height = Dim.Fill()
                    };
                    Application.Top.Add(receiptDetailsWindow);
                    var serializer = new EthereumJsonSerializer();
                    var receiptLbl = new Label(1, 1, serializer.Serialize(receipt, true));
                    receiptDetailsWindow.Add(receiptLbl);
                    Application.Run(receiptDetailsWindow);
                };
                window.Add(receiptBtn);
            }

            Application.Top.Add(window);
            Application.Run(window);
        }