Class: Lightning

Inherits:
Base
  • Object
show all
Defined in:
lib/bitnob/objects/lightning.rb

Overview

  • Making Payments Via Lightning

Instance Attribute Summary

Attributes inherited from Base

#production, #secret_key, #url

Instance Method Summary collapse

Methods inherited from Base

#base_url, #check_parameters, #get_request, #initialize, #post_request, #put_request

Constructor Details

This class inherits a constructor from Base

Instance Method Details

#create_invoice(data) ⇒ Object

Create Lightning invoice

  • Required Function Parameters:

       data: {
    description: string,
    customerEmail: string,
    tokens: number,
    expires_at: string
     }
    


19
20
21
22
23
24
25
26
# File 'lib/bitnob/objects/lightning.rb', line 19

def create_invoice(data)
  required_parameters = %w[description customerEmail tokens expires_at]

  check_passed_parameters(required_parameters, data)
  payload = data.to_json

  post_request("#{base_url}#{BaseEndpoints::LN}/createinvoice", payload)
end

#decode_payment_request(request) ⇒ Object

Decode a BOLT 11 compliant payment request

  • Required Function Parameters:

    request: string
    


67
68
69
70
71
72
# File 'lib/bitnob/objects/lightning.rb', line 67

def decode_payment_request(request)
  body = { request: request }
  payload = body.to_json

  post_request("#{base_url}#{BaseEndpoints::LN}/decodepaymentrequest", payload)
end

#get_invoice(invoice_id) ⇒ Object

Getting Lightning invoice data

  • Required Function Parameters:

    invoice_id: string
    


80
81
82
83
84
85
# File 'lib/bitnob/objects/lightning.rb', line 80

def get_invoice(invoice_id)
  body = { id: invoice_id }
  payload = body.to_json

  post_request("#{base_url}#{BaseEndpoints::LN}/getinvoice", payload)
end

#initiate_payment(request) ⇒ Object

Initiate payment is advised to be run before paying an invoice to calculate fees and check if an invoice has expired.

  • Required Function Parameters:

    request: string
    


54
55
56
57
58
59
# File 'lib/bitnob/objects/lightning.rb', line 54

def initiate_payment(request)
  body = { request: request }
  payload = body.to_json

  post_request("#{base_url}#{BaseEndpoints::LN}/initiatepayment", payload)
end

#ln_pay(data) ⇒ Object

  • Ln Pay

  • Required Function Parameters

data: {
     request: "string",
     reference: "string",
     customerEmail: "string",
     description: "string"
     }


97
98
99
100
# File 'lib/bitnob/objects/lightning.rb', line 97

def ln_pay(data)
  payload = data.to_json
  post_request("#{base_url}#{BaseEndpoints::LN}/pay", payload)
end

#pay_invoice(data) ⇒ Object

Pay Lightning invoice

  • Required Function Parameters:

       data: {
    description: string,
    customerEmail: string,
    request: string,
     }
    


39
40
41
42
43
44
45
46
# File 'lib/bitnob/objects/lightning.rb', line 39

def pay_invoice(data)
  required_parameters = %w[request customerEmail description]

  check_passed_parameters(required_parameters, data)
  payload = data.to_json

  post_request("#{base_url}#{BaseEndpoints::LN}/pay", payload)
end

#probe_for_route(data) ⇒ Object

  • Probe For Route

  • Required Function Parameters

data: {
     destination: "string",
     tokens: "string",
     total_mtokens: 0,
     payment: "string"
     }


112
113
114
115
# File 'lib/bitnob/objects/lightning.rb', line 112

def probe_for_route(data)
  payload = data.to_json
  post_request("#{base_url}#{BaseEndpoints::LN}/probeforroute", payload)
end

#probe_routeObject

  • Probe Route



119
120
121
122
# File 'lib/bitnob/objects/lightning.rb', line 119

def probe_route()
  payload= {}
  post_request("#{base_url}#{BaseEndpoints::LN}/proberoute", paylod.to_json)
end