40 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| export * from 'wallets/phoenixd'
 | |
| 
 | |
| export async function testSendPayment (config, { logger }) {
 | |
|   // TODO:
 | |
|   //   Not sure which endpoint to call to test primary password
 | |
|   //   see https://phoenix.acinq.co/server/api
 | |
|   //   Maybe just wait until test payments with HODL invoices?
 | |
| 
 | |
| }
 | |
| 
 | |
| export async function sendPayment (bolt11, { url, primaryPassword }) {
 | |
|   // https://phoenix.acinq.co/server/api#pay-bolt11-invoice
 | |
|   const path = '/payinvoice'
 | |
| 
 | |
|   const headers = new Headers()
 | |
|   headers.set('Authorization', 'Basic ' + Buffer.from(':' + primaryPassword).toString('base64'))
 | |
|   headers.set('Content-type', 'application/x-www-form-urlencoded')
 | |
| 
 | |
|   const body = new URLSearchParams()
 | |
|   body.append('invoice', bolt11)
 | |
| 
 | |
|   const res = await fetch(url + path, {
 | |
|     method: 'POST',
 | |
|     headers,
 | |
|     body
 | |
|   })
 | |
|   if (!res.ok) {
 | |
|     const error = await res.text()
 | |
|     throw new Error(error)
 | |
|   }
 | |
| 
 | |
|   const payment = await res.json()
 | |
|   const preimage = payment.paymentPreimage
 | |
|   if (!preimage) {
 | |
|     throw new Error(payment.reason)
 | |
|   }
 | |
| 
 | |
|   return preimage
 | |
| }
 |