mirror of
https://github.com/cake-tech/cake_wallet.git
synced 2024-12-23 20:19:25 +00:00
fixes, start adding ui for PoW
This commit is contained in:
parent
ca03c846c2
commit
32554b4cc8
38 changed files with 357 additions and 283 deletions
|
@ -1,2 +1,4 @@
|
||||||
-
|
-
|
||||||
uri: rpc.nano.to
|
uri: rpc.nano.to:443
|
||||||
|
-
|
||||||
|
uri: node.perish.co:9076
|
6
assets/nano_pow_server_list.yml
Normal file
6
assets/nano_pow_server_list.yml
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
-
|
||||||
|
uri: rpc.nano.to:443
|
||||||
|
-
|
||||||
|
uri: workers.perish.co
|
||||||
|
-
|
||||||
|
uri: worker.nanoriver.cc:443
|
|
@ -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');
|
||||||
|
|
|
@ -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();
|
||||||
|
|
||||||
|
|
|
@ -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>()));
|
||||||
|
|
|
@ -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());
|
||||||
},
|
},
|
||||||
|
|
|
@ -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();
|
||||||
|
|
46
lib/entities/pow_node_list.dart
Normal file
46
lib/entities/pow_node_list.dart
Normal 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);
|
||||||
|
}
|
|
@ -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(
|
||||||
|
|
|
@ -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!)),
|
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
|
@ -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),
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
|
@ -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 =>
|
||||||
|
|
|
@ -670,5 +670,6 @@
|
||||||
"template_name": "اسم القالب",
|
"template_name": "اسم القالب",
|
||||||
"change_rep": "ﺏﻭﺪﻨﻣ ﺮﻴﻴﻐﺗ",
|
"change_rep": "ﺏﻭﺪﻨﻣ ﺮﻴﻴﻐﺗ",
|
||||||
"change_rep_message": "؟ﻦﻴﻠﺜﻤﻤﻟﺍ ﺮﻴﻴﻐﺗ ﺪﻳﺮﺗ ﻚﻧﺃ ﺪﻛﺄﺘﻣ ﺖﻧﺃ ﻞﻫ",
|
"change_rep_message": "؟ﻦﻴﻠﺜﻤﻤﻟﺍ ﺮﻴﻴﻐﺗ ﺪﻳﺮﺗ ﻚﻧﺃ ﺪﻛﺄﺘﻣ ﺖﻧﺃ ﻞﻫ",
|
||||||
"manage_nodes": "ﺪﻘﻌﻟﺍ ﺓﺭﺍﺩﺇ"
|
"manage_nodes": "ﺪﻘﻌﻟﺍ ﺓﺭﺍﺩﺇ",
|
||||||
|
"unsupported_asset": " .ﻡﻮﻋﺪﻣ ﻞﺻﺃ ﻉﻮﻧ ﻦﻣ ﺔﻈﻔﺤﻣ ﻰﻟﺇ ﻞﻳﺪﺒﺘﻟﺍ ﻭﺃ ءﺎﺸﻧﺇ ﻰﺟﺮﻳ .ﻞﺻﻷﺍ ﺍﺬﻬﻟ ءﺍﺮﺟﻹﺍ ﺍﺬﻫ ﻢﻋﺪﻧ ﻻ ﻦﺤﻧ"
|
||||||
}
|
}
|
||||||
|
|
|
@ -666,5 +666,6 @@
|
||||||
"template_name": "Име на шаблон",
|
"template_name": "Име на шаблон",
|
||||||
"change_rep": "Смяна на представител",
|
"change_rep": "Смяна на представител",
|
||||||
"change_rep_message": "Сигурни ли сте, че искате да смените представителите?",
|
"change_rep_message": "Сигурни ли сте, че искате да смените представителите?",
|
||||||
"manage_nodes": "Управление на възли"
|
"manage_nodes": "Управление на възли",
|
||||||
|
"unsupported_asset": "Не поддържаме това действие за този актив. Моля, създайте или преминете към портфейл от поддържан тип актив."
|
||||||
}
|
}
|
||||||
|
|
|
@ -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."
|
||||||
}
|
}
|
||||||
|
|
|
@ -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."
|
||||||
}
|
}
|
||||||
|
|
|
@ -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."
|
||||||
}
|
}
|
||||||
|
|
|
@ -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."
|
||||||
}
|
}
|
||||||
|
|
|
@ -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."
|
||||||
}
|
}
|
||||||
|
|
|
@ -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."
|
||||||
}
|
}
|
||||||
|
|
|
@ -674,5 +674,6 @@
|
||||||
"etherscan_history": "इथरस्कैन इतिहास",
|
"etherscan_history": "इथरस्कैन इतिहास",
|
||||||
"template_name": "टेम्पलेट नाम",
|
"template_name": "टेम्पलेट नाम",
|
||||||
"change_rep": "प्रतिनिधि बदलें",
|
"change_rep": "प्रतिनिधि बदलें",
|
||||||
"change_rep_message": "क्या आप वाकई प्रतिनिधियों को बदलना चाहते हैं?"
|
"change_rep_message": "क्या आप वाकई प्रतिनिधियों को बदलना चाहते हैं?",
|
||||||
|
"unsupported_asset": "हम इस संपत्ति के लिए इस कार्रवाई का समर्थन नहीं करते हैं. कृपया समर्थित परिसंपत्ति प्रकार का वॉलेट बनाएं या उस पर स्विच करें।"
|
||||||
}
|
}
|
||||||
|
|
|
@ -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."
|
||||||
}
|
}
|
||||||
|
|
|
@ -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."
|
||||||
}
|
}
|
||||||
|
|
|
@ -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."
|
||||||
}
|
}
|
||||||
|
|
|
@ -674,5 +674,6 @@
|
||||||
"etherscan_history": "イーサスキャンの歴史",
|
"etherscan_history": "イーサスキャンの歴史",
|
||||||
"template_name": "テンプレート名",
|
"template_name": "テンプレート名",
|
||||||
"change_rep": "代表者の変更",
|
"change_rep": "代表者の変更",
|
||||||
"change_rep_message": "代表者を変更してもよろしいですか?"
|
"change_rep_message": "代表者を変更してもよろしいですか?",
|
||||||
|
"unsupported_asset": "このアセットに対するこのアクションはサポートされていません。サポートされているアセットタイプのウォレットを作成するか、ウォレットに切り替えてください。"
|
||||||
}
|
}
|
||||||
|
|
|
@ -674,6 +674,5 @@
|
||||||
"manage_nodes": "노드 관리",
|
"manage_nodes": "노드 관리",
|
||||||
"etherscan_history": "이더스캔 역사",
|
"etherscan_history": "이더스캔 역사",
|
||||||
"template_name": "템플릿 이름",
|
"template_name": "템플릿 이름",
|
||||||
"change_rep": "대표자 변경",
|
"unsupported_asset": "이 저작물에 대해 이 작업을 지원하지 않습니다. 지원되는 자산 유형의 지갑을 생성하거나 전환하십시오."
|
||||||
"change_rep_message": "담당자를 변경하시겠습니까?"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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": "ဤပိုင်ဆိုင်မှုအတွက် ဤလုပ်ဆောင်ချက်ကို ကျွန်ုပ်တို့ မပံ့ပိုးပါ။ ကျေးဇူးပြု၍ ပံ့ပိုးပေးထားသော ပိုင်ဆိုင်မှုအမျိုးအစား၏ ပိုက်ဆံအိတ်ကို ဖန်တီးပါ သို့မဟုတ် ပြောင်းပါ။"
|
||||||
}
|
}
|
||||||
|
|
|
@ -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."
|
||||||
}
|
}
|
||||||
|
|
|
@ -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."
|
||||||
}
|
}
|
||||||
|
|
|
@ -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."
|
||||||
}
|
}
|
||||||
|
|
|
@ -674,5 +674,6 @@
|
||||||
"etherscan_history": "История Эфириума",
|
"etherscan_history": "История Эфириума",
|
||||||
"template_name": "Имя Шаблона",
|
"template_name": "Имя Шаблона",
|
||||||
"change_rep": "Изменить представителя",
|
"change_rep": "Изменить представителя",
|
||||||
"change_rep_message": "Вы уверены, что хотите сменить представителя?"
|
"change_rep_message": "Вы уверены, что хотите сменить представителя?",
|
||||||
|
"unsupported_asset": "Мы не поддерживаем это действие для этого объекта. Пожалуйста, создайте или переключитесь на кошелек поддерживаемого типа активов."
|
||||||
}
|
}
|
||||||
|
|
|
@ -672,5 +672,6 @@
|
||||||
"etherscan_history": "ประวัติอีเธอร์สแกน",
|
"etherscan_history": "ประวัติอีเธอร์สแกน",
|
||||||
"template_name": "ชื่อแม่แบบ",
|
"template_name": "ชื่อแม่แบบ",
|
||||||
"change_rep": "เปลี่ยนผู้แทน",
|
"change_rep": "เปลี่ยนผู้แทน",
|
||||||
"change_rep_message": "คุณแน่ใจหรือไม่ว่าต้องการเปลี่ยนตัวแทน"
|
"change_rep_message": "คุณแน่ใจหรือไม่ว่าต้องการเปลี่ยนตัวแทน",
|
||||||
|
"unsupported_asset": "เราไม่สนับสนุนการกระทำนี้สำหรับเนื้อหานี้ โปรดสร้างหรือเปลี่ยนเป็นกระเป๋าเงินประเภทสินทรัพย์ที่รองรับ"
|
||||||
}
|
}
|
||||||
|
|
|
@ -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."
|
||||||
}
|
}
|
||||||
|
|
|
@ -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": "Ми не підтримуємо цю дію для цього ресурсу. Створіть або перейдіть на гаманець підтримуваного типу активів."
|
||||||
}
|
}
|
||||||
|
|
|
@ -666,5 +666,6 @@
|
||||||
"etherscan_history": "ﺦﯾﺭﺎﺗ ﯽﮐ ﻦﯿﮑﺳﺍ ﺮﮭﺘﯾﺍ",
|
"etherscan_history": "ﺦﯾﺭﺎﺗ ﯽﮐ ﻦﯿﮑﺳﺍ ﺮﮭﺘﯾﺍ",
|
||||||
"template_name": "ٹیمپلیٹ کا نام",
|
"template_name": "ٹیمپلیٹ کا نام",
|
||||||
"change_rep": "۔ﮟﯾﺮﮐ ﻞﯾﺪﺒﺗ ﮦﺪﻨﺋﺎﻤﻧ",
|
"change_rep": "۔ﮟﯾﺮﮐ ﻞﯾﺪﺒﺗ ﮦﺪﻨﺋﺎﻤﻧ",
|
||||||
"change_rep_message": "؟ﮟﯿﮨ ﮯﺘﮨﺎﭼ ﺎﻧﺮﮐ ﻞﯾﺪﺒﺗ ﻮﮐ ﮞﻭﺪﻨﺋﺎﻤﻧ ﯽﻌﻗﺍﻭ ﭖﺁ ﺎﯿﮐ"
|
"change_rep_message": "؟ﮟﯿﮨ ﮯﺘﮨﺎﭼ ﺎﻧﺮﮐ ﻞﯾﺪﺒﺗ ﻮﮐ ﮞﻭﺪﻨﺋﺎﻤﻧ ﯽﻌﻗﺍﻭ ﭖﺁ ﺎﯿﮐ",
|
||||||
|
"unsupported_asset": " ۔ﮟﯾﺮﮐ ﭻﺋﻮﺳ ﺮﭘ ﺱﺍ ﺎﯾ ﮟﯿﺋﺎﻨﺑ ﺱﺮﭘ ﺎﮐ ﻢﺴﻗ ﯽﮐ ﮧﺛﺎﺛﺍ ﮧﺘﻓﺎﯾ ﻥﻭﺎﻌﺗ ﻡﺮﮐ ﮦﺍﺮﺑ ۔ﮟﯿﮨ ﮯﺗﺮﮐ ﮟﯿﮩﻧ ﺖﯾﺎﻤﺣ ﯽﮐ ﯽﺋﺍﻭﺭﺭﺎﮐ ﺱﺍ ﮯﯿﻟ ﮯﮐ ﮧﺛﺎﺛﺍ ﺱﺍ ﻢﮨ"
|
||||||
}
|
}
|
||||||
|
|
|
@ -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."
|
||||||
}
|
}
|
||||||
|
|
|
@ -673,5 +673,6 @@
|
||||||
"etherscan_history": "以太扫描历史",
|
"etherscan_history": "以太扫描历史",
|
||||||
"template_name": "模板名称",
|
"template_name": "模板名称",
|
||||||
"change_rep": "变革代表",
|
"change_rep": "变革代表",
|
||||||
"change_rep_message": "您确定要更换代表吗?"
|
"change_rep_message": "您确定要更换代表吗?",
|
||||||
|
"unsupported_asset": "我们不支持针对该资产采取此操作。请创建或切换到支持的资产类型的钱包。"
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue