1
1
import Base64 from "crypto-js/enc-base64" ;
2
2
import UTF8 from "crypto-js/enc-utf8" ;
3
3
import Base from "./base" ;
4
+ import Connector , {
5
+ SendPaymentArgs ,
6
+ SendPaymentResponse ,
7
+ GetInfoResponse ,
8
+ GetBalanceResponse ,
9
+ MakeInvoiceArgs ,
10
+ MakeInvoiceResponse ,
11
+ SignMessageArgs ,
12
+ SignMessageResponse ,
13
+ VerifyMessageArgs ,
14
+ VerifyMessageResponse ,
15
+ } from "./connector.interface" ;
4
16
5
- class Lnd extends Base {
6
- getInfo ( ) {
17
+ class Lnd extends Base implements Connector {
18
+ getInfo ( ) : Promise < GetInfoResponse > {
7
19
return this . request ( "GET" , "/v1/getinfo" , undefined , { } ) . then ( ( res ) => {
8
20
return {
9
21
data : {
@@ -15,11 +27,11 @@ class Lnd extends Base {
15
27
} ) ;
16
28
}
17
29
18
- getBalance ( ) {
30
+ getBalance ( ) : Promise < GetBalanceResponse > {
19
31
return this . getChannelsBalance ( ) ;
20
32
}
21
33
22
- sendPayment ( args ) {
34
+ sendPayment ( args : SendPaymentArgs ) : Promise < SendPaymentResponse > {
23
35
return this . request (
24
36
"POST" ,
25
37
"/v1/channels/transactions" ,
@@ -41,7 +53,7 @@ class Lnd extends Base {
41
53
} ) ;
42
54
}
43
55
44
- signMessage ( args ) {
56
+ signMessage ( args : SignMessageArgs ) : Promise < SignMessageResponse > {
45
57
// use v2 to use the key locator (key_loc)
46
58
// return this.request("POST", "/v2/signer/signmessage", {
47
59
return this . request ( "POST" , "/v1/signmessage" , {
@@ -56,7 +68,7 @@ class Lnd extends Base {
56
68
} ) ;
57
69
}
58
70
59
- verifyMessage ( args ) {
71
+ verifyMessage ( args : VerifyMessageArgs ) : Promise < VerifyMessageResponse > {
60
72
return this . request ( "POST" , "/v1/verifymessage" , {
61
73
msg : Base64 . stringify ( UTF8 . parse ( args . message ) ) ,
62
74
signature : args . signature ,
@@ -69,7 +81,7 @@ class Lnd extends Base {
69
81
} ) ;
70
82
}
71
83
72
- makeInvoice ( args ) {
84
+ makeInvoice ( args : MakeInvoiceArgs ) : Promise < MakeInvoiceResponse > {
73
85
return this . request ( "POST" , "/v1/invoices" , {
74
86
memo : args . memo ,
75
87
value : args . amount ,
@@ -115,7 +127,7 @@ class Lnd extends Base {
115
127
} ) ;
116
128
} ;
117
129
118
- async request ( method , path , args , defaultValues ) {
130
+ async request ( method : string , path : string , args : any , defaultValues ?: any ) {
119
131
let body = null ;
120
132
let query = "" ;
121
133
const headers = new Headers ( ) ;
@@ -143,10 +155,7 @@ class Lnd extends Base {
143
155
throw new Error ( ) ;
144
156
}
145
157
} catch ( err ) {
146
- throw new Error ( {
147
- statusText : res . statusText ,
148
- status : res . status ,
149
- } ) ;
158
+ throw new Error ( res . statusText ) ;
150
159
}
151
160
console . log ( "errBody" , errBody ) ;
152
161
throw errBody ;
@@ -156,7 +165,7 @@ class Lnd extends Base {
156
165
data = Object . assign ( Object . assign ( { } , defaultValues ) , data ) ;
157
166
}
158
167
return { data } ;
159
- } catch ( err ) {
168
+ } catch ( err : any ) {
160
169
console . error ( `API error calling ${ method } ${ path } ` , err ) ;
161
170
// Thrown errors must be JSON serializable, so include metadata if possible
162
171
if ( err . code || err . status || ! err . message ) {
0 commit comments