WalshyDev

BTC Ticker Cloudflare Worker

Feb 8th, 2021 (edited)
1,418
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. addEventListener('fetch', event => {
  2.   event.respondWith(handleRequest(event.request))
  3. })
  4.  
  5. addEventListener('scheduled', event => {
  6.   event.waitUntil(handleCronTrigger())
  7. })
  8.  
  9. async function handleRequest(request) {
  10.   const data = await KV.get('info');
  11.  
  12.   return new Response(data, {
  13.     status: 200,
  14.     headers: {
  15.       'Content-Type': 'application/json'
  16.     }
  17.   })
  18. }
  19.  
  20. function handleCronTrigger() {
  21.   return new Promise(async (resolved, rejected) => {
  22.     const res = await fetch('https://api.kraken.com/0/public/Ticker?pair=BTCUSD')
  23.     const data = await res.json()
  24.  
  25.     const ticker = data.result.XXBTZUSD
  26.  
  27.     await KV.put('info', JSON.stringify({
  28.       // Last ask price
  29.       ask: ticker.a[0],
  30.       // Last bid price
  31.       bid: ticker.b[0],
  32.       // Last trade closed
  33.       lastTrade: ticker.c[0],
  34.       // Volume traded in the last 24 houurs
  35.       volume: ticker.v[1],
  36.       // 24 hour low
  37.       low: ticker.l[1],
  38.       // 24 hour high
  39.       high: ticker.h[1],
  40.       // Open price
  41.       open: ticker.o
  42.     }))
  43.  
  44.     resolved()
  45.   })
  46. }
Add Comment
Please, Sign In to add comment