diff --git a/packages/cashier/package.json b/packages/cashier/package.json index f5921685e5b4..bc48d4ce94e5 100644 --- a/packages/cashier/package.json +++ b/packages/cashier/package.json @@ -44,6 +44,7 @@ "classnames": "^2.2.6", "formik": "^2.1.4", "loadjs": "^4.2.0", + "lodash.debounce": "^4.0.8", "mobx": "^5.15.7", "mobx-react": "6.3.1", "moment": "^2.29.2", diff --git a/packages/cashier/src/components/cashier-search-box/__tests__/cashier-search-box.spec.js b/packages/cashier/src/components/cashier-search-box/__tests__/cashier-search-box.spec.js new file mode 100644 index 000000000000..cb912390b92f --- /dev/null +++ b/packages/cashier/src/components/cashier-search-box/__tests__/cashier-search-box.spec.js @@ -0,0 +1,63 @@ +import React from 'react'; +import { fireEvent, screen, render, waitFor } from '@testing-library/react'; +import CashierSearchBox from '../cashier-search-box'; + +describe('', () => { + const props = { + onClear: jest.fn(), + onSearch: jest.fn(), + placeholder: 'Search placeholder', + setIsSearchLoading: jest.fn(), + }; + + it('should have close icon if there is a text in input field', () => { + render(); + + const el_search_input = screen.getByPlaceholderText('Search placeholder'); + fireEvent.change(el_search_input, { target: { value: 'hello' } }); + + expect(screen.getByTestId('dt_close_icon')).toBeInTheDocument(); + }); + + it('should trigger onClear callback when the user clicks on close icon', () => { + render(); + + const el_search_input = screen.getByPlaceholderText('Search placeholder'); + fireEvent.change(el_search_input, { target: { value: 'hello' } }); + const el_close_icon = screen.getByTestId('dt_close_icon'); + fireEvent.click(el_close_icon); + + expect(props.onClear).toHaveBeenCalledTimes(1); + }); + + it('should not trigger setTimeout callback (formSubmit) when the user presses backspace button on empty search input', () => { + jest.useFakeTimers(); + jest.spyOn(global, 'setTimeout'); + render(); + + const el_search_input = screen.getByPlaceholderText('Search placeholder'); + fireEvent.keyDown(el_search_input); + + expect(props.setIsSearchLoading).not.toHaveBeenCalled(); + expect(setTimeout).not.toHaveBeenCalled(); + jest.useRealTimers(); + }); + + it('should trigger setIsSearchLoading, onSearch and setTimeout callbacks when the user enters the search term', async () => { + jest.useFakeTimers(); + jest.spyOn(global, 'setTimeout'); + + render(); + + const el_search_input = screen.getByPlaceholderText('Search placeholder'); + await waitFor(() => { + fireEvent.change(el_search_input, { target: { value: 'hello' } }); + fireEvent.keyUp(el_search_input); + + expect(props.setIsSearchLoading).toHaveBeenCalled(); + expect(setTimeout).toHaveBeenCalled(); + expect(props.onSearch).toHaveBeenCalled(); + }); + jest.useRealTimers(); + }); +}); diff --git a/packages/cashier/src/components/cashier-search-box/cashier-search-box.jsx b/packages/cashier/src/components/cashier-search-box/cashier-search-box.jsx new file mode 100644 index 000000000000..a2b16f25dda4 --- /dev/null +++ b/packages/cashier/src/components/cashier-search-box/cashier-search-box.jsx @@ -0,0 +1,76 @@ +import classNames from 'classnames'; +import PropTypes from 'prop-types'; +import React from 'react'; +import { Field as FormField, Formik, Form } from 'formik'; +import { Icon, Input } from '@deriv/components'; +import './cashier-search-box.scss'; + +const CashierSearchBox = ({ className, onClear, onSearch, placeholder, search_term, setIsSearchLoading }) => { + React.useEffect(() => { + return onClear; + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); + + const onSearchClear = setFieldValue => { + setFieldValue('search', ''); + onClear(); + }; + + const onSearchKeyUpDown = (submitForm, search) => { + if (!search.trim() && search_term) { + onClear(); + } else if (!search.trim()) return; + + setIsSearchLoading(true); + submitForm(); + }; + + const onSearchSubmit = ({ search }) => { + onSearch(search); + }; + + return ( +
+ + {({ submitForm, values: { search }, setFieldValue }) => ( +
+ + {({ field }) => ( + onSearchKeyUpDown(submitForm, search)} + onKeyDown={() => onSearchKeyUpDown(submitForm, search)} + leading_icon={} + trailing_icon={ + search && ( + onSearchClear(setFieldValue)} + /> + ) + } + /> + )} + +
+ )} +
+
+ ); +}; + +CashierSearchBox.propTypes = { + className: PropTypes.string, + onClear: PropTypes.func, + onSearch: PropTypes.func, + placeholder: PropTypes.string, + search_term: PropTypes.string, + setIsSearchLoading: PropTypes.func, +}; + +export default CashierSearchBox; diff --git a/packages/cashier/src/components/cashier-search-box/cashier-search-box.scss b/packages/cashier/src/components/cashier-search-box/cashier-search-box.scss new file mode 100644 index 000000000000..4f54490be765 --- /dev/null +++ b/packages/cashier/src/components/cashier-search-box/cashier-search-box.scss @@ -0,0 +1,20 @@ +.cashier-search-box { + width: 100%; + margin-right: 1.6rem; + .dc-input { + margin-bottom: 0; + height: 3.2rem; + overflow: hidden; + &__field { + padding: 0.6rem 3.2rem; + height: 3.2rem; + } + &__leading-icon { + margin-left: 0.8rem; + top: 0.8rem; + } + &__trailing-icon { + cursor: pointer; + } + } +} diff --git a/packages/cashier/src/components/cashier-search-box/index.js b/packages/cashier/src/components/cashier-search-box/index.js new file mode 100644 index 000000000000..0be63590e6ce --- /dev/null +++ b/packages/cashier/src/components/cashier-search-box/index.js @@ -0,0 +1,3 @@ +import CashierSearchBox from './cashier-search-box.jsx'; + +export default CashierSearchBox; diff --git a/packages/cashier/src/components/error-dialog/error-dialog.tsx b/packages/cashier/src/components/error-dialog/error-dialog.tsx index b8419cb429c7..7fb9f6c79b81 100644 --- a/packages/cashier/src/components/error-dialog/error-dialog.tsx +++ b/packages/cashier/src/components/error-dialog/error-dialog.tsx @@ -7,6 +7,7 @@ import { connect } from 'Stores/connect'; import { TRootStore, TError, TReactElement } from 'Types'; type TErrorDialogProps = { + className: string; disableApp: () => void; enableApp: () => void; error: TError | Record; @@ -21,7 +22,7 @@ type TSetDetails = { has_close_icon?: boolean; }; -const ErrorDialog = ({ disableApp, enableApp, error = {} }: TErrorDialogProps) => { +const ErrorDialog = ({ className, disableApp, enableApp, error = {} }: TErrorDialogProps) => { const history = useHistory(); const [is_visible, setIsVisible] = React.useState(false); const [details, setDetails] = React.useState({ @@ -126,6 +127,7 @@ const ErrorDialog = ({ disableApp, enableApp, error = {} }: TErrorDialogProps) = title={details.title} confirm_button_text={details.confirm_button_text} cancel_button_text={details.cancel_button_text} + className={className} onConfirm={() => { if (typeof details.onConfirm === 'function') { details.onConfirm(); diff --git a/packages/cashier/src/components/transfer-confirm/__tests__/transfer-confirm.spec.tsx b/packages/cashier/src/components/transfer-confirm/__tests__/transfer-confirm.spec.tsx index e02338c17588..a823f721d407 100644 --- a/packages/cashier/src/components/transfer-confirm/__tests__/transfer-confirm.spec.tsx +++ b/packages/cashier/src/components/transfer-confirm/__tests__/transfer-confirm.spec.tsx @@ -1,6 +1,4 @@ import React from 'react'; -import { Money } from '@deriv/components'; -import { Localize } from '@deriv/translations'; import { fireEvent, render, screen } from '@testing-library/react'; import TransferConfirm from '../transfer-confirm'; @@ -10,9 +8,8 @@ jest.mock('Stores/connect', () => ({ connect: () => Component => Component, })); -let modal_root_el; - describe('', () => { + let modal_root_el; beforeAll(() => { modal_root_el = document.createElement('div'); modal_root_el.setAttribute('id', 'modal_root'); @@ -22,90 +19,97 @@ describe('', () => { afterAll(() => { document.body.removeChild(modal_root_el); }); + const props = { data: [ - { key: 'pa', label: 'Payment agent', value: 'Payment Agent of CR90000561 (Created from Script)' }, - { key: 'amount', label: 'Amount', value: }, - { key: 'test', label: 'test', value: ['test1', 'test2'] }, + { key: '1', label: 'label 1', value: 'value 1' }, + { key: '2', label: 'label 2', value: ['value 2', 'value 3'] }, ], - header: 'Please confirm the transaction details in order to complete the withdrawal:', + error: {}, onClickBack: jest.fn(), onClickConfirm: jest.fn(), - warning_messages: [ - , - , - ], }; - it('should show proper icon, header, messages and buttons', () => { + it('should show proper icon, messages and buttons', () => { render(); - expect(screen.getByTestId('dti_confirm_details_icon')).toBeInTheDocument(); - expect( - screen.getByText('Please confirm the transaction details in order to complete the withdrawal:') - ).toBeInTheDocument(); - expect(screen.getByText('Payment agent')).toBeInTheDocument(); - expect(screen.getByText('Payment Agent of CR90000561 (Created from Script)')).toBeInTheDocument(); - expect(screen.getByText('Amount')).toBeInTheDocument(); - expect(screen.getByText('100.00 USD')).toBeInTheDocument(); - expect(screen.getByText('test')).toBeInTheDocument(); - expect(screen.getByText('test1')).toBeInTheDocument(); - expect(screen.getByText('test2')).toBeInTheDocument(); - expect(screen.getByRole('button', { name: 'Back' })).toBeInTheDocument(); - expect(screen.getByRole('button', { name: 'Confirm' })).toBeInTheDocument(); + const [back_btn, transfer_now_btn] = screen.getAllByRole('button'); + + expect(screen.getByTestId('dt_red_warning_icon')).toBeInTheDocument(); + expect(screen.getByText('label 1')).toBeInTheDocument(); + expect(screen.getByText('value 1')).toBeInTheDocument(); + expect(screen.getByText('label 2')).toBeInTheDocument(); + expect(screen.getByText('value 2')).toBeInTheDocument(); + expect(screen.getByText('value 3')).toBeInTheDocument(); + expect(screen.getByRole('checkbox')).toBeInTheDocument(); + expect(screen.getByText(/please ensure/i)).toBeInTheDocument(); + expect(screen.getByText(/all details/i)).toBeInTheDocument(); + expect(screen.getByText(/are/i)).toBeInTheDocument(); + expect(screen.getByText(/correct/i)).toBeInTheDocument(); + expect(screen.getByText(/before making your transfer/i)).toBeInTheDocument(); + expect(screen.getByText(/we/i)).toBeInTheDocument(); + expect(screen.getByText(/do not/i)).toBeInTheDocument(); + expect(screen.getByText(/guarantee a refund if you make a wrong transfer/i)).toBeInTheDocument(); + expect(back_btn).toBeInTheDocument(); + expect(transfer_now_btn).toBeInTheDocument(); + }); + + it('should show error messages and button', () => { + render( + + ); + + expect(screen.getByText('Cashier Error')).toBeInTheDocument(); + expect(screen.getByText('error_message')).toBeInTheDocument(); + expect(screen.getAllByRole('button')[2]).toBeInTheDocument(); }); - it('should trigger onClick callback when the client clicks on Back button', () => { + it('should trigger onClickBack method when the client clicks on Back button', () => { render(); - const el_back_btn = screen.getByRole('button', { name: 'Back' }); - fireEvent.click(el_back_btn); + const [back_btn, _] = screen.getAllByRole('button'); + fireEvent.click(back_btn); + expect(props.onClickBack).toHaveBeenCalledTimes(1); }); - it('should trigger onClick callback when the client clicks on Confirm button', () => { + it('should enable Transfer now button when checkbox is checked', () => { render(); - const el_confirm_btn = screen.getByRole('button', { name: 'Confirm' }); - fireEvent.click(el_confirm_btn); - expect(props.onClickConfirm).toHaveBeenCalledTimes(1); - }); + const el_checkbox = screen.getByRole('checkbox'); + const [_, transfer_now_btn] = screen.getAllByRole('button'); + fireEvent.click(el_checkbox); - it('should show error message', () => { - render(); - - expect(screen.getByText('Error message')).toBeInTheDocument(); + expect(transfer_now_btn).toBeEnabled(); }); - - it('should show warning messages', () => { - render(); + it('should show proer checkbox label text when is_payment_agent_withdraw property is equal to true/false', () => { + const { rerender } = render(); expect( - screen.getByText( - 'Remember, it’s solely your responsibility to ensure the transfer is made to the correct account.' - ) + screen.getByLabelText('I confirm that I have verified the payment agent’s transfer information.') ).toBeInTheDocument(); - expect(screen.getByText('We do not guarantee a refund if you make a wrong transfer.')).toBeInTheDocument(); - }); - it('should show checkbox when is_payment_agent_transfer property is equal to true', () => { - render(); + rerender(); expect( screen.getByLabelText('I confirm that I have verified the client’s transfer information.') ).toBeInTheDocument(); }); - it('should enable "Transfer now" button when checkbox is checked', () => { - render(); + it('should trigger onClickConfirm method when the client clicks on Transfer now button', () => { + render(); - const el_checkbox_transfer_consent = screen.getByRole('checkbox'); - fireEvent.click(el_checkbox_transfer_consent); - const el_btn_transfer_now = screen.getByRole('button', { name: 'Transfer now' }); + const el_checkbox = screen.getByRole('checkbox'); + const [_, transfer_now_btn] = screen.getAllByRole('button'); + fireEvent.click(el_checkbox); + fireEvent.click(transfer_now_btn); - expect(el_btn_transfer_now).toBeEnabled(); + expect(props.onClickConfirm).toHaveBeenCalledTimes(1); }); }); diff --git a/packages/cashier/src/components/transfer-confirm/transfer-confirm.scss b/packages/cashier/src/components/transfer-confirm/transfer-confirm.scss index 4b82081aadce..14cc321e569b 100644 --- a/packages/cashier/src/components/transfer-confirm/transfer-confirm.scss +++ b/packages/cashier/src/components/transfer-confirm/transfer-confirm.scss @@ -1,10 +1,13 @@ .transfer-confirm { + padding: 0 1.6rem; + width: 100%; &__header { margin-top: 1.4rem; margin-bottom: 2.4rem; } &__column { &-wrapper { + width: 100%; display: flex; justify-content: center; @include mobile { @@ -15,10 +18,19 @@ &__row { width: 40rem; display: flex; + column-gap: 1.6rem; + row-gap: 1.2rem; padding: 0.8rem 0; justify-content: space-between; border-bottom: 1px solid var(--general-section-1); + &-label, + &-value { + display: flex; + flex-direction: column; + row-gap: 1.2rem; + } + > :last-child { max-width: 50%; @@ -27,15 +39,31 @@ } } } + &__warning-icon { + margin-top: 0.8rem; + min-width: 7.2rem; + min-height: 7.2rem; + margin-bottom: 2.4rem; + @include mobile { + min-width: 4.8rem; + min-height: 4.8rem; + margin: 1.6rem 0; + } + &__description { + margin-bottom: 3.2rem; + @include mobile { + margin-bottom: 4rem; + } + } + } &__warnings { width: 40rem; display: flex; flex-direction: column; - margin: 2.4rem auto 1.8rem; + margin: 4rem auto 3.2rem; @include mobile { - margin-bottom: 1.2rem; + margin-bottom: 2.4rem; } - &-bullet { background-color: var(--text-loss-danger); border-radius: 100%; @@ -47,15 +75,20 @@ &-wrapper { display: flex; - margin-bottom: 1.1rem; } } } + &__checkbox { + width: 40rem; + .dc-checkbox__box { + margin-left: 0; + } + } &__checkbox-label { font-size: var(--text-size-xxs); } &__submit { - margin: 2.4rem auto; + margin: 4rem auto 0; width: 40rem; display: flex; justify-content: flex-end; @@ -63,8 +96,11 @@ > :not(:first-child) { margin-left: 0.8rem; } - } + @include mobile { + margin: 4rem auto 3.2rem; + } + } @include mobile { &__row, &__warnings, diff --git a/packages/cashier/src/components/transfer-confirm/transfer-confirm.tsx b/packages/cashier/src/components/transfer-confirm/transfer-confirm.tsx index 8f65d1eefbc5..af02d3f5467f 100644 --- a/packages/cashier/src/components/transfer-confirm/transfer-confirm.tsx +++ b/packages/cashier/src/components/transfer-confirm/transfer-confirm.tsx @@ -1,7 +1,8 @@ import classNames from 'classnames'; import React from 'react'; -import { localize } from '@deriv/translations'; import { Button, Checkbox, Icon, Text } from '@deriv/components'; +import { isMobile } from '@deriv/shared'; +import { Localize, localize } from '@deriv/translations'; import ErrorDialog from 'Components/error-dialog'; import './transfer-confirm.scss'; @@ -20,16 +21,16 @@ type TTransferConfirmProps = { data: Array; error?: object; header?: string; - is_payment_agent_transfer?: boolean; + is_payment_agent_withdraw?: boolean; onClickBack?: () => void; onClickConfirm?: () => void; warning_messages?: Array; }; const Row = ({ item_key, label, value }: TRowProps) => ( -
+
{Array.isArray(label) ? ( -
+
{label.map((label_text, idx) => ( {label_text} @@ -40,7 +41,7 @@ const Row = ({ item_key, label, value }: TRowProps) => ( {label} )} {Array.isArray(value) ? ( -
+
{value.map((v, idx) => ( {v} @@ -72,35 +73,48 @@ const WarningBullet = ({ children }: WarningBulletProps) => ( const TransferConfirm = ({ data, error, - header, - is_payment_agent_transfer, + is_payment_agent_withdraw, onClickBack, onClickConfirm, - warning_messages, }: TTransferConfirmProps) => { const [is_transfer_consent_checked, setIsTransferConsentChecked] = React.useState(false); + const warning_messages = [ + ]} + key={0} + />, + ]} + key={1} + />, + ]; + return (
- {!is_payment_agent_transfer && ( - - )} - {header && ( - - {header} - - )} + + + {is_payment_agent_withdraw + ? localize('Funds transfer information') + : localize('Check transfer information')} +
{data.map((d, key) => ( @@ -108,34 +122,36 @@ const TransferConfirm = ({ ))}
- {warning_messages && ( -
- {warning_messages.map((warning, idx) => ( - - - {warning} - - - ))} -
- )} - {is_payment_agent_transfer && ( +
+ {warning_messages.map((warning, idx) => ( + + + {warning} + + + ))} +
+
setIsTransferConsentChecked(!is_transfer_consent_checked)} - label={localize('I confirm that I have verified the client’s transfer information.')} + label={ + is_payment_agent_withdraw + ? localize('I confirm that I have verified the payment agent’s transfer information.') + : localize('I confirm that I have verified the client’s transfer information.') + } classNameLabel='transfer-confirm__checkbox-label' /> - )} +
diff --git a/packages/cashier/src/containers/cashier/cashier.scss b/packages/cashier/src/containers/cashier/cashier.scss index 6470f2424235..662b4ba9f5b6 100644 --- a/packages/cashier/src/containers/cashier/cashier.scss +++ b/packages/cashier/src/containers/cashier/cashier.scss @@ -161,7 +161,7 @@ &-span { font-size: 1.4rem; text-align: left; - padding: 9px 36px 9px 12px; + padding: 0.9rem 3.6rem 0.9rem 1.2rem; text-transform: none; line-height: 1.43; display: flex; @@ -174,8 +174,8 @@ } &-items { svg { - width: 24px; - height: 24px; + width: 2.4rem; + height: 2.4rem; } } &-label { @@ -228,7 +228,7 @@ } } &__tab-header-note { - max-width: 256px; + max-width: 25.6rem; } &__success { text-align: center; @@ -247,7 +247,7 @@ margin-bottom: 1.6rem; + .dc-text { - margin-bottom: 8px; + margin-bottom: 0.8rem; } } &-button { @@ -283,9 +283,8 @@ } &-button { - min-width: 25.8rem; - padding: 6px 16px; - margin-right: 0.1rem; + min-width: 25.6rem; + padding: 0.6rem 0.8rem; } .acc-prompt-dialog { padding: 0 1rem; @@ -303,11 +302,11 @@ /* stylelint-disable-next-line plugin/selector-bem-pattern */ .dc-checklist { width: 100%; - max-width: 500px; + max-width: 50rem; } /* stylelint-disable-next-line plugin/selector-bem-pattern */ .dc-checklist__item-text { - max-width: 320px; + max-width: 32rem; } &__icon { width: 12.8rem; @@ -328,6 +327,11 @@ } } } + + .dc-vertical-tab__content-side-note-item { + position: sticky; + top: calc(2.4rem + 4.1rem); + } } // Able to scroll the page container (app-contents) until 926px (MobileWrapper) if it should be scrollable diff --git a/packages/cashier/src/pages/payment-agent-transfer/payment-agent-transfer-confirm/__tests__/payment-agent-transfer-confirm.spec.js b/packages/cashier/src/pages/payment-agent-transfer/payment-agent-transfer-confirm/__tests__/payment-agent-transfer-confirm.spec.js index f15ca495ce89..f5e7029a0ac5 100644 --- a/packages/cashier/src/pages/payment-agent-transfer/payment-agent-transfer-confirm/__tests__/payment-agent-transfer-confirm.spec.js +++ b/packages/cashier/src/pages/payment-agent-transfer/payment-agent-transfer-confirm/__tests__/payment-agent-transfer-confirm.spec.js @@ -1,5 +1,6 @@ import React from 'react'; -import { cleanup, fireEvent, render, screen } from '@testing-library/react'; +import ReactDOM from 'react-dom'; +import { fireEvent, render, screen } from '@testing-library/react'; import PaymentAgentTransferConfirm from '../payment-agent-transfer-confirm.jsx'; jest.mock('Stores/connect', () => ({ @@ -8,62 +9,62 @@ jest.mock('Stores/connect', () => ({ connect: () => Component => Component, })); -beforeAll(() => { - const portal_root = document.createElement('div'); - portal_root.setAttribute('id', 'modal_root'); - document.body.appendChild(portal_root); -}); +describe('', () => { + beforeAll(() => { + ReactDOM.createPortal = jest.fn(component => { + return component; + }); + }); -afterEach(cleanup); + afterAll(() => { + ReactDOM.createPortal.mockClear(); + }); -describe('', () => { - const amount = 10; - const currency = 'testCurrency'; - const description = 'testDescription'; - const error = { - code: 'testCode', - message: 'testMessage', + const props = { + amount: 100, + currency: 'USD', + description: 'description', + transfer_to: 'CR900000101', + error: {}, + requestPaymentAgentTransfer: jest.fn(), + setIsTryTransferSuccessful: jest.fn(), }; - const requestPaymentAgentTransfer = jest.fn(); - const setIsTryTransferSuccessful = jest.fn(); - const transfer_to = 'test'; it('should show proper icon and message', () => { - render(); + render(); - expect(screen.getByTestId('dti_red_warning_icon')).toBeInTheDocument(); + expect(screen.getByTestId('dt_red_warning_icon')).toBeInTheDocument(); expect(screen.getByText('Check transfer information')).toBeInTheDocument(); }); - it(`setIsTryTransferSuccessful func should be triggered when click on 'Back' button`, () => { - render( - - ); + it(`setIsTryTransferSuccessful method should be triggered when click on 'Back' button`, () => { + render(); - const btn = screen.getByText('Back'); - fireEvent.click(btn); - expect(setIsTryTransferSuccessful).toBeCalledTimes(1); + const el_back_btn = screen.getByRole('button', { name: 'Back' }); + fireEvent.click(el_back_btn); + + expect(props.setIsTryTransferSuccessful).toHaveBeenCalledWith(false); }); - it(`requestPaymentAgentTransfer func should be triggered if checkbox is enabled and the "Transfer now" button is clicked`, () => { - render( - - ); + it(`requestPaymentAgentTransfer fuction should be triggered if checkbox is enabled and the "Transfer now" button is clicked`, () => { + render(); const el_checkbox_transfer_consent = screen.getByRole('checkbox'); fireEvent.click(el_checkbox_transfer_consent); const el_btn_transfer_now = screen.getByRole('button', { name: 'Transfer now' }); fireEvent.click(el_btn_transfer_now); - expect(requestPaymentAgentTransfer).toBeCalledTimes(1); + expect(props.requestPaymentAgentTransfer).toHaveBeenCalledWith({ + amount: 100, + currency: 'USD', + description: 'description', + transfer_to: 'CR900000101', + }); + }); + + it(`should show error message`, () => { + render(); + + expect(screen.getByText('error_message')).toBeInTheDocument(); }); }); diff --git a/packages/cashier/src/pages/payment-agent-transfer/payment-agent-transfer-confirm/payment-agent-transfer-confirm.jsx b/packages/cashier/src/pages/payment-agent-transfer/payment-agent-transfer-confirm/payment-agent-transfer-confirm.jsx index 5cf6b2feb5ae..64d6bee23981 100644 --- a/packages/cashier/src/pages/payment-agent-transfer/payment-agent-transfer-confirm/payment-agent-transfer-confirm.jsx +++ b/packages/cashier/src/pages/payment-agent-transfer/payment-agent-transfer-confirm/payment-agent-transfer-confirm.jsx @@ -1,11 +1,9 @@ import PropTypes from 'prop-types'; import React from 'react'; -import { Icon, Money, Text } from '@deriv/components'; -import { localize, Localize } from '@deriv/translations'; -import { isMobile } from '@deriv/shared'; +import { Money } from '@deriv/components'; +import { localize } from '@deriv/translations'; import { connect } from 'Stores/connect'; import TransferConfirm from 'Components/transfer-confirm'; -import './payment-agent-transfer-confirm.scss'; const PaymentAgentTransferConfirm = ({ amount, @@ -18,61 +16,31 @@ const PaymentAgentTransferConfirm = ({ transfer_to, transfer_to_name, }) => { - const payment_agent_transfer_warning_messages = [ - ]} - key={0} - />, - ]} - key={1} - />, - ]; return ( -
- - - {localize('Check transfer information')} - - , - key: 'amount', - }, - { label: localize('Description'), value: description, key: 'description' }, - ]} - error={error} - is_payment_agent_transfer - onClickBack={() => { - setIsTryTransferSuccessful(false); - }} - onClickConfirm={() => { - requestPaymentAgentTransfer({ amount, currency, description, transfer_to }); - }} - warning_messages={payment_agent_transfer_warning_messages} - /> -
+ , + key: 'amount', + }, + { label: localize('Description'), value: description, key: 'description' }, + ]} + error={error} + is_payment_agent_transfer + onClickBack={() => { + setIsTryTransferSuccessful(false); + }} + onClickConfirm={() => { + requestPaymentAgentTransfer({ amount, currency, description, transfer_to }); + }} + /> ); }; diff --git a/packages/cashier/src/pages/payment-agent-transfer/payment-agent-transfer-confirm/payment-agent-transfer-confirm.scss b/packages/cashier/src/pages/payment-agent-transfer/payment-agent-transfer-confirm/payment-agent-transfer-confirm.scss deleted file mode 100644 index bec5a1172149..000000000000 --- a/packages/cashier/src/pages/payment-agent-transfer/payment-agent-transfer-confirm/payment-agent-transfer-confirm.scss +++ /dev/null @@ -1,20 +0,0 @@ -.payment-agent-transfer-confirm { - &__warning-icon { - margin-top: 0.8rem; - min-width: 7.2rem; - min-height: 7.2rem; - margin-bottom: 2.4rem; - @include mobile { - min-width: 4.8rem; - min-height: 4.8rem; - margin: 1.6rem 0; - } - - &__description { - margin-bottom: 3.2rem; - @include mobile { - margin-bottom: 4rem; - } - } - } -} diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-card/__tests__/payment-agent-card-description.spec.js b/packages/cashier/src/pages/payment-agent/payment-agent-card/__tests__/payment-agent-card-description.spec.js new file mode 100644 index 000000000000..909752dcf401 --- /dev/null +++ b/packages/cashier/src/pages/payment-agent/payment-agent-card/__tests__/payment-agent-card-description.spec.js @@ -0,0 +1,38 @@ +import React from 'react'; +import { render, screen } from '@testing-library/react'; +import PaymentAgentCardDescription from '../payment-agent-card-description'; + +jest.mock('Stores/connect.js', () => ({ + __esModule: true, + default: 'mockedDefaultExport', + connect: () => Component => Component, +})); + +describe('', () => { + const mocked_payment_agent = { + further_information: 'further information', + name: 'Payment Agent of CR90000000', + supported_banks: [{ payment_method: 'Visa' }], + urls: [{ url: 'http://www.MyPAMyAdventure2.com/' }, { url: 'http://www.MyPAMyAdventure.com/' }], + }; + + it('should show proper description details and icon', () => { + render(); + + expect(screen.getByText('Payment Agent of CR90000000')).toBeInTheDocument(); + expect(screen.getByText('Further information')).toBeInTheDocument(); + expect(screen.getByText('http://www.MyPAMyAdventure2.com/,')).toBeInTheDocument(); + expect(screen.getByText('http://www.MyPAMyAdventure.com/')).toBeInTheDocument(); + expect(screen.getByTestId('dt_payment_method_icon')).toBeInTheDocument(); + }); + + it('should not show an icon when there is no appropriate icon for payment method', () => { + render( + + ); + + expect(screen.queryByTestId('dt_payment_method_icon')).not.toBeInTheDocument(); + }); +}); diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-card/__tests__/payment-agent-card.spec.js b/packages/cashier/src/pages/payment-agent/payment-agent-card/__tests__/payment-agent-card.spec.js new file mode 100644 index 000000000000..1c862c3e4829 --- /dev/null +++ b/packages/cashier/src/pages/payment-agent/payment-agent-card/__tests__/payment-agent-card.spec.js @@ -0,0 +1,16 @@ +import React from 'react'; +import { render, screen } from '@testing-library/react'; +import PaymentAgentCard from '../payment-agent-card'; + +jest.mock('@deriv/components', () => ({ + ...jest.requireActual('@deriv/components'), + ExpansionPanel: () =>
ExpansionPanel
, +})); + +describe('', () => { + it('should render PaymentAgentCard component with ExpansionPanel', () => { + render(); + + expect(screen.getByText('ExpansionPanel')).toBeInTheDocument(); + }); +}); diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-card/constants/payment-agent-providers.js b/packages/cashier/src/pages/payment-agent/payment-agent-card/constants/payment-agent-providers.js new file mode 100644 index 000000000000..807a0763b75d --- /dev/null +++ b/packages/cashier/src/pages/payment-agent/payment-agent-card/constants/payment-agent-providers.js @@ -0,0 +1,44 @@ +const normalized_payment_methods = { + Alipay: ['alipay'], + Bank: [ + 'bank', + 'bankdeposit', + 'banks', + 'banktransfer', + 'bankwire', + 'bankwiretransfer', + 'localbankwire', + 'localbank', + 'localbanks', + 'localbanktransfer', + ], + Bankbri: ['bri', 'bankbri'], + Bca: ['bca', 'grupbca'], + Bch: ['bch'], + Bni: ['bni'], + Bitcoin: ['bitcoin', 'btc'], + Card: ['card', 'cards', 'visa', 'mastercard'], + Cimbniaga: ['cimbniaga'], + Crypto: ['crypto', 'cryptos', 'cryptocurrencies', 'cryptocurrency', 'weacceptcrypto'], + Dai: ['dai'], + Diamondbank: ['diamondbank'], + Eth: ['eth', 'ethd', 'ethereum'], + Ewallet: ['ewallet', 'ewallets', 'ewalletpayment', 'skrill'], + Firstbank: ['firstbank'], + Gtbank: ['gtbank'], + Icbc: ['icbc'], + Libertyreserve: ['libertyreserve'], + LiteCoin: ['ltc', 'litecoin'], + Mandiri: ['mandiri'], + Mandirisyariah: ['mandirisyariah'], + Moneygram: ['moneygram'], + Paypal: ['paypal'], + PerfectMoney: ['perfectmoney'], + Permatabank: ['permatabank'], + Tether: ['tether'], + Verve: ['verve'], + Wechatpay: ['wechatpay'], + Zenithbank: ['zenithbank'], +}; + +export default { normalized_payment_methods }; diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-card/helpers/__tests__/heplers.spec.js b/packages/cashier/src/pages/payment-agent/payment-agent-card/helpers/__tests__/heplers.spec.js new file mode 100644 index 000000000000..6ac194c30e89 --- /dev/null +++ b/packages/cashier/src/pages/payment-agent/payment-agent-card/helpers/__tests__/heplers.spec.js @@ -0,0 +1,47 @@ +import { + hasNormalizedPaymentMethods, + getNormalizedPaymentMethod, + getUniquePaymentAgentSupportedBanks, +} from '../helpers'; + +describe('Heplers', () => { + it('should normalize payment methods', () => { + expect(getNormalizedPaymentMethod('E-WALLET')).toBe('Ewallet'); + expect(getNormalizedPaymentMethod('Bank Wire Transfer')).toBe('Bank'); + expect(getNormalizedPaymentMethod('Localbank Transfer')).toBe('Bank'); + expect(getNormalizedPaymentMethod('crypto-currencies')).toBe('Crypto'); + expect(getNormalizedPaymentMethod('WeAcceptCrypto')).toBe('Crypto'); + expect(getNormalizedPaymentMethod('Fake method')).toBe(''); + }); + + it('should properly evaluate normalized payment methods', () => { + expect( + hasNormalizedPaymentMethods([ + { payment_method: 'E-WALLET' }, + { payment_method: 'Localbank Transfer' }, + { payment_method: 'Fake method' }, + ]) + ).toBeTruthy(); + + expect( + hasNormalizedPaymentMethods([ + { payment_method: 'Fake method' }, + { payment_method: 'Fake method' }, + { payment_method: 'Fake method' }, + ]) + ).toBeFalsy(); + + expect(hasNormalizedPaymentMethods([])).toBeFalsy(); + }); + + it('should remove duplicated methods', () => { + expect( + getUniquePaymentAgentSupportedBanks([ + { payment_method: 'Visa' }, + { payment_method: 'Mastercard' }, + { payment_method: 'Bank Wire Transfer' }, + { payment_method: 'Localbank Transfer' }, + ]).length + ).toBe(2); + }); +}); diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-card/helpers/helpers.js b/packages/cashier/src/pages/payment-agent/payment-agent-card/helpers/helpers.js new file mode 100644 index 000000000000..1e2dbf8bccb8 --- /dev/null +++ b/packages/cashier/src/pages/payment-agent/payment-agent-card/helpers/helpers.js @@ -0,0 +1,26 @@ +import PaymentAgentProviders from '../constants/payment-agent-providers'; + +export const getNormalizedPaymentMethod = payment_method => { + const trimmed_payment_method = payment_method.replace(/[' ',-]/g, '').toLowerCase(); + + const normalized_payment_method = Object.entries(PaymentAgentProviders.normalized_payment_methods).reduce( + (pay_method, [key, value]) => (value.some(el => el === trimmed_payment_method) ? key : pay_method), + '' + ); + + return normalized_payment_method; +}; + +export const hasNormalizedPaymentMethods = all_payment_methods => { + if (all_payment_methods.length > 0) { + return !all_payment_methods.every(method => getNormalizedPaymentMethod(method.payment_method) === ''); + } + return false; +}; + +export const getUniquePaymentAgentSupportedBanks = supported_banks => { + const normalized_payment_methods = supported_banks + .map(bank => getNormalizedPaymentMethod(bank.payment_method)) + .filter(Boolean); + return [...new Set(normalized_payment_methods)]; +}; diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-card/helpers/index.js b/packages/cashier/src/pages/payment-agent/payment-agent-card/helpers/index.js new file mode 100644 index 000000000000..c5f595cf9d42 --- /dev/null +++ b/packages/cashier/src/pages/payment-agent/payment-agent-card/helpers/index.js @@ -0,0 +1 @@ +export * from './helpers'; diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-card/index.js b/packages/cashier/src/pages/payment-agent/payment-agent-card/index.js new file mode 100644 index 000000000000..85c17942387f --- /dev/null +++ b/packages/cashier/src/pages/payment-agent/payment-agent-card/index.js @@ -0,0 +1,3 @@ +import PaymentAgentCard from './payment-agent-card.jsx'; + +export default PaymentAgentCard; diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-card/payment-agent-card-description.jsx b/packages/cashier/src/pages/payment-agent/payment-agent-card/payment-agent-card-description.jsx new file mode 100644 index 000000000000..15d970b8894d --- /dev/null +++ b/packages/cashier/src/pages/payment-agent/payment-agent-card/payment-agent-card-description.jsx @@ -0,0 +1,54 @@ +import PropTypes from 'prop-types'; +import { toJS } from 'mobx'; +import React from 'react'; +import { Icon, Text } from '@deriv/components'; +import { capitalizeFirstLetter } from '@deriv/shared'; +import { hasNormalizedPaymentMethods, getUniquePaymentAgentSupportedBanks } from './helpers'; +import PaymentAgentDetail from '../payment-agent-detail'; + +const PaymentAgentCardDescription = ({ is_dark_mode_on, payment_agent }) => { + const payment_agent_urls = toJS(payment_agent.urls); + + return ( +
+ + {payment_agent.name} + + {payment_agent.further_information && ( + + {capitalizeFirstLetter(payment_agent.further_information)} + + )} + {payment_agent_urls && ( + + {payment_agent_urls.map(url => url.url)} + + )} + {hasNormalizedPaymentMethods(payment_agent.supported_banks) && ( +
+ {getUniquePaymentAgentSupportedBanks(payment_agent.supported_banks).map((bank, idx) => { + return ( + + ); + })} +
+ )} +
+ ); +}; + +PaymentAgentCardDescription.propTypes = { + is_dark_mode_on: PropTypes.bool, + payment_agent: PropTypes.object, +}; + +export default PaymentAgentCardDescription; diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-card/payment-agent-card.jsx b/packages/cashier/src/pages/payment-agent/payment-agent-card/payment-agent-card.jsx new file mode 100644 index 000000000000..c2349375318e --- /dev/null +++ b/packages/cashier/src/pages/payment-agent/payment-agent-card/payment-agent-card.jsx @@ -0,0 +1,36 @@ +import PropTypes from 'prop-types'; +import classNames from 'classnames'; +import React from 'react'; +import { ExpansionPanel } from '@deriv/components'; +import PaymentAgentCardDescription from './payment-agent-card-description.jsx'; +import PaymentAgentDepositDetails from '../payment-agent-deposit-details'; +import PaymentAgentListedWithdrawForm from '../payment-agent-listed-withdraw-form'; +import './payment-agent-card.scss'; + +const PaymentAgentCard = ({ is_dark_mode_on, is_deposit, payment_agent }) => { + const message = { + header: , + content: is_deposit ? ( + + ) : ( + + ), + }; + return ( +
+ +
+ ); +}; + +PaymentAgentCard.propTypes = { + is_dark_mode_on: PropTypes.bool, + is_deposit: PropTypes.bool, + payment_agent: PropTypes.object, +}; + +export default PaymentAgentCard; diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-card/payment-agent-card.scss b/packages/cashier/src/pages/payment-agent/payment-agent-card/payment-agent-card.scss new file mode 100644 index 000000000000..cf00e766ccc0 --- /dev/null +++ b/packages/cashier/src/pages/payment-agent/payment-agent-card/payment-agent-card.scss @@ -0,0 +1,54 @@ +.payment-agent-card { + display: flex; + flex-direction: column; + padding: 1.6rem; + box-shadow: 0 0 20px rgba(0, 0, 0, 0.05), 0 16px 20px rgba(0, 0, 0, 0.05); + border-radius: $BORDER_RADIUS * 2; + margin-bottom: 1.6rem; + & .dc-expansion-panel__header-container { + align-items: flex-start; + } + & .dc-expansion-panel__header-chevron-icon { + flex-basis: 5%; + } + &--dark { + background-color: var(--general-section-1); + } + &__description-container { + display: flex; + flex-direction: column; + flex-basis: 95%; + &-icons-container { + display: flex; + flex-wrap: wrap; + gap: 1.6rem; + align-items: center; + margin-top: 1.6rem; + .dc-icon { + width: 5rem; + height: 3.2rem; + } + } + &-further-information { + margin: 0.8rem 0; + word-break: keep-all; + } + } + &__deposit-details-container { + display: grid; + grid-template-columns: 1fr 1fr; + column-gap: 1rem; + row-gap: 0.8rem; + margin-top: 3.2rem; + & > .payment-agent-detail:nth-child(-n + 2) { + margin-bottom: 2.4rem; + @include mobile { + margin-bottom: 0; + } + } + @include mobile { + grid-template-columns: 1fr; + margin-top: 2.4rem; + } + } +} diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-container/__tests__/payment-agent-container.spec.js b/packages/cashier/src/pages/payment-agent/payment-agent-container/__tests__/payment-agent-container.spec.js new file mode 100644 index 000000000000..a9ca4e138edd --- /dev/null +++ b/packages/cashier/src/pages/payment-agent/payment-agent-container/__tests__/payment-agent-container.spec.js @@ -0,0 +1,146 @@ +import React from 'react'; +import { fireEvent, screen, render } from '@testing-library/react'; +import PaymentAgentContainer from '../payment-agent-container'; +import { isMobile } from '@deriv/shared'; + +jest.mock('Stores/connect.js', () => ({ + __esModule: true, + default: 'mockedDefaultExport', + connect: () => Component => Component, +})); + +jest.mock('@deriv/shared', () => ({ + ...jest.requireActual('@deriv/shared'), + isMobile: jest.fn(() => false), +})); + +jest.mock('@deriv/components', () => ({ + ...jest.requireActual('@deriv/components'), + Loading: () =>
Loading
, +})); + +jest.mock('Pages/payment-agent/payment-agent-unlisted-withdraw-form', () => () => ( +
PaymentAgentUnlistedWithdrawForm
+)); +jest.mock('Pages/payment-agent/payment-agent-withdraw-confirm', () => () =>
PaymentAgentWithdrawConfirm
); +jest.mock('Pages/payment-agent/payment-agent-receipt', () => () =>
PaymentAgentReceipt
); +jest.mock('Pages/payment-agent/payment-agent-disclaimer', () => () =>
PaymentAgentDisclaimer
); +jest.mock('Pages/payment-agent/payment-agent-search-box', () => () =>
PaymentAgentSearchBox
); + +describe('', () => { + const props = { + app_contents_scroll_ref: { + current: {}, + }, + is_deposit: true, + is_try_withdraw_successful: false, + is_withdraw_successful: false, + onChangePaymentMethod: jest.fn(), + payment_agent_list: [ + { + currencies: 'USD', + deposit_commission: 0, + email: 'pa@example.com', + further_information: 'further information CR90000000', + max_withdrawal: '2000', + min_withdrawal: '10', + name: 'Payment Agent of CR90000000', + paymentagent_loginid: 'CR90000000', + phones: '+12345678', + supported_banks: [{ payment_method: 'Visa' }], + telephone: '+12345678', + url: 'http://www.pa.com', + withdrawal_commission: 0, + }, + { + currencies: 'USD', + deposit_commission: 0, + email: 'pa@example.com', + further_information: 'further information CR90000002', + max_withdrawal: '2000', + min_withdrawal: '10', + name: 'Payment Agent of CR90000002', + paymentagent_loginid: 'CR90000002', + phones: '+12345678', + supported_banks: [{ payment_method: 'Visa' }, { payment_method: 'Mastercard' }], + telephone: '+12345678', + url: 'http://www.pa.com', + withdrawal_commission: 0, + }, + ], + resetPaymentAgent: jest.fn(), + selected_bank: '', + supported_banks: [ + { text: 'MasterCard', value: 'mastercard' }, + { text: 'Visa', value: 'visa' }, + ], + verification_code: 'ABCdef', + }; + + it('should show proper messages and icons', () => { + render(); + + expect( + screen.getByText('Contact your preferred payment agent for payment instructions and make your deposit.') + ).toBeInTheDocument(); + expect(screen.getByText('PaymentAgentSearchBox')).toBeInTheDocument(); + expect(screen.getByTestId('dt_dropdown_container')).toBeInTheDocument(); + expect(screen.getByText('Payment Agent of CR90000000')).toBeInTheDocument(); + expect(screen.getByText('Further information CR90000000')).toBeInTheDocument(); + expect(screen.getByText('Payment Agent of CR90000002')).toBeInTheDocument(); + expect(screen.getByText('Further information CR90000002')).toBeInTheDocument(); + expect(screen.getAllByTestId('dt_payment_method_icon').length).toBe(2); + }); + + it('should show proper header when is_deposit is equal to false', () => { + render(); + + expect( + screen.getByText( + /choose your preferred payment agent and enter your withdrawal amount. If your payment agent is not listed/i + ) + ).toBeInTheDocument(); + expect(screen.getByText('search for them using their account number')).toBeInTheDocument(); + }); + + it('should show PaymentAgentUnlistedWithdrawForm when the user clicks on "search for them using their account number" link', () => { + render(); + + const el_withdrawal_link = screen.getByTestId('dt_withdrawal_link'); + fireEvent.click(el_withdrawal_link); + + expect(screen.getByText('PaymentAgentUnlistedWithdrawForm')).toBeInTheDocument(); + }); + + it('should show PaymentAgentWithdrawConfirm component when is_try_withdraw_successful is equal to true', () => { + render(); + + expect(screen.getByText('PaymentAgentWithdrawConfirm')).toBeInTheDocument(); + }); + + it('should show PaymentAgentReceipt component when is_withdraw_successful is equal to true', () => { + render(); + + expect(screen.getByText('PaymentAgentReceipt')).toBeInTheDocument(); + }); + + it('should show PaymentAgentDisclaimer in mobile view', () => { + isMobile.mockReturnValue(true); + render(); + + expect(screen.getByText('PaymentAgentDisclaimer')).toBeInTheDocument(); + }); + + it('should show search loader when is_search_loading equal to true', () => { + render(); + + expect(screen.getByText('Loading')).toBeInTheDocument(); + }); + + it('should show proper warning messages if there are no matches in search results', () => { + render(); + + expect(screen.getByText('No payment agents found for your search')).toBeInTheDocument(); + expect(screen.getByText('Try changing your search criteria.')).toBeInTheDocument(); + }); +}); diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-container/index.js b/packages/cashier/src/pages/payment-agent/payment-agent-container/index.js new file mode 100644 index 000000000000..f9ed45aaa6ab --- /dev/null +++ b/packages/cashier/src/pages/payment-agent/payment-agent-container/index.js @@ -0,0 +1,3 @@ +import PaymentAgentContainer from './payment-agent-container.jsx'; + +export default PaymentAgentContainer; diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-container/payment-agent-container.jsx b/packages/cashier/src/pages/payment-agent/payment-agent-container/payment-agent-container.jsx new file mode 100644 index 000000000000..b6e67c400d1a --- /dev/null +++ b/packages/cashier/src/pages/payment-agent/payment-agent-container/payment-agent-container.jsx @@ -0,0 +1,202 @@ +import { PropTypes as MobxPropTypes } from 'mobx-react'; +import PropTypes from 'prop-types'; +import React from 'react'; +import { DesktopWrapper, Dropdown, Icon, Loading, MobileWrapper, SelectNative, Text } from '@deriv/components'; +import { localize, Localize } from '@deriv/translations'; +import SideNote from 'Components/side-note'; +import { connect } from 'Stores/connect'; +import PaymentAgentCard from '../payment-agent-card'; +import PaymentAgentDisclaimer from '../payment-agent-disclaimer'; +import PaymentAgentReceipt from '../payment-agent-receipt'; +import PaymentAgentSearchBox from '../payment-agent-search-box'; +import PaymentAgentUnlistedWithdrawForm from '../payment-agent-unlisted-withdraw-form'; +import PaymentAgentWithdrawConfirm from '../payment-agent-withdraw-confirm'; + +const PaymentAgentSearchWarning = () => { + return ( +
+ + + + + + + +
+ ); +}; + +const PaymentAgentContainer = ({ + app_contents_scroll_ref, + has_payment_agent_search_warning, + is_dark_mode_on, + is_deposit, + is_search_loading, + is_try_withdraw_successful, + is_withdraw_successful, + onChangePaymentMethod, + payment_agent_list, + resetPaymentAgent, + selected_bank, + supported_banks, + verification_code, +}) => { + React.useEffect(() => { + return () => { + if (!is_deposit) { + resetPaymentAgent(); + } + }; + }, [is_deposit, resetPaymentAgent]); + + React.useEffect(() => { + return () => { + onChangePaymentMethod({ target: { value: '0' } }); + }; + }, [onChangePaymentMethod]); + + React.useEffect(() => { + if (app_contents_scroll_ref) app_contents_scroll_ref.current.scrollTop = 0; + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [is_try_withdraw_successful, is_withdraw_successful]); + + const [is_unlisted_withdraw, setIsUnlistedWithdraw] = React.useState(false); + + const list_with_default = [ + { text: , value: 0 }, + ...supported_banks, + ]; + + if (is_try_withdraw_successful) { + return ; + } + + if (is_withdraw_successful) { + return ; + } + + if (is_unlisted_withdraw) { + return ( + + ); + } + + return ( + + {!has_payment_agent_search_warning && ( + + + + )} +
+ {is_deposit ? ( + + + + ) : ( + + setIsUnlistedWithdraw(!is_unlisted_withdraw)} + />, + ]} + /> + + )} +
+
+ + {supported_banks.length > 1 && ( + + + + + + + onChangePaymentMethod({ + target: { + name: 'payment_methods', + value: e.target.value ? e.target.value.toLowerCase() : 0, + }, + }) + } + use_text={false} + /> + + + )} +
+ {is_search_loading ? ( + + ) : ( + + {has_payment_agent_search_warning ? ( + + ) : ( + payment_agent_list.map((payment_agent, idx) => { + return ( + + ); + }) + )} + + )} +
+ ); +}; + +PaymentAgentContainer.propTypes = { + app_contents_scroll_ref: PropTypes.object, + has_payment_agent_search_warning: PropTypes.bool, + is_dark_mode_on: PropTypes.bool, + is_deposit: PropTypes.bool, + is_search_loading: PropTypes.bool, + is_try_withdraw_successful: PropTypes.bool, + is_withdraw_successful: PropTypes.bool, + onChangePaymentMethod: PropTypes.func, + payment_agent_list: PropTypes.array, + resetPaymentAgent: PropTypes.func, + selected_bank: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), + supported_banks: MobxPropTypes.arrayOrObservableArray, + verification_code: PropTypes.string, +}; + +export default connect(({ modules, ui }) => ({ + app_contents_scroll_ref: ui.app_contents_scroll_ref, + has_payment_agent_search_warning: modules.cashier.payment_agent.has_payment_agent_search_warning, + is_dark_mode_on: ui.is_dark_mode_on, + is_search_loading: modules.cashier.payment_agent.is_search_loading, + is_try_withdraw_successful: modules.cashier.payment_agent.is_try_withdraw_successful, + is_withdraw_successful: modules.cashier.payment_agent.is_withdraw_successful, + onChangePaymentMethod: modules.cashier.payment_agent.onChangePaymentMethod, + payment_agent_list: modules.cashier.payment_agent.filtered_list, + resetPaymentAgent: modules.cashier.payment_agent.resetPaymentAgent, + selected_bank: modules.cashier.payment_agent.selected_bank, + supported_banks: modules.cashier.payment_agent.supported_banks, +}))(PaymentAgentContainer); diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-deposit-details/__tests__/payment-agent-card-deposit-details.spec.js b/packages/cashier/src/pages/payment-agent/payment-agent-deposit-details/__tests__/payment-agent-card-deposit-details.spec.js new file mode 100644 index 000000000000..f38cc5104173 --- /dev/null +++ b/packages/cashier/src/pages/payment-agent/payment-agent-deposit-details/__tests__/payment-agent-card-deposit-details.spec.js @@ -0,0 +1,33 @@ +import React from 'react'; +import { render, screen } from '@testing-library/react'; +import PaymentAgentDepositDetails from '../payment-agent-deposit-details'; + +describe('', () => { + const mocked_payment_agent = { + currency: 'USD', + deposit_commission: '10', + email: 'pa@example.com', + max_withdrawal: '2000', + min_withdrawal: '10', + phones: [{ phone_number: '+12345678' }, { phone_number: '+87654321' }], + withdrawal_commission: '0', + }; + + it('should show proper payment agent deposit details', () => { + render(); + + expect(screen.getByText('Phone number')).toBeInTheDocument(); + expect(screen.getByText('+12345678,')).toBeInTheDocument(); + expect(screen.getByText('+87654321')).toBeInTheDocument(); + expect(screen.getByText('Email')).toBeInTheDocument(); + expect(screen.getByText('pa@example.com')).toBeInTheDocument(); + expect(screen.getByText('Minimum withdrawal')).toBeInTheDocument(); + expect(screen.getByText('10.00 USD')).toBeInTheDocument(); + expect(screen.getByText('Maximum withdrawal')).toBeInTheDocument(); + expect(screen.getByText('2,000.00 USD')).toBeInTheDocument(); + expect(screen.getByText('Commission on deposits')).toBeInTheDocument(); + expect(screen.getByText('10%')).toBeInTheDocument(); + expect(screen.getByText('Commission on withdrawal')).toBeInTheDocument(); + expect(screen.getByText('0%')).toBeInTheDocument(); + }); +}); diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-deposit-details/index.js b/packages/cashier/src/pages/payment-agent/payment-agent-deposit-details/index.js new file mode 100644 index 000000000000..4e46d62b2950 --- /dev/null +++ b/packages/cashier/src/pages/payment-agent/payment-agent-deposit-details/index.js @@ -0,0 +1,3 @@ +import PaymentAgentDepositDetails from './payment-agent-deposit-details.jsx'; + +export default PaymentAgentDepositDetails; diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-deposit-details/payment-agent-deposit-details.jsx b/packages/cashier/src/pages/payment-agent/payment-agent-deposit-details/payment-agent-deposit-details.jsx new file mode 100644 index 000000000000..268169141f2e --- /dev/null +++ b/packages/cashier/src/pages/payment-agent/payment-agent-deposit-details/payment-agent-deposit-details.jsx @@ -0,0 +1,91 @@ +import PropTypes from 'prop-types'; +import { toJS } from 'mobx'; +import React from 'react'; +import { Money } from '@deriv/components'; +import { localize } from '@deriv/translations'; +import PaymentAgentDetail from '../payment-agent-detail'; +import './payment-agent-deposit-details.scss'; + +const PaymentAgentDepositDetails = ({ payment_agent }) => { + const payment_agent_phones = toJS(payment_agent.phones); + + const PaymentAgentPhonesDetails = () => { + return ( + + {payment_agent.phones.map(phone => phone.phone_number)} + + ); + }; + + const PaymentAgentEmailDetails = () => { + return ( + + {payment_agent.email} + + ); + }; + + const PaymentAgentMinimumWithdrawalDetails = () => { + return ( + + + + ); + }; + + const PaymentAgentMaximumWithdrawalDetails = () => { + return ( + + + + ); + }; + + const PaymentAgentDepositComissionDetails = () => { + return ( + + {`${payment_agent.deposit_commission}%`} + + ); + }; + + const PaymentAgentWithdrawalComissionDetails = () => { + return ( + + {`${payment_agent.withdrawal_commission}%`} + + ); + }; + + return ( +
+ {payment_agent_phones && } + {payment_agent.email && } + {payment_agent.min_withdrawal && } + {payment_agent.deposit_commission && } + {payment_agent.max_withdrawal && } + {payment_agent.withdrawal_commission && } +
+ ); +}; + +PaymentAgentDepositDetails.propTypes = { + payment_agent: PropTypes.object, +}; + +export default PaymentAgentDepositDetails; diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-deposit-details/payment-agent-deposit-details.scss b/packages/cashier/src/pages/payment-agent/payment-agent-deposit-details/payment-agent-deposit-details.scss new file mode 100644 index 000000000000..ceff51166a94 --- /dev/null +++ b/packages/cashier/src/pages/payment-agent/payment-agent-deposit-details/payment-agent-deposit-details.scss @@ -0,0 +1,34 @@ +.payment-agent-deposit-details { + display: grid; + grid-template-columns: 1fr 1fr; + column-gap: 1rem; + row-gap: 0.8rem; + margin-top: 3.2rem; + & > .payment-agent-detail:nth-child(-n + 2) { + margin-bottom: 2.4rem; + @include mobile { + margin-bottom: 0; + } + } + .payment-agent-detail { + &__icon-wrapper { + width: 3.2rem; + height: 3.2rem; + background: var(--icon-grey-background); + border-radius: $BORDER_RADIUS * 2; + } + @include mobile { + &.deposit-commission { + order: 5; + } + + &.withdrawal_commission { + order: 6; + } + } + } + @include mobile { + grid-template-columns: 1fr; + margin-top: 2.4rem; + } +} diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-deposit/index.js b/packages/cashier/src/pages/payment-agent/payment-agent-deposit/index.js deleted file mode 100644 index ad5067e20f62..000000000000 --- a/packages/cashier/src/pages/payment-agent/payment-agent-deposit/index.js +++ /dev/null @@ -1,3 +0,0 @@ -import PaymentAgentDeposit from './payment-agent-deposit.jsx'; - -export default PaymentAgentDeposit; diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-deposit/payment-agent-deposit.jsx b/packages/cashier/src/pages/payment-agent/payment-agent-deposit/payment-agent-deposit.jsx deleted file mode 100644 index 24d393898888..000000000000 --- a/packages/cashier/src/pages/payment-agent/payment-agent-deposit/payment-agent-deposit.jsx +++ /dev/null @@ -1,100 +0,0 @@ -import { toJS } from 'mobx'; -import PropTypes from 'prop-types'; -import React from 'react'; -import { Accordion, DesktopWrapper, Dropdown, MobileWrapper, SelectNative, Text } from '@deriv/components'; -import { localize, Localize } from '@deriv/translations'; -import { isMobile } from '@deriv/shared'; -import { connect } from 'Stores/connect'; -import PaymentAgentDetails from '../payment-agent-details'; - -const PaymentAgentDeposit = ({ onChangePaymentMethod, payment_agent_list, selected_bank, supported_banks }) => { - const list_with_default = [ - { text: , value: 0 }, - ...supported_banks, - ]; - - React.useEffect(() => { - return () => { - onChangePaymentMethod({ target: { value: '0' } }); - }; - }, [onChangePaymentMethod]); - - return ( - -
- - - -
-
- -
- - - - {supported_banks.length > 1 && ( -
- - - - - - onChangePaymentMethod({ - target: { - name: 'payment_methods', - value: e.target.value ? e.target.value.toLowerCase() : 0, - }, - }) - } - use_text={false} - /> - -
- )} -
- ({ - header: payment_agent.name, - content: ( - - ), - }))} - /> - - ); -}; - -PaymentAgentDeposit.propTypes = { - onChangePaymentMethod: PropTypes.func, - payment_agent_list: PropTypes.array, - selected_bank: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), - supported_banks: PropTypes.any, -}; - -export default connect(({ modules }) => ({ - onChangePaymentMethod: modules.cashier.payment_agent.onChangePaymentMethod, - payment_agent_list: modules.cashier.payment_agent.filtered_list, - selected_bank: modules.cashier.payment_agent.selected_bank, - supported_banks: modules.cashier.payment_agent.supported_banks, -}))(PaymentAgentDeposit); diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-detail/__tests__/payment-agent-detail.spec.js b/packages/cashier/src/pages/payment-agent/payment-agent-detail/__tests__/payment-agent-detail.spec.js new file mode 100644 index 000000000000..349874261013 --- /dev/null +++ b/packages/cashier/src/pages/payment-agent/payment-agent-detail/__tests__/payment-agent-detail.spec.js @@ -0,0 +1,44 @@ +import React from 'react'; +import { render, screen } from '@testing-library/react'; +import PaymentAgentDetail from '../payment-agent-detail'; + +describe('', () => { + const props = { + action: 'tel', + children: '+12345678', + has_red_color: false, + icon: 'phone_icon', + is_link: false, + title: 'Phone', + }; + it('should show proper icon, title and description', () => { + render(); + + expect(screen.getByTestId('dt_payment_agent_detail_icon')).toBeInTheDocument(); + expect(screen.getByText('Phone')).toBeInTheDocument(); + expect(screen.getByText('+12345678')).toBeInTheDocument(); + }); + + it('should show proper description if children is an array', () => { + render(); + + expect(screen.getByText('+12345678,')).toBeInTheDocument(); + expect(screen.getByText('+87654321')).toBeInTheDocument(); + }); + + it('should show description as a link if is_link or action were defined', () => { + const { rerender } = render(); + + expect(screen.getByTestId('dt_payment_agent_detail_link')).toBeInTheDocument(); + + rerender(); + + expect(screen.getByTestId('dt_payment_agent_detail_link')).toBeInTheDocument(); + }); + + it('should show description as a paragraph if is_link or action were not defined', () => { + render(); + + expect(screen.getByTestId('dt_payment_agent_detail_paragraph')).toBeInTheDocument(); + }); +}); diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-detail/index.js b/packages/cashier/src/pages/payment-agent/payment-agent-detail/index.js new file mode 100644 index 000000000000..775708aae302 --- /dev/null +++ b/packages/cashier/src/pages/payment-agent/payment-agent-detail/index.js @@ -0,0 +1,3 @@ +import PaymentAgentDetail from './payment-agent-detail.jsx'; + +export default PaymentAgentDetail; diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-detail/payment-agent-detail.jsx b/packages/cashier/src/pages/payment-agent/payment-agent-detail/payment-agent-detail.jsx new file mode 100644 index 000000000000..4a5e8a78114f --- /dev/null +++ b/packages/cashier/src/pages/payment-agent/payment-agent-detail/payment-agent-detail.jsx @@ -0,0 +1,72 @@ +import PropTypes from 'prop-types'; +import React from 'react'; +import classNames from 'classnames'; +import { Icon, Text } from '@deriv/components'; +import './payment-agent-detail.scss'; + +const PaymentAgentDetail = ({ action, children, className, has_red_color, icon, is_link, title, ...rest }) => { + const detail = Array.isArray(children) ? children : [children]; + return ( +
+ {icon && ( +
+ +
+ )} +
+ {title && ( + + {title} + + )} + {detail.map((child, id) => ( + + {action || is_link ? ( + + {child} + {id === detail.length - 1 ? '' : ', '} + + ) : ( + + {child} + + )} + + ))} +
+
+ ); +}; + +PaymentAgentDetail.propTypes = { + action: PropTypes.string, + children: PropTypes.oneOfType([PropTypes.array, PropTypes.element, PropTypes.string]), + className: PropTypes.string, + has_red_color: PropTypes.bool, + icon: PropTypes.string, + is_link: PropTypes.bool, + title: PropTypes.string, +}; + +export default PaymentAgentDetail; diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-detail/payment-agent-detail.scss b/packages/cashier/src/pages/payment-agent/payment-agent-detail/payment-agent-detail.scss new file mode 100644 index 000000000000..77601d7c4a65 --- /dev/null +++ b/packages/cashier/src/pages/payment-agent/payment-agent-detail/payment-agent-detail.scss @@ -0,0 +1,13 @@ +.payment-agent-detail { + display: flex; + &__icon-wrapper { + display: flex; + justify-content: center; + align-items: center; + margin-right: 0.8rem; + } + &__link { + text-decoration: none; + word-break: break-word; + } +} diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-details/__tests__/payment-agent-details.spec.js b/packages/cashier/src/pages/payment-agent/payment-agent-details/__tests__/payment-agent-details.spec.js deleted file mode 100644 index 214b200bbed8..000000000000 --- a/packages/cashier/src/pages/payment-agent/payment-agent-details/__tests__/payment-agent-details.spec.js +++ /dev/null @@ -1,33 +0,0 @@ -import React from 'react'; -import { render, screen } from '@testing-library/react'; -import PaymentAgentDetails from '../payment-agent-details'; - -describe('', () => { - const props = { - payment_agent_phones: '+12345678, +12345679', - payment_agent_urls: 'http://www.MyPAMyAdventure.com/, http://www.MyPAMyAdventure2.com/', - payment_agent_email: 'MyPaScript@example.com', - }; - - it('should render proper phones, urls and emails', () => { - const { rerender } = render(); - - expect(screen.getByText('+12345678,')).toBeInTheDocument(); - expect(screen.getByText('+12345679')).toBeInTheDocument(); - expect(screen.getByText('http://www.MyPAMyAdventure.com/,')).toBeInTheDocument(); - expect(screen.getByText('http://www.MyPAMyAdventure2.com/')).toBeInTheDocument(); - expect(screen.getByText('MyPaScript@example.com')).toBeInTheDocument(); - - rerender( - - ); - - expect(screen.getByText('+12345679')).toBeInTheDocument(); - expect(screen.getByText('http://www.MyPAMyAdventure2.com/')).toBeInTheDocument(); - expect(screen.getByText('MyPaScript@example.com')).toBeInTheDocument(); - }); -}); diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-details/index.js b/packages/cashier/src/pages/payment-agent/payment-agent-details/index.js deleted file mode 100644 index 0d06ccd83b48..000000000000 --- a/packages/cashier/src/pages/payment-agent/payment-agent-details/index.js +++ /dev/null @@ -1,3 +0,0 @@ -import PaymentAgentDetails from './payment-agent-details.jsx'; - -export default PaymentAgentDetails; diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-details/payment-agent-details.jsx b/packages/cashier/src/pages/payment-agent/payment-agent-details/payment-agent-details.jsx deleted file mode 100644 index f45a469c7011..000000000000 --- a/packages/cashier/src/pages/payment-agent/payment-agent-details/payment-agent-details.jsx +++ /dev/null @@ -1,75 +0,0 @@ -import classNames from 'classnames'; -import PropTypes from 'prop-types'; -import React from 'react'; -import { Icon } from '@deriv/components'; -import './payment-agent-details.scss'; - -const Detail = ({ action, icon, is_last_child, children, ...rest }) => { - const detail = Array.isArray(children) ? children : children.split(','); - return ( -
-
- -
-
- {detail.map((child, id) => ( - - {child} - {id === detail.length - 1 ? '' : ', '} - - ))} -
-
- ); -}; - -Detail.propTypes = { - action: PropTypes.string, - children: PropTypes.oneOfType([PropTypes.array, PropTypes.string]), - icon: PropTypes.string, - is_last_child: PropTypes.bool, - rel: PropTypes.string, - target: PropTypes.string, - value: PropTypes.string, -}; - -const PaymentAgentDetails = ({ className, payment_agent_phones, payment_agent_urls, payment_agent_email }) => { - // TODO: Once telephone, url removed from paymentagent_list.list we can remove isArray conditions and only use the array - return ( -
- {payment_agent_phones && ( - - {Array.isArray(payment_agent_phones) - ? payment_agent_phones.map(phone => phone.phone_number) - : payment_agent_phones} - - )} - {payment_agent_urls && ( - - {Array.isArray(payment_agent_urls) ? payment_agent_urls.map(url => url.url) : payment_agent_urls} - - )} - {payment_agent_email && ( - - {payment_agent_email} - - )} -
- ); -}; - -PaymentAgentDetails.propTypes = { - className: PropTypes.string, - payment_agent_email: PropTypes.string, - payment_agent_phone: PropTypes.string, - payment_agent_phones: PropTypes.oneOfType([PropTypes.array, PropTypes.string]), - payment_agent_url: PropTypes.string, - payment_agent_urls: PropTypes.oneOfType([PropTypes.array, PropTypes.string]), -}; - -export default PaymentAgentDetails; diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-details/payment-agent-details.scss b/packages/cashier/src/pages/payment-agent/payment-agent-details/payment-agent-details.scss deleted file mode 100644 index 8c917b595517..000000000000 --- a/packages/cashier/src/pages/payment-agent/payment-agent-details/payment-agent-details.scss +++ /dev/null @@ -1,44 +0,0 @@ -.payment-agent-details { - &__contact { - text-decoration: none; - color: var(--brand-red-coral); - font-weight: bold; - font-size: var(--text-size-xs); - word-wrap: break-word; - - @include mobile { - padding-left: 0; - } - } - &__accordion-content { - &-line { - margin-bottom: 8px; - display: flex; - flex-direction: row; - word-break: break-all; - - &:first-child { - & .payment-agent-details__contact { - color: var(--text-prominent); - } - } - &:last-child { - margin-bottom: 0; - } - @include mobile { - overflow: hidden; - text-overflow: ellipsis; - - &:not(:first-child) { - color: var(--brand-red-coral); - } - } - } - &-icon { - vertical-align: middle; - margin-right: 0.8rem; - /* postcss-bem-linter: ignore */ - --fill-color1: var(--text-general); - } - } -} diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-disclaimer/index.js b/packages/cashier/src/pages/payment-agent/payment-agent-disclaimer/index.js new file mode 100644 index 000000000000..ef8d732d143f --- /dev/null +++ b/packages/cashier/src/pages/payment-agent/payment-agent-disclaimer/index.js @@ -0,0 +1,3 @@ +import PaymentAgentDisclaimer from './payment-agent-disclaimer.jsx'; + +export default PaymentAgentDisclaimer; diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-disclaimer/payment-agent-disclaimer.jsx b/packages/cashier/src/pages/payment-agent/payment-agent-disclaimer/payment-agent-disclaimer.jsx new file mode 100644 index 000000000000..68928b4a911a --- /dev/null +++ b/packages/cashier/src/pages/payment-agent/payment-agent-disclaimer/payment-agent-disclaimer.jsx @@ -0,0 +1,23 @@ +import React from 'react'; +import { Text } from '@deriv/components'; +import { Localize } from '@deriv/translations'; +import { website_name } from '@deriv/shared'; +import './payment-agent-disclaimer.scss'; + +const PaymentAgentDisclaimer = () => { + return ( +
+ + + + + + +
+ ); +}; + +export default PaymentAgentDisclaimer; diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-disclaimer/payment-agent-disclaimer.scss b/packages/cashier/src/pages/payment-agent/payment-agent-disclaimer/payment-agent-disclaimer.scss new file mode 100644 index 000000000000..5d6b7f1ecade --- /dev/null +++ b/packages/cashier/src/pages/payment-agent/payment-agent-disclaimer/payment-agent-disclaimer.scss @@ -0,0 +1,12 @@ +.payment-agent-disclaimer { + &__title { + margin-bottom: 0.8rem; + } + @include mobile { + background-color: var(--general-section-1); + border-radius: $BORDER_RADIUS * 2; + padding: 1.6rem 2.4rem; + color: var(--text-general); + line-height: 1.5; + } +} diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-list/__tests__/payment-agent-list.spec.js b/packages/cashier/src/pages/payment-agent/payment-agent-list/__tests__/payment-agent-list.spec.js index 7a0871933d8c..a13c9c57e368 100644 --- a/packages/cashier/src/pages/payment-agent/payment-agent-list/__tests__/payment-agent-list.spec.js +++ b/packages/cashier/src/pages/payment-agent/payment-agent-list/__tests__/payment-agent-list.spec.js @@ -12,8 +12,7 @@ jest.mock('Stores/connect', () => ({ jest.mock('Pages/payment-agent/payment-agent-withdrawal-locked', () => () =>
PaymentAgentWithdrawalLocked
); jest.mock('Components/verification-email', () => () =>
The email has been sent!
); -jest.mock('Pages/payment-agent/payment-agent-withdraw-form', () => () =>
Payment agent withdraw form
); -jest.mock('Pages/payment-agent/payment-agent-deposit', () => () =>
Payment agent deposit
); +jest.mock('Pages/payment-agent/payment-agent-container', () => () =>
Payment agent container
); jest.mock('@deriv/components', () => ({ ...jest.requireActual('@deriv/components'), @@ -34,6 +33,7 @@ describe('', () => { verification_code: '', onMount: jest.fn(), sendVerificationEmail: jest.fn(), + setSideNotes: jest.fn(), }; let history; @@ -45,13 +45,7 @@ describe('', () => { it('should show proper messages', () => { renderWithRouter(); - expect(screen.getByText('Payment agent deposit')).toBeInTheDocument(); - expect(screen.getByText('DISCLAIMER')).toBeInTheDocument(); - expect( - screen.getByText( - 'Deriv is not affiliated with any Payment Agent. Customers deal with Payment Agents at their sole risk. Customers are advised to check the credentials of Payment Agents, and check the accuracy of any information about Payments Agents (on Deriv or elsewhere) before transferring funds.' - ) - ).toBeInTheDocument(); + expect(screen.getByText('Payment agent container')).toBeInTheDocument(); }); it('should show loader in Deposit tab', () => { @@ -76,7 +70,7 @@ describe('', () => { expect(screen.getByText('The email has been sent!')).toBeInTheDocument(); }); - it('should show "Payment agent withdraw form" message in Withdrawal tab', () => { + it('should show "Payment agent container" message in Withdrawal tab', () => { renderWithRouter( ', () => { /> ); - expect(screen.getByText('Payment agent withdraw form')).toBeInTheDocument(); + expect(screen.getByText('Payment agent container')).toBeInTheDocument(); + }); + + it('should set side notes when component is mounting', () => { + renderWithRouter(); + + expect(props.setSideNotes).toHaveBeenCalledTimes(1); }); }); diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-list/payment-agent-list.jsx b/packages/cashier/src/pages/payment-agent/payment-agent-list/payment-agent-list.jsx index 0b4261d3fbe6..3e4bb2ba801a 100644 --- a/packages/cashier/src/pages/payment-agent/payment-agent-list/payment-agent-list.jsx +++ b/packages/cashier/src/pages/payment-agent/payment-agent-list/payment-agent-list.jsx @@ -1,13 +1,15 @@ +import classNames from 'classnames'; import PropTypes from 'prop-types'; import React from 'react'; -import { Loading, Tabs, Text } from '@deriv/components'; -import { localize, Localize } from '@deriv/translations'; -import { isDesktop, isMobile, website_name } from '@deriv/shared'; +import { Loading, Tabs } from '@deriv/components'; +import { localize } from '@deriv/translations'; +import { isDesktop } from '@deriv/shared'; import { connect } from 'Stores/connect'; import VerificationEmail from 'Components/verification-email'; -import PaymentAgentDeposit from '../payment-agent-deposit'; -import PaymentAgentWithdrawForm from '../payment-agent-withdraw-form'; +import PaymentAgentContainer from '../payment-agent-container'; import PaymentAgentWithdrawalLocked from '../payment-agent-withdrawal-locked'; +import PaymentAgentDisclaimer from '../payment-agent-disclaimer'; +import SideNote from 'Components/side-note'; import './payment-agent-list.scss'; const PaymentAgentList = ({ @@ -16,12 +18,14 @@ const PaymentAgentList = ({ is_loading, is_resend_clicked, is_payment_agent_withdraw, + is_try_withdraw_successful, onMount, payment_agent_active_tab_index, resendVerificationEmail, sendVerificationEmail, setActiveTabIndex, setIsResendClicked, + setSideNotes, verification_code, }) => { React.useEffect(() => { @@ -35,67 +39,64 @@ const PaymentAgentList = ({ // eslint-disable-next-line react-hooks/exhaustive-deps }, []); + React.useEffect(() => { + if (typeof setSideNotes === 'function' && !is_loading) { + const side_notes = []; + + if (!is_try_withdraw_successful) { + side_notes.push( + + + + ); + } + + setSideNotes(side_notes); + } + }, [is_loading, is_try_withdraw_successful]); + return ( -
- - +
+ - - -
- -
- {is_loading ? : } -
- - - - :  - - - +
+ {is_loading ? : } +
+
+ {error?.code ? ( + + ) : ( +
+ {is_email_sent ? ( +
+ +
+ ) : ( + (verification_code || is_payment_agent_withdraw) && ( + + ) + )}
-
-
- {error?.code ? ( - - ) : ( -
- {is_email_sent ? ( -
- -
- ) : ( - (verification_code || is_payment_agent_withdraw) && ( - - ) - )} -
- )} -
- -
- + )} +
+
+
); }; @@ -106,12 +107,14 @@ PaymentAgentList.propTypes = { is_loading: PropTypes.bool, is_resend_clicked: PropTypes.bool, is_payment_agent_withdraw: PropTypes.bool, + is_try_withdraw_successful: PropTypes.bool, onMount: PropTypes.func, payment_agent_active_tab_index: PropTypes.number, resendVerificationEmail: PropTypes.func, sendVerificationEmail: PropTypes.func, setActiveTabIndex: PropTypes.func, setIsResendClicked: PropTypes.func, + setSideNotes: PropTypes.func, verification_code: PropTypes.string, }; @@ -120,6 +123,7 @@ export default connect(({ modules }) => ({ is_email_sent: modules.cashier.payment_agent.verification.is_email_sent, is_loading: modules.cashier.general_store.is_loading, is_resend_clicked: modules.cashier.payment_agent.verification.is_resend_clicked, + is_try_withdraw_successful: modules.cashier.payment_agent.is_try_withdraw_successful, onMount: modules.cashier.payment_agent.onMountPaymentAgentList, payment_agent_active_tab_index: modules.cashier.payment_agent.active_tab_index, resendVerificationEmail: modules.cashier.payment_agent.verification.resendVerificationEmail, diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-list/payment-agent-list.scss b/packages/cashier/src/pages/payment-agent/payment-agent-list/payment-agent-list.scss index 4574f608bc3c..68f0b7a0b5d9 100644 --- a/packages/cashier/src/pages/payment-agent/payment-agent-list/payment-agent-list.scss +++ b/packages/cashier/src/pages/payment-agent/payment-agent-list/payment-agent-list.scss @@ -1,69 +1,43 @@ .payment-agent-list { + padding: 0 4.2rem 1.6rem; + @include mobile { + padding: 0; + } + .side-note--mobile { + padding: 0; + margin: 0; + } &__instructions { - margin-top: 2.4rem; @include mobile { display: grid; grid-template-columns: 1fr; grid-gap: 0.8rem; - } - - &-section { - border: 1px solid var(--border-normal); - flex: 1; - padding: 1.6rem; - border-radius: $BORDER_RADIUS; - @include desktop { - &:not(:first-child) { - margin-left: 24px; - margin-left: 1.6rem; + .dc-tabs__list--header--tabs--desktop { + @include mobile { + position: fixed; + background-color: var(--general-main-1); + width: 100%; + left: 0; + z-index: 1000; + padding: 1.6rem 5rem; } } - @include mobile { - display: flex; - - &:first-child { - flex-direction: column; - align-items: flex-start; - } - /* postcss-bem-linter: ignore */ - &:last-child { - flex-direction: row; - justify-content: center; - align-items: center; - - & h2 { - margin: 0; - } - & .dc-btn { - margin: 0 0 0 auto; - padding: 0.3rem 0.8rem; - height: 3rem; - - &__text { - font-size: 1.2rem; - } - /* iPhone SE screen height fixes due to UI space restrictions */ - @media only screen and (max-height: 480px) { - height: 4.8rem; - - &__text { - width: 14rem; - white-space: normal; - } - } - } - } - /* postcss-bem-linter: ignore */ - & .cashier__paragraph { - padding-left: 0; - } + .dc-tabs__content { + margin-top: 7.2rem; } } - .dc-tabs__list--header--tabs--desktop { - margin: 0 auto; + &-hide-tabs { + & .dc-tabs__list { + display: none; + } - @include mobile { - margin: 0 3.5rem; + & .dc-tabs__content { + margin-top: 0; + } + + & .dc-tabs__list--header--tabs--desktop { + display: none; + padding: 1.6rem 5rem; } } .verification-email__icon { @@ -72,34 +46,36 @@ } &__list { &-header { - margin-top: 2.8rem; - margin-bottom: 1.8rem; - display: flex; - flex-direction: row; - align-items: center; - - &-text { - min-width: 12rem; - } - - &-line { - border-bottom: 1px solid var(--general-section-1); - width: 100%; - height: 1px; + margin-top: 2.4rem; + margin-bottom: 1.6rem; + @include mobile { + margin-top: 1.6rem; } } &-selector { - margin-bottom: 1rem; + margin-bottom: 2.4rem; display: flex; justify-content: space-between; - - .cashier { - &__paragraph { - margin-right: 0.8rem; + & .dc-dropdown { + &__container { + width: 18rem; + } + &-container { + margin-top: 0; + min-width: unset; + width: unset; + } + &__display { + justify-content: flex-start; + &-text { + padding-left: 0.8rem; + padding-right: 3.2rem; + color: var(--text-less-prominent); + } + } + &__select-arrow { + right: 10px; } - } - .dc-dropdown__display-text { - color: var(--text-less-prominent); } } @include mobile { @@ -108,68 +84,67 @@ z-index: 1; } &-selector { - margin-bottom: 1.8rem; - - /* postcss-bem-linter: ignore */ - & .dc-input { - width: 18rem; - margin-left: auto; - } + margin-bottom: 1.6rem; + flex-direction: column; /* postcss-bem-linter: ignore */ - & .dc-select-native__placeholder { - background-color: var(--general-main-1); + & .dc-select-native { + margin-top: 1.6rem; + &__arrow { + top: unset; + --fill-color1: var(--text-general); + } + &__placeholder { + padding: 0 0.8rem; + background-color: var(--general-main-1); + color: var(--text-general); + top: unset; + left: unset; + } + &__display { + height: 3.2rem; + &-text { + line-height: 3.2rem; + } + } + &__picker { + height: 3.2rem; + } + &__wrapper { + height: 3.2rem; + } } } } } - &__filter { - min-width: 22.8rem; - margin-top: 0; - - &-display { - min-height: 3.2rem; - min-width: 22.8rem; - } + &__search-warning { + row-gap: 1.6rem; + margin-top: 6.4rem; } - &__disclaimer { - background-color: var(--general-section-1); - margin-top: 2.4rem; - margin-bottom: 2.4rem; - padding: 1.6rem; - } - @include mobile { - &__accordion { - & .dc-accordion { - &__item { - font-size: 1.2rem; - position: relative; - user-select: none; - -webkit-touch-callout: none; - -webkit-tap-highlight-color: transparent; - - &-header { - max-width: calc(100% - 3.2rem); - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - padding-right: 0; - - &-icon-wrapper { - top: 0; - right: 0; - width: 36px; - height: 3.4rem; - padding-left: 0; - float: unset; - display: flex; - position: absolute; - align-items: center; - justify-content: center; - border-bottom: 1px solid var(--general-section-1); - } - } + &__error-dialog { + .dc-dialog { + &__content { + font-size: var(--text-size-s); + } + &__header--title { + font-size: var(--text-size-sm); + } + @include mobile { + &__dialog { + width: 100%; + margin: 0 1.6rem; + } + &__content { + font-size: var(--text-size-xxs); + } + &__header--title { + font-size: var(--text-size-xs); } } } } + &__search-loader { + @include mobile { + height: unset; + } + } } diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-listed-withdraw-form/__tests__/payment-agent-listed-withdraw-form.spec.js b/packages/cashier/src/pages/payment-agent/payment-agent-listed-withdraw-form/__tests__/payment-agent-listed-withdraw-form.spec.js new file mode 100644 index 000000000000..14ca7a7e6ac4 --- /dev/null +++ b/packages/cashier/src/pages/payment-agent/payment-agent-listed-withdraw-form/__tests__/payment-agent-listed-withdraw-form.spec.js @@ -0,0 +1,145 @@ +import React from 'react'; +import ReactDOM from 'react-dom'; +import { fireEvent, render, screen, waitFor } from '@testing-library/react'; +import PaymentAgentListedWithdrawForm from '../payment-agent-listed-withdraw-form'; +import { validNumber } from '@deriv/shared'; + +jest.mock('Stores/connect.js', () => ({ + __esModule: true, + default: 'mockedDefaultExport', + connect: () => Component => Component, +})); + +jest.mock('@deriv/components', () => ({ + ...jest.requireActual('@deriv/components'), + Loading: () =>
Loading
, +})); + +jest.mock('@deriv/shared/src/utils/validation/declarative-validation-rules', () => ({ + ...jest.requireActual('@deriv/shared/src/utils/validation/declarative-validation-rules'), + validNumber: jest.fn(() => ({ is_ok: true, message: '' })), +})); + +describe('', () => { + beforeAll(() => { + ReactDOM.createPortal = jest.fn(component => { + return component; + }); + }); + + afterAll(() => { + ReactDOM.createPortal.mockClear(); + }); + + const props = { + balance: '1000', + currency: 'USD', + error: {}, + is_loading: false, + onMount: jest.fn(), + payment_agent: { + currency: 'USD', + deposit_commission: '0', + email: 'MyPaScript@example.com', + further_information: 'Test Info', + max_withdrawal: '2000', + min_withdrawal: '10', + name: 'Payment Agent of CR90000102 (Created from Script)', + paymentagent_loginid: 'CR90000102', + phones: [{ phone_number: '+12345678' }], + supported_banks: [{ payment_method: 'MasterCard' }, { payment_method: 'Visa' }], + urls: [{ url: 'http://www.MyPAMyAdventure.com/' }, { url: 'http://www.MyPAMyAdventure2.com/' }], + withdrawal_commission: '0', + }, + payment_agent_list: [ + { + email: 'MyPaScript@example.com', + max_withdrawal: '2000', + min_withdrawal: '10', + phone: [{ phone_number: '+12345678' }], + text: 'Payment Agent of CR90000102 (Created from Script)', + url: [{ url: 'http://www.MyPAMyAdventure.com/' }, { url: 'http://www.MyPAMyAdventure2.com/' }], + value: 'CR90000102', + }, + { + email: 'MyPaScript2@example.com', + max_withdrawal: '1000', + min_withdrawal: '10', + phone: [{ phone_number: '+1234567822' }], + text: 'Payment Agent of CR90000100 (Created from Script)', + url: [{ url: 'http://www.MyPAMyAdventure1.com/' }, { url: 'http://www.MyPAMyAdventure2.com/' }], + value: 'CR90000100', + }, + ], + requestTryPaymentAgentWithdraw: jest.fn(), + verification_code: 'ABCdef', + }; + + it('should render the component', () => { + render(); + + expect(screen.getByText('Withdrawal amount')).toBeInTheDocument(); + expect(screen.getByText('USD')).toBeInTheDocument(); + expect(screen.getByLabelText('Enter amount')).toBeInTheDocument(); + expect(screen.getByText(/withdrawal limits:/i)).toBeInTheDocument(); + expect(screen.getByText('10.00 USD')).toBeInTheDocument(); + expect(screen.getByText('2,000.00 USD')).toBeInTheDocument(); + expect(screen.getByRole('button', { name: 'Continue' })).toBeInTheDocument(); + }); + + it('should show loader when is_loading equal to true or there is no payment agents', () => { + const { rerender } = render(); + + expect(screen.getByText('Loading')).toBeInTheDocument(); + + rerender(); + + expect(screen.getByText('Loading')).toBeInTheDocument(); + }); + + it('should show error message, if amount is not valid', async () => { + validNumber.mockReturnValue({ is_ok: false, message: 'error_message' }); + render(); + + const el_input_amount = screen.getByLabelText('Enter amount'); + const el_continue_btn = screen.getByRole('button', { name: 'Continue' }); + fireEvent.change(el_input_amount, { target: { value: '100.99999' } }); + fireEvent.click(el_continue_btn); + + await waitFor(() => { + expect(screen.getByText('error_message')).toBeInTheDocument(); + }); + validNumber.mockReturnValue({ is_ok: true, message: '' }); + }); + + it('should show Insufficient balance error', async () => { + render(); + + const el_input_amount = screen.getByLabelText('Enter amount'); + const el_continue_btn = screen.getByRole('button', { name: 'Continue' }); + fireEvent.change(el_input_amount, { target: { value: '2000' } }); + fireEvent.click(el_continue_btn); + + await waitFor(() => { + expect(screen.getByText('Insufficient balance.')).toBeInTheDocument(); + }); + }); + + it('should trigger requestTryPaymentAgentWithdraw, when all data are valid', async () => { + render(); + + const el_input_amount = screen.getByLabelText('Enter amount'); + const el_continue_btn = screen.getByRole('button', { name: 'Continue' }); + fireEvent.change(el_input_amount, { target: { value: '100' } }); + fireEvent.click(el_continue_btn); + + await waitFor(() => { + expect(props.requestTryPaymentAgentWithdraw).toHaveBeenCalledWith({ + loginid: 'CR90000102', + currency: 'USD', + amount: '100', + verification_code: 'ABCdef', + }); + }); + }); +}); diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-listed-withdraw-form/index.js b/packages/cashier/src/pages/payment-agent/payment-agent-listed-withdraw-form/index.js new file mode 100644 index 000000000000..2f9099cba0a4 --- /dev/null +++ b/packages/cashier/src/pages/payment-agent/payment-agent-listed-withdraw-form/index.js @@ -0,0 +1,3 @@ +import PaymentAgentListedWithdrawForm from './payment-agent-listed-withdraw-form.jsx'; + +export default PaymentAgentListedWithdrawForm; diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-listed-withdraw-form/payment-agent-listed-withdraw-form.jsx b/packages/cashier/src/pages/payment-agent/payment-agent-listed-withdraw-form/payment-agent-listed-withdraw-form.jsx new file mode 100644 index 000000000000..718e588d3ce9 --- /dev/null +++ b/packages/cashier/src/pages/payment-agent/payment-agent-listed-withdraw-form/payment-agent-listed-withdraw-form.jsx @@ -0,0 +1,196 @@ +import classNames from 'classnames'; +import PropTypes from 'prop-types'; +import React from 'react'; +import { Field, Formik, Form } from 'formik'; +import { Button, Input, Loading, Money, Text } from '@deriv/components'; +import { getDecimalPlaces, getCurrencyDisplayCode, validNumber } from '@deriv/shared'; +import { localize, Localize } from '@deriv/translations'; +import { connect } from 'Stores/connect'; +import ErrorDialog from 'Components/error-dialog'; +import './payment-agent-listed-withdraw-form.scss'; + +const validateWithdrawal = (values, { balance, currency, payment_agent = {} }) => { + const errors = {}; + + const { is_ok, message } = validNumber(values.amount, { + type: 'float', + decimals: getDecimalPlaces(currency), + ...(payment_agent.min_withdrawal && { + min: payment_agent.min_withdrawal, + max: payment_agent.max_withdrawal, + }), + }); + + if (!values.amount) { + errors.amount = localize('This field is required.'); + } else if (!is_ok) { + errors.amount = message; + } else if (+balance < +values.amount) { + errors.amount = localize('Insufficient balance.'); + } + + return errors; +}; + +const PaymentAgentListedWithdrawForm = ({ + balance, + currency, + error, + is_crypto, + is_loading, + onMount, + payment_agent, + payment_agent_list, + requestTryPaymentAgentWithdraw, + selected_bank, + verification_code, +}) => { + React.useEffect(() => { + onMount(); + }, [onMount]); + + const input_ref = React.useRef(null); + + React.useEffect(() => { + if (input_ref.current) { + input_ref.current.value = null; + } + }, [selected_bank]); + + const validateWithdrawalPassthrough = values => + validateWithdrawal(values, { + balance, + currency, + payment_agent: payment_agent_list.find(pa => pa.value === payment_agent.paymentagent_loginid), + }); + + const onWithdrawalPassthrough = async (values, actions) => { + const payment_agent_withdraw = await requestTryPaymentAgentWithdraw({ + loginid: payment_agent.paymentagent_loginid, + currency, + amount: values.amount, + verification_code, + }); + if (payment_agent_withdraw?.error) { + actions.setSubmitting(false); + } + }; + + if (is_loading || !payment_agent_list.length) { + return ; + } + + return ( +
+ + + + + {({ errors, isSubmitting, isValid, touched, values }) => { + const getHint = () => { + return ( + payment_agent_list.find(pa => pa.value === payment_agent.paymentagent_loginid) && ( + pa.value === payment_agent.paymentagent_loginid + ).min_withdrawal + } + currency={payment_agent.currency} + show_currency + />, + pa.value === payment_agent.paymentagent_loginid + ).max_withdrawal + } + currency={payment_agent.currency} + show_currency + />, + ]} + /> + ) + ); + }; + return ( +
+ + {({ field }) => ( + + {getCurrencyDisplayCode(currency)} + + } + /> + )} + + +
+ ); + }} +
+ +
+ ); +}; + +PaymentAgentListedWithdrawForm.propTypes = { + balance: PropTypes.string, + currency: PropTypes.string, + error: PropTypes.object, + is_crypto: PropTypes.bool, + is_loading: PropTypes.bool, + onMount: PropTypes.func, + payment_agent: PropTypes.object, + payment_agent_list: PropTypes.array, + requestTryPaymentAgentWithdraw: PropTypes.func, + selected_bank: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), + verification_code: PropTypes.string, +}; + +export default connect(({ client, modules }) => ({ + balance: client.balance, + currency: client.currency, + error: modules.cashier.payment_agent.error, + is_crypto: modules.cashier.general_store.is_crypto, + is_loading: modules.cashier.general_store.is_loading, + onMount: modules.cashier.payment_agent.onMountPaymentAgentWithdraw, + payment_agent_list: modules.cashier.payment_agent.agents, + requestTryPaymentAgentWithdraw: modules.cashier.payment_agent.requestTryPaymentAgentWithdraw, + selected_bank: modules.cashier.payment_agent.selected_bank, + verification_code: client.verification_code.payment_agent_withdraw, +}))(PaymentAgentListedWithdrawForm); diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-listed-withdraw-form/payment-agent-listed-withdraw-form.scss b/packages/cashier/src/pages/payment-agent/payment-agent-listed-withdraw-form/payment-agent-listed-withdraw-form.scss new file mode 100644 index 000000000000..137af5c29ecd --- /dev/null +++ b/packages/cashier/src/pages/payment-agent/payment-agent-listed-withdraw-form/payment-agent-listed-withdraw-form.scss @@ -0,0 +1,39 @@ +.payment-agent-listed-withdraw-form { + padding: 0 1.6rem; + margin-top: 3.2rem; + @include mobile { + padding: 0; + } + &__header { + margin-bottom: 1.6rem; + } + &__form { + display: flex; + @include mobile { + flex-direction: column; + } + .dc-input { + border-right: none; + border-top-right-radius: 0; + border-bottom-right-radius: 0; + margin-bottom: 1.8rem; + @include mobile { + border: 1px solid var(--border-normal); + border-top-right-radius: 0.4rem; + border-bottom-right-radius: 0.4rem; + &--crypto-hint { + margin-bottom: 2.8rem; + } + } + } + .dc-btn { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + @include mobile { + margin-top: 1.2rem; + border-top-left-radius: 0.4rem; + border-bottom-left-radius: 0.4rem; + } + } + } +} diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-receipt/__tests__/payment-agent-receipt.spec.js b/packages/cashier/src/pages/payment-agent/payment-agent-receipt/__tests__/payment-agent-receipt.spec.js index df2d1e23f8e6..f17b4bb8a559 100644 --- a/packages/cashier/src/pages/payment-agent/payment-agent-receipt/__tests__/payment-agent-receipt.spec.js +++ b/packages/cashier/src/pages/payment-agent/payment-agent-receipt/__tests__/payment-agent-receipt.spec.js @@ -3,7 +3,7 @@ import PaymentAgentReceipt from '../payment-agent-receipt'; import { fireEvent, render, screen } from '@testing-library/react'; import { createBrowserHistory } from 'history'; import { Router } from 'react-router'; -import { routes } from '@deriv/shared'; +import { isMobile, routes } from '@deriv/shared'; jest.mock('Stores/connect.js', () => ({ __esModule: true, @@ -11,72 +11,97 @@ jest.mock('Stores/connect.js', () => ({ connect: () => Component => Component, })); +jest.mock('@deriv/shared', () => ({ + ...jest.requireActual('@deriv/shared'), + isMobile: jest.fn(() => false), +})); + +jest.mock('Pages/payment-agent/payment-agent-disclaimer', () => () =>
PaymentAgentDisclaimer
); + describe('', () => { - const mockProps = () => ({ + const history = createBrowserHistory(); + const props = { currency: 'USD', + is_from_derivgo: false, loginid: 'CR90000170', receipt: { amount_transferred: '20.00', payment_agent_email: 'reshma+cr1@binary.com', payment_agent_id: 'CR90000089', payment_agent_name: 'Ms QA script reshmacrcdD', - payment_agent_phone: '+62417522087', - payment_agent_url: 'https://deriv.com/', + payment_agent_phone: [{ phone_number: '+62417522087' }], + payment_agent_url: [{ url: 'https://deriv.com/' }], }, resetPaymentAgent: jest.fn(), - }); + }; it('should show the proper text/messages', () => { - const history = createBrowserHistory(); - const props = mockProps(); render( ); - expect(screen.getByText('Your funds have been transferred')).toBeInTheDocument(); - expect(screen.getByText('20.00 USD')).toBeInTheDocument(); - expect(screen.getByText('USD')).toBeInTheDocument(); - expect(screen.getByText('CR90000170')).toBeInTheDocument(); - expect(screen.getByText('Ms QA script reshmacrcdD')).toBeInTheDocument(); - expect(screen.getByText('CR90000089')).toBeInTheDocument(); - expect(screen.getByText('IMPORTANT NOTICE TO RECEIVE YOUR FUNDS')).toBeInTheDocument(); + + const [view_transactions_btn, make_a_new_withdrawal_btn] = screen.getAllByRole('button'); + + expect(screen.getByText('You’ve transferred 20.00 USD')).toBeInTheDocument(); + expect(screen.getByText('Important notice to receive your funds')).toBeInTheDocument(); expect( - screen.getByText( - "You're not done yet. To receive the transferred funds, you must contact the payment agent for further instruction. A summary of this transaction has been emailed to you for your records." - ) + screen.getByText(/to receive your funds, contact the payment agent with the details below/i) ).toBeInTheDocument(); - expect(screen.getByText('Ms QA script reshmacrcdD agent contact details:')).toBeInTheDocument(); + expect(screen.getByText(/you can view the summary of this transaction in your email/i)).toBeInTheDocument(); + expect(screen.getByText('Ms QA script reshmacrcdD')).toBeInTheDocument(); + expect(screen.getByText("'s")).toBeInTheDocument(); + expect(screen.getByText('contact details')).toBeInTheDocument(); + expect(screen.getByText('+62417522087')).toBeInTheDocument(); expect(screen.getByText('reshma+cr1@binary.com')).toBeInTheDocument(); - expect(screen.getByText('View in statement')).toBeInTheDocument(); - expect(screen.getByText('Make a new transfer')).toBeInTheDocument(); + expect(view_transactions_btn).toBeInTheDocument(); + expect(make_a_new_withdrawal_btn).toBeInTheDocument(); }); - it('should redirect to "/reports/statement" when the "View in statement" button is clicked', () => { - const history = createBrowserHistory(); - const props = mockProps(); + it('should redirect to "/reports/statement" when the "View transactions" button is clicked', () => { render( ); - const view_in_statement_btn = screen.getByText('View in statement'); - fireEvent.click(view_in_statement_btn); + const [view_transactions_btn] = screen.getAllByRole('button'); + fireEvent.click(view_transactions_btn); expect(history.location.pathname).toBe(routes.statement); }); - it('should trigger onClick callback when the "Make a new transfer" button is clicked', () => { - const history = createBrowserHistory(); - const props = mockProps(); + it('should trigger onClick callback when the "Make a new withdrawal" button is clicked', () => { render( ); - const make_new_transfer_btn = screen.getByText('Make a new transfer'); - fireEvent.click(make_new_transfer_btn); + const [_, make_a_new_withdrawal_btn] = screen.getAllByRole('button'); + + fireEvent.click(make_a_new_withdrawal_btn); expect(props.resetPaymentAgent).toHaveBeenCalledTimes(1); }); + + it('should not show "View transactions" if is_from_derivgo equal to true', () => { + render( + + + + ); + + expect(screen.getAllByRole('button').length).toBe(1); + }); + + it('should show PaymentAgentDisclaimer in mobile view', () => { + isMobile.mockReturnValue(true); + render( + + + + ); + + expect(screen.getByText('PaymentAgentDisclaimer')).toBeInTheDocument(); + }); }); diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-receipt/payment-agent-receipt.jsx b/packages/cashier/src/pages/payment-agent/payment-agent-receipt/payment-agent-receipt.jsx index a399d21e9398..aca1bd0d2fab 100644 --- a/packages/cashier/src/pages/payment-agent/payment-agent-receipt/payment-agent-receipt.jsx +++ b/packages/cashier/src/pages/payment-agent/payment-agent-receipt/payment-agent-receipt.jsx @@ -1,11 +1,14 @@ +import classNames from 'classnames'; import PropTypes from 'prop-types'; import React from 'react'; import { withRouter } from 'react-router'; -import { Button, Icon, Text } from '@deriv/components'; -import { formatMoney, getCurrencyDisplayCode, isMobile, routes } from '@deriv/shared'; +import { Button, Text } from '@deriv/components'; +import { isMobile, routes } from '@deriv/shared'; import { localize, Localize } from '@deriv/translations'; import { connect } from 'Stores/connect'; -import PaymentAgentDetails from '../payment-agent-details'; +import PaymentAgentDetail from '../payment-agent-detail'; +import PaymentAgentDisclaimer from '../payment-agent-disclaimer'; +import SideNote from 'Components/side-note'; import './payment-agent-receipt.scss'; const openStatement = (history, resetPaymentAgent) => { @@ -13,93 +16,90 @@ const openStatement = (history, resetPaymentAgent) => { resetPaymentAgent(); }; -const PaymentAgentReceipt = ({ currency, history, is_from_derivgo, loginid, receipt, resetPaymentAgent }) => { +const PaymentAgentDetails = ({ payment_agent_email, payment_agent_phones, payment_agent_urls }) => { + return ( +
+ {payment_agent_phones && ( + + {payment_agent_phones.map(phone => phone.phone_number)} + + )} + {payment_agent_email && ( + + {payment_agent_email} + + )} + {payment_agent_urls && ( + + {payment_agent_urls.map(url => url.url)} + + )} +
+ ); +}; + +const PaymentAgentReceipt = ({ currency, history, is_from_derivgo, receipt, resetPaymentAgent }) => { React.useEffect(() => { return () => resetPaymentAgent(); }, [resetPaymentAgent]); - const currency_display_code = getCurrencyDisplayCode(currency); - return ( -
-
- - - - - {formatMoney(currency, receipt.amount_transferred, true)} {currency_display_code} - -
- - - {currency_display_code} - - - {loginid} - - - - - - - {receipt.payment_agent_name && ( - - {receipt.payment_agent_name} - - )} - - {receipt.payment_agent_id} - - -
-
- - +
+ + + + + + + + ] : []} + values={{ + text: receipt.payment_agent_name + ? localize('To receive your funds, contact the payment agent with the details below') + : localize('To receive your funds, contact the payment agent'), + }} + key={0} /> {receipt.payment_agent_name && (
- + , ]} values={{ payment_agent: receipt.payment_agent_name }} options={{ interpolation: { escapeValue: false } }} /> openStatement(history, resetPaymentAgent)} secondary large @@ -120,7 +120,7 @@ const PaymentAgentReceipt = ({ currency, history, is_from_derivgo, loginid, rece +
+ + ); + }} + + + + + +
+ ); +}; + +PaymentAgentUnlistedWithdrawForm.propTypes = { + balance: PropTypes.string, + currency: PropTypes.string, + error: PropTypes.object, + onMount: PropTypes.func, + requestTryPaymentAgentWithdraw: PropTypes.func, + verification_code: PropTypes.string, + setIsUnlistedWithdraw: PropTypes.func, +}; + +export default connect(({ client, modules }) => ({ + balance: client.balance, + currency: client.currency, + error: modules.cashier.payment_agent.error, + onMount: modules.cashier.payment_agent.onMountPaymentAgentWithdraw, + requestTryPaymentAgentWithdraw: modules.cashier.payment_agent.requestTryPaymentAgentWithdraw, + verification_code: client.verification_code.payment_agent_withdraw, +}))(PaymentAgentUnlistedWithdrawForm); diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-unlisted-withdraw-form/payment-agent-unlisted-withdraw-form.scss b/packages/cashier/src/pages/payment-agent/payment-agent-unlisted-withdraw-form/payment-agent-unlisted-withdraw-form.scss new file mode 100644 index 000000000000..e35a0d8f63a5 --- /dev/null +++ b/packages/cashier/src/pages/payment-agent/payment-agent-unlisted-withdraw-form/payment-agent-unlisted-withdraw-form.scss @@ -0,0 +1,58 @@ +.payment-agent-withdraw-form { + &__page-return { + display: flex; + column-gap: 0.8rem; + margin: 2.4rem 0; + align-items: center; + @include mobile { + margin: 0 0 1.6rem; + } + .dc-icon { + cursor: pointer; + } + .dc-text { + padding-top: 1px; + } + } + &__form { + margin-bottom: 3.6rem; + @include mobile { + margin-bottom: 1.6rem; + } + &-account-number { + margin-bottom: 4.4rem; + @include mobile { + margin: 1.6rem 0 5.2rem; + } + .dc-icon { + cursor: pointer; + } + } + &-amount { + display: flex; + @include mobile { + flex-direction: column; + } + .dc-input { + border-right: none; + border-top-right-radius: 0; + border-bottom-right-radius: 0; + margin-bottom: 0; + @include mobile { + border: 1px solid var(--border-normal); + border-top-right-radius: 0.4rem; + border-bottom-right-radius: 0.4rem; + } + } + .dc-btn { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + @include mobile { + margin-top: 4rem; + border-top-left-radius: 0.4rem; + border-bottom-left-radius: 0.4rem; + } + } + } + } +} diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-withdraw-confirm/__tests__/payment-agent-withdraw-confirm.spec.js b/packages/cashier/src/pages/payment-agent/payment-agent-withdraw-confirm/__tests__/payment-agent-withdraw-confirm.spec.js index c45ad9576429..0cd2103d2b0f 100644 --- a/packages/cashier/src/pages/payment-agent/payment-agent-withdraw-confirm/__tests__/payment-agent-withdraw-confirm.spec.js +++ b/packages/cashier/src/pages/payment-agent/payment-agent-withdraw-confirm/__tests__/payment-agent-withdraw-confirm.spec.js @@ -1,5 +1,6 @@ import React from 'react'; -import { cleanup, fireEvent, render, screen } from '@testing-library/react'; +import ReactDOM from 'react-dom'; +import { fireEvent, render, screen } from '@testing-library/react'; import PaymentAgentWithdrawConfirm from '../payment-agent-withdraw-confirm'; jest.mock('Stores/connect', () => ({ @@ -8,70 +9,96 @@ jest.mock('Stores/connect', () => ({ connect: () => Component => Component, })); -beforeAll(() => { - const portal_root = document.createElement('div'); - portal_root.setAttribute('id', 'modal_root'); - document.body.appendChild(portal_root); -}); - -afterEach(cleanup); - describe('', () => { - const amount = 10; - const currency = 'BTC'; - const description = 'testDescription'; - const error = { - code: 'testCode', - message: 'testMessage', - }; - const header = 'Please confirm the transaction details in order to complete the withdrawal:'; - const requestPaymentAgentWithdraw = jest.fn(); - const setIsTryWithdrawSuccessful = jest.fn(); - - it('component should be rendered', () => { - render(); + beforeAll(() => { + ReactDOM.createPortal = jest.fn(component => { + return component; + }); + }); - expect(screen.getByTestId('dt_cashier_wrapper_transfer_confirm')).toBeInTheDocument(); + afterAll(() => { + ReactDOM.createPortal.mockClear(); }); - it('component should be rendered when has data', () => { - render(); + const props = { + amount: 20, + currency: 'USD', + client_loginid: 'CR90000100', + error: {}, + loginid: 'CR90000999', + payment_agent_name: 'Alicharger', + requestPaymentAgentWithdraw: jest.fn(), + setIsTryWithdrawSuccessful: jest.fn(), + verification_code: 'ABCdef', + }; - expect(screen.getByTestId('dt_transfer_confirm_row_0')).toBeInTheDocument(); + it('should show proper messages and buttons', () => { + render(); + + const [back_btn, transfer_now_btn] = screen.getAllByRole('button'); + + expect(screen.getByTestId('dt_red_warning_icon')).toBeInTheDocument(); + expect(screen.getByText('Funds transfer information')).toBeInTheDocument(); + expect(screen.getByText('From account number')).toBeInTheDocument(); + expect(screen.getByText('CR90000100')).toBeInTheDocument(); + expect(screen.getByText('To account number')).toBeInTheDocument(); + expect(screen.getByText('CR90000999')).toBeInTheDocument(); + expect(screen.getByText('Alicharger')).toBeInTheDocument(); + expect(screen.getByText('Amount')).toBeInTheDocument(); + expect(screen.getByText('20.00 USD')).toBeInTheDocument(); + expect(screen.getByRole('checkbox')).toBeInTheDocument(); + expect(back_btn).toBeInTheDocument(); + expect(transfer_now_btn).toBeInTheDocument(); }); - it('component should be rendered when has an error', () => { - render(); + it('should show error messages and button', () => { + render( + + ); - expect(screen.getByText('testMessage')).toBeInTheDocument(); + expect(screen.getByText('Cashier Error')).toBeInTheDocument(); + expect(screen.getByText('error_message')).toBeInTheDocument(); + expect(screen.getAllByRole('button')[2]).toBeInTheDocument(); }); - it('header should be rendered', () => { - render(); + it('should trigger setIsTryWithdrawSuccessful method when the client clicks on Back button', () => { + render(); + + const [back_btn, _] = screen.getAllByRole('button'); + fireEvent.click(back_btn); - expect(screen.getByText(header)).toBeInTheDocument(); + expect(props.setIsTryWithdrawSuccessful).toHaveBeenCalledWith(false); }); - it(`setIsTryWithdrawSuccessful func should be triggered when click on 'Back' button`, () => { - render(); + it('should enable Transfer now button when checkbox is checked', () => { + render(); - const btn = screen.getByText('Back'); - fireEvent.click(btn); - expect(setIsTryWithdrawSuccessful).toBeCalledTimes(1); + const el_checkbox = screen.getByRole('checkbox'); + const [_, transfer_now_btn] = screen.getAllByRole('button'); + fireEvent.click(el_checkbox); + + expect(transfer_now_btn).toBeEnabled(); }); - it(`requestPaymentAgentWithdraw func should be triggered when click on 'Confirm' button`, () => { - render( - - ); + it('should trigger requestPaymentAgentWithdraw method when the client clicks on Transfer now button', () => { + render(); + + const el_checkbox = screen.getByRole('checkbox'); + const [_, transfer_now_btn] = screen.getAllByRole('button'); + fireEvent.click(el_checkbox); + fireEvent.click(transfer_now_btn); - const btn = screen.getByText('Confirm'); - fireEvent.click(btn); - expect(requestPaymentAgentWithdraw).toBeCalledTimes(1); + expect(props.requestPaymentAgentWithdraw).toHaveBeenCalledWith({ + loginid: props.loginid, + currency: props.currency, + amount: props.amount, + verification_code: props.verification_code, + }); }); }); diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-withdraw-confirm/payment-agent-withdraw-confirm.jsx b/packages/cashier/src/pages/payment-agent/payment-agent-withdraw-confirm/payment-agent-withdraw-confirm.jsx index 0b24e04c34ba..796fb989e6ad 100644 --- a/packages/cashier/src/pages/payment-agent/payment-agent-withdraw-confirm/payment-agent-withdraw-confirm.jsx +++ b/packages/cashier/src/pages/payment-agent/payment-agent-withdraw-confirm/payment-agent-withdraw-confirm.jsx @@ -8,6 +8,7 @@ import TransferConfirm from 'Components/transfer-confirm'; const PaymentAgentWithdrawConfirm = ({ amount, currency, + client_loginid, error, loginid, payment_agent_name, @@ -17,7 +18,12 @@ const PaymentAgentWithdrawConfirm = ({ }) => ( , @@ -25,7 +31,7 @@ const PaymentAgentWithdrawConfirm = ({ }, ]} error={error} - header={localize('Please confirm the transaction details in order to complete the withdrawal:')} + is_payment_agent_withdraw onClickBack={() => { setIsTryWithdrawSuccessful(false); }} @@ -38,6 +44,7 @@ const PaymentAgentWithdrawConfirm = ({ PaymentAgentWithdrawConfirm.propTypes = { amount: PropTypes.number, currency: PropTypes.string, + client_loginid: PropTypes.string, error: PropTypes.object, loginid: PropTypes.string, payment_agent_name: PropTypes.string, @@ -46,9 +53,10 @@ PaymentAgentWithdrawConfirm.propTypes = { verification_code: PropTypes.string, }; -export default connect(({ modules }) => ({ +export default connect(({ client, modules }) => ({ amount: modules.cashier.payment_agent.confirm.amount, currency: modules.cashier.payment_agent.confirm.currency, + client_loginid: client.loginid, error: modules.cashier.payment_agent.error, loginid: modules.cashier.payment_agent.confirm.loginid, payment_agent_name: modules.cashier.payment_agent.confirm.payment_agent_name, diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-withdraw-form/__tests__/payment-agent-withdraw-form.spec.js b/packages/cashier/src/pages/payment-agent/payment-agent-withdraw-form/__tests__/payment-agent-withdraw-form.spec.js deleted file mode 100644 index 3a2827ab02a1..000000000000 --- a/packages/cashier/src/pages/payment-agent/payment-agent-withdraw-form/__tests__/payment-agent-withdraw-form.spec.js +++ /dev/null @@ -1,134 +0,0 @@ -import React from 'react'; -import { fireEvent, render, screen, waitFor } from '@testing-library/react'; -import PaymentAgentWithdrawForm from '../payment-agent-withdraw-form'; - -jest.mock('Stores/connect', () => ({ - __esModule: true, - default: 'mockedDefaultExport', - connect: () => Component => Component, -})); - -jest.mock('@deriv/shared/src/utils/validation/declarative-validation-rules', () => ({ - __esModule: true, - default: 'mockedDefaultExport', - validNumber: jest.fn(() => true), -})); - -describe('', () => { - const onMount = jest.fn(); - const resetPaymentAgent = jest.fn(); - const payment_agent_list = [ - { - currencies: 'USD', - deposit_commission: '0', - email: 'test@example.com', - further_information: 'Test Info', - max_withdrawal: '2000', - min_withdrawal: '10', - name: 'Payment Agent', - paymentagent_loginid: 'CR90000874', - summary: 'Test Summary', - supported_banks: null, - telephone: '+12345678', - url: 'http://www.MyPAMyAdventure.com/', - withdrawal_commission: '0', - }, - ]; - - beforeAll(() => { - const modal_root_el = document.createElement('div'); - modal_root_el.setAttribute('id', 'modal_root'); - document.body.appendChild(modal_root_el); - }); - - afterAll(() => { - document.body.removeChild(modal_root_el); - }); - - it('should render the component', () => { - const { container } = render( - - ); - - expect(container.firstChild).toHaveClass('payment-agent-withdraw-form__withdrawal'); - }); - - it('should show the withdrawal confirmation', () => { - const { container } = render( - - ); - - expect(container.firstChild).toHaveClass('cashier__wrapper--confirm'); - }); - - it('should show an error if amount is not provided', async () => { - render( - - ); - - const withdraw_button = screen.getByRole('button'); - fireEvent.click(withdraw_button); - - await waitFor(() => { - expect(screen.getByText('This field is required.')).toBeInTheDocument(); - }); - }); - - it('should not proceed if amount is greater than the withdrawal limit', async () => { - const { container } = render( - - ); - - const amount = container.querySelector('input[name=amount]'); - const withdraw_button = screen.getByRole('button'); - - fireEvent.change(amount, { target: { value: '2500' } }); - fireEvent.click(withdraw_button); - - await waitFor(() => { - expect(withdraw_button).toBeDisabled(); - }); - }); - - it('should not proceed if payment agent id is invalid', async () => { - const { container } = render( - - ); - - const payment_agent = container.querySelector('input[name=payment_agent]'); - const withdraw_button = screen.getByRole('button'); - - fireEvent.change(payment_agent, { target: { value: 'abc' } }); - fireEvent.click(withdraw_button); - - await waitFor(() => { - expect(withdraw_button).toBeDisabled(); - }); - }); -}); diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-withdraw-form/index.js b/packages/cashier/src/pages/payment-agent/payment-agent-withdraw-form/index.js deleted file mode 100644 index 1d1693b2e48a..000000000000 --- a/packages/cashier/src/pages/payment-agent/payment-agent-withdraw-form/index.js +++ /dev/null @@ -1,3 +0,0 @@ -import PaymentAgentWithdrawForm from './payment-agent-withdraw-form.jsx'; - -export default PaymentAgentWithdrawForm; diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-withdraw-form/payment-agent-withdraw-form.jsx b/packages/cashier/src/pages/payment-agent/payment-agent-withdraw-form/payment-agent-withdraw-form.jsx deleted file mode 100644 index dcca5f276844..000000000000 --- a/packages/cashier/src/pages/payment-agent/payment-agent-withdraw-form/payment-agent-withdraw-form.jsx +++ /dev/null @@ -1,365 +0,0 @@ -import classNames from 'classnames'; -import PropTypes from 'prop-types'; -import React from 'react'; -import { Field, Formik, Form } from 'formik'; -import { - Button, - DesktopWrapper, - Dropdown, - Input, - Loading, - MobileWrapper, - Money, - SelectNative, - Text, -} from '@deriv/components'; -import { getDecimalPlaces, getCurrencyDisplayCode, validNumber } from '@deriv/shared'; -import { localize, Localize } from '@deriv/translations'; -import { connect } from 'Stores/connect'; -import ErrorDialog from 'Components/error-dialog'; -import PaymentAgentWithdrawConfirm from '../payment-agent-withdraw-confirm'; -import PaymentAgentReceipt from '../payment-agent-receipt'; -import './payment-agent-withdraw-form.scss'; - -const validateWithdrawal = (values, { balance, currency, payment_agent = {} }) => { - const errors = {}; - - if ( - values.payment_method === 'payment_agent' && - (!values.payment_agent || !/^[A-Za-z]+[0-9]+$/.test(values.payment_agent)) - ) { - errors.payment_agent = localize('Please enter a valid payment agent ID.'); - } - - const { is_ok, message } = validNumber(values.amount, { - type: 'float', - decimals: getDecimalPlaces(currency), - ...(payment_agent.min_withdrawal && { - min: payment_agent.min_withdrawal, - max: payment_agent.max_withdrawal, - }), - }); - - if (!values.amount) { - errors.amount = localize('This field is required.'); - } else if (!is_ok) { - errors.amount = message; - } else if (+balance < +values.amount) { - errors.amount = localize('Insufficient balance.'); - } - - return errors; -}; - -// TODO: refactor this to use the main radio component for forms too if possible -const Radio = ({ children, field, props }) => ( -
- - -
-); - -const RadioDropDown = ({ field, values, ...props }) => ( - - - - - - {params => ( - - - { - params.form.setFieldValue('payment_agents', e.target.value); - params.form.setFieldValue('payment_method', props.id); - }} - /> - - - { - params.form.setFieldValue('payment_agents', e.target.value); - params.form.setFieldValue('payment_method', props.id); - }} - use_text={false} - /> - - - )} - - -); - -const RadioInput = ({ touched, errors, field, values, ...props }) => ( - - - - - - {params => ( - { - params.form.setFieldValue('payment_method', props.id); - }} - onBlur={params.field.onBlur} - /> - )} - - -); - -const PaymentAgentWithdrawForm = ({ - amount, - balance, - currency, - error, - is_loading, - is_try_withdraw_successful, - is_withdraw_successful, - onMount, - payment_agent_id, - payment_agent_list, - payment_agent_name, - requestTryPaymentAgentWithdraw, - resetPaymentAgent, - verification_code, -}) => { - React.useEffect(() => { - onMount(); - - return () => { - resetPaymentAgent(); - }; - }, [onMount, resetPaymentAgent]); - - const validateWithdrawalPassthrough = values => - validateWithdrawal(values, { - balance, - currency, - payment_agent: payment_agent_list.find(pa => pa.value === values[values.payment_method]), - }); - - const onWithdrawalPassthrough = async (values, actions) => { - const payment_agent_withdraw = await requestTryPaymentAgentWithdraw({ - loginid: values[values.payment_method], - currency, - amount: values.amount, - verification_code, - }); - if (payment_agent_withdraw?.error) { - actions.setSubmitting(false); - } - }; - - if (is_loading || !payment_agent_list.length) { - return ; - } - if (is_try_withdraw_successful) { - return ; - } - if (is_withdraw_successful) { - return ; - } - const should_fill_id = !payment_agent_name && payment_agent_id; - - return ( -
- - - - pa.text === payment_agent_name)?.value, - payment_method: should_fill_id ? 'payment_agent' : 'payment_agents', - }} - validate={validateWithdrawalPassthrough} - onSubmit={onWithdrawalPassthrough} - > - {({ errors, isSubmitting, isValid, values, touched }) => { - const getHint = () => { - const getHintText = payment_agent => { - return ( - payment_agent_list.find(pa => pa.value === payment_agent) && ( - pa.value === payment_agent) - .min_withdrawal - } - currency={currency} - />, - pa.value === payment_agent) - .max_withdrawal - } - currency={currency} - />, - ]} - /> - ) - ); - }; - switch (values.payment_method) { - case 'payment_agents': - return getHintText(values.payment_agents); - case 'payment_agent': - return getHintText(values.payment_agent); - default: - return <>; - } - }; - - return ( -
-
- - -
- - {({ field }) => ( - - {getCurrencyDisplayCode(currency)} - - } - autoComplete='off' - maxLength='30' - hint={getHint()} - /> - )} - -
- -
- - - ); - }} -
-
- ); -}; - -PaymentAgentWithdrawForm.propTypes = { - amount: PropTypes.string, - balance: PropTypes.string, - currency: PropTypes.string, - error: PropTypes.object, - error_message_withdraw: PropTypes.string, - is_loading: PropTypes.bool, - is_try_withdraw_successful: PropTypes.bool, - is_withdraw_successful: PropTypes.bool, - onMount: PropTypes.func, - payment_agent_id: PropTypes.string, - payment_agent_list: PropTypes.array, - payment_agent_name: PropTypes.string, - requestTryPaymentAgentWithdraw: PropTypes.func, - resetPaymentAgent: PropTypes.func, - verification_code: PropTypes.string, -}; - -export default connect(({ client, modules }) => ({ - amount: modules.cashier.payment_agent.confirm.amount, - balance: client.balance, - currency: client.currency, - error: modules.cashier.payment_agent.error, - is_loading: modules.cashier.general_store.is_loading, - is_try_withdraw_successful: modules.cashier.payment_agent.is_try_withdraw_successful, - is_withdraw_successful: modules.cashier.payment_agent.is_withdraw_successful, - onMount: modules.cashier.payment_agent.onMountPaymentAgentWithdraw, - payment_agent_id: modules.cashier.payment_agent.confirm.loginid, - payment_agent_list: modules.cashier.payment_agent.agents, - payment_agent_name: modules.cashier.payment_agent.confirm.payment_agent_name, - requestTryPaymentAgentWithdraw: modules.cashier.payment_agent.requestTryPaymentAgentWithdraw, - resetPaymentAgent: modules.cashier.payment_agent.resetPaymentAgent, -}))(PaymentAgentWithdrawForm); diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-withdraw-form/payment-agent-withdraw-form.scss b/packages/cashier/src/pages/payment-agent/payment-agent-withdraw-form/payment-agent-withdraw-form.scss deleted file mode 100644 index cfcd5710e7a2..000000000000 --- a/packages/cashier/src/pages/payment-agent/payment-agent-withdraw-form/payment-agent-withdraw-form.scss +++ /dev/null @@ -1,101 +0,0 @@ -.payment-agent-withdraw-form { - &__drop-down { - display: inline-block; - margin: 0; - line-height: 1.43; - padding-left: 1.6rem !important; - flex: 1; - @include mobile { - max-width: 72vw; - } - } - &__input { - margin-left: 1.6rem; - display: inline-block !important; - margin-bottom: 0 !important; - flex: 1; - } - &__withdrawal { - &-header { - margin: 3.2rem 0; - } - } - &__radio { - display: none; - - &-group { - display: block; - } - &-wrapper { - display: flex; - margin-bottom: 3.9rem; - } - &-circle { - border: 2px solid var(--text-less-prominent); - border-radius: 50%; - box-shadow: 0 0 1px 0 $color-white; - width: 16px; - height: 16px; - transition: all 0.3s ease-in-out; - margin-right: 8px; - align-self: center; - display: inline-flex; - - &--selected { - border-width: 4px; - border-color: var(--brand-red-coral); - } - } - } - @include mobile { - &__withdrawal { - display: flex; - justify-content: flex-start; - flex-direction: column; - align-items: center; - - form { - width: 100%; - margin-top: 3.2rem; - } - &-wrapper { - display: flex; - flex-direction: row; - align-items: center; - justify-content: center; - } - .payment-agent-withdraw-form__radio { - &-wrapper { - width: 100%; - position: relative; - - &:first-child { - margin-top: 2.4rem; - } - } - &-circle { - width: 16px; - height: 16px; - } - &-label:first-child { - flex: 1; - } - } - .cashier { - &__header { - display: none; - } - &__input { - width: 100%; - } - &__form-submit-button { - max-width: 10rem; - margin-left: auto; - } - } - .dc-select-native__placeholder { - background-color: var(--general-main-1); - } - } - } -} diff --git a/packages/cashier/src/pages/payment-agent/payment-agent.jsx b/packages/cashier/src/pages/payment-agent/payment-agent.jsx index 17a7bb36a8e8..81447ada7c00 100644 --- a/packages/cashier/src/pages/payment-agent/payment-agent.jsx +++ b/packages/cashier/src/pages/payment-agent/payment-agent.jsx @@ -15,6 +15,7 @@ const PaymentAgent = ({ payment_agent_active_tab_index, setActiveTab, setPaymentAgentActiveTabIndex, + setSideNotes, verification_code, }) => { const initial_active_index = @@ -40,7 +41,11 @@ const PaymentAgent = ({ return ; } return ( - + ); }; @@ -53,6 +58,7 @@ PaymentAgent.propTypes = { payment_agent_active_tab_index: PropTypes.number, setActiveTab: PropTypes.func, setPaymentAgentActiveTabIndex: PropTypes.func, + setSideNotes: PropTypes.func, verification_code: PropTypes.string, }; diff --git a/packages/cashier/src/stores/__tests__/payment-agent-store.spec.js b/packages/cashier/src/stores/__tests__/payment-agent-store.spec.js index 499788a6ade4..d09519fd7146 100644 --- a/packages/cashier/src/stores/__tests__/payment-agent-store.spec.js +++ b/packages/cashier/src/stores/__tests__/payment-agent-store.spec.js @@ -8,41 +8,63 @@ describe('PaymentAgentStore', () => { const mocked_payment_agent_list = { list: [ { - name: 'Payment Agent of CR90000000', - paymentagent_loginid: 'CR90000000', + currencies: 'USD', + deposit_commission: 0, + email: 'pa@example.com', + further_information: 'further information', max_withdrawal: '2000', min_withdrawal: '10', - email: 'pa@example.com', + name: 'Payment Agent of CR90000000', + paymentagent_loginid: 'CR90000000', phone_numbers: [{ phone_number: '+12345678' }], - urls: [{ url: 'http://www.pa.com' }], supported_payment_methods: [{ payment_method: 'Visa' }], + urls: [{ url: 'http://www.pa.com' }], + withdrawal_commission: 0, }, { - name: 'Payment Agent of CR90000002', - paymentagent_loginid: 'CR90000002', + currencies: 'USD', + deposit_commission: 0, + email: 'pa@example.com', + further_information: 'further information', max_withdrawal: '2000', min_withdrawal: '10', - email: 'pa@example.com', + name: 'Payment Agent of CR90000002', + paymentagent_loginid: 'CR90000002', phone_numbers: [{ phone_number: '+12345678' }], - urls: [{ url: 'http://www.pa.com' }], supported_payment_methods: [{ payment_method: 'Visa' }, { payment_method: 'Mastercard' }], + urls: [{ url: 'http://www.pa.com' }], + withdrawal_commission: 0, }, ], }; const mocked_payment_agents = [ { + currency: 'USD', + deposit_commission: 0, email: 'pa@example.com', - phones: [{ phone_number: '+12345678' }], + further_information: 'further information', + max_withdrawal: '2000', + min_withdrawal: '10', name: 'Payment Agent of CR90000000', + paymentagent_loginid: 'CR90000000', + phones: [{ phone_number: '+12345678' }], supported_banks: [{ payment_method: 'Visa' }], urls: [{ url: 'http://www.pa.com' }], + withdrawal_commission: 0, }, { + currency: 'USD', + deposit_commission: 0, email: 'pa@example.com', - phones: [{ phone_number: '+12345678' }], + further_information: 'further information', + max_withdrawal: '2000', + min_withdrawal: '10', name: 'Payment Agent of CR90000002', + paymentagent_loginid: 'CR90000002', + phones: [{ phone_number: '+12345678' }], supported_banks: [{ payment_method: 'Visa' }, { payment_method: 'Mastercard' }], urls: [{ url: 'http://www.pa.com' }], + withdrawal_commission: 0, }, ]; const mocked_withdrawal_request = { @@ -83,7 +105,9 @@ describe('PaymentAgentStore', () => { paymentagent_list: mocked_payment_agent_list, }) ), - paymentAgentWithdraw: jest.fn(() => Promise.resolve({ paymentagent_withdraw: '2' })), + paymentAgentWithdraw: jest.fn(() => + Promise.resolve({ paymentagent_withdraw: '2', paymentagent_name: 'name' }) + ), }, wait: () => Promise.resolve(), }; @@ -161,11 +185,18 @@ describe('PaymentAgentStore', () => { expect(payment_agent_store.list).toEqual( expect.arrayContaining([ { + currency: 'USD', + deposit_commission: 0, email: 'pa@example.com', - phones: [{ phone_number: '+12345678' }], + further_information: 'further information', + max_withdrawal: '2000', + min_withdrawal: '10', name: 'Payment Agent of CR90000000', + paymentagent_loginid: 'CR90000000', + phones: [{ phone_number: '+12345678' }], supported_banks: [{ payment_method: 'Visa' }], urls: [{ url: 'http://www.pa.com' }], + withdrawal_commission: 0, }, ]) ); @@ -180,7 +211,7 @@ describe('PaymentAgentStore', () => { const spySortSupportedBanks = jest.spyOn(payment_agent_store, 'sortSupportedBanks'); await payment_agent_store.setPaymentAgentList(); - expect(payment_agent_store.list).toEqual(mocked_payment_agents); + expect(payment_agent_store.list).toEqual(expect.arrayContaining(mocked_payment_agents)); expect(spySortSupportedBanks).toHaveBeenCalled(); }); @@ -190,16 +221,55 @@ describe('PaymentAgentStore', () => { expect(payment_agent_store.filtered_list).toEqual( expect.arrayContaining([ { + currency: 'USD', + deposit_commission: 0, email: 'pa@example.com', + further_information: 'further information', + max_withdrawal: '2000', + min_withdrawal: '10', + name: 'Payment Agent of CR90000002', + paymentagent_loginid: 'CR90000002', phones: [{ phone_number: '+12345678' }], + supported_banks: [{ payment_method: 'Visa' }, { payment_method: 'Mastercard' }], + urls: [{ url: 'http://www.pa.com' }], + withdrawal_commission: 0, + }, + ]) + ); + }); + + it('should filter payment agent list by search term', async () => { + payment_agent_store.setSearchTerm('CR90000002'); + await payment_agent_store.setPaymentAgentList(); + payment_agent_store.filterPaymentAgentList(); + expect(payment_agent_store.filtered_list.length).toBe(1); + expect(payment_agent_store.filtered_list).toEqual( + expect.arrayContaining([ + { + currency: 'USD', + deposit_commission: 0, + email: 'pa@example.com', + further_information: 'further information', + max_withdrawal: '2000', + min_withdrawal: '10', name: 'Payment Agent of CR90000002', + paymentagent_loginid: 'CR90000002', + phones: [{ phone_number: '+12345678' }], supported_banks: [{ payment_method: 'Visa' }, { payment_method: 'Mastercard' }], urls: [{ url: 'http://www.pa.com' }], + withdrawal_commission: 0, }, ]) ); }); + it('should set has_payment_agent_search_warning to true when there is no matches for the search term', async () => { + payment_agent_store.setSearchTerm('blabla'); + await payment_agent_store.setPaymentAgentList(); + payment_agent_store.filterPaymentAgentList(); + expect(payment_agent_store.filtered_list.length).toBe(0); + }); + it('should return empty filtered list of payment agent if there is no payment agent available when accessing from payment agent page', async () => { payment_agent_store.filterPaymentAgentList(); expect(payment_agent_store.filtered_list).toEqual([]); @@ -222,6 +292,21 @@ describe('PaymentAgentStore', () => { expect(payment_agent_store.is_withdraw).toBeFalsy(); }); + it('should set is_search_loading', () => { + payment_agent_store.setIsSearchLoading(true); + expect(payment_agent_store.is_search_loading).toBeTruthy(); + }); + + it('should set has_payment_agent_search_warning', () => { + payment_agent_store.setPaymentAgentSearchWarning(true); + expect(payment_agent_store.has_payment_agent_search_warning).toBeTruthy(); + }); + + it('should set search_term', () => { + payment_agent_store.setSearchTerm('Search term'); + expect(payment_agent_store.search_term).toBe('Search term'); + }); + it('should set is_try_withdraw_successful', () => { const spySetErrorMessage = jest.spyOn(payment_agent_store.error, 'setErrorMessage'); diff --git a/packages/cashier/src/stores/general-store.js b/packages/cashier/src/stores/general-store.js index a261a0d5bc80..0bbe2f7c12f8 100644 --- a/packages/cashier/src/stores/general-store.js +++ b/packages/cashier/src/stores/general-store.js @@ -297,8 +297,10 @@ export default class GeneralStore extends BaseStore { } // we need to see if client's country has PA // if yes, we can show the PA tab in cashier + this.setLoading(true); await payment_agent.setPaymentAgentList(); await payment_agent.filterPaymentAgentList(); + this.setLoading(false); if (!payment_agent_transfer.is_payment_agent) { payment_agent_transfer.checkIsPaymentAgent(); diff --git a/packages/cashier/src/stores/payment-agent-store.js b/packages/cashier/src/stores/payment-agent-store.js index 10d512a1188e..822454845cbd 100644 --- a/packages/cashier/src/stores/payment-agent-store.js +++ b/packages/cashier/src/stores/payment-agent-store.js @@ -1,5 +1,5 @@ import { action, computed, observable } from 'mobx'; -import { formatMoney, routes } from '@deriv/shared'; +import { formatMoney, routes, shuffleArray } from '@deriv/shared'; import Constants from 'Constants/constants'; import ErrorStore from './error-store'; import VerificationStore from './verification-store'; @@ -16,6 +16,7 @@ export default class PaymentAgentStore { @observable error = new ErrorStore(); @observable filtered_list = []; @observable is_name_selected = true; + @observable is_search_loading = false; @observable is_withdraw = false; @observable is_try_withdraw_successful = false; @observable is_withdraw_successful = false; @@ -26,6 +27,8 @@ export default class PaymentAgentStore { @observable verification = new VerificationStore({ root_store: this.root_store, WS: this.WS }); @observable active_tab_index = 0; @observable all_payment_agent_list = []; + @observable search_term = ''; + @observable has_payment_agent_search_warning = false; @action.bound setActiveTabIndex(index) { @@ -43,7 +46,7 @@ export default class PaymentAgentStore { @computed get is_payment_agent_visible() { - return !!(this.filtered_list.length || this.agents.length); + return !!(this.filtered_list.length || this.agents.length || this.has_payment_agent_search_warning); } @action.bound @@ -104,6 +107,7 @@ export default class PaymentAgentStore { @action.bound async setPaymentAgentList(pa_list) { + const { setLoading } = this.root_store.modules.cashier.general_store; const payment_agent_list = pa_list || (await this.getPaymentAgentList()); this.clearList(); this.clearSuppertedBanks(); @@ -111,16 +115,25 @@ export default class PaymentAgentStore { try { payment_agent_list.paymentagent_list?.list.forEach(payment_agent => { this.setList({ + currency: payment_agent.currencies, + deposit_commission: payment_agent.deposit_commission, email: payment_agent.email, - phones: payment_agent?.phone_numbers || payment_agent?.telephone, + further_information: payment_agent.further_information, + max_withdrawal: payment_agent.max_withdrawal, + min_withdrawal: payment_agent.min_withdrawal, name: payment_agent.name, + paymentagent_loginid: payment_agent.paymentagent_loginid, + phones: payment_agent?.phone_numbers || payment_agent?.telephone, supported_banks: payment_agent?.supported_payment_methods, urls: payment_agent?.urls || payment_agent?.url, + withdrawal_commission: payment_agent.withdrawal_commission, }); const supported_banks_array = payment_agent?.supported_payment_methods.map(bank => bank.payment_method); supported_banks_array.forEach(bank => this.addSupportedBank(bank)); }); + shuffleArray(this.list); } catch (e) { + setLoading(false); // eslint-disable-next-line no-console console.error(e); } @@ -130,15 +143,24 @@ export default class PaymentAgentStore { @action.bound filterPaymentAgentList(bank) { - if (bank) { - this.filtered_list = []; + this.setPaymentAgentSearchWarning(false); + const { common } = this.root_store; + + this.filtered_list = []; + + if (bank || this.selected_bank) { this.list.forEach(payment_agent => { const supported_banks = payment_agent?.supported_banks; if (supported_banks) { const is_string = typeof supported_banks === 'string'; const bank_index = is_string - ? supported_banks.toLowerCase().split(',').indexOf(bank) - : supported_banks.map(x => x.payment_method.toLowerCase()).indexOf(bank); + ? supported_banks + .toLowerCase() + .split(',') + .indexOf(bank || this.selected_bank) + : supported_banks + .map(supported_bank => supported_bank.payment_method.toLowerCase()) + .indexOf(bank || this.selected_bank); if (bank_index !== -1) this.filtered_list.push(payment_agent); } @@ -146,6 +168,36 @@ export default class PaymentAgentStore { } else { this.filtered_list = this.list; } + if (this.search_term) { + this.filtered_list = this.filtered_list.filter(payment_agent => { + return payment_agent.name.toLocaleLowerCase().includes(this.search_term.toLocaleLowerCase()); + }); + + if (this.filtered_list.length === 0) { + this.setPaymentAgentSearchWarning(true); + } + } + + this.setIsSearchLoading(false); + + if (!this.is_payment_agent_visible && window.location.pathname.endsWith(routes.cashier_pa)) { + common.routeTo(routes.cashier_deposit); + } + } + + @action.bound + setSearchTerm(search_term) { + this.search_term = search_term; + } + + @action.bound + setIsSearchLoading(value) { + this.is_search_loading = value; + } + + @action.bound + setPaymentAgentSearchWarning(value) { + this.has_payment_agent_search_warning = value; } @action.bound @@ -257,7 +309,7 @@ export default class PaymentAgentStore { amount, currency, loginid, - ...(selected_agent && { payment_agent_name: selected_agent.text }), + payment_agent_name: selected_agent?.text || payment_agent_withdraw.paymentagent_name, }); this.setIsTryWithdrawSuccessful(true); } else { @@ -269,6 +321,8 @@ export default class PaymentAgentStore { resetPaymentAgent = () => { this.error.setErrorMessage(''); this.setIsWithdraw(false); + this.setIsWithdrawSuccessful(false); + this.setIsTryWithdrawSuccessful(false); this.verification.clearVerification(); this.setActiveTabIndex(0); }; @@ -320,9 +374,6 @@ export default class PaymentAgentStore { payment_agent_phone: selected_agent.phone, payment_agent_url: selected_agent.url, }), - ...(!selected_agent && { - payment_agent_id: loginid, - }), }); this.setIsWithdrawSuccessful(true); this.setIsTryWithdrawSuccessful(false); diff --git a/packages/cfd/src/Containers/__tests__/cfd-password-manager-modal.spec.js b/packages/cfd/src/Containers/__tests__/cfd-password-manager-modal.spec.js index 0135da9a2abb..c88da28fe9db 100644 --- a/packages/cfd/src/Containers/__tests__/cfd-password-manager-modal.spec.js +++ b/packages/cfd/src/Containers/__tests__/cfd-password-manager-modal.spec.js @@ -50,8 +50,8 @@ const mock_errors = { recent_years_are_easy: () => localize('Recent years are easy to guess'), }; -jest.mock('@deriv/shared/src/utils/validation/declarative-validation-rules.js', () => { - const original_module = jest.requireActual('@deriv/shared/src/utils/validation/declarative-validation-rules.js'); +jest.mock('@deriv/shared/src/utils/validation/declarative-validation-rules.ts', () => { + const original_module = jest.requireActual('@deriv/shared/src/utils/validation/declarative-validation-rules.ts'); return { ...original_module, validPassword: jest.fn(() => { diff --git a/packages/cfd/src/Containers/__tests__/investor-password-manager.spec.js b/packages/cfd/src/Containers/__tests__/investor-password-manager.spec.js index 91e85c2da94a..317beb4e9b7a 100644 --- a/packages/cfd/src/Containers/__tests__/investor-password-manager.spec.js +++ b/packages/cfd/src/Containers/__tests__/investor-password-manager.spec.js @@ -21,7 +21,7 @@ const mock_errors = { recent_years_are_easy: () => localize('Recent years are easy to guess'), }; -jest.mock('@deriv/shared/src/utils/validation/declarative-validation-rules.js', () => ({ +jest.mock('@deriv/shared/src/utils/validation/declarative-validation-rules.ts', () => ({ getErrorMessages: jest.fn(() => ({ password_warnings: mock_errors, })), diff --git a/packages/components/src/components/dropdown/dropdown.jsx b/packages/components/src/components/dropdown/dropdown.jsx index 8c7a3ccb3ae5..3cd81bbffbe1 100644 --- a/packages/components/src/components/dropdown/dropdown.jsx +++ b/packages/components/src/components/dropdown/dropdown.jsx @@ -369,6 +369,7 @@ const Dropdown = ({ className={classNames('dc-dropdown__container', { 'dc-dropdown__container--suffix-icon': suffix_icon, })} + data-testid='dt_dropdown_container' > {label && ( \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-air-tm-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-air-tm-dark.svg index b298351d0bfa..5741fb626161 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-air-tm-dark.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-air-tm-dark.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-air-tm-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-air-tm-light.svg index e4455a40240c..e9605a58d567 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-air-tm-light.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-air-tm-light.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-ali-pay-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-ali-pay-dark.svg index 7c4ffd012835..1f0156e9274d 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-ali-pay-dark.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-ali-pay-dark.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-ali-pay-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-ali-pay-light.svg index 7dad39f57492..4fcbc9b69e33 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-ali-pay-light.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-ali-pay-light.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-alipay-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-alipay-dark.svg new file mode 100644 index 000000000000..7698acdd7533 --- /dev/null +++ b/packages/components/src/components/icon/cashier/ic-cashier-alipay-dark.svg @@ -0,0 +1 @@ + diff --git a/packages/components/src/components/icon/cashier/ic-cashier-alipay-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-alipay-light.svg new file mode 100644 index 000000000000..a500c8f4f76b --- /dev/null +++ b/packages/components/src/components/icon/cashier/ic-cashier-alipay-light.svg @@ -0,0 +1 @@ + diff --git a/packages/components/src/components/icon/cashier/ic-cashier-apple-pay.svg b/packages/components/src/components/icon/cashier/ic-cashier-apple-pay.svg index 057ea70e57f1..1d15d304c773 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-apple-pay.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-apple-pay.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-authenticate.svg b/packages/components/src/components/icon/cashier/ic-cashier-authenticate.svg index be3c6d4fa2a7..1a385e50f5cc 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-authenticate.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-authenticate.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-bank-bri.svg b/packages/components/src/components/icon/cashier/ic-cashier-bank-bri.svg index 029ea2bcdb7e..2434edd5d0d5 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-bank-bri.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-bank-bri.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-bank-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-bank-dark.svg new file mode 100644 index 000000000000..5ea8fbaf3fad --- /dev/null +++ b/packages/components/src/components/icon/cashier/ic-cashier-bank-dark.svg @@ -0,0 +1 @@ + diff --git a/packages/components/src/components/icon/cashier/ic-cashier-bank-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-bank-light.svg new file mode 100644 index 000000000000..66b90e83970a --- /dev/null +++ b/packages/components/src/components/icon/cashier/ic-cashier-bank-light.svg @@ -0,0 +1 @@ + diff --git a/packages/components/src/components/icon/cashier/ic-cashier-bank-transfer.svg b/packages/components/src/components/icon/cashier/ic-cashier-bank-transfer.svg index 81cd4eae8e46..0003349f8ca5 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-bank-transfer.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-bank-transfer.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-bankbri-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-bankbri-dark.svg new file mode 100644 index 000000000000..ca17f4c6b80f --- /dev/null +++ b/packages/components/src/components/icon/cashier/ic-cashier-bankbri-dark.svg @@ -0,0 +1 @@ + diff --git a/packages/components/src/components/icon/cashier/ic-cashier-bankbri-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-bankbri-light.svg new file mode 100644 index 000000000000..bc462cf877bc --- /dev/null +++ b/packages/components/src/components/icon/cashier/ic-cashier-bankbri-light.svg @@ -0,0 +1 @@ + diff --git a/packages/components/src/components/icon/cashier/ic-cashier-banxa-small-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-banxa-small-dark.svg index da630ee7d4b6..58e9eeed4a09 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-banxa-small-dark.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-banxa-small-dark.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-banxa-small-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-banxa-small-light.svg index 13e7a25a2ac3..d12673bc0edf 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-banxa-small-light.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-banxa-small-light.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-bca-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-bca-dark.svg new file mode 100644 index 000000000000..c365fd03d740 --- /dev/null +++ b/packages/components/src/components/icon/cashier/ic-cashier-bca-dark.svg @@ -0,0 +1 @@ + diff --git a/packages/components/src/components/icon/cashier/ic-cashier-bca-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-bca-light.svg new file mode 100644 index 000000000000..f3d608fe7d1f --- /dev/null +++ b/packages/components/src/components/icon/cashier/ic-cashier-bca-light.svg @@ -0,0 +1 @@ + diff --git a/packages/components/src/components/icon/cashier/ic-cashier-bca.svg b/packages/components/src/components/icon/cashier/ic-cashier-bca.svg index a6f433908650..2426d054707a 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-bca.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-bca.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-bch-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-bch-dark.svg new file mode 100644 index 000000000000..6b11acf6daac --- /dev/null +++ b/packages/components/src/components/icon/cashier/ic-cashier-bch-dark.svg @@ -0,0 +1 @@ + diff --git a/packages/components/src/components/icon/cashier/ic-cashier-bch-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-bch-light.svg new file mode 100644 index 000000000000..ab8433fe6356 --- /dev/null +++ b/packages/components/src/components/icon/cashier/ic-cashier-bch-light.svg @@ -0,0 +1 @@ + diff --git a/packages/components/src/components/icon/cashier/ic-cashier-bitcoin-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-bitcoin-dark.svg index 437b9b204383..71303762c700 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-bitcoin-dark.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-bitcoin-dark.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-bitcoin-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-bitcoin-light.svg index 0638cc117756..477494d78b72 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-bitcoin-light.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-bitcoin-light.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-blueshyft-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-blueshyft-dark.svg index 3318d5ff38c1..a65112ed56a7 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-blueshyft-dark.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-blueshyft-dark.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-blueshyft-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-blueshyft-light.svg index d2e471c50a3e..50801031aa48 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-blueshyft-light.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-blueshyft-light.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-bni-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-bni-dark.svg new file mode 100644 index 000000000000..4e75e07b48ba --- /dev/null +++ b/packages/components/src/components/icon/cashier/ic-cashier-bni-dark.svg @@ -0,0 +1 @@ + diff --git a/packages/components/src/components/icon/cashier/ic-cashier-bni-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-bni-light.svg new file mode 100644 index 000000000000..4e75e07b48ba --- /dev/null +++ b/packages/components/src/components/icon/cashier/ic-cashier-bni-light.svg @@ -0,0 +1 @@ + diff --git a/packages/components/src/components/icon/cashier/ic-cashier-card-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-card-dark.svg new file mode 100644 index 000000000000..3269fbe68a70 --- /dev/null +++ b/packages/components/src/components/icon/cashier/ic-cashier-card-dark.svg @@ -0,0 +1 @@ + diff --git a/packages/components/src/components/icon/cashier/ic-cashier-card-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-card-light.svg new file mode 100644 index 000000000000..13a1665c78e8 --- /dev/null +++ b/packages/components/src/components/icon/cashier/ic-cashier-card-light.svg @@ -0,0 +1 @@ + diff --git a/packages/components/src/components/icon/cashier/ic-cashier-cebuana-lhuillier-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-cebuana-lhuillier-dark.svg index e7b15303c469..9b94fdcbd3a6 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-cebuana-lhuillier-dark.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-cebuana-lhuillier-dark.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-cebuana-lhuillier-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-cebuana-lhuillier-light.svg index 2b22a038b0ba..b7ba1a295c3f 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-cebuana-lhuillier-light.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-cebuana-lhuillier-light.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-changelly-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-changelly-dark.svg index c9755b7945d5..ad7c52fdfd95 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-changelly-dark.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-changelly-dark.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-changelly-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-changelly-light.svg index f4654fd10cf3..b4bd5bc17a18 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-changelly-light.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-changelly-light.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-changelly-row-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-changelly-row-dark.svg index 23f322779637..08f9825a33ac 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-changelly-row-dark.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-changelly-row-dark.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-changelly-row-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-changelly-row-light.svg index 07ce381b1332..ecd5a8786560 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-changelly-row-light.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-changelly-row-light.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-changelly.svg b/packages/components/src/components/icon/cashier/ic-cashier-changelly.svg index d0e18ae8cd0f..a252cd55ef56 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-changelly.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-changelly.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-cimb-niaga.svg b/packages/components/src/components/icon/cashier/ic-cashier-cimb-niaga.svg index 39ba7ede26bd..afeaaf880726 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-cimb-niaga.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-cimb-niaga.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-cimbniaga-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-cimbniaga-dark.svg new file mode 100644 index 000000000000..f37381a12470 --- /dev/null +++ b/packages/components/src/components/icon/cashier/ic-cashier-cimbniaga-dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-cimbniaga-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-cimbniaga-light.svg new file mode 100644 index 000000000000..f9daa4f6b49d --- /dev/null +++ b/packages/components/src/components/icon/cashier/ic-cashier-cimbniaga-light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-clipboard.svg b/packages/components/src/components/icon/cashier/ic-cashier-clipboard.svg index 83a945432728..f2a8a19b992c 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-clipboard.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-clipboard.svg @@ -1 +1 @@ - + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-commission-deposit.svg b/packages/components/src/components/icon/cashier/ic-cashier-commission-deposit.svg new file mode 100644 index 000000000000..c0416cbe1b04 --- /dev/null +++ b/packages/components/src/components/icon/cashier/ic-cashier-commission-deposit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-commission-withdrawal.svg b/packages/components/src/components/icon/cashier/ic-cashier-commission-withdrawal.svg new file mode 100644 index 000000000000..02923176cf84 --- /dev/null +++ b/packages/components/src/components/icon/cashier/ic-cashier-commission-withdrawal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-crypto-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-crypto-dark.svg new file mode 100644 index 000000000000..0471e113f8ca --- /dev/null +++ b/packages/components/src/components/icon/cashier/ic-cashier-crypto-dark.svg @@ -0,0 +1 @@ + diff --git a/packages/components/src/components/icon/cashier/ic-cashier-crypto-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-crypto-light.svg new file mode 100644 index 000000000000..0916c03ef020 --- /dev/null +++ b/packages/components/src/components/icon/cashier/ic-cashier-crypto-light.svg @@ -0,0 +1 @@ + diff --git a/packages/components/src/components/icon/cashier/ic-cashier-dai-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-dai-dark.svg new file mode 100644 index 000000000000..c5dbe25d3738 --- /dev/null +++ b/packages/components/src/components/icon/cashier/ic-cashier-dai-dark.svg @@ -0,0 +1 @@ + diff --git a/packages/components/src/components/icon/cashier/ic-cashier-dai-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-dai-light.svg new file mode 100644 index 000000000000..c5dbe25d3738 --- /dev/null +++ b/packages/components/src/components/icon/cashier/ic-cashier-dai-light.svg @@ -0,0 +1 @@ + diff --git a/packages/components/src/components/icon/cashier/ic-cashier-deposit-lock.svg b/packages/components/src/components/icon/cashier/ic-cashier-deposit-lock.svg index 67d5451e6d4c..e81ad8eab72c 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-deposit-lock.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-deposit-lock.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-deposit.svg b/packages/components/src/components/icon/cashier/ic-cashier-deposit.svg index a3a094b4fba1..962e0d87123d 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-deposit.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-deposit.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-diamondbank-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-diamondbank-dark.svg new file mode 100644 index 000000000000..eae988c45ad9 --- /dev/null +++ b/packages/components/src/components/icon/cashier/ic-cashier-diamondbank-dark.svg @@ -0,0 +1 @@ + diff --git a/packages/components/src/components/icon/cashier/ic-cashier-diamondbank-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-diamondbank-light.svg new file mode 100644 index 000000000000..494ca15c5aa2 --- /dev/null +++ b/packages/components/src/components/icon/cashier/ic-cashier-diamondbank-light.svg @@ -0,0 +1 @@ + diff --git a/packages/components/src/components/icon/cashier/ic-cashier-directa-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-directa-dark.svg index 80bb25d58acc..3875967790fe 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-directa-dark.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-directa-dark.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-directa-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-directa-light.svg index b775ddb5c321..c6065d0d9525 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-directa-light.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-directa-light.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-dp2p-blocked.svg b/packages/components/src/components/icon/cashier/ic-cashier-dp2p-blocked.svg index b11f7b96567a..7ba472bbeb2e 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-dp2p-blocked.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-dp2p-blocked.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-dp2p.svg b/packages/components/src/components/icon/cashier/ic-cashier-dp2p.svg index 8038a5a45499..8469ae66c7f8 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-dp2p.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-dp2p.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-dragon-phoenix.svg b/packages/components/src/components/icon/cashier/ic-cashier-dragon-phoenix.svg index ebe6b9000e28..452057686dd0 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-dragon-phoenix.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-dragon-phoenix.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-error.svg b/packages/components/src/components/icon/cashier/ic-cashier-error.svg index 5ec1a354de64..58ec435176b4 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-error.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-error.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-eth-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-eth-dark.svg new file mode 100644 index 000000000000..2daba18a8ee3 --- /dev/null +++ b/packages/components/src/components/icon/cashier/ic-cashier-eth-dark.svg @@ -0,0 +1 @@ + diff --git a/packages/components/src/components/icon/cashier/ic-cashier-eth-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-eth-light.svg new file mode 100644 index 000000000000..f6a839bc2258 --- /dev/null +++ b/packages/components/src/components/icon/cashier/ic-cashier-eth-light.svg @@ -0,0 +1 @@ + diff --git a/packages/components/src/components/icon/cashier/ic-cashier-ethereum-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-ethereum-dark.svg index 9171b77a874d..86b81b19097e 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-ethereum-dark.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-ethereum-dark.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-ethereum-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-ethereum-light.svg index 1859a456954b..f3129544d6c7 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-ethereum-light.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-ethereum-light.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-ewallet-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-ewallet-dark.svg index 5fa3b345252d..f63e775af3d5 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-ewallet-dark.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-ewallet-dark.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-ewallet-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-ewallet-light.svg index 417f76c5ed89..6d9ab8c16cfb 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-ewallet-light.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-ewallet-light.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-firstbank-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-firstbank-dark.svg new file mode 100644 index 000000000000..687e9b35fe1e --- /dev/null +++ b/packages/components/src/components/icon/cashier/ic-cashier-firstbank-dark.svg @@ -0,0 +1 @@ + diff --git a/packages/components/src/components/icon/cashier/ic-cashier-firstbank-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-firstbank-light.svg new file mode 100644 index 000000000000..2866c744687c --- /dev/null +++ b/packages/components/src/components/icon/cashier/ic-cashier-firstbank-light.svg @@ -0,0 +1 @@ + diff --git a/packages/components/src/components/icon/cashier/ic-cashier-flexepin-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-flexepin-dark.svg index c89e5420726b..a8a6d41c0e25 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-flexepin-dark.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-flexepin-dark.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-flexepin-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-flexepin-light.svg index 07fc203453cc..bace95f092b6 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-flexepin-light.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-flexepin-light.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-fps-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-fps-dark.svg index fd8beb71f91e..b1e91f5f75b7 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-fps-dark.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-fps-dark.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-fps-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-fps-light.svg index b16eee381e8d..3572805c8338 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-fps-light.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-fps-light.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-funds-protection.svg b/packages/components/src/components/icon/cashier/ic-cashier-funds-protection.svg index d2ad85427f5e..26cb74c2408f 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-funds-protection.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-funds-protection.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-go-pay-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-go-pay-dark.svg index eda8598c6000..dc19f4402e1d 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-go-pay-dark.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-go-pay-dark.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-go-pay-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-go-pay-light.svg index 7aff6effa7d1..d40534418229 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-go-pay-light.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-go-pay-light.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-gtbank-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-gtbank-dark.svg new file mode 100644 index 000000000000..54766f024fe2 --- /dev/null +++ b/packages/components/src/components/icon/cashier/ic-cashier-gtbank-dark.svg @@ -0,0 +1 @@ + diff --git a/packages/components/src/components/icon/cashier/ic-cashier-gtbank-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-gtbank-light.svg new file mode 100644 index 000000000000..54766f024fe2 --- /dev/null +++ b/packages/components/src/components/icon/cashier/ic-cashier-gtbank-light.svg @@ -0,0 +1 @@ + diff --git a/packages/components/src/components/icon/cashier/ic-cashier-help-to-pay-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-help-to-pay-dark.svg index 65dad2a99f06..3ca64a196786 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-help-to-pay-dark.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-help-to-pay-dark.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-help-to-pay-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-help-to-pay-light.svg index fc1397839303..40e9137495aa 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-help-to-pay-light.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-help-to-pay-light.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-icbc-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-icbc-dark.svg new file mode 100644 index 000000000000..1acf865a8a98 --- /dev/null +++ b/packages/components/src/components/icon/cashier/ic-cashier-icbc-dark.svg @@ -0,0 +1 @@ + diff --git a/packages/components/src/components/icon/cashier/ic-cashier-icbc-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-icbc-light.svg new file mode 100644 index 000000000000..aaed5adcd845 --- /dev/null +++ b/packages/components/src/components/icon/cashier/ic-cashier-icbc-light.svg @@ -0,0 +1 @@ + diff --git a/packages/components/src/components/icon/cashier/ic-cashier-ideal.svg b/packages/components/src/components/icon/cashier/ic-cashier-ideal.svg index c95d88b5b4e4..64c99d5c5119 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-ideal.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-ideal.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-insta-pay-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-insta-pay-dark.svg index 599c7c3bbb7c..d7eb7a30ac32 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-insta-pay-dark.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-insta-pay-dark.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-insta-pay-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-insta-pay-light.svg index cd8d866ca784..e3d5f167f67d 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-insta-pay-light.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-insta-pay-light.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-instant-bank-transfer-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-instant-bank-transfer-dark.svg index b4ebc10b1bab..92c85daf4921 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-instant-bank-transfer-dark.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-instant-bank-transfer-dark.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-instant-bank-transfer-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-instant-bank-transfer-light.svg index f78751bd9fde..382c150e13a4 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-instant-bank-transfer-light.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-instant-bank-transfer-light.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-interac-etransfer.svg b/packages/components/src/components/icon/cashier/ic-cashier-interac-etransfer.svg index 70f34c61e65b..1dce7bf8ca53 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-interac-etransfer.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-interac-etransfer.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-libertyreserve-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-libertyreserve-dark.svg new file mode 100644 index 000000000000..d1e8705c1248 --- /dev/null +++ b/packages/components/src/components/icon/cashier/ic-cashier-libertyreserve-dark.svg @@ -0,0 +1 @@ + diff --git a/packages/components/src/components/icon/cashier/ic-cashier-libertyreserve-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-libertyreserve-light.svg new file mode 100644 index 000000000000..ab94cc362f39 --- /dev/null +++ b/packages/components/src/components/icon/cashier/ic-cashier-libertyreserve-light.svg @@ -0,0 +1 @@ + diff --git a/packages/components/src/components/icon/cashier/ic-cashier-lite-coin-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-lite-coin-dark.svg index 34c3f44385d4..88f638285b24 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-lite-coin-dark.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-lite-coin-dark.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-lite-coin-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-lite-coin-light.svg index 1ae5764d94fb..28459a23956f 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-lite-coin-light.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-lite-coin-light.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-local-payment-methods-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-local-payment-methods-dark.svg index f859e3c172e6..972017b30629 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-local-payment-methods-dark.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-local-payment-methods-dark.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-local-payment-methods-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-local-payment-methods-light.svg index b2cf234d68b0..ccd0e0574562 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-local-payment-methods-light.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-local-payment-methods-light.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-locked.svg b/packages/components/src/components/icon/cashier/ic-cashier-locked.svg index 6bd03c1fe908..d5b7037fc700 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-locked.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-locked.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-maestro.svg b/packages/components/src/components/icon/cashier/ic-cashier-maestro.svg index c0171641ef24..b62bd83482ea 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-maestro.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-maestro.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-mandiri-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-mandiri-dark.svg new file mode 100644 index 000000000000..a6ec84fe2ab0 --- /dev/null +++ b/packages/components/src/components/icon/cashier/ic-cashier-mandiri-dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-mandiri-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-mandiri-light.svg new file mode 100644 index 000000000000..7372a3009352 --- /dev/null +++ b/packages/components/src/components/icon/cashier/ic-cashier-mandiri-light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-mandiri-pay.svg b/packages/components/src/components/icon/cashier/ic-cashier-mandiri-pay.svg index b727c991877f..da1328b12445 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-mandiri-pay.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-mandiri-pay.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-mandirisyariah-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-mandirisyariah-dark.svg new file mode 100644 index 000000000000..68f2d99ec8c4 --- /dev/null +++ b/packages/components/src/components/icon/cashier/ic-cashier-mandirisyariah-dark.svg @@ -0,0 +1 @@ + diff --git a/packages/components/src/components/icon/cashier/ic-cashier-mandirisyariah-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-mandirisyariah-light.svg new file mode 100644 index 000000000000..91ba36d41e8f --- /dev/null +++ b/packages/components/src/components/icon/cashier/ic-cashier-mandirisyariah-light.svg @@ -0,0 +1 @@ + diff --git a/packages/components/src/components/icon/cashier/ic-cashier-mastercard-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-mastercard-dark.svg index 9e8fd41358fd..ae3c650e1cd9 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-mastercard-dark.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-mastercard-dark.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-mastercard-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-mastercard-light.svg index f63899937b98..8cac3b9bad11 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-mastercard-light.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-mastercard-light.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-maximum-withdrawal.svg b/packages/components/src/components/icon/cashier/ic-cashier-maximum-withdrawal.svg new file mode 100644 index 000000000000..24255b55627e --- /dev/null +++ b/packages/components/src/components/icon/cashier/ic-cashier-maximum-withdrawal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-minimum-withdrawal.svg b/packages/components/src/components/icon/cashier/ic-cashier-minimum-withdrawal.svg new file mode 100644 index 000000000000..b90ed1885e39 --- /dev/null +++ b/packages/components/src/components/icon/cashier/ic-cashier-minimum-withdrawal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-minus.svg b/packages/components/src/components/icon/cashier/ic-cashier-minus.svg index 65c9c8a4f0f9..11930ab4c68d 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-minus.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-minus.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-moneygram-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-moneygram-dark.svg new file mode 100644 index 000000000000..37322db7fb01 --- /dev/null +++ b/packages/components/src/components/icon/cashier/ic-cashier-moneygram-dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-moneygram-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-moneygram-light.svg new file mode 100644 index 000000000000..8e5b41d793b4 --- /dev/null +++ b/packages/components/src/components/icon/cashier/ic-cashier-moneygram-light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-ngan-loung-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-ngan-loung-dark.svg index 4b8ee50ee062..761ccddfd0f9 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-ngan-loung-dark.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-ngan-loung-dark.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-ngan-loung-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-ngan-loung-light.svg index 2204718c29b9..ab8cb2e7d2e3 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-ngan-loung-light.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-ngan-loung-light.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-no-ads.svg b/packages/components/src/components/icon/cashier/ic-cashier-no-ads.svg index ce3e29cd53cc..b3fc8227fa80 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-no-ads.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-no-ads.svg @@ -1 +1 @@ -AD \ No newline at end of file +AD \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-no-balance.svg b/packages/components/src/components/icon/cashier/ic-cashier-no-balance.svg index 76001f770f2e..cdcec0a35350 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-no-balance.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-no-balance.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-no-orders.svg b/packages/components/src/components/icon/cashier/ic-cashier-no-orders.svg index a3861dc427fb..712595268362 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-no-orders.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-no-orders.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-off-ramp.svg b/packages/components/src/components/icon/cashier/ic-cashier-off-ramp.svg index 42fa1f17e8dc..6427415e755a 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-off-ramp.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-off-ramp.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-on-ramp.svg b/packages/components/src/components/icon/cashier/ic-cashier-on-ramp.svg index fe17bda5f227..8aec7904e13b 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-on-ramp.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-on-ramp.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-online-naira-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-online-naira-dark.svg index e62575d0299c..25e81e119d4a 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-online-naira-dark.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-online-naira-dark.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-online-naira-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-online-naira-light.svg index 5dc0ebf99407..6bfc2506c152 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-online-naira-light.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-online-naira-light.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-p2p-user.svg b/packages/components/src/components/icon/cashier/ic-cashier-p2p-user.svg index 976d981b64b3..fbf0a5e109e5 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-p2p-user.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-p2p-user.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-pay-id-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-pay-id-dark.svg index a319c24f0862..f70061038ea5 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-pay-id-dark.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-pay-id-dark.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-pay-id-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-pay-id-light.svg index c48cbe9d0675..0abc97427002 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-pay-id-light.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-pay-id-light.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-pay-livre-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-pay-livre-dark.svg index 7d791f7e8a8e..0b88fc352072 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-pay-livre-dark.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-pay-livre-dark.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-pay-livre-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-pay-livre-light.svg index 696f617bcfbc..6ec59ae7dcaa 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-pay-livre-light.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-pay-livre-light.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-pay-now-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-pay-now-dark.svg index 0ba57daa0424..0d80c2d25d09 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-pay-now-dark.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-pay-now-dark.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-pay-now-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-pay-now-light.svg index 71060345088f..ecc0d5f5857b 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-pay-now-light.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-pay-now-light.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-pay-retailers-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-pay-retailers-dark.svg index 2a2140d36fd5..ab2950e6307b 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-pay-retailers-dark.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-pay-retailers-dark.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-pay-retailers-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-pay-retailers-light.svg index 614409512da7..36e0f7acf86d 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-pay-retailers-light.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-pay-retailers-light.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-paypal-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-paypal-dark.svg new file mode 100644 index 000000000000..46f4f1452572 --- /dev/null +++ b/packages/components/src/components/icon/cashier/ic-cashier-paypal-dark.svg @@ -0,0 +1 @@ + diff --git a/packages/components/src/components/icon/cashier/ic-cashier-paypal-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-paypal-light.svg new file mode 100644 index 000000000000..46f4f1452572 --- /dev/null +++ b/packages/components/src/components/icon/cashier/ic-cashier-paypal-light.svg @@ -0,0 +1 @@ + diff --git a/packages/components/src/components/icon/cashier/ic-cashier-perfect-money-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-perfect-money-dark.svg index 4ac0b232d8e4..1ff04b583e55 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-perfect-money-dark.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-perfect-money-dark.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-perfect-money-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-perfect-money-light.svg index 1c1c39adaaa9..6e7ba6ba403a 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-perfect-money-light.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-perfect-money-light.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-permatabank-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-permatabank-dark.svg new file mode 100644 index 000000000000..ee3b8f21b6df --- /dev/null +++ b/packages/components/src/components/icon/cashier/ic-cashier-permatabank-dark.svg @@ -0,0 +1 @@ + diff --git a/packages/components/src/components/icon/cashier/ic-cashier-permatabank-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-permatabank-light.svg new file mode 100644 index 000000000000..a5fef0be7ce9 --- /dev/null +++ b/packages/components/src/components/icon/cashier/ic-cashier-permatabank-light.svg @@ -0,0 +1 @@ + diff --git a/packages/components/src/components/icon/cashier/ic-cashier-poli-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-poli-dark.svg index 47148a5d9428..1c8a36f3cfc5 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-poli-dark.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-poli-dark.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-poli-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-poli-light.svg index f1e8b752df63..d6bf7c95d8da 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-poli-light.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-poli-light.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-post-bill-pay-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-post-bill-pay-dark.svg index 8071c345a73c..c3e57cb767fe 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-post-bill-pay-dark.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-post-bill-pay-dark.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-post-bill-pay-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-post-bill-pay-light.svg index aa64a57b9f85..ead20e2a1c53 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-post-bill-pay-light.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-post-bill-pay-light.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-prompt-pay-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-prompt-pay-dark.svg index 4bf3f062b1f2..62913bddb963 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-prompt-pay-dark.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-prompt-pay-dark.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-prompt-pay-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-prompt-pay-light.svg index 3e6d461854b0..34a6bcc7d1c7 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-prompt-pay-light.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-prompt-pay-light.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-qr-code-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-qr-code-dark.svg index 0f476932bf93..9ba84205656d 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-qr-code-dark.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-qr-code-dark.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-qr-code-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-qr-code-light.svg index 80e4d2fbd4af..566d1d90cae7 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-qr-code-light.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-qr-code-light.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-search.svg b/packages/components/src/components/icon/cashier/ic-cashier-search.svg new file mode 100644 index 000000000000..30c3db276e04 --- /dev/null +++ b/packages/components/src/components/icon/cashier/ic-cashier-search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-send-email.svg b/packages/components/src/components/icon/cashier/ic-cashier-send-email.svg index f96157c32ce9..b9c09818970c 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-send-email.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-send-email.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-sepa-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-sepa-dark.svg index 995338cd59c3..63990eab0c0e 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-sepa-dark.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-sepa-dark.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-sepa-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-sepa-light.svg index 6a866d67028b..557017e38ace 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-sepa-light.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-sepa-light.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-sofort.svg b/packages/components/src/components/icon/cashier/ic-cashier-sofort.svg index b9964d4701e9..9ec4d6d80aa0 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-sofort.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-sofort.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-tether-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-tether-dark.svg index 3753853b1d65..43dafad55542 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-tether-dark.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-tether-dark.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-tether-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-tether-light.svg index 1786e49361a1..df3c988538b9 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-tether-light.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-tether-light.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-top-up.svg b/packages/components/src/components/icon/cashier/ic-cashier-top-up.svg index 03173f341f85..c607b1a6f63d 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-top-up.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-top-up.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-upi-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-upi-dark.svg index fa72f3207383..eef668c70c73 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-upi-dark.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-upi-dark.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-upi-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-upi-light.svg index 01ab297b8bf6..d5e2705f0e96 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-upi-light.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-upi-light.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-usd-coin-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-usd-coin-dark.svg index 086009994e02..1d2629fb1247 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-usd-coin-dark.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-usd-coin-dark.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-usd-coin-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-usd-coin-light.svg index 3aa699aee6b8..314d926bc897 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-usd-coin-light.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-usd-coin-light.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-verification-badge.svg b/packages/components/src/components/icon/cashier/ic-cashier-verification-badge.svg index c87840edf4c2..b08e10138e3d 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-verification-badge.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-verification-badge.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-vertical-ellipsis.svg b/packages/components/src/components/icon/cashier/ic-cashier-vertical-ellipsis.svg index a0d0171000eb..d934062e0026 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-vertical-ellipsis.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-vertical-ellipsis.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-verve-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-verve-dark.svg new file mode 100644 index 000000000000..4587f3c2086f --- /dev/null +++ b/packages/components/src/components/icon/cashier/ic-cashier-verve-dark.svg @@ -0,0 +1 @@ + diff --git a/packages/components/src/components/icon/cashier/ic-cashier-verve-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-verve-light.svg new file mode 100644 index 000000000000..db17b5baa60c --- /dev/null +++ b/packages/components/src/components/icon/cashier/ic-cashier-verve-light.svg @@ -0,0 +1 @@ + diff --git a/packages/components/src/components/icon/cashier/ic-cashier-viettle-pay.svg b/packages/components/src/components/icon/cashier/ic-cashier-viettle-pay.svg index 2cb1c58b405e..f5387a65dacd 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-viettle-pay.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-viettle-pay.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-visa-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-visa-dark.svg index 2348c35500e6..d37c2687535b 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-visa-dark.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-visa-dark.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-visa-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-visa-light.svg index 48d33789c4d3..411f15d04d62 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-visa-light.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-visa-light.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-wallet.svg b/packages/components/src/components/icon/cashier/ic-cashier-wallet.svg index 1d56be73e354..a53339e24df5 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-wallet.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-wallet.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-wechatpay-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-wechatpay-dark.svg new file mode 100644 index 000000000000..7b805dc1a8d2 --- /dev/null +++ b/packages/components/src/components/icon/cashier/ic-cashier-wechatpay-dark.svg @@ -0,0 +1 @@ + diff --git a/packages/components/src/components/icon/cashier/ic-cashier-wechatpay-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-wechatpay-light.svg new file mode 100644 index 000000000000..7b805dc1a8d2 --- /dev/null +++ b/packages/components/src/components/icon/cashier/ic-cashier-wechatpay-light.svg @@ -0,0 +1 @@ + diff --git a/packages/components/src/components/icon/cashier/ic-cashier-withdrawal-lock.svg b/packages/components/src/components/icon/cashier/ic-cashier-withdrawal-lock.svg index deae364d5f58..35453dc90155 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-withdrawal-lock.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-withdrawal-lock.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-withdrawal.svg b/packages/components/src/components/icon/cashier/ic-cashier-withdrawal.svg index 44aad3e95735..87bebf60e7d4 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-withdrawal.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-withdrawal.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-wyre-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-wyre-dark.svg index 3cfb6f6044a4..0bfd5f29a6ac 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-wyre-dark.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-wyre-dark.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-wyre-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-wyre-light.svg index e077948d42e8..b386d29e6c2c 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-wyre-light.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-wyre-light.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-xanpool-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-xanpool-dark.svg index 421c56dd37fc..27890b07716f 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-xanpool-dark.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-xanpool-dark.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-xanpool-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-xanpool-light.svg index 77501b8d3614..07c52e5b0f95 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-xanpool-light.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-xanpool-light.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-xanpool-small-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-xanpool-small-dark.svg index 2ff07766e581..4d3bbe8ac01a 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-xanpool-small-dark.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-xanpool-small-dark.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-xanpool-small-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-xanpool-small-light.svg index dfaea6a6fea5..6fedc3226674 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier-xanpool-small-light.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier-xanpool-small-light.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-zenithbank-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-zenithbank-dark.svg new file mode 100644 index 000000000000..162403c15539 --- /dev/null +++ b/packages/components/src/components/icon/cashier/ic-cashier-zenithbank-dark.svg @@ -0,0 +1 @@ + diff --git a/packages/components/src/components/icon/cashier/ic-cashier-zenithbank-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-zenithbank-light.svg new file mode 100644 index 000000000000..ca363a6677fa --- /dev/null +++ b/packages/components/src/components/icon/cashier/ic-cashier-zenithbank-light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier.svg b/packages/components/src/components/icon/cashier/ic-cashier.svg index 027a31fbc4d8..457473a715fe 100644 --- a/packages/components/src/components/icon/cashier/ic-cashier.svg +++ b/packages/components/src/components/icon/cashier/ic-cashier.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/common/ic-close-circle-red.svg b/packages/components/src/components/icon/common/ic-close-circle-red.svg new file mode 100644 index 000000000000..46f999487968 --- /dev/null +++ b/packages/components/src/components/icon/common/ic-close-circle-red.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/components/src/components/icon/common/ic-email-outline-new.svg b/packages/components/src/components/icon/common/ic-email-outline-new.svg new file mode 100644 index 000000000000..fac6daa5722c --- /dev/null +++ b/packages/components/src/components/icon/common/ic-email-outline-new.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/components/src/components/icon/icon.tsx b/packages/components/src/components/icon/icon.tsx index 8261de113261..7e1077bd28e8 100644 --- a/packages/components/src/components/icon/icon.tsx +++ b/packages/components/src/components/icon/icon.tsx @@ -27,7 +27,7 @@ const Icon = React.forwardRef( let category: keyof TIconsManifest = 'common'; const category_match = new RegExp(`^Ic(${Object.keys(icons_manifest).join('|')})`, 'gi').exec(icon); if (category_match?.[1]) { - category = getKebabCase(category_match[1]); + category = getKebabCase(category_match[1]) as keyof TIconsManifest; } const sprite_id = icon.startsWith('IcUnderlying') diff --git a/packages/components/src/components/icon/icons.js b/packages/components/src/components/icon/icons.js index 67a98bfc89cc..de1b602f4513 100644 --- a/packages/components/src/components/icon/icons.js +++ b/packages/components/src/components/icon/icons.js @@ -16,21 +16,35 @@ import './cashier/ic-cashier-air-tm-dark.svg'; import './cashier/ic-cashier-air-tm-light.svg'; import './cashier/ic-cashier-ali-pay-dark.svg'; import './cashier/ic-cashier-ali-pay-light.svg'; +import './cashier/ic-cashier-alipay-dark.svg'; +import './cashier/ic-cashier-alipay-light.svg'; import './cashier/ic-cashier-apple-pay.svg'; import './cashier/ic-cashier-authenticate.svg'; import './cashier/ic-cashier-bank-bri.svg'; +import './cashier/ic-cashier-bank-dark.svg'; +import './cashier/ic-cashier-bank-light.svg'; import './cashier/ic-cashier-bank-transfer.svg'; +import './cashier/ic-cashier-bankbri-dark.svg'; +import './cashier/ic-cashier-bankbri-light.svg'; import './cashier/ic-cashier-banxa-dark.svg'; import './cashier/ic-cashier-banxa-light.svg'; import './cashier/ic-cashier-banxa-small-dark.svg'; import './cashier/ic-cashier-banxa-small-light.svg'; +import './cashier/ic-cashier-bca-dark.svg'; +import './cashier/ic-cashier-bca-light.svg'; import './cashier/ic-cashier-bca.svg'; +import './cashier/ic-cashier-bch-dark.svg'; +import './cashier/ic-cashier-bch-light.svg'; import './cashier/ic-cashier-bitcoin-dark.svg'; import './cashier/ic-cashier-bitcoin-light.svg'; import './cashier/ic-cashier-blueshyft-dark.svg'; import './cashier/ic-cashier-blueshyft-light.svg'; +import './cashier/ic-cashier-bni-dark.svg'; +import './cashier/ic-cashier-bni-light.svg'; import './cashier/ic-cashier-bpay-dark.svg'; import './cashier/ic-cashier-bpay-light.svg'; +import './cashier/ic-cashier-card-dark.svg'; +import './cashier/ic-cashier-card-light.svg'; import './cashier/ic-cashier-cebuana-lhuillier-dark.svg'; import './cashier/ic-cashier-cebuana-lhuillier-light.svg'; import './cashier/ic-cashier-changelly-dark.svg'; @@ -39,20 +53,34 @@ import './cashier/ic-cashier-changelly-row-dark.svg'; import './cashier/ic-cashier-changelly-row-light.svg'; import './cashier/ic-cashier-changelly.svg'; import './cashier/ic-cashier-cimb-niaga.svg'; +import './cashier/ic-cashier-cimbniaga-dark.svg'; +import './cashier/ic-cashier-cimbniaga-light.svg'; import './cashier/ic-cashier-clipboard.svg'; +import './cashier/ic-cashier-commission-deposit.svg'; +import './cashier/ic-cashier-commission-withdrawal.svg'; +import './cashier/ic-cashier-crypto-dark.svg'; +import './cashier/ic-cashier-crypto-light.svg'; +import './cashier/ic-cashier-dai-dark.svg'; +import './cashier/ic-cashier-dai-light.svg'; import './cashier/ic-cashier-deposit-lock.svg'; import './cashier/ic-cashier-deposit.svg'; +import './cashier/ic-cashier-diamondbank-dark.svg'; +import './cashier/ic-cashier-diamondbank-light.svg'; import './cashier/ic-cashier-directa-dark.svg'; import './cashier/ic-cashier-directa-light.svg'; import './cashier/ic-cashier-dp2p-blocked.svg'; import './cashier/ic-cashier-dp2p.svg'; import './cashier/ic-cashier-dragon-phoenix.svg'; import './cashier/ic-cashier-error.svg'; +import './cashier/ic-cashier-eth-dark.svg'; +import './cashier/ic-cashier-eth-light.svg'; import './cashier/ic-cashier-ethereum-dark.svg'; import './cashier/ic-cashier-ethereum-light.svg'; import './cashier/ic-cashier-ewallet-dark.svg'; import './cashier/ic-cashier-ewallet-light.svg'; import './cashier/ic-cashier-ewallet.svg'; +import './cashier/ic-cashier-firstbank-dark.svg'; +import './cashier/ic-cashier-firstbank-light.svg'; import './cashier/ic-cashier-flexepin-dark.svg'; import './cashier/ic-cashier-flexepin-light.svg'; import './cashier/ic-cashier-fps-dark.svg'; @@ -60,24 +88,38 @@ import './cashier/ic-cashier-fps-light.svg'; import './cashier/ic-cashier-funds-protection.svg'; import './cashier/ic-cashier-go-pay-dark.svg'; import './cashier/ic-cashier-go-pay-light.svg'; +import './cashier/ic-cashier-gtbank-dark.svg'; +import './cashier/ic-cashier-gtbank-light.svg'; import './cashier/ic-cashier-help-to-pay-dark.svg'; import './cashier/ic-cashier-help-to-pay-light.svg'; +import './cashier/ic-cashier-icbc-dark.svg'; +import './cashier/ic-cashier-icbc-light.svg'; import './cashier/ic-cashier-ideal.svg'; import './cashier/ic-cashier-insta-pay-dark.svg'; import './cashier/ic-cashier-insta-pay-light.svg'; import './cashier/ic-cashier-instant-bank-transfer-dark.svg'; import './cashier/ic-cashier-instant-bank-transfer-light.svg'; import './cashier/ic-cashier-interac-etransfer.svg'; +import './cashier/ic-cashier-libertyreserve-dark.svg'; +import './cashier/ic-cashier-libertyreserve-light.svg'; import './cashier/ic-cashier-lite-coin-dark.svg'; import './cashier/ic-cashier-lite-coin-light.svg'; import './cashier/ic-cashier-local-payment-methods-dark.svg'; import './cashier/ic-cashier-local-payment-methods-light.svg'; import './cashier/ic-cashier-locked.svg'; import './cashier/ic-cashier-maestro.svg'; +import './cashier/ic-cashier-mandiri-dark.svg'; +import './cashier/ic-cashier-mandiri-light.svg'; import './cashier/ic-cashier-mandiri-pay.svg'; +import './cashier/ic-cashier-mandirisyariah-dark.svg'; +import './cashier/ic-cashier-mandirisyariah-light.svg'; import './cashier/ic-cashier-mastercard-dark.svg'; import './cashier/ic-cashier-mastercard-light.svg'; +import './cashier/ic-cashier-maximum-withdrawal.svg'; +import './cashier/ic-cashier-minimum-withdrawal.svg'; import './cashier/ic-cashier-minus.svg'; +import './cashier/ic-cashier-moneygram-dark.svg'; +import './cashier/ic-cashier-moneygram-light.svg'; import './cashier/ic-cashier-ngan-loung-dark.svg'; import './cashier/ic-cashier-ngan-loung-light.svg'; import './cashier/ic-cashier-no-ads.svg'; @@ -98,8 +140,12 @@ import './cashier/ic-cashier-pay-now-light.svg'; import './cashier/ic-cashier-pay-retailers-dark.svg'; import './cashier/ic-cashier-pay-retailers-light.svg'; import './cashier/ic-cashier-payment-agent.svg'; +import './cashier/ic-cashier-paypal-dark.svg'; +import './cashier/ic-cashier-paypal-light.svg'; import './cashier/ic-cashier-perfect-money-dark.svg'; import './cashier/ic-cashier-perfect-money-light.svg'; +import './cashier/ic-cashier-permatabank-dark.svg'; +import './cashier/ic-cashier-permatabank-light.svg'; import './cashier/ic-cashier-poli-dark.svg'; import './cashier/ic-cashier-poli-light.svg'; import './cashier/ic-cashier-post-bill-pay-dark.svg'; @@ -109,6 +155,7 @@ import './cashier/ic-cashier-prompt-pay-light.svg'; import './cashier/ic-cashier-qr-code-dark.svg'; import './cashier/ic-cashier-qr-code-light.svg'; import './cashier/ic-cashier-red-warning.svg'; +import './cashier/ic-cashier-search.svg'; import './cashier/ic-cashier-send-email.svg'; import './cashier/ic-cashier-sepa-dark.svg'; import './cashier/ic-cashier-sepa-light.svg'; @@ -123,10 +170,14 @@ import './cashier/ic-cashier-usd-coin-dark.svg'; import './cashier/ic-cashier-usd-coin-light.svg'; import './cashier/ic-cashier-verification-badge.svg'; import './cashier/ic-cashier-vertical-ellipsis.svg'; +import './cashier/ic-cashier-verve-dark.svg'; +import './cashier/ic-cashier-verve-light.svg'; import './cashier/ic-cashier-viettle-pay.svg'; import './cashier/ic-cashier-visa-dark.svg'; import './cashier/ic-cashier-visa-light.svg'; import './cashier/ic-cashier-wallet.svg'; +import './cashier/ic-cashier-wechatpay-dark.svg'; +import './cashier/ic-cashier-wechatpay-light.svg'; import './cashier/ic-cashier-withdraw-wallet.svg'; import './cashier/ic-cashier-withdrawal-lock.svg'; import './cashier/ic-cashier-withdrawal.svg'; @@ -136,6 +187,8 @@ import './cashier/ic-cashier-xanpool-dark.svg'; import './cashier/ic-cashier-xanpool-light.svg'; import './cashier/ic-cashier-xanpool-small-dark.svg'; import './cashier/ic-cashier-xanpool-small-light.svg'; +import './cashier/ic-cashier-zenithbank-dark.svg'; +import './cashier/ic-cashier-zenithbank-light.svg'; import './cashier/ic-cashier.svg'; import './common/ic-account-cross.svg'; import './common/ic-account-dont-get-scam.svg'; @@ -218,6 +271,7 @@ import './common/ic-client.svg'; import './common/ic-clipboard.svg'; import './common/ic-clock-outline.svg'; import './common/ic-clock.svg'; +import './common/ic-close-circle-red.svg'; import './common/ic-close-circle.svg'; import './common/ic-close-light.svg'; import './common/ic-cloud-upload.svg'; @@ -242,6 +296,7 @@ import './common/ic-driving-license-dashboard.svg'; import './common/ic-driving-license.svg'; import './common/ic-edit.svg'; import './common/ic-email-firewall.svg'; +import './common/ic-email-outline-new.svg'; import './common/ic-email-outline.svg'; import './common/ic-email-sent-dashboard.svg'; import './common/ic-email-sent-p2p.svg'; diff --git a/packages/components/src/components/label/index.js b/packages/components/src/components/label/index.js index 0b6d971d8d18..504490e7cdbc 100644 --- a/packages/components/src/components/label/index.js +++ b/packages/components/src/components/label/index.js @@ -1,4 +1,4 @@ -import Label from './label.jsx'; +import Label from './label'; import './label.scss'; export default Label; diff --git a/packages/components/src/components/label/label.jsx b/packages/components/src/components/label/label.tsx similarity index 51% rename from packages/components/src/components/label/label.jsx rename to packages/components/src/components/label/label.tsx index 44b8bceaf937..8bb0c5f953f8 100644 --- a/packages/components/src/components/label/label.jsx +++ b/packages/components/src/components/label/label.tsx @@ -1,6 +1,5 @@ import classNames from 'classnames'; import React from 'react'; -import PropTypes from 'prop-types'; const available_modes = [ 'adjustment', @@ -13,13 +12,19 @@ const available_modes = [ 'default-invert', 'success-invert', 'warn-invert', -]; +] as const; -const available_sizes = ['regular', 'large']; +const available_sizes = ['regular', 'large'] as const; -const Label = ({ mode, children, size = 'regular', className }) => { - const type = available_modes.some(m => m === mode) ? mode : 'default'; - const scale = available_sizes.some(s => s === size) ? size : 'regular'; +type TLabel = { + mode: typeof available_modes[number]; + size: typeof available_sizes[number]; + className?: string; +}; + +const Label = ({ mode, children, size = 'regular', className }: React.PropsWithChildren) => { + const type = available_modes.some((m: string) => m === mode) ? mode : 'default'; + const scale = available_sizes.some((s: string) => s === size) ? size : 'regular'; return ( { ); }; -Label.propTypes = { - children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]), - mode: PropTypes.oneOf(available_modes), - size: PropTypes.string, - className: PropTypes.string, -}; - export default Label; diff --git a/packages/components/src/components/linear-progress/index.js b/packages/components/src/components/linear-progress/index.ts similarity index 95% rename from packages/components/src/components/linear-progress/index.js rename to packages/components/src/components/linear-progress/index.ts index daf3561acd7c..3c3aae6621f4 100644 --- a/packages/components/src/components/linear-progress/index.js +++ b/packages/components/src/components/linear-progress/index.ts @@ -1,4 +1,4 @@ import './linear-progress.scss'; -import LinearProgressContainer from './linear-progress-container.jsx'; +import LinearProgressContainer from './linear-progress-container'; export default LinearProgressContainer; diff --git a/packages/components/src/components/linear-progress/linear-progress-container.jsx b/packages/components/src/components/linear-progress/linear-progress-container.tsx similarity index 77% rename from packages/components/src/components/linear-progress/linear-progress-container.jsx rename to packages/components/src/components/linear-progress/linear-progress-container.tsx index 79a3307c28b5..37ca616b664b 100644 --- a/packages/components/src/components/linear-progress/linear-progress-container.jsx +++ b/packages/components/src/components/linear-progress/linear-progress-container.tsx @@ -1,12 +1,20 @@ import React from 'react'; -import PropTypes from 'prop-types'; -import { LinearProgress } from './linear-progress.jsx'; +import { LinearProgress } from './linear-progress'; + +type TLinearProgressContainer = { + timeout: number; + action: () => void; + render: (prop: number) => number; + className?: string; + should_store_in_session?: boolean; + session_id: string; +}; const LinearProgressContainer = React.forwardRef( - ({ timeout, action, render, className, should_store_in_session, session_id }, ref) => { - const current_progress_timeout = sessionStorage.getItem(`linear_progress_timeout_${session_id}`); + ({ timeout, action, render, className, should_store_in_session, session_id }: TLinearProgressContainer, ref) => { + const current_progress_timeout = Number(sessionStorage.getItem(`linear_progress_timeout_${session_id}`)); - const popup_timeout = !current_progress_timeout ? timeout / 1000 : current_progress_timeout; + const popup_timeout = !current_progress_timeout ? timeout / 1000 : Number(current_progress_timeout); const [timeout_state, setTimeoutState] = React.useState(popup_timeout); const time_past = 100 - (timeout_state / (timeout / 1000)) * 100; @@ -26,7 +34,7 @@ const LinearProgressContainer = React.forwardRef( React.useEffect(() => { if (should_store_in_session) { - sessionStorage.setItem(`linear_progress_timeout_${session_id}`, timeout_state); + sessionStorage.setItem(`linear_progress_timeout_${session_id}`, String(timeout_state)); } }, [timeout_state, should_store_in_session, session_id]); @@ -46,7 +54,7 @@ const LinearProgressContainer = React.forwardRef( if (current_progress_timeout <= 0) { sessionStorage.removeItem(`linear_progress_timeout_${session_id}`); } else if (current_progress_timeout > 0) { - sessionStorage.setItem(`linear_progress_timeout_${session_id}`, timeout_state); + sessionStorage.setItem(`linear_progress_timeout_${session_id}`, String(timeout_state)); } else { return null; } @@ -56,21 +64,12 @@ const LinearProgressContainer = React.forwardRef( return (
{render(getRemaining())}
- +
); } ); -LinearProgressContainer.propTypes = { - timeout: PropTypes.number, - action: PropTypes.func, - render: PropTypes.func.isRequired, - className: PropTypes.string, - should_store_in_session: PropTypes.bool, - session_id: PropTypes.string, -}; - LinearProgressContainer.displayName = 'LinearProgressContainer'; export default LinearProgressContainer; diff --git a/packages/components/src/components/linear-progress/linear-progress.jsx b/packages/components/src/components/linear-progress/linear-progress.jsx deleted file mode 100644 index 2c782dedf8aa..000000000000 --- a/packages/components/src/components/linear-progress/linear-progress.jsx +++ /dev/null @@ -1,8 +0,0 @@ -import classNames from 'classnames'; -import React from 'react'; - -export const LinearProgress = ({ progress }) => ( -
-
-
-); diff --git a/packages/components/src/components/linear-progress/linear-progress.tsx b/packages/components/src/components/linear-progress/linear-progress.tsx new file mode 100644 index 000000000000..8d8a3006188a --- /dev/null +++ b/packages/components/src/components/linear-progress/linear-progress.tsx @@ -0,0 +1,13 @@ +import classNames from 'classnames'; +import React from 'react'; + +type TLinearProgress = { + progress: number; + className?: string; +}; + +export const LinearProgress = ({ progress, className }: TLinearProgress) => ( +
+
+
+); diff --git a/packages/components/src/hooks/index.js b/packages/components/src/hooks/index.ts similarity index 100% rename from packages/components/src/hooks/index.js rename to packages/components/src/hooks/index.ts diff --git a/packages/components/src/hooks/use-blockscroll.js b/packages/components/src/hooks/use-blockscroll.ts similarity index 79% rename from packages/components/src/hooks/use-blockscroll.js rename to packages/components/src/hooks/use-blockscroll.ts index 7f8866d3e437..d22b7915ea95 100644 --- a/packages/components/src/hooks/use-blockscroll.js +++ b/packages/components/src/hooks/use-blockscroll.ts @@ -1,10 +1,12 @@ -import React from 'react'; +import React, { RefObject } from 'react'; -export const useBlockScroll = target_ref => { +export const useBlockScroll = (target_ref: RefObject) => { React.useEffect(() => { if (!target_ref) return undefined; - const getScrollableParentElement = elem => { + const getScrollableParentElement: (prop: HTMLElement | null) => HTMLElement | null = ( + elem: HTMLElement | null + ) => { if (!elem) return null; if (elem.classList.contains('dc-themed-scrollbars') && elem.scrollHeight > elem.clientHeight) return elem; return getScrollableParentElement(elem.parentElement); diff --git a/packages/components/src/hooks/use-constructor.js b/packages/components/src/hooks/use-constructor.ts similarity index 69% rename from packages/components/src/hooks/use-constructor.js rename to packages/components/src/hooks/use-constructor.ts index 1b5f85750ebc..a3738c19c003 100644 --- a/packages/components/src/hooks/use-constructor.js +++ b/packages/components/src/hooks/use-constructor.ts @@ -1,6 +1,6 @@ import React from 'react'; -export const useConstructor = (callBack = () => {}) => { +export const useConstructor = (callBack: () => void = () => undefined) => { const is_called_ref = React.useRef(false); if (!is_called_ref.current) { callBack(); diff --git a/packages/components/src/hooks/use-deep-effect.js b/packages/components/src/hooks/use-deep-effect.ts similarity index 68% rename from packages/components/src/hooks/use-deep-effect.js rename to packages/components/src/hooks/use-deep-effect.ts index 2aa73faba7e4..a808d6cfc169 100644 --- a/packages/components/src/hooks/use-deep-effect.js +++ b/packages/components/src/hooks/use-deep-effect.ts @@ -3,8 +3,8 @@ import { isDeepEqual } from '@deriv/shared'; // Note: Do not use this effect on huge objects or objects with // circular references as performance may suffer. -export const useDeepEffect = (callback, dependencies) => { - const prev_dependencies = React.useRef(null); +export const useDeepEffect = (callback: () => void, dependencies: unknown[]) => { + const prev_dependencies = React.useRef(null); if (!isDeepEqual(prev_dependencies, dependencies)) { prev_dependencies.current = dependencies; diff --git a/packages/components/src/hooks/use-hover.js b/packages/components/src/hooks/use-hover.ts similarity index 89% rename from packages/components/src/hooks/use-hover.js rename to packages/components/src/hooks/use-hover.ts index 7fd3d0c1b390..6a4318755160 100644 --- a/packages/components/src/hooks/use-hover.js +++ b/packages/components/src/hooks/use-hover.ts @@ -1,6 +1,6 @@ -import React from 'react'; +import React, { RefObject } from 'react'; -export const useHover = (refSetter, should_prevent_bubbling) => { +export const useHover = (refSetter: RefObject | null, should_prevent_bubbling: boolean) => { const [value, setValue] = React.useState(false); const default_ref = React.useRef(null); const ref = refSetter || default_ref; @@ -40,10 +40,10 @@ export const useHoverCallback = () => { const handleMouseOver = React.useCallback(() => setValue(true), []); const handleMouseOut = React.useCallback(() => setValue(false), []); - const ref = React.useRef(); + const ref = React.useRef(null); const callbackRef = React.useCallback( - node => { + (node: HTMLElement) => { if (ref.current) { ref.current.removeEventListener('mouseover', handleMouseOver); ref.current.removeEventListener('mouseout', handleMouseOut); diff --git a/packages/components/src/hooks/use-interval.js b/packages/components/src/hooks/use-interval.ts similarity index 67% rename from packages/components/src/hooks/use-interval.js rename to packages/components/src/hooks/use-interval.ts index c8160a06532d..ece6c2c11fee 100644 --- a/packages/components/src/hooks/use-interval.js +++ b/packages/components/src/hooks/use-interval.ts @@ -1,14 +1,14 @@ import React from 'react'; -export const useInterval = (callback, delay) => { - const savedCallback = React.useRef(); +export const useInterval = (callback: () => void, delay: number) => { + const savedCallback = React.useRef<() => void | undefined>(); React.useEffect(() => { savedCallback.current = callback; }, [callback]); React.useEffect(() => { function tick() { - savedCallback.current(); + savedCallback.current?.(); } if (delay !== null) { const id = setInterval(tick, delay); diff --git a/packages/components/src/hooks/use-on-scroll.js b/packages/components/src/hooks/use-on-scroll.ts similarity index 72% rename from packages/components/src/hooks/use-on-scroll.js rename to packages/components/src/hooks/use-on-scroll.ts index bcb254930bf5..33ec728aaa94 100644 --- a/packages/components/src/hooks/use-on-scroll.js +++ b/packages/components/src/hooks/use-on-scroll.ts @@ -1,8 +1,8 @@ -import React from 'react'; +import React, { RefObject } from 'react'; -export const useOnScroll = (ref, callback) => { +export const useOnScroll = (ref: RefObject, callback: EventListener) => { // Allow consumer to prematurely dispose this scroll listener. - const remover = React.useRef(null); + const remover = React.useRef<(() => void) | null>(null); const has_removed = React.useRef(false); const diposeListener = () => { @@ -19,7 +19,7 @@ export const useOnScroll = (ref, callback) => { ref.current.addEventListener('scroll', callback); remover.current = () => { - ref.current.removeEventListener('scroll', callback); + ref.current!.removeEventListener('scroll', callback); }; } diff --git a/packages/components/src/hooks/use-onclickoutside.js b/packages/components/src/hooks/use-onclickoutside.js deleted file mode 100644 index 94d732e27d74..000000000000 --- a/packages/components/src/hooks/use-onclickoutside.js +++ /dev/null @@ -1,21 +0,0 @@ -import React from 'react'; - -export const useOnClickOutside = (ref, handler, validationFn) => { - React.useEffect(() => { - const listener = event => { - const path = event.path ?? event.composedPath?.(); - - // When component is isolated (e.g, iframe, shadow DOM) event.target refers to whole container not the component. path[0] is the node that the event originated from, it does not need to walk the array - if (ref && ref.current && !ref.current.contains(event.target) && !ref.current.contains(path && path[0])) { - if (validationFn && !validationFn(event)) return; - handler(event); - } - }; - - document.addEventListener('mousedown', listener); - - return () => { - document.removeEventListener('mousedown', listener); - }; - }, [ref, handler, validationFn]); -}; diff --git a/packages/components/src/hooks/use-onclickoutside.ts b/packages/components/src/hooks/use-onclickoutside.ts new file mode 100644 index 000000000000..ba95fac82b8a --- /dev/null +++ b/packages/components/src/hooks/use-onclickoutside.ts @@ -0,0 +1,29 @@ +import React, { RefObject } from 'react'; + +export const useOnClickOutside = ( + ref: RefObject, + handler: (event: MouseEvent) => void, + validationFn: (event: MouseEvent) => boolean +) => { + React.useEffect(() => { + const listener = (event: MouseEvent) => { + const path = event.composedPath?.()[0] ?? (event as MouseEvent & { path: HTMLElement }).path; //event.path is non-standard and will be deprecated + // When component is isolated (e.g, iframe, shadow DOM) event.target refers to whole container not the component. path[0] is the node that the event originated from, it does not need to walk the array + if ( + ref && + ref.current && + !ref.current.contains(event.target as HTMLElement) && + !ref.current.contains(path as HTMLElement) + ) { + if (validationFn && !validationFn(event)) return; + handler(event); + } + }; + + document.addEventListener('mousedown', listener); + + return () => { + document.removeEventListener('mousedown', listener); + }; + }, [ref, handler, validationFn]); +}; diff --git a/packages/components/src/hooks/use-onlongpress.js b/packages/components/src/hooks/use-onlongpress.ts similarity index 80% rename from packages/components/src/hooks/use-onlongpress.js rename to packages/components/src/hooks/use-onlongpress.ts index 6ebd213a2bb0..ab92b7edf64a 100644 --- a/packages/components/src/hooks/use-onlongpress.js +++ b/packages/components/src/hooks/use-onlongpress.ts @@ -1,20 +1,20 @@ import React from 'react'; export const useLongPress = ( - callback = () => { + callback: () => void = () => { /** empty function */ }, ms = 300 ) => { const [startLongPress, setStartLongPress] = React.useState(false); - const preventDefaults = e => { + const preventDefaults = (e: Event) => { e.preventDefault(); e.stopPropagation(); }; React.useEffect(() => { - let timer; + let timer: ReturnType | undefined; if (startLongPress) { timer = setTimeout(callback, ms); } else if (timer) { @@ -28,13 +28,13 @@ export const useLongPress = ( }, [startLongPress]); return { - onMouseDown: e => { + onMouseDown: (e: MouseEvent) => { preventDefaults(e); setStartLongPress(true); }, onMouseUp: () => setStartLongPress(false), onMouseLeave: () => setStartLongPress(false), - onTouchStart: e => { + onTouchStart: (e: TouchEvent) => { preventDefaults(e); setStartLongPress(true); }, diff --git a/packages/components/src/hooks/use-prevent-ios-zoom.js b/packages/components/src/hooks/use-prevent-ios-zoom.ts similarity index 90% rename from packages/components/src/hooks/use-prevent-ios-zoom.js rename to packages/components/src/hooks/use-prevent-ios-zoom.ts index 5348424e0767..4526ed880252 100644 --- a/packages/components/src/hooks/use-prevent-ios-zoom.js +++ b/packages/components/src/hooks/use-prevent-ios-zoom.ts @@ -3,7 +3,7 @@ import React from 'react'; export const usePreventIOSZoom = () => { React.useEffect(() => { // Fix to prevent iOS from zooming in erratically on quick taps - const preventIOSZoom = event => { + const preventIOSZoom = (event: TouchEvent) => { if (event.touches.length > 1) { event.preventDefault(); event.stopPropagation(); diff --git a/packages/components/src/hooks/use-previous.js b/packages/components/src/hooks/use-previous.ts similarity index 58% rename from packages/components/src/hooks/use-previous.js rename to packages/components/src/hooks/use-previous.ts index 3ef31e621c38..e8d4d168015e 100644 --- a/packages/components/src/hooks/use-previous.js +++ b/packages/components/src/hooks/use-previous.ts @@ -1,7 +1,7 @@ import React from 'react'; -export const usePrevious = value => { - const ref = React.useRef(); +export const usePrevious = (value: T) => { + const ref = React.useRef(); React.useEffect(() => { ref.current = value; }, [value]); diff --git a/packages/components/src/hooks/use-safe-state.js b/packages/components/src/hooks/use-safe-state.ts similarity index 62% rename from packages/components/src/hooks/use-safe-state.js rename to packages/components/src/hooks/use-safe-state.ts index 8947dcd1a95e..670fd5242e95 100644 --- a/packages/components/src/hooks/use-safe-state.js +++ b/packages/components/src/hooks/use-safe-state.ts @@ -1,23 +1,25 @@ import * as React from 'react'; -export const useSafeState = (initial_state, optIsMountedFunc = null) => { +export const useSafeState = (initial_state: T, optIsMountedFunc: () => void) => { const [state, setState] = React.useState(initial_state); const is_mounted = React.useRef(false); React.useLayoutEffect(() => { is_mounted.current = true; - return () => (is_mounted.current = false); + return () => { + is_mounted.current = false; + }; }, []); const isMounted = () => { - if (typeof optIsMountedFunc === 'function') { + if (optIsMountedFunc && typeof optIsMountedFunc === 'function') { return optIsMountedFunc(); } return is_mounted.current === true; }; - const wrappedSetState = value => { + const wrappedSetState = (value: T) => { if (isMounted()) { setState(value); } diff --git a/packages/components/src/hooks/use-state-callback.js b/packages/components/src/hooks/use-state-callback.ts similarity index 63% rename from packages/components/src/hooks/use-state-callback.js rename to packages/components/src/hooks/use-state-callback.ts index cafbbb063038..b6c8a640b107 100644 --- a/packages/components/src/hooks/use-state-callback.js +++ b/packages/components/src/hooks/use-state-callback.ts @@ -1,11 +1,11 @@ import React from 'react'; // this hook mimics this.setState({ state: value, ... }, () => callbackFunc()); -export const useStateCallback = initial_state => { - const [state, setState] = React.useState(initial_state); - const callbackRef = React.useRef(null); // a mutable ref to store existing callback +export const useStateCallback = (initial_state: T) => { + const [state, setState] = React.useState(initial_state); + const callbackRef = React.useRef<((param: T) => void) | null>(null); // a mutable ref to store existing callback - const setStateCallback = React.useCallback((current_state, cb) => { + const setStateCallback = React.useCallback((current_state: T, cb: (param: T) => void) => { callbackRef.current = cb; // store the passed callback to the ref setState(current_state); }, []); diff --git a/packages/components/stories/icon/icons.js b/packages/components/stories/icon/icons.js index 0b490b28613f..909eeb8ed34e 100644 --- a/packages/components/stories/icon/icons.js +++ b/packages/components/stories/icon/icons.js @@ -21,21 +21,35 @@ export const icons = 'IcCashierAirTmLight', 'IcCashierAliPayDark', 'IcCashierAliPayLight', + 'IcCashierAlipayDark', + 'IcCashierAlipayLight', 'IcCashierApplePay', 'IcCashierAuthenticate', 'IcCashierBankBri', + 'IcCashierBankDark', + 'IcCashierBankLight', 'IcCashierBankTransfer', + 'IcCashierBankbriDark', + 'IcCashierBankbriLight', 'IcCashierBanxaDark', 'IcCashierBanxaLight', 'IcCashierBanxaSmallDark', 'IcCashierBanxaSmallLight', + 'IcCashierBcaDark', + 'IcCashierBcaLight', 'IcCashierBca', + 'IcCashierBchDark', + 'IcCashierBchLight', 'IcCashierBitcoinDark', 'IcCashierBitcoinLight', 'IcCashierBlueshyftDark', 'IcCashierBlueshyftLight', + 'IcCashierBniDark', + 'IcCashierBniLight', 'IcCashierBpayDark', 'IcCashierBpayLight', + 'IcCashierCardDark', + 'IcCashierCardLight', 'IcCashierCebuanaLhuillierDark', 'IcCashierCebuanaLhuillierLight', 'IcCashierChangellyDark', @@ -44,20 +58,34 @@ export const icons = 'IcCashierChangellyRowLight', 'IcCashierChangelly', 'IcCashierCimbNiaga', + 'IcCashierCimbniagaDark', + 'IcCashierCimbniagaLight', 'IcCashierClipboard', + 'IcCashierCommissionDeposit', + 'IcCashierCommissionWithdrawal', + 'IcCashierCryptoDark', + 'IcCashierCryptoLight', + 'IcCashierDaiDark', + 'IcCashierDaiLight', 'IcCashierDepositLock', 'IcCashierDeposit', + 'IcCashierDiamondbankDark', + 'IcCashierDiamondbankLight', 'IcCashierDirectaDark', 'IcCashierDirectaLight', 'IcCashierDp2pBlocked', 'IcCashierDp2p', 'IcCashierDragonPhoenix', 'IcCashierError', + 'IcCashierEthDark', + 'IcCashierEthLight', 'IcCashierEthereumDark', 'IcCashierEthereumLight', 'IcCashierEwalletDark', 'IcCashierEwalletLight', 'IcCashierEwallet', + 'IcCashierFirstbankDark', + 'IcCashierFirstbankLight', 'IcCashierFlexepinDark', 'IcCashierFlexepinLight', 'IcCashierFpsDark', @@ -65,24 +93,38 @@ export const icons = 'IcCashierFundsProtection', 'IcCashierGoPayDark', 'IcCashierGoPayLight', + 'IcCashierGtbankDark', + 'IcCashierGtbankLight', 'IcCashierHelpToPayDark', 'IcCashierHelpToPayLight', + 'IcCashierIcbcDark', + 'IcCashierIcbcLight', 'IcCashierIdeal', 'IcCashierInstaPayDark', 'IcCashierInstaPayLight', 'IcCashierInstantBankTransferDark', 'IcCashierInstantBankTransferLight', 'IcCashierInteracEtransfer', + 'IcCashierLibertyreserveDark', + 'IcCashierLibertyreserveLight', 'IcCashierLiteCoinDark', 'IcCashierLiteCoinLight', 'IcCashierLocalPaymentMethodsDark', 'IcCashierLocalPaymentMethodsLight', 'IcCashierLocked', 'IcCashierMaestro', + 'IcCashierMandiriDark', + 'IcCashierMandiriLight', 'IcCashierMandiriPay', + 'IcCashierMandirisyariahDark', + 'IcCashierMandirisyariahLight', 'IcCashierMastercardDark', 'IcCashierMastercardLight', + 'IcCashierMaximumWithdrawal', + 'IcCashierMinimumWithdrawal', 'IcCashierMinus', + 'IcCashierMoneygramDark', + 'IcCashierMoneygramLight', 'IcCashierNganLoungDark', 'IcCashierNganLoungLight', 'IcCashierNoAds', @@ -103,8 +145,13 @@ export const icons = 'IcCashierPayRetailersDark', 'IcCashierPayRetailersLight', 'IcCashierPaymentAgent', + 'IcCashierPaypalDark', + 'IcCashierPaypalLight', + 'IcCashierPaymentAgent', 'IcCashierPerfectMoneyDark', 'IcCashierPerfectMoneyLight', + 'IcCashierPermatabankDark', + 'IcCashierPermatabankLight', 'IcCashierPoliDark', 'IcCashierPoliLight', 'IcCashierPostBillPayDark', @@ -114,6 +161,7 @@ export const icons = 'IcCashierQrCodeDark', 'IcCashierQrCodeLight', 'IcCashierRedWarning', + 'IcCashierSearch', 'IcCashierSendEmail', 'IcCashierSepaDark', 'IcCashierSepaLight', @@ -128,10 +176,14 @@ export const icons = 'IcCashierUsdCoinLight', 'IcCashierVerificationBadge', 'IcCashierVerticalEllipsis', + 'IcCashierVerveDark', + 'IcCashierVerveLight', 'IcCashierViettlePay', 'IcCashierVisaDark', 'IcCashierVisaLight', 'IcCashierWallet', + 'IcCashierWechatpayDark', + 'IcCashierWechatpayLight', 'IcCashierWithdrawWallet', 'IcCashierWithdrawalLock', 'IcCashierWithdrawal', @@ -141,6 +193,8 @@ export const icons = 'IcCashierXanpoolLight', 'IcCashierXanpoolSmallDark', 'IcCashierXanpoolSmallLight', + 'IcCashierZenithbankDark', + 'IcCashierZenithbankLight', 'IcCashier', ], 'common': [ @@ -225,6 +279,7 @@ export const icons = 'IcClipboard', 'IcClockOutline', 'IcClock', + 'IcCloseCircleRed', 'IcCloseCircle', 'IcCloseLight', 'IcCloudUpload', @@ -249,6 +304,7 @@ export const icons = 'IcDrivingLicense', 'IcEdit', 'IcEmailFirewall', + 'IcEmailOutlineNew', 'IcEmailOutline', 'IcEmailSentDashboard', 'IcEmailSentP2p', @@ -821,4 +877,4 @@ export const icons = 'IcWalletZingpayDark', 'IcWalletZingpayLight', ], -} +}; diff --git a/packages/core/src/App/Containers/Layout/app-contents.jsx b/packages/core/src/App/Containers/Layout/app-contents.jsx index ab893957d69d..d56c95d2be18 100644 --- a/packages/core/src/App/Containers/Layout/app-contents.jsx +++ b/packages/core/src/App/Containers/Layout/app-contents.jsx @@ -26,6 +26,7 @@ const AppContents = ({ platform, pageView, pushDataLayer, + setAppContentsScrollRef, }) => { const [show_cookie_banner, setShowCookieBanner] = React.useState(false); const [is_gtm_tracking, setIsGtmTracking] = React.useState(false); @@ -33,6 +34,13 @@ const AppContents = ({ const tracking_status = tracking_status_cookie.get(TRACKING_STATUS_KEY); + const scroll_ref = React.useRef(null); + + React.useEffect(() => { + if (scroll_ref.current) setAppContentsScrollRef(scroll_ref); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); + React.useEffect(() => { const allow_tracking = !is_eu_country || tracking_status === 'accepted'; if (allow_tracking && !is_gtm_tracking) { @@ -91,6 +99,7 @@ const AppContents = ({ 'app-contents--is-dashboard': is_appstore, 'app-contents--is-hidden': platforms[platform], })} + ref={scroll_ref} > {children} @@ -127,6 +136,7 @@ AppContents.propTypes = { pushDataLayer: PropTypes.func, notifyAppInstall: PropTypes.func, platform: PropTypes.string, + setAppContentsScrollRef: PropTypes.func, }; export default withRouter( @@ -146,5 +156,6 @@ export default withRouter( is_route_modal_on: ui.is_route_modal_on, notifyAppInstall: ui.notifyAppInstall, platform: common.platform, + setAppContentsScrollRef: ui.setAppContentsScrollRef, }))(AppContents) ); diff --git a/packages/core/src/Stores/ui-store.js b/packages/core/src/Stores/ui-store.js index 05fd290f150b..c88c44cf8aa1 100644 --- a/packages/core/src/Stores/ui-store.js +++ b/packages/core/src/Stores/ui-store.js @@ -144,6 +144,7 @@ export default class UIStore extends BaseStore { // add crypto accounts @observable should_show_cancel = false; + @observable app_contents_scroll_ref = null; @observable is_deriv_account_needed_modal_visible = false; getDurationFromUnit = unit => this[`duration_${unit}`]; @@ -216,6 +217,11 @@ export default class UIStore extends BaseStore { this.notification_messages_ui = notification_messages; } + @action.bound + setAppContentsScrollRef(value) { + this.app_contents_scroll_ref = value; + } + @action.bound populateFooterExtensions(footer_extensions) { this.footer_extensions = footer_extensions; diff --git a/packages/p2p/src/components/advertiser-page/advertiser-page.scss b/packages/p2p/src/components/advertiser-page/advertiser-page.scss index c82a07c5c9db..262673c0da55 100644 --- a/packages/p2p/src/components/advertiser-page/advertiser-page.scss +++ b/packages/p2p/src/components/advertiser-page/advertiser-page.scss @@ -101,7 +101,7 @@ height: fit-content; width: fit-content; - > span { + > span { padding-right: 0.8rem; } diff --git a/packages/p2p/src/translations/es.json b/packages/p2p/src/translations/es.json index d8a4f0b7408e..af180b2a1f95 100644 --- a/packages/p2p/src/translations/es.json +++ b/packages/p2p/src/translations/es.json @@ -184,8 +184,8 @@ "-1101273282": "Se requiere alias", "-919203928": "El alias es demasiado corto", "-1907100457": "No puede empezar, terminar o repetir caracteres especiales.", - "-270502067": "Cannot repeat a character more than 4 times.", - "-499872405": "You have open orders for this ad. Complete all open orders before deleting this ad.", + "-270502067": "No puede repetir un carácter más de 4 veces.", + "-499872405": "Tiene pedidos pendientes para este anuncio. Complete todos los pedidos pendientes antes de eliminar este anuncio.", "-2125702445": "Instrucciones", "-1274358564": "Límite máx.", "-1995606668": "Cantidad", diff --git a/packages/p2p/src/translations/fr.json b/packages/p2p/src/translations/fr.json index c5fa12da2a70..985d5c13bb54 100644 --- a/packages/p2p/src/translations/fr.json +++ b/packages/p2p/src/translations/fr.json @@ -184,8 +184,8 @@ "-1101273282": "Un pseudo est requis", "-919203928": "Le pseudo est trop court", "-1907100457": "Impossible de commencer, de terminer par ou de répéter des caractères spéciaux.", - "-270502067": "Cannot repeat a character more than 4 times.", - "-499872405": "You have open orders for this ad. Complete all open orders before deleting this ad.", + "-270502067": "Impossible de répéter un caractère plus de 4 fois.", + "-499872405": "Vous avez des commandes ouvertes pour cette annonce. Terminez toutes les commandes en cours avant de supprimer cette annonce.", "-2125702445": "Instructions", "-1274358564": "Limite maximale", "-1995606668": "Montant", diff --git a/packages/p2p/src/translations/it.json b/packages/p2p/src/translations/it.json index 0e5674187c5b..8523494f2565 100644 --- a/packages/p2p/src/translations/it.json +++ b/packages/p2p/src/translations/it.json @@ -184,8 +184,8 @@ "-1101273282": "Soprannome obbligatorio", "-919203928": "Soprannome troppo corto", "-1907100457": "Non puoi ripetere i caratteri speciali né usarli all'inizio o alla fine della sequenza.", - "-270502067": "Cannot repeat a character more than 4 times.", - "-499872405": "You have open orders for this ad. Complete all open orders before deleting this ad.", + "-270502067": "Non è possibile ripetere un carattere più di 4 volte.", + "-499872405": "Hai ordini aperti per questo annuncio. Completa tutti gli ordini aperti prima di eliminare questo annuncio.", "-2125702445": "Istruzioni", "-1274358564": "Limite massimo", "-1995606668": "Importo", diff --git a/packages/p2p/src/translations/pt.json b/packages/p2p/src/translations/pt.json index b3c37999e21c..1608b23ff42f 100644 --- a/packages/p2p/src/translations/pt.json +++ b/packages/p2p/src/translations/pt.json @@ -184,8 +184,8 @@ "-1101273282": "Um Apelido é obrigatório", "-919203928": "O apelido é muito curto", "-1907100457": "Não pode começar, terminar com ou repetir caracteres especiais.", - "-270502067": "Cannot repeat a character more than 4 times.", - "-499872405": "You have open orders for this ad. Complete all open orders before deleting this ad.", + "-270502067": "Não pode repetir caracteres mais de 4 vezes.", + "-499872405": "Você tem pedidos abertos para este anúncio. Conclua todos os pedidos em aberto antes de excluir esse anúncio.", "-2125702445": "Instruções", "-1274358564": "Limite máx", "-1995606668": "Valor", diff --git a/packages/p2p/src/translations/ru.json b/packages/p2p/src/translations/ru.json index b6a391a250cc..12c88d24b997 100644 --- a/packages/p2p/src/translations/ru.json +++ b/packages/p2p/src/translations/ru.json @@ -184,8 +184,8 @@ "-1101273282": "Требуется псевдоним", "-919203928": "Псевдоним слишком короткий", "-1907100457": "Не может начинаться и заканчиваться на специальные символы, или повторять их.", - "-270502067": "Cannot repeat a character more than 4 times.", - "-499872405": "You have open orders for this ad. Complete all open orders before deleting this ad.", + "-270502067": "Символ не может повторяться более 4 раз.", + "-499872405": "У вас есть открытые заказы на это объявление. Выполните все открытые заказы, прежде чем удалить это объявление.", "-2125702445": "Инструкции", "-1274358564": "Макс. лимит", "-1995606668": "Сумма", diff --git a/packages/shared/README.md b/packages/shared/README.md index c7e3d31ad9b9..5eb53f9f1eb4 100644 --- a/packages/shared/README.md +++ b/packages/shared/README.md @@ -26,7 +26,7 @@ For Fonts, Constants, Mixins, Themes, Devices: { loader: 'sass-resources-loader', options: { - resources: require('@deriv/shared/src/styles/index.js'), + resources: require('@deriv/shared/src/styles/index.ts'), } } ``` diff --git a/packages/shared/package.json b/packages/shared/package.json index a1bcacf21140..b407aeac2677 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -5,7 +5,7 @@ "author": "Deriv", "license": "Apache-2.0", "homepage": "https://github.com/binary-com/deriv-app#readme", - "main": "src/index.js", + "main": "src/index.ts", "private": true, "repository": { "type": "git", diff --git a/packages/shared/src/index.js b/packages/shared/src/index.ts similarity index 96% rename from packages/shared/src/index.js rename to packages/shared/src/index.ts index b81e2bda6a98..e50443122508 100644 --- a/packages/shared/src/index.js +++ b/packages/shared/src/index.ts @@ -1,3 +1,4 @@ +export * from './utils/array'; export * from './utils/brand'; export * from './utils/browser'; export * from './utils/config'; diff --git a/packages/shared/src/utils/array/array.js b/packages/shared/src/utils/array/array.js new file mode 100644 index 000000000000..738e7ee40ee5 --- /dev/null +++ b/packages/shared/src/utils/array/array.js @@ -0,0 +1,9 @@ +export const shuffleArray = array => { + if (Array.isArray(array)) { + for (let i = array.length - 1; i > 0; i--) { + const j = Math.floor(Math.random() * (i + 1)); + [array[i], array[j]] = [array[j], array[i]]; + } + } + return array; +}; diff --git a/packages/shared/src/utils/array/index.js b/packages/shared/src/utils/array/index.js new file mode 100644 index 000000000000..bd9a11d97a0e --- /dev/null +++ b/packages/shared/src/utils/array/index.js @@ -0,0 +1 @@ +export * from './array'; diff --git a/packages/shared/src/utils/constants/contract.tsx b/packages/shared/src/utils/constants/contract.tsx index 57b8b70d4228..16dd62d02fbe 100644 --- a/packages/shared/src/utils/constants/contract.tsx +++ b/packages/shared/src/utils/constants/contract.tsx @@ -411,7 +411,7 @@ export const getSupportedContracts = (is_high_low?: boolean) => ({ }, }); -export const getContractConfig = (is_high_low: boolean) => ({ +export const getContractConfig = (is_high_low?: boolean) => ({ ...getSupportedContracts(is_high_low), ...getUnsupportedContracts(), }); diff --git a/packages/shared/src/utils/contract/contract-types.ts b/packages/shared/src/utils/contract/contract-types.ts index 612478aa1069..5af91ba65d80 100644 --- a/packages/shared/src/utils/contract/contract-types.ts +++ b/packages/shared/src/utils/contract/contract-types.ts @@ -16,7 +16,10 @@ export type TIsEnded = Partial & { export type TContractInfo = { tick_stream?: TTickItem[]; - cancellation?: { ask_price: number }; + cancellation?: { + ask_price?: number; + date_expiry?: number; + }; status?: TStatus; is_expired?: 0 | 1; is_settleable?: 0 | 1; @@ -27,9 +30,15 @@ export type TContractInfo = { entry_tick?: number; current_spot_time?: number; current_spot?: number; - exit_tick_time?: number; barrier?: string; contract_type?: string; + exit_tick_time?: number; + date_expiry?: number; + is_path_dependent?: 0 | 1; + sell_time?: number | null; + tick_count?: number; + date_start?: number; + is_forward_starting?: 0 | 1; }; export type TIsValidToSell = TIsEnded & { diff --git a/packages/shared/src/utils/digital-options/digital-options.ts b/packages/shared/src/utils/digital-options/digital-options.ts index 8b6d347472de..3418a63b8a9f 100644 --- a/packages/shared/src/utils/digital-options/digital-options.ts +++ b/packages/shared/src/utils/digital-options/digital-options.ts @@ -37,6 +37,6 @@ export const showDigitalOptionsUnavailableError = (showError: (t: TShowError) => export const isEuResidenceWithOnlyVRTC = (accounts: TAccounts[]) => { return ( accounts?.length === 1 && - accounts.every(acc => isEuCountry(acc.residence) && acc.landing_company_shortcode === 'virtual') + accounts.every(acc => isEuCountry(acc.residence ?? '') && acc.landing_company_shortcode === 'virtual') ); }; diff --git a/packages/shared/src/utils/helpers/__tests__/barrier.js b/packages/shared/src/utils/helpers/__tests__/barrier.ts similarity index 93% rename from packages/shared/src/utils/helpers/__tests__/barrier.js rename to packages/shared/src/utils/helpers/__tests__/barrier.ts index bdc7e2b23098..44b4950f5ce2 100644 --- a/packages/shared/src/utils/helpers/__tests__/barrier.js +++ b/packages/shared/src/utils/helpers/__tests__/barrier.ts @@ -48,9 +48,9 @@ describe('buildBarriersConfig', () => { const contract = { ...contract_obj, barriers: 1, - low_barrier: 22, - barrier: 33, - high_barrier: 44, + low_barrier: '22', + barrier: '33', + high_barrier: '44', }; expect(buildBarriersConfig(contract)).to.eql({ count: 1, @@ -66,8 +66,8 @@ describe('buildBarriersConfig', () => { const contract = { ...contract_obj, barriers: 1, - low_barrier: 22, - barrier: 33, + low_barrier: '22', + barrier: '33', }; expect(buildBarriersConfig(contract)).to.eql({ count: 1, diff --git a/packages/shared/src/utils/helpers/__tests__/barriers.js b/packages/shared/src/utils/helpers/__tests__/barriers.ts similarity index 56% rename from packages/shared/src/utils/helpers/__tests__/barriers.js rename to packages/shared/src/utils/helpers/__tests__/barriers.ts index af2b46b7ec0f..13a2b66380eb 100644 --- a/packages/shared/src/utils/helpers/__tests__/barriers.js +++ b/packages/shared/src/utils/helpers/__tests__/barriers.ts @@ -13,46 +13,16 @@ describe('Barriers', () => { describe('barriersToString', () => { it('should convert non-zero barriers which do not have +/- to string consisting of them without +/- while is_relative is false', () => { - expect(Barriers.barriersToString(false, 10, 15)).to.deep.eql(['10', '15']); + expect(Barriers.barriersToString(false, 10, 15)).to.deep.equal(['10', '15']); }); it('should convert values without +/- and zero to string consisting of them without +/- while is_relative is false', () => { - expect(Barriers.barriersToString(false, 0, 15)).to.deep.eql(['0', '15']); + expect(Barriers.barriersToString(false, 0, 15)).to.deep.equal(['0', '15']); }); it('should convert barriers which have +/- to string consisting of them without +/- while is_relative is false', () => { - expect(Barriers.barriersToString(false, +11, 15)).to.deep.eql(['11', '15']); + expect(Barriers.barriersToString(false, +11, 15)).to.deep.equal(['11', '15']); }); it('should convert barriers which have +/- to string consisting of them with +/- while is_relative is true', () => { - expect(Barriers.barriersToString(true, +11, +15)).to.deep.eql(['+11', '+15']); - }); - }); - - describe('barriersObjectToArray', () => { - const main = { - color: 'green', - draggable: false, - }; - it('should return an array from values in barriers object', () => { - const barriers = { - main, - }; - expect(Barriers.barriersObjectToArray(barriers, [])).to.deep.eql([ - { - color: 'green', - draggable: false, - }, - ]); - }); - it('should return an array from values in barriers object (empty values should be filtered out)', () => { - const barriers = { - main, - somethingEmpty: {}, - }; - expect(Barriers.barriersObjectToArray(barriers, [])).to.deep.eql([ - { - color: 'green', - draggable: false, - }, - ]); + expect(Barriers.barriersToString(true, +11, +15)).to.deep.equal(['+11', '+15']); }); }); }); diff --git a/packages/shared/src/utils/helpers/__tests__/durations.js b/packages/shared/src/utils/helpers/__tests__/durations.ts similarity index 76% rename from packages/shared/src/utils/helpers/__tests__/durations.js rename to packages/shared/src/utils/helpers/__tests__/durations.ts index dd02339bb848..a0712b4e0ada 100644 --- a/packages/shared/src/utils/helpers/__tests__/durations.js +++ b/packages/shared/src/utils/helpers/__tests__/durations.ts @@ -50,40 +50,28 @@ describe('buildDurationConfig', () => { }); describe('convertDurationUnit', () => { - it('Returns null if the arguments are empty value', () => { - expect(Duration.convertDurationUnit('', '', '')).to.be.null; - }); - - it('Returns null if the arguments are invalid value', () => { - expect(Duration.convertDurationUnit('sdf', 'd', 'm')).to.be.null; - }); - - it('Returns null if there is no arguments', () => { - expect(Duration.convertDurationUnit()).to.be.null; - }); - it('Returns correct value convert day to second', () => { - expect(Duration.convertDurationUnit('365', 'd', 's')).to.eql(31536000); + expect(Duration.convertDurationUnit(365, 'd', 's')).to.eql(31536000); }); it('Returns correct value convert minute to second', () => { - expect(Duration.convertDurationUnit('5', 'm', 's')).to.eql(300); + expect(Duration.convertDurationUnit(5, 'm', 's')).to.eql(300); }); it('Returns correct value convert day to minute', () => { - expect(Duration.convertDurationUnit('1', 'd', 'm')).to.eql(1440); + expect(Duration.convertDurationUnit(1, 'd', 'm')).to.eql(1440); }); it('Returns correct value convert second to minute', () => { - expect(Duration.convertDurationUnit('180', 's', 'm')).to.eql(3); + expect(Duration.convertDurationUnit(180, 's', 'm')).to.eql(3); }); it('Returns correct value convert minute to day', () => { - expect(Duration.convertDurationUnit('2880', 'm', 'd')).to.eql(2); + expect(Duration.convertDurationUnit(2880, 'm', 'd')).to.eql(2); }); it('Returns correct value convert second to day', () => { - expect(Duration.convertDurationUnit('86400', 's', 'd')).to.eql(1); + expect(Duration.convertDurationUnit(86400, 's', 'd')).to.eql(1); }); }); @@ -100,6 +88,9 @@ describe('getExpiryType', () => { { text: 'hours', value: 'h' }, { text: 'days', value: 'd' }, ], + expiry_date: '', + expiry_type: '', + duration_unit: '', }; it('Return intraday if expiry date is today', () => { @@ -109,7 +100,7 @@ describe('getExpiryType', () => { }); it('Return daily if expiry date is tomorrow', () => { - store.expiry_date = moment().utc().add(1, 'days'); + store.expiry_date = moment().utc().add(1, 'days').toString(); store.expiry_type = 'endtime'; expect(Duration.getExpiryType(store)).to.eql('daily'); }); @@ -134,14 +125,6 @@ describe('getExpiryType', () => { }); describe('convertDurationLimit', () => { - it('Returns null when there are no arguments', () => { - expect(Duration.convertDurationLimit('', '')).to.be.null; - }); - - it('Returns null for invalid value', () => { - expect(Duration.convertDurationLimit('sdf', 't')).to.be.null; - }); - it('Returns correct value for ticks unit', () => { expect(Duration.convertDurationLimit(5, 't')).to.eql(5); }); diff --git a/packages/shared/src/utils/helpers/__tests__/format-response.js b/packages/shared/src/utils/helpers/__tests__/format-response.ts similarity index 100% rename from packages/shared/src/utils/helpers/__tests__/format-response.js rename to packages/shared/src/utils/helpers/__tests__/format-response.ts diff --git a/packages/shared/src/utils/helpers/__tests__/start-date.js b/packages/shared/src/utils/helpers/__tests__/start-date.ts similarity index 85% rename from packages/shared/src/utils/helpers/__tests__/start-date.js rename to packages/shared/src/utils/helpers/__tests__/start-date.ts index 6c143d2eac87..6feff2077ef3 100644 --- a/packages/shared/src/utils/helpers/__tests__/start-date.js +++ b/packages/shared/src/utils/helpers/__tests__/start-date.ts @@ -20,8 +20,10 @@ describe('start_date', () => { start_type: 'spot', submarket: 'major_pairs', underlying_symbol: 'frxAUDJPY', + forward_starting_options: [], }; - expect(buildForwardStartingConfig(contract, {})).to.be.empty; + /* eslint-disable no-unused-expressions */ + expect(buildForwardStartingConfig(contract, [])).to.be.empty; }); }); }); diff --git a/packages/shared/src/utils/helpers/active-symbols.js b/packages/shared/src/utils/helpers/active-symbols.ts similarity index 71% rename from packages/shared/src/utils/helpers/active-symbols.js rename to packages/shared/src/utils/helpers/active-symbols.ts index 647632944e67..a336420ec2c7 100644 --- a/packages/shared/src/utils/helpers/active-symbols.js +++ b/packages/shared/src/utils/helpers/active-symbols.ts @@ -4,10 +4,26 @@ import { redirectToLogin } from '../login'; import { WS } from '../../services'; import { getLanguage, localize } from '@deriv/translations'; +import { ActiveSymbols } from '@deriv/api-types'; + +type TResidenceList = { + residence_list: { + disabled?: string; + phone_idd?: null | string; + selected?: string; + text?: string; + tin_format?: string[]; + value?: string; + }[]; +}; + +type TIsSymbolOpen = { + exchange_is_open: 0 | 1; +}; export const showUnavailableLocationError = flow(function* (showError, is_logged_in) { const website_status = yield WS.wait('website_status'); - const residence_list = yield WS.residenceList(); + const residence_list: TResidenceList = yield WS.residenceList(); const clients_country_code = website_status.website_status.clients_country; const clients_country_text = ( @@ -15,9 +31,7 @@ export const showUnavailableLocationError = flow(function* (showError, is_logged ).text; const header = clients_country_text - ? localize('Sorry, this app is unavailable in {{clients_country}}.', { - clients_country: clients_country_text, - }) + ? localize('Sorry, this app is unavailable in {{clients_country}}.', { clients_country: clients_country_text }) : localize('Sorry, this app is unavailable in your current location.'); showError({ @@ -31,7 +45,7 @@ export const showUnavailableLocationError = flow(function* (showError, is_logged export const showMxMltUnavailableError = flow(function* (showError, can_have_mlt_account, can_have_mx_account) { const get_settings = yield WS.wait('get_settings'); - const residence_list = yield WS.residenceList(); + const residence_list: TResidenceList = yield WS.residenceList(); const clients_country_code = get_settings.get_settings.country_code; const clients_country_text = ( @@ -59,14 +73,14 @@ export const showMxMltUnavailableError = flow(function* (showError, can_have_mlt }); }); -export const isMarketClosed = (active_symbols = [], symbol) => { +export const isMarketClosed = (active_symbols: ActiveSymbols = [], symbol: string) => { if (!active_symbols.length) return false; return active_symbols.filter(x => x.symbol === symbol)[0] ? !active_symbols.filter(symbol_info => symbol_info.symbol === symbol)[0].exchange_is_open : false; }; -export const pickDefaultSymbol = async (active_symbols = []) => { +export const pickDefaultSymbol = async (active_symbols: ActiveSymbols = []) => { if (!active_symbols.length) return ''; const fav_open_symbol = await getFavoriteOpenSymbol(active_symbols); if (fav_open_symbol) return fav_open_symbol; @@ -74,11 +88,11 @@ export const pickDefaultSymbol = async (active_symbols = []) => { return default_open_symbol; }; -const getFavoriteOpenSymbol = async active_symbols => { +const getFavoriteOpenSymbol = async (active_symbols: ActiveSymbols) => { try { const chart_favorites = LocalStore.get('cq-favorites'); if (!chart_favorites) return undefined; - const client_favorite_markets = JSON.parse(chart_favorites)['chartTitle&Comparison']; + const client_favorite_markets: string[] = JSON.parse(chart_favorites)['chartTitle&Comparison']; const client_favorite_list = client_favorite_markets.map(client_fav_symbol => active_symbols.find(symbol_info => symbol_info.symbol === client_fav_symbol) @@ -86,7 +100,7 @@ const getFavoriteOpenSymbol = async active_symbols => { if (client_favorite_list) { const client_first_open_symbol = client_favorite_list.filter(symbol => symbol).find(isSymbolOpen); if (client_first_open_symbol) { - const is_symbol_offered = await isSymbolOffered(client_first_open_symbol); + const is_symbol_offered = await isSymbolOffered(client_first_open_symbol.symbol); if (is_symbol_offered) return client_first_open_symbol.symbol; } } @@ -96,48 +110,58 @@ const getFavoriteOpenSymbol = async active_symbols => { } }; -const getDefaultOpenSymbol = async active_symbols => { +const getDefaultOpenSymbol = async (active_symbols: ActiveSymbols) => { const default_open_symbol = (await findSymbol(active_symbols, '1HZ100V')) || (await findFirstSymbol(active_symbols, /random_index/)) || (await findFirstSymbol(active_symbols, /major_pairs/)); if (default_open_symbol) return default_open_symbol.symbol; - return active_symbols.find(symbol_info => symbol_info.submarket === 'major_pairs').symbol; + return active_symbols.find(symbol_info => symbol_info.submarket === 'major_pairs')?.symbol; }; -const findSymbol = async (active_symbols, symbol) => { +const findSymbol = async (active_symbols: ActiveSymbols, symbol: string) => { const first_symbol = active_symbols.find(symbol_info => symbol_info.symbol === symbol && isSymbolOpen(symbol_info)); - const is_symbol_offered = await isSymbolOffered(first_symbol); + const is_symbol_offered = await isSymbolOffered(first_symbol?.symbol); if (is_symbol_offered) return first_symbol; return undefined; }; -const findFirstSymbol = async (active_symbols, pattern) => { +const findFirstSymbol = async (active_symbols: ActiveSymbols, pattern: RegExp) => { const first_symbol = active_symbols.find( symbol_info => pattern.test(symbol_info.submarket) && isSymbolOpen(symbol_info) ); - const is_symbol_offered = await isSymbolOffered(first_symbol); + const is_symbol_offered = await isSymbolOffered(first_symbol?.symbol); if (is_symbol_offered) return first_symbol; return undefined; }; -export const findFirstOpenMarket = async (active_symbols, markets) => { +type TFindFirstOpenMarket = { category?: string; subcategory?: string } | undefined; + +export const findFirstOpenMarket = async ( + active_symbols: ActiveSymbols, + markets: string[] +): Promise => { const market = markets.shift(); const first_symbol = active_symbols.find(symbol_info => market === symbol_info.market && isSymbolOpen(symbol_info)); - const is_symbol_offered = await isSymbolOffered(first_symbol); - if (is_symbol_offered) return { category: first_symbol.market, subcategory: first_symbol.submarket }; + const is_symbol_offered = await isSymbolOffered(first_symbol?.symbol); + if (is_symbol_offered) return { category: first_symbol?.market, subcategory: first_symbol?.submarket }; else if (markets.length > 0) return findFirstOpenMarket(active_symbols, markets); return undefined; }; -const isSymbolOpen = symbol => symbol.exchange_is_open === 1; +const isSymbolOpen = (symbol?: TIsSymbolOpen) => symbol?.exchange_is_open === 1; -const isSymbolOffered = async symbol_info => { - const r = await WS.storage.contractsFor(symbol_info?.symbol); +const isSymbolOffered = async (symbol?: string) => { + const r = await WS.storage.contractsFor(symbol); return !['InvalidSymbol', 'InputValidationFailed'].includes(r.error?.code); }; -export const getSymbolDisplayName = (active_symbols = [], symbol) => +export type TActiveSymbols = { + symbol: string; + display_name: string; +}[]; + +export const getSymbolDisplayName = (active_symbols: TActiveSymbols = [], symbol: string) => ( active_symbols.find(symbol_info => symbol_info.symbol.toUpperCase() === symbol.toUpperCase()) || { display_name: '', diff --git a/packages/shared/src/utils/helpers/barrier.js b/packages/shared/src/utils/helpers/barrier.js deleted file mode 100644 index 2dff13e7393f..000000000000 --- a/packages/shared/src/utils/helpers/barrier.js +++ /dev/null @@ -1,20 +0,0 @@ -export const buildBarriersConfig = (contract, barriers = { count: contract.barriers }) => { - if (!contract.barriers) { - return undefined; - } - - const obj_barrier = {}; - - ['barrier', 'low_barrier', 'high_barrier'].forEach(field => { - if (field in contract) obj_barrier[field] = contract[field]; - }); - - return Object.assign(barriers || {}, { - [contract.expiry_type]: obj_barrier, - }); -}; - -export const getBarrierPipSize = barrier => { - if (Math.floor(barrier) === barrier || barrier.length < 1 || barrier % 1 === 0 || isNaN(barrier)) return 0; - return barrier.toString().split('.')[1].length || 0; -}; diff --git a/packages/shared/src/utils/helpers/barrier.ts b/packages/shared/src/utils/helpers/barrier.ts new file mode 100644 index 000000000000..cd4c0ef87c71 --- /dev/null +++ b/packages/shared/src/utils/helpers/barrier.ts @@ -0,0 +1,30 @@ +type TContract = { + high_barrier?: null | string; + barriers?: number; + barrier?: null | string; + low_barrier?: null | string; + expiry_type: string; +}; + +type TObjectBarrier = Pick; + +export const buildBarriersConfig = (contract: TContract, barriers = { count: contract.barriers }) => { + if (!contract.barriers) { + return undefined; + } + + const obj_barrier: TObjectBarrier = {}; + + ['barrier', 'low_barrier', 'high_barrier'].forEach(field => { + if (field in contract) obj_barrier[field as keyof TObjectBarrier] = contract[field as keyof TObjectBarrier]; + }); + + return Object.assign(barriers || {}, { + [contract.expiry_type]: obj_barrier, + }); +}; + +export const getBarrierPipSize = (barrier: string) => { + if (Math.floor(+barrier) === +barrier || barrier.length < 1 || +barrier % 1 === 0 || isNaN(+barrier)) return 0; + return barrier.toString().split('.')[1].length || 0; +}; diff --git a/packages/shared/src/utils/helpers/barriers.js b/packages/shared/src/utils/helpers/barriers.js deleted file mode 100644 index 47eec5896432..000000000000 --- a/packages/shared/src/utils/helpers/barriers.js +++ /dev/null @@ -1,28 +0,0 @@ -import { toJS } from 'mobx'; -import { isEmptyObject } from '../object'; -import { CONTRACT_SHADES } from '../constants'; - -export const isBarrierSupported = contract_type => contract_type in CONTRACT_SHADES; - -export const barriersToString = (is_relative, ...barriers_list) => - barriers_list - .filter(barrier => barrier !== undefined && barrier !== null) - .map(barrier => `${is_relative && !/^[+-]/.test(barrier) ? '+' : ''}${barrier}`); - -export const barriersObjectToArray = (barriers, reference_array) => { - Object.keys(barriers).forEach(barrier => { - const js_object = toJS(barriers[barrier]); - if (!isEmptyObject(js_object)) { - reference_array.push(js_object); - } - }); - - return reference_array; -}; - -export const removeBarrier = (barriers, key) => { - const index = barriers.findIndex(b => b.key === key); - if (index > -1) { - barriers.splice(index, 1); - } -}; diff --git a/packages/shared/src/utils/helpers/barriers.ts b/packages/shared/src/utils/helpers/barriers.ts new file mode 100644 index 000000000000..e259724993d1 --- /dev/null +++ b/packages/shared/src/utils/helpers/barriers.ts @@ -0,0 +1,15 @@ +import { CONTRACT_SHADES } from '../constants'; + +export const isBarrierSupported = (contract_type: string) => contract_type in CONTRACT_SHADES; + +export const barriersToString = (is_relative: boolean, ...barriers_list: number[]) => + barriers_list + .filter(barrier => barrier !== undefined && barrier !== null) + .map(barrier => `${is_relative && !/^[+-]/.test(barrier.toString()) ? '+' : ''}${barrier}`); + +export const removeBarrier = (barriers: { [key: string]: string | number }[], key: string) => { + const index = barriers.findIndex(b => b.key === key); + if (index > -1) { + barriers.splice(index, 1); + } +}; diff --git a/packages/shared/src/utils/helpers/chart-notifications.js b/packages/shared/src/utils/helpers/chart-notifications.tsx similarity index 100% rename from packages/shared/src/utils/helpers/chart-notifications.js rename to packages/shared/src/utils/helpers/chart-notifications.tsx diff --git a/packages/shared/src/utils/helpers/details.js b/packages/shared/src/utils/helpers/details.ts similarity index 82% rename from packages/shared/src/utils/helpers/details.js rename to packages/shared/src/utils/helpers/details.ts index cf1a585acaaf..067e191f42fc 100644 --- a/packages/shared/src/utils/helpers/details.js +++ b/packages/shared/src/utils/helpers/details.ts @@ -1,7 +1,15 @@ import { epochToMoment, formatMilliseconds, getDiffDuration } from '../date'; import { localize } from '@deriv/translations'; +import moment from 'moment'; -export const getDurationUnitValue = obj_duration => { +type TGetDurationPeriod = { + date_start: number; + purchase_time: number; + date_expiry: number; + tick_count?: number; +}; + +export const getDurationUnitValue = (obj_duration: moment.Duration) => { const duration_ms = obj_duration.asMilliseconds() / 1000; // Check with isEndTime to find out if value of duration has decimals // for days we do not require precision for End Time value since users cannot select with timepicker if not in same day @@ -29,7 +37,7 @@ export const getDurationUnitValue = obj_duration => { return Math.floor(duration_ms / 1000); }; -export const isEndTime = duration => duration % 1 !== 0; +export const isEndTime = (duration: number) => duration % 1 !== 0; export const getUnitMap = () => { return { @@ -40,7 +48,7 @@ export const getUnitMap = () => { }; }; -export const getDurationUnitText = obj_duration => { +export const getDurationUnitText = (obj_duration: moment.Duration) => { const unit_map = getUnitMap(); const duration_ms = obj_duration.asMilliseconds() / 1000; // return empty suffix string if duration is End Time set except for days and seconds, refer to L18 and L19 @@ -62,11 +70,11 @@ export const getDurationUnitText = obj_duration => { return unit_map.s.name; }; -export const getDurationPeriod = contract_info => +export const getDurationPeriod = (contract_info: TGetDurationPeriod) => getDiffDuration( - epochToMoment(contract_info.date_start || contract_info.purchase_time), - epochToMoment(contract_info.date_expiry) + +epochToMoment(contract_info.date_start || contract_info.purchase_time), + +epochToMoment(contract_info.date_expiry) ); -export const getDurationTime = contract_info => +export const getDurationTime = (contract_info: TGetDurationPeriod) => contract_info.tick_count ? contract_info.tick_count : getDurationUnitValue(getDurationPeriod(contract_info)); diff --git a/packages/shared/src/utils/helpers/duration.js b/packages/shared/src/utils/helpers/duration.ts similarity index 52% rename from packages/shared/src/utils/helpers/duration.js rename to packages/shared/src/utils/helpers/duration.ts index 6cabf969565d..d86da73fc179 100644 --- a/packages/shared/src/utils/helpers/duration.js +++ b/packages/shared/src/utils/helpers/duration.ts @@ -1,28 +1,67 @@ import { localize } from '@deriv/translations'; import { toMoment } from '../date'; +type TContract = { + max_contract_duration: string; + min_contract_duration: string; + expiry_type: string; + start_type: string; +}; + +type TMaxMin = { + min: number; + max: number; +}; + +type TUnit = { + text: string; + value: string; +}; + +type TDurations = { + min_max: { + spot?: Partial>; + forward?: Record<'intraday', TMaxMin>; + }; + units_display: Partial>; +}; + +type TDurationMinMax = { + [key: string]: { + max: string | number; + min: string | number; + }; +}; + const getDurationMaps = () => ({ - t: { display: localize('Ticks'), order: 1 }, + t: { display: localize('Ticks'), order: 1, to_second: 0 }, s: { display: localize('Seconds'), order: 2, to_second: 1 }, m: { display: localize('Minutes'), order: 3, to_second: 60 }, h: { display: localize('Hours'), order: 4, to_second: 60 * 60 }, d: { display: localize('Days'), order: 5, to_second: 60 * 60 * 24 }, }); -export const buildDurationConfig = (contract, durations = { min_max: {}, units_display: {} }) => { - durations.min_max[contract.start_type] = durations.min_max[contract.start_type] || {}; - durations.units_display[contract.start_type] = durations.units_display[contract.start_type] || []; +export const buildDurationConfig = ( + contract: TContract, + durations: TDurations = { min_max: {}, units_display: {} } +) => { + type TDurationMaps = keyof typeof duration_maps; + let duration_min_max = durations.min_max[contract.start_type as keyof typeof durations.min_max]; + let duration_units = durations.units_display[contract.start_type as keyof typeof durations.units_display]; + + duration_min_max = duration_min_max || {}; + duration_units = duration_units || []; const obj_min = getDurationFromString(contract.min_contract_duration); const obj_max = getDurationFromString(contract.max_contract_duration); - durations.min_max[contract.start_type][contract.expiry_type] = { - min: convertDurationUnit(obj_min.duration, obj_min.unit, 's'), - max: convertDurationUnit(obj_max.duration, obj_max.unit, 's'), + duration_min_max[contract.expiry_type as keyof typeof duration_min_max] = { + min: convertDurationUnit(obj_min.duration, obj_min.unit, 's') || 0, + max: convertDurationUnit(obj_max.duration, obj_max.unit, 's') || 0, }; - const arr_units = []; - durations.units_display[contract.start_type].forEach(obj => { + const arr_units: string[] = []; + duration_units.forEach(obj => { arr_units.push(obj.value); }); @@ -37,51 +76,59 @@ export const buildDurationConfig = (contract, durations = { min_max: {}, units_d if ( u !== 'd' && // when the expiray_type is intraday, the supported units are seconds, minutes and hours. arr_units.indexOf(u) === -1 && - duration_maps[u].order >= duration_maps[obj_min.unit].order && - duration_maps[u].order <= duration_maps[obj_max.unit].order + duration_maps[u as TDurationMaps].order >= duration_maps[obj_min.unit as TDurationMaps].order && + duration_maps[u as TDurationMaps].order <= duration_maps[obj_max.unit as TDurationMaps].order ) { arr_units.push(u); } }); } - durations.units_display[contract.start_type] = arr_units - .sort((a, b) => (duration_maps[a].order > duration_maps[b].order ? 1 : -1)) - .reduce((o, c) => [...o, { text: duration_maps[c].display, value: c }], []); + duration_units = arr_units + .sort((a, b) => (duration_maps[a as TDurationMaps].order > duration_maps[b as TDurationMaps].order ? 1 : -1)) + .reduce((o, c) => [...o, { text: duration_maps[c as TDurationMaps].display, value: c }], [] as TUnit[]); return durations; }; -export const convertDurationUnit = (value, from_unit, to_unit) => { - if (!value || !from_unit || !to_unit || isNaN(parseInt(value))) { +export const convertDurationUnit = (value: number, from_unit: string, to_unit: string) => { + if (!value || !from_unit || !to_unit || isNaN(value)) { return null; } const duration_maps = getDurationMaps(); - if (from_unit === to_unit || !('to_second' in duration_maps[from_unit])) { + if (from_unit === to_unit || !('to_second' in duration_maps[from_unit as keyof typeof duration_maps])) { return value; } - return (value * duration_maps[from_unit].to_second) / duration_maps[to_unit].to_second; + return ( + (value * duration_maps[from_unit as keyof typeof duration_maps].to_second) / + duration_maps[to_unit as keyof typeof duration_maps].to_second + ); }; -const getDurationFromString = duration_string => { - const duration = duration_string.toString().match(/[a-zA-Z]+|[0-9]+/g); +const getDurationFromString = (duration_string: string) => { + const duration = duration_string.toString().match(/[a-zA-Z]+|[0-9]+/g) || ''; return { duration: +duration[0], // converts string to numbers unit: duration[1], }; }; -export const getExpiryType = store => { +// TODO will change this after the global stores types get ready +export const getExpiryType = (store: any) => { const { duration_unit, expiry_date, expiry_type, duration_units_list } = store; const server_time = store.root_store.common.server_time; const duration_is_day = expiry_type === 'duration' && duration_unit === 'd'; const expiry_is_after_today = expiry_type === 'endtime' && - (toMoment(expiry_date).isAfter(toMoment(server_time), 'day') || !hasIntradayDurationUnit(duration_units_list)); + ((toMoment(expiry_date) as unknown as moment.Moment).isAfter( + toMoment(server_time) as unknown as moment.MomentInput, + 'day' + ) || + !hasIntradayDurationUnit(duration_units_list)); let contract_expiry_type = 'daily'; if (!duration_is_day && !expiry_is_after_today) { @@ -91,7 +138,7 @@ export const getExpiryType = store => { return contract_expiry_type; }; -export const convertDurationLimit = (value, unit) => { +export const convertDurationLimit = (value: number, unit: string) => { if (!(value >= 0) || !unit || !Number.isInteger(value)) { return null; } @@ -110,7 +157,7 @@ export const convertDurationLimit = (value, unit) => { return value; }; -export const hasIntradayDurationUnit = duration_units_list => +export const hasIntradayDurationUnit = (duration_units_list: TUnit[]) => duration_units_list.some(unit => ['m', 'h'].indexOf(unit.value) !== -1); /** @@ -120,10 +167,14 @@ export const hasIntradayDurationUnit = duration_units_list => * @param {String} expiry_type * @returns {*} */ -export const resetEndTimeOnVolatilityIndices = (symbol, expiry_type) => +export const resetEndTimeOnVolatilityIndices = (symbol: string, expiry_type: string) => /^R_/.test(symbol) && expiry_type === 'endtime' ? toMoment(null).format('DD MMM YYYY') : null; -export const getDurationMinMaxValues = (duration_min_max, contract_expiry_type, duration_unit) => { +export const getDurationMinMaxValues = ( + duration_min_max: TDurationMinMax, + contract_expiry_type: string, + duration_unit: string +) => { if (!duration_min_max[contract_expiry_type]) return []; const max_value = convertDurationLimit(+duration_min_max[contract_expiry_type].max, duration_unit); const min_value = convertDurationLimit(+duration_min_max[contract_expiry_type].min, duration_unit); diff --git a/packages/shared/src/utils/helpers/format-response.js b/packages/shared/src/utils/helpers/format-response.js deleted file mode 100644 index da9671ded31d..000000000000 --- a/packages/shared/src/utils/helpers/format-response.js +++ /dev/null @@ -1,29 +0,0 @@ -import { getUnsupportedContracts } from '../constants'; -import { getSymbolDisplayName } from './active-symbols'; -import { getMarketInformation } from './market-underlying'; - -const isUnSupportedContract = portfolio_pos => - !!getUnsupportedContracts()[portfolio_pos.contract_type] || // check unsupported contract type - !!portfolio_pos.is_forward_starting; // for forward start contracts - -export const formatPortfolioPosition = (portfolio_pos, active_symbols = [], indicative) => { - const purchase = parseFloat(portfolio_pos.buy_price); - const payout = parseFloat(portfolio_pos.payout); - const display_name = getSymbolDisplayName(active_symbols, getMarketInformation(portfolio_pos.shortcode).underlying); - const transaction_id = - portfolio_pos.transaction_id || (portfolio_pos.transaction_ids && portfolio_pos.transaction_ids.buy); - - return { - contract_info: portfolio_pos, - details: portfolio_pos.longcode.replace(/\n/g, '
'), - display_name, - id: portfolio_pos.contract_id, - indicative: isNaN(indicative) || !indicative ? 0 : indicative, - payout, - purchase, - reference: +transaction_id, - type: portfolio_pos.contract_type, - is_unsupported: isUnSupportedContract(portfolio_pos), - contract_update: portfolio_pos.limit_order, - }; -}; diff --git a/packages/shared/src/utils/helpers/format-response.ts b/packages/shared/src/utils/helpers/format-response.ts new file mode 100644 index 000000000000..5cb8f2baac36 --- /dev/null +++ b/packages/shared/src/utils/helpers/format-response.ts @@ -0,0 +1,56 @@ +import { getUnsupportedContracts } from '../constants'; +import { getSymbolDisplayName, TActiveSymbols } from './active-symbols'; +import { getMarketInformation } from './market-underlying'; + +type TPortfolioPos = { + buy_price: number; + contract_id?: number; + contract_type?: string; + longcode: string; + payout: number; + shortcode: string; + transaction_id?: number; + transaction_ids?: { + buy: number; + sell: number; + }; + limit_order?: { + stop_loss?: null | number; + take_profit?: null | number; + }; +}; + +type TIsUnSupportedContract = { + contract_type?: string; + is_forward_starting?: 0 | 1; +}; + +const isUnSupportedContract = (portfolio_pos: TIsUnSupportedContract) => + !!getUnsupportedContracts()[portfolio_pos.contract_type as keyof typeof getUnsupportedContracts] || // check unsupported contract type + !!portfolio_pos.is_forward_starting; // for forward start contracts + +export const formatPortfolioPosition = ( + portfolio_pos: TPortfolioPos, + active_symbols: TActiveSymbols = [], + indicative?: number +) => { + const purchase = portfolio_pos.buy_price; + const payout = portfolio_pos.payout; + const display_name = getSymbolDisplayName(active_symbols, getMarketInformation(portfolio_pos.shortcode).underlying); + const transaction_id = + portfolio_pos.transaction_id || (portfolio_pos.transaction_ids && portfolio_pos.transaction_ids.buy); + + return { + contract_info: portfolio_pos, + details: portfolio_pos.longcode.replace(/\n/g, '
'), + display_name, + id: portfolio_pos.contract_id, + indicative: (indicative && isNaN(indicative)) || !indicative ? 0 : indicative, + payout, + purchase, + reference: Number(transaction_id), + type: portfolio_pos.contract_type, + is_unsupported: isUnSupportedContract(portfolio_pos), + contract_update: portfolio_pos.limit_order, + }; +}; diff --git a/packages/shared/src/utils/helpers/index.js b/packages/shared/src/utils/helpers/index.ts similarity index 100% rename from packages/shared/src/utils/helpers/index.js rename to packages/shared/src/utils/helpers/index.ts diff --git a/packages/shared/src/utils/helpers/logic.js b/packages/shared/src/utils/helpers/logic.js deleted file mode 100644 index 709641fb105a..000000000000 --- a/packages/shared/src/utils/helpers/logic.js +++ /dev/null @@ -1,58 +0,0 @@ -import moment from 'moment'; -import { isEmptyObject } from '../object'; -import { isUserSold } from '../contract'; - -export const isContractElapsed = (contract_info, tick) => { - if (isEmptyObject(tick) || isEmptyObject(contract_info)) return false; - const end_time = getEndTime(contract_info); - if (end_time && tick.epoch) { - const seconds = moment.duration(moment.unix(tick.epoch).diff(moment.unix(end_time))).asSeconds(); - return seconds >= 2; - } - return false; -}; - -export const isEndedBeforeCancellationExpired = contract_info => - !!(contract_info.cancellation && getEndTime(contract_info) < contract_info.cancellation.date_expiry); - -export const isSoldBeforeStart = contract_info => - contract_info.sell_time && +contract_info.sell_time < +contract_info.date_start; - -export const isStarted = contract_info => - !contract_info.is_forward_starting || contract_info.current_spot_time > contract_info.date_start; - -export const isUserCancelled = contract_info => contract_info.status === 'cancelled'; - -export const getEndTime = contract_info => { - const { - exit_tick_time, - date_expiry, - is_expired, - is_path_dependent, - sell_time, - status, - tick_count: is_tick_contract, - } = contract_info; - - const is_finished = is_expired && status !== 'open'; - - if (!is_finished && !isUserSold(contract_info) && !isUserCancelled(contract_info)) return undefined; - - if (isUserSold(contract_info)) { - return sell_time > date_expiry ? date_expiry : sell_time; - } else if (!is_tick_contract && sell_time > date_expiry) { - return date_expiry; - } - - return date_expiry > exit_tick_time && !+is_path_dependent ? date_expiry : exit_tick_time; -}; - -export const getBuyPrice = contract_store => { - return contract_store.contract_info.buy_price; -}; - -/** - * Set contract update form initial values - * @param {object} contract_update - contract_update response - * @param {object} limit_order - proposal_open_contract.limit_order response - */ diff --git a/packages/shared/src/utils/helpers/logic.ts b/packages/shared/src/utils/helpers/logic.ts new file mode 100644 index 000000000000..78c7fdb3e1bb --- /dev/null +++ b/packages/shared/src/utils/helpers/logic.ts @@ -0,0 +1,91 @@ +import moment from 'moment'; +import { isEmptyObject } from '../object'; +import { isUserSold } from '../contract'; +import { TContractInfo } from '../contract/contract-types'; + +type TTick = { + ask?: number; + bid?: number; + epoch?: number; + id?: string; + pip_size: number; + quote?: number; + symbol?: string; +}; + +type TIsEndedBeforeCancellationExpired = TGetEndTime & { + cancellation: { + ask_price: number; + date_expiry: number; + }; +}; + +type TIsSoldBeforeStart = Required>; + +type TIsStarted = Required>; + +type TGetEndTime = Pick & + Required>; + +type TGetBuyPrice = { + contract_info: { + buy_price: number; + }; +}; + +export const isContractElapsed = (contract_info: TGetEndTime, tick: TTick) => { + if (isEmptyObject(tick) || isEmptyObject(contract_info)) return false; + const end_time = getEndTime(contract_info) || 0; + if (end_time && tick.epoch) { + const seconds = moment.duration(moment.unix(tick.epoch).diff(moment.unix(end_time))).asSeconds(); + return seconds >= 2; + } + return false; +}; + +export const isEndedBeforeCancellationExpired = (contract_info: TIsEndedBeforeCancellationExpired) => { + const end_time = getEndTime(contract_info) || 0; + return !!(contract_info.cancellation && end_time < contract_info.cancellation.date_expiry); +}; + +export const isSoldBeforeStart = (contract_info: TIsSoldBeforeStart) => + contract_info.sell_time && +contract_info.sell_time < +contract_info.date_start; + +export const isStarted = (contract_info: TIsStarted) => + !contract_info.is_forward_starting || contract_info.current_spot_time > contract_info.date_start; + +export const isUserCancelled = (contract_info: TContractInfo) => contract_info.status === 'cancelled'; + +export const getEndTime = (contract_info: TGetEndTime) => { + const { + exit_tick_time, + date_expiry, + is_expired, + is_path_dependent, + sell_time, + status, + tick_count: is_tick_contract, + } = contract_info; + + const is_finished = is_expired && status !== 'open'; + + if (!is_finished && !isUserSold(contract_info) && !isUserCancelled(contract_info)) return undefined; + + if (isUserSold(contract_info) && sell_time) { + return sell_time > date_expiry ? date_expiry : sell_time; + } else if (!is_tick_contract && sell_time && sell_time > date_expiry) { + return date_expiry; + } + + return date_expiry > exit_tick_time && !+is_path_dependent ? date_expiry : exit_tick_time; +}; + +export const getBuyPrice = (contract_store: TGetBuyPrice) => { + return contract_store.contract_info.buy_price; +}; + +/** + * Set contract update form initial values + * @param {object} contract_update - contract_update response + * @param {object} limit_order - proposal_open_contract.limit_order response + */ diff --git a/packages/shared/src/utils/helpers/market-underlying.js b/packages/shared/src/utils/helpers/market-underlying.ts similarity index 60% rename from packages/shared/src/utils/helpers/market-underlying.js rename to packages/shared/src/utils/helpers/market-underlying.ts index 7915a889d04e..c8aa7b5e4a9a 100644 --- a/packages/shared/src/utils/helpers/market-underlying.js +++ b/packages/shared/src/utils/helpers/market-underlying.ts @@ -1,5 +1,10 @@ import { getMarketNamesMap, getContractConfig } from '../constants/contract'; +type TTradeConfig = { + name: JSX.Element; + position: string; +}; + /** * Fetch market information from shortcode * @param shortcode: string @@ -7,7 +12,7 @@ import { getMarketNamesMap, getContractConfig } from '../constants/contract'; */ // TODO: Combine with extractInfoFromShortcode function in shared, both are currently used -export const getMarketInformation = shortcode => { +export const getMarketInformation = (shortcode: string) => { const market_info = { category: '', underlying: '', @@ -25,6 +30,10 @@ export const getMarketInformation = shortcode => { return market_info; }; -export const getMarketName = underlying => (underlying ? getMarketNamesMap()[underlying.toUpperCase()] : null); +export const getMarketName = (underlying: string) => + underlying ? getMarketNamesMap()[underlying.toUpperCase() as keyof typeof getMarketNamesMap] : null; -export const getTradeTypeName = category => (category ? getContractConfig()[category.toUpperCase()].name : null); +export const getTradeTypeName = (category: string) => + category + ? (getContractConfig()[category.toUpperCase() as keyof typeof getContractConfig] as TTradeConfig).name + : null; diff --git a/packages/shared/src/utils/helpers/portfolio-notifications.js b/packages/shared/src/utils/helpers/portfolio-notifications.tsx similarity index 89% rename from packages/shared/src/utils/helpers/portfolio-notifications.js rename to packages/shared/src/utils/helpers/portfolio-notifications.tsx index 60d23a5a6394..704434caa9fe 100644 --- a/packages/shared/src/utils/helpers/portfolio-notifications.js +++ b/packages/shared/src/utils/helpers/portfolio-notifications.tsx @@ -1,7 +1,7 @@ import React from 'react'; import { localize, Localize } from '@deriv/translations'; -export const contractSold = (currency, sold_for, Money) => ({ +export const contractSold = (currency: string, sold_for: number | string, Money: React.ElementType) => ({ key: 'contract_sold', header: localize('Contract sold'), message: ( diff --git a/packages/shared/src/utils/helpers/start-date.js b/packages/shared/src/utils/helpers/start-date.ts similarity index 61% rename from packages/shared/src/utils/helpers/start-date.js rename to packages/shared/src/utils/helpers/start-date.ts index b1b748ed3d11..250d4337b988 100644 --- a/packages/shared/src/utils/helpers/start-date.js +++ b/packages/shared/src/utils/helpers/start-date.ts @@ -1,7 +1,28 @@ +import moment from 'moment'; import { toMoment } from '../date'; -export const buildForwardStartingConfig = (contract, forward_starting_dates) => { - const forward_starting_config = []; +type TForwardStartingDates = { + blackouts?: unknown[]; + close?: string; + date: string; + open?: string; +}; + +type TContract = { + forward_starting_options: TForwardStartingDates[]; +}; + +type TConfig = { + text: string; + value: number; + sessions: { + open: moment.Moment; + close: moment.Moment; + }[]; +}[]; + +export const buildForwardStartingConfig = (contract: TContract, forward_starting_dates: TForwardStartingDates[]) => { + const forward_starting_config: TConfig = []; if ((contract.forward_starting_options || []).length) { contract.forward_starting_options.forEach(option => { diff --git a/packages/shared/src/utils/helpers/validation-rules.js b/packages/shared/src/utils/helpers/validation-rules.ts similarity index 71% rename from packages/shared/src/utils/helpers/validation-rules.js rename to packages/shared/src/utils/helpers/validation-rules.ts index 8bed8e007d02..7b484514d75b 100644 --- a/packages/shared/src/utils/helpers/validation-rules.js +++ b/packages/shared/src/utils/helpers/validation-rules.ts @@ -1,7 +1,20 @@ import { localize } from '@deriv/translations'; import { getTotalProfit } from '../contract'; +import { TGetTotalProfit } from '../contract/contract-types'; import { getBuyPrice } from './logic'; +type TContractStore = { + contract_update_stop_loss?: number; + contract_info: TGetTotalProfit; + contract_update_take_profit?: string; +}; + +type TOptions = { + message?: string; + min?: number; + max?: number; +}; + export const getContractValidationRules = () => ({ has_contract_update_stop_loss: { trigger: 'contract_update_stop_loss', @@ -11,14 +24,14 @@ export const getContractValidationRules = () => ({ [ 'req', { - condition: contract_store => !contract_store.contract_update_stop_loss, + condition: (contract_store: TContractStore) => !contract_store.contract_update_stop_loss, message: localize('Please enter a stop loss amount.'), }, ], [ 'custom', { - func: (value, options, contract_store) => { + func: (value: number, options: TOptions, contract_store: TContractStore) => { const profit = getTotalProfit(contract_store.contract_info); return !(profit < 0 && -value > profit); }, @@ -28,7 +41,7 @@ export const getContractValidationRules = () => ({ [ 'custom', { - func: (value, options, contract_store) => { + func: (value: number, options: TOptions, contract_store: TContractStore) => { const stake = getBuyPrice(contract_store); return value < stake + 1; }, @@ -45,14 +58,14 @@ export const getContractValidationRules = () => ({ [ 'req', { - condition: contract_store => !contract_store.contract_update_take_profit, + condition: (contract_store: TContractStore) => !contract_store.contract_update_take_profit, message: localize('Please enter a take profit amount.'), }, ], [ 'custom', { - func: (value, options, contract_store) => { + func: (value: string | number, options: TOptions, contract_store: TContractStore) => { const profit = getTotalProfit(contract_store.contract_info); return !(profit > 0 && +value < profit); }, diff --git a/packages/shared/src/utils/login/login.ts b/packages/shared/src/utils/login/login.ts index 246d300ec39a..d46a26685ba7 100644 --- a/packages/shared/src/utils/login/login.ts +++ b/packages/shared/src/utils/login/login.ts @@ -30,9 +30,9 @@ type TLoginUrl = { export const loginUrl = ({ language }: TLoginUrl) => { const server_url = LocalStore.get('config.server_url'); - const signup_device_cookie = new CookieStorage('signup_device'); + const signup_device_cookie = new (CookieStorage as any)('signup_device'); const signup_device = signup_device_cookie.get('signup_device'); - const date_first_contact_cookie = new CookieStorage('date_first_contact'); + const date_first_contact_cookie = new (CookieStorage as any)('date_first_contact'); const date_first_contact = date_first_contact_cookie.get('date_first_contact'); const marketing_queries = `${signup_device ? `&signup_device=${signup_device}` : ''}${ date_first_contact ? `&date_first_contact=${date_first_contact}` : '' diff --git a/packages/shared/src/utils/storage/index.js b/packages/shared/src/utils/storage/index.ts similarity index 100% rename from packages/shared/src/utils/storage/index.js rename to packages/shared/src/utils/storage/index.ts diff --git a/packages/shared/src/utils/storage/storage.js b/packages/shared/src/utils/storage/storage.ts similarity index 76% rename from packages/shared/src/utils/storage/storage.js rename to packages/shared/src/utils/storage/storage.ts index f99db278f5b6..0c66975d32f4 100644 --- a/packages/shared/src/utils/storage/storage.js +++ b/packages/shared/src/utils/storage/storage.ts @@ -2,11 +2,20 @@ import Cookies from 'js-cookie'; import { deriv_urls } from '../url/constants'; import { getPropertyValue, isEmptyObject } from '../object/object'; -const getObject = function (key) { +type TCookieStorageThis = { + initialized: boolean; + cookie_name: string; + domain: string; + path: string; + expires: Date; + value: unknown; +}; + +const getObject = function (this: { getItem: (key: string) => string | null }, key: string) { return JSON.parse(this.getItem(key) || '{}'); }; -const setObject = function (key, value) { +const setObject = function (this: { setItem: (key: string, value: string) => void }, key: string, value: unknown) { if (value && value instanceof Object) { try { this.setItem(key, JSON.stringify(value)); @@ -21,7 +30,7 @@ if (typeof Storage !== 'undefined') { Storage.prototype.setObject = setObject; } -export const isStorageSupported = storage => { +export const isStorageSupported = (storage: Storage) => { if (typeof storage === 'undefined') { return false; } @@ -36,27 +45,27 @@ export const isStorageSupported = storage => { } }; -const Store = function (storage) { +const Store = function (this: { storage: Storage }, storage: Storage) { this.storage = storage; this.storage.getObject = getObject; this.storage.setObject = setObject; }; Store.prototype = { - get(key) { + get(key: string) { return this.storage.getItem(key) || undefined; }, - set(key, value) { + set(key: string, value: string) { if (typeof value !== 'undefined') { this.storage.setItem(key, value); } }, - getObject(key) { + getObject(key: string) { return typeof this.storage.getObject === 'function' // Prevent runtime error in IE ? this.storage.getObject(key) : JSON.parse(this.storage.getItem(key) || '{}'); }, - setObject(key, value) { + setObject(key: string, value: unknown) { if (typeof this.storage.setObject === 'function') { // Prevent runtime error in IE this.storage.setObject(key, value); @@ -64,7 +73,7 @@ Store.prototype = { this.storage.setItem(key, JSON.stringify(value)); } }, - remove(key) { + remove(key: string) { this.storage.removeItem(key); }, clear() { @@ -72,15 +81,20 @@ Store.prototype = { }, }; -const InScriptStore = function (object) { +const InScriptStore = function (this: { store: unknown }, object?: unknown) { this.store = typeof object !== 'undefined' ? object : {}; }; InScriptStore.prototype = { - get(key) { + get(key: string) { return getPropertyValue(this.store, key); }, - set(k, value, obj = this.store) { + set( + this: { store: any; set: (key: string | string[], value: string, obj: string[]) => void }, + k: string | string[], + value: string, + obj = this.store + ) { let key = k; if (!Array.isArray(key)) key = [key]; if (key.length > 1) { @@ -90,13 +104,13 @@ InScriptStore.prototype = { obj[key[0]] = value; } }, - getObject(key) { + getObject(key: string) { return JSON.parse(this.get(key) || '{}'); }, - setObject(key, value) { + setObject(key: string, value: unknown) { this.set(key, JSON.stringify(value)); }, - remove(...keys) { + remove(...keys: string[]) { keys.forEach(key => { delete this.store[key]; }); @@ -104,18 +118,18 @@ InScriptStore.prototype = { clear() { this.store = {}; }, - has(key) { + has(key: string) { return this.get(key) !== undefined; }, keys() { return Object.keys(this.store); }, - call(key) { + call(key: string) { if (typeof this.get(key) === 'function') this.get(key)(); }, }; -export const State = new InScriptStore(); +export const State = new (InScriptStore as any)(); State.prototype = InScriptStore.prototype; /** * Shorthand function to get values from response object of State @@ -123,7 +137,7 @@ State.prototype = InScriptStore.prototype; * @param {String} pathname * e.g. getResponse('authorize.currency') == get(['response', 'authorize', 'authorize', 'currency']) */ -State.prototype.getResponse = function (pathname) { +State.prototype.getResponse = function (pathname: string | string[]) { let path = pathname; if (typeof path === 'string') { const keys = path.split('.'); @@ -134,7 +148,7 @@ State.prototype.getResponse = function (pathname) { State.prototype.getByMsgType = State.getResponse; State.set('response', {}); -export const CookieStorage = function (cookie_name, cookie_domain) { +export const CookieStorage = function (this: TCookieStorageThis, cookie_name: string, cookie_domain?: string) { const hostname = window.location.hostname; this.initialized = false; @@ -159,7 +173,7 @@ CookieStorage.prototype = { } this.initialized = true; }, - write(val, expireDate, isSecure) { + write(val: string, expireDate: Date, isSecure: boolean) { if (!this.initialized) this.read(); this.value = val; if (expireDate) this.expires = expireDate; @@ -170,11 +184,11 @@ CookieStorage.prototype = { secure: !!isSecure, }); }, - get(key) { + get(key: string) { if (!this.initialized) this.read(); return this.value[key]; }, - set(key, val) { + set(key: string, val: string) { if (!this.initialized) this.read(); this.value[key] = val; Cookies.set(this.cookie_name, this.value, { @@ -191,7 +205,7 @@ CookieStorage.prototype = { }, }; -export const removeCookies = (...cookie_names) => { +export const removeCookies = (...cookie_names: string[]) => { const domains = [`.${document.domain.split('.').slice(-2).join('.')}`, `.${document.domain}`]; let parent_path = window.location.pathname.split('/', 2)[1]; @@ -212,8 +226,8 @@ export const removeCookies = (...cookie_names) => { }; export const LocalStore = isStorageSupported(window.localStorage) - ? new Store(window.localStorage) - : new InScriptStore(); + ? new (Store as any)(window.localStorage) + : new (InScriptStore as any)(); export const SessionStore = isStorageSupported(window.sessionStorage) - ? new Store(window.sessionStorage) - : new InScriptStore(); + ? new (Store as any)(window.sessionStorage) + : new (InScriptStore as any)(); diff --git a/packages/shared/src/utils/string/index.js b/packages/shared/src/utils/string/index.ts similarity index 100% rename from packages/shared/src/utils/string/index.js rename to packages/shared/src/utils/string/index.ts diff --git a/packages/shared/src/utils/string/string_util.js b/packages/shared/src/utils/string/string_util.ts similarity index 95% rename from packages/shared/src/utils/string/string_util.js rename to packages/shared/src/utils/string/string_util.ts index 792248f83e9f..129a8e01a356 100644 --- a/packages/shared/src/utils/string/string_util.js +++ b/packages/shared/src/utils/string/string_util.ts @@ -55,3 +55,5 @@ export const formatInput = (example_format, input_string, separator) => { }; export const getCharCount = (target_string, char) => target_string.match(new RegExp(char, 'g'))?.length || 0; + +export const capitalizeFirstLetter = string => string && string[0].toUpperCase() + string.slice(1); diff --git a/packages/shared/src/utils/url/__tests__/url.js b/packages/shared/src/utils/url/__tests__/url.js index 27481ca2b998..31df3fc2965e 100644 --- a/packages/shared/src/utils/url/__tests__/url.js +++ b/packages/shared/src/utils/url/__tests__/url.js @@ -1,15 +1,5 @@ import { deriv_urls } from '../constants'; -import { - reset, - urlFor, - websiteUrl, - paramsHash, - param, - urlForStatic, - resetStaticHost, - getPath, - getContractPath, -} from '../url'; +import { reset, urlFor, websiteUrl, getPath, getContractPath } from '../url'; import { expect } from '../../../test_utils/test_common'; // Testable URLs @@ -30,8 +20,8 @@ describe('Url', () => { beforeAll(() => { mockLocation(url); - /* - Pre defined values + /** + * Pre-defined values */ website_url = websiteUrl(); home_url = `${website_url}home.html`; @@ -48,7 +38,7 @@ describe('Url', () => { }); describe('.urlFor()', () => { it('returns home as default', () => { - [undefined, null, '', '/', 'home'].forEach(path => { + ['', '/', 'home'].forEach(path => { expect(urlFor(path)).to.eq(home_url); }); }); @@ -71,47 +61,6 @@ describe('Url', () => { ); }); }); - describe('.paramsHash()', () => { - it('returns correct object', () => { - expect(paramsHash(url_with_qs)) - .to.be.an('Object') - .and.to.have.all.keys('market', 'duration_amount', 'no_value') - .and.to.deep.equal(params_obj); - }); - it('returns empty object when there is no query string', () => { - expect(paramsHash(url_no_qs)).to.be.an('Object').and.to.deep.equal({}); - expect(paramsHash(`${url_no_qs}?`)) - .to.be.an('Object') - .and.to.deep.equal({}); - - expect(paramsHash()).to.deep.eq({}); - }); - }); - describe('.urlForStatic()', () => { - beforeEach(() => { - resetStaticHost(); - }); - - it('returns base path as default', () => { - expect(urlForStatic()).to.eq(website_url); - }); - it('returns expected path', () => { - expect(urlForStatic('images/common/plus.svg')).to.eq(`${website_url}images/common/plus.svg`); - }); - }); - - describe('.param()', () => { - beforeEach(() => { - mockLocation(url_with_qs); - }); - it('returns undefined if no match', () => { - expect(param()).to.eq(undefined); - }); - it('returns expected parameter', () => { - expect(param('duration_amount')).to.be.a('string').and.eq('5'); - expect(param('no_value')).to.be.a('string').and.eq(''); - }); - }); describe('.websiteUrl()', () => { it('returns expected value', () => { diff --git a/packages/shared/src/utils/url/constants.js b/packages/shared/src/utils/url/constants.ts similarity index 90% rename from packages/shared/src/utils/url/constants.js rename to packages/shared/src/utils/url/constants.ts index a27c53cbfef5..5a5082024cdb 100644 --- a/packages/shared/src/utils/url/constants.js +++ b/packages/shared/src/utils/url/constants.ts @@ -5,7 +5,7 @@ const deriv_me_url = 'deriv.me'; const deriv_be_url = 'deriv.be'; const supported_domains = [deriv_com_url, deriv_me_url, deriv_be_url]; -const domain_url_initial = isBrowser() && window.location.hostname.split('app.')[1]; +const domain_url_initial = (isBrowser() && window.location.hostname.split('app.')[1]) || ''; const domain_url = supported_domains.includes(domain_url_initial) ? domain_url_initial : deriv_com_url; export const deriv_urls = Object.freeze({ diff --git a/packages/shared/src/utils/url/helpers.js b/packages/shared/src/utils/url/helpers.ts similarity index 100% rename from packages/shared/src/utils/url/helpers.js rename to packages/shared/src/utils/url/helpers.ts diff --git a/packages/shared/src/utils/url/index.js b/packages/shared/src/utils/url/index.ts similarity index 100% rename from packages/shared/src/utils/url/index.js rename to packages/shared/src/utils/url/index.ts diff --git a/packages/shared/src/utils/url/url.js b/packages/shared/src/utils/url/url.ts similarity index 72% rename from packages/shared/src/utils/url/url.js rename to packages/shared/src/utils/url/url.ts index f36a14c08504..b8c8f8f23806 100644 --- a/packages/shared/src/utils/url/url.js +++ b/packages/shared/src/utils/url/url.ts @@ -3,6 +3,12 @@ import { getPlatformFromUrl } from './helpers'; import { getCurrentProductionDomain } from '../config/config'; import { routes } from '../routes'; +type TOption = { + query_string?: string; + legacy?: boolean; + language?: string; +}; + const default_domain = 'binary.com'; const host_map = { // the exceptions regarding updating the URLs @@ -11,12 +17,13 @@ const host_map = { 'academy.binary.com': 'academy.binary.com', 'blog.binary.com': 'blog.binary.com', }; -let location_url, static_host, default_language; -export const legacyUrlForLanguage = (target_language, url = window.location.href) => +let location_url: Location, default_language: string; + +export const legacyUrlForLanguage = (target_language: string, url: string = window.location.href) => url.replace(new RegExp(`/${default_language}/`, 'i'), `/${(target_language || 'EN').trim().toLowerCase()}/`); -export const urlForLanguage = (lang, url = window.location.href) => { +export const urlForLanguage = (lang: string, url: string = window.location.href) => { const current_url = new URL(url); if (lang === 'EN') { @@ -32,7 +39,7 @@ export const reset = () => { location_url = window?.location ?? location_url; }; -export const params = href => { +export const params = (href?: string | URL) => { const arr_params = []; const parsed = ((href ? new URL(href) : location_url).search || '').substr(1).split('&'); let p_l = parsed.length; @@ -43,23 +50,11 @@ export const params = href => { return arr_params; }; -export const paramsHash = href => { - const param_hash = {}; - const arr_params = params(href); - let param = arr_params.length; - while (param--) { - if (arr_params[param][0]) { - param_hash[arr_params[param][0]] = arr_params[param][1] || ''; - } - } - return param_hash; -}; - -export const normalizePath = path => (path ? path.replace(/(^\/|\/$|[^a-zA-Z0-9-_./()#])/g, '') : ''); +export const normalizePath = (path: string) => (path ? path.replace(/(^\/|\/$|[^a-zA-Z0-9-_./()#])/g, '') : ''); export const urlFor = ( - path, - options = { + path: string, + options: TOption = { query_string: undefined, legacy: false, language: undefined, @@ -93,7 +88,7 @@ export const urlFor = ( return new_url; }; -export const urlForCurrentDomain = href => { +export const urlForCurrentDomain = (href: string) => { const current_domain = getCurrentProductionDomain(); if (!current_domain) { @@ -102,7 +97,7 @@ export const urlForCurrentDomain = href => { const url_object = new URL(href); if (Object.keys(host_map).includes(url_object.hostname)) { - url_object.hostname = host_map[url_object.hostname]; + url_object.hostname = host_map[url_object.hostname as keyof typeof host_map]; } else if (url_object.hostname.indexOf(default_domain) !== -1) { // to keep all non-Binary links unchanged, we use default domain for all Binary links in the codebase (javascript and templates) url_object.hostname = url_object.hostname.replace( @@ -116,23 +111,6 @@ export const urlForCurrentDomain = href => { return url_object.href; }; -export const urlForStatic = (path = '') => { - if (!static_host || static_host.length === 0) { - static_host = document.querySelector('script[src*="vendor.min.js"]'); - if (static_host) { - static_host = static_host.getAttribute('src'); - } - - if (static_host?.length > 0) { - static_host = static_host.substr(0, static_host.indexOf('/js/') + 1); - } else { - static_host = websiteUrl(); - } - } - - return static_host + path.replace(/(^\/)/g, ''); -}; - export const websiteUrl = () => `${location.protocol}//${location.hostname}/`; export const getUrlBase = (path = '') => { @@ -147,15 +125,9 @@ export const removeBranchName = (path = '') => { return path.replace(/^\/br_.*?\//, '/'); }; -export const param = name => paramsHash()[name]; - export const getHostMap = () => host_map; -export const resetStaticHost = () => { - static_host = undefined; -}; - -export const setUrlLanguage = lang => { +export const setUrlLanguage = (lang: string) => { default_language = lang; }; @@ -181,17 +153,20 @@ export const getStaticUrl = (path = '', _options = {}, is_document = false) => { return `${host}${lang}/${normalizePath(path)}`; }; -export const getPath = (route_path, parameters = {}) => - Object.keys(parameters).reduce((p, name) => p.replace(`:${name}`, parameters[name]), route_path); +export const getPath = (route_path: string, parameters = {}) => + Object.keys(parameters).reduce( + (p, name) => p.replace(`:${name}`, parameters[name as keyof typeof parameters]), + route_path + ); -export const getContractPath = contract_id => getPath(routes.contract, { contract_id }); +export const getContractPath = (contract_id: number) => getPath(routes.contract, { contract_id }); /** * Filters query string. Returns filtered query (without '/?') * @param {string} search_param window.location.search * @param {Array} allowed_keys array of string of allowed query string keys */ -export const filterUrlQuery = (search_param, allowed_keys) => { +export const filterUrlQuery = (search_param: string, allowed_keys: string[]) => { const search_params = new URLSearchParams(search_param); const filtered_queries = [...search_params].filter(kvp => allowed_keys.includes(kvp[0])); return new URLSearchParams(filtered_queries || '').toString(); diff --git a/packages/shared/src/utils/validation/declarative-validation-rules.js b/packages/shared/src/utils/validation/declarative-validation-rules.ts similarity index 63% rename from packages/shared/src/utils/validation/declarative-validation-rules.js rename to packages/shared/src/utils/validation/declarative-validation-rules.ts index 6584bc752441..df5e87b550ed 100644 --- a/packages/shared/src/utils/validation/declarative-validation-rules.js +++ b/packages/shared/src/utils/validation/declarative-validation-rules.ts @@ -1,37 +1,46 @@ import { addComma } from '../currency'; import { cloneObject } from '../object'; import { compareBigUnsignedInt } from '../string'; +import { TFormErrorMessagesTypes } from './form-error-messages-types'; -const validRequired = (value /* , options, field */) => { +export type TOptions = { + min: number; + max: number; + type?: string; + decimals?: string | number; + regex?: RegExp; +}; + +const validRequired = (value?: string /* , options, field */) => { if (value === undefined || value === null) { return false; } - const str = String(value).replace(/\s/g, ''); + const str = value.replace(/\s/g, ''); return str.length > 0; }; -export const validAddress = value => !/[`~!$%^&*_=+[}{\]\\"?><|]+/.test(value); -export const validPostCode = value => value === '' || /^[A-Za-z0-9][A-Za-z0-9\s-]*$/.test(value); -export const validTaxID = value => /(?!^$|\s+)[A-Za-z0-9./\s-]$/.test(value); -export const validPhone = value => /^\+?([0-9-]+\s)*[0-9-]+$/.test(value); -export const validLetterSymbol = value => /^[A-Za-z]+([a-zA-Z\.' -])*[a-zA-Z\.' -]+$/.test(value); -export const validLength = (value = '', options) => +export const validAddress = (value: string) => !/[`~!$%^&*_=+[}{\]\\"?><|]+/.test(value); +export const validPostCode = (value: string) => value === '' || /^[A-Za-z0-9][A-Za-z0-9\s-]*$/.test(value); +export const validTaxID = (value: string) => /(?!^$|\s+)[A-Za-z0-9./\s-]$/.test(value); +export const validPhone = (value: string) => /^\+?([0-9-]+\s)*[0-9-]+$/.test(value); +export const validLetterSymbol = (value: string) => /^[A-Za-z]+([a-zA-Z\.' -])*[a-zA-Z\.' -]+$/.test(value); +export const validLength = (value = '', options: TOptions) => (options.min ? value.length >= options.min : true) && (options.max ? value.length <= options.max : true); -export const validPassword = value => /(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]+/.test(value); -export const validEmail = value => /^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,63}$/.test(value); -const validBarrier = value => /^[+-]?\d+\.?\d*$/.test(value); -const validGeneral = value => !/[`~!@#$%^&*)(_=+[}{\]\\/";:?><|]+/.test(value); -const validRegular = (value, options) => options.regex.test(value); -const confirmRequired = value => value === true; -const checkPOBox = value => !/p[.\s]+o[.\s]+box/i.test(value); -const validEmailToken = value => value.trim().length === 8; +export const validPassword = (value: string) => /(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]+/.test(value); +export const validEmail = (value: string) => /^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,63}$/.test(value); +const validBarrier = (value: string) => /^[+-]?\d+\.?\d*$/.test(value); +const validGeneral = (value: string) => !/[`~!@#$%^&*)(_=+[}{\]\\/";:?><|]+/.test(value); +const validRegular = (value: string, options: TOptions) => options.regex?.test(value); +const confirmRequired = (value: string) => value === 'true'; +const checkPOBox = (value: string) => !/p[.\s]+o[.\s]+box/i.test(value); +const validEmailToken = (value: string) => value.trim().length === 8; -let pre_build_dvrs, form_error_messages; +let pre_build_dvrs: TInitPreBuildDVRs, form_error_messages: TFormErrorMessagesTypes; -const isMoreThanMax = (value, options) => +const isMoreThanMax = (value: number, options: TOptions) => options.type === 'float' ? +value > +options.max : compareBigUnsignedInt(value, options.max) === 1; -export const validNumber = (value, opts) => { +export const validNumber = (value: string, opts: TOptions) => { const options = cloneObject(opts); let message = null; if (options.allow_empty && value.length === 0) { @@ -46,7 +55,7 @@ export const validNumber = (value, opts) => { options.max = options.max(); } - if (!(options.type === 'float' ? /^\d*(\.\d+)?$/ : /^\d+$/).test(value) || isNaN(value)) { + if (!(options.type === 'float' ? /^\d*(\.\d+)?$/ : /^\d+$/).test(value) || isNaN(+value)) { is_ok = false; message = form_error_messages.number(); } else if ('min' in options && 'max' in options && +options.min === +options.max && +value !== +options.min) { @@ -56,7 +65,7 @@ export const validNumber = (value, opts) => { 'min' in options && 'max' in options && options.min > 0 && - (+value < +options.min || isMoreThanMax(value, options)) + (+value < +options.min || isMoreThanMax(+value, options)) ) { is_ok = false; const min_value = addComma(options.min); @@ -73,7 +82,7 @@ export const validNumber = (value, opts) => { is_ok = false; const min_value = addComma(options.min); message = form_error_messages.minNumber(min_value); - } else if ('max' in options && isMoreThanMax(value, options)) { + } else if ('max' in options && isMoreThanMax(+value, options)) { is_ok = false; const max_value = addComma(options.max); message = form_error_messages.maxNumber(max_value); @@ -81,6 +90,7 @@ export const validNumber = (value, opts) => { return { is_ok, message }; }; +export type TInitPreBuildDVRs = ReturnType; const initPreBuildDVRs = () => ({ address: { func: validAddress, @@ -101,7 +111,7 @@ const initPreBuildDVRs = () => ({ message: form_error_messages.letter_symbol, }, number: { - func: (...args) => validNumber(...args), + func: (value: string, opts: TOptions) => validNumber(value, opts), message: form_error_messages.number, }, password: { @@ -121,7 +131,7 @@ const initPreBuildDVRs = () => ({ }, }); -export const initFormErrorMessages = all_form_error_messages => { +export const initFormErrorMessages = (all_form_error_messages: TFormErrorMessagesTypes) => { if (!pre_build_dvrs) { form_error_messages = all_form_error_messages; pre_build_dvrs = initPreBuildDVRs(); diff --git a/packages/shared/src/utils/validation/form-error-messages-types.ts b/packages/shared/src/utils/validation/form-error-messages-types.ts new file mode 100644 index 000000000000..bc2099a1738a --- /dev/null +++ b/packages/shared/src/utils/validation/form-error-messages-types.ts @@ -0,0 +1,56 @@ +type TMessage = () => string; +type TParameter = string | number; + +export type TFormErrorMessagesTypes = Record< + | 'address' + | 'barrier' + | 'email' + | 'general' + | 'letter_symbol' + | 'password' + | 'po_box' + | 'phone' + | 'postcode' + | 'signup_token' + | 'tax_id' + | 'number' + | 'validTaxID', + TMessage +> & { + decimalPlaces: (decimals: TParameter) => string; + value: (value: TParameter) => string; + betweenMinMax: (min_value: TParameter, max_value: TParameter) => string; + minNumber: (min_value: TParameter) => string; + maxNumber: (max_value: TParameter) => string; + password_warnings: Record< + | 'use_a_few_words' + | 'no_need_for_mixed_chars' + | 'uncommon_words_are_better' + | 'straight_rows_of_keys_are_easy' + | 'short_keyboard_patterns_are_easy' + | 'use_longer_keyboard_patterns' + | 'repeated_chars_are_easy' + | 'repeated_patterns_are_easy' + | 'avoid_repeated_chars' + | 'sequences_are_easy' + | 'avoid_sequences' + | 'recent_years_are_easy' + | 'avoid_recent_years' + | 'avoid_associated_years' + | 'dates_are_easy' + | 'avoid_associated_dates_and_years' + | 'top10_common_password' + | 'top100_common_password' + | 'very_common_password' + | 'similar_to_common_password' + | 'a_word_is_easy' + | 'names_are_easy' + | 'common_names_are_easy' + | 'capitalization_doesnt_help' + | 'all_uppercase_doesnt_help' + | 'reverse_doesnt_help' + | 'substitution_doesnt_help' + | 'user_dictionary', + TMessage + >; +}; diff --git a/packages/shared/src/utils/validation/form-validations.js b/packages/shared/src/utils/validation/form-validations.ts similarity index 64% rename from packages/shared/src/utils/validation/form-validations.js rename to packages/shared/src/utils/validation/form-validations.ts index c24d5597918e..5bb9e3c5be56 100644 --- a/packages/shared/src/utils/validation/form-validations.js +++ b/packages/shared/src/utils/validation/form-validations.ts @@ -1,13 +1,20 @@ import fromEntries from 'object.fromentries'; -import { getPreBuildDVRs } from './declarative-validation-rules'; +import { getPreBuildDVRs, TInitPreBuildDVRs, TOptions } from './declarative-validation-rules'; + +type TConfig = { + default_value: string; + supported_in: string[]; + rules: Array<(TOptions & string)[]>; +}; +type TSchema = { [key: string]: TConfig }; /** * Prepare default field and names for form. * @param {string} landing_company * @param {object} schema */ -export const getDefaultFields = (landing_company, schema) => { - const output = {}; +export const getDefaultFields = (landing_company: string, schema: TSchema) => { + const output: { [key: string]: string } = {}; Object.entries(filterByLandingCompany(landing_company, schema)).forEach(([field_name, opts]) => { output[field_name] = opts.default_value; }); @@ -15,7 +22,7 @@ export const getDefaultFields = (landing_company, schema) => { return output; }; -export const filterByLandingCompany = (landing_company, schema) => +export const filterByLandingCompany = (landing_company: string, schema: TSchema) => fromEntries(Object.entries(schema).filter(([, opts]) => opts.supported_in.includes(landing_company))); /** @@ -24,26 +31,24 @@ export const filterByLandingCompany = (landing_company, schema) => * @param schema * @return {function(*=): {}} */ -export const generateValidationFunction = (landing_company, schema) => { +export const generateValidationFunction = (landing_company: string, schema: TSchema) => { const rules_schema = filterByLandingCompany(landing_company, schema); - const rules = {}; + const rules: { [key: string]: TConfig['rules'] } = {}; Object.entries(rules_schema).forEach(([key, opts]) => { rules[key] = opts.rules; }); - return values => { - const errors = {}; + return (values: { [key: string]: string }) => { + const errors: { [key: string]: string | string[] } = {}; Object.entries(values).forEach(([field_name, value]) => { if (field_name in rules) { rules[field_name].some(([rule, message, options]) => { if ( checkForErrors({ - field_name, value, rule, options, - values, }) ) { errors[field_name] = typeof message === 'string' ? ['error', message] : message; @@ -59,18 +64,21 @@ export const generateValidationFunction = (landing_company, schema) => { }; }; +type TCheckForErrors = { + value: string; + rule: string; + options: TOptions; +}; /** * Returns true if the rule has error, false otherwise. * @param value * @param rule * @param options - * @param values * @return {boolean} */ -const checkForErrors = ({ value, rule, options, values }) => { +const checkForErrors = ({ value, rule, options }: TCheckForErrors) => { const validate = getValidationFunction(rule); - - return !validate(value, options, values); + return !validate(value, options); }; /** @@ -79,8 +87,8 @@ const checkForErrors = ({ value, rule, options, values }) => { * @throws Error when validation rule not found * @return {function(*=): *} */ -export const getValidationFunction = rule => { - const func = getPreBuildDVRs()[rule]?.func ?? rule; +export const getValidationFunction = (rule: string) => { + const func = getPreBuildDVRs()[rule as keyof TInitPreBuildDVRs]?.func ?? rule; if (typeof func !== 'function') { throw new Error( `validation rule ${rule} not found. Available validations are: ${JSON.stringify( @@ -92,5 +100,5 @@ export const getValidationFunction = rule => { /** * Generated validation function from the DVRs. */ - return (value, options, values) => !!func(value, options, values); + return (value: string, options: TOptions) => !!func(value, options); }; diff --git a/packages/shared/src/utils/validation/index.js b/packages/shared/src/utils/validation/index.ts similarity index 100% rename from packages/shared/src/utils/validation/index.js rename to packages/shared/src/utils/validation/index.ts diff --git a/packages/shared/src/utils/validation/regex-validation.js b/packages/shared/src/utils/validation/regex-validation.ts similarity index 100% rename from packages/shared/src/utils/validation/regex-validation.js rename to packages/shared/src/utils/validation/regex-validation.ts diff --git a/packages/translations/crowdin/messages.json b/packages/translations/crowdin/messages.json index 09955d362f59..70b1af5da1d7 100644 --- a/packages/translations/crowdin/messages.json +++ b/packages/translations/crowdin/messages.json @@ -1 +1 @@ -{"0":"","1014140":"You may also call <0>+447723580049 to place your complaint.","3215342":"Last 30 days","7100308":"Hour must be between 0 and 23.","11539750":"set {{ variable }} to Relative Strength Index Array {{ dummy }}","11872052":"Yes, I'll come back later","14365404":"Request failed for: {{ message_type }}, retrying in {{ delay }}s","15377251":"Profit amount: {{profit}}","17843034":"Check proof of identity document verification status","19424289":"Username","19552684":"USD Basket","21035405":"Please tell us why you’re leaving. (Select up to {{ allowed_reasons }} reasons.)","24900606":"Gold Basket","25854018":"This block displays messages in the developer’s console with an input that can be either a string of text, a number, boolean, or an array of data.","26566655":"Summary","26596220":"Finance","27582767":"{{amount}} {{currency}}","27830635":"Deriv (V) Ltd","28581045":"Add a real MT5 account","30801950":"Your account will be opened with {{legal_entity_name}}, regulated by the Malta Gaming Authority, and will be subject to the laws of Malta.","33433576":"Please use an e-wallet to withdraw your funds.","35089987":"Upload the front and back of your driving licence.","39720204":"AUD Index","41737927":"Thank you","44877997":"Residence permit","45453595":"Binary Coin","45941470":"Where would you like to start?","46523711":"Your proof of identity is verified","49963458":"Choose an option","50200731":"FX majors (standard/micro lots), FX minors, basket indices, commodities, and cryptocurrencies","54185751":"Less than $100,000","55340304":"Keep your current contract?","55916349":"All","58254854":"Scopes","59169515":"If you select \"Asian Rise\", you will win the payout if the last tick is higher than the average of the ticks.","59341501":"Unrecognized file format","59662816":"Stated limits are subject to change without prior notice.","62748351":"List Length","63869411":"This block tests a given number according to the selection","64402604":"Check transfer information","65185694":"Fiat onramp","65982042":"Total","66519591":"Investor password","68885999":"Repeats the previous trade when an error is encountered.","69005593":"The example below restarts trading after 30 or more seconds after 1 minute candle was started.","71016232":"OMG/USD","71445658":"Open","71563326":"A fast and secure fiat-to-crypto payment service. Deposit cryptocurrencies from anywhere in the world using your credit/debit cards and bank transfers.","71853457":"$100,001 - $500,000","72500774":"Please fill in Tax residence.","73086872":"You have self-excluded from trading","73326375":"The low is the lowest point ever reached by the market during the contract period.","74963864":"Under","76916358":"You have reached the withdrawal limit.<0/>Please upload your proof of identity and address to lift the limit to continue your withdrawal.","81450871":"We couldn’t find that page","82839270":"Upload the page of your passport that contains your photo.","83202647":"Collapse Block","85343079":"Financial assessment","85389154":"Steps required to continue verification on your mobile","89062902":"Trade on MT5","90266322":"2. Start a chat with your newly created Telegram bot and make sure to send it some messages before proceeding to the next step. (e.g. Hello Bot!)","91993812":"The Martingale Strategy is a classic trading technique that has been used for more than a hundred years, popularised by the French mathematician Paul Pierre Levy in the 18th century.","96381225":"ID verification failed","98473502":"We’re not obliged to conduct an appropriateness test, nor provide you with any risk warnings.","98972777":"random item","100239694":"Upload front of card from your computer","102226908":"Field cannot be empty","107206831":"We’ll review your document and notify you of its status within 1-3 days.","108916570":"Duration: {{duration}} days","109073671":"Please use an e-wallet that you have used for deposits previously. Ensure the e-wallet supports withdrawal. See the list of e-wallets that support withdrawals <0>here.","110261653":"Congratulations, you have successfully created your {{category}} {{platform}} <0>{{type}} {{jurisdiction_selected_shortcode}} account. To start trading, transfer funds from your Deriv account into this account.","111215238":"Move away from direct light","111718006":"End date","111931529":"Max. total stake over 7 days","113378532":"ETH/USD","113884303":"German Index","115032488":"Buy price and P/L","116005488":"Indicators","117318539":"Password should have lower and uppercase English letters with numbers.","119261701":"Prediction:","119446122":"Contract type is not selected","120340777":"Complete your personal details","123454801":"{{withdraw_amount}} {{currency_symbol}}","124723298":"Upload a proof of address to verify your address","125443840":"6. Restart last trade on error","127307725":"A politically exposed person (PEP) is someone appointed with a prominent public position. Close associates and family members of a PEP are also considered to be PEPs.","130567238":"THEN","132689841":"Trade on web terminal","133523018":"Please go to the Deposit page to get an address.","133536621":"and","138055021":"Synthetic indices","139454343":"Confirm my limits","141626595":"Make sure your device has a working camera","142050447":"set {{ variable }} to create text with","142390699":"Connected to your mobile","143970826":"Payment problems?","145146541":"Our accounts and services are unavailable for the Jersey postal code","145736466":"Take a selfie","150486954":"Token name","151344063":"The exit spot is the market price when the contract is closed.","151646545":"Unable to read file {{name}}","152415091":"Math","152524253":"Trade the world’s markets with our popular user-friendly platform.","157593038":"random integer from {{ start_number }} to {{ end_number }}","160746023":"Tether as an Omni token (USDT) is a version of Tether that is hosted on the Omni layer on the Bitcoin blockchain.","160863687":"Camera not detected","162727973":"Please enter a valid payment agent ID.","164112826":"This block allows you to load blocks from a URL if you have them stored on a remote server, and they will be loaded only when your bot runs.","164564432":"Deposits are temporarily unavailable due to system maintenance. You can make your deposits when the maintenance is complete.","165294347":"Please set your country of residence in your account settings to access the cashier.","165312615":"Continue on phone","165682516":"If you don’t mind sharing, which other trading platforms do you use?","170185684":"Ignore","170244199":"I’m closing my account for other reasons.","171307423":"Recovery","171579918":"Go to Self-exclusion","171638706":"Variables","173991459":"We’re sending your request to the blockchain.","176319758":"Max. total stake over 30 days","176654019":"$100,000 - $250,000","177099483":"Your address verification is pending, and we’ve placed some restrictions on your account. The restrictions will be lifted once your address is verified.","178413314":"First name should be between 2 and 50 characters.","179083332":"Date","181881956":"Contract Type: {{ contract_type }}","184024288":"lower case","189705706":"This block uses the variable \"i\" to control the iterations. With each iteration, the value of \"i\" is determined by the items in a given list.","189759358":"Creates a list by repeating a given item","191372501":"Accumulation of Income/Savings","192436105":"No need for symbols, digits, or uppercase letters","192573933":"Verification complete","195972178":"Get character","196998347":"We hold customer funds in bank accounts separate from our operational accounts which would not, in the event of insolvency, form part of the company's assets. This meets the <0>Gambling Commission's requirements for the segregation of customer funds at the level: <1>medium protection.","197190401":"Expiry date","201091938":"30 days","203179929":"<0>You can open this account once your submitted documents have been verified.","203271702":"Try again","204797764":"Transfer to client","204863103":"Exit time","206010672":"Delete {{ delete_count }} Blocks","207824122":"Please withdraw your funds from the following Deriv account(s):","210385770":"If you have an active account, please log in to continue. Otherwise, please sign up.","211224838":"Investment","211461880":"Common names and surnames are easy to guess","211847965":"Your <0>personal details are incomplete. Please go to your account settings and complete your personal details to enable withdrawals.","216650710":"You are using a demo account","217403651":"St. Vincent & Grenadines","217504255":"Financial assessment submitted successfully","218441288":"Identity card number","220014242":"Upload a selfie from your computer","220186645":"Text Is empty","220232017":"demo CFDs","222468543":"The amount that you may add to your stake if you’re losing a trade.","223120514":"In this example, each point of the SMA line is an arithmetic average of close prices for the last 50 days.","223607908":"Last digit stats for latest 1000 ticks for {{underlying_name}}","224650827":"IOT/USD","224929714":"Virtual events based bets in the UK and the Isle of Man are offered by {{legal_entity_name}}, Millennium House, Level 1, Victoria Road, Douglas IM2 4RW, Isle of Man, licensed and regulated in Great Britain by the Gambling Commission under <0>account no. 39172 and by the Gambling Supervision Commission in the Isle of Man (<1>view licence).","225887649":"This block is mandatory. It's added to your strategy by default when you create new strategy. You can not add more than one copy of this block to the canvas.","227591929":"To timestamp {{ input_datetime }} {{ dummy }}","227903202":"We’ll charge a 1% transfer fee for transfers in different currencies between your Deriv fiat and {{platform_name_mt5}} accounts.","228079844":"Click here to upload","228521812":"Tests whether a string of text is empty. Returns a boolean value (true or false).","229355215":"Trade on {{platform_name_dbot}}","233500222":"- High: the highest price","235583807":"SMA is a frequently used indicator in technical analysis. It calculates the average market price over a specified period, and is usually used to identify market trend direction: up or down. For example, if the SMA is moving upwards, it means the market trend is up. ","236642001":"Journal","240247367":"Profit table","243614144":"This is only available for existing clients.","245005091":"lower","245187862":"The DRC will make a <0>decision on the complaint (please note that the DRC mentions no timeframe for announcing its decision).","245812353":"if {{ condition }} return {{ value }}","247418415":"Gaming trading can become a real addiction, as can any other activity pushed to its limits. To avoid the danger of such an addiction, we provide a reality-check that gives you a summary of your trades and accounts on a regular basis.","248565468":"Check your {{ identifier_title }} account email and click the link in the email to proceed.","248909149":"Send a secure link to your phone","249908265":"Are you a citizen of {{- residence}}?","251134918":"Account Information","251445658":"Dark theme","254912581":"This block is similar to EMA, except that it gives you the entire EMA line based on the input list and the given period.","256031314":"Cash Business","256602726":"If you close your account:","258310842":"Workspace","258448370":"MT5","260069181":"An error occured while trying to load the URL","260086036":"Place blocks here to perform tasks once when your bot starts running.","260361841":"Tax Identification Number can't be longer than 25 characters.","264976398":"3. 'Error' displays a message in red to highlight something that needs to be resolved immediately.","265644304":"Trade types","267992618":"The platforms lack key features or functionality.","268940240":"Your balance ({{format_balance}} {{currency}}) is less than the current minimum withdrawal allowed ({{format_min_withdraw_amount}} {{currency}}). Please top up your account to continue with your withdrawal.","269607721":"Upload","270339490":"If you select \"Over\", you will win the payout if the last digit of the last tick is greater than your prediction.","270610771":"In this example, the open price of a candle is assigned to the variable \"candle_open_price\".","270712176":"descending","270780527":"You've reached the limit for uploading your documents.","272042258":"When you set your limits, they will be aggregated across all your account types in {{platform_name_trader}}, {{platform_name_dbot}}, {{platform_name_smarttrader}} and {{platform_name_bbot}} on Deriv. For example, the losses made on all four platforms will add up and be counted towards the loss limit you set.","272179372":"This block is commonly used to adjust the parameters of your next trade and to implement stop loss/take profit logic.","273350342":"Copy and paste the token into the app.","273728315":"Should not be 0 or empty","274268819":"Volatility 100 Index","275116637":"Deriv X","277469417":"Exclude time cannot be for more than five years.","278684544":"get sub-list from # from end","282319001":"Check your image","282564053":"Next, we'll need your proof of address.","283986166":"Self-exclusion on the website only applies to your {{brand_website_name}} account and does not include other companies or websites.","284527272":"antimode","284772879":"Contract","287934290":"Are you sure you want to cancel this transaction?","289898640":"TERMS OF USE","292491635":"If you select “Stop loss” and specify an amount to limit your loss, your position will be closed automatically when your loss is more than or equals to this amount. Your loss may be more than the amount you entered depending on the market price at closing.","292526130":"Tick and candle analysis","292589175":"This will display the SMA for the specified period, using a candle list.","292887559":"Transfer to {{selected_value}} is not allowed, Please choose another account from dropdown","294305803":"Manage account settings","294335229":"Sell at market price","300762428":"Swiss Index","303959005":"Sell Price:","304309961":"We're reviewing your withdrawal request. You may still cancel this transaction if you wish. Once we start processing, you won't be able to cancel.","310234308":"Close all your positions.","312142140":"Save new limits?","312300092":"Trims the spaces within a given string or text.","313298169":"Our cashier is temporarily down due to system maintenance. You can access the Cashier in a few minutes when the maintenance is complete.","313741895":"This block returns “True” if the last candle is black. It can be placed anywhere on the canvas except within the Trade parameters root block.","315306603":"You have an account that do not have currency assigned. Please choose a currency to trade with this account.","316694303":"Is candle black?","317601768":"Themes","318865860":"close","318984807":"This block repeats the instructions contained within for a specific number of times.","323179846":"The time interval for each candle can be set from one minute to one day.","323209316":"Select a Deriv Bot Strategy","325662004":"Expand Block","325763347":"result","326770937":"Withdraw {{currency}} ({{currency_symbol}}) to your wallet","327534692":"Duration value is not allowed. To run the bot, please enter {{min}}.","328539132":"Repeats inside instructions specified number of times","329404045":"<0>Switch to your real account<1> to create a {{platform}} {{account_title}} account.","333456603":"Withdrawal limits","334942497":"Buy time","335040248":"About us","337023006":"Start time cannot be in the past.","339449279":"Remaining time","339610914":"Spread Up/Spread Down","339879944":"GBP/USD","340807218":"Description not found.","342181776":"Cancel transaction","343873723":"This block displays a message. You can specify the color of the message and choose from 6 different sound options.","344418897":"These trading limits and self-exclusion help you control the amount of money and time you spend on {{brand_website_name}} and exercise <0>responsible trading.","345320063":"Invalid timestamp","346994074":"Selecting this will onboard you through Deriv (SVG) LLC (company no. 273 LLC 2020)","347029309":"Forex: standard/micro","347039138":"Iterate (2)","348951052":"Your cashier is currently locked","349047911":"Over","351744408":"Tests if a given text string is empty","352363702":"You may see links to websites with a fake Deriv login page where you’ll get scammed for your money.","353731490":"Job done","354945172":"Submit document","357477280":"No face found","359053005":"Please enter a token name.","359649435":"Given candle list is not valid","359809970":"This block gives you the selected candle value from a list of candles within the selected time interval. You can choose from open price, close price, high price, low price, and open time.","360224937":"Logic","362772494":"This should not exceed {{max}} characters.","363576009":"- High price: the highest price","363738790":"Browser","363990763":"Sell price:","368160866":"in list","371151609":"Last used","371710104":"This scope will allow third-party apps to buy and sell contracts for you, renew your expired purchases, and top up your demo accounts.","372291654":"Exclude time must be after today.","372645383":"True if the market direction matches the selection","373021397":"random","373306660":"{{label}} is required.","373495360":"This block returns the entire SMA line, containing a list of all values for a given period.","374537470":"No results for \"{{text}}\"","375714803":"Deal Cancellation Error","379523479":"To avoid loss of funds, do not share tokens with the Admin scope with unauthorised parties.","379730150":"US Tech Index","380606668":"tick","380694312":"Maximum consecutive trades","382781785":"Your contract is closed automatically when your profit is more than or equals to this amount.","384303768":"This block returns \"True\" if the last candle is black. It can be placed anywhere on the canvas except within the Trade parameters root block.","386278304":"Install the {{platform_name_trader}} web app","386502387":"Bot is not running","389923099":"Zoom in","390647540":"Real account","390890891":"Last quarter","391915203":"Hedging","392582370":"Fall Equals","396418990":"Offline","396961806":"We do not support Polygon (Matic), to deposit please use only Ethereum ({{token}}).","398816980":"Launch {{platform_name_trader}} in seconds the next time you want to trade.","401339495":"Verify address","402343402":"Due to an issue on our server, some of your {{platform}} accounts are unavailable at the moment. Please bear with us and thank you for your patience.","403456289":"The formula for SMA is:","404743411":"Total deposits","406359555":"Contract details","406497323":"Sell your active contract if needed (optional)","411482865":"Add {{deriv_account}} account","412433839":"I agree to the <0>terms and conditions.","413594348":"Only letters, numbers, space, hyphen, period, and forward slash are allowed.","417714706":"If your margin level drops below our stop out level, your positions may be closed automatically to protect you from further losses.","417864079":"You’ll not be able to change currency once you have made a deposit.","418265501":"Demo Derived","420072489":"CFD trading frequency","422055502":"From","426031496":"Stop","427134581":"Try using another file type.","427617266":"Bitcoin","428709688":"Your preferred time interval between each report:","430975601":"Town/City is not in a proper format.","432508385":"Take Profit: {{ currency }} {{ take_profit }}","432519573":"Document uploaded","433348384":"Real accounts are not available to politically exposed persons (PEPs).","433616983":"2. Investigation phase","434548438":"Highlight function definition","434896834":"Custom functions","436364528":"Your account will be opened with {{legal_entity_name}}, and will be subject to the laws of Saint Vincent and the Grenadines.","437138731":"Create a new {{platform}} password","437453244":"Choose your preferred cryptocurrency","437485293":"File type not supported","437904704":"Maximum open positions","438067535":"Over $500,000","442520703":"$250,001 - $500,000","443559872":"Financial SVG","444484637":"Logic negation","450983288":"Your deposit is unsuccessful due to an error on the blockchain. Please contact your crypto wallet service provider for more info.","451852761":"Continue on your phone","452054360":"Similar to RSI, this block gives you a list of values for each entry in the input list.","453175851":"Your MT5 Financial STP account will be opened through {{legal_entity_name}}. All trading in this account is subject to the regulations and guidelines of the Labuan Financial Service Authority (LFSA). None of your other accounts, including your Deriv account, is subject to the regulations and guidelines of the Labuan Financial Service Authority (LFSA).","453409608":"Your profit is the percentage change in market price times your stake and the multiplier of your choice.","454593402":"2. Please upload one of the following:","456746157":"Grant access to your camera from your browser settings","457020083":"It’ll take longer to verify you if we can’t read it","457494524":"1. From the block library, enter a name for the new variable and click Create.","459817765":"Pending","460975214":"Complete your Appropriateness Test","461795838":"Please contact us via live chat to unlock it.","462079779":"Resale not offered","463361726":"Select an item","465993338":"Oscar's Grind","466369320":"Your gross profit is the percentage change in market price times your stake and the multiplier chosen here.","473154195":"Settings","473863031":"Pending proof of address review","474306498":"We’re sorry to see you leave. Your account is now closed.","475492878":"Try Synthetic Indices","476023405":"Didn't receive the email?","477557241":"Remote blocks to load must be a collection.","478280278":"This block displays a dialog box that uses a customised message to prompt for an input. The input can be either a string of text or a number and can be assigned to a variable. When the dialog box is displayed, your strategy is paused and will only resume after you enter a response and click \"OK\".","479420576":"Tertiary","481276888":"Goes Outside","483591040":"Delete all {{ delete_count }} blocks?","485379166":"View transactions","487239607":"Converts a given True or False to the opposite value","488150742":"Resend email","489768502":"Change investor password","491603904":"Unsupported browser","492198410":"Make sure everything is clear","496680295":"Choose country","497518317":"Function that returns a value","498562439":"or","499522484":"1. for \"string\": 1325.68 USD","500855527":"Chief Executives, Senior Officials and Legislators","500920471":"This block performs arithmetic operations between two numbers.","501401157":"You are only allowed to make deposits","501537611":"*Maximum number of open positions","502041595":"This block gives you a specific candle from within the selected time interval.","503137339":"Payout limit","505793554":"last letter","508390614":"Demo Financial STP","510815408":"Letters, numbers, spaces, hyphens only","514031715":"list {{ input_list }} is empty","514776243":"Your {{account_type}} password has been changed.","514948272":"Copy link","518955798":"7. Run Once at Start","520136698":"Boom 500 Index","521872670":"item","522283618":"Digital options trading experience","522703281":"divisible by","523123321":"- 10 to the power of a given number","527329988":"This is a top-100 common password","529056539":"Options","529597350":"If you had any open positions, we have closed them and refunded you.","530953413":"Authorised applications","531114081":"3. Contract Type","531675669":"Euro","535041346":"Max. total stake per day","538228086":"Close-Low","541650045":"Manage {{platform}} password","541700024":"First, enter your driving licence number and the expiry date.","542038694":"Only letters, numbers, space, underscore, and hyphen are allowed for {{label}}.","542305026":"You must also submit a proof of identity.","543413346":"You have no open positions for this asset. To view other open positions, click Go to Reports","543915570":"Forex, stocks, stock indices, cryptocurrencies, synthetic indices","545476424":"Total withdrawals","546534357":"If you select “Deal cancellation”, you’ll be able to cancel your trade within a chosen time frame should the market move against your favour. We’ll charge a small fee for this, but we’ll return your stake amount without profit or loss. If the stop-out amount is reached before the deal cancellation expires, your position will be cancelled automatically and we’ll return your stake amount without profit or loss. While “Deal cancellation” is active:","549479175":"Deriv Multipliers","551414637":"Click the <0>Change password button to change your DMT5 password.","551569133":"Learn more about trading limits","554410233":"This is a top-10 common password","555351771":"After defining trade parameters and trade options, you may want to instruct your bot to purchase contracts when specific conditions are met. To do that you can use conditional blocks and indicators blocks to help your bot to make decisions.","556095366":"We'll process your details within a few minutes and notify its status via email.","556264438":"Time interval","559224320":"Our classic “drag-and-drop” tool for creating trading bots, featuring pop-up trading charts, for advanced users.","561982839":"Change your currency","562599414":"This block returns the purchase price for the selected trade type. This block can be used only in the \"Purchase conditions\" root block.","563034502":"We shall try to resolve your complaint within 15 business days. We will inform you of the outcome together with an explanation of our position and propose any remedial measures we intend to take.","563166122":"We shall acknowledge receiving your complaint, review it carefully, and keep you updated on the handling process. We might request further information or clarifications to facilitate the resolution of the complaint.","563652273":"Go to block","565410797":"The below image illustrates how Simple Moving Average Array block works:","566274201":"1. Market","567019968":"A variable is among the most important and powerful components in creating a bot. It is a way to store information, either as text or numbers. The information stored as a variable can be used and changed according to the given instructions. Variables can be given any name, but usually they are given useful, symbolic names so that it is easier to call them during the execution of instructions.","567163880":"Create a {{platform}} password","567755787":"Tax Identification Number is required.","569057236":"In which country was your document issued?","571921777":"Funds protection level","573173477":"Is candle {{ input_candle }} black?","577215477":"count with {{ variable }} from {{ start_number }} to {{ end_number }} by {{ step_size }}","577779861":"Withdrawal","577883523":"4. Awards and orders","578640761":"Call Spread","579529868":"Show all details — including the bottom 2 lines","580431127":"Restart buy/sell on error (disable for better performance): {{ checkbox }}","580665362":"Stays In/Goes Out","580774080":"insert at","581168980":"Legal","582945649":"2 minutes","584028307":"Allow equals","587577425":"Secure my account","589609985":"Linked with {{identifier_title}}","593459109":"Try a different currency","595136687":"Save Strategy","597089493":"Here is where you can decide to sell your contract before it expires. Only one copy of this block is allowed.","597481571":"DISCLAIMER","597707115":"Tell us about your trading experience.","599469202":"{{secondPast}}s ago","602278674":"Verify identity","606240547":"- Natural log","606877840":"Back to today","607807243":"Get candle","609519227":"This is the email address associated with your Deriv account.","609650241":"Infinite loop detected","610537973":"Any information you provide is confidential and will be used for verification purposes only.","611020126":"View address on Blockchain","611786123":"FX-majors (standard/micro lots), FX-minors, Commodities, Cryptocurrencies, Stocks, and Stock Indices","613877038":"Chart","617345387":"If you select \"Reset-Up”, you win the payout if the exit spot is strictly higher than either the entry spot or the spot at reset time.","618520466":"Example of a cut-off document","619268911":"<0>a.The Financial Commission will investigate the validity of the complaint within 5 business days.","619407328":"Are you sure you want to unlink from {{identifier_title}}?","623192233":"Please complete the <0>Appropriateness Test to access your cashier.","623542160":"Exponential Moving Average Array (EMAA)","626175020":"Standard Deviation Up Multiplier {{ input_number }}","626809456":"Resubmit","627292452":"<0>Your Proof of Identity or Proof of Address did not meet our requirements. Please check your email for further instructions.","627814558":"This block returns a value when a condition is true. Use this block within either of the function blocks above.","629145209":"In case if the \"AND\" operation is selected, the block returns \"True\" only if both given values are \"True\"","630336049":"Trade CFDs on our synthetics, basket indices, and Derived FX.","632398049":"This block assigns a null value to an item or statement.","634219491":"You have not provided your tax identification number. This information is necessary for legal and regulatory requirements. Please go to <0>Personal details in your account settings, and fill in your latest tax identification number.","636219628":"<0>c.If no settlement opportunity can be found, the complaint will proceed to the determination phase to be handled by the DRC.","639382772":"Please upload supported file type.","640596349":"You have yet to receive any notifications","640730141":"Refresh this page to restart the identity verification process","641420532":"We've sent you an email","642210189":"Please check your email for the verification link to complete the process.","642546661":"Upload back of license from your computer","643014039":"The trade length of your purchased contract.","644150241":"The number of contracts you have won since you last cleared your stats.","645016681":"Trading frequency in other financial instruments","645902266":"EUR/NZD","647192851":"Contract will be sold at the prevailing market price when the request is received by our servers. This price may differ from the indicated price.","647745382":"Input List {{ input_list }}","649317411":"On the basis of the information provided in relation to your knowledge and experience, we consider that the investments available via this website are not appropriate for you.<0/><1/>","649923867":"Adds a sign to a number to create a barrier offset. (deprecated)","651284052":"Low Tick","651684094":"Notify","652041791":"To create a Deriv X real account, create a Deriv real account first.","652298946":"Date of birth","654264404":"Up to 1:30","654507872":"True-False","654924603":"Martingale","655937299":"We’ll update your limits. Click <0>Accept to acknowledge that you are fully responsible for your actions, and we are not liable for any addiction or loss.","657325150":"This block is used to define trade options within the Trade parameters root block. Some options are only applicable for certain trade types. Parameters such as duration and stake are common among most trade types. Prediction is used for trade types such as Digits, while barrier offsets are for trade types that involve barriers such as Touch/No Touch, Ends In/Out, etc.","657444253":"Sorry, account opening is unavailable in your region.","659482342":"Please remember that it is your responsibility to keep your answers accurate and up to date. You can update your personal details at any time in your account settings.","660481941":"To access your mobile apps and other third-party apps, you'll first need to generate an API token.","660991534":"Finish","662578726":"Available","662609119":"Download the MT5 app","665089217":"Please submit your <0>proof of identity to authenticate your account and access your Cashier.","665777772":"XLM/USD","665872465":"In the example below, the opening price is selected, which is then assigned to a variable called \"op\".","668344562":"Synthetics, FX majors (standard/micro lots), FX minors, basket indices, commodities, and cryptocurrencies","672008428":"ZEC/USD","673915530":"Jurisdiction and choice of law","674973192":"Use this password to log in to your Deriv MT5 accounts on the desktop, web, and mobile apps.","676159329":"Could not switch to default account.","677918431":"Market: {{ input_market }} > {{ input_submarket }} > {{ input_symbol }}","678517581":"Units","680334348":"This block was required to correctly convert your old strategy.","681926004":"Example of a blurry document","682056402":"Standard Deviation Down Multiplier {{ input_number }}","684282133":"Trading instruments","685391401":"If you're having trouble signing in, let us know via <0>chat","687212287":"Amount is a required field.","689137215":"Purchase price","691956534":"<0>You have added a {{currency}} account.<0> Make a deposit now to start trading.","693396140":"Deal cancellation (expired)","696870196":"- Open time: the opening time stamp","697630556":"This market is presently closed.","698748892":"Let’s try that again","699159918":"1. Filing complaints","700259824":"Account currency","701034660":"We are still processing your withdrawal request.<0 />Please wait for the transaction to be completed before deactivating your account.","701462190":"Entry spot","701647434":"Search for string","705299518":"Next, upload the page of your passport that contains your photo.","706727320":"Binary options trading frequency","706755289":"This block performs trigonometric functions.","708055868":"Driving licence number","710123510":"repeat {{ while_or_until }} {{ boolean }}","711029377":"Please confirm the transaction details in order to complete the withdrawal:","711999057":"Successful","712101776":"Take a photo of your passport photo page","712635681":"This block gives you the selected candle value from a list of candles. You can choose from open price, close price, high price, low price, and open time.","713054648":"Sending","714080194":"Submit proof","714746816":"MetaTrader 5 Windows app","715841616":"Please enter a valid phone number (e.g. +15417541234).","716428965":"(Closed)","718504300":"Postal/ZIP code","720293140":"Log out","720519019":"Reset my password","721011817":"- Raise the first number to the power of the second number","723045653":"You'll log in to your Deriv account with this email address.","723961296":"Manage password","724203548":"You can send your complaint to the <0>European Commission's Online Dispute Resolution (ODR) platform. This is not applicable to UK clients.","728042840":"To continue trading with us, please confirm where you live.","728824018":"Spanish Index","730473724":"This block performs the \"AND\" or the \"OR\" logic operation with the given values.","731382582":"BNB/USD","734390964":"Insufficient balance","734881840":"false","742676532":"Trade CFDs on forex, derived indices, cryptocurrencies, and commodities with high leverage.","744110277":"Bollinger Bands Array (BBA)","745656178":"Use this block to sell your contract at the market price.","745674059":"Returns the specific character from a given string of text according to the selected option. ","746112978":"Your computer may take a few seconds to update","751692023":"We <0>do not guarantee a refund if you make a wrong transfer.","752024971":"Reached maximum number of digits","752633544":"You will need to submit proof of identity and address once you reach certain thresholds","752992217":"This block gives you the selected constant values.","753088835":"Default","753184969":"In providing our services to you, we are required to obtain information from you in order to assess whether a given product or service is appropriate for you (that is, whether you possess the experience and knowledge to understand the risks involved).<0/><1/>","753727511":"Type","755867072":"{{platform_name_mt5}} is not available in {{country}}","756152377":"SMA places equal weight to the entire distribution of values.","758003269":"make list from text","759783233":"For more information and assistance to counselling and support services, please visit <0>begambleaware.org.","760528514":"Please note that changing the value of \"i\" won't change the value of the original item in the list","761576760":"Fund your account to start trading.","762185380":"<0>Multiply returns by <0>risking only what you put in.","762871622":"{{remaining_time}}s","763019867":"Your Gaming account is scheduled to be closed","764366329":"Trading limits","764540515":"Stopping the bot is risky","766317539":"Language","770171141":"Go to {{hostname}}","772632060":"Do not send any other currency to the following address. Otherwise, you'll lose funds.","773091074":"Stake:","773309981":"Oil/USD","773336410":"Tether is a blockchain-enabled platform designed to facilitate the use of fiat currencies in a digital manner.","775679302":"{{pending_withdrawals}} pending withdrawal(s)","776085955":"Strategies","781924436":"Call Spread/Put Spread","783974693":"Avoid recent years","784311461":"Exponential Moving Average (EMA)","784583814":"Linked to your computer","785969488":"Jump 75 Index","787116142":"The multiplier amount used to increase your stake if you’re losing a trade. Value must be higher than 2.","787727156":"Barrier","788005234":"NA","793526589":"To file a complaint about our service, send an email to <0>complaints@deriv.com and state your complaint in detail. Please submit any relevant screenshots of your trading or system for our better understanding.","793531921":"Our company is one of the oldest and most reputable online trading companies in the world. We are committed to treat our clients fairly and provide them with excellent service.<0/><1/>Please provide us with feedback on how we can improve our services to you. Rest assured that you will be heard, valued, and treated fairly at all times.","794682658":"Copy the link to your phone","795859446":"Password saved","797007873":"Follow these steps to recover camera access:","797500286":"negative","800228448":"This complaints policy, which may change from time to time, applies to your account(s) registered with {{legal_entity_name_svg}} and {{legal_entity_name_fx}}.","800521289":"Your personal details are incomplete","801430087":"A link can contain the word \"Deriv\" and still be fake.","802436811":"View transaction details","802438383":"New proof of address is needed","802556390":"seconds","802989607":"Drag your XML file here","803500173":"Initial stake","807499069":"Financial commission complaints procedure","808323704":"You can also use \"Compare\" and \"Logic operation\" blocks to make test variables.","811876954":"You may transfer between your Deriv fiat, cryptocurrency, {{platform_name_mt5}}, and {{platform_name_dxtrade}} accounts.","816580787":"Welcome back! Your messages have been restored.","816738009":"<0/><1/>You may also raise your unresolved dispute to the <2>Office of the Arbiter for Financial Services.","818447476":"Switch account?","820877027":"Please verify your proof of identity","823186089":"A block that can contain text.","824797920":"Is list empty?","826511719":"USD/SEK","827688195":"Disable Block","828219890":"then","828602451":"Returns the list of tick values in string format","830164967":"Last name","830993327":"No current transactions available","832217983":"40 transactions or more in the past 12 months","832398317":"Sell Error","832588873":"Order execution","832721563":"If you select \"Low Tick\", you win the payout if the selected tick is the lowest among the next five ticks.","834966953":"1551661986 seconds since Jan 01 1970 (UTC) translates to 03/04/2019 @ 1:13am (UTC).","835058671":"Total buy price","835350845":"Add another word or two. Uncommon words are better.","837066896":"Your document is being reviewed, please check back in 1-3 days.","839618971":"ADDRESS","839805709":"To smoothly verify you, we need a better photo","841434703":"Disable stack","841543189":"View transaction on Blockchain","843333337":"You can only make deposits. Please complete the <0>financial assessment to unlock withdrawals.","845213721":"Logout","845304111":"Slow EMA Period {{ input_number }}","847888634":"Please withdraw all your funds.","849805216":"Choose an agent","850582774":"Please update your personal info","851054273":"If you select \"Higher\", you win the payout if the exit spot is strictly higher than the barrier.","851264055":"Creates a list with a given item repeated for a specific number of times.","851508288":"This block constrains a given number within a set range.","852583045":"Tick List String","854399751":"Digit code must only contain numbers.","854630522":"Choose a cryptocurrency account","857363137":"Volatility 300 (1s) Index","857445204":"Deriv currently supports withdrawals of Tether eUSDT to Ethereum wallet. To ensure a successful transaction, enter a wallet address compatible with the tokens you wish to withdraw. <0>Learn more","857986403":"do something","860319618":"Tourism","862283602":"Phone number*","863328851":"Proof of identity","864610268":"First, enter your {{label}} and the expiry date.","864957760":"Math Number Positive","865424952":"High-to-Low","865642450":"2. Logged in from a different browser","866496238":"Make sure your license details are clear to read, with no blur or glare","868826608":"Excluded from {{brand_website_name}} until","869823595":"Function","872549975":"You have {{number}} transfers remaining for today.","872661442":"Are you sure you want to update email <0>{{prev_email}} to <1>{{changed_email}}?","872817404":"Entry Spot Time","873166343":"1. 'Log' displays a regular message.","874461655":"Scan the QR code with your phone","874484887":"Take profit must be a positive number.","875532284":"Restart process on a different device","876086855":"Complete the financial assessment form","876292912":"Exit","879014472":"Reached maximum number of decimals","888274063":"Town/City","890299833":"Go to Reports","891097078":"USD Index","891337947":"Select country","892341141":"Your trading statistics since: {{date_time}}","893117915":"Variable","893963781":"Close-to-Low","893975500":"You do not have any recent bots","894191608":"<0>c.We must award the settlement within 28 days of when the decision is reached.","898457777":"You have added a Deriv Financial account.","902045490":"3 minutes","903429103":"In candles list read {{ candle_property }} # from end {{ input_number }}","904696726":"API token","905134118":"Payout:","905227556":"Strong passwords contain at least 8 characters, combine uppercase and lowercase letters and numbers.","905564365":"MT5 CFDs","906049814":"We’ll review your documents and notify you of its status within 5 minutes.","910888293":"Too many attempts","915735109":"Back to {{platform_name}}","918447723":"Real","920125517":"Add demo account","926813068":"Fixed/Variable","929608744":"You are unable to make withdrawals","930346117":"Capitalization doesn't help very much","930546422":"Touch","933126306":"Enter some text here","933193610":"Only letters, periods, hyphens, apostrophes, and spaces, please.","934835052":"Potential profit","934932936":"PERSONAL","936766426":"You are limited to one fiat account. You won’t be able to change your account currency if you have already made your first deposit.","937237342":"Strategy name cannot be empty","937682366":"Upload both of these documents to prove your identity.","937831119":"Last name*","937992258":"Table","938988777":"High barrier","940950724":"This trade type is currently not supported on {{website_name}}. Please go to <0>Binary.com for details.","943535887":"Please close your positions in the following Deriv MT5 account(s):","944499219":"Max. open positions","945532698":"Contract sold","946204249":"Read","946841802":"A white (or green) candle indicates that the open price is lower than the close price. This represents an upward movement of the market price.","946944859":"Hit the button below and we'll send you an email with a link. Click that link to verify your withdrawal request.","947046137":"Your withdrawal will be processed within 24 hours","947363256":"Create list","947549448":"Total assets in your Deriv, {{platform_name_mt5}} and {{platform_name_dxtrade}} real accounts.","947758334":"City is required","947914894":"Top up  <0>","948156236":"Create {{type}} password","948545552":"150+","949859957":"Submit","952655566":"Payment agent","952927527":"Regulated by the Malta Financial Services Authority (MFSA) (licence no. IS/70156)","955352264":"Trade on {{platform_name_dxtrade}}","956448295":"Cut-off image detected","957182756":"Trigonometric functions","958430760":"In/Out","959031082":"set {{ variable }} to MACD Array {{ dropdown }} {{ dummy }}","960201789":"3. Sell conditions","961692401":"Bot","966457287":"set {{ variable }} to Exponential Moving Average {{ dummy }}","968576099":"Up/Down","969987233":"Win up to maximum payout if exit spot is between lower and upper barrier, in proportion to the difference between exit spot and lower barrier.","970915884":"AN","974888153":"High-Low","975668699":"I confirm and accept {{company}} 's <0>Terms and Conditions","975950139":"Country of Residence","977929335":"Go to my account settings","981138557":"Redirect","981965437":"Scan the QR code below with your 2FA app. We recommend <0>Authy or <1>Google Authenticator.","982402892":"First line of address","982829181":"Barriers","987900242":"Total assets in your Deriv, {{platform_name_mt5}} and {{platform_name_dxtrade}} demo accounts.","988361781":"You have no trading activity yet.","988934465":"When prompted, you must enable camera access to continue","992294492":"Your postal code is invalid","993827052":"Choosing this jurisdiction will give you a Financial STP account. Your trades will go directly to the market and have tighter spreads.","995563717":"not {{ boolean }}","999008199":"text","1001160515":"Sell","1001749987":"You’ll get a warning, named margin call, if your account balance drops down close to the stop out level.","1003876411":"Should start with letter or number and may contain a hyphen, period and slash.","1004127734":"Send email","1006458411":"Errors","1006664890":"Silent","1008240921":"Choose a payment agent and contact them for instructions.","1009032439":"All time","1010198306":"This block creates a list with strings and numbers.","1012102263":"You will not be able to log in to your account until this date (up to 6 weeks from today).","1015201500":"Define your trade options such as duration and stake.","1016220824":"You need to switch to a real money account to use this feature.<0/>You can do this by selecting a real account from the <1>Account Switcher.","1018803177":"standard deviation","1019265663":"You have no transactions yet.","1019508841":"Barrier 1","1022934784":"1 minute","1023237947":"1. In the example below, the instructions are repeated as long as the value of x is less than or equal to 10. Once the value of x exceeds 10, the loop is terminated.","1023643811":"This block purchases contract of a specified type.","1023795011":"Even/Odd","1024205076":"Logic operation","1024760087":"You are verified to add this account","1025887996":"Negative Balance Protection","1026046972":"Please enter a payout amount that's lower than {{max_payout}}.","1027098103":"Leverage gives you the ability to trade a larger position using your existing capital. Leverage varies across different symbols.","1028211549":"All fields are required","1028758659":"Citizenship*","1029164365":"We presume that you possess the experience, knowledge, and expertise to make your own investment decisions and properly assess the risk involved.","1030021206":"change {{ variable }} by {{ number }}","1031602624":"We've sent a secure link to %{number}","1031731167":"Pound Sterling","1032173180":"Deriv","1032907147":"AUD/NZD","1035506236":"Choose a new password","1036353276":"Please create another Deriv or {{platform_name_mt5}} account.","1036867749":"The desired duration, stake, prediction, and/or barrier(s) for the contract is defined here.","1038575777":"Change password","1039755542":"Use a few words, avoid common phrases","1040677897":"To continue trading, you must also submit a proof of address.","1041001318":"This block performs the following operations on a given list: sum, minimum, maximum, average, median, mode, antimode, standard deviation, random item.","1041620447":"If you are unable to scan the QR code, you can manually enter this code instead:","1042659819":"You have an account that needs action","1043790274":"There was an error","1044230481":"This is an Ethereum ({{token}}) only address, please do not use {{prohibited_token}}.","1044540155":"100+","1044599642":"<0> has been credited into your {{platform}} {{title}} account.","1045704971":"Jump 150 Index","1045782294":"Click the <0>Change password button to change your Deriv password.","1047389068":"Food Services","1048947317":"Sorry, this app is unavailable in {{clients_country}}.","1049384824":"Rise","1050844889":"Reports","1052137359":"Family name*","1052779010":"You are on your demo account","1053153674":"Jump 50 Index","1053159279":"Level of education","1055313820":"No document detected","1056381071":"Return to trade","1056821534":"Are you sure?","1057216772":"text {{ input_text }} is empty","1057749183":"Two-factor authentication (2FA)","1057765448":"Stop out level","1057904606":"The concept of the D’Alembert Strategy is said to be similar to the Martingale Strategy where you will increase your contract size after a loss. With the D’Alembert Strategy, you will also decrease your contract size after a successful trade.","1061308507":"Purchase {{ contract_type }}","1062536855":"Equals","1065353420":"110+","1065498209":"Iterate (1)","1069347258":"The verification link you used is invalid or expired. Please request for a new one.","1069576070":"Purchase lock","1070624871":"Check proof of address document verification status","1076006913":"Profit/loss on the last {{item_count}} contracts","1077515534":"Date to","1080068516":"Action","1080990424":"Confirm","1082158368":"*Maximum account cash balance","1082406746":"Please enter a stake amount that's at least {{min_stake}}.","1083781009":"Tax identification number*","1083826534":"Enable Block","1088138125":"Tick {{current_tick}} - ","1096175323":"You’ll need a Deriv account","1098622295":"\"i\" starts with the value of 1, and it will be increased by 2 at every iteration. The loop will repeat until \"i\" reaches the value of 12, and then the loop is terminated.","1100870148":"To learn more about account limits and how they apply, please go to the <0>Help Centre.","1101560682":"stack","1101712085":"Buy Price","1102420931":"Next, upload the front and back of your driving licence.","1102995654":"Calculates Exponential Moving Average (EMA) list from a list of values with a period","1103309514":"Target","1103452171":"Cookies help us to give you a better experience and personalised content on our site.","1104912023":"Pending verification","1107474660":"Submit proof of address","1107555942":"To","1109217274":"Success!","1110102997":"Statement","1112582372":"Interval duration","1113119682":"This block gives you the selected candle value from a list of candles.","1113292761":"Less than 8MB","1117863275":"Security and safety","1118294625":"You have chosen to exclude yourself from trading on our website until {{exclusion_end}}. If you are unable to place a trade or deposit after your self-exclusion period, please contact us via live chat.","1119887091":"Verification","1119986999":"Your proof of address was submitted successfully","1120985361":"Terms & conditions updated","1122910860":"Please complete your <0>financial assessment.","1123927492":"You have not selected your account currency","1125090693":"Must be a number","1126075317":"Add your Deriv MT5 <0>{{account_type_name}} STP account under Deriv (FX) Ltd regulated by Labuan Financial Services Authority (Licence no. MB/18/0024).","1126934455":"Length of token name must be between 2 and 32 characters.","1127149819":"Make sure§","1128404172":"Undo","1129124569":"If you select \"Under\", you will win the payout if the last digit of the last tick is less than your prediction.","1129296176":"IMPORTANT NOTICE TO RECEIVE YOUR FUNDS","1129842439":"Please enter a take profit amount.","1130744117":"We shall try to resolve your complaint within 10 business days. We will inform you of the outcome together with an explanation of our position and propose any remedial measures we intend to take.","1130791706":"N","1133651559":"Live chat","1134879544":"Example of a document with glare","1139483178":"Enable stack","1143730031":"Direction is {{ direction_type }}","1144028300":"Relative Strength Index Array (RSIA)","1145927365":"Run the blocks inside after a given number of seconds","1146064568":"Go to Deposit page","1147269948":"Barrier cannot be zero.","1147625645":"Please proceed to withdraw all your funds from your account before <0>30 November 2021.","1151964318":"both sides","1152294962":"Upload the front of your driving licence.","1154021400":"list","1154239195":"Title and name","1155011317":"This block converts the date and time to the number of seconds since the Unix Epoch (1970-01-01 00:00:00).","1158678321":"<0>b.The Head of the Dispute Resolution Committee (DRC) will contact both you and us within 5 business days to obtain all necessary information and see if there is a chance to settle the complaint during the investigation phase.","1160761178":"No payout if exit spot is below or equal to the lower barrier.","1161924555":"Please select an option","1163836811":"Real Estate","1164773983":"Take profit and/or stop loss are not available while deal cancellation is active.","1166128807":"Choose one of your accounts or add a new cryptocurrency account","1166377304":"Increment value","1168029733":"Win payout if exit spot is also equal to entry spot.","1169201692":"Create {{platform}} password","1170228717":"Stay on {{platform_name_trader}}","1174542625":"- Find the chat ID property in the response, and copy the value of the id property","1174748431":"Payment channel","1175183064":"Vanuatu","1176926166":"Experience with trading other financial instruments","1177396776":"If you select \"Asian Fall\", you will win the payout if the last tick is lower than the average of the ticks.","1177723589":"There are no transactions to display","1178582280":"The number of contracts you have lost since you last cleared your stats.","1178800778":"Take a photo of the back of your license","1178942276":"Please try again in a minute.","1179704370":"Please enter a take profit amount that's higher than the current potential profit.","1180619731":"Each day, you can make up to {{ allowed_internal }} transfers between your Deriv accounts, up to {{ allowed_mt5 }} transfers between your Deriv and {{platform_name_mt5}} accounts, and up to {{ allowed_dxtrade }} transfers between your Deriv and {{platform_name_dxtrade}} accounts.","1181396316":"This block gives you a random number from within a set range","1181770592":"Profit/loss from selling","1183007646":"- Contract type: the name of the contract type such as Rise, Fall, Touch, No Touch, etс.","1188980408":"5 minutes","1189368976":"Please complete your personal details before you verify your identity.","1189886490":"Please create another Deriv, {{platform_name_mt5}}, or {{platform_name_dxtrade}} account.","1191429031":"Please click on the link in the email to change your <0>{{platform_name_dxtrade}} password.","1191644656":"Predict the market direction and select either “Up” or “Down” to open a position. We will charge a commission when you open a position.","1192708099":"Duration unit","1195393249":"Notify {{ notification_type }} with sound: {{ notification_sound }} {{ input_message }}","1196006480":"Profit threshold","1197326289":"You are no longer able to trade digital options on any of our platforms. Also, you can’t make deposits into your Options account.","1198368641":"Relative Strength Index (RSI)","1199281499":"Last Digits List","1201533528":"Contracts won","1201773643":"numeric","1203297580":"This block sends a message to a Telegram channel.","1204223111":"In this example, the open prices from a list of candles are assigned to a variable called \"candle_list\".","1206821331":"Armed Forces","1208729868":"Ticks","1208903663":"Invalid token","1211912982":"Bot is starting","1214893428":"Account creation is currently unavailable for mobile. Please log in with your computer to create a new account.","1216408337":"Self-Employed","1217481729":"Tether as an ERC20 token (eUSDT) is a version of Tether that is hosted on Ethereum.","1218546232":"What is Fiat onramp?","1219844088":"do %1","1221250438":"To enable withdrawals, please submit your <0>Proof of Identity (POI) and <1>Proof of Address (POA) and also complete the <2>financial assessment in your account settings.","1222096166":"Deposit via bank wire, credit card, and e-wallet","1222521778":"Making deposits and withdrawals is difficult.","1222544232":"We’ve sent you an email","1225150022":"Number of assets","1227074958":"random fraction","1227240509":"Trim spaces","1228534821":"Some currencies may not be supported by payment agents in your country.","1229883366":"Tax identification number","1230884443":"State/Province (optional)","1231282282":"Use only the following special characters: {{permitted_characters}}","1232291311":"Maximum withdrawal remaining","1232353969":"0-5 transactions in the past 12 months","1233300532":"Payout","1234292259":"Source of wealth","1235426525":"50%","1237330017":"Pensioner","1238311538":"Admin","1239940690":"Restarts the bot when an error is encountered.","1240027773":"Please Log in","1241238585":"You may transfer between your Deriv fiat, cryptocurrency, and {{platform_name_mt5}} accounts.","1243064300":"Local","1246207976":"Enter the authentication code generated by your 2FA app:","1246880072":"Select issuing country","1247280835":"Our cryptocurrency cashier is temporarily down due to system maintenance. You can make cryptocurrency deposits and withdrawals in a few minutes when the maintenance is complete.","1248018350":"Source of income","1248940117":"<0>a.The decisions made by the DRC are binding on us. DRC decisions are binding on you only if you accept them.","1250495155":"Token copied!","1253154463":"Trade CFDs on our synthetics, basket indices.","1254565203":"set {{ variable }} to create list with","1255909792":"last","1255963623":"To date/time {{ input_timestamp }} {{ dummy }}","1258097139":"What could we do to improve?","1258198117":"positive","1259598687":"GBP/JPY","1260259925":"Phone is not in a proper format.","1263387702":"All {{count}} account types use market execution. This means you agree with the broker's price in advance and will place orders at the broker's price.","1264096613":"Search for a given string","1265704976":"","1270581106":"If you select \"No Touch\", you win the payout if the market never touches the barrier at any time during the contract period.","1272012156":"GBP/CHF","1272337240":"Days","1272681097":"Hours","1274819385":"3. Complaints and Disputes","1275474387":"Quick","1281045211":"Sorts the items in a given list, by their numeric or alphabetical value, in either ascending or descending order.","1281290230":"Select","1282951921":"Only Downs","1284522768":"If \"Loss\" is selected, it will return \"True\" if your last trade was unsuccessful. Otherwise, it will return an empty string.","1285686014":"Pending proof of identity review","1286094280":"Withdraw","1286507651":"Close identity verification screen","1288965214":"Passport","1289646209":"Margin call","1290525720":"Example: ","1291887623":"Digital options trading frequency","1292891860":"Notify Telegram","1293660048":"Max. total loss per day","1294756261":"This block creates a function, which is a group of instructions that can be executed at any time. Place other blocks in here to perform any kind of action that you need in your strategy. When all the instructions in a function have been carried out, your bot will continue with the remaining blocks in your strategy. Click the “do something” field to give it a name of your choice. Click the plus icon to send a value (as a named variable) to your function.","1295284664":"Please accept our <0>updated Terms and Conditions to proceed.","1296380713":"Close my contract","1299479533":"8 hours","1300576911":"Please resubmit your proof of address or we may restrict your account.","1301668579":"We’re working to have this available for you soon. If you have another account, switch to that account to continue trading. You may add a DMT5 Financial.","1302691457":"Occupation","1303016265":"Yes","1303530014":"We’re processing your withdrawal.","1304083330":"copy","1304272843":"Please submit your proof of address.","1304620236":"Enable camera","1304788377":"<0/><1/>If your complaint relates to our data processing practices, you can submit a formal complaint to the <2>Information and Data Protection Commissioner (Malta) on their website or make a complaint to any supervisory authority within the European Union.","1305217290":"Upload the back of your identity card.","1308625834":"Sets the default time interval for blocks that read list of candles.","1309017029":"Enabling this allows you to save your blocks as one collection which can be easily integrated into other bots.","1309044871":"Returns the value of the latest tick in string format","1310483610":"Results for \"{{ search_term }}\"","1311680770":"payout","1311799109":"We do not support Binance Smart Chain tokens to deposit, please use only Ethereum ({{token}}).","1313167179":"Please log in","1313302450":"The bot will stop trading if your total loss exceeds this amount.","1314671947":"DMT5 Accounts","1316216284":"You can use this password for all your {{platform}} accounts.","1319217849":"Check your mobile","1320750775":"Front and back","1322804930":"Restart the process on the latest version of Google Chrome","1323327633":"Our complaints process comprises the following 4 steps:","1323476617":"Changes the capitalisation of a string of text to Upper case, Lower case, Title case.","1323996051":"Profile","1324110809":"Address information","1324922837":"2. The new variable will appear as a block under Set variable.","1327181172":"Financial Vanuatu","1327494533":"{{sell_value}} (Sell)","1329136554":"Jump 200 Index","1329325646":"The content of this block is called on every tick","1331199417":"Please enter the correct format. ","1331367811":"Client account number","1332168410":"Learn more","1332168769":"Disconnect","1333576137":"Please update your {{details}} to continue.","1333839457":"Submit identity card (front)","1334326985":"It may take a few minutes to arrive","1335967988":"Notice","1337846406":"This block gives you the selected candle value from a list of candles within the selected time interval.","1337864666":"Photo of your document","1338496204":"Ref. ID","1341840346":"View in Journal","1346204508":"Take profit","1346339408":"Managers","1347071802":"{{minutePast}}m ago","1348009461":"Please close your positions in the following Deriv X account(s):","1349289354":"Great, that's everything we need","1349295677":"in text {{ input_text }} get substring from {{ position1 }} {{ index1 }} to {{ position2 }} {{ index2 }}","1351152200":"Welcome to Deriv MT5 (DMT5) dashboard","1351906264":"This feature is not available for payment agents.","1353197182":"Please select","1355250245":"{{ calculation }} of list {{ input_list }}","1356574493":"Returns a specific portion of a given string of text.","1356607862":"Deriv password","1357129681":"{{num_day}} days {{num_hour}} hours {{num_minute}} minutes","1357213116":"Identity card","1358543466":"Not available","1359424217":"You have sold this contract at <0 />","1360929368":"Add a Deriv account","1362578283":"High","1363060668":"Your trading statistics since:","1363675688":"Duration is a required field.","1364958515":"Stocks","1366244749":"Limits","1367023655":"To ensure your loss does not exceed your stake, your contract will be closed automatically when your loss equals to <0/>.","1367488817":"4. Restart trading conditions","1367990698":"Volatility 10 Index","1369709538":"Our terms of use","1371193412":"Cancel","1371641641":"Open the link on your mobile","1371911731":"Financial products in the EU are offered by {{legal_entity_name}}, licensed as a Category 3 Investment Services provider by the Malta Financial Services Authority (<0>Licence no. IS/70156).","1374627690":"Max. account balance","1376329801":"Last 60 days","1378419333":"Ether","1383017005":"You have switched accounts.","1384127719":"You should enter {{min}}-{{max}} numbers.","1384222389":"Please submit valid identity documents to unlock the cashier.","1385418910":"Please set a currency for your existing real account before creating another account.","1387503299":"Log in","1389197139":"Import error","1390792283":"Trade parameters","1391174838":"Potential payout:","1392966771":"Mrs","1392985917":"This is similar to a commonly used password","1393559748":"Invalid date/time: {{ datetime_string }}","1393901361":"There’s an app for that","1393903598":"if true {{ return_value }}","1396179592":"Commission","1396417530":"Bear Market Index","1397046738":"View in statement","1397628594":"Insufficient funds","1399620764":"We're legally obliged to ask for your financial information.","1400637999":"(All fields are required)","1400732866":"View from camera","1400962248":"High-Close","1402208292":"Change text case","1403376207":"Update my details","1405584799":"with interval: {{ candle_interval_type }}","1408844944":"Click the plus icon to extend the functionality of this block.","1412535872":"You can check the result of the last trade with this block. It can only be placed within the \"Restart trading conditions\" root block.","1413047745":"Assigns a given value to a variable","1413359359":"Make a new transfer","1414205271":"prime","1415006332":"get sub-list from first","1415974522":"If you select \"Differs\", you will win the payout if the last digit of the last tick is not the same as your prediction.","1417558007":"Max. total loss over 7 days","1417914636":"Login ID","1418115525":"This block repeats instructions as long as a given condition is true.","1421749665":"Simple Moving Average (SMA)","1422060302":"This block replaces a specific item in a list with another given item. It can also insert the new item in the list at a specific position.","1422129582":"All details must be clear — nothing blurry","1423082412":"Last Digit","1424741507":"See more","1424779296":"If you've recently used bots but don't see them in this list, it may be because you:","1430396558":"5. Restart buy/sell on error","1430632931":"To get trading, please confirm who you are, and where you live.","1433367863":"Sorry, an error occured while processing your request.","1434382099":"Displays a dialog window with a message","1434976996":"Announcement","1435363248":"This block converts the number of seconds since the Unix Epoch to a date and time format such as 2019-08-01 00:00:00.","1435380105":"Minimum deposit","1437396005":"Add comment","1438247001":"A professional client receives a lower degree of client protection due to the following.","1438340491":"else","1439168633":"Stop loss:","1441208301":"Total<0 />profit/loss","1442747050":"Loss amount: <0>{{profit}}","1442840749":"Random integer","1443478428":"Selected proposal does not exist","1445592224":"You accidentally gave us another email address (Usually a work or a personal one instead of the one you meant).","1449462402":"In review","1452260922":"Too many failed attempts","1452941569":"This block delays execution for a given number of seconds. You can place any blocks within this block. The execution of other blocks in your strategy will be paused until the instructions in this block are carried out.","1453317405":"This block gives you the balance of your account either as a number or a string of text.","1453362009":"Deriv Accounts","1454648764":"deal reference id","1454865058":"Do not enter an address linked to an ICO purchase or crowdsale. If you do, the ICO tokens will not be credited into your account.","1455741083":"Upload the back of your driving licence.","1457341530":"Your proof of identity verification has failed","1457603571":"No notifications","1461323093":"Display messages in the developer’s console.","1464190305":"This block will transfer the control back to the Purchase conditions block, enabling you to purchase another contract without manually stopping and restarting your bot.","1464253511":"You already have an account for each of the cryptocurrencies available on {{deriv}}.","1465919899":"Pick an end date","1466430429":"Should be between {{min_value}} and {{max_value}}","1466900145":"Doe","1467017903":"This market is not yet available on {{platform_name_trader}}, but it is on {{platform_name_smarttrader}}.","1467421920":"with interval: %1","1467661678":"Cryptocurrency trading","1468308734":"This block repeats instructions as long as a given condition is true","1468419186":"Deriv currently supports withdrawals of Tether USDT to Omni wallet. To ensure a successful transaction, enter a wallet address compatible with the tokens you wish to withdraw. <0>Learn more","1468937050":"Trade on {{platform_name_trader}}","1469150826":"Take Profit","1469764234":"Cashier Error","1469814942":"- Division","1470319695":"Returns either True or False","1471070549":"Can contract be sold?","1471741480":"Severe error","1475513172":"Size","1476301886":"Similar to SMA, this block gives you the entire SMA line containing a list of all values for a given period.","1478030986":"Create or delete API tokens for trading and withdrawals","1481977420":"Please help us verify your withdrawal request.","1484336612":"This block is used to either terminate or continue a loop, and can be placed anywhere within a loop block.","1487086154":"Your documents were submitted successfully","1490583127":"DBot isn't quite ready for real accounts","1491392301":"<0>Sold for: {{sold_for}}","1492686447":"Your MT5 Financial STP account will be opened through Deriv (FX) Ltd. All trading in this account is subject to the regulations and guidelines of the Labuan Financial Service Authority (LFSA). None of your other accounts, including your Deriv account, is subject to the regulations and guidelines of the Labuan Financial Service Authority (LFSA).","1493673429":"Change email","1493866481":"Run Deriv X on your browser","1496810530":"GBP/AUD","1497773819":"Deriv MT5 accounts","1499074768":"Add a real Deriv Multipliers account","1499080621":"Tried to perform an invalid operation.","1501691227":"Add Your Deriv MT5 <0>{{account_type_name}} account under Deriv (V) Ltd, regulated by the Vanuatu Financial Services Commission.","1502039206":"Over {{barrier}}","1502325741":"Your password cannot be the same as your email address.","1503618738":"- Deal reference ID: the reference ID of the contract","1505898522":"Download stack","1509570124":"{{buy_value}} (Buy)","1509678193":"Education","1510075920":"Gold/USD","1510357015":"Tax residence is required.","1510735345":"This block gives you a list of the last digits of the last 1000 tick values.","1512469749":"In the above example it is assumed that variable candle_open_price is processed somewhere within other blocks.","1516537408":"You can no longer trade on Deriv or deposit funds into your account.","1516559721":"Please select one file only","1516676261":"Deposit","1517503814":"Drop file or click here to upload","1519124277":"Derived SVG","1519336051":"Try a different phone number","1520332426":"Net annual income","1524636363":"Authentication failed","1527251898":"Unsuccessful","1527906715":"This block adds the given number to the selected variable.","1529440614":"Use the <0>Deriv password to log in to {{brand_website_name}}, {{platform_name_go}}, {{platform_name_trader}}, {{platform_name_smarttrader}}, and {{platform_name_dbot}}.","1531017969":"Creates a single text string from combining the text value of each attached item, without spaces in between. The number of items can be added accordingly.","1533177906":"Fall","1534569275":"As part of the changes in our markets, we will be closing our UK clients’ accounts.","1534796105":"Gets variable value","1537711064":"You need to make a quick identity verification before you can access the Cashier. Please go to your account settings to submit your proof of identity.","1539108340":"EUR Index","1540585098":"Decline","1541969455":"Both","1544642951":"If you select \"Only Ups\", you win the payout if consecutive ticks rise successively after the entry spot. No payout if any tick falls or is equal to any of the previous ticks.","1548765374":"Verification of document number failed","1549098835":"Total withdrawn","1551172020":"AUD Basket","1552918367":"Send only {{currency}} ({{currency_symbol}}) to this address.","1557426040":"Demo Derived SVG","1557682012":"Account Settings","1558972889":"set {{ variable }} to Simple Moving Average {{ dummy }}","1560302445":"Copied","1562374116":"Students","1564392937":"When you set your limits or self-exclusion, they will be aggregated across all your account types in {{platform_name_trader}} and {{platform_name_dbot}}. For example, the losses made on both platforms will add up and be counted towards the loss limit you set.","1566037033":"Bought: {{longcode}} (ID: {{transaction_id}})","1567076540":"Only use an address for which you have proof of residence - ","1567586204":"Self-exclusion","1569624004":"Dismiss alert","1570484627":"Ticks list","1572504270":"Rounding operation","1572982976":"Server","1575556189":"Tether on the Ethereum blockchain, as an ERC20 token, is a newer transport layer, which now makes Tether available in Ethereum smart contracts. As a standard ERC20 token, it can also be sent to any Ethereum address.","1577480486":"Your mobile link will expire in one hour","1577527507":"Account opening reason is required.","1577612026":"Select a folder","1579484521":"Trading hub","1580498808":"Multiple faces found","1584109614":"Ticks String List","1584578483":"50+ assets: forex, stocks, stock indices, synthetics indices, and cryptocurrencies.","1584936297":"XML file contains unsupported elements. Please check or modify file.","1587046102":"Documents from that country are not currently supported — try another document type","1589640950":"Resale of this contract is not offered.","1589702653":"Proof of address","1594147169":"Please come back in","1594322503":"Sell is available","1596378630":"You have added a real Gaming account.<0/>Make a deposit now to start trading.","1598009247":"<0>a.You may file a complaint with the Financial Commission up to 45 days after the incident.","1598386296":"Town/City is required.","1598443642":"Transaction hash","1602894348":"Create a password","1604171868":"Please withdraw all your funds as soon as possible.","1604916224":"Absolute","1605292429":"Max. total loss","1612105450":"Get substring","1613273139":"Resubmit proof of identity and address","1613633732":"Interval should be between 10-60 minutes","1615897837":"Signal EMA Period {{ input_number }}","1619070150":"You are being redirected to an external website.","1620278321":"Names and surnames by themselves are easy to guess","1620346110":"Set currency","1621024661":"Tether as a TRC20 token (tUSDT) is a version of Tether that is hosted on Tron.","1622662457":"Date from","1623706874":"Use this block when you want to use multipliers as your trade type.","1630372516":"Try our Fiat onramp","1630417358":"Please go to your account settings and complete your personal details to enable withdrawals.","1631281562":"GBP Basket","1634594289":"Select language","1634903642":"Only your face can be in the selfie","1634969163":"Change currency","1635266650":"It seems that your name in the document is not the same as your Deriv profile. Please update your name in the <0>Personal details page to solve this issue.","1636605481":"Platform settings","1636782601":"Multipliers","1638321777":"Your demo account balance is low. Reset your balance to continue trading from your demo account.","1639262461":"Pending withdrawal request:","1639304182":"Please click on the link in the email to reset your password.","1641395634":"Last digits list","1641635657":"New proof of identity document needed","1641980662":"Salutation is required.","1644908559":"Digit code is required.","1647186767":"The bot encountered an error while running.","1651513020":"Display remaining time for each interval","1651951220":"Repeats like \"abcabcabc\" are only slightly harder to guess than \"abc\"","1652366857":"get and remove","1652968048":"Define your trade options such as multiplier and stake.","1652976865":"In this example, this block is used with another block to get the open prices from a list of candles. The open prices are then assigned to the variable called \"cl\".","1653136377":"copied!","1653159197":"Payment agent withdrawal","1653180917":"We cannot verify you without using your camera","1654365787":"Unknown","1654496508":"Our system will finish any DBot trades that are running, and DBot will not place any new trades.","1654721858":"Upload anyway","1655627840":"UPPER CASE","1656155124":"Resend in <0 /> seconds","1658954996":"Plant and Machine Operators and Assemblers","1659074761":"Reset Put","1665272539":"Remember: You cannot log in to your account until the selected date.","1665738338":"Balance","1665756261":"Go to live chat","1667395210":"Your proof of identity was submitted successfully","1668138872":"Modify account settings","1670016002":"Multiplier: {{ multiplier }}","1670426231":"End Time","1671232191":"You have set the following limits:","1675030608":"To create this account first we need you to resubmit your proof of address.","1677027187":"Forex","1677990284":"My apps","1682409128":"Untitled Strategy","1682636566":"Resend email in","1683963454":"Your contract will be closed automatically at the next available asset price on {{date}} at {{timestamp}}.","1684148009":"Total assets in your Deriv and {{platform_name_mt5}} real accounts.","1684419981":"What's this?","1686800117":"{{error_msg}}","1689103988":"Second Since Epoch","1689258195":"We were unable to verify your address with the details you provided. Please check and resubmit or choose a different document type.","1689738742":"Gold Index","1691335819":"To continue trading with us, please confirm who you are.","1691765860":"- Negation","1693614409":"Start time","1694331708":"You can switch between CFDs, digital options, and multipliers at any time.","1694517345":"Enter a new email address","1695807119":"Could not load Google Drive blocks","1700233813":"Transfer from {{selected_value}} is not allowed, Please choose another account from dropdown","1708413635":"For your {{currency_name}} ({{currency}}) account","1709859601":"Exit Spot Time","1710662619":"If you have the app, launch it to start trading.","1711013665":"Anticipated account turnover","1711676335":"square root","1711929663":"Your funds have been transferred","1712357617":"Invalid email address.","1715011380":"Jump 25 Index","1715630945":"Returns the total profit in string format","1719248689":"EUR/GBP/USD","1720451994":"We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv fiat and Deriv cryptocurrency accounts.","1720968545":"Upload passport photo page from your computer","1722401148":"The amount that you may add to your stake after each successful trade.","1723398114":"A recent utility bill (e.g. electricity, water, gas, phone or internet)","1723589564":"Represents the maximum number of outstanding contracts in your portfolio. Each line in your portfolio counts for one open position. Once the maximum is reached, you will not be able to open new positions without closing an existing position first.","1724696797":"You are limited to one fiat account only.","1726472773":"Function with no return value","1726565314":"Close my account","1727681395":"Total assets in your Deriv and {{platform_name_mt5}} demo accounts.","1728121741":"Transactions.csv","1728183781":"About Tether","1729145421":"Risk warning","1731747596":"The block(s) highlighted in red are missing input values. Please update them and click \"Run bot\".","1732891201":"Sell price","1734185104":"Balance: %1","1734264460":"Disclaimer","1736292549":"Update postal code","1737352280":"Bot.init is not called","1738681493":"Remove your glasses, if necessary","1739384082":"Unemployed","1739668049":"Close your account","1740371444":"Underlying market is not selected","1740843997":"Buy cryptocurrencies in an instant. Enjoy easy, quick, and secure exchanges using your local payment methods.","1742256256":"Please upload one of the following documents:","1743448290":"Payment agents","1743902050":"Complete your financial assessment","1745523557":"- Square root","1746051371":"Download the app","1746273643":"Moving Average Convergence Divergence","1747501260":"Sell conditions","1747523625":"Go back","1747674345":"Please use `.` as a decimal separator for fractional numbers.","1747682136":"Contract was cancelled.","1748754976":"Run","1749675724":"Deriv charges no commission across all account types.","1750065391":"Login time:","1753226544":"remove","1753975551":"Upload passport photo page","1756678453":"break out","1758386013":"Do not get lured to fake \"Deriv\" pages!","1761038852":"Let’s continue with providing proofs of address and identity.","1761762171":"Restart last trade on error (bot ignores the unsuccessful trade): {{ checkbox }}","1762707297":"Phone number","1763123662":"Upload your NIMC slip.","1766212789":"Server maintenance starts at 06:00 GMT every Sunday and may last up to 2 hours. You may experience service disruption during this time.","1766993323":"Only letters, numbers, and underscores are allowed.","1767429330":"Add a Derived account","1767726621":"Choose agent","1768861315":"Minute","1768918213":"Only letters, space, hyphen, period, and apostrophe are allowed.","1769068935":"Choose any of these exchanges to buy cryptocurrencies:","1771037549":"Add a Deriv real account","1771592738":"Conditional block","1772532756":"Create and edit","1777847421":"This is a very common password","1778815073":"{{website_name}} is not affiliated with any Payment Agent. Customers deal with Payment Agents at their sole risk. Customers are advised to check the credentials of Payment Agents, and check the accuracy of any information about Payments Agents (on Deriv or elsewhere) before transferring funds.","1778893716":"Click here","1779519903":"Should be a valid number.","1780770384":"This block gives you a random fraction between 0.0 to 1.0.","1782308283":"Quick strategy","1782395995":"Last Digit Prediction","1782690282":"Blocks menu","1782703044":"Sign up","1783740125":"Upload your selfie","1787135187":"Postal/ZIP code is required","1787492950":"Indicators on the chart tab are for indicative purposes only and may vary slightly from the ones on the {{platform_name_dbot}} workspace.","1788966083":"01-07-1999","1789497185":"Make sure your passport details are clear to read, with no blur or glare","1790770969":"FX-majors (standard/micro lots), FX-minors, Commodities, Cryptocurrencies","1791432284":"Search for country","1791971912":"Recent","1793913365":"To deposit money, please switch to your {{currency_symbol}} account.","1794815502":"Download your transaction history.","1801093206":"Get candle list","1801927731":"{{platform_name_dxtrade}} accounts","1803338729":"Choose what type of contract you want to trade. For example, for the Rise/Fall trade type you can choose one of three options: Rise, Fall, or Both. Selected option will determine available options for the Purchase block.","1804620701":"Expiration","1804789128":"{{display_value}} Ticks","1806355993":"No commission","1806503050":"Please note that some payment methods might not be available in your country.","1808058682":"Blocks are loaded successfully","1808393236":"Login","1808867555":"This block uses the variable “i” to control the iterations. With each iteration, the value of “i” is determined by the items in a given list.","1810217569":"Please refresh this page to continue.","1811109068":"Jurisdiction","1811972349":"Market","1811973475":"Returns a specific character from a given string","1812582011":"Connecting to server","1813700208":"Boom 300 Index","1813958354":"Remove comment","1815034361":"alphabetic","1815995250":"Buying contract","1816126006":"Trade on Deriv MT5 ({{platform_name_dmt5}}), the all-in-one FX and CFD trading platform.","1817154864":"This block gives you a random number from within a set range.","1820242322":"e.g. United States","1820332333":"Top up","1823177196":"Most popular","1824193700":"This block gives you the last digit of the latest tick value.","1827607208":"File not uploaded.","1830520348":"{{platform_name_dxtrade}} Password","1833481689":"Unlock","1833499833":"Proof of identity documents upload failed","1837762008":"Please submit your proof of identity and proof of address to verify your account in your account settings to access the cashier.","1838639373":"Resources","1840865068":"set {{ variable }} to Simple Moving Average Array {{ dummy }}","1841788070":"Palladium/USD","1841996888":"Daily loss limit","1842266423":"back","1842862156":"Welcome to your Deriv X dashboard","1843658716":"If you select \"Only Downs\", you win the payout if consecutive ticks fall successively after the entry spot. No payout if any tick rises or is equal to any of the previous ticks.","1845892898":"(min: {{min_stake}} - max: {{max_payout}})","1846266243":"This feature is not available for demo accounts.","1846587187":"You have not selected your country of residence","1846664364":"{{platform_name_dxtrade}}","1849484058":"Any unsaved changes will be lost.","1850031313":"- Low: the lowest price","1850132581":"Country not found","1850659345":"- Payout: the payout of the contract","1850663784":"Submit proofs","1851052337":"Place of birth is required.","1851776924":"upper","1851951013":"Please switch to your demo account to run your DBot.","1854480511":"Cashier is locked","1855566768":"List item position","1856485118":"Please <0>resubmit your proof of address to transfer funds between MT5 and Deriv accounts.","1858251701":"minute","1859308030":"Give feedback","1863053247":"Please upload your identity document.","1866811212":"Deposit in your local currency via an authorised, independent payment agent in your country.","1866836018":"<0/><1/>If your complaint relates to our data processing practices, you can submit a formal complaint to your local supervisory authority.","1867217564":"Index must be a positive integer","1867783237":"High-to-Close","1869315006":"See how we protect your funds to unlock the cashier.","1869787212":"Even","1869851061":"Passwords","1870933427":"Crypto","1871196637":"True if the result of the last trade matches the selection","1871664426":"Note","1871804604":"Regulated by the British Virgin Islands Financial Services Commission (License no. SIBA/L/18/1114)","1873838570":"Please verify your address","1874481756":"Use this block to purchase the specific contract you want. You may add multiple Purchase blocks together with conditional blocks to define your purchase conditions. This block can only be used within the Purchase conditions block.","1874756442":"BVI","1876325183":"Minutes","1877225775":"Your proof of address is verified","1877410120":"What you need to do now","1877832150":"# from end","1879042430":"Appropriateness Test, WARNING:","1879412976":"Profit amount: <0>{{profit}}","1880029566":"Australian Dollar","1880097605":"prompt for {{ string_or_number }} with message {{ input_text }}","1880875522":"Create \"get %1\"","1881018702":"hour","1881587673":"Total stake since you last cleared your stats.","1882825238":"Restart trading conditions","1883531976":"Clerks","1885708031":"#","1887852176":"Site is being updated","1889357660":"Enter a value in minutes, up to 60480 minutes (equivalent to 6 weeks).","1890171328":"By clicking Accept below and proceeding with the Account Opening you should note that you may be exposing yourself to risks (which may be significant, including the risk of loss of the entire sum invested) that you may not have the knowledge and experience to properly assess or mitigate.","1890332321":"Returns the number of characters of a given string of text, including numbers, spaces, punctuation marks, and symbols.","1894667135":"Please verify your proof of address","1898670234":"{{formatted_opening_time}} (GMT) on {{opening_day}},<0> {{opening_date}}.","1902547203":"MetaTrader 5 MacOS app","1903437648":"Blurry photo detected","1905032541":"We're now ready to verify your identity","1905589481":"If you want to change your account currency, please contact us via <0>live chat.","1906639368":"If this is the first time you try to create a password, or you have forgotten your password, please reset it.","1907884620":"Add a real Deriv Gaming account","1908239019":"Make sure all of the document is in the photo","1909647105":"TRX/USD","1909769048":"median","1913777654":"Switch account","1914014145":"Today","1914270645":"Default Candle Interval: {{ candle_interval_type }}","1914725623":"Upload the page that contains your photo.","1917523456":"This block sends a message to a Telegram channel. You will need to create your own Telegram bot to use this block.","1917804780":"You will lose access to your Options account when it gets closed, so be sure to withdraw all your funds. (If you have a CFDs account, you can also transfer the funds from your Options account to your CFDs account.)","1918633767":"Second line of address is not in a proper format.","1918796823":"Please enter a stop loss amount.","1919030163":"Tips to take a good selfie","1920217537":"Compare","1920468180":"How to use the SMA block","1921634159":"A few personal details","1921914669":"Deposit with Deriv P2P","1922529883":"Boom 1000 Index","1922955556":"Use a longer keyboard pattern with more turns","1923431535":"“Stop loss” is deactivated and will only be available when “Deal cancellation” expires.","1924365090":"Maybe later","1924765698":"Place of birth*","1925090823":"Sorry, trading is unavailable in {{clients_country}}.","1927244779":"Use only the following special characters: . , ' : ; ( ) @ # / -","1928930389":"GBP/NOK","1929309951":"Employment Status","1929694162":"Compare accounts","1930899934":"Tether","1931659123":"Run on every tick","1931884033":"It seems that your date of birth in the document is not the same as your Deriv profile. Please update your date of birth in the <0>Personal details page to solve this issue.","1939902659":"Signal","1940408545":"Delete this token","1941915555":"Try later","1942091675":"Cryptocurrency trading is not available for clients residing in the United Kingdom.","1943440862":"Calculates Bollinger Bands (BB) list from a list with a period","1944204227":"This block returns current account balance.","1947527527":"1. This link was sent by you","1948092185":"GBP/CAD","1949719666":"Here are the possible reasons:","1950413928":"Submit identity documents","1952580688":"Submit passport photo page","1955219734":"Town/City*","1957759876":"Upload identity document","1958807602":"4. 'Table' takes an array of data, such as a list of candles, and displays it in a table format.","1959678342":"Highs & Lows","1960240336":"first letter","1964097111":"USD","1964165648":"Connection lost","1965916759":"Asian options settle by comparing the last tick with the average spot over the period.","1966023998":"2FA enabled","1966281100":"Console {{ message_type }} value: {{ input_message }}","1968025770":"Bitcoin Cash","1968077724":"Agriculture","1968368585":"Employment status","1971898712":"Add or manage account","1973536221":"You have no open positions yet.","1973564194":"You are limited to one fiat account. You won’t be able to change your account currency if you have already made your first deposit or created a real {{dmt5_label}} or {{platform_name_dxtrade}} account.","1974273865":"This scope will allow third-party apps to view your account activity, settings, limits, balance sheets, trade purchase history, and more.","1981940238":"This complaints policy, which may change from time to time, applies to your account(s) registered with {{legal_entity_name_svg}} and {{legal_entity_name_v}}.","1982912252":"Relative Strength Index (RSI) from a list with a period","1983001416":"Define your trade options such as multiplier and stake. This block can only be used with the multipliers trade type. If you select another trade type, this block will be replaced with the Trade options block.","1983387308":"Preview","1983544897":"P.O. Box is not accepted in address","1983676099":"Please check your email for details.","1984700244":"Request an input","1984742793":"Uploading documents","1985366224":"Each day, you can make up to {{ allowed_internal }} transfers between your Deriv accounts and up to {{ allowed_mt5 }} transfers between your Deriv and {{platform_name_mt5}} accounts.","1985637974":"Any blocks placed within this block will be executed at every tick. If the default candle interval is set to 1 minute in the Trade Parameters root block, the instructions in this block will be executed once every minute. Place this block outside of any root block.","1986498784":"BTC/LTC","1987080350":"Demo","1987447369":"Your cashier is locked","1988153223":"Email address","1988302483":"Take profit:","1988601220":"Duration value","1990735316":"Rise Equals","1991448657":"Don't know your tax identification number? Click <0>here to learn more.","1991524207":"Jump 100 Index","1994023526":"The email address you entered had a mistake or typo (happens to the best of us).","1994558521":"The platforms aren’t user-friendly.","1994600896":"This block requires a list of candles as an input parameter.","1995023783":"First line of address*","1996767628":"Please confirm your tax information.","1997138507":"If the last tick is equal to the average of the ticks, you don't win the payout.","1998199587":"You can also exclude yourself entirely for a specified duration. If, at any time, you decide to trade again, you must then contact our Customer Support to remove this self-exclusion. There will be a 24-hour-cooling-off period before you can resume trading. ","2001222130":"Check your spam or junk folder. If it's not there, try resending the email.","2004792696":"If you are a UK resident, to self-exclude from all online gambling companies licensed in Great Britain, go to <0>www.gamstop.co.uk.","2007028410":"market, trade type, contract type","2007092908":"Trade with leverage and low spreads for better returns on successful trades.","2008809853":"Please proceed to withdraw your funds before 30 November 2021.","2009620100":"DBot will not proceed with any new trades. Any ongoing trades will be completed by our system. Any unsaved changes will be lost.<0>Note: Please check your statement to view completed transactions.","2009770416":"Address:","2010759971":"Uploads successful","2010866561":"Returns the total profit/loss","2011609940":"Please input number greater than 0","2011808755":"Purchase Time","2014590669":"Variable '{{variable_name}}' has no value. Please set a value for variable '{{variable_name}}' to notify.","2017672013":"Please select the country of document issuance.","2020545256":"Close your account?","2021037737":"Please update your details to continue.","2023659183":"Student","2023762268":"I prefer another trading website.","2024107855":"{{payment_agent}} agent contact details:","2025339348":"Move away from direct light — no glare","2027625329":"Simple Moving Average Array (SMAA)","2027696535":"Tax information","2028163119":"EOS/USD","2029237955":"Labuan","2030018735":"RSI is a technical analysis tool that helps you identify the market trend. It will give you a value from 0 to 100. An RSI value of 70 and above means that the asset is overbought and the current trend may reverse, while a value of 30 and below means that the asset is oversold.","2030045667":"Message","2033648953":"This block gives you the specified candle value for a selected time interval.","2034803607":"You must be 18 years old and above.","2035258293":"Start trading with us","2035925727":"sort {{ sort_type }} {{ sort_direction }} {{ input_list }}","2036578466":"Should be {{value}}","2037481040":"Choose a way to fund your account","2037665157":"Expand All Blocks","2037906477":"get sub-list from #","2042050260":"- Purchase price: the purchase price (stake) of the contract","2042778835":"This complaints policy, which may change from time to time, applies to your account registered with {{legal_entity_name}}.","2044086432":"The close is the latest tick at or before the end time. If you selected a specific end time, the end time is the selected time.","2046273837":"Last tick","2048110615":"Email address*","2048134463":"File size exceeded.","2050080992":"Tron","2050170533":"Tick list","2051558666":"View transaction history","2053617863":"Please proceed to withdraw all your funds from your account.","2054889300":"Create \"%1\"","2055317803":"Copy the link to your mobile browser","2057082550":"Accept our updated <0>terms and conditions","2057419639":"Exit Spot","2060873863":"Your order {{order_id}} is complete","2062912059":"function {{ function_name }} {{ function_params }}","2063655921":"By purchasing the \"Close-to-Low\" contract, you'll win the multiplier times the difference between the close and low over the duration of the contract.","2063812316":"Text Statement","2063890788":"Cancelled","2065278286":"Spread","2067903936":"Driving licence","2070002739":"Don’t accept","2070752475":"Regulatory Information","2074235904":"Last name is required.","2074497711":"The Telegram notification could not be sent","2080553498":"3. Get the chat ID using the Telegram REST API (read more: https://core.telegram.org/bots/api#getupdates)","2080829530":"Sold for: {{sold_for}}","2082533832":"Yes, delete","2084693624":"Converts a string representing a date/time string into seconds since Epoch. Example: 2019-01-01 21:03:45 GMT+0800 will be converted to 1546347825. Time and time zone offset are optional.","2084925123":"Use our fiat onramp services to buy and deposit cryptocurrency into your Deriv account.","2085387371":"Must be numbers, letters, and special characters . , ' -","2085602195":"- Entry value: the value of the first tick of the contract","2086742952":"You have added a real Options account.<0/>Make a deposit now to start trading.","2086792088":"Both barriers should be relative or absolute","2088735355":"Your session and login limits","2089087110":"Basket indices","2089299875":"Total assets in your Deriv real accounts.","2089581483":"Expires on","2091671594":"Status","2093167705":"You can only make deposits. Please contact us via live chat for more information.","2093675079":"- Close: the closing price","2096014107":"Apply","2096456845":"Date of birth*","2097170986":"About Tether (Omni)","2097381850":"Calculates Simple Moving Average line from a list with a period","2100713124":"account","2101972779":"This is the same as the above example, using a tick list.","2102572780":"Length of digit code must be 6 characters.","2104115663":"Last login","2104397115":"Please go to your account settings and complete your personal details to enable deposits and withdrawals.","2107381257":"Scheduled cashier system maintenance","2109312805":"The spread is the difference between the buy price and sell price. A variable spread means that the spread is constantly changing, depending on market conditions. A fixed spread remains constant but is subject to alteration, at the Broker's absolute discretion.","2110365168":"Maximum number of trades reached","2111015970":"This block helps you check if your contract can be sold. If your contract can be sold, it returns “True”. Otherwise, it returns an empty string.","2111528352":"Creating a variable","2112119013":"Take a selfie showing your face","2112175277":"with delimiter","2113321581":"Add a Deriv Gaming account","2115007481":"Total assets in your Deriv demo accounts.","2115223095":"Loss","2117073379":"Our cryptocurrency cashier is temporarily down due to system maintenance. You can access the Cashier in a few minutes when the maintenance is complete.","2117165122":"1. Create a Telegram bot and get your Telegram API token. Read more on how to create bots in Telegram here: https://core.telegram.org/bots#6-botfather","2117489390":"Auto update in {{ remaining }} seconds","2118315870":"Where do you live?","2119449126":"Example output of the below example will be:","2120617758":"Set up your trade","2121227568":"NEO/USD","2127564856":"Withdrawals are locked","2131963005":"Please withdraw your funds from the following Deriv MT5 account(s):","2133451414":"Duration","2133470627":"This block returns the potential payout for the selected trade type. This block can be used only in the \"Purchase conditions\" root block.","2135563258":"Forex trading frequency","2136246996":"Selfie uploaded","2137901996":"This will clear all data in the summary, transactions, and journal panels. All counters will be reset to zero.","2137993569":"This block compares two values and is used to build a conditional structure.","2138861911":"Scans and photocopies are not accepted","2139171480":"Reset Up/Reset Down","2139362660":"left side","2141055709":"New {{type}} password","2141873796":"Get more info on <0>CFDs, <1>multipliers, and <2>options.","2143803283":"Purchase Error","2144609616":"If you select \"Reset-Down”, you win the payout if the exit spot is strictly lower than either the entry spot or the spot at reset time.","2145690912":"Income Earning","2145995536":"Create new account","2146336100":"in text %1 get %2","2146892766":"Binary options trading experience","-153346659":"Upload your selfie.","-602131304":"Passport number","-1051213440":"Upload the front and back of your identity card.","-1600807543":"First, enter your identity card number and the expiry date.","-1139923664":"Next, upload the front and back of your identity card.","-783705755":"Upload the front of your identity card.","-566750665":"NIMC slip and proof of age","-1465944279":"NIMC slip number","-429612996":"Next, upload both of the following documents.","-376981174":"Upload your proof of age: birth certificate or age declaration document.","-612174191":"First line of address is required","-242734402":"Only {{max}} characters, please.","-378415317":"State is required","-1784470716":"State is not in a proper format","-1699820408":"Please enter a {{field_name}} under {{max_number}} characters.","-1575567374":"postal/ZIP code","-1497654315":"Our accounts and services are unavailable for the Jersey postal code.","-755626951":"Complete your address details","-1024240099":"Address","-584911871":"Select wallet currency","-1461267236":"Please choose your currency","-1352330125":"CURRENCY","-1027595143":"Less than $25,000","-40491332":"$25,000 - $50,000","-1139806939":"$50,001 - $100,000","-626752657":"0-1 year","-532014689":"1-2 years","-1001024004":"Over 3 years","-790513277":"6-10 transactions in the past 12 months","-580085300":"11-39 transactions in the past 12 months","-654781670":"Primary","-1717373258":"Secondary","-996132458":"Construction","-915003867":"Health","-1430012453":"Information & Communications Technology","-987824916":"Science & Engineering","-146630682":"Social & Cultural","-761306973":"Manufacturing","-739367071":"Employed","-1156937070":"$500,001 - $1,000,000","-315534569":"Over $1,000,000","-2068544539":"Salaried Employee","-531314998":"Investments & Dividends","-1235114522":"Pension","-1298056749":"State Benefits","-449943381":"Savings & Inheritance","-1631552645":"Professionals","-474864470":"Personal Care, Sales and Service Workers","-1129355784":"Agricultural, Forestry and Fishery Workers","-1242914994":"Craft, Metal, Electrical and Electronics Workers","-1317824715":"Cleaners and Helpers","-1592729751":"Mining, Construction, Manufacturing and Transport Workers","-2137323480":"Company Ownership","-1590574533":"Divorce Settlement","-1667683002":"Inheritance","-1237843731":"Investment Income","-777506574":"Sale of Property","-1161338910":"First name is required.","-1161818065":"Last name should be between 2 and 50 characters.","-1281693513":"Date of birth is required.","-26599672":"Citizenship is required","-912174487":"Phone is required.","-673765468":"Letters, numbers, spaces, periods, hyphens and forward slashes only.","-1356204661":"This Tax Identification Number (TIN) is invalid. You may continue with account creation, but to facilitate future payment processes, valid tax information will be required.","-1823540512":"Personal details","-1227878799":"Speculative","-1174064217":"Mr","-855506127":"Ms","-621555159":"Identity information","-204765990":"Terms of use","-931052769":"Submit verification","-1004605898":"Tips","-1938142055":"Documents uploaded","-448090287":"The link only works on mobile devices","-1244287721":"Something's gone wrong","-241258681":"You'll need to restart your verification on your computer","-929254273":"Get secure link","-2021867851":"Check back here to finish the submission","-1547069149":"Open the link and complete the tasks","-1767652006":"Here's how to do it:","-277611959":"You can now return to your computer to continue","-724178625":"Make sure full document is visible","-1519380038":"Glare detected","-1895280620":"Make sure your card details are clear to read, with no blur or glare","-1464447919":"Make sure your permit details are clear to read, with no blur or glare","-1436160506":"Make sure details are clear to read, with no blur or glare","-759124288":"Close","-759118956":"Redo","-753375398":"Enlarge image","-1042933881":"Driver's license","-1503134764":"Face photo page","-1335343167":"Sorry, no mobile phone bills","-699045522":"Documents you can use to verify your identity","-543666102":"It must be an official photo ID","-903877217":"These are the documents most likely to show your current home address","-1356835948":"Choose document","-1364375936":"Select a %{country} document","-401586196":"or upload photo – no scans or photocopies","-3110517":"Take a photo with your phone","-2033894027":"Submit identity card (back)","-20684738":"Submit license (back)","-1359585500":"Submit license (front)","-106779602":"Submit residence permit (back)","-1287247476":"Submit residence permit (front)","-1954762444":"Restart the process on the latest version of Safari","-261174676":"Must be under 10MB.","-685885589":"An error occurred while loading the component","-502539866":"Your face is needed in the selfie","-1377968356":"Please try again","-1226547734":"Try using a JPG or PNG file","-849068301":"Loading...","-1730346712":"Loading","-1849371752":"Check that your number is correct","-309848900":"Copy","-1424436001":"Send link","-1093833557":"How to scan a QR code","-1408210605":"Point your phone’s camera at the QR code","-1773802163":"If it doesn’t work, download a QR code scanner from Google Play or the App Store","-109026565":"Scan QR code","-1644436882":"Get link via SMS","-1667839246":"Enter mobile number","-1533172567":"Enter your mobile number:","-1352094380":"Send this one-time link to your phone","-28974899":"Get your secure link","-359315319":"Continue","-1279080293":"2. Your desktop window stays open","-102776692":"Continue with the verification","-89152891":"Take a photo of the back of your card","-1646367396":"Take a photo of the front of your card","-1350855047":"Take a photo of the front of your license","-2119367889":"Take a photo using the basic camera mode instead","-342915396":"Take a photo","-419040068":"Passport photo page","-1354983065":"Refresh","-1925063334":"Recover camera access to continue face verification","-54784207":"Camera access is denied","-1392699864":"Allow camera access","-269477401":"Provide the whole document page for best results","-864639753":"Upload back of card from your computer","-1309771027":"Upload front of license from your computer","-1722060225":"Take photo","-565732905":"Selfie","-1703181240":"Check that it is connected and functional. You can also continue verification on your phone","-2043114239":"Camera not working?","-2029238500":"It may be disconnected. Try using your phone instead.","-468928206":"Make sure your device's camera works","-466246199":"Camera not working","-698978129":"Remember to press stop when you're done. Redo video actions","-538456609":"Looks like you took too long","-781816433":"Photo of your face","-1471336265":"Make sure your selfie clearly shows your face","-1375068556":"Check selfie","-1914530170":"Face forward and make sure your eyes are clearly visible","-776541617":"We'll compare it with your document","-478752991":"Your link will expire in one hour","-1859729380":"Keep this window open while using your mobile","-1283761937":"Resend link","-629011256":"Don't refresh this page","-1005231905":"Once you've finished we'll take you to the next step","-542134805":"Upload photo","-1462975230":"Document example","-1472844935":"The photo should clearly show your document","-189310067":"Account closed","-773766766":"Email and passwords","-1466827732":"Self exclusion","-1498206510":"Account limits","-241588481":"Login history","-966136867":"Connected apps","-213009361":"Two-factor authentication","-1214803297":"Dashboard-only path","-526636259":"Error 404","-1030759620":"Government Officers","-612752984":"These are default limits that we apply to your accounts.","-1598263601":"To learn more about trading limits and how they apply, please go to the <0>Help Centre.","-1411635770":"Learn more about account limits","-1340125291":"Done","-1786659798":"Trading limits - Item","-1101543580":"Limit","-858297154":"Represents the maximum amount of cash that you may hold in your account. If the maximum is reached, you will be asked to withdraw funds.","-1182362640":"Represents the maximum aggregate payouts on outstanding contracts in your portfolio. If the maximum is attained, you may not purchase additional contracts without first closing out existing positions.","-1781293089":"Maximum aggregate payouts on open positions","-1412690135":"*Any limits in your Self-exclusion settings will override these default limits.","-1598751496":"Represents the maximum volume of contracts that you may purchase in any given trading day.","-1359847094":"Trading limits - Maximum daily turnover","-1502578110":"Your account is fully authenticated and your withdrawal limits have been lifted.","-854023608":"To increase limit please verify your identity","-1500958859":"Verify","-1662154767":"a recent utility bill (e.g. electricity, water, gas, landline, or internet), bank statement, or government-issued letter with your name and this address.","-190838815":"We need this for verification. If the information you provide is fake or inaccurate, you won’t be able to deposit and withdraw.","-223216785":"Second line of address*","-594456225":"Second line of address","-1315410953":"State/Province","-1940457555":"Postal/ZIP Code*","-1964954030":"Postal/ZIP Code","-1541554430":"Next","-71696502":"Previous","-516397235":"Be careful who you share this token with. Anyone with this token can perform the following actions on your account behalf","-989216986":"Add accounts","-684271315":"OK","-617480265":"Delete token","-316749685":"Are you sure you want to delete this token?","-786372363":"Learn more about API token","-55560916":"To access our mobile apps and other third-party apps, you'll first need to generate an API token.","-198329198":"API Token","-955038366":"Copy this token","-1668692965":"Hide this token","-1661284324":"Show this token","-605778668":"Never","-32386760":"Name","-1628008897":"Token","-1238499897":"Last Used","-1171226355":"Length of token name must be between {{MIN_TOKEN}} and {{MAX_TOKEN}} characters.","-1803339710":"Maximum {{MAX_TOKEN}} characters.","-408613988":"Select scopes based on the access you need.","-1076138910":"Trade","-1666909852":"Payments","-5605257":"This scope will allow third-party apps to withdraw to payment agents and make inter-account transfers for you.","-488597603":"Trading information","-1373485333":"This scope will allow third-party apps to view your trading history.","-758221415":"This scope will allow third-party apps to open accounts for you, manage your settings and token usage, and more. ","-1117963487":"Name your token and click on 'Create' to generate your token.","-2005211699":"Create","-2115275974":"CFDs","-988523882":"DMT5","-460645791":"You are limited to one fiat account. You won’t be able to change your account currency if you have already made your first deposit or created a real {{dmt5_label}} account.","-1146960797":"Fiat currencies","-1959484303":"Cryptocurrencies","-561724665":"You are limited to one fiat currency only","-2087317410":"Oops, something went wrong.","-1437206131":"JPEG JPG PNG PDF GIF","-820458471":"1 - 6 months old","-155705811":"A clear colour photo or scanned image","-587941902":"Issued under your name with your current address","-438669274":"JPEG JPG PNG PDF GIF","-723198394":"File size should be 8MB or less","-1948369500":"File uploaded is not supported","-1040865880":"Drop files here..","-1100235269":"Industry of employment","-684388823":"Estimated net worth","-509054266":"Anticipated annual turnover","-601903492":"Forex trading experience","-1012699451":"CFD trading experience","-1437017790":"Financial information","-39038029":"Trading experience","-1044962593":"Upload Document","-164448351":"Show less","-1361653502":"Show more","-337620257":"Switch to real account","-2120454054":"Add a real account","-38915613":"Unsaved changes","-2137450250":"You have unsaved changes. Are you sure you want to discard changes and leave this page?","-1067082004":"Leave Settings","-1416797980":"Please enter your {{ field_name }} as in your official identity documents.","-1466268810":"Please remember that it is your responsibility to keep your answers accurate and up to date. You can update your personal details at any time in your <0>account settings.","-1120954663":"First name*","-1659980292":"First name","-1857534296":"John","-1485480657":"Other details","-1315571766":"Place of birth","-2040322967":"Citizenship","-1692219415":"Tax residence","-1903720068":"The country in which you meet the criteria for paying taxes. Usually the country in which you physically reside.","-651516152":"Tax Identification Number","-1543016582":"I hereby confirm that the tax information I provided is true and complete. I will also inform {{legal_entity_name}} about any changes to this information.","-1387062433":"Account opening reason","-1451334536":"Continue trading","-1525879032":"Your documents for proof of address is expired. Please submit again.","-1425489838":"Proof of address verification not required","-1008641170":"Your account does not need address verification at this time. We will inform you if address verification is required in the future.","-60204971":"We could not verify your proof of address","-1944264183":"To continue trading, you must also submit a proof of identity.","-1088324715":"We’ll review your documents and notify you of its status within 1 - 3 working days.","-1176889260":"Please select a document type.","-1515286538":"Please enter your document number. ","-1785463422":"Verify your identity","-78467788":"Please select the document type and enter the ID number.","-1117345066":"Choose the document type","-651192353":"Sample:","-1263033978":"Please ensure all your personal details are the same as in your chosen document. If you wish to update your personal details, go to account settings.","-937707753":"Go Back","-1926456107":"The ID you submitted is expired.","-555047589":"It looks like your identity document has expired. Please try again with a valid document.","-841187054":"Try Again","-2097808873":"We were unable to verify your ID with the details you provided. ","-228284848":"We were unable to verify your ID with the details you provided.","-1443800801":"Your ID number was submitted successfully","-1391934478":"Your ID is verified. You will also need to submit proof of your address.","-118547687":"ID verification passed","-200989771":"Go to personal details","-1358357943":"Please check and update your postal code before submitting proof of identity.","-1401994581":"Your personal details are missing","-2004327866":"Please select a valid country of document issuance.","-1664159494":"Country","-1874113454":"Please check and resubmit or choose a different document type.","-749870311":"Please contact us via <0>live chat.","-1084991359":"Proof of identity verification not required","-1981334109":"Your account does not need identity verification at this time. We will inform you if identity verification is required in the future.","-182918740":"Your proof of identity submission failed because:","-246893488":"JPEG, JPG, PNG, PDF, or GIF","-1454880310":"Must be valid for at least 6 months","-100534371":"Before uploading, please ensure that you’re facing forward in the selfie, your face is within the frame, and your eyes are clearly visible even if you’re wearing glasses.","-1529523673":"Confirm and upload","-705047643":"Sorry, an error occured. Please select another file.","-1664309884":"Tap here to upload","-1725454783":"Failed","-839094775":"Back","-337979330":"We could not verify your proof of identity","-706528101":"As a precaution, we have disabled trading, deposits and withdrawals for this account. If you have any questions, please go to our Help Center.<0>Help Centre.","-856213726":"You must also submit a proof of address.","-1389323399":"You should enter {{min_number}}-{{max_number}} characters.","-1313806160":"Please request a new password and check your email for the new token.","-329713179":"Ok","-1598167506":"Success","-1077809489":"You have a new {{platform}} password to log in to your {{platform}} accounts on the web and mobile apps.","-2068479232":"{{platform}} password","-1332137219":"Strong passwords contain at least 8 characters that include uppercase and lowercase letters, numbers, and symbols.","-1597186502":"Reset {{platform}} password","-848721396":"These trading limits are optional, and you can strengthen them at any time. If you don’t wish to set a specific limit, leave the field blank. If you live in the United Kingdom, Customer Support can only remove or weaken your trading limits after 24 hours of receiving the request. If you live in the Isle of Man, Customer Support can only remove or weaken your trading limits after your trading limit period has expired.","-469096390":"These trading limits are optional, and you can strengthen them at any time. If you don’t wish to set a specific limit, leave the field blank. Customer Support can only remove or weaken your trading limits after 24 hours of receiving the request.","-42808954":"You can also exclude yourself entirely for a specified duration. This can only be removed once your self-exclusion has expired. If you wish to continue trading once your self-exclusion period expires, you must contact Customer Support by calling <0>+447723580049 to lift this self-exclusion. Requests by chat or email shall not be entertained. There will be a 24-hour cooling-off period before you can resume trading.","-1088698009":"These self-exclusion limits help you control the amount of money and time you spend trading on {{platform_name_trader}}, {{platform_name_dbot}}, {{platform_name_smarttrader}} and {{platform_name_bbot}} on Deriv. The limits you set here will help you exercise <0>responsible trading.","-1702324712":"These limits are optional, and you can adjust them at any time. You decide how much and how long you’d like to trade. If you don’t wish to set a specific limit, leave the field blank.","-1819875658":"You can also exclude yourself entirely for a specified duration. Once the self-exclusion period has ended, you can either extend it further or resume trading immediately. If you wish to reduce or remove the self-exclusion period, contact our <0>Customer Support.","-1031814119":"About trading limits and self-exclusion","-183468698":"Trading limits and self-exclusion","-933963283":"No, review my limits","-1759860126":"Yes, log me out immediately","-572347855":"{{value}} mins","-313333548":"You’ll be able to adjust these limits at any time. You can reduce your limits from the <0>self-exclusion page. To increase or remove your limits, please contact our <1>Customer Support team.","-1265833982":"Accept","-2123139671":"Your stake and loss limits","-1250802290":"24 hours","-2070080356":"Max. total stake","-1545823544":"7 days","-180147209":"You will be automatically logged out from each session after this time limit.","-374553538":"Your account will be excluded from the website until this date (at least 6 months, up to 5 years).","-2121421686":"To self-exclude from all online gambling companies licensed in Great Britain, go to <0>www.gamstop.co.uk.","-2105708790":"Your maximum account balance and open positions","-1960600163":"Once your account balance reaches this amount, you will not be able to deposit funds into your account.","-1073845224":"No. of open position(s)","-288196326":"Your maximum deposit limit","-568749373":"Max. deposit limit","-1884902844":"Max. deposit limit per day","-545085253":"Max. deposit limit over 7 days","-1031006762":"Max. deposit limit over 30 days","-1116871438":"Max. total loss over 30 days","-2134714205":"Time limit per session","-1884271702":"Time out until","-1265825026":"Timeout time must be greater than current time.","-1332882202":"Timeout time cannot be more than 6 weeks.","-1635977118":"Exclude time cannot be less than 6 months.","-1617352279":"The email is in your spam folder (Sometimes things get lost there).","-547557964":"We can’t deliver the email to this address (Usually because of firewalls or filtering).","-976364600":"Please click on the link in the email to change your DMT5 password.","-742748008":"Check your email and click the link in the email to proceed.","-84068414":"Still didn't get the email? Please contact us via <0>live chat.","-2073934245":"The financial trading services offered on this site are only suitable for customers who accept the possibility of losing all the money they invest and who understand and have experience of the risk involved in the purchase of financial contracts. Transactions in financial contracts carry a high degree of risk. If the contracts you purchased expire as worthless, you will lose all your investment, which includes the contract premium.","-1166068675":"Your account will be opened with {{legal_entity_name}}, regulated by the UK Gaming Commission (UKGC), and will be subject to the laws of the Isle of Man.","-975118358":"Your account will be opened with {{legal_entity_name}}, regulated by the Malta Financial Services Authority (MFSA), and will be subject to the laws of Malta.","-680528873":"Your account will be opened with {{legal_entity_name}} and will be subject to the laws of Samoa.","-1125193491":"Add account","-2068229627":"I am not a PEP, and I have not been a PEP in the last 12 months.","-428335668":"You will need to set a password to complete the process.","-1850792730":"Unlink from {{identifier_title}}","-2139303636":"You may have followed a broken link, or the page has moved to a new address.","-1448368765":"Error code: {{error_code}} page not found","-2145244263":"This field is required","-70342544":"We’re legally obliged to ask for your financial information.","-1894668798":"Other trading instruments experience","-1026468600":"Other trading instruments frequency","-179005984":"Save","-789291456":"Tax residence*","-1651554702":"Only alphabet is allowed","-1458676679":"You should enter 2-50 characters.","-1166111912":"Use only the following special characters: {{ permitted_characters }}","-884768257":"You should enter 0-35 characters.","-2113555886":"Only letters, numbers, space, and hyphen are allowed.","-874280157":"This Tax Identification Number (TIN) is invalid. You may continue using it, but to facilitate future payment processes, valid tax information will be required.","-1037916704":"Miss","-1113902570":"Details","-634958629":"We use the information you give us only for verification purposes. All information is kept confidential.","-731992635":"Title*","-352888977":"Title","-136976514":"Country of residence*","-945104751":"We’re legally obliged to ask for your tax information.","-1702919018":"Second line of address (optional)","-1124948631":"Professional Client","-259515058":"By default, all {{brand_website_name}} clients are retail clients but anyone can request to be treated as a professional client.","-1463348492":"I would like to be treated as a professional client.","-1958764604":"Email preference","-2121071263":"Check this box to receive updates via email.","-2068064150":"Get updates about Deriv products, services and events.","-1558679249":"Please make sure your information is correct or it may affect your trading experience.","-1822545742":"Ether Classic","-1334641066":"Litecoin","-1214036543":"US Dollar","-1782590355":"No currency has been set for this account","-2116332353":"Please close your positions in the following Deriv account(s):","-2048005267":"{{number_of_positions}} position(s)","-1923892687":"Please withdraw your funds from the following Deriv X account(s):","-1629894615":"I have other financial priorities.","-844051272":"I want to stop myself from trading.","-1113965495":"I’m no longer interested in trading.","-1224285232":"Customer service was unsatisfactory.","-9323953":"Remaining characters: {{remaining_characters}}","-2061895474":"Closing your account will automatically log you out. We shall delete your personal information as soon as our legal obligations are met.","-203298452":"Close account","-1219849101":"Please select at least one reason","-484540402":"An error occurred","-1911549768":"Inaccessible MT5 account(s)","-1869355019":"Action required","-1030102424":"You can't trade on Deriv.","-448385353":"You can't make transactions.","-1058447223":"Before closing your account:","-912764166":"Withdraw your funds.","-60139953":"We shall delete your personal information as soon as our legal obligations are met, as mentioned in the section on Data Retention in our <0>Security and privacy policy","-536187647":"Confirm revoke access?","-1357606534":"Permission","-570222048":"Revoke access","-506510414":"Date and time","-1708927037":"IP address","-365847515":"Apps you can use with your Deriv login:","-26491905":"You're using your {{identifier_title}} account to log in to your Deriv account. To change your login method into using a username and password, click the <0>Unlink button.","-596920538":"Unlink","-1319725774":"DMT5 Password","-1403020742":"Your DMT5 password is for logging in to your Deriv MT5 accounts on the desktop, web, and mobile apps.","-9570380":"Use the {{platform_name_dxtrade}} password to log in to your {{platform_name_dxtrade}} accounts on the web and mobile apps.","-412891493":"Disable 2FA","-200487676":"Enable","-1840392236":"That's not the right code. Please try again.","-307075478":"6 digit code","-790444493":"Protect your account with 2FA. Each time you log in to your account, you will need to enter your password and an authentication code generated by a 2FA app on your smartphone.","-368010540":"You have enabled 2FA for your Deriv account.","-403552929":"To disable 2FA, please enter the six-digit authentication code generated by your 2FA app below:","-752939584":"How to set up 2FA for your Deriv account","-90649785":"Click here to copy key","-206376148":"Key copied!","-650175948":"A recent bank statement or government-issued letter with your name and address.","-2006895756":"1. Address","-716361389":"An accurate and complete address helps to speed up your verification process.","-890084320":"Save and submit","-902076926":"Before uploading your document, please ensure that your personal details are updated to match your proof of identity. This will help to avoid delays during the verification process.","-1517325716":"Deposit via the following payment methods:","-1547606079":"We accept the following cryptocurrencies:","-42592103":"Deposit cryptocurrencies","-639677539":"Buy cryptocurrencies","-1560098002":"Buy cryptocurrencies via fiat onramp","-541870313":"Deposit via payment agents","-72314872":"Deposit in your local currency via peer-to-peer exchange with fellow traders in your country.","-58126117":"Your simple access to crypto. Fast and secure way to exchange and purchase cryptocurrencies. 24/7 live chat support.","-1705887186":"Your deposit is successful.","-142361708":"In process","-1582681840":"We’ve received your request and are waiting for more blockchain confirmations.","-1626218538":"You’ve cancelled your withdrawal request.","-1062841150":"Your withdrawal is unsuccessful due to an error on the blockchain. Please <0>contact us via live chat for more info.","-630780094":"We’re awaiting confirmation from the blockchain.","-1525882769":"Your withdrawal is unsuccessful. We've sent you an email with more information.","-298601922":"Your withdrawal is successful.","-2021135479":"This field is required.","-1975494965":"Cashier","-1870909526":"Our server cannot retrieve an address.","-582721696":"The current allowed withdraw amount is {{format_min_withdraw_amount}} to {{format_max_withdraw_amount}} {{currency}}","-1957498244":"more","-197251450":"Don't want to trade in {{currency_code}}? You can open another cryptocurrency account.","-1900848111":"This is your {{currency_code}} account.","-749765720":"Your fiat account currency is set to {{currency_code}}.","-803546115":"Manage your accounts ","-1463156905":"Learn more about payment methods","-316545835":"Please ensure <0>all details are <0>correct before making your transfer.","-1309258714":"From account number","-1247676678":"To account number","-816476007":"Account holder name","-1995606668":"Amount","-344403983":"Description","-922432739":"Please enter a valid client login ID.","-1024241603":"Insufficient balance.","-1979554765":"Please enter a valid description.","-1186807402":"Transfer","-1254233806":"You've transferred","-1179992129":"All payment agents","-1137412124":"Can’t find a suitable payment method for your country? Then try a payment agent.","-460879294":"You're not done yet. To receive the transferred funds, you must contact the payment agent for further instruction. A summary of this transaction has been emailed to you for your records.","-596416199":"By name","-1169636644":"By payment agent ID","-118683067":"Withdrawal limits: <0 />-<1 />","-1201279468":"To withdraw your funds, please choose the same payment method you used to make your deposits.","-1787304306":"Deriv P2P","-60779216":"Withdrawals are temporarily unavailable due to system maintenance. You can make your withdrawals when the maintenance is complete.","-215186732":"You’ve not set your country of residence. To access Cashier, please update your country of residence in the Personal details section in your account settings.","-1392897508":"The identification documents you submitted have expired. Please submit valid identity documents to unlock Cashier. ","-1321645628":"Your cashier is currently locked. Please contact us via live chat to find out how to unlock it.","-1158467524":"Your account is temporarily disabled. Please contact us via live chat to enable deposits and withdrawals again.","-929148387":"Please set your account currency to enable deposits and withdrawals.","-541392118":"Your account has not been authenticated. Please submit your <0>proof of identity and <1>proof of address to authenticate your account and access your cashier.","-247122507":"Your cashier is locked. Please complete the <0>financial assessment to unlock it.","-1443721737":"Your cashier is locked. See <0>how we protect your funds before you proceed.","-901712457":"Your access to Cashier has been temporarily disabled as you have not set your 30-day turnover limit. Please go to <0>Self-exclusion and set your 30-day turnover limit.","-166472881":"Your <0>personal details are incomplete. Please go to your account settings and complete your personal details to enable deposits and withdrawals.","-666905139":"Deposits are locked","-378858101":"Your <0>personal details are incomplete. Please go to your account settings and complete your personal details to enable deposits.","-1037495888":"You have chosen to exclude yourself from trading on our website until {{exclude_until}}. If you are unable to place a trade or deposit after your self-exclusion period, please contact us via live chat.","-949074612":"Please contact us via live chat.","-1318742415":"Your account has not been authenticated. Please submit your <0>proof of identity and <1>proof of address to authenticate your account and request for withdrawals.","-127614820":"Unfortunately, you can only make deposits. Please contact us via live chat to enable withdrawals.","-172277021":"Cashier is locked for withdrawals","-1624999813":"It seems that you've no commissions to withdraw at the moment. You can make withdrawals once you receive your commissions.","-1077304626":"Amount ({{currency}})","-1559994981":"Approximate value","-231863107":"No","-190084602":"Transaction","-811190405":"Time","-1332236294":"Please verify your identity","-1675848843":"Error","-283017497":"Retry","-1196049878":"First line of home address","-1326406485":"Postal Code/ZIP","-939625805":"Telephone","-442575534":"Email verification failed","-1459042184":"Update your personal details","-1603543465":"We can't validate your personal details because there is some information missing.","-614516651":"Need help? <0>Contact us.","-203002433":"Deposit now","-720315013":"You have no funds in your {{currency}} account","-2052373215":"Please make a deposit to use this feature.","-299033842":"Recent transactions","-348296830":"{{transaction_type}} {{currency}}","-1929538515":"{{amount}} {{currency}} on {{submit_date}}","-1534990259":"Transaction hash:","-1612346919":"View all","-89973258":"Resend email in {{seconds}}s","-1059419768":"Notes","-949073402":"I confirm that I have verified the client’s transfer information.","-1752211105":"Transfer now","-598073640":"About Tether (Ethereum)","-275902914":"Tether on Ethereum (eUSDT)","-1188009792":"Tether on Omni Layer (USDT)","-1239329687":"Tether was originally created to use the bitcoin network as its transport protocol ‒ specifically, the Omni Layer ‒ to allow transactions of tokenised traditional currency.","-1272778997":"We've sent you an email.","-2013448791":"Want to exchange between e-wallet currencies? Try <0>Ewallet.Exchange","-2061807537":"Something’s not right","-1068036170":"We do not charge a transfer fee for transfers in the same currency between your Deriv fiat and {{platform_name_mt5}} accounts and between your Deriv fiat and {{platform_name_dxtrade}} accounts.","-2056016338":"You’ll not be charged a transfer fee for transfers in the same currency between your Deriv fiat and {{platform_name_mt5}} accounts.","-599632330":"We’ll charge a 1% transfer fee for transfers in different currencies between your Deriv fiat and {{platform_name_mt5}} accounts and between your Deriv fiat and {{platform_name_dxtrade}} accounts.","-1196994774":"We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency accounts.","-993556039":"We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts and between your Deriv cryptocurrency and {{platform_name_dxtrade}} accounts.","-1382702462":"We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts.","-1151983985":"Transfer limits may vary depending on the exchange rates.","-1747571263":"Please bear in mind that some transfers may not be possible.","-757062699":"Transfers may be unavailable due to high volatility or technical issues and when the exchange markets are closed.","-1344870129":"Deriv accounts","-1156059326":"You have {{number}} transfer remaining for today.","-1109729546":"You will be able to transfer funds between MT5 accounts and other accounts once your address is verified.","-1593609508":"Transfer between your accounts in Deriv","-464965808":"Transfer limits: <0 /> - <1 />","-553249337":"Transfers are locked","-1638172550":"To enable this feature you must complete the following:","-1157701227":"You need at least two accounts","-417711545":"Create account","-1232852916":"We’re switching over to your {{currency}} account to view the transaction.","-993393818":"Binance Smart Chain","-561858764":"Polygon (Matic)","-410890127":"Ethereum (ERC20)","-1059526741":"Ethereum (ETH)","-1615615253":"We do not support Tron, to deposit please use only Ethereum ({{token}}).","-1831000957":"Please select the network from where your deposit will come from.","-314177745":"Unfortunately, we couldn't get the address since our server was down. Please click Refresh to reload the address or try again later.","-1345040662":"Looking for a way to buy cryptocurrency?","-759000391":"We were unable to verify your information automatically. To enable this function, you must complete the following:","-1632668764":"I accept","-544232635":"Please go to the Deposit page to generate an address. Then come back here to continue with your transaction.","-1161069724":"Please copy the crypto address you see below. You'll need it to deposit your cryptocurrency.","-1388977563":"Copied!","-1962894999":"This address can only be used ONCE. Please copy a new one for your next transaction.","-451858550":"By clicking 'Continue' you will be redirected to {{ service }}, a third-party payment service provider. Please note that {{ website_name }} is not responsible for the content or services provided by {{ service }}. If you encounter any issues related to {{ service }} services, you must contact {{ service }} directly.","-2005265642":"Fiat onramp is a cashier service that allows you to convert fiat currencies to crypto to top up your Deriv crypto accounts. Listed here are third-party crypto exchanges. You’ll need to create an account with them to use their services.","-1593063457":"Select payment channel","-2004264970":"Your wallet address should have 25 to 64 characters.","-1707299138":"Your {{currency_symbol}} wallet address","-38063175":"{{account_text}} wallet","-1474202916":"Make a new withdrawal","-705272444":"Upload a proof of identity to verify your identity","-2024958619":"This is to protect your account from unauthorised withdrawals.","-130833284":"Please note that your maximum and minimum withdrawal limits aren’t fixed. They change due to the high volatility of cryptocurrency.","-1531269493":"We'll send you an email once your transaction has been processed.","-113940416":"Current stake:","-1999539705":"Deal cancel. fee:","-447037544":"Buy price:","-1342699195":"Total profit/loss:","-1511825574":"Profit/Loss:","-726626679":"Potential profit/loss:","-338379841":"Indicative price:","-1525144993":"Payout limit:","-1167474366":"Tick ","-555886064":"Won","-529060972":"Lost","-571642000":"Day","-155989831":"Decrement value","-1192773792":"Don't show this again","-1769852749":"N/A","-1572746946":"Asian Up","-686840306":"Asian Down","-2141198770":"Higher","-816098265":"Lower","-1646655742":"Spread Up","-668987427":"Spread Down","-912577498":"Matches","-1862940531":"Differs","-808904691":"Odd","-556230215":"Ends Outside","-1268220904":"Ends Between","-703542574":"Up","-1127399675":"Down","-768425113":"No Touch","-1163058241":"Stays Between","-1354485738":"Reset Call","-376148198":"Only Ups","-1337379177":"High Tick","-328036042":"Please enter a stop loss amount that's higher than the current potential loss.","-2127699317":"Invalid stop loss. Stop loss cannot be more than stake.","-1940333322":"DBot is not available for this account","-1210387519":"Go to DMT5 dashboard","-1223145005":"Loss amount: {{profit}}","-1062922595":"Reference ID (buy)","-2068574600":"Reference ID (sell)","-994038153":"Start Time","-1979852400":"Entry Spot","-427802309":"Profit/Loss","-668558002":"Journal.csv","-746652890":"Notifications","-824109891":"System","-507620484":"Unsaved","-764102808":"Google Drive","-1109191651":"Must be a number higher than 0","-1917772100":"Invalid number format","-1553945114":"Value must be higher than 2","-689786738":"Minimum duration: {{ min }}","-184183432":"Maximum duration: {{ max }}","-749186458":"Account switching is disabled while your bot is running. Please stop your bot before switching accounts.","-662836330":"Would you like to keep your current contract or close it? If you decide to keep it running, you can check and close it later on the <0>Reports page.","-597939268":"Keep my contract","-1322453991":"You need to log in to run the bot.","-1483938124":"This strategy is currently not compatible with DBot.","-236548954":"Contract Update Error","-1428017300":"THE","-1450728048":"OF","-255051108":"YOU","-1845434627":"IS","-931434605":"THIS","-740712821":"A","-187634388":"This block is mandatory. Here is where you can decide if your bot should continue trading. Only one copy of this block is allowed.","-2105473795":"The only input parameter determines how block output is going to be formatted. In case if the input parameter is \"string\" then the account currency will be added.","-1800436138":"2. for \"number\": 1325.68","-2046396241":"This block is mandatory. Only one copy of this block is allowed. It is added to the canvas by default when you open DBot.","-530632460":"This block is used to determine if the market price moves in the selected direction or not. It gives you a value of \"True\" or \"False\".","-1875717842":"Examples:","-890079872":"1. If the selected direction is \"Rise\", and the previous tick value is less than the current tick value, the output will be \"True\". Otherwise, the output will be an empty string.","-489739641":"2. If the selected direction is \"Fall\", and the previous tick value is more than the current tick value, the output will be \"True\". Otherwise, the output will be an empty string.","-2116076360":"There are 4 message types:","-1421941045":"2. 'Warn' displays a message in yellow to highlight something that needs attention.","-277850921":"If \"Win\" is selected, it will return \"True\" if your last trade was successful. Otherwise, it will return an empty string.","-1918487001":"Example:","-2139916657":"1. In the below example the loop is terminated in case \"x\" is \"False\" even though only one iteration is complete","-1238900333":"2. In the below example the loop jumps to the next iteration without executing below block in case if \"x\" is \"False\"","-1729479576":"You can use \"i\" inside the loop, for example to access list items","-1474636594":"In this example, the loop will repeat three times, as that is the number of items in the given list. During each iteration, the variable \"i\" will be assigned a value from the list. ","-908772734":"This block evaluates a statement and will perform an action only when the statement is true.","-334040831":"2. In this example, the instructions are repeated as long as the value of x is greater than or equal to 10. Once the value of x drops below 10, the loop is terminated.","-444267958":"\"Seconds Since Epoch\" block returns the number of seconds since January 1st, 1970.","-447522129":"You might need it when you want to repeat an actions after certain amount of time.","-1488259879":"The term \"candle\" refers to each bar on the candlestick chart. Each candle represents four market prices for the selected time interval:","-2020693608":"Each candlestick on the chart represents 4 market prices for the selected time interval:","-62728852":"- Open price: the opening price","-1247744334":"- Low price: the lowest price","-1386365697":"- Close price: the closing price","-1498732382":"A black (or red) candle indicates that the open price is higher than the close price. This represents a downward movement of the market price.","-1871864755":"This block gives you the last digit of the latest tick value of the selected market. If the latest tick value is 1410.90, this block will return 0. It’s useful for digit-based contracts such as Even/Odd, Matches/Differs, or Higher/Lower.","-1029671512":"In case if the \"OR\" operation is selected, the block returns \"True\" in case if one or both given values are \"True\"","-210295176":"Available operations:","-1385862125":"- Addition","-983721613":"- Subtraction","-854750243":"- Multiplication","-1394815185":"In case if the given number is less than the lower boundary of the range, the block returns the lower boundary value. Similarly, if the given number is greater than the higher boundary, the block will return the higher boundary value. In case if the given value is between boundaries, the block will return the given value unchanged.","-1034564248":"In the below example the block returns the value of 10 as the given value (5) is less than the lower boundary (10)","-2009817572":"This block performs the following operations to a given number","-671300479":"Available operations are:","-514610724":"- Absolute","-1923861818":"- Euler’s number (2.71) to the power of a given number","-1556344549":"Here’s how:","-1061127827":"- Visit the following URL, make sure to replace with the Telegram API token you created in Step 1: https://api.telegram.org/bot/getUpdates","-70949308":"4. Come back to DBot and add the Notify Telegram block to the workspace. Paste the Telegram API token and chat ID into the block fields accordingly.","-311389920":"In this example, the open prices from a list of candles are assigned to a variable called \"cl\".","-1460794449":"This block gives you a list of candles within a selected time interval.","-1634242212":"Used within a function block, this block returns a value when a specific condition is true.","-2012970860":"This block gives you information about your last contract.","-1504783522":"You can choose to see one of the following:","-10612039":"- Profit: the profit you’ve earned","-555996976":"- Entry time: the starting time of the contract","-1391071125":"- Exit time: the contract expiration time","-1961642424":"- Exit value: the value of the last tick of the contract","-111312913":"- Barrier: the barrier value of the contract (applicable to barrier-based trade types such as stays in/out, touch/no touch, etc.)","-674283099":"- Result: the result of the last contract: \"win\" or \"loss\"","-704543890":"This block gives you the selected candle value such as open price, close price, high price, low price, and open time. It requires a candle as an input parameter.","-482281200":"In the example below, the open price is assigned to the variable \"op\".","-364621012":"This block gives you the specified candle value for a selected time interval. You can choose which value you want:","-232477769":"- Open: the opening price","-610736310":"Use this block to sell your contract at the market price. Selling your contract is optional. You may choose to sell if the market trend is unfavourable.","-1307657508":"This block gives you the potential profit or loss if you decide to sell your contract. It can only be used within the \"Sell conditions\" root block.","-1921072225":"In the example below, the contract will only be sold if the potential profit or loss is more than the stake.","-955397705":"SMA adds the market price in a list of ticks or candles for a number of time periods, and divides the sum by that number of time periods.","-1424923010":"where n is the number of periods.","-1835384051":"What SMA tells you","-749487251":"SMA serves as an indicator of the trend. If the SMA points up then the market price is increasing and vice versa. The larger the period number, the smoother SMA line is.","-1996062088":"In this example, each point of the SMA line is an arithmetic average of close prices for the last 10 days.","-1866751721":"Input list accepts a list of ticks or candles, while period is the specified time period.","-1097076512":"You may compare SMA values calculated on every bot run to identify the market trend direction. Alternatively, you may also use a variation of the SMA block, the Simple Moving Average Array block. ","-1254849504":"If a period of 10 is entered, the Simple Moving Average Array block will return a list of SMA values calculated based on period of 10.","-1190046167":"This block displays a dialog box with a customised message. When the dialog box is displayed, your strategy is paused and will only resume after you click \"OK\".","-859028989":"In this example, the date and time will be displayed in a green notification box.","-1452086215":"In this example, a Rise contract will be purchased at midnight on 1 August 2019.","-1765276625":"Click the multiplier drop-down menu and choose the multiplier value you want to trade with.","-1872233077":"Your potential profit will be multiplied by the multiplier value you’ve chosen.","-614454953":"To learn more about multipliers, please go to the <0>Multipliers page.","-2078588404":"Select your desired market and asset type. For example, Forex > Major pairs > AUD/JPY","-2037446013":"2. Trade Type","-533927844":"Select your desired trade type. For example, Up/Down > Rise/Fall","-1192411640":"4. Default Candle Interval","-485434772":"8. Trade Options","-1827646586":"This block assigns a given value to a variable, creating the variable if it doesn't already exist.","-254421190":"List: ({{message_length}})","-1616649196":"results","-90107030":"No results found","-984140537":"Add","-786915692":"You are connected to Google Drive","-1150107517":"Connect","-1759213415":"Find out how this app handles your data by reviewing Deriv's <0>Privacy policy, which is part of Deriv's <1>Terms and conditions.","-934909826":"Load strategy","-1121028020":"or, if you prefer...","-254025477":"Select an XML file from your device","-1131095838":"Please upload an XML file","-523928088":"Create one or upload one from your local drive or Google Drive.","-1684205190":"Why can't I see my recent bots?","-2050879370":"1. Logged in from a different device","-811857220":"3. Cleared your browser cache","-1016171176":"Asset","-621128676":"Trade type","-671128668":"The amount that you pay to enter a trade.","-447853970":"Loss threshold","-410856998":"The bot will stop trading if your total profit exceeds this amount.","-1823621139":"Quick Strategy","-625024929":"Leaving already?","-584289785":"No, I'll stay","-1435060006":"If you leave, your current contract will be completed, but your bot will stop running immediately.","-783058284":"Total stake","-2077494994":"Total payout","-1073955629":"No. of runs","-1729519074":"Contracts lost","-42436171":"Total profit/loss","-1856204727":"Reset","-224804428":"Transactions","-1137823888":"Total payout since you last cleared your stats.","-992662695":"The number of times your bot has run since you last cleared your stats. Each run includes the execution of all the root blocks.","-1382491190":"Your total profit/loss since you last cleared your stats. It is the difference between your total payout and your total stake.","-305283152":"Strategy name","-1003476709":"Save as collection","-636521735":"Save strategy","-1373954791":"Should be a valid number","-1278608332":"Please enter a number between 0 and {{api_max_losses}}.","-287597204":"Enter limits to stop your bot from trading when any of these conditions are met.","-1445989611":"Limits your potential losses for the day across all Deriv platforms.","-152878438":"Maximum number of trades your bot will execute for this run.","-1490942825":"Apply and run","-1696412885":"Import","-250192612":"Sort","-1566369363":"Zoom out","-2060170461":"Load","-1200116647":"Click here to start building your DBot.","-1040972299":"Purchase contract","-600546154":"Sell contract (optional)","-985351204":"Trade again","-112876186":"Analysis","-1769584466":"Stats","-1133736197":"Utility","-1682372359":"Text","-907562847":"Lists","-1646497683":"Loops","-251326965":"Miscellaneous","-1285759343":"Search","-1058262694":"Stopping the bot will prevent further trades. Any ongoing trades will be completed by our system.","-1473283434":"Please be aware that some completed transactions may not be displayed in the transaction table if the bot is stopped while placing trades.","-397015538":"You may refer to the statement page for details of all completed transactions.","-1442034178":"Contract bought","-2020280751":"Bot is stopping","-1436403979":"Contract closed","-1711732508":"Reference IDs","-386141434":"(Buy)","-482272687":"(Sell)","-1983189496":"ticks","-694277729":"(High)","-2028564707":"(Low)","-627895223":"Exit spot","-596238067":"Entry/Exit spot","-558594655":"The bot is not running","-478946875":"The stats are cleared","-9461328":"Security and privacy","-563774117":"Dashboard","-418247251":"Download your journal.","-870004399":"<0>Bought: {{longcode}} (ID: {{transaction_id}})","-1211474415":"Filters","-186972150":"There are no messages to display","-999254545":"All messages are filtered out","-686334932":"Build a bot from the start menu then hit the run button to run the bot.","-1717650468":"Online","-1825471709":"A whole new trading experience on a powerful yet easy to use platform.","-981017278":"Automated trading at your fingertips. No coding needed.","-398198412":"Trade on Deriv MT5 (DMT5), the all-in-one FX and CFD trading platform.","-1768586966":"Trade CFDs on a customizable, easy-to-use trading platform.","-1309011360":"Open positions","-883103549":"Account deactivated","-821418875":"Trader","-679102561":"Contract Details","-430118939":"Complaints policy","-744999940":"Deriv account","-568280383":"Deriv Gaming","-1308346982":"Derived","-1546927062":"Deriv Financial","-895331276":"Complete your proof of address","-782679300":"Complete your proof of identity","-1596515467":"Derived BVI","-328128497":"Financial","-533935232":"Financial BVI","-565431857":"Financial Labuan","-1669418686":"AUD/CAD","-1548588249":"AUD/CHF","-1552890620":"AUD/JPY","-681231560":"AUD/PLN","-64938413":"AUD/USD","-1430522808":"EUR/AUD","-2020477069":"EUR/CAD","-1201853162":"EUR/CHF","-1318070255":"EUR/GBP","-1197505739":"EUR/JPY","-405907358":"EUR/USD","-1536293064":"NZD/JPY","-79700881":"NZD/USD","-642323838":"USD/CAD","-428199705":"USD/CHF","-424108348":"USD/JPY","-548255282":"USD/NOK","-1834131208":"USD/PLN","-524302516":"Silver/USD","-764731776":"Platinum/USD","-700966800":"Dutch Index","-1863229260":"Australian Index","-946336619":"Wall Street Index","-945048133":"French Index","-1093355162":"UK Index","-932734062":"Hong Kong Index","-2030624691":"Japanese Index","-354063409":"US Index","-232855849":"Euro 50 Index","-1925264914":"Volatility 25 Index","-708579504":"Volatility 50 Index","-975255670":"Volatility 75 Index","-1736314513":"Crash 300 Index","-342128411":"Crash 500 Index","-9704319":"Crash 1000 Index","-465860988":"Bull Market Index","-390528194":"Step Index","-280323742":"EUR Basket","-563812039":"Volatility 10 (1s) Index","-764111252":"Volatility 100 (1s) Index","-1374309449":"Volatility 200 (1s) Index","-1164978320":"Jump 10 Index","-575272887":"BCH/USD","-295406873":"BTC/ETH","-1713556301":"ZMR/USD","-2046638412":"XRP/USD","-1263203461":"BTC/USD","-1112522776":"DSH/USD","-460689370":"LTC/USD","-841561409":"Put Spread","-144803045":"Only numbers and these special characters are allowed: {{permitted_characters}}","-1450516268":"Only letters, numbers, space, hyphen, period, and apostrophe are allowed.","-1072358250":"Letters, spaces, periods, hyphens, apostrophes only","-1966032552":"The length of token should be 8.","-2128137611":"Should start with letter or number, and may contain hyphen and underscore.","-1590869353":"Up to {{decimal_count}} decimal places are allowed.","-2061307421":"Should be more than {{min_value}}","-1099941162":"Should be less than {{max_value}}","-1528188268":"Straight rows of keys are easy to guess","-1339903234":"Short keyboard patterns are easy to guess","-23980798":"Repeats like \"aaa\" are easy to guess","-235760680":"Avoid repeated words and characters","-1568933154":"Sequences like abc or 6543 are easy to guess","-725663701":"Avoid sequences","-1450768475":"Recent years are easy to guess","-1804838610":"Avoid years that are associated with you","-64849469":"Dates are often easy to guess","-2006915194":"Avoid dates and years that are associated with you","-2124205211":"A word by itself is easy to guess","-1095202689":"All-uppercase is almost as easy to guess as all-lowercase","-2137856661":"Reversed words aren't much harder to guess","-1885413063":"Predictable substitutions like '@' instead of 'a' don't help very much","-369258265":"This password is on the blacklist","-681468758":"Your web browser is out of date and may affect your trading experience. Please <0>update your browser.","-577777971":"You have reached the rate limit of requests per second. Please try later.","-206321775":"Fiat","-522767852":"DEMO","-433761292":"Switching to default account.","-405439829":"Sorry, you can't view this contract because it doesn't belong to this account.","-1590712279":"Gaming","-16448469":"Virtual","-540474806":"Your Options account is scheduled to be closed","-618539786":"Your account is scheduled to be closed","-945275490":"Withdraw all funds from your Options account.","-2093768906":"{{name}} has released your funds.
Would you like to give your feedback?","-705744796":"Your demo account balance has reached the maximum limit, and you will not be able to place new trades. Reset your balance to continue trading from your demo account.","-1585069798":"Please click the following link to complete your Appropriateness Test.","-1287141934":"Find out more","-367759751":"Your account has not been verified","-596690079":"Enjoy using Deriv?","-265932467":"We’d love to hear your thoughts","-1815573792":"Drop your review on Trustpilot.","-823349637":"Go to Trustpilot","-1204063440":"Set my account currency","-1751632759":"Get a faster mobile trading experience with the <0>{{platform_name_go}} app!","-1164554246":"You submitted expired identification documents","-219846634":"Let’s verify your ID","-529038107":"Install","-1738575826":"Please switch to your real account or create one to access the cashier.","-1329329028":"You’ve not set your 30-day turnover limit","-132893998":"Your access to the cashier has been temporarily disabled as you have not set your 30-day turnover limit. Please go to Self-exclusion and set the limit.","-1852207910":"MT5 withdrawal disabled","-764323310":"MT5 withdrawals have been disabled on your account. Please check your email for more details.","-1902997828":"Refresh now","-753791937":"A new version of Deriv is available","-1775108444":"This page will automatically refresh in 5 minutes to load the latest version.","-1175685940":"Please contact us via live chat to enable withdrawals.","-1125797291":"Password updated.","-157145612":"Please log in with your updated password.","-1728185398":"Resubmit proof of address","-1519764694":"Your proof of address is verified.","-1961967032":"Resubmit proof of identity","-117048458":"Please submit your proof of identity.","-1196422502":"Your proof of identity is verified.","-136292383":"Your proof of address verification is pending","-386909054":"Your proof of address verification has failed","-430041639":"Your proof of address did not pass our verification checks, and we’ve placed some restrictions on your account. Please resubmit your proof of address.","-87177461":"Please go to your account settings and complete your personal details to enable deposits.","-904632610":"Reset your balance","-470018967":"Reset balance","-156611181":"Please complete the financial assessment in your account settings to unlock it.","-1925176811":"Unable to process withdrawals in the moment","-980696193":"Withdrawals are temporarily unavailable due to system maintenance. You can make withdrawals when the maintenance is complete.","-1647226944":"Unable to process deposit in the moment","-488032975":"Deposits are temporarily unavailable due to system maintenance. You can make deposits when the maintenance is complete.","-67021419":"Our cashier is temporarily down due to system maintenance. You can access the cashier in a few minutes when the maintenance is complete.","-849587074":"You have not provided your tax identification number","-47462430":"This information is necessary for legal and regulatory requirements. Please go to your account settings, and fill in your latest tax identification number.","-2067423661":"Stronger security for your Deriv account","-1719731099":"With two-factor authentication, you’ll protect your account with both your password and your phone - so only you can access your account, even if someone knows your password.","-2087822170":"You are offline","-1669693571":"Check your connection.","-1998049070":"If you agree to our use of cookies, click on Accept. For more information, <0>see our policy.","-402093392":"Add Deriv Account","-277547429":"A Deriv account will allow you to fund (and withdraw from) your MT5 account(s).","-1721181859":"You’ll need a {{deriv_account}} account","-1989074395":"Please add a {{deriv_account}} account first before adding a {{dmt5_account}} account. Deposits and withdrawals for your {{dmt5_label}} account are done by transferring funds to and from your {{deriv_label}} account.","-689237734":"Proceed","-1642457320":"Help centre","-1966944392":"Network status: {{status}}","-594209315":"Synthetic indices in the EU are offered by {{legal_entity_name}}, W Business Centre, Level 3, Triq Dun Karm, Birkirkara BKR 9033, Malta, licensed and regulated by the Malta Gaming Authority (<0>licence no. MGA/B2C/102/2000) and by the Revenue Commissioners for clients in Ireland (<2>licence no. 1010285).","-181484419":"Responsible trading","-650505513":"Full screen","-1823504435":"View notifications","-1954045170":"No currency assigned","-583559763":"Menu","-2094580348":"Thanks for verifying your email","-1396326507":"Unfortunately, {{website_name}} is not available in your country.","-1019903756":"Synthetic","-288996254":"Unavailable","-122970184":"Total assets in your Deriv and {{platform_name_dxtrade}} demo accounts.","-97270814":"Total assets in your Deriv and {{platform_name_dxtrade}} real accounts.","-1844355483":"{{platform_name_dxtrade}} Accounts","-1740162250":"Manage account","-1277942366":"Total assets","-1556699568":"Choose your citizenship","-1310654342":"As part of the changes in our product line-up, we will be closing Gaming accounts belonging to our UK clients.","-626152766":"As part of the changes in our product line-up, we are closing Options accounts belonging to our clients in Europe.","-490100162":"As part of the changes in our product line-up, we will be closing accounts belonging to our Isle of Man clients.","-1208958060":"You can no longer trade digital options on any of our platforms. You also can’t deposit funds into your account.<0/><1/>Any open positions on digital options have been closed with full payout.","-2050417883":"You’ll lose access to your Gaming account when it gets closed, so make sure to withdraw your funds as soon as possible.","-1950045402":"Withdraw all your funds","-168971942":"What this means for you","-905560792":"OK, I understand","-1308593541":"You will lose access to your account when it gets closed, so be sure to withdraw all your funds.","-2024365882":"Explore","-1197864059":"Create free demo account","-71049153":"Keep your account secure with a password","-1861974537":"Strong passwords contain at least 8 characters, combine uppercase and lowercase letters, numbers, and symbols.","-1965920446":"Start trading","-1485242688":"Step {{step}}: {{step_title}} ({{step}} of {{steps}})","-1829842622":"You can open an account for each cryptocurrency.","-987221110":"Choose a currency you would like to trade with.","-1066574182":"Choose a currency","-1914534236":"Choose your currency","-200560194":"Please switch to your {{fiat_currency}} account to change currencies.","-1829493739":"Choose the currency you would like to trade with.","-1814647553":"Add a new","-1269362917":"Add new","-650480777":"crypto account","-175638343":"Choose an account or add a new one","-1768223277":"Your account is ready","-1215717784":"<0>You have successfully changed your currency to {{currency}}.<0>Make a deposit now to start trading.","-786091297":"Trade on demo","-228099749":"Please verify your identity and address","-1041852744":"We're processing your personal information","-1775006840":"Make a deposit now to start trading.","-983734304":"We need proof of your identity and address before you can start trading.","-917733293":"To get trading, please confirm where you live.","-1282628163":"You'll be able to get trading as soon as verification is complete.","-952649119":"Log In","-3815578":"Sign Up","-1456176427":"Set a currency for your real account","-1557011219":"Add a real Deriv Options account","-241733171":"Add a Deriv Financial account","-1329687645":"Create a cryptocurrency account","-1429178373":"Create a new account","-1016775979":"Choose an account","-1369294608":"Already signed up?","-617844567":"An account with your details already exists.","-292363402":"Trading statistics report","-1656860130":"Options trading can become a real addiction, as can any other activity pushed to its limits. To avoid the danger of such an addiction, we provide a reality-check that gives you a summary of your trades and accounts on a regular basis.","-28080461":"Would like to check your statement first? <0>Check Statement","-611059051":"Please specify your preferred interval reality check in minutes:","-1876891031":"Currency","-11615110":"Turnover","-1370419052":"Profit / Loss","-437320982":"Session duration:","-3959715":"Current time:","-1534648620":"Your password has been changed","-596199727":"We will now redirect you to the login page.","-310434518":"The email input should not be empty.","-437918412":"No currency assigned to your account","-707550055":"We need this to make sure our service complies with laws and regulations in your country.","-280139767":"Set residence","-601615681":"Select theme","-1152511291":"Dark","-1428458509":"Light","-1917706589":"Your Deriv account is unlinked from {{social_identity_provider}}. Use your email and password for future log in.","-2017825013":"Got it","-505449293":"Enter a new password for your Deriv account.","-703818088":"Only log in to your account at this secure link, never elsewhere.","-1235799308":"Fake links often contain the word that looks like \"Deriv\" but look out for these differences.","-2102997229":"Examples","-82488190":"I've read the above carefully.","-97775019":"Do not trust and give away your credentials on fake websites, ads or emails.","-2142491494":"OK, got it","-611136817":"Beware of fake links.","-1787820992":"Platforms","-1793883644":"Trade FX and CFDs on a customisable, easy-to-use trading platform.","-184713104":"Earn fixed payouts with options, or trade multipliers to amplify your gains with limited risk.","-1571775875":"Our flagship options and multipliers trading platform.","-1107320163":"Automate your trading, no coding needed.","-820028470":"Options & Multipliers","-895091803":"If you're looking for CFDs","-1447215751":"Not sure? Try this","-2338797":"<0>Maximise returns by <0>risking more than you put in.","-1682067341":"Earn <0>fixed returns by <0>risking only what you put in.","-1744351732":"Not sure where to start?","-943710774":"This complaints policy, which may change from time to time, applies to your account registered with {{legal_entity_name}}, having its registered office address at First Floor, Millennium House, Victoria Road, Douglas, Isle of Man, IM2 4RW, licensed and regulated respectively by (1) the Gambling Supervision Commission in the Isle of Man (current <0>licence issued on 31 August 2017) and (2) the Gambling Commission in the UK (<1>licence no. 39172).","-255056078":"This complaints policy, which may change from time to time, applies to your account(s) registered with {{legal_entity_name}}, having its registered office address at W Business Centre, Level 3, Triq Dun Karm, Birkirkara, BKR 9033, Malta, licensed and regulated by the Malta Gaming Authority in Malta for gambling products only, <0>licence no. MGA/B2C/102/2000, and for clients residing in the UK by the UK Gambling Commission (account number 39495).","-1941013000":"This complaints policy, which may change from time to time, applies to your account(s) registered with {{legal_entity_name_svg}}, {{legal_entity_name_fx}}, and {{legal_entity_name_v}}.","-594812204":"This complaints policy, which may change from time to time, applies to your account(s) registered with {{legal_entity_name_svg}}.","-1639808836":"If you are not satisfied with the outcome, you can escalate your complaint to the <0>Independent Betting Adjudication Service (IBAS) by filling the IBAS adjudication form. Please note that IBAS only deals with disputes that result from transactions.","-1505742956":"<0/><1/>You can also refer your dispute to the Malta Gaming Authority via the <2>Player Support Unit.","-1406192787":"If you are not satisfied with the outcome, you can escalate your complaint to the <0>Financial Commission.","-1776547326":"<0/><1/>If you reside in the UK and you are unhappy with our response you may escalate your complaint to the <2>Financial Ombudsman Service.","-2115348800":"1. Introduction","-744009523":"2. Fair treatment","-866831420":"3.1. Submission of a complaint","-1102904026":"3.2. Handling your complaint","-603378979":"3.3. Resolving your complaint","-697569974":"3.4. Your decision","-993572476":"<0>b.The Financial Commission has 5 days to acknowledge that your complaint was received and 14 days to answer the complaint through our Internal Dispute Resolution (IDR) procedure.","-1769159081":"<0>c.You will be able to file a complaint with the Financial Commission only if you are not satisfied with our decision or the decision wasn’t made within 14 days.","-58307244":"3. Determination phase","-356618087":"<0>b.The DRC may request additional information from you or us, who must then provide the requested information within 7 days.","-945718602":"<0>b.If you agree with a DRC decision, you will need to accept it within 14 days. If you do not respond to the DRC decision within 14 days, the complaint is considered closed.","-1500907666":"<0>d.If the decision is made in our favour, you must provide a release for us within 7 days of when the decision is made, and the complaint will be considered closed.","-429248139":"5. Disclaimer","-818926350":"The Financial Commission accepts appeals for 45 days following the date of the incident and only after the trader has tried to resolve the issue with the company directly.","-175369516":"Welcome to Deriv X","-1667427537":"Run Deriv X on your browser or download the mobile app","-305915794":"Run MT5 from your browser or download the MT5 app for your devices","-404375367":"Trade forex, basket indices, commodities, and cryptocurrencies with high leverage.","-811331160":"Trade CFDs on forex, stocks, stock indices, synthetic indices, and commodities with leverage.","-2030107144":"Trade CFDs on forex, stocks & stock indices, commodities, and crypto.","-781132577":"Leverage","-1264604378":"Up to 1:1000","-637908996":"100%","-1420548257":"20+","-1373949478":"50+","-1686150678":"Up to 1:100","-1382029900":"70+","-1493055298":"90+","-1056874273":"25+ assets: synthetics","-223956356":"Leverage up to 1:1000","-1340877988":"Registered with the Financial Commission","-879901180":"170+ assets: forex (standard/micro), stocks, stock indices, commodities, basket indices, and cryptocurrencies","-1020615994":"Better spreads","-1789823174":"Regulated by the Vanuatu Financial Services Commission","-1040269115":"30+ assets: forex and commodities","-1372141447":"Straight-through processing","-318390366":"Regulated by the Labuan Financial Services Authority (Licence no. MB/18/0024)","-1556783479":"80+ assets: forex and cryptocurrencies","-875019707":"Leverage up to 1:100","-1752249490":"Malta Financial","-2068980956":"Leverage up to 1:30","-2098459063":"British Virgin Islands","-1434036215":"Demo Financial","-1416247163":"Financial STP","-1882063886":"Demo CFDs","-1347908717":"Demo Financial SVG","-1780324582":"SVG","-785625598":"Use these credentials to log in to your {{platform}} account on the website and mobile apps.","-997127433":"Change Password","-162753510":"Add real account","-860609405":"Password","-742647506":"Fund transfer","-1357917360":"Web terminal","-1454896285":"The MT5 desktop app is not supported by Windows XP, Windows 2003, and Windows Vista.","-810388996":"Download the Deriv X mobile app","-1727991510":"Scan the QR code to download the Deriv X Mobile App","-1302404116":"Maximum leverage","-511301450":"Indicates the availability of cryptocurrency trading on a particular account.","-2102641225":"At bank rollover, liquidity in the forex markets is reduced and may increase the spread and processing time for client orders. This happens around 21:00 GMT during daylight saving time, and 22:00 GMT non-daylight saving time.","-495364248":"Margin call and stop out level will change from time to time based on market condition.","-536189739":"To protect your portfolio from adverse market movements due to the market opening gap, we reserve the right to decrease leverage on all offered symbols for financial accounts before market close and increase it again after market open. Please make sure that you have enough funds available in your {{platform}} account to support your positions at all times.","-712681566":"Peer-to-peer exchange","-1267880283":"{{field_name}} is required","-2084509650":"{{field_name}} is not properly formatted.","-1779241732":"First line of address is not in a proper format.","-188222339":"This should not exceed {{max_number}} characters.","-1673422138":"State/Province is not in a proper format.","-1580554423":"Trade CFDs on our synthetic indices that simulate real-world market movements.","-1385484963":"Confirm to change your {{platform}} password","-1990902270":"This will change the password to all of your {{platform}} accounts.","-673424733":"Demo account","-1986258847":"Server maintenance starts at 01:00 GMT every Sunday, and this process may take up to 2 hours to complete. Service may be disrupted during this time.","-1199152768":"Please explore our other platforms.","-205020823":"Explore {{platform_name_trader}}","-1982499699":"Explore {{platform_name_dbot}}","-1567989247":"Submit your proof of identity and address","-184453418":"Enter your {{platform}} password","-1769158315":"real","-700260448":"demo","-1980366110":"Congratulations, you have successfully created your {{category}} {{platform}} <0>{{type}} account.","-790488576":"Forgot password?","-926547017":"Enter your {{platform}} password to add a {{platform}} {{account}} {{jurisdiction_shortcode}} account.","-1190393389":"Enter your {{platform}} password to add a {{platform}} {{account}} account.","-2057918502":"Hint: You may have entered your Deriv password, which is different from your {{platform}} password.","-1928229820":"Reset Deriv X investor password","-1917043724":"Reset DMT5 investor password","-1087845020":"main","-1950683866":"investor","-1874242353":"Fund top up","-89838213":"You can top up your demo account with an additional <0> if your balance is <1> or less.","-1211122723":"{{ platform }} {{ account_title }} account","-78895143":"Current balance","-149993085":"New current balance","-490244964":"Forex, stocks, stock indices, cryptocurrencies","-1368041210":", synthetic indices","-877064208":"EUR","-1284221303":"You’ll get a warning, known as margin call, if your account balance drops down close to the stop out level.","-1848799829":"To understand stop out, first you need to learn about margin level, which is the ratio of your equity (the total balance you would have if you close all your positions at that point) to the margin you're using at the moment. If your margin level drops below our stop out level, your positions may be closed automatically to protect you from further losses.","-224051432":"24/7","-1591882610":"Synthetics","-70716111":"FX-majors (standard/micro lots), FX-minors, basket indices, commodities, cryptocurrencies, and stocks and stock indices","-1041629137":"FX-majors, FX-minors, FX-exotics, and cryptocurrencies","-287097947":"FX-majors (standard/micro lots), FX-minors, Commodities, Cryptocurrencies (except UK)","-1225160479":"Compare available accounts","-2042845290":"Your investor password has been changed.","-1882295407":"Your password has been changed.","-254497873":"Use this password to grant viewing access to another user. While they may view your trading account, they will not be able to trade or take any other actions.","-161656683":"Current investor password","-374736923":"New investor password","-1793894323":"Create or reset investor password","-1124208206":"Switch to your real account to create a DMT5 {{account_title}} {{type_title}} account.","-1271218821":"Account added","-1576792859":"Proof of identity and address are required","-1931257307":"You will need to submit proof of identity","-2026018074":"Add your Deriv MT5 <0>{{account_type_name}} account under Deriv (SVG) LLC (company no. 273 LLC 2020).","-16048185":"To create this account first we need your proof of identity and address.","-162320753":"Add your Deriv MT5 <0>{{account_type_name}} account under Deriv (BVI) Ltd, regulated by the British Virgin Islands Financial Services Commission (License no. SIBA/L/18/1114).","-1731304187":"Add your Deriv MT5 CFDs account under Deriv Investments (Europe) Limited regulated by the Malta Financial Services Authority (MFSA) (licence no. IS/70156).","-1389025684":"To create this account first we need you to resubmit your proof of identity and address.","-1627989291":"To create this account first we need you to resubmit your proof of identity.","-724308541":"Jurisdiction for your Deriv MT5 CFDs account","-479119833":"Choose a jurisdiction for your Deriv MT5 {{account_type}} account","-10956371":"You need a real account (fiat currency or cryptocurrency) in Deriv to create a real DMT5 account.","-1760596315":"Create a Deriv account","-705682181":"Malta","-194969520":"Counterparty company","-1131400885":"Deriv Investments (Europe) Limited","-409563066":"Regulator","-2073451889":"Malta Financial Services Authority (MFSA) (Licence no. IS/70156)","-362324454":"Commodities","-543177967":"Stock indices","-1089385344":"Deriv (SVG) LLC","-2019617323":"Deriv (BVI) Ltd","-112814932":"Deriv (FX) Ltd","-1747078152":"-","-1510474851":"British Virgin Islands Financial Services Commission (licence no. SIBA/L/18/1114)","-199154602":"Vanuatu Financial Services Commission","-761250329":"Labuan Financial Services Authority (Licence no. MB/18/0024)","-251202291":"Broker","-81650212":"MetaTrader 5 web","-2123571162":"Download","-941636117":"MetaTrader 5 Linux app","-2019704014":"Scan the QR code to download Deriv MT5.","-648956272":"Use this password to log in to your Deriv X accounts on the web and mobile apps.","-1814308691":"Please click on the link in the email to change your {{platform}} password.","-1282933308":"Not {{barrier}}","-968190634":"Equals {{barrier}}","-1747377543":"Under {{barrier}}","-337314714":"days","-442488432":"day","-1572548510":"Ups & Downs","-71301554":"Ins & Outs","-952298801":"Look Backs","-763273340":"Digits","-1790089996":"NEW!","-1386326276":"Barrier is a required field.","-1418742026":"Higher barrier must be higher than lower barrier.","-92007689":"Lower barrier must be lower than higher barrier.","-1095538960":"Please enter the start time in the format \"HH:MM\".","-1975910372":"Minute must be between 0 and 59.","-866277689":"Expiry time cannot be in the past.","-1455298001":"Now","-256210543":"Trading is unavailable at this time.","-28115241":"{{platform_name_trader}} is not available for this account","-453920758":"Go to {{platform_name_mt5}} dashboard","-402175529":"History","-902712434":"Deal cancellation","-988484646":"Deal cancellation (executed)","-444882676":"Deal cancellation (active)","-13423018":"Reference ID","-1551639437":"No history","-1214703885":"You have yet to update either take profit or stop loss","-880722426":"Market is closed","-504849554":"It will reopen at","-59803288":"In the meantime, try our synthetic indices. They simulate real-market volatility and are open 24/7.","-1278109940":"See open markets","-694105443":"This market is closed","-439389714":"We’re working on it","-770929448":"Go to {{platform_name_smarttrader}}","-138538812":"Log in or create a free account to place a trade.","-2036388794":"Create free account","-1813736037":"No further trading is allowed on this contract type for the current trading session. For more info, refer to our <0>terms and conditions.","-590131162":"Stay on {{website_domain}}","-1444663817":"Go to Binary.com","-1526466612":"You’ve selected a trade type that is currently unsupported, but we’re working on it.","-1043795232":"Recent positions","-1572796316":"Purchase price:","-153220091":"{{display_value}} Tick","-802374032":"Hour","-2039780875":"Purchase confirmation","-1672470173":"Require confirmation before purchasing a contract","-1342661765":"Lock contract purchase buttons","-939764287":"Charts","-1738427539":"Purchase","-1392065699":"If you select \"Rise\", you win the payout if the exit spot is strictly higher than the entry spot.","-1762566006":"If you select \"Fall\", you win the payout if the exit spot is strictly lower than the entry spot.","-1435306976":"If you select \"Allow equals\", you win the payout if exit spot is higher than or equal to entry spot for \"Rise\". Similarly, you win the payout if exit spot is lower than or equal to entry spot for \"Fall\".","-1959473569":"If you select \"Lower\", you win the payout if the exit spot is strictly lower than the barrier.","-1350745673":"If the exit spot is equal to the barrier, you don't win the payout.","-2089488446":"If you select \"Ends Between\", you win the payout if the exit spot is strictly higher than the Low barrier AND strictly lower than the High barrier.","-1876950330":"If you select \"Ends Outside\", you win the payout if the exit spot is EITHER strictly higher than the High barrier, OR strictly lower than the Low barrier.","-546460677":"If the exit spot is equal to either the Low barrier or the High barrier, you don't win the payout.","-1812957362":"If you select \"Stays Between\", you win the payout if the market stays between (does not touch) either the High barrier or the Low barrier at any time during the contract period","-220379757":"If you select \"Goes Outside\", you win the payout if the market touches either the High barrier or the Low barrier at any time during the contract period.","-1281286610":"If you select \"Matches\", you will win the payout if the last digit of the last tick is the same as your prediction.","-1929209278":"If you select \"Even\", you will win the payout if the last digit of the last tick is an even number (i.e., 2, 4, 6, 8, or 0).","-2038865615":"If you select \"Odd\", you will win the payout if the last digit of the last tick is an odd number (i.e., 1, 3, 5, 7, or 9).","-1416078023":"If you select \"Touch\", you win the payout if the market touches the barrier at any time during the contract period.","-1272255095":"If the exit spot is equal to the barrier or the new barrier (if a reset occurs), you don't win the payout.","-231957809":"Win maximum payout if the exit spot is higher than or equal to the upper barrier.","-464144986":"Win maximum payout if the exit spot is lower than or equal to the lower barrier.","-1031456093":"Win up to maximum payout if exit spot is between lower and upper barrier, in proportion to the difference between upper barrier and exit spot.","-968162707":"No payout if exit spot is above or equal to the upper barrier.","-299450697":"If you select \"High Tick\", you win the payout if the selected tick is the highest among the next five ticks.","-705681870":"By purchasing the \"High-to-Low\" contract, you'll win the multiplier times the difference between the high and low over the duration of the contract.","-420387848":"The high is the highest point ever reached by the market during the contract period.","-1666375348":"By purchasing the \"High-to-Close\" contract, you'll win the multiplier times the difference between the high and close over the duration of the contract.","-2024955268":"If you select “Up”, you will earn a profit by closing your position when the market price is higher than the entry spot.","-1598433845":"If you select “Down”, you will earn a profit by closing your position when the market price is lower than the entry spot.","-1092777202":"The Stop-out level on the chart indicates the price at which your potential loss equals your entire stake. When the market price reaches this level, your position will be closed automatically. This ensures that your loss does not exceed the amount you paid to purchase the contract.","-885323297":"These are optional parameters for each position that you open:","-584696680":"If you select “Take profit” and specify an amount that you’d like to earn, your position will be closed automatically when your profit is more than or equals to this amount. Your profit may be more than the amount you entered depending on the market price at closing.","-178096090":"“Take profit” cannot be updated. You may update it only when “Deal cancellation” expires.","-206909651":"The entry spot is the market price when your contract is processed by our servers.","-149836494":"Your transaction reference number is {{transaction_id}}","-1382749084":"Go back to trading","-1231210510":"Tick","-1239477911":"second","-1585766960":"min","-1652791614":"mins","-1977959027":"hours","-8998663":"Digit: {{last_digit}} ","-1435392215":"About deal cancellation","-1280319153":"Cancel your trade anytime within a chosen time-frame. Triggered automatically if your trade reaches the stop out level within the chosen time-frame.","-471757681":"Risk management","-976258774":"Not set","-843831637":"Stop loss","-771725194":"Deal Cancellation","-45873457":"NEW","-127118348":"Choose {{contract_type}}","-543478618":"Try checking your spelling or use a different term","-338707425":"Minimum duration is 1 day","-1003473648":"Duration: {{duration}} day","-700280380":"Deal cancel. fee","-741395299":"{{value}}","-1527492178":"Purchase Locked","-725375562":"You can lock/unlock the purchase button from the Settings menu","-1358367903":"Stake","-1513281069":"Barrier 2","-390994177":"Should be between {{min}} and {{max}}","-2055106024":"Toggle between advanced and simple duration settings","-1012793015":"End time","-2037881712":"Your contract will be closed automatically at the next available asset price on <0>.","-629549519":"Commission <0/>","-2131859340":"Stop out <0/>","-1686280757":"<0>{{commission_percentage}}% of (<1/> * {{multiplier}})","-1043117679":"When your current loss equals or exceeds {{stop_out_percentage}}% of your stake, your contract will be closed at the nearest available asset price.","-477998532":"Your contract is closed automatically when your loss is more than or equals to this amount.","-243332856":"Last digit stats for latest 1000 ticks for {{ underlying_name }}","-339236213":"Multiplier","-461955353":"purchase price","-172348735":"profit","-1624674721":"contract type","-1644154369":"entry spot time","-510792478":"entry spot price","-1974651308":"exit spot time","-1600267387":"exit spot price","-514917720":"barrier","-2004386410":"Win","-1072292603":"No Change","-1631669591":"string","-1768939692":"number","-795152863":"green","-1640576332":"blue","-804983649":"yellow","-94281841":"red","-1242470654":"Earned money","-1429914047":"Low","-1893628957":"Open Time","-1896106455":"10 minutes","-999492762":"15 minutes","-1978767852":"30 minutes","-293628675":"1 hour","-385604445":"2 hours","-1965813351":"4 hours","-525321833":"1 day","-1691868913":"Touch/No Touch","-151151292":"Asians","-1048378719":"Reset Call/Reset Put","-1282312809":"High/Low Ticks","-1237186896":"Only Ups/Only Downs","-529846150":"Seconds","-2035315547":"Low barrier","-1635771697":"middle","-1529389221":"Histogram","-1819860668":"MACD","-1750896349":"D'Alembert","-102980621":"The Oscar's Grind Strategy is a low-risk positive progression strategy that first appeared in 1965. By using this strategy, the size of your contract will increase after successful trades, but remains unchanged after unsuccessful trades.","-462715374":"Untitled Bot","-2002533437":"Custom function","-215053350":"with:","-1257232389":"Specify a parameter name:","-1885742588":"with: ","-188442606":"function {{ function_name }} {{ function_params }} {{ dummy }}","-313112159":"This block is similar to the one above, except that this returns a value. The returned value can be assigned to a variable of your choice.","-1783320173":"Prematurely returns a value within a function","-1485521724":"Conditional return","-1482801393":"return","-46453136":"get","-1838027177":"first","-1182568049":"Get list item","-1675454867":"This block gives you the value of a specific item in a list, given the position of the item. It can also remove the item from the list.","-381501912":"This block creates a list of items from an existing list, using specific item positions.","-426766796":"Get sub-list","-1679267387":"in list {{ input_list }} find {{ first_or_last }} occurence of item {{ input_value }}","-2087996855":"This block gives you the position of an item in a given list.","-422008824":"Checks if a given list is empty","-1343887675":"This block checks if a given list is empty. It returns “True” if the list is empty, “False” if otherwise.","-1548407578":"length of {{ input_list }}","-1786976254":"This block gives you the total number of items in a given list.","-2113424060":"create list with item {{ input_item }} repeated {{ number }} times","-1955149944":"Repeat an item","-434887204":"set","-197957473":"as","-851591741":"Set list item","-1874774866":"ascending","-1457178757":"Sorts the items in a given list","-350986785":"Sort list","-324118987":"make text from list","-155065324":"This block creates a list from a given string of text, splitting it with the given delimiter. It can also join items in a list into a string of text.","-459051222":"Create list from text","-977241741":"List Statement","-451425933":"{{ break_or_continue }} of loop","-323735484":"continue with next iteration","-1592513697":"Break out/continue","-713658317":"for each item {{ variable }} in list {{ input_list }}","-1825658540":"Iterates through a given list","-952264826":"repeat {{ number }} times","-887757135":"Repeat (2)","-1608672233":"This block is similar to the block above, except that the number of times it repeats is determined by a given variable.","-533154446":"Repeat (1)","-1059826179":"while","-1893063293":"until","-279445533":"Repeat While/Until","-1003706492":"User-defined variable","-359097473":"set {{ variable }} to {{ value }}","-1588521055":"Sets variable value","-980448436":"Set variable","-1538570345":"Get the last trade information and result, then trade again.","-222725327":"Here is where you can decide if your bot should continue trading.","-1638446329":"Result is {{ win_or_loss }}","-1968029988":"Last trade result","-1588406981":"You can check the result of the last trade with this block.","-1459154781":"Contract Details: {{ contract_detail }}","-1652241017":"Reads a selected property from contract details list","-2082345383":"These blocks transfer control to the Purchase conditions block.","-172574065":"This block will transfer the control back to the Purchase conditions block, enabling you to purchase another contract.","-403103225":"restart","-837044282":"Ask Price {{ contract_type }}","-1033917049":"This block returns the purchase price for the selected trade type.","-1863737684":"2. Purchase conditions","-228133740":"Specify contract type and purchase conditions.","-1291088318":"Purchase conditions","-1098726473":"This block is mandatory. Only one copy of this block is allowed. You can place the Purchase block (see below) here as well as conditional blocks to define your purchase conditions.","-1777988407":"Payout {{ contract_type }}","-511116341":"This block returns the potential payout for the selected trade type","-1943211857":"Potential payout","-813464969":"buy","-53668380":"True if active contract can be sold before expiration at current market price","-43337012":"Sell profit/loss","-2112866691":"Returns the profit/loss from selling at market price","-2132417588":"This block gives you the potential profit or loss if you decide to sell your contract.","-1360483055":"set {{ variable }} to Bollinger Bands {{ band_type }} {{ dummy }}","-20542296":"Calculates Bollinger Bands (BB) from a list with a period","-1951109427":"Bollinger Bands (BB)","-857226052":"BB is a technical analysis indicator that’s commonly used by traders. The idea behind BB is that the market price stays within the upper and lower bands for 95% of the time. The bands are the standard deviations of the market price, while the line in the middle is a simple moving average line. If the price reaches either the upper or lower band, there’s a possibility of a trend reversal.","-325196350":"set {{ variable }} to Bollinger Bands Array {{ band_type }} {{ dummy }}","-199689794":"Similar to BB. This block gives you a choice of returning the values of either the lower band, higher band, or the SMA line in the middle.","-920690791":"Calculates Exponential Moving Average (EMA) from a list with a period","-960641587":"EMA is a type of moving average that places more significance on the most recent data points. It’s also known as the exponentially weighted moving average. EMA is different from SMA in that it reacts more significantly to recent price changes.","-1557584784":"set {{ variable }} to Exponential Moving Average Array {{ dummy }}","-32333344":"Calculates Moving Average Convergence Divergence (MACD) from a list","-628573413":"MACD is calculated by subtracting the long-term EMA (26 periods) from the short-term EMA (12 periods). If the short-term EMA is greater or lower than the long-term EMA than there’s a possibility of a trend reversal.","-1133676960":"Fast EMA Period {{ input_number }}","-883166598":"Period {{ input_period }}","-450311772":"set {{ variable }} to Relative Strength Index {{ dummy }}","-1861493523":"Calculates Relative Strength Index (RSI) list from a list of values with a period","-880048629":"Calculates Simple Moving Average (SMA) from a list with a period","-1150972084":"Market direction","-276935417":"This block is used to determine if the market price moves in the selected direction or not. It gives you a value of “True” or “False”.","-764931948":"in candle list get # from end {{ input_number }}","-924607337":"Returns the last digit of the latest tick","-560033550":"Returns the list of last digits of 1000 recent tick values","-74062476":"Make a List of {{ candle_property }} values in candles list with interval: {{ candle_interval_type }}","-1556495906":"Returns a list of specific values from a candle list according to selected time interval","-166816850":"Create a list of candle values (1)","-1261436901":"Candles List","-1174859923":"Read the selected candle value","-1972165119":"Read candle value (1)","-1956100732":"You can use this block to analyze the ticks, regardless of your trades","-443243232":"The content of this block is called on every tick. Place this block outside of any root block.","-641399277":"Last Tick","-1628954567":"Returns the value of the last tick","-1332756793":"This block gives you the value of the last tick.","-2134440920":"Last Tick String","-1466340125":"Tick value","-467913286":"Tick value Description","-785831237":"This block gives you a list of the last 1000 tick values.","-1546430304":"Tick List String Description","-1788626968":"Returns \"True\" if the given candle is black","-436010611":"Make a list of {{ candle_property }} values from candles list {{ candle_list }}","-1384340453":"Returns a list of specific values from a given candle list","-584859539":"Create a list of candle values (2)","-2010558323":"Read {{ candle_property }} value in candle {{ input_candle }}","-2846417":"This block gives you the selected candle value.","-1587644990":"Read candle value (2)","-1202212732":"This block returns account balance","-1737837036":"Account balance","-1963883840":"Put your blocks in here to prevent them from being removed","-1284013334":"Use this block if you want some instructions to be ignored when your bot runs. Instructions within this block won’t be executed.","-1217253851":"Log","-1987568069":"Warn","-104925654":"Console","-1956819233":"This block displays messages in the developer's console with an input that can be either a string of text, a number, boolean, or an array of data.","-1450461842":"Load block from URL: {{ input_url }}","-1088614441":"Loads blocks from URL","-1747943728":"Loads from URL","-2105753391":"Notify Telegram {{ dummy }} Access Token: {{ input_access_token }} Chat ID: {{ input_chat_id }} Message: {{ input_message }}","-1008209188":"Sends a message to Telegram","-1218671372":"Displays a notification and optionally play selected sound","-2099284639":"This block gives you the total profit/loss of your trading strategy since your bot started running. You can reset this by clicking “Clear stats” on the Transaction Stats window, or by refreshing this page in your browser.","-683825404":"Total Profit String","-718220730":"Total Profit String Description","-1861858493":"Number of runs","-264195345":"Returns the number of runs","-303451917":"This block gives you the total number of times your bot has run. You can reset this by clicking “Clear stats” on the Transaction Stats window, or by refreshing this page in your browser.","-2132861129":"Conversion Helper Block","-74095551":"Seconds Since Epoch","-15528039":"Returns the number of seconds since January 1st, 1970","-729807788":"This block returns the number of seconds since January 1st, 1970.","-1370107306":"{{ dummy }} {{ stack_input }} Run after {{ number }} second(s)","-558838192":"Delayed run","-1975250999":"This block converts the number of seconds since the Unix Epoch (1 January 1970) into a string of text representing the date and time.","-702370957":"Convert to date/time","-982729677":"Convert to timestamp","-311268215":"This block converts a string of text that represents the date and time into seconds since the Unix Epoch (1 January 1970). The time and time zone offset are optional. Example: 2019-01-01 21:03:45 GMT+0800 will be converted to 1546347825.","-1797602591":"Stop Loss: {{ currency }} {{ stop_loss }}","-1214929127":"Stop loss must be a positive number.","-780745489":"If the contract type is “Both”, then the Purchase Conditions should include both Rise and Fall using the “Conditional Block\"","-2142851225":"Multiplier trade options","-625636913":"Amount must be a positive number.","-1466383897":"Duration: {{ duration_unit }} {{ duration_value }}","-440702280":"Trade options","-1193894978":"Define your trade options such as duration and stake. Some options are only applicable for certain trade types.","-46523443":"Duration value is not allowed. To run the bot, please enter a value between {{min}} to {{max}}.","-1483427522":"Trade Type: {{ trade_type_category }} > {{ trade_type }}","-323348124":"1. Trade parameters","-1671903503":"Run once at start:","-783173909":"Trade options:","-376956832":"Here is where you define the parameters of your contract.","-1244007240":"if {{ condition }} then","-1577206704":"else if","-33796979":"true","-1434883449":"This is a single block that returns a boolean value, either true or false.","-1946404450":"Compares two values","-979918560":"This block converts the boolean value (true or false) to its opposite.","-2047257743":"Null","-1274387519":"Performs selected logic operation","-766386234":"This block performs the \"AND\" or the \"OR\" logic operation.","-790995537":"test {{ condition }}","-1860211657":"if false {{ return_value }}","-1643760249":"This block tests if a given value is true or false and returns “True” or “False” accordingly.","-1551875333":"Test value","-52486882":"Arithmetical operations","-1010436425":"This block adds the given number to the selected variable","-999773703":"Change variable","-1272091683":"Mathematical constants","-1396629894":"constrain {{ number }} low {{ low_number }} high {{ high_number }}","-425224412":"This block constrains a given number so that it is within a set range.","-2072551067":"Constrain within a range","-43523220":"remainder of {{ number1 }} ÷ {{ number2 }}","-1291857083":"Returns the remainder after a division","-592154850":"Remainder after division","-736665095":"Returns the remainder after the division of the given numbers.","-1266992960":"Math Number Description","-77191651":"{{ number }} is {{ type }}","-817881230":"even","-142319891":"odd","-1000789681":"whole","-1735674752":"Test a number","-1017805068":"This block tests a given number according to the selection and it returns a value of “True” or “False”. Available options: Even, Odd, Prime, Whole, Positive, Negative, Divisible","-1858332062":"Number","-1053492479":"Enter an integer or fractional number into this block. Please use `.` as a decimal separator for fractional numbers.","-927097011":"sum","-1653202295":"max","-1555878023":"average","-1748351061":"mode","-992067330":"Aggregate operations","-1691561447":"This block gives you a random fraction between 0.0 to 1.0","-523625686":"Random fraction number","-933024508":"Rounds a given number to an integer","-1656927862":"This block rounds a given number according to the selection: round, round up, round down.","-1495304618":"absolute","-61210477":"Operations on a given number","-181644914":"This block performs the selected operations to a given number.","-840732999":"to {{ variable }} append text {{ input_text }}","-1469497908":"Appends a given text to a variable","-1851366276":"Text Append","-1666316828":"Appends a given text to a variable.","-1902332770":"Transform {{ input_text }} to {{ transform_type }}","-1489004405":"Title Case","-904432685":"Changes text case accordingly","-882381096":"letter #","-1027605069":"letter # from end","-2066990284":"random letter","-337089610":"in text {{ input_text1 }} find {{ first_or_last }} occurence of text {{ input_text2 }}","-1966694141":"Searches through a string of text for a specific occurrence of a given character or word, and returns the position.","-697543841":"Text join","-141160667":"length of {{ input_text }}","-1133072029":"Text String Length","-1109723338":"print {{ input_text }}","-736668830":"Print","-1821552998":"trim spaces from {{ side }} of {{ input_text }}","-801766026":"right side","-474779821":"Trims spaces","-1219239717":"One or more mandatory blocks are missing from your workspace. Please add the required block(s) and then try again.","-250761331":"One or more mandatory blocks are disabled in your workspace. Please enable the required block(s) and then try again.","-1687036846":"Download block","-1266781295":"Expand","-894560707":"function","-1867119688":"Duplicate","-610728049":"Rearrange Vertically","-2033146714":"Collapse All Blocks","-958601558":"Delete Block","-1193267384":"Detach Block","-1750478127":"New variable name","-1061878051":"Y","-2047029150":"Unable to load the block file.","-1410769167":"Target must be an XML file","-609157479":"This URL is already loaded","-241945454":"Proposals are not ready","-1087890592":"Maximum loss amount reached","-1030545878":"You are rate limited for: {{ message_type }}, retrying in {{ delay }}s (ID: {{ request }})","-490766438":"You are disconnected, retrying in {{ delay }}s","-1389975609":"unknown","-1900515692":"Duration must be a positive integer","-245297595":"Please login","-1445046468":"Given candle is not valid","-1891622945":"{{hourPast}}h ago","-1723202824":"Please grant permission to view and manage Google Drive folders created with Binary Bot","-210953314":"There was an error retrieving data from Google Drive","-1521930919":"Select a Binary Bot strategy","-845301264":"There was an error listing files from Google Drive","-1452908801":"There was an error retrieving files from Google Drive","-232617824":"There was an error processing your request","-1800672151":"GBP Index","-1904030160":"Transaction performed by (App ID: {{app_id}})","-513103225":"Transaction time","-2066666313":"Credit/Debit","-2140412463":"Buy price","-1981004241":"Sell time","-600828210":"Indicative profit/loss","-706219815":"Indicative price","-3423966":"Take profit<0 />Stop loss","-2082644096":"Current stake","-538215347":"Net deposits","-280147477":"All transactions","-137444201":"Buy","-130601012":"Please select duration","-232254547":"Custom","-1577570698":"Start date","-1251526905":"Last 7 days","-360975483":"You've made no transactions of this type during this period.","-2092611555":"Sorry, this app is unavailable in your current location.","-1488537825":"If you have an account, log in to continue.","-555592125":"Unfortunately, trading options isn't possible in your country","-1571816573":"Sorry, trading is unavailable in your current location.","-1714959941":"This chart display is not ideal for tick contracts","-1254554534":"Please change the chart duration to tick for a better trading experience.","-1603581277":"minutes","-1658230823":"Contract was sold for <0 />.","-1905867404":"Contract cancelled","-922253974":"Rise/Fall","-1361254291":"Higher/Lower","-335816381":"Ends In/Ends Out","-1789807039":"Asian Up/Asian Down","-330437517":"Matches/Differs","-657360193":"Over/Under","-558031309":"High Tick/Low Tick"} \ No newline at end of file +{"0":"","1014140":"You may also call <0>+447723580049 to place your complaint.","3215342":"Last 30 days","7100308":"Hour must be between 0 and 23.","11539750":"set {{ variable }} to Relative Strength Index Array {{ dummy }}","11872052":"Yes, I'll come back later","14365404":"Request failed for: {{ message_type }}, retrying in {{ delay }}s","15377251":"Profit amount: {{profit}}","17843034":"Check proof of identity document verification status","19424289":"Username","19552684":"USD Basket","21035405":"Please tell us why you’re leaving. (Select up to {{ allowed_reasons }} reasons.)","24900606":"Gold Basket","25854018":"This block displays messages in the developer’s console with an input that can be either a string of text, a number, boolean, or an array of data.","26566655":"Summary","26596220":"Finance","27582767":"{{amount}} {{currency}}","27830635":"Deriv (V) Ltd","28581045":"Add a real MT5 account","30801950":"Your account will be opened with {{legal_entity_name}}, regulated by the Malta Gaming Authority, and will be subject to the laws of Malta.","33433576":"Please use an e-wallet to withdraw your funds.","35089987":"Upload the front and back of your driving licence.","39720204":"AUD Index","41737927":"Thank you","44877997":"Residence permit","45453595":"Binary Coin","45941470":"Where would you like to start?","46523711":"Your proof of identity is verified","49963458":"Choose an option","50200731":"FX majors (standard/micro lots), FX minors, basket indices, commodities, and cryptocurrencies","54185751":"Less than $100,000","55340304":"Keep your current contract?","55916349":"All","58254854":"Scopes","59169515":"If you select \"Asian Rise\", you will win the payout if the last tick is higher than the average of the ticks.","59341501":"Unrecognized file format","59662816":"Stated limits are subject to change without prior notice.","62748351":"List Length","63869411":"This block tests a given number according to the selection","64402604":"Check transfer information","65185694":"Fiat onramp","65982042":"Total","66519591":"Investor password","68885999":"Repeats the previous trade when an error is encountered.","69005593":"The example below restarts trading after 30 or more seconds after 1 minute candle was started.","71016232":"OMG/USD","71445658":"Open","71563326":"A fast and secure fiat-to-crypto payment service. Deposit cryptocurrencies from anywhere in the world using your credit/debit cards and bank transfers.","71853457":"$100,001 - $500,000","72500774":"Please fill in Tax residence.","73086872":"You have self-excluded from trading","73326375":"The low is the lowest point ever reached by the market during the contract period.","74963864":"Under","76916358":"You have reached the withdrawal limit.<0/>Please upload your proof of identity and address to lift the limit to continue your withdrawal.","81450871":"We couldn’t find that page","82839270":"Upload the page of your passport that contains your photo.","83202647":"Collapse Block","85343079":"Financial assessment","85389154":"Steps required to continue verification on your mobile","89062902":"Trade on MT5","90266322":"2. Start a chat with your newly created Telegram bot and make sure to send it some messages before proceeding to the next step. (e.g. Hello Bot!)","91993812":"The Martingale Strategy is a classic trading technique that has been used for more than a hundred years, popularised by the French mathematician Paul Pierre Levy in the 18th century.","96381225":"ID verification failed","98473502":"We’re not obliged to conduct an appropriateness test, nor provide you with any risk warnings.","98972777":"random item","100239694":"Upload front of card from your computer","102226908":"Field cannot be empty","107206831":"We’ll review your document and notify you of its status within 1-3 days.","108916570":"Duration: {{duration}} days","109073671":"Please use an e-wallet that you have used for deposits previously. Ensure the e-wallet supports withdrawal. See the list of e-wallets that support withdrawals <0>here.","110261653":"Congratulations, you have successfully created your {{category}} {{platform}} <0>{{type}} {{jurisdiction_selected_shortcode}} account. To start trading, transfer funds from your Deriv account into this account.","111215238":"Move away from direct light","111718006":"End date","111931529":"Max. total stake over 7 days","113378532":"ETH/USD","113884303":"German Index","115032488":"Buy price and P/L","116005488":"Indicators","117318539":"Password should have lower and uppercase English letters with numbers.","119261701":"Prediction:","119446122":"Contract type is not selected","120340777":"Complete your personal details","123454801":"{{withdraw_amount}} {{currency_symbol}}","124723298":"Upload a proof of address to verify your address","125443840":"6. Restart last trade on error","127307725":"A politically exposed person (PEP) is someone appointed with a prominent public position. Close associates and family members of a PEP are also considered to be PEPs.","130567238":"THEN","132689841":"Trade on web terminal","133523018":"Please go to the Deposit page to get an address.","133536621":"and","138055021":"Synthetic indices","139454343":"Confirm my limits","141265840":"Funds transfer information","141626595":"Make sure your device has a working camera","142050447":"set {{ variable }} to create text with","142390699":"Connected to your mobile","143970826":"Payment problems?","145146541":"Our accounts and services are unavailable for the Jersey postal code","145736466":"Take a selfie","150486954":"Token name","151344063":"The exit spot is the market price when the contract is closed.","151646545":"Unable to read file {{name}}","152415091":"Math","152524253":"Trade the world’s markets with our popular user-friendly platform.","157593038":"random integer from {{ start_number }} to {{ end_number }}","160746023":"Tether as an Omni token (USDT) is a version of Tether that is hosted on the Omni layer on the Bitcoin blockchain.","160863687":"Camera not detected","164112826":"This block allows you to load blocks from a URL if you have them stored on a remote server, and they will be loaded only when your bot runs.","164564432":"Deposits are temporarily unavailable due to system maintenance. You can make your deposits when the maintenance is complete.","165294347":"Please set your country of residence in your account settings to access the cashier.","165312615":"Continue on phone","165682516":"If you don’t mind sharing, which other trading platforms do you use?","170185684":"Ignore","170244199":"I’m closing my account for other reasons.","171307423":"Recovery","171579918":"Go to Self-exclusion","171638706":"Variables","173991459":"We’re sending your request to the blockchain.","176319758":"Max. total stake over 30 days","176654019":"$100,000 - $250,000","177099483":"Your address verification is pending, and we’ve placed some restrictions on your account. The restrictions will be lifted once your address is verified.","178413314":"First name should be between 2 and 50 characters.","179083332":"Date","181881956":"Contract Type: {{ contract_type }}","184024288":"lower case","189705706":"This block uses the variable \"i\" to control the iterations. With each iteration, the value of \"i\" is determined by the items in a given list.","189759358":"Creates a list by repeating a given item","191372501":"Accumulation of Income/Savings","192436105":"No need for symbols, digits, or uppercase letters","192573933":"Verification complete","195972178":"Get character","196998347":"We hold customer funds in bank accounts separate from our operational accounts which would not, in the event of insolvency, form part of the company's assets. This meets the <0>Gambling Commission's requirements for the segregation of customer funds at the level: <1>medium protection.","197190401":"Expiry date","201091938":"30 days","203179929":"<0>You can open this account once your submitted documents have been verified.","203271702":"Try again","204797764":"Transfer to client","204863103":"Exit time","206010672":"Delete {{ delete_count }} Blocks","207824122":"Please withdraw your funds from the following Deriv account(s):","209533725":"You’ve transferred {{amount}} {{currency}}","210385770":"If you have an active account, please log in to continue. Otherwise, please sign up.","211224838":"Investment","211461880":"Common names and surnames are easy to guess","211847965":"Your <0>personal details are incomplete. Please go to your account settings and complete your personal details to enable withdrawals.","216650710":"You are using a demo account","217403651":"St. Vincent & Grenadines","217504255":"Financial assessment submitted successfully","218441288":"Identity card number","220014242":"Upload a selfie from your computer","220186645":"Text Is empty","220232017":"demo CFDs","222468543":"The amount that you may add to your stake if you’re losing a trade.","223120514":"In this example, each point of the SMA line is an arithmetic average of close prices for the last 50 days.","223607908":"Last digit stats for latest 1000 ticks for {{underlying_name}}","224650827":"IOT/USD","224929714":"Virtual events based bets in the UK and the Isle of Man are offered by {{legal_entity_name}}, Millennium House, Level 1, Victoria Road, Douglas IM2 4RW, Isle of Man, licensed and regulated in Great Britain by the Gambling Commission under <0>account no. 39172 and by the Gambling Supervision Commission in the Isle of Man (<1>view licence).","225887649":"This block is mandatory. It's added to your strategy by default when you create new strategy. You can not add more than one copy of this block to the canvas.","227591929":"To timestamp {{ input_datetime }} {{ dummy }}","227903202":"We’ll charge a 1% transfer fee for transfers in different currencies between your Deriv fiat and {{platform_name_mt5}} accounts.","228079844":"Click here to upload","228521812":"Tests whether a string of text is empty. Returns a boolean value (true or false).","229355215":"Trade on {{platform_name_dbot}}","233500222":"- High: the highest price","235583807":"SMA is a frequently used indicator in technical analysis. It calculates the average market price over a specified period, and is usually used to identify market trend direction: up or down. For example, if the SMA is moving upwards, it means the market trend is up. ","236642001":"Journal","240247367":"Profit table","243614144":"This is only available for existing clients.","245005091":"lower","245187862":"The DRC will make a <0>decision on the complaint (please note that the DRC mentions no timeframe for announcing its decision).","245812353":"if {{ condition }} return {{ value }}","247418415":"Gaming trading can become a real addiction, as can any other activity pushed to its limits. To avoid the danger of such an addiction, we provide a reality-check that gives you a summary of your trades and accounts on a regular basis.","248565468":"Check your {{ identifier_title }} account email and click the link in the email to proceed.","248909149":"Send a secure link to your phone","249908265":"Are you a citizen of {{- residence}}?","251134918":"Account Information","251445658":"Dark theme","254912581":"This block is similar to EMA, except that it gives you the entire EMA line based on the input list and the given period.","256031314":"Cash Business","256602726":"If you close your account:","258310842":"Workspace","258448370":"MT5","260069181":"An error occured while trying to load the URL","260086036":"Place blocks here to perform tasks once when your bot starts running.","260361841":"Tax Identification Number can't be longer than 25 characters.","264976398":"3. 'Error' displays a message in red to highlight something that needs to be resolved immediately.","265644304":"Trade types","267992618":"The platforms lack key features or functionality.","268940240":"Your balance ({{format_balance}} {{currency}}) is less than the current minimum withdrawal allowed ({{format_min_withdraw_amount}} {{currency}}). Please top up your account to continue with your withdrawal.","269607721":"Upload","270339490":"If you select \"Over\", you will win the payout if the last digit of the last tick is greater than your prediction.","270610771":"In this example, the open price of a candle is assigned to the variable \"candle_open_price\".","270712176":"descending","270780527":"You've reached the limit for uploading your documents.","272042258":"When you set your limits, they will be aggregated across all your account types in {{platform_name_trader}}, {{platform_name_dbot}}, {{platform_name_smarttrader}} and {{platform_name_bbot}} on Deriv. For example, the losses made on all four platforms will add up and be counted towards the loss limit you set.","272179372":"This block is commonly used to adjust the parameters of your next trade and to implement stop loss/take profit logic.","273350342":"Copy and paste the token into the app.","273728315":"Should not be 0 or empty","274268819":"Volatility 100 Index","275116637":"Deriv X","277469417":"Exclude time cannot be for more than five years.","278684544":"get sub-list from # from end","282319001":"Check your image","282564053":"Next, we'll need your proof of address.","283986166":"Self-exclusion on the website only applies to your {{brand_website_name}} account and does not include other companies or websites.","284527272":"antimode","284772879":"Contract","287934290":"Are you sure you want to cancel this transaction?","289898640":"TERMS OF USE","292491635":"If you select “Stop loss” and specify an amount to limit your loss, your position will be closed automatically when your loss is more than or equals to this amount. Your loss may be more than the amount you entered depending on the market price at closing.","292526130":"Tick and candle analysis","292589175":"This will display the SMA for the specified period, using a candle list.","292887559":"Transfer to {{selected_value}} is not allowed, Please choose another account from dropdown","294305803":"Manage account settings","294335229":"Sell at market price","300762428":"Swiss Index","303959005":"Sell Price:","304309961":"We're reviewing your withdrawal request. You may still cancel this transaction if you wish. Once we start processing, you won't be able to cancel.","310234308":"Close all your positions.","312142140":"Save new limits?","312300092":"Trims the spaces within a given string or text.","313298169":"Our cashier is temporarily down due to system maintenance. You can access the Cashier in a few minutes when the maintenance is complete.","313741895":"This block returns “True” if the last candle is black. It can be placed anywhere on the canvas except within the Trade parameters root block.","315306603":"You have an account that do not have currency assigned. Please choose a currency to trade with this account.","316694303":"Is candle black?","317601768":"Themes","318865860":"close","318984807":"This block repeats the instructions contained within for a specific number of times.","323179846":"The time interval for each candle can be set from one minute to one day.","323209316":"Select a Deriv Bot Strategy","325662004":"Expand Block","325763347":"result","326770937":"Withdraw {{currency}} ({{currency_symbol}}) to your wallet","327534692":"Duration value is not allowed. To run the bot, please enter {{min}}.","328539132":"Repeats inside instructions specified number of times","329404045":"<0>Switch to your real account<1> to create a {{platform}} {{account_title}} account.","333456603":"Withdrawal limits","334942497":"Buy time","335040248":"About us","337023006":"Start time cannot be in the past.","339449279":"Remaining time","339610914":"Spread Up/Spread Down","339879944":"GBP/USD","340807218":"Description not found.","342181776":"Cancel transaction","343873723":"This block displays a message. You can specify the color of the message and choose from 6 different sound options.","344418897":"These trading limits and self-exclusion help you control the amount of money and time you spend on {{brand_website_name}} and exercise <0>responsible trading.","345320063":"Invalid timestamp","346994074":"Selecting this will onboard you through Deriv (SVG) LLC (company no. 273 LLC 2020)","347029309":"Forex: standard/micro","347039138":"Iterate (2)","348951052":"Your cashier is currently locked","349047911":"Over","349110642":"<0>{{payment_agent}}<1>'s contact details","351744408":"Tests if a given text string is empty","352363702":"You may see links to websites with a fake Deriv login page where you’ll get scammed for your money.","353731490":"Job done","354945172":"Submit document","357477280":"No face found","359053005":"Please enter a token name.","359649435":"Given candle list is not valid","359809970":"This block gives you the selected candle value from a list of candles within the selected time interval. You can choose from open price, close price, high price, low price, and open time.","360224937":"Logic","362772494":"This should not exceed {{max}} characters.","363576009":"- High price: the highest price","363738790":"Browser","363990763":"Sell price:","368160866":"in list","371151609":"Last used","371710104":"This scope will allow third-party apps to buy and sell contracts for you, renew your expired purchases, and top up your demo accounts.","372291654":"Exclude time must be after today.","372645383":"True if the market direction matches the selection","373021397":"random","373306660":"{{label}} is required.","373495360":"This block returns the entire SMA line, containing a list of all values for a given period.","374537470":"No results for \"{{text}}\"","375714803":"Deal Cancellation Error","379523479":"To avoid loss of funds, do not share tokens with the Admin scope with unauthorised parties.","379730150":"US Tech Index","380606668":"tick","380694312":"Maximum consecutive trades","382781785":"Your contract is closed automatically when your profit is more than or equals to this amount.","384303768":"This block returns \"True\" if the last candle is black. It can be placed anywhere on the canvas except within the Trade parameters root block.","386278304":"Install the {{platform_name_trader}} web app","386502387":"Bot is not running","389923099":"Zoom in","390647540":"Real account","390890891":"Last quarter","391915203":"Hedging","392582370":"Fall Equals","396418990":"Offline","396961806":"We do not support Polygon (Matic), to deposit please use only Ethereum ({{token}}).","398816980":"Launch {{platform_name_trader}} in seconds the next time you want to trade.","401339495":"Verify address","402343402":"Due to an issue on our server, some of your {{platform}} accounts are unavailable at the moment. Please bear with us and thank you for your patience.","403456289":"The formula for SMA is:","404743411":"Total deposits","406359555":"Contract details","406497323":"Sell your active contract if needed (optional)","411482865":"Add {{deriv_account}} account","412433839":"I agree to the <0>terms and conditions.","413594348":"Only letters, numbers, space, hyphen, period, and forward slash are allowed.","417714706":"If your margin level drops below our stop out level, your positions may be closed automatically to protect you from further losses.","417864079":"You’ll not be able to change currency once you have made a deposit.","418265501":"Demo Derived","420072489":"CFD trading frequency","422055502":"From","426031496":"Stop","427134581":"Try using another file type.","427617266":"Bitcoin","428709688":"Your preferred time interval between each report:","430975601":"Town/City is not in a proper format.","432508385":"Take Profit: {{ currency }} {{ take_profit }}","432519573":"Document uploaded","433348384":"Real accounts are not available to politically exposed persons (PEPs).","433616983":"2. Investigation phase","434548438":"Highlight function definition","434896834":"Custom functions","436364528":"Your account will be opened with {{legal_entity_name}}, and will be subject to the laws of Saint Vincent and the Grenadines.","437138731":"Create a new {{platform}} password","437453244":"Choose your preferred cryptocurrency","437485293":"File type not supported","437904704":"Maximum open positions","438067535":"Over $500,000","442520703":"$250,001 - $500,000","443559872":"Financial SVG","444484637":"Logic negation","450983288":"Your deposit is unsuccessful due to an error on the blockchain. Please contact your crypto wallet service provider for more info.","451852761":"Continue on your phone","452054360":"Similar to RSI, this block gives you a list of values for each entry in the input list.","453175851":"Your MT5 Financial STP account will be opened through {{legal_entity_name}}. All trading in this account is subject to the regulations and guidelines of the Labuan Financial Service Authority (LFSA). None of your other accounts, including your Deriv account, is subject to the regulations and guidelines of the Labuan Financial Service Authority (LFSA).","453409608":"Your profit is the percentage change in market price times your stake and the multiplier of your choice.","454593402":"2. Please upload one of the following:","456746157":"Grant access to your camera from your browser settings","457020083":"It’ll take longer to verify you if we can’t read it","457494524":"1. From the block library, enter a name for the new variable and click Create.","459817765":"Pending","460975214":"Complete your Appropriateness Test","461795838":"Please contact us via live chat to unlock it.","462079779":"Resale not offered","463361726":"Select an item","465993338":"Oscar's Grind","466369320":"Your gross profit is the percentage change in market price times your stake and the multiplier chosen here.","473154195":"Settings","473863031":"Pending proof of address review","474306498":"We’re sorry to see you leave. Your account is now closed.","475492878":"Try Synthetic Indices","476023405":"Didn't receive the email?","477557241":"Remote blocks to load must be a collection.","478280278":"This block displays a dialog box that uses a customised message to prompt for an input. The input can be either a string of text or a number and can be assigned to a variable. When the dialog box is displayed, your strategy is paused and will only resume after you enter a response and click \"OK\".","479420576":"Tertiary","481276888":"Goes Outside","483591040":"Delete all {{ delete_count }} blocks?","485379166":"View transactions","487239607":"Converts a given True or False to the opposite value","488150742":"Resend email","489768502":"Change investor password","491603904":"Unsupported browser","492198410":"Make sure everything is clear","496680295":"Choose country","497518317":"Function that returns a value","498562439":"or","499522484":"1. for \"string\": 1325.68 USD","500855527":"Chief Executives, Senior Officials and Legislators","500920471":"This block performs arithmetic operations between two numbers.","501401157":"You are only allowed to make deposits","501537611":"*Maximum number of open positions","502041595":"This block gives you a specific candle from within the selected time interval.","503137339":"Payout limit","505793554":"last letter","508390614":"Demo Financial STP","510815408":"Letters, numbers, spaces, hyphens only","514031715":"list {{ input_list }} is empty","514776243":"Your {{account_type}} password has been changed.","514948272":"Copy link","518955798":"7. Run Once at Start","520136698":"Boom 500 Index","521872670":"item","522283618":"Digital options trading experience","522703281":"divisible by","523123321":"- 10 to the power of a given number","527329988":"This is a top-100 common password","529056539":"Options","529597350":"If you had any open positions, we have closed them and refunded you.","530953413":"Authorised applications","531114081":"3. Contract Type","531675669":"Euro","535041346":"Max. total stake per day","538228086":"Close-Low","541650045":"Manage {{platform}} password","541700024":"First, enter your driving licence number and the expiry date.","542038694":"Only letters, numbers, space, underscore, and hyphen are allowed for {{label}}.","542305026":"You must also submit a proof of identity.","543413346":"You have no open positions for this asset. To view other open positions, click Go to Reports","543915570":"Forex, stocks, stock indices, cryptocurrencies, synthetic indices","545476424":"Total withdrawals","546534357":"If you select “Deal cancellation”, you’ll be able to cancel your trade within a chosen time frame should the market move against your favour. We’ll charge a small fee for this, but we’ll return your stake amount without profit or loss. If the stop-out amount is reached before the deal cancellation expires, your position will be cancelled automatically and we’ll return your stake amount without profit or loss. While “Deal cancellation” is active:","549479175":"Deriv Multipliers","551414637":"Click the <0>Change password button to change your DMT5 password.","551569133":"Learn more about trading limits","554410233":"This is a top-10 common password","555351771":"After defining trade parameters and trade options, you may want to instruct your bot to purchase contracts when specific conditions are met. To do that you can use conditional blocks and indicators blocks to help your bot to make decisions.","556095366":"We'll process your details within a few minutes and notify its status via email.","556264438":"Time interval","559224320":"Our classic “drag-and-drop” tool for creating trading bots, featuring pop-up trading charts, for advanced users.","561982839":"Change your currency","562599414":"This block returns the purchase price for the selected trade type. This block can be used only in the \"Purchase conditions\" root block.","563034502":"We shall try to resolve your complaint within 15 business days. We will inform you of the outcome together with an explanation of our position and propose any remedial measures we intend to take.","563166122":"We shall acknowledge receiving your complaint, review it carefully, and keep you updated on the handling process. We might request further information or clarifications to facilitate the resolution of the complaint.","563652273":"Go to block","565410797":"The below image illustrates how Simple Moving Average Array block works:","566274201":"1. Market","567019968":"A variable is among the most important and powerful components in creating a bot. It is a way to store information, either as text or numbers. The information stored as a variable can be used and changed according to the given instructions. Variables can be given any name, but usually they are given useful, symbolic names so that it is easier to call them during the execution of instructions.","567163880":"Create a {{platform}} password","567755787":"Tax Identification Number is required.","569057236":"In which country was your document issued?","571921777":"Funds protection level","573173477":"Is candle {{ input_candle }} black?","577215477":"count with {{ variable }} from {{ start_number }} to {{ end_number }} by {{ step_size }}","577779861":"Withdrawal","577883523":"4. Awards and orders","578640761":"Call Spread","579529868":"Show all details — including the bottom 2 lines","580431127":"Restart buy/sell on error (disable for better performance): {{ checkbox }}","580665362":"Stays In/Goes Out","580774080":"insert at","581168980":"Legal","582945649":"2 minutes","584028307":"Allow equals","587577425":"Secure my account","589609985":"Linked with {{identifier_title}}","593459109":"Try a different currency","595080994":"Example: CR123456789","595136687":"Save Strategy","597089493":"Here is where you can decide to sell your contract before it expires. Only one copy of this block is allowed.","597481571":"DISCLAIMER","597707115":"Tell us about your trading experience.","599469202":"{{secondPast}}s ago","602278674":"Verify identity","606240547":"- Natural log","606877840":"Back to today","607807243":"Get candle","609519227":"This is the email address associated with your Deriv account.","609650241":"Infinite loop detected","610537973":"Any information you provide is confidential and will be used for verification purposes only.","611020126":"View address on Blockchain","611786123":"FX-majors (standard/micro lots), FX-minors, Commodities, Cryptocurrencies, Stocks, and Stock Indices","613877038":"Chart","617345387":"If you select \"Reset-Up”, you win the payout if the exit spot is strictly higher than either the entry spot or the spot at reset time.","618520466":"Example of a cut-off document","619268911":"<0>a.The Financial Commission will investigate the validity of the complaint within 5 business days.","619407328":"Are you sure you want to unlink from {{identifier_title}}?","623192233":"Please complete the <0>Appropriateness Test to access your cashier.","623542160":"Exponential Moving Average Array (EMAA)","626175020":"Standard Deviation Up Multiplier {{ input_number }}","626809456":"Resubmit","627292452":"<0>Your Proof of Identity or Proof of Address did not meet our requirements. Please check your email for further instructions.","627814558":"This block returns a value when a condition is true. Use this block within either of the function blocks above.","629145209":"In case if the \"AND\" operation is selected, the block returns \"True\" only if both given values are \"True\"","630336049":"Trade CFDs on our synthetics, basket indices, and Derived FX.","632398049":"This block assigns a null value to an item or statement.","634219491":"You have not provided your tax identification number. This information is necessary for legal and regulatory requirements. Please go to <0>Personal details in your account settings, and fill in your latest tax identification number.","636219628":"<0>c.If no settlement opportunity can be found, the complaint will proceed to the determination phase to be handled by the DRC.","639382772":"Please upload supported file type.","640596349":"You have yet to receive any notifications","640730141":"Refresh this page to restart the identity verification process","641420532":"We've sent you an email","642210189":"Please check your email for the verification link to complete the process.","642393128":"Enter amount","642546661":"Upload back of license from your computer","642995056":"Email","643014039":"The trade length of your purchased contract.","644150241":"The number of contracts you have won since you last cleared your stats.","645016681":"Trading frequency in other financial instruments","645902266":"EUR/NZD","647192851":"Contract will be sold at the prevailing market price when the request is received by our servers. This price may differ from the indicated price.","647745382":"Input List {{ input_list }}","649317411":"On the basis of the information provided in relation to your knowledge and experience, we consider that the investments available via this website are not appropriate for you.<0/><1/>","649923867":"Adds a sign to a number to create a barrier offset. (deprecated)","651284052":"Low Tick","651684094":"Notify","652041791":"To create a Deriv X real account, create a Deriv real account first.","652298946":"Date of birth","654264404":"Up to 1:30","654507872":"True-False","654924603":"Martingale","655937299":"We’ll update your limits. Click <0>Accept to acknowledge that you are fully responsible for your actions, and we are not liable for any addiction or loss.","657325150":"This block is used to define trade options within the Trade parameters root block. Some options are only applicable for certain trade types. Parameters such as duration and stake are common among most trade types. Prediction is used for trade types such as Digits, while barrier offsets are for trade types that involve barriers such as Touch/No Touch, Ends In/Out, etc.","657444253":"Sorry, account opening is unavailable in your region.","659482342":"Please remember that it is your responsibility to keep your answers accurate and up to date. You can update your personal details at any time in your account settings.","660481941":"To access your mobile apps and other third-party apps, you'll first need to generate an API token.","660991534":"Finish","662578726":"Available","662609119":"Download the MT5 app","665089217":"Please submit your <0>proof of identity to authenticate your account and access your Cashier.","665777772":"XLM/USD","665872465":"In the example below, the opening price is selected, which is then assigned to a variable called \"op\".","668344562":"Synthetics, FX majors (standard/micro lots), FX minors, basket indices, commodities, and cryptocurrencies","672008428":"ZEC/USD","673915530":"Jurisdiction and choice of law","674973192":"Use this password to log in to your Deriv MT5 accounts on the desktop, web, and mobile apps.","676159329":"Could not switch to default account.","677918431":"Market: {{ input_market }} > {{ input_submarket }} > {{ input_symbol }}","678517581":"Units","680334348":"This block was required to correctly convert your old strategy.","681926004":"Example of a blurry document","682056402":"Standard Deviation Down Multiplier {{ input_number }}","684282133":"Trading instruments","685391401":"If you're having trouble signing in, let us know via <0>chat","687212287":"Amount is a required field.","689137215":"Purchase price","691956534":"<0>You have added a {{currency}} account.<0> Make a deposit now to start trading.","693396140":"Deal cancellation (expired)","696870196":"- Open time: the opening time stamp","697630556":"This market is presently closed.","698748892":"Let’s try that again","699159918":"1. Filing complaints","700259824":"Account currency","701034660":"We are still processing your withdrawal request.<0 />Please wait for the transaction to be completed before deactivating your account.","701462190":"Entry spot","701647434":"Search for string","705299518":"Next, upload the page of your passport that contains your photo.","706727320":"Binary options trading frequency","706755289":"This block performs trigonometric functions.","708055868":"Driving licence number","710123510":"repeat {{ while_or_until }} {{ boolean }}","711999057":"Successful","712101776":"Take a photo of your passport photo page","712635681":"This block gives you the selected candle value from a list of candles. You can choose from open price, close price, high price, low price, and open time.","713054648":"Sending","714080194":"Submit proof","714746816":"MetaTrader 5 Windows app","715841616":"Please enter a valid phone number (e.g. +15417541234).","716428965":"(Closed)","718504300":"Postal/ZIP code","720293140":"Log out","720519019":"Reset my password","721011817":"- Raise the first number to the power of the second number","723045653":"You'll log in to your Deriv account with this email address.","723961296":"Manage password","724203548":"You can send your complaint to the <0>European Commission's Online Dispute Resolution (ODR) platform. This is not applicable to UK clients.","728042840":"To continue trading with us, please confirm where you live.","728824018":"Spanish Index","730473724":"This block performs the \"AND\" or the \"OR\" logic operation with the given values.","731382582":"BNB/USD","734390964":"Insufficient balance","734881840":"false","742676532":"Trade CFDs on forex, derived indices, cryptocurrencies, and commodities with high leverage.","744110277":"Bollinger Bands Array (BBA)","745656178":"Use this block to sell your contract at the market price.","745674059":"Returns the specific character from a given string of text according to the selected option. ","746112978":"Your computer may take a few seconds to update","751692023":"We <0>do not guarantee a refund if you make a wrong transfer.","752024971":"Reached maximum number of digits","752633544":"You will need to submit proof of identity and address once you reach certain thresholds","752992217":"This block gives you the selected constant values.","753088835":"Default","753184969":"In providing our services to you, we are required to obtain information from you in order to assess whether a given product or service is appropriate for you (that is, whether you possess the experience and knowledge to understand the risks involved).<0/><1/>","753727511":"Type","755867072":"{{platform_name_mt5}} is not available in {{country}}","756152377":"SMA places equal weight to the entire distribution of values.","758003269":"make list from text","759783233":"For more information and assistance to counselling and support services, please visit <0>begambleaware.org.","760528514":"Please note that changing the value of \"i\" won't change the value of the original item in the list","761576760":"Fund your account to start trading.","762185380":"<0>Multiply returns by <0>risking only what you put in.","762871622":"{{remaining_time}}s","763019867":"Your Gaming account is scheduled to be closed","764366329":"Trading limits","764540515":"Stopping the bot is risky","766317539":"Language","770171141":"Go to {{hostname}}","772632060":"Do not send any other currency to the following address. Otherwise, you'll lose funds.","773091074":"Stake:","773309981":"Oil/USD","773336410":"Tether is a blockchain-enabled platform designed to facilitate the use of fiat currencies in a digital manner.","775679302":"{{pending_withdrawals}} pending withdrawal(s)","776085955":"Strategies","781924436":"Call Spread/Put Spread","783974693":"Avoid recent years","784311461":"Exponential Moving Average (EMA)","784583814":"Linked to your computer","785969488":"Jump 75 Index","787116142":"The multiplier amount used to increase your stake if you’re losing a trade. Value must be higher than 2.","787727156":"Barrier","788005234":"NA","793526589":"To file a complaint about our service, send an email to <0>complaints@deriv.com and state your complaint in detail. Please submit any relevant screenshots of your trading or system for our better understanding.","793531921":"Our company is one of the oldest and most reputable online trading companies in the world. We are committed to treat our clients fairly and provide them with excellent service.<0/><1/>Please provide us with feedback on how we can improve our services to you. Rest assured that you will be heard, valued, and treated fairly at all times.","794682658":"Copy the link to your phone","795859446":"Password saved","797007873":"Follow these steps to recover camera access:","797500286":"negative","800228448":"This complaints policy, which may change from time to time, applies to your account(s) registered with {{legal_entity_name_svg}} and {{legal_entity_name_fx}}.","800521289":"Your personal details are incomplete","801430087":"A link can contain the word \"Deriv\" and still be fake.","802436811":"View transaction details","802438383":"New proof of address is needed","802556390":"seconds","802989607":"Drag your XML file here","803500173":"Initial stake","807499069":"Financial commission complaints procedure","808323704":"You can also use \"Compare\" and \"Logic operation\" blocks to make test variables.","811876954":"You may transfer between your Deriv fiat, cryptocurrency, {{platform_name_mt5}}, and {{platform_name_dxtrade}} accounts.","816580787":"Welcome back! Your messages have been restored.","816738009":"<0/><1/>You may also raise your unresolved dispute to the <2>Office of the Arbiter for Financial Services.","818447476":"Switch account?","820877027":"Please verify your proof of identity","823186089":"A block that can contain text.","824797920":"Is list empty?","826511719":"USD/SEK","827688195":"Disable Block","828219890":"then","828602451":"Returns the list of tick values in string format","830164967":"Last name","830993327":"No current transactions available","832217983":"40 transactions or more in the past 12 months","832398317":"Sell Error","832588873":"Order execution","832721563":"If you select \"Low Tick\", you win the payout if the selected tick is the lowest among the next five ticks.","834966953":"1551661986 seconds since Jan 01 1970 (UTC) translates to 03/04/2019 @ 1:13am (UTC).","835058671":"Total buy price","835350845":"Add another word or two. Uncommon words are better.","837066896":"Your document is being reviewed, please check back in 1-3 days.","839618971":"ADDRESS","839805709":"To smoothly verify you, we need a better photo","841434703":"Disable stack","841543189":"View transaction on Blockchain","843333337":"You can only make deposits. Please complete the <0>financial assessment to unlock withdrawals.","845213721":"Logout","845304111":"Slow EMA Period {{ input_number }}","847888634":"Please withdraw all your funds.","850582774":"Please update your personal info","851054273":"If you select \"Higher\", you win the payout if the exit spot is strictly higher than the barrier.","851264055":"Creates a list with a given item repeated for a specific number of times.","851508288":"This block constrains a given number within a set range.","852583045":"Tick List String","854399751":"Digit code must only contain numbers.","854630522":"Choose a cryptocurrency account","857363137":"Volatility 300 (1s) Index","857445204":"Deriv currently supports withdrawals of Tether eUSDT to Ethereum wallet. To ensure a successful transaction, enter a wallet address compatible with the tokens you wish to withdraw. <0>Learn more","857986403":"do something","860319618":"Tourism","862283602":"Phone number*","863328851":"Proof of identity","864610268":"First, enter your {{label}} and the expiry date.","864957760":"Math Number Positive","865424952":"High-to-Low","865642450":"2. Logged in from a different browser","866496238":"Make sure your license details are clear to read, with no blur or glare","868826608":"Excluded from {{brand_website_name}} until","869823595":"Function","869993298":"Minimum withdrawal","872549975":"You have {{number}} transfers remaining for today.","872661442":"Are you sure you want to update email <0>{{prev_email}} to <1>{{changed_email}}?","872817404":"Entry Spot Time","873166343":"1. 'Log' displays a regular message.","874461655":"Scan the QR code with your phone","874484887":"Take profit must be a positive number.","875532284":"Restart process on a different device","876086855":"Complete the financial assessment form","876292912":"Exit","879014472":"Reached maximum number of decimals","888274063":"Town/City","890299833":"Go to Reports","891097078":"USD Index","891337947":"Select country","892341141":"Your trading statistics since: {{date_time}}","893117915":"Variable","893963781":"Close-to-Low","893975500":"You do not have any recent bots","894191608":"<0>c.We must award the settlement within 28 days of when the decision is reached.","898457777":"You have added a Deriv Financial account.","902045490":"3 minutes","903429103":"In candles list read {{ candle_property }} # from end {{ input_number }}","904696726":"API token","905134118":"Payout:","905227556":"Strong passwords contain at least 8 characters, combine uppercase and lowercase letters and numbers.","905564365":"MT5 CFDs","906049814":"We’ll review your documents and notify you of its status within 5 minutes.","910888293":"Too many attempts","915735109":"Back to {{platform_name}}","918447723":"Real","920125517":"Add demo account","926813068":"Fixed/Variable","929608744":"You are unable to make withdrawals","930346117":"Capitalization doesn't help very much","930546422":"Touch","933126306":"Enter some text here","933193610":"Only letters, periods, hyphens, apostrophes, and spaces, please.","934835052":"Potential profit","934932936":"PERSONAL","936766426":"You are limited to one fiat account. You won’t be able to change your account currency if you have already made your first deposit.","937237342":"Strategy name cannot be empty","937682366":"Upload both of these documents to prove your identity.","937831119":"Last name*","937992258":"Table","938500877":"{{ text }}. <0>You can view the summary of this transaction in your email.","938988777":"High barrier","940950724":"This trade type is currently not supported on {{website_name}}. Please go to <0>Binary.com for details.","943535887":"Please close your positions in the following Deriv MT5 account(s):","944499219":"Max. open positions","945532698":"Contract sold","946204249":"Read","946841802":"A white (or green) candle indicates that the open price is lower than the close price. This represents an upward movement of the market price.","946944859":"Hit the button below and we'll send you an email with a link. Click that link to verify your withdrawal request.","947046137":"Your withdrawal will be processed within 24 hours","947363256":"Create list","947549448":"Total assets in your Deriv, {{platform_name_mt5}} and {{platform_name_dxtrade}} real accounts.","947758334":"City is required","947914894":"Top up  <0>","948156236":"Create {{type}} password","948545552":"150+","949859957":"Submit","952927527":"Regulated by the Malta Financial Services Authority (MFSA) (licence no. IS/70156)","955352264":"Trade on {{platform_name_dxtrade}}","956448295":"Cut-off image detected","957182756":"Trigonometric functions","958430760":"In/Out","959031082":"set {{ variable }} to MACD Array {{ dropdown }} {{ dummy }}","960201789":"3. Sell conditions","961692401":"Bot","966457287":"set {{ variable }} to Exponential Moving Average {{ dummy }}","968576099":"Up/Down","969987233":"Win up to maximum payout if exit spot is between lower and upper barrier, in proportion to the difference between exit spot and lower barrier.","970915884":"AN","974888153":"High-Low","975668699":"I confirm and accept {{company}} 's <0>Terms and Conditions","975950139":"Country of Residence","977929335":"Go to my account settings","981138557":"Redirect","981965437":"Scan the QR code below with your 2FA app. We recommend <0>Authy or <1>Google Authenticator.","982402892":"First line of address","982829181":"Barriers","987900242":"Total assets in your Deriv, {{platform_name_mt5}} and {{platform_name_dxtrade}} demo accounts.","988361781":"You have no trading activity yet.","988934465":"When prompted, you must enable camera access to continue","992294492":"Your postal code is invalid","993827052":"Choosing this jurisdiction will give you a Financial STP account. Your trades will go directly to the market and have tighter spreads.","995563717":"not {{ boolean }}","999008199":"text","1001160515":"Sell","1001749987":"You’ll get a warning, named margin call, if your account balance drops down close to the stop out level.","1003876411":"Should start with letter or number and may contain a hyphen, period and slash.","1004127734":"Send email","1006458411":"Errors","1006664890":"Silent","1009032439":"All time","1010198306":"This block creates a list with strings and numbers.","1012102263":"You will not be able to log in to your account until this date (up to 6 weeks from today).","1015201500":"Define your trade options such as duration and stake.","1016220824":"You need to switch to a real money account to use this feature.<0/>You can do this by selecting a real account from the <1>Account Switcher.","1018803177":"standard deviation","1019265663":"You have no transactions yet.","1019508841":"Barrier 1","1022934784":"1 minute","1023237947":"1. In the example below, the instructions are repeated as long as the value of x is less than or equal to 10. Once the value of x exceeds 10, the loop is terminated.","1023643811":"This block purchases contract of a specified type.","1023795011":"Even/Odd","1024205076":"Logic operation","1024760087":"You are verified to add this account","1025887996":"Negative Balance Protection","1026046972":"Please enter a payout amount that's lower than {{max_payout}}.","1027098103":"Leverage gives you the ability to trade a larger position using your existing capital. Leverage varies across different symbols.","1028211549":"All fields are required","1028758659":"Citizenship*","1029164365":"We presume that you possess the experience, knowledge, and expertise to make your own investment decisions and properly assess the risk involved.","1030021206":"change {{ variable }} by {{ number }}","1031602624":"We've sent a secure link to %{number}","1031731167":"Pound Sterling","1032173180":"Deriv","1032907147":"AUD/NZD","1035506236":"Choose a new password","1036353276":"Please create another Deriv or {{platform_name_mt5}} account.","1036867749":"The desired duration, stake, prediction, and/or barrier(s) for the contract is defined here.","1038575777":"Change password","1039755542":"Use a few words, avoid common phrases","1040677897":"To continue trading, you must also submit a proof of address.","1041001318":"This block performs the following operations on a given list: sum, minimum, maximum, average, median, mode, antimode, standard deviation, random item.","1041620447":"If you are unable to scan the QR code, you can manually enter this code instead:","1042659819":"You have an account that needs action","1043790274":"There was an error","1044230481":"This is an Ethereum ({{token}}) only address, please do not use {{prohibited_token}}.","1044540155":"100+","1044599642":"<0> has been credited into your {{platform}} {{title}} account.","1045704971":"Jump 150 Index","1045782294":"Click the <0>Change password button to change your Deriv password.","1047389068":"Food Services","1048947317":"Sorry, this app is unavailable in {{clients_country}}.","1049384824":"Rise","1050128247":"I confirm that I have verified the payment agent’s transfer information.","1050844889":"Reports","1052137359":"Family name*","1052779010":"You are on your demo account","1053153674":"Jump 50 Index","1053159279":"Level of education","1055313820":"No document detected","1056381071":"Return to trade","1056821534":"Are you sure?","1057216772":"text {{ input_text }} is empty","1057749183":"Two-factor authentication (2FA)","1057765448":"Stop out level","1057904606":"The concept of the D’Alembert Strategy is said to be similar to the Martingale Strategy where you will increase your contract size after a loss. With the D’Alembert Strategy, you will also decrease your contract size after a successful trade.","1061308507":"Purchase {{ contract_type }}","1062536855":"Equals","1065353420":"110+","1065498209":"Iterate (1)","1069347258":"The verification link you used is invalid or expired. Please request for a new one.","1069576070":"Purchase lock","1070624871":"Check proof of address document verification status","1076006913":"Profit/loss on the last {{item_count}} contracts","1077515534":"Date to","1080068516":"Action","1080990424":"Confirm","1082158368":"*Maximum account cash balance","1082406746":"Please enter a stake amount that's at least {{min_stake}}.","1083781009":"Tax identification number*","1083826534":"Enable Block","1088138125":"Tick {{current_tick}} - ","1096175323":"You’ll need a Deriv account","1098622295":"\"i\" starts with the value of 1, and it will be increased by 2 at every iteration. The loop will repeat until \"i\" reaches the value of 12, and then the loop is terminated.","1100870148":"To learn more about account limits and how they apply, please go to the <0>Help Centre.","1101560682":"stack","1101712085":"Buy Price","1102420931":"Next, upload the front and back of your driving licence.","1102995654":"Calculates Exponential Moving Average (EMA) list from a list of values with a period","1103309514":"Target","1103452171":"Cookies help us to give you a better experience and personalised content on our site.","1104912023":"Pending verification","1107474660":"Submit proof of address","1107555942":"To","1109217274":"Success!","1110102997":"Statement","1112582372":"Interval duration","1113119682":"This block gives you the selected candle value from a list of candles.","1113292761":"Less than 8MB","1117863275":"Security and safety","1118294625":"You have chosen to exclude yourself from trading on our website until {{exclusion_end}}. If you are unable to place a trade or deposit after your self-exclusion period, please contact us via live chat.","1119887091":"Verification","1119986999":"Your proof of address was submitted successfully","1120985361":"Terms & conditions updated","1122910860":"Please complete your <0>financial assessment.","1123927492":"You have not selected your account currency","1125090693":"Must be a number","1126075317":"Add your Deriv MT5 <0>{{account_type_name}} STP account under Deriv (FX) Ltd regulated by Labuan Financial Services Authority (Licence no. MB/18/0024).","1126934455":"Length of token name must be between 2 and 32 characters.","1127149819":"Make sure§","1128404172":"Undo","1129124569":"If you select \"Under\", you will win the payout if the last digit of the last tick is less than your prediction.","1129842439":"Please enter a take profit amount.","1130744117":"We shall try to resolve your complaint within 10 business days. We will inform you of the outcome together with an explanation of our position and propose any remedial measures we intend to take.","1130791706":"N","1133651559":"Live chat","1134879544":"Example of a document with glare","1139483178":"Enable stack","1143730031":"Direction is {{ direction_type }}","1144028300":"Relative Strength Index Array (RSIA)","1145927365":"Run the blocks inside after a given number of seconds","1146064568":"Go to Deposit page","1147269948":"Barrier cannot be zero.","1147625645":"Please proceed to withdraw all your funds from your account before <0>30 November 2021.","1151964318":"both sides","1152294962":"Upload the front of your driving licence.","1154021400":"list","1154239195":"Title and name","1155011317":"This block converts the date and time to the number of seconds since the Unix Epoch (1970-01-01 00:00:00).","1158678321":"<0>b.The Head of the Dispute Resolution Committee (DRC) will contact both you and us within 5 business days to obtain all necessary information and see if there is a chance to settle the complaint during the investigation phase.","1160761178":"No payout if exit spot is below or equal to the lower barrier.","1161924555":"Please select an option","1163836811":"Real Estate","1164773983":"Take profit and/or stop loss are not available while deal cancellation is active.","1166128807":"Choose one of your accounts or add a new cryptocurrency account","1166377304":"Increment value","1168029733":"Win payout if exit spot is also equal to entry spot.","1169201692":"Create {{platform}} password","1170228717":"Stay on {{platform_name_trader}}","1174542625":"- Find the chat ID property in the response, and copy the value of the id property","1174748431":"Payment channel","1175183064":"Vanuatu","1176926166":"Experience with trading other financial instruments","1177396776":"If you select \"Asian Fall\", you will win the payout if the last tick is lower than the average of the ticks.","1177723589":"There are no transactions to display","1178582280":"The number of contracts you have lost since you last cleared your stats.","1178800778":"Take a photo of the back of your license","1178942276":"Please try again in a minute.","1179704370":"Please enter a take profit amount that's higher than the current potential profit.","1180619731":"Each day, you can make up to {{ allowed_internal }} transfers between your Deriv accounts, up to {{ allowed_mt5 }} transfers between your Deriv and {{platform_name_mt5}} accounts, and up to {{ allowed_dxtrade }} transfers between your Deriv and {{platform_name_dxtrade}} accounts.","1181396316":"This block gives you a random number from within a set range","1181770592":"Profit/loss from selling","1183007646":"- Contract type: the name of the contract type such as Rise, Fall, Touch, No Touch, etс.","1188316409":"To receive your funds, contact the payment agent with the details below","1188980408":"5 minutes","1189368976":"Please complete your personal details before you verify your identity.","1189886490":"Please create another Deriv, {{platform_name_mt5}}, or {{platform_name_dxtrade}} account.","1191429031":"Please click on the link in the email to change your <0>{{platform_name_dxtrade}} password.","1191644656":"Predict the market direction and select either “Up” or “Down” to open a position. We will charge a commission when you open a position.","1192708099":"Duration unit","1195393249":"Notify {{ notification_type }} with sound: {{ notification_sound }} {{ input_message }}","1196006480":"Profit threshold","1197326289":"You are no longer able to trade digital options on any of our platforms. Also, you can’t make deposits into your Options account.","1198368641":"Relative Strength Index (RSI)","1199281499":"Last Digits List","1201533528":"Contracts won","1201773643":"numeric","1203297580":"This block sends a message to a Telegram channel.","1204223111":"In this example, the open prices from a list of candles are assigned to a variable called \"candle_list\".","1206821331":"Armed Forces","1208729868":"Ticks","1208903663":"Invalid token","1211912982":"Bot is starting","1214893428":"Account creation is currently unavailable for mobile. Please log in with your computer to create a new account.","1216408337":"Self-Employed","1217481729":"Tether as an ERC20 token (eUSDT) is a version of Tether that is hosted on Ethereum.","1218546232":"What is Fiat onramp?","1219844088":"do %1","1221250438":"To enable withdrawals, please submit your <0>Proof of Identity (POI) and <1>Proof of Address (POA) and also complete the <2>financial assessment in your account settings.","1222096166":"Deposit via bank wire, credit card, and e-wallet","1222521778":"Making deposits and withdrawals is difficult.","1222544232":"We’ve sent you an email","1225150022":"Number of assets","1227074958":"random fraction","1227240509":"Trim spaces","1228534821":"Some currencies may not be supported by payment agents in your country.","1229883366":"Tax identification number","1230884443":"State/Province (optional)","1231282282":"Use only the following special characters: {{permitted_characters}}","1232291311":"Maximum withdrawal remaining","1232353969":"0-5 transactions in the past 12 months","1233300532":"Payout","1234292259":"Source of wealth","1235426525":"50%","1237330017":"Pensioner","1238311538":"Admin","1239940690":"Restarts the bot when an error is encountered.","1240027773":"Please Log in","1241238585":"You may transfer between your Deriv fiat, cryptocurrency, and {{platform_name_mt5}} accounts.","1243064300":"Local","1246207976":"Enter the authentication code generated by your 2FA app:","1246880072":"Select issuing country","1247280835":"Our cryptocurrency cashier is temporarily down due to system maintenance. You can make cryptocurrency deposits and withdrawals in a few minutes when the maintenance is complete.","1248018350":"Source of income","1248940117":"<0>a.The decisions made by the DRC are binding on us. DRC decisions are binding on you only if you accept them.","1250495155":"Token copied!","1253154463":"Trade CFDs on our synthetics, basket indices.","1254565203":"set {{ variable }} to create list with","1255909792":"last","1255963623":"To date/time {{ input_timestamp }} {{ dummy }}","1258097139":"What could we do to improve?","1258198117":"positive","1259598687":"GBP/JPY","1260259925":"Phone is not in a proper format.","1263387702":"All {{count}} account types use market execution. This means you agree with the broker's price in advance and will place orders at the broker's price.","1264096613":"Search for a given string","1265704976":"","1270581106":"If you select \"No Touch\", you win the payout if the market never touches the barrier at any time during the contract period.","1272012156":"GBP/CHF","1272337240":"Days","1272681097":"Hours","1274819385":"3. Complaints and Disputes","1275474387":"Quick","1281045211":"Sorts the items in a given list, by their numeric or alphabetical value, in either ascending or descending order.","1281290230":"Select","1282951921":"Only Downs","1284522768":"If \"Loss\" is selected, it will return \"True\" if your last trade was unsuccessful. Otherwise, it will return an empty string.","1285686014":"Pending proof of identity review","1286094280":"Withdraw","1286507651":"Close identity verification screen","1288965214":"Passport","1289646209":"Margin call","1290525720":"Example: ","1291887623":"Digital options trading frequency","1292891860":"Notify Telegram","1293660048":"Max. total loss per day","1294756261":"This block creates a function, which is a group of instructions that can be executed at any time. Place other blocks in here to perform any kind of action that you need in your strategy. When all the instructions in a function have been carried out, your bot will continue with the remaining blocks in your strategy. Click the “do something” field to give it a name of your choice. Click the plus icon to send a value (as a named variable) to your function.","1295284664":"Please accept our <0>updated Terms and Conditions to proceed.","1296380713":"Close my contract","1299479533":"8 hours","1300576911":"Please resubmit your proof of address or we may restrict your account.","1301668579":"We’re working to have this available for you soon. If you have another account, switch to that account to continue trading. You may add a DMT5 Financial.","1302691457":"Occupation","1303016265":"Yes","1303530014":"We’re processing your withdrawal.","1304083330":"copy","1304272843":"Please submit your proof of address.","1304620236":"Enable camera","1304788377":"<0/><1/>If your complaint relates to our data processing practices, you can submit a formal complaint to the <2>Information and Data Protection Commissioner (Malta) on their website or make a complaint to any supervisory authority within the European Union.","1305217290":"Upload the back of your identity card.","1308625834":"Sets the default time interval for blocks that read list of candles.","1309017029":"Enabling this allows you to save your blocks as one collection which can be easily integrated into other bots.","1309044871":"Returns the value of the latest tick in string format","1310483610":"Results for \"{{ search_term }}\"","1311680770":"payout","1311799109":"We do not support Binance Smart Chain tokens to deposit, please use only Ethereum ({{token}}).","1313167179":"Please log in","1313302450":"The bot will stop trading if your total loss exceeds this amount.","1314671947":"DMT5 Accounts","1316216284":"You can use this password for all your {{platform}} accounts.","1319217849":"Check your mobile","1320750775":"Front and back","1322804930":"Restart the process on the latest version of Google Chrome","1323327633":"Our complaints process comprises the following 4 steps:","1323476617":"Changes the capitalisation of a string of text to Upper case, Lower case, Title case.","1323996051":"Profile","1324110809":"Address information","1324922837":"2. The new variable will appear as a block under Set variable.","1327181172":"Financial Vanuatu","1327494533":"{{sell_value}} (Sell)","1329136554":"Jump 200 Index","1329325646":"The content of this block is called on every tick","1331199417":"Please enter the correct format. ","1331367811":"Client account number","1332168410":"Learn more","1332168769":"Disconnect","1333576137":"Please update your {{details}} to continue.","1333839457":"Submit identity card (front)","1334326985":"It may take a few minutes to arrive","1335967988":"Notice","1337846406":"This block gives you the selected candle value from a list of candles within the selected time interval.","1337864666":"Photo of your document","1338496204":"Ref. ID","1341840346":"View in Journal","1346204508":"Take profit","1346339408":"Managers","1347071802":"{{minutePast}}m ago","1348009461":"Please close your positions in the following Deriv X account(s):","1349133669":"Try changing your search criteria.","1349289354":"Great, that's everything we need","1349295677":"in text {{ input_text }} get substring from {{ position1 }} {{ index1 }} to {{ position2 }} {{ index2 }}","1351152200":"Welcome to Deriv MT5 (DMT5) dashboard","1351906264":"This feature is not available for payment agents.","1353197182":"Please select","1355250245":"{{ calculation }} of list {{ input_list }}","1356574493":"Returns a specific portion of a given string of text.","1356607862":"Deriv password","1357129681":"{{num_day}} days {{num_hour}} hours {{num_minute}} minutes","1357213116":"Identity card","1358543466":"Not available","1359424217":"You have sold this contract at <0 />","1360929368":"Add a Deriv account","1362578283":"High","1363060668":"Your trading statistics since:","1363675688":"Duration is a required field.","1364958515":"Stocks","1366244749":"Limits","1367023655":"To ensure your loss does not exceed your stake, your contract will be closed automatically when your loss equals to <0/>.","1367488817":"4. Restart trading conditions","1367990698":"Volatility 10 Index","1369709538":"Our terms of use","1371193412":"Cancel","1371555192":"Choose your preferred payment agent and enter your withdrawal amount. If your payment agent is not listed, <0>search for them using their account number.","1371641641":"Open the link on your mobile","1371911731":"Financial products in the EU are offered by {{legal_entity_name}}, licensed as a Category 3 Investment Services provider by the Malta Financial Services Authority (<0>Licence no. IS/70156).","1374627690":"Max. account balance","1376329801":"Last 60 days","1378419333":"Ether","1383017005":"You have switched accounts.","1384127719":"You should enter {{min}}-{{max}} numbers.","1384222389":"Please submit valid identity documents to unlock the cashier.","1385418910":"Please set a currency for your existing real account before creating another account.","1387503299":"Log in","1389197139":"Import error","1390792283":"Trade parameters","1391174838":"Potential payout:","1392966771":"Mrs","1392985917":"This is similar to a commonly used password","1393559748":"Invalid date/time: {{ datetime_string }}","1393901361":"There’s an app for that","1393903598":"if true {{ return_value }}","1396179592":"Commission","1396417530":"Bear Market Index","1397628594":"Insufficient funds","1399620764":"We're legally obliged to ask for your financial information.","1400637999":"(All fields are required)","1400732866":"View from camera","1400962248":"High-Close","1402208292":"Change text case","1403376207":"Update my details","1405584799":"with interval: {{ candle_interval_type }}","1408844944":"Click the plus icon to extend the functionality of this block.","1412535872":"You can check the result of the last trade with this block. It can only be placed within the \"Restart trading conditions\" root block.","1413047745":"Assigns a given value to a variable","1413359359":"Make a new transfer","1414205271":"prime","1415006332":"get sub-list from first","1415974522":"If you select \"Differs\", you will win the payout if the last digit of the last tick is not the same as your prediction.","1417558007":"Max. total loss over 7 days","1417914636":"Login ID","1418115525":"This block repeats instructions as long as a given condition is true.","1421749665":"Simple Moving Average (SMA)","1422060302":"This block replaces a specific item in a list with another given item. It can also insert the new item in the list at a specific position.","1422129582":"All details must be clear — nothing blurry","1423082412":"Last Digit","1424741507":"See more","1424779296":"If you've recently used bots but don't see them in this list, it may be because you:","1430396558":"5. Restart buy/sell on error","1430632931":"To get trading, please confirm who you are, and where you live.","1433367863":"Sorry, an error occured while processing your request.","1434382099":"Displays a dialog window with a message","1434976996":"Announcement","1435363248":"This block converts the number of seconds since the Unix Epoch to a date and time format such as 2019-08-01 00:00:00.","1435380105":"Minimum deposit","1437396005":"Add comment","1438247001":"A professional client receives a lower degree of client protection due to the following.","1438340491":"else","1439168633":"Stop loss:","1441208301":"Total<0 />profit/loss","1442747050":"Loss amount: <0>{{profit}}","1442840749":"Random integer","1443478428":"Selected proposal does not exist","1445592224":"You accidentally gave us another email address (Usually a work or a personal one instead of the one you meant).","1449462402":"In review","1452260922":"Too many failed attempts","1452941569":"This block delays execution for a given number of seconds. You can place any blocks within this block. The execution of other blocks in your strategy will be paused until the instructions in this block are carried out.","1453317405":"This block gives you the balance of your account either as a number or a string of text.","1453362009":"Deriv Accounts","1454648764":"deal reference id","1454865058":"Do not enter an address linked to an ICO purchase or crowdsale. If you do, the ICO tokens will not be credited into your account.","1455741083":"Upload the back of your driving licence.","1457341530":"Your proof of identity verification has failed","1457603571":"No notifications","1461323093":"Display messages in the developer’s console.","1464190305":"This block will transfer the control back to the Purchase conditions block, enabling you to purchase another contract without manually stopping and restarting your bot.","1464253511":"You already have an account for each of the cryptocurrencies available on {{deriv}}.","1465919899":"Pick an end date","1466430429":"Should be between {{min_value}} and {{max_value}}","1466900145":"Doe","1467017903":"This market is not yet available on {{platform_name_trader}}, but it is on {{platform_name_smarttrader}}.","1467421920":"with interval: %1","1467661678":"Cryptocurrency trading","1468308734":"This block repeats instructions as long as a given condition is true","1468419186":"Deriv currently supports withdrawals of Tether USDT to Omni wallet. To ensure a successful transaction, enter a wallet address compatible with the tokens you wish to withdraw. <0>Learn more","1468937050":"Trade on {{platform_name_trader}}","1469150826":"Take Profit","1469764234":"Cashier Error","1469814942":"- Division","1470319695":"Returns either True or False","1471070549":"Can contract be sold?","1471741480":"Severe error","1475513172":"Size","1476301886":"Similar to SMA, this block gives you the entire SMA line containing a list of all values for a given period.","1478030986":"Create or delete API tokens for trading and withdrawals","1481977420":"Please help us verify your withdrawal request.","1484336612":"This block is used to either terminate or continue a loop, and can be placed anywhere within a loop block.","1487086154":"Your documents were submitted successfully","1490583127":"DBot isn't quite ready for real accounts","1491392301":"<0>Sold for: {{sold_for}}","1492686447":"Your MT5 Financial STP account will be opened through Deriv (FX) Ltd. All trading in this account is subject to the regulations and guidelines of the Labuan Financial Service Authority (LFSA). None of your other accounts, including your Deriv account, is subject to the regulations and guidelines of the Labuan Financial Service Authority (LFSA).","1493673429":"Change email","1493866481":"Run Deriv X on your browser","1496810530":"GBP/AUD","1497773819":"Deriv MT5 accounts","1499074768":"Add a real Deriv Multipliers account","1499080621":"Tried to perform an invalid operation.","1501691227":"Add Your Deriv MT5 <0>{{account_type_name}} account under Deriv (V) Ltd, regulated by the Vanuatu Financial Services Commission.","1502039206":"Over {{barrier}}","1502325741":"Your password cannot be the same as your email address.","1503618738":"- Deal reference ID: the reference ID of the contract","1505420815":"No payment agents found for your search","1505898522":"Download stack","1509570124":"{{buy_value}} (Buy)","1509678193":"Education","1510075920":"Gold/USD","1510357015":"Tax residence is required.","1510735345":"This block gives you a list of the last digits of the last 1000 tick values.","1512469749":"In the above example it is assumed that variable candle_open_price is processed somewhere within other blocks.","1516537408":"You can no longer trade on Deriv or deposit funds into your account.","1516559721":"Please select one file only","1516676261":"Deposit","1517503814":"Drop file or click here to upload","1519124277":"Derived SVG","1519336051":"Try a different phone number","1520332426":"Net annual income","1524636363":"Authentication failed","1527251898":"Unsuccessful","1527906715":"This block adds the given number to the selected variable.","1529440614":"Use the <0>Deriv password to log in to {{brand_website_name}}, {{platform_name_go}}, {{platform_name_trader}}, {{platform_name_smarttrader}}, and {{platform_name_dbot}}.","1531017969":"Creates a single text string from combining the text value of each attached item, without spaces in between. The number of items can be added accordingly.","1533177906":"Fall","1534569275":"As part of the changes in our markets, we will be closing our UK clients’ accounts.","1534796105":"Gets variable value","1537711064":"You need to make a quick identity verification before you can access the Cashier. Please go to your account settings to submit your proof of identity.","1539108340":"EUR Index","1540585098":"Decline","1541969455":"Both","1544642951":"If you select \"Only Ups\", you win the payout if consecutive ticks rise successively after the entry spot. No payout if any tick falls or is equal to any of the previous ticks.","1548765374":"Verification of document number failed","1549098835":"Total withdrawn","1551172020":"AUD Basket","1552918367":"Send only {{currency}} ({{currency_symbol}}) to this address.","1557426040":"Demo Derived SVG","1557682012":"Account Settings","1558972889":"set {{ variable }} to Simple Moving Average {{ dummy }}","1560302445":"Copied","1562374116":"Students","1564392937":"When you set your limits or self-exclusion, they will be aggregated across all your account types in {{platform_name_trader}} and {{platform_name_dbot}}. For example, the losses made on both platforms will add up and be counted towards the loss limit you set.","1566037033":"Bought: {{longcode}} (ID: {{transaction_id}})","1567076540":"Only use an address for which you have proof of residence - ","1567586204":"Self-exclusion","1569624004":"Dismiss alert","1570484627":"Ticks list","1572504270":"Rounding operation","1572982976":"Server","1575556189":"Tether on the Ethereum blockchain, as an ERC20 token, is a newer transport layer, which now makes Tether available in Ethereum smart contracts. As a standard ERC20 token, it can also be sent to any Ethereum address.","1577480486":"Your mobile link will expire in one hour","1577527507":"Account opening reason is required.","1577612026":"Select a folder","1579484521":"Trading hub","1580498808":"Multiple faces found","1584109614":"Ticks String List","1584578483":"50+ assets: forex, stocks, stock indices, synthetics indices, and cryptocurrencies.","1584936297":"XML file contains unsupported elements. Please check or modify file.","1587046102":"Documents from that country are not currently supported — try another document type","1589640950":"Resale of this contract is not offered.","1589702653":"Proof of address","1594147169":"Please come back in","1594322503":"Sell is available","1596378630":"You have added a real Gaming account.<0/>Make a deposit now to start trading.","1598009247":"<0>a.You may file a complaint with the Financial Commission up to 45 days after the incident.","1598386296":"Town/City is required.","1598443642":"Transaction hash","1602894348":"Create a password","1604171868":"Please withdraw all your funds as soon as possible.","1604916224":"Absolute","1605292429":"Max. total loss","1612105450":"Get substring","1613273139":"Resubmit proof of identity and address","1613633732":"Interval should be between 10-60 minutes","1615897837":"Signal EMA Period {{ input_number }}","1618809782":"Maximum withdrawal","1619070150":"You are being redirected to an external website.","1620278321":"Names and surnames by themselves are easy to guess","1620346110":"Set currency","1621024661":"Tether as a TRC20 token (tUSDT) is a version of Tether that is hosted on Tron.","1622662457":"Date from","1623706874":"Use this block when you want to use multipliers as your trade type.","1630372516":"Try our Fiat onramp","1630417358":"Please go to your account settings and complete your personal details to enable withdrawals.","1631281562":"GBP Basket","1634594289":"Select language","1634903642":"Only your face can be in the selfie","1634969163":"Change currency","1635266650":"It seems that your name in the document is not the same as your Deriv profile. Please update your name in the <0>Personal details page to solve this issue.","1636605481":"Platform settings","1636782601":"Multipliers","1638321777":"Your demo account balance is low. Reset your balance to continue trading from your demo account.","1639262461":"Pending withdrawal request:","1639304182":"Please click on the link in the email to reset your password.","1641395634":"Last digits list","1641635657":"New proof of identity document needed","1641980662":"Salutation is required.","1644908559":"Digit code is required.","1647186767":"The bot encountered an error while running.","1651513020":"Display remaining time for each interval","1651951220":"Repeats like \"abcabcabc\" are only slightly harder to guess than \"abc\"","1652366857":"get and remove","1652968048":"Define your trade options such as multiplier and stake.","1652976865":"In this example, this block is used with another block to get the open prices from a list of candles. The open prices are then assigned to the variable called \"cl\".","1653136377":"copied!","1653180917":"We cannot verify you without using your camera","1654365787":"Unknown","1654496508":"Our system will finish any DBot trades that are running, and DBot will not place any new trades.","1654721858":"Upload anyway","1655627840":"UPPER CASE","1656155124":"Resend in <0 /> seconds","1658954996":"Plant and Machine Operators and Assemblers","1659074761":"Reset Put","1665272539":"Remember: You cannot log in to your account until the selected date.","1665738338":"Balance","1665756261":"Go to live chat","1667395210":"Your proof of identity was submitted successfully","1668138872":"Modify account settings","1670016002":"Multiplier: {{ multiplier }}","1670426231":"End Time","1671232191":"You have set the following limits:","1675030608":"To create this account first we need you to resubmit your proof of address.","1677027187":"Forex","1677990284":"My apps","1682409128":"Untitled Strategy","1682636566":"Resend email in","1683963454":"Your contract will be closed automatically at the next available asset price on {{date}} at {{timestamp}}.","1684148009":"Total assets in your Deriv and {{platform_name_mt5}} real accounts.","1684419981":"What's this?","1686800117":"{{error_msg}}","1689103988":"Second Since Epoch","1689258195":"We were unable to verify your address with the details you provided. Please check and resubmit or choose a different document type.","1689738742":"Gold Index","1691335819":"To continue trading with us, please confirm who you are.","1691765860":"- Negation","1693614409":"Start time","1694331708":"You can switch between CFDs, digital options, and multipliers at any time.","1694517345":"Enter a new email address","1695807119":"Could not load Google Drive blocks","1700233813":"Transfer from {{selected_value}} is not allowed, Please choose another account from dropdown","1708413635":"For your {{currency_name}} ({{currency}}) account","1709859601":"Exit Spot Time","1710662619":"If you have the app, launch it to start trading.","1711013665":"Anticipated account turnover","1711676335":"square root","1711929663":"Your funds have been transferred","1712357617":"Invalid email address.","1715011380":"Jump 25 Index","1715630945":"Returns the total profit in string format","1719248689":"EUR/GBP/USD","1720451994":"We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv fiat and Deriv cryptocurrency accounts.","1720968545":"Upload passport photo page from your computer","1722401148":"The amount that you may add to your stake after each successful trade.","1723398114":"A recent utility bill (e.g. electricity, water, gas, phone or internet)","1723589564":"Represents the maximum number of outstanding contracts in your portfolio. Each line in your portfolio counts for one open position. Once the maximum is reached, you will not be able to open new positions without closing an existing position first.","1724696797":"You are limited to one fiat account only.","1726472773":"Function with no return value","1726565314":"Close my account","1727681395":"Total assets in your Deriv and {{platform_name_mt5}} demo accounts.","1728121741":"Transactions.csv","1728183781":"About Tether","1729145421":"Risk warning","1731747596":"The block(s) highlighted in red are missing input values. Please update them and click \"Run bot\".","1732891201":"Sell price","1734185104":"Balance: %1","1734264460":"Disclaimer","1736292549":"Update postal code","1737352280":"Bot.init is not called","1738681493":"Remove your glasses, if necessary","1739384082":"Unemployed","1739668049":"Close your account","1740371444":"Underlying market is not selected","1740843997":"Buy cryptocurrencies in an instant. Enjoy easy, quick, and secure exchanges using your local payment methods.","1742256256":"Please upload one of the following documents:","1743448290":"Payment agents","1743902050":"Complete your financial assessment","1745523557":"- Square root","1746051371":"Download the app","1746273643":"Moving Average Convergence Divergence","1747501260":"Sell conditions","1747523625":"Go back","1747674345":"Please use `.` as a decimal separator for fractional numbers.","1747682136":"Contract was cancelled.","1748754976":"Run","1749675724":"Deriv charges no commission across all account types.","1750065391":"Login time:","1753226544":"remove","1753975551":"Upload passport photo page","1756678453":"break out","1758386013":"Do not get lured to fake \"Deriv\" pages!","1761038852":"Let’s continue with providing proofs of address and identity.","1761762171":"Restart last trade on error (bot ignores the unsuccessful trade): {{ checkbox }}","1762707297":"Phone number","1763123662":"Upload your NIMC slip.","1766212789":"Server maintenance starts at 06:00 GMT every Sunday and may last up to 2 hours. You may experience service disruption during this time.","1766993323":"Only letters, numbers, and underscores are allowed.","1767429330":"Add a Derived account","1768861315":"Minute","1768918213":"Only letters, space, hyphen, period, and apostrophe are allowed.","1769068935":"Choose any of these exchanges to buy cryptocurrencies:","1771037549":"Add a Deriv real account","1771592738":"Conditional block","1772532756":"Create and edit","1777847421":"This is a very common password","1778893716":"Click here","1779519903":"Should be a valid number.","1780770384":"This block gives you a random fraction between 0.0 to 1.0.","1782308283":"Quick strategy","1782395995":"Last Digit Prediction","1782690282":"Blocks menu","1782703044":"Sign up","1783740125":"Upload your selfie","1787135187":"Postal/ZIP code is required","1787492950":"Indicators on the chart tab are for indicative purposes only and may vary slightly from the ones on the {{platform_name_dbot}} workspace.","1788966083":"01-07-1999","1789497185":"Make sure your passport details are clear to read, with no blur or glare","1790770969":"FX-majors (standard/micro lots), FX-minors, Commodities, Cryptocurrencies","1791432284":"Search for country","1791971912":"Recent","1793913365":"To deposit money, please switch to your {{currency_symbol}} account.","1794815502":"Download your transaction history.","1801093206":"Get candle list","1801927731":"{{platform_name_dxtrade}} accounts","1803338729":"Choose what type of contract you want to trade. For example, for the Rise/Fall trade type you can choose one of three options: Rise, Fall, or Both. Selected option will determine available options for the Purchase block.","1804620701":"Expiration","1804789128":"{{display_value}} Ticks","1806355993":"No commission","1806503050":"Please note that some payment methods might not be available in your country.","1808058682":"Blocks are loaded successfully","1808393236":"Login","1808867555":"This block uses the variable “i” to control the iterations. With each iteration, the value of “i” is determined by the items in a given list.","1810217569":"Please refresh this page to continue.","1811109068":"Jurisdiction","1811972349":"Market","1811973475":"Returns a specific character from a given string","1812582011":"Connecting to server","1813700208":"Boom 300 Index","1813958354":"Remove comment","1815034361":"alphabetic","1815995250":"Buying contract","1816126006":"Trade on Deriv MT5 ({{platform_name_dmt5}}), the all-in-one FX and CFD trading platform.","1817154864":"This block gives you a random number from within a set range.","1820242322":"e.g. United States","1820332333":"Top up","1823177196":"Most popular","1824193700":"This block gives you the last digit of the latest tick value.","1827607208":"File not uploaded.","1830520348":"{{platform_name_dxtrade}} Password","1833481689":"Unlock","1833499833":"Proof of identity documents upload failed","1836767074":"Search payment agent name","1837762008":"Please submit your proof of identity and proof of address to verify your account in your account settings to access the cashier.","1838639373":"Resources","1839021527":"Please enter a valid account number. Example: CR123456789","1840865068":"set {{ variable }} to Simple Moving Average Array {{ dummy }}","1841788070":"Palladium/USD","1841996888":"Daily loss limit","1842266423":"back","1842862156":"Welcome to your Deriv X dashboard","1843658716":"If you select \"Only Downs\", you win the payout if consecutive ticks fall successively after the entry spot. No payout if any tick rises or is equal to any of the previous ticks.","1845892898":"(min: {{min_stake}} - max: {{max_payout}})","1846266243":"This feature is not available for demo accounts.","1846587187":"You have not selected your country of residence","1846664364":"{{platform_name_dxtrade}}","1849484058":"Any unsaved changes will be lost.","1850031313":"- Low: the lowest price","1850132581":"Country not found","1850659345":"- Payout: the payout of the contract","1850663784":"Submit proofs","1851052337":"Place of birth is required.","1851776924":"upper","1851951013":"Please switch to your demo account to run your DBot.","1854480511":"Cashier is locked","1854874899":"Back to list","1855566768":"List item position","1856485118":"Please <0>resubmit your proof of address to transfer funds between MT5 and Deriv accounts.","1858251701":"minute","1859308030":"Give feedback","1863053247":"Please upload your identity document.","1863731653":"To receive your funds, contact the payment agent","1866811212":"Deposit in your local currency via an authorised, independent payment agent in your country.","1866836018":"<0/><1/>If your complaint relates to our data processing practices, you can submit a formal complaint to your local supervisory authority.","1867217564":"Index must be a positive integer","1867783237":"High-to-Close","1869315006":"See how we protect your funds to unlock the cashier.","1869787212":"Even","1869851061":"Passwords","1870933427":"Crypto","1871196637":"True if the result of the last trade matches the selection","1871664426":"Note","1871804604":"Regulated by the British Virgin Islands Financial Services Commission (License no. SIBA/L/18/1114)","1873838570":"Please verify your address","1874481756":"Use this block to purchase the specific contract you want. You may add multiple Purchase blocks together with conditional blocks to define your purchase conditions. This block can only be used within the Purchase conditions block.","1874756442":"BVI","1876325183":"Minutes","1877225775":"Your proof of address is verified","1877410120":"What you need to do now","1877832150":"# from end","1879042430":"Appropriateness Test, WARNING:","1879412976":"Profit amount: <0>{{profit}}","1880029566":"Australian Dollar","1880097605":"prompt for {{ string_or_number }} with message {{ input_text }}","1880875522":"Create \"get %1\"","1881018702":"hour","1881587673":"Total stake since you last cleared your stats.","1882825238":"Restart trading conditions","1883531976":"Clerks","1885708031":"#","1887852176":"Site is being updated","1889357660":"Enter a value in minutes, up to 60480 minutes (equivalent to 6 weeks).","1890171328":"By clicking Accept below and proceeding with the Account Opening you should note that you may be exposing yourself to risks (which may be significant, including the risk of loss of the entire sum invested) that you may not have the knowledge and experience to properly assess or mitigate.","1890332321":"Returns the number of characters of a given string of text, including numbers, spaces, punctuation marks, and symbols.","1894667135":"Please verify your proof of address","1898670234":"{{formatted_opening_time}} (GMT) on {{opening_day}},<0> {{opening_date}}.","1902547203":"MetaTrader 5 MacOS app","1903437648":"Blurry photo detected","1905032541":"We're now ready to verify your identity","1905589481":"If you want to change your account currency, please contact us via <0>live chat.","1906639368":"If this is the first time you try to create a password, or you have forgotten your password, please reset it.","1907884620":"Add a real Deriv Gaming account","1908239019":"Make sure all of the document is in the photo","1909647105":"TRX/USD","1909769048":"median","1913777654":"Switch account","1914014145":"Today","1914270645":"Default Candle Interval: {{ candle_interval_type }}","1914725623":"Upload the page that contains your photo.","1917523456":"This block sends a message to a Telegram channel. You will need to create your own Telegram bot to use this block.","1917804780":"You will lose access to your Options account when it gets closed, so be sure to withdraw all your funds. (If you have a CFDs account, you can also transfer the funds from your Options account to your CFDs account.)","1918633767":"Second line of address is not in a proper format.","1918796823":"Please enter a stop loss amount.","1919030163":"Tips to take a good selfie","1919594496":"{{website_name}} is not affiliated with any payment agents. Customers deal with payment agents at their sole risk. Customers are advised to check the credentials of payment agents and the accuracy of any information about payment agents (on {{website_name}} or elsewhere) before using their services.","1920217537":"Compare","1920468180":"How to use the SMA block","1921634159":"A few personal details","1921914669":"Deposit with Deriv P2P","1922529883":"Boom 1000 Index","1922955556":"Use a longer keyboard pattern with more turns","1923431535":"“Stop loss” is deactivated and will only be available when “Deal cancellation” expires.","1924365090":"Maybe later","1924765698":"Place of birth*","1925090823":"Sorry, trading is unavailable in {{clients_country}}.","1927244779":"Use only the following special characters: . , ' : ; ( ) @ # / -","1928930389":"GBP/NOK","1929309951":"Employment Status","1929694162":"Compare accounts","1930899934":"Tether","1931659123":"Run on every tick","1931884033":"It seems that your date of birth in the document is not the same as your Deriv profile. Please update your date of birth in the <0>Personal details page to solve this issue.","1939902659":"Signal","1940408545":"Delete this token","1941915555":"Try later","1942091675":"Cryptocurrency trading is not available for clients residing in the United Kingdom.","1943440862":"Calculates Bollinger Bands (BB) list from a list with a period","1944204227":"This block returns current account balance.","1947527527":"1. This link was sent by you","1948092185":"GBP/CAD","1949719666":"Here are the possible reasons:","1950413928":"Submit identity documents","1952580688":"Submit passport photo page","1955219734":"Town/City*","1957759876":"Upload identity document","1958807602":"4. 'Table' takes an array of data, such as a list of candles, and displays it in a table format.","1959678342":"Highs & Lows","1960240336":"first letter","1964097111":"USD","1964165648":"Connection lost","1965916759":"Asian options settle by comparing the last tick with the average spot over the period.","1966023998":"2FA enabled","1966281100":"Console {{ message_type }} value: {{ input_message }}","1968025770":"Bitcoin Cash","1968077724":"Agriculture","1968368585":"Employment status","1971898712":"Add or manage account","1973536221":"You have no open positions yet.","1973564194":"You are limited to one fiat account. You won’t be able to change your account currency if you have already made your first deposit or created a real {{dmt5_label}} or {{platform_name_dxtrade}} account.","1974273865":"This scope will allow third-party apps to view your account activity, settings, limits, balance sheets, trade purchase history, and more.","1981940238":"This complaints policy, which may change from time to time, applies to your account(s) registered with {{legal_entity_name_svg}} and {{legal_entity_name_v}}.","1982912252":"Relative Strength Index (RSI) from a list with a period","1983001416":"Define your trade options such as multiplier and stake. This block can only be used with the multipliers trade type. If you select another trade type, this block will be replaced with the Trade options block.","1983387308":"Preview","1983544897":"P.O. Box is not accepted in address","1983676099":"Please check your email for details.","1984700244":"Request an input","1984742793":"Uploading documents","1985366224":"Each day, you can make up to {{ allowed_internal }} transfers between your Deriv accounts and up to {{ allowed_mt5 }} transfers between your Deriv and {{platform_name_mt5}} accounts.","1985637974":"Any blocks placed within this block will be executed at every tick. If the default candle interval is set to 1 minute in the Trade Parameters root block, the instructions in this block will be executed once every minute. Place this block outside of any root block.","1986498784":"BTC/LTC","1987080350":"Demo","1987447369":"Your cashier is locked","1988153223":"Email address","1988302483":"Take profit:","1988601220":"Duration value","1990735316":"Rise Equals","1991448657":"Don't know your tax identification number? Click <0>here to learn more.","1991524207":"Jump 100 Index","1994023526":"The email address you entered had a mistake or typo (happens to the best of us).","1994558521":"The platforms aren’t user-friendly.","1994600896":"This block requires a list of candles as an input parameter.","1995023783":"First line of address*","1996767628":"Please confirm your tax information.","1997138507":"If the last tick is equal to the average of the ticks, you don't win the payout.","1998199587":"You can also exclude yourself entirely for a specified duration. If, at any time, you decide to trade again, you must then contact our Customer Support to remove this self-exclusion. There will be a 24-hour-cooling-off period before you can resume trading. ","2001222130":"Check your spam or junk folder. If it's not there, try resending the email.","2004792696":"If you are a UK resident, to self-exclude from all online gambling companies licensed in Great Britain, go to <0>www.gamstop.co.uk.","2007028410":"market, trade type, contract type","2007092908":"Trade with leverage and low spreads for better returns on successful trades.","2008809853":"Please proceed to withdraw your funds before 30 November 2021.","2009620100":"DBot will not proceed with any new trades. Any ongoing trades will be completed by our system. Any unsaved changes will be lost.<0>Note: Please check your statement to view completed transactions.","2009770416":"Address:","2010759971":"Uploads successful","2010866561":"Returns the total profit/loss","2011609940":"Please input number greater than 0","2011808755":"Purchase Time","2014590669":"Variable '{{variable_name}}' has no value. Please set a value for variable '{{variable_name}}' to notify.","2017672013":"Please select the country of document issuance.","2020545256":"Close your account?","2021037737":"Please update your details to continue.","2023659183":"Student","2023762268":"I prefer another trading website.","2025339348":"Move away from direct light — no glare","2027625329":"Simple Moving Average Array (SMAA)","2027696535":"Tax information","2028163119":"EOS/USD","2029237955":"Labuan","2030018735":"RSI is a technical analysis tool that helps you identify the market trend. It will give you a value from 0 to 100. An RSI value of 70 and above means that the asset is overbought and the current trend may reverse, while a value of 30 and below means that the asset is oversold.","2030045667":"Message","2033648953":"This block gives you the specified candle value for a selected time interval.","2034803607":"You must be 18 years old and above.","2035258293":"Start trading with us","2035925727":"sort {{ sort_type }} {{ sort_direction }} {{ input_list }}","2036578466":"Should be {{value}}","2037481040":"Choose a way to fund your account","2037665157":"Expand All Blocks","2037906477":"get sub-list from #","2042050260":"- Purchase price: the purchase price (stake) of the contract","2042778835":"This complaints policy, which may change from time to time, applies to your account registered with {{legal_entity_name}}.","2044086432":"The close is the latest tick at or before the end time. If you selected a specific end time, the end time is the selected time.","2046273837":"Last tick","2048110615":"Email address*","2048134463":"File size exceeded.","2050080992":"Tron","2050170533":"Tick list","2051558666":"View transaction history","2053617863":"Please proceed to withdraw all your funds from your account.","2054889300":"Create \"%1\"","2055317803":"Copy the link to your mobile browser","2057082550":"Accept our updated <0>terms and conditions","2057419639":"Exit Spot","2060873863":"Your order {{order_id}} is complete","2062912059":"function {{ function_name }} {{ function_params }}","2063655921":"By purchasing the \"Close-to-Low\" contract, you'll win the multiplier times the difference between the close and low over the duration of the contract.","2063812316":"Text Statement","2063890788":"Cancelled","2065278286":"Spread","2067903936":"Driving licence","2070002739":"Don’t accept","2070752475":"Regulatory Information","2074235904":"Last name is required.","2074497711":"The Telegram notification could not be sent","2080553498":"3. Get the chat ID using the Telegram REST API (read more: https://core.telegram.org/bots/api#getupdates)","2080829530":"Sold for: {{sold_for}}","2082533832":"Yes, delete","2084693624":"Converts a string representing a date/time string into seconds since Epoch. Example: 2019-01-01 21:03:45 GMT+0800 will be converted to 1546347825. Time and time zone offset are optional.","2084925123":"Use our fiat onramp services to buy and deposit cryptocurrency into your Deriv account.","2085387371":"Must be numbers, letters, and special characters . , ' -","2085602195":"- Entry value: the value of the first tick of the contract","2086742952":"You have added a real Options account.<0/>Make a deposit now to start trading.","2086792088":"Both barriers should be relative or absolute","2088735355":"Your session and login limits","2089087110":"Basket indices","2089299875":"Total assets in your Deriv real accounts.","2089581483":"Expires on","2091671594":"Status","2093167705":"You can only make deposits. Please contact us via live chat for more information.","2093675079":"- Close: the closing price","2096014107":"Apply","2096456845":"Date of birth*","2097170986":"About Tether (Omni)","2097381850":"Calculates Simple Moving Average line from a list with a period","2100713124":"account","2101972779":"This is the same as the above example, using a tick list.","2102572780":"Length of digit code must be 6 characters.","2104115663":"Last login","2104397115":"Please go to your account settings and complete your personal details to enable deposits and withdrawals.","2107381257":"Scheduled cashier system maintenance","2109312805":"The spread is the difference between the buy price and sell price. A variable spread means that the spread is constantly changing, depending on market conditions. A fixed spread remains constant but is subject to alteration, at the Broker's absolute discretion.","2110365168":"Maximum number of trades reached","2111015970":"This block helps you check if your contract can be sold. If your contract can be sold, it returns “True”. Otherwise, it returns an empty string.","2111528352":"Creating a variable","2112119013":"Take a selfie showing your face","2112175277":"with delimiter","2113321581":"Add a Deriv Gaming account","2115007481":"Total assets in your Deriv demo accounts.","2115223095":"Loss","2117073379":"Our cryptocurrency cashier is temporarily down due to system maintenance. You can access the Cashier in a few minutes when the maintenance is complete.","2117165122":"1. Create a Telegram bot and get your Telegram API token. Read more on how to create bots in Telegram here: https://core.telegram.org/bots#6-botfather","2117489390":"Auto update in {{ remaining }} seconds","2118315870":"Where do you live?","2119449126":"Example output of the below example will be:","2120617758":"Set up your trade","2121227568":"NEO/USD","2127564856":"Withdrawals are locked","2131963005":"Please withdraw your funds from the following Deriv MT5 account(s):","2133451414":"Duration","2133470627":"This block returns the potential payout for the selected trade type. This block can be used only in the \"Purchase conditions\" root block.","2135563258":"Forex trading frequency","2136246996":"Selfie uploaded","2137901996":"This will clear all data in the summary, transactions, and journal panels. All counters will be reset to zero.","2137993569":"This block compares two values and is used to build a conditional structure.","2138861911":"Scans and photocopies are not accepted","2139171480":"Reset Up/Reset Down","2139362660":"left side","2141055709":"New {{type}} password","2141873796":"Get more info on <0>CFDs, <1>multipliers, and <2>options.","2143803283":"Purchase Error","2144609616":"If you select \"Reset-Down”, you win the payout if the exit spot is strictly lower than either the entry spot or the spot at reset time.","2145690912":"Income Earning","2145995536":"Create new account","2146336100":"in text %1 get %2","2146892766":"Binary options trading experience","-153346659":"Upload your selfie.","-602131304":"Passport number","-1051213440":"Upload the front and back of your identity card.","-1600807543":"First, enter your identity card number and the expiry date.","-1139923664":"Next, upload the front and back of your identity card.","-783705755":"Upload the front of your identity card.","-566750665":"NIMC slip and proof of age","-1465944279":"NIMC slip number","-429612996":"Next, upload both of the following documents.","-376981174":"Upload your proof of age: birth certificate or age declaration document.","-612174191":"First line of address is required","-242734402":"Only {{max}} characters, please.","-378415317":"State is required","-1784470716":"State is not in a proper format","-1699820408":"Please enter a {{field_name}} under {{max_number}} characters.","-1575567374":"postal/ZIP code","-1497654315":"Our accounts and services are unavailable for the Jersey postal code.","-755626951":"Complete your address details","-1024240099":"Address","-584911871":"Select wallet currency","-1461267236":"Please choose your currency","-1352330125":"CURRENCY","-1027595143":"Less than $25,000","-40491332":"$25,000 - $50,000","-1139806939":"$50,001 - $100,000","-626752657":"0-1 year","-532014689":"1-2 years","-1001024004":"Over 3 years","-790513277":"6-10 transactions in the past 12 months","-580085300":"11-39 transactions in the past 12 months","-654781670":"Primary","-1717373258":"Secondary","-996132458":"Construction","-915003867":"Health","-1430012453":"Information & Communications Technology","-987824916":"Science & Engineering","-146630682":"Social & Cultural","-761306973":"Manufacturing","-739367071":"Employed","-1156937070":"$500,001 - $1,000,000","-315534569":"Over $1,000,000","-2068544539":"Salaried Employee","-531314998":"Investments & Dividends","-1235114522":"Pension","-1298056749":"State Benefits","-449943381":"Savings & Inheritance","-1631552645":"Professionals","-474864470":"Personal Care, Sales and Service Workers","-1129355784":"Agricultural, Forestry and Fishery Workers","-1242914994":"Craft, Metal, Electrical and Electronics Workers","-1317824715":"Cleaners and Helpers","-1592729751":"Mining, Construction, Manufacturing and Transport Workers","-2137323480":"Company Ownership","-1590574533":"Divorce Settlement","-1667683002":"Inheritance","-1237843731":"Investment Income","-777506574":"Sale of Property","-1161338910":"First name is required.","-1161818065":"Last name should be between 2 and 50 characters.","-1281693513":"Date of birth is required.","-26599672":"Citizenship is required","-912174487":"Phone is required.","-673765468":"Letters, numbers, spaces, periods, hyphens and forward slashes only.","-1356204661":"This Tax Identification Number (TIN) is invalid. You may continue with account creation, but to facilitate future payment processes, valid tax information will be required.","-1823540512":"Personal details","-1227878799":"Speculative","-1174064217":"Mr","-855506127":"Ms","-621555159":"Identity information","-204765990":"Terms of use","-931052769":"Submit verification","-1004605898":"Tips","-1938142055":"Documents uploaded","-448090287":"The link only works on mobile devices","-1244287721":"Something's gone wrong","-241258681":"You'll need to restart your verification on your computer","-929254273":"Get secure link","-2021867851":"Check back here to finish the submission","-1547069149":"Open the link and complete the tasks","-1767652006":"Here's how to do it:","-277611959":"You can now return to your computer to continue","-724178625":"Make sure full document is visible","-1519380038":"Glare detected","-1895280620":"Make sure your card details are clear to read, with no blur or glare","-1464447919":"Make sure your permit details are clear to read, with no blur or glare","-1436160506":"Make sure details are clear to read, with no blur or glare","-759124288":"Close","-759118956":"Redo","-753375398":"Enlarge image","-1042933881":"Driver's license","-1503134764":"Face photo page","-1335343167":"Sorry, no mobile phone bills","-699045522":"Documents you can use to verify your identity","-543666102":"It must be an official photo ID","-903877217":"These are the documents most likely to show your current home address","-1356835948":"Choose document","-1364375936":"Select a %{country} document","-401586196":"or upload photo – no scans or photocopies","-3110517":"Take a photo with your phone","-2033894027":"Submit identity card (back)","-20684738":"Submit license (back)","-1359585500":"Submit license (front)","-106779602":"Submit residence permit (back)","-1287247476":"Submit residence permit (front)","-1954762444":"Restart the process on the latest version of Safari","-261174676":"Must be under 10MB.","-685885589":"An error occurred while loading the component","-502539866":"Your face is needed in the selfie","-1377968356":"Please try again","-1226547734":"Try using a JPG or PNG file","-849068301":"Loading...","-1730346712":"Loading","-1849371752":"Check that your number is correct","-309848900":"Copy","-1424436001":"Send link","-1093833557":"How to scan a QR code","-1408210605":"Point your phone’s camera at the QR code","-1773802163":"If it doesn’t work, download a QR code scanner from Google Play or the App Store","-109026565":"Scan QR code","-1644436882":"Get link via SMS","-1667839246":"Enter mobile number","-1533172567":"Enter your mobile number:","-1352094380":"Send this one-time link to your phone","-28974899":"Get your secure link","-359315319":"Continue","-1279080293":"2. Your desktop window stays open","-102776692":"Continue with the verification","-89152891":"Take a photo of the back of your card","-1646367396":"Take a photo of the front of your card","-1350855047":"Take a photo of the front of your license","-2119367889":"Take a photo using the basic camera mode instead","-342915396":"Take a photo","-419040068":"Passport photo page","-1354983065":"Refresh","-1925063334":"Recover camera access to continue face verification","-54784207":"Camera access is denied","-1392699864":"Allow camera access","-269477401":"Provide the whole document page for best results","-864639753":"Upload back of card from your computer","-1309771027":"Upload front of license from your computer","-1722060225":"Take photo","-565732905":"Selfie","-1703181240":"Check that it is connected and functional. You can also continue verification on your phone","-2043114239":"Camera not working?","-2029238500":"It may be disconnected. Try using your phone instead.","-468928206":"Make sure your device's camera works","-466246199":"Camera not working","-698978129":"Remember to press stop when you're done. Redo video actions","-538456609":"Looks like you took too long","-781816433":"Photo of your face","-1471336265":"Make sure your selfie clearly shows your face","-1375068556":"Check selfie","-1914530170":"Face forward and make sure your eyes are clearly visible","-776541617":"We'll compare it with your document","-478752991":"Your link will expire in one hour","-1859729380":"Keep this window open while using your mobile","-1283761937":"Resend link","-629011256":"Don't refresh this page","-1005231905":"Once you've finished we'll take you to the next step","-542134805":"Upload photo","-1462975230":"Document example","-1472844935":"The photo should clearly show your document","-189310067":"Account closed","-773766766":"Email and passwords","-1466827732":"Self exclusion","-1498206510":"Account limits","-241588481":"Login history","-966136867":"Connected apps","-213009361":"Two-factor authentication","-1214803297":"Dashboard-only path","-526636259":"Error 404","-1030759620":"Government Officers","-612752984":"These are default limits that we apply to your accounts.","-1598263601":"To learn more about trading limits and how they apply, please go to the <0>Help Centre.","-1411635770":"Learn more about account limits","-1340125291":"Done","-1786659798":"Trading limits - Item","-1101543580":"Limit","-858297154":"Represents the maximum amount of cash that you may hold in your account. If the maximum is reached, you will be asked to withdraw funds.","-1182362640":"Represents the maximum aggregate payouts on outstanding contracts in your portfolio. If the maximum is attained, you may not purchase additional contracts without first closing out existing positions.","-1781293089":"Maximum aggregate payouts on open positions","-1412690135":"*Any limits in your Self-exclusion settings will override these default limits.","-1598751496":"Represents the maximum volume of contracts that you may purchase in any given trading day.","-1359847094":"Trading limits - Maximum daily turnover","-1502578110":"Your account is fully authenticated and your withdrawal limits have been lifted.","-854023608":"To increase limit please verify your identity","-1500958859":"Verify","-1662154767":"a recent utility bill (e.g. electricity, water, gas, landline, or internet), bank statement, or government-issued letter with your name and this address.","-190838815":"We need this for verification. If the information you provide is fake or inaccurate, you won’t be able to deposit and withdraw.","-223216785":"Second line of address*","-594456225":"Second line of address","-1315410953":"State/Province","-1940457555":"Postal/ZIP Code*","-1964954030":"Postal/ZIP Code","-1541554430":"Next","-71696502":"Previous","-516397235":"Be careful who you share this token with. Anyone with this token can perform the following actions on your account behalf","-989216986":"Add accounts","-684271315":"OK","-617480265":"Delete token","-316749685":"Are you sure you want to delete this token?","-786372363":"Learn more about API token","-55560916":"To access our mobile apps and other third-party apps, you'll first need to generate an API token.","-198329198":"API Token","-955038366":"Copy this token","-1668692965":"Hide this token","-1661284324":"Show this token","-605778668":"Never","-32386760":"Name","-1628008897":"Token","-1238499897":"Last Used","-1171226355":"Length of token name must be between {{MIN_TOKEN}} and {{MAX_TOKEN}} characters.","-1803339710":"Maximum {{MAX_TOKEN}} characters.","-408613988":"Select scopes based on the access you need.","-1076138910":"Trade","-1666909852":"Payments","-5605257":"This scope will allow third-party apps to withdraw to payment agents and make inter-account transfers for you.","-488597603":"Trading information","-1373485333":"This scope will allow third-party apps to view your trading history.","-758221415":"This scope will allow third-party apps to open accounts for you, manage your settings and token usage, and more. ","-1117963487":"Name your token and click on 'Create' to generate your token.","-2005211699":"Create","-2115275974":"CFDs","-988523882":"DMT5","-460645791":"You are limited to one fiat account. You won’t be able to change your account currency if you have already made your first deposit or created a real {{dmt5_label}} account.","-1146960797":"Fiat currencies","-1959484303":"Cryptocurrencies","-561724665":"You are limited to one fiat currency only","-2087317410":"Oops, something went wrong.","-1437206131":"JPEG JPG PNG PDF GIF","-820458471":"1 - 6 months old","-155705811":"A clear colour photo or scanned image","-587941902":"Issued under your name with your current address","-438669274":"JPEG JPG PNG PDF GIF","-723198394":"File size should be 8MB or less","-1948369500":"File uploaded is not supported","-1040865880":"Drop files here..","-1100235269":"Industry of employment","-684388823":"Estimated net worth","-509054266":"Anticipated annual turnover","-601903492":"Forex trading experience","-1012699451":"CFD trading experience","-1437017790":"Financial information","-39038029":"Trading experience","-1044962593":"Upload Document","-164448351":"Show less","-1361653502":"Show more","-337620257":"Switch to real account","-2120454054":"Add a real account","-38915613":"Unsaved changes","-2137450250":"You have unsaved changes. Are you sure you want to discard changes and leave this page?","-1067082004":"Leave Settings","-1416797980":"Please enter your {{ field_name }} as in your official identity documents.","-1466268810":"Please remember that it is your responsibility to keep your answers accurate and up to date. You can update your personal details at any time in your <0>account settings.","-1120954663":"First name*","-1659980292":"First name","-1857534296":"John","-1485480657":"Other details","-1315571766":"Place of birth","-2040322967":"Citizenship","-1692219415":"Tax residence","-1903720068":"The country in which you meet the criteria for paying taxes. Usually the country in which you physically reside.","-651516152":"Tax Identification Number","-1543016582":"I hereby confirm that the tax information I provided is true and complete. I will also inform {{legal_entity_name}} about any changes to this information.","-1387062433":"Account opening reason","-1451334536":"Continue trading","-1525879032":"Your documents for proof of address is expired. Please submit again.","-1425489838":"Proof of address verification not required","-1008641170":"Your account does not need address verification at this time. We will inform you if address verification is required in the future.","-60204971":"We could not verify your proof of address","-1944264183":"To continue trading, you must also submit a proof of identity.","-1088324715":"We’ll review your documents and notify you of its status within 1 - 3 working days.","-1176889260":"Please select a document type.","-1515286538":"Please enter your document number. ","-1785463422":"Verify your identity","-78467788":"Please select the document type and enter the ID number.","-1117345066":"Choose the document type","-651192353":"Sample:","-1263033978":"Please ensure all your personal details are the same as in your chosen document. If you wish to update your personal details, go to account settings.","-937707753":"Go Back","-1926456107":"The ID you submitted is expired.","-555047589":"It looks like your identity document has expired. Please try again with a valid document.","-841187054":"Try Again","-2097808873":"We were unable to verify your ID with the details you provided. ","-228284848":"We were unable to verify your ID with the details you provided.","-1443800801":"Your ID number was submitted successfully","-1391934478":"Your ID is verified. You will also need to submit proof of your address.","-118547687":"ID verification passed","-200989771":"Go to personal details","-1358357943":"Please check and update your postal code before submitting proof of identity.","-1401994581":"Your personal details are missing","-2004327866":"Please select a valid country of document issuance.","-1664159494":"Country","-1874113454":"Please check and resubmit or choose a different document type.","-749870311":"Please contact us via <0>live chat.","-1084991359":"Proof of identity verification not required","-1981334109":"Your account does not need identity verification at this time. We will inform you if identity verification is required in the future.","-182918740":"Your proof of identity submission failed because:","-246893488":"JPEG, JPG, PNG, PDF, or GIF","-1454880310":"Must be valid for at least 6 months","-100534371":"Before uploading, please ensure that you’re facing forward in the selfie, your face is within the frame, and your eyes are clearly visible even if you’re wearing glasses.","-1529523673":"Confirm and upload","-705047643":"Sorry, an error occured. Please select another file.","-1664309884":"Tap here to upload","-1725454783":"Failed","-839094775":"Back","-337979330":"We could not verify your proof of identity","-706528101":"As a precaution, we have disabled trading, deposits and withdrawals for this account. If you have any questions, please go to our Help Center.<0>Help Centre.","-856213726":"You must also submit a proof of address.","-1389323399":"You should enter {{min_number}}-{{max_number}} characters.","-1313806160":"Please request a new password and check your email for the new token.","-329713179":"Ok","-1598167506":"Success","-1077809489":"You have a new {{platform}} password to log in to your {{platform}} accounts on the web and mobile apps.","-2068479232":"{{platform}} password","-1332137219":"Strong passwords contain at least 8 characters that include uppercase and lowercase letters, numbers, and symbols.","-1597186502":"Reset {{platform}} password","-848721396":"These trading limits are optional, and you can strengthen them at any time. If you don’t wish to set a specific limit, leave the field blank. If you live in the United Kingdom, Customer Support can only remove or weaken your trading limits after 24 hours of receiving the request. If you live in the Isle of Man, Customer Support can only remove or weaken your trading limits after your trading limit period has expired.","-469096390":"These trading limits are optional, and you can strengthen them at any time. If you don’t wish to set a specific limit, leave the field blank. Customer Support can only remove or weaken your trading limits after 24 hours of receiving the request.","-42808954":"You can also exclude yourself entirely for a specified duration. This can only be removed once your self-exclusion has expired. If you wish to continue trading once your self-exclusion period expires, you must contact Customer Support by calling <0>+447723580049 to lift this self-exclusion. Requests by chat or email shall not be entertained. There will be a 24-hour cooling-off period before you can resume trading.","-1088698009":"These self-exclusion limits help you control the amount of money and time you spend trading on {{platform_name_trader}}, {{platform_name_dbot}}, {{platform_name_smarttrader}} and {{platform_name_bbot}} on Deriv. The limits you set here will help you exercise <0>responsible trading.","-1702324712":"These limits are optional, and you can adjust them at any time. You decide how much and how long you’d like to trade. If you don’t wish to set a specific limit, leave the field blank.","-1819875658":"You can also exclude yourself entirely for a specified duration. Once the self-exclusion period has ended, you can either extend it further or resume trading immediately. If you wish to reduce or remove the self-exclusion period, contact our <0>Customer Support.","-1031814119":"About trading limits and self-exclusion","-183468698":"Trading limits and self-exclusion","-933963283":"No, review my limits","-1759860126":"Yes, log me out immediately","-572347855":"{{value}} mins","-313333548":"You’ll be able to adjust these limits at any time. You can reduce your limits from the <0>self-exclusion page. To increase or remove your limits, please contact our <1>Customer Support team.","-1265833982":"Accept","-2123139671":"Your stake and loss limits","-1250802290":"24 hours","-2070080356":"Max. total stake","-1545823544":"7 days","-180147209":"You will be automatically logged out from each session after this time limit.","-374553538":"Your account will be excluded from the website until this date (at least 6 months, up to 5 years).","-2121421686":"To self-exclude from all online gambling companies licensed in Great Britain, go to <0>www.gamstop.co.uk.","-2105708790":"Your maximum account balance and open positions","-1960600163":"Once your account balance reaches this amount, you will not be able to deposit funds into your account.","-1073845224":"No. of open position(s)","-288196326":"Your maximum deposit limit","-568749373":"Max. deposit limit","-1884902844":"Max. deposit limit per day","-545085253":"Max. deposit limit over 7 days","-1031006762":"Max. deposit limit over 30 days","-1116871438":"Max. total loss over 30 days","-2134714205":"Time limit per session","-1884271702":"Time out until","-1265825026":"Timeout time must be greater than current time.","-1332882202":"Timeout time cannot be more than 6 weeks.","-1635977118":"Exclude time cannot be less than 6 months.","-1617352279":"The email is in your spam folder (Sometimes things get lost there).","-547557964":"We can’t deliver the email to this address (Usually because of firewalls or filtering).","-976364600":"Please click on the link in the email to change your DMT5 password.","-742748008":"Check your email and click the link in the email to proceed.","-84068414":"Still didn't get the email? Please contact us via <0>live chat.","-2073934245":"The financial trading services offered on this site are only suitable for customers who accept the possibility of losing all the money they invest and who understand and have experience of the risk involved in the purchase of financial contracts. Transactions in financial contracts carry a high degree of risk. If the contracts you purchased expire as worthless, you will lose all your investment, which includes the contract premium.","-1166068675":"Your account will be opened with {{legal_entity_name}}, regulated by the UK Gaming Commission (UKGC), and will be subject to the laws of the Isle of Man.","-975118358":"Your account will be opened with {{legal_entity_name}}, regulated by the Malta Financial Services Authority (MFSA), and will be subject to the laws of Malta.","-680528873":"Your account will be opened with {{legal_entity_name}} and will be subject to the laws of Samoa.","-1125193491":"Add account","-2068229627":"I am not a PEP, and I have not been a PEP in the last 12 months.","-428335668":"You will need to set a password to complete the process.","-1850792730":"Unlink from {{identifier_title}}","-2139303636":"You may have followed a broken link, or the page has moved to a new address.","-1448368765":"Error code: {{error_code}} page not found","-2145244263":"This field is required","-70342544":"We’re legally obliged to ask for your financial information.","-1894668798":"Other trading instruments experience","-1026468600":"Other trading instruments frequency","-179005984":"Save","-789291456":"Tax residence*","-1651554702":"Only alphabet is allowed","-1458676679":"You should enter 2-50 characters.","-1166111912":"Use only the following special characters: {{ permitted_characters }}","-884768257":"You should enter 0-35 characters.","-2113555886":"Only letters, numbers, space, and hyphen are allowed.","-874280157":"This Tax Identification Number (TIN) is invalid. You may continue using it, but to facilitate future payment processes, valid tax information will be required.","-1037916704":"Miss","-1113902570":"Details","-634958629":"We use the information you give us only for verification purposes. All information is kept confidential.","-731992635":"Title*","-352888977":"Title","-136976514":"Country of residence*","-945104751":"We’re legally obliged to ask for your tax information.","-1702919018":"Second line of address (optional)","-1124948631":"Professional Client","-259515058":"By default, all {{brand_website_name}} clients are retail clients but anyone can request to be treated as a professional client.","-1463348492":"I would like to be treated as a professional client.","-1958764604":"Email preference","-2121071263":"Check this box to receive updates via email.","-2068064150":"Get updates about Deriv products, services and events.","-1558679249":"Please make sure your information is correct or it may affect your trading experience.","-1822545742":"Ether Classic","-1334641066":"Litecoin","-1214036543":"US Dollar","-1782590355":"No currency has been set for this account","-2116332353":"Please close your positions in the following Deriv account(s):","-2048005267":"{{number_of_positions}} position(s)","-1923892687":"Please withdraw your funds from the following Deriv X account(s):","-1629894615":"I have other financial priorities.","-844051272":"I want to stop myself from trading.","-1113965495":"I’m no longer interested in trading.","-1224285232":"Customer service was unsatisfactory.","-9323953":"Remaining characters: {{remaining_characters}}","-2061895474":"Closing your account will automatically log you out. We shall delete your personal information as soon as our legal obligations are met.","-203298452":"Close account","-1219849101":"Please select at least one reason","-484540402":"An error occurred","-1911549768":"Inaccessible MT5 account(s)","-1869355019":"Action required","-1030102424":"You can't trade on Deriv.","-448385353":"You can't make transactions.","-1058447223":"Before closing your account:","-912764166":"Withdraw your funds.","-60139953":"We shall delete your personal information as soon as our legal obligations are met, as mentioned in the section on Data Retention in our <0>Security and privacy policy","-536187647":"Confirm revoke access?","-1357606534":"Permission","-570222048":"Revoke access","-506510414":"Date and time","-1708927037":"IP address","-365847515":"Apps you can use with your Deriv login:","-26491905":"You're using your {{identifier_title}} account to log in to your Deriv account. To change your login method into using a username and password, click the <0>Unlink button.","-596920538":"Unlink","-1319725774":"DMT5 Password","-1403020742":"Your DMT5 password is for logging in to your Deriv MT5 accounts on the desktop, web, and mobile apps.","-9570380":"Use the {{platform_name_dxtrade}} password to log in to your {{platform_name_dxtrade}} accounts on the web and mobile apps.","-412891493":"Disable 2FA","-200487676":"Enable","-1840392236":"That's not the right code. Please try again.","-307075478":"6 digit code","-790444493":"Protect your account with 2FA. Each time you log in to your account, you will need to enter your password and an authentication code generated by a 2FA app on your smartphone.","-368010540":"You have enabled 2FA for your Deriv account.","-403552929":"To disable 2FA, please enter the six-digit authentication code generated by your 2FA app below:","-752939584":"How to set up 2FA for your Deriv account","-90649785":"Click here to copy key","-206376148":"Key copied!","-650175948":"A recent bank statement or government-issued letter with your name and address.","-2006895756":"1. Address","-716361389":"An accurate and complete address helps to speed up your verification process.","-890084320":"Save and submit","-902076926":"Before uploading your document, please ensure that your personal details are updated to match your proof of identity. This will help to avoid delays during the verification process.","-1517325716":"Deposit via the following payment methods:","-1547606079":"We accept the following cryptocurrencies:","-42592103":"Deposit cryptocurrencies","-639677539":"Buy cryptocurrencies","-1560098002":"Buy cryptocurrencies via fiat onramp","-541870313":"Deposit via payment agents","-72314872":"Deposit in your local currency via peer-to-peer exchange with fellow traders in your country.","-58126117":"Your simple access to crypto. Fast and secure way to exchange and purchase cryptocurrencies. 24/7 live chat support.","-1705887186":"Your deposit is successful.","-142361708":"In process","-1582681840":"We’ve received your request and are waiting for more blockchain confirmations.","-1626218538":"You’ve cancelled your withdrawal request.","-1062841150":"Your withdrawal is unsuccessful due to an error on the blockchain. Please <0>contact us via live chat for more info.","-630780094":"We’re awaiting confirmation from the blockchain.","-1525882769":"Your withdrawal is unsuccessful. We've sent you an email with more information.","-298601922":"Your withdrawal is successful.","-2021135479":"This field is required.","-1975494965":"Cashier","-1870909526":"Our server cannot retrieve an address.","-582721696":"The current allowed withdraw amount is {{format_min_withdraw_amount}} to {{format_max_withdraw_amount}} {{currency}}","-1957498244":"more","-197251450":"Don't want to trade in {{currency_code}}? You can open another cryptocurrency account.","-1900848111":"This is your {{currency_code}} account.","-749765720":"Your fiat account currency is set to {{currency_code}}.","-803546115":"Manage your accounts ","-1463156905":"Learn more about payment methods","-1309258714":"From account number","-1247676678":"To account number","-816476007":"Account holder name","-1995606668":"Amount","-344403983":"Description","-922432739":"Please enter a valid client login ID.","-1024241603":"Insufficient balance.","-1979554765":"Please enter a valid description.","-1186807402":"Transfer","-1254233806":"You've transferred","-1491457729":"All payment methods","-142563298":"Contact your preferred payment agent for payment instructions and make your deposit.","-1023961762":"Commission on deposits","-552873274":"Commission on withdrawal","-880645086":"Withdrawal amount","-118683067":"Withdrawal limits: <0 />-<1 />","-1125090734":"Important notice to receive your funds","-1924707324":"View transaction","-1474202916":"Make a new withdrawal","-511423158":"Enter the payment agent account number","-2059278156":"Note: {{website_name}} does not charge any transfer fees.","-1201279468":"To withdraw your funds, please choose the same payment method you used to make your deposits.","-1787304306":"Deriv P2P","-60779216":"Withdrawals are temporarily unavailable due to system maintenance. You can make your withdrawals when the maintenance is complete.","-215186732":"You’ve not set your country of residence. To access Cashier, please update your country of residence in the Personal details section in your account settings.","-1392897508":"The identification documents you submitted have expired. Please submit valid identity documents to unlock Cashier. ","-1321645628":"Your cashier is currently locked. Please contact us via live chat to find out how to unlock it.","-1158467524":"Your account is temporarily disabled. Please contact us via live chat to enable deposits and withdrawals again.","-929148387":"Please set your account currency to enable deposits and withdrawals.","-541392118":"Your account has not been authenticated. Please submit your <0>proof of identity and <1>proof of address to authenticate your account and access your cashier.","-247122507":"Your cashier is locked. Please complete the <0>financial assessment to unlock it.","-1443721737":"Your cashier is locked. See <0>how we protect your funds before you proceed.","-901712457":"Your access to Cashier has been temporarily disabled as you have not set your 30-day turnover limit. Please go to <0>Self-exclusion and set your 30-day turnover limit.","-166472881":"Your <0>personal details are incomplete. Please go to your account settings and complete your personal details to enable deposits and withdrawals.","-666905139":"Deposits are locked","-378858101":"Your <0>personal details are incomplete. Please go to your account settings and complete your personal details to enable deposits.","-1037495888":"You have chosen to exclude yourself from trading on our website until {{exclude_until}}. If you are unable to place a trade or deposit after your self-exclusion period, please contact us via live chat.","-949074612":"Please contact us via live chat.","-1318742415":"Your account has not been authenticated. Please submit your <0>proof of identity and <1>proof of address to authenticate your account and request for withdrawals.","-127614820":"Unfortunately, you can only make deposits. Please contact us via live chat to enable withdrawals.","-172277021":"Cashier is locked for withdrawals","-1624999813":"It seems that you've no commissions to withdraw at the moment. You can make withdrawals once you receive your commissions.","-1077304626":"Amount ({{currency}})","-1559994981":"Approximate value","-231863107":"No","-190084602":"Transaction","-811190405":"Time","-1332236294":"Please verify your identity","-1675848843":"Error","-283017497":"Retry","-1196049878":"First line of home address","-1326406485":"Postal Code/ZIP","-939625805":"Telephone","-442575534":"Email verification failed","-1459042184":"Update your personal details","-1603543465":"We can't validate your personal details because there is some information missing.","-614516651":"Need help? <0>Contact us.","-203002433":"Deposit now","-720315013":"You have no funds in your {{currency}} account","-2052373215":"Please make a deposit to use this feature.","-299033842":"Recent transactions","-348296830":"{{transaction_type}} {{currency}}","-1929538515":"{{amount}} {{currency}} on {{submit_date}}","-1534990259":"Transaction hash:","-1612346919":"View all","-89973258":"Resend email in {{seconds}}s","-1059419768":"Notes","-316545835":"Please ensure <0>all details are <0>correct before making your transfer.","-949073402":"I confirm that I have verified the client’s transfer information.","-1752211105":"Transfer now","-598073640":"About Tether (Ethereum)","-275902914":"Tether on Ethereum (eUSDT)","-1188009792":"Tether on Omni Layer (USDT)","-1239329687":"Tether was originally created to use the bitcoin network as its transport protocol ‒ specifically, the Omni Layer ‒ to allow transactions of tokenised traditional currency.","-1272778997":"We've sent you an email.","-2013448791":"Want to exchange between e-wallet currencies? Try <0>Ewallet.Exchange","-2061807537":"Something’s not right","-1068036170":"We do not charge a transfer fee for transfers in the same currency between your Deriv fiat and {{platform_name_mt5}} accounts and between your Deriv fiat and {{platform_name_dxtrade}} accounts.","-2056016338":"You’ll not be charged a transfer fee for transfers in the same currency between your Deriv fiat and {{platform_name_mt5}} accounts.","-599632330":"We’ll charge a 1% transfer fee for transfers in different currencies between your Deriv fiat and {{platform_name_mt5}} accounts and between your Deriv fiat and {{platform_name_dxtrade}} accounts.","-1196994774":"We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency accounts.","-993556039":"We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts and between your Deriv cryptocurrency and {{platform_name_dxtrade}} accounts.","-1382702462":"We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts.","-1151983985":"Transfer limits may vary depending on the exchange rates.","-1747571263":"Please bear in mind that some transfers may not be possible.","-757062699":"Transfers may be unavailable due to high volatility or technical issues and when the exchange markets are closed.","-1344870129":"Deriv accounts","-1156059326":"You have {{number}} transfer remaining for today.","-1109729546":"You will be able to transfer funds between MT5 accounts and other accounts once your address is verified.","-1593609508":"Transfer between your accounts in Deriv","-464965808":"Transfer limits: <0 /> - <1 />","-553249337":"Transfers are locked","-1638172550":"To enable this feature you must complete the following:","-1157701227":"You need at least two accounts","-417711545":"Create account","-1232852916":"We’re switching over to your {{currency}} account to view the transaction.","-993393818":"Binance Smart Chain","-561858764":"Polygon (Matic)","-410890127":"Ethereum (ERC20)","-1059526741":"Ethereum (ETH)","-1615615253":"We do not support Tron, to deposit please use only Ethereum ({{token}}).","-1831000957":"Please select the network from where your deposit will come from.","-314177745":"Unfortunately, we couldn't get the address since our server was down. Please click Refresh to reload the address or try again later.","-1345040662":"Looking for a way to buy cryptocurrency?","-759000391":"We were unable to verify your information automatically. To enable this function, you must complete the following:","-1632668764":"I accept","-544232635":"Please go to the Deposit page to generate an address. Then come back here to continue with your transaction.","-1161069724":"Please copy the crypto address you see below. You'll need it to deposit your cryptocurrency.","-1388977563":"Copied!","-1962894999":"This address can only be used ONCE. Please copy a new one for your next transaction.","-451858550":"By clicking 'Continue' you will be redirected to {{ service }}, a third-party payment service provider. Please note that {{ website_name }} is not responsible for the content or services provided by {{ service }}. If you encounter any issues related to {{ service }} services, you must contact {{ service }} directly.","-2005265642":"Fiat onramp is a cashier service that allows you to convert fiat currencies to crypto to top up your Deriv crypto accounts. Listed here are third-party crypto exchanges. You’ll need to create an account with them to use their services.","-1593063457":"Select payment channel","-2004264970":"Your wallet address should have 25 to 64 characters.","-1707299138":"Your {{currency_symbol}} wallet address","-38063175":"{{account_text}} wallet","-705272444":"Upload a proof of identity to verify your identity","-2024958619":"This is to protect your account from unauthorised withdrawals.","-130833284":"Please note that your maximum and minimum withdrawal limits aren’t fixed. They change due to the high volatility of cryptocurrency.","-1531269493":"We'll send you an email once your transaction has been processed.","-113940416":"Current stake:","-1999539705":"Deal cancel. fee:","-447037544":"Buy price:","-1342699195":"Total profit/loss:","-1511825574":"Profit/Loss:","-726626679":"Potential profit/loss:","-338379841":"Indicative price:","-1525144993":"Payout limit:","-1167474366":"Tick ","-555886064":"Won","-529060972":"Lost","-571642000":"Day","-155989831":"Decrement value","-1192773792":"Don't show this again","-1769852749":"N/A","-1572746946":"Asian Up","-686840306":"Asian Down","-2141198770":"Higher","-816098265":"Lower","-1646655742":"Spread Up","-668987427":"Spread Down","-912577498":"Matches","-1862940531":"Differs","-808904691":"Odd","-556230215":"Ends Outside","-1268220904":"Ends Between","-703542574":"Up","-1127399675":"Down","-768425113":"No Touch","-1163058241":"Stays Between","-1354485738":"Reset Call","-376148198":"Only Ups","-1337379177":"High Tick","-328036042":"Please enter a stop loss amount that's higher than the current potential loss.","-2127699317":"Invalid stop loss. Stop loss cannot be more than stake.","-1940333322":"DBot is not available for this account","-1210387519":"Go to DMT5 dashboard","-1223145005":"Loss amount: {{profit}}","-1062922595":"Reference ID (buy)","-2068574600":"Reference ID (sell)","-994038153":"Start Time","-1979852400":"Entry Spot","-427802309":"Profit/Loss","-668558002":"Journal.csv","-746652890":"Notifications","-824109891":"System","-507620484":"Unsaved","-764102808":"Google Drive","-1109191651":"Must be a number higher than 0","-1917772100":"Invalid number format","-1553945114":"Value must be higher than 2","-689786738":"Minimum duration: {{ min }}","-184183432":"Maximum duration: {{ max }}","-749186458":"Account switching is disabled while your bot is running. Please stop your bot before switching accounts.","-662836330":"Would you like to keep your current contract or close it? If you decide to keep it running, you can check and close it later on the <0>Reports page.","-597939268":"Keep my contract","-1322453991":"You need to log in to run the bot.","-1483938124":"This strategy is currently not compatible with DBot.","-236548954":"Contract Update Error","-1428017300":"THE","-1450728048":"OF","-255051108":"YOU","-1845434627":"IS","-931434605":"THIS","-740712821":"A","-187634388":"This block is mandatory. Here is where you can decide if your bot should continue trading. Only one copy of this block is allowed.","-2105473795":"The only input parameter determines how block output is going to be formatted. In case if the input parameter is \"string\" then the account currency will be added.","-1800436138":"2. for \"number\": 1325.68","-2046396241":"This block is mandatory. Only one copy of this block is allowed. It is added to the canvas by default when you open DBot.","-530632460":"This block is used to determine if the market price moves in the selected direction or not. It gives you a value of \"True\" or \"False\".","-1875717842":"Examples:","-890079872":"1. If the selected direction is \"Rise\", and the previous tick value is less than the current tick value, the output will be \"True\". Otherwise, the output will be an empty string.","-489739641":"2. If the selected direction is \"Fall\", and the previous tick value is more than the current tick value, the output will be \"True\". Otherwise, the output will be an empty string.","-2116076360":"There are 4 message types:","-1421941045":"2. 'Warn' displays a message in yellow to highlight something that needs attention.","-277850921":"If \"Win\" is selected, it will return \"True\" if your last trade was successful. Otherwise, it will return an empty string.","-1918487001":"Example:","-2139916657":"1. In the below example the loop is terminated in case \"x\" is \"False\" even though only one iteration is complete","-1238900333":"2. In the below example the loop jumps to the next iteration without executing below block in case if \"x\" is \"False\"","-1729479576":"You can use \"i\" inside the loop, for example to access list items","-1474636594":"In this example, the loop will repeat three times, as that is the number of items in the given list. During each iteration, the variable \"i\" will be assigned a value from the list. ","-908772734":"This block evaluates a statement and will perform an action only when the statement is true.","-334040831":"2. In this example, the instructions are repeated as long as the value of x is greater than or equal to 10. Once the value of x drops below 10, the loop is terminated.","-444267958":"\"Seconds Since Epoch\" block returns the number of seconds since January 1st, 1970.","-447522129":"You might need it when you want to repeat an actions after certain amount of time.","-1488259879":"The term \"candle\" refers to each bar on the candlestick chart. Each candle represents four market prices for the selected time interval:","-2020693608":"Each candlestick on the chart represents 4 market prices for the selected time interval:","-62728852":"- Open price: the opening price","-1247744334":"- Low price: the lowest price","-1386365697":"- Close price: the closing price","-1498732382":"A black (or red) candle indicates that the open price is higher than the close price. This represents a downward movement of the market price.","-1871864755":"This block gives you the last digit of the latest tick value of the selected market. If the latest tick value is 1410.90, this block will return 0. It’s useful for digit-based contracts such as Even/Odd, Matches/Differs, or Higher/Lower.","-1029671512":"In case if the \"OR\" operation is selected, the block returns \"True\" in case if one or both given values are \"True\"","-210295176":"Available operations:","-1385862125":"- Addition","-983721613":"- Subtraction","-854750243":"- Multiplication","-1394815185":"In case if the given number is less than the lower boundary of the range, the block returns the lower boundary value. Similarly, if the given number is greater than the higher boundary, the block will return the higher boundary value. In case if the given value is between boundaries, the block will return the given value unchanged.","-1034564248":"In the below example the block returns the value of 10 as the given value (5) is less than the lower boundary (10)","-2009817572":"This block performs the following operations to a given number","-671300479":"Available operations are:","-514610724":"- Absolute","-1923861818":"- Euler’s number (2.71) to the power of a given number","-1556344549":"Here’s how:","-1061127827":"- Visit the following URL, make sure to replace with the Telegram API token you created in Step 1: https://api.telegram.org/bot/getUpdates","-70949308":"4. Come back to DBot and add the Notify Telegram block to the workspace. Paste the Telegram API token and chat ID into the block fields accordingly.","-311389920":"In this example, the open prices from a list of candles are assigned to a variable called \"cl\".","-1460794449":"This block gives you a list of candles within a selected time interval.","-1634242212":"Used within a function block, this block returns a value when a specific condition is true.","-2012970860":"This block gives you information about your last contract.","-1504783522":"You can choose to see one of the following:","-10612039":"- Profit: the profit you’ve earned","-555996976":"- Entry time: the starting time of the contract","-1391071125":"- Exit time: the contract expiration time","-1961642424":"- Exit value: the value of the last tick of the contract","-111312913":"- Barrier: the barrier value of the contract (applicable to barrier-based trade types such as stays in/out, touch/no touch, etc.)","-674283099":"- Result: the result of the last contract: \"win\" or \"loss\"","-704543890":"This block gives you the selected candle value such as open price, close price, high price, low price, and open time. It requires a candle as an input parameter.","-482281200":"In the example below, the open price is assigned to the variable \"op\".","-364621012":"This block gives you the specified candle value for a selected time interval. You can choose which value you want:","-232477769":"- Open: the opening price","-610736310":"Use this block to sell your contract at the market price. Selling your contract is optional. You may choose to sell if the market trend is unfavourable.","-1307657508":"This block gives you the potential profit or loss if you decide to sell your contract. It can only be used within the \"Sell conditions\" root block.","-1921072225":"In the example below, the contract will only be sold if the potential profit or loss is more than the stake.","-955397705":"SMA adds the market price in a list of ticks or candles for a number of time periods, and divides the sum by that number of time periods.","-1424923010":"where n is the number of periods.","-1835384051":"What SMA tells you","-749487251":"SMA serves as an indicator of the trend. If the SMA points up then the market price is increasing and vice versa. The larger the period number, the smoother SMA line is.","-1996062088":"In this example, each point of the SMA line is an arithmetic average of close prices for the last 10 days.","-1866751721":"Input list accepts a list of ticks or candles, while period is the specified time period.","-1097076512":"You may compare SMA values calculated on every bot run to identify the market trend direction. Alternatively, you may also use a variation of the SMA block, the Simple Moving Average Array block. ","-1254849504":"If a period of 10 is entered, the Simple Moving Average Array block will return a list of SMA values calculated based on period of 10.","-1190046167":"This block displays a dialog box with a customised message. When the dialog box is displayed, your strategy is paused and will only resume after you click \"OK\".","-859028989":"In this example, the date and time will be displayed in a green notification box.","-1452086215":"In this example, a Rise contract will be purchased at midnight on 1 August 2019.","-1765276625":"Click the multiplier drop-down menu and choose the multiplier value you want to trade with.","-1872233077":"Your potential profit will be multiplied by the multiplier value you’ve chosen.","-614454953":"To learn more about multipliers, please go to the <0>Multipliers page.","-2078588404":"Select your desired market and asset type. For example, Forex > Major pairs > AUD/JPY","-2037446013":"2. Trade Type","-533927844":"Select your desired trade type. For example, Up/Down > Rise/Fall","-1192411640":"4. Default Candle Interval","-485434772":"8. Trade Options","-1827646586":"This block assigns a given value to a variable, creating the variable if it doesn't already exist.","-254421190":"List: ({{message_length}})","-1616649196":"results","-90107030":"No results found","-984140537":"Add","-786915692":"You are connected to Google Drive","-1150107517":"Connect","-1759213415":"Find out how this app handles your data by reviewing Deriv's <0>Privacy policy, which is part of Deriv's <1>Terms and conditions.","-934909826":"Load strategy","-1121028020":"or, if you prefer...","-254025477":"Select an XML file from your device","-1131095838":"Please upload an XML file","-523928088":"Create one or upload one from your local drive or Google Drive.","-1684205190":"Why can't I see my recent bots?","-2050879370":"1. Logged in from a different device","-811857220":"3. Cleared your browser cache","-1016171176":"Asset","-621128676":"Trade type","-671128668":"The amount that you pay to enter a trade.","-447853970":"Loss threshold","-410856998":"The bot will stop trading if your total profit exceeds this amount.","-1823621139":"Quick Strategy","-625024929":"Leaving already?","-584289785":"No, I'll stay","-1435060006":"If you leave, your current contract will be completed, but your bot will stop running immediately.","-783058284":"Total stake","-2077494994":"Total payout","-1073955629":"No. of runs","-1729519074":"Contracts lost","-42436171":"Total profit/loss","-1856204727":"Reset","-224804428":"Transactions","-1137823888":"Total payout since you last cleared your stats.","-992662695":"The number of times your bot has run since you last cleared your stats. Each run includes the execution of all the root blocks.","-1382491190":"Your total profit/loss since you last cleared your stats. It is the difference between your total payout and your total stake.","-305283152":"Strategy name","-1003476709":"Save as collection","-636521735":"Save strategy","-1373954791":"Should be a valid number","-1278608332":"Please enter a number between 0 and {{api_max_losses}}.","-287597204":"Enter limits to stop your bot from trading when any of these conditions are met.","-1445989611":"Limits your potential losses for the day across all Deriv platforms.","-152878438":"Maximum number of trades your bot will execute for this run.","-1490942825":"Apply and run","-1696412885":"Import","-250192612":"Sort","-1566369363":"Zoom out","-2060170461":"Load","-1200116647":"Click here to start building your DBot.","-1040972299":"Purchase contract","-600546154":"Sell contract (optional)","-985351204":"Trade again","-112876186":"Analysis","-1769584466":"Stats","-1133736197":"Utility","-1682372359":"Text","-907562847":"Lists","-1646497683":"Loops","-251326965":"Miscellaneous","-1285759343":"Search","-1058262694":"Stopping the bot will prevent further trades. Any ongoing trades will be completed by our system.","-1473283434":"Please be aware that some completed transactions may not be displayed in the transaction table if the bot is stopped while placing trades.","-397015538":"You may refer to the statement page for details of all completed transactions.","-1442034178":"Contract bought","-2020280751":"Bot is stopping","-1436403979":"Contract closed","-1711732508":"Reference IDs","-386141434":"(Buy)","-482272687":"(Sell)","-1983189496":"ticks","-694277729":"(High)","-2028564707":"(Low)","-627895223":"Exit spot","-596238067":"Entry/Exit spot","-558594655":"The bot is not running","-478946875":"The stats are cleared","-9461328":"Security and privacy","-563774117":"Dashboard","-418247251":"Download your journal.","-870004399":"<0>Bought: {{longcode}} (ID: {{transaction_id}})","-1211474415":"Filters","-186972150":"There are no messages to display","-999254545":"All messages are filtered out","-686334932":"Build a bot from the start menu then hit the run button to run the bot.","-1717650468":"Online","-1825471709":"A whole new trading experience on a powerful yet easy to use platform.","-981017278":"Automated trading at your fingertips. No coding needed.","-398198412":"Trade on Deriv MT5 (DMT5), the all-in-one FX and CFD trading platform.","-1768586966":"Trade CFDs on a customizable, easy-to-use trading platform.","-1309011360":"Open positions","-883103549":"Account deactivated","-821418875":"Trader","-679102561":"Contract Details","-430118939":"Complaints policy","-744999940":"Deriv account","-568280383":"Deriv Gaming","-1308346982":"Derived","-1546927062":"Deriv Financial","-895331276":"Complete your proof of address","-782679300":"Complete your proof of identity","-1596515467":"Derived BVI","-328128497":"Financial","-533935232":"Financial BVI","-565431857":"Financial Labuan","-1669418686":"AUD/CAD","-1548588249":"AUD/CHF","-1552890620":"AUD/JPY","-681231560":"AUD/PLN","-64938413":"AUD/USD","-1430522808":"EUR/AUD","-2020477069":"EUR/CAD","-1201853162":"EUR/CHF","-1318070255":"EUR/GBP","-1197505739":"EUR/JPY","-405907358":"EUR/USD","-1536293064":"NZD/JPY","-79700881":"NZD/USD","-642323838":"USD/CAD","-428199705":"USD/CHF","-424108348":"USD/JPY","-548255282":"USD/NOK","-1834131208":"USD/PLN","-524302516":"Silver/USD","-764731776":"Platinum/USD","-700966800":"Dutch Index","-1863229260":"Australian Index","-946336619":"Wall Street Index","-945048133":"French Index","-1093355162":"UK Index","-932734062":"Hong Kong Index","-2030624691":"Japanese Index","-354063409":"US Index","-232855849":"Euro 50 Index","-1925264914":"Volatility 25 Index","-708579504":"Volatility 50 Index","-975255670":"Volatility 75 Index","-1736314513":"Crash 300 Index","-342128411":"Crash 500 Index","-9704319":"Crash 1000 Index","-465860988":"Bull Market Index","-390528194":"Step Index","-280323742":"EUR Basket","-563812039":"Volatility 10 (1s) Index","-764111252":"Volatility 100 (1s) Index","-1374309449":"Volatility 200 (1s) Index","-1164978320":"Jump 10 Index","-575272887":"BCH/USD","-295406873":"BTC/ETH","-1713556301":"ZMR/USD","-2046638412":"XRP/USD","-1263203461":"BTC/USD","-1112522776":"DSH/USD","-460689370":"LTC/USD","-841561409":"Put Spread","-144803045":"Only numbers and these special characters are allowed: {{permitted_characters}}","-1450516268":"Only letters, numbers, space, hyphen, period, and apostrophe are allowed.","-1072358250":"Letters, spaces, periods, hyphens, apostrophes only","-1966032552":"The length of token should be 8.","-2128137611":"Should start with letter or number, and may contain hyphen and underscore.","-1590869353":"Up to {{decimal_count}} decimal places are allowed.","-2061307421":"Should be more than {{min_value}}","-1099941162":"Should be less than {{max_value}}","-1528188268":"Straight rows of keys are easy to guess","-1339903234":"Short keyboard patterns are easy to guess","-23980798":"Repeats like \"aaa\" are easy to guess","-235760680":"Avoid repeated words and characters","-1568933154":"Sequences like abc or 6543 are easy to guess","-725663701":"Avoid sequences","-1450768475":"Recent years are easy to guess","-1804838610":"Avoid years that are associated with you","-64849469":"Dates are often easy to guess","-2006915194":"Avoid dates and years that are associated with you","-2124205211":"A word by itself is easy to guess","-1095202689":"All-uppercase is almost as easy to guess as all-lowercase","-2137856661":"Reversed words aren't much harder to guess","-1885413063":"Predictable substitutions like '@' instead of 'a' don't help very much","-369258265":"This password is on the blacklist","-681468758":"Your web browser is out of date and may affect your trading experience. Please <0>update your browser.","-577777971":"You have reached the rate limit of requests per second. Please try later.","-206321775":"Fiat","-522767852":"DEMO","-433761292":"Switching to default account.","-405439829":"Sorry, you can't view this contract because it doesn't belong to this account.","-1590712279":"Gaming","-16448469":"Virtual","-540474806":"Your Options account is scheduled to be closed","-618539786":"Your account is scheduled to be closed","-945275490":"Withdraw all funds from your Options account.","-2093768906":"{{name}} has released your funds.
Would you like to give your feedback?","-705744796":"Your demo account balance has reached the maximum limit, and you will not be able to place new trades. Reset your balance to continue trading from your demo account.","-1585069798":"Please click the following link to complete your Appropriateness Test.","-1287141934":"Find out more","-367759751":"Your account has not been verified","-596690079":"Enjoy using Deriv?","-265932467":"We’d love to hear your thoughts","-1815573792":"Drop your review on Trustpilot.","-823349637":"Go to Trustpilot","-1204063440":"Set my account currency","-1751632759":"Get a faster mobile trading experience with the <0>{{platform_name_go}} app!","-1164554246":"You submitted expired identification documents","-219846634":"Let’s verify your ID","-529038107":"Install","-1738575826":"Please switch to your real account or create one to access the cashier.","-1329329028":"You’ve not set your 30-day turnover limit","-132893998":"Your access to the cashier has been temporarily disabled as you have not set your 30-day turnover limit. Please go to Self-exclusion and set the limit.","-1852207910":"MT5 withdrawal disabled","-764323310":"MT5 withdrawals have been disabled on your account. Please check your email for more details.","-1902997828":"Refresh now","-753791937":"A new version of Deriv is available","-1775108444":"This page will automatically refresh in 5 minutes to load the latest version.","-1175685940":"Please contact us via live chat to enable withdrawals.","-1125797291":"Password updated.","-157145612":"Please log in with your updated password.","-1728185398":"Resubmit proof of address","-1519764694":"Your proof of address is verified.","-1961967032":"Resubmit proof of identity","-117048458":"Please submit your proof of identity.","-1196422502":"Your proof of identity is verified.","-136292383":"Your proof of address verification is pending","-386909054":"Your proof of address verification has failed","-430041639":"Your proof of address did not pass our verification checks, and we’ve placed some restrictions on your account. Please resubmit your proof of address.","-87177461":"Please go to your account settings and complete your personal details to enable deposits.","-904632610":"Reset your balance","-470018967":"Reset balance","-156611181":"Please complete the financial assessment in your account settings to unlock it.","-1925176811":"Unable to process withdrawals in the moment","-980696193":"Withdrawals are temporarily unavailable due to system maintenance. You can make withdrawals when the maintenance is complete.","-1647226944":"Unable to process deposit in the moment","-488032975":"Deposits are temporarily unavailable due to system maintenance. You can make deposits when the maintenance is complete.","-67021419":"Our cashier is temporarily down due to system maintenance. You can access the cashier in a few minutes when the maintenance is complete.","-849587074":"You have not provided your tax identification number","-47462430":"This information is necessary for legal and regulatory requirements. Please go to your account settings, and fill in your latest tax identification number.","-2067423661":"Stronger security for your Deriv account","-1719731099":"With two-factor authentication, you’ll protect your account with both your password and your phone - so only you can access your account, even if someone knows your password.","-2087822170":"You are offline","-1669693571":"Check your connection.","-1998049070":"If you agree to our use of cookies, click on Accept. For more information, <0>see our policy.","-402093392":"Add Deriv Account","-277547429":"A Deriv account will allow you to fund (and withdraw from) your MT5 account(s).","-1721181859":"You’ll need a {{deriv_account}} account","-1989074395":"Please add a {{deriv_account}} account first before adding a {{dmt5_account}} account. Deposits and withdrawals for your {{dmt5_label}} account are done by transferring funds to and from your {{deriv_label}} account.","-689237734":"Proceed","-1642457320":"Help centre","-1966944392":"Network status: {{status}}","-594209315":"Synthetic indices in the EU are offered by {{legal_entity_name}}, W Business Centre, Level 3, Triq Dun Karm, Birkirkara BKR 9033, Malta, licensed and regulated by the Malta Gaming Authority (<0>licence no. MGA/B2C/102/2000) and by the Revenue Commissioners for clients in Ireland (<2>licence no. 1010285).","-181484419":"Responsible trading","-650505513":"Full screen","-1823504435":"View notifications","-1954045170":"No currency assigned","-583559763":"Menu","-2094580348":"Thanks for verifying your email","-1396326507":"Unfortunately, {{website_name}} is not available in your country.","-1019903756":"Synthetic","-288996254":"Unavailable","-122970184":"Total assets in your Deriv and {{platform_name_dxtrade}} demo accounts.","-97270814":"Total assets in your Deriv and {{platform_name_dxtrade}} real accounts.","-1844355483":"{{platform_name_dxtrade}} Accounts","-1740162250":"Manage account","-1277942366":"Total assets","-1556699568":"Choose your citizenship","-1310654342":"As part of the changes in our product line-up, we will be closing Gaming accounts belonging to our UK clients.","-626152766":"As part of the changes in our product line-up, we are closing Options accounts belonging to our clients in Europe.","-490100162":"As part of the changes in our product line-up, we will be closing accounts belonging to our Isle of Man clients.","-1208958060":"You can no longer trade digital options on any of our platforms. You also can’t deposit funds into your account.<0/><1/>Any open positions on digital options have been closed with full payout.","-2050417883":"You’ll lose access to your Gaming account when it gets closed, so make sure to withdraw your funds as soon as possible.","-1950045402":"Withdraw all your funds","-168971942":"What this means for you","-905560792":"OK, I understand","-1308593541":"You will lose access to your account when it gets closed, so be sure to withdraw all your funds.","-2024365882":"Explore","-1197864059":"Create free demo account","-71049153":"Keep your account secure with a password","-1861974537":"Strong passwords contain at least 8 characters, combine uppercase and lowercase letters, numbers, and symbols.","-1965920446":"Start trading","-1485242688":"Step {{step}}: {{step_title}} ({{step}} of {{steps}})","-1829842622":"You can open an account for each cryptocurrency.","-987221110":"Choose a currency you would like to trade with.","-1066574182":"Choose a currency","-1914534236":"Choose your currency","-200560194":"Please switch to your {{fiat_currency}} account to change currencies.","-1829493739":"Choose the currency you would like to trade with.","-1814647553":"Add a new","-1269362917":"Add new","-650480777":"crypto account","-175638343":"Choose an account or add a new one","-1768223277":"Your account is ready","-1215717784":"<0>You have successfully changed your currency to {{currency}}.<0>Make a deposit now to start trading.","-786091297":"Trade on demo","-228099749":"Please verify your identity and address","-1041852744":"We're processing your personal information","-1775006840":"Make a deposit now to start trading.","-983734304":"We need proof of your identity and address before you can start trading.","-917733293":"To get trading, please confirm where you live.","-1282628163":"You'll be able to get trading as soon as verification is complete.","-952649119":"Log In","-3815578":"Sign Up","-1456176427":"Set a currency for your real account","-1557011219":"Add a real Deriv Options account","-241733171":"Add a Deriv Financial account","-1329687645":"Create a cryptocurrency account","-1429178373":"Create a new account","-1016775979":"Choose an account","-1369294608":"Already signed up?","-617844567":"An account with your details already exists.","-292363402":"Trading statistics report","-1656860130":"Options trading can become a real addiction, as can any other activity pushed to its limits. To avoid the danger of such an addiction, we provide a reality-check that gives you a summary of your trades and accounts on a regular basis.","-28080461":"Would like to check your statement first? <0>Check Statement","-611059051":"Please specify your preferred interval reality check in minutes:","-1876891031":"Currency","-11615110":"Turnover","-1370419052":"Profit / Loss","-437320982":"Session duration:","-3959715":"Current time:","-1534648620":"Your password has been changed","-596199727":"We will now redirect you to the login page.","-310434518":"The email input should not be empty.","-437918412":"No currency assigned to your account","-707550055":"We need this to make sure our service complies with laws and regulations in your country.","-280139767":"Set residence","-601615681":"Select theme","-1152511291":"Dark","-1428458509":"Light","-1917706589":"Your Deriv account is unlinked from {{social_identity_provider}}. Use your email and password for future log in.","-2017825013":"Got it","-505449293":"Enter a new password for your Deriv account.","-703818088":"Only log in to your account at this secure link, never elsewhere.","-1235799308":"Fake links often contain the word that looks like \"Deriv\" but look out for these differences.","-2102997229":"Examples","-82488190":"I've read the above carefully.","-97775019":"Do not trust and give away your credentials on fake websites, ads or emails.","-2142491494":"OK, got it","-611136817":"Beware of fake links.","-1787820992":"Platforms","-1793883644":"Trade FX and CFDs on a customisable, easy-to-use trading platform.","-184713104":"Earn fixed payouts with options, or trade multipliers to amplify your gains with limited risk.","-1571775875":"Our flagship options and multipliers trading platform.","-1107320163":"Automate your trading, no coding needed.","-820028470":"Options & Multipliers","-895091803":"If you're looking for CFDs","-1447215751":"Not sure? Try this","-2338797":"<0>Maximise returns by <0>risking more than you put in.","-1682067341":"Earn <0>fixed returns by <0>risking only what you put in.","-1744351732":"Not sure where to start?","-943710774":"This complaints policy, which may change from time to time, applies to your account registered with {{legal_entity_name}}, having its registered office address at First Floor, Millennium House, Victoria Road, Douglas, Isle of Man, IM2 4RW, licensed and regulated respectively by (1) the Gambling Supervision Commission in the Isle of Man (current <0>licence issued on 31 August 2017) and (2) the Gambling Commission in the UK (<1>licence no. 39172).","-255056078":"This complaints policy, which may change from time to time, applies to your account(s) registered with {{legal_entity_name}}, having its registered office address at W Business Centre, Level 3, Triq Dun Karm, Birkirkara, BKR 9033, Malta, licensed and regulated by the Malta Gaming Authority in Malta for gambling products only, <0>licence no. MGA/B2C/102/2000, and for clients residing in the UK by the UK Gambling Commission (account number 39495).","-1941013000":"This complaints policy, which may change from time to time, applies to your account(s) registered with {{legal_entity_name_svg}}, {{legal_entity_name_fx}}, and {{legal_entity_name_v}}.","-594812204":"This complaints policy, which may change from time to time, applies to your account(s) registered with {{legal_entity_name_svg}}.","-1639808836":"If you are not satisfied with the outcome, you can escalate your complaint to the <0>Independent Betting Adjudication Service (IBAS) by filling the IBAS adjudication form. Please note that IBAS only deals with disputes that result from transactions.","-1505742956":"<0/><1/>You can also refer your dispute to the Malta Gaming Authority via the <2>Player Support Unit.","-1406192787":"If you are not satisfied with the outcome, you can escalate your complaint to the <0>Financial Commission.","-1776547326":"<0/><1/>If you reside in the UK and you are unhappy with our response you may escalate your complaint to the <2>Financial Ombudsman Service.","-2115348800":"1. Introduction","-744009523":"2. Fair treatment","-866831420":"3.1. Submission of a complaint","-1102904026":"3.2. Handling your complaint","-603378979":"3.3. Resolving your complaint","-697569974":"3.4. Your decision","-993572476":"<0>b.The Financial Commission has 5 days to acknowledge that your complaint was received and 14 days to answer the complaint through our Internal Dispute Resolution (IDR) procedure.","-1769159081":"<0>c.You will be able to file a complaint with the Financial Commission only if you are not satisfied with our decision or the decision wasn’t made within 14 days.","-58307244":"3. Determination phase","-356618087":"<0>b.The DRC may request additional information from you or us, who must then provide the requested information within 7 days.","-945718602":"<0>b.If you agree with a DRC decision, you will need to accept it within 14 days. If you do not respond to the DRC decision within 14 days, the complaint is considered closed.","-1500907666":"<0>d.If the decision is made in our favour, you must provide a release for us within 7 days of when the decision is made, and the complaint will be considered closed.","-429248139":"5. Disclaimer","-818926350":"The Financial Commission accepts appeals for 45 days following the date of the incident and only after the trader has tried to resolve the issue with the company directly.","-175369516":"Welcome to Deriv X","-1667427537":"Run Deriv X on your browser or download the mobile app","-305915794":"Run MT5 from your browser or download the MT5 app for your devices","-404375367":"Trade forex, basket indices, commodities, and cryptocurrencies with high leverage.","-811331160":"Trade CFDs on forex, stocks, stock indices, synthetic indices, and commodities with leverage.","-2030107144":"Trade CFDs on forex, stocks & stock indices, commodities, and crypto.","-781132577":"Leverage","-1264604378":"Up to 1:1000","-637908996":"100%","-1420548257":"20+","-1373949478":"50+","-1686150678":"Up to 1:100","-1382029900":"70+","-1493055298":"90+","-1056874273":"25+ assets: synthetics","-223956356":"Leverage up to 1:1000","-1340877988":"Registered with the Financial Commission","-879901180":"170+ assets: forex (standard/micro), stocks, stock indices, commodities, basket indices, and cryptocurrencies","-1020615994":"Better spreads","-1789823174":"Regulated by the Vanuatu Financial Services Commission","-1040269115":"30+ assets: forex and commodities","-1372141447":"Straight-through processing","-318390366":"Regulated by the Labuan Financial Services Authority (Licence no. MB/18/0024)","-1556783479":"80+ assets: forex and cryptocurrencies","-875019707":"Leverage up to 1:100","-1752249490":"Malta Financial","-2068980956":"Leverage up to 1:30","-2098459063":"British Virgin Islands","-1434036215":"Demo Financial","-1416247163":"Financial STP","-1882063886":"Demo CFDs","-1347908717":"Demo Financial SVG","-1780324582":"SVG","-785625598":"Use these credentials to log in to your {{platform}} account on the website and mobile apps.","-997127433":"Change Password","-162753510":"Add real account","-860609405":"Password","-742647506":"Fund transfer","-1357917360":"Web terminal","-1454896285":"The MT5 desktop app is not supported by Windows XP, Windows 2003, and Windows Vista.","-810388996":"Download the Deriv X mobile app","-1727991510":"Scan the QR code to download the Deriv X Mobile App","-1302404116":"Maximum leverage","-511301450":"Indicates the availability of cryptocurrency trading on a particular account.","-2102641225":"At bank rollover, liquidity in the forex markets is reduced and may increase the spread and processing time for client orders. This happens around 21:00 GMT during daylight saving time, and 22:00 GMT non-daylight saving time.","-495364248":"Margin call and stop out level will change from time to time based on market condition.","-536189739":"To protect your portfolio from adverse market movements due to the market opening gap, we reserve the right to decrease leverage on all offered symbols for financial accounts before market close and increase it again after market open. Please make sure that you have enough funds available in your {{platform}} account to support your positions at all times.","-712681566":"Peer-to-peer exchange","-1267880283":"{{field_name}} is required","-2084509650":"{{field_name}} is not properly formatted.","-1779241732":"First line of address is not in a proper format.","-188222339":"This should not exceed {{max_number}} characters.","-1673422138":"State/Province is not in a proper format.","-1580554423":"Trade CFDs on our synthetic indices that simulate real-world market movements.","-1385484963":"Confirm to change your {{platform}} password","-1990902270":"This will change the password to all of your {{platform}} accounts.","-673424733":"Demo account","-1986258847":"Server maintenance starts at 01:00 GMT every Sunday, and this process may take up to 2 hours to complete. Service may be disrupted during this time.","-1199152768":"Please explore our other platforms.","-205020823":"Explore {{platform_name_trader}}","-1982499699":"Explore {{platform_name_dbot}}","-1567989247":"Submit your proof of identity and address","-184453418":"Enter your {{platform}} password","-1769158315":"real","-700260448":"demo","-1980366110":"Congratulations, you have successfully created your {{category}} {{platform}} <0>{{type}} account.","-790488576":"Forgot password?","-926547017":"Enter your {{platform}} password to add a {{platform}} {{account}} {{jurisdiction_shortcode}} account.","-1190393389":"Enter your {{platform}} password to add a {{platform}} {{account}} account.","-2057918502":"Hint: You may have entered your Deriv password, which is different from your {{platform}} password.","-1928229820":"Reset Deriv X investor password","-1917043724":"Reset DMT5 investor password","-1087845020":"main","-1950683866":"investor","-1874242353":"Fund top up","-89838213":"You can top up your demo account with an additional <0> if your balance is <1> or less.","-1211122723":"{{ platform }} {{ account_title }} account","-78895143":"Current balance","-149993085":"New current balance","-490244964":"Forex, stocks, stock indices, cryptocurrencies","-1368041210":", synthetic indices","-877064208":"EUR","-1284221303":"You’ll get a warning, known as margin call, if your account balance drops down close to the stop out level.","-1848799829":"To understand stop out, first you need to learn about margin level, which is the ratio of your equity (the total balance you would have if you close all your positions at that point) to the margin you're using at the moment. If your margin level drops below our stop out level, your positions may be closed automatically to protect you from further losses.","-224051432":"24/7","-1591882610":"Synthetics","-70716111":"FX-majors (standard/micro lots), FX-minors, basket indices, commodities, cryptocurrencies, and stocks and stock indices","-1041629137":"FX-majors, FX-minors, FX-exotics, and cryptocurrencies","-287097947":"FX-majors (standard/micro lots), FX-minors, Commodities, Cryptocurrencies (except UK)","-1225160479":"Compare available accounts","-2042845290":"Your investor password has been changed.","-1882295407":"Your password has been changed.","-254497873":"Use this password to grant viewing access to another user. While they may view your trading account, they will not be able to trade or take any other actions.","-161656683":"Current investor password","-374736923":"New investor password","-1793894323":"Create or reset investor password","-1124208206":"Switch to your real account to create a DMT5 {{account_title}} {{type_title}} account.","-1271218821":"Account added","-1576792859":"Proof of identity and address are required","-1931257307":"You will need to submit proof of identity","-2026018074":"Add your Deriv MT5 <0>{{account_type_name}} account under Deriv (SVG) LLC (company no. 273 LLC 2020).","-16048185":"To create this account first we need your proof of identity and address.","-162320753":"Add your Deriv MT5 <0>{{account_type_name}} account under Deriv (BVI) Ltd, regulated by the British Virgin Islands Financial Services Commission (License no. SIBA/L/18/1114).","-1731304187":"Add your Deriv MT5 CFDs account under Deriv Investments (Europe) Limited regulated by the Malta Financial Services Authority (MFSA) (licence no. IS/70156).","-1389025684":"To create this account first we need you to resubmit your proof of identity and address.","-1627989291":"To create this account first we need you to resubmit your proof of identity.","-724308541":"Jurisdiction for your Deriv MT5 CFDs account","-479119833":"Choose a jurisdiction for your Deriv MT5 {{account_type}} account","-10956371":"You need a real account (fiat currency or cryptocurrency) in Deriv to create a real DMT5 account.","-1760596315":"Create a Deriv account","-705682181":"Malta","-194969520":"Counterparty company","-1131400885":"Deriv Investments (Europe) Limited","-409563066":"Regulator","-2073451889":"Malta Financial Services Authority (MFSA) (Licence no. IS/70156)","-362324454":"Commodities","-543177967":"Stock indices","-1089385344":"Deriv (SVG) LLC","-2019617323":"Deriv (BVI) Ltd","-112814932":"Deriv (FX) Ltd","-1747078152":"-","-1510474851":"British Virgin Islands Financial Services Commission (licence no. SIBA/L/18/1114)","-199154602":"Vanuatu Financial Services Commission","-761250329":"Labuan Financial Services Authority (Licence no. MB/18/0024)","-251202291":"Broker","-81650212":"MetaTrader 5 web","-2123571162":"Download","-941636117":"MetaTrader 5 Linux app","-2019704014":"Scan the QR code to download Deriv MT5.","-648956272":"Use this password to log in to your Deriv X accounts on the web and mobile apps.","-1814308691":"Please click on the link in the email to change your {{platform}} password.","-1282933308":"Not {{barrier}}","-968190634":"Equals {{barrier}}","-1747377543":"Under {{barrier}}","-337314714":"days","-442488432":"day","-1572548510":"Ups & Downs","-71301554":"Ins & Outs","-952298801":"Look Backs","-763273340":"Digits","-1790089996":"NEW!","-1386326276":"Barrier is a required field.","-1418742026":"Higher barrier must be higher than lower barrier.","-92007689":"Lower barrier must be lower than higher barrier.","-1095538960":"Please enter the start time in the format \"HH:MM\".","-1975910372":"Minute must be between 0 and 59.","-866277689":"Expiry time cannot be in the past.","-1455298001":"Now","-256210543":"Trading is unavailable at this time.","-28115241":"{{platform_name_trader}} is not available for this account","-453920758":"Go to {{platform_name_mt5}} dashboard","-402175529":"History","-902712434":"Deal cancellation","-988484646":"Deal cancellation (executed)","-444882676":"Deal cancellation (active)","-13423018":"Reference ID","-1551639437":"No history","-1214703885":"You have yet to update either take profit or stop loss","-880722426":"Market is closed","-504849554":"It will reopen at","-59803288":"In the meantime, try our synthetic indices. They simulate real-market volatility and are open 24/7.","-1278109940":"See open markets","-694105443":"This market is closed","-439389714":"We’re working on it","-770929448":"Go to {{platform_name_smarttrader}}","-138538812":"Log in or create a free account to place a trade.","-2036388794":"Create free account","-1813736037":"No further trading is allowed on this contract type for the current trading session. For more info, refer to our <0>terms and conditions.","-590131162":"Stay on {{website_domain}}","-1444663817":"Go to Binary.com","-1526466612":"You’ve selected a trade type that is currently unsupported, but we’re working on it.","-1043795232":"Recent positions","-1572796316":"Purchase price:","-153220091":"{{display_value}} Tick","-802374032":"Hour","-2039780875":"Purchase confirmation","-1672470173":"Require confirmation before purchasing a contract","-1342661765":"Lock contract purchase buttons","-939764287":"Charts","-1738427539":"Purchase","-1392065699":"If you select \"Rise\", you win the payout if the exit spot is strictly higher than the entry spot.","-1762566006":"If you select \"Fall\", you win the payout if the exit spot is strictly lower than the entry spot.","-1435306976":"If you select \"Allow equals\", you win the payout if exit spot is higher than or equal to entry spot for \"Rise\". Similarly, you win the payout if exit spot is lower than or equal to entry spot for \"Fall\".","-1959473569":"If you select \"Lower\", you win the payout if the exit spot is strictly lower than the barrier.","-1350745673":"If the exit spot is equal to the barrier, you don't win the payout.","-2089488446":"If you select \"Ends Between\", you win the payout if the exit spot is strictly higher than the Low barrier AND strictly lower than the High barrier.","-1876950330":"If you select \"Ends Outside\", you win the payout if the exit spot is EITHER strictly higher than the High barrier, OR strictly lower than the Low barrier.","-546460677":"If the exit spot is equal to either the Low barrier or the High barrier, you don't win the payout.","-1812957362":"If you select \"Stays Between\", you win the payout if the market stays between (does not touch) either the High barrier or the Low barrier at any time during the contract period","-220379757":"If you select \"Goes Outside\", you win the payout if the market touches either the High barrier or the Low barrier at any time during the contract period.","-1281286610":"If you select \"Matches\", you will win the payout if the last digit of the last tick is the same as your prediction.","-1929209278":"If you select \"Even\", you will win the payout if the last digit of the last tick is an even number (i.e., 2, 4, 6, 8, or 0).","-2038865615":"If you select \"Odd\", you will win the payout if the last digit of the last tick is an odd number (i.e., 1, 3, 5, 7, or 9).","-1416078023":"If you select \"Touch\", you win the payout if the market touches the barrier at any time during the contract period.","-1272255095":"If the exit spot is equal to the barrier or the new barrier (if a reset occurs), you don't win the payout.","-231957809":"Win maximum payout if the exit spot is higher than or equal to the upper barrier.","-464144986":"Win maximum payout if the exit spot is lower than or equal to the lower barrier.","-1031456093":"Win up to maximum payout if exit spot is between lower and upper barrier, in proportion to the difference between upper barrier and exit spot.","-968162707":"No payout if exit spot is above or equal to the upper barrier.","-299450697":"If you select \"High Tick\", you win the payout if the selected tick is the highest among the next five ticks.","-705681870":"By purchasing the \"High-to-Low\" contract, you'll win the multiplier times the difference between the high and low over the duration of the contract.","-420387848":"The high is the highest point ever reached by the market during the contract period.","-1666375348":"By purchasing the \"High-to-Close\" contract, you'll win the multiplier times the difference between the high and close over the duration of the contract.","-2024955268":"If you select “Up”, you will earn a profit by closing your position when the market price is higher than the entry spot.","-1598433845":"If you select “Down”, you will earn a profit by closing your position when the market price is lower than the entry spot.","-1092777202":"The Stop-out level on the chart indicates the price at which your potential loss equals your entire stake. When the market price reaches this level, your position will be closed automatically. This ensures that your loss does not exceed the amount you paid to purchase the contract.","-885323297":"These are optional parameters for each position that you open:","-584696680":"If you select “Take profit” and specify an amount that you’d like to earn, your position will be closed automatically when your profit is more than or equals to this amount. Your profit may be more than the amount you entered depending on the market price at closing.","-178096090":"“Take profit” cannot be updated. You may update it only when “Deal cancellation” expires.","-206909651":"The entry spot is the market price when your contract is processed by our servers.","-149836494":"Your transaction reference number is {{transaction_id}}","-1382749084":"Go back to trading","-1231210510":"Tick","-1239477911":"second","-1585766960":"min","-1652791614":"mins","-1977959027":"hours","-8998663":"Digit: {{last_digit}} ","-1435392215":"About deal cancellation","-1280319153":"Cancel your trade anytime within a chosen time-frame. Triggered automatically if your trade reaches the stop out level within the chosen time-frame.","-471757681":"Risk management","-976258774":"Not set","-843831637":"Stop loss","-771725194":"Deal Cancellation","-45873457":"NEW","-127118348":"Choose {{contract_type}}","-543478618":"Try checking your spelling or use a different term","-338707425":"Minimum duration is 1 day","-1003473648":"Duration: {{duration}} day","-700280380":"Deal cancel. fee","-741395299":"{{value}}","-1527492178":"Purchase Locked","-725375562":"You can lock/unlock the purchase button from the Settings menu","-1358367903":"Stake","-1513281069":"Barrier 2","-390994177":"Should be between {{min}} and {{max}}","-2055106024":"Toggle between advanced and simple duration settings","-1012793015":"End time","-2037881712":"Your contract will be closed automatically at the next available asset price on <0>.","-629549519":"Commission <0/>","-2131859340":"Stop out <0/>","-1686280757":"<0>{{commission_percentage}}% of (<1/> * {{multiplier}})","-1043117679":"When your current loss equals or exceeds {{stop_out_percentage}}% of your stake, your contract will be closed at the nearest available asset price.","-477998532":"Your contract is closed automatically when your loss is more than or equals to this amount.","-243332856":"Last digit stats for latest 1000 ticks for {{ underlying_name }}","-339236213":"Multiplier","-461955353":"purchase price","-172348735":"profit","-1624674721":"contract type","-1644154369":"entry spot time","-510792478":"entry spot price","-1974651308":"exit spot time","-1600267387":"exit spot price","-514917720":"barrier","-2004386410":"Win","-1072292603":"No Change","-1631669591":"string","-1768939692":"number","-795152863":"green","-1640576332":"blue","-804983649":"yellow","-94281841":"red","-1242470654":"Earned money","-1429914047":"Low","-1893628957":"Open Time","-1896106455":"10 minutes","-999492762":"15 minutes","-1978767852":"30 minutes","-293628675":"1 hour","-385604445":"2 hours","-1965813351":"4 hours","-525321833":"1 day","-1691868913":"Touch/No Touch","-151151292":"Asians","-1048378719":"Reset Call/Reset Put","-1282312809":"High/Low Ticks","-1237186896":"Only Ups/Only Downs","-529846150":"Seconds","-2035315547":"Low barrier","-1635771697":"middle","-1529389221":"Histogram","-1819860668":"MACD","-1750896349":"D'Alembert","-102980621":"The Oscar's Grind Strategy is a low-risk positive progression strategy that first appeared in 1965. By using this strategy, the size of your contract will increase after successful trades, but remains unchanged after unsuccessful trades.","-462715374":"Untitled Bot","-2002533437":"Custom function","-215053350":"with:","-1257232389":"Specify a parameter name:","-1885742588":"with: ","-188442606":"function {{ function_name }} {{ function_params }} {{ dummy }}","-313112159":"This block is similar to the one above, except that this returns a value. The returned value can be assigned to a variable of your choice.","-1783320173":"Prematurely returns a value within a function","-1485521724":"Conditional return","-1482801393":"return","-46453136":"get","-1838027177":"first","-1182568049":"Get list item","-1675454867":"This block gives you the value of a specific item in a list, given the position of the item. It can also remove the item from the list.","-381501912":"This block creates a list of items from an existing list, using specific item positions.","-426766796":"Get sub-list","-1679267387":"in list {{ input_list }} find {{ first_or_last }} occurence of item {{ input_value }}","-2087996855":"This block gives you the position of an item in a given list.","-422008824":"Checks if a given list is empty","-1343887675":"This block checks if a given list is empty. It returns “True” if the list is empty, “False” if otherwise.","-1548407578":"length of {{ input_list }}","-1786976254":"This block gives you the total number of items in a given list.","-2113424060":"create list with item {{ input_item }} repeated {{ number }} times","-1955149944":"Repeat an item","-434887204":"set","-197957473":"as","-851591741":"Set list item","-1874774866":"ascending","-1457178757":"Sorts the items in a given list","-350986785":"Sort list","-324118987":"make text from list","-155065324":"This block creates a list from a given string of text, splitting it with the given delimiter. It can also join items in a list into a string of text.","-459051222":"Create list from text","-977241741":"List Statement","-451425933":"{{ break_or_continue }} of loop","-323735484":"continue with next iteration","-1592513697":"Break out/continue","-713658317":"for each item {{ variable }} in list {{ input_list }}","-1825658540":"Iterates through a given list","-952264826":"repeat {{ number }} times","-887757135":"Repeat (2)","-1608672233":"This block is similar to the block above, except that the number of times it repeats is determined by a given variable.","-533154446":"Repeat (1)","-1059826179":"while","-1893063293":"until","-279445533":"Repeat While/Until","-1003706492":"User-defined variable","-359097473":"set {{ variable }} to {{ value }}","-1588521055":"Sets variable value","-980448436":"Set variable","-1538570345":"Get the last trade information and result, then trade again.","-222725327":"Here is where you can decide if your bot should continue trading.","-1638446329":"Result is {{ win_or_loss }}","-1968029988":"Last trade result","-1588406981":"You can check the result of the last trade with this block.","-1459154781":"Contract Details: {{ contract_detail }}","-1652241017":"Reads a selected property from contract details list","-2082345383":"These blocks transfer control to the Purchase conditions block.","-172574065":"This block will transfer the control back to the Purchase conditions block, enabling you to purchase another contract.","-403103225":"restart","-837044282":"Ask Price {{ contract_type }}","-1033917049":"This block returns the purchase price for the selected trade type.","-1863737684":"2. Purchase conditions","-228133740":"Specify contract type and purchase conditions.","-1291088318":"Purchase conditions","-1098726473":"This block is mandatory. Only one copy of this block is allowed. You can place the Purchase block (see below) here as well as conditional blocks to define your purchase conditions.","-1777988407":"Payout {{ contract_type }}","-511116341":"This block returns the potential payout for the selected trade type","-1943211857":"Potential payout","-813464969":"buy","-53668380":"True if active contract can be sold before expiration at current market price","-43337012":"Sell profit/loss","-2112866691":"Returns the profit/loss from selling at market price","-2132417588":"This block gives you the potential profit or loss if you decide to sell your contract.","-1360483055":"set {{ variable }} to Bollinger Bands {{ band_type }} {{ dummy }}","-20542296":"Calculates Bollinger Bands (BB) from a list with a period","-1951109427":"Bollinger Bands (BB)","-857226052":"BB is a technical analysis indicator that’s commonly used by traders. The idea behind BB is that the market price stays within the upper and lower bands for 95% of the time. The bands are the standard deviations of the market price, while the line in the middle is a simple moving average line. If the price reaches either the upper or lower band, there’s a possibility of a trend reversal.","-325196350":"set {{ variable }} to Bollinger Bands Array {{ band_type }} {{ dummy }}","-199689794":"Similar to BB. This block gives you a choice of returning the values of either the lower band, higher band, or the SMA line in the middle.","-920690791":"Calculates Exponential Moving Average (EMA) from a list with a period","-960641587":"EMA is a type of moving average that places more significance on the most recent data points. It’s also known as the exponentially weighted moving average. EMA is different from SMA in that it reacts more significantly to recent price changes.","-1557584784":"set {{ variable }} to Exponential Moving Average Array {{ dummy }}","-32333344":"Calculates Moving Average Convergence Divergence (MACD) from a list","-628573413":"MACD is calculated by subtracting the long-term EMA (26 periods) from the short-term EMA (12 periods). If the short-term EMA is greater or lower than the long-term EMA than there’s a possibility of a trend reversal.","-1133676960":"Fast EMA Period {{ input_number }}","-883166598":"Period {{ input_period }}","-450311772":"set {{ variable }} to Relative Strength Index {{ dummy }}","-1861493523":"Calculates Relative Strength Index (RSI) list from a list of values with a period","-880048629":"Calculates Simple Moving Average (SMA) from a list with a period","-1150972084":"Market direction","-276935417":"This block is used to determine if the market price moves in the selected direction or not. It gives you a value of “True” or “False”.","-764931948":"in candle list get # from end {{ input_number }}","-924607337":"Returns the last digit of the latest tick","-560033550":"Returns the list of last digits of 1000 recent tick values","-74062476":"Make a List of {{ candle_property }} values in candles list with interval: {{ candle_interval_type }}","-1556495906":"Returns a list of specific values from a candle list according to selected time interval","-166816850":"Create a list of candle values (1)","-1261436901":"Candles List","-1174859923":"Read the selected candle value","-1972165119":"Read candle value (1)","-1956100732":"You can use this block to analyze the ticks, regardless of your trades","-443243232":"The content of this block is called on every tick. Place this block outside of any root block.","-641399277":"Last Tick","-1628954567":"Returns the value of the last tick","-1332756793":"This block gives you the value of the last tick.","-2134440920":"Last Tick String","-1466340125":"Tick value","-467913286":"Tick value Description","-785831237":"This block gives you a list of the last 1000 tick values.","-1546430304":"Tick List String Description","-1788626968":"Returns \"True\" if the given candle is black","-436010611":"Make a list of {{ candle_property }} values from candles list {{ candle_list }}","-1384340453":"Returns a list of specific values from a given candle list","-584859539":"Create a list of candle values (2)","-2010558323":"Read {{ candle_property }} value in candle {{ input_candle }}","-2846417":"This block gives you the selected candle value.","-1587644990":"Read candle value (2)","-1202212732":"This block returns account balance","-1737837036":"Account balance","-1963883840":"Put your blocks in here to prevent them from being removed","-1284013334":"Use this block if you want some instructions to be ignored when your bot runs. Instructions within this block won’t be executed.","-1217253851":"Log","-1987568069":"Warn","-104925654":"Console","-1956819233":"This block displays messages in the developer's console with an input that can be either a string of text, a number, boolean, or an array of data.","-1450461842":"Load block from URL: {{ input_url }}","-1088614441":"Loads blocks from URL","-1747943728":"Loads from URL","-2105753391":"Notify Telegram {{ dummy }} Access Token: {{ input_access_token }} Chat ID: {{ input_chat_id }} Message: {{ input_message }}","-1008209188":"Sends a message to Telegram","-1218671372":"Displays a notification and optionally play selected sound","-2099284639":"This block gives you the total profit/loss of your trading strategy since your bot started running. You can reset this by clicking “Clear stats” on the Transaction Stats window, or by refreshing this page in your browser.","-683825404":"Total Profit String","-718220730":"Total Profit String Description","-1861858493":"Number of runs","-264195345":"Returns the number of runs","-303451917":"This block gives you the total number of times your bot has run. You can reset this by clicking “Clear stats” on the Transaction Stats window, or by refreshing this page in your browser.","-2132861129":"Conversion Helper Block","-74095551":"Seconds Since Epoch","-15528039":"Returns the number of seconds since January 1st, 1970","-729807788":"This block returns the number of seconds since January 1st, 1970.","-1370107306":"{{ dummy }} {{ stack_input }} Run after {{ number }} second(s)","-558838192":"Delayed run","-1975250999":"This block converts the number of seconds since the Unix Epoch (1 January 1970) into a string of text representing the date and time.","-702370957":"Convert to date/time","-982729677":"Convert to timestamp","-311268215":"This block converts a string of text that represents the date and time into seconds since the Unix Epoch (1 January 1970). The time and time zone offset are optional. Example: 2019-01-01 21:03:45 GMT+0800 will be converted to 1546347825.","-1797602591":"Stop Loss: {{ currency }} {{ stop_loss }}","-1214929127":"Stop loss must be a positive number.","-780745489":"If the contract type is “Both”, then the Purchase Conditions should include both Rise and Fall using the “Conditional Block\"","-2142851225":"Multiplier trade options","-625636913":"Amount must be a positive number.","-1466383897":"Duration: {{ duration_unit }} {{ duration_value }}","-440702280":"Trade options","-1193894978":"Define your trade options such as duration and stake. Some options are only applicable for certain trade types.","-46523443":"Duration value is not allowed. To run the bot, please enter a value between {{min}} to {{max}}.","-1483427522":"Trade Type: {{ trade_type_category }} > {{ trade_type }}","-323348124":"1. Trade parameters","-1671903503":"Run once at start:","-783173909":"Trade options:","-376956832":"Here is where you define the parameters of your contract.","-1244007240":"if {{ condition }} then","-1577206704":"else if","-33796979":"true","-1434883449":"This is a single block that returns a boolean value, either true or false.","-1946404450":"Compares two values","-979918560":"This block converts the boolean value (true or false) to its opposite.","-2047257743":"Null","-1274387519":"Performs selected logic operation","-766386234":"This block performs the \"AND\" or the \"OR\" logic operation.","-790995537":"test {{ condition }}","-1860211657":"if false {{ return_value }}","-1643760249":"This block tests if a given value is true or false and returns “True” or “False” accordingly.","-1551875333":"Test value","-52486882":"Arithmetical operations","-1010436425":"This block adds the given number to the selected variable","-999773703":"Change variable","-1272091683":"Mathematical constants","-1396629894":"constrain {{ number }} low {{ low_number }} high {{ high_number }}","-425224412":"This block constrains a given number so that it is within a set range.","-2072551067":"Constrain within a range","-43523220":"remainder of {{ number1 }} ÷ {{ number2 }}","-1291857083":"Returns the remainder after a division","-592154850":"Remainder after division","-736665095":"Returns the remainder after the division of the given numbers.","-1266992960":"Math Number Description","-77191651":"{{ number }} is {{ type }}","-817881230":"even","-142319891":"odd","-1000789681":"whole","-1735674752":"Test a number","-1017805068":"This block tests a given number according to the selection and it returns a value of “True” or “False”. Available options: Even, Odd, Prime, Whole, Positive, Negative, Divisible","-1858332062":"Number","-1053492479":"Enter an integer or fractional number into this block. Please use `.` as a decimal separator for fractional numbers.","-927097011":"sum","-1653202295":"max","-1555878023":"average","-1748351061":"mode","-992067330":"Aggregate operations","-1691561447":"This block gives you a random fraction between 0.0 to 1.0","-523625686":"Random fraction number","-933024508":"Rounds a given number to an integer","-1656927862":"This block rounds a given number according to the selection: round, round up, round down.","-1495304618":"absolute","-61210477":"Operations on a given number","-181644914":"This block performs the selected operations to a given number.","-840732999":"to {{ variable }} append text {{ input_text }}","-1469497908":"Appends a given text to a variable","-1851366276":"Text Append","-1666316828":"Appends a given text to a variable.","-1902332770":"Transform {{ input_text }} to {{ transform_type }}","-1489004405":"Title Case","-904432685":"Changes text case accordingly","-882381096":"letter #","-1027605069":"letter # from end","-2066990284":"random letter","-337089610":"in text {{ input_text1 }} find {{ first_or_last }} occurence of text {{ input_text2 }}","-1966694141":"Searches through a string of text for a specific occurrence of a given character or word, and returns the position.","-697543841":"Text join","-141160667":"length of {{ input_text }}","-1133072029":"Text String Length","-1109723338":"print {{ input_text }}","-736668830":"Print","-1821552998":"trim spaces from {{ side }} of {{ input_text }}","-801766026":"right side","-474779821":"Trims spaces","-1219239717":"One or more mandatory blocks are missing from your workspace. Please add the required block(s) and then try again.","-250761331":"One or more mandatory blocks are disabled in your workspace. Please enable the required block(s) and then try again.","-1687036846":"Download block","-1266781295":"Expand","-894560707":"function","-1867119688":"Duplicate","-610728049":"Rearrange Vertically","-2033146714":"Collapse All Blocks","-958601558":"Delete Block","-1193267384":"Detach Block","-1750478127":"New variable name","-1061878051":"Y","-2047029150":"Unable to load the block file.","-1410769167":"Target must be an XML file","-609157479":"This URL is already loaded","-241945454":"Proposals are not ready","-1087890592":"Maximum loss amount reached","-1030545878":"You are rate limited for: {{ message_type }}, retrying in {{ delay }}s (ID: {{ request }})","-490766438":"You are disconnected, retrying in {{ delay }}s","-1389975609":"unknown","-1900515692":"Duration must be a positive integer","-245297595":"Please login","-1445046468":"Given candle is not valid","-1891622945":"{{hourPast}}h ago","-1723202824":"Please grant permission to view and manage Google Drive folders created with Binary Bot","-210953314":"There was an error retrieving data from Google Drive","-1521930919":"Select a Binary Bot strategy","-845301264":"There was an error listing files from Google Drive","-1452908801":"There was an error retrieving files from Google Drive","-232617824":"There was an error processing your request","-1800672151":"GBP Index","-1904030160":"Transaction performed by (App ID: {{app_id}})","-513103225":"Transaction time","-2066666313":"Credit/Debit","-2140412463":"Buy price","-1981004241":"Sell time","-600828210":"Indicative profit/loss","-706219815":"Indicative price","-3423966":"Take profit<0 />Stop loss","-2082644096":"Current stake","-538215347":"Net deposits","-280147477":"All transactions","-137444201":"Buy","-130601012":"Please select duration","-232254547":"Custom","-1577570698":"Start date","-1251526905":"Last 7 days","-360975483":"You've made no transactions of this type during this period.","-2092611555":"Sorry, this app is unavailable in your current location.","-1488537825":"If you have an account, log in to continue.","-555592125":"Unfortunately, trading options isn't possible in your country","-1571816573":"Sorry, trading is unavailable in your current location.","-1714959941":"This chart display is not ideal for tick contracts","-1254554534":"Please change the chart duration to tick for a better trading experience.","-1603581277":"minutes","-1658230823":"Contract was sold for <0 />.","-1905867404":"Contract cancelled","-922253974":"Rise/Fall","-1361254291":"Higher/Lower","-335816381":"Ends In/Ends Out","-1789807039":"Asian Up/Asian Down","-330437517":"Matches/Differs","-657360193":"Over/Under","-558031309":"High Tick/Low Tick"} \ No newline at end of file diff --git a/packages/translations/src/translations/ach.json b/packages/translations/src/translations/ach.json index 983a99cfe32b..7f82c01c156c 100644 --- a/packages/translations/src/translations/ach.json +++ b/packages/translations/src/translations/ach.json @@ -91,6 +91,7 @@ "133536621": "crwdns68948:0crwdne68948:0", "138055021": "crwdns838558:0crwdne838558:0", "139454343": "crwdns123580:0crwdne123580:0", + "141265840": "crwdns1142764:0crwdne1142764:0", "141626595": "crwdns156248:0crwdne156248:0", "142050447": "crwdns156970:0{{ variable }}crwdne156970:0", "142390699": "crwdns156250:0crwdne156250:0", @@ -105,7 +106,6 @@ "157593038": "crwdns156972:0{{ start_number }}crwdnd156972:0{{ end_number }}crwdne156972:0", "160746023": "crwdns889074:0crwdne889074:0", "160863687": "crwdns156258:0crwdne156258:0", - "162727973": "crwdns160292:0crwdne160292:0", "164112826": "crwdns70416:0crwdne70416:0", "164564432": "crwdns167943:0crwdne167943:0", "165294347": "crwdns167945:0crwdne167945:0", @@ -139,6 +139,7 @@ "204863103": "crwdns85863:0crwdne85863:0", "206010672": "crwdns117780:0{{ delete_count }}crwdne117780:0", "207824122": "crwdns164114:0crwdne164114:0", + "209533725": "crwdns1142766:0{{amount}}crwdnd1142766:0{{currency}}crwdne1142766:0", "210385770": "crwdns160140:0crwdne160140:0", "211224838": "crwdns80015:0crwdne80015:0", "211461880": "crwdns157636:0crwdne157636:0", @@ -251,6 +252,7 @@ "347039138": "crwdns69020:0crwdne69020:0", "348951052": "crwdns167957:0crwdne167957:0", "349047911": "crwdns69022:0crwdne69022:0", + "349110642": "crwdns1142768:0{{payment_agent}}crwdne1142768:0", "351744408": "crwdns69024:0crwdne69024:0", "352363702": "crwdns1047844:0crwdne1047844:0", "353731490": "crwdns69026:0crwdne69026:0", @@ -429,6 +431,7 @@ "587577425": "crwdns169597:0crwdne169597:0", "589609985": "crwdns162046:0{{identifier_title}}crwdne162046:0", "593459109": "crwdns156328:0crwdne156328:0", + "595080994": "crwdns1142770:0crwdne1142770:0", "595136687": "crwdns121876:0crwdne121876:0", "597089493": "crwdns69104:0crwdne69104:0", "597481571": "crwdns160310:0crwdne160310:0", @@ -464,7 +467,9 @@ "640730141": "crwdns156334:0crwdne156334:0", "641420532": "crwdns80161:0crwdne80161:0", "642210189": "crwdns160314:0crwdne160314:0", + "642393128": "crwdns1142772:0crwdne1142772:0", "642546661": "crwdns156336:0crwdne156336:0", + "642995056": "crwdns1142774:0crwdne1142774:0", "643014039": "crwdns80163:0crwdne80163:0", "644150241": "crwdns161638:0crwdne161638:0", "645016681": "crwdns123670:0crwdne123670:0", @@ -520,7 +525,6 @@ "706755289": "crwdns69142:0crwdne69142:0", "708055868": "crwdns876420:0crwdne876420:0", "710123510": "crwdns157000:0{{ while_or_until }}crwdnd157000:0{{ boolean }}crwdne157000:0", - "711029377": "crwdns160316:0crwdne160316:0", "711999057": "crwdns123684:0crwdne123684:0", "712101776": "crwdns156348:0crwdne156348:0", "712635681": "crwdns84895:0crwdne84895:0", @@ -626,7 +630,6 @@ "845213721": "crwdns158958:0crwdne158958:0", "845304111": "crwdns157004:0{{ input_number }}crwdne157004:0", "847888634": "crwdns171260:0crwdne171260:0", - "849805216": "crwdns163600:0crwdne163600:0", "850582774": "crwdns320624:0crwdne320624:0", "851054273": "crwdns89276:0crwdne89276:0", "851264055": "crwdns69192:0crwdne69192:0", @@ -647,6 +650,7 @@ "866496238": "crwdns156362:0crwdne156362:0", "868826608": "crwdns496842:0{{brand_website_name}}crwdne496842:0", "869823595": "crwdns70448:0crwdne70448:0", + "869993298": "crwdns1142776:0crwdne1142776:0", "872549975": "crwdns160322:0{{number}}crwdne160322:0", "872661442": "crwdns620040:0{{prev_email}}crwdnd620040:0{{changed_email}}crwdne620040:0", "872817404": "crwdns125078:0crwdne125078:0", @@ -691,6 +695,7 @@ "937682366": "crwdns876424:0crwdne876424:0", "937831119": "crwdns80267:0crwdne80267:0", "937992258": "crwdns117734:0crwdne117734:0", + "938500877": "crwdns1142778:0{{ text }}crwdne1142778:0", "938988777": "crwdns69218:0crwdne69218:0", "940950724": "crwdns80269:0{{website_name}}crwdne80269:0", "943535887": "crwdns164120:0crwdne164120:0", @@ -707,7 +712,6 @@ "948156236": "crwdns170640:0{{type}}crwdne170640:0", "948545552": "crwdns170642:0crwdne170642:0", "949859957": "crwdns80273:0crwdne80273:0", - "952655566": "crwdns160328:0crwdne160328:0", "952927527": "crwdns838576:0crwdne838576:0", "955352264": "crwdns496846:0{{platform_name_dxtrade}}crwdne496846:0", "956448295": "crwdns158692:0crwdne158692:0", @@ -741,7 +745,6 @@ "1004127734": "crwdns165819:0crwdne165819:0", "1006458411": "crwdns89294:0crwdne89294:0", "1006664890": "crwdns69236:0crwdne69236:0", - "1008240921": "crwdns160332:0crwdne160332:0", "1009032439": "crwdns80297:0crwdne80297:0", "1010198306": "crwdns70452:0crwdne70452:0", "1012102263": "crwdns123738:0crwdne123738:0", @@ -785,6 +788,7 @@ "1047389068": "crwdns80321:0crwdne80321:0", "1048947317": "crwdns117808:0{{clients_country}}crwdne117808:0", "1049384824": "crwdns69252:0crwdne69252:0", + "1050128247": "crwdns1142780:0crwdne1142780:0", "1050844889": "crwdns80325:0crwdne80325:0", "1052137359": "crwdns159370:0crwdne159370:0", "1052779010": "crwdns167975:0crwdne167975:0", @@ -843,7 +847,6 @@ "1127149819": "crwdns158694:0crwdne158694:0", "1128404172": "crwdns69272:0crwdne69272:0", "1129124569": "crwdns89302:0crwdne89302:0", - "1129296176": "crwdns160344:0crwdne160344:0", "1129842439": "crwdns89304:0crwdne89304:0", "1130744117": "crwdns158960:0crwdne158960:0", "1130791706": "crwdns85873:0crwdne85873:0", @@ -885,6 +888,7 @@ "1181396316": "crwdns70458:0crwdne70458:0", "1181770592": "crwdns69286:0crwdne69286:0", "1183007646": "crwdns84927:0crwdne84927:0", + "1188316409": "crwdns1142782:0crwdne1142782:0", "1188980408": "crwdns69290:0crwdne69290:0", "1189368976": "crwdns80389:0crwdne80389:0", "1189886490": "crwdns496856:0{{platform_name_mt5}}crwdnd496856:0{{platform_name_dxtrade}}crwdne496856:0", @@ -1019,6 +1023,7 @@ "1346339408": "crwdns80465:0crwdne80465:0", "1347071802": "crwdns117820:0{{minutePast}}crwdne117820:0", "1348009461": "crwdns165245:0crwdne165245:0", + "1349133669": "crwdns1142784:0crwdne1142784:0", "1349289354": "crwdns156414:0crwdne156414:0", "1349295677": "crwdns157026:0{{ input_text }}crwdnd157026:0{{ position1 }}crwdnd157026:0{{ index1 }}crwdnd157026:0{{ position2 }}crwdnd157026:0{{ index2 }}crwdne157026:0", "1351152200": "crwdns162060:0crwdne162060:0", @@ -1042,6 +1047,7 @@ "1367990698": "crwdns80477:0crwdne80477:0", "1369709538": "crwdns159376:0crwdne159376:0", "1371193412": "crwdns69362:0crwdne69362:0", + "1371555192": "crwdns1142786:0crwdne1142786:0", "1371641641": "crwdns156418:0crwdne156418:0", "1371911731": "crwdns838596:0{{legal_entity_name}}crwdne838596:0", "1374627690": "crwdns123804:0crwdne123804:0", @@ -1062,7 +1068,6 @@ "1393903598": "crwdns157034:0{{ return_value }}crwdne157034:0", "1396179592": "crwdns80493:0crwdne80493:0", "1396417530": "crwdns80495:0crwdne80495:0", - "1397046738": "crwdns160366:0crwdne160366:0", "1397628594": "crwdns164875:0crwdne164875:0", "1399620764": "crwdns123808:0crwdne123808:0", "1400637999": "crwdns117184:0crwdne117184:0", @@ -1150,6 +1155,7 @@ "1502039206": "crwdns117826:0{{barrier}}crwdne117826:0", "1502325741": "crwdns125086:0crwdne125086:0", "1503618738": "crwdns84959:0crwdne84959:0", + "1505420815": "crwdns1142788:0crwdne1142788:0", "1505898522": "crwdns85881:0crwdne85881:0", "1509570124": "crwdns117828:0{{buy_value}}crwdne117828:0", "1509678193": "crwdns80541:0crwdne80541:0", @@ -1220,6 +1226,7 @@ "1613273139": "crwdns1092146:0crwdne1092146:0", "1613633732": "crwdns123830:0crwdne123830:0", "1615897837": "crwdns157040:0{{ input_number }}crwdne157040:0", + "1618809782": "crwdns1142790:0crwdne1142790:0", "1619070150": "crwdns123832:0crwdne123832:0", "1620278321": "crwdns157658:0crwdne157658:0", "1620346110": "crwdns80573:0crwdne80573:0", @@ -1249,7 +1256,6 @@ "1652968048": "crwdns170452:0crwdne170452:0", "1652976865": "crwdns89342:0crwdne89342:0", "1653136377": "crwdns160170:0crwdne160170:0", - "1653159197": "crwdns160388:0crwdne160388:0", "1653180917": "crwdns156462:0crwdne156462:0", "1654365787": "crwdns69466:0crwdne69466:0", "1654496508": "crwdns84965:0crwdne84965:0", @@ -1342,7 +1348,6 @@ "1766212789": "crwdns1047716:0crwdne1047716:0", "1766993323": "crwdns120980:0crwdne120980:0", "1767429330": "crwdns1060500:0crwdne1060500:0", - "1767726621": "crwdns160400:0crwdne160400:0", "1768861315": "crwdns80633:0crwdne80633:0", "1768918213": "crwdns80635:0crwdne80635:0", "1769068935": "crwdns167691:0crwdne167691:0", @@ -1350,7 +1355,6 @@ "1771592738": "crwdns69522:0crwdne69522:0", "1772532756": "crwdns121894:0crwdne121894:0", "1777847421": "crwdns157662:0crwdne157662:0", - "1778815073": "crwdns160402:0{{website_name}}crwdne160402:0", "1778893716": "crwdns167989:0crwdne167989:0", "1779519903": "crwdns80641:0crwdne80641:0", "1780770384": "crwdns70484:0crwdne70484:0", @@ -1397,8 +1401,10 @@ "1830520348": "crwdns496882:0{{platform_name_dxtrade}}crwdne496882:0", "1833481689": "crwdns80665:0crwdne80665:0", "1833499833": "crwdns876444:0crwdne876444:0", + "1836767074": "crwdns1142792:0crwdne1142792:0", "1837762008": "crwdns167991:0crwdne167991:0", "1838639373": "crwdns158710:0crwdne158710:0", + "1839021527": "crwdns1142794:0crwdne1142794:0", "1840865068": "crwdns157048:0{{ variable }}crwdnd157048:0{{ dummy }}crwdne157048:0", "1841788070": "crwdns80667:0crwdne80667:0", "1841996888": "crwdns125096:0crwdne125096:0", @@ -1418,11 +1424,13 @@ "1851776924": "crwdns69550:0crwdne69550:0", "1851951013": "crwdns69552:0crwdne69552:0", "1854480511": "crwdns167995:0crwdne167995:0", + "1854874899": "crwdns1142796:0crwdne1142796:0", "1855566768": "crwdns69556:0crwdne69556:0", "1856485118": "crwdns1092148:0crwdne1092148:0", "1858251701": "crwdns80673:0crwdne80673:0", "1859308030": "crwdns921088:0crwdne921088:0", "1863053247": "crwdns167273:0crwdne167273:0", + "1863731653": "crwdns1142798:0crwdne1142798:0", "1866811212": "crwdns161260:0crwdne161260:0", "1866836018": "crwdns124346:0crwdne124346:0", "1867217564": "crwdns69560:0crwdne69560:0", @@ -1475,6 +1483,7 @@ "1918633767": "crwdns170720:0crwdne170720:0", "1918796823": "crwdns89372:0crwdne89372:0", "1919030163": "crwdns156488:0crwdne156488:0", + "1919594496": "crwdns1142800:0{{website_name}}crwdnd1142800:0{{website_name}}crwdne1142800:0", "1920217537": "crwdns69584:0crwdne69584:0", "1920468180": "crwdns84981:0crwdne84981:0", "1921634159": "crwdns159386:0crwdne159386:0", @@ -1563,7 +1572,6 @@ "2021037737": "crwdns160410:0crwdne160410:0", "2023659183": "crwdns80759:0crwdne80759:0", "2023762268": "crwdns123870:0crwdne123870:0", - "2024107855": "crwdns160412:0{{payment_agent}}crwdne160412:0", "2025339348": "crwdns158718:0crwdne158718:0", "2027625329": "crwdns69612:0crwdne69612:0", "2027696535": "crwdns80765:0crwdne80765:0", @@ -2133,7 +2141,6 @@ "-749765720": "crwdns168861:0{{currency_code}}crwdne168861:0", "-803546115": "crwdns168867:0crwdne168867:0", "-1463156905": "crwdns161278:0crwdne161278:0", - "-316545835": "crwdns781952:0crwdne781952:0", "-1309258714": "crwdns781954:0crwdne781954:0", "-1247676678": "crwdns781956:0crwdne781956:0", "-816476007": "crwdns781958:0crwdne781958:0", @@ -2144,12 +2151,17 @@ "-1979554765": "crwdns160502:0crwdne160502:0", "-1186807402": "crwdns81525:0crwdne81525:0", "-1254233806": "crwdns781960:0crwdne781960:0", - "-1179992129": "crwdns160520:0crwdne160520:0", - "-1137412124": "crwdns171288:0crwdne171288:0", - "-460879294": "crwdns160524:0crwdne160524:0", - "-596416199": "crwdns160504:0crwdne160504:0", - "-1169636644": "crwdns160506:0crwdne160506:0", + "-1491457729": "crwdns1142802:0crwdne1142802:0", + "-142563298": "crwdns1142804:0crwdne1142804:0", + "-1023961762": "crwdns1142806:0crwdne1142806:0", + "-552873274": "crwdns1142808:0crwdne1142808:0", + "-880645086": "crwdns1142810:0crwdne1142810:0", "-118683067": "crwdns160508:0crwdne160508:0", + "-1125090734": "crwdns1142812:0crwdne1142812:0", + "-1924707324": "crwdns1142814:0crwdne1142814:0", + "-1474202916": "crwdns165895:0crwdne165895:0", + "-511423158": "crwdns1142816:0crwdne1142816:0", + "-2059278156": "crwdns1142818:0{{website_name}}crwdne1142818:0", "-1201279468": "crwdns171286:0crwdne171286:0", "-1787304306": "crwdns168667:0crwdne168667:0", "-60779216": "crwdns168011:0crwdne168011:0", @@ -2196,6 +2208,7 @@ "-1612346919": "crwdns165881:0crwdne165881:0", "-89973258": "crwdns117886:0{{seconds}}crwdne117886:0", "-1059419768": "crwdns160478:0crwdne160478:0", + "-316545835": "crwdns781952:0crwdne781952:0", "-949073402": "crwdns781950:0crwdne781950:0", "-1752211105": "crwdns170866:0crwdne170866:0", "-598073640": "crwdns165211:0crwdne165211:0", @@ -2244,7 +2257,6 @@ "-2004264970": "crwdns165963:0crwdne165963:0", "-1707299138": "crwdns165865:0{{currency_symbol}}crwdne165865:0", "-38063175": "crwdns165869:0{{account_text}}crwdne165869:0", - "-1474202916": "crwdns165895:0crwdne165895:0", "-705272444": "crwdns160476:0crwdne160476:0", "-2024958619": "crwdns160432:0crwdne160432:0", "-130833284": "crwdns168547:0crwdne168547:0", diff --git a/packages/translations/src/translations/ar.json b/packages/translations/src/translations/ar.json index 0719c38a9dbc..e4ee633ab1a6 100644 --- a/packages/translations/src/translations/ar.json +++ b/packages/translations/src/translations/ar.json @@ -91,6 +91,7 @@ "133536621": "and", "138055021": "Synthetic indices", "139454343": "Confirm my limits", + "141265840": "Funds transfer information", "141626595": "Make sure your device has a working camera", "142050447": "set {{ variable }} to create text with", "142390699": "Connected to your mobile", @@ -105,7 +106,6 @@ "157593038": "random integer from {{ start_number }} to {{ end_number }}", "160746023": "Tether as an Omni token (USDT) is a version of Tether that is hosted on the Omni layer on the Bitcoin blockchain.", "160863687": "Camera not detected", - "162727973": "Please enter a valid payment agent ID.", "164112826": "This block allows you to load blocks from a URL if you have them stored on a remote server, and they will be loaded only when your bot runs.", "164564432": "Deposits are temporarily unavailable due to system maintenance. You can make your deposits when the maintenance is complete.", "165294347": "Please set your country of residence in your account settings to access the cashier.", @@ -139,6 +139,7 @@ "204863103": "Exit time", "206010672": "Delete {{ delete_count }} Blocks", "207824122": "Please withdraw your funds from the following Deriv account(s):", + "209533725": "You’ve transferred {{amount}} {{currency}}", "210385770": "If you have an active account, please log in to continue. Otherwise, please sign up.", "211224838": "Investment", "211461880": "Common names and surnames are easy to guess", @@ -251,6 +252,7 @@ "347039138": "Iterate (2)", "348951052": "Your cashier is currently locked", "349047911": "Over", + "349110642": "<0>{{payment_agent}}<1>'s contact details", "351744408": "Tests if a given text string is empty", "352363702": "You may see links to websites with a fake Deriv login page where you’ll get scammed for your money.", "353731490": "Job done", @@ -429,6 +431,7 @@ "587577425": "Secure my account", "589609985": "Linked with {{identifier_title}}", "593459109": "Try a different currency", + "595080994": "Example: CR123456789", "595136687": "Save Strategy", "597089493": "Here is where you can decide to sell your contract before it expires. Only one copy of this block is allowed.", "597481571": "DISCLAIMER", @@ -464,7 +467,9 @@ "640730141": "Refresh this page to restart the identity verification process", "641420532": "We've sent you an email", "642210189": "Please check your email for the verification link to complete the process.", + "642393128": "Enter amount", "642546661": "Upload back of license from your computer", + "642995056": "Email", "643014039": "The trade length of your purchased contract.", "644150241": "The number of contracts you have won since you last cleared your stats.", "645016681": "Trading frequency in other financial instruments", @@ -520,7 +525,6 @@ "706755289": "This block performs trigonometric functions.", "708055868": "Driving licence number", "710123510": "repeat {{ while_or_until }} {{ boolean }}", - "711029377": "Please confirm the transaction details in order to complete the withdrawal:", "711999057": "Successful", "712101776": "Take a photo of your passport photo page", "712635681": "This block gives you the selected candle value from a list of candles. You can choose from open price, close price, high price, low price, and open time.", @@ -626,7 +630,6 @@ "845213721": "Logout", "845304111": "Slow EMA Period {{ input_number }}", "847888634": "Please withdraw all your funds.", - "849805216": "Choose an agent", "850582774": "Please update your personal info", "851054273": "If you select \"Higher\", you win the payout if the exit spot is strictly higher than the barrier.", "851264055": "Creates a list with a given item repeated for a specific number of times.", @@ -647,6 +650,7 @@ "866496238": "Make sure your license details are clear to read, with no blur or glare", "868826608": "Excluded from {{brand_website_name}} until", "869823595": "Function", + "869993298": "Minimum withdrawal", "872549975": "You have {{number}} transfers remaining for today.", "872661442": "Are you sure you want to update email <0>{{prev_email}} to <1>{{changed_email}}?", "872817404": "Entry Spot Time", @@ -691,6 +695,7 @@ "937682366": "Upload both of these documents to prove your identity.", "937831119": "Last name*", "937992258": "Table", + "938500877": "{{ text }}. <0>You can view the summary of this transaction in your email.", "938988777": "High barrier", "940950724": "This trade type is currently not supported on {{website_name}}. Please go to <0>Binary.com for details.", "943535887": "Please close your positions in the following Deriv MT5 account(s):", @@ -707,7 +712,6 @@ "948156236": "Create {{type}} password", "948545552": "150+", "949859957": "Submit", - "952655566": "Payment agent", "952927527": "Regulated by the Malta Financial Services Authority (MFSA) (licence no. IS/70156)", "955352264": "Trade on {{platform_name_dxtrade}}", "956448295": "Cut-off image detected", @@ -741,7 +745,6 @@ "1004127734": "Send email", "1006458411": "Errors", "1006664890": "Silent", - "1008240921": "Choose a payment agent and contact them for instructions.", "1009032439": "All time", "1010198306": "This block creates a list with strings and numbers.", "1012102263": "You will not be able to log in to your account until this date (up to 6 weeks from today).", @@ -785,6 +788,7 @@ "1047389068": "Food Services", "1048947317": "Sorry, this app is unavailable in {{clients_country}}.", "1049384824": "Rise", + "1050128247": "I confirm that I have verified the payment agent’s transfer information.", "1050844889": "Reports", "1052137359": "Family name*", "1052779010": "You are on your demo account", @@ -843,7 +847,6 @@ "1127149819": "Make sure§", "1128404172": "Undo", "1129124569": "If you select \"Under\", you will win the payout if the last digit of the last tick is less than your prediction.", - "1129296176": "IMPORTANT NOTICE TO RECEIVE YOUR FUNDS", "1129842439": "Please enter a take profit amount.", "1130744117": "We shall try to resolve your complaint within 10 business days. We will inform you of the outcome together with an explanation of our position and propose any remedial measures we intend to take.", "1130791706": "N", @@ -885,6 +888,7 @@ "1181396316": "This block gives you a random number from within a set range", "1181770592": "Profit/loss from selling", "1183007646": "- Contract type: the name of the contract type such as Rise, Fall, Touch, No Touch, etс.", + "1188316409": "To receive your funds, contact the payment agent with the details below", "1188980408": "5 minutes", "1189368976": "Please complete your personal details before you verify your identity.", "1189886490": "Please create another Deriv, {{platform_name_mt5}}, or {{platform_name_dxtrade}} account.", @@ -1019,6 +1023,7 @@ "1346339408": "Managers", "1347071802": "{{minutePast}}m ago", "1348009461": "Please close your positions in the following Deriv X account(s):", + "1349133669": "Try changing your search criteria.", "1349289354": "Great, that's everything we need", "1349295677": "in text {{ input_text }} get substring from {{ position1 }} {{ index1 }} to {{ position2 }} {{ index2 }}", "1351152200": "Welcome to Deriv MT5 (DMT5) dashboard", @@ -1042,6 +1047,7 @@ "1367990698": "Volatility 10 Index", "1369709538": "Our terms of use", "1371193412": "Cancel", + "1371555192": "Choose your preferred payment agent and enter your withdrawal amount. If your payment agent is not listed, <0>search for them using their account number.", "1371641641": "Open the link on your mobile", "1371911731": "Financial products in the EU are offered by {{legal_entity_name}}, licensed as a Category 3 Investment Services provider by the Malta Financial Services Authority (<0>Licence no. IS/70156).", "1374627690": "Max. account balance", @@ -1062,7 +1068,6 @@ "1393903598": "if true {{ return_value }}", "1396179592": "Commission", "1396417530": "Bear Market Index", - "1397046738": "View in statement", "1397628594": "Insufficient funds", "1399620764": "We're legally obliged to ask for your financial information.", "1400637999": "(All fields are required)", @@ -1150,6 +1155,7 @@ "1502039206": "Over {{barrier}}", "1502325741": "Your password cannot be the same as your email address.", "1503618738": "- Deal reference ID: the reference ID of the contract", + "1505420815": "No payment agents found for your search", "1505898522": "Download stack", "1509570124": "{{buy_value}} (Buy)", "1509678193": "Education", @@ -1220,6 +1226,7 @@ "1613273139": "Resubmit proof of identity and address", "1613633732": "Interval should be between 10-60 minutes", "1615897837": "Signal EMA Period {{ input_number }}", + "1618809782": "Maximum withdrawal", "1619070150": "You are being redirected to an external website.", "1620278321": "Names and surnames by themselves are easy to guess", "1620346110": "Set currency", @@ -1249,7 +1256,6 @@ "1652968048": "Define your trade options such as multiplier and stake.", "1652976865": "In this example, this block is used with another block to get the open prices from a list of candles. The open prices are then assigned to the variable called \"cl\".", "1653136377": "copied!", - "1653159197": "Payment agent withdrawal", "1653180917": "We cannot verify you without using your camera", "1654365787": "Unknown", "1654496508": "Our system will finish any DBot trades that are running, and DBot will not place any new trades.", @@ -1342,7 +1348,6 @@ "1766212789": "Server maintenance starts at 06:00 GMT every Sunday and may last up to 2 hours. You may experience service disruption during this time.", "1766993323": "Only letters, numbers, and underscores are allowed.", "1767429330": "Add a Derived account", - "1767726621": "Choose agent", "1768861315": "Minute", "1768918213": "Only letters, space, hyphen, period, and apostrophe are allowed.", "1769068935": "Choose any of these exchanges to buy cryptocurrencies:", @@ -1350,7 +1355,6 @@ "1771592738": "Conditional block", "1772532756": "Create and edit", "1777847421": "This is a very common password", - "1778815073": "{{website_name}} is not affiliated with any Payment Agent. Customers deal with Payment Agents at their sole risk. Customers are advised to check the credentials of Payment Agents, and check the accuracy of any information about Payments Agents (on Deriv or elsewhere) before transferring funds.", "1778893716": "Click here", "1779519903": "Should be a valid number.", "1780770384": "This block gives you a random fraction between 0.0 to 1.0.", @@ -1397,8 +1401,10 @@ "1830520348": "{{platform_name_dxtrade}} Password", "1833481689": "Unlock", "1833499833": "Proof of identity documents upload failed", + "1836767074": "Search payment agent name", "1837762008": "Please submit your proof of identity and proof of address to verify your account in your account settings to access the cashier.", "1838639373": "Resources", + "1839021527": "Please enter a valid account number. Example: CR123456789", "1840865068": "set {{ variable }} to Simple Moving Average Array {{ dummy }}", "1841788070": "Palladium/USD", "1841996888": "Daily loss limit", @@ -1418,11 +1424,13 @@ "1851776924": "upper", "1851951013": "Please switch to your demo account to run your DBot.", "1854480511": "Cashier is locked", + "1854874899": "Back to list", "1855566768": "List item position", "1856485118": "Please <0>resubmit your proof of address to transfer funds between MT5 and Deriv accounts.", "1858251701": "minute", "1859308030": "Give feedback", "1863053247": "Please upload your identity document.", + "1863731653": "To receive your funds, contact the payment agent", "1866811212": "Deposit in your local currency via an authorised, independent payment agent in your country.", "1866836018": "<0/><1/>If your complaint relates to our data processing practices, you can submit a formal complaint to your local supervisory authority.", "1867217564": "Index must be a positive integer", @@ -1475,6 +1483,7 @@ "1918633767": "Second line of address is not in a proper format.", "1918796823": "Please enter a stop loss amount.", "1919030163": "Tips to take a good selfie", + "1919594496": "{{website_name}} is not affiliated with any payment agents. Customers deal with payment agents at their sole risk. Customers are advised to check the credentials of payment agents and the accuracy of any information about payment agents (on {{website_name}} or elsewhere) before using their services.", "1920217537": "Compare", "1920468180": "How to use the SMA block", "1921634159": "A few personal details", @@ -1563,7 +1572,6 @@ "2021037737": "Please update your details to continue.", "2023659183": "Student", "2023762268": "I prefer another trading website.", - "2024107855": "{{payment_agent}} agent contact details:", "2025339348": "Move away from direct light — no glare", "2027625329": "Simple Moving Average Array (SMAA)", "2027696535": "Tax information", @@ -2133,7 +2141,6 @@ "-749765720": "Your fiat account currency is set to {{currency_code}}.", "-803546115": "Manage your accounts ", "-1463156905": "Learn more about payment methods", - "-316545835": "Please ensure <0>all details are <0>correct before making your transfer.", "-1309258714": "From account number", "-1247676678": "To account number", "-816476007": "Account holder name", @@ -2144,12 +2151,17 @@ "-1979554765": "Please enter a valid description.", "-1186807402": "Transfer", "-1254233806": "You've transferred", - "-1179992129": "All payment agents", - "-1137412124": "Can’t find a suitable payment method for your country? Then try a payment agent.", - "-460879294": "You're not done yet. To receive the transferred funds, you must contact the payment agent for further instruction. A summary of this transaction has been emailed to you for your records.", - "-596416199": "By name", - "-1169636644": "By payment agent ID", + "-1491457729": "All payment methods", + "-142563298": "Contact your preferred payment agent for payment instructions and make your deposit.", + "-1023961762": "Commission on deposits", + "-552873274": "Commission on withdrawal", + "-880645086": "Withdrawal amount", "-118683067": "Withdrawal limits: <0 />-<1 />", + "-1125090734": "Important notice to receive your funds", + "-1924707324": "View transaction", + "-1474202916": "Make a new withdrawal", + "-511423158": "Enter the payment agent account number", + "-2059278156": "Note: {{website_name}} does not charge any transfer fees.", "-1201279468": "To withdraw your funds, please choose the same payment method you used to make your deposits.", "-1787304306": "Deriv P2P", "-60779216": "Withdrawals are temporarily unavailable due to system maintenance. You can make your withdrawals when the maintenance is complete.", @@ -2196,6 +2208,7 @@ "-1612346919": "View all", "-89973258": "Resend email in {{seconds}}s", "-1059419768": "Notes", + "-316545835": "Please ensure <0>all details are <0>correct before making your transfer.", "-949073402": "I confirm that I have verified the client’s transfer information.", "-1752211105": "Transfer now", "-598073640": "About Tether (Ethereum)", @@ -2244,7 +2257,6 @@ "-2004264970": "Your wallet address should have 25 to 64 characters.", "-1707299138": "Your {{currency_symbol}} wallet address", "-38063175": "{{account_text}} wallet", - "-1474202916": "Make a new withdrawal", "-705272444": "Upload a proof of identity to verify your identity", "-2024958619": "This is to protect your account from unauthorised withdrawals.", "-130833284": "Please note that your maximum and minimum withdrawal limits aren’t fixed. They change due to the high volatility of cryptocurrency.", diff --git a/packages/translations/src/translations/es.json b/packages/translations/src/translations/es.json index a6192af1406b..aec2663bcdf4 100644 --- a/packages/translations/src/translations/es.json +++ b/packages/translations/src/translations/es.json @@ -91,6 +91,7 @@ "133536621": "y", "138055021": "Índices sintéticos", "139454343": "Confirmar mis límites", + "141265840": "Funds transfer information", "141626595": "Asegúrese de que su dispositivo tenga una cámara que funcione", "142050447": "establezca {{ variable }} para crear texto con", "142390699": "Conectado a su móvil", @@ -105,7 +106,6 @@ "157593038": "número entero aleatorio de {{ start_number }} a {{ end_number }}", "160746023": "Tether como token Omni (USDT) es una versión de Tether que está alojada en la capa Omni de la cadena de bloques de Bitcoin.", "160863687": "Cámara no detectada", - "162727973": "Ingrese una ID de agente de pago válida.", "164112826": "Este bloque le permite cargar bloques desde una URL si los tiene almacenados en un servidor remoto, y se cargarán solo cuando se ejecute su bot.", "164564432": "Los depósitos no están disponibles temporalmente debido al mantenimiento del sistema. Puede realizar sus depósitos cuando se complete el mantenimiento.", "165294347": "Ajuste su país de residencia en la configuración de la cuenta para acceder al cajero.", @@ -139,6 +139,7 @@ "204863103": "Tiempo de salida", "206010672": "Eliminar {{ delete_count }} bloques", "207824122": "Retire sus fondos de las siguientes cuentas de Deriv:", + "209533725": "You’ve transferred {{amount}} {{currency}}", "210385770": "Si tiene una cuenta activa, inicie sesión para continuar. De lo contrario, regístrese.", "211224838": "Inversión", "211461880": "Los nombres y apellidos comunes son fáciles de adivinar", @@ -251,6 +252,7 @@ "347039138": "Iterar (2)", "348951052": "Su cajero está actualmente bloqueado", "349047911": "Sobre", + "349110642": "<0>{{payment_agent}}<1>'s contact details", "351744408": "Comprueba si una cadena de texto dada está vacía", "352363702": "Es posible que vea enlaces a sitios web con una página Deriv de inicio de sesión falsa en la que le estafarán su dinero.", "353731490": "Trabajo hecho", @@ -429,6 +431,7 @@ "587577425": "Asegurar mi cuenta", "589609985": "Vinculado con {{identifier_title}}", "593459109": "Prueba con una moneda diferente", + "595080994": "Example: CR123456789", "595136687": "Guardar estrategia", "597089493": "Aquí es donde puede decidir vender su contrato antes que caduque. Solo se permite una copia de este bloque.", "597481571": "AVISO LEGAL", @@ -464,7 +467,9 @@ "640730141": "Actualice esta página para reiniciar el proceso de verificación de identidad", "641420532": "Le hemos enviado un correo electrónico", "642210189": "Por favor, revise su correo electrónico para obtener el enlace de verificación y completar el proceso.", + "642393128": "Enter amount", "642546661": "Suba la parte trasera de la licencia de conducir desde su computadora", + "642995056": "Email", "643014039": "La duración comercial de su contrato comprado.", "644150241": "La cantidad de contratos que ha ganado desde la última vez que borró sus estadísticas.", "645016681": "Frecuencia de trading en otros instrumentos financieros", @@ -520,7 +525,6 @@ "706755289": "Este bloque realiza funciones trigonométricas.", "708055868": "Número del carné de conducir", "710123510": "repetir {{ while_or_until }} {{ boolean }}", - "711029377": "Confirme los detalles de la transacción para completar el retiro:", "711999057": "Exitoso", "712101776": "Tome una foto de la página con foto de su pasaporte", "712635681": "Este bloque le brinda el valor de vela seleccionado de una lista de velas. Puede elegir entre precio de apertura, precio de cierre, precio alto, precio bajo y tiempo de apertura.", @@ -626,7 +630,6 @@ "845213721": "Cerrar sesión", "845304111": "Período de EMA lento {{ input_number }}", "847888634": "Por favor, retire todos sus fondos.", - "849805216": "Elija un agente", "850582774": "Por favor, actualice sus datos personales", "851054273": "Si selecciona \"Superior\", ganará el pago si el precio de salida es estrictamente superior a la barrera.", "851264055": "Crea una lista con un elemento dado repetido por un número específico de veces.", @@ -647,6 +650,7 @@ "866496238": "Asegúrese de que los detalles de su licencia sean claros para leer, sin borrosidad ni reflejos", "868826608": "Excluido de {{brand_website_name}} hasta", "869823595": "Función", + "869993298": "Minimum withdrawal", "872549975": "Tiene {{number}} transferencias restantes para hoy.", "872661442": "¿Está seguro de que desea actualizar su dirección de correo <0>{{prev_email}} a <1>{{changed_email}}?", "872817404": "Tiempo del punto de entrada", @@ -691,6 +695,7 @@ "937682366": "Suba estos dos documentos para demostrar su identidad.", "937831119": "Apellido*", "937992258": "Tabla", + "938500877": "{{ text }}. <0>You can view the summary of this transaction in your email.", "938988777": "Barrera superior", "940950724": "Actualmente, este tipo de operación no está disponible en {{website_name}}. Diríjase a <0>Binary.com para más detalles.", "943535887": "Cierre sus posiciones en las siguientes cuentas Deriv MT5:", @@ -707,7 +712,6 @@ "948156236": "Crear contraseña {{type}}", "948545552": "150+", "949859957": "Enviar", - "952655566": "Agente de pago", "952927527": "Regulada por la Autoridad de Servicios Financieros de Malta (MFSA) (licencia nº IS/70156)", "955352264": "Opere en {{platform_name_dxtrade}}", "956448295": "Foto cortada detectada", @@ -741,7 +745,6 @@ "1004127734": "Enviar correo electrónico", "1006458411": "Errores", "1006664890": "Silencioso", - "1008240921": "Elija un agente de pagos y contáctelo para obtener instrucciones.", "1009032439": "Todo el tiempo", "1010198306": "Este bloque crea una lista con cadenas y números.", "1012102263": "No podrá iniciar sesión en su cuenta hasta esta fecha (hasta 6 semanas a partir de hoy).", @@ -785,6 +788,7 @@ "1047389068": "Servicios de comida", "1048947317": "Lo sentimos, esta aplicación no está disponible en {{clients_country}}.", "1049384824": "Alza", + "1050128247": "I confirm that I have verified the payment agent’s transfer information.", "1050844889": "Informes", "1052137359": "Apellido*", "1052779010": "Está en su cuenta demo", @@ -843,7 +847,6 @@ "1127149819": "Asegúrese§", "1128404172": "Deshacer", "1129124569": "Si selecciona \"Debajo\", ganará el pago si el último dígito del último tick es menor a su predicción.", - "1129296176": "AVISO IMPORTANTE PARA RECIBIR SUS FONDOS", "1129842439": "Por favor, inserte la cantidad de take profit.", "1130744117": "Intentaremos resolver su queja dentro de 10 días hábiles. Le informaremos sobre el resultado junto con una explicación de nuestra posición y la proposición de las medidas correctivas que tengamos la intención de tomar.", "1130791706": "N", @@ -885,6 +888,7 @@ "1181396316": "Este bloque le da un número aleatorio dentro de un rango establecido", "1181770592": "Ganancia / pérdida de la venta", "1183007646": "- Tipo de contrato: el nombre del tipo de contrato como Alza, Baja, Toca, No Toca, etс.", + "1188316409": "To receive your funds, contact the payment agent with the details below", "1188980408": "5 minutos", "1189368976": "Por favor, complete sus datos personales antes de verificar su identidad.", "1189886490": "Por favor, cree otra cuenta Deriv, {{platform_name_mt5}} o {{platform_name_dxtrade}}.", @@ -1019,6 +1023,7 @@ "1346339408": "Gerentes", "1347071802": "Hace {{minutePast}}m", "1348009461": "Por favor, cierre sus posiciones en la(s) siguiente(s) cuenta(s) Deriv X:", + "1349133669": "Try changing your search criteria.", "1349289354": "Genial, eso es todo lo que necesitamos", "1349295677": "en el texto {{ input_text }} obtener subcadena de {{ position1 }} {{ index1 }} a {{ position2 }} {{ index2 }}", "1351152200": "Bienvenidos al panel de Deriv MT5 (DMT5)", @@ -1042,6 +1047,7 @@ "1367990698": "Índice de volatilidad 10", "1369709538": "Nuestros Términos de uso", "1371193412": "Cancelar", + "1371555192": "Choose your preferred payment agent and enter your withdrawal amount. If your payment agent is not listed, <0>search for them using their account number.", "1371641641": "Abra el enlace en su móvil", "1371911731": "Los productos financieros en la UE son ofrecidos por {{legal_entity_name}}, autorizado como proveedor de Servicios de Inversión de Categoría 3 por la Autoridad de Servicios Financieros de Malta (<0>número de licencia IS/70156).", "1374627690": "Saldo máx. de la cuenta", @@ -1062,7 +1068,6 @@ "1393903598": "si verdadero {{ return_value }}", "1396179592": "Comisión", "1396417530": "Índice del Mercado Bajista", - "1397046738": "Ver en el extracto", "1397628594": "Fondos insuficientes", "1399620764": "Estamos legalmente obligados a solicitar su información financiera.", "1400637999": "(Todos los campos son obligatorios)", @@ -1143,13 +1148,14 @@ "1493673429": "Cambiar correo electrónico", "1493866481": "Ejecute Deriv X en su navegador", "1496810530": "GBP/AUD", - "1497773819": "Deriv MT5 accounts", + "1497773819": "Cuentas Deriv MT5", "1499074768": "Agregue una cuenta real de Multiplicadores de Deriv", "1499080621": "Ha intentado realizar una operación no válida.", "1501691227": "Añada su cuenta Deriv MT5 <0>{{account_type_name}} en Deriv (V) Ltd, regulada por la Comisión de Servicios Financieros de Vanuatu.", "1502039206": "Sobre {{barrier}}", "1502325741": "Su contraseña no puede ser igual a su dirección de correo electrónico.", "1503618738": "- ID de referencia del acuerdo: el ID de referencia del contrato", + "1505420815": "No payment agents found for your search", "1505898522": "Descargar montón", "1509570124": "{{buy_value}} (Comprar)", "1509678193": "Educación", @@ -1220,6 +1226,7 @@ "1613273139": "Vuelva a enviar la prueba de identidad y de dirección", "1613633732": "El intervalo debe estar entre 10 y 60 minutos", "1615897837": "Período de EMA de señal {{ input_number }}", + "1618809782": "Maximum withdrawal", "1619070150": "Será redirigido a un sitio web externo.", "1620278321": "Los nombres y apellidos por sí solos son fáciles de adivinar", "1620346110": "Definir moneda", @@ -1249,7 +1256,6 @@ "1652968048": "Defina sus opciones de operación, como el multiplicador y la inversión.", "1652976865": "En este ejemplo, este bloque se usa con otro bloque para obtener los precios de apertura de una lista de velas. Después, los precios de apertura se asignan a la variable llamada \"cl\".", "1653136377": "¡copiado!", - "1653159197": "Retiro del agente de pagos", "1653180917": "No podemos verificarle sin usar su cámara", "1654365787": "Desconocido", "1654496508": "Nuestro sistema finalizará cualquier operación de DBot que se esté ejecutando, y DBot no iniciará ninguna operación nueva.", @@ -1342,7 +1348,6 @@ "1766212789": "El mantenimiento del servidor comienza a las 06:00 GMT todos los domingos y puede durar hasta 2 horas. Es posible que experiembete una interrupción del servicio durante este tiempo.", "1766993323": "Se permiten solo letras, números y guiones bajos.", "1767429330": "Agregar una cuenta Derivada", - "1767726621": "Elija agente", "1768861315": "Minuto", "1768918213": "Se permite solo el uso de letras, espacios, guiones, puntos y apóstrofes.", "1769068935": "Elija cualquiera de estos intercambios para comprar criptomonedas:", @@ -1350,7 +1355,6 @@ "1771592738": "Bloque condicional", "1772532756": "Crear y editar", "1777847421": "Esta es una contraseña muy común", - "1778815073": "{{website_name}} no está asociado con ningún Agente de pagos. Los clientes tratan con los Agentes de pagos bajo su propia responsabilidad. Se recomienda a los clientes que verifiquen las credenciales de los Agentes de pagos y que verifiquen la precisión de cualquier información sobre los Agentes de pagos (en Deriv o en otro lugar) antes de transferir fondos.", "1778893716": "Haga clic aquí", "1779519903": "Debe ser un número válido.", "1780770384": "Este bloque le da una fracción aleatoria entre 0.0 a 1.0.", @@ -1397,8 +1401,10 @@ "1830520348": "Contraseña {{platform_name_dxtrade}}", "1833481689": "Desbloquear", "1833499833": "No se han podido subir los documentos de identidad", + "1836767074": "Search payment agent name", "1837762008": "Envíe la prueba de identidad y prueba de dirección para verificar su cuenta en la configuración de cuenta para acceder al cajero.", "1838639373": "Recursos", + "1839021527": "Please enter a valid account number. Example: CR123456789", "1840865068": "ajustar {{ variable }} al Conjunto de la media móvil simple {{ dummy }}", "1841788070": "Paladio/USD", "1841996888": "Límite diario de pérdidas", @@ -1418,11 +1424,13 @@ "1851776924": "superior", "1851951013": "Cambie a su cuenta demo para ejecutar su DBot.", "1854480511": "El cajero está bloqueado", + "1854874899": "Back to list", "1855566768": "Posición del elemento de la lista", "1856485118": "<0>Vuelva a enviar su prueba de dirección para transferir fondos entre las cuentas MT5 y Deriv.", "1858251701": "minuto", "1859308030": "Dar su opinión", "1863053247": "Suba su documento de identidad.", + "1863731653": "To receive your funds, contact the payment agent", "1866811212": "Deposite en su moneda local a través de un agente de pago independiente autorizado en su país.", "1866836018": "<0/><1/> Si su queja se relaciona con nuestras prácticas de procesamiento de datos, puede enviar una queja formal a su autoridad de control local.", "1867217564": "El índice debe ser un número entero positivo", @@ -1475,6 +1483,7 @@ "1918633767": "La segunda línea de dirección no está en un formato adecuado.", "1918796823": "Por favor, inserte la cantidad de stop loss.", "1919030163": "Consejos para sacarse un buen selfie", + "1919594496": "{{website_name}} is not affiliated with any payment agents. Customers deal with payment agents at their sole risk. Customers are advised to check the credentials of payment agents and the accuracy of any information about payment agents (on {{website_name}} or elsewhere) before using their services.", "1920217537": "Comparar", "1920468180": "Cómo usar el bloque SMA", "1921634159": "Algunos datos personales", @@ -1563,7 +1572,6 @@ "2021037737": "Actualice sus detalles para continuar.", "2023659183": "Estudiante", "2023762268": "Prefiero otro sitio web de trading.", - "2024107855": "Datos de contacto del agente {{payment_agent}}:", "2025339348": "Aléjese de la luz directa, sin reflejos", "2027625329": "Conjunto de la Media Móvil Simple (SMAA)", "2027696535": "Información tributaria", @@ -2133,7 +2141,6 @@ "-749765720": "La moneda de su cuenta fiat está configurada en {{currency_code}}.", "-803546115": "Gestione sus cuentas ", "-1463156905": "Aprenda más sobre los métodos de pago", - "-316545835": "Asegúrese de que <0>todos los datos sean <0>correctos antes de realizar la transferencia.", "-1309258714": "Desde el número de cuenta", "-1247676678": "Al número de cuenta", "-816476007": "Nombre del titular de la cuenta", @@ -2144,12 +2151,17 @@ "-1979554765": "Por favor, introduzca una descripción válida.", "-1186807402": "Transferir", "-1254233806": "Ha transferido", - "-1179992129": "Todos los agentes de pago", - "-1137412124": "¿No encuentra un método de pago adecuado para su país? Pruebe con un agente de pagos.", - "-460879294": "Aún no ha terminado. Para recibir los fondos transferidos, debe comunicarse con el agente de pago para obtener más instrucciones. Se le ha enviado un resumen de esta transacción por correo electrónico para sus registros.", - "-596416199": "Por nombre", - "-1169636644": "Por ID de agente de pago", + "-1491457729": "All payment methods", + "-142563298": "Contact your preferred payment agent for payment instructions and make your deposit.", + "-1023961762": "Commission on deposits", + "-552873274": "Commission on withdrawal", + "-880645086": "Withdrawal amount", "-118683067": "Límites de retiro: <0 />-<1 />", + "-1125090734": "Important notice to receive your funds", + "-1924707324": "View transaction", + "-1474202916": "Hacer un nuevo retiro", + "-511423158": "Enter the payment agent account number", + "-2059278156": "Note: {{website_name}} does not charge any transfer fees.", "-1201279468": "Para retirar los fondos, elija el mismo método de pago que utilizó para depositar.", "-1787304306": "Deriv P2P", "-60779216": "Los retiros no están disponibles temporalmente debido al mantenimiento del sistema. Puede hacer retiros cuando se complete el mantenimiento.", @@ -2196,6 +2208,7 @@ "-1612346919": "Ver todo", "-89973258": "Reenviar correo electrónico en {{seconds}}s", "-1059419768": "Notas", + "-316545835": "Asegúrese de que <0>todos los datos sean <0>correctos antes de realizar la transferencia.", "-949073402": "Confirmo que he verificado la información de transferencia del cliente.", "-1752211105": "Transferir ahora", "-598073640": "Sobre Tether (Ethereum)", @@ -2209,8 +2222,8 @@ "-2056016338": "No se le cobrará ninguna comisión por las transferencias en la misma moneda entre sus cuentas Deriv fiat y {{platform_name_mt5}}.", "-599632330": "Cobraremos una comisión de transferencia del 1% por las transferencias en diferentes divisas entre sus cuentas Deriv fiat y {{platform_name_mt5}} y entre sus cuentas Deriv fiat y {{platform_name_dxtrade}}.", "-1196994774": "Cobraremos una tarifa de transferencia del 2% o {{minimum_fee}} {{currency}}, lo que sea mayor, por las transferencias entre sus cuentas de criptomoneda Deriv.", - "-993556039": "We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts and between your Deriv cryptocurrency and {{platform_name_dxtrade}} accounts.", - "-1382702462": "We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts.", + "-993556039": "Cobraremos una tarifa de transferencia del 2% o {{minimum_fee}} {{currency}}, lo que sea mayor, por las transferencias entre sus cuentas de criptomoneda Deriv y Deriv MT5 y entre sus cuentas de criptomoneda Deriv y {{platform_name_dxtrade}}.", + "-1382702462": "Cobraremos una tarifa de transferencia del 2% o {{minimum_fee}} {{currency}}, lo que sea mayor, por las transferencias entre sus cuentas de criptomoneda Deriv y Deriv MT5.", "-1151983985": "Los límites de transferencia pueden variar según los tipos de cambio.", "-1747571263": "Tenga en cuenta que algunas transferencias pueden no ser posibles.", "-757062699": "Las transferencias pueden no estar disponibles debido a la alta volatilidad o a problemas técnicos y cuando los mercados de divisas están cerrados.", @@ -2244,7 +2257,6 @@ "-2004264970": "La dirección de su billetera debe tener entre 25 y 64 caracteres.", "-1707299138": "La dirección de su monedero {{currency_symbol}}", "-38063175": "{{account_text}} billetera", - "-1474202916": "Hacer un nuevo retiro", "-705272444": "Adjunte una prueba de identidad para verificación", "-2024958619": "Esto es para proteger su cuenta de retiros no autorizados.", "-130833284": "Tenga en cuenta que sus límites de retiro máximo y mínimo no son fijos. Cambian debido a la alta volatilidad de las criptomonedas.", diff --git a/packages/translations/src/translations/fr.json b/packages/translations/src/translations/fr.json index 5f477bcc3588..8043315a5987 100644 --- a/packages/translations/src/translations/fr.json +++ b/packages/translations/src/translations/fr.json @@ -91,6 +91,7 @@ "133536621": "et", "138055021": "Indices synthétiques", "139454343": "Confirmer mes limites", + "141265840": "Funds transfer information", "141626595": "Assurez-vous que votre appareil dispose d'une caméra fonctionnelle", "142050447": "set {{ variable }} pour créer du texte avec", "142390699": "Connecté à votre mobile", @@ -105,7 +106,6 @@ "157593038": "entier aléatoire de {{ start_number }} à {{ end_number }}", "160746023": "Tether en tant que jeton Omni (USDT) est une version de Tether qui est hébergée sur la couche Omni de la blockchain Bitcoin.", "160863687": "Caméra non détectée", - "162727973": "Veuillez saisir un ID d'agent de paiement valide.", "164112826": "Ce bloc vous permet de charger des blocs à partir d'une URL si vous les avez stockés sur un serveur distant, et ils ne seront chargés que lorsque votre bot s'exécutera.", "164564432": "Les dépôts sont temporairement indisponibles en raison d'une maintenance du système. Vous pourrez effectuer vos dépôts lorsque la maintenance sera terminée.", "165294347": "Veuillez définir votre pays de résidence dans les paramètres de votre compte pour accéder à la caisse.", @@ -133,12 +133,13 @@ "196998347": "Nous détenons les fonds de nos clients sur des comptes bancaires séparés de nos comptes opérationnels qui ne feraient pas, en cas d'insolvabilité, partie des actifs de la société. Cela répond aux exigences de la <0>Gambling Commission en matière de ségrégation des fonds des clients au niveau: <1>protection moyenne.", "197190401": "Date d’expiration", "201091938": "30 jours", - "203179929": "<0>You can open this account once your submitted documents have been verified.", + "203179929": "<0>Vous pouvez ouvrir ce compte une fois que les documents que vous avez soumis ont été vérifiés.", "203271702": "Réessayer", "204797764": "Transfert au client", "204863103": "Temps de sortie", "206010672": "Supprimer {{ delete_count }} blocs", "207824122": "Veuillez retirer vos fonds depuis le compte Deriv suivant :", + "209533725": "You’ve transferred {{amount}} {{currency}}", "210385770": "Si vous avez un compte actif, connectez-vous pour continuer. Sinon, veuillez vous inscrire.", "211224838": "Investissement", "211461880": "Les noms et prénoms communs sont faciles à deviner", @@ -251,6 +252,7 @@ "347039138": "Itérer (2)", "348951052": "Votre caisse est actuellement verrouillée", "349047911": "Supérieur", + "349110642": "<0>{{payment_agent}}<1>'s contact details", "351744408": "Teste si une chaîne de texte donnée est vide", "352363702": "Vous pouvez voir des liens vers des sites web avec une fausse page de connexion Deriv où vous serez arnaqué pour votre argent.", "353731490": "Travail accompli", @@ -341,7 +343,7 @@ "465993338": "Oscar's Grind", "466369320": "Votre bénéfice brut est le pourcentage de variation du prix du marché multiplié par votre mise et le multiplicateur choisi ici.", "473154195": "Paramètres", - "473863031": "Pending proof of address review", + "473863031": "Vérification du justificatif de domicile en cours", "474306498": "Nous sommes désolés de vous voir partir. Votre compte est maintenant fermé.", "475492878": "Essayez les indices synthétiques", "476023405": "Vous n'avez pas reçu d'email ?", @@ -375,7 +377,7 @@ "518955798": "7. Exécuter une fois au démarrage", "520136698": "Indice Boom 500", "521872670": "élément", - "522283618": "Expérience de trading d’options digitales", + "522283618": "Expérience de trading d’options numériques", "522703281": "divisible par", "523123321": "- 10 à la puissance d'un nombre donné", "527329988": "Ceci est un mot de passe commun parmi les 100 premiers", @@ -429,6 +431,7 @@ "587577425": "Sécuriser mon compte", "589609985": "Lié à {{identifier_title}}", "593459109": "Essayez une autre devise", + "595080994": "Example: CR123456789", "595136687": "Sauvegardez la stratégie", "597089493": "Voici où vous pouvez décider de vendre votre contrat avant son expiration. Une seule copie de ce bloc est autorisée.", "597481571": "AVERTISSEMENT", @@ -464,7 +467,9 @@ "640730141": "Actualisez cette page pour redémarrer le processus de vérification d'identité", "641420532": "Nous vous avons envoyé un e-mail", "642210189": "Veuillez vérifier votre email pour le lien de vérification afin de terminer l'opération.", + "642393128": "Enter amount", "642546661": "Télécharger le dos du permis de conduire depuis votre ordinateur", + "642995056": "Email", "643014039": "La durée de la transaction de votre contrat acheté.", "644150241": "Le nombre de contrats que vous avez gagnés depuis la dernière fois que vous avez effacé vos statistiques.", "645016681": "Fréquence de négociation d'autres instruments financiers", @@ -520,7 +525,6 @@ "706755289": "Ce bloc remplit des fonctions trigonométriques.", "708055868": "Numéro du permis de conduire", "710123510": "répéter {{ while_or_until }} {{ boolean }}", - "711029377": "Veuillez confirmer les détails de la transaction afin de terminer le retrait:", "711999057": "Réussite", "712101776": "Prenez une photo de votre page de photo de passeport", "712635681": "Ce bloc vous donne la valeur de bougie sélectionnée dans une liste de bougies. Vous pouvez choisir entre le prix d'ouverture, le prix de clôture, le prix élevé, le prix bas et le temps d'ouverture.", @@ -626,7 +630,6 @@ "845213721": "Déconnexion", "845304111": "Période EMA lente {{ input_number }}", "847888634": "Merci de retirer tous vos fonds.", - "849805216": "Choisissez un agent", "850582774": "Veuillez mettre à jour vos données personnelles", "851054273": "Si vous sélectionnez \"Supérieur\", vous gagnez le paiement si le point de sortie est strictement supérieur à la barrière.", "851264055": "Crée une liste avec un élément donné répété un certain nombre de fois.", @@ -647,6 +650,7 @@ "866496238": "Assurez-vous que les détails de votre licence sont lisibles, sans flou ni éblouissement", "868826608": "Exclu de {{brand_website_name}} jusqu'à", "869823595": "Fonction", + "869993298": "Minimum withdrawal", "872549975": "Il vous reste {{number}} virements pour aujourd'hui.", "872661442": "Etes-vous sûr de vouloir mettre à jour l'email de <0>{{prev_email}} à <1>{{changed_email}} ?", "872817404": "Heure du point d'entrée", @@ -673,7 +677,7 @@ "905134118": "Paiement :", "905227556": "Les mots de passe forts contiennent au moins 8 caractères, combinent des lettres majuscules et minuscules et des chiffres.", "905564365": "CFD sur MT5", - "906049814": "We’ll review your documents and notify you of its status within 5 minutes.", + "906049814": "Nous examinerons votre document et reviendrons vers vous dans un délai de 5 minutes.", "910888293": "Trop de tentatives", "915735109": "Retour à {{platform_name}}", "918447723": "Réel", @@ -691,6 +695,7 @@ "937682366": "Téléchargez ces deux documents pour prouver votre identité.", "937831119": "Nom de famille*", "937992258": "Tableau", + "938500877": "{{ text }}. <0>You can view the summary of this transaction in your email.", "938988777": "Barrière supérieure", "940950724": "Ce type d'échange n'est actuellement pas pris en charge sur {{website_name}}. Veuillez consulter <0>Binary.com pour plus de détails.", "943535887": "Veuillez fermer vos positions dans le compte Deriv MT5 suivant:", @@ -707,7 +712,6 @@ "948156236": "Créer le mot de passe {{type}}", "948545552": "150+", "949859957": "Envoyer", - "952655566": "Agent de paiement", "952927527": "Réglementée par la Malta Financial Services Authority (MFSA) (licence nº IS/70156)", "955352264": "Trader sur {{platform_name_dxtrade}}", "956448295": "Image coupée détectée", @@ -741,7 +745,6 @@ "1004127734": "Envoyer l'email", "1006458411": "Erreurs", "1006664890": "Silencieux", - "1008240921": "Choisissez un agent de paiement et contactez-le pour obtenir des instructions.", "1009032439": "Tout", "1010198306": "Ce bloc crée une liste avec des chaînes et des nombres.", "1012102263": "Vous ne pourrez pas vous connecter à votre compte avant cette date (jusqu'à 6 semaines à compter d'aujourd'hui).", @@ -755,7 +758,7 @@ "1023643811": "Ce bloc achète un contrat d'un type spécifié.", "1023795011": "Pair/Impair", "1024205076": "Opération logique", - "1024760087": "You are verified to add this account", + "1024760087": "Votre compte est vérifié, vous pouvez ajouter ce compte", "1025887996": "Protection de Solde Négatif", "1026046972": "Veuillez entrer un montant de paiement inférieur à {{max_payout}}.", "1027098103": "L'effet de levier vous donne la possibilité de trader une position plus importante en utilisant votre capital existant. L'effet de levier varie selon les différents symboles.", @@ -785,6 +788,7 @@ "1047389068": "Services de Restauration", "1048947317": "Désolé, cette application n'est pas disponible en {{clients_country}}.", "1049384824": "Hausse", + "1050128247": "I confirm that I have verified the payment agent’s transfer information.", "1050844889": "Rapports", "1052137359": "Nom de famille*", "1052779010": "Vous êtes sur votre compte démo", @@ -838,12 +842,11 @@ "1122910860": "Complétez votre <0>évaluation financière.", "1123927492": "Vous n'avez pas sélectionné la devise de votre compte", "1125090693": "Doit être un nombre", - "1126075317": "Add your Deriv MT5 <0>{{account_type_name}} STP account under Deriv (FX) Ltd regulated by Labuan Financial Services Authority (Licence no. MB/18/0024).", + "1126075317": "Ajoutez votre compte Deriv MT5 <0>{{account_type_name}} STP sous Deriv (FX) Ltd, réglementé par la Labuan Financial Services Authority (Licence nº MB/18/0024).", "1126934455": "La longueur du nom du token doit être comprise entre 2 et 32 ​​caractères.", "1127149819": "Soyes sur§", "1128404172": "Annuler", "1129124569": "Si vous sélectionnez \"Under\", vous gagnerez le paiement si le dernier chiffre du dernier tick est inférieur à votre prédiction.", - "1129296176": "AVIS IMPORTANT POUR RECEVOIR VOS FONDS", "1129842439": "Veuillez saisir un montant de profit.", "1130744117": "Nous essaierons de résoudre votre réclamation dans les 10 jours ouvrables. Nous vous informerons du résultat avec une explication de notre position et vous proposerons les mesures correctives que nous avons l'intention de prendre.", "1130791706": "N", @@ -885,6 +888,7 @@ "1181396316": "Ce bloc vous donne un nombre aléatoire dans une plage définie", "1181770592": "Bénéfice/perte sur vente", "1183007646": "- Type de contrat: le nom du type de contrat tel que Rise, Fall, Touch, No Touch, etc.", + "1188316409": "To receive your funds, contact the payment agent with the details below", "1188980408": "5 minutes", "1189368976": "Veuillez compléter vos informations personnelles avant de vérifier votre identité.", "1189886490": "Veuillez créer un autre compte Deriv, {{platform_name_mt5}} ou {{platform_name_dxtrade}}.", @@ -958,26 +962,26 @@ "1281290230": "Sélectionner", "1282951921": "Que des Descentes", "1284522768": "Si «Perte» est sélectionné, il retournera «Vrai» si votre dernière transaction a échoué. Sinon, il renverra une chaîne vide.", - "1285686014": "Pending proof of identity review", + "1285686014": "Vérification du document d'identité en cours", "1286094280": "Retrait", "1286507651": "Fermer l'écran de vérification d'identité", "1288965214": "Passeport", "1289646209": "Appel de marge", "1290525720": "Exemple : ", - "1291887623": "Fréquence de négociation des options numériques", + "1291887623": "Fréquence de trading des options numériques", "1292891860": "Notifier Telegram", "1293660048": "Max. perte totale par jour", "1294756261": "Ce bloc crée une fonction, qui est un groupe d'instructions pouvant être exécutées à tout moment. Placez d'autres blocs ici pour effectuer tout type d'action dont vous avez besoin dans votre stratégie. Lorsque toutes les instructions d'une fonction ont été exécutées, votre bot continuera avec les blocs restants de votre stratégie. Cliquez sur le champ «faire quelque chose» pour lui donner le nom de votre choix. Cliquez sur l'icône plus pour envoyer une valeur (en tant que variable nommée) à votre fonction.", "1295284664": "Veuillez accepter nos <0>Conditions générales mises à jour pour continuer.", "1296380713": "Fermer mon contrat", "1299479533": "8 heures", - "1300576911": "Please resubmit your proof of address or we may restrict your account.", + "1300576911": "Veuillez renvoyer votre justificatif de domicile ou nous pourrions restreindre votre compte.", "1301668579": "Nous travaillons pour que cela soit disponible pour vous bientôt. Si vous avez un autre compte, passez à ce compte pour continuer à trader. Vous pouvez ajouter un DMT5 Financial.", "1302691457": "Profession", "1303016265": "Oui", "1303530014": "Nous traitons votre retrait.", "1304083330": "copier", - "1304272843": "Please submit your proof of address.", + "1304272843": "Veuillez envoyer votre justificatif de domicile.", "1304620236": "Activer la caméra", "1304788377": "<0/><1/> Si votre plainte concerne nos pratiques de traitement des données, vous pouvez déposer une plainte officielle auprès du <2>Commissaire à l’information et à la protection des données (Malte) sur son site Web ou déposer une plainte autorité de contrôle au sein de l’Union européenne.", "1305217290": "Téléchargez le verso de votre carte d'identité.", @@ -1019,6 +1023,7 @@ "1346339408": "Résponsables", "1347071802": "Il y a {{minutePast}}m", "1348009461": "Veuillez fermer vos positions dans le compte Deriv X suivant :", + "1349133669": "Try changing your search criteria.", "1349289354": "Parfait, c'est tout ce dont nous avons besoin", "1349295677": "dans le texte {{ input_text }} obtenir la sous-chaîne de {{ position1 }} {{ index1 }} à {{ position2 }} {{ index2 }}", "1351152200": "Bienvenue sur votre tableau de bord Deriv MT5 (DMT5)", @@ -1042,6 +1047,7 @@ "1367990698": "Indice Volatilité 10", "1369709538": "Nos conditions générales d'utilisation", "1371193412": "Annuler", + "1371555192": "Choose your preferred payment agent and enter your withdrawal amount. If your payment agent is not listed, <0>search for them using their account number.", "1371641641": "Ouvrez le lien sur votre mobile", "1371911731": "Les produits financiers dans l'UE sont proposés par {{legal_entity_name}}, titulaire d'une licence de prestataire de services d'investissement de catégorie 3 délivrée par la Malta Financial Services Authority (<0>Licence nº IS/70156).", "1374627690": "Max. solde du compte", @@ -1062,7 +1068,6 @@ "1393903598": "si vrai {{ return_value }}", "1396179592": "Commission", "1396417530": "Indice Bear Market", - "1397046738": "Afficher le relevé", "1397628594": "Solde insuffisant", "1399620764": "Nous sommes légalement tenus de vous demander vos informations financières.", "1400637999": "(Tous les champs sont requis)", @@ -1111,7 +1116,7 @@ "1454648764": "identifiant de référence de l'accord", "1454865058": "N'entrez pas d'adresse liée à un achat ICO ou à une vente participative. Si vous le faites, les jetons ICO ne seront pas crédités sur votre compte.", "1455741083": "Téléchargez le verso de votre permis de conduire.", - "1457341530": "Your proof of identity verification has failed", + "1457341530": "La vérification de votre document d'identité a échoué", "1457603571": "Pas de notification", "1461323093": "Affichez les messages dans la console du développeur.", "1464190305": "Ce bloc retransférera le contrôle dans le bloc Conditions d'achat, vous permettant d'acheter un autre contrat sans arrêter et redémarrer manuellement votre bot.", @@ -1143,13 +1148,14 @@ "1493673429": "Changer d'email", "1493866481": "Lancez Deriv X sur votre navigateur", "1496810530": "GBP/AUD", - "1497773819": "Deriv MT5 accounts", + "1497773819": "Comptes Deriv MT5", "1499074768": "Ajouter un compte réel Multiplicateurs Deriv", "1499080621": "Essai d'effectuer une opération non valide.", - "1501691227": "Add Your Deriv MT5 <0>{{account_type_name}} account under Deriv (V) Ltd, regulated by the Vanuatu Financial Services Commission.", + "1501691227": "Ajoutez votre compte Deriv MT5 <0>{{account_type_name}} auprès de Deriv (V) Ltd, réglementé par la Commission des services financiers du Vanuatu.", "1502039206": "Au-dessus de {{barrier}}", "1502325741": "Votre mot de passe ne peut pas être identique à votre adresse e-mail.", "1503618738": "- ID de référence de l'accord: l'ID de référence du contrat", + "1505420815": "No payment agents found for your search", "1505898522": "Télécharger la pile", "1509570124": "{{buy_value}} (Acheter)", "1509678193": "Éducation", @@ -1217,9 +1223,10 @@ "1604916224": "Absolu", "1605292429": "Max. perte totale", "1612105450": "Obtenir une sous-chaîne", - "1613273139": "Resubmit proof of identity and address", + "1613273139": "Renvoyez une pièce d'identité et un justificatif de domicile", "1613633732": "L'intervalle doit être compris entre 10 et 60 minutes", "1615897837": "Période EMA du signal {{ input_number }}", + "1618809782": "Maximum withdrawal", "1619070150": "Vous êtes redirigé vers un site Web externe.", "1620278321": "Les noms et prénoms sont faciles à deviner", "1620346110": "Choisir la devise", @@ -1249,7 +1256,6 @@ "1652968048": "Définissez vos options de trading telles que le multiplicateur et la mise.", "1652976865": "Dans cet exemple, ce bloc est utilisé avec un autre bloc pour obtenir les prix ouverts à partir d'une liste de bougies. Les prix ouverts sont ensuite affectés à la variable appelée \"cl\".", "1653136377": "copié!", - "1653159197": "Retrait par agent de paiement", "1653180917": "Nous ne pouvons pas vous vérifier sans utiliser votre caméra", "1654365787": "Inconnu", "1654496508": "Notre système terminera tous les trades DBot en cours d'exécution et DBot ne placera aucun nouveau trade.", @@ -1342,7 +1348,6 @@ "1766212789": "La maintenance du serveur commence à 06h00 GMT tous les dimanches et peut durer jusqu'à 2 heures. Vous risquez de subir une interruption de service pendant cette période.", "1766993323": "Seuls les lettres, les chiffres et les traits de soulignement sont autorisés.", "1767429330": "Ajouter un compte Derivés", - "1767726621": "Choisissez un agent", "1768861315": "Minute", "1768918213": "Seuls les lettres, espace, trait d'union, point et apostrophe sont autorisés.", "1769068935": "Choisissez l'un de ces échanges pour acheter des cryptomonnaies :", @@ -1350,7 +1355,6 @@ "1771592738": "Bloc conditionnel", "1772532756": "Créer et éditer", "1777847421": "C'est un mot de passe très courant", - "1778815073": "{{website_name}} n'est affilié à aucun agent de paiement. Les clients traitent avec les agents de paiement à leurs seuls risques. Il est conseillé aux clients de vérifier les informations d'identification des agents de paiement et de vérifier l'exactitude de toute information sur les agents de paiement (sur Deriv ou ailleurs) avant de transférer des fonds.", "1778893716": "Cliquez ici", "1779519903": "La saisie doit être un nombre valide.", "1780770384": "Ce bloc vous donne une fraction aléatoire entre 0,0 et 1,0.", @@ -1397,8 +1401,10 @@ "1830520348": "Mot de passe {{platform_name_dxtrade}}", "1833481689": "Débloquer", "1833499833": "Échec du chargement des documents d'identité", + "1836767074": "Search payment agent name", "1837762008": "Veuillez soumettre votre preuve d'identité et votre preuve d'adresse pour vérifier votre compte dans les paramètres de votre compte pour accéder à la caisse.", "1838639373": "Ressources", + "1839021527": "Please enter a valid account number. Example: CR123456789", "1840865068": "définir {{ variable }} sur Tableau de moyenne mobile simple {{ dummy }}", "1841788070": "Palladium/USD", "1841996888": "Limite de perte quotidienne", @@ -1418,11 +1424,13 @@ "1851776924": "supérieur", "1851951013": "Veuillez basculer vers votre compte démo pour exécuter votre DBot.", "1854480511": "Caisse verrouillée", + "1854874899": "Back to list", "1855566768": "Lister la position de l'élément", - "1856485118": "Please <0>resubmit your proof of address to transfer funds between MT5 and Deriv accounts.", + "1856485118": "Veuillez <0>renvoyer votre justificatif de domicile pour transférer des fonds entre les comptes MT5 et Deriv.", "1858251701": "minute", "1859308030": "Donnez votre avis", "1863053247": "Veuillez télécharger votre pièce d'identité.", + "1863731653": "To receive your funds, contact the payment agent", "1866811212": "Effectuez un dépôt dans votre devise locale via un agent de paiement agréé et indépendant dans votre pays.", "1866836018": "<0/><1/> Si votre réclamation concerne nos pratiques de traitement des données, vous pouvez déposer une réclamation formelle auprès de votre autorité de contrôle locale.", "1867217564": "L'index doit être un entier positif", @@ -1475,6 +1483,7 @@ "1918633767": "La deuxième ligne d'adresse n'est pas dans un format approprié.", "1918796823": "Veuillez saisir un montant stop loss.", "1919030163": "Conseils pour prendre un bon selfie", + "1919594496": "{{website_name}} is not affiliated with any payment agents. Customers deal with payment agents at their sole risk. Customers are advised to check the credentials of payment agents and the accuracy of any information about payment agents (on {{website_name}} or elsewhere) before using their services.", "1920217537": "Comparer", "1920468180": "Comment utiliser le bloc SMA", "1921634159": "Quelques détails personnels", @@ -1563,7 +1572,6 @@ "2021037737": "Veuillez mettre à jour vos coordonnées pour continuer.", "2023659183": "Étudiant", "2023762268": "Je préfère un autre site de trading.", - "2024107855": "{{payment_agent}} coordonnées de l'agent:", "2025339348": "Éloignez-vous de la lumière directe - sans'éblouissement", "2027625329": "Tableau de la Moyenne Mobile Simple (SSMA)", "2027696535": "Informations fiscales", @@ -1936,7 +1944,7 @@ "-1008641170": "Votre compte n'a pas besoin de vérification d'adresse pour le moment. Nous vous informerons si une vérification d'adresse est requise à l'avenir.", "-60204971": "Nous n'avons pas pu vérifier votre justificatif de domicile", "-1944264183": "Pour continuer le trading, vous devez également soumettre une preuve d'identité.", - "-1088324715": "We’ll review your documents and notify you of its status within 1 - 3 working days.", + "-1088324715": "Nous examinerons vos documents et vous informerons de leur statut dans un délai de 1 à 3 jours ouvrés.", "-1176889260": "Veuillez sélectionner un type de document.", "-1515286538": "Veuillez entrer le numéro de votre document. ", "-1785463422": "Vérifiez Votre Identité", @@ -2133,7 +2141,6 @@ "-749765720": "La devise de votre compte fiat est configurée sur {{currency_code}}.", "-803546115": "Gérer vos comptes ", "-1463156905": "En savoir plus sur les modes de paiement", - "-316545835": "Veuillez vous assurer que <0>tous les détails sont <0>corrects avant d'effectuer votre transfert.", "-1309258714": "Depuis le numéro de compte", "-1247676678": "Vers le numéro de compte", "-816476007": "Nom du titulaire du compte", @@ -2144,12 +2151,17 @@ "-1979554765": "Veuillez saisir une description valide.", "-1186807402": "Transfert", "-1254233806": "Vous avez transféré", - "-1179992129": "Tous les agents de paiement", - "-1137412124": "Vous ne trouvez pas de méthode de paiement adaptée à votre pays ? Essayez alors un agent de paiement.", - "-460879294": "Vous n'avez pas encore fini. Pour recevoir les fonds transférés, vous devez contacter l'agent de paiement pour obtenir des instructions supplémentaires. Un résumé de cette transaction vous a été envoyé par e-mail pour vos archives.", - "-596416199": "Par nom", - "-1169636644": "Par identifiant d'agent de paiement", + "-1491457729": "All payment methods", + "-142563298": "Contact your preferred payment agent for payment instructions and make your deposit.", + "-1023961762": "Commission on deposits", + "-552873274": "Commission on withdrawal", + "-880645086": "Withdrawal amount", "-118683067": "Limites de retrait: <0 /> - <1 />", + "-1125090734": "Important notice to receive your funds", + "-1924707324": "View transaction", + "-1474202916": "Effectuer un nouveau retrait", + "-511423158": "Enter the payment agent account number", + "-2059278156": "Note: {{website_name}} does not charge any transfer fees.", "-1201279468": "Pour retirer vos fonds, veuillez choisir la même méthode de paiement que celle que vous avez utilisée pour effectuer vos dépôts.", "-1787304306": "Deriv P2P", "-60779216": "Les retraits sont temporairement indisponibles en raison d'une maintenance du système. Vous pourrez effectuer vos retraits lorsque la maintenance sera terminée.", @@ -2196,6 +2208,7 @@ "-1612346919": "Voir tout", "-89973258": "Renvoyer l'e-mail dans {{seconds}}s", "-1059419768": "Remarques ", + "-316545835": "Veuillez vous assurer que <0>tous les détails sont <0>corrects avant d'effectuer votre transfert.", "-949073402": "Je confirme que j'ai vérifié les informations de transfert du client.", "-1752211105": "Transférer maintenant", "-598073640": "À propos de Tether (Ethereum)", @@ -2209,14 +2222,14 @@ "-2056016338": "Vous n'aurez pas à payer de frais de transfert pour les transferts dans la même devise entre vos comptes Deriv fiat et {{platform_name_mt5}}.", "-599632330": "Nous facturons des frais de transfert de 1% pour les transferts dans des devises différentes entre vos comptes Deriv fiat et {{platform_name_mt5}} et entre vos comptes Deriv fiat et {{platform_name_dxtrade}}.", "-1196994774": "Nous facturons des frais de transfert de 2 % ou de {{minimum_fee}} {{currency}}, le montant le plus élevé étant retenu, pour les transferts entre vos comptes Deriv cryptomonnaie.", - "-993556039": "We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts and between your Deriv cryptocurrency and {{platform_name_dxtrade}} accounts.", - "-1382702462": "We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts.", + "-993556039": "Nous facturons des frais de transfert de 2 % ou de {{minimum_fee}} {{currency}}, le montant le plus élevé étant retenu, pour les transferts entre vos comptes Deriv crypto et Deriv MT5 et entre vos comptes Deriv crypto et {{platform_name_dxtrade}}.", + "-1382702462": "Nous facturons des frais de transfert de 2 % ou de {{minimum_fee}} {{currency}}, le montant le plus élevé étant retenu, pour les transferts entre vos comptes Deriv crypto et Deriv MT5.", "-1151983985": "Les limites de transfert peuvent varier en fonction des taux de change.", "-1747571263": "Veuillez garder à l'esprit que certains transferts peuvent ne pas être possibles.", "-757062699": "Les transferts peuvent être indisponibles en raison d'une forte volatilité ou de problèmes techniques et lorsque les marchés boursiers sont fermés.", "-1344870129": "Comptes Deriv", "-1156059326": "Il vous reste {{number}} virements pour aujourd'hui.", - "-1109729546": "You will be able to transfer funds between MT5 accounts and other accounts once your address is verified.", + "-1109729546": "Vous pourrez transférer des fonds entre des comptes MT5 et d'autres comptes une fois votre adresse vérifiée.", "-1593609508": "Transfert entre vos comptes dans Deriv", "-464965808": "Limites de transfert: <0 /> - <1 />", "-553249337": "Les transferts sont verrouillés", @@ -2244,7 +2257,6 @@ "-2004264970": "L'adresse de votre portefeuille doit comporter 25 et 64 caractères.", "-1707299138": "Votre adresse de portefeuille {{currency_symbol}}", "-38063175": "portefeuille {{account_text}}", - "-1474202916": "Effectuer un nouveau retrait", "-705272444": "Téléchargez une preuve d'identité pour vérifier votre identité", "-2024958619": "Ceci afin de protéger votre compte contre les retraits non autorisés.", "-130833284": "Veuillez noter que vos limites de retrait maximales et minimales ne sont pas fixes. Elles changent en raison de la grande volatilité des crypto-monnaies.", @@ -2606,13 +2618,13 @@ "-1125797291": "Mot de passe mis à jour.", "-157145612": "Veuillez vous connecter avec votre mot de passe mis à jour.", "-1728185398": "Renvoyer un justificatif de domicile", - "-1519764694": "Your proof of address is verified.", + "-1519764694": "Votre justificatif de domicile est vérifié.", "-1961967032": "Renvoyer une pièce d'identité", - "-117048458": "Please submit your proof of identity.", - "-1196422502": "Your proof of identity is verified.", - "-136292383": "Your proof of address verification is pending", - "-386909054": "Your proof of address verification has failed", - "-430041639": "Your proof of address did not pass our verification checks, and we’ve placed some restrictions on your account. Please resubmit your proof of address.", + "-117048458": "Veuillez envoyer votre pièce d'identité.", + "-1196422502": "Votre pièce d'identité est vérifiée.", + "-136292383": "La vérification de votre justificatif de domicile est en cours", + "-386909054": "La vérification de votre justificatif de domicile a échoué", + "-430041639": "Votre justificatif de domicile n'a pas passé la vérification et nous avons mis en place certaines restrictions sur votre compte. Veuillez renvoyer un justificatif de domicile.", "-87177461": "Veuillez vous rendre dans les paramètres de votre compte et compléter vos données personnelles pour permettre les dépôts.", "-904632610": "Réinitialisez votre balance", "-470018967": "Réinitialisez la balance", @@ -2856,10 +2868,10 @@ "-1124208206": "Passez à votre compte réel pour créer un compte {{account_title}} {{type_title}}.", "-1271218821": "Compte ajouté", "-1576792859": "Pièce d'identité et justificatif de domicile requis", - "-1931257307": "You will need to submit proof of identity", - "-2026018074": "Add your Deriv MT5 <0>{{account_type_name}} account under Deriv (SVG) LLC (company no. 273 LLC 2020).", + "-1931257307": "Vous devrez envoyer une pièce d'identité", + "-2026018074": "Ajoutez votre compte Deriv MT5 <0>{{account_type_name}} sous Deriv (SVG) LLC (société n°273 LLC 2020).", "-16048185": "Pour créer ce compte, nous avons d'abord besoin de votre pièce d'identité et de votre justificatif de domicile.", - "-162320753": "Add your Deriv MT5 <0>{{account_type_name}} account under Deriv (BVI) Ltd, regulated by the British Virgin Islands Financial Services Commission (License no. SIBA/L/18/1114).", + "-162320753": "Ajoutez votre compte Deriv MT5 <0>{{account_type_name}} sous Deriv (BVI) Ltd, réglementé par la Commission des services financiers des îles Vierges britanniques (Licence n°SIBA/L/18/1114).", "-1731304187": "Ajoutez votre compte Deriv MT5 CFD sous Deriv Investments (Europe) Limited, réglementé par la Malta Financial Services Authority (MFSA) (licence no. IS/70156).", "-1389025684": "Pour créer ce compte, vous devez d'abord renvoyer votre pièce d'identité et justificatif de domicile.", "-1627989291": "Pour créer ce compte, vous devez d'abord renvoyer votre pièce d'identité.", diff --git a/packages/translations/src/translations/id.json b/packages/translations/src/translations/id.json index 7d183edece2c..82f95b255aa8 100644 --- a/packages/translations/src/translations/id.json +++ b/packages/translations/src/translations/id.json @@ -91,6 +91,7 @@ "133536621": "dan", "138055021": "Indeks Sintetis", "139454343": "Konfirmasikan batasan saya", + "141265840": "Funds transfer information", "141626595": "Pastikan perangkat Anda memiliki kamera yang berfungsi", "142050447": "set {{ variable }} ke membuat teks dengan", "142390699": "Terhubung ke ponsel Anda", @@ -105,7 +106,6 @@ "157593038": "bilangan bulat acak dari {{ start_number }} sampai {{ end_number }}", "160746023": "Tether sebagai token Omni (USDT) adalah versi Tether yang dihostingkan di lapisan Omni pada blockchain Bitcoin.", "160863687": "Kamera tidak terdeteksi", - "162727973": "Masukkan ID agen pembayaran yang valid.", "164112826": "Blok ini memberi Anda fasilitas untuk memuat blok dari URL jika Anda menyimpannya pada remote server dan hanya akan dimuat ketika bot Anda beroperasi.", "164564432": "Deposit tidak tersedia untuk sementara waktu berhubung perbaikan sistem. Anda dapat melakukan deposit kembali setelah perbaikan selesai.", "165294347": "Pilih negara domisili Anda pada bagian pengaturan akun untuk mengakses bagian kasir.", @@ -139,6 +139,7 @@ "204863103": "Waktu akhir", "206010672": "Hapus {{ delete_count }} Blok", "207824122": "Mohon tarik dana Anda dari akun Deriv berikut ini:", + "209533725": "You’ve transferred {{amount}} {{currency}}", "210385770": "Jika Anda memiliki akun aktif, masuk untuk melanjutkan. Jika tidak, silakan mendaftar.", "211224838": "Investasi", "211461880": "Nama umum dan nama keluarga mudah ditebak", @@ -251,6 +252,7 @@ "347039138": "Pengulangan (2)", "348951052": "Kasir Anda sedang terkunci", "349047911": "Over", + "349110642": "<0>{{payment_agent}}<1>'s contact details", "351744408": "Uji jika string teks tertentu kosong", "352363702": "Anda mungkin melihat tautan ke situs web dengan halaman login Deriv palsu di mana Anda mungkin akan terkena penipuan.", "353731490": "Pekerjaan selasai", @@ -429,6 +431,7 @@ "587577425": "Amankan akun saya", "589609985": "Tautkan dengan {{identifier_title}}", "593459109": "Coba mata uang lain", + "595080994": "Example: CR123456789", "595136687": "Simpan Strategi", "597089493": "Di sinilah Anda dapat memutuskan untuk menjual kontrak Anda sebelum berakhir. Hanya satu salinan dari blok ini diperbolehkan.", "597481571": "SANGGAHAN", @@ -464,7 +467,9 @@ "640730141": "Refresh halaman ini untuk memulai ulang proses verifikasi identitas", "641420532": "Kami telah mengirimikan email pada Anda", "642210189": "Silakan lihat email Anda untuk melengkapi proses verifikasi.", + "642393128": "Enter amount", "642546661": "Unggah kembali Sim dari komputer Anda", + "642995056": "Email", "643014039": "Panjang perdagangan kontrak yang Anda beli.", "644150241": "Jumlah kontrak untung sejak terakhir kali Anda menghapus statistik.", "645016681": "Trading frekuensi pada instrumen keuangan lainnya", @@ -520,7 +525,6 @@ "706755289": "Blok ini melakukan fungsi trigonometri.", "708055868": "Nomor SIM", "710123510": "ulang {{ while_or_until }} {{ boolean }}", - "711029377": "Mohon konfirmasikan rincian transaksi untuk menyelesaikan proses penarikan:", "711999057": "Berhasil", "712101776": "Foto halaman yang berisikan foto pada paspor Anda", "712635681": "Blok ini memberi Anda nilai candle yang dipilih dari daftar candle. Anda dapat memilih dari harga open, harga close, harga high, harga low, dan waktu open.", @@ -626,7 +630,6 @@ "845213721": "Keluar", "845304111": "Periode EMA lambat {{ input_number }}", "847888634": "Tarik semua dana Anda.", - "849805216": "Pilih agen", "850582774": "Mohon perbarui info pribadi Anda", "851054273": "Jika Anda memilih \"Higher\", maka anda akan memperoleh hasil jika spot akhir lebih tinggi dari barrier.", "851264055": "Buat daftar dengan item yang diberikan secara berulang untuk beberapa kali.", @@ -647,6 +650,7 @@ "866496238": "Pastikan data Sim Anda dapat dibaca dengan jelas, tidak buram atau menyilaukan", "868826608": "Dikecualikan dari {{brand_website_name}} hingga", "869823595": "Fungsi", + "869993298": "Minimum withdrawal", "872549975": "Anda memiliki {{number}} transfer yang tersisa untuk hari ini.", "872661442": "Apa Anda yakin ingin merubah email <0>{{prev_email}} ke <1>{{changed_email}}?", "872817404": "Waktu Spot Awal", @@ -691,6 +695,7 @@ "937682366": "Unggah kedua dokumen ini untuk membuktikan identitas Anda.", "937831119": "Nama belakang*", "937992258": "Tabel", + "938500877": "{{ text }}. <0>You can view the summary of this transaction in your email.", "938988777": "Barrier tinggi", "940950724": "Jenis trading ini tidak tersedia pada {{website_name}}. Kunjungi <0>Binary.com untuk informasi lanjut.", "943535887": "Tutup posisi pada akun Deriv MT5 berikut:", @@ -707,7 +712,6 @@ "948156236": "Membuat kata sandi {{type}}", "948545552": "150+", "949859957": "Kirim", - "952655566": "Agen pembayaran", "952927527": "Diatur oleh Otoritas Jasa Keuangan Malta (MFSA) (lisensi no. IS/70156)", "955352264": "Trading pada {{platform_name_dxtrade}}", "956448295": "Gambar potongan terdeteksi", @@ -741,7 +745,6 @@ "1004127734": "Kirim email", "1006458411": "Error", "1006664890": "Sunyi", - "1008240921": "Pilih agen pembayaran dan hubungi mereka untuk informasi lebih lanjut.", "1009032439": "Semua waktu", "1010198306": "Blok ini membuat daftar dengan string dan angka.", "1012102263": "Anda tidak akan dapat mengakses akun Anda hingga tanggal berikut (hingga 6 minggu dari hari ini).", @@ -785,6 +788,7 @@ "1047389068": "Layanan Makanan", "1048947317": "Maaf, app ini tidak tersedia di {{clients_country}}.", "1049384824": "Rise", + "1050128247": "I confirm that I have verified the payment agent’s transfer information.", "1050844889": "Laporan", "1052137359": "Nama keluarga*", "1052779010": "Anda menggunakan akun demo", @@ -843,7 +847,6 @@ "1127149819": "Pastikan§", "1128404172": "Batal", "1129124569": "Jika Anda memilih \"Under\", Anda akan memperoleh hasil jika digit terakhir pada tik terakhir lebih kecil dari analisa Anda.", - "1129296176": "PEMBERITAHUAN PENTING UNTUK MENERIMA DANA ANDA", "1129842439": "Masukkan jumlah batas keuntungan.", "1130744117": "Kami akan mencoba untuk menyelesaikan keluhan Anda dalam tempo 10 hari kerja. Kami akan menginformasikan hasil beserta penjelasan posisi kami dan akan memberi saran solusi yang dapat kami sediakan.", "1130791706": "N", @@ -885,6 +888,7 @@ "1181396316": "Blok ini memberi Anda nomor acak dari dalam kisaran yang ditetapkan", "1181770592": "Laba/rugi dari penjualan", "1183007646": "- Jenis kontrak: nama jenis kontrak seperti Rise, Fall, Touch, No Touch, dll.", + "1188316409": "To receive your funds, contact the payment agent with the details below", "1188980408": "5 menit", "1189368976": "Mohon lengkapi data pribadi Anda sebelum memverifikasi identitas Anda.", "1189886490": "Daftar akun Deriv baru, {{platform_name_mt5}}, atau {{platform_name_dxtrade}}.", @@ -1019,6 +1023,7 @@ "1346339408": "Manajer", "1347071802": "{{minutePast}} menit lalu", "1348009461": "Mohon tutup posisi pada akun Deriv X berikut ini:", + "1349133669": "Try changing your search criteria.", "1349289354": "Luar biasa, itu saja yang kami butuhkan", "1349295677": "dalam teks {{ input_text }} dapatkan substring dari {{ position1 }} {{ index1 }} ke {{ position2 }} {{ index2 }}", "1351152200": "Selamat datang di dasbor Deriv MT5 (DMT5)", @@ -1042,6 +1047,7 @@ "1367990698": "Indeks Volatilitas 10", "1369709538": "Persyaratan pengguna kami", "1371193412": "Batal", + "1371555192": "Choose your preferred payment agent and enter your withdrawal amount. If your payment agent is not listed, <0>search for them using their account number.", "1371641641": "Buka tautan pada ponsel Anda", "1371911731": "Di Uni Eropa, produk keuangan ditawarkan oleh {{legal_entity_name}}, berlisensi sebagai sebagai penyedia Layanan Investasi Kategori 3 oleh Otoritas Jasa Keuangan Malta (<0>Lisensi no. IS/70156).", "1374627690": "Maks. saldo akun", @@ -1062,7 +1068,6 @@ "1393903598": "jika benar {{ return_value }}", "1396179592": "Komisi", "1396417530": "Indeks Marker Bear", - "1397046738": "Lihat pernyataan", "1397628594": "Dana tidak mencukupi", "1399620764": "Kami secara hukum berkewajiban untuk meminta informasi keuangan Anda.", "1400637999": "(Semua kolom wajib diisi)", @@ -1150,6 +1155,7 @@ "1502039206": "Di atas {{barrier}}", "1502325741": "Jangan menggunakan alamat email sebagai kata sandi.", "1503618738": "- ID referensi Kesepakatan: ID referensi kontrak", + "1505420815": "No payment agents found for your search", "1505898522": "Unduh stack", "1509570124": "{{buy_value}} (Beli)", "1509678193": "Pendidikan", @@ -1220,6 +1226,7 @@ "1613273139": "Kirim ulang bukti identitas dan alamat", "1613633732": "Interval harus antara 10-60 menit", "1615897837": "Periode EMA sinyal {{ input_number }}", + "1618809782": "Maximum withdrawal", "1619070150": "Anda sedang diarahkan ke situs web eksternal.", "1620278321": "Nama dan nama keluarga itu sendiri sangat mudah ditebak", "1620346110": "Tentukan mata uang", @@ -1249,7 +1256,6 @@ "1652968048": "Tentukan opsi trading Anda seperti multiplier dan modal.", "1652976865": "Dalam contoh berikut, blok digunakan dengan blok lain untuk mendapatkan harga open dari daftar candle. Harga open kemudian ditugaskan pada variabel yang disebut \"cl\".", "1653136377": "tersalin!", - "1653159197": "Penarikan Agen Pembayaran", "1653180917": "Kami tidak dapat memverifikasi Anda tanpa menggunakan kamera", "1654365787": "Tidak diketahui", "1654496508": "Sistem kami akan menyelesaikan setiap trading DBot yang berjalan, dan DBot tidak akan menempatkan trading baru.", @@ -1342,7 +1348,6 @@ "1766212789": "Pemeliharaan server dimulai pukul 06:00 GMT setiap hari Minggu dan dapat berlangsung hingga 2 jam. Anda mungkin mengalami gangguan layanan selama periode ini.", "1766993323": "Hanya huruf, angka, dan garis bawah yang diizinkan.", "1767429330": "Daftar akun Turunan", - "1767726621": "Pilih agen", "1768861315": "Menit", "1768918213": "Hanya huruf, spasi, tanda hubung, titik, dan tanda kutip yang diperbolehkan.", "1769068935": "Pilih salah satu exchanger untuk membeli mata uang kripto:", @@ -1350,7 +1355,6 @@ "1771592738": "Blok bersyarat", "1772532756": "Buat dan edit", "1777847421": "Ini adalah kata sandi yang sangat umum", - "1778815073": "{{website_name}} tidak berafiliasi dengan agen pembayaran manapun. Pelanggan yang berurusan dengan agen pembayaran adalah atas risiko mereka sendiri. Pelanggan disarankan untuk memeriksa kredensial agen pembayaran, dan memeriksa keakuratan informasi apapun tentang agen pembayaran (pada Deriv atau di tempat lain) sebelum mentransfer dana.", "1778893716": "Klik di sini", "1779519903": "Harus nomor yang valid.", "1780770384": "Blok ini memberi Anda pecahan acak antara 0,0 hingga 1,0.", @@ -1397,8 +1401,10 @@ "1830520348": "Kata sandi {{platform_name_dxtrade}}", "1833481689": "Membuka", "1833499833": "Pengunggahan dokumen bukti identitas gagal", + "1836767074": "Search payment agent name", "1837762008": "Kirimkan bukti identitas dan bukti alamat untuk memverifikasi akun Anda melalui bagian pengaturan untuk mengakses bagian kasir.", "1838639373": "Sumber", + "1839021527": "Please enter a valid account number. Example: CR123456789", "1840865068": "set {{ variable }} ke Simple Moving Average Array {{ dummy }}", "1841788070": "Palladium/USD", "1841996888": "Batas kerugian harian", @@ -1418,11 +1424,13 @@ "1851776924": "atas", "1851951013": "Silakan tukar ke akun demo Anda untuk menjalankan DBot Anda.", "1854480511": "Kasir terkunci", + "1854874899": "Back to list", "1855566768": "Daftar posisi item", "1856485118": "Mohon <0>kirim ulang bukti alamat untuk dapat mentransfer dana antara akun MT5 dan Deriv.", "1858251701": "menit", "1859308030": "Berikan kritik dan saran", "1863053247": "Silakan unggah dokumen identitas Anda.", + "1863731653": "To receive your funds, contact the payment agent", "1866811212": "Deposit dalam mata uang lokal menggunakan agen pembayaran yang tersedia di negara Anda.", "1866836018": "<0/><1/>Jika keluhan Anda berkaitan dengan praktik pemrosesan data kami, Anda dapat mengajukan keluhan resmi ke otoritas pengawas setempat.", "1867217564": "Indeks harus berupa angka genap positif", @@ -1475,6 +1483,7 @@ "1918633767": "Baris kedua alamat tidak dalam format yang benar.", "1918796823": "Masukkan jumlah batas kerugian.", "1919030163": "Tips untuk mengambil selfie yang bagus", + "1919594496": "{{website_name}} is not affiliated with any payment agents. Customers deal with payment agents at their sole risk. Customers are advised to check the credentials of payment agents and the accuracy of any information about payment agents (on {{website_name}} or elsewhere) before using their services.", "1920217537": "Bandingkan", "1920468180": "Cara menggunakan blok SMA", "1921634159": "Beberapa detail pribadi", @@ -1563,7 +1572,6 @@ "2021037737": "Mohon perbarui rincian Anda untuk melanjutkan.", "2023659183": "Pelajar", "2023762268": "Saya lebih memilih situs trading lain.", - "2024107855": "{{payment_agent}} rincian kontak agen:", "2025339348": "Menjauh dari cahaya - tanpa pantulan", "2027625329": "Simple Moving Average Array (SMAA)", "2027696535": "Informasi pajak", @@ -2133,7 +2141,6 @@ "-749765720": "Mata uang akun fiat Anda telah diatur ke {{currency_code}}.", "-803546115": "Kelola akun Anda ", "-1463156905": "Metode pembayaran lebih lanjut", - "-316545835": "Pastikan <0>semua detail sudah <0>benar sebelum melakukan transfer.", "-1309258714": "Dari nomor akun", "-1247676678": "Ke nomor akun", "-816476007": "Nama pemegang akun", @@ -2144,12 +2151,17 @@ "-1979554765": "Silakan masukkan deskripsi yang valid.", "-1186807402": "Transfer", "-1254233806": "Anda sudah mentransfer", - "-1179992129": "Semua agen pembayaran", - "-1137412124": "Belum menemukan metode pembayaran yang sesuai untuk Anda? Coba gunakan metode agen pembayaran.", - "-460879294": "Transaksi Anda belum selesai. Untuk menerima dana yang ditransfer, Anda harus menghubungi agen pembayaran untuk memperoleh instruksi lebih lanjut. Ringkasan transaksi telah dikirim melalui email untuk catatan Anda.", - "-596416199": "Dengan nama", - "-1169636644": "Dengan ID agen pembayaran", + "-1491457729": "All payment methods", + "-142563298": "Contact your preferred payment agent for payment instructions and make your deposit.", + "-1023961762": "Commission on deposits", + "-552873274": "Commission on withdrawal", + "-880645086": "Withdrawal amount", "-118683067": "Batas penarikan: <0 />-<1 />", + "-1125090734": "Important notice to receive your funds", + "-1924707324": "View transaction", + "-1474202916": "Lakukan penarikan baru", + "-511423158": "Enter the payment agent account number", + "-2059278156": "Note: {{website_name}} does not charge any transfer fees.", "-1201279468": "Untuk menarik dana, pilih metode pembayaran yang sama dengan metode deposit.", "-1787304306": "Deriv P2P", "-60779216": "Penarikan tidak tersedia untuk sementara waktu berhubung perbaikan sistem. Anda dapat melakukan penarikan kembali setelah perbaikan selesai.", @@ -2196,6 +2208,7 @@ "-1612346919": "Lihat semua", "-89973258": "Kirim ulang email dalam {{seconds}}", "-1059419768": "Catatan", + "-316545835": "Pastikan <0>semua detail sudah <0>benar sebelum melakukan transfer.", "-949073402": "Saya mengonfirmasi bahwa saya telah memverifikasi informasi transfer klien.", "-1752211105": "Transfer sekarang", "-598073640": "Tentang Tether (Ethereum)", @@ -2244,7 +2257,6 @@ "-2004264970": "Alamat wallet harus memiliki 25 hingga 64 karakter.", "-1707299138": "Alamat wallet {{currency_symbol}} Anda", "-38063175": "wallet {{account_text}}", - "-1474202916": "Lakukan penarikan baru", "-705272444": "Unggah bukti identitas untuk memverifikasi identitas Anda", "-2024958619": "Ini adalah untuk melindungi akun Anda dari penarikan yang tidak sah.", "-130833284": "Mohon diketahui bahwa batas penarikan Anda tidaklah tetap. Hal ini berhubung tingginya volatilitas pada mata uang kripto.", diff --git a/packages/translations/src/translations/it.json b/packages/translations/src/translations/it.json index 392ac10f087b..cbf04555ce27 100644 --- a/packages/translations/src/translations/it.json +++ b/packages/translations/src/translations/it.json @@ -91,6 +91,7 @@ "133536621": "e", "138055021": "Indici sintetici", "139454343": "Conferma i limiti", + "141265840": "Funds transfer information", "141626595": "Assicurati che il tuo dispositivo sia dotato di una fotocamera funzionante", "142050447": "imposta {{ variable }} per creare testo con", "142390699": "Connesso al tuo smartphone", @@ -105,7 +106,6 @@ "157593038": "numero intero casuale da {{ start_number }} a {{ end_number }}", "160746023": "Tether come Omni token (USDT) è una versione di Tether ospitata sul livello Omni sulla blockchain Bitcoin.", "160863687": "Nessuna fotocamera trovata", - "162727973": "Inserire un codice identificativo dell'agente di pagamento valido.", "164112826": "Questo blocco permette di caricare altri blocchi da un URL dove sono memorizzati o da un server remoto e saranno caricati solamente quando il bot è attivo.", "164564432": "I depositi non sono momentaneamente disponibili a causa della manutenzione del sistema; potrai effettuarli a manutenzione finita.", "165294347": "Inserisci il Paese di residenza nelle impostazioni del conto per accedere alla cassa.", @@ -139,6 +139,7 @@ "204863103": "Orario di uscita", "206010672": "Elimina {{ delete_count }} blocchi", "207824122": "Preleva i fondi dai seguenti conti Deriv:", + "209533725": "You’ve transferred {{amount}} {{currency}}", "210385770": "Se hai un conto attivo, accedi per continuare; altrimenti registrati.", "211224838": "Investimento", "211461880": "Nomi e cognomi abituali sono semplici da indovinare", @@ -251,6 +252,7 @@ "347039138": "Esegui iterazione (2)", "348951052": "La cassa è momentaneamente bloccata", "349047911": "Sopra", + "349110642": "<0>{{payment_agent}}<1>'s contact details", "351744408": "Verifica se una determinata stringa è vuota", "352363702": "Potresti vedere link a siti web con una falsa pagina di accesso a Deriv in cui verrai truffato per i tuoi soldi.", "353731490": "Lavoro concluso", @@ -429,6 +431,7 @@ "587577425": "Proteggi il tuo conto", "589609985": "Collegato con {{identifier_title}}", "593459109": "Prova una valuta diversa", + "595080994": "Example: CR123456789", "595136687": "Salva la strategia", "597089493": "Qui potrai vendere il contratto prima della scadenza. È permessa una sola copia di questo blocco.", "597481571": "DICHIARAZIONE DI NON RESPONSABILITÀ", @@ -464,7 +467,9 @@ "640730141": "Ricarica la pagina per riavviare il procedimento di verifica dell'identità", "641420532": "Ti abbiamo inviato una e-mail", "642210189": "Controlla la posta elettronica per il link di verifica necessario a completare l'operazione.", + "642393128": "Enter amount", "642546661": "Carica il retro della patente dal tuo computer", + "642995056": "Email", "643014039": "Lunghezza del trade del contratto acquistato.", "644150241": "Il numero di contratti ottenuti dall'ultima volta che hai cancellato le statistiche.", "645016681": "Frequenza di trading con altri strumenti finanziari", @@ -520,7 +525,6 @@ "706755289": "Questo blocco esegue funzioni trigonometriche.", "708055868": "Numero della patente di guida", "710123510": "ripeti {{ while_or_until }} {{ boolean }}", - "711029377": "Per completare il prelievo, conferma i dettagli dell'operazione:", "711999057": "Operazione riuscita", "712101776": "Fotografa la pagina del passaporto con la tua foto", "712635681": "Questo blocco fornisce il valore della candela selezionata da un elenco di candele. È possibile scegliere tra prezzo di apertura e di chiusura, prezzo massimo e minimo, e orario di apertura.", @@ -626,7 +630,6 @@ "845213721": "Logout", "845304111": "Periodo EMA lento {{ input_number }}", "847888634": "Preleva tutti i tuoi fondi.", - "849805216": "Scegli un agente", "850582774": "Aggiorna i tuoi dati personali", "851054273": "Selezionando \"Superiore\", vinci il payout se lo spot d'uscita è notevolmente superiore alla barriera.", "851264055": "Crea un elenco contenente un elemento ripetuto per uno specifico numero di volte.", @@ -647,6 +650,7 @@ "866496238": "Assicurati che i dettagli della patente siano leggibili, senza sfocature o riflessi", "868826608": "Escluso da {{brand_website_name}} fino a", "869823595": "Funzione", + "869993298": "Minimum withdrawal", "872549975": "Per oggi hai ancora {{number}} trasferimenti.", "872661442": "Sei sicuro di voler cambiare l'indirizzo e-mail <0>{{prev_email}} in <1>{{changed_email}}?", "872817404": "Orario del prezzo d'ingresso", @@ -691,6 +695,7 @@ "937682366": "Carica entrambi questi documenti per dimostrare la tua identità.", "937831119": "Cognome*", "937992258": "Tabella", + "938500877": "{{ text }}. <0>You can view the summary of this transaction in your email.", "938988777": "Barriera superiore", "940950724": "Questa tipologia di trade non è al momento supportata su {{website_name}}. Per informazioni, visitare la pagina <0>Binary.com.", "943535887": "Chiudi le posizioni nei seguenti conti Deriv MT5:", @@ -707,7 +712,6 @@ "948156236": "Crea password {{type}}", "948545552": "+150", "949859957": "Invia", - "952655566": "Agente di pagamento", "952927527": "Regolamentata dalla Malta Financial Services Authority (MFSA) (licenza n. IS/70156)", "955352264": "Fai trading su {{platform_name_dxtrade}}", "956448295": "Immagine tagliata", @@ -741,7 +745,6 @@ "1004127734": "Invia un'e-mail", "1006458411": "Errori", "1006664890": "Silenzioso", - "1008240921": "Scegli un agente di pagamento e contattalo per ricevere istruzioni.", "1009032439": "Sempre", "1010198306": "Questo blocco crea una lista con stringhe e numeri.", "1012102263": "Non potrai accedere al tuo conto fino a questa data (massimo 6 settimane da oggi).", @@ -785,6 +788,7 @@ "1047389068": "Servizi di ristorazione", "1048947317": "Siamo spiacenti, questa app non è disponibile in {{clients_country}}.", "1049384824": "Rialzo", + "1050128247": "I confirm that I have verified the payment agent’s transfer information.", "1050844889": "Report", "1052137359": "Cognome*", "1052779010": "Sei sul conto demo", @@ -843,7 +847,6 @@ "1127149819": "Assicurati di§", "1128404172": "Annulla", "1129124569": "Selezionando \"Sotto\", vincerai il payout se l'ultima cifra dell'ultimo tick è inferiore alla tua previsione.", - "1129296176": "AVVISO IMPORTANTE PER RICEVERE FONDI", "1129842439": "Inserire un importo per il take profit.", "1130744117": "Ci impegniamo a risolvere ogni controversia entro 10 giorni lavorativi. Ti informeremo delle decisioni prese fornendo una spiegazione della nostra posizione, e ti proporremo le eventuali misure correttive che intendiamo implementare.", "1130791706": "N", @@ -885,6 +888,7 @@ "1181396316": "Questo blocco fornisce un numero casuale entro un determinato intervallo", "1181770592": "Profitto/perdita dalle vendite", "1183007646": "- Tipo di contratto: il nome della tipologia come Rialzo, Ribasso, Tocca, Non Tocca, etc.", + "1188316409": "To receive your funds, contact the payment agent with the details below", "1188980408": "5 minuti", "1189368976": "Prima di verificare l'identità, completa i tuoi dati personali.", "1189886490": "Crea un altro conto Deriv, {{platform_name_mt5}} o {{platform_name_dxtrade}}.", @@ -1019,6 +1023,7 @@ "1346339408": "Manager", "1347071802": "{{minutePast}}m fa", "1348009461": "Chiudi le posizioni nei seguenti conti Deriv X:", + "1349133669": "Try changing your search criteria.", "1349289354": "Ottimo, abbiamo tutto ciò che ci serve", "1349295677": "nel testo {{ input_text }} sposta la sottostringa da {{ position1 }} {{ index1 }} a {{ position2 }} {{ index2 }}", "1351152200": "Benvenuto sulla dashboard di Deriv MT5 (DMT5)", @@ -1042,6 +1047,7 @@ "1367990698": "Indice di volatilità 10", "1369709538": "I nostri termini d'uso", "1371193412": "Annulla", + "1371555192": "Choose your preferred payment agent and enter your withdrawal amount. If your payment agent is not listed, <0>search for them using their account number.", "1371641641": "Apri il link sul tuo smartphone", "1371911731": "I prodotti finanziari nell'UE sono forniti da {{legal_entity_name}}, autorizzata come appartenente alla Categoria 3 dei fornitori di servizi di investimento dalla Malta Financial Services Authority (<0>licenza n. IS/70156).", "1374627690": "Saldo massimo del conto", @@ -1062,7 +1068,6 @@ "1393903598": "se vero {{ return_value }}", "1396179592": "Commissione", "1396417530": "Indice mercato ribassista", - "1397046738": "Visualizza nell'estratto", "1397628594": "Fondi insufficienti", "1399620764": "Siamo tenuti legalmente a richiedere le tue informazioni finanziarie.", "1400637999": "(Tutti i campi sono obbligatori)", @@ -1143,13 +1148,14 @@ "1493673429": "Cambia l'e-mail", "1493866481": "Esegui Deriv X sul tuo browser", "1496810530": "GBP/AUD", - "1497773819": "Deriv MT5 accounts", + "1497773819": "Conti Deriv MT5", "1499074768": "Aggiungi un conto reale per moltiplicatori di Deriv", "1499080621": "Operazione non valida.", "1501691227": "Aggiungi il tuo conto Deriv MT5 <0>{{account_type_name}} sotto Deriv (V) Ltd, regolamentato dalla Vanuatu Financial Services Commission.", "1502039206": "Oltre {{barrier}}", "1502325741": "La password non può essere la stessa del tuo indirizzo e-mail.", "1503618738": "- ID di riferimento negoziazione: ID di riferimento contratto", + "1505420815": "No payment agents found for your search", "1505898522": "Scarica il gruppo", "1509570124": "{{buy_value}} (Acquista)", "1509678193": "Istruzione", @@ -1220,6 +1226,7 @@ "1613273139": "Invia di nuovo la prova di identità e di indirizzo", "1613633732": "L'intervallo deve essere compreso tra 10 e 60 minuti", "1615897837": "Segna del periodo EMA {{ input_number }}", + "1618809782": "Maximum withdrawal", "1619070150": "Verrai reindirizzato a un sito esterno.", "1620278321": "Nomi e cognomi senza modifiche sono semplici da indovinare", "1620346110": "Imposta valuta", @@ -1249,7 +1256,6 @@ "1652968048": "Stabilisci le opzioni di trading come moltiplicatore e puntata.", "1652976865": "Nell'esempio, il blocco è usato con un altro blocco per ottenere i prezzi di apertura da una lista di candele. I prezzi di apertura vengono poi assegnati alla variabile \"cl\".", "1653136377": "copia eseguita!", - "1653159197": "Prelievo dell'agente di pagamento", "1653180917": "Non possiamo verificare la tua identità senza fotocamera", "1654365787": "Sconosciuto", "1654496508": "I nostri sistemi termineranno eventuali trade attivi su Dbot e quest'ultimo non avvierà alcun nuovo trade.", @@ -1342,7 +1348,6 @@ "1766212789": "La manutenzione del server inizia ogni domenica alle 06:00 GMT e potrebbe richiedere fino a 2 ore. È possibile che si verifichi un'interruzioni del servizio durante questo periodo.", "1766993323": "Sono consentiti solo numeri, lettere e trattini bassi.", "1767429330": "Aggiungi un conto derivato", - "1767726621": "Scegli agente", "1768861315": "Minuto", "1768918213": "Sono consentiti solo lettere, spazi, trattini, punti e apostrofi.", "1769068935": "Scegli uno di questi trade per comprare criptovalute:", @@ -1350,7 +1355,6 @@ "1771592738": "Blocco condizionale", "1772532756": "Crea a modifica", "1777847421": "Questa è una password usata di frequente", - "1778815073": "{{website_name}} non è affiliato ad alcun Agente di pagamento. I clienti svolgono operazioni con gli Agenti di pagamento a proprio rischio e per questo si consiglia loro di verificare le credenziali e l'accuratezza delle informazioni relative agli Agenti (su Deriv o in altre sedi) prima di trasferire fondi.", "1778893716": "Clicca qui", "1779519903": "Deve essere un numero valido.", "1780770384": "Questo blocco fornisce una frazione casuale compresa tra 0,0 e 1,0.", @@ -1397,8 +1401,10 @@ "1830520348": "Password {{platform_name_dxtrade}}", "1833481689": "Sblocca", "1833499833": "Caricamento della prova di identità non riuscito", + "1836767074": "Search payment agent name", "1837762008": "Per accedere alla cassa, vai sulle impostazioni del conto e carica i documenti di verifica di identità e indirizzo.", "1838639373": "Risorse", + "1839021527": "Please enter a valid account number. Example: CR123456789", "1840865068": "imposta {{ variable }} come media mobile semplice della serie {{ dummy }}", "1841788070": "Palladio/USD", "1841996888": "Limite delle perdite giornaliero", @@ -1418,11 +1424,13 @@ "1851776924": "superiore", "1851951013": "Passa al conto demo per attivare il DBot.", "1854480511": "La cassa è bloccata", + "1854874899": "Back to list", "1855566768": "Posizione elemento nell'elenco", "1856485118": "<0>Invia nuovamente la prova dell'indirizzo per trasferire fondi tra i conti MT5 e Deriv.", "1858251701": "minuto", "1859308030": "Fornire feedback", "1863053247": "Carica il documento d'identità.", + "1863731653": "To receive your funds, contact the payment agent", "1866811212": "Deposita fondi nella tua valuta locale tramite un agente di pagamento autorizzato e indipendente del tuo Paese.", "1866836018": "<0/><1/>Se il reclamo riguarda le nostre pratiche per il trattamento dei dati, puoi presentare un reclamo formale all'autorità di sorveglianza locale.", "1867217564": "L'indice deve essere un numero intero positivo", @@ -1475,6 +1483,7 @@ "1918633767": "La seconda riga dell'indirizzo non è in un formato valido.", "1918796823": "Inserire un importo per stop loss.", "1919030163": "Consigli per scattare un selfie adeguato", + "1919594496": "{{website_name}} is not affiliated with any payment agents. Customers deal with payment agents at their sole risk. Customers are advised to check the credentials of payment agents and the accuracy of any information about payment agents (on {{website_name}} or elsewhere) before using their services.", "1920217537": "Confronta", "1920468180": "Come utilizzare il blocco SMA", "1921634159": "Alcuni dati personali", @@ -1563,7 +1572,6 @@ "2021037737": "Aggiorna i dettagli per continuare.", "2023659183": "Studente", "2023762268": "Preferisco un altro sito di trading.", - "2024107855": "Informazioni di contatto dell'agente {{payment_agent}}:", "2025339348": "Allontanati dalla luce diretta per evitare riflessi", "2027625329": "Serie di Medie Mobili Semplici (SMAA)", "2027696535": "Informazioni fiscali", @@ -2133,7 +2141,6 @@ "-749765720": "Il conto fiat è impostato in {{currency_code}}.", "-803546115": "Gestisci i tuoi conti ", "-1463156905": "Scopri di più sulle modalità di pagamento", - "-316545835": "Assicurati che <0>tutti i dettagli siano <0>corretti prima di effettuare il trasferimento.", "-1309258714": "Dal numero di conto", "-1247676678": "Al numero di conto", "-816476007": "Nome del titolare del conto", @@ -2144,12 +2151,17 @@ "-1979554765": "Inserire una descrizione valida.", "-1186807402": "Trasferisci", "-1254233806": "Hai trasferito", - "-1179992129": "Tutti gli agenti di pagamento", - "-1137412124": "Non riesci a trovare una modalità di pagamento adatta al tuo paese? Allora prova un agente di pagamento.", - "-460879294": "Non hai ancora finito: per ricevere i fondi trasferiti, devi contattare l'agente di pagamento per ulteriori istruzioni. Abbiamo inviato un riassunto di questa operazione al tuo indirizzo e-mail.", - "-596416199": "Per nome", - "-1169636644": "Per ID dell'agente di pagamento", + "-1491457729": "All payment methods", + "-142563298": "Contact your preferred payment agent for payment instructions and make your deposit.", + "-1023961762": "Commission on deposits", + "-552873274": "Commission on withdrawal", + "-880645086": "Withdrawal amount", "-118683067": "Limiti di prelievo: <0 /> - <1 />", + "-1125090734": "Important notice to receive your funds", + "-1924707324": "View transaction", + "-1474202916": "Effettua un nuovo prelievo", + "-511423158": "Enter the payment agent account number", + "-2059278156": "Note: {{website_name}} does not charge any transfer fees.", "-1201279468": "Per prelevare i fondi, scegli la stessa modalità di pagamento che hai usato per fare i depositi.", "-1787304306": "Deriv P2P", "-60779216": "Al momento non è possibile prelevare fondi a causa della manutenzione del sistema. Potrei effettuare prelievi a manutenzione finita.", @@ -2196,6 +2208,7 @@ "-1612346919": "Visualizza tutto", "-89973258": "Invia di nuovo l'e-mail tra {{seconds}}s", "-1059419768": "Note", + "-316545835": "Assicurati che <0>tutti i dettagli siano <0>corretti prima di effettuare il trasferimento.", "-949073402": "Confermo che ho controllato e verificato le informazioni di trasferimento del cliente.", "-1752211105": "Trasferisci ora", "-598073640": "Tether (Ethereum)", @@ -2209,8 +2222,8 @@ "-2056016338": "Per i trasferimenti in valute uguali tra i conti fiat Deriv e {{platform_name_mt5}} non verrà addebitata alcuna commissione.", "-599632330": "Verrà addebitata una commissione del 1% per i trasferimenti nella stessa valuta tra i conti fiat Deriv e {{platform_name_mt5}}, e tra i conti fiat Deriv e {{platform_name_dxtrade}}.", "-1196994774": "Verrà addebitata una commissione per i trasferimenti 2% oppure {{minimum_fee}} {{currency}}, qualunque sia più alto, per i trasferimenti tra i conti per criptovalute di Deriv.", - "-993556039": "We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts and between your Deriv cryptocurrency and {{platform_name_dxtrade}} accounts.", - "-1382702462": "We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts.", + "-993556039": "Verrà addebitata una commissione per i trasferimenti del 2% oppure {{minimum_fee}} {{currency}}, qualunque sia più alto, per i trasferimenti tra i conti per criptovalute di Deriv e quelli Deriv MT5, e tra i conti per criptovalute di Deriv e quelli {{platform_name_dxtrade}}.", + "-1382702462": "Verrà addebitata una commissione per i trasferimenti del 2% oppure {{minimum_fee}} {{currency}}, qualunque sia più alto, per i trasferimenti tra i conti per criptovalute di Deriv e Deriv MT5.", "-1151983985": "I limiti sui trasferimenti possono variare a seconda dei tassi di cambio.", "-1747571263": "Alcuni trasferimenti potrebbero non essere possibili.", "-757062699": "Potrebbe non essere possibile trasferire fondi a causa di volatilità elevata o quando i mercati sono chiusi.", @@ -2244,7 +2257,6 @@ "-2004264970": "L'indirizzo di portafoglio deve comprendere dai 25 ai 64 caratteri.", "-1707299138": "L'indirizzo di portafoglio {{currency_symbol}}", "-38063175": "Portafoglio in {{account_text}}", - "-1474202916": "Effettua un nuovo prelievo", "-705272444": "Carica un documento valido per verificare la tua identità", "-2024958619": "Serve a proteggere il conto da prelievi non autorizzati.", "-130833284": "Il limite minimo e il limite massimo per il prelievo non sono fissi, ma possono cambiare in caso di elevata volatilità delle criptovalute.", diff --git a/packages/translations/src/translations/ko.json b/packages/translations/src/translations/ko.json index 7f5de5169204..20cf2044a038 100644 --- a/packages/translations/src/translations/ko.json +++ b/packages/translations/src/translations/ko.json @@ -91,6 +91,7 @@ "133536621": "및", "138055021": "합성 지수", "139454343": "나의 제한 설정 확정하기", + "141265840": "Funds transfer information", "141626595": "귀하의 장치가 잘 작동하는 카메라가 있도록 해주세요", "142050447": "다음의 텍스와 함께 생성할 {{ variable }} 설정", "142390699": "귀하의 모바일에 연결되었습니다", @@ -105,7 +106,6 @@ "157593038": "{{ start_number }} 에서 {{ end_number }} 까지 중에서 무작위 정수", "160746023": "옴니 토큰으로써의 테더 (USDT) 는 비트코인 블록체인의 옴니 레이어에서 호스팅되는 테더의 버전입니다.", "160863687": "카메라가 발견되지 않았습니다", - "162727973": "유효한 지불 에이전트 ID를 입력해주세요.", "164112826": "귀하께서 원격 서버에 저장하신 블록들을 보유하고 있으시면 이 블록은 저장되어 있는 블록들을 귀하께서 하나의 URL로부터 로드하실 수 있도록 해주며, 이러한 블록들은 오직 귀하께서 봇을 구동할 때에만 로드될 것입니다.", "164564432": "현재 시스템 관리로 인해 예금은 일시적으로 불가능합니다. 시스템 관리가 완료되면 예금을 진행하실 수 있습니다.", "165294347": "캐셔에 접근하기 위해 귀하의 계좌 설정에서 귀하의 거주국가를 설정해 주시기 바랍니다.", @@ -139,6 +139,7 @@ "204863103": "출구 시간", "206010672": "{{ delete_count }} 블록 삭제", "207824122": "다음의 Deriv 계좌(들)에서 귀하의 자금을 인출해 주시기 바랍니다:", + "209533725": "You’ve transferred {{amount}} {{currency}}", "210385770": "귀하께서 활성화되어 있는 계좌를 가지고 계시면, 계속 진행하기 위해 로그인 해주세요. 계좌가 없으시면, 가입해주시기 바랍니다.", "211224838": "투자", "211461880": "일반적인 이름과 성은 추측하기 쉽습니다", @@ -251,6 +252,7 @@ "347039138": "반복 (2)", "348951052": "귀하의 캐셔는 현재 잠겨져 있습니다", "349047911": "오버", + "349110642": "<0>{{payment_agent}}<1>'s contact details", "351744408": "주어진 문자열이 비어 있는 지를 검사합니다", "352363702": "가짜 Deriv 로그인 페이지가 있는 웹사이트로 연결되는 링크가 보일 수 있으며, 여기에서 돈으로 사기를 당할 수 있습니다.", "353731490": "작업 완료", @@ -429,6 +431,7 @@ "587577425": "내 계좌 안전하게 보호하기", "589609985": "{{identifier_title}}과 연결되었습니다", "593459109": "다른 통화로 시도해보세요", + "595080994": "Example: CR123456789", "595136687": "전략 저장", "597089493": "여기는 귀하의 계약이 만료되기 전에 판매를 결정하실 수 있는 곳입니다. 이 블록에 대하여 단 하나의 복사만 허용됩니다.", "597481571": "공고", @@ -464,7 +467,9 @@ "640730141": "신원검증절차를 재시작하기 위해 이 페이지를 새로고침하세요", "641420532": "우리가 귀하에게 이메일을 보내드렸습니다", "642210189": "해당 절차를 완료하기 위한 인증 링크를 위해 귀하의 이메일을 확인해 주시기 바랍니다.", + "642393128": "Enter amount", "642546661": "귀하의 컴퓨터에서 운전면허증의 뒷부분을 업로드해주세요", + "642995056": "Email", "643014039": "귀하께서 구매하신 계약의 거래 기간.", "644150241": "귀하의 스탯을 마지막으로 삭제한 이후로부터 귀하께서 획득한 계약의 수.", "645016681": "다른 금융 상품에서의 거래 빈도", @@ -520,7 +525,6 @@ "706755289": "이 블록은 삼각함수를 수행합니다.", "708055868": "운전 면허증 번호", "710123510": "{{ while_or_until }} {{ boolean }} 반복하기", - "711029377": "인출을 완료하기 위해 해당 거래 세부사항을 확정해주시기 바랍니다:", "711999057": "성공적입니다", "712101776": "귀하의 여권에서 사진이 있는 페이지를 사진찍어주세요", "712635681": "이 블록은 캔들의 목록에서부터 선택된 캔들값을 제공합니다. 귀하께서는 시작가, 종가, 고가, 저가 및 시작 시간중에서 선택하실 수 있습니다.", @@ -626,7 +630,6 @@ "845213721": "로그아웃", "845304111": "느린 EMA 기간 {{ input_number }}", "847888634": "귀하의 자금을 모두 인출해 주시기 바랍니다.", - "849805216": "에이전트를 선택하세요", "850582774": "귀하의 인적 정보를 업데이트 하시기 바랍니다", "851054273": "만약 \"Higher\"를 선택하시면, 귀하께서는 출구부가 해당 장벽보다 엄격하게 높을 경우에 지불금을 획득합니다.", "851264055": "특정 수로 반복된 주어진 항목들의 목록을 생성합니다.", @@ -647,6 +650,7 @@ "866496238": "귀하의 라이센스 세부정보가 흐릿한 점과 반사되는 부분이 없이 명확히 읽을 수 있는 상태이도록 확실히 해주세요", "868826608": "다음 때까지 {{brand_website_name}} 에서 제외되셨습니다", "869823595": "함수", + "869993298": "Minimum withdrawal", "872549975": "귀하께서는 오늘 남아 있는 송금 횟수가 {{number}} 회입니다.", "872661442": "귀하의 이메일을 <0>{{prev_email}}에서 <1>{{changed_email}}로 업데이트 하시기를 원하십니까?", "872817404": "진입부 시간", @@ -691,6 +695,7 @@ "937682366": "귀하의 신분을 증명하기 위하 다음의 문서를 모두 업로드하세요.", "937831119": "성*", "937992258": "표", + "938500877": "{{ text }}. <0>You can view the summary of this transaction in your email.", "938988777": "높은 장벽", "940950724": "이 거래 종류는 현재 {{website_name}}에서 지원되지 않습니다. 자세한 사항은 <0>Binary.com에서 확인해주시기 바랍니다.", "943535887": "다음의 Deriv MT5 계좌(들)에서 귀하의 포지션들을 종료해 주시기 바랍니다:", @@ -707,7 +712,6 @@ "948156236": "{{type}} 비밀번호 생성하기", "948545552": "150+", "949859957": "제출하기", - "952655566": "지불 에이전트", "952927527": "몰타 금융 서비스 당국 (MFSA) 에 의해 규제됩니다 (라이센스 번호. IS/70156)", "955352264": "{{platform_name_dxtrade}} 에서 거래하세요", "956448295": "잘려진 이미지가 발견되었습니다", @@ -741,7 +745,6 @@ "1004127734": "이메일 전송", "1006458411": "에러", "1006664890": "무음", - "1008240921": "지불 에이전트를 선택하시고 지침사항을 위해 선택하신 에이전트에 연락하세요.", "1009032439": "모든 기간", "1010198306": "이 블록은 문자열들과 숫자들을 생성합니다.", "1012102263": "귀하께서는 이 날짜까지 귀하의 계좌에 로그인하실 수 없을 것입니다 (오늘부터 최대 6주까지).", @@ -785,6 +788,7 @@ "1047389068": "푸드 서비스", "1048947317": "죄송합니다, 이 앱은 {{clients_country}}에서 사용할 수 없습니다.", "1049384824": "상승", + "1050128247": "I confirm that I have verified the payment agent’s transfer information.", "1050844889": "보고서", "1052137359": "성*", "1052779010": "귀하께서는 데모 계좌를 사용하시고 계십니다", @@ -843,7 +847,6 @@ "1127149819": "확인해주세요§", "1128404172": "취소", "1129124569": "귀하께서 만약 \"언더\"를 선택하시면, 귀하께서는 마지막 틱의 마지막 숫자가 귀하의 예측보다 적은 경우 지불금을 받게 될 것입니다.", - "1129296176": "귀하의 자금을 받기 위한 중요한 공지", "1129842439": "취득 이윤금액을 입력해주시기 바랍니다.", "1130744117": "우리는 영업일 기준 10일 이내로 귀하의 불만사항을 해결할 수 있도록 노력할 것입니다. 우리는 우리의 위치에 대한 설명과 함께 결과를 귀하에게 공지해 드릴것이며 우리가 취하고자 하는 시정조치를 제시해드릴 것입니다.", "1130791706": "N", @@ -885,6 +888,7 @@ "1181396316": "이 블록은 정해진 범위 내에서 무작위의 숫자를 귀하에게 제공합니다", "1181770592": "매도로부터 발생한 이윤/손실", "1183007646": "- 게약 종류: 상승, 하락, 터치, 노터치 등과 같은 계약 종류의 이름.", + "1188316409": "To receive your funds, contact the payment agent with the details below", "1188980408": "5분", "1189368976": "귀하의 신분을 인증하기 이전에 귀하의 세부 신상정보를 완료해주시기 바랍니다.", "1189886490": "다른 Deriv, {{platform_name_mt5}} 또는 {{platform_name_dxtrade}} 계좌를 생성해 주시기 바랍니다.", @@ -1019,6 +1023,7 @@ "1346339408": "관리자", "1347071802": "{{minutePast}}분 이전", "1348009461": "다음의 Deriv X 계좌(들) 에 있는 귀하의 포지션들을 닫아주시기 바랍니다:", + "1349133669": "Try changing your search criteria.", "1349289354": "좋습니다, 우리가 필요한 모든것들이 충족되었습니다", "1349295677": "{{ input_text }} 텍스트에서 {{ position1 }} {{ index1 }} 에서 {{ position2 }} {{ index2 }} 까지의 부분열을 받으세요", "1351152200": "Deriv MT5 (DMT5) 대시보드에 오신 것을 환영합니다", @@ -1042,6 +1047,7 @@ "1367990698": "변동성 10 지수", "1369709538": "우리의 이용약관", "1371193412": "취소", + "1371555192": "Choose your preferred payment agent and enter your withdrawal amount. If your payment agent is not listed, <0>search for them using their account number.", "1371641641": "귀하의 휴대폰에서 해당 링크를 여세요", "1371911731": "유럽의 금융 상품들은 몰타 금융 서비스 당국 (<0>라이센스 번호. IS/70156) 에 의해 카테고리 3 투자 서비스 제공자로 인가된 {{legal_entity_name}} 에 의해 제공됩니다.", "1374627690": "최대 계좌 잔액", @@ -1062,7 +1068,6 @@ "1393903598": "만약 참이면 {{ return_value }}", "1396179592": "수수료", "1396417530": "약세장 지수", - "1397046738": "내역서 보기", "1397628594": "부족한 잔액", "1399620764": "우리는 귀하의 금융 정보를 요청해야할 법적 의무가 있습니다.", "1400637999": "(모든 항목들이 필수 입력사항입니다)", @@ -1150,6 +1155,7 @@ "1502039206": "{{barrier}} 오버", "1502325741": "비밀번호는 귀하의 이메일 주소와 같을 수 없습니다.", "1503618738": "- 거래 참조 ID: 계약의 참조 ID", + "1505420815": "No payment agents found for your search", "1505898522": "스택 다운로드", "1509570124": "{{buy_value}} (구매)", "1509678193": "교육", @@ -1220,6 +1226,7 @@ "1613273139": "귀하의 신원 및 주소를 다시 제출하세요", "1613633732": "간격은 10분에서 60분 사이여야 합니다", "1615897837": "시그널 지수이동평균 기간 {{ input_number }}", + "1618809782": "Maximum withdrawal", "1619070150": "귀하께서는 외부의 웹사이트로 연결되고 있습니다.", "1620278321": "이름과 성 자체만으로도 쉽게 추측할 수 있습니다", "1620346110": "통화 설정", @@ -1249,7 +1256,6 @@ "1652968048": "승수 및 지분과 같이 귀하의 트레이드 옵션을 정의하세요.", "1652976865": "이 예시에서, 이 블록은 캔들 목록으로부터 개장 가격을 받기 위해 다른 블록과 함께 사용됩니다. 그 후 해당 개장가격은 \"cl\"이라고 불리는 변수에 할당됩니다.", "1653136377": "복사되었습니다!", - "1653159197": "지불 에이전트 인출", "1653180917": "우리는 귀하의 카메라를 이용하지 않고서는 귀하를 확인할 수 없습니다", "1654365787": "알수 없습니다", "1654496508": "우리 시스템이 실행중인 모든 DBot 거래들을 종료시킬 것이며, DBot은 더이상 새 거래들을 시행하지 않을 것입니다.", @@ -1342,7 +1348,6 @@ "1766212789": "서버관리는 매주 일요일 06:00 GMT에 시작하며 최대 2시간까지 지속될 수 있습니다. 이때에는 서비스가 원활하지 않을 수 있습니다.", "1766993323": "문자, 숫자 및 밑줄 표시만 허용됩니다.", "1767429330": "Derived 계정 추가", - "1767726621": "에이전트를 선택하세요", "1768861315": "분", "1768918213": "오직 문자, 띄어쓰기, 하이픈, 온점 및 아포스트로피만 허용됩니다.", "1769068935": "암호화폐들을 구매하기 위해 다음의 거래소들 중에서 선택하세요:", @@ -1350,7 +1355,6 @@ "1771592738": "조건부 블록", "1772532756": "생성 및 편집하기", "1777847421": "너무 흔한 비밀번호입니다", - "1778815073": "{{website_name}} 은 그 어떠한 지불 에이전트와도 연계되어 있지 않습니다. 고객분들은 그들의 단독적인 위험을 감수하고 지불 에이전트와 거래 합니다. 자금을 송금하기 이전에 고객분들은 지불 에이전트에 대한 신용을 확인하고 해당 지불 에이전트 (Deriv 또는 다른 어디든) 에 대한 정보의 정확성을 확인하도록 조언을 받습니다.", "1778893716": "여기를 클릭하세요", "1779519903": "유효한 숫자여야 합니다.", "1780770384": "이 블록은 귀하에게 0.0과 1.0 사이에 있는 한 무작위 분수를 제공합니다.", @@ -1397,8 +1401,10 @@ "1830520348": "{{platform_name_dxtrade}} 비밀번호", "1833481689": "잠금해제", "1833499833": "신분 증명 문서 업로드가 실패되었습니다", + "1836767074": "Search payment agent name", "1837762008": "캐셔로 접근하시기 위해 귀하의 계좌 설정에서 귀하의 계좌를 검증하기 위한 신분증 및 주소증명을 제출해 주시기 바랍니다.", "1838639373": "자원", + "1839021527": "Please enter a valid account number. Example: CR123456789", "1840865068": "{{ variable }} 을 단순이동평균 {{ dummy }} 으로 설정하기", "1841788070": "팔라듐/USD", "1841996888": "일일 손실 제한", @@ -1418,11 +1424,13 @@ "1851776924": "상위", "1851951013": "귀하의 DBot을 실행하기 위해 귀하의 데모 계좌로 변경해 주세요.", "1854480511": "캐셔가 잠겨 있습니다", + "1854874899": "Back to list", "1855566768": "목록 항목 포지션", "1856485118": "MT5 및 Deriv 계정 간에 자금을 이체하시기 위해서 귀하의 주소 증명을 <0>다시 제출해 주시기 바랍니다.", "1858251701": "분", "1859308030": "피드백 제공", "1863053247": "귀하의 신분 문서를 업로드해주시기 바랍니다.", + "1863731653": "To receive your funds, contact the payment agent", "1866811212": "귀하의 국가에서 허가되며 독립적인 지불 에이전트를 통해 귀하의 지역 통화로 예금하세요.", "1866836018": "<0/><1/>만약 귀하의 불만사항이 우리의 데이터 처리 방식과 연관되어 있다면 귀하께서는 귀하의 현지 감독 기관에 공식적으로 불만을 접수하실 수 있습니다.", "1867217564": "지수는 반드시 양의 정수여야 합니다", @@ -1475,6 +1483,7 @@ "1918633767": "주소의 두번째 줄이 적절한 형식으로 되어 있지 않습니다.", "1918796823": "손실제한 금액을 입력해 주시기 바랍니다.", "1919030163": "좋은 자가촬영사진을 찍기 위한 팁", + "1919594496": "{{website_name}} is not affiliated with any payment agents. Customers deal with payment agents at their sole risk. Customers are advised to check the credentials of payment agents and the accuracy of any information about payment agents (on {{website_name}} or elsewhere) before using their services.", "1920217537": "비교", "1920468180": "SMA 블록 활용 방법", "1921634159": "몇몇 인적 세부사항", @@ -1563,7 +1572,6 @@ "2021037737": "진행하기 위해 귀하의 세부사항을 업데이트 해 주시기 바랍니다.", "2023659183": "학생", "2023762268": "저는 다른 트레이딩 웹사이트를 선호합니다.", - "2024107855": "{{payment_agent}} 에이전트 연락 정보:", "2025339348": "직사광에서 멀어져 주세요 — 반사는 안됩니다", "2027625329": "단순이동평균 배열 (SMAA)", "2027696535": "조세 정보", @@ -2133,7 +2141,6 @@ "-749765720": "귀하의 피아트 계좌 통화는 {{currency_code}} 로 설정되어 있습니다.", "-803546115": "귀하의 계좌들을 관리하세요 ", "-1463156905": "결제 방식에 대해 더 배워보세요", - "-316545835": "귀하께서 송금하시기 이전에 <0>모든 세부정보가 <0>정확한지를 확인해주세요.", "-1309258714": "보낸 사람 계좌번호", "-1247676678": "받는 사람 계좌번호", "-816476007": "계좌 소유자 이름", @@ -2144,12 +2151,17 @@ "-1979554765": "유효한 설명을 입력해주시기 바랍니다.", "-1186807402": "송금", "-1254233806": "귀하께서는 양도했습니다", - "-1179992129": "모든 지불 에이전트", - "-1137412124": "귀하의 국가에 대하여 적합한 지불 방식을 찾을 수 없나요? 그렇다면 지불 에이전트를 활용해 보세요.", - "-460879294": "귀하께서는 아직 끝나지 않았습니다. 송금된 자금을 받기 위해서는, 추가적인 지침을 위해 귀하께서 반드시 지불 에이전트로 연락하셔야 합니다. 해당 송금의 요약은 기록을 위해 귀하에게 이메일이 전송되었습니다.", - "-596416199": "이름으로", - "-1169636644": "지불 에이전트 ID로", + "-1491457729": "All payment methods", + "-142563298": "Contact your preferred payment agent for payment instructions and make your deposit.", + "-1023961762": "Commission on deposits", + "-552873274": "Commission on withdrawal", + "-880645086": "Withdrawal amount", "-118683067": "인출 한도: <0 />-<1 />", + "-1125090734": "Important notice to receive your funds", + "-1924707324": "View transaction", + "-1474202916": "새로 인출하기", + "-511423158": "Enter the payment agent account number", + "-2059278156": "Note: {{website_name}} does not charge any transfer fees.", "-1201279468": "귀하의 자금을 인출하기 위해서는, 귀하께서 예금을 하시기 위해 사용하신 같은 지불 방식을 선택하시기 바랍니다.", "-1787304306": "Deriv P2P", "-60779216": "시스템 관리로 인해 인출이 일시적으로 불가능합니다. 시스템 관리가 완료되면 인출을 진행하실 수 있습니다.", @@ -2196,6 +2208,7 @@ "-1612346919": "전체 보기", "-89973258": "{{seconds}}초 후에 이메일 재전송", "-1059419768": "공지", + "-316545835": "귀하께서 송금하시기 이전에 <0>모든 세부정보가 <0>정확한지를 확인해주세요.", "-949073402": "저는 고객의 송금정보를 확인했고 검증했다는 사실을 확인합니다.", "-1752211105": "지금 송금하기", "-598073640": "테더 소개 (이더리움)", @@ -2244,7 +2257,6 @@ "-2004264970": "귀하의 지갑 주소는 문자수가 25에서 64개이여야 합니다.", "-1707299138": "귀하의 {{currency_symbol}} 지갑 주소", "-38063175": "{{account_text}} 지갑", - "-1474202916": "새로 인출하기", "-705272444": "귀하의 신분을 인증하기 위해 신분증을 업로드하세요", "-2024958619": "이는 귀하의 계좌를 인가되지 않은 인출로부터 보호하기 위한 것입니다.", "-130833284": "귀하의 최대 및 최소 인출 한도가 고정되어 있지 않다는 점을 아시기 바랍니다. 해당 한도들은 암호화폐의 높은 변동성 때문에 변합니다.", diff --git a/packages/translations/src/translations/pl.json b/packages/translations/src/translations/pl.json index 59561b6aae93..510200f421ce 100644 --- a/packages/translations/src/translations/pl.json +++ b/packages/translations/src/translations/pl.json @@ -91,6 +91,7 @@ "133536621": "i", "138055021": "Wskaźniki syntetyczne", "139454343": "Potwierdź moje limity", + "141265840": "Funds transfer information", "141626595": "Upewnij się, że Twój telefon komórkowy ma sprawny aparat", "142050447": "ustaw {{ variable }}, aby utworzyć tekst z", "142390699": "Połączono z Twoim telefonem komórkowym", @@ -105,7 +106,6 @@ "157593038": "losowa liczba całkowita z przedziału od {{ start_number }} do {{ end_number }}", "160746023": "Tether jako token Omni (USDT) to wersja Tether hostowana na poziomie Omni w oparciu o technologię blockchain Bitcoin.", "160863687": "Nie wykryto aparatu", - "162727973": "Proszę podać poprawny identyfikator pośrednika płatności.", "164112826": "Ten blok umożliwia załadowanie bloków z URL, jeśli przechowujesz je na zdalnym serwerze. Zostaną załadowane tylko, jeśli bot jest uruchomiony.", "164564432": "Wpłaty są tymczasowo niedostępne z powodu konserwacji systemu. Możesz dokonać wpłaty po zakończeniu konserwacji.", "165294347": "Ustaw swój kraj zamieszkania w ustawieniach swojego konta, aby uzyskać dostęp do kasjera.", @@ -139,6 +139,7 @@ "204863103": "Czas wyjściowy", "206010672": "Usuń bloki w liczbie {{ delete_count }}", "207824122": "Wypłać swoje środki z następujących kont Deriv:", + "209533725": "You’ve transferred {{amount}} {{currency}}", "210385770": "Jeśli masz aktywne konto, zaloguj się, aby kontynuować. Jeśli nie, zarejestruj się.", "211224838": "Inwestowanie", "211461880": "Popularne imiona i nazwiska można łatwo przewidzieć", @@ -251,6 +252,7 @@ "347039138": "Iteracja (2)", "348951052": "Twój kasjer jest obecnie zablokowany", "349047911": "Powyżej", + "349110642": "<0>{{payment_agent}}<1>'s contact details", "351744408": "Sprawdza, czy określony ciąg tekstu jest pusty", "352363702": "Możesz zobaczyć linki do stron internetowych z fałszywą stroną logowania Deriv, na której zostaniesz oszukany za swoje pieniądze.", "353731490": "Gotowe", @@ -429,6 +431,7 @@ "587577425": "Zabezpiecz moje konto", "589609985": "Powiązane z {{identifier_title}}", "593459109": "Spróbuj inną walutę", + "595080994": "Example: CR123456789", "595136687": "Zapisz strategię", "597089493": "Tutaj możesz zdecydować o sprzedaży swojego kontraktu przed jego wygaśnięciem. Dozwolona jest tylko jedna kopia tego bloku.", "597481571": "ZASTRZEŻENIE", @@ -464,7 +467,9 @@ "640730141": "Odśwież tę stronę, aby rozpocząć ponownie proces weryfikacji tożsamości", "641420532": "Wysłaliśmy Ci wiadomość e-mail", "642210189": "Aby ukończyć proces, sprawdź swoją skrzynkę e-mailową, na którą wysłaliśmy link weryfikacyjny.", + "642393128": "Enter amount", "642546661": "Prześlij tylną część prawa jazdy ze swojego komputera", + "642995056": "Email", "643014039": "Okres trwania zakupionego kontraktu.", "644150241": "Liczba wygranych kontraktów od ostatniego zerowania statystyk.", "645016681": "Częstotliwość handlowania innymi instrumentami finansowymi", @@ -520,7 +525,6 @@ "706755289": "Ten blok oblicza funkcje trygonometryczne.", "708055868": "Numer prawa jazdy", "710123510": "powtórz {{ while_or_until }} {{ boolean }}", - "711029377": "Proszę potwierdzić szczegóły transakcji w celu zakończenia wypłaty:", "711999057": "Zakończono powodzeniem", "712101776": "Zrób zdjęcie strony ze zdjęciem z paszportu", "712635681": "Ten blok daje wybraną wartość świecy z listy świec. Możesz wybrać spośród ceny otwarcia, ceny zamknięcia, ceny wysokiej, ceny niskiej i godziny otwarcia.", @@ -626,7 +630,6 @@ "845213721": "Wyloguj", "845304111": "Okres wolnej wykładniczej średniej kroczącej {{ input_number }}", "847888634": "Wypłać wszystkie swoje środki.", - "849805216": "Wybierz pośrednika", "850582774": "Zaktualizuj swoje dane osobowe", "851054273": "Jeśli wybierzesz „wzrośnie”, zdobędziesz wypłatę, gdy punkt wyjściowy będzie znacząco wyższy niż limit.", "851264055": "Tworzy listę z danym elementem powtórzonym określoną liczbę razy.", @@ -647,6 +650,7 @@ "866496238": "Upewnij się, że szczegóły prawa jazdy są widoczne i czytelne, nie są zamazane ani prześwietlone", "868826608": "Wyłączenie z {{brand_website_name}} do", "869823595": "Funkcja", + "869993298": "Minimum withdrawal", "872549975": "Pozostała liczba przelewów na dziś: {{number}}.", "872661442": "Czy na pewno chcesz zaktualizować adres e-mail <0>{{prev_email}} na <1>{{changed_email}}?", "872817404": "Czas pozycji wejściowej", @@ -691,6 +695,7 @@ "937682366": "Prześlij oba te dokumenty, aby udowodnić swoją tożsamość.", "937831119": "Nazwisko*", "937992258": "Tabela", + "938500877": "{{ text }}. <0>You can view the summary of this transaction in your email.", "938988777": "Górny limit", "940950724": "Ten rodzaj zakładu nie jest obecnie obsługiwany {{website_name}}. Przejdź do <0>Binary.com, aby dowiedzieć się więcej.", "943535887": "Zamknij swoje pozycje na następujących kontach Deriv MT5:", @@ -707,7 +712,6 @@ "948156236": "Utwórz hasło {{type}}", "948545552": "150+", "949859957": "Prześlij", - "952655566": "Pośrednik płatności", "952927527": "Podlega pod regulacje instytucji Malta Financial Services Authority (MFSA) (licence no. IS/70156)", "955352264": "Inwestuj na {{platform_name_dxtrade}}", "956448295": "Wykryto przycięty obraz", @@ -741,7 +745,6 @@ "1004127734": "Wyślij e-mail", "1006458411": "Błędy", "1006664890": "Wyciszony", - "1008240921": "Wybierz pośrednika płatności i skontaktuj się z nim, aby uzyskać instrukcje.", "1009032439": "Cały czas", "1010198306": "Ten blok tworzy listę składającą się z ciągów i liczb.", "1012102263": "Nie będzie możliwe zalogowanie się do konta do tego dnia (do 6 tygodni od dzisiejszego dnia).", @@ -785,6 +788,7 @@ "1047389068": "Usługi gastronomiczne", "1048947317": "Przepraszamy, aplikacja jest niedostępna w kraju: {{clients_country}}.", "1049384824": "Wzrost", + "1050128247": "I confirm that I have verified the payment agent’s transfer information.", "1050844889": "Raporty", "1052137359": "Nazwisko*", "1052779010": "Używasz konta demo", @@ -843,7 +847,6 @@ "1127149819": "Upewnij się ", "1128404172": "Cofnij", "1129124569": "Jeśli wybierzesz „poniżej”, zdobędziesz wypłatę, gdy ostatnia cyfra ostatniego najmniejszego przyrostu ceny będzie mniejsza niż cyfra przewidywana przez Ciebie.", - "1129296176": "WAŻNA INFORMACJA DOT. TWOICH ŚRODKÓW", "1129842439": "Wprowadź kwotę opcji Uzyskaj zysk.", "1130744117": "Będziemy się starać rozpatrzeć Twoją skargę w terminie 10 dni roboczych. Poinformujemy Cię o wyniku jej rozpatrzenia wraz z wyjaśnieniem naszego stanowiska i zaproponujemy środku zaradcze, jakie zamierzamy podjąć.", "1130791706": "N", @@ -885,6 +888,7 @@ "1181396316": "Ten blok daje losową liczbę spośród ustalonego zakresu", "1181770592": "Zysk/strata ze sprzedaży", "1183007646": "- Rodzaj kontraktu: nazwa rodzaju kontraktu, np. Wzrost, Spadek, Osiągnie, Nie osiągnie itp.", + "1188316409": "To receive your funds, contact the payment agent with the details below", "1188980408": "5 minut", "1189368976": "Zanim zweryfikujesz swoją tożsamość, uzupełnij swoje dane osobowe.", "1189886490": "Utwórz kolejne konto Deriv, {{platform_name_mt5}} lub {{platform_name_dxtrade}}.", @@ -1019,6 +1023,7 @@ "1346339408": "Kierownicy", "1347071802": "{{minutePast}}min temu", "1348009461": "Zamknij swoje pozycje na następujących kontach Deriv X:", + "1349133669": "Try changing your search criteria.", "1349289354": "Świetnie, to wszystko, czego potrzebujemy", "1349295677": "w tekście {{ input_text }} uzyskaj ciąg podrzędny z {{ position1 }} {{ index1 }} do {{ position2 }} {{ index2 }} {{ index2 }}", "1351152200": "Witaj w pulpicie Deriv MT5 (DMT5)", @@ -1042,6 +1047,7 @@ "1367990698": "Wskaźnik zmienności 10", "1369709538": "Nasze warunki użytkowania", "1371193412": "Anuluj", + "1371555192": "Choose your preferred payment agent and enter your withdrawal amount. If your payment agent is not listed, <0>search for them using their account number.", "1371641641": "Otwórz link na swoim urządzeniu", "1371911731": "W UE produkty finansowe są oferowane przez {{legal_entity_name}}, objętą licencją Urzędu ds. Usług Finansowych na Malcie: Malta Financial Services Authority jako firma świadcząca usługi inwestycyjne kategorii 3 (<0>Licencja o nr IS/70156).", "1374627690": "Maksymalne saldo konta", @@ -1062,7 +1068,6 @@ "1393903598": "jeśli prawda {{ return_value }}", "1396179592": "Prowizja", "1396417530": "Indeks rynku niedźwiedzia", - "1397046738": "Zobacz na wyciągu", "1397628594": "Niewystarczające środki", "1399620764": "Jesteśmy zobowiązani prawnie do pozyskania Twoich informacji finansowych.", "1400637999": "(Wszystkie pola są wymagane)", @@ -1143,13 +1148,14 @@ "1493673429": "Zmień adres e-mail", "1493866481": "Uruchom Deriv X w przeglądarce", "1496810530": "GBP/AUD", - "1497773819": "Deriv MT5 accounts", + "1497773819": "Konta Deriv MT5", "1499074768": "Dodaj prawdziwe konto Mnożników Deriv", "1499080621": "Próba wykonania nieprawidłowej operacji.", "1501691227": "Dodaj swoje konto Deriv MT5 <0>{{account_type_name}} w Deriv (V) Ltd, podlegającej regulacjom komisji Vanuatu Financial Services Commission.", "1502039206": "Ponad {{barrier}}", "1502325741": "Twoje hasło nie może być takie samo jak adres e-mail.", "1503618738": "- ID referencyjne transakcji: numer referencyjny kontraktu", + "1505420815": "No payment agents found for your search", "1505898522": "Pobierz stos", "1509570124": "{{buy_value}} (Kup)", "1509678193": "Edukacja", @@ -1220,6 +1226,7 @@ "1613273139": "Prześlij ponownie potwierdzenie tożsamości i adresu", "1613633732": "Przerwa powinna trwać 10-60 minut", "1615897837": "Sygnał okresu średniej kroczącej {{ input_number }}", + "1618809782": "Maximum withdrawal", "1619070150": "Trwa przekierowywanie na zewnętrzną stronę.", "1620278321": "Imiona i nazwiska użyte samodzielnie są łatwe do przewidzenia", "1620346110": "Ustaw walutę", @@ -1249,7 +1256,6 @@ "1652968048": "Określ swoje opcje handlowe, takie jak mnożnik i stawka.", "1652976865": "W poniższym przykładzie blok jest użyty z innym blokiem w celu uzyskania cen otwarcia z listy świec. Ceny otwarcia są następnie przypisywane do zmiennej nazywanej „cl”.", "1653136377": "skopiowane!", - "1653159197": "Wypłata od pośrednika płatności", "1653180917": "Nie możemy przeprowadzić weryfikacji bez użycia aparatu", "1654365787": "Nieznany", "1654496508": "Nasz system zakończy wszystkie trwające zakłady DBot. DBot nie będzie zawierał nowych zakładów.", @@ -1342,7 +1348,6 @@ "1766212789": "Konserwacja serwera rozpoczyna się o godz. 06:00 GMT w każdą niedzielę. Konserwacja może potrwać do 2 godzin. W tym czasie możliwe jest zakłócenie usług.", "1766993323": "Dozwolone są tylko litery, cyfry i podkreślniki.", "1767429330": "Dodaj konto pochodne", - "1767726621": "Wybierz pośrednika", "1768861315": "Minuta", "1768918213": "Dozwolone są tylko litery, spacja, myślniki, kropki i apostrof.", "1769068935": "Wybierz jedną z poniższych giełd, aby kupić kryptowaluty:", @@ -1350,7 +1355,6 @@ "1771592738": "Blok warunkowy", "1772532756": "Utwórz i edytuj", "1777847421": "To bardzo popularne hasło", - "1778815073": "Strona {{website_name}} nie jest powiązana z żadnym pośrednikiem płatności. Klienci zawierają transakcje z pośrednikami płatności na swoje własne ryzyko. Zaleca się klientom sprawdzenie referencji pośredników płatności i rzetelność wszelkich informacji dot. pośredników płatności (na portalu Deriv lub w innym miejscu) przed przelaniem środków.", "1778893716": "Kliknij tutaj", "1779519903": "Akceptowane są tylko liczby.", "1780770384": "Ten blok daje losową wartość ułamkową między 0,0 a 1,0.", @@ -1397,8 +1401,10 @@ "1830520348": "Hasło {{platform_name_dxtrade}}", "1833481689": "Odblokuj", "1833499833": "Nie udało się przesłać dowodu tożsamości", + "1836767074": "Search payment agent name", "1837762008": "Prześlij potwierdzenie tożsamości i danych adresowych, aby zweryfikować swoje konto w jego ustawieniach i uzyskać dostęp do sekcji Kasjer.", "1838639373": "Zasoby", + "1839021527": "Please enter a valid account number. Example: CR123456789", "1840865068": "ustaw {{ variable }} na Szereg Prostej średniej kroczącej {{ dummy }}", "1841788070": "Pallad/USD", "1841996888": "Dzienny limit strat", @@ -1418,11 +1424,13 @@ "1851776924": "wyższy", "1851951013": "Przejdź na konto demo, aby uruchomić DBot.", "1854480511": "Sekcja Kasjer jest zablokowana", + "1854874899": "Back to list", "1855566768": "Pozycja elementu na liście", "1856485118": "Prosimy o <0>ponowne przesłanie dowodu adresu, aby przelać środki między kontem MT5 i Deriv.", "1858251701": "minuta", "1859308030": "Przekaż opinię", "1863053247": "Prześlij swój dokument tożsamości.", + "1863731653": "To receive your funds, contact the payment agent", "1866811212": "Wpłacaj w swojej lokalnej walucie przez autoryzowanego i niezależnego pośrednika płatności w Twoim kraju.", "1866836018": "<0/><1/>Jeśli Twoja skarga odnosi się do naszych praktyk w zakresie przetwarzania danych, możesz złożyć oficjalną skargę do lokalnego organu nadzoru.", "1867217564": "Indeks musi być dodatnią liczbą całkowitą", @@ -1475,6 +1483,7 @@ "1918633767": "Druga linijka adresu jest w nieprawidłowym formacie.", "1918796823": "Wprowadź kwotę opcji Stop stratom.", "1919030163": "Wskazówki, jak zrobić dobre zdjęcie selfie", + "1919594496": "{{website_name}} is not affiliated with any payment agents. Customers deal with payment agents at their sole risk. Customers are advised to check the credentials of payment agents and the accuracy of any information about payment agents (on {{website_name}} or elsewhere) before using their services.", "1920217537": "Porównaj", "1920468180": "Jak używać bloku SMA", "1921634159": "Kilka informacji osobowych", @@ -1563,7 +1572,6 @@ "2021037737": "Zaktualizuj swoje dane, aby kontynuować.", "2023659183": "Student", "2023762268": "Wolę inną stronę do handlowania.", - "2024107855": "Dane kontaktowe pośrednika {{payment_agent}}:", "2025339348": "Odsuń się od bezpośredniego światła — unikaj prześwietlenia", "2027625329": "Szereg prostej średniej wykładniczej (SMAA)", "2027696535": "Informacje podatkowe", @@ -2133,7 +2141,6 @@ "-749765720": "Waluta Twojego konto w walucie fiducjarnej to {{currency_code}}.", "-803546115": "Zarządzaj swoimi kontami ", "-1463156905": "Dowiedz się więcej o metodach płatności", - "-316545835": "Przed dokonaniem przelewu upewnij się, że <0>wszystkie szczegóły są <0>poprawne.", "-1309258714": "Z konta o numerze", "-1247676678": "Na konto o numerze", "-816476007": "Imię i nazwisko posiadacza rachunku", @@ -2144,12 +2151,17 @@ "-1979554765": "Proszę podać prawidłowy opis.", "-1186807402": "Przelew", "-1254233806": "Przelano", - "-1179992129": "Wszyscy pośrednicy płatności", - "-1137412124": "Nie możesz znaleźć odpowiedniej metody płatności dla swojego kraju? Skorzystaj z pośrednika płatności.", - "-460879294": "Jeszcze niegotowe. Aby otrzymać przelewane środki, musisz skontaktować się z pośrednikiem płatności celem uzyskania dalszych instrukcji. Wysłaliśmy Ci podsumowanie tej transakcji.", - "-596416199": "Przez nazwę", - "-1169636644": "Przez ID pośrednika płatności", + "-1491457729": "All payment methods", + "-142563298": "Contact your preferred payment agent for payment instructions and make your deposit.", + "-1023961762": "Commission on deposits", + "-552873274": "Commission on withdrawal", + "-880645086": "Withdrawal amount", "-118683067": "Limity wypłat: <0 />-<1 />", + "-1125090734": "Important notice to receive your funds", + "-1924707324": "View transaction", + "-1474202916": "Wypłać", + "-511423158": "Enter the payment agent account number", + "-2059278156": "Note: {{website_name}} does not charge any transfer fees.", "-1201279468": "Aby wypłacić swoje środki, użyj tej samej metody płatności, której użyto przy dokonywaniu wpłaty.", "-1787304306": "Deriv P2P", "-60779216": "Wypłaty są tymczasowo niedostępne z powodu konserwacji systemu. Możesz dokonać wypłaty po zakończeniu konserwacji.", @@ -2196,6 +2208,7 @@ "-1612346919": "Wyświetl wszystko", "-89973258": "Wyślij wiadomość ponownie za {{seconds}}sek.", "-1059419768": "Uwagi", + "-316545835": "Przed dokonaniem przelewu upewnij się, że <0>wszystkie szczegóły są <0>poprawne.", "-949073402": "Potwierdzam, że dane przelewu klienta zostały zweryfikowane.", "-1752211105": "Przelej teraz", "-598073640": "O Tether (Ethereum)", @@ -2209,8 +2222,8 @@ "-2056016338": "Za przelewy w tych samych walutach między kontem Deriv w walucie fiducjarnej a kontem {{platform_name_mt5}} nie pobierana jest opłata.", "-599632330": "Za przelewy w różnych walutach między kontem Deriv w walucie fiducjarnej a kontem {{platform_name_mt5}} lub kontem Deriv w walucie fiducjarnej a kontem {{platform_name_dxtrade}} pobierana jest opłata w wysokości 1% kwoty transferu.", "-1196994774": "Za przelewy między Twoimi kontami Deriv w kryptowalucie pobierana jest opłata w wysokości 2% kwoty transferu lub {{minimum_fee}} {{currency}}, w zależności od tego, która kwota jest wyższa.", - "-993556039": "We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts and between your Deriv cryptocurrency and {{platform_name_dxtrade}} accounts.", - "-1382702462": "We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts.", + "-993556039": "Za przelewy między kontem Deriv w kryptowalucie a kontem Deriv MT5 lub kontem Deriv w kryptowalucie a kontem {{platform_name_dxtrade}} pobierana jest opłata w wysokości 2% kwoty transferu lub {{minimum_fee}} {{currency}}, w zależności od tego, która kwota jest wyższa.", + "-1382702462": "Za przelewy między kontem Deriv w kryptowalucie a kontem Deriv MT5 pobierana jest opłata w wysokości 2% kwoty transferu lub {{minimum_fee}} {{currency}}, w zależności od tego, która kwota jest wyższa.", "-1151983985": "Limity przelewów mogą się zmieniać w zależności od kursów wymiany walut.", "-1747571263": "Ten przelew może być niemożliwy do zrealizowania.", "-757062699": "Transfery mogą być niedostępne z powodu wysokiej zmienności lub problemów technicznych oraz w okresie zamknięcia giełd walutowych.", @@ -2244,7 +2257,6 @@ "-2004264970": "Adres Twojego portfelu powinien składać się z 25-64 znaków.", "-1707299138": "Adres Twojego adresu {{currency_symbol}}", "-38063175": "portfel {{account_text}}", - "-1474202916": "Wypłać", "-705272444": "Prześlij dokument potwierdzający tożsamość, aby ją zweryfikować", "-2024958619": "Ma to na celu ochronę Twojego konta przed nieautoryzowanymi wypłatami.", "-130833284": "Twój maksymalny i minimalny limit wypłat nie jest stały. Zmienia się z powodu dużej zmienności kryptowalut.", diff --git a/packages/translations/src/translations/pt.json b/packages/translations/src/translations/pt.json index 463cb94db91b..1383598cda67 100644 --- a/packages/translations/src/translations/pt.json +++ b/packages/translations/src/translations/pt.json @@ -91,6 +91,7 @@ "133536621": "e", "138055021": "Índices sintéticos", "139454343": "Confirmar meus limites", + "141265840": "Funds transfer information", "141626595": "Certifique-se de que a câmera do seu dispositivo esteja funcionando", "142050447": "defina {{ variable }} para criar texto com", "142390699": "Conectado ao seu celular", @@ -105,7 +106,6 @@ "157593038": "inteiro aleatório de {{ start_number }} até {{ end_number }}", "160746023": "Tether como um token Omni (USDT) é uma versão do Tether hospedada na camada Omni na blockchain Bitcoin.", "160863687": "Câmera não detectada", - "162727973": "Digite um ID de agente de pagamento válido.", "164112826": "Este bloco permite que você carregue blocos de uma URL se eles estiverem armazenados em um servidor remoto, e eles serão carregados somente quando o seu bot for executado.", "164564432": "Os depósitos estão temporariamente indisponíveis devido à manutenção do sistema. Você pode fazer seus depósitos quando a manutenção estiver completa.", "165294347": "Por favor, defina seu país de residência nas configurações de sua conta para acessar o caixa.", @@ -139,6 +139,7 @@ "204863103": "Hora Final", "206010672": "Deletar {{ delete_count }} Blocos", "207824122": "Por favor, retire seus fundos das seguintes conta(s) Deriv:", + "209533725": "You’ve transferred {{amount}} {{currency}}", "210385770": "Se você tiver uma conta ativa, faça o login para continuar. Caso contrário, inscreva-se.", "211224838": "Investimento", "211461880": "Nomes e sobrenomes comuns são fáceis de adivinhar", @@ -251,6 +252,7 @@ "347039138": "Iterar (2)", "348951052": "Seu caixa está atualmente bloqueado", "349047911": "Acima", + "349110642": "<0>{{payment_agent}}<1>'s contact details", "351744408": "Testa se uma determinada sequência de texto está vazia", "352363702": "Cuidado com sites falsos da Deriv e páginas de login falsas, você perderá todo seu dinheiro caso insira seus detalhes de login.", "353731490": "Trabalho feito", @@ -429,6 +431,7 @@ "587577425": "Proteger minha conta", "589609985": "Vinculado com {{identifier_title}}", "593459109": "Experimente uma moeda diferente", + "595080994": "Example: CR123456789", "595136687": "Salvar Estratégias", "597089493": "Aqui é onde você pode decidir vender seu contrato antes que ele expire. Apenas uma cópia deste bloco é permitida.", "597481571": "AVISO LEGAL", @@ -464,7 +467,9 @@ "640730141": "Atualize esta página para reiniciar o processo de verificação de identidade", "641420532": "Nós enviamos a você um email", "642210189": "Verifique seu e-mail e clique no link de verificação para concluir o processo.", + "642393128": "Enter amount", "642546661": "Enviar o verso da carteira de condução direto do seu computador", + "642995056": "Email", "643014039": "A duração de negociação do seu contrato adquirido.", "644150241": "Número de contratos que você ganhou desde a última vez que apagou suas estatísticas.", "645016681": "Frequência de negociação de outros instrumentos financeiros", @@ -520,7 +525,6 @@ "706755289": "Este bloco executa funções trigonométricas.", "708055868": "Número da carteira de habilitação", "710123510": "repetir {{ while_or_until }} {{ boolean }}", - "711029377": "Confirme os detalhes da transação para concluir a retirada:", "711999057": "Bem-sucedido", "712101776": "Tire uma foto da página do seu passaporte", "712635681": "Este bloco fornece o valor de vela selecionado em uma lista de velas. Você pode escolher entre preço na abertura, preço no fechamento, preço alto, preço baixo e tempo aberto.", @@ -626,7 +630,6 @@ "845213721": "Sair", "845304111": "Período EMA Lento {{ input_number }}", "847888634": "Por favor, retire todos os seus fundos.", - "849805216": "Escolha um agente", "850582774": "Por favor, atualize suas informações pessoais", "851054273": "Se você selecionar \"Superior\", ganhará o pagamento se o ponto de saída for estritamente maior que a barreira.", "851264055": "Cria uma lista com um determinado item repetido por um número específico de vezes.", @@ -647,6 +650,7 @@ "866496238": "Certifique-se de que todos os detalhes da sua carteira de condução estejam visíveis, sem borrões ou reflexos", "868826608": "Excluído deste {{brand_website_name}} até", "869823595": "Função", + "869993298": "Minimum withdrawal", "872549975": "Você tem {{number}} transferências restantes para hoje.", "872661442": "Tem certeza de que deseja atualizar o e-mail <0>{{{prev_email}} para <1>{{changed_email}}?", "872817404": "Preço de entrada", @@ -691,6 +695,7 @@ "937682366": "Carregue esses dois documentos para confirmar a sua identidade.", "937831119": "Sobrenome*", "937992258": "Tabela", + "938500877": "{{ text }}. <0>You can view the summary of this transaction in your email.", "938988777": "Barreira alta", "940950724": "Atualmente, este tipo de negociação não é suportado em {{website_name}}. Por favor, vá para <0>Binary.com para obter detalhes.", "943535887": "Por favor, feche suas posições na(s) seguinte(s) conta(s) Deriv MT5:", @@ -707,7 +712,6 @@ "948156236": "Crie uma {{type}} senha", "948545552": "150+", "949859957": "Enviar", - "952655566": "Agente de pagamento", "952927527": "Regulada pela Autoridade de Serviços Financeiros de Malta (MFSA) (licença nº. EU/70156)", "955352264": "Negocie na {{platform_name_dxtrade}}", "956448295": "Imagem de corte detectada", @@ -741,7 +745,6 @@ "1004127734": "Enviar email", "1006458411": "Erros", "1006664890": "Silencioso", - "1008240921": "Escolha um agente de pagamento e entre em contato com ele para obter instruções.", "1009032439": "Tempo total", "1010198306": "Este bloco cria uma lista com strings e números.", "1012102263": "Você não poderá fazer login em sua conta até esta data (até 6 semanas a partir de hoje).", @@ -785,6 +788,7 @@ "1047389068": "Serviços alimentares", "1048947317": "Desculpe, este aplicativo não está disponível em {{clients_country}}.", "1049384824": "Sobe", + "1050128247": "I confirm that I have verified the payment agent’s transfer information.", "1050844889": "Relatórios", "1052137359": "Sobrenome*", "1052779010": "Você está na sua conta de demo", @@ -843,7 +847,6 @@ "1127149819": "Certifique-se de que§", "1128404172": "Desfazer", "1129124569": "Se você selecionar \"Abaixo\", receberá o Pagamento se o último dígito do último tick for menor que a sua previsão.", - "1129296176": "AVISO IMPORTANTE PARA RECEBER SEUS FUNDOS", "1129842439": "Digite um valor de Take Profit.", "1130744117": "Tentaremos resolver sua reclamação em 10 dias úteis. Iremos informá-lo do resultado juntamente com uma explicação de nossa posição e propor as medidas corretivas que pretendemos tomar.", "1130791706": "N", @@ -885,6 +888,7 @@ "1181396316": "Este bloco fornece um número aleatório dentro de um intervalo definido", "1181770592": "Lucros/perdas com vendas", "1183007646": "- Tipo de contrato: o nome do tipo de contrato, como Sobe, Desce, Toca, Não Toca, etc.", + "1188316409": "To receive your funds, contact the payment agent with the details below", "1188980408": "5 minutos", "1189368976": "Por favor, preencha seus dados pessoais antes de verificar sua identidade.", "1189886490": "Crie outra conta Deriv ou {{platform_name_mt5}}, ou {{platform_name_dxtrade}}.", @@ -1019,6 +1023,7 @@ "1346339408": "Gerentes", "1347071802": "{{minutePast}}m atrás", "1348009461": "Favor fechar suas posições na(s) seguinte(s) conta(s) Deriv X:", + "1349133669": "Try changing your search criteria.", "1349289354": "Ótimo, é tudo o que precisamos", "1349295677": "no texto {{ input_text }} obter substring de {{ position1 }} {{ index1 }} para {{ position2 }} {{ index2 }}", "1351152200": "Bem-vindo ao seu painel Deriv MT5 (DMT5)", @@ -1042,6 +1047,7 @@ "1367990698": "Índice Volatilidade 10", "1369709538": "Nossos termos de uso", "1371193412": "Cancelar", + "1371555192": "Choose your preferred payment agent and enter your withdrawal amount. If your payment agent is not listed, <0>search for them using their account number.", "1371641641": "Abra o link no seu celular", "1371911731": "Os produtos financeiros na UE são oferecidos pela {{legal_entity_name}}, licenciada como prestadora de Serviços de Investimento de Categoria 3 pela Autoridade de Serviços Financeiros de Malta (<0>Licença no. EU/70156).", "1374627690": "Máx. saldo da conta", @@ -1062,7 +1068,6 @@ "1393903598": "se verdadeiro {{ return_value }}", "1396179592": "Comissão", "1396417530": "Índice Bear Market", - "1397046738": "Ver em Extrato", "1397628594": "Fundos insuficientes", "1399620764": "Somos obrigados por lei a solicitar suas informações financeiras.", "1400637999": "(Todos os campos são necessários)", @@ -1143,13 +1148,14 @@ "1493673429": "Mudar email", "1493866481": "Execute o Deriv X no seu navegador", "1496810530": "GBP/AUD", - "1497773819": "Deriv MT5 accounts", + "1497773819": "Contas Deriv MT5", "1499074768": "Adicionar uma conta real Deriv Multiplicadores", "1499080621": "Tentou realizar uma operação inválida.", "1501691227": "Adicione sua conta DMT5 {{account_type_name}} sob a Deriv (V) Ltd, regulamentada pela Comissão de Serviços Financeiros de Vanuatu.", "1502039206": "Acima de {{barrier}}", "1502325741": "Sua senha não pode ser igual ao seu endereço de e-mail.", "1503618738": "- ID de referência da transação: o ID de referência do contrato", + "1505420815": "No payment agents found for your search", "1505898522": "Download pilhas de blocos", "1509570124": "{{buy_value}} (Comprar)", "1509678193": "Educação", @@ -1220,6 +1226,7 @@ "1613273139": "Envie seu comprovante de identidade e endereço", "1613633732": "O intervalo deve ser entre 10-60 minutos", "1615897837": "Período EMA De Sinal {{ input_number }}", + "1618809782": "Maximum withdrawal", "1619070150": "Você está sendo redirecionado para um site externo.", "1620278321": "Nomes e sobrenomes sozinhos são fáceis de adivinhar", "1620346110": "Definir moeda", @@ -1249,7 +1256,6 @@ "1652968048": "Defina suas opções comerciais, como multiplicador e valor de entrada.", "1652976865": "Neste exemplo, esse bloco é usado com outro bloco para obter os preços de abertura de uma lista de velas. Os preços em aberto são então atribuídos à variável chamada \"cl\".", "1653136377": "copiado!", - "1653159197": "Retirada Agente de Pagamentos", "1653180917": "Não podemos verificar você sem usar sua câmera", "1654365787": "Desconhecido", "1654496508": "Nosso sistema concluirá todas as negociações do DBot já em execução e o DBot não fará novas transações.", @@ -1342,7 +1348,6 @@ "1766212789": "A manutenção do servidor começa a partir das 06:00 GMT todos os domingos e pode levar até 2 horas para ser concluído. O serviço pode ser interrompido durante esse período.", "1766993323": "Apenas letras, números e underline são permitidos.", "1767429330": "Adicionar uma conta Deriv", - "1767726621": "Escolha agente", "1768861315": "Minuto", "1768918213": "Apenas letras, espaço, hífen, ponto final e apóstrofo são permitidos.", "1769068935": "Escolha qualquer uma dessas exchanges para comprar criptomoedas:", @@ -1350,7 +1355,6 @@ "1771592738": "Bloco condicional", "1772532756": "Criar e editar", "1777847421": "Esta é uma senha muito comum", - "1778815073": "O {{website_name}} não é afiliado a nenhum Agente de Pagamento. Os clientes lidam com os agentes de pagamento por seu próprio risco. Os clientes são aconselhados a verificar as credenciais dos agentes de pagamento e a precisão de qualquer informação sobre os agentes de pagamento (no Deriv ou em outro local) antes de transferir fundos.", "1778893716": "Clique aqui", "1779519903": "Deve ser um número válido.", "1780770384": "Esse bloco fornece uma fração aleatória entre 0,0 e 1,0.", @@ -1397,8 +1401,10 @@ "1830520348": "Senha da {{platform_name_dxtrade}}", "1833481689": "Desbloquear", "1833499833": "Falha no carregamento de documentos para confirmação de identidade", + "1836767074": "Search payment agent name", "1837762008": "Envie seu comprovante de identidade e comprovante de endereço para verificar sua conta nas configurações de conta para poder acessar o caixa.", "1838639373": "Recursos", + "1839021527": "Please enter a valid account number. Example: CR123456789", "1840865068": "definir {{ variable }} para Matriz de Média Móvel Simples {{ dummy }}", "1841788070": "Paládio/USD", "1841996888": "Limite de perda diária", @@ -1418,11 +1424,13 @@ "1851776924": "superior", "1851951013": "Por favor, mude para sua conta demo para executar seu DBot.", "1854480511": "O seu caixa está bloqueado", + "1854874899": "Back to list", "1855566768": "Listar posição do item", "1856485118": "<0>Reenvie seu comprovante de endereço para transferir fundos entre as contas MT5 e Deriv.", "1858251701": "minuto", "1859308030": "Dê feedback", "1863053247": "Por favor, envie seu documento de identidade.", + "1863731653": "To receive your funds, contact the payment agent", "1866811212": "Deposite em sua moeda local por meio de um agente de pagamento independente e autorizado em seu país.", "1866836018": "<0/><1/> Se a sua reclamação estiver relacionada às nossas práticas de processamento de dados, você pode enviar uma reclamação formal à autoridade supervisora ​​local.", "1867217564": "O índice deve ser um número inteiro positivo", @@ -1475,6 +1483,7 @@ "1918633767": "A segunda linha de endereço não está no formato apropriado.", "1918796823": "Digite um valor de Stop Loss.", "1919030163": "Dicas para tirar uma boa selfie", + "1919594496": "{{website_name}} is not affiliated with any payment agents. Customers deal with payment agents at their sole risk. Customers are advised to check the credentials of payment agents and the accuracy of any information about payment agents (on {{website_name}} or elsewhere) before using their services.", "1920217537": "Comparar", "1920468180": "Como usar o Bloco SMA", "1921634159": "\nAlguns detalhes pessoais", @@ -1563,7 +1572,6 @@ "2021037737": "Atualize seu detalhes para continuar.", "2023659183": "Estudante", "2023762268": "Prefiro outro site de negociação.", - "2024107855": "Detalhes de contato do agente {{payment_agent}}:", "2025339348": "Afaste-se da luz direta - sem brilho", "2027625329": "Matriz de Média Móvel Simples (MMMS)", "2027696535": "Informações fiscais", @@ -2133,7 +2141,6 @@ "-749765720": "A moeda de sua conta fiduciária está definida para {{currency_code}}.", "-803546115": "Gerencie suas contas ", "-1463156905": "Saiba mais sobre os métodos de pagamento", - "-316545835": "Certifique-se de que <0>todos os detalhes estejam <0>corretos antes de fazer sua transferência.", "-1309258714": "Da conta número", "-1247676678": "Para conta número", "-816476007": "Nome do titular da conta", @@ -2144,12 +2151,17 @@ "-1979554765": "Por favor, insira uma descrição válida.", "-1186807402": "Transferir", "-1254233806": "Você transferiu", - "-1179992129": "Todos os agentes de pagamento", - "-1137412124": "Não consegue encontrar um método de pagamento adequado para seu país? Tente um agente de pagamento.", - "-460879294": "Você não terminou ainda. Para receber os fundos transferidos, você deve entrar em contato com o agente de pagamento para obter mais instruções. Um resumo desta transação foi enviado a você para seus registros.", - "-596416199": "Por nome", - "-1169636644": "Por ID Agente de Pagamento", + "-1491457729": "All payment methods", + "-142563298": "Contact your preferred payment agent for payment instructions and make your deposit.", + "-1023961762": "Commission on deposits", + "-552873274": "Commission on withdrawal", + "-880645086": "Withdrawal amount", "-118683067": "Limites de retirada: <0 />-<1 />", + "-1125090734": "Important notice to receive your funds", + "-1924707324": "View transaction", + "-1474202916": "Faça um novo saque", + "-511423158": "Enter the payment agent account number", + "-2059278156": "Note: {{website_name}} does not charge any transfer fees.", "-1201279468": "Para retirar seus fundos, utilize a mesma forma de pagamento que você usou para fazer seus depósitos.", "-1787304306": "Deriv P2P", "-60779216": "As retiradas estão temporariamente indisponíveis devido à manutenção do sistema. Você pode fazer seus saques quando a manutenção for concluída.", @@ -2196,6 +2208,7 @@ "-1612346919": "Ver todas", "-89973258": "Reenviar email em {{seconds}}s", "-1059419768": "Notas", + "-316545835": "Certifique-se de que <0>todos os detalhes estejam <0>corretos antes de fazer sua transferência.", "-949073402": "Confirmo que verifiquei as informações de transferência do cliente.", "-1752211105": "Transferir agora", "-598073640": "Sobre Tether (Ethereum)", @@ -2209,8 +2222,8 @@ "-2056016338": "Não será cobrada uma taxa de transferência para transferências na mesma moeda entre suas contas Deriv fiduciária e {{platform_name_mt5}}.", "-599632330": "Cobraremos uma taxa de transferência de 1% para transferências em diferentes moedas entre suas contas Deriv fiat e {{platform_name_mt5}} e entre suas contas Deriv fiat e {{platform_name_dxtrade}}.", "-1196994774": "Cobraremos uma taxa de transferência de 2% ou {{minimum_fee}} {{currency}}, o que for maior, para transferências entre suas contas em criptomoeda Deriv.", - "-993556039": "We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts and between your Deriv cryptocurrency and {{platform_name_dxtrade}} accounts.", - "-1382702462": "We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts.", + "-993556039": "Cobraremos uma taxa de transferência de 2% ou {{minimum_fee}}{{currency}}, o que for mais alto, para transferências entre suas contas Deriv criptomoeda e Deriv MT5 e entre suas contas Deriv criptomoeda e {{platform_name_dxtrade}}.", + "-1382702462": "Cobraremos uma taxa de transferência de 2% ou {{minimum_fee}} {{currency}}, o que for maior, para transferências entre sua criptomoeda Deriv e contas Deriv MT5.", "-1151983985": "Os limites de transferência podem variar dependendo das taxas de câmbio.", "-1747571263": "Lembre-se de que algumas transferências podem não ser possíveis.", "-757062699": "As transferências podem não estar disponíveis devido à alta volatilidade ou problemas técnicos e quando os mercados de câmbio estão fechados.", @@ -2244,7 +2257,6 @@ "-2004264970": "O endereço da carteira deve ter de 25 a 64 caracteres.", "-1707299138": "O endereço de sua carteira {{currency_symbol}}", "-38063175": "Carteira {{account_text}}", - "-1474202916": "Faça um novo saque", "-705272444": "Envie um novo comprovante de identidade para verificar sua identidade", "-2024958619": "Isso é para proteger sua conta de retiradas não autorizadas.", "-130833284": "Observe que seus limites máximo e mínimo de retirada não são fixos. Eles mudam devido à alta volatilidade da criptomoeda.", diff --git a/packages/translations/src/translations/ru.json b/packages/translations/src/translations/ru.json index 8db6743ff51b..a7b99d32e517 100644 --- a/packages/translations/src/translations/ru.json +++ b/packages/translations/src/translations/ru.json @@ -91,6 +91,7 @@ "133536621": "и", "138055021": "Синтетические индексы", "139454343": "Подтвердить лимиты", + "141265840": "Funds transfer information", "141626595": "Убедитесь, что на вашем устройстве работает камера", "142050447": "установите {{ variable }} для создания текста с", "142390699": "Подключено к вашему мобильному телефону", @@ -105,7 +106,6 @@ "157593038": "случайное целое число от {{ start_number }} до {{ end_number }}", "160746023": "Tether токен Omni (USDT) — это версия Tether, которая базируется на уровне Omni в блокчейне Биткойн.", "160863687": "Камера не обнаружена", - "162727973": "Пожалуйста, введите правильное ID платежного агента.", "164112826": "Этот блок позволяет загружать блоки из URL, если они хранятся на удаленном сервере. Они будут загружены только при запуске вашего бота.", "164564432": "Пополнение счета временно недоступно из-за технического обслуживания системы. Вы можете пополнить счет после завершения работ.", "165294347": "Для доступа к кассе укажите страну проживания в настройках счета.", @@ -139,6 +139,7 @@ "204863103": "Время окончания", "206010672": "Удалить блоки ({{ delete_count }})", "207824122": "Пожалуйста, выведите средства со следующих счетов Deriv:", + "209533725": "You’ve transferred {{amount}} {{currency}}", "210385770": "Если у вас есть активный счет, войдите в систему, чтобы продолжить. В противном случае, пожалуйста, зарегистрируйтесь.", "211224838": "Инвестиции", "211461880": "Распространенные имена и фамилии угадать несложно", @@ -251,6 +252,7 @@ "347039138": "Повторить (2)", "348951052": "Ваша касса заблокирована", "349047911": "Выше", + "349110642": "<0>{{payment_agent}}<1>'s contact details", "351744408": "Проверяет, является ли заданная строка текста пустой", "352363702": "Вы можете встретить ссылки на сайты с ложной страницей входа на Deriv. Цель таких сайтов – украсть ваши данные и деньги.", "353731490": "Задание выполнено", @@ -429,6 +431,7 @@ "587577425": "Защитить счет", "589609985": "Связан с {{identifier_title}}", "593459109": "Попробуйте другую валюту", + "595080994": "Example: CR123456789", "595136687": "Сохранить стратегию", "597089493": "Здесь вы можете задать условия продажи контракта до истечения срока. Допускается только одна копия этого блока.", "597481571": "ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ", @@ -464,7 +467,9 @@ "640730141": "Обновите эту страницу, чтобы перезапустить процесс проверки личности.", "641420532": "Мы отправили вам письмо", "642210189": "Проверьте эл. почту. Вам должна прийти проверочная ссылка, необходимая для успешного завершения процесса.", + "642393128": "Enter amount", "642546661": "Загрузите оборотную сторону прав со своего компьютера", + "642995056": "Email", "643014039": "Продолжительность купленного контракта.", "644150241": "Количество успешных контрактов с момента последней очистки статистики.", "645016681": "Частота торговли другими финансовыми инструментами", @@ -520,7 +525,6 @@ "706755289": "Этот блок выполняет тригонометрические функции.", "708055868": "Номер водительских прав", "710123510": "повторить {{ while_or_until }} {{ boolean }}", - "711029377": "Подтвердите данные транзакции для завершения вывода:", "711999057": "Успешно", "712101776": "Сфотографируйте страницу паспорта с фотографией.", "712635681": "Этот блок отображает выбранное значение свечи из списка свечей. Вы можете выбрать одно из следующих значений: цена открытия, цена закрытия, максимальная цена, минимальная цена и время открытия.", @@ -626,7 +630,6 @@ "845213721": "Выход", "845304111": "Период медленной EMA {{ input_number }}", "847888634": "Выведите все средства.", - "849805216": "Выберите агента", "850582774": "Обновите личные данные", "851054273": "Если вы выбираете \"Выше\", вы выигрываете, если выходная котировка строго выше, чем выбранный барьер.", "851264055": "Создает список с заданным элементом, повторяемым определенное количество раз.", @@ -647,6 +650,7 @@ "866496238": "Убедитесь, что данные на правах четко видны, читаемы, без размытия или бликов.", "868826608": "Закройте мне доступ к {{brand_website_name}} до", "869823595": "Функция", + "869993298": "Minimum withdrawal", "872549975": "Осталось переводов на сегодня: {{number}}.", "872661442": "Вы уверены, что хотите изменить адрес электронной почты с <0>{{prev_email}} на <1>{{changed_email}}?", "872817404": "Время входн. котировки", @@ -691,6 +695,7 @@ "937682366": "Загрузите оба документа, чтобы подтвердить личность.", "937831119": "Фамилия*", "937992258": "Таблица", + "938500877": "{{ text }}. <0>You can view the summary of this transaction in your email.", "938988777": "Верхний барьер", "940950724": "Этот тип контрактов в данный момент не поддерживается на {{website_name}}. Для получения дополнительной информации, пожалуйста, посетите <0>Binary.com.", "943535887": "Пожалуйста, закройте позиции на следующих счетах Deriv MT5:", @@ -707,7 +712,6 @@ "948156236": "Создать пароль {{type}}", "948545552": "150+", "949859957": "Подтвердить", - "952655566": "Платёжный агент", "952927527": "Регулируется Управлением финансовых услуг Мальты (MFSA) (лицензия # IS/70156)", "955352264": "Перейти на {{platform_name_dxtrade}}", "956448295": "Обнаружено обрезанное изображение", @@ -741,7 +745,6 @@ "1004127734": "Отправить письмо", "1006458411": "Ошибки", "1006664890": "Беззвучный", - "1008240921": "Выберите платежного агента и свяжитесь с ним для получения дальнейших инструкций.", "1009032439": "За все время", "1010198306": "Этот блок создает список со строками и числами.", "1012102263": "Вы не сможете войти на свой счет до этой даты (до 6 недель с сегодняшнего дня).", @@ -785,6 +788,7 @@ "1047389068": "Услуги питания", "1048947317": "К сожалению, это приложение недоступно в {{clients_country}}.", "1049384824": "Повышение", + "1050128247": "I confirm that I have verified the payment agent’s transfer information.", "1050844889": "Отчеты", "1052137359": "Фамилия*", "1052779010": "Вы находитесь на демо-счете", @@ -843,7 +847,6 @@ "1127149819": "Убедитесь, что§", "1128404172": "Отменить", "1129124569": "Если вы выбираете \"Ниже\", вы выигрываете, если последняя десятичная последней котировки будет ниже вашего прогноза.", - "1129296176": "ВАЖНОЕ УВЕДОМЛЕНИЕ ДЛЯ ПОЛУЧЕНИЯ ВАШИХ СРЕДСТВ", "1129842439": "Пожалуйста, введите сумму тейк профит.", "1130744117": "Мы постараемся решить вашу жалобу в течение 10 рабочих дней. Мы проинформируем вас о результате, разъясним нашу позицию и предложим меры по исправлению ситуации, которые мы намерены предпринять.", "1130791706": "Нет", @@ -885,6 +888,7 @@ "1181396316": "Этот блок отображает случайное число из заданного диапазона", "1181770592": "Прибыль/убыток от продажи", "1183007646": "- Тип контракта: название типа контракта, например, Повышение, Падение, Касание, Нет касания и т. д.", + "1188316409": "To receive your funds, contact the payment agent with the details below", "1188980408": "5 минут", "1189368976": "Перед подтверждением личности, пожалуйста, введите ваши личные данные.", "1189886490": "Откройте еще один счет Deriv, {{platform_name_mt5}} или {{platform_name_dxtrade}}.", @@ -1019,6 +1023,7 @@ "1346339408": "Менеджеры", "1347071802": "{{minutePast}}мин назад", "1348009461": "Пожалуйста, закройте позиции на следующих счетах Deriv X:", + "1349133669": "Try changing your search criteria.", "1349289354": "Отлично, это все, что нам нужно.", "1349295677": "в тексте {{ input_text }} получить подстроку от {{ position1 }} {{ index1 }} до {{ position2 }} {{ index2 }}", "1351152200": "Добро пожаловать на панель управления Deriv MT5 (DMT5)", @@ -1042,6 +1047,7 @@ "1367990698": "Индекс волатильн. 10", "1369709538": "Наши условия использования", "1371193412": "Отменить", + "1371555192": "Choose your preferred payment agent and enter your withdrawal amount. If your payment agent is not listed, <0>search for them using their account number.", "1371641641": "Откройте ссылку на своем телефоне", "1371911731": "Финансовые продукты в ЕС предоставляются компанией {{legal_entity_name}}, лицензированной Мальтийским управлением финансовых услуг в качестве поставщика инвестиционных услуг 3-й категории (<0>лицензия # IS/70156).", "1374627690": "Макс. баланс счета", @@ -1062,7 +1068,6 @@ "1393903598": "если верно, {{ return_value }}", "1396179592": "Комиссия", "1396417530": "Индекс медвежьего рынка", - "1397046738": "Смотреть в истории счета", "1397628594": "Недостаточно средств", "1399620764": "Мы юридически обязаны запросить вашу финансовую информацию.", "1400637999": "(Все поля обязательны для заполнения)", @@ -1143,13 +1148,14 @@ "1493673429": "Изменить эл. адрес", "1493866481": "Запустите Deriv X с браузера", "1496810530": "GBP/AUD", - "1497773819": "Deriv MT5 accounts", + "1497773819": "Счета Deriv MT5", "1499074768": "Добавить реальный счет Deriv для мультипликаторов", "1499080621": "Попытка выполнить недопустимую операцию.", "1501691227": "Этот <0>{{account_type_name}} счет Deriv MT5 будет открыт в Deriv (V) Ltd. Компания регулируется комиссией по финансовым услугам Вануату.", "1502039206": "Выше {{barrier}}", "1502325741": "Пароль и адрес электронной почты не могут совпадать.", "1503618738": "- Номер контракта: номер/идентификатор контракта", + "1505420815": "No payment agents found for your search", "1505898522": "Загрузить стек", "1509570124": "{{buy_value}} (Купить)", "1509678193": "Образование", @@ -1220,6 +1226,7 @@ "1613273139": "Отправьте подтверждение личности и адреса повторно", "1613633732": "Интервал должен быть от 10 до 60 минут", "1615897837": "Период сигнальной EMA {{ input_number }}", + "1618809782": "Maximum withdrawal", "1619070150": "Перенаправляем вас на сторонний сайт.", "1620278321": "Пароли, состоящие только из имен и фамилий, легко угадать", "1620346110": "Установить валюту", @@ -1249,7 +1256,6 @@ "1652968048": "Задайте параметры контракта, такие как мультипликатор и ставка.", "1652976865": "В этом примере этот блок используется с другим блоком, чтобы получить цены открытия из списка свечей. Затем цены открытия присваиваются переменной \"cl\".", "1653136377": "скопировано!", - "1653159197": "Вывод через платежного агента", "1653180917": "Мы не можем верифицировать вас, не используя камеру", "1654365787": "Неизвестный", "1654496508": "Наша система завершит все контракты DBot, которые еще выполняются, и DBot не будет размещать новые контракты.", @@ -1342,7 +1348,6 @@ "1766212789": "Технические работы на сервере начинаются в 06:00 GMT каждое воскресенье. Этот процесс может занять до 2 часов. В это время работа сервиса может прерываться.", "1766993323": "Разрешены только буквы, цифры и подчеркивание.", "1767429330": "Добавить счет Derived", - "1767726621": "Выберите агента", "1768861315": "Мин.", "1768918213": "Разрешены только буквы, пробелы, дефисы, точки и апострофы.", "1769068935": "Вы можете обменять криптовалюту на любой из этих бирж:", @@ -1350,7 +1355,6 @@ "1771592738": "Условный блок", "1772532756": "Создать и редактировать", "1777847421": "Это один из наиболее распространенных паролей", - "1778815073": "{{website_name}} не связан ни с одним платежным агентом. Клиенты имеют дело с платежными агентами на свой страх и риск. Клиентам рекомендуется проверять учетные данные Платежных агентов и достоверность любой информации о Платежных агентах (на Deriv или в другом месте) перед переводом средств.", "1778893716": "Нажмите здесь", "1779519903": "Введите правильное число.", "1780770384": "Этот блок дает вам случайную долю от 0.0 до 1.0.", @@ -1397,8 +1401,10 @@ "1830520348": "Пароль {{platform_name_dxtrade}}", "1833481689": "Разблокировать", "1833499833": "Не удалось загрузить документы, удостоверяющие личность", + "1836767074": "Search payment agent name", "1837762008": "Пожалуйста, предоставьте удостоверение личности и подтверждение адреса в настройках счета, чтобы подтвердить свой счет и получить доступ к кассе.", "1838639373": "Полезное", + "1839021527": "Please enter a valid account number. Example: CR123456789", "1840865068": "установить {{ variable }} в массив простых СС {{ dummy }}", "1841788070": "Палладий/USD", "1841996888": "Дневной лимит на убыток", @@ -1418,11 +1424,13 @@ "1851776924": "верхн.", "1851951013": "Чтобы запустить DBot, пожалуйста, перейдите на демо-счет.", "1854480511": "Касса заблокирована", + "1854874899": "Back to list", "1855566768": "Позиция элемента списка", "1856485118": "<0>Отправьте подтверждение адреса еще раз, чтобы переводить средства между счетами MT5 и Deriv.", "1858251701": "минут(ы)", "1859308030": "Оставить отзыв", "1863053247": "Загрузите документ, удостоверяющий личность.", + "1863731653": "To receive your funds, contact the payment agent", "1866811212": "Пополняйте счет в местной валюте через авторизованного независимого платежного агента в вашей стране.", "1866836018": "<0/><1/>Если ваша жалоба касается наших методов обработки данных, вы можете подать официальную жалобу в местный надзорный орган.", "1867217564": "Индекс должен быть положительным целым числом", @@ -1475,6 +1483,7 @@ "1918633767": "Вторая строка адреса в неправильном формате.", "1918796823": "Пожалуйста, введите сумму стоп лосс.", "1919030163": "Советы, как сделать хорошее селфи", + "1919594496": "{{website_name}} is not affiliated with any payment agents. Customers deal with payment agents at their sole risk. Customers are advised to check the credentials of payment agents and the accuracy of any information about payment agents (on {{website_name}} or elsewhere) before using their services.", "1920217537": "Сравнить", "1920468180": "Как пользоваться блоком SMA", "1921634159": "Некоторые личные данные", @@ -1563,7 +1572,6 @@ "2021037737": "Чтобы продолжить, пожалуйста, обновите данные.", "2023659183": "Студент", "2023762268": "Предпочитаю торговать на другом сайте.", - "2024107855": "Контактные данные агента {{payment_agent}}:", "2025339348": "Отойдите от источника прямого света - никаких бликов", "2027625329": "Массив простых СС (SMAA)", "2027696535": "Налоговая информация", @@ -2133,7 +2141,6 @@ "-749765720": "Валюта вашего фиатного счета: {{currency_code}}.", "-803546115": "Управление счетами ", "-1463156905": "Узнать больше о способах оплаты", - "-316545835": "Убедитесь, что <0>все данные <0>верны, прежде чем переводить средства.", "-1309258714": "Номер счета отправителя", "-1247676678": "Номер счета получателя", "-816476007": "Имя владельца счета", @@ -2144,12 +2151,17 @@ "-1979554765": "Пожалуйста, введите правильное описание.", "-1186807402": "Перевод", "-1254233806": "Вы перевели", - "-1179992129": "Все платежные агенты", - "-1137412124": "Не можете найти подходящий платежный метод для вашей страны? Воспользуйтесь услугами платежного агента.", - "-460879294": "Это еще не все. Чтобы получить переведенные средства, необходимо обратиться к платежному агенту для получения дальнейших инструкций. Сводка по этой транзакции была отправлена вам по электронной почте.", - "-596416199": "По имени", - "-1169636644": "По ID платежного агента", + "-1491457729": "All payment methods", + "-142563298": "Contact your preferred payment agent for payment instructions and make your deposit.", + "-1023961762": "Commission on deposits", + "-552873274": "Commission on withdrawal", + "-880645086": "Withdrawal amount", "-118683067": "Лимит на вывод: <0 />-<1 />", + "-1125090734": "Important notice to receive your funds", + "-1924707324": "View transaction", + "-1474202916": "Новый вывод средств", + "-511423158": "Enter the payment agent account number", + "-2059278156": "Note: {{website_name}} does not charge any transfer fees.", "-1201279468": "При выводе средств используйте тот же платежный метод, которым пополняли счет.", "-1787304306": "Deriv P2P", "-60779216": "Вывод средств временно недоступен из-за технического обслуживания системы. Вы можете вывести средства после завершения работ.", @@ -2196,6 +2208,7 @@ "-1612346919": "Смотреть все", "-89973258": "Повторно отправить письмо через {{seconds}}сек.", "-1059419768": "Примечания", + "-316545835": "Убедитесь, что <0>все данные <0>верны, прежде чем переводить средства.", "-949073402": "Я подтверждаю, что реквизиты перевода указаны точно.", "-1752211105": "Перевести сейчас", "-598073640": "О Tether (Ethereum)", @@ -2209,8 +2222,8 @@ "-2056016338": "Мы не взимаем комиссию за переводы в одной и той же валюте между вашим фиатным счетом Deriv и счетом {{platform_name_mt5}}.", "-599632330": "Мы взимаем комиссию в размере 1% за переводы в разных валютах между вашим фиатным счетом Deriv и счетом {{platform_name_mt5}}, и вашим фиатным счетом Deriv и счетом {{platform_name_dxtrade}}.", "-1196994774": "За переводы между вашими криптовалютными счетами Deriv мы взимаем комиссию в размере 2% или {{minimum_fee}} {{currency}}, в зависимости от того, какая сумма больше.", - "-993556039": "We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts and between your Deriv cryptocurrency and {{platform_name_dxtrade}} accounts.", - "-1382702462": "We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts.", + "-993556039": "За переводы между вашими криптовалютными счетами Deriv и счетом Deriv MT5, или криптовалютными счетами Deriv и счетом {{platform_name_dxtrade}} мы взимаем комиссию в размере 2% или {{minimum_fee}} {{currency}}, в зависимости от того, какая сумма больше.", + "-1382702462": "За переводы между вашими криптовалютными счетами Deriv и счетом Deriv MT5 мы взимаем комиссию в размере 2% или {{minimum_fee}} {{currency}}, в зависимости от того, какая сумма больше.", "-1151983985": "Лимиты на перевод могут варьироваться, в зависимости от текущих валютных курсов.", "-1747571263": "Имейте в виду, что некоторые переводы могут быть невозможны.", "-757062699": "Переводы могут быть недоступны во время высокой волатильности, из-за технических проблем или когда рынки закрыты.", @@ -2244,7 +2257,6 @@ "-2004264970": "Адрес вашего кошелька должен содержать от 25 до 64 символов.", "-1707299138": "Адрес вашего кошелька {{currency_symbol}}", "-38063175": "{{account_text}} кошелек", - "-1474202916": "Новый вывод средств", "-705272444": "Загрузите документ, подтверждающий личность", "-2024958619": "Это нужно для того, чтобы защитить ваш счет от несанкционированного вывода средств.", "-130833284": "Обратите внимание, что ваши лимиты на максимальный и минимальный вывод средств не фиксированы. Они меняются из-за высокой волатильности криптовалюты.", diff --git a/packages/translations/src/translations/th.json b/packages/translations/src/translations/th.json index 785f8b6f6430..97177f1f08bd 100644 --- a/packages/translations/src/translations/th.json +++ b/packages/translations/src/translations/th.json @@ -91,6 +91,7 @@ "133536621": "และ", "138055021": "ดัชนีสังเคราะห์", "139454343": "ยืนยันขีดจำกัดของฉัน", + "141265840": "Funds transfer information", "141626595": "โปรดตรวจสอบให้แน่ใจว่า อุปกรณ์ของคุณมีกล้องที่ใช้งานได้", "142050447": "กำหนด {{ variable }} เพื่อสร้างข้อความด้วย", "142390699": "เชื่อมต่อกับโทรศัพท์มือถือของคุณ", @@ -105,7 +106,6 @@ "157593038": "เลขจำนวนเต็มที่สุ่มตั้งแต่ {{ start_number }} ถึง {{ end_number }}", "160746023": "เหรียญดิจิทัล Tether Omni (USDT) นั้นเป็นเวอร์ชันหนึ่งของเหรียญโทเคน Tether ที่ถูกผูกมูลค่าไว้กับค่าเงิน USD โดยถูกสร้างขึ้นโดยใช้แพลตฟอร์ม Omni layer บนเครือข่าย Bitcoin blockchain", "160863687": "ตรวจจับไม่พบกล้อง", - "162727973": "โปรดใส่หมายเลขรหัสตัวแทนชำระเงินที่ถูกต้อง", "164112826": "บล็อกนี้อนุญาตให้คุณโหลดบล็อกจาก URL ได้หากว่าคุณเก็บบล๊อกเหล่านั้นไว้ในเซิร์ฟเวอร์ระยะไกลซึ่งบล๊อคเหล่านั้นจะถูกโหลดก็ต่อเมื่อบอทของคุณกำลังทำงาน", "164564432": "เงินฝากไม่สามารถใช้ได้ชั่วคราวเนื่องจากมีการบำรุงรักษาระบบ คุณจะสามารถฝากเงินได้ก็ต่อเมื่อการบำรุงรักษาระบบเสร็จสิ้นแล้ว", "165294347": "โปรดระบุประเทศที่คุณพำนักในการตั้งค่าบัญชีของคุณเพื่อเข้าถึงแคชเชียร์", @@ -139,6 +139,7 @@ "204863103": "เวลาสิ้นสุด", "206010672": "ลบ {{ delete_count }} บล๊อค", "207824122": "โปรดถอนเงินของคุณจากบัญชี Deriv (เดี่ยวหรือหลายๆบัญชี) ต่อไปนี้:", + "209533725": "You’ve transferred {{amount}} {{currency}}", "210385770": "หากคุณมีบัญชีที่กำลังใช้งานอยู่แล้วโปรดเข้าสู่ระบบเพื่อดำเนินการต่อไปไม่เช่นนั้นก็โปรดทำการลงทะเบียนเข้าใช้", "211224838": "การลงทุน", "211461880": "ชื่อและนามสกุลทั่วไปนั้นสามารถคาดเดาได้ง่าย", @@ -251,6 +252,7 @@ "347039138": "ทำซ้ำ (2)", "348951052": "แคชเชียร์ของคุณถูกล็อคอยู่ในขณะนี้", "349047911": "สูงกว่า", + "349110642": "<0>{{payment_agent}}<1>'s contact details", "351744408": "ทดสอบว่า สตริงข้อความนั้นว่างเปล่าหรือไม่", "352363702": "คุณอาจเห็นการเชื่อมโยงไปยังเว็บไซต์ที่มีหน้าเข้าสู่ระบบ Deriv ปลอมที่คุณจะได้รับ scammed สำหรับเงินของคุณ.", "353731490": "งานที่เสร็จแล้ว", @@ -429,6 +431,7 @@ "587577425": "ปกป้องบัญชีของฉัน", "589609985": "ถูกเชื่อมโยงด้วย {{identifier_title}}", "593459109": "ลองใช้สกุลเงินอื่น", + "595080994": "Example: CR123456789", "595136687": "บันทึกกลยุทธ์", "597089493": "ที่นี่คุณสามารถตัดสินใจที่จะขายสัญญาก่อนที่จะหมดอายุ อนุญาตให้คัดลอกบล็อกนี้ได้หนึ่งชุดเท่านั้น", "597481571": "ข้อความปฏิเสธความรับผิดชอบ", @@ -464,7 +467,9 @@ "640730141": "สั่งรีเฟรชข้อมูลหน้านี้เพื่อเริ่มกระบวนการยืนยันตัวตนอีกครั้ง", "641420532": "เราได้ส่งอีเมล์ถึงคุณแล้ว", "642210189": "โปรดเช็คอีเมล์ของคุณสำหรับลิงค์การยืนยันเพื่อทำให้กระบวนการเสร็จสมบูรณ์", + "642393128": "Enter amount", "642546661": "อัปโหลดด้านหลังใบขับขี่จากคอมพิวเตอร์ของคุณ", + "642995056": "Email", "643014039": "ระยะเวลาการเทรดของสัญญาที่คุณซื้อ", "644150241": "จำนวนสัญญาที่คุณได้กำไรตั้งแต่การล้างสถิติครั้งล่าสุดของคุณ", "645016681": "ความถี่ในการซื้อขายในตราสารทางการเงินอื่นๆ", @@ -520,7 +525,6 @@ "706755289": "บล็อกนี้ดำเนินการเกี่ยวกับฟังก์ชันตรีโกณมิติ", "708055868": "หมายเลขใบขับขี่", "710123510": "ทำซ้ำ {{ while_or_until }} {{ boolean }}", - "711029377": "โปรดยืนยันรายละเอียดของธุรกรรมเพื่อทำให้การถอนเสร็จสมบรูณ์:", "711999057": "สำเร็จแล้ว", "712101776": "ถ่ายภาพหน้าหนังสือเดินทางที่มีรูปภาพของคุณ", "712635681": "บล็อกนี้นำเสนอมูลค่าของแท่งเทียนที่ได้รับการเลือกออกมาจากลิสต์รายการแท่งเทียน คุณสามารถเลือกจากราคาเปิด ราคาปิด ราคาสูง ราคาต่ำ และเวลาเปิดได้", @@ -626,7 +630,6 @@ "845213721": "ออกจากระบบ", "845304111": "ช่วงเวลา EMA ที่ช้า {{ input_number }}", "847888634": "กรุณาถอนเงินทั้งหมดของคุณ", - "849805216": "เลือกตัวแทน", "850582774": "โปรดอัปเดตข้อมูลส่วนบุคคลของคุณ", "851054273": "หากคุณเลือก \"สูงกว่า\" คุณจะได้รับเงินตอบแทนก็ต่อเมื่อจุดออกสุดท้ายมีค่าสูงกว่าค่าของเส้นระดับราคาเป้าหมายหรือ barrier", "851264055": "สร้างลิสต์รายการขึ้นโดยใส่รายการที่ให้มาและที่มีการซ้ำตามจํานวนครั้งที่ระบุ", @@ -647,6 +650,7 @@ "866496238": "โปรดทำให้แน่ใจว่า รายละเอียดใบขับขี่ของคุณนั้นมองเห็นได้ชัดเจน ไม่เบลอหรือมีเงาสะท้อน", "868826608": "ยกเว้นจาก {{brand_website_name}} จนถึง", "869823595": "ฟังก์ชัน", + "869993298": "Minimum withdrawal", "872549975": "คุณมีการโอนที่เหลืออยู่ {{number}} ครั้งสำหรับวันนี้", "872661442": "คุณแน่ใจหรือไม่ว่าต้องการอัปเดตอีเมล์ <0>{{prev_email}} ไปเป็น <1>{{changed_email}}", "872817404": "เวลาจุดเข้า", @@ -691,6 +695,7 @@ "937682366": "อัปโหลดเอกสารทั้งสองฉบับนี้เพื่อการพิสูจน์ตัวตนของคุณ", "937831119": "ชื่อสกุล*", "937992258": "ตาราง", + "938500877": "{{ text }}. <0>You can view the summary of this transaction in your email.", "938988777": "เส้นระดับราคาเป้าหมายขั้นสูง", "940950724": "ประเภทการซื้อขายนี้ยังไม่รองรับใน {{website_name}} โปรดไปที่ <0>Binary.com สำหรับรายละเอียด", "943535887": "โปรดปิดสถานะของคุณในบัญชี Deriv MT5 (เดี่ยวหรือหลายบัญชี) ต่อไปนี้:", @@ -707,7 +712,6 @@ "948156236": "สร้างรหัส {{type}}", "948545552": "150+", "949859957": "ส่ง", - "952655566": "ตัวแทนรับชำระเงิน", "952927527": "ควบคุมดูแลโดยหน่วยงานบริการทางการเงินมอลตา (MFSA) (ใบอนุญาตเลขที่. IS/70156)", "955352264": "ซื้อขายใน {{platform_name_dxtrade}}", "956448295": "ตรวจพบภาพตัด", @@ -741,7 +745,6 @@ "1004127734": "ส่งอีเมล์", "1006458411": "ข้อผิดพลาด", "1006664890": "เงียบ", - "1008240921": "เลือกตัวแทนชำระเงิน และติดต่อพวกเขาเพื่อขอคำแนะนำ", "1009032439": "ทุกเวลา", "1010198306": "บล็อกนี้สร้างลิสต์รายการที่มีสตริงและตัวเลข", "1012102263": "คุณจะไม่สามารถเข้าสู่ระบบบัญชีของคุณได้จนกว่าจะถึงวันที่ดังนี้ (สูงสุด 6 สัปดาห์นับจากวันนี้)", @@ -785,6 +788,7 @@ "1047389068": "งานบริการเกี่ยวกับอาหาร", "1048947317": "ขออภัย แอปนี้ไม่สามารถใช้งานได้ใน {{clients_country}}", "1049384824": "ขึ้น", + "1050128247": "I confirm that I have verified the payment agent’s transfer information.", "1050844889": "รายงาน", "1052137359": "นามสกุล*", "1052779010": "คุณอยู่ในบัญชีทดลองของคุณ", @@ -843,7 +847,6 @@ "1127149819": "โปรดตรวจสอบให้แน่ใจว่า§", "1128404172": "ยกเลิก", "1129124569": "หากคุณเลือก \"Under\" คุณจะได้รับเงินตอบแทนก็ต่อเมื่อตัวเลขหลักสุดท้ายของค่า tick จุดสุดท้ายนั้นมีค่าน้อยกว่าตัวเลขที่คุณคาดการณ์ไว้", - "1129296176": "ประกาศสำคัญเพื่อรับเงินของคุณ", "1129842439": "โปรดป้อนจำนวนเงินทำกำไรที่ต้องการ", "1130744117": "เราจะพยายามแก้ไขข้อร้องเรียนของคุณภายใน 10 วันทําการ เราจะแจ้งให้คุณทราบถึงผลที่ได้พร้อมกับคําอธิบายจุดยืนของเรา และเสนอมาตรการเยียวยาแก้ไขใดๆ ที่เราตั้งใจจะดำเนินการ", "1130791706": "N", @@ -885,6 +888,7 @@ "1181396316": "บล็อกนี้ให้ตัวเลขสุ่มจากภายในช่วงที่กําหนด", "1181770592": "กำไร/ขาดทุน จากการขาย", "1183007646": "- ประเภทสัญญา: ชื่อของประเภทสัญญา เช่น ขึ้น ลง แตะ ไม่แตะ และอื่นๆ", + "1188316409": "To receive your funds, contact the payment agent with the details below", "1188980408": "5 นาที", "1189368976": "โปรดกรอกรายละเอียดส่วนบุคคลของคุณก่อนที่จะดำเนินการยืนยันตัวตนของคุณ", "1189886490": "โปรดสร้างบัญชี Deriv, {{platform_name_mt5}} หรือ {{platform_name_dxtrade}} อันอื่น", @@ -1019,6 +1023,7 @@ "1346339408": "ผู้จัดการ", "1347071802": "{{minutePast}} นาทีที่แล้ว", "1348009461": "โปรดปิดสถานะของคุณในบัญชี Deriv X (เดี่ยวหรือหลายบัญชี) ต่อไปนี้:", + "1349133669": "Try changing your search criteria.", "1349289354": "เยี่ยม นั่นคือทั้งหมดที่เราต้องการ", "1349295677": "ในข้อความ {{ input_text }} รับสตริงย่อยจาก {{ position1 }} {{ index1 }} ถึง {{ position2 }} {{ index2 }}", "1351152200": "ยินดีต้อนรับสู่หน้ากระดาน Deriv MT5 (DMT5)", @@ -1042,6 +1047,7 @@ "1367990698": "ดัชนีความผันผวน 10", "1369709538": "ข้อกําหนดการใช้งานของเรา", "1371193412": "ยกเลิก", + "1371555192": "Choose your preferred payment agent and enter your withdrawal amount. If your payment agent is not listed, <0>search for them using their account number.", "1371641641": "เปิดลิงก์ในโทรศัพท์มือถือของคุณ", "1371911731": "ผลิตภัณฑ์ทางการเงินในสหภาพยุโรปถูกนำเสนอโดยบริษัท {{legal_entity_name}} ซึ่งได้รับใบอนุญาตเป็นผู้ให้บริการด้านการลงทุนประเภท 3 จากหน่วยงานบริการทางการเงินแห่งมอลตา (<0>ใบอนุญาตเลขที่. IS/70156)", "1374627690": "ยอดเงินคงเหลือในบัญชีขั้นสูงสุด", @@ -1062,7 +1068,6 @@ "1393903598": "ถ้าจริง {{ return_value }}", "1396179592": "ค่าคอมมิชชั่น", "1396417530": "ดัชนีตลาดหมี", - "1397046738": "ดูในรายการบัญชี", "1397628594": "เงินทุนไม่เพียงพอ", "1399620764": "เรามีหน้าที่ตามกฎหมายที่จะขอข้อมูลทางการเงินของคุณ", "1400637999": "(ต้องกรอกข้อมูลทุกช่อง)", @@ -1150,6 +1155,7 @@ "1502039206": "สูงกว่า {{barrier}}", "1502325741": "รหัสผ่านของคุณไม่สามารถเหมือนกับที่อยู่อีเมล์ของคุณได้", "1503618738": "- รหัสอ้างอิงข้อตกลง: รหัสอ้างอิงของสัญญา", + "1505420815": "No payment agents found for your search", "1505898522": "ดาวน์โหลดสแตค", "1509570124": "{{buy_value}} (ซื้อ)", "1509678193": "การศึกษา", @@ -1220,6 +1226,7 @@ "1613273139": "Resubmit proof of identity and address", "1613633732": "ช่วงเวลาควรอยู่ระหว่าง 10-60 นาที", "1615897837": "ช่วงเวลาสัญญาณ EMA {{ input_number }}", + "1618809782": "Maximum withdrawal", "1619070150": "คุณกำลังถูกเปลี่ยนเส้นทางไปยังเว็บไซต์ภายนอก", "1620278321": "ชื่อและนามสกุลตัวเองนั้นถูกคาดเดาได้ง่าย", "1620346110": "กำหนดสกุลเงิน", @@ -1249,7 +1256,6 @@ "1652968048": "กำหนดตัวเลือกการค้าของคุณ เช่น ตัวคูณและเงินเดิมพัน", "1652976865": "จากตัวอย่างนี้ บล็อกนี้ถูกใช้กับบล็อกอื่นเพื่อรับราคาเปิดจากลิสต์รายการแท่งเทียน จากนั้นราคาเปิดจะถูกกำหนดให้กับตัวแปรที่เรียกว่า \"cl\"", "1653136377": "คัดลอก!", - "1653159197": "การถอนเงินผ่านตัวแทนชำระเงิน", "1653180917": "เราไม่สามารถยืนยันตัวตนของคุณได้หากไม่ใช้กล้องของคุณ", "1654365787": "ที่ไม่รู้จัก", "1654496508": "ระบบของเราจะทำให้การซื้อขายโดย DBot ทั้งหมดที่กำลังทำงานอยู่นั้นเสร็จสิ้นไป และ DBot จะไม่ทำการซื้อขายใหม่", @@ -1342,7 +1348,6 @@ "1766212789": "การบำรุงรักษาเซิร์ฟเวอร์เริ่มต้นที่ 06:00 GMT ทุกวันอาทิตย์ และอาจใช้เวลาถึง 2 ชั่วโมงจึงจะเสร็จสิ้น คุณอาจประสบกับการบริการที่หยุดชะงักในช่วงเวลานี้", "1766993323": "เฉพาะตัวอักษร ตัวเลข และขีดล่างเท่านั้นที่อนุญาตให้ใช้", "1767429330": "Add a Derived account", - "1767726621": "เลือกตัวแทน", "1768861315": "นาที", "1768918213": "เฉพาะตัวอักษร ช่องว่าง ยัติภังค์ เครื่องหมายจุด และ เครื่องหมายอัญประกาศเดี่ยว เท่านั้นที่อนุญาตให้ใช้", "1769068935": "เลือกการแลกเปลี่ยนใด ๆ เหล่านี้เพื่อซื้อสกุลเงินดิจิทัล:", @@ -1350,7 +1355,6 @@ "1771592738": "บล็อกเงื่อนไข", "1772532756": "สร้างและแก้ไข", "1777847421": "นี่คือรหัสผ่านที่ใช้กันบ่อยมากๆ", - "1778815073": "{{website_name}} ไม่มีส่วนเกี่ยวข้องกับตัวแทนชำระเงินใดๆ ลูกค้าต้องรับผิดชอบความเสี่ยงที่อาจเกิดขึ้นด้วยตัวเองในการใช้บริการของตัวแทนชำระเงิน ดังนั้นจึงแนะนำให้ลูกค้าตรวจสอบข้อมูลหลักฐานอ้างอิงของตัวแทนชำระเงินและความถูกต้องของข้อมูลเกี่ยวกับตัวแทนชำระเงิน (ใน Deriv หรือที่อื่นๆ) ก่อนที่จะโอนเงิน", "1778893716": "คลิกที่นี่", "1779519903": "ควรเป็นตัวเลขที่ถูกต้อง", "1780770384": "บล็อกนี้จะให้เศษส่วนแบบสุ่มระหว่าง 0.0 ถึง 1.0 แก่คุณ", @@ -1397,8 +1401,10 @@ "1830520348": "รหัสผ่าน {{platform_name_dxtrade}}", "1833481689": "ปลดล็อค", "1833499833": "การอัพโหลดเอกสารเพื่อยืนยันตัวตนล้มเหลว", + "1836767074": "Search payment agent name", "1837762008": "โปรดส่งหลักฐานยืนยันตัวตนและหลักฐานที่อยู่เพื่อยืนยันบัญชีของคุณในการตั้งค่าบัญชีเพื่อเข้าถึงแคชเชียร์", "1838639373": "แหล่งข้อมูล", + "1839021527": "Please enter a valid account number. Example: CR123456789", "1840865068": "กำหนด {{ variable }} เป็น Simple Moving Average Array {{ dummy }}", "1841788070": "Palladium/USD", "1841996888": "จํากัดการสูญเสียรายวัน", @@ -1418,11 +1424,13 @@ "1851776924": "อันที่อยู่บน", "1851951013": "โปรดสลับไปที่บัญชีทดลองของคุณเพื่อเริ่มการทำงานของ Dbot", "1854480511": "แคชเชียร์ถูกล็อค", + "1854874899": "Back to list", "1855566768": "ตําแหน่งรายการ", "1856485118": "Please <0>resubmit your proof of address to transfer funds between MT5 and Deriv accounts.", "1858251701": "นาที", "1859308030": "ให้ข้อเสนอแนะ", "1863053247": "โปรดอัปโหลดเอกสารระบุตัวตนของคุณ", + "1863731653": "To receive your funds, contact the payment agent", "1866811212": "ฝากเงินในสกุลเงินท้องถิ่นของคุณผ่านตัวแทนการชำระเงินอิสระที่ได้รับอนุญาตในประเทศของคุณ", "1866836018": "<0/><1/> หากข้อร้องเรียนของคุณเกี่ยวข้องกับแนวทางปฏิบัติในการประมวลผลข้อมูลของเรา คุณสามารถส่งข้อร้องเรียนอย่างเป็นทางการไปที่หน่วยงานกำกับดูแลในพื้นที่ของคุณ", "1867217564": "ดัชนีต้องเป็นจำนวนเต็มบวก", @@ -1475,6 +1483,7 @@ "1918633767": "บรรทัดที่สองของที่อยู่นั้นไม่ได้อยู่ในรูปแบบที่ถูกต้อง", "1918796823": "โปรดป้อนจำนวนเงินของตัวหยุดการขาดทุนที่ต้องการ", "1919030163": "เคล็ดลับในการถ่ายภาพเซลฟี่ที่ดี", + "1919594496": "{{website_name}} is not affiliated with any payment agents. Customers deal with payment agents at their sole risk. Customers are advised to check the credentials of payment agents and the accuracy of any information about payment agents (on {{website_name}} or elsewhere) before using their services.", "1920217537": "เปรียบเทียบ", "1920468180": "วิธีใช้บล็อก SMA", "1921634159": "รายละเอียดส่วนบุคคลเล็กน้อย", @@ -1563,7 +1572,6 @@ "2021037737": "โปรดอัปเดทรายละเอียดของคุณเพื่อดำเนินการต่อ", "2023659183": "นักเรียน", "2023762268": "ฉันชอบเว็บไซต์การซื้อขายอื่นมากกว่า", - "2024107855": "{{payment_agent}} รายละเอียดการติดต่อตัวแทน:", "2025339348": "ย้ายออกจากแสงที่ส่องมาตรงๆ — ไม่ให้มีแสงจ้า", "2027625329": "แถวลำดับเส้นค่าเฉลี่ย Simple Moving Array (SMAA)", "2027696535": "ข้อมูลภาษี", @@ -2133,7 +2141,6 @@ "-749765720": "สกุลเงินในบัญชีเงินเฟียตของคุณถูกกำหนดเป็น {{currency_code}}", "-803546115": "จัดการบัญชีของคุณ ", "-1463156905": "เรียนรู้เพิ่มเติมเกี่ยวกับวิธีการชำระเงิน", - "-316545835": "โปรดตรวจสอบให้แน่ใจว่า <0>รายละเอียดทั้งหมด นั้น <0>ถูกต้อง ก่อนทำการโอนเงินของคุณ", "-1309258714": "จากหมายเลขบัญชี", "-1247676678": "ไปยังหมายเลขบัญชี", "-816476007": "ชื่อเจ้าของบัญชี", @@ -2144,12 +2151,17 @@ "-1979554765": "โปรดป้อนคำอธิบายที่ถูกต้อง", "-1186807402": "โอน", "-1254233806": "คุณได้ย้ายโอนมาแล้ว", - "-1179992129": "ตัวแทนชำระเงินทั้งหมด", - "-1137412124": "หาไม่พบวิธีการชำระเงินที่เหมาะสมสำหรับประเทศของคุณใช่หรือไม่ ถ้าอย่างนั้นให้ลองใช้ตัวแทนชำระเงิน", - "-460879294": "คุณยังไม่เสร็จสิ้นการดำเนินการ โดยในการรับเงินโอนนั้นคุณต้องติดต่อตัวแทนชำระเงินเพื่อขอคำแนะนำเพิ่มเติม ข้อสรุปของธุรกรรมนี้ได้ส่งไปที่อีเมล์ของคุณแล้วเพื่อให้คุณเก็บบันทึกไว้", - "-596416199": "โดยชื่อ", - "-1169636644": "โดยรหัสตัวแทนชําระเงิน", + "-1491457729": "All payment methods", + "-142563298": "Contact your preferred payment agent for payment instructions and make your deposit.", + "-1023961762": "Commission on deposits", + "-552873274": "Commission on withdrawal", + "-880645086": "Withdrawal amount", "-118683067": "วงเงินในการถอน: <0 />-<1 />", + "-1125090734": "Important notice to receive your funds", + "-1924707324": "View transaction", + "-1474202916": "ทําการถอนเงินใหม่", + "-511423158": "Enter the payment agent account number", + "-2059278156": "Note: {{website_name}} does not charge any transfer fees.", "-1201279468": "ในการถอนเงินของคุณ โปรดเลือกวิธีการชำระเงินแบบเดียวกับที่คุณใช้ในการฝากเงิน", "-1787304306": "Deriv P2P", "-60779216": "การถอนเงินจะไม่สามารถใช้ได้ชั่วคราวเนื่องจากมีการบำรุงรักษาระบบ คุณสามารถถอนเงินได้ต่อเมื่อการบำรุงรักษาเสร็จสิ้นลงแล้ว", @@ -2196,6 +2208,7 @@ "-1612346919": "ดูทั้งหมด", "-89973258": "ส่งอีเมลอีกครั้งใน {{seconds}} วินาที", "-1059419768": "หมายเหตุ", + "-316545835": "โปรดตรวจสอบให้แน่ใจว่า <0>รายละเอียดทั้งหมด นั้น <0>ถูกต้อง ก่อนทำการโอนเงินของคุณ", "-949073402": "ข้าพเจ้ายืนยันว่าได้ตรวจสอบข้อมูลการโอนเงินของลูกค้าแล้ว", "-1752211105": "โอนตอนนี้", "-598073640": "เกี่ยวกับเงินดิจิทัล Tether (Ethereum)", @@ -2244,7 +2257,6 @@ "-2004264970": "ที่อยู่กระเป๋าเงินอิเล็กทรอนิกส์ของคุณควรมีอักขระ 25 ถึง 64 ตัว", "-1707299138": "ที่อยู่กระเป๋าเงินอิเล็กทรอนิกส์ {{currency_symbol}} ของคุณ", "-38063175": "กระเป๋าเงินอิเล็กทรอนิกส์ {{account_text}}", - "-1474202916": "ทําการถอนเงินใหม่", "-705272444": "อัปโหลดหลักฐานยืนยันตัวตนเพื่อยืนยันตัวตนของคุณ", "-2024958619": "นี่เป็นการปกป้องบัญชีของคุณจากการถอนเงินโดยไม่ได้รับอนุญาต", "-130833284": "โปรดทราบว่า วงเงินสูงสุดและต่ำสุดในการถอนของคุณนั้นไม่ได้อยู่คงที่ เพราะวงเงินเหล่านั้นจะเปลี่ยนไปตามความผันผวนสูงของสกุลเงินดิจิตอล", diff --git a/packages/translations/src/translations/tr.json b/packages/translations/src/translations/tr.json index 32924cca7b3a..a2c73ed09a5d 100644 --- a/packages/translations/src/translations/tr.json +++ b/packages/translations/src/translations/tr.json @@ -91,6 +91,7 @@ "133536621": "ve", "138055021": "Sentetik endeksler", "139454343": "Limitlerimi onayla", + "141265840": "Funds transfer information", "141626595": "Cihazınızda çalışan bir kamera olduğundan emin olun", "142050447": "metin oluşturmak için aşağıdakiler ile {{ variable }} öğesini ayarlayın", "142390699": "Cep telefonunuza bağlanıldı", @@ -105,7 +106,6 @@ "157593038": "{{ start_number }} ile {{ end_number }} arasında rastgele tamsayı", "160746023": "Bir Omni token (USDT) olarak Tether, Bitcoin blok zincirindeki Omni katmanında barındırılan bir Tether sürümüdür.", "160863687": "Kamera algılanmadı", - "162727973": "Lütfen geçerli bir ödeme aracı kimliği girin.", "164112826": "Bu blok, uzak bir sunucuda depolanmışsa bir URL'den bloklar yüklemenizi sağlar ve yalnızca botunuz çalıştığında yüklenecektir.", "164564432": "Sistem bakımı nedeniyle para yatırma işlemleri geçici olarak kullanılamıyor. Bakım tamamlandığında para yatırma işlemlerini yapabilirsiniz.", "165294347": "Kasiyere erişmek için lütfen hesap ayarlarınızda ikamet ettiğiniz ülkeyi ayarlayın.", @@ -139,6 +139,7 @@ "204863103": "Çıkış zamanı", "206010672": "{{ delete_count }} Bloklarını Sil", "207824122": "Lütfen aşağıdaki Deriv hesap(lar)ından fonlarınızı çekin:", + "209533725": "You’ve transferred {{amount}} {{currency}}", "210385770": "Aktif bir hesabınız varsa devam etmek için lütfen oturum açın. Aksi takdirde, lütfen kaydolun.", "211224838": "Yatırım", "211461880": "Genel adlar ve soyadları tahmin etmek kolaydır", @@ -251,6 +252,7 @@ "347039138": "Yineleme (2)", "348951052": "Kasiyeriniz şu anda kilitli", "349047911": "Üzerinde", + "349110642": "<0>{{payment_agent}}<1>'s contact details", "351744408": "Belirli bir metin dizesinin boş olup olmadığını test eder", "352363702": "Paranız için dolandırıldığınız sahte Deriv giriş sayfasına sahip web sitelerine bağlantılar görebilirsiniz.", "353731490": "İş tamamlandı", @@ -429,6 +431,7 @@ "587577425": "Hesabımı güvenceye al", "589609985": "{{identifier_title}} ile bağlantılı", "593459109": "Farklı bir para birimi deneyin", + "595080994": "Example: CR123456789", "595136687": "Stratejiyi Kaydet", "597089493": "Burası sözleşmenizi süresi dolmadan satmaya karar verebileceğiniz yer. Bu bloğun yalnızca bir kopyasına izin verilir.", "597481571": "YASAL UYARI", @@ -464,7 +467,9 @@ "640730141": "Kimlik doğrulama işlemini yeniden başlatmak için bu sayfayı yenileyin", "641420532": "Size bir e-posta gönderdik", "642210189": "İşlemi tamamlamak için lütfen doğrulama bağlantısı ile ilgili e-postanızı kontrol edin.", + "642393128": "Enter amount", "642546661": "Ehliyetinizin arkasını bilgisayarınızdan yükleyin", + "642995056": "Email", "643014039": "Satın alınan sözleşmenizin işlem uzunluğu.", "644150241": "İstatistiklerinizi en son temizledikten sonra kazandığınız sözleşme sayısı.", "645016681": "Diğer finansal araçlarda alım satım sıklığı", @@ -520,7 +525,6 @@ "706755289": "Bu blok, trigonometrik işlevler gerçekleştirir.", "708055868": "Ehliyet numarası", "710123510": "{{ while_or_until }} {{ boolean }} işlemini tekrarlayın", - "711029377": "Para çekme işlemini tamamlamak için lütfen işlem ayrıntılarını onaylayın:", "711999057": "Başarılı", "712101776": "Pasaport fotoğraf sayfanızın fotoğrafını çekin", "712635681": "Bu blok, mum listesinden seçtiğiniz mum değerini verir. Açılış fiyatı, kapanış fiyatı, yüksek fiyat, düşük fiyat ve açılış zamanı seçeneklerinden birini seçebilirsiniz.", @@ -626,7 +630,6 @@ "845213721": "Çıkış", "845304111": "Yavaş EMA Periyotu {{ input_number }}", "847888634": "Lütfen tüm paranızı çekin.", - "849805216": "Bir aracı seçin", "850582774": "Lütfen kişisel bilgilerinizi güncelleyin", "851054273": "\"Higher\" seçeneğini seçerseniz çıkış noktası bariyerden çok daha yüksekse ödeme kazanırsınız.", "851264055": "Belirli bir süre boyunca tekrarlanan belirli bir öğeyle bir liste oluşturur.", @@ -647,6 +650,7 @@ "866496238": "Ehliyet bilgilerinizin bulanıklık veya parlama olmadan okunabildiğinden emin olun", "868826608": "{{brand_website_name}} sayfasından şu tarihe kadar dışlanıldı", "869823595": "Fonksiyon", + "869993298": "Minimum withdrawal", "872549975": "Bugün için {{number}} transfer hakkınız kaldı.", "872661442": "E-postayı <0>{{prev_email}} adresinden <1>{{changed_email}} olarak güncellemek istediğinize emin misiniz?", "872817404": "Giriş Noktası Saati", @@ -691,6 +695,7 @@ "937682366": "Kimliğinizi kanıtlamak için bu belgelerin her ikisini de yükleyin.", "937831119": "Soyadı*", "937992258": "Tablo", + "938500877": "{{ text }}. <0>You can view the summary of this transaction in your email.", "938988777": "Yüksek bariyer", "940950724": "Bu ticaret türü şu anda {{website_name}} sitesinde desteklenmiyor. Ayrıntılar için lütfen <0>Binary.com adresine gidin.", "943535887": "Lütfen aşağıdaki Deriv MT5 hesap(lar)ındaki pozisyonlarınızı kapatın:", @@ -707,7 +712,6 @@ "948156236": "{{type}} şifresi oluştur", "948545552": "150+", "949859957": "Gönder", - "952655566": "Ödeme aracısı", "952927527": "Malta Finansal Hizmetler Kurumu (MFSA) tarafından düzenlenir (lisans no. IS/70156)", "955352264": "{{platform_name_dxtrade}} ile ticaret yapın", "956448295": "Kesik resim algılandı", @@ -741,7 +745,6 @@ "1004127734": "E-posta gönder", "1006458411": "Hatalar", "1006664890": "Sessiz", - "1008240921": "Bir ödeme aracısı seçin ve talimatlar için onlarla iletişime geçin.", "1009032439": "Tüm zamanlar", "1010198306": "Bu blok, dizeler ve sayılar içeren bir liste oluşturur.", "1012102263": "Bu tarihe kadar hesabınızda oturum açamayacaksınız (bugünden itibaren 6 haftaya kadar).", @@ -785,6 +788,7 @@ "1047389068": "Gıda hizmetleri", "1048947317": "Üzgünüz, bu uygulama {{clients_country}} içinde mevcut değildir.", "1049384824": "Rise", + "1050128247": "I confirm that I have verified the payment agent’s transfer information.", "1050844889": "Raporlar", "1052137359": "Aile adı*", "1052779010": "Demo hesabınızdasınız", @@ -843,7 +847,6 @@ "1127149819": "Emin olun§", "1128404172": "Geri al", "1129124569": "\"Altında\"yı seçerseniz, son tikin son hanesi tahmininizden azsa ödemeyi kazanırsınız.", - "1129296176": "FONLARINIZI ALMAK IÇIN ÖNEMLI UYARI", "1129842439": "Lütfen bir take profit tutarı girin.", "1130744117": "Şikayetinizi 10 iş günü içinde çözmeye çalışacağız. Pozisyonumuz hakkında bir açıklama ile birlikte sizi sonuç hakkında bilgilendireceğiz ve almayı düşündüğümüz her türlü iyileştirici önlemi önereceğiz.", "1130791706": "N", @@ -885,6 +888,7 @@ "1181396316": "Bu blok, belirli bir aralıktan rastgele bir sayı verir", "1181770592": "Satıştan elde edilen kâr/zarar", "1183007646": "- Sözleşme türü: Rise, Fall, Touch, No Touch, vb. sözleşme türünün adı.", + "1188316409": "To receive your funds, contact the payment agent with the details below", "1188980408": "5 dakika", "1189368976": "Kimliğinizi doğrulamadan önce lütfen kişisel bilgilerinizi tamamlayın.", "1189886490": "Lütfen başka bir Deriv {{platform_name_mt5}} yada {{platform_name_dxtrade}} hesabı oluşturun.", @@ -1019,6 +1023,7 @@ "1346339408": "Yöneticiler", "1347071802": "{{minutePast}} dk önce", "1348009461": "Lütfen aşağıdaki Deriv X hesaplarındaki pozisyonlarınızı kapatın:", + "1349133669": "Try changing your search criteria.", "1349289354": "Harika, bu ihtiyacımız olan her şey", "1349295677": "{{ input_text }} metninde {{ position1 }} {{ index1 }} ile {{ position2 }} {{ index2 }} arasından alt dize al", "1351152200": "Deriv MT5 (DMT5) kontrol paneline hoş geldiniz", @@ -1042,6 +1047,7 @@ "1367990698": "Volatilite 10 Endeksi", "1369709538": "Kullanım Koşullarımız", "1371193412": "İptal et", + "1371555192": "Choose your preferred payment agent and enter your withdrawal amount. If your payment agent is not listed, <0>search for them using their account number.", "1371641641": "Mobil aygıtınızda bağlantıyı açın", "1371911731": "AB'deki finansal ürünler, Malta Finansal Hizmetler Kurumu tarafından Kategori 3 Yatırım Hizmetleri sağlayıcısı olarak lisanslanan {{legal_entity_name}} tarafından sunulmaktadır (<0>Lisans no. IS/70156).", "1374627690": "Maks. hesap bakiyesi", @@ -1062,7 +1068,6 @@ "1393903598": "eğer doğruysa {{ return_value }}", "1396179592": "Komisyon", "1396417530": "Ayı Piyasası Endeksi", - "1397046738": "Özette görüntüle", "1397628594": "Yetersiz fon", "1399620764": "Yasal olarak finansal bilgilerinizi istemek zorundayız.", "1400637999": "(Tüm alanlar zorunludur)", @@ -1150,6 +1155,7 @@ "1502039206": "{{barrier}} üzerinde", "1502325741": "Parolanız e-posta adresinizle aynı olamaz.", "1503618738": "- Anlaşma referans kimliği: Sözleşme referans kimliği", + "1505420815": "No payment agents found for your search", "1505898522": "Deste indir", "1509570124": "{{buy_value}} (Satın Al)", "1509678193": "Eğitim", @@ -1220,6 +1226,7 @@ "1613273139": "Resubmit proof of identity and address", "1613633732": "Aralık 10-60 dakika arasında olmalıdır", "1615897837": "Sinyal EMA Süresi {{ input_number }}", + "1618809782": "Maximum withdrawal", "1619070150": "Harici bir web sitesine yönlendiriliyorsunuz.", "1620278321": "İsimleri ve soyadları tek başlarına tahmin etmek kolaydır", "1620346110": "Para birimi ayarla", @@ -1249,7 +1256,6 @@ "1652968048": "Çarpan ve bahis gibi ticari seçeneklerinizi tanımlayın.", "1652976865": "Bu örnekte bu blok, mum listesinden açılış fiyatları almak için başka bir blok ile kullanılır. Daha sonra açılış fiyatları \"cl\" adlı değişkene atanır.", "1653136377": "kopyalandı!", - "1653159197": "Ödeme aracısı para çekimi", "1653180917": "Kameranızı kullanmadan sizi doğrulayamayız", "1654365787": "Bilinmeyen", "1654496508": "Sistemimiz çalışan DBot alım satımlarını bitirecek ve DBot yeni alım satım yapmayacaktır.", @@ -1342,7 +1348,6 @@ "1766212789": "Sunucu bakımı her Pazar 06:00 GMT'de başlar ve 2 saate kadar sürebilir. Bu süre zarfında hizmet kesintisi yaşayabilirsiniz.", "1766993323": "Yalnızca harf, sayı ve alt çizgi kullanılabilir.", "1767429330": "Add a Derived account", - "1767726621": "Aracı seçin", "1768861315": "Dakika", "1768918213": "Yalnızca harfler, boşluk, tire, nokta ve kesme işareti kullanılabilir.", "1769068935": "Kripto para satın almak için şu borsalardan birini seçin:", @@ -1350,7 +1355,6 @@ "1771592738": "Koşullu blok", "1772532756": "Oluştur ve düzenle", "1777847421": "Bu, çok yaygın bir paroladır", - "1778815073": "{{website_name}} herhangi bir Ödeme Aracısı ile bağlı bağlantılı değildir. Ödeme Aracıları müşterilerin kendi sorumluluklarındadır. Müşterilerin para transfer etmeden önce Ödeme Aracılarının kimlik bilgilerini kontrol etmesi ve Ödeme Aracıları (Deriv veya başka bir yerde) hakkındaki bilgilerin doğruluğunu kontrol etmesi önerilir.", "1778893716": "Buraya tıklayın", "1779519903": "Geçerli bir sayı olmalıdır.", "1780770384": "Bu blok size 0.0 ile 1.0 arasında rastgele bir fraksiyon verir.", @@ -1397,8 +1401,10 @@ "1830520348": "{{platform_name_dxtrade}} Parolası", "1833481689": "Kilidini aç", "1833499833": "Kimlik kanıtı belgelerinin yüklenmesi başarısız oldu", + "1836767074": "Search payment agent name", "1837762008": "Kasiyere erişmek için lütfen hesap ayarlarınızda hesabınızı doğrulamak üzere kimlik kanıtınızı ve adres kanıtınızı sunun.", "1838639373": "Kaynaklar", + "1839021527": "Please enter a valid account number. Example: CR123456789", "1840865068": "{{ variable }} değişkenini Basit Hareketli Ortalama Dizi {{ dummy }} olarak ayarlayın", "1841788070": "Palladyum/USD", "1841996888": "Günlük kayıp sınırı", @@ -1418,11 +1424,13 @@ "1851776924": "yukarı", "1851951013": "Lütfen DBot'unuzu çalıştırmak için demo hesabınıza geçin.", "1854480511": "Kasiyer kilitli", + "1854874899": "Back to list", "1855566768": "Öğe konumunu listele", "1856485118": "Please <0>resubmit your proof of address to transfer funds between MT5 and Deriv accounts.", "1858251701": "dakika", "1859308030": "Geri bildirim ver", "1863053247": "Lütfen kimlik belgenizi yükleyin.", + "1863731653": "To receive your funds, contact the payment agent", "1866811212": "Ülkenizdeki yetkili, bağımsız bir ödeme aracısı aracılığıyla yerel para biriminize para yatırın.", "1866836018": "<0/><1/>şikayetiniz veri işleme uygulamalarımızla ilgiliyse, yerel denetim yetkilinize resmi bir şikayet sunabilirsiniz.", "1867217564": "Endeks pozitif bir tamsayı olmalıdır", @@ -1475,6 +1483,7 @@ "1918633767": "İkinci adres satırı doğru biçimde değil.", "1918796823": "Lütfen bir zarar durdur miktarı girin.", "1919030163": "İyi bir selfie yapmak için ipuçları", + "1919594496": "{{website_name}} is not affiliated with any payment agents. Customers deal with payment agents at their sole risk. Customers are advised to check the credentials of payment agents and the accuracy of any information about payment agents (on {{website_name}} or elsewhere) before using their services.", "1920217537": "Karşılaştır", "1920468180": "SMA bloğu nasıl kullanılır", "1921634159": "Birkaç kişisel detay", @@ -1563,7 +1572,6 @@ "2021037737": "Devam etmek için lütfen bilgilerinizi güncelleyin.", "2023659183": "Öğrenci", "2023762268": "Başka bir ticaret web sitesini tercih ediyorum.", - "2024107855": "{{payment_agent}} aracı iletişim bilgileri:", "2025339348": "Doğrudan ışıktan uzaklaşın - parlamasız", "2027625329": "Basit Hareketli Ortalama Dizisi (SMAA)", "2027696535": "Vergi bilgileri", @@ -2133,7 +2141,6 @@ "-749765720": "Fiat hesabınızın para birimi {{currency_code}} olarak ayarlandı.", "-803546115": "Hesaplarınızı yönetin ", "-1463156905": "Ödeme yöntemleri hakkında daha fazla bilgi edinin", - "-316545835": "Lütfen transferinizi yapmadan önce <0>tüm bilgilerin <0>doğru olduğundan emin olun.", "-1309258714": "Hesap numarasından", "-1247676678": "Hesap numarasına", "-816476007": "Hesap sahibinin adı", @@ -2144,12 +2151,17 @@ "-1979554765": "Lütfen geçerli bir açıklama girin.", "-1186807402": "Transfer", "-1254233806": "Transfer ettiniz", - "-1179992129": "Tüm ödeme aracıları", - "-1137412124": "Ülkeniz için uygun bir ödeme yöntemi bulamıyor musunuz? O zaman bir ödeme acentası deneyin.", - "-460879294": "Henüz tamamlamadınız. Aktarılan fonları almak için, daha fazla talimat almak amacıyla ödeme aracısı ile iletişime geçmeniz gerekir. Kayıtlarınız için bu işlemin bir özeti e-posta ile gönderildi.", - "-596416199": "İsmen", - "-1169636644": "Ödeme aracısı kimliği ile", + "-1491457729": "All payment methods", + "-142563298": "Contact your preferred payment agent for payment instructions and make your deposit.", + "-1023961762": "Commission on deposits", + "-552873274": "Commission on withdrawal", + "-880645086": "Withdrawal amount", "-118683067": "Para çekme limitleri: <0 /><1 />", + "-1125090734": "Important notice to receive your funds", + "-1924707324": "View transaction", + "-1474202916": "Yeni bir para çekme işlemi gerçekleştirin", + "-511423158": "Enter the payment agent account number", + "-2059278156": "Note: {{website_name}} does not charge any transfer fees.", "-1201279468": "Paranızı çekmek için, lütfen para yatırmak için kullandığınız ödeme yönteminin aynısını seçin.", "-1787304306": "Deriv P2P", "-60779216": "Sistem bakımı nedeniyle para çekme işlemleri geçici olarak kullanılamıyor. Bakım tamamlandığında para çekme işlemi yapabilirsiniz.", @@ -2196,6 +2208,7 @@ "-1612346919": "Hepsini görüntüle", "-89973258": "E-postayı {{seconds}} saniye içinde yeniden gönder", "-1059419768": "Notlar", + "-316545835": "Lütfen transferinizi yapmadan önce <0>tüm bilgilerin <0>doğru olduğundan emin olun.", "-949073402": "Müşterinin transfer bilgilerini doğruladığımı onaylıyorum.", "-1752211105": "Şimdi aktar", "-598073640": "Tether (Ethereum) hakkında", @@ -2244,7 +2257,6 @@ "-2004264970": "Cüzdan adresinizin 25 ila 64 karakteri olmalıdır.", "-1707299138": "{{currency_symbol}} cüzdan adresiniz", "-38063175": "{{account_text}} cüzdan", - "-1474202916": "Yeni bir para çekme işlemi gerçekleştirin", "-705272444": "Kimliğinizi doğrulamak için bir kimlik belgesi yükleyin", "-2024958619": "Bu, hesabınızı izinsiz para çekme işlemlerinden korumak içindir.", "-130833284": "Maksimum ve minimum para çekme limitlerinizin sabit olmadığını lütfen unutmayın. Kriptopara biriminin yüksek volatilitesi nedeniyle değişirler.", diff --git a/packages/translations/src/translations/vi.json b/packages/translations/src/translations/vi.json index 64e1d2cdbd2c..4b5a2d8f4da9 100644 --- a/packages/translations/src/translations/vi.json +++ b/packages/translations/src/translations/vi.json @@ -69,7 +69,7 @@ "107206831": "Chúng tôi sẽ xem xét tài liệu và thông báo cho bạn về trạng thái của nó trong vòng 1-3 ngày.", "108916570": "Thời lượng: {{duration}} ngày", "109073671": "Vui lòng chọn loại ví điện tử bạn đã dùng để gửi tiền. Đảm bảo rằng ví đó hỗ trợ việc rút tiền. Xem danh sách các ví điện tử cho phép rút tiền <0>tại đây.", - "110261653": "Congratulations, you have successfully created your {{category}} {{platform}} <0>{{type}} {{jurisdiction_selected_shortcode}} account. To start trading, transfer funds from your Deriv account into this account.", + "110261653": "Chúc mừng, bạn đã tạo thành công tài khoản {{category}} {{platform}} <0>{{type}} {{jurisdiction_selected_shortcode}}. Để bắt đầu giao dịch, hãy chuyển tiền từ tài khoản Deriv của bạn vào tài khoản này.", "111215238": "Tránh khỏi ánh sáng trực tiếp", "111718006": "Ngày kết thúc", "111931529": "Tổng tiền cược tối đa qua 7 ngày", @@ -91,6 +91,7 @@ "133536621": "và", "138055021": "Các chỉ số tổng hợp", "139454343": "Xác nhận các giới hạn của tôi", + "141265840": "Funds transfer information", "141626595": "Đảm bảo camera trên thiết bị của bạn đang hoạt động", "142050447": "đặt {{ variable }} để tạo văn bản với", "142390699": "Kết nối tới di động của bạn", @@ -105,7 +106,6 @@ "157593038": "số nguyên ngẫu nhiên từ {{ start_number }} tới {{ end_number }}", "160746023": "Tether như một token Omni (USDT) là một phiên bản của Tether được lưu trữ trên lớp Omni trên blockchain Bitcoin.", "160863687": "Không tìm thấy camera", - "162727973": "Vui lòng nhập một ID đại lý thanh toán hợp lệ.", "164112826": "Khung này cho phép bạn tải các khối từ một URL nếu chúng được lưu trữ trên một máy chủ từ xa và chúng sẽ chỉ được tải khi bot của bạn chạy.", "164564432": "Tiền gửi tạm thời không khả dụng do bảo trì hệ thống. Bạn có thể đặt cọc khi quá trình bảo trì hoàn tất.", "165294347": "Vui lòng cài đặt quốc gia cư trú của bạn trong phần cài đặt tài khoản của bạn để truy cập vào thu ngân.", @@ -119,7 +119,7 @@ "173991459": "Chúng tôi đang gửi yêu cầu của bạn đến chuỗi khối.", "176319758": "Tổng tiền cược tối đa qua 30 ngày", "176654019": "$100,000 - $250,000", - "177099483": "Your address verification is pending, and we’ve placed some restrictions on your account. The restrictions will be lifted once your address is verified.", + "177099483": "Việc xác minh địa chỉ của bạn đang được xử lý, đồng thời chúng tôi đang đặt một số hạn chế đối với tài khoản của bạn. Các hạn chế sẽ được dỡ bỏ sau khi địa chỉ của bạn được xác minh.", "178413314": "Tên nên được viết trong khoảng từ 2 đến 50 ký tự.", "179083332": "Ngày", "181881956": "Loại Hợp đồng: {{ contract_type }}", @@ -133,12 +133,13 @@ "196998347": "Chúng tôi giữ tiền của khách hàng trong tài khoản ngân hàng tách biệt với tài khoản hoạt động của chúng tôi, trong trường hợp mất khả năng thanh toán, sẽ không được gộp thành một phần tài sản của công ty. Điều này đáp ứng các yêu cầu của <0>Ủy ban cá cược về việc phân tách tiền của khách hàng ở cấp độ: <1>bảo vệ trung bình.", "197190401": "Ngày hết hạn", "201091938": "30 ngày", - "203179929": "<0>You can open this account once your submitted documents have been verified.", + "203179929": "<0>Bạn sẽ được mở tài khoản này sau khi các giấy tờ bạn gửi đã được xác minh.", "203271702": "Thử lại", "204797764": "Chuyển khoản tới khách hàng", "204863103": "Thời gian thoát", "206010672": "Xóa {{ delete_count }} Khung", "207824122": "Vui lòng rút vốn của bạn khỏi (các) tài khoản Deriv sau:", + "209533725": "You’ve transferred {{amount}} {{currency}}", "210385770": "Nếu bạn đã có sẵn một tài khoản, vui lòng đăng nhập để tiếp tục. Nếu không, xin hãy đăng ký.", "211224838": "Đầu tư", "211461880": "Tên thường và tên họ rất dễ đoán", @@ -251,6 +252,7 @@ "347039138": "Phép lặp (2)", "348951052": "Thu ngân của bạn đang bị khóa", "349047911": "Lớn hơn", + "349110642": "<0>{{payment_agent}}<1>'s contact details", "351744408": "Kiểm tra nếu một chuỗi văn bản cho sẵn còn trống", "352363702": "Bạn có thể thấy các liên kết đến các trang web với một trang đăng nhập Deriv giả, nơi bạn sẽ nhận được lừa vì tiền của bạn.", "353731490": "Công việc hoàn thành", @@ -341,7 +343,7 @@ "465993338": "Oscar's Grind", "466369320": "Tổng lợi nhuận của bạn là tỷ lệ phần trăm thay đổi của giá thị trường nhân với số tiền đặt cược của bạn và hệ số được chọn ở đây.", "473154195": "Cài đặt", - "473863031": "Pending proof of address review", + "473863031": "Xác minh địa chỉ đang được xử lý", "474306498": "Chúng tôi rất tiếc khi bạn rời đi. Tài khoản của bạn hiện đã bị hủy.", "475492878": "Thử các Chỉ số Tổng hợp", "476023405": "Không nhận được email?", @@ -429,6 +431,7 @@ "587577425": "Bảo vệ tài khoản của tôi", "589609985": "Đã liên kết với {{identifier_title}}", "593459109": "Thử loại tiền tệ khác", + "595080994": "Example: CR123456789", "595136687": "Lưu Chiến lược", "597089493": "Đây là nơi bạn có thể quyết định bán gói thầu của mình trước khi nó hết hạn. Chỉ có một bản sao của khối này được cho phép.", "597481571": "TUYÊN BỐ TỪ CHỐI TRÁCH NHIỆM", @@ -455,7 +458,7 @@ "627292452": "<0> Xác minh danh tính hoặc xác minh địa chỉ của bạn không đúng với yêu cầu của chúng tôi. Vui lòng kiểm tra email để được hướng dẫn thêm.", "627814558": "Khung này trả về một giá trị khi một điều kiện là đúng. Sử dụng khung này vào một trong các khung chức năng ở trên.", "629145209": "Trong trường hợp nếu thuật toán \"AND\" được chọn, khung sẽ trả về giá trị \"Đúng\" chỉ khi cả hai điều kiện đưa ra là \"Đúng\"", - "630336049": "Trade CFDs on our synthetics, basket indices, and Derived FX.", + "630336049": "Giao dịch CFD cho các chỉ số tổng hợp, giỏ chỉ số, và Derived FX.", "632398049": "Khung này gán giá trị rỗng cho một mục hoặc câu lệnh.", "634219491": "Bạn chưa cung cấp mã số thuế của mình. Thông tin này là cần thiết cho các yêu cầu pháp lý và quy định. Vui lòng truy cập tới <0>Chi tiết cá nhân trong phần cài đặt tài khoản của bạn và điền vào mã số thuế mới nhất của bạn.", "636219628": "<0>c. Nếu không có cơ hội giải quyết, khiếu nại sẽ chuyển sang giai đoạn phán quyết do DRC xử lý.", @@ -464,7 +467,9 @@ "640730141": "Làm mới trang này để bắt đầu lại quá trình xác minh danh tính", "641420532": "Chúng tôi đã gửi cho bạn một email", "642210189": "Vui lòng kiểm tra email của bạn cho đường dẫn xác nhận để hoàn tất thủ tục.", + "642393128": "Enter amount", "642546661": "Tải lên mặt sau của giấy phép từ máy tính của bạn", + "642995056": "Email", "643014039": "Độ dài giao dịch của hợp đồng bạn đã mua.", "644150241": "Số hợp đồng bạn đã thắng được tính từ lần cuối bạn làm mới số liệu thông kê của mình.", "645016681": "Tần suất giao dịch bằng các công cụ tài chính khác", @@ -494,7 +499,7 @@ "668344562": "Chất tổng hợp, Cặp tiền tệ chính (lô tiêu chuẩn/nhỏ), Cặp tiền tệ thứ yếu, giỏ chỉ số, hàng hoá thương mại, và tiền điện tử", "672008428": "ZEC/USD", "673915530": "Thẩm quyền và sự chọn lựa luật pháp", - "674973192": "Use this password to log in to your Deriv MT5 accounts on the desktop, web, and mobile apps.", + "674973192": "Sử dụng mật khẩu này để đăng nhập vào các tài khoản Deriv MT5 của bạn trên máy tính, trang web, và các ứng dụng điện thoại.", "676159329": "Không thể đổi về tài khoản mặc định.", "677918431": "Thị trường: {{ input_market }} > {{ input_submarket }} > {{ input_symbol }}", "678517581": "Đơn vị", @@ -520,7 +525,6 @@ "706755289": "Khung này thực hiện các hàm lượng giác.", "708055868": "Số giấy phép lái xe", "710123510": "lặp lại {{ while_or_until }} {{ boolean }}", - "711029377": "Xin vui lòng xác nhận chi tiết giao dịch để hoàn thành việc rút tiền:", "711999057": "Thành công", "712101776": "Chụp trang hộ chiếu của bạn", "712635681": "Khung này cung cấp cho bạn giá trị nến đã chọn từ danh sách nến. Bạn có thể chọn từ giá mở, giá đóng, giá cao, giá thấp và thời gian mở.", @@ -626,7 +630,6 @@ "845213721": "Đăng xuất", "845304111": "Thời lượng EMA chậm {{ input_number }}", "847888634": "Vui lòng rút tất cả tiền của bạn.", - "849805216": "Chọn đại lý", "850582774": "Vui lòng cập nhật thông tin cá nhân của bạn", "851054273": "Nếu bạn chọn \"Cao hơn\", bạn sẽ thắng nếu giá tại thời điểm cuối giao dịch cao hơn giới hạn.", "851264055": "Tạo danh sách với một mục nhất định được lặp lại một số lần cụ thể.", @@ -647,6 +650,7 @@ "866496238": "Đảm bảo rằng các chi tiết trên giấy phép của bạn rõ ràng, không bị mờ hoặc lóa", "868826608": "Được tự loại trừ khỏi {{brand_website_name}} cho đến", "869823595": "Chức năng", + "869993298": "Minimum withdrawal", "872549975": "Bạn có {{number}} lần chuyển khoản còn lại cho hôm nay.", "872661442": "Bạn có chắc muốn cập nhật email từ <0>{{prev_email}} sang <1>{{changed_email}}?", "872817404": "Thời gian điểm khởi đầu", @@ -673,7 +677,7 @@ "905134118": "Thanh toán:", "905227556": "Mật khẩu mạnh chứa ít nhất 8 ký tự, bao gồm chữ viết hoa, chữ viết thường và số.", "905564365": "CFD MT5", - "906049814": "We’ll review your documents and notify you of its status within 5 minutes.", + "906049814": "Chúng tôi sẽ xem xét tài liệu và thông báo cho bạn về tình trạng của nó trong vòng 5 phút.", "910888293": "Có quá nhiều lần thử", "915735109": "Quay lại {{platform_name}}", "918447723": "Thực", @@ -691,6 +695,7 @@ "937682366": "Tải lên cả hai tài liệu này để chứng minh danh tính của bạn.", "937831119": "Họ*", "937992258": "Bảng biểu", + "938500877": "{{ text }}. <0>You can view the summary of this transaction in your email.", "938988777": "Rào cản cao", "940950724": "Loại giao dịch này hiện không được hỗ trợ trên {{website_name}}. Vui lòng truy cập <0>Binary.com để biết chi tiết.", "943535887": "Vui lòng đóng các đơn hàng của bạn trong (các) tài khoản Deriv MT5 sau:", @@ -707,7 +712,6 @@ "948156236": "Tạo mật khẩu {{type}}", "948545552": "150+", "949859957": "Gửi", - "952655566": "Đại lý thanh toán", "952927527": "Được quản lý bởi Cơ quan Dịch vụ Tài chính Malta (MFSA) (giấy phép số IS/70156)", "955352264": "Giao dịch trên {{platform_name_dxtrade}}", "956448295": "Phát hiện hình ảnh đã bị chỉnh sửa", @@ -741,7 +745,6 @@ "1004127734": "Gửi email", "1006458411": "Lỗi", "1006664890": "Yên lặng", - "1008240921": "Chọn một đại lý thanh toán và liên hệ với họ để được hướng dẫn.", "1009032439": "Toàn thời gian", "1010198306": "Khung này tạo ra một danh sách với các chuỗi và số.", "1012102263": "Bạn sẽ không thê đăng nhập vào tài khoản của mình cho đến ngày này (lên đến 6 tuần tính từ hôm nay).", @@ -755,7 +758,7 @@ "1023643811": "Khung này mua hợp đồng của một loại xác định.", "1023795011": "Chẵn/Lẻ", "1024205076": "Hoạt động lý luận", - "1024760087": "You are verified to add this account", + "1024760087": "Bạn đã được xác minh để thêm tài khoản này", "1025887996": "Bảo vệ cân bằng số âm", "1026046972": "Vui lòng nhập số tiền thanh toán thấp hơn {{max_payout}}.", "1027098103": "Đòn bẩy cung cấp cho bạn khả năng giao dịch một vị trí lớn hơn bằng cách sử dụng vốn hiện có của bạn. Đòn bẩy thay đổi trên các biểu tượng khác nhau.", @@ -785,6 +788,7 @@ "1047389068": "Dịch vụ ăn uống", "1048947317": "Rất tiếc, ứng dụng này không khả dụng tại {{clients_country}}.", "1049384824": "Tăng", + "1050128247": "I confirm that I have verified the payment agent’s transfer information.", "1050844889": "Báo cáo", "1052137359": "Họ*", "1052779010": "Bạn đang sử dụng tài khoản demo của mình", @@ -838,12 +842,11 @@ "1122910860": "Vui lòng hoàn thành <0>đánh giá tài chính của bạn.", "1123927492": "Bạn chưa chọn loại tiền tệ của mình", "1125090693": "Phải là một số", - "1126075317": "Add your Deriv MT5 <0>{{account_type_name}} STP account under Deriv (FX) Ltd regulated by Labuan Financial Services Authority (Licence no. MB/18/0024).", + "1126075317": "Thêm tài khoản Deriv MT5 <0>{{account_type_name}} STP của bạn theo Deriv (FX) Ltd được quản lý bởi Cơ quan Dịch vụ Tài chính Labuan (Giấy phép số MB/18/0024).", "1126934455": "Độ dài tên của token phải nằm trong khoảng từ 2 đến 32 chữ cái.", "1127149819": "Hãy đảm bảo§", "1128404172": "Hoàn tác", "1129124569": "Nếu bạn chọn \"Dưới\", bạn sẽ thắng nếu chữ số sau cùng của tick cuối thấp hơn so với dự đoán bạn đưa ra.", - "1129296176": "THÔNG BÁO QUAN TRỌNG ĐỂ NHẬN TIỀN CỦA BẠN", "1129842439": "Vui lòng nhập vào một giá trị lấy lãi.", "1130744117": "Chúng tôi sẽ cố gắng giải quyết khiếu nại của bạn trong vòng 10 ngày làm việc. Chúng tôi sẽ thông báo kết quả cùng với một lời giải thích về vị trí của chúng tôi cũng như đề xuất bất kỳ biện pháp khắc phục nào chúng tôi dự định áp dụng.", "1130791706": "N", @@ -885,6 +888,7 @@ "1181396316": "Khung này cung cấp cho bạn một số ngẫu nhiên từ trong phạm vi đã đặt", "1181770592": "\bLãi/Lỗ từ việc bán", "1183007646": "- Loại hợp đồng: tên của loại hợp đồng như \u001dTăng, Giảm, Chạm, Không Chạm, v.v...", + "1188316409": "To receive your funds, contact the payment agent with the details below", "1188980408": "5 phút", "1189368976": "Xin vui lòng điền thông tin cá nhân của bạn trước khi bạn xác thực danh tính.", "1189886490": "Vui lòng tạo một tài khoản Deriv, {{platform_name_mt5}}, hoặc {{platform_name_dxtrade}} khác.", @@ -937,7 +941,7 @@ "1248018350": "Nguồn thu nhập", "1248940117": "<0>a.Quyết định được đưa ra bởi DRC đang ràng buộc chúng tôi. Các quyết định của DRC chỉ có thế ràng buộc bạn nếu bạn chấp nhận chúng.", "1250495155": "Token đã được sao chép!", - "1253154463": "Trade CFDs on our synthetics, basket indices.", + "1253154463": "Giao dịch CFD trên các chỉ số tổng hợp, giỏ chỉ số của chúng tôi.", "1254565203": "đặt {{ variable }} để tạo danh sách với", "1255909792": "cuối cùng", "1255963623": "Tới ngày/thời gian {{ input_timestamp }} {{ dummy }}", @@ -958,7 +962,7 @@ "1281290230": "Chọn", "1282951921": "Chỉ Giảm", "1284522768": "Nếu \"Thua\" được chọn, nó sẽ trả về \"Đúng\" nếu giao dịch cuối của bạn không thành công. Nếu không, nó sẽ trả về chuỗi rỗng.", - "1285686014": "Pending proof of identity review", + "1285686014": "Xác nhận danh tính đang được xử lý", "1286094280": "Rút tiền", "1286507651": "Đóng màn hình xác minh danh tính", "1288965214": "Hộ chiếu", @@ -971,13 +975,13 @@ "1295284664": "Vui lòng chấp nhận <0>Điều khoản và Điều kiện cập nhật của chúng tôi để tiếp tục.", "1296380713": "Đóng hợp đồng của tôi", "1299479533": "8 giờ", - "1300576911": "Please resubmit your proof of address or we may restrict your account.", + "1300576911": "Vui lòng gửi lại bằng chứng địa chỉ của bạn không chúng tôi có thể sẽ phải hạn chế tài khoản của bạn.", "1301668579": "Chúng tôi đang làm việc để sớm cung cấp tính năng này cho bạn. Nếu bạn có tài khoản khác, hãy chuyển sang tài khoản đó để tiếp tục giao dịch. Bạn có thể thêm một tài khoản DMT5 Tài chính.", "1302691457": "Nghề nghiệp", "1303016265": "Có", "1303530014": "Chúng tôi đang xử lý yêu cầu rút tiền của bạn.", "1304083330": "sao chép", - "1304272843": "Please submit your proof of address.", + "1304272843": "Vui lòng nộp xác minh địa chỉ của bạn.", "1304620236": "Bật camera", "1304788377": "<0/><1/>Nếu khiếu nại của bạn liên quan đến thực tiễn xử lý dữ liệu của chúng tôi, bạn có thể gửi đơn khiếu nại chính thức đến <2>Ủy ban bảo vệ thông tin và dữ liệu (Malta) trên trang web của họ hoặc khiếu nại với bất kỳ cơ quan giám sát nào trong Liên minh Châu Âu.", "1305217290": "Tải lên mặt sau của thẻ căn cước của bạn.", @@ -1019,6 +1023,7 @@ "1346339408": "Người quản lý", "1347071802": "{{minutePast}} phút trước", "1348009461": "Vui lòng đóng các đơn hàng của bạn cho (các) tài khoản Deriv X sau:", + "1349133669": "Try changing your search criteria.", "1349289354": "Rất tốt, đó là tất cả những gì chúng tôi cần", "1349295677": "trong văn bản {{ input_text }} lấy chuỗi phụ từ {{ position1 }} {{ index1 }} tới {{ position2 }} {{ index2 }}", "1351152200": "Chào mừng đến với bảng điều khiển của Deriv MT5 (DMT5)", @@ -1042,6 +1047,7 @@ "1367990698": "Chỉ số biến động 10", "1369709538": "Điều khoản sử dụng của chúng tôi", "1371193412": "Hủy", + "1371555192": "Choose your preferred payment agent and enter your withdrawal amount. If your payment agent is not listed, <0>search for them using their account number.", "1371641641": "Mở một đường dẫn trên điện thoại của bạn", "1371911731": "Các sản phẩm tài chính tại EU được cung cấp bởi {{legal_entity_name}}, được cấp phép như một nhà cung cấp dịch vụ đầu tư loại 3 bởi Cơ quan Dịch vụ Tài chính Malta (<0>Giấy phép số. IS/70156).", "1374627690": "Số dư tài khoản tối đa", @@ -1062,7 +1068,6 @@ "1393903598": "nếu đúng {{ return_value }}", "1396179592": "Hoa hồng", "1396417530": "Chỉ số thị trường Bear", - "1397046738": "Xem sao kê", "1397628594": "Không đủ số dư", "1399620764": "Chúng tôi có nghĩa vụ pháp lý phải yêu cầu các thông tin tài chính của bạn.", "1400637999": "(Yêu cầu nhập đủ tất cả các ô)", @@ -1111,7 +1116,7 @@ "1454648764": "id tham chiếu thỏa thuận", "1454865058": "Không nhập địa chỉ được liên kết với giao dịch mua trong ICO hoặc đợt mở bán lớn. Nếu bạn làm vậy, mã token ICO sẽ không được thêm vào tài khoản của bạn.", "1455741083": "Tải lên mặt sau bằng lái xe của bạn.", - "1457341530": "Your proof of identity verification has failed", + "1457341530": "Xác nhận danh tính thất bại", "1457603571": "Không có thông báo", "1461323093": "Hiển thị thông báo trong bảng điều khiển dành cho nhà phát triển.", "1464190305": "Khung này sẽ chuyển quyền điều khiển trở lại khung Các điều kiện Mua, cho phép bạn mua hợp đồng khác mà không cần dừng và khởi động lại bot của mình theo cách thủ công.", @@ -1143,13 +1148,14 @@ "1493673429": "Đổi email", "1493866481": "Chạy Deriv X trên trình duyệt của bạn", "1496810530": "GBP/AUD", - "1497773819": "Deriv MT5 accounts", + "1497773819": "Tài khoản Deriv MT5", "1499074768": "Thêm tài khoản Deriv Multiplier thực", "1499080621": "Đã cố gắng thực hiện một hoạt động không hợp lệ.", - "1501691227": "Add Your Deriv MT5 <0>{{account_type_name}} account under Deriv (V) Ltd, regulated by the Vanuatu Financial Services Commission.", + "1501691227": "Thêm tài khoản Deriv MT5 <0>{{account_type_name}} của bạn theo Deriv (V) Ltd, được quản lý bởi Ủy ban Dịch vụ Tài chính Vanuatu.", "1502039206": "Quá {{barrier}}", "1502325741": "Mật khẩu không được trùng với mật khẩu cho email của bạn.", "1503618738": "- ID tham chiếu của thỏa thuận: ID tham chiếu của hợp đồng", + "1505420815": "No payment agents found for your search", "1505898522": "Tải xuống ngăn xếp", "1509570124": "{{buy_value}} (Mua)", "1509678193": "Đào tạo", @@ -1217,9 +1223,10 @@ "1604916224": "Tuyệt đối", "1605292429": "Tổng mức thua lỗ tối đa", "1612105450": "Nhận chuỗi phụ", - "1613273139": "Resubmit proof of identity and address", + "1613273139": "Nộp lại chứng minh danh tính và địa chỉ", "1613633732": "Thời gian nghỉ nên trong khoảng 10-60 phút", "1615897837": "Thời lượng EMA Dấu hiệu {{ input_number }}", + "1618809782": "Maximum withdrawal", "1619070150": "Bạn đang được chuyển hướng đến một trang web ngoại tuyến.", "1620278321": "Tên và họ bản chất rất dễ đoán", "1620346110": "Thiết lập tiền tệ", @@ -1249,7 +1256,6 @@ "1652968048": "Xác định các tùy chọn giao dịch của bạn chẳng hạn như cấp số nhân và tiền cược.", "1652976865": "Trong ví dụ, khung này được sử dụng với một khung khác để lấy giá khởi đầu từ danh sách nến. Những giá khởi đầu này sau đó được gán cho biến được gọi là \"cl\".", "1653136377": "đã sao chép!", - "1653159197": "Rút tiền qua Đại lý Thanh toán", "1653180917": "Chúng tôi không thể xác minh cho bạn nếu không sử dụng camera", "1654365787": "Không xác định", "1654496508": "Hệ thống của chúng tôi sẽ hoàn thành bất kỳ giao dịch DBot nào đang chạy và DBot sẽ không đặt bất kỳ giao dịch mới nào.", @@ -1341,8 +1347,7 @@ "1763123662": "Tải lên NIMC của bạn.", "1766212789": "Bảo trì máy chủ bắt đầu lúc 06:00 GMT mỗi Chủ Nhật và có thể kéo dài tối đa 2 giờ. Bạn có thể gặp phải sự gián đoạn dịch vụ trong thời gian này.", "1766993323": "Chỉ các chữ cái, số và dấu gạch dưới là được phép.", - "1767429330": "Add a Derived account", - "1767726621": "Chọn đại lý", + "1767429330": "Thêm một tài khoản Derived", "1768861315": "Phút", "1768918213": "Chỉ chữ cái, dấu cách, dấu nối, dấu chấm và dấu nháy đơn được cho phép.", "1769068935": "Chọn bất kỳ sàn giao dịch nào sau đây để mua tiền điện tử:", @@ -1350,7 +1355,6 @@ "1771592738": "Khung có điều kiện", "1772532756": "Tạo và chỉnh sửa", "1777847421": "Đây là một mật khẩu rất phổ biến", - "1778815073": "{{website_name}} không liên kết với bất kỳ Đại lý Thanh toán nào. Khách hàng tự chấp nhận rủi ro khil àm việc trực tiếp với các Đại lý thanh toán. Khách hàng nên kiểm tra thông tin đăng nhập của Đại lý thanh toán và kiểm tra tính chính xác của bất kỳ thông tin nào về Đại lý thanh toán (trên Deriv hoặc các nơi khác) trước khi chuyển tiền.", "1778893716": "Bấm vào đây", "1779519903": "Nên là một số hợp lệ.", "1780770384": "Khung này cung cấp cho bạn một phân số ngẫu nhiên trong khoảng từ 0.0 đến 1.0.", @@ -1397,8 +1401,10 @@ "1830520348": "Mật khẩu {{platform_name_dxtrade}}", "1833481689": "Mở khoá", "1833499833": "Bằng chứng về giấy tờ tùy thân tải lên không thành công", + "1836767074": "Search payment agent name", "1837762008": "Vui lòng gửi bằng chứng nhận dạng và bằng chứng địa chỉ để xác minh tài khoản của bạn trong cài đặt tài khoản để truy cập vào thu ngân.", "1838639373": "Tài nguyên", + "1839021527": "Please enter a valid account number. Example: CR123456789", "1840865068": "đặt {{ variable }} tới Mảng trung bình Biến thiên Đơn giản {{ dummy }}", "1841788070": "Kim loại/USD", "1841996888": "Hạn mức lỗ hàng ngày", @@ -1418,11 +1424,13 @@ "1851776924": "cao hơn", "1851951013": "Vui lòng chuyển sang tài khoản demo để chạy DBot của bạn.", "1854480511": "Thu ngân bị khóa", + "1854874899": "Back to list", "1855566768": "Vị trí danh sách mục", - "1856485118": "Please <0>resubmit your proof of address to transfer funds between MT5 and Deriv accounts.", + "1856485118": "Vui lòng <0>gửi lại chứng minh địa chỉ của bạn để có thể chuyển tiền giữa tài khoản MT5 và Deriv.", "1858251701": "phút", "1859308030": "Gửi phản hồi", "1863053247": "Hãy tải lên văn bản định danh của bạn.", + "1863731653": "To receive your funds, contact the payment agent", "1866811212": "Nạp tiền theo đơn vị tiền tệ tại nơi bạn sống bằng một đại lý thanh khoản độc lập, đã được ủy quyền tại quốc gia của bạn.", "1866836018": "<0/><1/>Nếu khiếu nại của bạn liên quan đến thực tế xử lý dữ liệu của chúng tôi, bạn có thể gửi đơn khiếu nại chính thức đến cơ quan giám sát địa phương.", "1867217564": "Chỉ số phải là một số nguyên dương", @@ -1475,6 +1483,7 @@ "1918633767": "Dòng địa chỉ thứ hai không ở định dạng thích hợp.", "1918796823": "Vui lòng nhập vào một giá trị chặn lỗ.", "1919030163": "Các mẹo để có một bức ảnh tự chụp đẹp", + "1919594496": "{{website_name}} is not affiliated with any payment agents. Customers deal with payment agents at their sole risk. Customers are advised to check the credentials of payment agents and the accuracy of any information about payment agents (on {{website_name}} or elsewhere) before using their services.", "1920217537": "So sánh", "1920468180": "Cách sử dụng khung SMA", "1921634159": "Một số chi tiết cá nhân", @@ -1563,7 +1572,6 @@ "2021037737": "Vui lòng cập nhật thông tin của bạn để tiếp tục.", "2023659183": "Sinh viên", "2023762268": "Tôi thích một trang web giao dịch khác hơn.", - "2024107855": "{{payment_agent}} chi tiết liên lạc của đại lý:", "2025339348": "Tránh khỏi ánh sáng trực tiếp — không bị lóa", "2027625329": "Mảng biến thiên trung bình đơn giản (SMAA)", "2027696535": "Thông tin thuế", @@ -1936,7 +1944,7 @@ "-1008641170": "Tài khoản của bạn không cần xác minh địa chỉ vào lúc này. Chúng tôi sẽ thông báo cho bạn nếu cần xác minh địa chỉ trong tương lai.", "-60204971": "Chúng tôi không thể xác minh bằng xác nhận địa chỉ của bạn", "-1944264183": "Để tiếp tục giao dịch, bạn cũng cần gửi xác nhận địa chỉ.", - "-1088324715": "We’ll review your documents and notify you of its status within 1 - 3 working days.", + "-1088324715": "Chúng tôi sẽ xem xét tài liệu và thông báo cho bạn về tình trạng của nó trong vòng 1 - 3 ngày.", "-1176889260": "Vui lòng chọn một loại văn bản.", "-1515286538": "Vui lòng nhập số văn bản của bạn. ", "-1785463422": "Xác định danh tính của bạn", @@ -2133,7 +2141,6 @@ "-749765720": "Đơn vị tiền tệ trong tài khoản tiền pháp định của bạn được đặt thành {{currency_code}}.", "-803546115": "Quản lý tài khoản của bạn ", "-1463156905": "Tìm hiểu thêm về các phương thức thanh toán", - "-316545835": "Vui lòng đảm bảo <0>tất cả các thông tin chi tiết là <0>chính xác trước khi thực hiện chuyển khoản.", "-1309258714": "Từ số tài khoản", "-1247676678": "Đến số tài khoản", "-816476007": "Tên chủ tài khoản", @@ -2144,12 +2151,17 @@ "-1979554765": "Vui lòng nhập một mô tả hợp lệ.", "-1186807402": "Chuyển khoản", "-1254233806": "Bạn đã chuyển khoản", - "-1179992129": "Tất cả đại lý thanh toán", - "-1137412124": "Không thể tìm thấy phương thức thanh toán phù hợp cho quốc gia của bạn? Sau đó, hãy thử một đại lý thanh toán.", - "-460879294": "Chưa hoàn tất chuyển tiền. Để nhận được tiền đã chuyển, bạn phải liên hệ với đại lý thanh toán để được hướng dẫn thêm. Một bản tóm tắt về giao dịch này đã được gửi qua email cho bạn để lưu hồ sơ.", - "-596416199": "Bằng tên", - "-1169636644": "Bằng ID đại lý thanh toán", + "-1491457729": "All payment methods", + "-142563298": "Contact your preferred payment agent for payment instructions and make your deposit.", + "-1023961762": "Commission on deposits", + "-552873274": "Commission on withdrawal", + "-880645086": "Withdrawal amount", "-118683067": "Hạn mức rút tiền: <0 />-<1 />", + "-1125090734": "Important notice to receive your funds", + "-1924707324": "View transaction", + "-1474202916": "Tạo một lệnh rút tiền mới", + "-511423158": "Enter the payment agent account number", + "-2059278156": "Note: {{website_name}} does not charge any transfer fees.", "-1201279468": "Để rút tiền, vui lòng chọn cùng một phương thức thanh toán mà bạn đã sử dụng để gửi tiền.", "-1787304306": "Deriv P2P", "-60779216": "Rút tiền tạm thời không khả dụng do bảo trì hệ thống. Bạn có thể rút tiền khi quá trình bảo trì hoàn tất.", @@ -2196,6 +2208,7 @@ "-1612346919": "Xem tất cả", "-89973258": "Gửi lại email trong {{seconds}} giây", "-1059419768": "Ghi chú", + "-316545835": "Vui lòng đảm bảo <0>tất cả các thông tin chi tiết là <0>chính xác trước khi thực hiện chuyển khoản.", "-949073402": "Tôi xác nhận rằng tôi đã xác minh thông tin chuyển khoản của khách hàng.", "-1752211105": "Chuyển khoản ngay", "-598073640": "Về Tether (Ethereum)", @@ -2209,14 +2222,14 @@ "-2056016338": "Bạn sẽ không bị tính phí chuyển tiền đối với các chuyển khoản bằng cùng một loại tiền tệ giữa tài khoản Deriv fiat và {{platform_name_mt5}} của mình.", "-599632330": "Chúng tôi sẽ tính phí chuyển khoản 1% đối với các giao dịch chuyển tiền bằng các đơn vị tiền tệ khác nhau giữa tài khoản tiền pháp định Deriv và {{platform_name_mt5}} cũng như giữa tài khoản tiền pháp định Deriv và {{platform_name_dxtrade}}.", "-1196994774": "Chúng tôi sẽ tính phí chuyển khoản 2% hoặc {{minimum_fee}} {{currency}}, tùy theo mức nào cao hơn, đối với chuyển khoản giữa các tài khoản tiền kỹ thuật số Deriv của bạn.", - "-993556039": "We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts and between your Deriv cryptocurrency and {{platform_name_dxtrade}} accounts.", - "-1382702462": "We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts.", + "-993556039": "Chúng tôi sẽ tính phí chuyển khoản 2% hoặc {{minimum_fee}} {{currency}}, tùy theo mức nào cao hơn, đối với chuyển khoản giữa tài khoản tiền điện tử Deriv và tài khoản Deriv MT5 cũng như giữa tài khoản tiền điện tử Deriv và tài khoản {{platform_name_dxtrade}} của bạn.", + "-1382702462": "Chúng tôi sẽ tính phí chuyển khoản 2% hoặc {{minimum_fee}} {{currency}}, tùy theo mức nào cao hơn, đối với chuyển khoản giữa tài khoản tiền điện tử Deriv và tài khoản Deriv MT5 của bạn.", "-1151983985": "Giới hạn chuyển khoản có thể thay đổi tùy thuộc vào tỷ giá hối đoái.", "-1747571263": "Xin lưu ý rằng một số chuyển khoản có thể không thực hiện được.", "-757062699": "Việc chuyển tiền có thể không khả dụng do sự biến động cao hoặc các vấn đề kỹ thuật và khi thị trường hối đoái đóng cửa.", "-1344870129": "Tài khoản Deriv", "-1156059326": "Bạn còn {{number}} lượt chuyển khoản trong hôm nay.", - "-1109729546": "You will be able to transfer funds between MT5 accounts and other accounts once your address is verified.", + "-1109729546": "Bạn sẽ có thể chuyển tiền giữa các tài khoản MT5 và các tài khoản khác sau khi địa chỉ của bạn được xác minh.", "-1593609508": "Chuyển khoản giữa các tài khoản của bạn trong Deriv", "-464965808": "Giới hạn chuyển khoản: <0 /> - <1 />", "-553249337": "Chuyển tiền bị khóa", @@ -2244,7 +2257,6 @@ "-2004264970": "Địa chỉ ví của bạn cần có từ 25 đến 64 ký tự.", "-1707299138": "Địa chỉ ví tiền {{currency_symbol}} của bạn", "-38063175": "Ví tiền {{account_text}}", - "-1474202916": "Tạo một lệnh rút tiền mới", "-705272444": "Tải lên giấy tờ để xác minh danh tính của bạn", "-2024958619": "Điều này là để bảo vệ tài khoản của bạn khỏi bị rút tiền trái phép.", "-130833284": "Xin lưu ý rằng giới hạn rút tiền tối đa và tối thiểu của bạn không cố định. Chúng thay đổi do sự biến động cao của tiền điện tử.", @@ -2606,13 +2618,13 @@ "-1125797291": "Mật khẩu đã được cập nhật.", "-157145612": "Vui lòng đăng nhập với mật khẩu mới cập nhật.", "-1728185398": "Nộp lại bằng chứng địa chỉ", - "-1519764694": "Your proof of address is verified.", + "-1519764694": "Chứng minh địa chỉ của bạn đã được xác minh.", "-1961967032": "Nộp lại chứng minh danh tính", - "-117048458": "Please submit your proof of identity.", - "-1196422502": "Your proof of identity is verified.", - "-136292383": "Your proof of address verification is pending", - "-386909054": "Your proof of address verification has failed", - "-430041639": "Your proof of address did not pass our verification checks, and we’ve placed some restrictions on your account. Please resubmit your proof of address.", + "-117048458": "Vui lòng nộp xác minh danh tính của bạn.", + "-1196422502": "Chứng minh danh tính của bạn đã được xác minh.", + "-136292383": "Xác minh địa chỉ của bạn đang chờ được xử lý", + "-386909054": "Chứng minh địa chỉ của bạn đã thất bại", + "-430041639": "Bằng chứng địa chỉ của bạn không vượt qua kiểm tra xác minh của chúng tôi và chúng tôi đã đặt một số hạn chế đối với tài khoản của bạn. Vui lòng gửi lại bằng chứng về địa chỉ của bạn.", "-87177461": "Vui lòng đi tới cài đặt tài khoản của bạn và điền đầy đủ thông tin cá nhân của bạn để có thể gửi tiền.", "-904632610": "Đặt lại số dư", "-470018967": "Đặt lại số dư", @@ -2762,7 +2774,7 @@ "-305915794": "Chạy MT5 trên trình duyệt hoặc tải ứng dụng MT5 cho thiết bị của bạn", "-404375367": "Giao dịch ngoại hối, rổ chỉ số, hàng hóa và tiền mã hóa với đòn bẩy cao.", "-811331160": "Giao dịch CFD trên ngoại hối, cổ phiếu, chỉ số chứng khoán, chỉ số tổng hợp và hàng hóa có đòn bẩy.", - "-2030107144": "Trade CFDs on forex, stocks & stock indices, commodities, and crypto.", + "-2030107144": "Giao dịch CFD trên forex, cổ phiếu & chỉ số chứng khoán, hàng hóa và tiền điện tử.", "-781132577": "Đòn bẩy", "-1264604378": "Lên đến 1:1000", "-637908996": "100%", @@ -2822,9 +2834,9 @@ "-184453418": "Nhập mật khẩu {{platform}} của bạn", "-1769158315": "thực", "-700260448": "\bdemo", - "-1980366110": "Congratulations, you have successfully created your {{category}} {{platform}} <0>{{type}} account.", + "-1980366110": "Xin chúc mừng, bạn đã tạo thành công tài khoản {{category}} {{platform}} <0>{{type}} của mình.", "-790488576": "Quên mật khẩu?", - "-926547017": "Enter your {{platform}} password to add a {{platform}} {{account}} {{jurisdiction_shortcode}} account.", + "-926547017": "Nhập mật khẩu {{platform}} của bạn để thêm tài khoản {{platform}} {{account}} {{jurisdiction_shortcode}}.", "-1190393389": "Nhập mật khẩu {{platform}} của bạn để thêm tài khoản {{platform}} {{account}}.", "-2057918502": "Gợi ý: Bạn có thể đã nhập mật khẩu Deriv của mình, mật khẩu này khác với mật khẩu {{platform}} của bạn.", "-1928229820": "Đặt lại mật khẩu nhà đầu tư Deriv X", @@ -2856,15 +2868,15 @@ "-1124208206": "Chuyển sang tài khoản thực của bạn để tạo một tài khoản DMT5 {{account_title}} {{type_title}}.", "-1271218821": "Đã thêm tài khoản", "-1576792859": "Cần có bằng chứng danh tính và địa chỉ", - "-1931257307": "You will need to submit proof of identity", - "-2026018074": "Add your Deriv MT5 <0>{{account_type_name}} account under Deriv (SVG) LLC (company no. 273 LLC 2020).", + "-1931257307": "Bạn sẽ cần phải nộp bằng chứng về danh tính", + "-2026018074": "Thêm tài khoản Deriv MT5 <0>{{account_type_name}} của bạn với Deriv (SVG) LLC (công ty số 273 LLC 2020).", "-16048185": "Để tạo tài khoản này trước tiên, chúng tôi cần chứng minh danh tính và địa chỉ của bạn.", - "-162320753": "Add your Deriv MT5 <0>{{account_type_name}} account under Deriv (BVI) Ltd, regulated by the British Virgin Islands Financial Services Commission (License no. SIBA/L/18/1114).", - "-1731304187": "Add your Deriv MT5 CFDs account under Deriv Investments (Europe) Limited regulated by the Malta Financial Services Authority (MFSA) (licence no. IS/70156).", + "-162320753": "Thêm tài khoản <0>{{account_type_name}} Deriv MT5 của bạn với Deriv (BVI) Ltd, được quản lý bởi Ủy ban Dịch vụ Tài chính Quần đảo Virgin thuộc Anh (Giấy phép số SIBA/L/18/1114).", + "-1731304187": "Thêm tài khoản Deriv MT5 CFD của bạn theo Deriv Investments (Europe) Limited được quản lý bởi Cơ quan Dịch vụ Tài chính Malta (MFSA) (giấy phép số IS/70156).", "-1389025684": "Để tạo tài khoản này trước tiên, chúng tôi cần bạn gửi lại chứng minh danh tính và địa chỉ của bạn.", "-1627989291": "Để tạo tài khoản này trước tiên, chúng tôi cần bạn gửi lại bằng chứng danh tính của mình.", - "-724308541": "Jurisdiction for your Deriv MT5 CFDs account", - "-479119833": "Choose a jurisdiction for your Deriv MT5 {{account_type}} account", + "-724308541": "Thẩm quyền cho tài khoản CFD Deriv MT5 của bạn", + "-479119833": "Chọn một thẩm quyền cho tài khoản Deriv MT5 {{account_type}} của bạn", "-10956371": "Bạn cần một tài khoản thực (tiền pháp định hoặc tiền điện tử) trong Deriv để tạo một tài khoản DMT5 thực.", "-1760596315": "Tạo một tài khoản Deriv", "-705682181": "Malta", diff --git a/packages/translations/src/translations/zh_cn.json b/packages/translations/src/translations/zh_cn.json index a528f7210b20..15869011d44f 100644 --- a/packages/translations/src/translations/zh_cn.json +++ b/packages/translations/src/translations/zh_cn.json @@ -91,6 +91,7 @@ "133536621": "和", "138055021": "综合指数", "139454343": "确认我的限额", + "141265840": "Funds transfer information", "141626595": "确保您的设备具可正常使用的相机", "142050447": "设置{{ variable }},用以下程序创建文本", "142390699": "已连接到您的手机", @@ -105,7 +106,6 @@ "157593038": "从{{ start_number }} 到{{ end_number }} 的随机整数", "160746023": "泰达作为 Omni 代币(USDT)是托管在比特币区块链 Omni 层的泰达币版本。", "160863687": "未检测到相机", - "162727973": "请输入有效的付款代理 ID。", "164112826": "此程序块允许您从URL载入您在远程服务器保存的程序块(如有)。只有当您的机器人操作时才能载入。", "164564432": "由于系统维护,暂时无法存款。一旦维护完成,您即可存款。", "165294347": "请前往账户设置并设置居住国/地区以访问收银台。", @@ -139,6 +139,7 @@ "204863103": "退市时间", "206010672": "删除 {{ delete_count }} 程序块", "207824122": "请从以下Deriv 账户取款:", + "209533725": "You’ve transferred {{amount}} {{currency}}", "210385770": "如果您有活动的账户, 请登录以继续操作。否则请注册。", "211224838": "投资", "211461880": "常用名称和姓氏容易猜到", @@ -251,6 +252,7 @@ "347039138": "循环 (2)", "348951052": "您的收银台目前已锁定", "349047911": "大于", + "349110642": "<0>{{payment_agent}}<1>'s contact details", "351744408": "测试指定的文本字串是否为空", "352363702": "您可能会看到带有虚假 Deriv 登录页面的网站链接,资金可能会通过这些链接被骗取。", "353731490": "完成工作", @@ -429,6 +431,7 @@ "587577425": "保障我的账户安全", "589609985": "与{{identifier_title}} 链接", "593459109": "尝试使用其他币种", + "595080994": "Example: CR123456789", "595136687": "保存策略", "597089493": "此处让您决定在合约到期前售出。此程序块仅允许一个复制件。", "597481571": "免责声明", @@ -464,7 +467,9 @@ "640730141": "刷新此页面以重启身份验证过程", "641420532": "我们已给您发送电子邮件", "642210189": "请检查您的电子邮件领取验证链接以完成此程序。", + "642393128": "Enter amount", "642546661": "从电脑上传执照的背面", + "642995056": "Email", "643014039": "已购入合约的交易时间。", "644150241": "上次清除统计记录至今的获利合约数。", "645016681": "其它金融工具的交易频率", @@ -520,7 +525,6 @@ "706755289": "此程序块执行三角函数运算。", "708055868": "驾驶执照号码", "710123510": "重复 {{ while_or_until }} {{ boolean }}", - "711029377": "请确认交易详情以完成取款:", "711999057": "成功", "712101776": "为含照片的护照页面拍照", "712635681": "此程序块提供烛形图列表中指定的烛形线数值。您可在开盘价、平仓价、高价、低价和开盘时间等选项中选择。", @@ -626,7 +630,6 @@ "845213721": "注销", "845304111": "EMA周期缓慢 {{ input_number }}", "847888634": "请提取所有资金.", - "849805216": "选择代理", "850582774": "请更新您的个人信息", "851054273": "如果您选择“高于”期权,只要退市现价严格高于障碍,您将获得赔付。", "851264055": "创建内含以指定次数重复的指定项目的列表。", @@ -647,6 +650,7 @@ "866496238": "确保您的许可证详细信息清晰易读,没有模糊字体或眩光现象", "868826608": "已被禁止访问{{brand_website_name}} 直到", "869823595": "函数", + "869993298": "Minimum withdrawal", "872549975": "今天的转账次数还剩 {{number}} 次。", "872661442": "是否确定将电子邮件<0>{{prev_email}}更新为<1>{{changed_email}}?", "872817404": "入市现价时间", @@ -691,6 +695,7 @@ "937682366": "上传这两份文件以证明身份。", "937831119": "姓氏*", "937992258": "表", + "938500877": "{{ text }}. <0>You can view the summary of this transaction in your email.", "938988777": "高障碍", "940950724": "当前{{website_name}}不支持此交易类型。请前往<0>Binary.com了解详情。", "943535887": "请将以下Deriv MT5账户平仓:", @@ -707,7 +712,6 @@ "948156236": "创建{{type}} 密码", "948545552": "150+", "949859957": "提交", - "952655566": "付款代理", "952927527": "由马耳他金融服务管理局(MFSA)监管(牌照编号IS/70156)", "955352264": "在 {{platform_name_dxtrade}} 交易", "956448295": "检测到裁切图像", @@ -741,7 +745,6 @@ "1004127734": "发送邮件", "1006458411": "错误", "1006664890": "无提示", - "1008240921": "选择付款代理并联系提供指示。", "1009032439": "全天候", "1010198306": "此程序块创建包含字符串和数字的列表。", "1012102263": "在此日期之前(从今天起最多6周),您将无法登录账户。", @@ -785,6 +788,7 @@ "1047389068": "饮食服务", "1048947317": "对不起,此应用在{{clients_country}} 无法使用。", "1049384824": "上升", + "1050128247": "I confirm that I have verified the payment agent’s transfer information.", "1050844889": "报表", "1052137359": "姓氏*", "1052779010": "您正在使用演示账户", @@ -843,7 +847,6 @@ "1127149819": "确保§", "1128404172": "撤消", "1129124569": "如果您选择“小于”期权,只要最新价格的最后一个数字小于您的预测,您将获得赔付。", - "1129296176": "关于接收资金的重要通知", "1129842439": "请输入止盈金额。", "1130744117": "我们将尝试在10个工作日内解决您的投诉。我们会把结果通知您,并说明我们的立场,也会提出我们打算采取的任何补救措施。", "1130791706": "否", @@ -885,6 +888,7 @@ "1181396316": "此程序块提供设置范围内的随机数字", "1181770592": "卖出的损益", "1183007646": "- 合约类型:合约类型名称如上涨、下跌、触及、未触及等。", + "1188316409": "To receive your funds, contact the payment agent with the details below", "1188980408": "5分钟", "1189368976": "身份验证前请填写您的个人资料。", "1189886490": "请开立另一个 Deriv、{{platform_name_mt5}} 或 {{platform_name_dxtrade}} 账户。", @@ -1019,6 +1023,7 @@ "1346339408": "经理", "1347071802": "{{minutePast}}分钟前", "1348009461": "请将以下 Deriv X 账户平仓:", + "1349133669": "Try changing your search criteria.", "1349289354": "太好了,这就是我们需要的一切信息", "1349295677": "文本 {{ input_text }} 中获取自 {{ position1 }} {{ index1 }} 至 {{ position2 }} {{ index2 }} 的子字符串", "1351152200": "欢迎来到 Deriv MT5 (DMT5) 仪表板", @@ -1042,6 +1047,7 @@ "1367990698": "波动率 10 指数", "1369709538": "我们的使用条款", "1371193412": "取消", + "1371555192": "Choose your preferred payment agent and enter your withdrawal amount. If your payment agent is not listed, <0>search for them using their account number.", "1371641641": "用手机打开链接", "1371911731": "欧盟国家的金融产品交易由 {{legal_entity_name}} 提供,由马耳他金融服务机构授予牌照为3级投资服务提供商(<0>牌照号码 IS/70156)。", "1374627690": "最大账户余额", @@ -1062,7 +1068,6 @@ "1393903598": "如果真 {{ return_value }}", "1396179592": "佣金", "1396417530": "熊市指数", - "1397046738": "报表内查看功能", "1397628594": "资金不足", "1399620764": "根据法律规定,我们有义务要求您提供财务信息。", "1400637999": "(全为必填字段)", @@ -1143,13 +1148,14 @@ "1493673429": "更改电子邮件地址", "1493866481": "在浏览器运行 Deriv X", "1496810530": "英镑/澳元", - "1497773819": "Deriv MT5 accounts", + "1497773819": "Deriv MT5 账户", "1499074768": "添加真实 Deriv 乘数账户", "1499080621": "尝试执行无效的操作。", "1501691227": "通过由瓦努阿图金融服务委员会监管的 Deriv (V) 有限公司添加 Deriv MT5 <0>{{account_type_name}}账户。", "1502039206": "大于 {{barrier}}", "1502325741": "密码不可与电子邮件地址相同。", "1503618738": "-交易参考ID:合约的参考ID", + "1505420815": "No payment agents found for your search", "1505898522": "下载堆栈", "1509570124": "{{buy_value}} (买入)", "1509678193": "教育", @@ -1220,6 +1226,7 @@ "1613273139": "重新提交身份和地址证明", "1613633732": "时间间隔须介于10-60分钟之间", "1615897837": "信号EMA周期 {{ input_number }}", + "1618809782": "Maximum withdrawal", "1619070150": "您将被重定向到外部网站。", "1620278321": "仅名字和姓氏本身很容易猜到", "1620346110": "设置货币", @@ -1249,7 +1256,6 @@ "1652968048": "定义诸如乘数和投注额等交易选项。", "1652976865": "此例子中,这个程序块与另一个程序块同时使用,以从烛形图列表中获取开盘价。之后开盘价被分配给称为\"cl\"的变量。", "1653136377": "已复制!", - "1653159197": "支付代理取款", "1653180917": "不使用相机,我们无法验证您的身份", "1654365787": "未知", "1654496508": "我们的系统将完成所有正在运行的DBot交易,且DBot将不会进行任何新交易。", @@ -1342,7 +1348,6 @@ "1766212789": "服务器维护从每个星期日的格林尼治标准时间06:00开始,可能需要2个小时。此期间内服务可能会中断。", "1766993323": "只允许字母、数字和下划线。", "1767429330": "添加衍生账户", - "1767726621": "选择代理", "1768861315": "分钟", "1768918213": "只允许字母、空格、连字符、句号和省略号。", "1769068935": "选择任一交易所购买加密货币:", @@ -1350,7 +1355,6 @@ "1771592738": "条件块", "1772532756": "创建和编辑", "1777847421": "这是很常用的密码", - "1778815073": "{{website_name}} 与任何支付代理不存在附属关系。客户与支付代理的业务往来,风险自负。建议客户在向支付代理汇款前,应事先查询其信用状况,并检查其在Deriv或其他地方的任何信息的准确性。", "1778893716": "请单击此处", "1779519903": "必须是有效号码。", "1780770384": "此程序块提供0.0 至 1.0范围内的随机分数.", @@ -1397,8 +1401,10 @@ "1830520348": "{{platform_name_dxtrade}} 密码", "1833481689": "解锁", "1833499833": "身份证明文件上传失败", + "1836767074": "Search payment agent name", "1837762008": "请提交身份证明和地址证明,在账户设置验证账户以访问收银台。", "1838639373": "资源", + "1839021527": "Please enter a valid account number. Example: CR123456789", "1840865068": "设置{{ variable }} 为简单移动平均线数组{{ dummy }}", "1841788070": "钯金/美元", "1841996888": "每日亏损限额", @@ -1418,11 +1424,13 @@ "1851776924": "上部", "1851951013": "请切换到演示账户以运行DBot。", "1854480511": "收银台已锁定", + "1854874899": "Back to list", "1855566768": "列出项目头寸", "1856485118": "请<0>重新提交地址证明,以便在 MT5 和 Deriv 账户之间转移资金。", "1858251701": "分钟", "1859308030": "提供反馈", "1863053247": "请上传身份证明文件。", + "1863731653": "To receive your funds, contact the payment agent", "1866811212": "通过您所在国家/地区的授权独立付款代理以当地的货币存款。", "1866836018": "<0/> <1/>如果您的投诉与我们的数据处理惯例有关,则可以向当地监管机构提出正式投诉。", "1867217564": "指标必须是正整数", @@ -1475,6 +1483,7 @@ "1918633767": "地址第二行的格式不正确。", "1918796823": "请输入止损金额。", "1919030163": "好的自拍技巧", + "1919594496": "{{website_name}} is not affiliated with any payment agents. Customers deal with payment agents at their sole risk. Customers are advised to check the credentials of payment agents and the accuracy of any information about payment agents (on {{website_name}} or elsewhere) before using their services.", "1920217537": "比较", "1920468180": "如何使用SMA程序块", "1921634159": "一些个人资料", @@ -1563,7 +1572,6 @@ "2021037737": "请更新您的详细资料以继续操作。", "2023659183": "学生", "2023762268": "我更喜欢别的交易网站。", - "2024107855": "{{payment_agent}} 代理联系资料:", "2025339348": "远离直射光 - 无眩光现象", "2027625329": "简单移动平均线数组 (SMAA)", "2027696535": "税务信息", @@ -2133,7 +2141,6 @@ "-749765720": "您的法定账户币种已设置为 {{currency_code}}。", "-803546115": "管理您的账户 ", "-1463156905": "了解付款方法的详细信息", - "-316545835": "转账前,请确保<0>所有详细信息<0>正确无误。", "-1309258714": "从账号", "-1247676678": "至账号", "-816476007": "账户持有人姓名", @@ -2144,12 +2151,17 @@ "-1979554765": "请输入有效的说明。", "-1186807402": "转账", "-1254233806": "已经转账", - "-1179992129": "所有支付代理", - "-1137412124": "找不到适合您所在国家/地区的付款方式?请试试支付代理。", - "-460879294": "尚未完成操作。要接收转来的资金,您必须联系付款代理以获取进一步的说明。此交易摘要已通过电子邮件发送给您作为记录。", - "-596416199": "按名字", - "-1169636644": "按付款代理 ID", + "-1491457729": "All payment methods", + "-142563298": "Contact your preferred payment agent for payment instructions and make your deposit.", + "-1023961762": "Commission on deposits", + "-552873274": "Commission on withdrawal", + "-880645086": "Withdrawal amount", "-118683067": "取款限额:<0 /><1 />", + "-1125090734": "Important notice to receive your funds", + "-1924707324": "View transaction", + "-1474202916": "新取款", + "-511423158": "Enter the payment agent account number", + "-2059278156": "Note: {{website_name}} does not charge any transfer fees.", "-1201279468": "要提取资金,请选择您存款时使用的相同付款方式。", "-1787304306": "Deriv P2P", "-60779216": "由于系统维护,暂时无法取款。一旦维护完成,您即可取款。", @@ -2196,6 +2208,7 @@ "-1612346919": "查看全部", "-89973258": "{{seconds}} 秒后重发电子邮件", "-1059419768": "备注", + "-316545835": "转账前,请确保<0>所有详细信息<0>正确无误。", "-949073402": "确认已经验证了客户的转账信息。", "-1752211105": "立刻转汇", "-598073640": "关于泰达 (以太坊)", @@ -2209,8 +2222,8 @@ "-2056016338": "Deriv 法定货币和 {{platform_name_mt5}} 账户之间相同货币转账,我们不收转账费。", "-599632330": "Deriv 法定货币和 {{platform_name_mt5}} 账户之间以及 Deriv 法定货币和 {{platform_name_dxtrade}} 账户之间不同货币转账,我们将收1%转账费。", "-1196994774": "Deriv 加密货币账户之间的转账,我们将收取 2% 转账费或 {{minimum_fee}} {{currency}},以较高者为准。", - "-993556039": "We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts and between your Deriv cryptocurrency and {{platform_name_dxtrade}} accounts.", - "-1382702462": "We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts.", + "-993556039": "Deriv 加密货币和 Deriv MT5 账户之间以及 Deriv 加密货币和 {{platform_name_dxtrade}} 账户之间的转账,我们将收取 2% 转账费或 {{minimum_fee}} {{currency}},以较高者为准。", + "-1382702462": "Deriv 加密货币和 Deriv MT5 账户之间的转账,我们将收取 2% 转账费或 {{minimum_fee}} {{currency}},以较高者为准。", "-1151983985": "转账限制可能因汇率而更改。", "-1747571263": "请记住,某些转账可能无法进行。", "-757062699": "由于高波动率或技术问题以及交易市场关闭,可能无法转账。", @@ -2244,7 +2257,6 @@ "-2004264970": "钱包地址需有25至64个字符。", "-1707299138": "您的{{currency_symbol}} 钱包地址", "-38063175": "{{account_text}} 钱包", - "-1474202916": "新取款", "-705272444": "上传身份证明以验证您的身份", "-2024958619": "这是为了保护您的账户免遭未经授权提款。", "-130833284": "请注意,您的最高和最低提款限额不是固定的。将根据加密货币的高波动率而发生变化。", diff --git a/packages/translations/src/translations/zh_tw.json b/packages/translations/src/translations/zh_tw.json index 80e9a4a5bf4c..7bcc2c8a5675 100644 --- a/packages/translations/src/translations/zh_tw.json +++ b/packages/translations/src/translations/zh_tw.json @@ -91,6 +91,7 @@ "133536621": "以及", "138055021": "綜合指數", "139454343": "確認我的限額", + "141265840": "Funds transfer information", "141626595": "確保您的裝置具可正常使用的相機", "142050447": "設定{{ variable }},用以下程式建立文字", "142390699": "已連接到您的手機", @@ -105,7 +106,6 @@ "157593038": "從 {{ start_number }} 到 {{ end_number }} 的隨機整數", "160746023": "泰達作為 Omni 代幣(USDT)是託管在比特幣區塊鏈 Omni 層的泰達幣版本。", "160863687": "未偵測到相機", - "162727973": "請輸入有效的付款代理 ID。", "164112826": "此區塊允許您從URL載入您在遠程伺服器儲存的區塊(如有)。只有當機器人操作時才能載入。", "164564432": "由於系統維護,暫時無法存款。一旦維護完成,即可存款。", "165294347": "請前往帳戶設定並設定居住國/地區以存取收銀台。", @@ -139,6 +139,7 @@ "204863103": "退市時間", "206010672": "刪除 {{ delete_count }} 區塊", "207824122": "請從以下 Deriv 帳戶取款:", + "209533725": "You’ve transferred {{amount}} {{currency}}", "210385770": "如果您有活動的帳戶,請登入以繼續操作。否則請註冊。", "211224838": "投資", "211461880": "常用名稱和姓氏容易猜到", @@ -251,6 +252,7 @@ "347039138": "反覆 (2)", "348951052": "收銀台目前已鎖定。", "349047911": "大於", + "349110642": "<0>{{payment_agent}}<1>'s contact details", "351744408": "測試指定的文字字串是否為空", "352363702": "您可能會看到帶有虛假 Deriv 登入頁面的網站連結,資金可能透過這些連結被騙。", "353731490": "完成工作", @@ -429,6 +431,7 @@ "587577425": "保障我的帳戶安全", "589609985": "與 {{identifier_title}} 連結", "593459109": "嘗試使用其他幣種", + "595080994": "Example: CR123456789", "595136687": "儲存策略", "597089493": "此處讓您決定在合約到期前售出。此區塊僅允許一個複製件。", "597481571": "免責聲明", @@ -464,7 +467,9 @@ "640730141": "刷新此頁面以重啟身份驗證過程", "641420532": "我們已給您傳送電子郵件", "642210189": "請檢查電子郵件領取確認連結,完成此程序。", + "642393128": "Enter amount", "642546661": "從電腦上傳執照的背面", + "642995056": "Email", "643014039": "已購入合約的交易時間。", "644150241": "上次清除統計記錄至今的獲利合約數。", "645016681": "其它金融工具的交易頻率", @@ -520,7 +525,6 @@ "706755289": "此區塊執行三角函數運算。", "708055868": "駕駛執照號碼", "710123510": "重覆 {{ while_or_until }} {{ boolean }}", - "711029377": "請確認交易詳細資料以完成取款:", "711999057": "成功", "712101776": "為含照片的護照頁面拍照", "712635681": "此區塊提供燭線圖清單中指定的燭線數值。可在開盤價、平倉價、高價、低價和開盤時間等選項中選擇。", @@ -626,7 +630,6 @@ "845213721": "登出", "845304111": "EMA 週期緩慢 {{ input_number }}", "847888634": "請提取所有資金。", - "849805216": "選擇代理", "850582774": "請更新個人資訊", "851054273": "如果選擇「高於」期權,只要退市現價嚴格高於障礙,您將獲得賠付。", "851264055": "建立內含以指定次數重覆的指定項目的清單。", @@ -647,6 +650,7 @@ "866496238": "確保執照詳細資訊清晰易讀,沒有模糊字體或眩光現象", "868826608": "已被禁止訪問 {{brand_website_name}} 直到", "869823595": "功能", + "869993298": "Minimum withdrawal", "872549975": "今天的轉帳次數還剩 {{number}} 次。", "872661442": "確定要將電子郵件<0>{{prev_email}}更新為<1>{{changed_email}}{{changed_email}}?", "872817404": "入市現價時間", @@ -691,6 +695,7 @@ "937682366": "上傳這兩份文件以證明身份。", "937831119": "姓氏*", "937992258": "表", + "938500877": "{{ text }}. <0>You can view the summary of this transaction in your email.", "938988777": "高障礙", "940950724": "目前{{website_name}}不支援此交易類型。請前往<0>Binary.com了解詳情。", "943535887": "請將以下 Deriv MT5 帳戶平倉:", @@ -707,7 +712,6 @@ "948156236": "建立 {{type}} 密碼", "948545552": "150+", "949859957": "提交", - "952655566": "付款代理", "952927527": "由馬爾他金融服務管理局 (MFSA) 監管 (執照編號 IS/70156)", "955352264": "在 {{platform_name_dxtrade}} 交易", "956448295": "偵測到剪切圖像", @@ -741,7 +745,6 @@ "1004127734": "傳送郵件", "1006458411": "錯誤", "1006664890": "無聲", - "1008240921": "選擇付款代理並聯繫提供指示。", "1009032439": "全天候", "1010198306": "此區塊建立包含字串和數字的清單。", "1012102263": "在此日期之前(從今天起最多6週),您將無法登入帳戶。", @@ -785,6 +788,7 @@ "1047389068": "飲食服務", "1048947317": "對不起,此應用在 {{clients_country}} 無法使用。", "1049384824": "上漲", + "1050128247": "I confirm that I have verified the payment agent’s transfer information.", "1050844889": "報告", "1052137359": "姓氏*", "1052779010": "您正在使用示範帳戶", @@ -843,7 +847,6 @@ "1127149819": "確保§", "1128404172": "撤銷", "1129124569": "如果選擇「小於」期權,只要最新價格的最後一個數字小於您的預測,將獲得賠付。", - "1129296176": "關於接收資金的重要通知", "1129842439": "請輸入止盈金額。", "1130744117": "將嘗試在10個工作日內解決您的投訴。會把結果通知您,並說明我們的立場,也會提出我們打算採取的任何補救措施。", "1130791706": "否", @@ -885,6 +888,7 @@ "1181396316": "此區塊提供設定範圍內的隨機數字", "1181770592": "賣出的損益", "1183007646": "- 合約類型:合約類型名稱如上漲、下跌、觸及、未觸及等。", + "1188316409": "To receive your funds, contact the payment agent with the details below", "1188980408": "5分鐘", "1189368976": "身份驗證前請填寫個人資料。", "1189886490": "請開立另一個 Deriv 、 {{platform_name_mt5}} 或{{platform_name_dxtrade}} 帳戶。", @@ -1019,6 +1023,7 @@ "1346339408": "經理", "1347071802": "{{minutePast}}分鐘前", "1348009461": "請將以下 Deriv X 帳戶平倉:", + "1349133669": "Try changing your search criteria.", "1349289354": "太好了,這就是我們需要的一切資訊", "1349295677": "文字 {{ input_text }} 中取自 {{ position1 }} {{ index1 }} 至 {{ position2 }} {{ index2 }} 的子字串", "1351152200": "歡迎來到 Deriv MT5 (DMT5) 儀表板", @@ -1042,6 +1047,7 @@ "1367990698": "波動率 10 指數", "1369709538": "我們的使用條款", "1371193412": "取消", + "1371555192": "Choose your preferred payment agent and enter your withdrawal amount. If your payment agent is not listed, <0>search for them using their account number.", "1371641641": "用手機打開連結", "1371911731": "歐盟國家的金融產品交易由 {{legal_entity_name}} 提供,由馬爾他金融服務機構授予執照為3級投資服務提供商 (<0>執照編號IS/70156)。", "1374627690": "最大帳戶餘額", @@ -1062,7 +1068,6 @@ "1393903598": "如果真 {{ return_value }}", "1396179592": "佣金", "1396417530": "熊市指數", - "1397046738": "報表內檢視功能", "1397628594": "資金不足", "1399620764": "根據法律規定,我們有義務要求您提供財務資料。", "1400637999": "(所有欄位都需要)", @@ -1143,13 +1148,14 @@ "1493673429": "更改電子郵件地址", "1493866481": "在瀏覽器運行 Deriv X", "1496810530": "英鎊/澳元", - "1497773819": "Deriv MT5 accounts", + "1497773819": "Deriv MT5 帳戶", "1499074768": "新增真實 Deriv 乘數帳戶", "1499080621": "嘗試執行無效的操作。", "1501691227": "透過由萬那杜金融服務委員會監管的 Deriv(V)有限公司新增 Deriv MT5 <0>{{account_type_name}}帳戶。", "1502039206": "大於 {{barrier}}", "1502325741": "密碼不可與電子郵件地址相同。", "1503618738": "- 交易參考 ID:合約的參考 ID", + "1505420815": "No payment agents found for your search", "1505898522": "下載堆疊", "1509570124": "{{buy_value}} (買入)", "1509678193": "教育", @@ -1220,6 +1226,7 @@ "1613273139": "重新提交身份和地址證明", "1613633732": "時間間隔須介於 10-60 分鐘之間", "1615897837": "訊號 EMA 週期 {{ input_number }}", + "1618809782": "Maximum withdrawal", "1619070150": "將被重定向到外部網站。", "1620278321": "僅名字和姓氏本身很容易猜到", "1620346110": "設定貨幣", @@ -1249,7 +1256,6 @@ "1652968048": "定義乘數和投注額等交易選項。", "1652976865": "此例子中,這個區塊與另一個區塊同時使用,以從燭線圖清單中取得開盤價。之後開盤價被分配給稱為\"cl\"的變數。", "1653136377": "已複製!", - "1653159197": "支付代理取款", "1653180917": "不使用相機,無法驗證身份", "1654365787": "未知", "1654496508": "系統將完成所有正在運行的DBot交易,且DBot將不會進行任何新交易。", @@ -1342,7 +1348,6 @@ "1766212789": "伺服器維護從每週日格林尼治標準時間06:00開始,可能需要2個小時。此期間內服務可能會中斷。", "1766993323": "只允許字母、數字和底線。", "1767429330": "新增衍生帳戶", - "1767726621": "選擇代理", "1768861315": "分鐘", "1768918213": "只允許字母、空格、連字號、句號和所有格號。", "1769068935": "選擇任一交易所買入加密貨幣:", @@ -1350,7 +1355,6 @@ "1771592738": "條件塊", "1772532756": "建立和編輯", "1777847421": "這是很常用的密碼", - "1778815073": "{{website_name}} 與任何支付代理不存在附屬關係。客戶與支付代理的業務往來,風險自負。建議客戶在向支付代理匯款前,應事先查詢其信用狀況,並檢查其在 Deriv 或其他地方的任何資訊的準確性。", "1778893716": "請按一下此處", "1779519903": "必須是有效號碼。", "1780770384": "此區塊提供 0.0 至 1.0 範圍內的隨機分數。", @@ -1397,8 +1401,10 @@ "1830520348": "{{platform_name_dxtrade}} 密碼", "1833481689": "解鎖", "1833499833": "身份證明文件上傳失敗", + "1836767074": "Search payment agent name", "1837762008": "請提交身份證明和地址證明,在帳戶設定驗證帳戶以存取收銀台。", "1838639373": "資源", + "1839021527": "Please enter a valid account number. Example: CR123456789", "1840865068": "設定 {{ variable }} 為簡單移動平均線陣列 {{ dummy }}", "1841788070": "鈀金/美元", "1841996888": "每日虧損限額", @@ -1418,11 +1424,13 @@ "1851776924": "上部", "1851951013": "請切換到示範帳戶以運行 DBot。", "1854480511": "收銀台已鎖定", + "1854874899": "Back to list", "1855566768": "清單項目位置", "1856485118": "請<0>重新提交地址證明,以便在 MT5 和 Deriv 帳戶之間轉移資金。", "1858251701": "分鐘", "1859308030": "提供意見反應", "1863053247": "請上傳身份證明文件。", + "1863731653": "To receive your funds, contact the payment agent", "1866811212": "通過所在國家/地區的授權獨立付款代理以當地的貨幣存款。", "1866836018": "<0/> <1/>如果投訴與我們的資料處理慣例有關,則可以向當地監管機構提出正式投訴。", "1867217564": "指標必須是正整數", @@ -1475,6 +1483,7 @@ "1918633767": "地址第二行的格式不正確。", "1918796823": "請輸入止損金額。", "1919030163": "好的自拍技巧", + "1919594496": "{{website_name}} is not affiliated with any payment agents. Customers deal with payment agents at their sole risk. Customers are advised to check the credentials of payment agents and the accuracy of any information about payment agents (on {{website_name}} or elsewhere) before using their services.", "1920217537": "比較", "1920468180": "如何使用 SMA 區塊", "1921634159": "一些個人資料", @@ -1563,7 +1572,6 @@ "2021037737": "請更新詳細資料以繼續操作。", "2023659183": "學生", "2023762268": "我較喜歡別的交易網站。", - "2024107855": "{{payment_agent}} 代理聯繫資料:", "2025339348": "遠離直射光 - 無眩光現象", "2027625329": "簡單移動平均線陣列 (SMAA)", "2027696535": "稅務資訊", @@ -2133,7 +2141,6 @@ "-749765720": "法定帳戶幣種已設定為 {{currency_code}}。", "-803546115": "管理帳戶 ", "-1463156905": "了解付款方法的詳細資訊", - "-316545835": "轉帳前,請確保<0>所有詳細資訊<0>正確無誤。", "-1309258714": "從帳號", "-1247676678": "至帳號", "-816476007": "帳戶持有人姓名", @@ -2144,12 +2151,17 @@ "-1979554765": "請輸入有效的說明。", "-1186807402": "轉帳", "-1254233806": "已轉帳", - "-1179992129": "所有支付代理", - "-1137412124": "找不到適合您所在國家/地區的付款方式?請試試支付代理。", - "-460879294": "尚未完成操作。要接收轉來的資金,必須聯繫付款代理以獲取進一步的說明。此交易摘要已通過電子郵件傳送給您作為記錄。", - "-596416199": "按名字", - "-1169636644": "按付款代理 ID", + "-1491457729": "All payment methods", + "-142563298": "Contact your preferred payment agent for payment instructions and make your deposit.", + "-1023961762": "Commission on deposits", + "-552873274": "Commission on withdrawal", + "-880645086": "Withdrawal amount", "-118683067": "取款限額: <0 /><1 />", + "-1125090734": "Important notice to receive your funds", + "-1924707324": "View transaction", + "-1474202916": "新取款", + "-511423158": "Enter the payment agent account number", + "-2059278156": "Note: {{website_name}} does not charge any transfer fees.", "-1201279468": "要提取資金,請選擇存款時使用的相同付款方式。", "-1787304306": "Deriv P2P", "-60779216": "由於系統維護,暫時無法取款。一旦維護完成,即可取款。", @@ -2196,6 +2208,7 @@ "-1612346919": "檢視全部", "-89973258": "{{seconds}} 秒後重傳電子郵件", "-1059419768": "備註", + "-316545835": "轉帳前,請確保<0>所有詳細資訊<0>正確無誤。", "-949073402": "確認已經驗證了客戶的轉帳資訊.", "-1752211105": "立刻轉匯", "-598073640": "關於泰達 (以太坊)", @@ -2209,8 +2222,8 @@ "-2056016338": "Deriv 法定貨幣和 {{platform_name_mt5}} 帳戶之間相同貨幣轉帳,不收轉帳費。", "-599632330": "Deriv 法定貨幣和 {{platform_name_mt5}} 帳戶之間以及 Deriv 法定貨幣和 {{platform_name_dxtrade}} 帳戶之間的不同貨幣轉帳,將收取 1% 轉帳費。", "-1196994774": "Deriv 加密貨幣帳戶之間的轉帳,將收取 2% 轉帳費或 {{minimum_fee}} {{currency}},以較高者為準。", - "-993556039": "We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts and between your Deriv cryptocurrency and {{platform_name_dxtrade}} accounts.", - "-1382702462": "We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts.", + "-993556039": "Deriv 加密貨幣和 Deriv MT5 帳戶之間以及 Deriv 加密貨幣和 {{platform_name_dxtrade}} 帳戶之間的轉帳,將收取 2% 轉帳費或 {{minimum_fee}} {{currency}},以較高者為準。", + "-1382702462": "Deriv 加密貨幣和 Deriv MT5 帳戶之間的轉帳,我們將收取 2% 轉帳費或 {{minimum_fee}} {{currency}},以較高者為準。", "-1151983985": "轉帳限制可能因匯率而更改。", "-1747571263": "請記住,某些轉帳可能無法進行。", "-757062699": "由於高波動率或技術問題以及交易市場關閉,可能無法轉帳。", @@ -2244,7 +2257,6 @@ "-2004264970": "錢包地址需有25至64個字元。", "-1707299138": "{{currency_symbol}} 錢包地址", "-38063175": "{{account_text}} 錢包", - "-1474202916": "新取款", "-705272444": "上傳身份證明以驗證身份", "-2024958619": "這是為了保護帳戶免遭未經授權提款。", "-130833284": "請注意,最高和最低提款限額不是固定的。將根據加密貨幣的高波動率而發生變化。", diff --git a/tsconfig.json b/tsconfig.json index 6fcd617e082b..178f37c2a691 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -21,7 +21,8 @@ "noUnusedParameters": false, // Report errors on unused parameters "incremental": true, // Enable incremental compilation by reading/writing information from prior compilations to a file on disk "removeComments": true, // Disable emitting comments - "skipDefaultLibCheck": true // Skip type checking .d.ts files that are included with TypeScript + "skipDefaultLibCheck": true, // Skip type checking .d.ts files that are included with TypeScript + "downlevelIteration": true }, "exclude": ["node_modules", "build", "**/__tests__/**/*", "**/*.js", "**/*.jsx"] // *** The files to not type check *** }