Merge branch 'main' into the-federation-layer-v0.6.0

This commit is contained in:
Reckless_Satoshi 2024-01-15 00:56:55 +00:00 committed by GitHub
commit 043b690089
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 130 additions and 232 deletions

View File

@ -6,19 +6,23 @@ date: 2023-12-31 01:01:01 -0500
categories: robosats update
---
**Note** Note this is a very early release, so expect to find bugs! If you find a bug that is stopping you from continuing your order, recover your robot in a v0.5.3 client and continue as usual.
**Note** this is a very early release, so expect to find bugs! If you find a bug that is stopping you from continuing your order, recover your robot in the v0.5.3 client of your coordinator and continue the trade as usual.
{: .notice--primary}
We are thrilled to announce the launch for testing the new version of RoboSats v0.6.0. This is the biggest ever upgrade to RoboSats. We have, figuratively, lifted the house and built a basement below it :)
We are thrilled to announce the launch for testing of the new version of RoboSats v0.6.0. This is the biggest ever upgrade to RoboSats. We have, figuratively, lifted the house and built a basement below it :)
This new version introduces a significant enhancement known as the **RoboSats Federation**, that effectively fully decentralizes RoboSats into many independent and fully redundant coordinators that will compete to host your orders.
**Caution, READ!** Prior to hosting your order with a new coordinator, ensure you trust the RoboSats coordinator you select. A malicious p2p coordinator can potentially steal from you!
{: .notice--secondary}
## How to test the pre-release?
The new federated client will now be permanently available in http://robodexarjwtfryec556cjdz3dfa7u47saek6lkftnkgshvgg2kcumqd.onion
(visit with Tor Browser) and http://dex.robosats.com (with extremely limited functionality). Once stable, it will be released as version v0.6.0 and you will be able to install it as usual on your node (e.g., [Umbrel](https://apps.umbrel.com/app/robosats), [StartOS](https://github.com/RoboSats/robosats-startos/releases), etc).
## What is RoboSats Federation?
The RoboSats Federation is a set of rules that allows multiple RoboSats instances to work together under a unified client app. This federated client app enables users to seamlessly interact with any coordinator, track the coordinator reputation, verify transparently devFund donations, and more. The aim is to improve RoboSats robustness while keeping complexity down and providing robots a experience as close as possible to the app they are used to.
The RoboSats Federation is a set of rules that allows multiple RoboSats instances to work together under a unified client app. This federated client app enables users to seamlessly interact with any coordinator, track the coordinator reputation, verify transparently devFund donations, and more. The aim is to improve RoboSats robustness while keeping complexity down for the user, providing robots a experience as close as possible to the app they are used to.
## Key Features of the New Version
### Multiple Coordinators
@ -45,14 +49,14 @@ There is currently 4 registered coordinators:
- [Satstralia](https://satstralia.com)
- TheBigLake
If you want to help testing the new client without experimenting with novel coordinators you should pick the "Experimental" coordinator. Experimental is the same infrastructure you have been using so far in the non-decentralized client.
If you want to help testing the new client without experimenting with novel coordinators you should pick the "Experimental" coordinator. Experimental is the same coordinator infrastructure you have been using so far in the non-decentralized client.
**They are also learning,** just like you. The RoboSats federation is new for everyone, so keep in mind some coordinators do not yet have much experience hosting trades. It is a learning experience for everyone.
{: .notice--primary}
### DevFund Revenue
One of the challenges with decentralized instances is the detachment of operations and code development. Maintaining and implementing new features into the codebase is only be supported by donations. The RoboSats Federation addresses this issue by allowing coordinators to voluntarily stream Sats to the RoboSats Development fund, ensuring continued development and maintenance. Coordinators can freely opt to not donate Sats for development. Coordinators that donate part of their revenue for development have some advantages such as, their orders are better positioned in the Order book and better support from the developers in case help is needed.
Maintaining and implementing new features into the codebase is only supported by donations. The RoboSats Federation addresses this issue by allowing coordinators to voluntarily stream Sats to the RoboSats Development fund, ensuring continued development and maintenance. Coordinators can freely opt to not donate Sats for development. Coordinators that donate part of their revenue for development have some advantages such as, their orders are better positioned in the Order book and better support from the developers in case help is needed.
### Other improvements

View File

@ -33,7 +33,7 @@
"js-sha256": "^0.10.1",
"leaflet": "^1.9.4",
"light-bolt11-decoder": "^3.0.0",
"npm": "^10.2.5",
"npm": "^10.3.0",
"openpgp": "^5.11.0",
"react": "^18.2.0",
"react-countdown": "^2.3.5",
@ -43,7 +43,7 @@
"react-image": "^4.1.0",
"react-leaflet": "^4.2.1",
"react-qr-code": "^2.0.11",
"react-router-dom": "^6.21.1",
"react-router-dom": "^6.21.2",
"react-smooth-image": "^1.1.0",
"react-world-flags": "^1.6.0",
"reconnecting-websocket": "^4.4.0",
@ -67,13 +67,13 @@
"@typescript-eslint/eslint-plugin": "^5.35.1",
"@typescript-eslint/parser": "^5.35.1",
"babel-loader": "^9.1.3",
"copy-webpack-plugin": "^11.0.0",
"copy-webpack-plugin": "^12.0.1",
"eslint": "^8.45.0",
"eslint-config-prettier": "^9.1.0",
"eslint-config-standard-with-typescript": "^36.1.0",
"eslint-import-resolver-typescript": "^3.6.0",
"eslint-plugin-import": "^2.27.5",
"eslint-plugin-n": "^16.6.1",
"eslint-plugin-n": "^16.6.2",
"eslint-plugin-prettier": "^5.1.2",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-react": "^7.32.2",
@ -3879,9 +3879,9 @@
}
},
"node_modules/@remix-run/router": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.14.1.tgz",
"integrity": "sha512-Qg4DMQsfPNAs88rb2xkdk03N3bjK4jgX5fR24eHCTR9q6PrhZQZ4UJBPzCHJkIpTRN1UKxx2DzjZmnC+7Lj0Ow==",
"version": "1.14.2",
"resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.14.2.tgz",
"integrity": "sha512-ACXpdMM9hmKZww21yEqWwiLws/UPLhNKvimN8RrYSqPSvB3ov7sLvAcfvaxePeLvccTQKGdkDIhLYApZVDFuKg==",
"engines": {
"node": ">=14.0.0"
}
@ -3903,6 +3903,18 @@
"integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==",
"dev": true
},
"node_modules/@sindresorhus/merge-streams": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-1.0.0.tgz",
"integrity": "sha512-rUV5WyJrJLoloD4NDN1V1+LDMDWOa4OTsT4yYJwQNpTU6FWxkxHpL7eu4w+DmiH8x/EAM1otkPE1+LaspIbplw==",
"dev": true,
"engines": {
"node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/@sinonjs/commons": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz",
@ -5703,20 +5715,20 @@
"integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A=="
},
"node_modules/copy-webpack-plugin": {
"version": "11.0.0",
"resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz",
"integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==",
"version": "12.0.1",
"resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-12.0.1.tgz",
"integrity": "sha512-dhMfjJMYKDmmbG6Yn2pRSs1g8FgeQRtbE/JM6VAM9Xouk3KO1UVrwlLHLXxaI5F+o9WgnRfhFZzY9eV34O2gZQ==",
"dev": true,
"dependencies": {
"fast-glob": "^3.2.11",
"fast-glob": "^3.3.2",
"glob-parent": "^6.0.1",
"globby": "^13.1.1",
"globby": "^14.0.0",
"normalize-path": "^3.0.0",
"schema-utils": "^4.0.0",
"serialize-javascript": "^6.0.0"
"schema-utils": "^4.2.0",
"serialize-javascript": "^6.0.2"
},
"engines": {
"node": ">= 14.15.0"
"node": ">= 18.12.0"
},
"funding": {
"type": "opencollective",
@ -5727,31 +5739,44 @@
}
},
"node_modules/copy-webpack-plugin/node_modules/globby": {
"version": "13.2.2",
"resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz",
"integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==",
"version": "14.0.0",
"resolved": "https://registry.npmjs.org/globby/-/globby-14.0.0.tgz",
"integrity": "sha512-/1WM/LNHRAOH9lZta77uGbq0dAEQM+XjNesWwhlERDVenqothRbnzTrL3/LrIoEPPjeUHC3vrS6TwoyxeHs7MQ==",
"dev": true,
"dependencies": {
"dir-glob": "^3.0.1",
"fast-glob": "^3.3.0",
"@sindresorhus/merge-streams": "^1.0.0",
"fast-glob": "^3.3.2",
"ignore": "^5.2.4",
"merge2": "^1.4.1",
"slash": "^4.0.0"
"path-type": "^5.0.0",
"slash": "^5.1.0",
"unicorn-magic": "^0.1.0"
},
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
"node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/copy-webpack-plugin/node_modules/path-type": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz",
"integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==",
"dev": true,
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/copy-webpack-plugin/node_modules/slash": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz",
"integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==",
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz",
"integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==",
"dev": true,
"engines": {
"node": ">=12"
"node": ">=14.16"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@ -6679,9 +6704,9 @@
}
},
"node_modules/eslint-plugin-n": {
"version": "16.6.1",
"resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-16.6.1.tgz",
"integrity": "sha512-M1kE5bVQRLBMDYRZwDhWzlzbp370SRRRC1MHqq4I3L2Tatey+9/2csc5mwLDPlmhJaDvkojbrNUME5/llpRyDg==",
"version": "16.6.2",
"resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-16.6.2.tgz",
"integrity": "sha512-6TyDmZ1HXoFQXnhCTUjVFULReoBPOAjpuiKELMkeP40yffI/1ZRO+d9ug/VC6fqISo2WkuIBk3cvuRPALaWlOQ==",
"dev": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.4.0",
@ -7185,9 +7210,9 @@
"integrity": "sha512-G3BSX9cfKttjr+2o1O22tYMLq0DPluZnYtq1rXumE1SpL/F/SLIfHx08WYQoWSIpeMYf8sRbJ8++71+v6Pnxfg=="
},
"node_modules/fast-glob": {
"version": "3.3.1",
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz",
"integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==",
"version": "3.3.2",
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
"integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
"dev": true,
"dependencies": {
"@nodelib/fs.stat": "^2.0.2",
@ -10335,9 +10360,9 @@
}
},
"node_modules/npm": {
"version": "10.2.5",
"resolved": "https://registry.npmjs.org/npm/-/npm-10.2.5.tgz",
"integrity": "sha512-lXdZ7titEN8CH5YJk9C/aYRU9JeDxQ4d8rwIIDsvH3SMjLjHTukB2CFstMiB30zXs4vCrPN2WH6cDq1yHBeJAw==",
"version": "10.3.0",
"resolved": "https://registry.npmjs.org/npm/-/npm-10.3.0.tgz",
"integrity": "sha512-9u5GFc1UqI2DLlGI7QdjkpIaBs3UhTtY8KoCqYJK24gV/j/tByaI4BA4R7RkOc+ASqZMzFPKt4Pj2Z8JcGo//A==",
"bundleDependencies": [
"@isaacs/string-locale-compare",
"@npmcli/arborist",
@ -10418,12 +10443,12 @@
"@npmcli/fs": "^3.1.0",
"@npmcli/map-workspaces": "^3.0.4",
"@npmcli/package-json": "^5.0.0",
"@npmcli/promise-spawn": "^7.0.0",
"@npmcli/run-script": "^7.0.2",
"@npmcli/promise-spawn": "^7.0.1",
"@npmcli/run-script": "^7.0.3",
"@sigstore/tuf": "^2.2.0",
"abbrev": "^2.0.0",
"archy": "~1.0.0",
"cacache": "^18.0.1",
"cacache": "^18.0.2",
"chalk": "^5.3.0",
"ci-info": "^4.0.0",
"cli-columns": "^4.0.0",
@ -10571,7 +10596,7 @@
}
},
"node_modules/npm/node_modules/@npmcli/arborist": {
"version": "7.2.2",
"version": "7.3.0",
"inBundle": true,
"license": "ISC",
"dependencies": {
@ -10617,7 +10642,7 @@
}
},
"node_modules/npm/node_modules/@npmcli/config": {
"version": "8.0.3",
"version": "8.1.0",
"inBundle": true,
"license": "ISC",
"dependencies": {
@ -10671,7 +10696,7 @@
}
},
"node_modules/npm/node_modules/@npmcli/git": {
"version": "5.0.3",
"version": "5.0.4",
"inBundle": true,
"license": "ISC",
"dependencies": {
@ -10765,7 +10790,7 @@
}
},
"node_modules/npm/node_modules/@npmcli/promise-spawn": {
"version": "7.0.0",
"version": "7.0.1",
"inBundle": true,
"license": "ISC",
"dependencies": {
@ -10787,7 +10812,7 @@
}
},
"node_modules/npm/node_modules/@npmcli/run-script": {
"version": "7.0.2",
"version": "7.0.3",
"inBundle": true,
"license": "ISC",
"dependencies": {
@ -10882,17 +10907,6 @@
"node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
"node_modules/npm/node_modules/abort-controller": {
"version": "3.0.0",
"inBundle": true,
"license": "MIT",
"dependencies": {
"event-target-shim": "^5.0.0"
},
"engines": {
"node": ">=6.5"
}
},
"node_modules/npm/node_modules/agent-base": {
"version": "7.1.0",
"inBundle": true,
@ -10949,13 +10963,9 @@
"license": "MIT"
},
"node_modules/npm/node_modules/are-we-there-yet": {
"version": "4.0.1",
"version": "4.0.2",
"inBundle": true,
"license": "ISC",
"dependencies": {
"delegates": "^1.0.0",
"readable-stream": "^4.1.0"
},
"engines": {
"node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
@ -10965,25 +10975,6 @@
"inBundle": true,
"license": "MIT"
},
"node_modules/npm/node_modules/base64-js": {
"version": "1.5.1",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/feross"
},
{
"type": "patreon",
"url": "https://www.patreon.com/feross"
},
{
"type": "consulting",
"url": "https://feross.org/support"
}
],
"inBundle": true,
"license": "MIT"
},
"node_modules/npm/node_modules/bin-links": {
"version": "4.0.3",
"inBundle": true,
@ -11014,29 +11005,6 @@
"balanced-match": "^1.0.0"
}
},
"node_modules/npm/node_modules/buffer": {
"version": "6.0.3",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/feross"
},
{
"type": "patreon",
"url": "https://www.patreon.com/feross"
},
{
"type": "consulting",
"url": "https://feross.org/support"
}
],
"inBundle": true,
"license": "MIT",
"dependencies": {
"base64-js": "^1.3.1",
"ieee754": "^1.2.1"
}
},
"node_modules/npm/node_modules/builtins": {
"version": "5.0.1",
"inBundle": true,
@ -11046,7 +11014,7 @@
}
},
"node_modules/npm/node_modules/cacache": {
"version": "18.0.1",
"version": "18.0.2",
"inBundle": true,
"license": "ISC",
"dependencies": {
@ -11315,11 +11283,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/npm/node_modules/delegates": {
"version": "1.0.0",
"inBundle": true,
"license": "MIT"
},
"node_modules/npm/node_modules/diff": {
"version": "5.1.0",
"inBundle": true,
@ -11360,22 +11323,6 @@
"inBundle": true,
"license": "MIT"
},
"node_modules/npm/node_modules/event-target-shim": {
"version": "5.0.1",
"inBundle": true,
"license": "MIT",
"engines": {
"node": ">=6"
}
},
"node_modules/npm/node_modules/events": {
"version": "3.3.0",
"inBundle": true,
"license": "MIT",
"engines": {
"node": ">=0.8.x"
}
},
"node_modules/npm/node_modules/exponential-backoff": {
"version": "3.1.1",
"inBundle": true,
@ -11554,25 +11501,6 @@
"node": ">=0.10.0"
}
},
"node_modules/npm/node_modules/ieee754": {
"version": "1.2.1",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/feross"
},
{
"type": "patreon",
"url": "https://www.patreon.com/feross"
},
{
"type": "consulting",
"url": "https://feross.org/support"
}
],
"inBundle": true,
"license": "BSD-3-Clause"
},
"node_modules/npm/node_modules/ignore-walk": {
"version": "6.0.4",
"inBundle": true,
@ -11745,7 +11673,7 @@
}
},
"node_modules/npm/node_modules/libnpmdiff": {
"version": "6.0.4",
"version": "6.0.5",
"inBundle": true,
"license": "ISC",
"dependencies": {
@ -11764,7 +11692,7 @@
}
},
"node_modules/npm/node_modules/libnpmexec": {
"version": "7.0.5",
"version": "7.0.6",
"inBundle": true,
"license": "ISC",
"dependencies": {
@ -11785,7 +11713,7 @@
}
},
"node_modules/npm/node_modules/libnpmfund": {
"version": "5.0.2",
"version": "5.0.3",
"inBundle": true,
"license": "ISC",
"dependencies": {
@ -11820,7 +11748,7 @@
}
},
"node_modules/npm/node_modules/libnpmpack": {
"version": "6.0.4",
"version": "6.0.5",
"inBundle": true,
"license": "ISC",
"dependencies": {
@ -12212,7 +12140,7 @@
}
},
"node_modules/npm/node_modules/npm-packlist": {
"version": "8.0.1",
"version": "8.0.2",
"inBundle": true,
"license": "ISC",
"dependencies": {
@ -12369,7 +12297,7 @@
}
},
"node_modules/npm/node_modules/postcss-selector-parser": {
"version": "6.0.13",
"version": "6.0.15",
"inBundle": true,
"license": "MIT",
"dependencies": {
@ -12388,14 +12316,6 @@
"node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
"node_modules/npm/node_modules/process": {
"version": "0.11.10",
"inBundle": true,
"license": "MIT",
"engines": {
"node": ">= 0.6.0"
}
},
"node_modules/npm/node_modules/promise-all-reject-late": {
"version": "1.0.1",
"inBundle": true,
@ -12492,21 +12412,6 @@
"node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
"node_modules/npm/node_modules/readable-stream": {
"version": "4.4.2",
"inBundle": true,
"license": "MIT",
"dependencies": {
"abort-controller": "^3.0.0",
"buffer": "^6.0.3",
"events": "^3.3.0",
"process": "^0.11.10",
"string_decoder": "^1.3.0"
},
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
}
},
"node_modules/npm/node_modules/retry": {
"version": "0.12.0",
"inBundle": true,
@ -12515,25 +12420,6 @@
"node": ">= 4"
}
},
"node_modules/npm/node_modules/safe-buffer": {
"version": "5.2.1",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/feross"
},
{
"type": "patreon",
"url": "https://www.patreon.com/feross"
},
{
"type": "consulting",
"url": "https://feross.org/support"
}
],
"inBundle": true,
"license": "MIT"
},
"node_modules/npm/node_modules/safer-buffer": {
"version": "2.1.2",
"inBundle": true,
@ -12688,14 +12574,6 @@
"node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
"node_modules/npm/node_modules/string_decoder": {
"version": "1.3.0",
"inBundle": true,
"license": "MIT",
"dependencies": {
"safe-buffer": "~5.2.0"
}
},
"node_modules/npm/node_modules/string-width": {
"version": "4.2.3",
"inBundle": true,
@ -13830,11 +13708,11 @@
}
},
"node_modules/react-router": {
"version": "6.21.1",
"resolved": "https://registry.npmjs.org/react-router/-/react-router-6.21.1.tgz",
"integrity": "sha512-W0l13YlMTm1YrpVIOpjCADJqEUpz1vm+CMo47RuFX4Ftegwm6KOYsL5G3eiE52jnJpKvzm6uB/vTKTPKM8dmkA==",
"version": "6.21.2",
"resolved": "https://registry.npmjs.org/react-router/-/react-router-6.21.2.tgz",
"integrity": "sha512-jJcgiwDsnaHIeC+IN7atO0XiSRCrOsQAHHbChtJxmgqG2IaYQXSnhqGb5vk2CU/wBQA12Zt+TkbuJjIn65gzbA==",
"dependencies": {
"@remix-run/router": "1.14.1"
"@remix-run/router": "1.14.2"
},
"engines": {
"node": ">=14.0.0"
@ -13844,12 +13722,12 @@
}
},
"node_modules/react-router-dom": {
"version": "6.21.1",
"resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.21.1.tgz",
"integrity": "sha512-QCNrtjtDPwHDO+AO21MJd7yIcr41UetYt5jzaB9Y1UYaPTCnVuJq6S748g1dE11OQlCFIQg+RtAA1SEZIyiBeA==",
"version": "6.21.2",
"resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.21.2.tgz",
"integrity": "sha512-tE13UukgUOh2/sqYr6jPzZTzmzc70aGRP4pAjG2if0IP3aUT+sBtAKUJh0qMh0zylJHGLmzS+XWVaON4UklHeg==",
"dependencies": {
"@remix-run/router": "1.14.1",
"react-router": "6.21.1"
"@remix-run/router": "1.14.2",
"react-router": "6.21.2"
},
"engines": {
"node": ">=14.0.0"
@ -14288,9 +14166,9 @@
}
},
"node_modules/serialize-javascript": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz",
"integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==",
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz",
"integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==",
"dev": true,
"dependencies": {
"randombytes": "^2.1.0"
@ -15123,6 +15001,18 @@
"node": ">=4"
}
},
"node_modules/unicorn-magic": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz",
"integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==",
"dev": true,
"engines": {
"node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/update-browserslist-db": {
"version": "1.0.11",
"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz",

View File

@ -29,13 +29,13 @@
"@typescript-eslint/eslint-plugin": "^5.35.1",
"@typescript-eslint/parser": "^5.35.1",
"babel-loader": "^9.1.3",
"copy-webpack-plugin": "^11.0.0",
"copy-webpack-plugin": "^12.0.1",
"eslint": "^8.45.0",
"eslint-config-prettier": "^9.1.0",
"eslint-config-standard-with-typescript": "^36.1.0",
"eslint-import-resolver-typescript": "^3.6.0",
"eslint-plugin-import": "^2.27.5",
"eslint-plugin-n": "^16.6.1",
"eslint-plugin-n": "^16.6.2",
"eslint-plugin-prettier": "^5.1.2",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-react": "^7.32.2",
@ -72,7 +72,7 @@
"js-sha256": "^0.10.1",
"leaflet": "^1.9.4",
"light-bolt11-decoder": "^3.0.0",
"npm": "^10.2.5",
"npm": "^10.3.0",
"openpgp": "^5.11.0",
"react": "^18.2.0",
"react-countdown": "^2.3.5",
@ -82,7 +82,7 @@
"react-image": "^4.1.0",
"react-leaflet": "^4.2.1",
"react-qr-code": "^2.0.11",
"react-router-dom": "^6.21.1",
"react-router-dom": "^6.21.2",
"react-smooth-image": "^1.1.0",
"react-world-flags": "^1.6.0",
"reconnecting-websocket": "^4.4.0",

View File

@ -32,13 +32,13 @@
"eslint-import-resolver-typescript": "^3.6.0",
"eslint-plugin-import": "^2.27.5",
"eslint-plugin-n": "^15.7.0",
"eslint-plugin-prettier": "^5.1.2",
"eslint-plugin-prettier": "^5.1.3",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-react": "^7.32.2",
"eslint-plugin-react-hooks": "^4.6.0",
"jest": "^29.5.0",
"metro-react-native-babel-preset": "^0.75.1",
"prettier": "^3.1.1",
"prettier": "^3.2.1",
"react-test-renderer": "18.2.0",
"typescript": "^5.3.3"
}
@ -6778,9 +6778,9 @@
"license": "ISC"
},
"node_modules/eslint-plugin-prettier": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.2.tgz",
"integrity": "sha512-dhlpWc9vOwohcWmClFcA+HjlvUpuyynYs0Rf+L/P6/0iQE6vlHW9l5bkfzN62/Stm9fbq8ku46qzde76T1xlSg==",
"version": "5.1.3",
"resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz",
"integrity": "sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==",
"dev": true,
"dependencies": {
"prettier-linter-helpers": "^1.0.0",
@ -12369,9 +12369,9 @@
}
},
"node_modules/prettier": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.1.tgz",
"integrity": "sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==",
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.1.tgz",
"integrity": "sha512-qSUWshj1IobVbKc226Gw2pync27t0Kf0EdufZa9j7uBSJay1CC+B3K5lAAZoqgX3ASiKuWsk6OmzKRetXNObWg==",
"dev": true,
"bin": {
"prettier": "bin/prettier.cjs"

View File

@ -36,13 +36,13 @@
"eslint-import-resolver-typescript": "^3.6.0",
"eslint-plugin-import": "^2.27.5",
"eslint-plugin-n": "^15.7.0",
"eslint-plugin-prettier": "^5.1.2",
"eslint-plugin-prettier": "^5.1.3",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-react": "^7.32.2",
"eslint-plugin-react-hooks": "^4.6.0",
"jest": "^29.5.0",
"metro-react-native-babel-preset": "^0.75.1",
"prettier": "^3.1.1",
"prettier": "^3.2.1",
"react-test-renderer": "18.2.0",
"typescript": "^5.3.3"
},

View File

@ -6,7 +6,7 @@ django-model-utils==4.3.1
django-redis==5.4.0
djangorestframework==3.14.0
channels==4.0.0
channels-redis==4.1.0
channels-redis==4.2.0
celery==5.3.6
grpcio==1.60.0
googleapis-common-protos==1.62.0
@ -20,7 +20,7 @@ git+https://github.com/RoboSats/Robohash.git
gunicorn==21.2.0
psycopg2==2.9.9
SQLAlchemy==2.0.16
django-import-export==3.3.5
django-import-export==3.3.6
requests[socks]
python-gnupg==0.5.2
daphne==4.0.0

View File

@ -48,6 +48,10 @@ http {
autoindex on;
}
location /clearnetonion_verify {
alias /serve_misc/;
}
location = /favicon.ico {
alias /usr/src/robosats/static/assets/images/favicon-96x96.png;
}