fixes, start adding ui for PoW

This commit is contained in:
fosse 2023-08-09 09:37:38 -04:00
parent ca03c846c2
commit 32554b4cc8
38 changed files with 357 additions and 283 deletions

View file

@ -1,2 +1,4 @@
- -
uri: rpc.nano.to uri: rpc.nano.to:443
-
uri: node.perish.co:9076

View file

@ -0,0 +1,6 @@
-
uri: rpc.nano.to:443
-
uri: workers.perish.co
-
uri: worker.nanoriver.cc:443

View file

@ -120,7 +120,7 @@ class CryptoCurrency extends EnumerableItem<int> with Serializable<int> implemen
static const eos = CryptoCurrency(title: 'EOS', fullName: 'EOS', raw: 7, name: 'eos', iconPath: 'assets/images/eos_icon.png'); static const eos = CryptoCurrency(title: 'EOS', fullName: 'EOS', raw: 7, name: 'eos', iconPath: 'assets/images/eos_icon.png');
static const eth = CryptoCurrency(title: 'ETH', fullName: 'Ethereum', raw: 8, name: 'eth', iconPath: 'assets/images/eth_icon.png'); static const eth = CryptoCurrency(title: 'ETH', fullName: 'Ethereum', raw: 8, name: 'eth', iconPath: 'assets/images/eth_icon.png');
static const ltc = CryptoCurrency(title: 'LTC', fullName: 'Litecoin', raw: 9, name: 'ltc', iconPath: 'assets/images/litecoin-ltc_icon.png'); static const ltc = CryptoCurrency(title: 'LTC', fullName: 'Litecoin', raw: 9, name: 'ltc', iconPath: 'assets/images/litecoin-ltc_icon.png');
static const nano = CryptoCurrency(title: 'XNO', raw: 10, name: 'nano', iconPath: 'assets/images/nano_icon.png'); static const nano = CryptoCurrency(title: 'XNO', raw: 10, fullName: 'Nano', name: 'xno', iconPath: 'assets/images/nano_icon.png');
static const trx = CryptoCurrency(title: 'TRX', fullName: 'TRON', raw: 11, name: 'trx', iconPath: 'assets/images/trx_icon.png'); static const trx = CryptoCurrency(title: 'TRX', fullName: 'TRON', raw: 11, name: 'trx', iconPath: 'assets/images/trx_icon.png');
static const usdt = CryptoCurrency(title: 'USDT', tag: 'OMNI', fullName: 'USDT Tether', raw: 12, name: 'usdt', iconPath: 'assets/images/usdt_icon.png'); static const usdt = CryptoCurrency(title: 'USDT', tag: 'OMNI', fullName: 'USDT Tether', raw: 12, name: 'usdt', iconPath: 'assets/images/usdt_icon.png');
static const usdterc20 = CryptoCurrency(title: 'USDT', tag: 'ETH', fullName: 'USDT Tether', raw: 13, name: 'usdterc20', iconPath: 'assets/images/usdterc20_icon.png'); static const usdterc20 = CryptoCurrency(title: 'USDT', tag: 'ETH', fullName: 'USDT Tether', raw: 13, name: 'usdterc20', iconPath: 'assets/images/usdterc20_icon.png');

View file

@ -2,7 +2,6 @@ import 'package:cw_core/monero_amount_format.dart';
import 'package:mobx/mobx.dart'; import 'package:mobx/mobx.dart';
import 'package:cw_core/account.dart'; import 'package:cw_core/account.dart';
import 'package:cw_nano/api/account_list.dart' as account_list; import 'package:cw_nano/api/account_list.dart' as account_list;
import 'package:cw_nano/api/wallet.dart' as monero_wallet;
part 'nano_account_list.g.dart'; part 'nano_account_list.g.dart';
@ -45,12 +44,11 @@ abstract class NanoAccountListBase with Store {
List<Account> getAll() => account_list.getAllAccount().map((accountRow) { List<Account> getAll() => account_list.getAllAccount().map((accountRow) {
final accountIndex = accountRow.getId(); final accountIndex = accountRow.getId();
final balance = monero_wallet.getFullBalance(accountIndex: accountIndex);
return Account( return Account(
id: accountRow.getId(), id: accountRow.getId(),
label: accountRow.getLabel(), label: accountRow.getLabel(),
balance: moneroAmountToString(amount: balance), balance: "01",
); );
}).toList(); }).toList();

View file

@ -212,6 +212,7 @@ final getIt = GetIt.instance;
var _isSetupFinished = false; var _isSetupFinished = false;
late Box<WalletInfo> _walletInfoSource; late Box<WalletInfo> _walletInfoSource;
late Box<Node> _nodeSource; late Box<Node> _nodeSource;
late Box<Node> _powNodeSource;
late Box<Contact> _contactSource; late Box<Contact> _contactSource;
late Box<Trade> _tradesSource; late Box<Trade> _tradesSource;
late Box<Template> _templates; late Box<Template> _templates;
@ -686,7 +687,7 @@ Future setup({
getIt.registerFactory(() { getIt.registerFactory(() {
final appStore = getIt.get<AppStore>(); final appStore = getIt.get<AppStore>();
return NodeListViewModel(_nodeSource, appStore); return NodeListViewModel(_nodeSource, _powNodeSource, appStore);
}); });
getIt.registerFactory(() => ConnectionSyncPage(getIt.get<DashboardViewModel>())); getIt.registerFactory(() => ConnectionSyncPage(getIt.get<DashboardViewModel>()));

View file

@ -47,6 +47,8 @@ class MainActions {
case WalletType.bitcoin: case WalletType.bitcoin:
case WalletType.litecoin: case WalletType.litecoin:
case WalletType.ethereum: case WalletType.ethereum:
case WalletType.nano:
case WalletType.banano:
if (viewModel.isEnabledBuyAction) { if (viewModel.isEnabledBuyAction) {
final uri = getIt.get<OnRamperBuyProvider>().requestUrl(); final uri = getIt.get<OnRamperBuyProvider>().requestUrl();
if (DeviceInfo.instance.isMobile) { if (DeviceInfo.instance.isMobile) {
@ -70,7 +72,7 @@ class MainActions {
builder: (BuildContext context) { builder: (BuildContext context) {
return AlertWithOneAction( return AlertWithOneAction(
alertTitle: S.of(context).buy, alertTitle: S.of(context).buy,
alertContent: S.of(context).buy_alert_content, alertContent: S.of(context).unsupported_asset,
buttonText: S.of(context).ok, buttonText: S.of(context).ok,
buttonAction: () => Navigator.of(context).pop()); buttonAction: () => Navigator.of(context).pop());
}); });
@ -140,7 +142,7 @@ class MainActions {
builder: (BuildContext context) { builder: (BuildContext context) {
return AlertWithOneAction( return AlertWithOneAction(
alertTitle: S.of(context).sell, alertTitle: S.of(context).sell,
alertContent: S.of(context).sell_alert_content, alertContent: S.of(context).unsupported_asset,
buttonText: S.of(context).ok, buttonText: S.of(context).ok,
buttonAction: () => Navigator.of(context).pop()); buttonAction: () => Navigator.of(context).pop());
}, },

View file

@ -100,6 +100,22 @@ Future<List<Node>> loadDefaultNanoNodes() async {
return nodes; return nodes;
} }
Future<List<Node>> loadDefaultNanoPowNodes() async {
final nodesRaw = await rootBundle.loadString('assets/nano_pow_server_list.yml');
final loadedNodes = loadYaml(nodesRaw) as YamlList;
final nodes = <Node>[];
for (final raw in loadedNodes) {
if (raw is Map) {
final node = Node.fromMap(Map<String, Object>.from(raw));
node.type = WalletType.nano;
nodes.add(node);
}
}
return nodes;
}
Future resetToDefault(Box<Node> nodeSource) async { Future resetToDefault(Box<Node> nodeSource) async {
final moneroNodes = await loadDefaultNodes(); final moneroNodes = await loadDefaultNodes();
final bitcoinElectrumServerList = await loadBitcoinElectrumServerList(); final bitcoinElectrumServerList = await loadBitcoinElectrumServerList();

View file

@ -0,0 +1,46 @@
import 'package:flutter/services.dart';
import 'package:hive/hive.dart';
import "package:yaml/yaml.dart";
import 'package:cw_core/node.dart';
import 'package:cw_core/wallet_type.dart';
Future<List<Node>> loadDefaultNanoPowNodes() async {
final nodesRaw = await rootBundle.loadString('assets/nano_pow_server_list.yml');
final loadedNodes = loadYaml(nodesRaw) as YamlList;
final nodes = <Node>[];
for (final raw in loadedNodes) {
if (raw is Map) {
final node = Node.fromMap(Map<String, Object>.from(raw));
node.type = WalletType.nano;
nodes.add(node);
}
}
return nodes;
}
Future<List<Node>> loadDefaultBananoPowNodes() async {
final nodesRaw = await rootBundle.loadString('assets/nano_pow_server_list.yml');
final loadedNodes = loadYaml(nodesRaw) as YamlList;
final nodes = <Node>[];
for (final raw in loadedNodes) {
if (raw is Map) {
final node = Node.fromMap(Map<String, Object>.from(raw));
node.type = WalletType.banano;
nodes.add(node);
}
}
return nodes;
}
Future resetToDefault(Box<Node> nodeSource) async {
final nanoNodes = await loadDefaultNanoPowNodes();
final bananoNodes = await loadDefaultNanoPowNodes();
final nodes = nanoNodes + bananoNodes;
await nodeSource.clear();
await nodeSource.addAll(nodes);
}

View file

@ -151,7 +151,7 @@ Future<void> initializeAppConfigs() async {
transactionDescriptions: transactionDescriptions, transactionDescriptions: transactionDescriptions,
secureStorage: secureStorage, secureStorage: secureStorage,
anonpayInvoiceInfo: anonpayInvoiceInfo, anonpayInvoiceInfo: anonpayInvoiceInfo,
initialMigrationVersion: 21); initialMigrationVersion: 22);
} }
Future<void> initialSetup( Future<void> initialSetup(

View file

@ -53,8 +53,7 @@ class ReceivePage extends BasePage {
final FocusNode _cryptoAmountFocus; final FocusNode _cryptoAmountFocus;
@override @override
Color? get titleColor => Color? get titleColor => currentTheme.type == ThemeType.bright ? Colors.white : null;
currentTheme.type == ThemeType.bright ? Colors.white : null;
@override @override
Widget middle(BuildContext context) { Widget middle(BuildContext context) {
@ -64,10 +63,7 @@ class ReceivePage extends BasePage {
fontSize: 18.0, fontSize: 18.0,
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
fontFamily: 'Lato', fontFamily: 'Lato',
color: Theme.of(context) color: Theme.of(context).accentTextTheme!.displayMedium!.backgroundColor!),
.accentTextTheme!
.displayMedium!
.backgroundColor!),
); );
} }
@ -103,10 +99,7 @@ class ReceivePage extends BasePage {
icon: Icon( icon: Icon(
Icons.share, Icons.share,
size: 20, size: 20,
color: Theme.of(context) color: Theme.of(context).accentTextTheme!.displayMedium!.backgroundColor!,
.accentTextTheme!
.displayMedium!
.backgroundColor!,
), ),
), ),
)); ));
@ -115,14 +108,13 @@ class ReceivePage extends BasePage {
@override @override
Widget body(BuildContext context) { Widget body(BuildContext context) {
return (addressListViewModel.type == WalletType.monero || return (addressListViewModel.type == WalletType.monero ||
addressListViewModel.type == WalletType.haven) addressListViewModel.type == WalletType.haven ||
addressListViewModel.type == WalletType.nano ||
addressListViewModel.type == WalletType.banano)
? KeyboardActions( ? KeyboardActions(
config: KeyboardActionsConfig( config: KeyboardActionsConfig(
keyboardActionsPlatform: KeyboardActionsPlatform.IOS, keyboardActionsPlatform: KeyboardActionsPlatform.IOS,
keyboardBarColor: Theme.of(context) keyboardBarColor: Theme.of(context).accentTextTheme!.bodyLarge!.backgroundColor!,
.accentTextTheme!
.bodyLarge!
.backgroundColor!,
nextFocus: false, nextFocus: false,
actions: [ actions: [
KeyboardActionsItem( KeyboardActionsItem(
@ -163,10 +155,7 @@ class ReceivePage extends BasePage {
icon: Icon( icon: Icon(
Icons.arrow_forward_ios, Icons.arrow_forward_ios,
size: 14, size: 14,
color: Theme.of(context) color: Theme.of(context).textTheme!.headlineMedium!.color!,
.textTheme!
.headlineMedium!
.color!,
)); ));
} }
@ -178,10 +167,7 @@ class ReceivePage extends BasePage {
icon: Icon( icon: Icon(
Icons.add, Icons.add,
size: 20, size: 20,
color: Theme.of(context) color: Theme.of(context).textTheme!.headlineMedium!.color!,
.textTheme!
.headlineMedium!
.color!,
)); ));
} }
@ -190,23 +176,11 @@ class ReceivePage extends BasePage {
final isCurrent = final isCurrent =
item.address == addressListViewModel.address.address; item.address == addressListViewModel.address.address;
final backgroundColor = isCurrent final backgroundColor = isCurrent
? Theme.of(context) ? Theme.of(context).textTheme!.displayMedium!.decorationColor!
.textTheme! : Theme.of(context).textTheme!.displaySmall!.decorationColor!;
.displayMedium!
.decorationColor!
: Theme.of(context)
.textTheme!
.displaySmall!
.decorationColor!;
final textColor = isCurrent final textColor = isCurrent
? Theme.of(context) ? Theme.of(context).textTheme!.displayMedium!.color!
.textTheme! : Theme.of(context).textTheme!.displaySmall!.color!;
.displayMedium!
.color!
: Theme.of(context)
.textTheme!
.displaySmall!
.color!;
return AddressCell.fromItem(item, return AddressCell.fromItem(item,
isCurrent: isCurrent, isCurrent: isCurrent,
@ -252,10 +226,7 @@ class ReceivePage extends BasePage {
textAlign: TextAlign.center, textAlign: TextAlign.center,
style: TextStyle( style: TextStyle(
fontSize: 15, fontSize: 15,
color: Theme.of(context) color: Theme.of(context).accentTextTheme!.displaySmall!.backgroundColor!)),
.accentTextTheme!
.displaySmall!
.backgroundColor!)),
], ],
), ),
); );

View file

@ -26,6 +26,7 @@ class OtherSettingsPage extends BasePage {
padding: EdgeInsets.only(top: 10), padding: EdgeInsets.only(top: 10),
child: Column( child: Column(
children: [ children: [
if (!_otherSettingsViewModel.changeRepresentativeEnabled)
SettingsPickerCell( SettingsPickerCell(
title: S.current.settings_fee_priority, title: S.current.settings_fee_priority,
items: priorityForWalletType(_otherSettingsViewModel.walletType), items: priorityForWalletType(_otherSettingsViewModel.walletType),

View file

@ -15,8 +15,9 @@ part 'node_list_view_model.g.dart';
class NodeListViewModel = NodeListViewModelBase with _$NodeListViewModel; class NodeListViewModel = NodeListViewModelBase with _$NodeListViewModel;
abstract class NodeListViewModelBase with Store { abstract class NodeListViewModelBase with Store {
NodeListViewModelBase(this._nodeSource, this._appStore) NodeListViewModelBase(this._nodeSource, this._powNodeSource, this._appStore)
: nodes = ObservableList<Node>(), : nodes = ObservableList<Node>(),
powNodes = ObservableList<Node>(),
settingsStore = _appStore.settingsStore { settingsStore = _appStore.settingsStore {
_bindNodes(); _bindNodes();
@ -40,9 +41,11 @@ abstract class NodeListViewModelBase with Store {
S.current.change_current_node(uri) + S.current.change_current_node(uri) +
'${uri.endsWith('.onion') || uri.contains('.onion:') ? '\n' + S.current.orbot_running_alert : ''}'; '${uri.endsWith('.onion') || uri.contains('.onion:') ? '\n' + S.current.orbot_running_alert : ''}';
final ObservableList<Node> nodes;
final SettingsStore settingsStore; final SettingsStore settingsStore;
final ObservableList<Node> nodes;
final ObservableList<Node> powNodes;
final Box<Node> _nodeSource; final Box<Node> _nodeSource;
final Box<Node> _powNodeSource;
final AppStore _appStore; final AppStore _appStore;
Future<void> reset() async { Future<void> reset() async {

View file

@ -136,8 +136,10 @@ abstract class WalletAddressListViewModelBase with Store {
_wallet = appStore.wallet!, _wallet = appStore.wallet!,
selectedCurrency = walletTypeToCryptoCurrency(appStore.wallet!.type), selectedCurrency = walletTypeToCryptoCurrency(appStore.wallet!.type),
_cryptoNumberFormat = NumberFormat(_cryptoNumberPattern), _cryptoNumberFormat = NumberFormat(_cryptoNumberPattern),
hasAccounts = hasAccounts = appStore.wallet!.type == WalletType.monero ||
appStore.wallet!.type == WalletType.monero || appStore.wallet!.type == WalletType.haven, appStore.wallet!.type == WalletType.haven ||
appStore.wallet!.type == WalletType.nano ||
appStore.wallet!.type == WalletType.banano,
amount = '' { amount = '' {
_init(); _init();
} }
@ -271,7 +273,11 @@ abstract class WalletAddressListViewModelBase with Store {
} }
@computed @computed
bool get hasAddressList => _wallet.type == WalletType.monero || _wallet.type == WalletType.haven; bool get hasAddressList =>
_wallet.type == WalletType.monero ||
_wallet.type == WalletType.haven ||
_wallet.type == WalletType.nano ||
_wallet.type == WalletType.banano;
@computed @computed
bool get showElectrumAddressDisclaimer => bool get showElectrumAddressDisclaimer =>

View file

@ -670,5 +670,6 @@
"template_name": "اسم القالب", "template_name": "اسم القالب",
"change_rep": "ﺏﻭﺪﻨﻣ ﺮﻴﻴﻐﺗ", "change_rep": "ﺏﻭﺪﻨﻣ ﺮﻴﻴﻐﺗ",
"change_rep_message": "؟ﻦﻴﻠﺜﻤﻤﻟﺍ ﺮﻴﻴﻐﺗ ﺪﻳﺮﺗ ﻚﻧﺃ ﺪﻛﺄﺘﻣ ﺖﻧﺃ ﻞﻫ", "change_rep_message": "؟ﻦﻴﻠﺜﻤﻤﻟﺍ ﺮﻴﻴﻐﺗ ﺪﻳﺮﺗ ﻚﻧﺃ ﺪﻛﺄﺘﻣ ﺖﻧﺃ ﻞﻫ",
"manage_nodes": "ﺪﻘﻌﻟﺍ ﺓﺭﺍﺩﺇ" "manage_nodes": "ﺪﻘﻌﻟﺍ ﺓﺭﺍﺩﺇ",
"unsupported_asset": " .ﻡﻮﻋﺪﻣ ﻞﺻﺃ ﻉﻮﻧ ﻦﻣ ﺔﻈﻔﺤﻣ ﻰﻟﺇ ﻞﻳﺪﺒﺘﻟﺍ ﻭﺃ ءﺎﺸﻧﺇ ﻰﺟﺮﻳ .ﻞﺻﻷﺍ ﺍﺬﻬﻟ ءﺍﺮﺟﻹﺍ ﺍﺬﻫ ﻢﻋﺪﻧ ﻻ ﻦﺤﻧ"
} }

View file

@ -666,5 +666,6 @@
"template_name": "Име на шаблон", "template_name": "Име на шаблон",
"change_rep": "Смяна на представител", "change_rep": "Смяна на представител",
"change_rep_message": "Сигурни ли сте, че искате да смените представителите?", "change_rep_message": "Сигурни ли сте, че искате да смените представителите?",
"manage_nodes": "Управление на възли" "manage_nodes": "Управление на възли",
"unsupported_asset": "Не поддържаме това действие за този актив. Моля, създайте или преминете към портфейл от поддържан тип актив."
} }

View file

@ -666,5 +666,6 @@
"etherscan_history": "Historie Etherscanu", "etherscan_history": "Historie Etherscanu",
"template_name": "Název šablony", "template_name": "Název šablony",
"change_rep": "Změna zástupce", "change_rep": "Změna zástupce",
"change_rep_message": "Jste si jisti, že chcete změnit zástupce?" "change_rep_message": "Jste si jisti, že chcete změnit zástupce?",
"unsupported_asset": "Tuto akci u tohoto díla nepodporujeme. Vytvořte nebo přepněte na peněženku podporovaného typu aktiv."
} }

View file

@ -674,5 +674,6 @@
"etherscan_history": "Etherscan-Geschichte", "etherscan_history": "Etherscan-Geschichte",
"template_name": "Vorlagenname", "template_name": "Vorlagenname",
"change_rep": "Change-Beauftragter", "change_rep": "Change-Beauftragter",
"change_rep_message": "Sind Sie sicher, dass Sie den Vertreter wechseln möchten?" "change_rep_message": "Sind Sie sicher, dass Sie den Vertreter wechseln möchten?",
"unsupported_asset": "Wir unterstützen diese Aktion für dieses Asset nicht. Bitte erstellen Sie eine Wallet eines unterstützten Asset-Typs oder wechseln Sie zu einer Wallet."
} }

View file

@ -674,5 +674,6 @@
"etherscan_history": "Etherscan history", "etherscan_history": "Etherscan history",
"template_name": "Template Name", "template_name": "Template Name",
"change_rep": "Change Representative", "change_rep": "Change Representative",
"change_rep_message": "Are you sure that you want to change representatives?" "change_rep_message": "Are you sure that you want to change representatives?",
"unsupported_asset": "We don't support this action for this asset. Please create or switch to a wallet of a supported asset type."
} }

View file

@ -674,5 +674,6 @@
"etherscan_history": "historia de etherscan", "etherscan_history": "historia de etherscan",
"template_name": "Nombre de la plantilla", "template_name": "Nombre de la plantilla",
"change_rep": "Representante de cambio", "change_rep": "Representante de cambio",
"change_rep_message": "¿Estás seguro de que quieres cambiar de representante?" "change_rep_message": "¿Estás seguro de que quieres cambiar de representante?",
"unsupported_asset": "No admitimos esta acción para este activo. Cree o cambie a una billetera de un tipo de activo admitido."
} }

View file

@ -674,5 +674,6 @@
"etherscan_history": "Historique d'Etherscan", "etherscan_history": "Historique d'Etherscan",
"template_name": "Nom du modèle", "template_name": "Nom du modèle",
"change_rep": "Changer de représentant", "change_rep": "Changer de représentant",
"change_rep_message": "Êtes-vous sûr de vouloir changer de représentant ?" "change_rep_message": "Êtes-vous sûr de vouloir changer de représentant ?",
"unsupported_asset": "Nous ne prenons pas en charge cette action pour cet élément. Veuillez créer ou passer à un portefeuille d'un type d'actif pris en charge."
} }

View file

@ -652,5 +652,6 @@
"template_name": "Sunan Samfura", "template_name": "Sunan Samfura",
"change_rep": "Canza Wakili", "change_rep": "Canza Wakili",
"change_rep_message": "Shin kun tabbata kuna son canza wakilai?", "change_rep_message": "Shin kun tabbata kuna son canza wakilai?",
"manage_nodes": "Sarrafa nodes" "manage_nodes": "Sarrafa nodes",
"unsupported_asset": "Ba mu goyi bayan wannan aikin don wannan kadara. Da fatan za a ƙirƙira ko canza zuwa walat na nau'in kadara mai tallafi."
} }

View file

@ -674,5 +674,6 @@
"etherscan_history": "इथरस्कैन इतिहास", "etherscan_history": "इथरस्कैन इतिहास",
"template_name": "टेम्पलेट नाम", "template_name": "टेम्पलेट नाम",
"change_rep": "प्रतिनिधि बदलें", "change_rep": "प्रतिनिधि बदलें",
"change_rep_message": "क्या आप वाकई प्रतिनिधियों को बदलना चाहते हैं?" "change_rep_message": "क्या आप वाकई प्रतिनिधियों को बदलना चाहते हैं?",
"unsupported_asset": "हम इस संपत्ति के लिए इस कार्रवाई का समर्थन नहीं करते हैं. कृपया समर्थित परिसंपत्ति प्रकार का वॉलेट बनाएं या उस पर स्विच करें।"
} }

View file

@ -674,5 +674,6 @@
"etherscan_history": "Etherscan povijest", "etherscan_history": "Etherscan povijest",
"template_name": "Naziv predloška", "template_name": "Naziv predloška",
"change_rep": "Promjena predstavnika", "change_rep": "Promjena predstavnika",
"change_rep_message": "Jeste li sigurni da želite promijeniti predstavnika?" "change_rep_message": "Jeste li sigurni da želite promijeniti predstavnika?",
"unsupported_asset": "Ne podržavamo ovu radnju za ovaj materijal. Izradite ili prijeđite na novčanik podržane vrste sredstava."
} }

View file

@ -662,5 +662,6 @@
"etherscan_history": "Sejarah Etherscan", "etherscan_history": "Sejarah Etherscan",
"template_name": "Nama Templat", "template_name": "Nama Templat",
"change_rep": "Ubah Perwakilan", "change_rep": "Ubah Perwakilan",
"change_rep_message": "Apakah Anda yakin ingin mengubah perwakilan?" "change_rep_message": "Apakah Anda yakin ingin mengubah perwakilan?",
"unsupported_asset": "Kami tidak mendukung tindakan ini untuk aset ini. Harap buat atau alihkan ke dompet dari jenis aset yang didukung."
} }

View file

@ -674,5 +674,6 @@
"etherscan_history": "Storia Etherscan", "etherscan_history": "Storia Etherscan",
"template_name": "Nome modello", "template_name": "Nome modello",
"change_rep": "Cambia rappresentante", "change_rep": "Cambia rappresentante",
"change_rep_message": "Sei sicuro di voler cambiare rappresentante?" "change_rep_message": "Sei sicuro di voler cambiare rappresentante?",
"unsupported_asset": "Non supportiamo questa azione per questa risorsa. Crea o passa a un portafoglio di un tipo di asset supportato."
} }

View file

@ -674,5 +674,6 @@
"etherscan_history": "イーサスキャンの歴史", "etherscan_history": "イーサスキャンの歴史",
"template_name": "テンプレート名", "template_name": "テンプレート名",
"change_rep": "代表者の変更", "change_rep": "代表者の変更",
"change_rep_message": "代表者を変更してもよろしいですか?" "change_rep_message": "代表者を変更してもよろしいですか?",
"unsupported_asset": "このアセットに対するこのアクションはサポートされていません。サポートされているアセットタイプのウォレットを作成するか、ウォレットに切り替えてください。"
} }

View file

@ -674,6 +674,5 @@
"manage_nodes": "노드 관리", "manage_nodes": "노드 관리",
"etherscan_history": "이더스캔 역사", "etherscan_history": "이더스캔 역사",
"template_name": "템플릿 이름", "template_name": "템플릿 이름",
"change_rep": "대표자 변경", "unsupported_asset": "이 저작물에 대해 이 작업을 지원하지 않습니다. 지원되는 자산 유형의 지갑을 생성하거나 전환하십시오."
"change_rep_message": "담당자를 변경하시겠습니까?"
} }

View file

@ -672,5 +672,6 @@
"etherscan_history": "Etherscan သမိုင်း", "etherscan_history": "Etherscan သမိုင်း",
"template_name": "နမူနာပုံစံ", "template_name": "နမူနာပုံစံ",
"change_rep": "ကိုယ်စားလှယ်ပြောင်းပါ။", "change_rep": "ကိုယ်စားလှယ်ပြောင်းပါ။",
"change_rep_message": "ကိုယ်စားလှယ်ပြောင်းလိုသည်မှာ သေချာပါသလား။" "change_rep_message": "ကိုယ်စားလှယ်ပြောင်းလိုသည်မှာ သေချာပါသလား။",
"unsupported_asset": "ဤပိုင်ဆိုင်မှုအတွက် ဤလုပ်ဆောင်ချက်ကို ကျွန်ုပ်တို့ မပံ့ပိုးပါ။ ကျေးဇူးပြု၍ ပံ့ပိုးပေးထားသော ပိုင်ဆိုင်မှုအမျိုးအစား၏ ပိုက်ဆံအိတ်ကို ဖန်တီးပါ သို့မဟုတ် ပြောင်းပါ။"
} }

View file

@ -674,5 +674,6 @@
"etherscan_history": "Etherscan-geschiedenis", "etherscan_history": "Etherscan-geschiedenis",
"template_name": "Sjabloonnaam", "template_name": "Sjabloonnaam",
"change_rep": "Vertegenwoordiger wijzigen", "change_rep": "Vertegenwoordiger wijzigen",
"change_rep_message": "Weet u zeker dat u van vertegenwoordiger wilt veranderen?" "change_rep_message": "Weet u zeker dat u van vertegenwoordiger wilt veranderen?",
"unsupported_asset": "We ondersteunen deze actie niet voor dit item. Maak of schakel over naar een portemonnee van een ondersteund activatype."
} }

View file

@ -674,5 +674,6 @@
"etherscan_history": "Historia Etherscanu", "etherscan_history": "Historia Etherscanu",
"template_name": "Nazwa szablonu", "template_name": "Nazwa szablonu",
"change_rep": "Zmień przedstawiciela", "change_rep": "Zmień przedstawiciela",
"change_rep_message": "Czy na pewno chcesz zmienić przedstawiciela?" "change_rep_message": "Czy na pewno chcesz zmienić przedstawiciela?",
"unsupported_asset": "Nie obsługujemy tego działania w przypadku tego zasobu. Utwórz lub przełącz się na portfel obsługiwanego typu aktywów."
} }

View file

@ -673,5 +673,6 @@
"etherscan_history": "história Etherscan", "etherscan_history": "história Etherscan",
"template_name": "Nome do modelo", "template_name": "Nome do modelo",
"change_rep": "Alterar representante", "change_rep": "Alterar representante",
"change_rep_message": "Tem certeza de que deseja alterar os representantes?" "change_rep_message": "Tem certeza de que deseja alterar os representantes?",
"unsupported_asset": "Não oferecemos suporte a esta ação para este recurso. Crie ou mude para uma carteira de um tipo de ativo compatível."
} }

View file

@ -674,5 +674,6 @@
"etherscan_history": "История Эфириума", "etherscan_history": "История Эфириума",
"template_name": "Имя Шаблона", "template_name": "Имя Шаблона",
"change_rep": "Изменить представителя", "change_rep": "Изменить представителя",
"change_rep_message": "Вы уверены, что хотите сменить представителя?" "change_rep_message": "Вы уверены, что хотите сменить представителя?",
"unsupported_asset": "Мы не поддерживаем это действие для этого объекта. Пожалуйста, создайте или переключитесь на кошелек поддерживаемого типа активов."
} }

View file

@ -672,5 +672,6 @@
"etherscan_history": "ประวัติอีเธอร์สแกน", "etherscan_history": "ประวัติอีเธอร์สแกน",
"template_name": "ชื่อแม่แบบ", "template_name": "ชื่อแม่แบบ",
"change_rep": "เปลี่ยนผู้แทน", "change_rep": "เปลี่ยนผู้แทน",
"change_rep_message": "คุณแน่ใจหรือไม่ว่าต้องการเปลี่ยนตัวแทน" "change_rep_message": "คุณแน่ใจหรือไม่ว่าต้องการเปลี่ยนตัวแทน",
"unsupported_asset": "เราไม่สนับสนุนการกระทำนี้สำหรับเนื้อหานี้ โปรดสร้างหรือเปลี่ยนเป็นกระเป๋าเงินประเภทสินทรัพย์ที่รองรับ"
} }

View file

@ -644,7 +644,6 @@
"require_for_adding_contacts": "Kişi eklemek için gerekli", "require_for_adding_contacts": "Kişi eklemek için gerekli",
"require_for_creating_new_wallets": "Yeni cüzdan oluşturmak için gerekli", "require_for_creating_new_wallets": "Yeni cüzdan oluşturmak için gerekli",
"require_for_all_security_and_backup_settings": "Tüm güvenlik ve yedekleme ayarları için iste", "require_for_all_security_and_backup_settings": "Tüm güvenlik ve yedekleme ayarları için iste",
"disable_sell": "Satış işlemini devre dışı bırak",
"available_balance_description": "Bu, cüzdanınızda harcayabileceğiniz miktar. Bu miktar, cüzdanınızdan çekilebilecek toplam bakiyeden daha düşük olabilir, çünkü bazı fonlar henüz kullanılamaz durumda olabilir.", "available_balance_description": "Bu, cüzdanınızda harcayabileceğiniz miktar. Bu miktar, cüzdanınızdan çekilebilecek toplam bakiyeden daha düşük olabilir, çünkü bazı fonlar henüz kullanılamaz durumda olabilir.",
"syncing_wallet_alert_title": "Cüzdanınız senkronize ediliyor", "syncing_wallet_alert_title": "Cüzdanınız senkronize ediliyor",
"syncing_wallet_alert_content": "Bakiyeniz ve işlem listeniz, en üstte \"SENKRONİZE EDİLDİ\" yazana kadar tamamlanmamış olabilir. Daha fazla bilgi edinmek için tıklayın/dokunun.", "syncing_wallet_alert_content": "Bakiyeniz ve işlem listeniz, en üstte \"SENKRONİZE EDİLDİ\" yazana kadar tamamlanmamış olabilir. Daha fazla bilgi edinmek için tıklayın/dokunun.",
@ -673,5 +672,6 @@
"etherscan_history": "Etherscan geçmişi", "etherscan_history": "Etherscan geçmişi",
"template_name": "şablon adı", "template_name": "şablon adı",
"change_rep": "Temsilciyi Değiştir", "change_rep": "Temsilciyi Değiştir",
"change_rep_message": "Temsilcileri değiştirmek istediğinizden emin misiniz?" "change_rep_message": "Temsilcileri değiştirmek istediğinizden emin misiniz?",
"unsupported_asset": "Bu öğe için bu eylemi desteklemiyoruz. Lütfen desteklenen bir varlık türünde bir cüzdan oluşturun veya cüzdana geçiş yapın."
} }

View file

@ -674,5 +674,6 @@
"etherscan_history": "Історія Etherscan", "etherscan_history": "Історія Etherscan",
"template_name": "Назва шаблону", "template_name": "Назва шаблону",
"change_rep": "Зміна представника", "change_rep": "Зміна представника",
"change_rep_message": "Ви впевнені, що хочете змінити представника?" "change_rep_message": "Ви впевнені, що хочете змінити представника?",
"unsupported_asset": "Ми не підтримуємо цю дію для цього ресурсу. Створіть або перейдіть на гаманець підтримуваного типу активів."
} }

View file

@ -666,5 +666,6 @@
"etherscan_history": "ﺦﯾﺭﺎﺗ ﯽﮐ ﻦﯿﮑﺳﺍ ﺮﮭﺘﯾﺍ", "etherscan_history": "ﺦﯾﺭﺎﺗ ﯽﮐ ﻦﯿﮑﺳﺍ ﺮﮭﺘﯾﺍ",
"template_name": "ٹیمپلیٹ کا نام", "template_name": "ٹیمپلیٹ کا نام",
"change_rep": "۔ﮟﯾﺮﮐ ﻞﯾﺪﺒﺗ ﮦﺪﻨﺋﺎﻤﻧ", "change_rep": "۔ﮟﯾﺮﮐ ﻞﯾﺪﺒﺗ ﮦﺪﻨﺋﺎﻤﻧ",
"change_rep_message": "؟ﮟﯿﮨ ﮯﺘﮨﺎﭼ ﺎﻧﺮﮐ ﻞﯾﺪﺒﺗ ﻮﮐ ﮞﻭﺪﻨﺋﺎﻤﻧ ﯽﻌﻗﺍﻭ ﭖﺁ ﺎﯿﮐ" "change_rep_message": "؟ﮟﯿﮨ ﮯﺘﮨﺎﭼ ﺎﻧﺮﮐ ﻞﯾﺪﺒﺗ ﻮﮐ ﮞﻭﺪﻨﺋﺎﻤﻧ ﯽﻌﻗﺍﻭ ﭖﺁ ﺎﯿﮐ",
"unsupported_asset": " ۔ﮟﯾﺮﮐ ﭻﺋﻮﺳ ﺮﭘ ﺱﺍ ﺎﯾ ﮟﯿﺋﺎﻨﺑ ﺱﺮﭘ ﺎﮐ ﻢﺴﻗ ﯽﮐ ﮧﺛﺎﺛﺍ ﮧﺘﻓﺎﯾ ﻥﻭﺎﻌﺗ ﻡﺮﮐ ﮦﺍﺮﺑ ۔ﮟﯿﮨ ﮯﺗﺮﮐ ﮟﯿﮩﻧ ﺖﯾﺎﻤﺣ ﯽﮐ ﯽﺋﺍﻭﺭﺭﺎﮐ ﺱﺍ ﮯﯿﻟ ﮯﮐ ﮧﺛﺎﺛﺍ ﺱﺍ ﻢﮨ"
} }

View file

@ -668,5 +668,6 @@
"etherscan_history": "Etherscan itan", "etherscan_history": "Etherscan itan",
"template_name": "Orukọ Awoṣe", "template_name": "Orukọ Awoṣe",
"change_rep": "Yi Aṣoju", "change_rep": "Yi Aṣoju",
"change_rep_message": "Ṣe o da ọ loju pe o fẹ yi awọn aṣoju pada?" "change_rep_message": "Ṣe o da ọ loju pe o fẹ yi awọn aṣoju pada?",
"unsupported_asset": "A ko ṣe atilẹyin iṣẹ yii fun dukia yii. Jọwọ ṣẹda tabi yipada si apamọwọ iru dukia atilẹyin."
} }

View file

@ -673,5 +673,6 @@
"etherscan_history": "以太扫描历史", "etherscan_history": "以太扫描历史",
"template_name": "模板名称", "template_name": "模板名称",
"change_rep": "变革代表", "change_rep": "变革代表",
"change_rep_message": "您确定要更换代表吗?" "change_rep_message": "您确定要更换代表吗?",
"unsupported_asset": "我们不支持针对该资产采取此操作。请创建或切换到支持的资产类型的钱包。"
} }