28 lines
702 B
JavaScript
28 lines
702 B
JavaScript
import { isServiceEnabled } from '@/lib/sndev'
|
|
import { cachedFetcher } from '@/lib/fetch'
|
|
import { getHeight } from 'ln-service'
|
|
|
|
const getBlockHeight = cachedFetcher(async function fetchBlockHeight ({ lnd }) {
|
|
try {
|
|
const { current_block_height: height } = await getHeight({ lnd })
|
|
return height
|
|
} catch (err) {
|
|
console.error('getBlockHeight', err)
|
|
return 0
|
|
}
|
|
}, {
|
|
maxSize: 1,
|
|
cacheExpiry: 60 * 1000, // 1 minute
|
|
forceRefreshThreshold: 0,
|
|
keyGenerator: () => 'getBlockHeight'
|
|
})
|
|
|
|
export default {
|
|
Query: {
|
|
blockHeight: async (parent, opts, { lnd }) => {
|
|
if (!isServiceEnabled('payments')) return 0
|
|
return await getBlockHeight({ lnd }) || 0
|
|
}
|
|
}
|
|
}
|