require "rqrcode" class WalletController < ApplicationController before_action :require_user_signed_in before_action :authenticate_with_lndhub before_action :set_current_section before_action :fetch_balance def index @wallet_url = "lndhub://#{current_user.ln_login}:#{current_user.ln_password}@#{ENV['LNDHUB_PUBLIC_URL']}" qrcode = RQRCode::QRCode.new(@wallet_url) @svg = qrcode.as_svg( color: "000", shape_rendering: "crispEdges", module_size: 6, standalone: true, use_path: true, svg_attributes: { class: 'inline-block' } ) end def transactions end private def authenticate_with_lndhub if session["ln_auth_token"].present? @ln_auth_token = session["ln_auth_token"] else lndhub = Lndhub.new auth_token = lndhub.authenticate(current_user) session["ln_auth_token"] = auth_token @ln_auth_token = auth_token end rescue # TODO add exception tracking end def fetch_balance lndhub = Lndhub.new data = lndhub.balance @ln_auth_token @balance = data["BTC"]["AvailableBalance"] rescue nil end def set_current_section @current_section = :wallet end end