mirror of
				https://github.com/bumi/lnrpc
				synced 2025-10-31 16:45:46 +00:00 
			
		
		
		
	Add PaymentResponse wrapper
This is an experimental wrapper around the send_payment shortcut calls. The goal is to provide a simple interface to check if the payment was successful.
This commit is contained in:
		
							parent
							
								
									f31a499e49
								
							
						
					
					
						commit
						9b1499616d
					
				| @ -11,6 +11,7 @@ module Lnrpc | ||||
|   class Error < StandardError; end | ||||
|   autoload :Client, 'lnrpc/client' | ||||
|   autoload :GrpcWrapper, 'lnrpc/grpc_wrapper' | ||||
|   autoload :PaymentResponse, 'lnrpc/payment_response' | ||||
|   autoload :MacaroonInterceptor, 'lnrpc/macaroon_interceptor' | ||||
| 
 | ||||
|   PREIMAGE_BYTE_LENGTH = 32 | ||||
|  | ||||
| @ -75,12 +75,12 @@ module Lnrpc | ||||
|       args[:dest_custom_records][Lnrpc::KEY_SEND_PREIMAGE_TYPE] ||= Lnrpc.create_preimage | ||||
|       args[:payment_hash] ||= Digest::SHA256.digest(args[:dest_custom_records][Lnrpc::KEY_SEND_PREIMAGE_TYPE]) | ||||
|       args[:timeout_seconds] ||= 60 | ||||
|       router.send_payment_v2(args) | ||||
|       PaymentResponse.new(router.send_payment_v2(args)) | ||||
|     end | ||||
| 
 | ||||
|     def pay(args) | ||||
|       args[:timeout_seconds] ||= 60 | ||||
|       router.send_payment_v2(args) | ||||
|       PaymentResponse.new(router.send_payment_v2(args)) | ||||
|     end | ||||
| 
 | ||||
|     def inspect | ||||
|  | ||||
							
								
								
									
										30
									
								
								lib/lnrpc/payment_response.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								lib/lnrpc/payment_response.rb
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,30 @@ | ||||
| module Lnrpc | ||||
|   class PaymentResponse | ||||
|     attr_reader :grpc_response, :exception | ||||
| 
 | ||||
|     def initialize(send_payment_response) | ||||
|       @grpc_response = send_payment_response | ||||
|     end | ||||
| 
 | ||||
|     def states | ||||
|       @states ||= response_array.map(&:status) | ||||
|     end | ||||
| 
 | ||||
|     def success? | ||||
|       return false if exception | ||||
| 
 | ||||
|       @success ||= states.include?(:SUCCEEDED) | ||||
|     end | ||||
| 
 | ||||
|     def fee | ||||
|       @fee ||= response_array.sum(&:fee) | ||||
|     end | ||||
| 
 | ||||
|     def response_array | ||||
|       @response_array ||= @grpc_response.to_a | ||||
|     rescue GRPC::BadStatus => e | ||||
|       @exception = e | ||||
|       [] | ||||
|     end | ||||
|   end | ||||
| end | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user