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

This commit is contained in:
Reckless_Satoshi 2023-12-25 14:04:13 +00:00 committed by GitHub
commit 1724fb2074
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
18 changed files with 973 additions and 519 deletions

View File

@ -23,7 +23,7 @@ jobs:
- name: 'Download Android Web.bundle Artifact (built frontend)'
if: inputs.semver == '' # Only if workflow fired from frontend-build.yml
uses: dawidd6/action-download-artifact@v2
uses: dawidd6/action-download-artifact@v3
with:
workflow: frontend-build.yml
workflow_conclusion: success
@ -32,7 +32,7 @@ jobs:
- name: 'Download main.js Artifact for a release'
if: inputs.semver != '' # Only if fired as job in release.yml
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: mobile-web.bundle
path: mobile/html/Web.bundle
@ -66,7 +66,7 @@ jobs:
# Create artifacts (only for Release)
# Create app-universal-release APK artifact asset for Release
- name: 'Upload universal .apk Release Artifact (for Release)'
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
if: inputs.semver != '' # If this workflow is called from release.yml
with:
name: robosats-${{ inputs.semver }}-universal.apk
@ -74,7 +74,7 @@ jobs:
# Create app-arm64-v8a-release APK artifact asset for Release
- name: 'Upload arm64-v8a .apk Release Artifact (for Release)'
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
if: inputs.semver != '' # If this workflow is called from release.yml
with:
name: robosats-${{ inputs.semver }}-arm64-v8a.apk
@ -82,7 +82,7 @@ jobs:
# Create app-armeabi-v7a-release APK artifact asset for Release
- name: 'Upload armeabi-v7a .apk Release Artifact (for Release)'
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
if: inputs.semver != '' # If this workflow is called from release.yml
with:
name: robosats-${{ inputs.semver }}-armeabi-v7a.apk
@ -90,7 +90,7 @@ jobs:
# Create app-x86_64-release APK artifact asset for Release
- name: 'Upload x86_64 .apk Release Artifact (for Release)'
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
if: inputs.semver != '' # If this workflow is called from release.yml
with:
name: robosats-${{ inputs.semver }}-x86_64.apk
@ -98,7 +98,7 @@ jobs:
# Create app-x86-release APK artifact asset for Release
- name: 'Upload x86 .apk Release Artifact (for Release)'
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
if: inputs.semver != '' # If this workflow is called from release.yml
with:
name: robosats-${{ inputs.semver }}-x86.apk

View File

@ -26,7 +26,7 @@ jobs:
- name: 'Download basic.selfhosted.js Artifact'
if: inputs.semver == '' # Only if workflow fired from frontend-build.yml
uses: dawidd6/action-download-artifact@v2
uses: dawidd6/action-download-artifact@v3
with:
workflow: frontend-build.yml
workflow_conclusion: success
@ -35,14 +35,14 @@ jobs:
- name: 'Download main.js Artifact for a release'
if: inputs.semver != '' # Only if fired as job in release.yml
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: web-basic-selfhosted-js
path: nodeapp/static/frontend/
- name: 'Download pro.selfhosted.js Artifact'
if: inputs.semver == '' # Only if workflow fired from frontend-build.yml
uses: dawidd6/action-download-artifact@v2
uses: dawidd6/action-download-artifact@v3
with:
workflow: frontend-build.yml
workflow_conclusion: success
@ -51,7 +51,7 @@ jobs:
- name: 'Download pro.js Artifact for a release'
if: inputs.semver != '' # Only if fired as job in release.yml
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: web-pro-selfhosted-js
path: nodeapp/static/frontend/

View File

@ -17,7 +17,7 @@ jobs:
- name: 'Download Basic main.js Artifact'
if: inputs.semver == '' # Only if workflow fired from frontend-build.yml
uses: dawidd6/action-download-artifact@v2
uses: dawidd6/action-download-artifact@v3
with:
workflow: frontend-build.yml
workflow_conclusion: success
@ -26,14 +26,14 @@ jobs:
- name: 'Download Basic main.js Artifact for a release'
if: inputs.semver != '' # Only if fired as job in release.yml
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: web-main-js
path: frontend/static/frontend/
- name: 'Download pro.js Artifact'
if: inputs.semver == '' # Only if workflow fired from frontend-build.yml
uses: dawidd6/action-download-artifact@v2
uses: dawidd6/action-download-artifact@v3
with:
workflow: frontend-build.yml
workflow_conclusion: success
@ -42,7 +42,7 @@ jobs:
- name: 'Download pro.js Artifact for a release'
if: inputs.semver != '' # Only if fired as job in release.yml
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: web-pro-js
path: frontend/static/frontend/

View File

@ -50,27 +50,27 @@ jobs:
cd frontend
npm run build
- name: 'Archive Web Basic Build Results'
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: web-main-js
path: frontend/static/frontend/main.js
- name: 'Archive Web Basic SelfhostedBuild Results'
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: web-basic-selfhosted-js
path: frontend/static/frontend/basic.selfhosted.js
- name: 'Archive Web PRO Build Results'
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: web-pro-js
path: frontend/static/frontend/pro.js
- name: 'Archive Web PRO SelhostedBuild Results'
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: web-pro-selfhosted-js
path: frontend/static/frontend/pro.selfhosted.js
- name: 'Archive Mobile Build Results'
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: mobile-web.bundle
path: mobile/html/Web.bundle

View File

@ -77,7 +77,7 @@ jobs:
USE_TOR: False
- name: 'Upload coverage report'
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: coverage-report-${{ matrix.python-tag }}-${{ matrix.ln-vendor }}
path: htmlcov/

View File

@ -22,7 +22,7 @@ jobs:
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
- uses: actions/setup-python@v5
with:
python-version: '3.12'
cache: pip

View File

@ -83,7 +83,7 @@ jobs:
# Upload app-universal-release APK artifact asset
- name: 'Download universal APK Artifact'
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: robosats-${{ needs.check-versions.outputs.semver }}-universal.apk
path: .
@ -100,7 +100,7 @@ jobs:
# Upload app-arm64-v8a-release APK artifact asset
- name: 'Download arm64-v8a APK Artifact'
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: robosats-${{ needs.check-versions.outputs.semver }}-arm64-v8a.apk
path: .
@ -117,7 +117,7 @@ jobs:
# Upload app-armeabi-v7a-release APK artifact asset
- name: 'Download armeabi-v7a APK Artifact'
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: robosats-${{ needs.check-versions.outputs.semver }}-armeabi-v7a.apk
path: .
@ -134,7 +134,7 @@ jobs:
# Upload app-x86_64-release APK artifact asset
- name: 'Download x86_64 APK Artifact'
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: robosats-${{ needs.check-versions.outputs.semver }}-x86_64.apk
path: .
@ -151,7 +151,7 @@ jobs:
# Upload app-x86-release APK artifact asset
- name: 'Download x86 APK Artifact'
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: robosats-${{ needs.check-versions.outputs.semver }}-x86.apk
path: .

View File

@ -68,6 +68,7 @@ Check out the [Developer Rewards Panel](https://github.com/users/Reckless-Satosh
- **[Bitcoin Magazine](https://bitcoinmagazine.com/business/robosats-private-bitcoin-exchange)**
- **[KYC? Not Me!](https://kycnot.me/service/robosats)**
- **[H17N Bitcoin](https://h17n.com/exchange/robosats/)**
- **[blockdyor](https://blockdyor.com/robosats/)**
## Inspiration
The concept of a simple custody-minimized lightning exchange with hold invoices is inspired in [P2PLNBOT](https://github.com/grunch/p2plnbot) by @grunch

View File

@ -36,6 +36,8 @@ class ChatRoomConsumer(AsyncWebsocketConsumer):
defaults={
"maker": self.user,
"maker_connected": True,
"taker": order.taker,
"taker_connected": True,
},
)
@ -47,6 +49,8 @@ class ChatRoomConsumer(AsyncWebsocketConsumer):
defaults={
"taker": self.user,
"taker_connected": True,
"maker": order.maker,
"maker_connected": False,
},
)

View File

@ -77,7 +77,7 @@ class ChatView(viewsets.ViewSet):
},
)
# Poor idea: is_peer_connected() mockup. Update connection status based on last time a GET request was sent
# is_peer_connected() mockup. Update connection status based on last time a GET request was sent
if chatroom.maker == request.user:
chatroom.taker_connected = order.taker.last_login > (
timezone.now() - timedelta(minutes=1)

View File

@ -31,6 +31,7 @@ This is a non-exhaustive compilation based on past experience of users. We have
|[Blink](#blink-mobile-former-bitcoin-beach-wallet)|[2.2.73](https://www.blink.sv/)|{{page.phone}}|{{page.good}}|{{page.good}}|{{page.good}}|{{page.good}} |{{page.thumbsup}}|
|[Blixt](#blixt-androidios-lnd-light-backend-on-device)|[v0.4.1](https://github.com/hsjoberg/blixt-wallet)|{{page.phone}}|{{page.soso}}|{{page.good}}|{{page.good}}|{{page.good}}|{{page.thumbsup}}|
|[Blue](#bluewallet-mobile)|[1.4.4](https://bluewallet.io/)|{{page.phone}}|{{page.good}}|{{page.unclear}}|{{page.unclear}}|{{page.good}}|{{page.unclear}}|
|[Breez](#breez-mobile)|[0.16](https://breez.technology/mobile/)|{{page.phone}}|{{page.good}}|{{page.good}}|{{page.good}}|{{page.good}}|{{page.thumbsup}}|
|[Cash App](#cash-app-mobile)|[4.7](https://cash.app/)|{{page.phone}}|{{page.good}}|{{page.good}}|{{page.good}}|{{page.good}} |{{page.thumbsup}}|
|[Core Lightning](#core-lightning--cln-cli-interface)|[v0.11.1](https://github.com/ElementsProject/lightning)|{{page.cli}}|{{page.good}}|{{page.good}}|{{page.good}}|{{page.good}}|{{page.thumbsup}}|
|[Electrum](#electrum-desktop)|[4.1.4](https://github.com/spesmilo/electrum)|{{page.laptop}}|{{page.good}}|{{page.good}}|{{page.good}}|{{page.good}}|{{page.thumbsup}}||
@ -65,6 +66,9 @@ Most development testing for RoboSats has been done using Blixt. This is one of
### Bluewallet (Mobile)
It works well. Bluewallet has discontinued their custodial service. Previously, the custodial service would cause issues where escrows that RoboSats returns are charged to users and where slashed bonds are charged twice by Bluewallet! This was a known bug for long time in Bluewallet, so they shut down their LN custodial service (which ended up making RoboSats a smoother experience for users).
### Breez (Mobile)
It works well with RoboSats. Breez is a non-custodial wallet. So keep in mind channels managment and stuff like that. It's a versatile and easy-to-use interface.
### Cash App (Mobile)
Works well with RoboSats. Hodl invoices (Bonds) show as "Pending" in the transaction history. Payouts to the Cash App wallet function as intended. Custodial wallet by Block, Inc., formerly known as Square, Inc., which is led by Jack Dorsey.

View File

@ -14,9 +14,9 @@
"@emotion/react": "^11.11.1",
"@emotion/styled": "^11.11.0",
"@mui/base": "^5.0.0-beta.7",
"@mui/icons-material": "^5.14.0",
"@mui/icons-material": "^5.15.0",
"@mui/lab": "^5.0.0-alpha.136",
"@mui/material": "^5.14.0",
"@mui/material": "^5.15.1",
"@mui/system": "^5.14.0",
"@mui/x-data-grid": "^6.17.0",
"@mui/x-date-pickers": "^6.17.0",
@ -33,7 +33,7 @@
"js-sha256": "^0.10.1",
"leaflet": "^1.9.4",
"light-bolt11-decoder": "^3.0.0",
"npm": "^10.2.4",
"npm": "^10.2.5",
"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.20.0",
"react-router-dom": "^6.21.1",
"react-smooth-image": "^1.1.0",
"react-world-flags": "^1.6.0",
"reconnecting-websocket": "^4.4.0",
@ -69,7 +69,7 @@
"babel-loader": "^9.1.3",
"copy-webpack-plugin": "^11.0.0",
"eslint": "^8.45.0",
"eslint-config-prettier": "^9.0.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",
@ -79,9 +79,9 @@
"eslint-plugin-react": "^7.32.2",
"eslint-plugin-react-hooks": "^4.6.0",
"jest": "^29.6.1",
"prettier": "^3.1.0",
"ts-node": "^10.9.1",
"typescript": "^5.3.2",
"prettier": "^3.1.1",
"ts-node": "^10.9.2",
"typescript": "^5.3.3",
"webpack": "^5.89.0",
"webpack-cli": "^5.1.4"
}
@ -1880,9 +1880,9 @@
"dev": true
},
"node_modules/@babel/runtime": {
"version": "7.23.2",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz",
"integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==",
"version": "7.23.6",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.6.tgz",
"integrity": "sha512-zHd0eUrf5GZoOWVCXp6koAKQTfZV07eit6bGPmJgnZdnSAvvZee6zniW2XMF7Cmc4ISOOnPy3QaSiIJGJkVEDQ==",
"dependencies": {
"regenerator-runtime": "^0.14.0"
},
@ -2224,9 +2224,9 @@
}
},
"node_modules/@floating-ui/react-dom": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.2.tgz",
"integrity": "sha512-5qhlDvjaLmAst/rKb3VdlCinwTF4EYMiVxuuc/HVUjs46W0zgtbMmAZ1UTsDrRTxRmUEzl92mOtWbeeXL26lSQ==",
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.4.tgz",
"integrity": "sha512-CF8k2rgKeh/49UrnIBs4BdxPUV6vize/Db1d/YbCLyp9GiVZ0BEwf5AiDSxJRCr6yOkGqTFHtmrULxkEfYZ7dQ==",
"dependencies": {
"@floating-ui/dom": "^1.5.1"
},
@ -3106,27 +3106,27 @@
}
},
"node_modules/@mui/core-downloads-tracker": {
"version": "5.14.0",
"resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.14.0.tgz",
"integrity": "sha512-SYBOVCatVDUf/lbrLGah09bHhX5WfUXg7kSskfLILr6SvKRni0NLp0aonxQ0SMALVVK3Qwa6cW4CdWuwS0gC1w==",
"version": "5.15.1",
"resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.15.1.tgz",
"integrity": "sha512-y/nUEsWHyBzaKYp9zLtqJKrLod/zMNEWpMj488FuQY9QTmqBiyUhI2uh7PVaLqLewXRtdmG6JV0b6T5exyuYRw==",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/mui"
"url": "https://opencollective.com/mui-org"
}
},
"node_modules/@mui/icons-material": {
"version": "5.14.0",
"resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.14.0.tgz",
"integrity": "sha512-z7lYNteDi1GMkF9JP/m2RWuCYK1M/FlaeBSUK7/IhIYzIXNhAVjfD8jRq5vFBV31qkEi2aGBS2z5SfLXwH6U0A==",
"version": "5.15.0",
"resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.15.0.tgz",
"integrity": "sha512-zHY6fOkaK7VfhWeyxO8MjO3IAjEYpYMXuqUhX7TkUZJ9+TSH/9dn4ClG4K2j6hdgBU5Yrq2Z/89Bo6BHHp7AdQ==",
"dependencies": {
"@babel/runtime": "^7.22.5"
"@babel/runtime": "^7.23.5"
},
"engines": {
"node": ">=12.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/mui"
"url": "https://opencollective.com/mui-org"
},
"peerDependencies": {
"@mui/material": "^5.0.0",
@ -3181,18 +3181,18 @@
}
},
"node_modules/@mui/material": {
"version": "5.14.0",
"resolved": "https://registry.npmjs.org/@mui/material/-/material-5.14.0.tgz",
"integrity": "sha512-HP7CP71NhMkui2HUIEKl2/JfuHMuoarSUWAKlNw6s17bl/Num9rN61EM6uUzc2A2zHjj/00A66GnvDnmixEJEw==",
"version": "5.15.1",
"resolved": "https://registry.npmjs.org/@mui/material/-/material-5.15.1.tgz",
"integrity": "sha512-WA5DVyvacxDakVyAhNqu/rRT28ppuuUFFw1bLpmRzrCJ4uw/zLTATcd4WB3YbB+7MdZNEGG/SJNWTDLEIyn3xQ==",
"dependencies": {
"@babel/runtime": "^7.22.5",
"@mui/base": "5.0.0-beta.7",
"@mui/core-downloads-tracker": "^5.14.0",
"@mui/system": "^5.14.0",
"@mui/types": "^7.2.4",
"@mui/utils": "^5.13.7",
"@types/react-transition-group": "^4.4.6",
"clsx": "^1.2.1",
"@babel/runtime": "^7.23.5",
"@mui/base": "5.0.0-beta.28",
"@mui/core-downloads-tracker": "^5.15.1",
"@mui/system": "^5.15.1",
"@mui/types": "^7.2.11",
"@mui/utils": "^5.15.1",
"@types/react-transition-group": "^4.4.10",
"clsx": "^2.0.0",
"csstype": "^3.1.2",
"prop-types": "^15.8.1",
"react-is": "^18.2.0",
@ -3203,7 +3203,7 @@
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/mui"
"url": "https://opencollective.com/mui-org"
},
"peerDependencies": {
"@emotion/react": "^11.5.0",
@ -3224,13 +3224,17 @@
}
}
},
"node_modules/@mui/private-theming": {
"version": "5.13.7",
"resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.13.7.tgz",
"integrity": "sha512-qbSr+udcij5F9dKhGX7fEdx2drXchq7htLNr2Qg2Ma+WJ6q0ERlEqGSBiPiVDJkptcjeVL4DGmcf1wl5+vD4EA==",
"node_modules/@mui/material/node_modules/@mui/base": {
"version": "5.0.0-beta.28",
"resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.28.tgz",
"integrity": "sha512-KIoSc5sUFceeCaZTq5MQBapFzhHqMo4kj+4azWaCAjorduhcRQtN+BCgVHmo+gvEjix74bUfxwTqGifnu2fNTg==",
"dependencies": {
"@babel/runtime": "^7.22.5",
"@mui/utils": "^5.13.7",
"@babel/runtime": "^7.23.5",
"@floating-ui/react-dom": "^2.0.4",
"@mui/types": "^7.2.11",
"@mui/utils": "^5.15.1",
"@popperjs/core": "^2.11.8",
"clsx": "^2.0.0",
"prop-types": "^15.8.1"
},
"engines": {
@ -3238,7 +3242,42 @@
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/mui"
"url": "https://opencollective.com/mui-org"
},
"peerDependencies": {
"@types/react": "^17.0.0 || ^18.0.0",
"react": "^17.0.0 || ^18.0.0",
"react-dom": "^17.0.0 || ^18.0.0"
},
"peerDependenciesMeta": {
"@types/react": {
"optional": true
}
}
},
"node_modules/@mui/material/node_modules/clsx": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz",
"integrity": "sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==",
"engines": {
"node": ">=6"
}
},
"node_modules/@mui/private-theming": {
"version": "5.15.1",
"resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.15.1.tgz",
"integrity": "sha512-wTbzuy5KjSvCPE9UVJktWHJ0b/tD5biavY9wvF+OpYDLPpdXK52vc1hTDxSbdkHIFMkJExzrwO9GvpVAHZBnFQ==",
"dependencies": {
"@babel/runtime": "^7.23.5",
"@mui/utils": "^5.15.1",
"prop-types": "^15.8.1"
},
"engines": {
"node": ">=12.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/mui-org"
},
"peerDependencies": {
"@types/react": "^17.0.0 || ^18.0.0",
@ -3251,11 +3290,11 @@
}
},
"node_modules/@mui/styled-engine": {
"version": "5.13.2",
"resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.13.2.tgz",
"integrity": "sha512-VCYCU6xVtXOrIN8lcbuPmoG+u7FYuOERG++fpY74hPpEWkyFQG97F+/XfTQVYzlR2m7nPjnwVUgATcTCMEaMvw==",
"version": "5.15.1",
"resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.15.1.tgz",
"integrity": "sha512-7WDZTJLqGexWDjqE9oAgjU8ak6hEtUw2yQU7SIYID5kLVO2Nj/Wi/KicbLsXnTsJNvSqePIlUIWTBSXwWJCPZw==",
"dependencies": {
"@babel/runtime": "^7.21.0",
"@babel/runtime": "^7.23.5",
"@emotion/cache": "^11.11.0",
"csstype": "^3.1.2",
"prop-types": "^15.8.1"
@ -3265,7 +3304,7 @@
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/mui"
"url": "https://opencollective.com/mui-org"
},
"peerDependencies": {
"@emotion/react": "^11.4.1",
@ -3282,16 +3321,16 @@
}
},
"node_modules/@mui/system": {
"version": "5.14.0",
"resolved": "https://registry.npmjs.org/@mui/system/-/system-5.14.0.tgz",
"integrity": "sha512-0HZGkX8miJbiNw+rjlZ9l0Cfkz1bSqfSHQH0EH9J+nx0aAm5cBleg9piOlLdCNIWGgecCqsw4x62erGrGjjcJg==",
"version": "5.15.1",
"resolved": "https://registry.npmjs.org/@mui/system/-/system-5.15.1.tgz",
"integrity": "sha512-LAnP0ls69rqW9eBgI29phIx/lppv+WDGI7b3EJN7VZIqw0RezA0GD7NRpV12BgEYJABEii6z5Q9B5tg7dsX0Iw==",
"dependencies": {
"@babel/runtime": "^7.22.5",
"@mui/private-theming": "^5.13.7",
"@mui/styled-engine": "^5.13.2",
"@mui/types": "^7.2.4",
"@mui/utils": "^5.13.7",
"clsx": "^1.2.1",
"@babel/runtime": "^7.23.5",
"@mui/private-theming": "^5.15.1",
"@mui/styled-engine": "^5.15.1",
"@mui/types": "^7.2.11",
"@mui/utils": "^5.15.1",
"clsx": "^2.0.0",
"csstype": "^3.1.2",
"prop-types": "^15.8.1"
},
@ -3300,7 +3339,7 @@
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/mui"
"url": "https://opencollective.com/mui-org"
},
"peerDependencies": {
"@emotion/react": "^11.5.0",
@ -3320,10 +3359,18 @@
}
}
},
"node_modules/@mui/system/node_modules/clsx": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz",
"integrity": "sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==",
"engines": {
"node": ">=6"
}
},
"node_modules/@mui/types": {
"version": "7.2.7",
"resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.7.tgz",
"integrity": "sha512-sofpWmcBqOlTzRbr1cLQuUDKaUYVZTw8ENQrtL39TECRNENEzwgnNPh6WMfqMZlMvf1Aj9DLg74XPjnLr0izUQ==",
"version": "7.2.11",
"resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.11.tgz",
"integrity": "sha512-KWe/QTEsFFlFSH+qRYf3zoFEj3z67s+qAuSnMMg+gFwbxG7P96Hm6g300inQL1Wy///gSRb8juX7Wafvp93m3w==",
"peerDependencies": {
"@types/react": "^17.0.0 || ^18.0.0"
},
@ -3334,12 +3381,12 @@
}
},
"node_modules/@mui/utils": {
"version": "5.14.15",
"resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.14.15.tgz",
"integrity": "sha512-QBfHovAvTa0J1jXuYDaXGk+Yyp7+Fm8GSqx6nK2JbezGqzCFfirNdop/+bL9Flh/OQ/64PeXcW4HGDdOge+n3A==",
"version": "5.15.1",
"resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.15.1.tgz",
"integrity": "sha512-V1/d0E3Bju5YdB59HJf2G0tnHrFEvWLN+f8hAXp9+JSNy/LC2zKyqUfPPahflR6qsI681P8G9r4mEZte/SrrYA==",
"dependencies": {
"@babel/runtime": "^7.23.2",
"@types/prop-types": "^15.7.8",
"@babel/runtime": "^7.23.5",
"@types/prop-types": "^15.7.11",
"prop-types": "^15.8.1",
"react-is": "^18.2.0"
},
@ -3348,7 +3395,7 @@
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/mui"
"url": "https://opencollective.com/mui-org"
},
"peerDependencies": {
"@types/react": "^17.0.0 || ^18.0.0",
@ -3840,9 +3887,9 @@
}
},
"node_modules/@remix-run/router": {
"version": "1.13.0",
"resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.13.0.tgz",
"integrity": "sha512-5dMOnVnefRsl4uRnAdoWjtVTdh8e6aZqgM4puy9nmEADH72ck+uXwzpJLEKE9Q6F8ZljNewLgmTfkxUrBdv4WA==",
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.14.1.tgz",
"integrity": "sha512-Qg4DMQsfPNAs88rb2xkdk03N3bjK4jgX5fR24eHCTR9q6PrhZQZ4UJBPzCHJkIpTRN1UKxx2DzjZmnC+7Lj0Ow==",
"engines": {
"node": ">=14.0.0"
}
@ -4145,9 +4192,9 @@
"dev": true
},
"node_modules/@types/prop-types": {
"version": "15.7.8",
"resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.8.tgz",
"integrity": "sha512-kMpQpfZKSCBqltAJwskgePRaYRFukDkm1oItcAbC3gNELR20XIBcN9VRgg4+m8DKsTfkWeA4m4Imp4DDuWy7FQ=="
"version": "15.7.11",
"resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz",
"integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng=="
},
"node_modules/@types/react": {
"version": "18.2.21",
@ -4177,9 +4224,9 @@
}
},
"node_modules/@types/react-transition-group": {
"version": "4.4.8",
"resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.8.tgz",
"integrity": "sha512-QmQ22q+Pb+HQSn04NL3HtrqHwYMf4h3QKArOy5F8U5nEVMaihBs3SR10WiOM1iwPz5jIo8x/u11al+iEGZZrvg==",
"version": "4.4.10",
"resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.10.tgz",
"integrity": "sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q==",
"dependencies": {
"@types/react": "*"
}
@ -6599,9 +6646,9 @@
}
},
"node_modules/eslint-config-prettier": {
"version": "9.0.0",
"resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz",
"integrity": "sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==",
"version": "9.1.0",
"resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz",
"integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==",
"dev": true,
"bin": {
"eslint-config-prettier": "bin/cli.js"
@ -10468,9 +10515,9 @@
}
},
"node_modules/npm": {
"version": "10.2.4",
"resolved": "https://registry.npmjs.org/npm/-/npm-10.2.4.tgz",
"integrity": "sha512-umEuYneVEYO9KoEEI8n2sSGmNQeqco/3BSeacRlqIkCzw4E7XGtYSWMeJobxzr6hZ2n9cM+u5TsMTcC5bAgoWA==",
"version": "10.2.5",
"resolved": "https://registry.npmjs.org/npm/-/npm-10.2.5.tgz",
"integrity": "sha512-lXdZ7titEN8CH5YJk9C/aYRU9JeDxQ4d8rwIIDsvH3SMjLjHTukB2CFstMiB30zXs4vCrPN2WH6cDq1yHBeJAw==",
"bundleDependencies": [
"@isaacs/string-locale-compare",
"@npmcli/arborist",
@ -10556,7 +10603,7 @@
"@sigstore/tuf": "^2.2.0",
"abbrev": "^2.0.0",
"archy": "~1.0.0",
"cacache": "^18.0.0",
"cacache": "^18.0.1",
"chalk": "^5.3.0",
"ci-info": "^4.0.0",
"cli-columns": "^4.0.0",
@ -10570,7 +10617,7 @@
"ini": "^4.1.1",
"init-package-json": "^6.0.0",
"is-cidr": "^5.0.3",
"json-parse-even-better-errors": "^3.0.0",
"json-parse-even-better-errors": "^3.0.1",
"libnpmaccess": "^8.0.1",
"libnpmdiff": "^6.0.3",
"libnpmexec": "^7.0.4",
@ -10599,7 +10646,7 @@
"npm-user-validate": "^2.0.0",
"npmlog": "^7.0.1",
"p-map": "^4.0.0",
"pacote": "^17.0.4",
"pacote": "^17.0.5",
"parse-conflict-json": "^3.0.1",
"proc-log": "^3.0.0",
"qrcode-terminal": "^0.12.0",
@ -10704,7 +10751,7 @@
}
},
"node_modules/npm/node_modules/@npmcli/arborist": {
"version": "7.2.1",
"version": "7.2.2",
"inBundle": true,
"license": "ISC",
"dependencies": {
@ -10750,7 +10797,7 @@
}
},
"node_modules/npm/node_modules/@npmcli/config": {
"version": "8.0.2",
"version": "8.0.3",
"inBundle": true,
"license": "ISC",
"dependencies": {
@ -11179,7 +11226,7 @@
}
},
"node_modules/npm/node_modules/cacache": {
"version": "18.0.0",
"version": "18.0.1",
"inBundle": true,
"license": "ISC",
"dependencies": {
@ -11188,7 +11235,7 @@
"glob": "^10.2.2",
"lru-cache": "^10.0.1",
"minipass": "^7.0.3",
"minipass-collect": "^1.0.2",
"minipass-collect": "^2.0.1",
"minipass-flush": "^1.0.5",
"minipass-pipeline": "^1.2.4",
"p-map": "^4.0.0",
@ -11707,7 +11754,7 @@
"license": "BSD-3-Clause"
},
"node_modules/npm/node_modules/ignore-walk": {
"version": "6.0.3",
"version": "6.0.4",
"inBundle": true,
"license": "ISC",
"dependencies": {
@ -11832,7 +11879,7 @@
}
},
"node_modules/npm/node_modules/json-parse-even-better-errors": {
"version": "3.0.0",
"version": "3.0.1",
"inBundle": true,
"license": "MIT",
"engines": {
@ -11866,7 +11913,7 @@
"license": "MIT"
},
"node_modules/npm/node_modules/libnpmaccess": {
"version": "8.0.1",
"version": "8.0.2",
"inBundle": true,
"license": "ISC",
"dependencies": {
@ -11878,7 +11925,7 @@
}
},
"node_modules/npm/node_modules/libnpmdiff": {
"version": "6.0.3",
"version": "6.0.4",
"inBundle": true,
"license": "ISC",
"dependencies": {
@ -11897,7 +11944,7 @@
}
},
"node_modules/npm/node_modules/libnpmexec": {
"version": "7.0.4",
"version": "7.0.5",
"inBundle": true,
"license": "ISC",
"dependencies": {
@ -11918,7 +11965,7 @@
}
},
"node_modules/npm/node_modules/libnpmfund": {
"version": "5.0.1",
"version": "5.0.2",
"inBundle": true,
"license": "ISC",
"dependencies": {
@ -11929,7 +11976,7 @@
}
},
"node_modules/npm/node_modules/libnpmhook": {
"version": "10.0.0",
"version": "10.0.1",
"inBundle": true,
"license": "ISC",
"dependencies": {
@ -11941,7 +11988,7 @@
}
},
"node_modules/npm/node_modules/libnpmorg": {
"version": "6.0.1",
"version": "6.0.2",
"inBundle": true,
"license": "ISC",
"dependencies": {
@ -11953,7 +12000,7 @@
}
},
"node_modules/npm/node_modules/libnpmpack": {
"version": "6.0.3",
"version": "6.0.4",
"inBundle": true,
"license": "ISC",
"dependencies": {
@ -11967,7 +12014,7 @@
}
},
"node_modules/npm/node_modules/libnpmpublish": {
"version": "9.0.2",
"version": "9.0.3",
"inBundle": true,
"license": "ISC",
"dependencies": {
@ -11985,7 +12032,7 @@
}
},
"node_modules/npm/node_modules/libnpmsearch": {
"version": "7.0.0",
"version": "7.0.1",
"inBundle": true,
"license": "ISC",
"dependencies": {
@ -11996,7 +12043,7 @@
}
},
"node_modules/npm/node_modules/libnpmteam": {
"version": "6.0.0",
"version": "6.0.1",
"inBundle": true,
"license": "ISC",
"dependencies": {
@ -12008,7 +12055,7 @@
}
},
"node_modules/npm/node_modules/libnpmversion": {
"version": "5.0.1",
"version": "5.0.2",
"inBundle": true,
"license": "ISC",
"dependencies": {
@ -12023,12 +12070,9 @@
}
},
"node_modules/npm/node_modules/lru-cache": {
"version": "10.0.2",
"version": "10.1.0",
"inBundle": true,
"license": "ISC",
"dependencies": {
"semver": "^7.3.5"
},
"engines": {
"node": "14 || >=16.14"
}
@ -12077,25 +12121,14 @@
}
},
"node_modules/npm/node_modules/minipass-collect": {
"version": "1.0.2",
"version": "2.0.1",
"inBundle": true,
"license": "ISC",
"dependencies": {
"minipass": "^3.0.0"
"minipass": "^7.0.3"
},
"engines": {
"node": ">= 8"
}
},
"node_modules/npm/node_modules/minipass-collect/node_modules/minipass": {
"version": "3.3.6",
"inBundle": true,
"license": "ISC",
"dependencies": {
"yallist": "^4.0.0"
},
"engines": {
"node": ">=8"
"node": ">=16 || 14 >=14.17"
}
},
"node_modules/npm/node_modules/minipass-fetch": {
@ -12359,11 +12392,11 @@
}
},
"node_modules/npm/node_modules/npm-packlist": {
"version": "8.0.0",
"version": "8.0.1",
"inBundle": true,
"license": "ISC",
"dependencies": {
"ignore-walk": "^6.0.0"
"ignore-walk": "^6.0.4"
},
"engines": {
"node": "^14.17.0 || ^16.13.0 || >=18.0.0"
@ -12449,7 +12482,7 @@
}
},
"node_modules/npm/node_modules/pacote": {
"version": "17.0.4",
"version": "17.0.5",
"inBundle": true,
"license": "ISC",
"dependencies": {
@ -13699,9 +13732,9 @@
}
},
"node_modules/prettier": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.0.tgz",
"integrity": "sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==",
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.1.tgz",
"integrity": "sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==",
"dev": true,
"bin": {
"prettier": "bin/prettier.cjs"
@ -13995,11 +14028,11 @@
}
},
"node_modules/react-router": {
"version": "6.20.0",
"resolved": "https://registry.npmjs.org/react-router/-/react-router-6.20.0.tgz",
"integrity": "sha512-pVvzsSsgUxxtuNfTHC4IxjATs10UaAtvLGVSA1tbUE4GDaOSU1Esu2xF5nWLz7KPiMuW8BJWuPFdlGYJ7/rW0w==",
"version": "6.21.1",
"resolved": "https://registry.npmjs.org/react-router/-/react-router-6.21.1.tgz",
"integrity": "sha512-W0l13YlMTm1YrpVIOpjCADJqEUpz1vm+CMo47RuFX4Ftegwm6KOYsL5G3eiE52jnJpKvzm6uB/vTKTPKM8dmkA==",
"dependencies": {
"@remix-run/router": "1.13.0"
"@remix-run/router": "1.14.1"
},
"engines": {
"node": ">=14.0.0"
@ -14009,12 +14042,12 @@
}
},
"node_modules/react-router-dom": {
"version": "6.20.0",
"resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.20.0.tgz",
"integrity": "sha512-CbcKjEyiSVpA6UtCHOIYLUYn/UJfwzp55va4yEfpk7JBN3GPqWfHrdLkAvNCcpXr8QoihcDMuk0dzWZxtlB/mQ==",
"version": "6.21.1",
"resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.21.1.tgz",
"integrity": "sha512-QCNrtjtDPwHDO+AO21MJd7yIcr41UetYt5jzaB9Y1UYaPTCnVuJq6S748g1dE11OQlCFIQg+RtAA1SEZIyiBeA==",
"dependencies": {
"@remix-run/router": "1.13.0",
"react-router": "6.20.0"
"@remix-run/router": "1.14.1",
"react-router": "6.21.1"
},
"engines": {
"node": ">=14.0.0"
@ -15019,9 +15052,9 @@
"integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
},
"node_modules/ts-node": {
"version": "10.9.1",
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz",
"integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==",
"version": "10.9.2",
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz",
"integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==",
"dev": true,
"dependencies": {
"@cspotcode/source-map-support": "^0.8.0",
@ -15233,9 +15266,9 @@
}
},
"node_modules/typescript": {
"version": "5.3.2",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.2.tgz",
"integrity": "sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ==",
"version": "5.3.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz",
"integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==",
"dev": true,
"bin": {
"tsc": "bin/tsc",

View File

@ -31,7 +31,7 @@
"babel-loader": "^9.1.3",
"copy-webpack-plugin": "^11.0.0",
"eslint": "^8.45.0",
"eslint-config-prettier": "^9.0.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",
@ -41,9 +41,9 @@
"eslint-plugin-react": "^7.32.2",
"eslint-plugin-react-hooks": "^4.6.0",
"jest": "^29.6.1",
"prettier": "^3.1.0",
"ts-node": "^10.9.1",
"typescript": "^5.3.2",
"prettier": "^3.1.1",
"ts-node": "^10.9.2",
"typescript": "^5.3.3",
"webpack": "^5.89.0",
"webpack-cli": "^5.1.4"
},
@ -53,9 +53,9 @@
"@emotion/react": "^11.11.1",
"@emotion/styled": "^11.11.0",
"@mui/base": "^5.0.0-beta.7",
"@mui/icons-material": "^5.14.0",
"@mui/icons-material": "^5.15.0",
"@mui/lab": "^5.0.0-alpha.136",
"@mui/material": "^5.14.0",
"@mui/material": "^5.15.1",
"@mui/system": "^5.14.0",
"@mui/x-data-grid": "^6.17.0",
"@mui/x-date-pickers": "^6.17.0",
@ -72,7 +72,7 @@
"js-sha256": "^0.10.1",
"leaflet": "^1.9.4",
"light-bolt11-decoder": "^3.0.0",
"npm": "^10.2.4",
"npm": "^10.2.5",
"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.20.0",
"react-router-dom": "^6.21.1",
"react-smooth-image": "^1.1.0",
"react-world-flags": "^1.6.0",
"reconnecting-websocket": "^4.4.0",

View File

@ -1,109 +1,109 @@
{
"#1": "Phrases in basic/Main.tsx",
"Using Testnet Bitcoin": "Using Testnet Bitcoin",
"Using Testnet Bitcoin": "Использование тестнет Биткойна",
"#2": "Phrases in basic/BookPage/index.tsx",
"Chart": "Схемами",
"Create": "Create",
"List": "List",
"Chart": "График",
"Create": "Создать",
"List": "Список",
"Map": "Карта",
"#3": "Phrases in basic/MakerPage/index.tsx",
"Existing orders match yours!": "Existing orders match yours!",
"Existing orders match yours!": "Существующие ордеры совпадают с вашими!",
"#4": "Phrases in basic/NavBar/MoreTooltip.tsx",
"Community and public support": "Community and public support",
"Exchange summary": "Exchange summary",
"Community and public support": "Поддержка сообщества",
"Coordinator summary": "Сводка координатора",
"Learn RoboSats": "Изучить RoboSats",
"RoboSats information": "RoboSats information",
"client for nerds": "client for nerds",
"RoboSats information": "Информация о RoboSats",
"Stats for nerds": "Статистика для умников",
"#5": "Phrases in basic/NavBar/NavBar.tsx",
"More": "More",
"Offers": "Offers",
"More": "Больше",
"Offers": "Оферы",
"Order": "Ордер",
"Robot": "Робот",
"Settings": "Settings",
"Settings": "Настройки",
"#6": "Phrases in basic/OrderPage/index.tsx",
"Contract": "Контракт",
"#7": "Phrases in basic/RobotPage/Onboarding.tsx",
"1. Generate a token": "1. Generate a token",
"2. Meet your robot identity": "2. Meet your robot identity",
"3. Browse or create an order": "3. Browse or create an order",
"Building your robot!": "Building your robot!",
"Continue": "Continue",
"Generate token": "Generate token",
"Hi! My name is": "Hi! My name is",
"If you need help on your RoboSats journey join our public support": "If you need help on your RoboSats journey join our public support",
"RoboSats is a peer-to-peer marketplace. You can browse the public offers or create a new one.": "RoboSats is a peer-to-peer marketplace. You can browse the public offers or create a new one.",
"See profile": "See profile",
"Store it somewhere safe!": "Store it somewhere safe!",
"Telegram group": "Telegram group",
"1. Generate a token": "1. Создайте токен",
"2. Meet your robot identity": "2. Познакомьтесь со своей личностью робота",
"3. Browse or create an order": "3. Просмотрите или создайте заказ",
"Building your robot!": "Постройте своего робота!",
"Continue": "Продолжить",
"Generate token": "Сгенерировать токен",
"Hi! My name is": "Привет! Меня зовут",
"If you need help on your RoboSats journey join our public support": "Если вам нужна помощь в путешествии по RoboSats, присоединяйтесь к поддержке нашего сообщества",
"RoboSats is a peer-to-peer marketplace. You can browse the public offers or create a new one.": "RoboSats — это P2P торговая площадка. Вы можете просматривать публичные предложения или создавать новые.",
"See profile": "Посмотреть профиль",
"Store it somewhere safe!": "Храните его в безопасном месте!",
"Telegram group": "Телеграмм группа",
"This is your trading avatar": "Это Ваш торговый аватар",
"This temporary key gives you access to a unique and private robot identity for your trade.": "This temporary key gives you access to a unique and private robot identity for your trade.",
"You can also add your own random characters into the token or": "You can also add your own random characters into the token or",
"or visit the robot school for documentation.": "or visit the robot school for documentation.",
"roll again": "roll again",
"This temporary key gives you access to a unique and private robot identity for your trade.": "Этот временный ключ дает вам доступ к уникальному и личному идентификатору робота для вашей сделки.",
"You can also add your own random characters into the token or": "Вы также можете добавить в токен свои собственные случайные символы или",
"or visit the robot school for documentation.": "или посетить школу роботов для документации.",
"roll again": "ещё раз",
"#8": "Phrases in basic/RobotPage/Recovery.tsx",
"Enter your robot token to re-build your robot and gain access to its trades.": "Enter your robot token to re-build your robot and gain access to its trades.",
"Paste token here": "Paste token here",
"Recover": "Recover",
"Robot recovery": "Robot recovery",
"Enter your robot token to re-build your robot and gain access to its trades.": "Введите токен своего робота, чтобы восстанавить своего робота и получить доступ к его сделкам.",
"Paste token here": "Вставте токен сюда",
"Recover": "Восстановить",
"Robot recovery": "Восстановление робота",
"#9": "Phrases in basic/RobotPage/RobotProfile.tsx",
"Active order #{{orderID}}": "Active order #{{orderID}}",
"Add Robot": "Add Robot",
"Add a new Robot": "Add a new Robot",
"Building...": "Building...",
"Delete Garage": "Delete Garage",
"Last order #{{orderID}}": "Last order #{{orderID}}",
"Logout": "Logout",
"Reusing trading identity degrades your privacy against other users, coordinators and observers.": "Reusing trading identity degrades your privacy against other users, coordinators and observers.",
"Robot Garage": "Robot Garage",
"Active order #{{orderID}}": "Активный ордер #{{orderID}}",
"Add Robot": "Добавить робота",
"Add a new Robot": "Добавить нового робота",
"Building...": "Строим...",
"Delete Garage": "Удалить гараж",
"Last order #{{orderID}}": "Последний ордер #{{orderID}}",
"Logout": "Выйти",
"Reusing trading identity degrades your privacy against other users, coordinators and observers.": "Повторное использование торговых данных ухудшает вашу конфиденциальность по отношению к другим пользователям, координаторам и наблюдателям.",
"Robot Garage": "Гараж роботов",
"Store your token safely": "Храните Ваш токен в безопасности",
"Welcome back!": "Welcome back!",
"Welcome back!": "С возвращением!",
"#10": "Phrases in basic/RobotPage/TokenInput.tsx",
"Copied!": "Скопировано!",
"#11": "Phrases in basic/RobotPage/Welcome.tsx",
"A Simple and Private LN P2P Exchange": "A Simple and Private LN P2P Exchange",
"Create a new robot and learn to use RoboSats": "Create a new robot and learn to use RoboSats",
"Fast Generate Robot": "Fast Generate Robot",
"Recover an existing robot using your token": "Recover an existing robot using your token",
"Recovery": "Recovery",
"Start": "Start",
"A Simple and Private LN P2P Exchange": "Простой и приватный LN P2P обменник",
"Create a new robot and learn to use RoboSats": "Создайте нового робота и научитесь использовать RoboSats",
"Fast Generate Robot": "Быстрое создание робота",
"Recover an existing robot using your token": "Восстановить существующего робота с помощью вашего токена",
"Recovery": "Восстановление",
"Start": "Старт",
"#12": "Phrases in basic/RobotPage/index.tsx",
"Connecting to TOR": "Connecting to TOR",
"Connection encrypted and anonymized using TOR.": "Connection encrypted and anonymized using TOR.",
"Not enough entropy, make it more complex": "Not enough entropy, make it more complex",
"The token is too short": "The token is too short",
"This ensures maximum privacy, however you might feel the app behaves slow. If connection is lost, restart the app.": "This ensures maximum privacy, however you might feel the app behaves slow. If connection is lost, restart the app.",
"Connecting to TOR": "Подключение к TOR",
"Connection encrypted and anonymized using TOR.": "Соединение зашифровано и анонимизировано с помощью TOR.",
"Not enough entropy, make it more complex": "Недостаточно энтропии, усложните",
"The token is too short": "Токен слишком короткий",
"This ensures maximum privacy, however you might feel the app behaves slow. If connection is lost, restart the app.": "Это обеспечивает максимальную конфиденциальность, однако вы можете почувствовать, что приложение работает медленно. Если соединение потеряно, перезапустите приложение.",
"#13": "Phrases in components/TorConnection.tsx",
"Connected to TOR network": "Connected to TOR network",
"Connecting to TOR network": "Connecting to TOR network",
"Connection error": "Connection error",
"Initializing TOR daemon": "Initializing TOR daemon",
"Connected to TOR network": "Подключено к сети TOR",
"Connecting to TOR network": "Подключение к сети TOR",
"Connection error": "Ошибка подключения",
"Initializing TOR daemon": "Инициализация TOR daemon",
"#14": "Phrases in components/BookTable/BookControl.tsx",
"ANY": "Любую валюту",
"ANY": "Любой",
"Buy": "Купить",
"DESTINATION": "DESTINATION",
"DESTINATION": "МЕСТО НАЗНАЧЕНИЯ",
"I want to": "Я хочу",
"METHOD": "METHOD",
"METHOD": "МЕТОД",
"Select Payment Currency": "Выбрать Валюту",
"Select Payment Method": "Select Payment Method",
"Select Payment Method": "Выбрать способ оплаты",
"Sell": "Продать",
"Show Lightning swaps": "Show Lightning swaps",
"Swap In": "Swap In",
"Swap Out": "Swap Out",
"Show Lightning swaps": "Показать Лайтнинг свопы",
"Swap In": "Своп в",
"Swap Out": "Своп из",
"and use": "и использовать",
"pay with": "pay with",
"pay with": "оплатить",
"#15": "Phrases in components/BookTable/index.tsx",
"Add filter": "Добавить фильтр",
"Amount": "Сумма",
"An error occurred.": "Произошла ошибка.",
"And": "И",
"Be the first one to create an order": "Будьте первым, кто создаст ордер",
"Bond": "Bond",
"Bond": "Залог",
"Column title": "Заголовок столбца",
"Columns": "Столбцы",
"Currency": "Валюта",
"Delete": "Удалить",
"Destination": "Destination",
"Expiry": "Expiry",
"Destination": "Место назначения",
"Expiry": "Истечение",
"Filter": "Фильтр",
"Filter value": "Значение фильтра",
"Find column": "Найти столбец",
@ -112,7 +112,7 @@
"Host": "Host",
"Is": "Кто",
"Logic operator": "Логический оператор",
"Manage columns": "Manage columns",
"Manage columns": "Управление столбцами",
"Menu": "Меню",
"No orders found to buy BTC for {{currencyCode}}": "Не найдено ордеров на покупку BTC за {{currencyCode}}",
"No orders found to sell BTC for {{currencyCode}}": "Не найдено ордеров на продажу BTC за {{currencyCode}}",
@ -126,7 +126,7 @@
"Premium": "Наценка",
"Price": "Цена",
"Reorder column": "Изменить порядок столбца",
"Sats now": "Sats now",
"Sats now": "Сатох сейчас ",
"Select columns": "Выбрать столбцы",
"Show all": "Показать все",
"Show columns": "Показать столбцы",
@ -134,7 +134,7 @@
"Sort": "Сортировать",
"Sort by ASC": "Сортировать по ВОСХ",
"Sort by DESC": "Сортировать по НИСХ",
"Timer": "Timer",
"Timer": "Таймер",
"Unsort": "Несортировать",
"Value": "Значение",
"any": "любой",
@ -157,11 +157,11 @@
"yes": "да",
"#16": "Phrases in components/Charts/DepthChart/index.tsx",
"#17": "Phrases in components/Charts/MapChart/index.tsx",
"Accept": "Accept",
"By doing so, you will be fetching map tiles from a third-party provider. Depending on your setup, private information might be leaked to servers outside the RoboSats federation.": "By doing so, you will be fetching map tiles from a third-party provider. Depending on your setup, private information might be leaked to servers outside the RoboSats federation.",
"Accept": "Принять",
"By doing so, you will be fetching map tiles from a third-party provider. Depending on your setup, private information might be leaked to servers outside the RoboSats federation.": "Поступая таким образом вы будете получать фрагменты карты от стороннего поставщика. В зависимости от ваших настроек личная информация может попасть на серверы за пределами федерации RoboSats.",
"Close": "Закрыть",
"Download high resolution map?": "Download high resolution map?",
"Show tiles": "Show tiles",
"Download high resolution map?": "Загрузить карту в высоком разрешении?",
"Show tiles": "Показать карту",
"#18": "Phrases in components/Charts/helpers/OrderTooltip/index.tsx",
"#19": "Phrases in components/Dialogs/About.tsx",
"(GitHub).": "(GitHub).",
@ -227,16 +227,16 @@
"and": "и",
"#22": "Phrases in components/Dialogs/Community.tsx",
"Community": "Сообщество",
"Follow RoboSats in Nostr": "Follow RoboSats in Nostr",
"Follow RoboSats in X": "Follow RoboSats in X",
"Follow RoboSats in Nostr": "Подпиcаться на RoboSats в Nostr",
"Follow RoboSats in Twitter": одпиcаться на RoboSats в Twitter",
"Github Issues - The Robotic Satoshis Open Source Project": "Github Issues - The Robotic Satoshis проект с открытым исходным кодом",
"Join RoboSats English speaking community!": "Присоединиться к англоязычному сообществу RoboSats!",
"Join RoboSats SimpleX group": "Join RoboSats SimpleX group",
"Join RoboSats SimpleX group": "Присоединиться к групе RoboSats на SimpleX",
"Join RoboSats Spanish speaking community!": "Присоединиться к испаноязычному сообществу RoboSats!",
"Nostr Official Account": "Nostr Official Account",
"RoboSats in Reddit": "RoboSats в Reddit",
"RoboSats main public support": "RoboSats main public support",
"Support is only offered via SimpleX. Join our community if you have questions or want to hang out with other cool robots. Please, use our Github Issues if you find a bug or want to see new features!": "Support is only offered via SimpleX. Join our community if you have questions or want to hang out with other cool robots. Please, use our Github Issues if you find a bug or want to see new features!",
"Nostr Official Account": " Официальный акаунт Nostr",
"RoboSats in Reddit": "RoboSats на Reddit",
"RoboSats main public support": "Основная общественная поддержка RoboSats",
"Support is only offered via SimpleX. Join our community if you have questions or want to hang out with other cool robots. Please, use our Github Issues if you find a bug or want to see new features!": "Поддержка предоставляется только через SimpleX. Присоединяйтесь к нашему сообществу, если у вас есть вопросы или вы хотите пообщаться с другими крутыми роботами. Пожалуйста, воспользуйтесь нашим Github issues, если вы обнаружили ошибку или хотите увидеть новые функции!",
"Tell us about a new feature or a bug": "Расскажите нам о новой функции или ошибке",
"We are abandoning Telegram! Our old TG groups": "We are abandoning Telegram! Our old TG groups",
"X Official Account": "X Official Account",
@ -264,6 +264,13 @@
"Lifetime contracted volume": "Объём контрактов за всё время",
"Loved by robots: receives positive comments by robots over the internet.": "Loved by robots: receives positive comments by robots over the internet.",
"Mainnet LN Node": "Mainnet LN Node",
"Twitter Official Account": "Официальный аккаунт в Twitter",
"We are abandoning Telegram! Our old TG groups": "Мы отказываемся от Telegram! Наши старые группы ТГ",
"#21": "Phrases in components/Dialogs/CoordinatorSummary.tsx",
"Book liquidity": "Ликвидность книги ордеров",
"Coordinator Summary": "Описание координатора",
"Current onchain payout fee": "Текущая комиссия за выплату ончейн",
"Last 24h mean premium": "Средняя наценка за последние 24 часа",
"Maker fee": "Комиссия мейкера",
"Matrix channel copied! {{matrix}}": "Matrix channel copied! {{matrix}}",
"Not a federation founder": "Not a federation founder",
@ -282,54 +289,109 @@
"The coordinator does not seem to receive exceptional love from robots over the internet": "The coordinator does not seem to receive exceptional love from robots over the internet",
"The privacy practices of this coordinator could improve": "The privacy practices of this coordinator could improve",
"Today active robots": "Сегодня активных роботов",
"Website": "Website",
"X": "X",
"#24": "Phrases in components/Dialogs/EnableTelegram.tsx",
"Browser": "Browser",
"#22": "Phrases in components/Dialogs/EnableTelegram.tsx",
"Browser": "Браузер",
"Enable": "Включить",
"Enable TG Notifications": "Включить уведомления TG",
"You will be taken to a conversation with RoboSats telegram bot. Simply open the chat and press Start. Note that by enabling telegram notifications you might lower your level of anonymity.": "Вы перейдёте к разговору с Telegram ботом RoboSats. Просто откройте чат и нажмите Старт. Обратите внимание, что включив уведомления Telegram, Вы можете снизить уровень анонимности.",
"#25": "Phrases in components/Dialogs/Exchange.tsx",
"Enabled RoboSats coordinators": "Enabled RoboSats coordinators",
"Exchange Summary": "Exchange Summary",
"Online RoboSats coordinators": "Online RoboSats coordinators",
"#26": "Phrases in components/Dialogs/F2fMap.tsx",
"Choose a location": "Choose a location",
"Save": "Save",
"#27": "Phrases in components/Dialogs/Learn.tsx",
"#23": "Phrases in components/Dialogs/F2fMap.tsx",
"Choose a location": "Выберите местоположение",
"Save": "Сохранить",
"#24": "Phrases in components/Dialogs/Info.tsx",
"(GitHub).": "(GitHub).",
"(Telegram)": "(Telegram)",
". RoboSats will never contact you. RoboSats will definitely never ask for your robot token.": ". RoboSats никогда не будет связыватся с Вами первым. RoboSats никогда не попросит Ваш токен робота.",
"All of them as long as they are fast. You can write down your preferred payment method(s). You will have to match with a peer who also accepts that method. The step to exchange fiat has a expiry time of 24 hours before a dispute is automatically open. We highly recommend using instant fiat payment rails.": "Все, если они быстрые. Вы можете записать свой предпочитаемый способ(ы) оплаты. Ваш метод оплаты должен совпасть с методом оплаты Вашего партнёра. Этап по обмену фиатной валюты составляет 24 часа, перед тем как автоматически откроется диспут. Мы настоятельно рекомендуем использовать мгновенные фиатные платёжные системы.",
"Are there trade limits?": "Существуют ли ограничения торговли?",
"At no point, AnonymousAlice01 and BafflingBob02 have to entrust the bitcoin funds to each other. In case they have a conflict, RoboSats staff will help resolving the dispute.": "Алиса01 и Боб02 не доверяют Биткойн средства друг другу ни на каком из этапов сделки. В случае возникновения конфликта персонал RoboSats поможет разрешить диспут.",
"Be aware your fiat payment provider might charge extra fees. In any case, the buyer bears the costs of sending fiat. That includes banking charges, transfer fees and foreign exchange spreads. The seller must receive exactly the amount stated in the order details.": "Имейте в виду, что ваш поставщик фиатных платежей может взимать дополнительную комиссию. В любом случае расходы по отправке фиата несет покупатель. Сюда входят банковские сборы, комиссии за перевод и разница курсов валют. Продавец должен получить ровно ту сумму, которая указана в деталях ордера.",
"Disclaimer": "Дисклеймер",
"How does it work?": "Как это работает?",
"How it works": "Как это работает",
"How to use": "Как использовать",
"In many countries using RoboSats is no different than using Ebay or Craiglist. Your regulation may vary. It is your responsibility to comply.": "Во многих странах использование RoboSats не отличается от использования Ebay или Craiglist. Ваше законодательство может отличаться. Вы обязаны его соблюдать.",
"Is RoboSats legal in my country?": "Легален ли RoboSats в моей стране?",
"Is RoboSats private?": "Является ли RoboSats конфиденциальным?",
"It is a BTC/FIAT peer-to-peer exchange over lightning.": "Это P2P обмен BTC/Фиат через Lightning.",
"It simplifies matchmaking and minimizes the need of trust. RoboSats focuses in privacy and speed.": "Он упрощает поиск партнёров и сводит к минимуму потребность в доверии. RoboSats фокусируется на конфиденциальности и скорости.",
"Maximum single trade size is {{maxAmount}} Satoshis to minimize lightning routing failure. There is no limits to the number of trades per day. A robot can only have one order at a time. However, you can use multiple robots simultaneously in different browsers (remember to back up your robot tokens!).": "Максимальный размер одной сделки составляет {{maxAmount}} Сатоши, чтобы свести к минимуму сбои Lightning раутинга. Количество сделок в день не ограничено. Робот может иметь только один ордер за раз. Однако Вы можете использовать несколько роботов одновременно в разных браузерах (не забудьте сделать резервную копию токенов робота!).",
"Project source code": "Исходный код проекта",
"RoboSats is an open source project ": "RoboSats — это проект с открытым исходным кодом.",
"RoboSats total fee for an order is {{tradeFee}}%. This fee is split to be covered by both: the order maker ({{makerFee}}%) and the order taker ({{takerFee}}%). In case an onchain address is used to received the Sats a variable swap fee applies. Check the exchange details by tapping on the bottom bar icon to see the current swap fee.": "Общая комиссия RoboSats за заказ составляет {{tradeFee}}%. Эта комиссия делится между: и создателем ордера ({{makerFee}}%), и получателем ордера ({{takerFee}}%). В случае, если для получения Сатох используется ончейн-адрес, взимается переменная комиссия за своп. Проверьте детали обмена, нажав на значок нижней панели, чтобы увидеть текущую комиссию за своп.",
"RoboSats will never ask you for your name, country or ID. RoboSats does not custody your funds and does not care who you are. RoboSats does not collect or custody any personal data. For best anonymity use Tor Browser and access the .onion hidden service.": "RoboSats никогда не спросит Ваше имя, страну или идентификацию личности. RoboSats не хранит Ваши средства и не заботится о том, кто Вы. RoboSats не собирает и не хранит никаких личных данных. Для максимальной анонимности используйте браузер Tor и доступ к скрытому сервису .onion.",
"The seller faces the same charge-back risk as with any other peer-to-peer service. Paypal or credit cards are not recommended.": "Продавец сталкивается с тем же риском возврата платежа, что и в случае с любым другим P2P сервисом. Paypal или кредитные карты не рекомендуются.",
"This is an experimental application, things could go wrong. Trade small amounts!": "Это экспериментальное приложение, что-то может пойти не так. Торгуйте небольшими суммами!",
"This lightning application is provided as is. It is in active development: trade with the utmost caution. There is no private support. Support is only offered via public channels ": "Это приложение Lightning предоставляется как есть. Оно находится в активной разработке: торгуйте с максимальной осторожностью. Частной поддержки нет. Поддержка предлагается только по публичным каналам ",
"What are the fees?": "Какова кописсия?",
"What are the risks?": "Каковы риски?",
"What happens if RoboSats suddenly disappears?": "Что произойдёт, если RoboSats внезапно исчезнет?",
"What is RoboSats?": "Что такое RoboSats?",
"What is the trust model?": "Какова модель доверия?",
"What payment methods are accepted?": "Какие способы оплаты принимаются?",
"You can also check the full guide in ": "Вы также можете ознакомиться с полным руководством в ",
"You can build more trust on RoboSats by inspecting the source code.": "Вы можете повысить доверие к RoboSats, проверив исходный код.",
"You can find a step-by-step description of the trade pipeline in ": "Вы можете найти пошаговое описание этапов сделки в ",
"Your sats will return to you. Any hold invoice that is not settled would be automatically returned even if RoboSats goes down forever. This is true for both, locked bonds and trading escrows. However, there is a small window between the seller confirms FIAT RECEIVED and the moment the buyer receives the satoshis when the funds could be permanently lost if RoboSats disappears. This window is about 1 second long. Make sure to have enough inbound liquidity to avoid routing failures. If you have any problem, reach out trough the RoboSats public channels.": "Ваши Сатоши вернутся к Вам. Любой неоплаченный инвойс будет автоматически возвращён, даже если RoboSats выйдет из строя навсегда. Это верно как для заблокированных залогов, так и для эскроу. Однако, есть небольшой промежуток времени между тем как продавец подтверждает ПОЛУЧЕНИЕ ФИАТА и тем как покупатель получает Cатоши, когда средства могут быть безвозвратно потеряны если RoboSats исчезнет. Это окно длится около 1ой секунды. Убедитесь, что у Вас достаточно входящей ликвидности, чтобы избежать сбоев раутинга. Если у Вас есть какие-либо проблемы, обратитесь к нам через публичные каналы RoboSats.",
"Your trading peer is the only one who can potentially guess anything about you. Keep your chat short and concise. Avoid providing non-essential information other than strictly necessary for the fiat payment.": "Ваш торговый партнёр — единственный, кто потенциально может узнать что-либо о Вас. Будьте краткими и лаконичными в чате. Избегайте предоставления второстепенной информации, кроме необходимой для платежа в фиатной валюте.",
"#25": "Phrases in components/Dialogs/Learn.tsx",
"Back": "Назад",
"You are about to visit Learn RoboSats. It hosts tutorials and documentation to help you learn how to use RoboSats and understand how it works.": "Вы собираетесь посетить Learn RoboSats. На нём размещены учебные пособия и документация, которые помогут Вам научиться использовать RoboSats и понять, как он работает.",
"#28": "Phrases in components/Dialogs/NoRobot.tsx",
"Generate Robot": "Создать Робота",
"Generate a robot avatar first. Then create your own order.": "Generate a robot avatar first. Then create your own order.",
"Generate a robot avatar first. Then create your own order.": "Сначала создайте аватар робота. Затем создайте свой ордер.",
"You do not have a robot avatar": "У Вас нет аватара робота",
"#29": "Phrases in components/Dialogs/Profile.tsx",
"Coordinators that know your robots": "Coordinators that know your robots",
"Your Robot": "Your Robot",
"#27": "Phrases in components/Dialogs/Notice.tsx",
"Coordinator Notice": "Уведомление координатора",
"#28": "Phrases in components/Dialogs/Profile.tsx",
"Claim": "Запросить",
"Enable Telegram Notifications": "Включить уведомления Telegram",
"Generate with Webln": "Генерировать с помощью Webln",
"Inactive order": "Неактивный ордер",
"Invoice for {{amountSats}} Sats": "Инвойс на {{amountSats}} Сатоши",
"No active orders": "Нет активных ордеров",
"One active order #{{orderID}}": "Один активный ордер #{{orderID}}",
"Submit": "Отправить",
"Telegram enabled": "Telegram включен",
"There it goes, thank you!🥇": "Вот так вот, спасибо!🥇",
"Use stealth invoices": "Использовать стелс инвойсы",
"You do not have previous orders": "У Вас нет предыдущих ордеров",
"Your Robot": "Ваш Robot",
"Your current order": "Ваш текущий ордер",
"Your earned rewards": "Ваши заработанные награды",
"Your last order #{{orderID}}": "Ваш последний ордер #{{orderID}}",
"Your robot": "Ваш Робот",
"#29": "Phrases in components/Dialogs/Stats.tsx",
"... somewhere on Earth!": "... где-то на земле!",
"24h contracted volume": "Объём контрактов за 24 часа",
"CLN version": "CLN верися",
"Client": "Клиент",
"Coordinator": "Координатор",
"Coordinator commit hash": "Хеш коммита координатора",
"LN Node": "LN Нода",
"LND version": "LND версия",
"Lifetime contracted volume": "Объём контрактов за всё время",
"Made with": "Сделано с",
"RoboSats version": "Версия RoboSats",
"Stats For Nerds": "Cтатистика для умников",
"and": "и",
"#30": "Phrases in components/Dialogs/StoreToken.tsx",
"Back it up!": "Сохраните его!",
"Done": "Готово",
"Store your robot token": "Сохранить токен робота",
"You might need to recover your robot avatar in the future: store it safely. You can simply copy it into another application.": "В будущем Вам может понадобиться восстановить аватар робота: сохраните его в безопасном месте. Вы можете просто скопировать его в другое приложение.",
"#31": "Phrases in components/Dialogs/Update.tsx",
"Download RoboSats {{coordinatorVersion}} APK from Github releases": "Download RoboSats {{coordinatorVersion}} APK from Github releases",
"Go away!": "Go away!",
"On Android RoboSats app ": "On Android RoboSats app ",
"On Tor Browser client simply refresh your tab (click here or press Ctrl+Shift+R)": "On Tor Browser client simply refresh your tab (click here or press Ctrl+Shift+R)",
"On remotely served browser client": "On remotely served browser client",
"On your own soverign node": "On your own soverign node",
"The RoboSats coordinator is on version {{coordinatorVersion}}, but your client app is {{clientVersion}}. This version mismatch might lead to a bad user experience.": "The RoboSats coordinator is on version {{coordinatorVersion}}, but your client app is {{clientVersion}}. This version mismatch might lead to a bad user experience.",
"Update your RoboSats client": "Update your RoboSats client",
"#32": "Phrases in components/FederationTable/index.tsx",
"Coordinators per page:": "Coordinators per page:",
"Enabled": "Enabled",
"No coordinators found.": "No coordinators found.",
"Up": "Up",
"#33": "Phrases in components/HostAlert/SelfhostedAlert.tsx",
"RoboSats client is served from your own node granting you the strongest security and privacy.": "RoboSats client is served from your own node granting you the strongest security and privacy.",
"You are self-hosting RoboSats": "You are self-hosting RoboSats",
"#34": "Phrases in components/HostAlert/UnsafeAlert.tsx",
"#31": "Phrases in components/Dialogs/UpdateClient.tsx",
"Download RoboSats {{coordinatorVersion}} APK from Github releases": "Скачать RoboSats {{coordinatorVersion}} APK из Github releases",
"Go away!": "Уходите!",
"On Android RoboSats app ": "На Android RoboSats апликации ",
"On Tor Browser client simply refresh your tab (click here or press Ctrl+Shift+R)": "В клиенте Tor Browser просто обновите вкладку (нажмите здесь или нажмите Ctrl+Shift+R).",
"On remotely served browser client": "На удаленно обслуживаемом клиенте браузера",
"On your own soverign node": "На вашем собственном суверенном ноде",
"The RoboSats coordinator is on version {{coordinatorVersion}}, but your client app is {{clientVersion}}. This version mismatch might lead to a bad user experience.": "Версия координатора RoboSats {{coordinatorVersion}}, но ваше клиентское приложение — {{clientVersion}}. Это несоответствие версий может привести к ухудшению пользовательского опыта.",
"Update your RoboSats client": "Обновите свой клиент RoboSats",
"#32": "Phrases in components/HostAlert/SelfhostedAlert.tsx",
"RoboSats client is served from your own node granting you the strongest security and privacy.": "Клиент RoboSats обслуживается с вашего собственного нода, что обеспечивает максимальную безопасность и конфиденциальность.",
"You are self-hosting RoboSats": "Вы самостоятельно размещаете RoboSats",
"#33": "Phrases in components/HostAlert/UnsafeAlert.tsx",
"You are not using RoboSats privately": "Вы не используете RoboSats приватно",
"#35": "Phrases in components/MakerForm/AmountRange.tsx",
"From": "От",
@ -337,107 +399,103 @@
"#36": "Phrases in components/MakerForm/MakerForm.tsx",
" at a {{discount}}% discount": " со скидкой {{discount}}%",
" at a {{premium}}% premium": " с наценкой {{premium}}%",
" at market price": " at market price",
" at market price": " по рыночной цене",
" of {{satoshis}} Satoshis": " {{satoshis}} Сатоши",
"Add New": "Добавить новый",
"Add geolocation for a face to face trade": "Add geolocation for a face to face trade",
"Amount Range": "Amount Range",
"Amount of BTC to swap for LN Sats": "Amount of BTC to swap for LN Sats",
"Add geolocation for a face to face trade": "Добавьте геолокацию для торговли лицом к лицу",
"Amount Range": "Диапазон сумм",
"Amount of BTC to swap for LN Sats": "Сумма BTC для обмена на LN Сатоши",
"Amount of fiat to exchange for bitcoin": "Количество фиата для обмена на Биткойн",
"Buy BTC for ": "Buy BTC for ",
"Buy BTC for ": "Купить BTC за ",
"Buy or Sell Bitcoin?": "Купить или Продать Биткойн?",
"Choose a Pricing Method": "Выберите метод расчёта цен",
"Clear form": "Clear form",
"Edit order": "Edit order",
"Enable advanced options": "Enable advanced options",
"Enter the destination of the Lightning swap": "Enter the destination of the Lightning swap",
"Escrow/Invoice Timer (HH:mm)": "Escrow/Invoice Timer (HH:mm)",
"Escrow/invoice step length": "Escrow/invoice step length",
"Exact": "Exact",
"Exact Amount": "Exact Amount",
"Face to Face Location": "Face to Face Location",
"Clear form": "Очистить форму",
"Edit order": "Изменить ордер",
"Enable advanced options": "Включить дополнительные параметры",
"Enter the destination of the Lightning swap": "Введите пункт назначения обмена Lightning",
"Escrow/Invoice Timer (HH:mm)": "Таймер эскроу/инвойса (ЧЧ:мм)",
"Escrow/invoice step length": "Длина шага эскроу/инвойса",
"Exact": "Точно",
"Exact Amount": "Точное количество",
"Face to Face Location": "Место встречи лицом к лицу",
"Fiat Payment Method(s)": "Способ(ы) оплаты",
"Fidelity Bond Size": "Размер залога",
"In or Out of Lightning?": "In or Out of Lightning?",
"In or Out of Lightning?": "В или из Lightning?",
"Let the price move with the market": "Пусть цена движется вместе с рынком",
"Must be less than {{maxAmount}}": "Must be less than {{maxAmount}}",
"Must be less than {{maxSats}": "Должно быть меньше чем {{maxSats}}",
"Must be less than {{max}}%": "Должно быть меньше чем {{max}}%",
"Must be more than {{minAmount}}": "Must be more than {{minAmount}}",
"Must be more than {{minSats}}": "Должно быть больше чем {{minSats}}",
"Must be more than {{min}}%": "Должно быть больше чем {{min}}%",
"Must be less than {{maxAmount}}": "Должна быть меньше чем {{maxAmount}}",
"Must be less than {{maxSats}": "Должна быть меньше чем {{maxSats}}",
"Must be less than {{max}}%": "Должна быть меньше чем {{max}}%",
"Must be more than {{minAmount}}": "Должна быть больше чем {{minAmount}}",
"Must be more than {{minSats}}": "Должна быть больше чем {{minSats}}",
"Must be more than {{min}}%": "Должна быть больше чем {{min}}%",
"Must be shorter than 65 characters": "Должно быть короче 65и символов",
"Onchain amount to receive (BTC)": "Onchain amount to receive (BTC)",
"Onchain amount to send (BTC)": "Onchain amount to send (BTC)",
"Onchain amount to receive (BTC)": "Сумма для получения на ончейн (BTC)",
"Onchain amount to send (BTC)": "Сумма для отправки на ончейн (BTC)",
"Order current rate:": "Текущий курс ордера:",
"Order for ": "Order for ",
"Order rate:": "Order rate:",
"Order for ": "Ордер на ",
"Order rate:": "Ставка ордера:",
"Premium over Market (%)": "Наценка по сравнению с рынком (%)",
"Public Duration (HH:mm)": "Публичная продолжительность (ЧЧ: мм)",
"Public order length": "Public order length",
"Public order length": "Длина общественного ордера",
"Relative": "Относительный",
"Satoshis": "Сатоши",
"Sell BTC for ": "Sell BTC for ",
"Sell BTC for ": "Продать BTC за ",
"Set a fix amount of satoshis": "Установить фиксированное количество Сатоши",
"Set the skin-in-the-game, increase for higher safety assurance": "Установите залог, увеличьте для большей безопасности.",
"Swap Destination(s)": "Поменять место(а) назначения",
"Swap into LN ": "Swap into LN ",
"Swap of ": "Swap of ",
"Swap out of LN ": "Swap out of LN ",
"Swap?": "Swap?",
"To protect your privacy, the exact location you pin will be slightly randomized.": "To protect your privacy, the exact location you pin will be slightly randomized.",
"You are already maker of an active order": "У Вас уже есть активный ордер",
"You can add new methods": "You can add new methods",
"You must fill the form correctly": "You must fill the form correctly",
"You receive approx {{swapSats}} LN Sats (fees might vary)": "You receive approx {{swapSats}} LN Sats (fees might vary)",
"You send approx {{swapSats}} LN Sats (fees might vary)": "You send approx {{swapSats}} LN Sats (fees might vary)",
"Swap into LN ": "Обмен на LN ",
"Swap of ": "Обмен ",
"Swap out of LN ": "Обмен из LN ",
"Swap?": "Менять?",
"To protect your privacy, the exact location you pin will be slightly randomized.": "Чтобы защитить вашу конфиденциальность, точное местоположение, которое вы закрепите, будет слегка рандомизировано.",
"You can add new methods": "Вы можете добавить новые методы",
"You must fill the form correctly": "Вы должны правильно заполнить форму",
"You receive approx {{swapSats}} LN Sats (fees might vary)": "Вы получаете примерно {{swapSats}} LN Sats (комиссия может различаться)",
"You send approx {{swapSats}} LN Sats (fees might vary)": "Вы отправляете примерно {{swapSats}} спутников LN (комиссия может различаться)",
"Your order fixed exchange rate": "Фиксированный курс обмена Вашего ордера",
"#37": "Phrases in components/MakerForm/SelectCoordinator.tsx",
"Order Host": "Order Host",
"The provider the lightning and communication infrastructure. The host will be in charge of providing support and solving disputes. The trade fees are set by the host. Make sure to only select order hosts that you trust!": "The provider the lightning and communication infrastructure. The host will be in charge of providing support and solving disputes. The trade fees are set by the host. Make sure to only select order hosts that you trust!",
"#38": "Phrases in components/Notifications/index.tsx",
"Lightning routing failed": "Lightning routing failed",
"New chat message": "New chat message",
"Order chat is open": "Order chat is open",
"Order has been disputed": "Order has been disputed",
"Order has been taken!": "Order has been taken!",
"Order has expired": "Order has expired",
"RoboSats - Simple and Private Bitcoin Exchange": "RoboSats - Simple and Private Bitcoin Exchange",
"Trade finished successfully!": "Trade finished successfully!",
"You can claim Sats!": "You can claim Sats!",
"You lost the dispute": "You lost the dispute",
"You won the dispute": "You won the dispute",
"₿ Rewards!": "₿ Rewards!",
"⚖️ Disputed!": "⚖️ Disputed!",
"✅ Bond!": "✅ Bond!",
"✅ Escrow!": "✅ Escrow!",
"❗⚡ Routing Failed": "❗⚡ Routing Failed",
"👍 dispute": "👍 dispute",
"👎 dispute": "👎 dispute",
"💬 Chat!": "💬 Chat!",
"💬 message!": "💬 message!",
"😪 Expired!": "😪 Expired!",
"🙌 Funished!": "🙌 Funished!",
"🥳 Taken!": "🥳 Taken!",
"#39": "Phrases in components/OrderDetails/TakeButton.tsx",
"#36": "Phrases in components/Notifications/index.tsx",
"Lightning routing failed": "Маршрутизация Lightning не удалась",
"New chat message": "Новое сообщение в чате",
"Order chat is open": "Чат ордера открыт",
"Order has been disputed": "Ордер оспорен",
"Order has been taken!": "Ордер был взят!",
"Order has expired": "Ордер истёк",
"RoboSats - Simple and Private Bitcoin Exchange": "RoboSats — простая и приватная биржа биткойнов",
"Trade finished successfully!": "Торговля завершилась успешно!",
"You can claim Sats!": "Вы можете заклеймить Сатоши!",
"You lost the dispute": "Вы проиграли диспут",
"You won the dispute": "Вы выиграли диспут",
"₿ Rewards!": "₿ Награды!",
"⚖️ Disputed!": "⚖️ Оспаривается!",
"✅ Bond!": "✅ Залог!",
"✅ Escrow!": "✅ Эскроу!",
"❗⚡ Routing Failed": "❗⚡ Маршрутизация не удалась",
"👍 dispute": "👍 диспут",
"👎 dispute": "👎 диспут",
"💬 Chat!": "💬 Чат!",
"💬 message!": "💬 сообщение!",
"😪 Expired!": "😪 Истёк!",
"🙌 Funished!": "🙌 Запершён!",
"🥳 Taken!": "🥳 Взят!",
"#37": "Phrases in components/OrderDetails/TakeButton.tsx",
"Amount {{currencyCode}}": "Сумма {{currencyCode}}",
"By taking this order you risk wasting your time. If the maker does not proceed in time, you will be compensated in satoshis for 50% of the maker bond.": "Взяв этот ордер, Вы рискуете потратить своё время впустую. Если мейкер не появится вовремя, Вы получите компенсацию в Сатоши в размере 50% от залога мейкера",
"Enter amount of fiat to exchange for bitcoin": "Введите количество фиата для обмена на Биткойн",
"Sounds fine": "Sounds fine",
"Sounds fine": "Звучит неплохо",
"Take Order": "Взять ордер",
"The maker is away": "Мейкера нет на месте",
"Too high": "Слишком много",
"Too low": "Слишком мало",
"Wait until you can take an order": "Подождите, пока Вы сможете взять ордер",
"You must specify an amount first": "Сначала необходимо указать сумму",
"You will receive {{satoshis}} Sats (Approx)": "You will receive {{satoshis}} Sats (Approx)",
"You will send {{satoshis}} Sats (Approx)": "You will send {{satoshis}} Sats (Approx)",
"#40": "Phrases in components/OrderDetails/index.tsx",
"You will receive {{satoshis}} Sats (Approx)": "Вы получите {{satoshis}} Сатоши (приблизительно)",
"You will send {{satoshis}} Sats (Approx)": "Вы отправите {{satoshis}} Сатоши (приблизительно)",
"#38": "Phrases in components/OrderDetails/index.tsx",
"Accepted payment methods": "Способ(ы) оплаты",
"Amount of Satoshis": "Количество Сатоши",
"Deposit timer": "Таймер депозита",
"Expires in": "Истекает через",
"F2F location": "F2F location",
"F2F location": "F2F локация",
"Order Details": "Детали ордера",
"Order ID": "ID ордера",
"Order host": "Order host",
@ -449,60 +507,40 @@
"Price and Premium": "Цена и Наценка",
"Swap destination": "Поменять место назначения",
"The order has expired": "Срок действия ордера истёк",
"The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.": "The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.",
"The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.": "Закрепленное местоположение является приблизительным. Точное местоположение места встречи необходимо сообщить в зашифрованном чате.",
"You cannot take an order yet! Wait {{timeMin}}m {{timeSec}}s": "Вы ещё не можете взять ордер! Подождите {{timeMin}}м {{timeSec}}с",
"You receive via Lightning {{amount}} Sats (Approx)": "You receive via Lightning {{amount}} Sats (Approx)",
"You receive via {{method}} {{amount}}": "You receive via {{method}} {{amount}}",
"You send via Lightning {{amount}} Sats (Approx)": "You send via Lightning {{amount}} Sats (Approx)",
"You send via {{method}} {{amount}}": "You send via {{method}} {{amount}}",
"You receive via Lightning {{amount}} Sats (Approx)": "Вы получаете через Lightning {{amount}} Сатоши (приблизительно)",
"You receive via {{method}} {{amount}}": "Вы получаете через {{method}} {{amount}}",
"You send via Lightning {{amount}} Sats (Approx)": "Вы отправляете через Lightning {{amount}} Сатоши (приблизительно)",
"You send via {{method}} {{amount}}": "Вы отправляете через {{method}} {{amount}}",
"{{price}} {{currencyCode}}/BTC - Premium: {{premium}}%": "{{price}} {{currencyCode}}/BTC - Наценка: {{premium}}%",
"#41": "Phrases in components/RobotInfo/index.tsx",
"Active order!": "Active order!",
"Claim": "Запросить",
"Claim Sats!": "Claim Sats!",
"Enable Telegram Notifications": "Включить уведомления Telegram",
"Generate with Webln": "Generate with Webln",
"Inactive order": "Неактивный ордер",
"Invoice for {{amountSats}} Sats": "Инвойс на {{amountSats}} Сатоши",
"No active orders": "Нет активных ордеров",
"One active order #{{orderID}}": "Один активный ордер #{{orderID}}",
"Submit": "Отправить",
"Telegram enabled": "Telegram включен",
"There it goes!": "There it goes!",
"Use stealth invoices": "Использовать стелс инвойсы",
"You do not have previous orders": "У Вас нет предыдущих ордеров",
"Your compensations": "Your compensations",
"Your current order": "Ваш текущий ордер",
"Your last order #{{orderID}}": "Ваш последний ордер #{{orderID}}",
"finished order": "finished order",
"#42": "Phrases in components/SettingsForm/index.tsx",
"Dark": "Dark",
"Fiat": "Fiat",
"Light": "Light",
"Mainnet": "Mainnet",
"Swaps": "Swaps",
"Testnet": "Testnet",
"#43": "Phrases in components/TorConnection/index.tsx",
"#44": "Phrases in components/TradeBox/CancelButton.tsx",
"#39": "Phrases in components/SettingsForm/index.tsx",
"Dark": "Темный",
"Fiat": "Фиат",
"Light": "Светлый",
"Mainnet": "Основная сеть",
"Swaps": "Обмен",
"Testnet": "Тестовая сеть",
"#40": "Phrases in components/TradeBox/CancelButton.tsx",
"Cancel": "Отменить",
"Cancel order and unlock bond instantly": "Cancel order and unlock bond instantly",
"Cancel order and unlock bond instantly": "Отменить ордер и мгновенно разблокировать залог",
"Collaborative Cancel": "Совместная отмена",
"Unilateral cancelation (bond at risk!)": "Unilateral cancelation (bond at risk!)",
"#45": "Phrases in components/TradeBox/CollabCancelAlert.tsx",
"Unilateral cancelation (bond at risk!)": "Одностороннее аннулирование (залог под угрозой!)",
"#41": "Phrases in components/TradeBox/CollabCancelAlert.tsx",
"You asked for a collaborative cancellation": "Вы запросили совместную отмену",
"{{nickname}} is asking for a collaborative cancel": "{{nickname}} запрашивает совместную отмену",
"#46": "Phrases in components/TradeBox/TradeSummary.tsx",
"Buyer": "Покупатель",
"Completed in": "Завершено за",
"Contract exchange rate": "Курс обмена контракта",
"Coordinator trade revenue": "Coordinator trade revenue",
"Export trade summary": "Export trade summary",
"Coordinator trade revenue": "Доход координатора сделки",
"Export trade summary": "Экспортировать сводку торговли",
"Maker": "Мейкер",
"Maker bond": "Залог мейкера",
"Mining fee": "Комиссия майнерам",
"Onchain swap fee": "Комиссия за ончйн своп",
"Onchain swap fee": "Комиссия за ончйн обмен",
"Received": "Получено",
"Routing budget": "Routing budget",
"Routing budget": "Бюджет маршрутизации",
"Seller": "Продавец",
"Sent": "Отправлено",
"Taker": "Тейкер",
@ -523,13 +561,13 @@
"Cancel the order?": "Отменить ордер?",
"Confirm Cancel": "Подтвердить отмену",
"If the order is cancelled now you will lose your bond.": "Если ордер будет отменён сейчас, Вы потеряете залог.",
"#49": "Phrases in components/TradeBox/Dialogs/ConfirmCollabCancel.tsx",
"Accept Cancelation": "Accept Cancelation",
"#45": "Phrases in components/TradeBox/Dialogs/ConfirmCollabCancel.tsx",
"Accept Cancelation": "Принять отмену",
"Ask for Cancel": "Запросить отмену",
"Collaborative cancel the order?": "Совместно отменить ордер?",
"The trade escrow has been posted. The order can be cancelled only if both, maker and taker, agree to cancel.": "Эскроу сделки был опубликован. Ордер может быть отменен только в том случае, если оба, мейкер и тейкер, согласны на отмену.",
"Your peer has asked for cancellation": "Your peer has asked for cancellation",
"#50": "Phrases in components/TradeBox/Dialogs/ConfirmDispute.tsx",
"Your peer has asked for cancellation": "Ваш партнёр запросил отмену",
"#46": "Phrases in components/TradeBox/Dialogs/ConfirmDispute.tsx",
"Agree and open dispute": "Согласиться и открыть диспут",
"Disagree": "Не согласиться",
"Do you want to open a dispute?": "Хотите ли Вы открыть диспут?",
@ -538,17 +576,17 @@
"#51": "Phrases in components/TradeBox/Dialogs/ConfirmFiatReceived.tsx",
"Confirm": "Подтвердить",
"Confirm you received {{amount}} {{currencyCode}}?": "Подтвердить получение {{amount}} {{currencyCode}}?",
"Confirming that you received {{amount}} {{currencyCode}} will finalize the trade. The satoshis in the escrow will be released to the buyer. Only confirm after {{amount}} {{currencyCode}} have arrived to your account. Note that if you have received the payment and do not click confirm, you risk losing your bond.": "Confirming that you received {{amount}} {{currencyCode}} will finalize the trade. The satoshis in the escrow will be released to the buyer. Only confirm after {{amount}} {{currencyCode}} have arrived to your account. Note that if you have received the payment and do not click confirm, you risk losing your bond.",
"#52": "Phrases in components/TradeBox/Dialogs/ConfirmFiatSent.tsx",
"Confirm you sent {{amount}} {{currencyCode}}?": "Confirm you sent {{amount}} {{currencyCode}}?",
"Confirming that you sent {{amount}} {{currencyCode}} will allow your peer to finalize the trade. If you have not yet sent it and you still proceed to falsely confirm, you risk losing your bond.": "Confirming that you sent {{amount}} {{currencyCode}} will allow your peer to finalize the trade. If you have not yet sent it and you still proceed to falsely confirm, you risk losing your bond.",
"#53": "Phrases in components/TradeBox/Dialogs/ConfirmUndoFiatSent.tsx",
"READ. In case your payment to the seller has been blocked and it is absolutely impossible to finish the trade, you can revert your confirmation of \"Fiat sent\". Do so only if you and the seller have ALREADY AGREED in the chat to proceed to a collaborative cancellation. After confirming, the \"Collaborative cancel\" button will be visible again. Only click this button if you know what you are doing. First time users of RoboSats are highly discouraged from performing this action! Make 100% sure your payment has failed and the amount is in your account.": "READ. In case your payment to the seller has been blocked and it is absolutely impossible to finish the trade, you can revert your confirmation of \"Fiat sent\". Do so only if you and the seller have ALREADY AGREED in the chat to proceed to a collaborative cancellation. After confirming, the \"Collaborative cancel\" button will be visible again. Only click this button if you know what you are doing. First time users of RoboSats are highly discouraged from performing this action! Make 100% sure your payment has failed and the amount is in your account.",
"Revert the confirmation of fiat sent?": "Revert the confirmation of fiat sent?",
"Wait ({{time}})": "Wait ({{time}})",
"#54": "Phrases in components/TradeBox/Dialogs/WebLN.tsx",
"Amount not yet locked, please check your WebLN wallet.": "Amount not yet locked, please check your WebLN wallet.",
"Invoice not received, please check your WebLN wallet.": "Платёж не получен. Пожалуйста, проверьте Ваш WebLN Кошелёк.",
"Confirming that you received {{amount}} {{currencyCode}} will finalize the trade. The satoshis in the escrow will be released to the buyer. Only confirm after {{amount}} {{currencyCode}} have arrived to your account. Note that if you have received the payment and do not click confirm, you risk losing your bond.": "Подтвердив, что вы получили {{amount}} {{currencyCode}}, сделка будет завершена. Сатоши на эскроу будут переданы покупателю. Подтверждайте только после того, как {{amount}} {{currencyCode}} поступит на ваш счёт. Обратите внимание: если вы получили платеж и не нажали «Подтвердить», вы рискуете потерять залог.",
"#48": "Phrases in components/TradeBox/Dialogs/ConfirmFiatSent.tsx",
"Confirm you sent {{amount}} {{currencyCode}}?": "Подтвердите, что отправили {{amount}} {{currencyCode}}?",
"Confirming that you sent {{amount}} {{currencyCode}} will allow your peer to finalize the trade. If you have not yet sent it and you still proceed to falsely confirm, you risk losing your bond.": "Подтверждение того, что вы отправили {{amount}} {{currencyCode}}, позволит вашему партнеру завершить сделку. Если вы ещё не отправили его и все равно продолжите ложное подтверждение, вы рискуете потерять залог.",
"#49": "Phrases in components/TradeBox/Dialogs/ConfirmUndoFiatSent.tsx",
"READ. In case your payment to the seller has been blocked and it is absolutely impossible to finish the trade, you can revert your confirmation of \"Fiat sent\". Do so only if you and the seller have ALREADY AGREED in the chat to proceed to a collaborative cancellation. After confirming, the \"Collaborative cancel\" button will be visible again. Only click this button if you know what you are doing. First time users of RoboSats are highly discouraged from performing this action! Make 100% sure your payment has failed and the amount is in your account.": "ЧИТАЙТЕ. В случае, если ваш платёж продавцу заблокирован и завершить сделку абсолютно невозможно, вы можете отменить подтверждение \"Fiat sent\". Делайте это только в том случае, если вы и продавец УЖЕ ДОГОВОРИЛИСЬ в чате о совместной отмене. После подтверждения кнопка \"Collaborative cancel\" снова станет видна. Нажимайте эту кнопку только в том случае, если вы знаете, что делаете. Пользователям впервые использующим RoboSats, крайне не рекомендуется выполнять это действие! Убедитесь на 100 %, что ваш платёж не прошел и сумма поступила на ваш счет.",
"Revert the confirmation of fiat sent?": "Отменить подтверждение отправленного распоряжения?",
"Wait ({{time}})": "Ждать ({{time}})",
"#50": "Phrases in components/TradeBox/Dialogs/WebLN.tsx",
"Amount not yet locked, please check your WebLN wallet.": "Сумма еще не заблокирована, проверьте свой кошелёк WebLN.",
"Invoice not received, please check your WebLN wallet.": "Платёж не получен. Пожалуйста, проверьте Ваш WebLN кошелёк.",
"WebLN": "WebLN",
"You can close now your WebLN wallet popup.": "Вы можете закрыть всплывающее окно WebLN Кошелька",
"#55": "Phrases in components/TradeBox/EncryptedChat/ChatBottom/index.tsx",
@ -556,9 +594,9 @@
"Export": "Экспортировать",
"Save full log as a JSON file (messages and credentials)": "Сохранить все логи в виде JSON файла (сообщения и учётные данные)",
"Verify your privacy": "Проверьте свою конфиденциальность",
"#56": "Phrases in components/TradeBox/EncryptedChat/ChatHeader/index.tsx",
"...waiting": "...waiting",
"Activate slow mode (use it when the connection is slow)": "Activate slow mode (use it when the connection is slow)",
"#52": "Phrases in components/TradeBox/EncryptedChat/ChatHeader/index.tsx",
"...waiting": "...ожидание",
"Activate slow mode (use it when the connection is slow)": "Активировать медленный режим (используйте его, когда соединение медленное)",
"Peer": "Партнёр",
"You": "Вы",
"connected": "подключен",
@ -567,38 +605,38 @@
"Connecting...": "Подключаем...",
"Send": "Отправить",
"Type a message": "Введите сообщение",
"Waiting for peer public key...": "Waiting for peer public key...",
"#58": "Phrases in components/TradeBox/EncryptedChat/EncryptedTurtleChat/index.tsx",
"#59": "Phrases in components/TradeBox/EncryptedChat/MessageCard/index.tsx",
"#60": "Phrases in components/TradeBox/Forms/Dispute.tsx",
"Attach chat logs": "Attach chat logs",
"Attaching chat logs helps the dispute resolution process and adds transparency. However, it might compromise your privacy.": "Attaching chat logs helps the dispute resolution process and adds transparency. However, it might compromise your privacy.",
"Waiting for peer public key...": "Ожидание публичного ключа партнёра...",
"#54": "Phrases in components/TradeBox/EncryptedChat/EncryptedTurtleChat/index.tsx",
"#55": "Phrases in components/TradeBox/EncryptedChat/MessageCard/index.tsx",
"#56": "Phrases in components/TradeBox/Forms/Dispute.tsx",
"Attach chat logs": "Прикрепите журналы чата",
"Attaching chat logs helps the dispute resolution process and adds transparency. However, it might compromise your privacy.": "Прикрепление журналов чата помогает процессу разрешения споров и повышает прозрачность. Однако это может поставить под угрозу вашу конфиденциальность.",
"Submit dispute statement": "Отправить заявление о диспуте",
"#61": "Phrases in components/TradeBox/Forms/LightningPayout.tsx",
"Advanced options": "Advanced options",
"Invoice to wrap": "Invoice to wrap",
"#57": "Phrases in components/TradeBox/Forms/LightningPayout.tsx",
"Advanced options": "Расширенные настройки",
"Invoice to wrap": "Обернуть инвойс",
"Payout Lightning Invoice": "Счет на выплату Лайтнинг",
"Proxy Budget": "Proxy Budget",
"Routing Budget": "Routing Budget",
"Server": "Server",
"Submit invoice for {{amountSats}} Sats": "Submit invoice for {{amountSats}} Sats",
"Use Lnproxy": "Use Lnproxy",
"Wrap": "Wrap",
"Wrapped invoice": "Wrapped invoice",
"#62": "Phrases in components/TradeBox/Forms/OnchainPayout.tsx",
"Proxy Budget": "Прокси-бюджет",
"Routing Budget": "Бюджет маршрутизации",
"Server": "Сервер",
"Submit invoice for {{amountSats}} Sats": "Отправьте счет на {{amountSats}} Сатоши",
"Use Lnproxy": "Использовать Lnproxy",
"Wrap": "Обернуть",
"Wrapped invoice": "Обернутый инвойс",
"#58": "Phrases in components/TradeBox/Forms/OnchainPayout.tsx",
"Bitcoin Address": "Биткойн Адрес",
"Final amount you will receive": "Окончательная сумма, которую Вы получите",
"Invalid": "Неверно",
"Mining Fee": "Комиссия Майнерам",
"RoboSats coordinator will do a swap and send the Sats to your onchain address.": "RoboSats coordinator will do a swap and send the Sats to your onchain address.",
"Swap fee": "Комиссия за своп",
"#63": "Phrases in components/TradeBox/Prompts/Chat.tsx",
"RoboSats coordinator will do a swap and send the Sats to your onchain address.": "Координатор RoboSats выполнит своп и отправит Сатоши на ваш ончейн адрес.",
"Swap fee": "Комиссия за обмен",
"#59": "Phrases in components/TradeBox/Prompts/Chat.tsx",
"Confirm {{amount}} {{currencyCode}} received": "Подтвердить получение {{amount}} {{currencyCode}}",
"Confirm {{amount}} {{currencyCode}} sent": "Подтвердить отправку {{amount}} {{currencyCode}}",
"Open Dispute": "Открыть диспут",
"Payment failed?": "Payment failed?",
"Payment failed?": "Платеж не прошел?",
"Say hi! Be helpful and concise. Let them know how to send you {{amount}} {{currencyCode}}.": "Скажите привет! Будьте доброжелательны и кратки. Сообщите, как отправить Вам {{amount}} {{currencyCode}}.",
"To open a dispute you need to wait": "To open a dispute you need to wait",
"To open a dispute you need to wait": "Чтобы открыть диспут нужно подождать",
"Wait for the seller to confirm he has received the payment.": "Подождите, пока продавец подтвердит, что он получил платёж.",
"#64": "Phrases in components/TradeBox/Prompts/Dispute.tsx",
"Please, submit your statement. Be clear and specific about what happened and provide the necessary evidence. You MUST provide a contact method: burner email, SimpleX incognito link or telegram (make sure to create a searcheable username) to follow up with the dispute solver (your trade host/coordinator). Disputes are solved at the discretion of real robots (aka humans), so be as helpful as possible to ensure a fair outcome.": "Please, submit your statement. Be clear and specific about what happened and provide the necessary evidence. You MUST provide a contact method: burner email, SimpleX incognito link or telegram (make sure to create a searcheable username) to follow up with the dispute solver (your trade host/coordinator). Disputes are solved at the discretion of real robots (aka humans), so be as helpful as possible to ensure a fair outcome.",
@ -648,49 +686,49 @@
"#78": "Phrases in components/TradeBox/Prompts/Successful.tsx",
"Renew": "Renew",
"RoboSats gets better with more liquidity and users. Tell a bitcoiner friend about Robosats!": "RoboSats становится лучше с большей ликвидностью и пользователями. Расскажите другу-биткойнеру о Robosat!",
"Sending coins to": "Sending coins to",
"Sending coins to": "Отправка монет на",
"Start Again": "Начать Снова",
"Thank you for using Robosats!": "Спасибо за использование Robosats!",
"Thank you! RoboSats loves you too": "Thank you! RoboSats loves you too",
"Thank you! RoboSats loves you too": "Спасибо! RoboSats тоже Вас любит",
"Your TXID": "Ваш TXID",
"#79": "Phrases in components/TradeBox/Prompts/TakerFound.tsx",
"Please wait for the taker to lock a bond. If the taker does not lock a bond in time, the order will be made public again.": "Пожалуйста, подождите, пока тейкер заблокирует залог. Если тейкер не заблокирует залог вовремя, ордер будет снова опубликован",
"#80": "Phrases in pro/LandingDialog/index.tsx",
"A robot technician has arrived!": "A robot technician has arrived!",
"I bring my own robots, here they are. (Drag and drop workspace.json)": "I bring my own robots, here they are. (Drag and drop workspace.json)",
"My first time here. Generate a new Robot Garage and extended robot token (xToken).": "My first time here. Generate a new Robot Garage and extended robot token (xToken).",
"#81": "Phrases in pro/ToolBar/index.tsx",
"Customize viewports": "Customize viewports",
"Freeze viewports": "Freeze viewports",
"#76": "Phrases in pro/LandingDialog/index.tsx",
"A robot technician has arrived!": "Прибыл робот-техник!",
"I bring my own robots, here they are. (Drag and drop workspace.json)": "Я привожу своих роботов, вот они. (Перетащите workspace.json)",
"My first time here. Generate a new Robot Garage and extended robot token (xToken).": "Я здесь впервые. Создайте новый гараж роботов и расширенный токен робота (xToken).",
"#77": "Phrases in pro/ToolBar/index.tsx",
"Customize viewports": "Настройка видовых экранов",
"Freeze viewports": "Заморозить видовые экраны",
"desktop_unsafe_alert": "Некоторые функции отключены для Вашей безопасности (чат) и без них у Вас не будет возможности завершить сделку. Чтобы защитить Вашу конфиденциальность и полностью включить RoboSats, используйте <1>Tor Browser</1> и посетите <3>Onion</3> сайт.",
"phone_unsafe_alert": "У Вас не будет возможности завершить сделку. Используйте <1>Tor Browser</1> и посетите <3>Onion</3> сайт.",
"rate_robosats": "Что Вы думаете о <1>RoboSats</1>?",
"let_us_know_hot_to_improve": "Сообщите нам, как можно улучшить платформу (<1>Telegram</1> / <3>Github</3>)",
"open_dispute": "Для открытия диспута нужно подождать <1><1/>",
"Waiting for maker bond": "Waiting for maker bond",
"Public": "Public",
"Waiting for taker bond": "Waiting for taker bond",
"Cancelled": "Cancelled",
"Expired": "Expired",
"Waiting for trade collateral and buyer invoice": "Waiting for trade collateral and buyer invoice",
"Waiting only for seller trade collateral": "Waiting only for seller trade collateral",
"Waiting only for buyer invoice": "Waiting only for buyer invoice",
"Sending fiat - In chatroom": "Sending fiat - In chatroom",
"Fiat sent - In chatroom": "Fiat sent - In chatroom",
"In dispute": "In dispute",
"Collaboratively cancelled": "Collaboratively cancelled",
"Sending satoshis to buyer": "Sending satoshis to buyer",
"Sucessful trade": "Successful trade",
"Failed lightning network routing": "Failed lightning network routing",
"Wait for dispute resolution": "Wait for dispute resolution",
"Maker lost dispute": "Maker lost dispute",
"Taker lost dispute": "Taker lost dispute",
"Invoice expired. You did not confirm publishing the order in time. Make a new order.": "Invoice expired. You did not confirm publishing the order in time. Make a new order.",
"This order has been cancelled by the maker": "This order has been cancelled by the maker",
"Invoice expired. You did not confirm taking the order in time.": "Invoice expired. You did not confirm taking the order in time.",
"Invalid Order Id": "Invalid Order Id",
"You must have a robot avatar to see the order details": "You must have a robot avatar to see the order details",
"This order has been cancelled collaborativelly": "This order has been cancelled collaboratively",
"This order is not available": "This order is not available",
"The Robotic Satoshis working in the warehouse did not understand you. Please, fill a Bug Issue in Github https://github.com/RoboSats/robosats/issues": "The Robotic Satoshis working in the warehouse did not understand you. Please, fill a Bug Issue in Github https://github.com/RoboSats/robosats/issues"
"Waiting for maker bond": "Ожидание залога мейкера",
"Public": "Публичный",
"Waiting for taker bond": "Ожидание залога тейкера",
"Cancelled": "Отменён",
"Expired": "Истёк",
"Waiting for trade collateral and buyer invoice": "Ожидание залога и инвойса покупателя",
"Waiting only for seller trade collateral": "Ожидание только залога от продавца",
"Waiting only for buyer invoice": "Ожидание только залога от покупателя",
"Sending fiat - In chatroom": "Отправка фиата - В чат",
"Fiat sent - In chatroom": "Фиат отправлен - В чат",
"In dispute": "В диспуте",
"Collaboratively cancelled": "Совместно отменено",
"Sending satoshis to buyer": "Отправка Сатоши покупателю",
"Sucessful trade": "Успешная торговля",
"Failed lightning network routing": "Неудачная маршрутизация сети Lightning",
"Wait for dispute resolution": "Дождитесь разрешения диспута",
"Maker lost dispute": "Мейкер проиграл диспут",
"Taker lost dispute": "Тейкер проиграл диспут",
"Invoice expired. You did not confirm publishing the order in time. Make a new order.": "Срок действия инвойса истёк. Вы не подтвердили публикацию ордера вовремя. Сделайте новый ордер.",
"This order has been cancelled by the maker": "Этот ордер был отменён производителем",
"Invoice expired. You did not confirm taking the order in time.": "Срок действия инвойса истёк. Вы не подтвердили принятие ордера вовремя.",
"Invalid Order Id": "Неверный ID ордера",
"You must have a robot avatar to see the order details": "Чтобы увидеть детали ордера, у вас должен быть аватар-робот.",
"This order has been cancelled collaborativelly": "Этот ордер был отменен совместно.",
"This order is not available": "Этот ордер недоступен",
"The Robotic Satoshis working in the warehouse did not understand you. Please, fill a Bug Issue in Github https://github.com/RoboSats/robosats/issues": "Роботы-сатоши, работающие на складе, вас не поняли. Пожалуйста, заполните сообщение об ошибке в Github https://github.com/RoboSats/robosats/issues."
}

432
mobile/package-lock.json generated
View File

@ -8,8 +8,8 @@
"name": "robosats",
"version": "0.6.0",
"dependencies": {
"@react-native-clipboard/clipboard": "^1.12.1",
"@react-native-community/netinfo": "^11.1.1",
"@react-native-clipboard/clipboard": "^1.13.2",
"@react-native-community/netinfo": "^11.2.1",
"react": "18.2.0",
"react-native": "^0.71.8",
"react-native-encrypted-storage": "^4.0.3",
@ -27,20 +27,20 @@
"@typescript-eslint/parser": "^5.59.6",
"babel-jest": "^29.7.0",
"eslint": "^8.39.0",
"eslint-config-prettier": "^9.0.0",
"eslint-config-prettier": "^9.1.0",
"eslint-config-standard-with-typescript": "^34.0.1",
"eslint-import-resolver-typescript": "^3.6.0",
"eslint-plugin-import": "^2.27.5",
"eslint-plugin-n": "^15.7.0",
"eslint-plugin-prettier": "^4.2.1",
"eslint-plugin-prettier": "^5.1.1",
"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.0",
"prettier": "^3.1.1",
"react-test-renderer": "18.2.0",
"typescript": "^5.3.2"
"typescript": "^5.3.3"
}
},
"node_modules/@ampproject/remapping": {
@ -2588,10 +2588,75 @@
"node": ">= 8"
}
},
"node_modules/@pkgr/utils": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/@pkgr/utils/-/utils-2.4.2.tgz",
"integrity": "sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==",
"dev": true,
"dependencies": {
"cross-spawn": "^7.0.3",
"fast-glob": "^3.3.0",
"is-glob": "^4.0.3",
"open": "^9.1.0",
"picocolors": "^1.0.0",
"tslib": "^2.6.0"
},
"engines": {
"node": "^12.20.0 || ^14.18.0 || >=16.0.0"
},
"funding": {
"url": "https://opencollective.com/unts"
}
},
"node_modules/@pkgr/utils/node_modules/is-docker": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
"integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==",
"dev": true,
"bin": {
"is-docker": "cli.js"
},
"engines": {
"node": ">=8"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/@pkgr/utils/node_modules/is-wsl": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
"integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
"dev": true,
"dependencies": {
"is-docker": "^2.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/@pkgr/utils/node_modules/open": {
"version": "9.1.0",
"resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz",
"integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==",
"dev": true,
"dependencies": {
"default-browser": "^4.0.0",
"define-lazy-prop": "^3.0.0",
"is-inside-container": "^1.0.0",
"is-wsl": "^2.2.0"
},
"engines": {
"node": ">=14.16"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/@react-native-clipboard/clipboard": {
"version": "1.12.1",
"resolved": "https://registry.npmjs.org/@react-native-clipboard/clipboard/-/clipboard-1.12.1.tgz",
"integrity": "sha512-+PNk8kflpGte0W1Nz61/Dp8gHTxyuRjkVyRYBawymSIGTDHCC/zOJSbig6kGIkD8MeaGHC2vGYQJyUyCrgVPBQ==",
"version": "1.13.2",
"resolved": "https://registry.npmjs.org/@react-native-clipboard/clipboard/-/clipboard-1.13.2.tgz",
"integrity": "sha512-uVM55oEGc6a6ZmSATDeTcMm55A/C1km5X47g0xaoF0Zagv7N/8RGvLceA5L/izPwflIy78t7XQeJUcnGSib0nA==",
"peerDependencies": {
"react": ">=16.0",
"react-native": ">=0.57.0"
@ -4090,15 +4155,36 @@
"eslint": ">=7.0.0"
}
},
"node_modules/@react-native-community/eslint-config/node_modules/eslint-plugin-prettier": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz",
"integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==",
"dev": true,
"dependencies": {
"prettier-linter-helpers": "^1.0.0"
},
"engines": {
"node": ">=12.0.0"
},
"peerDependencies": {
"eslint": ">=7.28.0",
"prettier": ">=2.0.0"
},
"peerDependenciesMeta": {
"eslint-config-prettier": {
"optional": true
}
}
},
"node_modules/@react-native-community/eslint-plugin": {
"version": "1.3.0",
"dev": true,
"license": "MIT"
},
"node_modules/@react-native-community/netinfo": {
"version": "11.1.1",
"resolved": "https://registry.npmjs.org/@react-native-community/netinfo/-/netinfo-11.1.1.tgz",
"integrity": "sha512-AoIcGL7WeXobSxMUz0ukXXCaQgIReR3xLfZJ/GTd3HN/iceuN6UvqAddfjxgqQWMcb6t2SfrjQnbUPfvattp/A==",
"version": "11.2.1",
"resolved": "https://registry.npmjs.org/@react-native-community/netinfo/-/netinfo-11.2.1.tgz",
"integrity": "sha512-n9kgmH7vLaU7Cdo8vGfJGGwhrlgppaOSq5zKj9I7H4k5iRM3aNtwURw83mgrc22Ip7nSye2afZV2xDiIyvHttQ==",
"peerDependencies": {
"react-native": ">=0.59"
}
@ -5184,6 +5270,15 @@
],
"license": "MIT"
},
"node_modules/big-integer": {
"version": "1.6.52",
"resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz",
"integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==",
"dev": true,
"engines": {
"node": ">=0.6"
}
},
"node_modules/bl": {
"version": "4.1.0",
"license": "MIT",
@ -5193,6 +5288,18 @@
"readable-stream": "^3.4.0"
}
},
"node_modules/bplist-parser": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz",
"integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==",
"dev": true,
"dependencies": {
"big-integer": "^1.6.44"
},
"engines": {
"node": ">= 5.10.0"
}
},
"node_modules/brace-expansion": {
"version": "1.1.11",
"license": "MIT",
@ -5308,6 +5415,21 @@
"dev": true,
"license": "ISC"
},
"node_modules/bundle-name": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz",
"integrity": "sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==",
"dev": true,
"dependencies": {
"run-applescript": "^5.0.0"
},
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/bytes": {
"version": "3.0.0",
"license": "MIT",
@ -5837,6 +5959,150 @@
"node": ">=0.10.0"
}
},
"node_modules/default-browser": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz",
"integrity": "sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==",
"dev": true,
"dependencies": {
"bundle-name": "^3.0.0",
"default-browser-id": "^3.0.0",
"execa": "^7.1.1",
"titleize": "^3.0.0"
},
"engines": {
"node": ">=14.16"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/default-browser-id": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz",
"integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==",
"dev": true,
"dependencies": {
"bplist-parser": "^0.2.0",
"untildify": "^4.0.0"
},
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/default-browser/node_modules/execa": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz",
"integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==",
"dev": true,
"dependencies": {
"cross-spawn": "^7.0.3",
"get-stream": "^6.0.1",
"human-signals": "^4.3.0",
"is-stream": "^3.0.0",
"merge-stream": "^2.0.0",
"npm-run-path": "^5.1.0",
"onetime": "^6.0.0",
"signal-exit": "^3.0.7",
"strip-final-newline": "^3.0.0"
},
"engines": {
"node": "^14.18.0 || ^16.14.0 || >=18.0.0"
},
"funding": {
"url": "https://github.com/sindresorhus/execa?sponsor=1"
}
},
"node_modules/default-browser/node_modules/human-signals": {
"version": "4.3.1",
"resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz",
"integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==",
"dev": true,
"engines": {
"node": ">=14.18.0"
}
},
"node_modules/default-browser/node_modules/is-stream": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
"integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
"dev": true,
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/default-browser/node_modules/mimic-fn": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz",
"integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
"dev": true,
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/default-browser/node_modules/npm-run-path": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.2.0.tgz",
"integrity": "sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==",
"dev": true,
"dependencies": {
"path-key": "^4.0.0"
},
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/default-browser/node_modules/onetime": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz",
"integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
"dev": true,
"dependencies": {
"mimic-fn": "^4.0.0"
},
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/default-browser/node_modules/path-key": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz",
"integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
"dev": true,
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/default-browser/node_modules/strip-final-newline": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz",
"integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==",
"dev": true,
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/defaults": {
"version": "1.0.4",
"license": "MIT",
@ -5847,6 +6113,18 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/define-lazy-prop": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz",
"integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==",
"dev": true,
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/define-properties": {
"version": "1.2.0",
"dev": true,
@ -6181,9 +6459,9 @@
}
},
"node_modules/eslint-config-prettier": {
"version": "9.0.0",
"resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz",
"integrity": "sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==",
"version": "9.1.0",
"resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz",
"integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==",
"dev": true,
"bin": {
"eslint-config-prettier": "bin/cli.js"
@ -6500,20 +6778,30 @@
"license": "ISC"
},
"node_modules/eslint-plugin-prettier": {
"version": "4.2.1",
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.1.tgz",
"integrity": "sha512-WQpV3mSmIobb77s4qiCZu3dBrZZ0rj8ckSfBtRrgNK9Wnh2s3eiaxNTWloz1LJ1WtvqZES/PAI7PLvsrGt/CEA==",
"dev": true,
"license": "MIT",
"dependencies": {
"prettier-linter-helpers": "^1.0.0"
"prettier-linter-helpers": "^1.0.0",
"synckit": "^0.8.5"
},
"engines": {
"node": ">=12.0.0"
"node": "^14.18.0 || >=16.0.0"
},
"funding": {
"url": "https://opencollective.com/prettier"
},
"peerDependencies": {
"eslint": ">=7.28.0",
"prettier": ">=2.0.0"
"@types/eslint": ">=8.0.0",
"eslint": ">=8.0.0",
"eslint-config-prettier": "*",
"prettier": ">=3.0.0"
},
"peerDependenciesMeta": {
"@types/eslint": {
"optional": true
},
"eslint-config-prettier": {
"optional": true
}
@ -8090,6 +8378,21 @@
"node": ">=0.10.0"
}
},
"node_modules/is-docker": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz",
"integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==",
"dev": true,
"bin": {
"is-docker": "cli.js"
},
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/is-extendable": {
"version": "1.0.1",
"license": "MIT",
@ -8134,6 +8437,24 @@
"node": ">=0.10.0"
}
},
"node_modules/is-inside-container": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz",
"integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==",
"dev": true,
"dependencies": {
"is-docker": "^3.0.0"
},
"bin": {
"is-inside-container": "cli.js"
},
"engines": {
"node": ">=14.16"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/is-interactive": {
"version": "1.0.0",
"license": "MIT",
@ -12048,9 +12369,9 @@
}
},
"node_modules/prettier": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.0.tgz",
"integrity": "sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==",
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.1.tgz",
"integrity": "sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==",
"dev": true,
"bin": {
"prettier": "bin/prettier.cjs"
@ -12693,6 +13014,21 @@
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/run-applescript": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz",
"integrity": "sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==",
"dev": true,
"dependencies": {
"execa": "^5.0.0"
},
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/run-parallel": {
"version": "1.2.0",
"dev": true,
@ -13477,6 +13813,22 @@
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/synckit": {
"version": "0.8.6",
"resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.6.tgz",
"integrity": "sha512-laHF2savN6sMeHCjLRkheIU4wo3Zg9Ln5YOjOo7sZ5dVQW8yF5pPE5SIw1dsPhq3TRp1jisKRCdPhfs/1WMqDA==",
"dev": true,
"dependencies": {
"@pkgr/utils": "^2.4.2",
"tslib": "^2.6.2"
},
"engines": {
"node": "^14.18.0 || >=16.0.0"
},
"funding": {
"url": "https://opencollective.com/unts"
}
},
"node_modules/tapable": {
"version": "2.2.1",
"dev": true,
@ -13581,6 +13933,18 @@
"safe-buffer": "~5.1.0"
}
},
"node_modules/titleize": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz",
"integrity": "sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==",
"dev": true,
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/tmpl": {
"version": "1.0.5",
"license": "BSD-3-Clause"
@ -13677,8 +14041,9 @@
}
},
"node_modules/tslib": {
"version": "2.5.2",
"license": "0BSD"
"version": "2.6.2",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
"integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
},
"node_modules/tsutils": {
"version": "3.21.0",
@ -13742,9 +14107,9 @@
}
},
"node_modules/typescript": {
"version": "5.3.2",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.2.tgz",
"integrity": "sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ==",
"version": "5.3.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz",
"integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==",
"dev": true,
"bin": {
"tsc": "bin/tsc",
@ -13892,6 +14257,15 @@
"node": ">=0.10.0"
}
},
"node_modules/untildify": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz",
"integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==",
"dev": true,
"engines": {
"node": ">=8"
}
},
"node_modules/update-browserslist-db": {
"version": "1.0.11",
"funding": [

View File

@ -12,8 +12,8 @@
"format": "prettier --write '**/**/*.{js,jsx,ts,tsx,css,md,json}' --config ./.prettierrc"
},
"dependencies": {
"@react-native-clipboard/clipboard": "^1.12.1",
"@react-native-community/netinfo": "^11.1.1",
"@react-native-clipboard/clipboard": "^1.13.2",
"@react-native-community/netinfo": "^11.2.1",
"react": "18.2.0",
"react-native": "^0.71.8",
"react-native-encrypted-storage": "^4.0.3",
@ -31,20 +31,20 @@
"@typescript-eslint/parser": "^5.59.6",
"babel-jest": "^29.7.0",
"eslint": "^8.39.0",
"eslint-config-prettier": "^9.0.0",
"eslint-config-prettier": "^9.1.0",
"eslint-config-standard-with-typescript": "^34.0.1",
"eslint-import-resolver-typescript": "^3.6.0",
"eslint-plugin-import": "^2.27.5",
"eslint-plugin-n": "^15.7.0",
"eslint-plugin-prettier": "^4.2.1",
"eslint-plugin-prettier": "^5.1.1",
"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.0",
"prettier": "^3.1.1",
"react-test-renderer": "18.2.0",
"typescript": "^5.3.2"
"typescript": "^5.3.3"
},
"resolutions": {
"@types/react": "^18"

View File

@ -8,8 +8,8 @@ djangorestframework==3.14.0
channels==4.0.0
channels-redis==4.1.0
celery==5.3.6
grpcio==1.59.2
googleapis-common-protos==1.61.0
grpcio==1.60.0
googleapis-common-protos==1.62.0
grpcio-tools==1.59.2
numpy==1.26.0
Pillow==10.1.0
@ -20,11 +20,11 @@ git+https://github.com/RoboSats/Robohash.git
gunicorn==21.2.0
psycopg2==2.9.9
SQLAlchemy==2.0.16
django-import-export==3.3.3
django-import-export==3.3.5
requests[socks]
python-gnupg==0.5.1
python-gnupg==0.5.2
daphne==4.0.0
drf-spectacular==0.26.2
drf-spectacular==0.27.0
drf-spectacular-sidecar==2023.5.1
django-cors-headers==4.3.1
base91==1.0.1

View File

@ -1,7 +1,7 @@
coverage==7.3.2
black==23.3.0
isort==5.12.0
isort==5.13.2
flake8==6.1.0
pyflakes==3.1.0
drf-openapi-tester==2.3.3
pre-commit==3.5.0
pre-commit==3.6.0