[BREAKGLASS] Push notification service for Bitcoin wallets
https://bluewallet.io
Snyk has created this PR to upgrade typescript from 4.5.2 to 4.5.3. See this package in npm: https://www.npmjs.com/package/typescript See this project in Snyk: https://app.snyk.io/org/bluewallet/project/ed70334c-c069-4cb5-83a7-8d8cd16c0921?utm_source=github&utm_medium=referral&page=upgrade-pr |
||
|---|---|---|
| src | ||
| .gitignore | ||
| .prettierignore | ||
| .prettierrc.json | ||
| bowie.txt | ||
| openapi.yaml | ||
| package-lock.json | ||
| package.json | ||
| Procfile | ||
| README.md | ||
| tsconfig.json | ||
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 install -g dtsgenerator
dtsgen openapi.yaml > src/openapi/api.ts
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_URLfor examplemysql://username:password@host:port/databaseFCM_SERVER_KEYhex encodedAPNS_PEMhex encodedBITCOIN_RPCfor examplehttp://username:password@host:8332APNS_TOPICfor exampleio.bluewallet.bluewallet
Getting certificates
https://dev.to/jakubkoci/react-native-push-notifications-313i
Re-issue Apple certificate when it expires (yearly)
- create certificate signing request https://help.apple.com/developer-account/#/devbfa00fef7
- create certificate & export to p12 https://help.apple.com/developer-account/#/dev82a71386a
- convert .p12 to .pem
openssl pkcs12 -in push_certificates.p12 -out push_certificates.pem -nodes - get pem hex
xxd -p push_certificates.pem | tr -d '\n' - replace
APNS_PEMenvironment variable on production (don't forget to restart)
License
MIT