mirror of
https://github.com/cake-tech/cake_wallet.git
synced 2025-01-22 02:34:59 +00:00
Merge branch 'main' of https://github.com/cake-tech/cake_wallet into breez
This commit is contained in:
commit
15131c848a
41 changed files with 122 additions and 37 deletions
2
.github/workflows/pr_test_build.yml
vendored
2
.github/workflows/pr_test_build.yml
vendored
|
@ -143,7 +143,7 @@ jobs:
|
|||
echo "const chatwootWebsiteToken = '${{ secrets.CHATWOOT_WEBSITE_TOKEN }}';" >> lib/.secrets.g.dart
|
||||
echo "const exolixApiKey = '${{ secrets.EXOLIX_API_KEY }}';" >> lib/.secrets.g.dart
|
||||
echo "const robinhoodApplicationId = '${{ secrets.ROBINHOOD_APPLICATION_ID }}';" >> lib/.secrets.g.dart
|
||||
echo "const robinhoodCIdApiSecret = '${{ secrets.ROBINHOOD_CID_CLIENT_SECRET }}';" >> lib/.secrets.g.dart
|
||||
echo "const exchangeHelperApiKey = '${{ secrets.ROBINHOOD_CID_CLIENT_SECRET }}';" >> lib/.secrets.g.dart
|
||||
echo "const walletConnectProjectId = '${{ secrets.WALLET_CONNECT_PROJECT_ID }}';" >> lib/.secrets.g.dart
|
||||
echo "const moralisApiKey = '${{ secrets.MORALIS_API_KEY }}';" >> lib/.secrets.g.dart
|
||||
echo "const polygonScanApiKey = '${{ secrets.POLYGON_SCAN_API_KEY }}';" >> cw_evm/lib/.secrets.g.dart
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
import 'dart:async';
|
||||
import 'dart:convert';
|
||||
import 'dart:developer';
|
||||
import 'dart:io';
|
||||
import 'package:cw_core/cake_hive.dart';
|
||||
import 'package:cw_core/crypto_currency.dart';
|
||||
|
@ -30,7 +29,6 @@ import 'package:mobx/mobx.dart';
|
|||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
import 'package:solana/metaplex.dart' as metaplex;
|
||||
import 'package:solana/solana.dart';
|
||||
import 'package:web3dart/crypto.dart';
|
||||
|
||||
part 'solana_wallet.g.dart';
|
||||
|
||||
|
@ -134,7 +132,7 @@ abstract class SolanaWalletBase
|
|||
assert(mnemonic != null || privateKey != null);
|
||||
|
||||
if (privateKey != null) {
|
||||
final privateKeyBytes = hexToBytes(privateKey);
|
||||
final privateKeyBytes = HEX.decode(privateKey);
|
||||
return await Wallet.fromPrivateKeyBytes(privateKey: privateKeyBytes);
|
||||
}
|
||||
|
||||
|
@ -491,7 +489,7 @@ abstract class SolanaWalletBase
|
|||
final signature = await _walletKeyPair!.sign(messageBytes);
|
||||
|
||||
// Convert the signature to a hexadecimal string
|
||||
final hex = bytesToHex(signature.bytes);
|
||||
final hex = HEX.encode(signature.bytes);
|
||||
|
||||
return hex;
|
||||
}
|
||||
|
|
|
@ -19,7 +19,6 @@ dependencies:
|
|||
bip39: ^1.0.6
|
||||
mobx: ^2.3.0+1
|
||||
shared_preferences: ^2.0.15
|
||||
web3dart: ^2.7.1
|
||||
bip32: ^2.0.0
|
||||
hex: ^0.2.0
|
||||
|
||||
|
@ -34,4 +33,4 @@ dev_dependencies:
|
|||
flutter:
|
||||
# assets:
|
||||
# - images/a_dot_burr.jpeg
|
||||
# - images/a_dot_ham.jpeg
|
||||
# - images/a_dot_ham.jpeg
|
||||
|
|
|
@ -1,4 +1,13 @@
|
|||
import 'dart:convert';
|
||||
|
||||
import 'package:cake_wallet/.secrets.g.dart' as secrets;
|
||||
import 'package:cake_wallet/buy/buy_amount.dart';
|
||||
import 'package:cake_wallet/buy/buy_exception.dart';
|
||||
import 'package:cake_wallet/buy/buy_provider.dart';
|
||||
import 'package:cake_wallet/buy/buy_provider_description.dart';
|
||||
import 'package:cake_wallet/buy/order.dart';
|
||||
import 'package:cake_wallet/exchange/trade_state.dart';
|
||||
import 'package:cake_wallet/generated/i18n.dart';
|
||||
import 'package:cake_wallet/palette.dart';
|
||||
import 'package:cake_wallet/routes.dart';
|
||||
import 'package:cake_wallet/src/widgets/alert_with_one_action.dart';
|
||||
|
@ -6,19 +15,11 @@ import 'package:cake_wallet/store/settings_store.dart';
|
|||
import 'package:cake_wallet/themes/theme_base.dart';
|
||||
import 'package:cake_wallet/utils/device_info.dart';
|
||||
import 'package:crypto/crypto.dart';
|
||||
import 'package:cake_wallet/buy/buy_exception.dart';
|
||||
import 'package:cake_wallet/generated/i18n.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:http/http.dart';
|
||||
import 'package:cake_wallet/buy/buy_amount.dart';
|
||||
import 'package:cake_wallet/buy/buy_provider.dart';
|
||||
import 'package:cake_wallet/buy/buy_provider_description.dart';
|
||||
import 'package:cake_wallet/buy/order.dart';
|
||||
import 'package:cw_core/crypto_currency.dart';
|
||||
import 'package:cw_core/wallet_base.dart';
|
||||
import 'package:cw_core/wallet_type.dart';
|
||||
import 'package:cake_wallet/exchange/trade_state.dart';
|
||||
import 'package:cake_wallet/.secrets.g.dart' as secrets;
|
||||
import 'package:cw_core/crypto_currency.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:http/http.dart';
|
||||
import 'package:url_launcher/url_launcher.dart';
|
||||
|
||||
class MoonPaySellProvider extends BuyProvider {
|
||||
|
@ -34,6 +35,7 @@ class MoonPaySellProvider extends BuyProvider {
|
|||
|
||||
static const _baseTestUrl = 'sell-sandbox.moonpay.com';
|
||||
static const _baseProductUrl = 'sell.moonpay.com';
|
||||
static const _cIdBaseUrl = 'exchange-helper.cakewallet.com';
|
||||
|
||||
@override
|
||||
String get providerDescription =>
|
||||
|
@ -60,9 +62,29 @@ class MoonPaySellProvider extends BuyProvider {
|
|||
|
||||
static String get _apiKey => secrets.moonPayApiKey;
|
||||
|
||||
static String get _secretKey => secrets.moonPaySecretKey;
|
||||
static String get _exchangeHelperApiKey => secrets.exchangeHelperApiKey;
|
||||
final String baseUrl;
|
||||
|
||||
Future<String> getMoonpaySignature(String query) async {
|
||||
final uri = Uri.https(_cIdBaseUrl, "/api/moonpay");
|
||||
|
||||
final response = await post(
|
||||
uri,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'x-api-key': _exchangeHelperApiKey,
|
||||
},
|
||||
body: json.encode({'query': query}),
|
||||
);
|
||||
|
||||
if (response.statusCode == 200) {
|
||||
return (jsonDecode(response.body) as Map<String, dynamic>)['signature'] as String;
|
||||
} else {
|
||||
throw Exception(
|
||||
'Provider currently unavailable. Status: ${response.statusCode} ${response.body}');
|
||||
}
|
||||
}
|
||||
|
||||
Future<Uri> requestMoonPayUrl({
|
||||
required CryptoCurrency currency,
|
||||
required String refundWalletAddress,
|
||||
|
@ -86,11 +108,7 @@ class MoonPaySellProvider extends BuyProvider {
|
|||
}..addAll(customParams),
|
||||
);
|
||||
|
||||
final messageBytes = utf8.encode('?${originalUri.query}');
|
||||
final key = utf8.encode(_secretKey);
|
||||
final hmac = Hmac(sha256, key);
|
||||
final digest = hmac.convert(messageBytes);
|
||||
final signature = base64.encode(digest.bytes);
|
||||
final signature = await getMoonpaySignature('?${originalUri.query}');
|
||||
|
||||
if (isTestEnvironment) {
|
||||
return originalUri;
|
||||
|
|
|
@ -32,11 +32,12 @@ class RobinhoodBuyProvider extends BuyProvider {
|
|||
|
||||
String get _applicationId => secrets.robinhoodApplicationId;
|
||||
|
||||
String get _apiSecret => secrets.robinhoodCIdApiSecret;
|
||||
String get _apiSecret => secrets.exchangeHelperApiKey;
|
||||
|
||||
String getSignature(String message) {
|
||||
switch (wallet.type) {
|
||||
case WalletType.ethereum:
|
||||
case WalletType.polygon:
|
||||
return wallet.signMessage(message);
|
||||
case WalletType.litecoin:
|
||||
case WalletType.bitcoin:
|
||||
|
|
|
@ -20,6 +20,7 @@ class PreferencesKey {
|
|||
static const isAppSecureKey = 'is_app_secure';
|
||||
static const disableBuyKey = 'disable_buy';
|
||||
static const disableSellKey = 'disable_sell';
|
||||
static const disableBulletinKey = 'disable_bulletin';
|
||||
static const defaultBuyProvider = 'default_buy_provider';
|
||||
static const walletListOrder = 'wallet_list_order';
|
||||
static const walletListAscending = 'wallet_list_ascending';
|
||||
|
|
|
@ -55,6 +55,7 @@ class ProvidersHelper {
|
|||
case WalletType.monero:
|
||||
return [ProviderType.askEachTime, ProviderType.onramper, ProviderType.dfx];
|
||||
case WalletType.bitcoin:
|
||||
case WalletType.polygon:
|
||||
case WalletType.ethereum:
|
||||
return [
|
||||
ProviderType.askEachTime,
|
||||
|
@ -65,8 +66,6 @@ class ProvidersHelper {
|
|||
case WalletType.litecoin:
|
||||
case WalletType.bitcoinCash:
|
||||
return [ProviderType.askEachTime, ProviderType.onramper, ProviderType.robinhood];
|
||||
case WalletType.polygon:
|
||||
return [ProviderType.askEachTime, ProviderType.onramper, ProviderType.dfx];
|
||||
case WalletType.solana:
|
||||
return [ProviderType.askEachTime, ProviderType.onramper, ProviderType.robinhood];
|
||||
case WalletType.none:
|
||||
|
@ -80,6 +79,7 @@ class ProvidersHelper {
|
|||
switch (walletType) {
|
||||
case WalletType.bitcoin:
|
||||
case WalletType.ethereum:
|
||||
case WalletType.polygon:
|
||||
return [
|
||||
ProviderType.askEachTime,
|
||||
ProviderType.onramper,
|
||||
|
@ -89,13 +89,6 @@ class ProvidersHelper {
|
|||
case WalletType.litecoin:
|
||||
case WalletType.bitcoinCash:
|
||||
return [ProviderType.askEachTime, ProviderType.moonpaySell];
|
||||
case WalletType.polygon:
|
||||
return [
|
||||
ProviderType.askEachTime,
|
||||
ProviderType.onramper,
|
||||
ProviderType.moonpaySell,
|
||||
ProviderType.dfx,
|
||||
];
|
||||
case WalletType.solana:
|
||||
return [
|
||||
ProviderType.askEachTime,
|
||||
|
|
|
@ -103,7 +103,16 @@ class _DashboardPageView extends BasePage {
|
|||
Widget get endDrawer => MenuWidget(dashboardViewModel);
|
||||
|
||||
@override
|
||||
Widget leading(BuildContext context) => ServicesUpdatesWidget(dashboardViewModel.getServicesStatus());
|
||||
Widget leading(BuildContext context) {
|
||||
return Observer(
|
||||
builder: (context) {
|
||||
if (dashboardViewModel.isEnabledBulletinAction) {
|
||||
return ServicesUpdatesWidget(dashboardViewModel.getServicesStatus());
|
||||
}
|
||||
return const SizedBox();
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
Widget middle(BuildContext context) {
|
||||
|
|
|
@ -100,6 +100,12 @@ class _AdvancedPrivacySettingsBodyState extends State<AdvancedPrivacySettingsBod
|
|||
Observer(builder: (_) {
|
||||
return Column(
|
||||
children: [
|
||||
SettingsSwitcherCell(
|
||||
title: S.current.disable_bulletin,
|
||||
value: widget.privacySettingsViewModel.disableBulletin,
|
||||
onValueChange: (BuildContext _, bool value) {
|
||||
widget.privacySettingsViewModel.setDisableBulletin(value);
|
||||
}),
|
||||
SettingsSwitcherCell(
|
||||
title: S.current.add_custom_node,
|
||||
value: widget.privacySettingsViewModel.addCustomNode,
|
||||
|
|
|
@ -80,6 +80,12 @@ class PrivacyPage extends BasePage {
|
|||
onValueChange: (BuildContext _, bool value) {
|
||||
_privacySettingsViewModel.setDisableSell(value);
|
||||
}),
|
||||
SettingsSwitcherCell(
|
||||
title: S.current.disable_bulletin,
|
||||
value: _privacySettingsViewModel.disableBulletin,
|
||||
onValueChange: (BuildContext _, bool value) {
|
||||
_privacySettingsViewModel.setDisableBulletin(value);
|
||||
}),
|
||||
if (_privacySettingsViewModel.canUseEtherscan)
|
||||
SettingsSwitcherCell(
|
||||
title: S.current.etherscan_history,
|
||||
|
|
|
@ -59,6 +59,7 @@ abstract class SettingsStoreBase with Store {
|
|||
required bool initialAppSecure,
|
||||
required bool initialDisableBuy,
|
||||
required bool initialDisableSell,
|
||||
required bool initialDisableBulletin,
|
||||
required WalletListOrderType initialWalletListOrder,
|
||||
required bool initialWalletListAscending,
|
||||
required FiatApiMode initialFiatMode,
|
||||
|
@ -130,6 +131,7 @@ abstract class SettingsStoreBase with Store {
|
|||
isAppSecure = initialAppSecure,
|
||||
disableBuy = initialDisableBuy,
|
||||
disableSell = initialDisableSell,
|
||||
disableBulletin = initialDisableBulletin,
|
||||
walletListOrder = initialWalletListOrder,
|
||||
walletListAscending = initialWalletListAscending,
|
||||
shouldShowMarketPlaceInDashboard = initialShouldShowMarketPlaceInDashboard,
|
||||
|
@ -291,6 +293,11 @@ abstract class SettingsStoreBase with Store {
|
|||
(bool disableSell) =>
|
||||
sharedPreferences.setBool(PreferencesKey.disableSellKey, disableSell));
|
||||
|
||||
reaction(
|
||||
(_) => disableBulletin,
|
||||
(bool disableBulletin) =>
|
||||
sharedPreferences.setBool(PreferencesKey.disableBulletinKey, disableBulletin));
|
||||
|
||||
reaction(
|
||||
(_) => walletListOrder,
|
||||
(WalletListOrderType walletListOrder) =>
|
||||
|
@ -553,6 +560,9 @@ abstract class SettingsStoreBase with Store {
|
|||
@observable
|
||||
bool disableSell;
|
||||
|
||||
@observable
|
||||
bool disableBulletin;
|
||||
|
||||
@observable
|
||||
WalletListOrderType walletListOrder;
|
||||
|
||||
|
@ -777,6 +787,7 @@ abstract class SettingsStoreBase with Store {
|
|||
final isAppSecure = sharedPreferences.getBool(PreferencesKey.isAppSecureKey) ?? false;
|
||||
final disableBuy = sharedPreferences.getBool(PreferencesKey.disableBuyKey) ?? false;
|
||||
final disableSell = sharedPreferences.getBool(PreferencesKey.disableSellKey) ?? false;
|
||||
final disableBulletin = sharedPreferences.getBool(PreferencesKey.disableBulletinKey) ?? false;
|
||||
final walletListOrder =
|
||||
WalletListOrderType.values[sharedPreferences.getInt(PreferencesKey.walletListOrder) ?? 0];
|
||||
final walletListAscending =
|
||||
|
@ -1030,6 +1041,7 @@ abstract class SettingsStoreBase with Store {
|
|||
initialAppSecure: isAppSecure,
|
||||
initialDisableBuy: disableBuy,
|
||||
initialDisableSell: disableSell,
|
||||
initialDisableBulletin: disableBulletin,
|
||||
initialWalletListOrder: walletListOrder,
|
||||
initialWalletListAscending: walletListAscending,
|
||||
initialFiatMode: currentFiatApiMode,
|
||||
|
@ -1148,6 +1160,7 @@ abstract class SettingsStoreBase with Store {
|
|||
isAppSecure = sharedPreferences.getBool(PreferencesKey.isAppSecureKey) ?? isAppSecure;
|
||||
disableBuy = sharedPreferences.getBool(PreferencesKey.disableBuyKey) ?? disableBuy;
|
||||
disableSell = sharedPreferences.getBool(PreferencesKey.disableSellKey) ?? disableSell;
|
||||
disableBulletin = sharedPreferences.getBool(PreferencesKey.disableBulletinKey) ?? disableBulletin;
|
||||
walletListOrder =
|
||||
WalletListOrderType.values[sharedPreferences.getInt(PreferencesKey.walletListOrder) ?? 0];
|
||||
walletListAscending = sharedPreferences.getBool(PreferencesKey.walletListAscending) ?? true;
|
||||
|
|
|
@ -20,6 +20,9 @@ abstract class AdvancedPrivacySettingsViewModelBase with Store {
|
|||
@computed
|
||||
FiatApiMode get fiatApiMode => _settingsStore.fiatApiMode;
|
||||
|
||||
@computed
|
||||
bool get disableBulletin => _settingsStore.disableBulletin;
|
||||
|
||||
@observable
|
||||
bool _addCustomNode = false;
|
||||
|
||||
|
@ -65,6 +68,9 @@ abstract class AdvancedPrivacySettingsViewModelBase with Store {
|
|||
@action
|
||||
void setExchangeApiMode(ExchangeApiMode value) => _settingsStore.exchangeStatus = value;
|
||||
|
||||
@action
|
||||
void setDisableBulletin(bool value) => _settingsStore.disableBulletin = value;
|
||||
|
||||
@action
|
||||
void toggleAddCustomNode() => _addCustomNode = !_addCustomNode;
|
||||
|
||||
|
|
|
@ -365,6 +365,9 @@ abstract class DashboardViewModelBase with Store {
|
|||
@observable
|
||||
bool hasSellAction;
|
||||
|
||||
@computed
|
||||
bool get isEnabledBulletinAction => !settingsStore.disableBulletin;
|
||||
|
||||
ReactionDisposer? _onMoneroAccountChangeReaction;
|
||||
|
||||
ReactionDisposer? _onMoneroBalanceChangeReaction;
|
||||
|
|
|
@ -59,6 +59,9 @@ abstract class PrivacySettingsViewModelBase with Store {
|
|||
@computed
|
||||
bool get disableSell => _settingsStore.disableSell;
|
||||
|
||||
@computed
|
||||
bool get disableBulletin => _settingsStore.disableBulletin;
|
||||
|
||||
@computed
|
||||
bool get useEtherscan => _settingsStore.useEtherscan;
|
||||
|
||||
|
@ -106,6 +109,9 @@ abstract class PrivacySettingsViewModelBase with Store {
|
|||
@action
|
||||
void setDisableSell(bool value) => _settingsStore.disableSell = value;
|
||||
|
||||
@action
|
||||
void setDisableBulletin(bool value) => _settingsStore.disableBulletin = value;
|
||||
|
||||
@action
|
||||
void setLookupsTwitter(bool value) => _settingsStore.lookupsTwitter = value;
|
||||
|
||||
|
|
|
@ -186,6 +186,7 @@
|
|||
"digit_pin": "-رقم PIN",
|
||||
"digital_and_physical_card": " بطاقة ائتمان رقمية ومادية مسبقة الدفع",
|
||||
"disable": "إبطال",
|
||||
"disable_bulletin": "تعطيل نشرة حالة الخدمة",
|
||||
"disable_buy": "تعطيل إجراء الشراء",
|
||||
"disable_cake_2fa": "تعطيل 2 عامل المصادقة",
|
||||
"disable_exchange": "تعطيل التبادل",
|
||||
|
|
|
@ -186,6 +186,7 @@
|
|||
"digit_pin": "-цифрен PIN",
|
||||
"digital_and_physical_card": " дигитална или физическа предплатена дебитна карта",
|
||||
"disable": "Деактивиране",
|
||||
"disable_bulletin": "Деактивирайте бюлетина за състоянието на услугата",
|
||||
"disable_buy": "Деактивирайте действието за покупка",
|
||||
"disable_cake_2fa": "Деактивирайте Cake 2FA",
|
||||
"disable_exchange": "Деактивиране на борса",
|
||||
|
|
|
@ -186,6 +186,7 @@
|
|||
"digit_pin": "-číselný PIN",
|
||||
"digital_and_physical_card": " digitální a fyzické předplacené debetní karty,",
|
||||
"disable": "Zakázat",
|
||||
"disable_bulletin": "Zakázat status servisního stavu",
|
||||
"disable_buy": "Zakázat akci nákupu",
|
||||
"disable_cake_2fa": "Zakázat Cake 2FA",
|
||||
"disable_exchange": "Zakázat směnárny",
|
||||
|
|
|
@ -186,6 +186,7 @@
|
|||
"digit_pin": "-stellige PIN",
|
||||
"digital_and_physical_card": "digitale und physische Prepaid-Debitkarte",
|
||||
"disable": "Deaktivieren",
|
||||
"disable_bulletin": "Deaktivieren Sie das Bulletin des Service Status",
|
||||
"disable_buy": "Kaufaktion deaktivieren",
|
||||
"disable_cake_2fa": "Cake 2FA deaktivieren",
|
||||
"disable_exchange": "Exchange deaktivieren",
|
||||
|
@ -418,8 +419,8 @@
|
|||
"placeholder_transactions": "Ihre Transaktionen werden hier angezeigt",
|
||||
"please_fill_totp": "Bitte geben Sie den 8-stelligen Code ein, der auf Ihrem anderen Gerät vorhanden ist",
|
||||
"please_make_selection": "Bitte treffen Sie unten eine Auswahl zum Erstellen oder Wiederherstellen Ihrer Wallet.",
|
||||
"Please_reference_document": "Weitere Informationen finden Sie in den Dokumenten unten.",
|
||||
"please_reference_document": "Bitte verweisen Sie auf die folgenden Dokumente, um weitere Informationen zu erhalten.",
|
||||
"Please_reference_document": "Weitere Informationen finden Sie in den Dokumenten unten.",
|
||||
"please_select": "Bitte auswählen:",
|
||||
"please_select_backup_file": "Bitte wählen Sie die Sicherungsdatei und geben Sie das Sicherungskennwort ein.",
|
||||
"please_try_to_connect_to_another_node": "Bitte versuchen Sie, sich mit einem anderen Knoten zu verbinden",
|
||||
|
|
|
@ -186,6 +186,7 @@
|
|||
"digit_pin": "-digit PIN",
|
||||
"digital_and_physical_card": " digital and physical prepaid debit card",
|
||||
"disable": "Disable",
|
||||
"disable_bulletin": "Disable service status bulletin",
|
||||
"disable_buy": "Disable buy action",
|
||||
"disable_cake_2fa": "Disable Cake 2FA",
|
||||
"disable_exchange": "Disable exchange",
|
||||
|
|
|
@ -186,6 +186,7 @@
|
|||
"digit_pin": "-dígito PIN",
|
||||
"digital_and_physical_card": " tarjeta de débito prepago digital y física",
|
||||
"disable": "Desactivar",
|
||||
"disable_bulletin": "Desactivar el boletín de estado del servicio",
|
||||
"disable_buy": "Desactivar acción de compra",
|
||||
"disable_cake_2fa": "Desactivar pastel 2FA",
|
||||
"disable_exchange": "Deshabilitar intercambio",
|
||||
|
|
|
@ -186,6 +186,7 @@
|
|||
"digit_pin": " chiffres",
|
||||
"digital_and_physical_card": "carte de débit prépayée numérique et physique",
|
||||
"disable": "Désactiver",
|
||||
"disable_bulletin": "Désactiver le bulletin de statut de service",
|
||||
"disable_buy": "Désactiver l'action d'achat",
|
||||
"disable_cake_2fa": "Désactiver Cake 2FA",
|
||||
"disable_exchange": "Désactiver l'échange",
|
||||
|
|
|
@ -186,6 +186,7 @@
|
|||
"digit_pin": "-lambar PIN",
|
||||
"digital_and_physical_card": "katin zare kudi na dijital da na zahiri",
|
||||
"disable": "Kashe",
|
||||
"disable_bulletin": "Musaki ma'aunin sabis na sabis",
|
||||
"disable_buy": "Kashe alama",
|
||||
"disable_cake_2fa": "Musaki Cake 2FA",
|
||||
"disable_exchange": "Kashe musanya",
|
||||
|
|
|
@ -186,6 +186,7 @@
|
|||
"digit_pin": "-अंक पिन",
|
||||
"digital_and_physical_card": "डिजिटल और भौतिक प्रीपेड डेबिट कार्ड",
|
||||
"disable": "अक्षम करना",
|
||||
"disable_bulletin": "सेवा स्थिति बुलेटिन अक्षम करें",
|
||||
"disable_buy": "खरीद कार्रवाई अक्षम करें",
|
||||
"disable_cake_2fa": "केक 2FA अक्षम करें",
|
||||
"disable_exchange": "एक्सचेंज अक्षम करें",
|
||||
|
|
|
@ -186,6 +186,7 @@
|
|||
"digit_pin": "-znamenkasti PIN",
|
||||
"digital_and_physical_card": "digitalna i fizička unaprijed plaćena debitna kartica",
|
||||
"disable": "Onemogući",
|
||||
"disable_bulletin": "Onemogućite bilten o statusu usluge",
|
||||
"disable_buy": "Onemogući kupnju",
|
||||
"disable_cake_2fa": "Onemogući Cake 2FA",
|
||||
"disable_exchange": "Onemogući exchange",
|
||||
|
|
|
@ -186,6 +186,7 @@
|
|||
"digit_pin": "-digit PIN",
|
||||
"digital_and_physical_card": " kartu debit pra-bayar digital dan fisik",
|
||||
"disable": "Cacat",
|
||||
"disable_bulletin": "Nonaktifkan Buletin Status Layanan",
|
||||
"disable_buy": "Nonaktifkan tindakan beli",
|
||||
"disable_cake_2fa": "Nonaktifkan Kue 2FA",
|
||||
"disable_exchange": "Nonaktifkan pertukaran",
|
||||
|
|
|
@ -187,6 +187,7 @@
|
|||
"digit_pin": "-cifre PIN",
|
||||
"digital_and_physical_card": "carta di debito prepagata digitale e fisica",
|
||||
"disable": "disattivare",
|
||||
"disable_bulletin": "Disabilita Bollettino dello stato del servizio",
|
||||
"disable_buy": "Disabilita l'azione di acquisto",
|
||||
"disable_cake_2fa": "Disabilita Cake 2FA",
|
||||
"disable_exchange": "Disabilita scambio",
|
||||
|
|
|
@ -186,6 +186,7 @@
|
|||
"digit_pin": "桁ピン",
|
||||
"digital_and_physical_card": "デジタルおよび物理プリペイドデビットカード",
|
||||
"disable": "無効にする",
|
||||
"disable_bulletin": "サービスステータス速報を無効にします",
|
||||
"disable_buy": "購入アクションを無効にする",
|
||||
"disable_cake_2fa": "Cake 2FA を無効にする",
|
||||
"disable_exchange": "交換を無効にする",
|
||||
|
|
|
@ -186,6 +186,7 @@
|
|||
"digit_pin": "숫자 PIN",
|
||||
"digital_and_physical_card": " 디지털 및 실제 선불 직불 카드",
|
||||
"disable": "장애를 입히다",
|
||||
"disable_bulletin": "서비스 상태 게시판을 비활성화합니다",
|
||||
"disable_buy": "구매 행동 비활성화",
|
||||
"disable_cake_2fa": "케이크 2FA 비활성화",
|
||||
"disable_exchange": "교환 비활성화",
|
||||
|
|
|
@ -186,6 +186,7 @@
|
|||
"digit_pin": "-ဂဏန်း PIN",
|
||||
"digital_and_physical_card": " ဒစ်ဂျစ်တယ်နှင့် ရုပ်ပိုင်းဆိုင်ရာ ကြိုတင်ငွေပေးချေသော ဒက်ဘစ်ကတ်",
|
||||
"disable": "ပိတ်ပါ။",
|
||||
"disable_bulletin": "ဝန်ဆောင်မှုအခြေအနေစာစောင်ကိုပိတ်ပါ",
|
||||
"disable_buy": "ဝယ်ယူမှု လုပ်ဆောင်ချက်ကို ပိတ်ပါ။",
|
||||
"disable_cake_2fa": "ကိတ်မုန့် 2FA ကို ပိတ်ပါ။",
|
||||
"disable_exchange": "လဲလှယ်မှုကို ပိတ်ပါ။",
|
||||
|
|
|
@ -186,6 +186,7 @@
|
|||
"digit_pin": "-cijferige PIN",
|
||||
"digital_and_physical_card": "digitale en fysieke prepaid debetkaart",
|
||||
"disable": "Uitzetten",
|
||||
"disable_bulletin": "Schakel servicestatus Bulletin uit",
|
||||
"disable_buy": "Koopactie uitschakelen",
|
||||
"disable_cake_2fa": "Taart 2FA uitschakelen",
|
||||
"disable_exchange": "Uitwisseling uitschakelen",
|
||||
|
|
|
@ -186,6 +186,7 @@
|
|||
"digit_pin": "-znakowy PIN",
|
||||
"digital_and_physical_card": " cyfrowa i fizyczna przedpłacona karta debetowa",
|
||||
"disable": "Wyłączyć",
|
||||
"disable_bulletin": "Wyłącz biuletyn statusu usługi",
|
||||
"disable_buy": "Wyłącz akcję kupna",
|
||||
"disable_cake_2fa": "Wyłącz Cake 2FA",
|
||||
"disable_exchange": "Wyłącz wymianę",
|
||||
|
|
|
@ -186,6 +186,7 @@
|
|||
"digit_pin": "dígitos",
|
||||
"digital_and_physical_card": "cartão de débito pré-pago digital e físico",
|
||||
"disable": "Desativar",
|
||||
"disable_bulletin": "Desativar boletim de status de serviço",
|
||||
"disable_buy": "Desativar ação de compra",
|
||||
"disable_cake_2fa": "Desabilitar o Cake 2FA",
|
||||
"disable_exchange": "Desativar troca",
|
||||
|
|
|
@ -186,6 +186,7 @@
|
|||
"digit_pin": "-значный PIN",
|
||||
"digital_and_physical_card": "цифровая и физическая предоплаченная дебетовая карта",
|
||||
"disable": "Запрещать",
|
||||
"disable_bulletin": "Отключить бюллетень статуса обслуживания",
|
||||
"disable_buy": "Отключить действие покупки",
|
||||
"disable_cake_2fa": "Отключить торт 2FA",
|
||||
"disable_exchange": "Отключить обмен",
|
||||
|
|
|
@ -186,6 +186,7 @@
|
|||
"digit_pin": "-หลัก PIN",
|
||||
"digital_and_physical_card": "บัตรเดบิตดิจิตอลและบัตรพื้นฐาน",
|
||||
"disable": "ปิดการใช้งาน",
|
||||
"disable_bulletin": "ปิดการใช้งาน Bulletin สถานะบริการ",
|
||||
"disable_buy": "ปิดการใช้งานการซื้อ",
|
||||
"disable_cake_2fa": "ปิดการใช้งานเค้ก 2FA",
|
||||
"disable_exchange": "ปิดใช้งานการแลกเปลี่ยน",
|
||||
|
|
|
@ -186,6 +186,7 @@
|
|||
"digit_pin": "-digit pin",
|
||||
"digital_and_physical_card": "Digital at Physical Prepaid Debit Card",
|
||||
"disable": "Huwag paganahin",
|
||||
"disable_bulletin": "Huwag paganahin ang Bulletin ng Katayuan ng Serbisyo",
|
||||
"disable_buy": "Huwag paganahin ang pagkilos ng pagbili",
|
||||
"disable_cake_2fa": "Huwag paganahin ang cake 2FA",
|
||||
"disable_exchange": "Huwag paganahin ang palitan",
|
||||
|
|
|
@ -186,6 +186,7 @@
|
|||
"digit_pin": " haneli PIN",
|
||||
"digital_and_physical_card": " Dijital para birimleri ile para yükleyebileceğiniz ve ek bilgiye gerek olmayan",
|
||||
"disable": "Devre dışı bırakmak",
|
||||
"disable_bulletin": "Hizmet Durumu Bültenini Devre Dışı Bırak",
|
||||
"disable_buy": "Satın alma işlemini devre dışı bırak",
|
||||
"disable_cake_2fa": "Cake 2FA'yı Devre Dışı Bırak",
|
||||
"disable_exchange": "Borsayı devre dışı bırak",
|
||||
|
|
|
@ -186,6 +186,7 @@
|
|||
"digit_pin": "-значний PIN",
|
||||
"digital_and_physical_card": " цифрова та фізична передплачена дебетова картка",
|
||||
"disable": "Вимкнути",
|
||||
"disable_bulletin": "Вимкнути статус послуги",
|
||||
"disable_buy": "Вимкнути дію покупки",
|
||||
"disable_cake_2fa": "Вимкнути Cake 2FA",
|
||||
"disable_exchange": "Вимкнути exchange",
|
||||
|
|
|
@ -186,6 +186,7 @@
|
|||
"digit_pin": "-ہندسوں کا پن",
|
||||
"digital_and_physical_card": " ڈیجیٹل اور فزیکل پری پیڈ ڈیبٹ کارڈ",
|
||||
"disable": "غیر فعال کریں۔",
|
||||
"disable_bulletin": "خدمت کی حیثیت کا بلیٹن کو غیر فعال کریں",
|
||||
"disable_buy": "خرید ایکشن کو غیر فعال کریں۔",
|
||||
"disable_cake_2fa": "کیک 2FA کو غیر فعال کریں۔",
|
||||
"disable_exchange": "تبادلے کو غیر فعال کریں۔",
|
||||
|
|
|
@ -186,6 +186,7 @@
|
|||
"digit_pin": "-díjíìtì òǹkà ìdánimọ̀ àdáni",
|
||||
"digital_and_physical_card": " káàdì ìrajà t'ara àti ti ayélujára",
|
||||
"disable": "Ko si",
|
||||
"disable_bulletin": "Mu blogti ipo ipo ṣiṣẹ",
|
||||
"disable_buy": "Ko iṣọrọ ọja",
|
||||
"disable_cake_2fa": "Ko 2FA Cake sii",
|
||||
"disable_exchange": "Pa ilé pàṣípààrọ̀",
|
||||
|
|
|
@ -186,6 +186,7 @@
|
|||
"digit_pin": "位 PIN",
|
||||
"digital_and_physical_card": "数字和物理预付借记卡",
|
||||
"disable": "停用",
|
||||
"disable_bulletin": "禁用服务状态公告",
|
||||
"disable_buy": "禁用购买操作",
|
||||
"disable_cake_2fa": "禁用蛋糕 2FA",
|
||||
"disable_exchange": "禁用交换",
|
||||
|
|
|
@ -34,7 +34,7 @@ class SecretKey {
|
|||
SecretKey('chatwootWebsiteToken', () => ''),
|
||||
SecretKey('exolixApiKey', () => ''),
|
||||
SecretKey('robinhoodApplicationId', () => ''),
|
||||
SecretKey('robinhoodCIdApiSecret', () => ''),
|
||||
SecretKey('exchangeHelperApiKey', () => ''),
|
||||
SecretKey('walletConnectProjectId', () => ''),
|
||||
SecretKey('moralisApiKey', () => ''),
|
||||
];
|
||||
|
|
Loading…
Reference in a new issue