Add version mismatch detection, refactor GH workflows, draft release.yml, increase prettier scope (#250)

* Refactor GH workflows

* Add version mismatch checker and UpdateClient Dialog

* Fix finalize release workflow

* Increase prettier scope

* Increase prettier coverage, add some static to prettierignore

* Add CodeQL on PR
This commit is contained in:
Reckless_Satoshi 2022-09-20 17:39:49 +00:00 committed by Reckless_Satoshi
parent e4ddeea39d
commit 37b8fdd233
No known key found for this signature in database
GPG Key ID: 9C4585B561315571
43 changed files with 6234 additions and 5966 deletions

View File

@ -8,6 +8,11 @@ on:
pull_request: pull_request:
branches: [ "main" ] branches: [ "main" ]
paths: ["frontend", "nodeapp"] paths: ["frontend", "nodeapp"]
workflow_call:
inputs:
semver:
required: true
type: string
concurrency: concurrency:
group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}' group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}'
@ -71,6 +76,7 @@ jobs:
push: true push: true
tags: | tags: |
recksato/robosats-client:${{ steps.commit.outputs.short }} recksato/robosats-client:${{ steps.commit.outputs.short }}
recksato/robosats-client:${{ inputs.semver }}
recksato/robosats-client:latest recksato/robosats-client:latest
labels: ${{ steps.meta.outputs.labels }} labels: ${{ steps.meta.outputs.labels }}

75
.github/workflows/codeql-client.yml vendored Normal file
View File

@ -0,0 +1,75 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL Analysis Client"
on:
push:
branches: [ "main" ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ "main" ]
paths:
- 'frontend'
- 'mobile'
schedule:
- cron: '39 10 * * 2'
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write
strategy:
fail-fast: false
matrix:
language: [ 'javascript' ]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
steps:
- name: Checkout repository
uses: actions/checkout@v3
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
# queries: security-extended,security-and-quality
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v2
# Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
# If the Autobuild fails above, remove it and uncomment the following three lines.
# modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.
# - run: |
# echo "Run, Build Application using script"
# ./location_of_script_within_repo/buildscript.sh
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2

View File

@ -9,14 +9,16 @@
# the `language` matrix defined below to confirm you have the correct set of # the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages. # supported CodeQL languages.
# #
name: "CodeQL" name: "CodeQL Analysis Coordinator"
on: on:
push: push:
branches: [ "main" ] branches: [ "main" ]
pull_request: pull_request:
# The branches below must be a subset of the branches above # The branches below must be a subset of the branches above
# branches: [ "main" ] branches: [ "main" ]
paths:
- 'api'
schedule: schedule:
- cron: '39 10 * * 2' - cron: '39 10 * * 2'
@ -32,7 +34,7 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
language: [ 'javascript', 'python' ] language: [ 'python' ]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ] # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support # Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support

View File

@ -1,4 +1,4 @@
name: Backend Image CI name: Coodinator Image CI
on: on:
workflow_dispatch: workflow_dispatch:
@ -8,6 +8,11 @@ on:
pull_request: pull_request:
branches: [ "main" ] branches: [ "main" ]
paths: ["api", "chat", "control", "robosats", "frontend"] paths: ["api", "chat", "control", "robosats", "frontend"]
workflow_call:
inputs:
semver:
required: true
type: string
concurrency: concurrency:
group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}' group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}'

View File

@ -2,6 +2,7 @@ name: Django Tests
on: on:
workflow_dispatch: workflow_dispatch:
workflow_call:
push: push:
branches: [ "main" ] branches: [ "main" ]
paths: ["api", "chat", "control", "robosats"] paths: ["api", "chat", "control", "robosats"]

View File

@ -2,6 +2,11 @@ name: Frontend Test & Build
on: on:
workflow_dispatch: workflow_dispatch:
workflow_call:
inputs:
semver:
required: true
type: string
push: push:
branches: [ "main" ] branches: [ "main" ]
paths: [ "frontend" ] paths: [ "frontend" ]
@ -48,12 +53,15 @@ jobs:
with: with:
name: main-js name: main-js
path: frontend/static/frontend/main.js path: frontend/static/frontend/main.js
- name: 'Invoke Backend Build CI workflow' - name: 'Invoke Backend Build CI workflow'
if: ${{ inputs.semver }} != ""
uses: benc-uk/workflow-dispatch@v1 uses: benc-uk/workflow-dispatch@v1
with: with:
workflow: 'Backend Image CI' workflow: 'Backend Image CI'
token: ${{ secrets.PERSONAL_TOKEN }} token: ${{ secrets.PERSONAL_TOKEN }}
- name: 'Invoke Client App Build CI/CD workflow' - name: 'Invoke Client App Build CI/CD workflow'
if: ${{ inputs.semver }} != ""
uses: benc-uk/workflow-dispatch@v1 uses: benc-uk/workflow-dispatch@v1
with: with:
workflow: 'Client App Image CI/CD' workflow: 'Client App Image CI/CD'

View File

@ -37,6 +37,7 @@ jobs:
with: with:
prettier: true prettier: true
prettier_dir: frontend prettier_dir: frontend
# Many linting errors
## Disabled due to error
# eslint: true # eslint: true
# eslint_dir: frontend # eslint_dir: frontend

79
.github/workflows/release.yml vendored Normal file
View File

@ -0,0 +1,79 @@
name: Release
on:
push:
tags:
- "v*.*.*"
jobs:
check-versions:
runs-on: ubuntu-latest
steps:
- name: 'Checkout'
uses: actions/checkout@v3
- uses: olegtarasov/get-tag@v2.1
id: tagName
- name: 'Validate versions match (tag, backend, frontend, Android)'
id: validate
run: |
sudo apt-get install jq
clientV=$(jq -r .version frontend/package.json)
coordinatorV=$(jq -r .major version.json).$(jq -r .minor version.json).$(jq -r .patch version.json)
tagV=$(git describe --tags --abbrev=0 | sed 's/v//')
printf "Client version: ${clientV}\nCoordinator version: ${coordinatorV}\nGit tag version: ${tagV}\n"
if [ "$coordinatorV" = "$clientV" ] && [ "$coordinatorV" = "$tagV" ] ; then
echo "Versions match!"
else
echo "Versions do not match! You might have forgotten to update the version on a component."; exit $ERRCODE;
fi
django-test:
uses: reckless-satoshi/robosats/.github/workflows/django-test.yml@main
needs: check-versions
frontend-build:
uses: reckless-satoshi/robosats/.github/workflows/frontend-build.yml@main
needs: check-versions
with:
semver: ${{ needs.check-version.tagName.outputs.tag }}
coordinator-image:
uses: reckless-satoshi/robosats/.github/workflows/coordinator-image.yml@main
needs: [django-test, frontend-build]
with:
semver: ${{ needs.check-version.tagName.outputs.tag }}
client-image:
uses: reckless-satoshi/robosats/.github/workflows/client-image.yml@main
needs: frontend-build
with:
semver: ${{ needs.check-version.tagName.outputs.tag }}
android-build:
uses: reckless-satoshi/robosats/.github/workflows/coordinator-image.yml@main
needs: frontend-build
with:
semver: ${{ needs.check-version.tagName.outputs.tag }}
changelog:
runs-on: ubuntu-20.04
steps:
- name: "Generate release changelog"
uses: heinrichreimer/github-changelog-generator-action@v2.3
with:
token: ${{ secrets.GITHUB_TOKEN }}
release:
needs: [coordinator-image, client-image, android-build, changelog]
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Release
uses: softprops/action-gh-release@v1
with:
body: ${{ needs.changelog.outputs.changelog }}

View File

@ -134,7 +134,7 @@ def get_lnd_version():
robosats_commit_cache = {} robosats_commit_cache = {}
@ring.dict(robosats_commit_cache, expire=3600) @ring.dict(robosats_commit_cache, expire=3600)
def get_commit_robosats(): def get_robosats_commit():
commit = os.popen('git log -n 1 --pretty=format:"%H"') commit = os.popen('git log -n 1 --pretty=format:"%H"')
commit_hash = commit.read() commit_hash = commit.read()
@ -146,6 +146,16 @@ def get_commit_robosats():
return commit_hash return commit_hash
robosats_version_cache = {}
@ring.dict(robosats_commit_cache, expire=99999)
def get_robosats_version():
with open("version.json") as f:
version_dict = json.load(f)
print(version_dict)
return version_dict
premium_percentile = {} premium_percentile = {}
@ring.dict(premium_percentile, expire=300) @ring.dict(premium_percentile, expire=300)
def compute_premium_percentile(order): def compute_premium_percentile(order):

View File

@ -17,7 +17,7 @@ from control.models import AccountingDay, BalanceLog
from api.logics import Logics from api.logics import Logics
from api.messages import Telegram from api.messages import Telegram
from secrets import token_urlsafe from secrets import token_urlsafe
from api.utils import get_lnd_version, get_commit_robosats, compute_premium_percentile, compute_avg_premium from api.utils import get_lnd_version, get_robosats_commit, get_robosats_version, compute_premium_percentile, compute_avg_premium
from .nick_generator.nick_generator import NickGenerator from .nick_generator.nick_generator import NickGenerator
from robohash import Robohash from robohash import Robohash
@ -837,7 +837,8 @@ class InfoView(ListAPIView):
context["last_day_volume"] = round(total_volume, 8) context["last_day_volume"] = round(total_volume, 8)
context["lifetime_volume"] = round(lifetime_volume, 8) context["lifetime_volume"] = round(lifetime_volume, 8)
context["lnd_version"] = get_lnd_version() context["lnd_version"] = get_lnd_version()
context["robosats_running_commit_hash"] = get_commit_robosats() context["robosats_running_commit_hash"] = get_robosats_commit()
context["version"] = get_robosats_version()
context["alternative_site"] = config("ALTERNATIVE_SITE") context["alternative_site"] = config("ALTERNATIVE_SITE")
context["alternative_name"] = config("ALTERNATIVE_NAME") context["alternative_name"] = config("ALTERNATIVE_NAME")
context["node_alias"] = config("NODE_ALIAS") context["node_alias"] = config("NODE_ALIAS")

View File

@ -19,12 +19,7 @@
"sourceType": "module", "sourceType": "module",
"project": "./tsconfig.json" "project": "./tsconfig.json"
}, },
"plugins": [ "plugins": ["react", "react-hooks", "@typescript-eslint", "prettier"],
"react",
"react-hooks",
"@typescript-eslint",
"prettier"
],
"rules": { "rules": {
"react-hooks/rules-of-hooks": "error", "react-hooks/rules-of-hooks": "error",
"react-hooks/exhaustive-deps": "warn", "react-hooks/exhaustive-deps": "warn",

View File

@ -1 +1,5 @@
src/components/payment-methods/code/code.js src/components/payment-methods/code/code.js
static/rest_framework/**
static/admin/**
static/frontend/**
static/import_export/**

View File

@ -1,9 +1,5 @@
{ {
"presets": [ "presets": ["@babel/preset-env", "@babel/preset-react", "@babel/preset-typescript"],
"@babel/preset-env",
"@babel/preset-react",
"@babel/preset-typescript"
],
"plugins": [ "plugins": [
[ [
"@babel/plugin-transform-runtime", "@babel/plugin-transform-runtime",

View File

@ -1,6 +1,6 @@
{ {
"name": "frontend", "name": "frontend",
"version": "1.0.0", "version": "0.2.0",
"description": "", "description": "",
"main": "index.js", "main": "index.js",
"scripts": { "scripts": {
@ -9,7 +9,7 @@
"build": "webpack --mode production", "build": "webpack --mode production",
"lint": "eslint src/**/*.{js,ts,tsx}", "lint": "eslint src/**/*.{js,ts,tsx}",
"lint:fix": "eslint --fix 'src/**/*.{js,ts,tsx}'", "lint:fix": "eslint --fix 'src/**/*.{js,ts,tsx}'",
"format": "prettier --write 'src/**/*.{js,jsx,ts,tsx,css,md,json}' --config ./.prettierrc" "format": "prettier --write '**/**/*.{js,jsx,ts,tsx,css,md,json}' --config ./.prettierrc"
}, },
"keywords": [], "keywords": [],
"author": "", "author": "",

View File

@ -32,9 +32,16 @@ import PriceChangeIcon from '@mui/icons-material/PriceChange';
// Missing flags // Missing flags
import { CataloniaFlag, BasqueCountryFlag } from './Icons'; import { CataloniaFlag, BasqueCountryFlag } from './Icons';
import { CommunityDialog, ExchangeSummaryDialog, ProfileDialog, StatsDialog } from './Dialogs'; import {
CommunityDialog,
ExchangeSummaryDialog,
ProfileDialog,
StatsDialog,
UpdateClientDialog,
} from './Dialogs';
import { getCookie } from '../utils/cookies'; import { getCookie } from '../utils/cookies';
import checkVer from '../utils/checkVer';
class BottomBar extends Component { class BottomBar extends Component {
constructor(props) { constructor(props) {
@ -44,6 +51,7 @@ class BottomBar extends Component {
openCommuniy: false, openCommuniy: false,
openExchangeSummary: false, openExchangeSummary: false,
openClaimRewards: false, openClaimRewards: false,
openUpdateClient: false,
num_public_buy_orders: 0, num_public_buy_orders: 0,
num_public_sell_orders: 0, num_public_sell_orders: 0,
book_liquidity: 0, book_liquidity: 0,
@ -72,9 +80,14 @@ class BottomBar extends Component {
getInfo() { getInfo() {
this.setState(null); this.setState(null);
apiClient.get('/api/info/').then( apiClient.get('/api/info/').then((data) => {
(data) => const versionInfo = checkVer(data.version.major, data.version.minor, data.version.patch);
this.setState(data) & this.setState({
...data,
openUpdateClient: versionInfo.updateAvailable,
coordinatorVersion: versionInfo.coordinatorVersion,
clientVersion: versionInfo.clientVersion,
});
this.props.setAppState({ this.props.setAppState({
nickname: data.nickname, nickname: data.nickname,
loading: false, loading: false,
@ -87,8 +100,8 @@ class BottomBar extends Component {
earnedRewards: data.earned_rewards, earnedRewards: data.earned_rewards,
lastDayPremium: data.last_day_nonkyc_btc_premium, lastDayPremium: data.last_day_nonkyc_btc_premium,
stealthInvoices: data.wants_stealth, stealthInvoices: data.wants_stealth,
}), });
); });
} }
handleClickOpenStatsForNerds = () => { handleClickOpenStatsForNerds = () => {
@ -631,6 +644,13 @@ class BottomBar extends Component {
handleClickCloseCommunity={this.handleClickCloseCommunity} handleClickCloseCommunity={this.handleClickCloseCommunity}
/> />
<UpdateClientDialog
open={this.state.openUpdateClient}
coordinatorVersion={this.state.coordinatorVersion}
clientVersion={this.state.clientVersion}
handleClickClose={() => this.setState({ openUpdateClient: false })}
/>
<ExchangeSummaryDialog <ExchangeSummaryDialog
isOpen={this.state.openExchangeSummary} isOpen={this.state.openExchangeSummary}
handleClickCloseExchangeSummary={this.handleClickCloseExchangeSummary} handleClickCloseExchangeSummary={this.handleClickCloseExchangeSummary}

View File

@ -0,0 +1,114 @@
import React from 'react';
import { useTranslation } from 'react-i18next';
import {
Dialog,
DialogContent,
DialogActions,
Button,
Divider,
List,
ListItemText,
ListItem,
ListItemIcon,
ListItemButton,
Typography,
} from '@mui/material';
import WebIcon from '@mui/icons-material/Web';
import AndroidIcon from '@mui/icons-material/Android';
import UpcomingIcon from '@mui/icons-material/Upcoming';
interface Props {
open: boolean;
clientVersion: string;
coordinatorVersion: string;
handleClickClose: () => void;
}
const UpdateClientDialog = ({
open,
clientVersion,
coordinatorVersion,
handleClickClose,
}: Props): JSX.Element => {
const { t } = useTranslation();
return (
<Dialog open={open} onClose={handleClickClose}>
<DialogContent>
<Typography component='h5' variant='h5'>
{t('Update your RoboSats client')}
</Typography>
<br />
<Typography>
{t(
'The RoboSats coordinator is on version {{coordinatorVersion}}, but your client app is {{clientVersion}}. This version mismatch might lead to a bad user experience.',
{ coordinatorVersion: coordinatorVersion, clientVersion: clientVersion },
)}
</Typography>
<List dense>
<ListItemButton
component='a'
target='_blank'
href={`https://github.com/Reckless-Satoshi/robosats/releases/tag/${coordinatorVersion}`}
rel='noreferrer'
>
<ListItemIcon>
<AndroidIcon color='primary' sx={{ height: 32, width: 32 }} />
</ListItemIcon>
<ListItemText
secondary={t('Download RoboSats {{coordinatorVersion}} APK from Github releases', {
coordinatorVersion: coordinatorVersion,
})}
primary={t('On Android RoboSats app ')}
/>
</ListItemButton>
<Divider />
<ListItemButton
component='a'
target='_blank'
href={`https://hub.docker.com/r/recksato/robosats-client`}
rel='noreferrer'
>
<ListItemIcon>
<UpcomingIcon color='primary' sx={{ height: 32, width: 32 }} />
</ListItemIcon>
<ListItemText
secondary={t("Check your node's store or update the Docker image yourself")}
primary={t('On your own soverign node')}
/>
</ListItemButton>
<Divider />
<ListItemButton component='a' onClick={() => location.reload(true)}>
<ListItemIcon>
<WebIcon color='primary' sx={{ height: 32, width: 32 }} />
</ListItemIcon>
<ListItemText
secondary={t(
'On Tor Browser client simply refresh your tab (click here or press Ctrl+Shift+R)',
)}
primary={t('On remotely served browser client')}
/>
</ListItemButton>
<DialogActions>
<Button onClick={handleClickClose}>{t('Go away!')}</Button>
</DialogActions>
</List>
</DialogContent>
</Dialog>
);
};
export default UpdateClientDialog;

View File

@ -8,3 +8,4 @@ export { default as ExchangeSummaryDialog } from './ExchangeSummary';
export { default as ProfileDialog } from './Profile'; export { default as ProfileDialog } from './Profile';
export { default as StatsDialog } from './Stats'; export { default as StatsDialog } from './Stats';
export { default as EnableTelegramDialog } from './EnableTelegram'; export { default as EnableTelegramDialog } from './EnableTelegram';
export { default as UpdateClientDialog } from './UpdateClient';

View File

@ -0,0 +1,25 @@
import packageJson from '../../package.json';
// Gets SemVer from backend /api/info and compares to local imported frontend version "localVer". Uses major,minor,patch.
// If minor of backend > minor of frontend, updateAvailable = true.
export const checkVer: (
major: number | null,
minor: number | null,
patch: number | null,
) => object = (major, minor, patch) => {
if (major === null || minor === null || patch === null) {
return { updateAvailable: null };
}
const semver = packageJson.version.split('.');
const updateAvailable = major > Number(semver[0]) || minor > Number(semver[1]);
const patchAvailable = !updateAvailable && patch > Number(semver[2]);
return {
updateAvailable: updateAvailable,
patchAvailable: patchAvailable,
coordinatorVersion: `v${major}.${minor}.${patch}`,
clientVersion: `v${semver[0]}.${semver[1]}.${semver[2]}`,
};
};
export default checkVer;

View File

@ -41,7 +41,8 @@
font-weight: 300; font-weight: 300;
font-display: swap; font-display: swap;
src: url(/static/css/fonts/roboto-5.woff2) format('woff2'); src: url(/static/css/fonts/roboto-5.woff2) format('woff2');
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0,
U+1EA0-1EF9, U+20AB;
} }
/* latin-ext */ /* latin-ext */
@font-face { @font-face {
@ -50,7 +51,8 @@
font-weight: 300; font-weight: 300;
font-display: swap; font-display: swap;
src: url(/static/css/fonts/roboto-6.woff2) format('woff2'); src: url(/static/css/fonts/roboto-6.woff2) format('woff2');
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113,
U+2C60-2C7F, U+A720-A7FF;
} }
/* latin */ /* latin */
@font-face { @font-face {
@ -59,7 +61,8 @@
font-weight: 300; font-weight: 300;
font-display: swap; font-display: swap;
src: url(/static/css/fonts/roboto-7.woff2) format('woff2'); src: url(/static/css/fonts/roboto-7.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F,
U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
} }
/* cyrillic-ext */ /* cyrillic-ext */
@font-face { @font-face {
@ -104,7 +107,8 @@
font-weight: 400; font-weight: 400;
font-display: swap; font-display: swap;
src: url(/static/css/fonts/roboto-12.woff2) format('woff2'); src: url(/static/css/fonts/roboto-12.woff2) format('woff2');
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0,
U+1EA0-1EF9, U+20AB;
} }
/* latin-ext */ /* latin-ext */
@font-face { @font-face {
@ -113,7 +117,8 @@
font-weight: 400; font-weight: 400;
font-display: swap; font-display: swap;
src: url(/static/css/fonts/roboto-13.woff2) format('woff2'); src: url(/static/css/fonts/roboto-13.woff2) format('woff2');
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113,
U+2C60-2C7F, U+A720-A7FF;
} }
/* latin */ /* latin */
@font-face { @font-face {
@ -122,7 +127,8 @@
font-weight: 400; font-weight: 400;
font-display: swap; font-display: swap;
src: url(/static/css/fonts/roboto-14.woff2) format('woff2'); src: url(/static/css/fonts/roboto-14.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F,
U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
} }
/* cyrillic-ext */ /* cyrillic-ext */
@font-face { @font-face {
@ -167,7 +173,8 @@
font-weight: 500; font-weight: 500;
font-display: swap; font-display: swap;
src: url(/static/css/fonts/roboto-19.woff2) format('woff2'); src: url(/static/css/fonts/roboto-19.woff2) format('woff2');
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0,
U+1EA0-1EF9, U+20AB;
} }
/* latin-ext */ /* latin-ext */
@font-face { @font-face {
@ -176,7 +183,8 @@
font-weight: 500; font-weight: 500;
font-display: swap; font-display: swap;
src: url(/static/css/fonts/roboto-20.woff2) format('woff2'); src: url(/static/css/fonts/roboto-20.woff2) format('woff2');
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113,
U+2C60-2C7F, U+A720-A7FF;
} }
/* latin */ /* latin */
@font-face { @font-face {
@ -185,7 +193,8 @@
font-weight: 500; font-weight: 500;
font-display: swap; font-display: swap;
src: url(/static/css/fonts/roboto-21.woff2) format('woff2'); src: url(/static/css/fonts/roboto-21.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F,
U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
} }
/* cyrillic-ext */ /* cyrillic-ext */
@font-face { @font-face {
@ -230,7 +239,8 @@
font-weight: 700; font-weight: 700;
font-display: swap; font-display: swap;
src: url(/static/css/fonts/roboto-26.woff2) format('woff2'); src: url(/static/css/fonts/roboto-26.woff2) format('woff2');
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0,
U+1EA0-1EF9, U+20AB;
} }
/* latin-ext */ /* latin-ext */
@font-face { @font-face {
@ -239,7 +249,8 @@
font-weight: 700; font-weight: 700;
font-display: swap; font-display: swap;
src: url(/static/css/fonts/roboto-27.woff2) format('woff2'); src: url(/static/css/fonts/roboto-27.woff2) format('woff2');
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113,
U+2C60-2C7F, U+A720-A7FF;
} }
/* latin */ /* latin */
@font-face { @font-face {
@ -248,5 +259,6 @@
font-weight: 700; font-weight: 700;
font-display: swap; font-display: swap;
src: url(/static/css/fonts/roboto-28.woff2) format('woff2'); src: url(/static/css/fonts/roboto-28.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F,
U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
} }

View File

@ -38,8 +38,12 @@ body {
} }
@keyframes spin { @keyframes spin {
0% { transform: rotate(0deg); } 0% {
100% { transform: rotate(360deg); } transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
} }
.appCenter { .appCenter {
@ -71,11 +75,10 @@ input::-webkit-inner-spin-button {
-webkit-appearance: none; -webkit-appearance: none;
margin: 0; margin: 0;
} }
input[type=number] { input[type='number'] {
-moz-appearance: textfield; -moz-appearance: textfield;
} }
.bottomBar { .bottomBar {
position: fixed; position: fixed;
bottom: 0; bottom: 0;
@ -136,27 +139,29 @@ input[type=number] {
.phoneFlippedSmallAvatar:after { .phoneFlippedSmallAvatar:after {
content: ''; content: '';
position: absolute; position: absolute;
top: 0; left: 0; bottom: 0; right: 0; top: 0;
left: 0;
bottom: 0;
right: 0;
border-radius: 50%; border-radius: 50%;
border: 2.4px solid #1976d2; border: 2.4px solid #1976d2;
box-shadow: inset 0px 0px 35px rgb(255, 255, 255); box-shadow: inset 0px 0px 35px rgb(255, 255, 255);
} }
.MuiButton-textInherit {color : '#111111';} .MuiButton-textInherit {
color: '#111111';
}
::-webkit-scrollbar ::-webkit-scrollbar {
{
width: 6px; /* for vertical scrollbars */ width: 6px; /* for vertical scrollbars */
height: 6px; /* for horizontal scrollbars */ height: 6px; /* for horizontal scrollbars */
} }
::-webkit-scrollbar-track ::-webkit-scrollbar-track {
{
background: rgba(0, 0, 0, 0.1); background: rgba(0, 0, 0, 0.1);
} }
::-webkit-scrollbar-thumb ::-webkit-scrollbar-thumb {
{
background: rgba(0, 0, 0, 0.5); background: rgba(0, 0, 0, 0.5);
} }

View File

@ -1,4 +1,3 @@
.loaderCenter { .loaderCenter {
margin: 0 auto; margin: 0 auto;
position: absolute; position: absolute;

View File

@ -11,14 +11,9 @@
"color": "#FFFFFF", "color": "#FFFFFF",
"mainnet_onion": "robomaxim......onion", "mainnet_onion": "robomaxim......onion",
"testnet_onion": null, "testnet_onion": null,
"mainnet_ln_nodes_pubkeys": [ "mainnet_ln_nodes_pubkeys": ["03e96as....", "02aaecc...."],
"03e96as....", "testnet_ln_nodes_pubkeys": ["0284ff2...."],
"02aaecc...." "logo_svg_200x200": "<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" width=\"120\" height=\"120\"> <rect x=\"14\" y=\"23\" width=\"200\" height=\"50\" fill=\"lime\" stroke=\"black\" /> </svg>"
],
"testnet_ln_nodes_pubkeys": [
"0284ff2...."
],
"logo_svg_200x200": "<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" version=\"1.1\" width=\"120\" height=\"120\"> <rect x=\"14\" y=\"23\" width=\"200\" height=\"50\" fill=\"lime\" stroke=\"black\" \/> <\/svg>"
}, },
"coordinator_2": { "coordinator_2": {
"...": "..." "...": "..."

File diff suppressed because one or more lines are too long

View File

@ -1,7 +0,0 @@
/*!****************************************!*\
!*** ./node_modules/jsqr/dist/jsQR.js ***!
\****************************************/
/*!*************************************************************!*\
!*** ./node_modules/react-webcam-qr-scanner/dist/Worker.js ***!
\*************************************************************/

File diff suppressed because one or more lines are too long

View File

@ -1,3 +0,0 @@
/*!****************************************!*\
!*** ./node_modules/jsqr/dist/jsQR.js ***!
\****************************************/

View File

@ -5,7 +5,6 @@
"phone_unsafe_alert": "No podràs completar un intercanvi. Fes servir <1>Tor Browser</1> i vista el <3>Onion</3> site.", "phone_unsafe_alert": "No podràs completar un intercanvi. Fes servir <1>Tor Browser</1> i vista el <3>Onion</3> site.",
"Hide": "Amagar", "Hide": "Amagar",
"USER GENERATION PAGE - UserGenPage.js": "Landing Page and User Generation", "USER GENERATION PAGE - UserGenPage.js": "Landing Page and User Generation",
"Simple and Private LN P2P Exchange": "Intercanvi LN P2P Fàcil y Privat", "Simple and Private LN P2P Exchange": "Intercanvi LN P2P Fàcil y Privat",
"This is your trading avatar": "Aquest és el teu Robot de compravenda", "This is your trading avatar": "Aquest és el teu Robot de compravenda",
@ -23,7 +22,6 @@
"Let's go!": "Som-hi!", "Let's go!": "Som-hi!",
"Save token and PGP credentials to file": "Guardar arxiu amb token y credencials PGP", "Save token and PGP credentials to file": "Guardar arxiu amb token y credencials PGP",
"MAKER PAGE - MakerPage.js": "This is the page where users can create new orders", "MAKER PAGE - MakerPage.js": "This is the page where users can create new orders",
"Order": "Ordre", "Order": "Ordre",
"Customize": "Personalitzar", "Customize": "Personalitzar",
@ -81,7 +79,6 @@
"You do not have a robot avatar": "No tens un avatar robot", "You do not have a robot avatar": "No tens un avatar robot",
"You need to generate a robot avatar in order to become an order maker": "Necessites generar un avatar robot abans de crear una ordre", "You need to generate a robot avatar in order to become an order maker": "Necessites generar un avatar robot abans de crear una ordre",
"PAYMENT METHODS - autocompletePayments.js": "Payment method strings", "PAYMENT METHODS - autocompletePayments.js": "Payment method strings",
"not specified": "Sense especificar", "not specified": "Sense especificar",
"Instant SEPA": "SEPA Instantània", "Instant SEPA": "SEPA Instantània",
@ -90,9 +87,6 @@
"Cash F2F": "Efectiu en persona", "Cash F2F": "Efectiu en persona",
"On-Chain BTC": "On-Chain BTC", "On-Chain BTC": "On-Chain BTC",
"BOOK PAGE - BookPage.js": "The Book Order page", "BOOK PAGE - BookPage.js": "The Book Order page",
"Seller": "Ven", "Seller": "Ven",
"Buyer": "Compra", "Buyer": "Compra",
@ -227,7 +221,6 @@
"RoboSats in Reddit": "RoboSats a Reddit", "RoboSats in Reddit": "RoboSats a Reddit",
"Current onchain payout fee": "Cost actual de rebre onchain", "Current onchain payout fee": "Cost actual de rebre onchain",
"ORDER PAGE - OrderPage.js": "Order details page", "ORDER PAGE - OrderPage.js": "Order details page",
"Order Box": "Ordre", "Order Box": "Ordre",
"Contract": "Contracte", "Contract": "Contracte",
@ -299,7 +292,6 @@
"You are not allowed to see this order": "No tens permís per a veure aquesta ordre", "You are not allowed to see this order": "No tens permís per a veure aquesta ordre",
"The Robotic Satoshis working in the warehouse did not understand you. Please, fill a Bug Issue in Github https://github.com/reckless-satoshi/robosats/issues": "Els Satoshis Robòtics del magatzem no t'han entès. Si us plau, omple un Bug Issue a Github https://github.com/reckless-satoshi/robosats/issues", "The Robotic Satoshis working in the warehouse did not understand you. Please, fill a Bug Issue in Github https://github.com/reckless-satoshi/robosats/issues": "Els Satoshis Robòtics del magatzem no t'han entès. Si us plau, omple un Bug Issue a Github https://github.com/reckless-satoshi/robosats/issues",
"CHAT BOX - Chat.js": "Finestra del xat", "CHAT BOX - Chat.js": "Finestra del xat",
"You": "Tu", "You": "Tu",
"Peer": "Ell", "Peer": "Ell",
@ -475,7 +467,6 @@
"Completed in": "Completat en", "Completed in": "Completat en",
"Contract exchange rate": "Taxa de canvi del contracte", "Contract exchange rate": "Taxa de canvi del contracte",
"INFO DIALOG - InfoDiagog.js": "App information and clarifications and terms of use", "INFO DIALOG - InfoDiagog.js": "App information and clarifications and terms of use",
"Close": "Tancar", "Close": "Tancar",
"What is RoboSats?": "Què és RoboSats?", "What is RoboSats?": "Què és RoboSats?",

View File

@ -5,7 +5,6 @@
"phone_unsafe_alert": "Nebudeš moct dokončit obchod. Použij <1>Tor Browser</1> a navšťiv <3>Onion</3> stránku.", "phone_unsafe_alert": "Nebudeš moct dokončit obchod. Použij <1>Tor Browser</1> a navšťiv <3>Onion</3> stránku.",
"Hide": "Skrýt", "Hide": "Skrýt",
"USER GENERATION PAGE - UserGenPage.js": "Landing Page and User Generation", "USER GENERATION PAGE - UserGenPage.js": "Landing Page and User Generation",
"Simple and Private LN P2P Exchange": "Jednoduchá LN P2P burza", "Simple and Private LN P2P Exchange": "Jednoduchá LN P2P burza",
"This is your trading avatar": "Toto je tvůj uživatelský avatar", "This is your trading avatar": "Toto je tvůj uživatelský avatar",
@ -23,8 +22,6 @@
"Let's go!": "Navštívit!", "Let's go!": "Navštívit!",
"Save token and PGP credentials to file": "Uložit soubor s tokenem a PGP klíčem", "Save token and PGP credentials to file": "Uložit soubor s tokenem a PGP klíčem",
"MAKER PAGE - MakerPage.js": "This is the page where users can create new orders", "MAKER PAGE - MakerPage.js": "This is the page where users can create new orders",
"Order": "Nabídka", "Order": "Nabídka",
"Customize": "Přizpůsobit", "Customize": "Přizpůsobit",
@ -82,7 +79,6 @@
"You do not have a robot avatar": "Nemáš robota a avatar", "You do not have a robot avatar": "Nemáš robota a avatar",
"You need to generate a robot avatar in order to become an order maker": "Aby si se mohl stát tvůrcem nabídky musíš si vygenerovat avatar a robota", "You need to generate a robot avatar in order to become an order maker": "Aby si se mohl stát tvůrcem nabídky musíš si vygenerovat avatar a robota",
"PAYMENT METHODS - autocompletePayments.js": "Payment method strings", "PAYMENT METHODS - autocompletePayments.js": "Payment method strings",
"not specified": "nespecifikováno", "not specified": "nespecifikováno",
"Instant SEPA": "Okamžitá SEPA", "Instant SEPA": "Okamžitá SEPA",
@ -91,7 +87,6 @@
"Cash F2F": "Hotovost v tváří v tvář", "Cash F2F": "Hotovost v tváří v tvář",
"On-Chain BTC": "On-Chain BTC", "On-Chain BTC": "On-Chain BTC",
"BOOK PAGE - BookPage.js": "The Book Order page", "BOOK PAGE - BookPage.js": "The Book Order page",
"Seller": "Prodavající", "Seller": "Prodavající",
"Buyer": "Kupující", "Buyer": "Kupující",
@ -165,7 +160,6 @@
"yes": "ano", "yes": "ano",
"no": "ne", "no": "ne",
"BOTTOM BAR AND MISC - BottomBar.js": "Bottom Bar user profile and miscellaneous dialogs", "BOTTOM BAR AND MISC - BottomBar.js": "Bottom Bar user profile and miscellaneous dialogs",
"Stats For Nerds": "Statistiky pro nerdy", "Stats For Nerds": "Statistiky pro nerdy",
"LND version": "LND verze", "LND version": "LND verze",
@ -329,7 +323,6 @@
"Verified signature by {{nickname}}": "Ověřený podpis {{nickname}}", "Verified signature by {{nickname}}": "Ověřený podpis {{nickname}}",
"Cannot verify signature of {{nickname}}": "Nelze ověřit podpis {{nickname}}", "Cannot verify signature of {{nickname}}": "Nelze ověřit podpis {{nickname}}",
"CONTRACT BOX - TradeBox.js": "The Contract Box that guides users trough the whole trade pipeline", "CONTRACT BOX - TradeBox.js": "The Contract Box that guides users trough the whole trade pipeline",
"Contract Box": "Průvodce obchodem", "Contract Box": "Průvodce obchodem",
"Robots show commitment to their peers": "Roboti dávají najevo oddanost svým společníkum", "Robots show commitment to their peers": "Roboti dávají najevo oddanost svým společníkum",
@ -472,7 +465,6 @@
"{{routingFeeSats}} MiliSats": "{{routingFeeSats}} MiliSatů", "{{routingFeeSats}} MiliSats": "{{routingFeeSats}} MiliSatů",
"Platform covered routing fee": "Poplatek za routing hrazený platformou", "Platform covered routing fee": "Poplatek za routing hrazený platformou",
"INFO DIALOG - InfoDiagog.js": "App information and clarifications and terms of use", "INFO DIALOG - InfoDiagog.js": "App information and clarifications and terms of use",
"Close": "Zavřít", "Close": "Zavřít",
"What is RoboSats?": "Co je RoboSats?", "What is RoboSats?": "Co je RoboSats?",

View File

@ -5,7 +5,6 @@
"phone_unsafe_alert": "Du wirst nicht in der Lage sein, einen Handel abzuschließen. Benutze <1>Tor Browser</1> und besuche die <3>Onion</3> Seite.", "phone_unsafe_alert": "Du wirst nicht in der Lage sein, einen Handel abzuschließen. Benutze <1>Tor Browser</1> und besuche die <3>Onion</3> Seite.",
"Hide": "Ausblenden", "Hide": "Ausblenden",
"USER GENERATION PAGE - UserGenPage.js": "Landing Page and User Generation", "USER GENERATION PAGE - UserGenPage.js": "Landing Page and User Generation",
"Simple and Private LN P2P Exchange": "Einfache und private LN P2P-Börse", "Simple and Private LN P2P Exchange": "Einfache und private LN P2P-Börse",
"This is your trading avatar": "Dies ist dein Handelsavatar", "This is your trading avatar": "Dies ist dein Handelsavatar",
@ -23,8 +22,6 @@
"Let's go!": "Los gehts!", "Let's go!": "Los gehts!",
"Save token and PGP credentials to file": "Token und PGP-Anmeldeinformationen in einer Datei speichern", "Save token and PGP credentials to file": "Token und PGP-Anmeldeinformationen in einer Datei speichern",
"MAKER PAGE - MakerPage.js": "Dies ist die Seite, auf der Benutzer neue Angebote erstellen können", "MAKER PAGE - MakerPage.js": "Dies ist die Seite, auf der Benutzer neue Angebote erstellen können",
"Order": "Order", "Order": "Order",
"Customize": "Anpassen", "Customize": "Anpassen",
@ -82,7 +79,6 @@
"You do not have a robot avatar": "Du hast keinen Roboter-Avatar", "You do not have a robot avatar": "Du hast keinen Roboter-Avatar",
"You need to generate a robot avatar in order to become an order maker": "Du musst einen Roboter-Avatar erstellen, um ein Maker zu werden.", "You need to generate a robot avatar in order to become an order maker": "Du musst einen Roboter-Avatar erstellen, um ein Maker zu werden.",
"PAYMENT METHODS - autocompletePayments.js": "Payment method strings", "PAYMENT METHODS - autocompletePayments.js": "Payment method strings",
"not specified": "Nicht definiert", "not specified": "Nicht definiert",
"Instant SEPA": "Instant SEPA", "Instant SEPA": "Instant SEPA",
@ -91,7 +87,6 @@
"Cash F2F": "Cash F2F", "Cash F2F": "Cash F2F",
"On-Chain BTC": "On-Chain BTC", "On-Chain BTC": "On-Chain BTC",
"BOOK PAGE - BookPage.js": "The Book Order page", "BOOK PAGE - BookPage.js": "The Book Order page",
"Seller": "Verkäufer", "Seller": "Verkäufer",
"Buyer": "Käufer", "Buyer": "Käufer",
@ -120,7 +115,6 @@
"Filter has no results": "Filter hat keine Ergebnisse", "Filter has no results": "Filter hat keine Ergebnisse",
"Be the first one to create an order": "Sei der Erste, der ein Angebot erstellt", "Be the first one to create an order": "Sei der Erste, der ein Angebot erstellt",
"BOTTOM BAR AND MISC - BottomBar.js": "Bottom Bar user profile and miscellaneous dialogs", "BOTTOM BAR AND MISC - BottomBar.js": "Bottom Bar user profile and miscellaneous dialogs",
"Stats For Nerds": "Statistiken für Nerds", "Stats For Nerds": "Statistiken für Nerds",
"LND version": "LND-Version", "LND version": "LND-Version",
@ -180,7 +174,6 @@
"Inactive order": "Inaktive Order", "Inactive order": "Inaktive Order",
"You do not have previous orders": "Du hast keine vorherige Order", "You do not have previous orders": "Du hast keine vorherige Order",
"ORDER PAGE - OrderPage.js": "Order details page", "ORDER PAGE - OrderPage.js": "Order details page",
"Order Box": "Angebots-Box", "Order Box": "Angebots-Box",
"Contract": "Vertrag", "Contract": "Vertrag",
@ -280,7 +273,6 @@
"Save messages as a JSON file": "Nachrichten als JSON-Datei speichern", "Save messages as a JSON file": "Nachrichten als JSON-Datei speichern",
"Messages": "Nachrichten", "Messages": "Nachrichten",
"CONTRACT BOX - TradeBox.js": "The Contract Box that guides users trough the whole trade pipeline", "CONTRACT BOX - TradeBox.js": "The Contract Box that guides users trough the whole trade pipeline",
"Contract Box": "Vertrags-Box", "Contract Box": "Vertrags-Box",
"Robots show commitment to their peers": "Roboter verpflichten sich ihren Gegenübern", "Robots show commitment to their peers": "Roboter verpflichten sich ihren Gegenübern",
@ -387,7 +379,6 @@
"Does not look like a valid lightning invoice": "Sieht nicht nach einer gültigen Lightning-Invoice aus", "Does not look like a valid lightning invoice": "Sieht nicht nach einer gültigen Lightning-Invoice aus",
"The invoice provided has already expired": "Die angegebene Invoice ist bereits abgelaufen", "The invoice provided has already expired": "Die angegebene Invoice ist bereits abgelaufen",
"INFO DIALOG - InfoDiagog.js": "App information and clarifications and terms of use", "INFO DIALOG - InfoDiagog.js": "App information and clarifications and terms of use",
"Close": "Schließen", "Close": "Schließen",
"What is RoboSats?": "Was ist RoboSats?", "What is RoboSats?": "Was ist RoboSats?",

View File

@ -7,7 +7,6 @@
"You are self-hosting RoboSats": "You are self-hosting RoboSats", "You are self-hosting RoboSats": "You are self-hosting RoboSats",
"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.", "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.",
"USER GENERATION PAGE - UserGenPage.js": "Landing Page and User Generation", "USER GENERATION PAGE - UserGenPage.js": "Landing Page and User Generation",
"Simple and Private LN P2P Exchange": "Simple and Private LN P2P Exchange", "Simple and Private LN P2P Exchange": "Simple and Private LN P2P Exchange",
"This is your trading avatar": "This is your trading avatar", "This is your trading avatar": "This is your trading avatar",
@ -25,8 +24,6 @@
"Let's go!": "Let's go!", "Let's go!": "Let's go!",
"Save token and PGP credentials to file": "Save token and PGP credentials to file", "Save token and PGP credentials to file": "Save token and PGP credentials to file",
"MAKER PAGE - MakerPage.js": "This is the page where users can create new orders", "MAKER PAGE - MakerPage.js": "This is the page where users can create new orders",
"Order": "Order", "Order": "Order",
"Customize": "Customize", "Customize": "Customize",
@ -84,7 +81,6 @@
"You do not have a robot avatar": "You do not have a robot avatar", "You do not have a robot avatar": "You do not have a robot avatar",
"You need to generate a robot avatar in order to become an order maker": "You need to generate a robot avatar in order to become an order maker", "You need to generate a robot avatar in order to become an order maker": "You need to generate a robot avatar in order to become an order maker",
"PAYMENT METHODS - autocompletePayments.js": "Payment method strings", "PAYMENT METHODS - autocompletePayments.js": "Payment method strings",
"not specified": "Not specified", "not specified": "Not specified",
"Instant SEPA": "Instant SEPA", "Instant SEPA": "Instant SEPA",
@ -93,7 +89,6 @@
"Cash F2F": "Cash F2F", "Cash F2F": "Cash F2F",
"On-Chain BTC": "On-Chain BTC", "On-Chain BTC": "On-Chain BTC",
"BOOK PAGE - BookPage.js": "The Book Order page", "BOOK PAGE - BookPage.js": "The Book Order page",
"Seller": "Seller", "Seller": "Seller",
"Buyer": "Buyer", "Buyer": "Buyer",
@ -169,7 +164,6 @@
"Depth chart": "Depth chart", "Depth chart": "Depth chart",
"Chart": "Chart", "Chart": "Chart",
"BOTTOM BAR AND MISC - BottomBar.js": "Bottom Bar user profile and miscellaneous dialogs", "BOTTOM BAR AND MISC - BottomBar.js": "Bottom Bar user profile and miscellaneous dialogs",
"Stats For Nerds": "Stats For Nerds", "Stats For Nerds": "Stats For Nerds",
"LND version": "LND version", "LND version": "LND version",
@ -233,6 +227,14 @@
"Current onchain payout fee": "Current onchain payout fee", "Current onchain payout fee": "Current onchain payout fee",
"Use stealth invoices": "Use stealth invoices", "Use stealth invoices": "Use stealth invoices",
"Stealth lightning invoices do not contain details about the trade except an order reference. Enable this setting if you don't want to disclose details to a custodial lightning wallet.": "Stealth lightning invoices do not contain details about the trade except an order reference. Enable this setting if you don't want to disclose details to a custodial lightning wallet.", "Stealth lightning invoices do not contain details about the trade except an order reference. Enable this setting if you don't want to disclose details to a custodial lightning wallet.": "Stealth lightning invoices do not contain details about the trade except an order reference. Enable this setting if you don't want to disclose details to a custodial lightning wallet.",
"Update your RoboSats client": "Update your RoboSats client",
"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.",
"Download RoboSats {{coordinatorVersion}} APK from Github releases": "Download RoboSats {{coordinatorVersion}} APK from Github releases",
"On Android RoboSats app": "On Android RoboSats app",
"Check your node's store or update the Docker image yourself": "Check your node's store or update the Docker image yourself",
"On your own sovereign node": "On your own sovereign node",
"Simply refresh your Tor Browser tab (or press Ctrl+Shift+R)": "Simply refresh your Tor Browser tab (or press Ctrl+Shift+R)",
"On remotely served client via web": "On remotely served client via web",
"ORDER PAGE - OrderPage.js": "Order details page", "ORDER PAGE - OrderPage.js": "Order details page",
"Order Box": "Order Box", "Order Box": "Order Box",
@ -339,7 +341,6 @@
"Verified signature by {{nickname}}": "Verified signature by {{nickname}}", "Verified signature by {{nickname}}": "Verified signature by {{nickname}}",
"Cannot verify signature of {{nickname}}": "Cannot verify signature of {{nickname}}", "Cannot verify signature of {{nickname}}": "Cannot verify signature of {{nickname}}",
"CONTRACT BOX - TradeBox.js": "The Contract Box that guides users trough the whole trade pipeline", "CONTRACT BOX - TradeBox.js": "The Contract Box that guides users trough the whole trade pipeline",
"Contract Box": "Contract Box", "Contract Box": "Contract Box",
"Robots show commitment to their peers": "Robots show commitment to their peers", "Robots show commitment to their peers": "Robots show commitment to their peers",

View File

@ -7,7 +7,6 @@
"You are self-hosting RoboSats": "Estás hosteando RoboSats", "You are self-hosting RoboSats": "Estás hosteando RoboSats",
"RoboSats client is served from your own node granting you the strongest security and privacy.": "El cliente RoboSats es servido por tu propio nodo, gozas de la mayor seguridad y privacidad.", "RoboSats client is served from your own node granting you the strongest security and privacy.": "El cliente RoboSats es servido por tu propio nodo, gozas de la mayor seguridad y privacidad.",
"UserGenPage": "User Generation Page and Landing Page", "UserGenPage": "User Generation Page and Landing Page",
"Simple and Private LN P2P Exchange": "Intercambio LN P2P Fácil y Privado", "Simple and Private LN P2P Exchange": "Intercambio LN P2P Fácil y Privado",
"This is your trading avatar": "Este es tu Robot de compraventa", "This is your trading avatar": "Este es tu Robot de compraventa",
@ -25,7 +24,6 @@
"Let's go!": "¡Vamos!", "Let's go!": "¡Vamos!",
"Save token and PGP credentials to file": "Guardar archivo con token y credenciales PGP", "Save token and PGP credentials to file": "Guardar archivo con token y credenciales PGP",
"MAKER PAGE - MakerPage.js": "This is the page where users can create new orders", "MAKER PAGE - MakerPage.js": "This is the page where users can create new orders",
"Order": "Orden", "Order": "Orden",
"Customize": "Personalizar", "Customize": "Personalizar",
@ -83,7 +81,6 @@
"You do not have a robot avatar": "No tienes un avatar robot", "You do not have a robot avatar": "No tienes un avatar robot",
"You need to generate a robot avatar in order to become an order maker": "Necesitas generar un avatar robot antes de crear una orden", "You need to generate a robot avatar in order to become an order maker": "Necesitas generar un avatar robot antes de crear una orden",
"PAYMENT METHODS - autocompletePayments.js": "Payment method strings", "PAYMENT METHODS - autocompletePayments.js": "Payment method strings",
"not specified": "Sin especificar", "not specified": "Sin especificar",
"Instant SEPA": "SEPA Instantánea", "Instant SEPA": "SEPA Instantánea",
@ -94,7 +91,6 @@
"Cash F2F": "Efectivo en persona", "Cash F2F": "Efectivo en persona",
"On-Chain BTC": "On-Chain BTC", "On-Chain BTC": "On-Chain BTC",
"BOOK PAGE - BookPage.js": "The Book Order page", "BOOK PAGE - BookPage.js": "The Book Order page",
"Seller": "Vende", "Seller": "Vende",
"Buyer": "Compra", "Buyer": "Compra",
@ -233,7 +229,6 @@
"Use stealth invoices": "Facturas sigilosas", "Use stealth invoices": "Facturas sigilosas",
"Stealth lightning invoices do not contain details about the trade except an order reference. Enable this setting if you don't want to disclose details to a custodial lightning wallet.": "Las facturas sigilosas no contienen información sobre tu orden excepto una referencia a la misma. Activalas para no desvelar información a tu proveedor de wallet custodial.", "Stealth lightning invoices do not contain details about the trade except an order reference. Enable this setting if you don't want to disclose details to a custodial lightning wallet.": "Las facturas sigilosas no contienen información sobre tu orden excepto una referencia a la misma. Activalas para no desvelar información a tu proveedor de wallet custodial.",
"ORDER PAGE - OrderPage.js": "Order details page", "ORDER PAGE - OrderPage.js": "Order details page",
"Order Box": "Orden", "Order Box": "Orden",
"Contract": "Contrato", "Contract": "Contrato",
@ -483,7 +478,6 @@
"Completed in": "Completado en", "Completed in": "Completado en",
"Contract exchange rate": "Tasa de cambio del contrato", "Contract exchange rate": "Tasa de cambio del contrato",
"INFO DIALOG - InfoDiagog.js": "App information and clarifications and terms of use", "INFO DIALOG - InfoDiagog.js": "App information and clarifications and terms of use",
"Close": "Cerrar", "Close": "Cerrar",
"What is RoboSats?": "¿Qué es RoboSats?", "What is RoboSats?": "¿Qué es RoboSats?",

View File

@ -5,7 +5,6 @@
"phone_unsafe_alert": "Ezingo duzu trukea osatu. Erabili <1>Tor Browser</1> eta bisitatu <3>Onion</3> gunea.", "phone_unsafe_alert": "Ezingo duzu trukea osatu. Erabili <1>Tor Browser</1> eta bisitatu <3>Onion</3> gunea.",
"Hide": "Ezkutatu", "Hide": "Ezkutatu",
"USER GENERATION PAGE - UserGenPage.js": "Landing Page and User Generation", "USER GENERATION PAGE - UserGenPage.js": "Landing Page and User Generation",
"Simple and Private LN P2P Exchange": "LN P2P Exchange Sinple eta Pribatua", "Simple and Private LN P2P Exchange": "LN P2P Exchange Sinple eta Pribatua",
"This is your trading avatar": "Hau da zure salerosketa Robota", "This is your trading avatar": "Hau da zure salerosketa Robota",
@ -23,8 +22,6 @@
"Let's go!": "Goazen!", "Let's go!": "Goazen!",
"Save token and PGP credentials to file": "Gorde tokena eta PGP kredentzialak fitxategira", "Save token and PGP credentials to file": "Gorde tokena eta PGP kredentzialak fitxategira",
"MAKER PAGE - MakerPage.js": "This is the page where users can create new orders", "MAKER PAGE - MakerPage.js": "This is the page where users can create new orders",
"Order": "Eskaera", "Order": "Eskaera",
"Customize": "Pertsonalizatu", "Customize": "Pertsonalizatu",
@ -82,7 +79,6 @@
"You do not have a robot avatar": "Ez daukazu robot avatarrik", "You do not have a robot avatar": "Ez daukazu robot avatarrik",
"You need to generate a robot avatar in order to become an order maker": "Robot avatar bat sortu behar duzu eskaera bat egin ahal izateko", "You need to generate a robot avatar in order to become an order maker": "Robot avatar bat sortu behar duzu eskaera bat egin ahal izateko",
"PAYMENT METHODS - autocompletePayments.js": "Payment method strings", "PAYMENT METHODS - autocompletePayments.js": "Payment method strings",
"not specified": "Zehaztu gabea", "not specified": "Zehaztu gabea",
"Instant SEPA": "Bat-bateko SEPA", "Instant SEPA": "Bat-bateko SEPA",
@ -91,7 +87,6 @@
"Cash F2F": "Eskudirua aurrez-aurre", "Cash F2F": "Eskudirua aurrez-aurre",
"On-Chain BTC": "On-Chain BTC", "On-Chain BTC": "On-Chain BTC",
"BOOK PAGE - BookPage.js": "The Book Order page", "BOOK PAGE - BookPage.js": "The Book Order page",
"Seller": "Saltzaile", "Seller": "Saltzaile",
"Buyer": "Erosle", "Buyer": "Erosle",
@ -120,7 +115,6 @@
"Filter has no results": "Iragazkiak ez du emaitzarik", "Filter has no results": "Iragazkiak ez du emaitzarik",
"Be the first one to create an order": "Lehena izan eskaera bat sortzen", "Be the first one to create an order": "Lehena izan eskaera bat sortzen",
"BOTTOM BAR AND MISC - BottomBar.js": "Bottom Bar user profile and miscellaneous dialogs", "BOTTOM BAR AND MISC - BottomBar.js": "Bottom Bar user profile and miscellaneous dialogs",
"Stats For Nerds": "Nerdentzako estatistikak", "Stats For Nerds": "Nerdentzako estatistikak",
"LND version": "LND bersioa", "LND version": "LND bersioa",
@ -284,7 +278,6 @@
"Verified signature by {{nickname}}": "{{nickname}}ren egiaztatutako sinadura", "Verified signature by {{nickname}}": "{{nickname}}ren egiaztatutako sinadura",
"Cannot verify signature of {{nickname}}": "Ezin izan da {{nickname}}ren sinadura egiaztatu", "Cannot verify signature of {{nickname}}": "Ezin izan da {{nickname}}ren sinadura egiaztatu",
"CONTRACT BOX - TradeBox.js": "The Contract Box that guides users trough the whole trade pipeline", "CONTRACT BOX - TradeBox.js": "The Contract Box that guides users trough the whole trade pipeline",
"Contract Box": "Kontratua", "Contract Box": "Kontratua",
"Robots show commitment to their peers": "Robotek beren pareekiko konpromezua erakusten dute", "Robots show commitment to their peers": "Robotek beren pareekiko konpromezua erakusten dute",
@ -405,7 +398,6 @@
"Lightning": "Lightning", "Lightning": "Lightning",
"Onchain": "Onchain", "Onchain": "Onchain",
"INFO DIALOG - InfoDiagog.js": "App information and clarifications and terms of use", "INFO DIALOG - InfoDiagog.js": "App information and clarifications and terms of use",
"Close": "Itxi", "Close": "Itxi",
"What is RoboSats?": "Zer da RoboSats?", "What is RoboSats?": "Zer da RoboSats?",

View File

@ -5,7 +5,6 @@
"phone_unsafe_alert": "Vous ne serez pas en mesure d'effectuer un échange. Utilisez <1>Tor Browser</1> et visitez le site <3>Onion</3>.", "phone_unsafe_alert": "Vous ne serez pas en mesure d'effectuer un échange. Utilisez <1>Tor Browser</1> et visitez le site <3>Onion</3>.",
"Hide": "Cacher", "Hide": "Cacher",
"USER GENERATION PAGE - UserGenPage.js": "Landing Page and User Generation", "USER GENERATION PAGE - UserGenPage.js": "Landing Page and User Generation",
"Simple and Private LN P2P Exchange": "Echange LN P2P simple et privé", "Simple and Private LN P2P Exchange": "Echange LN P2P simple et privé",
"This is your trading avatar": "Ceci est votre avatar d'échange", "This is your trading avatar": "Ceci est votre avatar d'échange",
@ -19,7 +18,6 @@
"Info": "Info", "Info": "Info",
"View Book": "Voir livre", "View Book": "Voir livre",
"MAKER PAGE - MakerPage.js": "This is the page where users can create new orders", "MAKER PAGE - MakerPage.js": "This is the page where users can create new orders",
"Order": "Ordre", "Order": "Ordre",
"Customize": "Personnaliser", "Customize": "Personnaliser",
@ -65,7 +63,6 @@
"Must be less than {{maxSats}": "Doit être moins que {{maxSats}}", "Must be less than {{maxSats}": "Doit être moins que {{maxSats}}",
"Must be more than {{minSats}}": "Doit être plus que {{minSats}}", "Must be more than {{minSats}}": "Doit être plus que {{minSats}}",
"PAYMENT METHODS - autocompletePayments.js": "Payment method strings", "PAYMENT METHODS - autocompletePayments.js": "Payment method strings",
"not specified": "Non spécifié", "not specified": "Non spécifié",
"Instant SEPA": "Instant SEPA", "Instant SEPA": "Instant SEPA",
@ -74,7 +71,6 @@
"Cash F2F": "En espèces face-à-face", "Cash F2F": "En espèces face-à-face",
"On-Chain BTC": "BTC on-Chain", "On-Chain BTC": "BTC on-Chain",
"BOOK PAGE - BookPage.js": "The Book Order page", "BOOK PAGE - BookPage.js": "The Book Order page",
"Seller": "Vendeur", "Seller": "Vendeur",
"Buyer": "Acheteur", "Buyer": "Acheteur",
@ -102,7 +98,6 @@
"No orders found to buy BTC for {{currencyCode}}": "Aucun ordre trouvé pour acheter des BTC pour {{currencyCode}}", "No orders found to buy BTC for {{currencyCode}}": "Aucun ordre trouvé pour acheter des BTC pour {{currencyCode}}",
"Be the first one to create an order": "Soyez le premier à créer un ordre", "Be the first one to create an order": "Soyez le premier à créer un ordre",
"BOTTOM BAR AND MISC - BottomBar.js": "Bottom Bar user profile and miscellaneous dialogs", "BOTTOM BAR AND MISC - BottomBar.js": "Bottom Bar user profile and miscellaneous dialogs",
"Stats For Nerds": "Stats pour des geeks", "Stats For Nerds": "Stats pour des geeks",
"LND version": "Version", "LND version": "Version",
@ -159,7 +154,6 @@
"Number of public BUY orders": "Nombre d'ordres d'ACHAT publics", "Number of public BUY orders": "Nombre d'ordres d'ACHAT publics",
"Number of public SELL orders": "Nombre d'ordres de VENTE publics", "Number of public SELL orders": "Nombre d'ordres de VENTE publics",
"ORDER PAGE - OrderPage.js": "Order details page", "ORDER PAGE - OrderPage.js": "Order details page",
"Order Box": "Ordres", "Order Box": "Ordres",
"Contract": "Contrat", "Contract": "Contrat",

View File

@ -5,7 +5,6 @@
"phone_unsafe_alert": "Non sarai in grado di completare un'operazione. Usa <1>Tor Browser</1> e visita il sito <3>Onion</3>", "phone_unsafe_alert": "Non sarai in grado di completare un'operazione. Usa <1>Tor Browser</1> e visita il sito <3>Onion</3>",
"Hide": "Nascondi", "Hide": "Nascondi",
"USER GENERATION PAGE - UserGenPage.js": "Landing Page and User Generation", "USER GENERATION PAGE - UserGenPage.js": "Landing Page and User Generation",
"Simple and Private LN P2P Exchange": "Semplice e privata borsa di scambio LN P2P", "Simple and Private LN P2P Exchange": "Semplice e privata borsa di scambio LN P2P",
"This is your trading avatar": "Questo è il tuo Robottino", "This is your trading avatar": "Questo è il tuo Robottino",
@ -23,8 +22,6 @@
"Let's go!": "Andiamo!", "Let's go!": "Andiamo!",
"Save token and PGP credentials to file": "Salva il gettone e le credenziali PGP in un file", "Save token and PGP credentials to file": "Salva il gettone e le credenziali PGP in un file",
"MAKER PAGE - MakerPage.js": "This is the page where users can create new orders", "MAKER PAGE - MakerPage.js": "This is the page where users can create new orders",
"Order": "Ordina", "Order": "Ordina",
"Customize": "Personalizza", "Customize": "Personalizza",
@ -82,7 +79,6 @@
"You do not have a robot avatar": "Non hai un Robottino", "You do not have a robot avatar": "Non hai un Robottino",
"You need to generate a robot avatar in order to become an order maker": "Devi generare un Robottino prima di impostare un ordine", "You need to generate a robot avatar in order to become an order maker": "Devi generare un Robottino prima di impostare un ordine",
"PAYMENT METHODS - autocompletePayments.js": "Payment method strings", "PAYMENT METHODS - autocompletePayments.js": "Payment method strings",
"not specified": "Non specificato", "not specified": "Non specificato",
"Instant SEPA": "SEPA istantaneo", "Instant SEPA": "SEPA istantaneo",
@ -91,7 +87,6 @@
"Cash F2F": "Contante, faccia-a-faccia", "Cash F2F": "Contante, faccia-a-faccia",
"On-Chain BTC": "On-Chain BTC", "On-Chain BTC": "On-Chain BTC",
"BOOK PAGE - BookPage.js": "The Book Order page", "BOOK PAGE - BookPage.js": "The Book Order page",
"Seller": "Offerente", "Seller": "Offerente",
"Buyer": "Acquirente", "Buyer": "Acquirente",
@ -120,7 +115,6 @@
"Filter has no results": "Il filtro corrente non ha risultati", "Filter has no results": "Il filtro corrente non ha risultati",
"Be the first one to create an order": "Crea tu il primo ordine", "Be the first one to create an order": "Crea tu il primo ordine",
"BOTTOM BAR AND MISC - BottomBar.js": "Bottom Bar user profile and miscellaneous dialogs", "BOTTOM BAR AND MISC - BottomBar.js": "Bottom Bar user profile and miscellaneous dialogs",
"Stats For Nerds": "Statistiche per secchioni", "Stats For Nerds": "Statistiche per secchioni",
"LND version": "Versione LND", "LND version": "Versione LND",
@ -284,7 +278,6 @@
"Verified signature by {{nickname}}": "Verifica la firma di {{nickname}}", "Verified signature by {{nickname}}": "Verifica la firma di {{nickname}}",
"Cannot verify signature of {{nickname}}": "Non è possibile verificare la firma di {{nickname}}", "Cannot verify signature of {{nickname}}": "Non è possibile verificare la firma di {{nickname}}",
"CONTRACT BOX - TradeBox.js": "The Contract Box that guides users trough the whole trade pipeline", "CONTRACT BOX - TradeBox.js": "The Contract Box that guides users trough the whole trade pipeline",
"Contract Box": "Contratto", "Contract Box": "Contratto",
"Robots show commitment to their peers": "I Robottini dimostrano dedizione verso i loro pari", "Robots show commitment to their peers": "I Robottini dimostrano dedizione verso i loro pari",
@ -392,7 +385,6 @@
"The invoice provided has already expired": "La fattura inviata è già scaduta", "The invoice provided has already expired": "La fattura inviata è già scaduta",
"Make sure to EXPORT the chat log. The staff might request your exported chat log JSON in order to solve discrepancies. It is your responsibility to store it.": "Assicurati di esportare il log della chat. Lo staff potrebbe richiedere il file JSON di log della chat esportato per risolvere eventuali dispute. È tua responsabilità conservarlo.", "Make sure to EXPORT the chat log. The staff might request your exported chat log JSON in order to solve discrepancies. It is your responsibility to store it.": "Assicurati di esportare il log della chat. Lo staff potrebbe richiedere il file JSON di log della chat esportato per risolvere eventuali dispute. È tua responsabilità conservarlo.",
"INFO DIALOG - InfoDiagog.js": "App information and clarifications and terms of use", "INFO DIALOG - InfoDiagog.js": "App information and clarifications and terms of use",
"Close": "Chiudi", "Close": "Chiudi",
"What is RoboSats?": "Cos'è RoboSats?", "What is RoboSats?": "Cos'è RoboSats?",

View File

@ -5,7 +5,6 @@
"phone_unsafe_alert": "Nie będziesz w stanie sfinalizować transakcji. Użyj <1>Tor Browser</1> i odwiedź witrynę <3>Onion</3>.", "phone_unsafe_alert": "Nie będziesz w stanie sfinalizować transakcji. Użyj <1>Tor Browser</1> i odwiedź witrynę <3>Onion</3>.",
"Hide": "Ukryć", "Hide": "Ukryć",
"USER GENERATION PAGE - UserGenPage.js": "Landing Page and User Generation", "USER GENERATION PAGE - UserGenPage.js": "Landing Page and User Generation",
"Simple and Private LN P2P Exchange": "Łatwa i prywatna wymiana P2P LN", "Simple and Private LN P2P Exchange": "Łatwa i prywatna wymiana P2P LN",
"This is your trading avatar": "To jest twój awatar handlowy", "This is your trading avatar": "To jest twój awatar handlowy",
@ -19,7 +18,6 @@
"Info": "Info", "Info": "Info",
"View Book": "Zobacz książkę", "View Book": "Zobacz książkę",
"MAKER PAGE - MakerPage.js": "To jest strona, na której użytkownicy mogą tworzyć nowe zamówienia", "MAKER PAGE - MakerPage.js": "To jest strona, na której użytkownicy mogą tworzyć nowe zamówienia",
"Order": "Zamówienie", "Order": "Zamówienie",
"Customize": "Dostosuj", "Customize": "Dostosuj",
@ -65,7 +63,6 @@
"Must be less than {{maxSats}": "To musi być mniej niż {{maxSats}}", "Must be less than {{maxSats}": "To musi być mniej niż {{maxSats}}",
"Must be more than {{minSats}}": "To musi być więcej niż {{minSats}}", "Must be more than {{minSats}}": "To musi być więcej niż {{minSats}}",
"PAYMENT METHODS - autocompletePayments.js": "Ciągi metod płatności", "PAYMENT METHODS - autocompletePayments.js": "Ciągi metod płatności",
"not specified": "Nieokreślony", "not specified": "Nieokreślony",
"Instant SEPA": "Natychmiastowe SEPA", "Instant SEPA": "Natychmiastowe SEPA",
@ -74,7 +71,6 @@
"Cash F2F": "Cash F2F", "Cash F2F": "Cash F2F",
"On-Chain BTC": "On-Chain BTC", "On-Chain BTC": "On-Chain BTC",
"BOOK PAGE - BookPage.js": "Strona Zamówienia książki", "BOOK PAGE - BookPage.js": "Strona Zamówienia książki",
"Seller": "Sprzedawca", "Seller": "Sprzedawca",
"Buyer": "Kupujący", "Buyer": "Kupujący",
@ -102,7 +98,6 @@
"No orders found to buy BTC for {{currencyCode}}": "Nie znaleziono zamówień na zakup BTC za {{currencyCode}}", "No orders found to buy BTC for {{currencyCode}}": "Nie znaleziono zamówień na zakup BTC za {{currencyCode}}",
"Be the first one to create an order": "Bądź pierwszą osobą, która utworzy zamówienie", "Be the first one to create an order": "Bądź pierwszą osobą, która utworzy zamówienie",
"BOTTOM BAR AND MISC - BottomBar.js": "Profil użytkownika paska dolnego i różne okna dialogowe", "BOTTOM BAR AND MISC - BottomBar.js": "Profil użytkownika paska dolnego i różne okna dialogowe",
"Stats For Nerds": "Statystyki dla nerdów", "Stats For Nerds": "Statystyki dla nerdów",
"LND version": "LND wersja", "LND version": "LND wersja",
@ -159,7 +154,6 @@
"Number of public BUY orders": "Liczba publicznych zamówień BUY", "Number of public BUY orders": "Liczba publicznych zamówień BUY",
"Number of public SELL orders": "Liczba publicznych zleceń SPRZEDAŻY", "Number of public SELL orders": "Liczba publicznych zleceń SPRZEDAŻY",
"ORDER PAGE - OrderPage.js": "Strona szczegółów zamówienia", "ORDER PAGE - OrderPage.js": "Strona szczegółów zamówienia",
"Order Box": "Pole zamówienia", "Order Box": "Pole zamówienia",
"Contract": "Kontrakt", "Contract": "Kontrakt",

View File

@ -5,7 +5,6 @@
"phone_unsafe_alert": "У Вас не будет возможности завершить сделку. Используйте <1>Tor Browser</1> и посетите <3>Onion</3> сайт.", "phone_unsafe_alert": "У Вас не будет возможности завершить сделку. Используйте <1>Tor Browser</1> и посетите <3>Onion</3> сайт.",
"Hide": "Скрыть", "Hide": "Скрыть",
"USER GENERATION PAGE - UserGenPage.js": "Landing Page and User Generation", "USER GENERATION PAGE - UserGenPage.js": "Landing Page and User Generation",
"Simple and Private LN P2P Exchange": "Простой и Конфиденциальный LN P2P Обмен", "Simple and Private LN P2P Exchange": "Простой и Конфиденциальный LN P2P Обмен",
"This is your trading avatar": "Это Ваш торговый аватар", "This is your trading avatar": "Это Ваш торговый аватар",
@ -23,8 +22,6 @@
"Let's go!": "Поехали!", "Let's go!": "Поехали!",
"Save token and PGP credentials to file": "Сохранить токен и учетные данные PGP в файл", "Save token and PGP credentials to file": "Сохранить токен и учетные данные PGP в файл",
"MAKER PAGE - MakerPage.js": "This is the page where users can create new orders", "MAKER PAGE - MakerPage.js": "This is the page where users can create new orders",
"Order": "Ордер", "Order": "Ордер",
"Customize": "Настроить", "Customize": "Настроить",
@ -82,7 +79,6 @@
"You do not have a robot avatar": "У Вас нет аватара робота", "You do not have a robot avatar": "У Вас нет аватара робота",
"You need to generate a robot avatar in order to become an order maker": "Вам нужно сгенерировать аватар робота, чтобы стать мейкером ордеров", "You need to generate a robot avatar in order to become an order maker": "Вам нужно сгенерировать аватар робота, чтобы стать мейкером ордеров",
"PAYMENT METHODS - autocompletePayments.js": "Payment method strings", "PAYMENT METHODS - autocompletePayments.js": "Payment method strings",
"not specified": "Не указано", "not specified": "Не указано",
"Instant SEPA": "Мгновенный SEPA", "Instant SEPA": "Мгновенный SEPA",
@ -91,7 +87,6 @@
"Cash F2F": "Наличные F2F", "Cash F2F": "Наличные F2F",
"On-Chain BTC": "Ончейн BTC", "On-Chain BTC": "Ончейн BTC",
"BOOK PAGE - BookPage.js": "The Book Order page", "BOOK PAGE - BookPage.js": "The Book Order page",
"Seller": "Продавец", "Seller": "Продавец",
"Buyer": "Покупатель", "Buyer": "Покупатель",
@ -167,7 +162,6 @@
"Depth chart": "Схемами глубин", "Depth chart": "Схемами глубин",
"Chart": "Схемами", "Chart": "Схемами",
"BOTTOM BAR AND MISC - BottomBar.js": "Bottom Bar user profile and miscellaneous dialogs", "BOTTOM BAR AND MISC - BottomBar.js": "Bottom Bar user profile and miscellaneous dialogs",
"Stats For Nerds": "Cтатистика для умников", "Stats For Nerds": "Cтатистика для умников",
"LND version": "LND версия", "LND version": "LND версия",
@ -337,7 +331,6 @@
"Verified signature by {{nickname}}": "Проверенная подпись пользователя {{nickname}}", "Verified signature by {{nickname}}": "Проверенная подпись пользователя {{nickname}}",
"Cannot verify signature of {{nickname}}": "Не удается проверить подпись {{nickname}}", "Cannot verify signature of {{nickname}}": "Не удается проверить подпись {{nickname}}",
"CONTRACT BOX - TradeBox.js": "The Contract Box that guides users trough the whole trade pipeline", "CONTRACT BOX - TradeBox.js": "The Contract Box that guides users trough the whole trade pipeline",
"Contract Box": "Окно контракта", "Contract Box": "Окно контракта",
"Robots show commitment to their peers": "Роботы демонстрируют приверженность к своим пирам", "Robots show commitment to their peers": "Роботы демонстрируют приверженность к своим пирам",

View File

@ -7,7 +7,6 @@
"You are self-hosting RoboSats": "คูณกำลัง host RoboSats เอง", "You are self-hosting RoboSats": "คูณกำลัง host RoboSats เอง",
"RoboSats is served from your own node granting you the strongest security and privacy.": "คุณกำลังใช้งาน RoboSats บน node ของคุณ ทำให้คุณได้รับความปลอดภัยและความเป็นส่วนตัวมากขึ้น", "RoboSats is served from your own node granting you the strongest security and privacy.": "คุณกำลังใช้งาน RoboSats บน node ของคุณ ทำให้คุณได้รับความปลอดภัยและความเป็นส่วนตัวมากขึ้น",
"USER GENERATION PAGE - UserGenPage.js": "Landing Page and User Generation", "USER GENERATION PAGE - UserGenPage.js": "Landing Page and User Generation",
"Simple and Private LN P2P Exchange": "Simple and Private LN P2P Exchange", "Simple and Private LN P2P Exchange": "Simple and Private LN P2P Exchange",
"This is your trading avatar": "โรบอทสำหรับซื้อขาย", "This is your trading avatar": "โรบอทสำหรับซื้อขาย",
@ -25,8 +24,6 @@
"Let's go!": "ไปกันเถอะ!", "Let's go!": "ไปกันเถอะ!",
"Save token and PGP credentials to file": "บันทึก token และการรับรอง PGP ไปที่ไฟล์", "Save token and PGP credentials to file": "บันทึก token และการรับรอง PGP ไปที่ไฟล์",
"MAKER PAGE - MakerPage.js": "This is the page where users can create new orders", "MAKER PAGE - MakerPage.js": "This is the page where users can create new orders",
"Order": "รายการซื้อขาย", "Order": "รายการซื้อขาย",
"Customize": "ปรับแต่ง", "Customize": "ปรับแต่ง",
@ -84,7 +81,6 @@
"You do not have a robot avatar": "คุณไม่มีโรบอท", "You do not have a robot avatar": "คุณไม่มีโรบอท",
"You need to generate a robot avatar in order to become an order maker": "คุณต้องมีโรบอทก่อนจึงจะสามารถสร้างรายการซื้อขายได้", "You need to generate a robot avatar in order to become an order maker": "คุณต้องมีโรบอทก่อนจึงจะสามารถสร้างรายการซื้อขายได้",
"PAYMENT METHODS - autocompletePayments.js": "Payment method strings", "PAYMENT METHODS - autocompletePayments.js": "Payment method strings",
"not specified": "ไม่ระบุ", "not specified": "ไม่ระบุ",
"Instant SEPA": "Instant SEPA", "Instant SEPA": "Instant SEPA",
@ -93,7 +89,6 @@
"Cash F2F": "เงินสด (นัดพบ)", "Cash F2F": "เงินสด (นัดพบ)",
"On-Chain BTC": "On-Chain BTC", "On-Chain BTC": "On-Chain BTC",
"BOOK PAGE - BookPage.js": "The Book Order page", "BOOK PAGE - BookPage.js": "The Book Order page",
"Seller": "ผู้ขาย", "Seller": "ผู้ขาย",
"Buyer": "ผู้ซื้อ", "Buyer": "ผู้ซื้อ",
@ -167,7 +162,6 @@
"yes": "ใช่", "yes": "ใช่",
"no": "ไม่ใช่", "no": "ไม่ใช่",
"BOTTOM BAR AND MISC - BottomBar.js": "Bottom Bar user profile and miscellaneous dialogs", "BOTTOM BAR AND MISC - BottomBar.js": "Bottom Bar user profile and miscellaneous dialogs",
"Stats For Nerds": "สถิติสำหรับผู้สนใจ", "Stats For Nerds": "สถิติสำหรับผู้สนใจ",
"LND version": "LND version", "LND version": "LND version",
@ -333,7 +327,6 @@
"Verified signature by {{nickname}}": "ลายเซ็นต์ที่ถูกตรวจสอบแล้วโดย {{nickname}}", "Verified signature by {{nickname}}": "ลายเซ็นต์ที่ถูกตรวจสอบแล้วโดย {{nickname}}",
"Cannot verify signature of {{nickname}}": "ไม่สามารถตรวจสอบลายเซ็นต์ของ {{nickname}}", "Cannot verify signature of {{nickname}}": "ไม่สามารถตรวจสอบลายเซ็นต์ของ {{nickname}}",
"CONTRACT BOX - TradeBox.js": "The Contract Box that guides users trough the whole trade pipeline", "CONTRACT BOX - TradeBox.js": "The Contract Box that guides users trough the whole trade pipeline",
"Contract Box": "Contract Box", "Contract Box": "Contract Box",
"Robots show commitment to their peers": "โรบอทต้องแสดงความรับผิดชอบต่อคู่ค้าของตน", "Robots show commitment to their peers": "โรบอทต้องแสดงความรับผิดชอบต่อคู่ค้าของตน",

View File

@ -11,7 +11,7 @@
"resolveJsonModule": true, "resolveJsonModule": true,
"isolatedModules": true, "isolatedModules": true,
"noEmit": true, "noEmit": true,
"jsx": "react-jsx", "jsx": "react-jsx"
}, },
"include": ["src"] "include": ["src"]
} }

View File

@ -1,32 +1,28 @@
import path from "path"; import path from 'path';
import { Configuration } from "webpack"; import { Configuration } from 'webpack';
const config: Configuration = { const config: Configuration = {
entry: "./src/index.js", entry: './src/index.js',
module: { module: {
rules: [ rules: [
{ {
test: /\.(ts|js)x?$/, test: /\.(ts|js)x?$/,
exclude: /node_modules/, exclude: /node_modules/,
use: { use: {
loader: "babel-loader", loader: 'babel-loader',
options: { options: {
presets: [ presets: ['@babel/preset-env', '@babel/preset-react', '@babel/preset-typescript'],
"@babel/preset-env",
"@babel/preset-react",
"@babel/preset-typescript",
],
}, },
}, },
}, },
], ],
}, },
resolve: { resolve: {
extensions: [".tsx", ".ts", ".jsx", ".js"], extensions: ['.tsx', '.ts', '.jsx', '.js'],
}, },
output: { output: {
path: path.resolve(__dirname, "static/frontend"), path: path.resolve(__dirname, 'static/frontend'),
filename: "main.js", filename: 'main.js',
}, },
}; };

5
version.json Normal file
View File

@ -0,0 +1,5 @@
{
"major":0,
"minor":2,
"patch":0
}