mirror of
https://github.com/RoboSats/robosats.git
synced 2025-01-18 12:11:35 +00:00
Enhance clarity for swaps (#382)
* Improve clarity of swap orders * Add descriptive send/receive amounts for swaps on Maker Page * Add descriptive send/receive amounts for swaps on OrderDetails * Collect new phrases * Small fixes
This commit is contained in:
parent
c3183c73af
commit
b6129bb46f
@ -1,4 +1,4 @@
|
||||
import React, { useContext, useState } from 'react';
|
||||
import React, { useContext, useMemo, useState } from 'react';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import { useHistory } from 'react-router-dom';
|
||||
import { Grid, Paper, Collapse, Typography } from '@mui/material';
|
||||
@ -32,17 +32,23 @@ const MakerPage = (): JSX.Element => {
|
||||
const [showMatches, setShowMatches] = useState<boolean>(false);
|
||||
const [openNoRobot, setOpenNoRobot] = useState<boolean>(false);
|
||||
|
||||
const matches = filterOrders({
|
||||
orders: book.orders,
|
||||
baseFilter: { currency: fav.currency === 0 ? 1 : fav.currency, type: fav.type, mode: fav.mode },
|
||||
paymentMethods: maker.paymentMethods,
|
||||
amountFilter: {
|
||||
amount: maker.amount,
|
||||
minAmount: maker.minAmount,
|
||||
maxAmount: maker.maxAmount,
|
||||
threshold: 0.7,
|
||||
},
|
||||
});
|
||||
const matches = useMemo(() => {
|
||||
return filterOrders({
|
||||
orders: book.orders,
|
||||
baseFilter: {
|
||||
currency: fav.currency === 0 ? 1 : fav.currency,
|
||||
type: fav.type,
|
||||
mode: fav.mode,
|
||||
},
|
||||
paymentMethods: maker.paymentMethods,
|
||||
amountFilter: {
|
||||
amount: maker.amount,
|
||||
minAmount: maker.minAmount,
|
||||
maxAmount: maker.maxAmount,
|
||||
threshold: 0.7,
|
||||
},
|
||||
});
|
||||
}, [book.orders, fav, maker.amount, maker.minAmount, maker.maxAmount]);
|
||||
|
||||
const onViewOrder = function () {
|
||||
setOrder(undefined);
|
||||
|
@ -16,6 +16,7 @@ interface OrderPageProps {
|
||||
const OrderPage = ({ locationOrderId }: OrderPageProps): JSX.Element => {
|
||||
const {
|
||||
windowSize,
|
||||
info,
|
||||
order,
|
||||
robot,
|
||||
settings,
|
||||
@ -103,7 +104,7 @@ const OrderPage = ({ locationOrderId }: OrderPageProps): JSX.Element => {
|
||||
order={order}
|
||||
setOrder={setOrder}
|
||||
baseUrl={baseUrl}
|
||||
setPage={setPage}
|
||||
info={info}
|
||||
hasRobot={robot.avatarLoaded}
|
||||
/>
|
||||
</Paper>
|
||||
@ -156,7 +157,7 @@ const OrderPage = ({ locationOrderId }: OrderPageProps): JSX.Element => {
|
||||
order={order}
|
||||
setOrder={setOrder}
|
||||
baseUrl={baseUrl}
|
||||
setPage={setPage}
|
||||
info={info}
|
||||
hasRobot={robot.avatarLoaded}
|
||||
/>
|
||||
</div>
|
||||
@ -188,7 +189,7 @@ const OrderPage = ({ locationOrderId }: OrderPageProps): JSX.Element => {
|
||||
order={order}
|
||||
setOrder={setOrder}
|
||||
baseUrl={baseUrl}
|
||||
setPage={setPage}
|
||||
info={info}
|
||||
hasRobot={robot.avatarLoaded}
|
||||
/>
|
||||
</Paper>
|
||||
|
@ -5,7 +5,6 @@ import { Page } from '../../basic/NavBar';
|
||||
interface ConfirmationDialogProps {
|
||||
open: boolean;
|
||||
onClose: () => void;
|
||||
setPage: (state: Page) => void;
|
||||
onClickDone: () => void;
|
||||
hasRobot: boolean;
|
||||
}
|
||||
@ -14,7 +13,6 @@ const ConfirmationDialog = ({
|
||||
open,
|
||||
onClose,
|
||||
hasRobot,
|
||||
setPage,
|
||||
onClickDone,
|
||||
}: ConfirmationDialogProps): JSX.Element => {
|
||||
return hasRobot ? (
|
||||
@ -25,7 +23,7 @@ const ConfirmationDialog = ({
|
||||
onClickDone={onClickDone}
|
||||
/>
|
||||
) : (
|
||||
<NoRobotDialog open={open} onClose={onClose} setPage={setPage} />
|
||||
<NoRobotDialog open={open} onClose={onClose} />
|
||||
);
|
||||
};
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
import React from 'react';
|
||||
import React, { useContext } from 'react';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import {
|
||||
Dialog,
|
||||
@ -9,15 +9,15 @@ import {
|
||||
Button,
|
||||
} from '@mui/material';
|
||||
import { useHistory } from 'react-router-dom';
|
||||
import { Page } from '../../basic/NavBar';
|
||||
import { AppContext, AppContextProps } from '../../contexts/AppContext';
|
||||
|
||||
interface Props {
|
||||
open: boolean;
|
||||
onClose: () => void;
|
||||
setPage: (state: Page) => void;
|
||||
}
|
||||
|
||||
const NoRobotDialog = ({ open, onClose, setPage }: Props): JSX.Element => {
|
||||
const NoRobotDialog = ({ open, onClose }: Props): JSX.Element => {
|
||||
const { setPage } = useContext<AppContextProps>(AppContext);
|
||||
const { t } = useTranslation();
|
||||
const history = useHistory();
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
import React, { useContext, useEffect, useState } from 'react';
|
||||
import React, { useContext, useMemo, useState } from 'react';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import {
|
||||
InputAdornment,
|
||||
@ -25,7 +25,7 @@ import {
|
||||
IconButton,
|
||||
} from '@mui/material';
|
||||
|
||||
import { LimitList, Maker, Favorites, defaultMaker } from '../../models';
|
||||
import { LimitList, defaultMaker } from '../../models';
|
||||
|
||||
import { LocalizationProvider, TimePicker } from '@mui/x-date-pickers';
|
||||
import DateFnsUtils from '@date-io/date-fns';
|
||||
@ -36,7 +36,7 @@ import { FlagWithProps } from '../Icons';
|
||||
import AutocompletePayments from './AutocompletePayments';
|
||||
import AmountRange from './AmountRange';
|
||||
import currencyDict from '../../../static/assets/currencies.json';
|
||||
import { amountToString, pn } from '../../utils';
|
||||
import { amountToString, computeSats, pn } from '../../utils';
|
||||
|
||||
import { SelfImprovement, Lock, HourglassTop, DeleteSweep, Edit } from '@mui/icons-material';
|
||||
import { LoadingButton } from '@mui/lab';
|
||||
@ -63,7 +63,7 @@ const MakerForm = ({
|
||||
onOrderCreated = () => null,
|
||||
hasRobot = true,
|
||||
}: MakerFormProps): JSX.Element => {
|
||||
const { fav, setFav, limits, fetchLimits, maker, setMaker, setPage, baseUrl } =
|
||||
const { fav, setFav, limits, info, maker, setMaker, setPage, baseUrl } =
|
||||
useContext<AppContextProps>(AppContext);
|
||||
|
||||
const { t } = useTranslation();
|
||||
@ -81,23 +81,6 @@ const MakerForm = ({
|
||||
const minRangeAmountMultiple = 1.6;
|
||||
const amountSafeThresholds = [1.03, 0.98];
|
||||
|
||||
useEffect(() => {
|
||||
setCurrencyCode(currencyDict[fav.currency == 0 ? 1 : fav.currency]);
|
||||
if (Object.keys(limits.list).length === 0) {
|
||||
fetchLimits().then((data) => {
|
||||
updateAmountLimits(data, fav.currency, maker.premium);
|
||||
updateCurrentPrice(data, fav.currency, maker.premium);
|
||||
updateSatoshisLimits(data);
|
||||
});
|
||||
} else {
|
||||
updateAmountLimits(limits.list, fav.currency, maker.premium);
|
||||
updateCurrentPrice(limits.list, fav.currency, maker.premium);
|
||||
updateSatoshisLimits(limits.list);
|
||||
|
||||
fetchLimits();
|
||||
}
|
||||
}, []);
|
||||
|
||||
const updateAmountLimits = function (limitList: LimitList, currency: number, premium: number) {
|
||||
const index = currency == 0 ? 1 : currency;
|
||||
let minAmountLimit: number = limitList[index].min_amount * (1 + premium / 100);
|
||||
@ -175,7 +158,7 @@ const MakerForm = ({
|
||||
};
|
||||
|
||||
const handlePremiumChange = function (e: object) {
|
||||
const max = 999;
|
||||
const max = fav.mode === 'fiat' ? 999 : 99;
|
||||
const min = -100;
|
||||
const newPremium = Math.floor(e.target.value * Math.pow(10, 2)) / Math.pow(10, 2);
|
||||
let premium: number = newPremium;
|
||||
@ -299,23 +282,23 @@ const MakerForm = ({
|
||||
}
|
||||
};
|
||||
|
||||
const minAmountError = function () {
|
||||
const minAmountError = useMemo(() => {
|
||||
return (
|
||||
maker.minAmount < amountLimits[0] * 0.99 ||
|
||||
maker.maxAmount < maker.minAmount ||
|
||||
maker.minAmount < maker.maxAmount / (maxRangeAmountMultiple + 0.15) ||
|
||||
maker.minAmount * (minRangeAmountMultiple - 0.1) > maker.maxAmount
|
||||
);
|
||||
};
|
||||
}, [maker.minAmount, maker.maxAmount, amountLimits]);
|
||||
|
||||
const maxAmountError = function () {
|
||||
const maxAmountError = useMemo(() => {
|
||||
return (
|
||||
maker.maxAmount > amountLimits[1] * 1.01 ||
|
||||
maker.maxAmount < maker.minAmount ||
|
||||
maker.minAmount < maker.maxAmount / (maxRangeAmountMultiple + 0.15) ||
|
||||
maker.minAmount * (minRangeAmountMultiple - 0.1) > maker.maxAmount
|
||||
);
|
||||
};
|
||||
}, [maker.minAmount, maker.maxAmount, amountLimits]);
|
||||
|
||||
const resetRange = function (advancedOptions: boolean) {
|
||||
const index = fav.currency === 0 ? 1 : fav.currency;
|
||||
@ -368,19 +351,51 @@ const MakerForm = ({
|
||||
});
|
||||
};
|
||||
|
||||
const disableSubmit = function () {
|
||||
const amountLabel = useMemo(() => {
|
||||
const defaultRoutingBudget = 0.001;
|
||||
let label = t('Amount');
|
||||
let helper = '';
|
||||
let swapSats = 0;
|
||||
if (fav.mode === 'swap') {
|
||||
if (fav.type === 1) {
|
||||
swapSats = computeSats({
|
||||
amount: Number(maker.amount),
|
||||
premium: Number(maker.premium),
|
||||
fee: -info.maker_fee,
|
||||
routingBudget: defaultRoutingBudget,
|
||||
});
|
||||
label = t('Onchain amount to send (BTC)');
|
||||
helper = t('You receive approx {{swapSats}} LN Sats (fees might vary)', {
|
||||
swapSats,
|
||||
});
|
||||
} else if (fav.type === 0) {
|
||||
swapSats = computeSats({
|
||||
amount: Number(maker.amount),
|
||||
premium: Number(maker.premium),
|
||||
fee: info.maker_fee,
|
||||
});
|
||||
label = t('Onchain amount to receive (BTC)');
|
||||
helper = t('You send approx {{swapSats}} LN Sats (fees might vary)', {
|
||||
swapSats,
|
||||
});
|
||||
}
|
||||
}
|
||||
return { label, helper, swapSats };
|
||||
}, [fav, maker.amount, maker.premium, info]);
|
||||
|
||||
const disableSubmit = useMemo(() => {
|
||||
return (
|
||||
fav.type == null ||
|
||||
(maker.amount != '' &&
|
||||
!maker.advancedOptions &&
|
||||
(maker.amount < amountLimits[0] || maker.amount > amountLimits[1])) ||
|
||||
(maker.amount == null && (!maker.advancedOptions || limits.loading)) ||
|
||||
(maker.advancedOptions && (minAmountError() || maxAmountError())) ||
|
||||
(maker.advancedOptions && (minAmountError || maxAmountError)) ||
|
||||
(maker.amount <= 0 && !maker.advancedOptions) ||
|
||||
(maker.isExplicit && (maker.badSatoshisText != '' || maker.satoshis == '')) ||
|
||||
(!maker.isExplicit && maker.badPremiumText != '')
|
||||
);
|
||||
};
|
||||
}, [maker, amountLimits, limits, fav.type]);
|
||||
|
||||
const clearMaker = function () {
|
||||
setFav({ ...fav, type: null });
|
||||
@ -393,7 +408,7 @@ const MakerForm = ({
|
||||
component='h2'
|
||||
variant='subtitle2'
|
||||
align='center'
|
||||
color={disableSubmit() ? 'text.secondary' : 'text.primary'}
|
||||
color={disableSubmit ? 'text.secondary' : 'text.primary'}
|
||||
>
|
||||
{fav.type == null
|
||||
? t(fav.mode === 'fiat' ? 'Order for ' : 'Swap of ')
|
||||
@ -553,7 +568,7 @@ const MakerForm = ({
|
||||
</Grid>
|
||||
</Grid>
|
||||
|
||||
<Grid item>
|
||||
<Grid item sx={{ width: '100%' }}>
|
||||
<Collapse in={maker.advancedOptions}>
|
||||
<AmountRange
|
||||
minAmount={maker.minAmount}
|
||||
@ -563,8 +578,8 @@ const MakerForm = ({
|
||||
handleCurrencyChange={handleCurrencyChange}
|
||||
amountLimits={amountLimits}
|
||||
maxAmount={maker.maxAmount}
|
||||
minAmountError={minAmountError()}
|
||||
maxAmountError={maxAmountError()}
|
||||
minAmountError={minAmountError}
|
||||
maxAmountError={maxAmountError}
|
||||
handleMinAmountChange={handleMinAmountChange}
|
||||
handleMaxAmountChange={handleMaxAmountChange}
|
||||
/>
|
||||
@ -572,7 +587,7 @@ const MakerForm = ({
|
||||
<Collapse in={!maker.advancedOptions}>
|
||||
<Grid item>
|
||||
<Grid container alignItems='stretch' style={{ display: 'flex' }}>
|
||||
<Grid item xs={6}>
|
||||
<Grid item xs={fav.mode === 'fiat' ? 6 : 12}>
|
||||
<Tooltip
|
||||
placement='top'
|
||||
enterTouchDelay={500}
|
||||
@ -603,7 +618,7 @@ const MakerForm = ({
|
||||
})
|
||||
: null
|
||||
}
|
||||
label={t('Amount')}
|
||||
label={amountLabel.label}
|
||||
required={true}
|
||||
value={maker.amount}
|
||||
type='number'
|
||||
@ -618,29 +633,41 @@ const MakerForm = ({
|
||||
onChange={(e) => setMaker({ ...maker, amount: e.target.value })}
|
||||
/>
|
||||
</Tooltip>
|
||||
{fav.mode === 'swap' && maker.amount != '' ? (
|
||||
<FormHelperText sx={{ textAlign: 'center' }}>
|
||||
{amountLabel.helper}
|
||||
</FormHelperText>
|
||||
) : null}
|
||||
</Grid>
|
||||
|
||||
<Grid item xs={6}>
|
||||
<Select
|
||||
fullWidth
|
||||
sx={{ backgroundColor: theme.palette.background.paper, borderRadius: '4px' }}
|
||||
required={true}
|
||||
inputProps={{
|
||||
style: { textAlign: 'center' },
|
||||
}}
|
||||
value={fav.currency == 0 ? 1 : fav.currency}
|
||||
onChange={(e) => handleCurrencyChange(e.target.value)}
|
||||
>
|
||||
{Object.entries(currencyDict).map(([key, value]) => (
|
||||
<MenuItem key={key} value={parseInt(key)}>
|
||||
<div style={{ display: 'flex', alignItems: 'center', flexWrap: 'wrap' }}>
|
||||
<FlagWithProps code={value} />
|
||||
{' ' + value}
|
||||
</div>
|
||||
</MenuItem>
|
||||
))}
|
||||
</Select>
|
||||
</Grid>
|
||||
{fav.mode === 'fiat' ? (
|
||||
<Grid item xs={6}>
|
||||
<Select
|
||||
fullWidth
|
||||
sx={{
|
||||
backgroundColor: theme.palette.background.paper,
|
||||
borderRadius: '4px',
|
||||
}}
|
||||
required={true}
|
||||
inputProps={{
|
||||
style: { textAlign: 'center' },
|
||||
}}
|
||||
value={fav.currency == 0 ? 1 : fav.currency}
|
||||
onChange={(e) => handleCurrencyChange(e.target.value)}
|
||||
>
|
||||
{Object.entries(currencyDict).map(([key, value]) => (
|
||||
<MenuItem key={key} value={parseInt(key)}>
|
||||
<div
|
||||
style={{ display: 'flex', alignItems: 'center', flexWrap: 'wrap' }}
|
||||
>
|
||||
<FlagWithProps code={value} />
|
||||
{' ' + value}
|
||||
</div>
|
||||
</MenuItem>
|
||||
))}
|
||||
</Select>
|
||||
</Grid>
|
||||
) : null}
|
||||
</Grid>
|
||||
</Grid>
|
||||
</Collapse>
|
||||
@ -914,7 +941,7 @@ const MakerForm = ({
|
||||
<Grid container direction='row' justifyItems='center' alignItems='center' spacing={1}>
|
||||
<Grid item>
|
||||
{/* conditions to disable the make button */}
|
||||
{disableSubmit() ? (
|
||||
{disableSubmit ? (
|
||||
<Tooltip enterTouchDelay={0} title={t('You must fill the form correctly')}>
|
||||
<div>
|
||||
<Button disabled color='primary' variant='contained'>
|
||||
|
@ -1,4 +1,4 @@
|
||||
import React, { useState } from 'react';
|
||||
import React, { useState, useMemo } from 'react';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import {
|
||||
Dialog,
|
||||
@ -30,7 +30,6 @@ interface TakeButtonProps {
|
||||
setOrder: (state: Order) => void;
|
||||
baseUrl: string;
|
||||
hasRobot: boolean;
|
||||
setPage: (state: Page) => void;
|
||||
}
|
||||
|
||||
interface OpenDialogsProps {
|
||||
@ -39,13 +38,7 @@ interface OpenDialogsProps {
|
||||
}
|
||||
const closeAll = { inactiveMaker: false, confirmation: false };
|
||||
|
||||
const TakeButton = ({
|
||||
order,
|
||||
setOrder,
|
||||
baseUrl,
|
||||
setPage,
|
||||
hasRobot,
|
||||
}: TakeButtonProps): JSX.Element => {
|
||||
const TakeButton = ({ order, setOrder, baseUrl, hasRobot }: TakeButtonProps): JSX.Element => {
|
||||
const { t } = useTranslation();
|
||||
const theme = useTheme();
|
||||
|
||||
@ -103,7 +96,7 @@ const TakeButton = ({
|
||||
}
|
||||
};
|
||||
|
||||
const amountHelperText = function () {
|
||||
const amountHelperText = useMemo(() => {
|
||||
const amount = order.currency == 1000 ? Number(takeAmount) / 100000000 : Number(takeAmount);
|
||||
if (amount < Number(order.min_amount) && takeAmount != '') {
|
||||
return t('Too low');
|
||||
@ -112,7 +105,7 @@ const TakeButton = ({
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
};
|
||||
}, [order, takeAmount]);
|
||||
|
||||
const onTakeOrderClicked = function () {
|
||||
if (order.maker_status == 'Inactive') {
|
||||
@ -122,7 +115,7 @@ const TakeButton = ({
|
||||
}
|
||||
};
|
||||
|
||||
const invalidTakeAmount = function () {
|
||||
const invalidTakeAmount = useMemo(() => {
|
||||
const amount = order.currency == 1000 ? Number(takeAmount) / 100000000 : Number(takeAmount);
|
||||
return (
|
||||
amount < Number(order.min_amount) ||
|
||||
@ -130,7 +123,7 @@ const TakeButton = ({
|
||||
takeAmount == '' ||
|
||||
takeAmount == null
|
||||
);
|
||||
};
|
||||
}, [takeAmount, order]);
|
||||
|
||||
const takeOrderButton = function () {
|
||||
if (order.has_range) {
|
||||
@ -157,8 +150,8 @@ const TakeButton = ({
|
||||
title={t('Enter amount of fiat to exchange for bitcoin')}
|
||||
>
|
||||
<TextField
|
||||
error={takeAmount === '' ? false : invalidTakeAmount()}
|
||||
helperText={amountHelperText()}
|
||||
error={takeAmount === '' ? false : invalidTakeAmount}
|
||||
helperText={amountHelperText}
|
||||
label={t('Amount {{currencyCode}}', { currencyCode })}
|
||||
size='small'
|
||||
type='number'
|
||||
@ -176,7 +169,7 @@ const TakeButton = ({
|
||||
<Grid item>
|
||||
<div
|
||||
style={{
|
||||
display: invalidTakeAmount() ? '' : 'none',
|
||||
display: invalidTakeAmount ? '' : 'none',
|
||||
}}
|
||||
>
|
||||
<Tooltip
|
||||
@ -201,7 +194,7 @@ const TakeButton = ({
|
||||
</div>
|
||||
<div
|
||||
style={{
|
||||
display: invalidTakeAmount() ? 'none' : '',
|
||||
display: invalidTakeAmount ? 'none' : '',
|
||||
}}
|
||||
>
|
||||
<LoadingButton
|
||||
@ -276,7 +269,6 @@ const TakeButton = ({
|
||||
<ConfirmationDialog
|
||||
open={open.confirmation}
|
||||
onClose={() => setOpen({ ...open, confirmation: false })}
|
||||
setPage={setPage}
|
||||
onClickDone={() => {
|
||||
takeOrder();
|
||||
setLoadingTake(true);
|
||||
|
@ -1,4 +1,4 @@
|
||||
import React from 'react';
|
||||
import React, { useState, useMemo } from 'react';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import {
|
||||
List,
|
||||
@ -13,6 +13,7 @@ import {
|
||||
Collapse,
|
||||
useTheme,
|
||||
Typography,
|
||||
IconButton,
|
||||
} from '@mui/material';
|
||||
|
||||
import Countdown, { CountdownRenderProps, zeroPad } from 'react-countdown';
|
||||
@ -26,37 +27,39 @@ import {
|
||||
Payments,
|
||||
Article,
|
||||
HourglassTop,
|
||||
ExpandLess,
|
||||
ExpandMore,
|
||||
} from '@mui/icons-material';
|
||||
import { PaymentStringAsIcons } from '../../components/PaymentMethods';
|
||||
import { FlagWithProps } from '../Icons';
|
||||
import { FlagWithProps, SendReceiveIcon } from '../Icons';
|
||||
import LinearDeterminate from './LinearDeterminate';
|
||||
|
||||
import { Order } from '../../models';
|
||||
import { statusBadgeColor, pn, amountToString } from '../../utils';
|
||||
import { Page } from '../../basic/NavBar';
|
||||
import { Order, Info } from '../../models';
|
||||
import { statusBadgeColor, pn, amountToString, computeSats } from '../../utils';
|
||||
import TakeButton from './TakeButton';
|
||||
|
||||
interface OrderDetailsProps {
|
||||
order: Order;
|
||||
setOrder: (state: Order) => void;
|
||||
info: Info;
|
||||
baseUrl: string;
|
||||
hasRobot: boolean;
|
||||
setPage: (state: Page) => void;
|
||||
}
|
||||
|
||||
const OrderDetails = ({
|
||||
order,
|
||||
info,
|
||||
setOrder,
|
||||
baseUrl,
|
||||
setPage,
|
||||
hasRobot,
|
||||
}: OrderDetailsProps): JSX.Element => {
|
||||
const { t } = useTranslation();
|
||||
const theme = useTheme();
|
||||
|
||||
const currencyCode: string = currencies[`${order.currency}`];
|
||||
const [showSwapDetails, setShowSwapDetails] = useState<boolean>(false);
|
||||
|
||||
const AmountString = function () {
|
||||
const amountString = useMemo(() => {
|
||||
// precision to 8 decimal if currency is BTC otherwise 4 decimals
|
||||
if (order.currency == 1000) {
|
||||
return (
|
||||
@ -75,7 +78,7 @@ const OrderDetails = ({
|
||||
order.max_amount,
|
||||
);
|
||||
}
|
||||
};
|
||||
}, [order.currency, order.amount, order.min_amount, order.max_amount, order.has_range]);
|
||||
|
||||
// Countdown Renderer callback with condition
|
||||
const countdownRenderer = function ({
|
||||
@ -138,6 +141,71 @@ const OrderDetails = ({
|
||||
}
|
||||
};
|
||||
|
||||
const swap = useMemo(() => {
|
||||
let send: string = '';
|
||||
let receive: string = '';
|
||||
let swapSats: string = '';
|
||||
|
||||
const isSwapIn = (order.type == 0 && order.is_maker) || (order.type == 1 && !order.is_maker);
|
||||
const tradeFee = order.is_maker ? info.maker_fee : info.taker_fee;
|
||||
const defaultRoutingBudget = 0.001;
|
||||
if (order.currency === 1000) {
|
||||
if (isSwapIn) {
|
||||
if (order.amount) {
|
||||
swapSats = computeSats({
|
||||
amount: order.amount,
|
||||
premium: order.premium,
|
||||
fee: -tradeFee,
|
||||
routingBudget: defaultRoutingBudget,
|
||||
});
|
||||
} else {
|
||||
const swapMin = computeSats({
|
||||
amount: Number(order.min_amount),
|
||||
premium: order.premium,
|
||||
fee: -tradeFee,
|
||||
routingBudget: defaultRoutingBudget,
|
||||
});
|
||||
const swapMax = computeSats({
|
||||
amount: Number(order.max_amount),
|
||||
premium: order.premium,
|
||||
fee: -tradeFee,
|
||||
routingBudget: defaultRoutingBudget,
|
||||
});
|
||||
swapSats = `${swapMin}-${swapMax}`;
|
||||
}
|
||||
send = t('You send via {{method}} {{amount}}', {
|
||||
amount: amountString,
|
||||
method: order.payment_method,
|
||||
});
|
||||
receive = t('You receive via Lightning {{amount}} Sats (routing budget may vary)', {
|
||||
amount: swapSats,
|
||||
});
|
||||
} else {
|
||||
if (order.amount) {
|
||||
swapSats = computeSats({ amount: order.amount, premium: order.premium, fee: tradeFee });
|
||||
} else {
|
||||
const swapMin = computeSats({
|
||||
amount: order.min_amount,
|
||||
premium: order.premium,
|
||||
fee: tradeFee,
|
||||
});
|
||||
const swapMax = computeSats({
|
||||
amount: order.max_amount,
|
||||
premium: order.premium,
|
||||
fee: tradeFee,
|
||||
});
|
||||
swapSats = `${swapMin}-${swapMax}`;
|
||||
}
|
||||
send = t('You send via Lightning {{amount}} Sats', { amount: swapSats });
|
||||
receive = t('You receive via {{method}} {{amount}}', {
|
||||
amount: amountString,
|
||||
method: order.payment_method,
|
||||
});
|
||||
}
|
||||
}
|
||||
return { send, receive, isSwapIn };
|
||||
}, [order.currency, order.amount, order.has_range]);
|
||||
|
||||
return (
|
||||
<Grid container spacing={0}>
|
||||
<Grid item xs={12}>
|
||||
@ -185,7 +253,6 @@ const OrderDetails = ({
|
||||
</ListItemAvatar>
|
||||
</ListItem>
|
||||
</Collapse>
|
||||
|
||||
<Divider>
|
||||
<Chip label={t('Order Details')} />
|
||||
</Divider>
|
||||
@ -216,10 +283,42 @@ const OrderDetails = ({
|
||||
</div>
|
||||
</ListItemIcon>
|
||||
<ListItemText
|
||||
primary={AmountString()}
|
||||
secondary={order.amount && !order.has_range ? 'Amount' : 'Amount Range'}
|
||||
primary={amountString}
|
||||
secondary={order.amount ? 'Amount' : 'Amount Range'}
|
||||
/>
|
||||
<ListItemIcon>
|
||||
<IconButton onClick={() => setShowSwapDetails(!showSwapDetails)}>
|
||||
{showSwapDetails ? <ExpandLess /> : <ExpandMore color='primary' />}
|
||||
</IconButton>
|
||||
</ListItemIcon>
|
||||
</ListItem>
|
||||
|
||||
{order.currency === 1000 ? (
|
||||
<Collapse in={showSwapDetails}>
|
||||
<List dense={true} sx={{ position: 'relative', bottom: '0.5em' }}>
|
||||
<ListItem>
|
||||
<ListItemIcon sx={{ position: 'relative', left: '0.3em' }}>
|
||||
<SendReceiveIcon
|
||||
sx={{ transform: 'scaleX(-1)', width: '0.9em', opacity: 0.7 }}
|
||||
color='secondary'
|
||||
/>
|
||||
</ListItemIcon>
|
||||
<Typography variant='body2'>{swap.send}</Typography>
|
||||
</ListItem>
|
||||
|
||||
<ListItem>
|
||||
<ListItemIcon sx={{ position: 'relative', left: '0.3em' }}>
|
||||
<SendReceiveIcon
|
||||
sx={{ left: '0.1em', width: '0.9em', opacity: 0.7 }}
|
||||
color='primary'
|
||||
/>
|
||||
</ListItemIcon>
|
||||
<Typography variant='body2'>{swap.receive}</Typography>
|
||||
</ListItem>
|
||||
</List>
|
||||
</Collapse>
|
||||
) : null}
|
||||
|
||||
<Divider />
|
||||
|
||||
<ListItem>
|
||||
@ -327,13 +426,7 @@ const OrderDetails = ({
|
||||
|
||||
{!order.is_participant ? (
|
||||
<Grid item xs={12}>
|
||||
<TakeButton
|
||||
order={order}
|
||||
setOrder={setOrder}
|
||||
baseUrl={baseUrl}
|
||||
setPage={setPage}
|
||||
hasRobot={hasRobot}
|
||||
/>
|
||||
<TakeButton order={order} setOrder={setOrder} baseUrl={baseUrl} hasRobot={hasRobot} />
|
||||
</Grid>
|
||||
) : (
|
||||
<></>
|
||||
|
@ -43,7 +43,7 @@ export const WebLNDialog = ({
|
||||
/>
|
||||
{isBuyer
|
||||
? t('Invoice not received, please check your WebLN wallet.')
|
||||
: t('Payment not received, please check your WebLN wallet.')}
|
||||
: t('Amount not yet locked, please check your WebLN wallet.')}
|
||||
</>
|
||||
) : (
|
||||
<>
|
||||
|
@ -198,33 +198,6 @@ export const LightningPayoutForm = ({
|
||||
.finally(() => setLoadingLnproxy(false));
|
||||
};
|
||||
|
||||
// const fetchLnproxy = function () {
|
||||
// setLoadingLnproxy(true);
|
||||
// fetch(
|
||||
// lnproxyUrl() +
|
||||
// `/api/${lightning.lnproxyInvoice.toLocaleLowerCase()}${
|
||||
// lightning.lnproxyBudgetSats > 0
|
||||
// ? `?routing_msat=${lightning.lnproxyBudgetSats * 1000}`
|
||||
// : ''
|
||||
// }`,
|
||||
// )
|
||||
// .then((response) => response.text())
|
||||
// .then((text) => {
|
||||
// if (text.includes('lnproxy error')) {
|
||||
// setLightning({ ...lightning, badLnproxy: text });
|
||||
// } else {
|
||||
// const invoice = text.replace('\n', '');
|
||||
// setLightning({ ...lightning, invoice, badLnproxy: '' });
|
||||
// }
|
||||
// })
|
||||
// .catch(() => {
|
||||
// setLightning({ ...lightning, badLnproxy: 'Lnproxy server uncaught error' });
|
||||
// })
|
||||
// .finally(() => {
|
||||
// setLoadingLnproxy(false);
|
||||
// });
|
||||
// };
|
||||
|
||||
const handleAdvancedOptions = function (checked: boolean) {
|
||||
if (checked) {
|
||||
setLightning({
|
||||
|
23
frontend/src/utils/computeSats.ts
Normal file
23
frontend/src/utils/computeSats.ts
Normal file
@ -0,0 +1,23 @@
|
||||
import { pn } from './prettyNumbers';
|
||||
|
||||
interface computeSatsProps {
|
||||
amount: number;
|
||||
premium: number;
|
||||
fee: number;
|
||||
routingBudget?: number;
|
||||
rate?: number;
|
||||
}
|
||||
const computeSats = ({
|
||||
amount,
|
||||
premium,
|
||||
fee,
|
||||
routingBudget = 0,
|
||||
rate = 1,
|
||||
}: computeSatsProps): string | undefined => {
|
||||
let rateWithPremium = rate + premium / 100;
|
||||
let sats = (amount / rateWithPremium) * 100000000;
|
||||
sats = sats * (1 + fee) * (1 - routingBudget);
|
||||
return pn(Math.round(sats));
|
||||
};
|
||||
|
||||
export default computeSats;
|
@ -9,3 +9,4 @@ export { default as saveAsJson } from './saveFile';
|
||||
export { default as statusBadgeColor } from './statusBadgeColor';
|
||||
export { genBase62Token, tokenStrength } from './token';
|
||||
export { default as getWebln } from './webln';
|
||||
export { default as computeSats } from './computeSats';
|
||||
|
@ -94,6 +94,10 @@
|
||||
"The order has expired": "L'ordre ha expirat",
|
||||
"Penalty lifted, good to go!": "Sanció revocada, som-hi!",
|
||||
"You cannot take an order yet! Wait {{timeMin}}m {{timeSec}}s": "Encara no pots prendre cap ordre! Espera {{timeMin}}m {{timeSec}}s",
|
||||
"You send via {{method}} {{amount}}": "You send via {{method}} {{amount}}",
|
||||
"You receive via Lightning {{amount}} Sats (routing budget may vary)": "You receive via Lightning {{amount}} Sats (routing budget may vary)",
|
||||
"You send via Lightning {{amount}} Sats": "You send via Lightning {{amount}} Sats",
|
||||
"You receive via {{method}} {{amount}}": "You receive via {{method}} {{amount}}",
|
||||
"Order maker": "Creador",
|
||||
"Order taker": "Prenedor",
|
||||
"Order Details": "Detalls",
|
||||
@ -258,6 +262,11 @@
|
||||
"Must be more than {{min}}%": "Ha de ser més del {{min}}%",
|
||||
"Must be less than {{maxSats}": "Ha de ser menys de {{maxSats}}",
|
||||
"Must be more than {{minSats}}": "Ha de ser més de {{minSats}}",
|
||||
"Amount": "Suma",
|
||||
"Onchain amount to send (BTC)": "Onchain amount to send (BTC)",
|
||||
"You receive approx {{swapSats}} LN Sats (fees might vary)": "You receive approx {{swapSats}} LN Sats (fees might vary)",
|
||||
"Onchain amount to receive (BTC)": "Onchain amount to receive (BTC)",
|
||||
"You send approx {{swapSats}} LN Sats (fees might vary)": "You send approx {{swapSats}} LN Sats (fees might vary)",
|
||||
" of {{satoshis}} Satoshis": " de {{satoshis}} Sats",
|
||||
" at a {{premium}}% premium": " amb una prima del {{premium}}%",
|
||||
" at a {{discount}}% discount": " amb descompte del {{discount}}%",
|
||||
@ -274,7 +283,6 @@
|
||||
"Amount of BTC to swap for LN Sats": "Quantitat de BTC a canviar per LN Sats",
|
||||
"Must be more than {{minAmount}}": "Ha de ser més de {{minAmount}}",
|
||||
"Must be less than {{maxAmount}}": "Ha de ser menys de {{maxAmount}}",
|
||||
"Amount": "Suma",
|
||||
"Must be shorter than 65 characters": "Ha de tenir menys de 65 caràcters",
|
||||
"Swap Destination(s)": "Destí(ns) del Swap",
|
||||
"Fiat Payment Method(s)": "Mètode(s) de Pagament Fiat",
|
||||
@ -438,7 +446,7 @@
|
||||
"#47": "Phrases in components/TradeBox/Dialogs/WebLN.tsx",
|
||||
"WebLN": "WebLN",
|
||||
"Invoice not received, please check your WebLN wallet.": "No s'ha rebut la factura, fes un cop d'ull a la teva wallet WebLN.",
|
||||
"Payment not received, please check your WebLN wallet.": "No s'ha rebut el pagament, fes un cop d'ull a la teva wallet WebLN.",
|
||||
"Amount not yet locked, please check your WebLN wallet.": "Amount not yet locked, please check your WebLN wallet.",
|
||||
"You can close now your WebLN wallet popup.": "Ara pots tancar el popup de la teva wallet WebLN.",
|
||||
"#48": "Phrases in components/TradeBox/Dialogs/ConfirmDispute.tsx",
|
||||
"Do you want to open a dispute?": "Vols obrir una disputa?",
|
||||
|
@ -94,6 +94,10 @@
|
||||
"The order has expired": "Nabídka vypršela",
|
||||
"Penalty lifted, good to go!": "Pokuta zrušena, lze pokračovat!",
|
||||
"You cannot take an order yet! Wait {{timeMin}}m {{timeSec}}s": "Nabídku nemůžeš zatím příjmout! Počkej {{timeMin}}m {{timeSec}}s",
|
||||
"You send via {{method}} {{amount}}": "You send via {{method}} {{amount}}",
|
||||
"You receive via Lightning {{amount}} Sats (routing budget may vary)": "You receive via Lightning {{amount}} Sats (routing budget may vary)",
|
||||
"You send via Lightning {{amount}} Sats": "You send via Lightning {{amount}} Sats",
|
||||
"You receive via {{method}} {{amount}}": "You receive via {{method}} {{amount}}",
|
||||
"Order maker": "Tvůrce nabídky",
|
||||
"Order taker": "Příjemce nabídky",
|
||||
"Order Details": "Detaily nabídky",
|
||||
@ -258,6 +262,11 @@
|
||||
"Must be more than {{min}}%": "Musí být více než {{min}}%",
|
||||
"Must be less than {{maxSats}": "Musí být méně než {{maxSats}}",
|
||||
"Must be more than {{minSats}}": "Musí být více než {{minSats}}",
|
||||
"Amount": "Částka",
|
||||
"Onchain amount to send (BTC)": "Onchain amount to send (BTC)",
|
||||
"You receive approx {{swapSats}} LN Sats (fees might vary)": "You receive approx {{swapSats}} LN Sats (fees might vary)",
|
||||
"Onchain amount to receive (BTC)": "Onchain amount to receive (BTC)",
|
||||
"You send approx {{swapSats}} LN Sats (fees might vary)": "You send approx {{swapSats}} LN Sats (fees might vary)",
|
||||
" of {{satoshis}} Satoshis": " {{satoshis}} Satoshi",
|
||||
" at a {{premium}}% premium": " za {{premium}}% přirážku",
|
||||
" at a {{discount}}% discount": " za {{discount}}% slevu",
|
||||
@ -274,7 +283,6 @@
|
||||
"Amount of BTC to swap for LN Sats": "Amount of BTC to swap for LN Sats",
|
||||
"Must be more than {{minAmount}}": "Must be more than {{minAmount}}",
|
||||
"Must be less than {{maxAmount}}": "Must be less than {{maxAmount}}",
|
||||
"Amount": "Částka",
|
||||
"Must be shorter than 65 characters": "Maximálně 65 znaků",
|
||||
"Swap Destination(s)": "Swap adresa",
|
||||
"Fiat Payment Method(s)": "Možnosti fiat plateb",
|
||||
@ -438,7 +446,7 @@
|
||||
"#47": "Phrases in components/TradeBox/Dialogs/WebLN.tsx",
|
||||
"WebLN": "WebLN",
|
||||
"Invoice not received, please check your WebLN wallet.": "Invoice not received, please check your WebLN wallet.",
|
||||
"Payment not received, please check your WebLN wallet.": "Payment not received, please check your WebLN wallet.",
|
||||
"Amount not yet locked, please check your WebLN wallet.": "Amount not yet locked, please check your WebLN wallet.",
|
||||
"You can close now your WebLN wallet popup.": "You can close now your WebLN wallet popup.",
|
||||
"#48": "Phrases in components/TradeBox/Dialogs/ConfirmDispute.tsx",
|
||||
"Do you want to open a dispute?": "Chceš otevřít spor?",
|
||||
|
@ -94,6 +94,10 @@
|
||||
"The order has expired": "Die Order ist abgelaufen",
|
||||
"Penalty lifted, good to go!": "Die Strafe ist aufgehoben, es kann losgehen!",
|
||||
"You cannot take an order yet! Wait {{timeMin}}m {{timeSec}}s": "Du kannst noch keine Order annehmen! Warte {{timeMin}}m {{timeSec}}s",
|
||||
"You send via {{method}} {{amount}}": "You send via {{method}} {{amount}}",
|
||||
"You receive via Lightning {{amount}} Sats (routing budget may vary)": "You receive via Lightning {{amount}} Sats (routing budget may vary)",
|
||||
"You send via Lightning {{amount}} Sats": "You send via Lightning {{amount}} Sats",
|
||||
"You receive via {{method}} {{amount}}": "You receive via {{method}} {{amount}}",
|
||||
"Order maker": "Order-Maker",
|
||||
"Order taker": "Order-Taker",
|
||||
"Order Details": "Order-Details",
|
||||
@ -258,6 +262,11 @@
|
||||
"Must be more than {{min}}%": "Muss mehr sein als {{min}}%",
|
||||
"Must be less than {{maxSats}": "Muss weniger sein als {{maxSats}}",
|
||||
"Must be more than {{minSats}}": "Muss mehr sein als {{minSats}}",
|
||||
"Amount": "Menge",
|
||||
"Onchain amount to send (BTC)": "Onchain amount to send (BTC)",
|
||||
"You receive approx {{swapSats}} LN Sats (fees might vary)": "You receive approx {{swapSats}} LN Sats (fees might vary)",
|
||||
"Onchain amount to receive (BTC)": "Onchain amount to receive (BTC)",
|
||||
"You send approx {{swapSats}} LN Sats (fees might vary)": "You send approx {{swapSats}} LN Sats (fees might vary)",
|
||||
" of {{satoshis}} Satoshis": " für {{satoshis}} Satoshis",
|
||||
" at a {{premium}}% premium": " mit einem {{premium}}% Aufschlag",
|
||||
" at a {{discount}}% discount": " mit einem {{discount}}% Rabatt",
|
||||
@ -274,7 +283,6 @@
|
||||
"Amount of BTC to swap for LN Sats": "Amount of BTC to swap for LN Sats",
|
||||
"Must be more than {{minAmount}}": "Must be more than {{minAmount}}",
|
||||
"Must be less than {{maxAmount}}": "Must be less than {{maxAmount}}",
|
||||
"Amount": "Menge",
|
||||
"Must be shorter than 65 characters": "Muss kürzer als 65 Zeichen sein",
|
||||
"Swap Destination(s)": "austausch Ziel(e)",
|
||||
"Fiat Payment Method(s)": "Fiat Zahlungsmethode(n)",
|
||||
@ -438,7 +446,7 @@
|
||||
"#47": "Phrases in components/TradeBox/Dialogs/WebLN.tsx",
|
||||
"WebLN": "WebLN",
|
||||
"Invoice not received, please check your WebLN wallet.": "Invoice not received, please check your WebLN wallet.",
|
||||
"Payment not received, please check your WebLN wallet.": "Payment not received, please check your WebLN wallet.",
|
||||
"Amount not yet locked, please check your WebLN wallet.": "Amount not yet locked, please check your WebLN wallet.",
|
||||
"You can close now your WebLN wallet popup.": "You can close now your WebLN wallet popup.",
|
||||
"#48": "Phrases in components/TradeBox/Dialogs/ConfirmDispute.tsx",
|
||||
"Do you want to open a dispute?": "Möchtest du einen Fall eröffnen?",
|
||||
|
@ -94,6 +94,10 @@
|
||||
"The order has expired": "The order has expired",
|
||||
"Penalty lifted, good to go!": "Penalty lifted, good to go!",
|
||||
"You cannot take an order yet! Wait {{timeMin}}m {{timeSec}}s": "You cannot take an order yet! Wait {{timeMin}}m {{timeSec}}s",
|
||||
"You send via {{method}} {{amount}}": "You send via {{method}} {{amount}}",
|
||||
"You receive via Lightning {{amount}} Sats (routing budget may vary)": "You receive via Lightning {{amount}} Sats (routing budget may vary)",
|
||||
"You send via Lightning {{amount}} Sats": "You send via Lightning {{amount}} Sats",
|
||||
"You receive via {{method}} {{amount}}": "You receive via {{method}} {{amount}}",
|
||||
"Order maker": "Order maker",
|
||||
"Order taker": "Order taker",
|
||||
"Order Details": "Order Details",
|
||||
@ -258,6 +262,11 @@
|
||||
"Must be more than {{min}}%": "Must be more than {{min}}%",
|
||||
"Must be less than {{maxSats}": "Must be less than {{maxSats}}",
|
||||
"Must be more than {{minSats}}": "Must be more than {{minSats}}",
|
||||
"Amount": "Amount",
|
||||
"Onchain amount to send (BTC)": "Onchain amount to send (BTC)",
|
||||
"You receive approx {{swapSats}} LN Sats (fees might vary)": "You receive approx {{swapSats}} LN Sats (fees might vary)",
|
||||
"Onchain amount to receive (BTC)": "Onchain amount to receive (BTC)",
|
||||
"You send approx {{swapSats}} LN Sats (fees might vary)": "You send approx {{swapSats}} LN Sats (fees might vary)",
|
||||
" of {{satoshis}} Satoshis": " of {{satoshis}} Satoshis",
|
||||
" at a {{premium}}% premium": " at a {{premium}}% premium",
|
||||
" at a {{discount}}% discount": " at a {{discount}}% discount",
|
||||
@ -274,7 +283,6 @@
|
||||
"Amount of BTC to swap for LN Sats": "Amount of BTC to swap for LN Sats",
|
||||
"Must be more than {{minAmount}}": "Must be more than {{minAmount}}",
|
||||
"Must be less than {{maxAmount}}": "Must be less than {{maxAmount}}",
|
||||
"Amount": "Amount",
|
||||
"Must be shorter than 65 characters": "Must be shorter than 65 characters",
|
||||
"Swap Destination(s)": "Swap Destination(s)",
|
||||
"Fiat Payment Method(s)": "Fiat Payment Method(s)",
|
||||
@ -438,7 +446,7 @@
|
||||
"#47": "Phrases in components/TradeBox/Dialogs/WebLN.tsx",
|
||||
"WebLN": "WebLN",
|
||||
"Invoice not received, please check your WebLN wallet.": "Invoice not received, please check your WebLN wallet.",
|
||||
"Payment not received, please check your WebLN wallet.": "Payment not received, please check your WebLN wallet.",
|
||||
"Amount not yet locked, please check your WebLN wallet.": "Amount not yet locked, please check your WebLN wallet.",
|
||||
"You can close now your WebLN wallet popup.": "You can close now your WebLN wallet popup.",
|
||||
"#48": "Phrases in components/TradeBox/Dialogs/ConfirmDispute.tsx",
|
||||
"Do you want to open a dispute?": "Do you want to open a dispute?",
|
||||
|
@ -94,6 +94,10 @@
|
||||
"The order has expired": "La orden ha expirado",
|
||||
"Penalty lifted, good to go!": "Sanción revocada, ¡vamos!",
|
||||
"You cannot take an order yet! Wait {{timeMin}}m {{timeSec}}s": "¡No puedes tomar una orden aún! Espera {{timeMin}}m {{timeSec}}s",
|
||||
"You send via {{method}} {{amount}}": "You send via {{method}} {{amount}}",
|
||||
"You receive via Lightning {{amount}} Sats (routing budget may vary)": "You receive via Lightning {{amount}} Sats (routing budget may vary)",
|
||||
"You send via Lightning {{amount}} Sats": "You send via Lightning {{amount}} Sats",
|
||||
"You receive via {{method}} {{amount}}": "You receive via {{method}} {{amount}}",
|
||||
"Order maker": "Creador",
|
||||
"Order taker": "Tomador",
|
||||
"Order Details": "Detalles",
|
||||
@ -258,6 +262,11 @@
|
||||
"Must be more than {{min}}%": "Debe ser más del {{min}}%",
|
||||
"Must be less than {{maxSats}": "Debe ser menos de {{maxSats}}",
|
||||
"Must be more than {{minSats}}": "Debe ser más de {{minSats}}",
|
||||
"Amount": "Monto",
|
||||
"Onchain amount to send (BTC)": "Onchain amount to send (BTC)",
|
||||
"You receive approx {{swapSats}} LN Sats (fees might vary)": "You receive approx {{swapSats}} LN Sats (fees might vary)",
|
||||
"Onchain amount to receive (BTC)": "Onchain amount to receive (BTC)",
|
||||
"You send approx {{swapSats}} LN Sats (fees might vary)": "You send approx {{swapSats}} LN Sats (fees might vary)",
|
||||
" of {{satoshis}} Satoshis": " de {{satoshis}} Sats",
|
||||
" at a {{premium}}% premium": " con una prima del {{premium}}%",
|
||||
" at a {{discount}}% discount": " con descuento del {{discount}}%",
|
||||
@ -274,7 +283,6 @@
|
||||
"Amount of BTC to swap for LN Sats": "Amount of BTC to swap for LN Sats",
|
||||
"Must be more than {{minAmount}}": "Must be more than {{minAmount}}",
|
||||
"Must be less than {{maxAmount}}": "Must be less than {{maxAmount}}",
|
||||
"Amount": "Monto",
|
||||
"Must be shorter than 65 characters": "Debe tener menos de 65 caracteres",
|
||||
"Swap Destination(s)": "Destino(s) del swap",
|
||||
"Fiat Payment Method(s)": "Método(s) de pago en fiat",
|
||||
@ -438,7 +446,7 @@
|
||||
"#47": "Phrases in components/TradeBox/Dialogs/WebLN.tsx",
|
||||
"WebLN": "WebLN",
|
||||
"Invoice not received, please check your WebLN wallet.": "No se ha recibido la factura, echa un vistazo a tu wallet WebLN.",
|
||||
"Payment not received, please check your WebLN wallet.": "No se ha recibido el pago, echa un vistazo a tu wallet WebLN.",
|
||||
"Amount not yet locked, please check your WebLN wallet.": "Amount not yet locked, please check your WebLN wallet.",
|
||||
"You can close now your WebLN wallet popup.": "Ahora puedes cerrar el popup de tu wallet WebLN.",
|
||||
"#48": "Phrases in components/TradeBox/Dialogs/ConfirmDispute.tsx",
|
||||
"Do you want to open a dispute?": "¿Quieres abrir una disputa?",
|
||||
|
@ -94,6 +94,10 @@
|
||||
"The order has expired": "Eskaera iraungi da",
|
||||
"Penalty lifted, good to go!": "Zigorra kendu da, prest!",
|
||||
"You cannot take an order yet! Wait {{timeMin}}m {{timeSec}}s": "Oraindik ezin duzu eskaerarik hartu! Itxaron{{timeMin}}m {{timeSec}}s",
|
||||
"You send via {{method}} {{amount}}": "You send via {{method}} {{amount}}",
|
||||
"You receive via Lightning {{amount}} Sats (routing budget may vary)": "You receive via Lightning {{amount}} Sats (routing budget may vary)",
|
||||
"You send via Lightning {{amount}} Sats": "You send via Lightning {{amount}} Sats",
|
||||
"You receive via {{method}} {{amount}}": "You receive via {{method}} {{amount}}",
|
||||
"Order maker": "Eskaera egile",
|
||||
"Order taker": "Eskaera hartzaile",
|
||||
"Order Details": "Xehetasunak",
|
||||
@ -258,6 +262,11 @@
|
||||
"Must be more than {{min}}%": "%{{min}} baino gehiago izan behar da",
|
||||
"Must be less than {{maxSats}": "{{maxSats}} baino gutxiago izan behar da",
|
||||
"Must be more than {{minSats}}": "{{minSats}} baino gehiago izan behar da",
|
||||
"Amount": "Kopurua",
|
||||
"Onchain amount to send (BTC)": "Onchain amount to send (BTC)",
|
||||
"You receive approx {{swapSats}} LN Sats (fees might vary)": "You receive approx {{swapSats}} LN Sats (fees might vary)",
|
||||
"Onchain amount to receive (BTC)": "Onchain amount to receive (BTC)",
|
||||
"You send approx {{swapSats}} LN Sats (fees might vary)": "You send approx {{swapSats}} LN Sats (fees might vary)",
|
||||
" of {{satoshis}} Satoshis": " {{satoshis}} Satoshirentzat",
|
||||
" at a {{premium}}% premium": " %{{premium}}-ko primarekin",
|
||||
" at a {{discount}}% discount": " %{{discount}}-ko deskontuarekin",
|
||||
@ -274,7 +283,6 @@
|
||||
"Amount of BTC to swap for LN Sats": "Amount of BTC to swap for LN Sats",
|
||||
"Must be more than {{minAmount}}": "Must be more than {{minAmount}}",
|
||||
"Must be less than {{maxAmount}}": "Must be less than {{maxAmount}}",
|
||||
"Amount": "Kopurua",
|
||||
"Must be shorter than 65 characters": "65 karaktere baino gutxiago izan behar ditu",
|
||||
"Swap Destination(s)": "Trukearen Norakoa(k)",
|
||||
"Fiat Payment Method(s)": "Fiat Ordainketa Modua(k)",
|
||||
@ -438,7 +446,7 @@
|
||||
"#47": "Phrases in components/TradeBox/Dialogs/WebLN.tsx",
|
||||
"WebLN": "WebLN",
|
||||
"Invoice not received, please check your WebLN wallet.": "Faktura ez da jaso, mesedez begiratu zure WebLN kartera.",
|
||||
"Payment not received, please check your WebLN wallet.": "Ordainketa ez da jaso, mesedez begiratu zure WebLN kartera.",
|
||||
"Amount not yet locked, please check your WebLN wallet.": "Amount not yet locked, please check your WebLN wallet.",
|
||||
"You can close now your WebLN wallet popup.": "You can close now your WebLN wallet popup.",
|
||||
"#48": "Phrases in components/TradeBox/Dialogs/ConfirmDispute.tsx",
|
||||
"Do you want to open a dispute?": "Eztabaida bat ireki nahi duzu?",
|
||||
|
@ -94,6 +94,10 @@
|
||||
"The order has expired": "L'ordre a expiré",
|
||||
"Penalty lifted, good to go!": "Pénalité levée, vous pouvez y aller!",
|
||||
"You cannot take an order yet! Wait {{timeMin}}m {{timeSec}}s": "Vous ne pouvez pas encore prendre un ordre! Attendez {{timeMin}}m {{timeSec}}s",
|
||||
"You send via {{method}} {{amount}}": "You send via {{method}} {{amount}}",
|
||||
"You receive via Lightning {{amount}} Sats (routing budget may vary)": "You receive via Lightning {{amount}} Sats (routing budget may vary)",
|
||||
"You send via Lightning {{amount}} Sats": "You send via Lightning {{amount}} Sats",
|
||||
"You receive via {{method}} {{amount}}": "You receive via {{method}} {{amount}}",
|
||||
"Order maker": "Createur d'ordre",
|
||||
"Order taker": "Preneur d'ordre",
|
||||
"Order Details": "Détails de l'ordre",
|
||||
@ -258,6 +262,11 @@
|
||||
"Must be more than {{min}}%": "Doit être plus que {{min}}%",
|
||||
"Must be less than {{maxSats}": "Doit être moins que {{maxSats}}",
|
||||
"Must be more than {{minSats}}": "Doit être plus que {{minSats}}",
|
||||
"Amount": "Montant",
|
||||
"Onchain amount to send (BTC)": "Onchain amount to send (BTC)",
|
||||
"You receive approx {{swapSats}} LN Sats (fees might vary)": "You receive approx {{swapSats}} LN Sats (fees might vary)",
|
||||
"Onchain amount to receive (BTC)": "Onchain amount to receive (BTC)",
|
||||
"You send approx {{swapSats}} LN Sats (fees might vary)": "You send approx {{swapSats}} LN Sats (fees might vary)",
|
||||
" of {{satoshis}} Satoshis": " de {{satoshis}} Satoshis",
|
||||
" at a {{premium}}% premium": " à une prime de {{premium}}%",
|
||||
" at a {{discount}}% discount": " à une remise de {{discount}}%",
|
||||
@ -274,7 +283,6 @@
|
||||
"Amount of BTC to swap for LN Sats": "Amount of BTC to swap for LN Sats",
|
||||
"Must be more than {{minAmount}}": "Must be more than {{minAmount}}",
|
||||
"Must be less than {{maxAmount}}": "Must be less than {{maxAmount}}",
|
||||
"Amount": "Montant",
|
||||
"Must be shorter than 65 characters": "Doit être plus court que 65 caractères",
|
||||
"Swap Destination(s)": "Destination(s) de l'échange",
|
||||
"Fiat Payment Method(s)": "Mode(s) de paiement Fiat",
|
||||
@ -438,7 +446,7 @@
|
||||
"#47": "Phrases in components/TradeBox/Dialogs/WebLN.tsx",
|
||||
"WebLN": "WebLN",
|
||||
"Invoice not received, please check your WebLN wallet.": "Invoice not received, please check your WebLN wallet.",
|
||||
"Payment not received, please check your WebLN wallet.": "Payment not received, please check your WebLN wallet.",
|
||||
"Amount not yet locked, please check your WebLN wallet.": "Amount not yet locked, please check your WebLN wallet.",
|
||||
"You can close now your WebLN wallet popup.": "You can close now your WebLN wallet popup.",
|
||||
"#48": "Phrases in components/TradeBox/Dialogs/ConfirmDispute.tsx",
|
||||
"Do you want to open a dispute?": "Voulez-vous ouvrir un litige?",
|
||||
|
@ -94,6 +94,10 @@
|
||||
"The order has expired": "L'ordine è scaduto",
|
||||
"Penalty lifted, good to go!": "Penalità rimossa, partiamo!",
|
||||
"You cannot take an order yet! Wait {{timeMin}}m {{timeSec}}s": "Non puoi ancora accettare un ordine! Aspetta {{timeMin}}m {{timeSec}}s",
|
||||
"You send via {{method}} {{amount}}": "You send via {{method}} {{amount}}",
|
||||
"You receive via Lightning {{amount}} Sats (routing budget may vary)": "You receive via Lightning {{amount}} Sats (routing budget may vary)",
|
||||
"You send via Lightning {{amount}} Sats": "You send via Lightning {{amount}} Sats",
|
||||
"You receive via {{method}} {{amount}}": "You receive via {{method}} {{amount}}",
|
||||
"Order maker": "Offerente",
|
||||
"Order taker": "Acquirente",
|
||||
"Order Details": "Dettagli",
|
||||
@ -258,6 +262,11 @@
|
||||
"Must be more than {{min}}%": "Dev'essere maggiore del {{min}}%",
|
||||
"Must be less than {{maxSats}": "Dev'essere inferiore al {{maxSats}}",
|
||||
"Must be more than {{minSats}}": "Dev'essere maggiore del {{minSats}}",
|
||||
"Amount": "Quantità",
|
||||
"Onchain amount to send (BTC)": "Onchain amount to send (BTC)",
|
||||
"You receive approx {{swapSats}} LN Sats (fees might vary)": "You receive approx {{swapSats}} LN Sats (fees might vary)",
|
||||
"Onchain amount to receive (BTC)": "Onchain amount to receive (BTC)",
|
||||
"You send approx {{swapSats}} LN Sats (fees might vary)": "You send approx {{swapSats}} LN Sats (fees might vary)",
|
||||
" of {{satoshis}} Satoshis": " di {{satoshis}} Sats",
|
||||
" at a {{premium}}% premium": " con un premio del {{premium}}%",
|
||||
" at a {{discount}}% discount": " con uno sconto del {{discount}}%",
|
||||
@ -274,7 +283,6 @@
|
||||
"Amount of BTC to swap for LN Sats": "Amount of BTC to swap for LN Sats",
|
||||
"Must be more than {{minAmount}}": "Must be more than {{minAmount}}",
|
||||
"Must be less than {{maxAmount}}": "Must be less than {{maxAmount}}",
|
||||
"Amount": "Quantità",
|
||||
"Must be shorter than 65 characters": "Deve essere meno di 65 caratteri",
|
||||
"Swap Destination(s)": "Destinazione dello/degli Swap",
|
||||
"Fiat Payment Method(s)": "Metodo(i) di pagamento fiat",
|
||||
@ -438,7 +446,7 @@
|
||||
"#47": "Phrases in components/TradeBox/Dialogs/WebLN.tsx",
|
||||
"WebLN": "WebLN",
|
||||
"Invoice not received, please check your WebLN wallet.": "Invoice not received, please check your WebLN wallet.",
|
||||
"Payment not received, please check your WebLN wallet.": "Payment not received, please check your WebLN wallet.",
|
||||
"Amount not yet locked, please check your WebLN wallet.": "Amount not yet locked, please check your WebLN wallet.",
|
||||
"You can close now your WebLN wallet popup.": "You can close now your WebLN wallet popup.",
|
||||
"#48": "Phrases in components/TradeBox/Dialogs/ConfirmDispute.tsx",
|
||||
"Do you want to open a dispute?": "Vuoi aprire una disputa?",
|
||||
|
@ -94,6 +94,10 @@
|
||||
"The order has expired": "Zamówienie wygasło",
|
||||
"Penalty lifted, good to go!": "Kara zniesiona, gotowe!",
|
||||
"You cannot take an order yet! Wait {{timeMin}}m {{timeSec}}s": "Nie możesz jeszcze przyjąć zamówienia! Czekać {{timeMin}}m {{timeSec}}s",
|
||||
"You send via {{method}} {{amount}}": "You send via {{method}} {{amount}}",
|
||||
"You receive via Lightning {{amount}} Sats (routing budget may vary)": "You receive via Lightning {{amount}} Sats (routing budget may vary)",
|
||||
"You send via Lightning {{amount}} Sats": "You send via Lightning {{amount}} Sats",
|
||||
"You receive via {{method}} {{amount}}": "You receive via {{method}} {{amount}}",
|
||||
"Order maker": "Ekspres zamówienia",
|
||||
"Order taker": "Przyjmujący zamówienia",
|
||||
"Order Details": "Szczegóły zamówienia",
|
||||
@ -258,6 +262,11 @@
|
||||
"Must be more than {{min}}%": "To musi być więcej niż {{min}}%",
|
||||
"Must be less than {{maxSats}": "To musi być mniej niż {{maxSats}}",
|
||||
"Must be more than {{minSats}}": "To musi być więcej niż {{minSats}}",
|
||||
"Amount": "Ilość",
|
||||
"Onchain amount to send (BTC)": "Onchain amount to send (BTC)",
|
||||
"You receive approx {{swapSats}} LN Sats (fees might vary)": "You receive approx {{swapSats}} LN Sats (fees might vary)",
|
||||
"Onchain amount to receive (BTC)": "Onchain amount to receive (BTC)",
|
||||
"You send approx {{swapSats}} LN Sats (fees might vary)": "You send approx {{swapSats}} LN Sats (fees might vary)",
|
||||
" of {{satoshis}} Satoshis": " z {{satoshis}} Satoshis",
|
||||
" at a {{premium}}% premium": " o godz {{premium}}% premia",
|
||||
" at a {{discount}}% discount": " o godz {{discount}}% zniżka",
|
||||
@ -274,7 +283,6 @@
|
||||
"Amount of BTC to swap for LN Sats": "Amount of BTC to swap for LN Sats",
|
||||
"Must be more than {{minAmount}}": "Must be more than {{minAmount}}",
|
||||
"Must be less than {{maxAmount}}": "Must be less than {{maxAmount}}",
|
||||
"Amount": "Ilość",
|
||||
"Must be shorter than 65 characters": "Musi być krótszy niż 65 znaków",
|
||||
"Swap Destination(s)": "Swap miejsce/miejsca docelowe",
|
||||
"Fiat Payment Method(s)": "Fiat Metoda/Metody płatności",
|
||||
@ -438,7 +446,7 @@
|
||||
"#47": "Phrases in components/TradeBox/Dialogs/WebLN.tsx",
|
||||
"WebLN": "WebLN",
|
||||
"Invoice not received, please check your WebLN wallet.": "Invoice not received, please check your WebLN wallet.",
|
||||
"Payment not received, please check your WebLN wallet.": "Payment not received, please check your WebLN wallet.",
|
||||
"Amount not yet locked, please check your WebLN wallet.": "Amount not yet locked, please check your WebLN wallet.",
|
||||
"You can close now your WebLN wallet popup.": "You can close now your WebLN wallet popup.",
|
||||
"#48": "Phrases in components/TradeBox/Dialogs/ConfirmDispute.tsx",
|
||||
"Do you want to open a dispute?": "Chcesz otworzyć spór?",
|
||||
|
@ -94,6 +94,10 @@
|
||||
"The order has expired": "A ordem expirou",
|
||||
"Penalty lifted, good to go!": "Penalidade levantada, pronto!",
|
||||
"You cannot take an order yet! Wait {{timeMin}}m {{timeSec}}s": "Você ainda não pode fazer um pedido! Espere {{timeMin}}m {{timeSec}}s",
|
||||
"You send via {{method}} {{amount}}": "You send via {{method}} {{amount}}",
|
||||
"You receive via Lightning {{amount}} Sats (routing budget may vary)": "You receive via Lightning {{amount}} Sats (routing budget may vary)",
|
||||
"You send via Lightning {{amount}} Sats": "You send via Lightning {{amount}} Sats",
|
||||
"You receive via {{method}} {{amount}}": "You receive via {{method}} {{amount}}",
|
||||
"Order maker": "Criar ordem",
|
||||
"Order taker": "Tomar ordem",
|
||||
"Order Details": "Detalhes da ordem",
|
||||
@ -258,6 +262,11 @@
|
||||
"Must be more than {{min}}%": "Deve ser superior a {{min}}%",
|
||||
"Must be less than {{maxSats}": "Deve ser inferior a {{maxSats}}",
|
||||
"Must be more than {{minSats}}": "Deve ser superior a {{minSats}}",
|
||||
"Amount": "Quantidade",
|
||||
"Onchain amount to send (BTC)": "Onchain amount to send (BTC)",
|
||||
"You receive approx {{swapSats}} LN Sats (fees might vary)": "You receive approx {{swapSats}} LN Sats (fees might vary)",
|
||||
"Onchain amount to receive (BTC)": "Onchain amount to receive (BTC)",
|
||||
"You send approx {{swapSats}} LN Sats (fees might vary)": "You send approx {{swapSats}} LN Sats (fees might vary)",
|
||||
" of {{satoshis}} Satoshis": " de {{satoshis}} Satoshis",
|
||||
" at a {{premium}}% premium": " com um prêmio de {{premium}}%",
|
||||
" at a {{discount}}% discount": " com um desconto de {{discount}}%",
|
||||
@ -274,7 +283,6 @@
|
||||
"Amount of BTC to swap for LN Sats": "Amount of BTC to swap for LN Sats",
|
||||
"Must be more than {{minAmount}}": "Must be more than {{minAmount}}",
|
||||
"Must be less than {{maxAmount}}": "Must be less than {{maxAmount}}",
|
||||
"Amount": "Quantidade",
|
||||
"Must be shorter than 65 characters": "Deve ter menos de 65 caracteres",
|
||||
"Swap Destination(s)": "Trocar Destino(s)",
|
||||
"Fiat Payment Method(s)": "Forma(s) de Pagamento Fiat",
|
||||
@ -438,7 +446,7 @@
|
||||
"#47": "Phrases in components/TradeBox/Dialogs/WebLN.tsx",
|
||||
"WebLN": "WebLN",
|
||||
"Invoice not received, please check your WebLN wallet.": "Invoice not received, please check your WebLN wallet.",
|
||||
"Payment not received, please check your WebLN wallet.": "Payment not received, please check your WebLN wallet.",
|
||||
"Amount not yet locked, please check your WebLN wallet.": "Amount not yet locked, please check your WebLN wallet.",
|
||||
"You can close now your WebLN wallet popup.": "You can close now your WebLN wallet popup.",
|
||||
"#48": "Phrases in components/TradeBox/Dialogs/ConfirmDispute.tsx",
|
||||
"Do you want to open a dispute?": "Quer abrir uma disputa?",
|
||||
|
@ -94,6 +94,10 @@
|
||||
"The order has expired": "Срок действия ордера истёк",
|
||||
"Penalty lifted, good to go!": "Пенальти сняты, поехали!",
|
||||
"You cannot take an order yet! Wait {{timeMin}}m {{timeSec}}s": "Вы ещё не можете взять ордер! Подождите {{timeMin}}м {{timeSec}}с",
|
||||
"You send via {{method}} {{amount}}": "You send via {{method}} {{amount}}",
|
||||
"You receive via Lightning {{amount}} Sats (routing budget may vary)": "You receive via Lightning {{amount}} Sats (routing budget may vary)",
|
||||
"You send via Lightning {{amount}} Sats": "You send via Lightning {{amount}} Sats",
|
||||
"You receive via {{method}} {{amount}}": "You receive via {{method}} {{amount}}",
|
||||
"Order maker": "Мейкер ордера",
|
||||
"Order taker": "Тейкер ордера",
|
||||
"Order Details": "Детали ордера",
|
||||
@ -258,6 +262,11 @@
|
||||
"Must be more than {{min}}%": "Должно быть больше чем {{min}}%",
|
||||
"Must be less than {{maxSats}": "Должно быть меньше чем {{maxSats}}",
|
||||
"Must be more than {{minSats}}": "Должно быть больше чем {{minSats}}",
|
||||
"Amount": "Сумма",
|
||||
"Onchain amount to send (BTC)": "Onchain amount to send (BTC)",
|
||||
"You receive approx {{swapSats}} LN Sats (fees might vary)": "You receive approx {{swapSats}} LN Sats (fees might vary)",
|
||||
"Onchain amount to receive (BTC)": "Onchain amount to receive (BTC)",
|
||||
"You send approx {{swapSats}} LN Sats (fees might vary)": "You send approx {{swapSats}} LN Sats (fees might vary)",
|
||||
" of {{satoshis}} Satoshis": " {{satoshis}} Сатоши",
|
||||
" at a {{premium}}% premium": " с наценкой {{premium}}%",
|
||||
" at a {{discount}}% discount": " со скидкой {{discount}}%",
|
||||
@ -274,7 +283,6 @@
|
||||
"Amount of BTC to swap for LN Sats": "Amount of BTC to swap for LN Sats",
|
||||
"Must be more than {{minAmount}}": "Must be more than {{minAmount}}",
|
||||
"Must be less than {{maxAmount}}": "Must be less than {{maxAmount}}",
|
||||
"Amount": "Сумма",
|
||||
"Must be shorter than 65 characters": "Должно быть короче 65и символов",
|
||||
"Swap Destination(s)": "Поменять место(а) назначения",
|
||||
"Fiat Payment Method(s)": "Способ(ы) оплаты",
|
||||
@ -438,7 +446,7 @@
|
||||
"#47": "Phrases in components/TradeBox/Dialogs/WebLN.tsx",
|
||||
"WebLN": "WebLN",
|
||||
"Invoice not received, please check your WebLN wallet.": "Платёж не получен. Пожалуйста, проверьте Ваш WebLN Кошелёк.",
|
||||
"Payment not received, please check your WebLN wallet.": "Платёж не получен. Пожалуйста, проверьте Ваш WebLN Кошелёк.",
|
||||
"Amount not yet locked, please check your WebLN wallet.": "Amount not yet locked, please check your WebLN wallet.",
|
||||
"You can close now your WebLN wallet popup.": "Вы можете закрыть всплывающее окно WebLN Кошелька",
|
||||
"#48": "Phrases in components/TradeBox/Dialogs/ConfirmDispute.tsx",
|
||||
"Do you want to open a dispute?": "Хотите ли Вы открыть диспут?",
|
||||
|
@ -94,6 +94,10 @@
|
||||
"The order has expired": "Ordern har förfallit",
|
||||
"Penalty lifted, good to go!": "Straff upphävt, bara att köra!",
|
||||
"You cannot take an order yet! Wait {{timeMin}}m {{timeSec}}s": "Du kan inte ta en order ännu! Vänta {{timeMin}}m {{timeSec}}s",
|
||||
"You send via {{method}} {{amount}}": "You send via {{method}} {{amount}}",
|
||||
"You receive via Lightning {{amount}} Sats (routing budget may vary)": "You receive via Lightning {{amount}} Sats (routing budget may vary)",
|
||||
"You send via Lightning {{amount}} Sats": "You send via Lightning {{amount}} Sats",
|
||||
"You receive via {{method}} {{amount}}": "You receive via {{method}} {{amount}}",
|
||||
"Order maker": "Ordermaker",
|
||||
"Order taker": "Ordertaker",
|
||||
"Order Details": "Orderdetaljer",
|
||||
@ -258,6 +262,11 @@
|
||||
"Must be more than {{min}}%": "Måste vara mer än {{min}}%",
|
||||
"Must be less than {{maxSats}": "Måste vara mindre än {{maxSats}}",
|
||||
"Must be more than {{minSats}}": "Måste vara mer än {{minSats}}",
|
||||
"Amount": "Summa",
|
||||
"Onchain amount to send (BTC)": "Onchain amount to send (BTC)",
|
||||
"You receive approx {{swapSats}} LN Sats (fees might vary)": "You receive approx {{swapSats}} LN Sats (fees might vary)",
|
||||
"Onchain amount to receive (BTC)": "Onchain amount to receive (BTC)",
|
||||
"You send approx {{swapSats}} LN Sats (fees might vary)": "You send approx {{swapSats}} LN Sats (fees might vary)",
|
||||
" of {{satoshis}} Satoshis": " för {{satoshis}} sats",
|
||||
" at a {{premium}}% premium": " med en premium på {{premium}}%",
|
||||
" at a {{discount}}% discount": " med en rabatt på {{discount}}%",
|
||||
@ -274,7 +283,6 @@
|
||||
"Amount of BTC to swap for LN Sats": "Amount of BTC to swap for LN Sats",
|
||||
"Must be more than {{minAmount}}": "Must be more than {{minAmount}}",
|
||||
"Must be less than {{maxAmount}}": "Must be less than {{maxAmount}}",
|
||||
"Amount": "Summa",
|
||||
"Must be shorter than 65 characters": "Måste vara kortare än 65 tecken",
|
||||
"Swap Destination(s)": "Byt destination(er)",
|
||||
"Fiat Payment Method(s)": "Betalningmetod(er) med fiat",
|
||||
@ -438,7 +446,7 @@
|
||||
"#47": "Phrases in components/TradeBox/Dialogs/WebLN.tsx",
|
||||
"WebLN": "WebLN",
|
||||
"Invoice not received, please check your WebLN wallet.": "Invoice not received, please check your WebLN wallet.",
|
||||
"Payment not received, please check your WebLN wallet.": "Payment not received, please check your WebLN wallet.",
|
||||
"Amount not yet locked, please check your WebLN wallet.": "Amount not yet locked, please check your WebLN wallet.",
|
||||
"You can close now your WebLN wallet popup.": "You can close now your WebLN wallet popup.",
|
||||
"#48": "Phrases in components/TradeBox/Dialogs/ConfirmDispute.tsx",
|
||||
"Do you want to open a dispute?": "Vill du öppna en dispyt?",
|
||||
|
@ -94,6 +94,10 @@
|
||||
"The order has expired": "รายการหมดอายุแล้ว",
|
||||
"Penalty lifted, good to go!": "สามารถซื้อขายได้แล้ว!",
|
||||
"You cannot take an order yet! Wait {{timeMin}}m {{timeSec}}s": "คุณยังไม่สามารถดำเนินรายการได้! รออีก {{timeMin}} นาที {{timeSec}} วินาที",
|
||||
"You send via {{method}} {{amount}}": "You send via {{method}} {{amount}}",
|
||||
"You receive via Lightning {{amount}} Sats (routing budget may vary)": "You receive via Lightning {{amount}} Sats (routing budget may vary)",
|
||||
"You send via Lightning {{amount}} Sats": "You send via Lightning {{amount}} Sats",
|
||||
"You receive via {{method}} {{amount}}": "You receive via {{method}} {{amount}}",
|
||||
"Order maker": "maker ของรายการ",
|
||||
"Order taker": "taker ของรายการ",
|
||||
"Order Details": "รายละเอียดรายการ",
|
||||
@ -258,6 +262,11 @@
|
||||
"Must be more than {{min}}%": "ต้องมากกว่า {{min}}%",
|
||||
"Must be less than {{maxSats}": "ต้องน้อยกว่า {{maxSats}}",
|
||||
"Must be more than {{minSats}}": "ต้องมากกว่า {{minSats}}",
|
||||
"Amount": "จำนวน",
|
||||
"Onchain amount to send (BTC)": "Onchain amount to send (BTC)",
|
||||
"You receive approx {{swapSats}} LN Sats (fees might vary)": "You receive approx {{swapSats}} LN Sats (fees might vary)",
|
||||
"Onchain amount to receive (BTC)": "Onchain amount to receive (BTC)",
|
||||
"You send approx {{swapSats}} LN Sats (fees might vary)": "You send approx {{swapSats}} LN Sats (fees might vary)",
|
||||
" of {{satoshis}} Satoshis": " เป็น Satoshis จำนวน {{satoshis}} Sats",
|
||||
" at a {{premium}}% premium": " ในราคาแพงกว่าตลาด {{premium}}% ",
|
||||
" at a {{discount}}% discount": " ในราคาถูกกว่าตลาด {{discount}}% ",
|
||||
@ -274,7 +283,6 @@
|
||||
"Amount of BTC to swap for LN Sats": "Amount of BTC to swap for LN Sats",
|
||||
"Must be more than {{minAmount}}": "Must be more than {{minAmount}}",
|
||||
"Must be less than {{maxAmount}}": "Must be less than {{maxAmount}}",
|
||||
"Amount": "จำนวน",
|
||||
"Must be shorter than 65 characters": "ต้องสั้นกว่า 65 ตัวอักษร",
|
||||
"Swap Destination(s)": "Swap Destination(s)",
|
||||
"Fiat Payment Method(s)": "วิธีการชำระเงินเฟียต",
|
||||
@ -438,7 +446,7 @@
|
||||
"#47": "Phrases in components/TradeBox/Dialogs/WebLN.tsx",
|
||||
"WebLN": "WebLN",
|
||||
"Invoice not received, please check your WebLN wallet.": "Invoice not received, please check your WebLN wallet.",
|
||||
"Payment not received, please check your WebLN wallet.": "Payment not received, please check your WebLN wallet.",
|
||||
"Amount not yet locked, please check your WebLN wallet.": "Amount not yet locked, please check your WebLN wallet.",
|
||||
"You can close now your WebLN wallet popup.": "You can close now your WebLN wallet popup.",
|
||||
"#48": "Phrases in components/TradeBox/Dialogs/ConfirmDispute.tsx",
|
||||
"Do you want to open a dispute?": "ต้องการร้องเรียนหรือไม่?",
|
||||
|
@ -94,6 +94,10 @@
|
||||
"The order has expired": "订单已到期",
|
||||
"Penalty lifted, good to go!": "罚单已解除,没问题了!",
|
||||
"You cannot take an order yet! Wait {{timeMin}}m {{timeSec}}s": "你暂时还不能吃单!请等{{timeMin}}分 {{timeSec}}秒",
|
||||
"You send via {{method}} {{amount}}": "You send via {{method}} {{amount}}",
|
||||
"You receive via Lightning {{amount}} Sats (routing budget may vary)": "You receive via Lightning {{amount}} Sats (routing budget may vary)",
|
||||
"You send via Lightning {{amount}} Sats": "You send via Lightning {{amount}} Sats",
|
||||
"You receive via {{method}} {{amount}}": "You receive via {{method}} {{amount}}",
|
||||
"Order maker": "订单挂单方",
|
||||
"Order taker": "订单吃单方",
|
||||
"Order Details": "订单详情",
|
||||
@ -258,6 +262,11 @@
|
||||
"Must be more than {{min}}%": "必须多于 {{min}}%",
|
||||
"Must be less than {{maxSats}": "必须少于 {{maxSats}}",
|
||||
"Must be more than {{minSats}}": "必须多于 {{minSats}}",
|
||||
"Amount": "金额",
|
||||
"Onchain amount to send (BTC)": "Onchain amount to send (BTC)",
|
||||
"You receive approx {{swapSats}} LN Sats (fees might vary)": "You receive approx {{swapSats}} LN Sats (fees might vary)",
|
||||
"Onchain amount to receive (BTC)": "Onchain amount to receive (BTC)",
|
||||
"You send approx {{swapSats}} LN Sats (fees might vary)": "You send approx {{swapSats}} LN Sats (fees might vary)",
|
||||
" of {{satoshis}} Satoshis": "{{satoshis}} 聪",
|
||||
" at a {{premium}}% premium": " 于 {{premium}}% 溢价",
|
||||
" at a {{discount}}% discount": " 于 {{discount}}% 折扣",
|
||||
@ -274,7 +283,6 @@
|
||||
"Amount of BTC to swap for LN Sats": "Amount of BTC to swap for LN Sats",
|
||||
"Must be more than {{minAmount}}": "Must be more than {{minAmount}}",
|
||||
"Must be less than {{maxAmount}}": "Must be less than {{maxAmount}}",
|
||||
"Amount": "金额",
|
||||
"Must be shorter than 65 characters": "必须少于65个字符",
|
||||
"Swap Destination(s)": "交换目的地",
|
||||
"Fiat Payment Method(s)": "法币付款方法",
|
||||
@ -438,7 +446,7 @@
|
||||
"#47": "Phrases in components/TradeBox/Dialogs/WebLN.tsx",
|
||||
"WebLN": "WebLN",
|
||||
"Invoice not received, please check your WebLN wallet.": "没有收到发票,请查看你的 WebLN 钱包。",
|
||||
"Payment not received, please check your WebLN wallet.": "没有收到付款,请查看你的 WebLN 钱包。",
|
||||
"Amount not yet locked, please check your WebLN wallet.": "Amount not yet locked, please check your WebLN wallet.",
|
||||
"You can close now your WebLN wallet popup.": "You can close now your WebLN wallet popup.",
|
||||
"#48": "Phrases in components/TradeBox/Dialogs/ConfirmDispute.tsx",
|
||||
"Do you want to open a dispute?": "你想开始争议吗?",
|
||||
|
@ -94,6 +94,10 @@
|
||||
"The order has expired": "訂單已到期",
|
||||
"Penalty lifted, good to go!": "罰單已解除, 沒問題了!",
|
||||
"You cannot take an order yet! Wait {{timeMin}}m {{timeSec}}s": "你暫時還不能吃單!請等{{timeMin}}分 {{timeSec}}秒",
|
||||
"You send via {{method}} {{amount}}": "You send via {{method}} {{amount}}",
|
||||
"You receive via Lightning {{amount}} Sats (routing budget may vary)": "You receive via Lightning {{amount}} Sats (routing budget may vary)",
|
||||
"You send via Lightning {{amount}} Sats": "You send via Lightning {{amount}} Sats",
|
||||
"You receive via {{method}} {{amount}}": "You receive via {{method}} {{amount}}",
|
||||
"Order maker": "訂單掛單方",
|
||||
"Order taker": "訂單吃單方",
|
||||
"Order Details": "訂單詳情",
|
||||
@ -258,6 +262,11 @@
|
||||
"Must be more than {{min}}%": "必須多於 {{min}}%",
|
||||
"Must be less than {{maxSats}": "必須少於 {{maxSats}}",
|
||||
"Must be more than {{minSats}}": "必須多於 {{minSats}}",
|
||||
"Amount": "金額",
|
||||
"Onchain amount to send (BTC)": "Onchain amount to send (BTC)",
|
||||
"You receive approx {{swapSats}} LN Sats (fees might vary)": "You receive approx {{swapSats}} LN Sats (fees might vary)",
|
||||
"Onchain amount to receive (BTC)": "Onchain amount to receive (BTC)",
|
||||
"You send approx {{swapSats}} LN Sats (fees might vary)": "You send approx {{swapSats}} LN Sats (fees might vary)",
|
||||
" of {{satoshis}} Satoshis": "{{satoshis}} 聰",
|
||||
" at a {{premium}}% premium": " 於 {{premium}}% 溢價",
|
||||
" at a {{discount}}% discount": " 於 {{discount}}% 折扣",
|
||||
@ -274,7 +283,6 @@
|
||||
"Amount of BTC to swap for LN Sats": "Amount of BTC to swap for LN Sats",
|
||||
"Must be more than {{minAmount}}": "Must be more than {{minAmount}}",
|
||||
"Must be less than {{maxAmount}}": "Must be less than {{maxAmount}}",
|
||||
"Amount": "金額",
|
||||
"Must be shorter than 65 characters": "必須少於65個字符",
|
||||
"Swap Destination(s)": "交換目的地",
|
||||
"Fiat Payment Method(s)": "法幣付款方法",
|
||||
@ -438,7 +446,7 @@
|
||||
"#47": "Phrases in components/TradeBox/Dialogs/WebLN.tsx",
|
||||
"WebLN": "WebLN",
|
||||
"Invoice not received, please check your WebLN wallet.": "沒有收到發票,請查看你的 WebLN 錢包。",
|
||||
"Payment not received, please check your WebLN wallet.": "沒有收到付款,請查看你的 WebLN 錢包。",
|
||||
"Amount not yet locked, please check your WebLN wallet.": "Amount not yet locked, please check your WebLN wallet.",
|
||||
"You can close now your WebLN wallet popup.": "You can close now your WebLN wallet popup.",
|
||||
"#48": "Phrases in components/TradeBox/Dialogs/ConfirmDispute.tsx",
|
||||
"Do you want to open a dispute?": "你想開始爭議嗎?",
|
||||
|
Loading…
Reference in New Issue
Block a user