[BREAKGLASS] Push notification service for Bitcoin wallets https://bluewallet.io
Go to file
2022-12-08 16:10:04 +00:00
.github/workflows REF: updated to use apple P8 instad of PEM; updated to use latest typeorm 2022-09-16 14:51:55 +00:00
scripts OPS: test script 2022-12-08 16:10:04 +00:00
src REF: use other lib to codegen openapi ts code 2022-09-21 20:50:20 +00:00
.gitignore init 2020-07-12 22:08:18 +01:00
.prettierignore prettier 2020-07-14 13:10:14 +01:00
.prettierrc.json REF; DOC 2020-07-29 13:07:19 +01:00
bowie.txt REF: better error handling of apple push server 2021-08-13 12:36:42 +01:00
openapi.yaml REF: use other lib to codegen openapi ts code 2022-09-21 20:50:20 +00:00
package-lock.json fix: upgrade body-parser from 1.20.0 to 1.20.1 2022-10-29 08:59:16 +00:00
package.json fix: upgrade body-parser from 1.20.0 to 1.20.1 2022-10-29 08:59:16 +00:00
Procfile ADD: mempool processor & push notifications 2020-07-18 20:30:02 +01:00
README.md REF: use other lib to codegen openapi ts code 2022-09-21 20:50:20 +00:00
tsconfig.json Adapt code to work with typeorm 0.3. 2022-08-10 12:44:41 +01:00

Ground Control

///::---......```````````````````````````````` ``````````````````````````````````````...............
::::---.....```````````````````````````````` .-.-`-```..```````````````````````````````.............
:::---....````````````````````````.-.``--```.///////:/+/:/---....``````````````````````.............
::---....``````````````````````````://::/:..//////////+++++++++++:--..``````````````````............
:---...````````````````````````.///////////////////////+++++++++++ooo+:-```````````````````.........
---...``````````````````````.-////////////////////////+//+++++++++oooo/-.```````````````````........
--...````````````````````.-////////////////////////////+/++++++++oooooo++/.````````````````````.....
-...````````````````````-:/+//////////////////////////+++++++++++oooooooooo:````````````````````....
...````````````````````:++++///////////////////////////++++++++++ooooooooooo+-```````````````````...
..```````````````````-/+++++//////////////////////////+++++++++++ooooooooooooo:````````````````````.
.``````````````````./+++++++//////////////////////////+++++++++++oooooooooooooo/````````````````````
.`````````````````./+++++++++++////////////////////////+++++++++++oooooooooooooo.``````````````````.
``````````````````.+++++++++++/////////////////////////++++++++++++ooooooooooooo-```````````````````
```````````````````-++++++++++//////////////////////////++++++++++++oooooooooooo/```````````````````
````````````````````/++++//++//////////////////////////////://++/-++oooooooooooo:```````````````````
````````````````````-/+//////////////////////////////////:-.`../..++oooooooooooo-```````````````````
`````````````````````//+///////////::::::::::://///////////-.`````/++ooooooooooo:```````````````````
``````````````````  `:////////:-.````````````.://////////+++///:-``-://+oooooooo:```````````````````
``````````````````   -/////:.``            `-////////////+++++:-``````:+oooooooo-```````````````````
```````````````````  :++/:``             `-//////////////++/:.````````.+oooooooo.```````````````````
```````````````````` .++/.              .:////////////////-``   ```````.++ooooo+````````````````````
`````````````````````.++/`            `-///////////////:.`      ````````-+ooooo/````````````````````
`````````````````````.++:            `://////////////:.`         ````````/++ooo:````````````````````
`````````````````````.++-           `://///////////-.`            ```````-+++oo-````````````````````
`````````````````````-++.          `/////////////:`               ```````.+++oo.````````````````````
`````````````````````:++.         `:////////////.`  ````           ```````+++oo.````````````````````
`````````````````````/o+.``       `--:////////:``.--.````````      ```````++++o-````````````````````
`````````````````````/oo.```  `...:-::.-://///-://-``--:::://:-.` ````````++++o:````````````````````
`````````````````````/oo-`````.-``-.-:```://////-` `.`````--:/:::. ``````.++++o-````````````````````
`````````````````````:oo:``````---.--.-:://///:`      `````----:-` ``````-+++++`````````````````````
`````````````````````:oo+```````:++/:-://////-`         ``...-.``  ``````/+++++.````````````````````
``````````````````````:+o-`````:+/-``-//////.                     ```````+++++/`````````````````````
```````````````````````:+/````-:.` `-++++//.                      ``````.//+/+:`````````````````````
````````````````````````.+:````````-+++++:`                       `````````.::``````````````````````
`````````````````````````.:.``````.++++/-`                     `````````````/.``````````````````````
```````````````````````````:``````/+++/.   ..    .:.       ````````````````:/```````````````````````
```````````````````````````/`````.+++:`    ``    ```    `````````````````.:+-```````````````````````
```````````````````````````/-````/++-```             ````````````````-//++++````````````````````````
```````````````````````````/-````+o:````           `````````````````.++++++/````````````````````````
```````````````````````````/:```.++```````.--.``..``````````````````/+o++++:````````````````````````
```````````````````````````//```.o:````.://///:::/:::-.````````````-+++++++/````````````````````````
```````````````````````````+o-``-o-````..``.......````````````````-/+ooooo++````````````````````````
``````````````````````````-oo+.`:o.`````....`````````````````````::.+ooooo++.```````````````````````
`````````````````````````.+ooo+.:+.`````````......`````````````.:-``+ooooo+:-```````````````````````
`````````````````````````/ooooo-/+````````````````````````````--```.+oooooo/````````````````````````
````````````````````````/oooooo./+`````````````````````````````````.oooooo/+````````````````````````
```````````````````````:ooo++o+`/+`````````````````````````````````.oooo+/:`````````````````````````
``````````````````````.:+/:-//-`++`````````````````````````````````.oooo-`.`````````````````````````
....````````````````````````.```+/``````````````````````````````````+oo:````````````````````````````
.....``````````````````````````.+/``````````````````````````````````:+-`````````````````````````````
......`````````````````````````.+:````````````````````````````````````````````````````````````````..
.........``````````````````````-+:``````````````````````````````````````````````````````````````....
...........````````````````````-o-`````````````````````````````````````````````````````````````.....
.............``````````````````:o-```````````````````````````````````````````````````````````.......
...............````````````````:o-`````````````````````````````````````````````````````````.........
................```````````````/o.```````````````````````````````````````````````````````...........
....................``..```````/+.``````````````````````````````````````````````````.`..............
...........................````:/``````````````````````````````````````.``..........................
.............................`.//````````````````````````````````````...............................
----..........................`..``````````````````````````````.....................................

Can you hear me, Major Tom?

Push notifications server for bitcoin wallets. Processes blocks & mempool in search of subscribed onchain addresses. Built with typescript, expressjs, mariadb & openapi.

In memory of David Bowie

Installation

npm i
npm start
npm run worker-blockprocessor
npm run worker-processmempool
npm run worker-sender

Works well on Heroku (you'll need JawsDB Maria addon)

Environment variables

Set them as env variables or put them into .env file in project root dir.

  • JAWSDB_MARIA_URL for example mysql://username:password@host:port/database
  • FCM_SERVER_KEY hex encoded
  • APNS_P8 hex encoded
  • APNS_P8_KID issuer key which is "key ID" of your p8 file
  • APPLE_TEAM_ID "team ID" of your developer account
  • BITCOIN_RPC for example http://username:password@host:8332
  • APNS_TOPIC for example io.bluewallet.bluewallet

Getting certificates

License

MIT