Add wallet transactions
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
@@ -23,7 +23,7 @@ class WalletController < ApplicationController
|
||||
end
|
||||
|
||||
def transactions
|
||||
|
||||
@transactions = fetch_transactions
|
||||
end
|
||||
|
||||
private
|
||||
@@ -41,13 +41,41 @@ class WalletController < ApplicationController
|
||||
# TODO add exception tracking
|
||||
end
|
||||
|
||||
def set_current_section
|
||||
@current_section = :wallet
|
||||
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
|
||||
def fetch_transactions
|
||||
lndhub = Lndhub.new
|
||||
txs = lndhub.gettxs @ln_auth_token
|
||||
invoices = lndhub.getuserinvoices(@ln_auth_token).select{|i| i["ispaid"]}
|
||||
|
||||
process_transactions(txs + invoices)
|
||||
end
|
||||
|
||||
def process_transactions(txs)
|
||||
txs.collect do |tx|
|
||||
if tx["type"] == "bitcoind_tx"
|
||||
tx["amount_sats"] = (tx["amount"] * 100000000).to_i
|
||||
tx["datetime"] = Time.at(tx["time"].to_i)
|
||||
tx["title"] = "Received"
|
||||
tx["description"] = "On-chain topup"
|
||||
tx["received"] = true
|
||||
else
|
||||
tx["amount_sats"] = tx["value"] || tx["amt"]
|
||||
tx["datetime"] = Time.at(tx["timestamp"].to_i)
|
||||
tx["title"] = tx["type"] == "paid_invoice" ? "Sent" : "Received"
|
||||
tx["description"] = tx["memo"] || tx["description"]
|
||||
tx["received"] = tx["type"] == "user_invoice"
|
||||
end
|
||||
end
|
||||
|
||||
txs.sort{ |a,b| b["datetime"] <=> a["datetime"] }
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user