70 lines
2.0 KiB
Ruby
70 lines
2.0 KiB
Ruby
require "digest"
|
|
require "pp"
|
|
|
|
namespace :lndhub do
|
|
desc "Generate wallets for all users"
|
|
task :generate_wallets => :environment do |t, args|
|
|
User.all.each do |user|
|
|
CreateLndhubWalletJob.perform_later(user)
|
|
end
|
|
end
|
|
|
|
desc "List wallet balances"
|
|
task :balances => :environment do |t, args|
|
|
sum = 0
|
|
User.all.each do |user|
|
|
lndhub = Lndhub.new
|
|
auth_token = lndhub.authenticate(user)
|
|
data = lndhub.balance(auth_token)
|
|
balance = data["BTC"]["AvailableBalance"] rescue nil
|
|
if balance && balance > 0
|
|
sum += balance
|
|
puts "#{user.address}: #{balance} sats"
|
|
end
|
|
end
|
|
puts "--\nSum of user balances: #{sum} sats"
|
|
end
|
|
|
|
desc "Create test invoice"
|
|
task :create_test_invoice, [:username, :amount, :description] => :environment do |t, args|
|
|
user = User.find_by cn: args[:username]
|
|
desc = args[:description]
|
|
hash = Digest::SHA256.hexdigest(desc)
|
|
|
|
invoice = LndhubManager::CreateUserInvoice.call(user: user, payload: {
|
|
"amount": args[:amount].to_i,
|
|
"description": desc,
|
|
"description_hash": hash
|
|
})
|
|
|
|
pp invoice
|
|
end
|
|
|
|
desc "Migrate existing accounts to lndhub.go"
|
|
task :migrate => :environment do |t, args|
|
|
# user = User.find_by cn: "jimmy"
|
|
User.all.each do |user|
|
|
puts "Migrating #{user.cn}"
|
|
puts "Creating account..."
|
|
lndhub_v2 = LndhubV2.new
|
|
res = lndhub_v2.create_account login: user.ln_login, password: user.ln_password
|
|
puts res.inspect
|
|
|
|
lndhub = Lndhub.new
|
|
lndhub.authenticate(user)
|
|
data = lndhub.balance
|
|
balance = data["BTC"]["AvailableBalance"] rescue 0
|
|
|
|
if balance > 0
|
|
lndhub_v2.authenticate(user)
|
|
desc = "Balance migration from old Kosmos Lightning back-end"
|
|
res = lndhub_v2.create_invoice amount: balance, description: desc
|
|
puts "Payment request for #{user.cn} (#{balance} sats):"
|
|
puts res["payment_request"]
|
|
end
|
|
|
|
puts "---"
|
|
end
|
|
end
|
|
end
|