Add wallet page
continuous-integration/drone/pr Build is failing Details
continuous-integration/drone/push Build is failing Details

With setup code to connect Blue Wallet to Kosmos account wallets
This commit is contained in:
Basti 2021-11-20 16:13:43 -06:00
parent f94227f9f3
commit 0a1052fcb7
Signed by untrusted user: basti
GPG Key ID: 9F88009D31D99C72
9 changed files with 104 additions and 1 deletions

View File

@ -33,6 +33,9 @@ gem 'devise'
gem 'devise_ldap_authenticatable'
gem 'net-ldap'
# Utilities
gem "rqrcode", "~> 2.0"
# HTTP requests
gem 'faraday'

View File

@ -73,6 +73,7 @@ GEM
rack-test (>= 0.6.3)
regexp_parser (>= 1.5, < 3.0)
xpath (~> 3.2)
chunky_png (1.4.0)
concurrent-ruby (1.1.9)
connection_pool (2.2.5)
crack (0.4.5)
@ -213,6 +214,10 @@ GEM
actionpack (>= 5.0)
railties (>= 5.0)
rexml (3.2.5)
rqrcode (2.1.0)
chunky_png (~> 1.0)
rqrcode_core (~> 1.0)
rqrcode_core (1.2.0)
rspec-core (3.10.1)
rspec-support (~> 3.10.0)
rspec-expectations (3.10.1)
@ -321,6 +326,7 @@ DEPENDENCIES
pg (~> 1.2.3)
puma (~> 4.1)
rails (~> 6.0.3, >= 6.0.3.4)
rqrcode (~> 2.0)
rspec-rails
sass-rails (>= 6)
sidekiq

View File

@ -0,0 +1,21 @@
require "rqrcode"
class WalletController < ApplicationController
before_action :require_user_signed_in
def index
@current_section = :wallet
@wallet_url = "lndhub://#{current_user.ln_login}:#{current_user.ln_password}@https://lndhub.kosmos.org"
qrcode = RQRCode::QRCode.new(@wallet_url)
@svg = qrcode.as_svg(
color: "000",
shape_rendering: "crispEdges",
module_size: 6,
standalone: true,
use_path: true
)
end
end

View File

@ -0,0 +1,2 @@
module WalletHelper
end

View File

@ -13,6 +13,10 @@
<%= link_to "Donations", donations_path,
class: @current_section == :contributions ? "active" : nil %>
</li>
<li>
<%= link_to "Wallet", wallet_path,
class: @current_section == :wallet ? "active" : nil %>
</li>
<li>
<%= link_to "Security", security_path,
class: @current_section == :security ? "active" : nil %>

View File

@ -0,0 +1,42 @@
<section>
<h2>Wallet</h2>
<p>
Send and receive BTC via the Lightning Network.
</p>
</section>
<section>
<h3>
Blue Wallet
</h3>
<p>
You can connect Blue Wallet (Android or iOS) to your Kosmos bitcoin wallet.
</p>
<p>
<a id="show-setup-code" class="ks-text-link cursor-pointer">Show setup code</a>
<a id="hide-setup-code" class="ks-text-link cursor-pointer" style="display: none;">Hide setup code</a>
</p>
<p id="setup-code" style="display: none;">
<%= raw @svg %>
</p>
</section>
<script type="text/javascript">
const linkShow = document.querySelector('#show-setup-code');
const linkHide = document.querySelector('#hide-setup-code');
const setupCode = document.querySelector('#setup-code');
linkShow.addEventListener('click', function(ev) {
ev.preventDefault();
setupCode.style.display = 'block';
linkShow.style.display = 'none';
linkHide.style.display = 'block';
window.scrollTo(0, document.body.scrollHeight);
});
linkHide.addEventListener('click', function(ev) {
ev.preventDefault();
const el = document.querySelector('#setup-code');
setupCode.style.display = 'none';
linkShow.style.display = 'block';
linkHide.style.display = 'none';
});
</script>

View File

@ -1,7 +1,6 @@
require 'sidekiq/web'
Rails.application.routes.draw do
resources :donations
devise_for :users
get 'welcome', to: 'welcome#index'
@ -18,6 +17,10 @@ Rails.application.routes.draw do
resources :invitations, only: ['index', 'show', 'create', 'destroy']
resources :donations
get 'wallet', to: 'wallet#index'
namespace :admin do
root to: 'dashboard#index'
get 'invitations', to: 'invitations#index'

View File

@ -0,0 +1,15 @@
require 'rails_helper'
# Specs in this file have access to a helper object that includes
# the WalletHelper. For example:
#
# describe WalletHelper do
# describe "string concat" do
# it "concats two strings with spaces" do
# expect(helper.concat_strings("this","that")).to eq("this that")
# end
# end
# end
RSpec.describe WalletHelper, type: :helper do
pending "add some examples to (or delete) #{__FILE__}"
end

View File

@ -0,0 +1,7 @@
require 'rails_helper'
RSpec.describe "Wallets", type: :request do
describe "GET /index" do
pending "add some examples (or delete) #{__FILE__}"
end
end