mirror of
https://github.com/Such-Software/hash-wallet.git
synced 2026-10-26 06:08:40 +01:00
feat: redesign for CurrencyPicker and FiatPicker, introduce recents and currency groupings (#3248)
* Redesign for CurrencyPicker and FiatPicker, introduce recents and currency groupings * chore: cleanup * refactor: switch recents to previously completed trades, specify stables to be displayed, fix scrollable and adjust badge * refactor: switch recents to previously completed trades, specify stables to be displayed, fix scrollable, adjust badge, add fiat and multinetwork currency pickers to buy and sell flows * fresh set of changes and fixes for new currency picker flow * add chain label to items on search and smooth pop * add chain pill and label to xstocks * properly filter search results * shorten chain pill name for BSC tokens * Review fixes * cleanups * safe pop --------- Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
This commit is contained in:
co-authored by
Omar Hatem
parent
4365462279
commit
8af85351e9
@@ -1,4 +1,5 @@
|
||||
import 'package:cw_core/currency.dart';
|
||||
import 'package:cw_core/currency_groups.dart';
|
||||
import 'package:cw_core/enumerable_item.dart';
|
||||
import 'package:collection/collection.dart';
|
||||
import 'package:cw_core/format_fixed.dart';
|
||||
@@ -17,6 +18,7 @@ class CryptoCurrency extends EnumerableItem<int> with Serializable<int> implemen
|
||||
this.chainIconPath,
|
||||
this.enabled = false,
|
||||
this.isPotentialScam = false,
|
||||
this.groups = const {},
|
||||
}) : super(title: title, raw: raw);
|
||||
|
||||
final String name;
|
||||
@@ -29,6 +31,7 @@ class CryptoCurrency extends EnumerableItem<int> with Serializable<int> implemen
|
||||
final int decimals;
|
||||
final bool enabled;
|
||||
final bool isPotentialScam;
|
||||
final Set<String> groups;
|
||||
|
||||
set enabled(bool value) => this.enabled = value;
|
||||
|
||||
@@ -154,15 +157,15 @@ class CryptoCurrency extends EnumerableItem<int> with Serializable<int> implemen
|
||||
static const bch = CryptoCurrency(title: 'BCH', fullName: 'Bitcoin Cash', raw: 2, name: 'bch', iconPath: 'assets/new-ui/crypto_full_icons/bitcoin-cash.svg', decimals: 8, flatIconPath: "assets/new-ui/balance_card_icons/bitcoin_cash.svg");
|
||||
static const bnb = CryptoCurrency(title: 'BNB', tag: 'BSC', fullName: 'BNB', raw: 3, name: 'bnb', iconPath: 'assets/new-ui/crypto_full_icons/bnb.svg', decimals: 18, flatIconPath: "assets/new-ui/balance_card_icons/bnb.svg", chainIconPath: "assets/new-ui/chain_badges/bnb.svg");
|
||||
static const btc = CryptoCurrency(title: 'BTC', fullName: 'Bitcoin', raw: 4, name: 'btc', iconPath: 'assets/new-ui/crypto_full_icons/bitcoin.svg' ,decimals: 8, flatIconPath: "assets/new-ui/balance_card_icons/bitcoin.svg");
|
||||
static const dai = CryptoCurrency(title: 'DAI', tag: 'ETH', fullName: 'Dai', raw: 5, name: 'dai', iconPath: 'assets/new-ui/crypto_full_icons/dai.svg', decimals: 18);
|
||||
static const dai = CryptoCurrency(title: 'DAI', tag: 'ETH', fullName: 'Dai', raw: 5, name: 'dai', iconPath: 'assets/new-ui/crypto_full_icons/dai.svg', decimals: 18, groups: const {CurrencyGroups.stablecoin});
|
||||
static const dash = CryptoCurrency(title: 'DASH', fullName: 'Dash', raw: 6, name: 'dash', iconPath: 'assets/images/dash_icon.png', decimals: 8);
|
||||
static const eos = CryptoCurrency(title: 'EOS', fullName: 'EOS', raw: 7, name: 'eos', iconPath: 'assets/images/eos_icon.png', decimals: 4);
|
||||
static const eth = CryptoCurrency(title: 'ETH', fullName: 'Ethereum', raw: 8, name: 'eth', iconPath: 'assets/new-ui/crypto_full_icons/ethereum.svg', decimals: 18, flatIconPath: "assets/new-ui/balance_card_icons/ethereum.svg", chainIconPath: "assets/new-ui/chain_badges/ethereum.svg");
|
||||
static const ltc = CryptoCurrency(title: 'LTC', fullName: 'Litecoin', raw: 9, name: 'ltc', iconPath: 'assets/new-ui/crypto_full_icons/litecoin.svg', decimals: 8, flatIconPath: "assets/new-ui/balance_card_icons/litecoin.svg", chainIconPath: "assets/new-ui/chain_badges/mweb.svg");
|
||||
static const nano = CryptoCurrency(title: 'XNO', fullName: 'Nano', raw: 10, name: 'xno', iconPath: 'assets/new-ui/crypto_full_icons/nano.svg', decimals: 30, flatIconPath: "assets/new-ui/balance_card_icons/nano.svg");
|
||||
static const trx = CryptoCurrency(title: 'TRX', fullName: 'TRON', raw: 11, name: 'trx', iconPath: 'assets/new-ui/crypto_full_icons/tron.svg', decimals: 6, flatIconPath: "assets/new-ui/balance_card_icons/tron.svg", chainIconPath: "assets/new-ui/chain_badges/tron.svg");
|
||||
static const usdt = CryptoCurrency(title: 'USDT', tag: 'OMNI', fullName: 'Tether', raw: 12, name: 'usdt', iconPath: 'assets/new-ui/crypto_full_icons/usdt.svg', decimals: 6);
|
||||
static const usdterc20 = CryptoCurrency(title: 'USDT', tag: 'ETH', fullName: 'Tether', raw: 13, name: 'usdterc20', iconPath: 'assets/new-ui/crypto_full_icons/usdt.svg', decimals: 6);
|
||||
static const usdt = CryptoCurrency(title: 'USDT', tag: 'OMNI', fullName: 'Tether', raw: 12, name: 'usdt', iconPath: 'assets/new-ui/crypto_full_icons/usdt.svg', decimals: 6, groups: const {CurrencyGroups.stablecoin});
|
||||
static const usdterc20 = CryptoCurrency(title: 'USDT', tag: 'ETH', fullName: 'Tether', raw: 13, name: 'usdterc20', iconPath: 'assets/new-ui/crypto_full_icons/usdt.svg', decimals: 6, groups: const {CurrencyGroups.stablecoin});
|
||||
static const xlm = CryptoCurrency(title: 'XLM', fullName: 'Stellar', raw: 14, name: 'xlm', iconPath: 'assets/images/xlm_icon.png', decimals: 7);
|
||||
static const xrp = CryptoCurrency(title: 'XRP', fullName: 'Ripple', raw: 15, name: 'xrp', iconPath: 'assets/images/xrp_icon.png', decimals: 6);
|
||||
static const xhv = CryptoCurrency(title: 'XHV', fullName: 'Haven Protocol', raw: 16, name: 'xhv', iconPath: 'assets/images/xhv_logo.png', decimals: 12);
|
||||
@@ -187,18 +190,18 @@ class CryptoCurrency extends EnumerableItem<int> with Serializable<int> implemen
|
||||
static const bttc = CryptoCurrency(title: 'BTTC', tag: 'TRX', fullName: 'BitTorrent-NEW', raw: 33, name: 'bttc', iconPath: 'assets/images/btt_icon.png', decimals: 18);
|
||||
static const doge = CryptoCurrency(title: 'DOGE', fullName: 'Dogecoin', raw: 34, name: 'doge', iconPath: 'assets/new-ui/crypto_full_icons/dogecoin.svg', decimals: 8, flatIconPath: "assets/new-ui/balance_card_icons/dogecoin.svg");
|
||||
static const firo = CryptoCurrency(title: 'FIRO', raw: 35, name: 'firo', iconPath: 'assets/images/firo_icon.png', decimals: 8);
|
||||
static const usdttrc20 = CryptoCurrency(title: 'USDT', tag: 'TRX', fullName: 'Tether', raw: 36, name: 'usdttrc20', iconPath: 'assets/new-ui/crypto_full_icons/usdt.svg', decimals: 6);
|
||||
static const usdttrc20 = CryptoCurrency(title: 'USDT', tag: 'TRX', fullName: 'Tether', raw: 36, name: 'usdttrc20', iconPath: 'assets/new-ui/crypto_full_icons/usdt.svg', decimals: 6, groups: const {CurrencyGroups.stablecoin});
|
||||
static const hbar = CryptoCurrency(title: 'HBAR', fullName: 'Hedera', raw: 37, name: 'hbar', iconPath: 'assets/images/hbar_icon.png', decimals: 8);
|
||||
static const sc = CryptoCurrency(title: 'SC', fullName: 'Siacoin', raw: 38, name: 'sc', iconPath: 'assets/images/sc_icon.png', decimals: 16);
|
||||
static const sol = CryptoCurrency(title: 'SOL', fullName: 'Solana', raw: 39, name: 'sol', iconPath: 'assets/new-ui/crypto_full_icons/solana.svg', decimals: 9, flatIconPath: "assets/new-ui/balance_card_icons/solana.svg", chainIconPath: "assets/new-ui/chain_badges/solana.svg");
|
||||
static const usdc = CryptoCurrency(title: 'USDC', tag: 'ETH', fullName: 'USDC', raw: 40, name: 'usdc', iconPath: 'assets/new-ui/crypto_full_icons/usdc.svg', decimals: 6);
|
||||
static const usdcsol = CryptoCurrency(title: 'USDC', tag: 'SOL', fullName: 'USDC Coin', raw: 41, name: 'usdcsol', iconPath: 'assets/new-ui/crypto_full_icons/usdc.svg', decimals: 6);
|
||||
static const usdc = CryptoCurrency(title: 'USDC', tag: 'ETH', fullName: 'USDC', raw: 40, name: 'usdc', iconPath: 'assets/new-ui/crypto_full_icons/usdc.svg', decimals: 6, groups: const {CurrencyGroups.stablecoin});
|
||||
static const usdcsol = CryptoCurrency(title: 'USDC', tag: 'SOL', fullName: 'USDC Coin', raw: 41, name: 'usdcsol', iconPath: 'assets/new-ui/crypto_full_icons/usdc.svg', decimals: 6, groups: const {CurrencyGroups.stablecoin});
|
||||
static const zaddr = CryptoCurrency(title: 'ZZEC', tag: 'ZEC', fullName: 'Shielded Zcash', raw: 42, name: 'zaddr', iconPath: 'assets/new-ui/crypto_full_icons/zcash.svg', decimals: 8);
|
||||
static const tzec = CryptoCurrency(title: 'tZEC', tag: 'ZEC', fullName: 'Transparent Zcash', raw: 43, name: 'zec', iconPath: 'assets/new-ui/crypto_full_icons/zcash.svg', decimals: 8);
|
||||
static const zen = CryptoCurrency(title: 'ZEN', fullName: 'Horizen', raw: 44, name: 'zen', iconPath: 'assets/images/zen_icon.png', decimals: 8);
|
||||
static const xvg = CryptoCurrency(title: 'XVG', fullName: 'Verge', raw: 45, name: 'xvg', iconPath: 'assets/images/xvg_icon.png', decimals: 8);
|
||||
|
||||
static const usdcpoly = CryptoCurrency(title: 'USDC', tag: 'POL', fullName: 'USDC', raw: 46, name: 'usdcpoly', iconPath: 'assets/new-ui/crypto_full_icons/usdc.svg', decimals: 6);
|
||||
static const usdcpoly = CryptoCurrency(title: 'USDC', tag: 'POL', fullName: 'USDC', raw: 46, name: 'usdcpoly', iconPath: 'assets/new-ui/crypto_full_icons/usdc.svg', decimals: 6, groups: const {CurrencyGroups.stablecoin});
|
||||
static const dcr = CryptoCurrency(title: 'DCR', fullName: 'Decred', raw: 47, name: 'dcr', iconPath: 'assets/new-ui/crypto_full_icons/decred.svg', decimals: 8, flatIconPath: "assets/new-ui/balance_card_icons/decred.svg");
|
||||
static const kmd = CryptoCurrency(title: 'KMD', fullName: 'Komodo', raw: 48, name: 'kmd', iconPath: 'assets/images/kmd_icon.png', decimals: 8);
|
||||
static const mana = CryptoCurrency(title: 'MANA', tag: 'ETH', fullName: 'Decentraland', raw: 49, name: 'mana', iconPath: 'assets/images/mana_icon.png', decimals: 18);
|
||||
@@ -239,29 +242,29 @@ class CryptoCurrency extends EnumerableItem<int> with Serializable<int> implemen
|
||||
static const dydx = CryptoCurrency(title: 'DYDX', tag: 'ETH', fullName: 'dYdX', raw: 84, name: 'dydx', iconPath: 'assets/images/dydx_icon.png', decimals: 18);
|
||||
static const steth = CryptoCurrency(title: 'STETH', tag: 'ETH', fullName: 'Lido Staked Ethereum', raw: 85, name: 'steth', iconPath: 'assets/new-ui/crypto_full_icons/ethereum.svg', decimals: 18);
|
||||
static const banano = CryptoCurrency(title: 'BAN', fullName: 'Banano', raw: 86, name: 'banano', iconPath: 'assets/images/nano_icon.png', decimals: 29,flatIconPath: "assets/new-ui/balance_card_icons/nano.svg");
|
||||
static const usdtPoly = CryptoCurrency(title: 'USDT', tag: 'POL', fullName: 'Tether (PoS)', raw: 87, name: 'usdtpoly', iconPath: 'assets/new-ui/crypto_full_icons/usdt.svg', decimals: 6);
|
||||
static const usdtPoly = CryptoCurrency(title: 'USDT', tag: 'POL', fullName: 'Tether (PoS)', raw: 87, name: 'usdtpoly', iconPath: 'assets/new-ui/crypto_full_icons/usdt.svg', decimals: 6, groups: const {CurrencyGroups.stablecoin});
|
||||
static const usdcEPoly = CryptoCurrency(title: 'USDC.E', tag: 'POL', fullName: 'USDC (PoS)', raw: 88, name: 'usdcepoly', iconPath: 'assets/new-ui/crypto_full_icons/usdc.svg', decimals: 6);
|
||||
static const kaspa = CryptoCurrency(title: 'KAS', fullName: 'Kaspa', raw: 89, name: 'kas', iconPath: 'assets/images/kaspa_icon.png', decimals: 8);
|
||||
static const digibyte = CryptoCurrency(title: 'DGB', fullName: 'DigiByte', raw: 90, name: 'dgb', iconPath: 'assets/images/digibyte.png', decimals: 8);
|
||||
static const usdtSol = CryptoCurrency(title: 'USDT', tag: 'SOL', fullName: 'Tether', raw: 91, name: 'usdtsol', iconPath: 'assets/new-ui/crypto_full_icons/usdt.svg', decimals: 6);
|
||||
static const usdcTrc20 = CryptoCurrency(title: 'USDC', tag: 'TRX', fullName: 'USDC Coin', raw: 92, name: 'usdctrc20', iconPath: 'assets/new-ui/crypto_full_icons/usdc.svg', decimals: 6);
|
||||
static const usdtSol = CryptoCurrency(title: 'USDT', tag: 'SOL', fullName: 'Tether', raw: 91, name: 'usdtsol', iconPath: 'assets/new-ui/crypto_full_icons/usdt.svg', decimals: 6, groups: const {CurrencyGroups.stablecoin});
|
||||
static const usdcTrc20 = CryptoCurrency(title: 'USDC', tag: 'TRX', fullName: 'USDC Coin', raw: 92, name: 'usdctrc20', iconPath: 'assets/new-ui/crypto_full_icons/usdc.svg', decimals: 6, groups: const {CurrencyGroups.stablecoin});
|
||||
static const tbtc = CryptoCurrency(title: 'tBTC', fullName: 'Testnet Bitcoin', raw: 93, name: 'tbtc', iconPath: 'assets/images/tbtc.png', decimals: 8);
|
||||
static const wow = CryptoCurrency(title: 'WOW', fullName: 'Wownero', raw: 94, name: 'wow', iconPath: 'assets/images/crypto/wownero.svg', decimals: 11);
|
||||
static const ton = CryptoCurrency(title: 'TON', fullName: 'Toncoin', raw: 95, name: 'ton', iconPath: 'assets/new-ui/crypto_full_icons/ton.svg', decimals: 8);
|
||||
static const zano = CryptoCurrency(title: 'ZANO', tag: 'ZANO', fullName: 'Zano', raw: 96, name: 'zano', iconPath: 'assets/new-ui/crypto_full_icons/zano.svg', decimals: 12, flatIconPath: "assets/new-ui/balance_card_icons/zano.svg", chainIconPath: "assets/new-ui/chain_badges/zano.svg");
|
||||
static const flip = CryptoCurrency(title: 'FLIP', tag: 'ETH', fullName: 'Chainflip', raw: 97, name: 'flip', iconPath: 'assets/images/flip_icon.png', decimals: 18);
|
||||
static const deuro = CryptoCurrency(title: 'DEURO', tag: 'ETH', fullName: 'Decentralized Euro', raw: 98, name: 'deuro', iconPath: 'assets/images/deuro_icon.png',decimals: 18);
|
||||
static const usdtbsc = CryptoCurrency(title: 'USDT', tag: 'BSC', fullName: 'USDT Binance coin', raw: 99, name: 'usdtbsc', iconPath: 'assets/new-ui/crypto_full_icons/usdt.svg', decimals: 18);
|
||||
static const deuro = CryptoCurrency(title: 'DEURO', tag: 'ETH', fullName: 'Decentralized Euro', raw: 98, name: 'deuro', iconPath: 'assets/images/deuro_icon.png',decimals: 18, groups: const {CurrencyGroups.stablecoin});
|
||||
static const usdtbsc = CryptoCurrency(title: 'USDT', tag: 'BSC', fullName: 'USDT Binance coin', raw: 99, name: 'usdtbsc', iconPath: 'assets/new-ui/crypto_full_icons/usdt.svg', decimals: 18, groups: const {CurrencyGroups.stablecoin});
|
||||
static const ndeps = CryptoCurrency(title: 'NDEPS', tag: 'ETH', fullName: 'Native Decentralized Euro Protocol Share', raw: 100, name: 'ndeps', iconPath: 'assets/images/ndeps_icon.png', decimals: 18);
|
||||
static const deps = CryptoCurrency(title: 'DEPS', tag: 'ETH', fullName: 'Decentralized Euro Protocol Share', raw: 101, name: 'deps', iconPath: 'assets/images/deps_icon.png', decimals: 18);
|
||||
static const kbtc = CryptoCurrency(title: 'KBTC', tag: 'ETH', fullName: 'Kraken Wrapped Bitcoin', raw: 102, name: 'kbtc', iconPath: 'assets/images/kbtc_icon.png', decimals: 8);
|
||||
static const cbbtc = CryptoCurrency(title: 'CBBTC', tag: 'ETH', fullName: 'Coinbase Wrapped BTC', raw: 103, name: 'cbbtc', iconPath: 'assets/images/cbbtc_icon.png', decimals: 8);
|
||||
static const baseEth = CryptoCurrency(title: 'ETH', tag: 'BASE', fullName: 'Ethereum', raw: 104, name: 'baseth', iconPath: 'assets/new-ui/crypto_full_icons/base.svg', decimals: 18, flatIconPath: "assets/new-ui/balance_card_icons/base.svg", chainIconPath: "assets/new-ui/chain_badges/base.svg");
|
||||
static const baseEth = CryptoCurrency(title: 'ETH', tag: 'BASE', fullName: 'Ethereum', raw: 104, name: 'baseth', iconPath: 'assets/new-ui/crypto_full_icons/ethereum.svg', decimals: 18, flatIconPath: "assets/new-ui/balance_card_icons/base.svg", chainIconPath: "assets/new-ui/chain_badges/base.svg");
|
||||
static const usde = CryptoCurrency(title: 'USDE', tag: 'BASE', fullName: 'Ethena USDE', raw: 105, name: 'usde', iconPath: 'assets/new-ui/crypto_full_icons/usde.svg', decimals: 18);
|
||||
static const arbEth = CryptoCurrency(title: 'ETH', tag: 'ARB', fullName: 'Ethereum', raw: 106, name: 'arbeth', iconPath: 'assets/new-ui/crypto_full_icons/ethereum.svg', decimals: 18, flatIconPath: "assets/new-ui/balance_card_icons/arbitrum.svg");
|
||||
static const arbEth = CryptoCurrency(title: 'ETH', tag: 'ARB', fullName: 'Ethereum', raw: 106, name: 'arbeth', iconPath: 'assets/new-ui/crypto_full_icons/ethereum.svg', decimals: 18, flatIconPath: "assets/new-ui/balance_card_icons/arbitrum.svg", chainIconPath: "assets/new-ui/chain_badges/arbitrum.svg");
|
||||
static const zec = CryptoCurrency(title: 'ZEC', fullName: 'Zcash', raw: 107, name: 'zec', iconPath: 'assets/new-ui/crypto_full_icons/zcash.svg', decimals: 8,flatIconPath: "assets/new-ui/balance_card_icons/zcash.svg");
|
||||
static const usdcArb = CryptoCurrency(title: 'USDC', tag: 'ARB', fullName: 'USDC Coin', raw: 108, name: 'usdcarb', iconPath: 'assets/new-ui/crypto_full_icons/usdc.svg', decimals: 6);
|
||||
static const usdtArb = CryptoCurrency(title: 'USDT', tag: 'ARB', fullName: 'USDT Tether', raw: 109, name: 'usdtarb', iconPath: 'assets/new-ui/crypto_full_icons/usdt.svg', decimals: 6);
|
||||
static const usdcArb = CryptoCurrency(title: 'USDC', tag: 'ARB', fullName: 'USDC Coin', raw: 108, name: 'usdcarb', iconPath: 'assets/new-ui/crypto_full_icons/usdc.svg', decimals: 6, groups: const {CurrencyGroups.stablecoin});
|
||||
static const usdtArb = CryptoCurrency(title: 'USDT', tag: 'ARB', fullName: 'USDT Tether', raw: 109, name: 'usdtarb', iconPath: 'assets/new-ui/crypto_full_icons/usdt.svg', decimals: 6, groups: const {CurrencyGroups.stablecoin});
|
||||
static const ltcmweb = CryptoCurrency(title: 'LTC', fullName: 'Litecoin MWeb', raw: 110, name: 'ltcmweb', iconPath: 'assets/new-ui/crypto_full_icons/litecoin.svg', decimals: 8);
|
||||
|
||||
static final Map<int, CryptoCurrency> _rawCurrencyMap =
|
||||
@@ -409,6 +412,7 @@ class CryptoCurrency extends EnumerableItem<int> with Serializable<int> implemen
|
||||
int? decimals,
|
||||
bool? enabled,
|
||||
bool? isPotentialScam,
|
||||
Set<String>? groups,
|
||||
}) =>
|
||||
CryptoCurrency(
|
||||
title: title ?? this.title,
|
||||
@@ -420,6 +424,7 @@ class CryptoCurrency extends EnumerableItem<int> with Serializable<int> implemen
|
||||
decimals: decimals ?? this.decimals,
|
||||
enabled: enabled ?? this.enabled,
|
||||
isPotentialScam: isPotentialScam ?? this.isPotentialScam,
|
||||
groups: groups ?? this.groups,
|
||||
);
|
||||
|
||||
@override
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
abstract class CurrencyGroups {
|
||||
static const stablecoin = 'stablecoin';
|
||||
static const tokenizedStock = 'tokenized_stock';
|
||||
}
|
||||
@@ -47,6 +47,7 @@ class SPLToken extends CryptoCurrency with HiveObjectMixin {
|
||||
this.tag = 'SOL',
|
||||
bool enabled = true,
|
||||
this.isPotentialScam = false,
|
||||
Set<String> groups = const {},
|
||||
}) : _enabled = enabled,
|
||||
super(
|
||||
name: mint.toLowerCase(),
|
||||
@@ -56,6 +57,7 @@ class SPLToken extends CryptoCurrency with HiveObjectMixin {
|
||||
iconPath: iconPath,
|
||||
decimals: decimal,
|
||||
isPotentialScam: isPotentialScam,
|
||||
groups: groups,
|
||||
);
|
||||
|
||||
factory SPLToken.fromMetadata({
|
||||
@@ -101,6 +103,7 @@ class SPLToken extends CryptoCurrency with HiveObjectMixin {
|
||||
tag: other.tag,
|
||||
iconPath: icon,
|
||||
isPotentialScam: other.isPotentialScam,
|
||||
groups: other.groups,
|
||||
);
|
||||
|
||||
static const typeId = SPL_TOKEN_TYPE_ID;
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import 'package:cw_core/crypto_currency.dart';
|
||||
import 'package:cw_core/hive_type_ids.dart';
|
||||
import 'package:cw_core/utils/print_verbose.dart';
|
||||
import 'package:hive/hive.dart';
|
||||
|
||||
part 'wallet_type.g.dart';
|
||||
@@ -332,13 +333,18 @@ WalletType? _cryptoCurrencyToWalletType(CryptoCurrency type) {
|
||||
}
|
||||
|
||||
WalletType? cryptoCurrencyOrTokenToWalletType(CryptoCurrency type) {
|
||||
try {
|
||||
if(type.tag == CryptoCurrency.bnb.tag) {
|
||||
return _cryptoCurrencyToWalletType(CryptoCurrency.bnb);
|
||||
}
|
||||
|
||||
|
||||
if(type.tag != null && ![CryptoCurrency.btcln.tag, CryptoCurrency.bnb.tag].contains(type.tag)) {
|
||||
return _cryptoCurrencyToWalletType(CryptoCurrency.fromString(type.tag!));
|
||||
} else {
|
||||
return _cryptoCurrencyToWalletType(type);
|
||||
}
|
||||
} catch (e) {
|
||||
printV(e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import 'package:cw_core/crypto_currency.dart';
|
||||
import 'package:cw_core/currency_groups.dart';
|
||||
import 'package:cw_core/spl_token.dart';
|
||||
|
||||
class DefaultSPLTokens {
|
||||
@@ -116,6 +117,7 @@ class DefaultSPLTokens {
|
||||
mint: 'abtx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/abtx.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'AbbVie xStock',
|
||||
@@ -125,6 +127,7 @@ class DefaultSPLTokens {
|
||||
mint: 'abbvx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/abbv.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Accenture xStock',
|
||||
@@ -134,6 +137,7 @@ class DefaultSPLTokens {
|
||||
mint: 'acnx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/acnx.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Alphabet xStock',
|
||||
@@ -143,6 +147,7 @@ class DefaultSPLTokens {
|
||||
mint: 'googlx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/googlx.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Amazon xStock',
|
||||
@@ -152,6 +157,7 @@ class DefaultSPLTokens {
|
||||
mint: 'amznx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/amznx.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Amber xStock',
|
||||
@@ -161,6 +167,7 @@ class DefaultSPLTokens {
|
||||
mint: 'ambrx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/ambrx.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Apple xStock',
|
||||
@@ -170,6 +177,7 @@ class DefaultSPLTokens {
|
||||
mint: 'aaplx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/apple.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'AppLovin xStock',
|
||||
@@ -179,6 +187,7 @@ class DefaultSPLTokens {
|
||||
mint: 'appx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/appx.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'AstraZeneca xStock',
|
||||
@@ -188,6 +197,7 @@ class DefaultSPLTokens {
|
||||
mint: 'aznx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/aznx.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Bank of America xStock',
|
||||
@@ -197,6 +207,7 @@ class DefaultSPLTokens {
|
||||
mint: 'bacx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/bacx.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Berkshire Hathaway xStock',
|
||||
@@ -206,6 +217,7 @@ class DefaultSPLTokens {
|
||||
mint: 'brkbx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/brkbx.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Broadcom xStock',
|
||||
@@ -215,6 +227,7 @@ class DefaultSPLTokens {
|
||||
mint: 'avgox',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/avgox.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Chevron xStock',
|
||||
@@ -224,6 +237,7 @@ class DefaultSPLTokens {
|
||||
mint: 'cvxx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/cvxx.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Circle xStock',
|
||||
@@ -233,6 +247,7 @@ class DefaultSPLTokens {
|
||||
mint: 'crclx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/crclx.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Cisco xStock',
|
||||
@@ -242,6 +257,7 @@ class DefaultSPLTokens {
|
||||
mint: 'cscx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/cscox.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Coca-Cola xStock',
|
||||
@@ -251,6 +267,7 @@ class DefaultSPLTokens {
|
||||
mint: 'kox',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/kox.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Coinbase xStock',
|
||||
@@ -260,6 +277,7 @@ class DefaultSPLTokens {
|
||||
mint: 'coinx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/coinx.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Comcast xStock',
|
||||
@@ -269,6 +287,7 @@ class DefaultSPLTokens {
|
||||
mint: 'cmcsax',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/cmcsax.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'CrowdStrike xStock',
|
||||
@@ -278,6 +297,7 @@ class DefaultSPLTokens {
|
||||
mint: 'crwdx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/crwdx.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Danaher xStock',
|
||||
@@ -287,6 +307,7 @@ class DefaultSPLTokens {
|
||||
mint: 'dhrx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/dhrx.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'DFDV xStock',
|
||||
@@ -296,6 +317,7 @@ class DefaultSPLTokens {
|
||||
mint: 'dfdvx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/dfdvx.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Eli Lilly xStock',
|
||||
@@ -305,6 +327,7 @@ class DefaultSPLTokens {
|
||||
mint: 'llyx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/llyx.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Exxon Mobil xStock',
|
||||
@@ -314,6 +337,7 @@ class DefaultSPLTokens {
|
||||
mint: 'xomx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/xomx.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Gamestop xStock',
|
||||
@@ -323,6 +347,7 @@ class DefaultSPLTokens {
|
||||
mint: 'gmex',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/gmex.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Gold xStock',
|
||||
@@ -332,6 +357,7 @@ class DefaultSPLTokens {
|
||||
mint: 'gldx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/gldx.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Goldman Sachs xStock',
|
||||
@@ -341,6 +367,7 @@ class DefaultSPLTokens {
|
||||
mint: 'gsx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/gsx.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Home Depot xStock',
|
||||
@@ -350,6 +377,7 @@ class DefaultSPLTokens {
|
||||
mint: 'hdx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/hdx.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Honeywell xStock',
|
||||
@@ -359,6 +387,7 @@ class DefaultSPLTokens {
|
||||
mint: 'honx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/honx.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Intel xStock',
|
||||
@@ -368,6 +397,7 @@ class DefaultSPLTokens {
|
||||
mint: 'intcx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/intcx.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'International Business Machines xStock',
|
||||
@@ -377,6 +407,7 @@ class DefaultSPLTokens {
|
||||
mint: 'ibmx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/ibmx.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Johnson & Johnson xStock',
|
||||
@@ -386,6 +417,7 @@ class DefaultSPLTokens {
|
||||
mint: 'jnjx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/jnjx.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'JPMorgan Chase xStock',
|
||||
@@ -395,6 +427,7 @@ class DefaultSPLTokens {
|
||||
mint: 'jpmx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/jpmx.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Linde xStock',
|
||||
@@ -404,6 +437,7 @@ class DefaultSPLTokens {
|
||||
mint: 'linx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/linx.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Marvell xStock',
|
||||
@@ -413,6 +447,7 @@ class DefaultSPLTokens {
|
||||
mint: 'mrvlx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/mrvlx.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Mastercard xStock',
|
||||
@@ -422,6 +457,7 @@ class DefaultSPLTokens {
|
||||
mint: 'max',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/mastercard.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'McDonald\'s xStock',
|
||||
@@ -431,6 +467,7 @@ class DefaultSPLTokens {
|
||||
mint: 'mcdx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/mcdonalds.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Medtronic xStock',
|
||||
@@ -440,6 +477,7 @@ class DefaultSPLTokens {
|
||||
mint: 'mdtx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/mdtx.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Merck xStock',
|
||||
@@ -449,6 +487,7 @@ class DefaultSPLTokens {
|
||||
mint: 'mrkx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/mrkx.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Meta xStock',
|
||||
@@ -458,6 +497,7 @@ class DefaultSPLTokens {
|
||||
mint: 'metax',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/metax.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Microsoft xStock',
|
||||
@@ -467,6 +507,7 @@ class DefaultSPLTokens {
|
||||
mint: 'msftx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/msftx.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'MicroStrategy xStock',
|
||||
@@ -476,6 +517,7 @@ class DefaultSPLTokens {
|
||||
mint: 'mstrx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/mstrx.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Nasdaq xStock',
|
||||
@@ -485,6 +527,7 @@ class DefaultSPLTokens {
|
||||
mint: 'qqqx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/qqqx.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Netflix xStock',
|
||||
@@ -494,6 +537,7 @@ class DefaultSPLTokens {
|
||||
mint: 'nflxx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/nflxx.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Novo Nordisk xStock',
|
||||
@@ -503,6 +547,7 @@ class DefaultSPLTokens {
|
||||
mint: 'nvox',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/nvox.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'NVIDIA xStock',
|
||||
@@ -512,6 +557,7 @@ class DefaultSPLTokens {
|
||||
mint: 'nvdax',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/nvdax.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'OPEN xStock',
|
||||
@@ -521,6 +567,7 @@ class DefaultSPLTokens {
|
||||
mint: 'openx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/openx.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Oracle xStock',
|
||||
@@ -530,6 +577,7 @@ class DefaultSPLTokens {
|
||||
mint: 'orclx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/orclx.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Palantir xStock',
|
||||
@@ -539,6 +587,7 @@ class DefaultSPLTokens {
|
||||
mint: 'pltrx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/pltrx.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'PepsiCo xStock',
|
||||
@@ -548,6 +597,7 @@ class DefaultSPLTokens {
|
||||
mint: 'pepx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/pepx.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Pfizer xStock',
|
||||
@@ -557,6 +607,7 @@ class DefaultSPLTokens {
|
||||
mint: 'pfex',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/pfex.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Philip Morris xStock',
|
||||
@@ -566,6 +617,7 @@ class DefaultSPLTokens {
|
||||
mint: 'pmx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/pmx.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Procter & Gamble xStock',
|
||||
@@ -575,6 +627,7 @@ class DefaultSPLTokens {
|
||||
mint: 'pgx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/pgx.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Robinhood xStock',
|
||||
@@ -584,6 +637,7 @@ class DefaultSPLTokens {
|
||||
mint: 'hoodx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/hoodx.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Salesforce xStock',
|
||||
@@ -593,6 +647,7 @@ class DefaultSPLTokens {
|
||||
mint: 'crmx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/crmx.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'SP500 xStock',
|
||||
@@ -602,6 +657,7 @@ class DefaultSPLTokens {
|
||||
mint: 'spyx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/spyx.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'TBLL xStock',
|
||||
@@ -611,6 +667,7 @@ class DefaultSPLTokens {
|
||||
mint: 'tbllx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/tbllx.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Tesla xStock',
|
||||
@@ -620,6 +677,7 @@ class DefaultSPLTokens {
|
||||
mint: 'tslax',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/tslax.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Thermo Fisher xStock',
|
||||
@@ -629,6 +687,7 @@ class DefaultSPLTokens {
|
||||
mint: 'tmox',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/tmox.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'TON xStock',
|
||||
@@ -638,6 +697,7 @@ class DefaultSPLTokens {
|
||||
mint: 'tonxx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/tonxx.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'TQQQ xStock',
|
||||
@@ -647,6 +707,7 @@ class DefaultSPLTokens {
|
||||
mint: 'tqqqx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/tqqqx.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'UnitedHealth xStock',
|
||||
@@ -656,6 +717,7 @@ class DefaultSPLTokens {
|
||||
mint: 'unhx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/unhx.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Vanguard xStock',
|
||||
@@ -665,6 +727,7 @@ class DefaultSPLTokens {
|
||||
mint: 'vtix',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/vtix.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Visa xStock',
|
||||
@@ -674,6 +737,7 @@ class DefaultSPLTokens {
|
||||
mint: 'vx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/vx.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Walmart xStock',
|
||||
@@ -683,6 +747,7 @@ class DefaultSPLTokens {
|
||||
mint: 'wmtx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/wmtx.webp',
|
||||
groups: const {CurrencyGroups.tokenizedStock},
|
||||
),
|
||||
];
|
||||
|
||||
|
||||
@@ -4,7 +4,6 @@ import 'package:cake_wallet/core/execution_state.dart';
|
||||
import 'package:cake_wallet/core/open_crypto_pay/open_cryptopay_service.dart';
|
||||
import 'package:cake_wallet/di.dart';
|
||||
import 'package:cake_wallet/entities/contact_record.dart';
|
||||
import 'package:cake_wallet/entities/fiat_currency.dart';
|
||||
import 'package:cake_wallet/entities/priority_for_wallet_type.dart';
|
||||
import 'package:cake_wallet/evm/evm.dart';
|
||||
import 'package:cake_wallet/exchange/trade.dart';
|
||||
@@ -13,6 +12,9 @@ import 'package:cake_wallet/monero/monero.dart';
|
||||
import 'package:cake_wallet/new-ui/modal_navigator.dart';
|
||||
import 'package:cake_wallet/new-ui/pages/coin_control_page.dart';
|
||||
import 'package:cake_wallet/new-ui/widgets/animated_dropdown.dart';
|
||||
import 'package:cake_wallet/new-ui/widgets/currency_picker/currency_picker_args.dart';
|
||||
import 'package:cake_wallet/new-ui/widgets/currency_picker/currency_picker_sheet.dart';
|
||||
import 'package:cake_wallet/new-ui/widgets/currency_picker/fiat_currency_picker_sheet.dart';
|
||||
import 'package:cake_wallet/new-ui/widgets/keyboard_hide_overlay.dart';
|
||||
import 'package:cake_wallet/new-ui/widgets/picker.dart';
|
||||
import 'package:cake_wallet/new-ui/widgets/send_page/fiat_amount_bar.dart';
|
||||
@@ -36,7 +38,6 @@ import 'package:cake_wallet/new-ui/widgets/send_page/send_amount_input.dart';
|
||||
import 'package:cake_wallet/new-ui/widgets/send_page/send_syncing_indicator.dart';
|
||||
import 'package:cake_wallet/routes.dart' show Routes;
|
||||
import 'package:cake_wallet/src/screens/connect_device/connect_device_page.dart';
|
||||
import 'package:cake_wallet/src/screens/exchange/widgets/currency_picker.dart';
|
||||
import 'package:cake_wallet/src/widgets/alert_with_one_action.dart';
|
||||
import 'package:cake_wallet/src/widgets/bottom_sheet/info_bottom_sheet_widget.dart';
|
||||
import 'package:cake_wallet/src/widgets/bottom_sheet/payment_confirmation_bottom_sheet.dart';
|
||||
@@ -51,7 +52,6 @@ import 'package:cake_wallet/view_model/send/send_view_model.dart';
|
||||
import 'package:cake_wallet/view_model/send/send_view_model_state.dart';
|
||||
import 'package:cake_wallet/view_model/wallet_switcher_view_model.dart';
|
||||
import 'package:cw_core/crypto_currency.dart';
|
||||
import 'package:cw_core/currency.dart';
|
||||
import 'package:cw_core/transaction_priority.dart';
|
||||
import 'package:cw_core/utils/print_verbose.dart';
|
||||
|
||||
@@ -809,26 +809,41 @@ class _NewSendPageState extends State<NewSendPage> {
|
||||
|
||||
final output = widget.sendViewModel.outputs[_selectedOutput];
|
||||
|
||||
showPopUp<void>(
|
||||
context: context,
|
||||
builder: (_) => CurrencyPicker(
|
||||
key: ValueKey('send_page_currency_picker_dialog_button_key'),
|
||||
selectedAtIndex: _fiatInputMode
|
||||
? widget.sendViewModel.fiatCurrencies.indexOf(widget.sendViewModel.fiatCurrency)
|
||||
: widget.sendViewModel.currencies.indexOf(widget.sendViewModel.selectedCryptoCurrency),
|
||||
items:
|
||||
_fiatInputMode ? widget.sendViewModel.fiatCurrencies : widget.sendViewModel.currencies,
|
||||
hintText: S.of(context).search_currency,
|
||||
onItemSelected: (Currency cur) async {
|
||||
late final selectedCurrency;
|
||||
if (_fiatInputMode) {
|
||||
selectedCurrency = widget.sendViewModel.setFiatCurrency(cur as FiatCurrency);
|
||||
} else {
|
||||
selectedCurrency =
|
||||
widget.sendViewModel.selectedCryptoCurrency = (cur as CryptoCurrency);
|
||||
}
|
||||
if (_fiatInputMode) {
|
||||
FiatCurrencyPickerSheet.show(
|
||||
context: context,
|
||||
selected: widget.sendViewModel.fiatCurrency,
|
||||
onSelected: (cur) async {
|
||||
widget.sendViewModel.setFiatCurrency(cur);
|
||||
await output.calculateEstimatedFee();
|
||||
return selectedCurrency;
|
||||
},
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
final isFiatDisabled = widget.sendViewModel.isFiatDisabled;
|
||||
final balanceByAsset = <CryptoCurrency, CurrencyPickerBalance>{
|
||||
for (final r in widget.sendViewModel.balanceViewModel.formattedBalances)
|
||||
r.asset: CurrencyPickerBalance(
|
||||
amount: '${r.availableBalance} ${r.asset.title}',
|
||||
fiat: isFiatDisabled
|
||||
? null
|
||||
: '${r.fiatAvailableBalanceRaw} ${r.fiatCurrencyTicker}',
|
||||
fiatValue: isFiatDisabled ? null : double.tryParse(r.fiatAvailableBalanceRaw),
|
||||
),
|
||||
};
|
||||
|
||||
CurrencyPickerSheet.show(
|
||||
context: context,
|
||||
args: CurrencyPickerArgs(
|
||||
items: widget.sendViewModel.currencies,
|
||||
selected: widget.sendViewModel.selectedCryptoCurrency,
|
||||
filterByNetwork: widget.sendViewModel.walletType,
|
||||
balanceByAsset: balanceByAsset,
|
||||
symbolResolver: widget.sendViewModel.amountParsingProxy.getCryptoSymbol,
|
||||
onSelected: (currency) {
|
||||
widget.sendViewModel.selectedCryptoCurrency = currency;
|
||||
output.calculateEstimatedFee();
|
||||
},
|
||||
),
|
||||
);
|
||||
|
||||
@@ -20,8 +20,9 @@ import 'package:cake_wallet/new-ui/widgets/swap_page/refund_address_modal.dart';
|
||||
import 'package:cake_wallet/new-ui/widgets/swap_page/swap_address_selection_modal.dart';
|
||||
import 'package:cake_wallet/new-ui/widgets/swap_page/swap_confirm_sheet.dart';
|
||||
import 'package:cake_wallet/new-ui/widgets/swap_page/swap_limit_popup.dart';
|
||||
import 'package:cake_wallet/new-ui/widgets/currency_picker/currency_picker_args.dart';
|
||||
import 'package:cake_wallet/new-ui/widgets/currency_picker/currency_picker_sheet.dart';
|
||||
import 'package:cake_wallet/new-ui/widgets/swap_page/swap_options_page.dart';
|
||||
import 'package:cake_wallet/src/screens/exchange/widgets/currency_picker.dart';
|
||||
import 'package:cake_wallet/src/screens/exchange/widgets/present_provider_picker.dart';
|
||||
import 'package:cake_wallet/src/screens/send/widgets/extract_address_from_parsed.dart';
|
||||
import 'package:cake_wallet/src/widgets/alert_with_one_action.dart';
|
||||
@@ -1213,9 +1214,11 @@ class SwapAmountBoxState extends State<SwapAmountBox> {
|
||||
}
|
||||
|
||||
void _presentCurrencyPicker() {
|
||||
final currencies = widget.isReceiverCard
|
||||
final rawCurrencies = widget.isReceiverCard
|
||||
? widget.exchangeViewModel.receiveCurrencies
|
||||
: widget.exchangeViewModel.depositCurrencies;
|
||||
final currencies = rawCurrencies.whereType<CryptoCurrency>().toList();
|
||||
appendEvmDefaultTokens(currencies);
|
||||
if (widget.exchangeViewModel.wallet.type == WalletType.bitcoin) {
|
||||
currencies.sort((a, b) {
|
||||
if (a == CryptoCurrency.btcln) return -1;
|
||||
@@ -1224,20 +1227,18 @@ class SwapAmountBoxState extends State<SwapAmountBox> {
|
||||
});
|
||||
}
|
||||
|
||||
showPopUp<void>(
|
||||
final selected = widget.isReceiverCard
|
||||
? widget.exchangeViewModel.receiveCurrency
|
||||
: widget.exchangeViewModel.depositCurrency;
|
||||
|
||||
CurrencyPickerSheet.show(
|
||||
context: context,
|
||||
builder: (_) => CurrencyPicker(
|
||||
key: ValueKey('send_page_currency_picker_dialog_button_key'),
|
||||
selectedAtIndex: currencies.indexOf(widget.isReceiverCard
|
||||
? widget.exchangeViewModel.receiveCurrency
|
||||
: widget.exchangeViewModel.depositCurrency),
|
||||
args: CurrencyPickerArgs(
|
||||
items: currencies,
|
||||
hintText: S.of(context).search_currency,
|
||||
onItemSelected: (Currency cur) async {
|
||||
if (cur is CryptoCurrency) {
|
||||
widget.onCurrencySelected(cur);
|
||||
}
|
||||
},
|
||||
selected: selected,
|
||||
recentsSource: RecentsSource.trades,
|
||||
onSelected: widget.onCurrencySelected,
|
||||
symbolResolver: widget.exchangeViewModel.amountParsingProxy.getCryptoSymbol,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,83 @@
|
||||
import 'package:cake_wallet/generated/i18n.dart';
|
||||
import 'package:cw_core/wallet_type.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class ChainChipStrip extends StatelessWidget {
|
||||
const ChainChipStrip({
|
||||
super.key,
|
||||
required this.walletTypes,
|
||||
required this.selected,
|
||||
required this.onSelected,
|
||||
});
|
||||
|
||||
final List<WalletType> walletTypes;
|
||||
final WalletType? selected;
|
||||
final ValueChanged<WalletType?> onSelected;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Container(
|
||||
padding: const EdgeInsets.only(bottom: 4),
|
||||
height: 48,
|
||||
child: ListView(
|
||||
scrollDirection: Axis.horizontal,
|
||||
padding: const EdgeInsets.symmetric(vertical: 4, horizontal: 16),
|
||||
children: [
|
||||
_ChainChip(
|
||||
label: S.of(context).picker_chip_all,
|
||||
isSelected: selected == null,
|
||||
onTap: () => onSelected(null),
|
||||
),
|
||||
for (final type in walletTypes)
|
||||
_ChainChip(
|
||||
label: walletTypeToString(type),
|
||||
isSelected: selected == type,
|
||||
onTap: () => onSelected(type),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class _ChainChip extends StatelessWidget {
|
||||
const _ChainChip({
|
||||
required this.label,
|
||||
required this.isSelected,
|
||||
required this.onTap,
|
||||
});
|
||||
|
||||
final String label;
|
||||
final bool isSelected;
|
||||
final VoidCallback onTap;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final colors = Theme.of(context).colorScheme;
|
||||
return Padding(
|
||||
padding: const EdgeInsetsDirectional.only(end: 8),
|
||||
child: InkWell(
|
||||
onTap: onTap,
|
||||
borderRadius: BorderRadius.circular(80),
|
||||
child: Container(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 10),
|
||||
decoration: BoxDecoration(
|
||||
color: isSelected ? colors.primary : colors.surfaceContainer,
|
||||
borderRadius: BorderRadius.circular(20),
|
||||
),
|
||||
child: Center(
|
||||
child: Text(
|
||||
label,
|
||||
style: Theme.of(context).textTheme.bodyMedium?.copyWith(
|
||||
fontWeight: FontWeight.w500,
|
||||
fontSize: isSelected ? 14 : 12,
|
||||
letterSpacing: -0.07,
|
||||
color: isSelected ? colors.onPrimary : colors.primary,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
import 'package:cake_wallet/evm/evm.dart';
|
||||
import 'package:cw_core/crypto_currency.dart';
|
||||
import 'package:cw_core/currency_for_wallet_type.dart';
|
||||
import 'package:cw_core/currency_groups.dart';
|
||||
import 'package:cw_core/wallet_type.dart';
|
||||
|
||||
String chainNameForCurrency(CryptoCurrency c) {
|
||||
if (c == CryptoCurrency.btcln) return 'Lightning';
|
||||
final wt = cryptoCurrencyOrTokenToWalletType(c);
|
||||
return wt != null ? walletTypeToString(wt) : (c.tag ?? '');
|
||||
}
|
||||
|
||||
final Set<String> _stablecoinSymbols = {
|
||||
for (final c in CryptoCurrency.all)
|
||||
if (c.groups.contains(CurrencyGroups.stablecoin)) c.title.toUpperCase(),
|
||||
};
|
||||
|
||||
bool isTrustedStablecoin(CryptoCurrency c) =>
|
||||
(c.groups.contains(CurrencyGroups.stablecoin) ||
|
||||
_stablecoinSymbols.contains(c.title.toUpperCase())) && !c.isPotentialScam;
|
||||
|
||||
const _kEvmDefaultTokenNatives = <CryptoCurrency>[
|
||||
CryptoCurrency.baseEth,
|
||||
CryptoCurrency.arbEth,
|
||||
CryptoCurrency.maticpoly,
|
||||
];
|
||||
|
||||
void appendEvmDefaultTokens(List<CryptoCurrency> into) {
|
||||
if (evm == null) return;
|
||||
String keyFor(CryptoCurrency c) {
|
||||
final wt = cryptoCurrencyOrTokenToWalletType(c);
|
||||
final chain = wt?.toString() ?? (c.tag ?? '').toUpperCase();
|
||||
return '${c.title.toUpperCase()}|$chain';
|
||||
}
|
||||
|
||||
final seen = <String>{for (final c in into) keyFor(c)};
|
||||
for (final native in _kEvmDefaultTokenNatives) {
|
||||
final chainId = getChainIdByCryptoCurrency(native);
|
||||
if (chainId == null) continue;
|
||||
for (final t in evm!.getDefaultTokensByChainId(chainId)) {
|
||||
if (seen.add(keyFor(t))) into.add(t);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class CurrencyPickerBalance {
|
||||
const CurrencyPickerBalance(
|
||||
{required this.amount, this.fiat, this.fiatValue});
|
||||
|
||||
final String amount;
|
||||
final String? fiat;
|
||||
final double? fiatValue;
|
||||
}
|
||||
|
||||
enum RecentsSource { none, trades, orders }
|
||||
|
||||
class CurrencyPickerArgs {
|
||||
const CurrencyPickerArgs({
|
||||
this.selected,
|
||||
required this.items,
|
||||
this.balanceByAsset,
|
||||
this.filterByNetwork,
|
||||
required this.onSelected,
|
||||
required this.symbolResolver,
|
||||
this.recentsSource = RecentsSource.none,
|
||||
});
|
||||
|
||||
final CryptoCurrency? selected;
|
||||
final List<CryptoCurrency> items;
|
||||
final WalletType? filterByNetwork;
|
||||
final void Function(CryptoCurrency) onSelected;
|
||||
final String Function(CryptoCurrency) symbolResolver;
|
||||
final Map<CryptoCurrency, CurrencyPickerBalance>? balanceByAsset;
|
||||
final RecentsSource recentsSource;
|
||||
|
||||
bool get isPreFiltered => filterByNetwork != null;
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class CurrencyPickerListContainer extends StatelessWidget {
|
||||
const CurrencyPickerListContainer({super.key, required this.rows});
|
||||
|
||||
final List<Widget> rows;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final colors = Theme.of(context).colorScheme;
|
||||
final children = <Widget>[];
|
||||
for (var i = 0; i < rows.length; i++) {
|
||||
children.add(rows[i]);
|
||||
if (i != rows.length - 1) {
|
||||
children.add(Divider(
|
||||
height: 1,
|
||||
thickness: 1,
|
||||
color: colors.surfaceContainerHigh,
|
||||
indent: 56,
|
||||
endIndent: 24,
|
||||
));
|
||||
}
|
||||
}
|
||||
return Container(
|
||||
decoration: BoxDecoration(
|
||||
color: colors.surfaceContainer,
|
||||
borderRadius: BorderRadius.circular(18),
|
||||
),
|
||||
child: Column(mainAxisSize: MainAxisSize.min, children: children),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,140 @@
|
||||
import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
|
||||
import 'package:cw_core/crypto_currency.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class CurrencyPickerRow extends StatelessWidget {
|
||||
const CurrencyPickerRow({
|
||||
super.key,
|
||||
required this.currency,
|
||||
required this.isSelected,
|
||||
required this.trailing,
|
||||
required this.onTap,
|
||||
this.chainPillLabel,
|
||||
this.chainBadgePath,
|
||||
});
|
||||
|
||||
final CryptoCurrency currency;
|
||||
final bool isSelected;
|
||||
final Widget trailing;
|
||||
final VoidCallback onTap;
|
||||
final String? chainPillLabel;
|
||||
final String? chainBadgePath;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final colors = Theme.of(context).colorScheme;
|
||||
return InkWell(
|
||||
onTap: onTap,
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 12),
|
||||
child: Row(
|
||||
children: [
|
||||
_IconWithBadge(currency: currency, badgePath: chainBadgePath),
|
||||
const SizedBox(width: 12),
|
||||
Expanded(
|
||||
child: Row(
|
||||
children: [
|
||||
Flexible(
|
||||
child: Text(
|
||||
currency.fullName ?? currency.title,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
style: Theme.of(context).textTheme.bodyMedium?.copyWith(
|
||||
fontWeight: FontWeight.w500,
|
||||
),
|
||||
),
|
||||
),
|
||||
if (chainPillLabel != null) ...[
|
||||
const SizedBox(width: 8),
|
||||
Container(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 2),
|
||||
decoration: BoxDecoration(
|
||||
color: colors.surfaceContainerHigh,
|
||||
borderRadius: BorderRadius.circular(10),
|
||||
),
|
||||
child: Text(
|
||||
chainPillLabel!,
|
||||
style: Theme.of(context).textTheme.bodySmall?.copyWith(
|
||||
fontWeight: FontWeight.w500,
|
||||
color: colors.onSecondaryContainer,
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
],
|
||||
),
|
||||
),
|
||||
const SizedBox(width: 8),
|
||||
trailing,
|
||||
const SizedBox(width: 8),
|
||||
Icon(
|
||||
Icons.chevron_right,
|
||||
size: 20,
|
||||
color: isSelected ? colors.primary : colors.onSurfaceVariant,
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class _IconWithBadge extends StatelessWidget {
|
||||
const _IconWithBadge({required this.currency, required this.badgePath});
|
||||
|
||||
final CryptoCurrency currency;
|
||||
final String? badgePath;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final icon = CakeImageWidget(
|
||||
imageUrl: currency.iconPath,
|
||||
width: 32,
|
||||
height: 32,
|
||||
fit: BoxFit.cover,
|
||||
errorWidget: Container(
|
||||
width: 32,
|
||||
height: 32,
|
||||
child: Center(
|
||||
child: Text(
|
||||
currency.title.length >= 2 ? currency.title.substring(0, 2) : currency.title,
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
if (badgePath == null) return icon;
|
||||
return SizedBox(
|
||||
width: 36,
|
||||
height: 36,
|
||||
child: Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
icon,
|
||||
Positioned(
|
||||
right: -2,
|
||||
bottom: -2,
|
||||
child: Container(
|
||||
width: 18,
|
||||
height: 18,
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(6),
|
||||
border: Border.all(
|
||||
color: Theme.of(context).colorScheme.surfaceContainerHigh,
|
||||
width: 2,
|
||||
),
|
||||
color: Theme.of(context).colorScheme.onSurface,
|
||||
),
|
||||
padding: const EdgeInsets.all(2),
|
||||
child: CakeImageWidget(
|
||||
imageUrl: badgePath,
|
||||
color: Theme.of(context).colorScheme.surface,
|
||||
width: 13,
|
||||
height: 13,
|
||||
fit: BoxFit.cover,
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
import 'package:cw_core/crypto_currency.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class CurrencyPickerSearchField extends StatelessWidget {
|
||||
const CurrencyPickerSearchField({
|
||||
super.key,
|
||||
required this.controller,
|
||||
required this.hintText,
|
||||
});
|
||||
|
||||
final TextEditingController controller;
|
||||
final String hintText;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final colors = Theme.of(context).colorScheme;
|
||||
return Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8),
|
||||
child: Container(
|
||||
height: 48,
|
||||
padding: const EdgeInsets.symmetric(horizontal: 14),
|
||||
decoration: BoxDecoration(
|
||||
color: colors.surfaceContainer,
|
||||
border: Border.all(color: colors.surfaceContainer, width: 1),
|
||||
borderRadius: BorderRadius.circular(28),
|
||||
),
|
||||
child: Row(
|
||||
children: [
|
||||
Icon(Icons.search, size: 20, color: colors.primary),
|
||||
const SizedBox(width: 10),
|
||||
Expanded(
|
||||
child: TextFormField(
|
||||
controller: controller,
|
||||
style: Theme.of(context).textTheme.bodyMedium,
|
||||
decoration: InputDecoration(
|
||||
isCollapsed: true,
|
||||
border: InputBorder.none,
|
||||
focusedBorder: InputBorder.none,
|
||||
hintText: hintText,
|
||||
hintStyle: Theme.of(context).textTheme.bodyMedium?.copyWith(
|
||||
color: colors.onSurfaceVariant,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
if (controller.text.isNotEmpty)
|
||||
InkWell(
|
||||
onTap: controller.clear,
|
||||
customBorder: const CircleBorder(),
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(4),
|
||||
child: Icon(Icons.close, size: 16, color: colors.onSurfaceVariant),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
bool currencyMatchesQuery(CryptoCurrency c, String query) {
|
||||
if (query.isEmpty) return true;
|
||||
final q = query.toLowerCase();
|
||||
return c.title.toLowerCase().contains(q) ||
|
||||
c.name.toLowerCase().contains(q) ||
|
||||
(c.fullName?.toLowerCase().contains(q) ?? false);
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
import 'package:cake_wallet/generated/i18n.dart';
|
||||
import 'package:cake_wallet/new-ui/widgets/currency_picker/currency_picker_args.dart';
|
||||
import 'package:cake_wallet/new-ui/widgets/currency_picker/multi_network_currency_picker.dart';
|
||||
import 'package:cake_wallet/new-ui/widgets/currency_picker/single_network_currency_picker.dart';
|
||||
import 'package:cake_wallet/new-ui/widgets/receive_page/receive_top_bar.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class CurrencyPickerSheet extends StatelessWidget {
|
||||
const CurrencyPickerSheet({super.key, required this.args});
|
||||
|
||||
final CurrencyPickerArgs args;
|
||||
|
||||
static Future<void> show({
|
||||
required BuildContext context,
|
||||
required CurrencyPickerArgs args,
|
||||
}) {
|
||||
return showModalBottomSheet<void>(
|
||||
context: context,
|
||||
isScrollControlled: true,
|
||||
useSafeArea: true,
|
||||
enableDrag: false,
|
||||
isDismissible: false,
|
||||
backgroundColor: Colors.transparent,
|
||||
builder: (_) => CurrencyPickerSheet(args: args),
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final colors = Theme.of(context).colorScheme;
|
||||
return Padding(
|
||||
padding: EdgeInsets.only(bottom: MediaQuery.of(context).viewInsets.bottom),
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: const BorderRadius.vertical(top: Radius.circular(24)),
|
||||
color: colors.surface,
|
||||
),
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
children: [
|
||||
ModalTopBar(
|
||||
title: S.of(context).select_asset,
|
||||
leadingIcon: const Icon(Icons.close),
|
||||
onLeadingPressed: () => Navigator.of(context).maybePop(),
|
||||
),
|
||||
Expanded(
|
||||
child: args.isPreFiltered
|
||||
? SingleNetworkCurrencyPicker(args: args)
|
||||
: MultiNetworkCurrencyPicker(args: args),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,314 @@
|
||||
import 'package:cake_wallet/entities/fiat_currency.dart';
|
||||
import 'package:cake_wallet/generated/i18n.dart';
|
||||
import 'package:cake_wallet/new-ui/widgets/currency_picker/currency_picker_list_container.dart';
|
||||
import 'package:cake_wallet/new-ui/widgets/currency_picker/currency_picker_search_field.dart';
|
||||
import 'package:cake_wallet/new-ui/widgets/currency_picker/fiat_currency_row.dart';
|
||||
import 'package:cake_wallet/new-ui/widgets/currency_picker/fiat_currency_search_result.dart';
|
||||
import 'package:cake_wallet/new-ui/widgets/receive_page/receive_top_bar.dart';
|
||||
import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
|
||||
import 'package:cw_core/crypto_currency.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class FiatCurrencyPickerSheet extends StatefulWidget {
|
||||
const FiatCurrencyPickerSheet({
|
||||
super.key,
|
||||
required this.selected,
|
||||
required this.onSelected,
|
||||
this.cryptoOption,
|
||||
this.onCryptoSelected,
|
||||
});
|
||||
|
||||
final Object? selected;
|
||||
final ValueChanged<FiatCurrency> onSelected;
|
||||
final CryptoCurrency? cryptoOption;
|
||||
final ValueChanged<CryptoCurrency>? onCryptoSelected;
|
||||
|
||||
static const _popularOrder = <FiatCurrency>[
|
||||
FiatCurrency.usd,
|
||||
FiatCurrency.eur,
|
||||
FiatCurrency.gbp,
|
||||
FiatCurrency.jpy,
|
||||
FiatCurrency.cny,
|
||||
];
|
||||
|
||||
static Future<void> show({
|
||||
required BuildContext context,
|
||||
required Object? selected,
|
||||
required ValueChanged<FiatCurrency> onSelected,
|
||||
CryptoCurrency? cryptoOption,
|
||||
ValueChanged<CryptoCurrency>? onCryptoSelected,
|
||||
}) {
|
||||
return showModalBottomSheet<void>(
|
||||
context: context,
|
||||
isScrollControlled: true,
|
||||
useSafeArea: true,
|
||||
enableDrag: false,
|
||||
backgroundColor: Colors.transparent,
|
||||
builder: (_) => FiatCurrencyPickerSheet(
|
||||
selected: selected,
|
||||
onSelected: onSelected,
|
||||
cryptoOption: cryptoOption,
|
||||
onCryptoSelected: onCryptoSelected,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
State<FiatCurrencyPickerSheet> createState() => _FiatCurrencyPickerSheetState();
|
||||
}
|
||||
|
||||
class _FiatCurrencyPickerSheetState extends State<FiatCurrencyPickerSheet> {
|
||||
final TextEditingController _searchController = TextEditingController();
|
||||
late final List<FiatCurrency> _allSorted = [...FiatCurrency.all]..sort(
|
||||
(a, b) => a.fullName.toLowerCase().compareTo(b.fullName.toLowerCase()),
|
||||
);
|
||||
|
||||
bool get _isSearching => _searchController.text.trim().isNotEmpty;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_searchController.addListener(() => setState(() {}));
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_searchController.dispose();
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
bool _matches(FiatCurrency c, String query) {
|
||||
if (query.isEmpty) return true;
|
||||
final q = query.toLowerCase();
|
||||
return c.fullName.toLowerCase().contains(q) || c.title.toLowerCase().contains(q);
|
||||
}
|
||||
|
||||
void _selectFiatCurrency(FiatCurrency c) {
|
||||
widget.onSelected(c);
|
||||
Navigator.of(context).maybePop();
|
||||
}
|
||||
|
||||
void _selectCryptoCurrency(CryptoCurrency c) {
|
||||
widget.onCryptoSelected?.call(c);
|
||||
Navigator.of(context).maybePop();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final colors = Theme.of(context).colorScheme;
|
||||
final selected = widget.selected;
|
||||
final selectedFiat = selected is FiatCurrency ? selected : null;
|
||||
final popular = FiatCurrencyPickerSheet._popularOrder
|
||||
.where((c) => c != selectedFiat)
|
||||
.toList(growable: false);
|
||||
final query = _searchController.text.trim();
|
||||
final filteredAll = _allSorted.where((c) => _matches(c, query)).toList(growable: false);
|
||||
|
||||
return Padding(
|
||||
padding: EdgeInsets.only(bottom: MediaQuery.of(context).viewInsets.bottom),
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: const BorderRadius.vertical(top: Radius.circular(24)),
|
||||
color: colors.surface,
|
||||
),
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
children: [
|
||||
ModalTopBar(
|
||||
title: S.of(context).select_fiat_currency_title,
|
||||
leadingIcon: const Icon(Icons.close),
|
||||
onLeadingPressed: () => Navigator.of(context).maybePop(),
|
||||
),
|
||||
Expanded(
|
||||
child: _isSearching
|
||||
? FiatCurrencySearchResults(
|
||||
items: filteredAll,
|
||||
onSelected: _selectFiatCurrency,
|
||||
selected: selectedFiat,
|
||||
)
|
||||
: FiatCurrencyPickerBody(
|
||||
selected: selected,
|
||||
cryptoOption: widget.cryptoOption,
|
||||
popular: popular,
|
||||
all: filteredAll,
|
||||
onSelectedFiat: _selectFiatCurrency,
|
||||
onSelectedCrypto: _selectCryptoCurrency,
|
||||
),
|
||||
),
|
||||
CurrencyPickerSearchField(
|
||||
controller: _searchController,
|
||||
hintText: S.of(context).search,
|
||||
),
|
||||
const SizedBox(height: 24),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class FiatCurrencyPickerBody extends StatelessWidget {
|
||||
const FiatCurrencyPickerBody({
|
||||
super.key,
|
||||
required this.selected,
|
||||
required this.cryptoOption,
|
||||
required this.popular,
|
||||
required this.all,
|
||||
required this.onSelectedFiat,
|
||||
required this.onSelectedCrypto,
|
||||
});
|
||||
|
||||
final Object? selected;
|
||||
final CryptoCurrency? cryptoOption;
|
||||
final List<FiatCurrency> popular;
|
||||
final List<FiatCurrency> all;
|
||||
final void Function(FiatCurrency) onSelectedFiat;
|
||||
final void Function(CryptoCurrency) onSelectedCrypto;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final selectedFiat = selected is FiatCurrency ? selected as FiatCurrency : null;
|
||||
final selectedCrypto = selected is CryptoCurrency ? selected as CryptoCurrency : null;
|
||||
final showCryptoSection = cryptoOption != null && selectedCrypto == null;
|
||||
|
||||
return ListView(
|
||||
padding: const EdgeInsets.fromLTRB(16, 8, 16, 16),
|
||||
children: [
|
||||
if (selectedFiat != null || selectedCrypto != null) ...[
|
||||
_SectionHeader(label: S.of(context).picker_section_selected),
|
||||
CurrencyPickerListContainer(
|
||||
rows: [
|
||||
if (selectedFiat != null)
|
||||
FiatCurrencyRow(
|
||||
currency: selectedFiat,
|
||||
isSelected: true,
|
||||
onTap: () => onSelectedFiat(selectedFiat),
|
||||
),
|
||||
if (selectedCrypto != null)
|
||||
_CryptoOptionRow(
|
||||
currency: selectedCrypto,
|
||||
isSelected: true,
|
||||
onTap: () => onSelectedCrypto(selectedCrypto),
|
||||
),
|
||||
],
|
||||
),
|
||||
const SizedBox(height: 16),
|
||||
],
|
||||
if (showCryptoSection) ...[
|
||||
_SectionHeader(label: S.of(context).picker_section_crypto),
|
||||
CurrencyPickerListContainer(
|
||||
rows: [
|
||||
_CryptoOptionRow(
|
||||
currency: cryptoOption!,
|
||||
isSelected: false,
|
||||
onTap: () => onSelectedCrypto(cryptoOption!),
|
||||
),
|
||||
],
|
||||
),
|
||||
const SizedBox(height: 16),
|
||||
],
|
||||
if (popular.isNotEmpty) ...[
|
||||
_SectionHeader(label: S.of(context).picker_section_popular),
|
||||
CurrencyPickerListContainer(
|
||||
rows: [
|
||||
for (final c in popular)
|
||||
FiatCurrencyRow(
|
||||
currency: c,
|
||||
isSelected: false,
|
||||
onTap: () => onSelectedFiat(c),
|
||||
),
|
||||
],
|
||||
),
|
||||
const SizedBox(height: 16),
|
||||
],
|
||||
_SectionHeader(label: S.of(context).picker_section_all_currencies),
|
||||
CurrencyPickerListContainer(
|
||||
rows: [
|
||||
for (final c in all)
|
||||
FiatCurrencyRow(
|
||||
currency: c,
|
||||
isSelected: c == selectedFiat,
|
||||
onTap: () => onSelectedFiat(c),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class _SectionHeader extends StatelessWidget {
|
||||
const _SectionHeader({required this.label});
|
||||
|
||||
final String label;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 4, vertical: 8),
|
||||
child: Text(
|
||||
label,
|
||||
style: Theme.of(context).textTheme.bodyMedium?.copyWith(
|
||||
fontWeight: FontWeight.w500,
|
||||
color: Theme.of(context).colorScheme.onSurfaceVariant,
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class _CryptoOptionRow extends StatelessWidget {
|
||||
const _CryptoOptionRow({
|
||||
required this.currency,
|
||||
required this.isSelected,
|
||||
required this.onTap,
|
||||
});
|
||||
|
||||
final CryptoCurrency currency;
|
||||
final bool isSelected;
|
||||
final VoidCallback onTap;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final colors = Theme.of(context).colorScheme;
|
||||
return InkWell(
|
||||
onTap: onTap,
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 12),
|
||||
child: Row(
|
||||
children: [
|
||||
CakeImageWidget(
|
||||
imageUrl: currency.iconPath,
|
||||
width: 28,
|
||||
height: 28,
|
||||
fit: BoxFit.cover,
|
||||
),
|
||||
const SizedBox(width: 12),
|
||||
Expanded(
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
Text(
|
||||
currency.fullName ?? currency.title,
|
||||
style: Theme.of(context).textTheme.bodyMedium?.copyWith(
|
||||
fontWeight: FontWeight.w500,
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 2),
|
||||
Text(
|
||||
currency.title,
|
||||
style: Theme.of(context).textTheme.bodySmall?.copyWith(
|
||||
color: colors.onSurfaceVariant,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
if (isSelected) Icon(Icons.check, size: 20, color: colors.primary),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
import 'package:cake_wallet/entities/fiat_currency.dart';
|
||||
import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class FiatCurrencyRow extends StatelessWidget {
|
||||
const FiatCurrencyRow({
|
||||
required this.currency,
|
||||
required this.isSelected,
|
||||
required this.onTap,
|
||||
});
|
||||
|
||||
final FiatCurrency currency;
|
||||
final bool isSelected;
|
||||
final VoidCallback onTap;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final colors = Theme.of(context).colorScheme;
|
||||
return InkWell(
|
||||
onTap: onTap,
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 12),
|
||||
child: Row(
|
||||
children: [
|
||||
ClipRRect(
|
||||
borderRadius: BorderRadius.circular(4),
|
||||
child: CakeImageWidget(
|
||||
imageUrl: 'assets/images/flags/${currency.countryCode}.png',
|
||||
width: 28,
|
||||
height: 20,
|
||||
fit: BoxFit.cover,
|
||||
errorWidget: Container(
|
||||
width: 28,
|
||||
height: 20,
|
||||
color: colors.surfaceContainer,
|
||||
),
|
||||
),
|
||||
),
|
||||
const SizedBox(width: 12),
|
||||
Expanded(
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
Text(
|
||||
currency.fullName,
|
||||
style: Theme.of(context).textTheme.bodyMedium?.copyWith(
|
||||
fontWeight: FontWeight.w500,
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 2),
|
||||
Text(
|
||||
currency.title,
|
||||
style: Theme.of(context).textTheme.bodySmall?.copyWith(
|
||||
color: colors.onSurfaceVariant,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
if (isSelected) Icon(Icons.check, size: 20, color: colors.primary),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
import 'package:cake_wallet/entities/fiat_currency.dart';
|
||||
import 'package:cake_wallet/generated/i18n.dart';
|
||||
import 'package:cake_wallet/new-ui/widgets/currency_picker/currency_picker_list_container.dart';
|
||||
import 'package:cake_wallet/new-ui/widgets/currency_picker/fiat_currency_row.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class FiatCurrencySearchResults extends StatelessWidget {
|
||||
const FiatCurrencySearchResults({
|
||||
super.key,
|
||||
required this.items,
|
||||
required this.onSelected,
|
||||
required this.selected,
|
||||
});
|
||||
|
||||
final List<FiatCurrency> items;
|
||||
final void Function(FiatCurrency) onSelected;
|
||||
final FiatCurrency? selected;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
if (items.isEmpty) {
|
||||
return Center(
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(24),
|
||||
child: Text(
|
||||
S.of(context).picker_no_matches,
|
||||
textAlign: TextAlign.center,
|
||||
style: Theme.of(context).textTheme.bodyMedium?.copyWith(
|
||||
color: Theme.of(context).colorScheme.onSurfaceVariant,
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
return ListView(
|
||||
padding: const EdgeInsets.fromLTRB(16, 8, 16, 16),
|
||||
children: [
|
||||
CurrencyPickerListContainer(
|
||||
rows: [
|
||||
for (final c in items)
|
||||
FiatCurrencyRow(
|
||||
currency: c,
|
||||
isSelected: c == selected,
|
||||
onTap: () => onSelected(c),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,682 @@
|
||||
import 'package:cake_wallet/generated/i18n.dart';
|
||||
import 'package:cake_wallet/new-ui/widgets/currency_picker/chain_chip_strip.dart';
|
||||
import 'package:cake_wallet/new-ui/widgets/currency_picker/currency_picker_args.dart';
|
||||
import 'package:cake_wallet/new-ui/widgets/currency_picker/picker_recents_loader.dart';
|
||||
import 'package:cake_wallet/new-ui/widgets/currency_picker/currency_picker_list_container.dart';
|
||||
import 'package:cake_wallet/new-ui/widgets/currency_picker/currency_picker_row.dart';
|
||||
import 'package:cake_wallet/new-ui/widgets/currency_picker/currency_picker_search_field.dart';
|
||||
import 'package:cake_wallet/new-ui/widgets/currency_picker/picker_section_header.dart';
|
||||
import 'package:cake_wallet/new-ui/widgets/currency_picker/pill_grid.dart';
|
||||
import 'package:cake_wallet/new-ui/widgets/currency_picker/select_network_page.dart';
|
||||
import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
|
||||
import 'package:cake_wallet/wallet_types.g.dart';
|
||||
import 'package:cw_core/crypto_currency.dart';
|
||||
import 'package:cw_core/currency_for_wallet_type.dart';
|
||||
import 'package:cw_core/currency_groups.dart';
|
||||
import 'package:cw_core/utils/print_verbose.dart';
|
||||
import 'package:cw_core/wallet_type.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class MultiNetworkCurrencyPicker extends StatefulWidget {
|
||||
const MultiNetworkCurrencyPicker({super.key, required this.args});
|
||||
|
||||
final CurrencyPickerArgs args;
|
||||
|
||||
@override
|
||||
State<MultiNetworkCurrencyPicker> createState() => _MultiNetworkCurrencyPickerState();
|
||||
}
|
||||
|
||||
class _MultiNetworkCurrencyPickerState extends State<MultiNetworkCurrencyPicker> {
|
||||
bool _recentsLoaded = false;
|
||||
WalletType? _selectedNetwork;
|
||||
List<CryptoCurrency> _recents = const [];
|
||||
final TextEditingController _searchController = TextEditingController();
|
||||
|
||||
bool get _isSearching => _searchController.text.trim().isNotEmpty;
|
||||
|
||||
late final List<WalletType> _networks = _computeNetworks();
|
||||
|
||||
List<WalletType> _computeNetworks() {
|
||||
final counts = <WalletType, int>{};
|
||||
for (final currency in widget.args.items) {
|
||||
final walletType = cryptoCurrencyOrTokenToWalletType(currency);
|
||||
if (walletType == null) continue;
|
||||
counts[walletType] = (counts[walletType] ?? 0) + 1;
|
||||
}
|
||||
return counts.entries.where((e) => e.value >= 2).map((e) => e.key).toList(growable: false);
|
||||
}
|
||||
|
||||
Set<CryptoCurrency> get _natives =>
|
||||
{for (final walletType in availableWalletTypes) walletTypeToCryptoCurrency(walletType)};
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_searchController.addListener(() => setState(() {}));
|
||||
_loadRecents();
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_searchController.dispose();
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
Future<void> _loadRecents() async {
|
||||
try {
|
||||
final recents = await PickerRecentsLoader.load(
|
||||
source: widget.args.recentsSource,
|
||||
visibleItems: widget.args.items,
|
||||
);
|
||||
if (!mounted) return;
|
||||
setState(() {
|
||||
_recents = recents;
|
||||
_recentsLoaded = true;
|
||||
});
|
||||
} catch (e, s) {
|
||||
printV('load picker recents failed: $e\n$s');
|
||||
if (!mounted) return;
|
||||
setState(() => _recentsLoaded = true);
|
||||
}
|
||||
}
|
||||
|
||||
bool _matchesNetwork(CryptoCurrency c) {
|
||||
if (_selectedNetwork == null) return true;
|
||||
return cryptoCurrencyOrTokenToWalletType(c) == _selectedNetwork;
|
||||
}
|
||||
|
||||
List<CryptoCurrency> get _visibleItems {
|
||||
final query = _searchController.text.trim();
|
||||
return widget.args.items
|
||||
.where(_hasSupportedChain)
|
||||
.where((c) => currencyMatchesQuery(c, query) && _matchesNetwork(c))
|
||||
.toList(growable: false);
|
||||
}
|
||||
|
||||
bool _hasSupportedChain(CryptoCurrency c) {
|
||||
if (c.tag == null) return true;
|
||||
return cryptoCurrencyOrTokenToWalletType(c) != null;
|
||||
}
|
||||
|
||||
void _selectCurrency(CryptoCurrency currency) {
|
||||
widget.args.onSelected(currency);
|
||||
Navigator.of(context).maybePop();
|
||||
}
|
||||
|
||||
void _onStablecoinPillTapped(CryptoCurrency tapped) {
|
||||
var variants = widget.args.items
|
||||
.where((c) =>
|
||||
isTrustedStablecoin(c) &&
|
||||
c.title.toUpperCase() == tapped.title.toUpperCase() &&
|
||||
cryptoCurrencyOrTokenToWalletType(c) != null)
|
||||
.toList();
|
||||
|
||||
if (_selectedNetwork != null) {
|
||||
final filtered = variants
|
||||
.where((c) => cryptoCurrencyOrTokenToWalletType(c) == _selectedNetwork)
|
||||
.toList(growable: false);
|
||||
if (filtered.isNotEmpty) variants = filtered;
|
||||
}
|
||||
|
||||
if (variants.length <= 1) {
|
||||
_selectCurrency(variants.isNotEmpty ? variants.first : tapped);
|
||||
return;
|
||||
}
|
||||
|
||||
Navigator.of(context).push(
|
||||
PageRouteBuilder<void>(
|
||||
opaque: true,
|
||||
transitionDuration: const Duration(milliseconds: 250),
|
||||
reverseTransitionDuration: const Duration(milliseconds: 250),
|
||||
pageBuilder: (_, __, ___) => SelectNetworkPage(
|
||||
assetTitle: tapped.title,
|
||||
assetFullName: tapped.fullName,
|
||||
assetIconPath: tapped.iconPath,
|
||||
variants: variants,
|
||||
onSelected: widget.args.onSelected,
|
||||
),
|
||||
transitionsBuilder: (_, animation, __, child) => SlideTransition(
|
||||
position: animation.drive(
|
||||
Tween<Offset>(begin: const Offset(0, 1), end: Offset.zero)
|
||||
.chain(CurveTween(curve: Curves.easeInOut)),
|
||||
),
|
||||
child: child,
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Column(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
children: [
|
||||
if (_networks.length > 1)
|
||||
ChainChipStrip(
|
||||
walletTypes: _networks,
|
||||
selected: _selectedNetwork,
|
||||
onSelected: (network) => setState(() => _selectedNetwork = network),
|
||||
),
|
||||
Expanded(
|
||||
child: _MultiNetworkPickerBody(
|
||||
items: _visibleItems,
|
||||
isSearching: _isSearching,
|
||||
recents: _recents,
|
||||
recentsLoaded: _recentsLoaded,
|
||||
natives: _natives,
|
||||
selected: widget.args.selected,
|
||||
symbolResolver: widget.args.symbolResolver,
|
||||
onSelect: _selectCurrency,
|
||||
onStablecoinTap: _onStablecoinPillTapped,
|
||||
),
|
||||
),
|
||||
CurrencyPickerSearchField(
|
||||
controller: _searchController,
|
||||
hintText: S.of(context).search,
|
||||
),
|
||||
const SizedBox(height: 24),
|
||||
],
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class _MultiNetworkPickerBody extends StatefulWidget {
|
||||
const _MultiNetworkPickerBody({
|
||||
required this.items,
|
||||
required this.isSearching,
|
||||
required this.recents,
|
||||
required this.recentsLoaded,
|
||||
required this.natives,
|
||||
required this.selected,
|
||||
required this.symbolResolver,
|
||||
required this.onSelect,
|
||||
required this.onStablecoinTap,
|
||||
});
|
||||
|
||||
final bool isSearching;
|
||||
final bool recentsLoaded;
|
||||
final CryptoCurrency? selected;
|
||||
final List<CryptoCurrency> items;
|
||||
final List<CryptoCurrency> recents;
|
||||
final Set<CryptoCurrency> natives;
|
||||
final void Function(CryptoCurrency) onSelect;
|
||||
final String Function(CryptoCurrency) symbolResolver;
|
||||
final void Function(CryptoCurrency) onStablecoinTap;
|
||||
|
||||
@override
|
||||
State<_MultiNetworkPickerBody> createState() => _MultiNetworkPickerBodyState();
|
||||
}
|
||||
|
||||
class _MultiNetworkPickerBodyState extends State<_MultiNetworkPickerBody> {
|
||||
static const int _previewCount = 3;
|
||||
|
||||
final ScrollController _scrollController = ScrollController();
|
||||
bool _moreCryptosSectionExpanded = false;
|
||||
bool _xstocksSectionExpanded = false;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
final selected = widget.selected;
|
||||
if (selected == null) return;
|
||||
|
||||
final moreCryptos = _computeMoreCryptosSection(widget.items);
|
||||
final xstocks = _computeXstocksSection(widget.items);
|
||||
|
||||
if (moreCryptos.indexOf(selected) >= _previewCount) {
|
||||
_moreCryptosSectionExpanded = true;
|
||||
}
|
||||
|
||||
if (xstocks.indexOf(selected) >= _previewCount) {
|
||||
_xstocksSectionExpanded = true;
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_scrollController.dispose();
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
List<CryptoCurrency> _computeMoreCryptosSection(List<CryptoCurrency> from) {
|
||||
final list = from
|
||||
.where((c) =>
|
||||
!widget.natives.contains(c) &&
|
||||
cryptoCurrencyOrTokenToWalletType(c) == null &&
|
||||
c.tag == null &&
|
||||
!c.groups.contains(CurrencyGroups.stablecoin) &&
|
||||
!c.groups.contains(CurrencyGroups.tokenizedStock))
|
||||
.toList();
|
||||
|
||||
list.sort((a, b) => (a.fullName ?? a.title).toLowerCase().compareTo(
|
||||
(b.fullName ?? b.title).toLowerCase(),
|
||||
));
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
List<CryptoCurrency> _computeXstocksSection(List<CryptoCurrency> from) {
|
||||
return from
|
||||
.where((c) => c.groups.contains(CurrencyGroups.tokenizedStock))
|
||||
.toList(growable: false);
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final items = widget.items;
|
||||
final isSearching = widget.isSearching;
|
||||
final recents = widget.recents;
|
||||
final recentsLoaded = widget.recentsLoaded;
|
||||
final natives = widget.natives;
|
||||
final selected = widget.selected;
|
||||
final symbolResolver = widget.symbolResolver;
|
||||
final onSelect = widget.onSelect;
|
||||
final onStablecoinTap = widget.onStablecoinTap;
|
||||
|
||||
if (items.isEmpty) {
|
||||
return Center(
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(24),
|
||||
child: Text(
|
||||
S.of(context).picker_no_matches,
|
||||
textAlign: TextAlign.center,
|
||||
style: Theme.of(context).textTheme.bodyMedium?.copyWith(
|
||||
color: Theme.of(context).colorScheme.onSurfaceVariant,
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
if (isSearching) {
|
||||
return NotificationListener<ScrollNotification>(
|
||||
onNotification: (_) => true,
|
||||
child: ListView(
|
||||
controller: _scrollController,
|
||||
primary: false,
|
||||
physics: const ClampingScrollPhysics(),
|
||||
padding: const EdgeInsets.fromLTRB(16, 8, 16, 16),
|
||||
children: [
|
||||
CurrencyPickerListContainer(
|
||||
rows: [
|
||||
for (final item in items)
|
||||
CurrencyPickerRow(
|
||||
currency: item,
|
||||
isSelected: selected != null && selected == item,
|
||||
chainPillLabel: _chainPillLabelFor(item),
|
||||
chainBadgePath: _chainBadgePathFor(item),
|
||||
trailing: _SymbolTrailing(
|
||||
currency: item,
|
||||
symbolResolver: symbolResolver,
|
||||
),
|
||||
onTap: () => onSelect(item),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
final visibleRecents = recents.where(items.contains).toList(growable: false);
|
||||
|
||||
final seenStablecoinTitles = <String>{};
|
||||
final stablecoins = items
|
||||
.where((c) => isTrustedStablecoin(c) && seenStablecoinTitles.add(c.title.toUpperCase()))
|
||||
.toList(growable: false);
|
||||
|
||||
final cryptocurrencies = items.where(natives.contains).toList(growable: false);
|
||||
final moreCryptos = _computeMoreCryptosSection(items);
|
||||
final xstocks = _computeXstocksSection(items);
|
||||
final allAssets = [...items]..sort((a, b) => (a.fullName ?? a.title).toLowerCase().compareTo(
|
||||
(b.fullName ?? b.title).toLowerCase(),
|
||||
));
|
||||
|
||||
final section = _selectedSection(
|
||||
recents: visibleRecents,
|
||||
stablecoins: stablecoins,
|
||||
cryptocurrencies: cryptocurrencies,
|
||||
moreCryptos: moreCryptos,
|
||||
xstocks: xstocks,
|
||||
);
|
||||
|
||||
final moreCryptosVisible = _moreCryptosSectionExpanded
|
||||
? moreCryptos
|
||||
: moreCryptos.take(_previewCount).toList(growable: false);
|
||||
final xstocksVisible =
|
||||
_xstocksSectionExpanded ? xstocks : xstocks.take(_previewCount).toList(growable: false);
|
||||
|
||||
return NotificationListener<ScrollNotification>(
|
||||
onNotification: (_) => true,
|
||||
child: ListView(
|
||||
controller: _scrollController,
|
||||
primary: false,
|
||||
physics: const ClampingScrollPhysics(),
|
||||
padding: const EdgeInsets.fromLTRB(16, 8, 16, 16),
|
||||
children: [
|
||||
if (recentsLoaded && visibleRecents.isNotEmpty)
|
||||
_PickerSection(
|
||||
title: S.of(context).picker_section_recents,
|
||||
child: _RecentsRow(
|
||||
items: visibleRecents,
|
||||
selected: section == _SelSection.recents ? selected : null,
|
||||
symbolResolver: symbolResolver,
|
||||
onTap: onSelect,
|
||||
),
|
||||
),
|
||||
if (stablecoins.isNotEmpty)
|
||||
_PickerSection(
|
||||
title: S.of(context).picker_section_stablecoins,
|
||||
child: PillGrid(
|
||||
items: stablecoins,
|
||||
selected: section == _SelSection.stablecoins ? selected : null,
|
||||
onTap: onStablecoinTap,
|
||||
symbolResolver: symbolResolver,
|
||||
),
|
||||
),
|
||||
if (cryptocurrencies.isNotEmpty)
|
||||
_PickerSection(
|
||||
title: S.of(context).picker_section_cryptocurrencies,
|
||||
child: CurrencyPickerListContainer(
|
||||
rows: [
|
||||
for (final item in cryptocurrencies)
|
||||
CurrencyPickerRow(
|
||||
currency: item,
|
||||
isSelected: section == _SelSection.cryptocurrencies && selected == item,
|
||||
chainPillLabel: _chainPillLabelFor(item),
|
||||
chainBadgePath: _chainBadgePathFor(item),
|
||||
trailing: _SymbolTrailing(
|
||||
currency: item,
|
||||
symbolResolver: symbolResolver,
|
||||
),
|
||||
onTap: () => onSelect(item),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
if (moreCryptos.isNotEmpty)
|
||||
_PickerSection(
|
||||
title: S.of(context).picker_section_more_cryptocurrencies,
|
||||
child: CurrencyPickerListContainer(
|
||||
rows: [
|
||||
for (final item in moreCryptosVisible)
|
||||
CurrencyPickerRow(
|
||||
currency: item,
|
||||
isSelected: section == _SelSection.moreCryptocurrencies && selected == item,
|
||||
trailing: _SymbolTrailing(
|
||||
currency: item,
|
||||
symbolResolver: symbolResolver,
|
||||
),
|
||||
onTap: () => onSelect(item),
|
||||
),
|
||||
if (moreCryptos.length > _previewCount)
|
||||
_SeeAllRow(
|
||||
expanded: _moreCryptosSectionExpanded,
|
||||
onTap: () => setState(
|
||||
() => _moreCryptosSectionExpanded = !_moreCryptosSectionExpanded),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
if (xstocks.isNotEmpty)
|
||||
_PickerSection(
|
||||
title: S.of(context).picker_section_tokenized_stocks,
|
||||
child: CurrencyPickerListContainer(
|
||||
rows: [
|
||||
for (final item in xstocksVisible)
|
||||
CurrencyPickerRow(
|
||||
currency: item,
|
||||
isSelected: section == _SelSection.xstocks && selected == item,
|
||||
trailing: _SymbolTrailing(
|
||||
currency: item,
|
||||
symbolResolver: symbolResolver,
|
||||
),
|
||||
onTap: () => onSelect(item),
|
||||
chainPillLabel: _chainPillLabelFor(item),
|
||||
chainBadgePath: _chainBadgePathFor(item),
|
||||
),
|
||||
if (xstocks.length > _previewCount)
|
||||
_SeeAllRow(
|
||||
expanded: _xstocksSectionExpanded,
|
||||
onTap: () =>
|
||||
setState(() => _xstocksSectionExpanded = !_xstocksSectionExpanded),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
if (allAssets.isNotEmpty)
|
||||
_PickerSection(
|
||||
title: S.of(context).picker_section_all_assets,
|
||||
child: CurrencyPickerListContainer(
|
||||
rows: [
|
||||
for (final item in allAssets)
|
||||
CurrencyPickerRow(
|
||||
currency: item,
|
||||
isSelected: section == _SelSection.allAssets && selected == item,
|
||||
chainPillLabel: _chainPillLabelFor(item),
|
||||
chainBadgePath: _chainBadgePathFor(item),
|
||||
trailing: _SymbolTrailing(
|
||||
currency: item,
|
||||
symbolResolver: symbolResolver,
|
||||
),
|
||||
onTap: () => onSelect(item),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
String? _chainPillLabelFor(CryptoCurrency c) {
|
||||
if (c == CryptoCurrency.btcln) return _shortChainLabel(c);
|
||||
if (_isL2NativeEth(c)) return _shortChainLabel(c);
|
||||
if (widget.natives.contains(c)) return null;
|
||||
if (cryptoCurrencyOrTokenToWalletType(c) == null) return null;
|
||||
return _shortChainLabel(c);
|
||||
}
|
||||
|
||||
String _shortChainLabel(CryptoCurrency c) {
|
||||
if (cryptoCurrencyOrTokenToWalletType(c) == WalletType.bsc) return 'BSC';
|
||||
return chainNameForCurrency(c);
|
||||
}
|
||||
|
||||
String? _chainBadgePathFor(CryptoCurrency c) {
|
||||
if (_isL2NativeEth(c)) return c.chainIconPath;
|
||||
if (widget.natives.contains(c)) return null;
|
||||
final wt = cryptoCurrencyOrTokenToWalletType(c);
|
||||
if (wt == null) return null;
|
||||
return c.chainIconPath ?? walletTypeToCryptoCurrency(wt).chainIconPath;
|
||||
}
|
||||
|
||||
bool _isL2NativeEth(CryptoCurrency c) =>
|
||||
c == CryptoCurrency.arbEth || c == CryptoCurrency.baseEth;
|
||||
|
||||
_SelSection? _selectedSection({
|
||||
required List<CryptoCurrency> recents,
|
||||
required List<CryptoCurrency> stablecoins,
|
||||
required List<CryptoCurrency> cryptocurrencies,
|
||||
required List<CryptoCurrency> moreCryptos,
|
||||
required List<CryptoCurrency> xstocks,
|
||||
}) {
|
||||
final s = widget.selected;
|
||||
if (s == null) return null;
|
||||
if (recents.contains(s)) return _SelSection.recents;
|
||||
if (stablecoins.any((c) => c.title.toUpperCase() == s.title.toUpperCase())) {
|
||||
return _SelSection.stablecoins;
|
||||
}
|
||||
if (cryptocurrencies.contains(s)) return _SelSection.cryptocurrencies;
|
||||
if (moreCryptos.contains(s)) return _SelSection.moreCryptocurrencies;
|
||||
if (xstocks.contains(s)) return _SelSection.xstocks;
|
||||
return _SelSection.allAssets;
|
||||
}
|
||||
}
|
||||
|
||||
class _PickerSection extends StatelessWidget {
|
||||
const _PickerSection({required this.title, required this.child});
|
||||
|
||||
final String title;
|
||||
final Widget child;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
PickerSectionHeader(title: title),
|
||||
child,
|
||||
const SizedBox(height: 16),
|
||||
],
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class _SymbolTrailing extends StatelessWidget {
|
||||
const _SymbolTrailing({
|
||||
required this.currency,
|
||||
required this.symbolResolver,
|
||||
});
|
||||
|
||||
final CryptoCurrency currency;
|
||||
final String Function(CryptoCurrency) symbolResolver;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Text(
|
||||
symbolResolver(currency),
|
||||
style: Theme.of(context).textTheme.bodyMedium?.copyWith(
|
||||
fontWeight: FontWeight.w500,
|
||||
color: Theme.of(context).colorScheme.onSurfaceVariant,
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class _SeeAllRow extends StatelessWidget {
|
||||
const _SeeAllRow({
|
||||
required this.expanded,
|
||||
required this.onTap,
|
||||
});
|
||||
|
||||
final bool expanded;
|
||||
final VoidCallback onTap;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final colors = Theme.of(context).colorScheme;
|
||||
final label = expanded ? S.of(context).picker_show_less : S.of(context).picker_see_all;
|
||||
return InkWell(
|
||||
onTap: onTap,
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 14),
|
||||
child: Row(
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
label,
|
||||
style: Theme.of(context).textTheme.bodyMedium?.copyWith(
|
||||
fontWeight: FontWeight.w500,
|
||||
color: colors.primary,
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class _RecentsRow extends StatelessWidget {
|
||||
const _RecentsRow({
|
||||
required this.items,
|
||||
required this.selected,
|
||||
required this.symbolResolver,
|
||||
required this.onTap,
|
||||
});
|
||||
|
||||
final List<CryptoCurrency> items;
|
||||
final CryptoCurrency? selected;
|
||||
final String Function(CryptoCurrency) symbolResolver;
|
||||
final void Function(CryptoCurrency) onTap;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return SizedBox(
|
||||
height: 44,
|
||||
child: ListView.separated(
|
||||
scrollDirection: Axis.horizontal,
|
||||
itemCount: items.length,
|
||||
separatorBuilder: (_, __) => const SizedBox(width: 8),
|
||||
itemBuilder: (_, i) {
|
||||
final item = items[i];
|
||||
return _RecentPill(
|
||||
currency: item,
|
||||
label: symbolResolver(item),
|
||||
isSelected: selected != null && selected == item,
|
||||
onTap: () => onTap(item),
|
||||
);
|
||||
},
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class _RecentPill extends StatelessWidget {
|
||||
const _RecentPill({
|
||||
required this.currency,
|
||||
required this.label,
|
||||
required this.isSelected,
|
||||
required this.onTap,
|
||||
});
|
||||
|
||||
final CryptoCurrency currency;
|
||||
final String label;
|
||||
final bool isSelected;
|
||||
final VoidCallback onTap;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final colors = Theme.of(context).colorScheme;
|
||||
return InkWell(
|
||||
onTap: onTap,
|
||||
borderRadius: BorderRadius.circular(80),
|
||||
child: Container(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 10, vertical: 6),
|
||||
decoration: BoxDecoration(
|
||||
color: colors.surfaceContainer,
|
||||
borderRadius: BorderRadius.circular(80),
|
||||
border: isSelected ? Border.all(color: colors.primary, width: 1.5) : null,
|
||||
),
|
||||
child: Row(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
CakeImageWidget(
|
||||
imageUrl: currency.iconPath,
|
||||
width: 24,
|
||||
height: 24,
|
||||
fit: BoxFit.cover,
|
||||
),
|
||||
const SizedBox(width: 8),
|
||||
Text(
|
||||
label,
|
||||
style: Theme.of(context).textTheme.bodyMedium?.copyWith(
|
||||
fontWeight: FontWeight.w600,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
enum _SelSection {
|
||||
recents,
|
||||
stablecoins,
|
||||
cryptocurrencies,
|
||||
moreCryptocurrencies,
|
||||
xstocks,
|
||||
allAssets,
|
||||
}
|
||||
@@ -0,0 +1,97 @@
|
||||
import 'package:cake_wallet/exchange/trade.dart';
|
||||
import 'package:cake_wallet/exchange/trade_state.dart';
|
||||
import 'package:cake_wallet/new-ui/widgets/currency_picker/currency_picker_args.dart';
|
||||
import 'package:cake_wallet/order/order.dart';
|
||||
import 'package:cw_core/crypto_currency.dart';
|
||||
import 'package:hive/hive.dart';
|
||||
|
||||
class PickerRecentsLoader {
|
||||
const PickerRecentsLoader._();
|
||||
|
||||
static const int defaultLimit = 6;
|
||||
|
||||
static final Set<TradeState> _executedTradeStates = {
|
||||
TradeState.complete,
|
||||
TradeState.completed,
|
||||
TradeState.finished,
|
||||
TradeState.success,
|
||||
TradeState.settled,
|
||||
TradeState.traded,
|
||||
};
|
||||
|
||||
static Future<List<CryptoCurrency>> load({
|
||||
required RecentsSource source,
|
||||
required List<CryptoCurrency> visibleItems,
|
||||
int limit = defaultLimit,
|
||||
}) async {
|
||||
switch (source) {
|
||||
case RecentsSource.none:
|
||||
return const [];
|
||||
case RecentsSource.trades:
|
||||
return _fromTrades(visibleItems, limit);
|
||||
case RecentsSource.orders:
|
||||
return _fromOrders(visibleItems, limit);
|
||||
}
|
||||
}
|
||||
|
||||
static Future<List<CryptoCurrency>> _fromTrades(
|
||||
List<CryptoCurrency> visibleItems,
|
||||
int limit,
|
||||
) async {
|
||||
final trades = await Trade.getAll();
|
||||
final ordered = trades
|
||||
.where((t) => _executedTradeStates.contains(t.state))
|
||||
.toList()
|
||||
..sort((a, b) => (b.createdAt ?? DateTime.fromMillisecondsSinceEpoch(0))
|
||||
.compareTo(a.createdAt ?? DateTime.fromMillisecondsSinceEpoch(0)));
|
||||
|
||||
return _collect(
|
||||
ordered.expand((t) => [t.from, t.to]),
|
||||
visibleItems,
|
||||
limit,
|
||||
);
|
||||
}
|
||||
|
||||
static Future<List<CryptoCurrency>> _fromOrders(
|
||||
List<CryptoCurrency> visibleItems,
|
||||
int limit,
|
||||
) async {
|
||||
final orders = Hive.box<Order>(Order.boxName).values.toList()
|
||||
..sort((a, b) => b.createdAt.compareTo(a.createdAt));
|
||||
|
||||
return _collect(
|
||||
orders.expand((o) => [_tryResolve(o.from), _tryResolve(o.to)]),
|
||||
visibleItems,
|
||||
limit,
|
||||
);
|
||||
}
|
||||
|
||||
static List<CryptoCurrency> _collect(
|
||||
Iterable<CryptoCurrency?> candidates,
|
||||
List<CryptoCurrency> visibleItems,
|
||||
int limit,
|
||||
) {
|
||||
final visibleSet = visibleItems.toSet();
|
||||
final seen = <CryptoCurrency>{};
|
||||
final collected = <CryptoCurrency>[];
|
||||
|
||||
for (final candidate in candidates) {
|
||||
if (candidate == null) continue;
|
||||
if (!visibleSet.contains(candidate)) continue;
|
||||
if (!seen.add(candidate)) continue;
|
||||
collected.add(candidate);
|
||||
if (collected.length >= limit) break;
|
||||
}
|
||||
|
||||
return collected;
|
||||
}
|
||||
|
||||
static CryptoCurrency? _tryResolve(String? raw) {
|
||||
if (raw == null || raw.isEmpty) return null;
|
||||
try {
|
||||
return CryptoCurrency.fromString(raw);
|
||||
} catch (_) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class PickerSectionHeader extends StatelessWidget {
|
||||
const PickerSectionHeader({super.key, required this.title});
|
||||
|
||||
final String title;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Padding(
|
||||
padding: const EdgeInsets.fromLTRB(4, 12, 4, 8),
|
||||
child: Text(
|
||||
title,
|
||||
style: Theme.of(context).textTheme.bodyMedium?.copyWith(
|
||||
fontWeight: FontWeight.w500,
|
||||
color: Theme.of(context).colorScheme.onSurfaceVariant,
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,100 @@
|
||||
import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
|
||||
import 'package:cw_core/crypto_currency.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class PillGrid extends StatelessWidget {
|
||||
const PillGrid({
|
||||
super.key,
|
||||
required this.items,
|
||||
required this.selected,
|
||||
required this.onTap,
|
||||
required this.symbolResolver,
|
||||
});
|
||||
|
||||
final List<CryptoCurrency> items;
|
||||
final CryptoCurrency? selected;
|
||||
final ValueChanged<CryptoCurrency> onTap;
|
||||
final String Function(CryptoCurrency c) symbolResolver;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return LayoutBuilder(
|
||||
builder: (context, constraints) {
|
||||
const gap = 8.0;
|
||||
final cardWidth = (constraints.maxWidth - gap) / 2;
|
||||
return Wrap(
|
||||
spacing: gap,
|
||||
runSpacing: gap,
|
||||
children: [
|
||||
for (final item in items)
|
||||
SizedBox(
|
||||
width: cardWidth,
|
||||
child: _PillCard(
|
||||
currency: item,
|
||||
isSelected: selected != null && selected == item,
|
||||
label: symbolResolver(item),
|
||||
onTap: () => onTap(item),
|
||||
),
|
||||
),
|
||||
],
|
||||
);
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class _PillCard extends StatelessWidget {
|
||||
const _PillCard({
|
||||
required this.currency,
|
||||
required this.isSelected,
|
||||
required this.label,
|
||||
required this.onTap,
|
||||
});
|
||||
|
||||
final CryptoCurrency currency;
|
||||
final bool isSelected;
|
||||
final String label;
|
||||
final VoidCallback onTap;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final colors = Theme.of(context).colorScheme;
|
||||
return InkWell(
|
||||
onTap: onTap,
|
||||
borderRadius: BorderRadius.circular(80),
|
||||
child: Container(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 10, vertical: 10),
|
||||
decoration: BoxDecoration(
|
||||
color: colors.surfaceContainer,
|
||||
borderRadius: BorderRadius.circular(80),
|
||||
border: isSelected ? Border.all(color: colors.primary, width: 1.5) : null,
|
||||
),
|
||||
child: Row(
|
||||
children: [
|
||||
CakeImageWidget(
|
||||
imageUrl: currency.iconPath,
|
||||
width: 24,
|
||||
height: 24,
|
||||
fit: BoxFit.cover,
|
||||
),
|
||||
const SizedBox(width: 8),
|
||||
Expanded(
|
||||
child: Text(
|
||||
label,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
style: Theme.of(context).textTheme.bodyMedium?.copyWith(
|
||||
fontWeight: FontWeight.w600,
|
||||
),
|
||||
),
|
||||
),
|
||||
Icon(
|
||||
Icons.chevron_right,
|
||||
size: 18,
|
||||
color: colors.onSurfaceVariant,
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,140 @@
|
||||
import 'package:cake_wallet/generated/i18n.dart';
|
||||
import 'package:cake_wallet/new-ui/widgets/currency_picker/currency_picker_args.dart';
|
||||
import 'package:cake_wallet/new-ui/widgets/currency_picker/currency_picker_list_container.dart';
|
||||
import 'package:cake_wallet/new-ui/widgets/receive_page/receive_top_bar.dart';
|
||||
import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
|
||||
import 'package:cw_core/crypto_currency.dart';
|
||||
import 'package:cw_core/currency_for_wallet_type.dart';
|
||||
import 'package:cw_core/wallet_type.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class SelectNetworkPage extends StatelessWidget {
|
||||
const SelectNetworkPage({
|
||||
super.key,
|
||||
required this.assetTitle,
|
||||
required this.assetFullName,
|
||||
required this.assetIconPath,
|
||||
required this.variants,
|
||||
required this.onSelected,
|
||||
});
|
||||
|
||||
final String assetTitle;
|
||||
final String? assetFullName;
|
||||
final String? assetIconPath;
|
||||
final List<CryptoCurrency> variants;
|
||||
final ValueChanged<CryptoCurrency> onSelected;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final colors = Theme.of(context).colorScheme;
|
||||
return Scaffold(
|
||||
backgroundColor: colors.surface,
|
||||
body: SafeArea(
|
||||
child: Column(
|
||||
children: [
|
||||
ModalTopBar(
|
||||
title: S.of(context).select_network_title,
|
||||
leadingIcon: const Icon(Icons.arrow_back),
|
||||
onLeadingPressed: () => Navigator.of(context).maybePop(),
|
||||
),
|
||||
const SizedBox(height: 24),
|
||||
CakeImageWidget(
|
||||
imageUrl: assetIconPath,
|
||||
width: 75,
|
||||
height: 75,
|
||||
fit: BoxFit.cover,
|
||||
),
|
||||
const SizedBox(height: 12),
|
||||
Text(
|
||||
assetTitle,
|
||||
style: Theme.of(context).textTheme.titleLarge?.copyWith(
|
||||
fontSize: 20,
|
||||
fontWeight: FontWeight.w600,
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 12),
|
||||
Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 32),
|
||||
child: Text(
|
||||
S.of(context).select_network_subtitle,
|
||||
textAlign: TextAlign.center,
|
||||
style: Theme.of(context)
|
||||
.textTheme
|
||||
.bodyMedium
|
||||
?.copyWith(color: colors.onSurfaceVariant),
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 24),
|
||||
Expanded(
|
||||
child: ListView(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8),
|
||||
children: [
|
||||
CurrencyPickerListContainer(
|
||||
rows: [
|
||||
for (final variant in variants)
|
||||
_NetworkRow(
|
||||
variant: variant,
|
||||
onTap: () {
|
||||
final nav = Navigator.of(context);
|
||||
onSelected(variant);
|
||||
if (nav.canPop()) nav.pop();
|
||||
if (nav.canPop()) nav.pop();
|
||||
},
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class _NetworkRow extends StatelessWidget {
|
||||
const _NetworkRow({required this.variant, required this.onTap});
|
||||
|
||||
final CryptoCurrency variant;
|
||||
final VoidCallback onTap;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final colors = Theme.of(context).colorScheme;
|
||||
final wt = cryptoCurrencyOrTokenToWalletType(variant);
|
||||
final networkIconPath =
|
||||
wt != null ? getCryptoCurrencyIconForWalletListItem(wt) : variant.iconPath;
|
||||
final networkName = chainNameForCurrency(variant);
|
||||
return InkWell(
|
||||
onTap: onTap,
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 14),
|
||||
child: Row(
|
||||
children: [
|
||||
CakeImageWidget(
|
||||
imageUrl: networkIconPath,
|
||||
width: 28,
|
||||
height: 28,
|
||||
fit: BoxFit.cover,
|
||||
),
|
||||
const SizedBox(width: 12),
|
||||
Expanded(
|
||||
child: Text(
|
||||
networkName,
|
||||
style: Theme.of(context).textTheme.bodyMedium?.copyWith(
|
||||
fontWeight: FontWeight.w500,
|
||||
),
|
||||
),
|
||||
),
|
||||
Icon(
|
||||
Icons.chevron_right,
|
||||
size: 20,
|
||||
color: colors.onSurfaceVariant,
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,163 @@
|
||||
import 'package:cake_wallet/generated/i18n.dart';
|
||||
import 'package:cake_wallet/new-ui/widgets/currency_picker/currency_picker_args.dart';
|
||||
import 'package:cake_wallet/new-ui/widgets/currency_picker/currency_picker_list_container.dart';
|
||||
import 'package:cake_wallet/new-ui/widgets/currency_picker/currency_picker_row.dart';
|
||||
import 'package:cake_wallet/new-ui/widgets/currency_picker/currency_picker_search_field.dart';
|
||||
import 'package:cake_wallet/new-ui/widgets/currency_picker/picker_section_header.dart';
|
||||
import 'package:cake_wallet/reactions/wallet_utils.dart';
|
||||
import 'package:cw_core/crypto_currency.dart';
|
||||
import 'package:cw_core/currency_for_wallet_type.dart';
|
||||
import 'package:cw_core/wallet_type.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class SingleNetworkCurrencyPicker extends StatefulWidget {
|
||||
const SingleNetworkCurrencyPicker({super.key, required this.args});
|
||||
|
||||
final CurrencyPickerArgs args;
|
||||
|
||||
@override
|
||||
State<SingleNetworkCurrencyPicker> createState() => _SingleNetworkCurrencyPickerState();
|
||||
}
|
||||
|
||||
class _SingleNetworkCurrencyPickerState extends State<SingleNetworkCurrencyPicker> {
|
||||
CurrencyPickerArgs get _args => widget.args;
|
||||
WalletType get _network => _args.filterByNetwork!;
|
||||
final TextEditingController _searchController = TextEditingController();
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_searchController.addListener(() => setState(() {}));
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_searchController.dispose();
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
void _selectCurrency(CryptoCurrency currency) {
|
||||
_args.onSelected(currency);
|
||||
Navigator.of(context).maybePop();
|
||||
}
|
||||
|
||||
double _fiatValueFor(CryptoCurrency c) => _args.balanceByAsset?[c]?.fiatValue ?? 0;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final native = walletTypeToCryptoCurrency(_network);
|
||||
final query = _searchController.text.trim();
|
||||
final tokens = _args.items
|
||||
.where((c) => c != native)
|
||||
.where((c) => currencyMatchesQuery(c, query))
|
||||
.toList();
|
||||
|
||||
final insertOrder = {for (var i = 0; i < tokens.length; i++) tokens[i]: i};
|
||||
tokens.sort((a, b) {
|
||||
final av = _fiatValueFor(a);
|
||||
final bv = _fiatValueFor(b);
|
||||
if (bv != av) return bv.compareTo(av);
|
||||
return (insertOrder[a] ?? 0).compareTo(insertOrder[b] ?? 0);
|
||||
});
|
||||
final nativeMatches = currencyMatchesQuery(native, query);
|
||||
|
||||
return Column(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
children: [
|
||||
Expanded(
|
||||
child: (nativeMatches || tokens.isNotEmpty)
|
||||
? ListView(
|
||||
padding: const EdgeInsets.fromLTRB(16, 8, 16, 16),
|
||||
children: [
|
||||
if (nativeMatches) ...[
|
||||
PickerSectionHeader(title: S.of(context).picker_section_gas_token),
|
||||
CurrencyPickerListContainer(
|
||||
rows: [
|
||||
CurrencyPickerRow(
|
||||
currency: native,
|
||||
isSelected: _args.selected == native,
|
||||
trailing: _BalanceTrailing(balance: _args.balanceByAsset?[native]),
|
||||
onTap: () => _selectCurrency(native),
|
||||
),
|
||||
],
|
||||
),
|
||||
const SizedBox(height: 16),
|
||||
],
|
||||
if (tokens.isNotEmpty) ...[
|
||||
PickerSectionHeader(
|
||||
title: S
|
||||
.of(context)
|
||||
.picker_section_tokens_standard(tokenStandardFor(_network)),
|
||||
),
|
||||
CurrencyPickerListContainer(
|
||||
rows: [
|
||||
for (final t in tokens)
|
||||
CurrencyPickerRow(
|
||||
currency: t,
|
||||
isSelected: _args.selected == t,
|
||||
trailing: _BalanceTrailing(balance: _args.balanceByAsset?[t]),
|
||||
onTap: () => _selectCurrency(t),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
],
|
||||
)
|
||||
: Center(
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(24),
|
||||
child: Text(
|
||||
S.of(context).picker_no_matches,
|
||||
textAlign: TextAlign.center,
|
||||
style: Theme.of(context).textTheme.bodyMedium?.copyWith(
|
||||
color: Theme.of(context).colorScheme.onSurfaceVariant,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
CurrencyPickerSearchField(
|
||||
controller: _searchController,
|
||||
hintText: S.of(context).search,
|
||||
),
|
||||
const SizedBox(height: 24),
|
||||
],
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class _BalanceTrailing extends StatelessWidget {
|
||||
const _BalanceTrailing({required this.balance});
|
||||
|
||||
final CurrencyPickerBalance? balance;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final colors = Theme.of(context).colorScheme;
|
||||
final amount = balance?.amount ?? '—';
|
||||
final fiat = balance?.fiat;
|
||||
return Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.end,
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
Text(
|
||||
amount,
|
||||
style: Theme.of(context).textTheme.bodyMedium?.copyWith(
|
||||
fontWeight: FontWeight.w500,
|
||||
),
|
||||
),
|
||||
if (fiat != null && fiat.isNotEmpty)
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(top: 2),
|
||||
child: Text(
|
||||
fiat,
|
||||
style: Theme.of(context).textTheme.bodySmall?.copyWith(
|
||||
fontWeight: FontWeight.w400,
|
||||
color: colors.onSurfaceVariant,
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -1,16 +1,16 @@
|
||||
import 'package:cake_wallet/entities/fiat_currency.dart';
|
||||
import 'package:cake_wallet/generated/i18n.dart';
|
||||
import 'package:cake_wallet/new-ui/widgets/currency_picker/currency_picker_args.dart';
|
||||
import 'package:cake_wallet/new-ui/widgets/currency_picker/currency_picker_sheet.dart';
|
||||
import 'package:cake_wallet/new-ui/widgets/currency_picker/fiat_currency_picker_sheet.dart';
|
||||
import 'package:cake_wallet/new-ui/widgets/coins_page/token_image_widget.dart';
|
||||
import 'package:cake_wallet/new-ui/widgets/new_primary_button.dart';
|
||||
import 'package:cake_wallet/new-ui/widgets/receive_page/receive_top_bar.dart';
|
||||
import 'package:cake_wallet/src/screens/exchange/widgets/currency_picker.dart';
|
||||
import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
|
||||
import 'package:cake_wallet/utils/show_pop_up.dart';
|
||||
import 'package:cake_wallet/view_model/wallet_address_list/wallet_address_list_view_model.dart';
|
||||
import 'package:cw_core/crypto_currency.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_mobx/flutter_mobx.dart';
|
||||
import 'package:flutter_svg/svg.dart';
|
||||
|
||||
class ReceiveAmountModal extends StatefulWidget {
|
||||
const ReceiveAmountModal(
|
||||
@@ -217,35 +217,31 @@ class _ReceiveAmountModalState extends State<ReceiveAmountModal> {
|
||||
);
|
||||
}
|
||||
|
||||
void _presentTokenCurrencyPicker(BuildContext context) async {
|
||||
await showPopUp(
|
||||
builder: (_) => CurrencyPicker(
|
||||
selectedAtIndex: widget.walletAddressListViewModel.tokenCurrencyIndex,
|
||||
items: widget.walletAddressListViewModel.tokenCurrencies,
|
||||
hintText: S.of(context).search_currency,
|
||||
onItemSelected: widget.walletAddressListViewModel.setTokenCurrency,
|
||||
),
|
||||
void _presentTokenCurrencyPicker(BuildContext context) {
|
||||
final items = widget.walletAddressListViewModel.tokenCurrencies
|
||||
.whereType<CryptoCurrency>()
|
||||
.toList();
|
||||
CurrencyPickerSheet.show(
|
||||
context: context,
|
||||
args: CurrencyPickerArgs(
|
||||
items: items,
|
||||
selected: widget.walletAddressListViewModel.tokenCurrency,
|
||||
onSelected: widget.walletAddressListViewModel.setTokenCurrency,
|
||||
symbolResolver: widget.walletAddressListViewModel.amountParsingProxy.getCryptoSymbol,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
void _presentFiatCurrencyPicker(BuildContext context) async {
|
||||
final currs = widget.walletAddressListViewModel.currencies.toList();
|
||||
// the first options should be the crypto and the default fiat currency
|
||||
currs.sort((a, b) {
|
||||
if(a == widget.walletAddressListViewModel.fiatCurrency || a is CryptoCurrency) return -1;
|
||||
if(b == widget.walletAddressListViewModel.fiatCurrency || a is CryptoCurrency) return 1;
|
||||
return 0;
|
||||
});
|
||||
|
||||
await showPopUp(
|
||||
builder: (_) => CurrencyPicker(
|
||||
selectedAtIndex: currs.indexOf(widget.walletAddressListViewModel.selectedCurrency),
|
||||
items: currs,
|
||||
hintText: S.of(context).search_currency,
|
||||
onItemSelected: widget.walletAddressListViewModel.selectCurrency,
|
||||
),
|
||||
void _presentFiatCurrencyPicker(BuildContext context) {
|
||||
final selected = widget.walletAddressListViewModel.selectedCurrency;
|
||||
final cryptoOption =
|
||||
widget.walletAddressListViewModel.currencies.whereType<CryptoCurrency>().firstOrNull;
|
||||
FiatCurrencyPickerSheet.show(
|
||||
context: context,
|
||||
selected: selected,
|
||||
cryptoOption: cryptoOption,
|
||||
onSelected: widget.walletAddressListViewModel.selectCurrency,
|
||||
onCryptoSelected: widget.walletAddressListViewModel.selectCurrency,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -52,4 +52,22 @@ bool hasTokens(WalletType walletType) {
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
String tokenStandardFor(WalletType walletType) {
|
||||
switch (walletType) {
|
||||
case WalletType.ethereum:
|
||||
case WalletType.polygon:
|
||||
case WalletType.arbitrum:
|
||||
case WalletType.base:
|
||||
return 'ERC-20';
|
||||
case WalletType.bsc:
|
||||
return 'BEP-20';
|
||||
case WalletType.solana:
|
||||
return 'SPL';
|
||||
case WalletType.tron:
|
||||
return 'TRC-20';
|
||||
default:
|
||||
return walletTypeToString(walletType);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,9 @@ import 'package:cake_wallet/core/address_validator.dart';
|
||||
import 'package:cake_wallet/di.dart';
|
||||
import 'package:cake_wallet/entities/parse_address_from_domain.dart';
|
||||
import 'package:cake_wallet/generated/i18n.dart';
|
||||
import 'package:cake_wallet/new-ui/widgets/currency_picker/currency_picker_args.dart';
|
||||
import 'package:cake_wallet/new-ui/widgets/currency_picker/currency_picker_sheet.dart';
|
||||
import 'package:cake_wallet/new-ui/widgets/currency_picker/fiat_currency_picker_sheet.dart';
|
||||
import 'package:cake_wallet/routes.dart';
|
||||
import 'package:cake_wallet/src/screens/base_page.dart';
|
||||
import 'package:cake_wallet/src/screens/exchange/widgets/desktop_exchange_cards_section.dart';
|
||||
@@ -398,6 +401,7 @@ class BuySellPage extends BasePage {
|
||||
showLimitsField: false,
|
||||
currencies: buySellViewModel.fiatCurrencies,
|
||||
onCurrencySelected: (currency) => buySellViewModel.changeFiatCurrency(currency: currency),
|
||||
onTapCurrencyPicker: _presentFiatPicker,
|
||||
imageArrow: Image.asset(
|
||||
'assets/images/arrow_bottom_purple_icon.png',
|
||||
color: Theme.of(context).colorScheme.primary,
|
||||
@@ -435,6 +439,7 @@ class BuySellPage extends BasePage {
|
||||
isMoneroWallet: buySellViewModel.wallet == WalletType.monero,
|
||||
currencies: buySellViewModel.cryptoCurrencies,
|
||||
onCurrencySelected: (currency) => buySellViewModel.changeCryptoCurrency(currency: currency),
|
||||
onTapCurrencyPicker: _presentCryptoPicker,
|
||||
imageArrow: Image.asset(
|
||||
'assets/images/arrow_bottom_cake_green.png',
|
||||
color: Theme.of(context).colorScheme.primary,
|
||||
@@ -504,6 +509,29 @@ class BuySellPage extends BasePage {
|
||||
);
|
||||
}
|
||||
|
||||
void _presentFiatPicker(BuildContext context) {
|
||||
FiatCurrencyPickerSheet.show(
|
||||
context: context,
|
||||
selected: buySellViewModel.fiatCurrency,
|
||||
onSelected: (currency) => buySellViewModel.changeFiatCurrency(currency: currency),
|
||||
);
|
||||
}
|
||||
|
||||
void _presentCryptoPicker(BuildContext context) {
|
||||
final items = [...buySellViewModel.cryptoCurrencies];
|
||||
appendEvmDefaultTokens(items);
|
||||
CurrencyPickerSheet.show(
|
||||
context: context,
|
||||
args: CurrencyPickerArgs(
|
||||
items: items,
|
||||
selected: buySellViewModel.cryptoCurrency,
|
||||
recentsSource: RecentsSource.orders,
|
||||
onSelected: (currency) => buySellViewModel.changeCryptoCurrency(currency: currency),
|
||||
symbolResolver: buySellViewModel.amountParsingProxy.getCryptoSymbol,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Future<String> fetchParsedAddress(
|
||||
BuildContext context,
|
||||
String domain,
|
||||
|
||||
@@ -48,6 +48,7 @@ class ExchangeCard<T extends Currency> extends StatefulWidget {
|
||||
this.onPushAddressBookButton,
|
||||
this.onDispose,
|
||||
this.useSatoshis = false,
|
||||
this.onTapCurrencyPicker,
|
||||
required this.cardInstanceName,
|
||||
}) : super(key: key);
|
||||
|
||||
@@ -84,6 +85,7 @@ class ExchangeCard<T extends Currency> extends StatefulWidget {
|
||||
final String cardInstanceName;
|
||||
final Color fillColor;
|
||||
final bool useSatoshis;
|
||||
final void Function(BuildContext context)? onTapCurrencyPicker;
|
||||
|
||||
@override
|
||||
ExchangeCardState<T> createState() => ExchangeCardState<T>();
|
||||
@@ -447,6 +449,10 @@ class ExchangeCardState<T extends Currency> extends State<ExchangeCard<T>> {
|
||||
}
|
||||
|
||||
void _presentPicker(BuildContext context) {
|
||||
if (widget.onTapCurrencyPicker != null) {
|
||||
widget.onTapCurrencyPicker!(context);
|
||||
return;
|
||||
}
|
||||
showPopUp<void>(
|
||||
context: context,
|
||||
builder: (_) => CurrencyPicker(
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import 'package:cake_wallet/entities/bitcoin_amount_display_mode.dart';
|
||||
import 'package:cake_wallet/entities/fiat_currency.dart';
|
||||
import 'package:cake_wallet/entities/language_service.dart';
|
||||
import 'package:cake_wallet/entities/new_ui_entities/list_item/list_item_regular_row.dart';
|
||||
import 'package:cake_wallet/entities/new_ui_entities/list_item/list_item_selector.dart';
|
||||
import 'package:cake_wallet/entities/new_ui_entities/list_item/list_item_toggle.dart';
|
||||
import 'package:cake_wallet/entities/sync_status_display_mode.dart';
|
||||
import 'package:cake_wallet/generated/i18n.dart';
|
||||
import 'package:cake_wallet/new-ui/widgets/currency_picker/fiat_currency_picker_sheet.dart';
|
||||
import 'package:cake_wallet/new-ui/widgets/receive_page/receive_top_bar.dart';
|
||||
import 'package:cake_wallet/src/screens/settings/widgets/settings_choices_cell.dart';
|
||||
import 'package:cake_wallet/src/screens/settings/widgets/settings_theme_choice.dart';
|
||||
@@ -179,35 +179,11 @@ class DisplaySettingsPage extends StatelessWidget {
|
||||
keyValue: "display_settings_fiat_currency",
|
||||
label: S.of(context).settings_currency,
|
||||
options: [_displaySettingsViewModel.fiatCurrency.title],
|
||||
onTap: () async {
|
||||
final items = FiatCurrency.all;
|
||||
|
||||
final selectedAtIndex =
|
||||
items.indexOf(_displaySettingsViewModel.fiatCurrency);
|
||||
|
||||
await showPopUp<void>(
|
||||
context: context,
|
||||
builder: (_) => Picker(
|
||||
items: items,
|
||||
selectedAtIndex: selectedAtIndex,
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
onItemSelected: (FiatCurrency currency) {
|
||||
_displaySettingsViewModel.setFiatCurrency(currency);
|
||||
},
|
||||
images: FiatCurrency.all
|
||||
.map((e) => Image.asset("assets/images/flags/${e.countryCode}.png"))
|
||||
.toList(),
|
||||
hintText: S.of(context).search_currency,
|
||||
isGridView: true,
|
||||
matchingCriteria: (FiatCurrency currency, String searchText) {
|
||||
return currency.title.toLowerCase().contains(searchText) ||
|
||||
currency.fullName.toLowerCase().contains(searchText);
|
||||
},
|
||||
isSeparated: false,
|
||||
|
||||
),
|
||||
);
|
||||
}),
|
||||
onTap: () => FiatCurrencyPickerSheet.show(
|
||||
context: context,
|
||||
selected: _displaySettingsViewModel.fiatCurrency,
|
||||
onSelected: _displaySettingsViewModel.setFiatCurrency,
|
||||
)),
|
||||
ListItemSelector(
|
||||
keyValue: "display_settings_language",
|
||||
label: S.of(context).settings_change_language,
|
||||
|
||||
@@ -5,6 +5,7 @@ import 'package:cake_wallet/buy/buy_quote.dart';
|
||||
import 'package:cake_wallet/buy/onramper/onramper_buy_provider.dart';
|
||||
import 'package:cake_wallet/buy/payment_method.dart';
|
||||
import 'package:cake_wallet/buy/sell_buy_states.dart';
|
||||
import 'package:cake_wallet/core/amount_parsing_proxy.dart';
|
||||
import 'package:cake_wallet/core/selectable_option.dart';
|
||||
import 'package:cake_wallet/core/wallet_change_listener_view_model.dart';
|
||||
import 'package:cake_wallet/entities/fiat_currency.dart';
|
||||
@@ -87,6 +88,8 @@ abstract class BuySellViewModelBase extends WalletChangeListenerViewModel with S
|
||||
|
||||
final AppStore _appStore;
|
||||
|
||||
AmountParsingProxy get amountParsingProxy => _appStore.amountParsingProxy;
|
||||
|
||||
Quote? bestRateQuote;
|
||||
|
||||
Quote? selectedQuote;
|
||||
|
||||
@@ -38,11 +38,9 @@ import 'package:cake_wallet/exchange/provider/xoswap_exchange_provider.dart';
|
||||
import 'package:cake_wallet/exchange/trade.dart';
|
||||
import 'package:cake_wallet/exchange/trade_request.dart';
|
||||
import 'package:cake_wallet/generated/i18n.dart';
|
||||
import 'package:cake_wallet/src/screens/exchange/widgets/currency_picker.dart';
|
||||
import 'package:cake_wallet/new-ui/widgets/currency_picker/fiat_currency_picker_sheet.dart';
|
||||
import 'package:cake_wallet/store/app_store.dart';
|
||||
import 'package:cake_wallet/utils/exchange_provider_logger.dart';
|
||||
import 'package:cake_wallet/utils/show_pop_up.dart';
|
||||
import 'package:cw_core/currency.dart';
|
||||
import "package:cw_core/wallet_info.dart";
|
||||
import 'package:cake_wallet/store/dashboard/fiat_conversion_store.dart';
|
||||
import 'package:cake_wallet/store/dashboard/trades_store.dart';
|
||||
@@ -270,17 +268,10 @@ abstract class ExchangeViewModelBase extends WalletChangeListenerViewModel with
|
||||
}
|
||||
|
||||
void showFiatCurrencyPicker(BuildContext context) {
|
||||
showPopUp<void>(
|
||||
FiatCurrencyPickerSheet.show(
|
||||
context: context,
|
||||
builder: (_) => CurrencyPicker(
|
||||
key: ValueKey('send_page_currency_picker_dialog_button_key'),
|
||||
selectedAtIndex: FiatCurrency.all.indexOf(fiat),
|
||||
items: FiatCurrency.all,
|
||||
hintText: S.of(context).search_currency,
|
||||
onItemSelected: (Currency cur) async {
|
||||
_settingsStore.fiatCurrency = (cur as FiatCurrency);
|
||||
},
|
||||
),
|
||||
selected: fiat,
|
||||
onSelected: (cur) => _settingsStore.fiatCurrency = cur,
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@ import 'dart:core';
|
||||
import 'dart:developer' as dev;
|
||||
|
||||
import 'package:cake_wallet/bitcoin/bitcoin.dart';
|
||||
import 'package:cake_wallet/core/amount_parsing_proxy.dart';
|
||||
import 'package:cake_wallet/core/fiat_conversion_service.dart';
|
||||
import 'package:cake_wallet/core/wallet_change_listener_view_model.dart';
|
||||
import 'package:cake_wallet/decred/decred.dart';
|
||||
@@ -167,6 +168,8 @@ abstract class WalletAddressListViewModelBase extends WalletChangeListenerViewMo
|
||||
bool get hasPayjoin =>
|
||||
wallet.type == WalletType.bitcoin && !isLightning && !isSilentPayments && uri.toString().contains("payjo.in");
|
||||
|
||||
AmountParsingProxy get amountParsingProxy => _appStore.amountParsingProxy;
|
||||
|
||||
@computed
|
||||
FiatCurrency get fiatCurrency => _appStore.settingsStore.fiatCurrency;
|
||||
|
||||
|
||||
@@ -277,6 +277,7 @@
|
||||
"creating_new_wallet": "جارٍ إنشاء محفظة جديدة",
|
||||
"creating_new_wallet_error": "خطأ: ${description}",
|
||||
"creation_date": "تاريخ الإنشاء",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"current_swap": "المبادلة الحالية",
|
||||
"current_wallet": "المحفظة الحالية",
|
||||
"custom": "مخصص",
|
||||
@@ -450,14 +451,12 @@
|
||||
"expires": "ينتهي",
|
||||
"expiresOn": "تنتهي في",
|
||||
"expiry_and_validity": "تاريخ الانتهاء والصلاحية",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"export_backup": "تصدير النسخة الاحتياطية",
|
||||
"export_csv": "Export CSV",
|
||||
"export_lightning_logs": "تصدير سجلات Lightning",
|
||||
"export_logs": "تصدير السجلات",
|
||||
"export_outputs": "تصدير المخرجات",
|
||||
"export_payjoin_logs": "تصدير سجلات Payjoin",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"extend_session": "تمديد الجلسة",
|
||||
"external": "خارجي",
|
||||
"external_wallet": "محفظة خارجية",
|
||||
@@ -494,6 +493,7 @@
|
||||
"gas_price": "سعر الغاز",
|
||||
"general": "عام",
|
||||
"generate_name": "توليد اسم",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"generating_gift_card": "جارٍ إنشاء بطاقة هدية",
|
||||
"generating_transaction": "جارٍ إنشاء المعاملة",
|
||||
"get_a": "احصل على ",
|
||||
@@ -736,6 +736,22 @@
|
||||
"payments": "المدفوعات",
|
||||
"pending": " (معلّق)",
|
||||
"percentageOf": "من ${amount}",
|
||||
"picker_chip_all": "الجميع",
|
||||
"picker_no_matches": "لا توجد مباريات",
|
||||
"picker_section_all_assets": "جميع الأصول (من الألف إلى الياء)",
|
||||
"picker_section_all_currencies": "جميع العملات",
|
||||
"picker_section_crypto": "تشفير",
|
||||
"picker_section_cryptocurrencies": "العملات المشفرة",
|
||||
"picker_section_gas_token": "رمز الغاز",
|
||||
"picker_section_more_cryptocurrencies": "المزيد من العملات المشفرة",
|
||||
"picker_section_popular": "شائع",
|
||||
"picker_section_recents": "الأخيرة",
|
||||
"picker_section_selected": "مختارة",
|
||||
"picker_section_stablecoins": "العملات المستقرة",
|
||||
"picker_section_tokenized_stocks": "الأسهم المُرمزة (xStocks)",
|
||||
"picker_section_tokens_standard": "الرموز المميزة (${standard})",
|
||||
"picker_see_all": "شاهد الكل",
|
||||
"picker_show_less": "عرض أقل",
|
||||
"pin_at_top": "تثبيت ${token} في الأعلى",
|
||||
"pin_is_incorrect": "رمز PIN غير صحيح",
|
||||
"pin_number": "رقم PIN",
|
||||
@@ -926,12 +942,16 @@
|
||||
"select_a_wallet": "اختر محفظة",
|
||||
"select_address_to_copy": "حدد العنوان لنسخه",
|
||||
"select_all": "تحديد الكل",
|
||||
"select_asset": "حدد الأصول",
|
||||
"select_backup_file": "حدد ملف النسخ الاحتياطي",
|
||||
"select_buy_provider_notice": "حدّد مزوّد الشراء أعلاه. يمكنك تخطّي هذه الشاشة عبر تعيين مزوّد الشراء الافتراضي في إعدادات التطبيق.",
|
||||
"select_destination": "يرجى تحديد وجهة ملف النسخ الاحتياطي.",
|
||||
"select_fiat_currency_title": "حدد العملة",
|
||||
"select_hw_account_below": "يرجى تحديد الحساب المراد استعادته أدناه:",
|
||||
"select_manufacturer_title": "اختر الشركة المصنِّعة",
|
||||
"select_network": "اختر الشبكة",
|
||||
"select_network_subtitle": "هذا الأصل موجود في شبكات متعددة. حدد الشخص الذي تريد استخدامه",
|
||||
"select_network_title": "حدد الشبكة",
|
||||
"select_other_wallet": "اختر محفظة أخرى",
|
||||
"select_receiver": "حدد المستلم",
|
||||
"select_sell_provider_notice": "اختر مزوّد البيع أعلاه. يمكنك تخطّي هذه الشاشة بتعيين مزوّد البيع الافتراضي في إعدادات التطبيق.",
|
||||
|
||||
@@ -277,6 +277,7 @@
|
||||
"creating_new_wallet": "Създаване на нов портфейл",
|
||||
"creating_new_wallet_error": "Грешка: ${description}",
|
||||
"creation_date": "Дата на създаване",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"current_swap": "Текущ суап",
|
||||
"current_wallet": "Текущ портфейл",
|
||||
"custom": "По избор",
|
||||
@@ -450,14 +451,12 @@
|
||||
"expires": "Изтича",
|
||||
"expiresOn": "Изтича на",
|
||||
"expiry_and_validity": "Срок на валидност и валидност",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"export_backup": "Експортиране на резервно копие",
|
||||
"export_csv": "Export CSV",
|
||||
"export_lightning_logs": "Експортиране на Lightning логове",
|
||||
"export_logs": "Експортиране на логове",
|
||||
"export_outputs": "Експортиране на изходи",
|
||||
"export_payjoin_logs": "Експортиране на Payjoin логове",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"extend_session": "Удължи сесията",
|
||||
"external": "Външен",
|
||||
"external_wallet": "Външен портфейл",
|
||||
@@ -494,6 +493,7 @@
|
||||
"gas_price": "Цена на gas",
|
||||
"general": "Общи",
|
||||
"generate_name": "Генериране на име",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"generating_gift_card": "Генериране на подаръчна карта",
|
||||
"generating_transaction": "Генериране на транзакция",
|
||||
"get_a": "Вземете ",
|
||||
@@ -736,6 +736,22 @@
|
||||
"payments": "Плащания",
|
||||
"pending": " (в изчакване)",
|
||||
"percentageOf": "от ${amount}",
|
||||
"picker_chip_all": "Всички",
|
||||
"picker_no_matches": "Няма съвпадения",
|
||||
"picker_section_all_assets": "Всички активи (A-Z)",
|
||||
"picker_section_all_currencies": "Всички валути",
|
||||
"picker_section_crypto": "Крипто",
|
||||
"picker_section_cryptocurrencies": "Криптовалути",
|
||||
"picker_section_gas_token": "Газов жетон",
|
||||
"picker_section_more_cryptocurrencies": "Още криптовалути",
|
||||
"picker_section_popular": "Популярни",
|
||||
"picker_section_recents": "Скорошни",
|
||||
"picker_section_selected": "Избрано",
|
||||
"picker_section_stablecoins": "Стабилни монети",
|
||||
"picker_section_tokenized_stocks": "Токенизирани акции (xStocks)",
|
||||
"picker_section_tokens_standard": "Токени (${standard})",
|
||||
"picker_see_all": "Вижте всички",
|
||||
"picker_show_less": "Покажи по-малко",
|
||||
"pin_at_top": "Закачи ${token} най-отгоре",
|
||||
"pin_is_incorrect": "PIN кодът е неправилен",
|
||||
"pin_number": "PIN номер",
|
||||
@@ -926,12 +942,16 @@
|
||||
"select_a_wallet": "Изберете портфейл",
|
||||
"select_address_to_copy": "Изберете адрес за копиране",
|
||||
"select_all": "Избери всички",
|
||||
"select_asset": "Изберете Актив",
|
||||
"select_backup_file": "Изберете файл с резервно копие",
|
||||
"select_buy_provider_notice": "Изберете доставчик за покупка по‑горе. Можете да пропуснете този екран, като зададете доставчик за покупка по подразбиране в настройките на приложението.",
|
||||
"select_destination": "Моля, изберете местоположение за файла с резервно копие.",
|
||||
"select_fiat_currency_title": "Изберете Валута",
|
||||
"select_hw_account_below": "Моля, изберете кой акаунт да възстановите по-долу:",
|
||||
"select_manufacturer_title": "Изберете производител",
|
||||
"select_network": "Изберете мрежа",
|
||||
"select_network_subtitle": "Този актив присъства в множество мрежи. Изберете този, който искате да използвате",
|
||||
"select_network_title": "Изберете Мрежа",
|
||||
"select_other_wallet": "Изберете друг портфейл",
|
||||
"select_receiver": "Изберете получател",
|
||||
"select_sell_provider_notice": "Изберете доставчик за продажба по-горе. Можете да пропуснете този екран, като зададете доставчик за продажба по подразбиране в настройките на приложението.",
|
||||
|
||||
@@ -277,6 +277,7 @@
|
||||
"creating_new_wallet": "Vytváření nové peněženky",
|
||||
"creating_new_wallet_error": "Chyba: ${description}",
|
||||
"creation_date": "Datum vytvoření",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"current_swap": "Aktuální swap",
|
||||
"current_wallet": "Aktuální peněženka",
|
||||
"custom": "Vlastní",
|
||||
@@ -450,14 +451,12 @@
|
||||
"expires": "Vyprší",
|
||||
"expiresOn": "Vyprší dne",
|
||||
"expiry_and_validity": "Vypršení platnosti",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"export_backup": "Exportovat zálohu",
|
||||
"export_csv": "Export CSV",
|
||||
"export_lightning_logs": "Exportovat protokoly Lightning",
|
||||
"export_logs": "Exportovat protokoly",
|
||||
"export_outputs": "Exportovat výstupy",
|
||||
"export_payjoin_logs": "Exportovat protokoly Payjoin",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"extend_session": "Prodloužit relaci",
|
||||
"external": "Externí",
|
||||
"external_wallet": "Externí peněženka",
|
||||
@@ -494,6 +493,7 @@
|
||||
"gas_price": "Cena gasu",
|
||||
"general": "Obecné",
|
||||
"generate_name": "Vygenerovat jméno",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"generating_gift_card": "Generuji dárkovou kartu",
|
||||
"generating_transaction": "Generování transakce",
|
||||
"get_a": "Získejte ",
|
||||
@@ -736,6 +736,22 @@
|
||||
"payments": "Platby",
|
||||
"pending": " (čekající)",
|
||||
"percentageOf": "z ${amount}",
|
||||
"picker_chip_all": "Vše",
|
||||
"picker_no_matches": "Žádné zápasy",
|
||||
"picker_section_all_assets": "Všechna aktiva (A–Z)",
|
||||
"picker_section_all_currencies": "Všechny měny",
|
||||
"picker_section_crypto": "Krypto",
|
||||
"picker_section_cryptocurrencies": "Kryptoměny",
|
||||
"picker_section_gas_token": "Token na plyn",
|
||||
"picker_section_more_cryptocurrencies": "Více kryptoměn",
|
||||
"picker_section_popular": "Populární",
|
||||
"picker_section_recents": "Nedávné",
|
||||
"picker_section_selected": "Vybraný",
|
||||
"picker_section_stablecoins": "Stablecoiny",
|
||||
"picker_section_tokenized_stocks": "Tokenizované akcie (xStocks)",
|
||||
"picker_section_tokens_standard": "Tokeny (${standard})",
|
||||
"picker_see_all": "Zobrazit vše",
|
||||
"picker_show_less": "Ukázat méně",
|
||||
"pin_at_top": "Připnout ${token} nahoru",
|
||||
"pin_is_incorrect": "PIN je nesprávný",
|
||||
"pin_number": "PIN",
|
||||
@@ -926,12 +942,16 @@
|
||||
"select_a_wallet": "Vyberte peněženku",
|
||||
"select_address_to_copy": "Vyberte adresu ke zkopírování",
|
||||
"select_all": "Vybrat vše",
|
||||
"select_asset": "Vyberte položku Dílo",
|
||||
"select_backup_file": "Vybrat záložní soubor",
|
||||
"select_buy_provider_notice": "Vyberte výše poskytovatele pro nákup. Tuto obrazovku můžete přeskočit nastavením výchozího poskytovatele pro nákup v nastavení aplikace.",
|
||||
"select_destination": "Vyberte prosím umístění pro soubor zálohy.",
|
||||
"select_fiat_currency_title": "Vyberte možnost Měna",
|
||||
"select_hw_account_below": "Vyberte prosím níže účet, který chcete obnovit:",
|
||||
"select_manufacturer_title": "Vyberte výrobce",
|
||||
"select_network": "Vyberte síť",
|
||||
"select_network_subtitle": "Toto aktivum je přítomno ve více sítích. Vyberte ten, který chcete použít",
|
||||
"select_network_title": "Vyberte Síť",
|
||||
"select_other_wallet": "Vyberte jinou peněženku",
|
||||
"select_receiver": "Vyberte příjemce",
|
||||
"select_sell_provider_notice": "Vyberte výše poskytovatele prodeje. Tuto obrazovku můžete přeskočit nastavením výchozího poskytovatele prodeje v nastavení aplikace.",
|
||||
|
||||
@@ -736,6 +736,22 @@
|
||||
"payments": "Zahlungen",
|
||||
"pending": " (ausstehend)",
|
||||
"percentageOf": "von ${amount}",
|
||||
"picker_chip_all": "Alle",
|
||||
"picker_no_matches": "Keine Übereinstimmungen",
|
||||
"picker_section_all_assets": "Alle Assets (A-Z)",
|
||||
"picker_section_all_currencies": "Alle Währungen",
|
||||
"picker_section_crypto": "Krypto",
|
||||
"picker_section_cryptocurrencies": "Kryptowährungen",
|
||||
"picker_section_gas_token": "Gas-Token",
|
||||
"picker_section_more_cryptocurrencies": "Weitere Kryptowährungen",
|
||||
"picker_section_popular": "Beliebt",
|
||||
"picker_section_recents": "Neueste",
|
||||
"picker_section_selected": "Ausgewählt",
|
||||
"picker_section_stablecoins": "Stablecoins",
|
||||
"picker_section_tokenized_stocks": "Tokenisierte Aktien (xStocks)",
|
||||
"picker_section_tokens_standard": "Token (${standard})",
|
||||
"picker_see_all": "Alle anzeigen",
|
||||
"picker_show_less": "Weniger anzeigen",
|
||||
"pin_at_top": "${token} oben anheften",
|
||||
"pin_is_incorrect": "PIN ist falsch",
|
||||
"pin_number": "PIN-Nummer",
|
||||
@@ -927,12 +943,16 @@
|
||||
"select_a_wallet": "Wallet auswählen",
|
||||
"select_address_to_copy": "Adresse zum Kopieren auswählen",
|
||||
"select_all": "Alles auswählen",
|
||||
"select_asset": "Wählen Sie Asset aus",
|
||||
"select_backup_file": "Backup-Datei auswählen",
|
||||
"select_buy_provider_notice": "Wählen Sie oben einen Kaufanbieter aus. Sie können diesen Bildschirm überspringen, indem Sie Ihren Standard-Kaufanbieter in den App-Einstellungen festlegen.",
|
||||
"select_destination": "Bitte wählen Sie das Ziel für die Backup-Datei aus.",
|
||||
"select_fiat_currency_title": "Wählen Sie Währung aus",
|
||||
"select_hw_account_below": "Bitte wählen Sie unten aus, welches Konto wiederhergestellt werden soll:",
|
||||
"select_manufacturer_title": "Hersteller auswählen",
|
||||
"select_network": "Netzwerk auswählen",
|
||||
"select_network_subtitle": "Dieses Asset ist in mehreren Netzwerken vorhanden. Wählen Sie die aus, die Sie verwenden möchten",
|
||||
"select_network_title": "Wählen Sie Netzwerk",
|
||||
"select_other_wallet": "Anderes Wallet auswählen",
|
||||
"select_receiver": "Empfänger auswählen",
|
||||
"select_sell_provider_notice": "Wählen Sie oben einen Verkaufsanbieter aus. Sie können diesen Bildschirm überspringen, indem Sie in den App-Einstellungen Ihren Standard-Verkaufsanbieter festlegen.",
|
||||
|
||||
@@ -280,6 +280,7 @@
|
||||
"creating_new_wallet": "Creating new wallet",
|
||||
"creating_new_wallet_error": "Error: ${description}",
|
||||
"creation_date": "Creation Date",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"current_swap": "Current Swap",
|
||||
"current_wallet": "Current wallet",
|
||||
"custom": "Custom",
|
||||
@@ -455,14 +456,12 @@
|
||||
"expires": "Expires",
|
||||
"expiresOn": "Expires on",
|
||||
"expiry_and_validity": "Expiry and Validity",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"export_backup": "Export backup",
|
||||
"export_csv": "Export CSV",
|
||||
"export_lightning_logs": "Export Lightning logs",
|
||||
"export_logs": "Export logs",
|
||||
"export_outputs": "Export outputs",
|
||||
"export_payjoin_logs": "Export Payjoin logs",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"extend_session": "Extend Session",
|
||||
"external": "External",
|
||||
"external_wallet": "External wallet",
|
||||
@@ -501,6 +500,7 @@
|
||||
"gas_price": "Gas price",
|
||||
"general": "General",
|
||||
"generate_name": "Generate Name",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"generating_gift_card": "Generating Gift Card",
|
||||
"generating_transaction": "Generating transaction",
|
||||
"get_a": "Get a ",
|
||||
@@ -751,6 +751,22 @@
|
||||
"payments": "Payments",
|
||||
"pending": " (pending)",
|
||||
"percentageOf": "of ${amount}",
|
||||
"picker_chip_all": "All",
|
||||
"picker_no_matches": "No matches",
|
||||
"picker_section_all_assets": "All Assets (A-Z)",
|
||||
"picker_section_all_currencies": "All Currencies",
|
||||
"picker_section_crypto": "Crypto",
|
||||
"picker_section_cryptocurrencies": "Cryptocurrencies",
|
||||
"picker_section_gas_token": "Gas Token",
|
||||
"picker_section_more_cryptocurrencies": "More Cryptocurrencies",
|
||||
"picker_section_popular": "Popular",
|
||||
"picker_section_recents": "Recents",
|
||||
"picker_section_selected": "Selected",
|
||||
"picker_section_stablecoins": "Stablecoins",
|
||||
"picker_section_tokenized_stocks": "Tokenized Stocks (xStocks)",
|
||||
"picker_section_tokens_standard": "Tokens (${standard})",
|
||||
"picker_see_all": "See All",
|
||||
"picker_show_less": "Show less",
|
||||
"pin_at_top": "Pin ${token} at top",
|
||||
"pin_is_incorrect": "PIN is incorrect",
|
||||
"pin_number": "PIN number",
|
||||
@@ -941,12 +957,16 @@
|
||||
"select_a_wallet": "Select a wallet",
|
||||
"select_address_to_copy": "Select Address to Copy",
|
||||
"select_all": "Select all",
|
||||
"select_asset": "Select Asset",
|
||||
"select_backup_file": "Select backup file",
|
||||
"select_buy_provider_notice": "Select a buy provider above. You can skip this screen by setting your default buy provider in app settings.",
|
||||
"select_destination": "Please select destination for the backup file.",
|
||||
"select_fiat_currency_title": "Select Currency",
|
||||
"select_hw_account_below": "Please select which account to restore below:",
|
||||
"select_manufacturer_title": "Select Manufacturer",
|
||||
"select_network": "Select Network",
|
||||
"select_network_subtitle": "This asset is present in multiple networks. Select the one you want to use",
|
||||
"select_network_title": "Select Network",
|
||||
"select_other_wallet": "Select other Wallet",
|
||||
"select_receiver": "Select Receiver",
|
||||
"select_sell_provider_notice": "Select a sell provider above. You can skip this screen by setting your default sell provider in app settings.",
|
||||
|
||||
@@ -277,6 +277,7 @@
|
||||
"creating_new_wallet": "Creando una nueva billetera",
|
||||
"creating_new_wallet_error": "Error: ${description}",
|
||||
"creation_date": "Fecha de creación",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"current_swap": "Intercambio actual",
|
||||
"current_wallet": "Cartera actual",
|
||||
"custom": "Personalizado",
|
||||
@@ -450,14 +451,12 @@
|
||||
"expires": "Caduca",
|
||||
"expiresOn": "Caduca el",
|
||||
"expiry_and_validity": "Caducidad y validez",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"export_backup": "Exportar copia de seguridad",
|
||||
"export_csv": "Export CSV",
|
||||
"export_lightning_logs": "Exportar registros de Lightning",
|
||||
"export_logs": "Exportar registros",
|
||||
"export_outputs": "Exportar salidas",
|
||||
"export_payjoin_logs": "Exportar registros de Payjoin",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"extend_session": "Extender sesión",
|
||||
"external": "Externo",
|
||||
"external_wallet": "Billetera externa",
|
||||
@@ -494,6 +493,7 @@
|
||||
"gas_price": "Precio del gas",
|
||||
"general": "General",
|
||||
"generate_name": "Generar nombre",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"generating_gift_card": "Generando tarjeta de regalo",
|
||||
"generating_transaction": "Generando transacción",
|
||||
"get_a": "Obtén un ",
|
||||
@@ -737,6 +737,22 @@
|
||||
"pending": " (pendiente)",
|
||||
"percentageOf": "de ${amount}",
|
||||
"personalizado": "personalizado",
|
||||
"picker_chip_all": "Todo",
|
||||
"picker_no_matches": "No hay coincidencias",
|
||||
"picker_section_all_assets": "Todos los activos (A-Z)",
|
||||
"picker_section_all_currencies": "Todas las monedas",
|
||||
"picker_section_crypto": "Cripto",
|
||||
"picker_section_cryptocurrencies": "Criptomonedas",
|
||||
"picker_section_gas_token": "Ficha de gasolina",
|
||||
"picker_section_more_cryptocurrencies": "Más criptomonedas",
|
||||
"picker_section_popular": "Popular",
|
||||
"picker_section_recents": "Recientes",
|
||||
"picker_section_selected": "Seleccionado",
|
||||
"picker_section_stablecoins": "Monedas estables",
|
||||
"picker_section_tokenized_stocks": "Acciones tokenizadas (xStocks)",
|
||||
"picker_section_tokens_standard": "Fichas (${standard})",
|
||||
"picker_see_all": "Ver todo",
|
||||
"picker_show_less": "Mostrar menos",
|
||||
"pin_at_top": "Fijar ${token} arriba",
|
||||
"pin_is_incorrect": "El PIN es incorrecto",
|
||||
"pin_number": "Número de PIN",
|
||||
@@ -927,12 +943,16 @@
|
||||
"select_a_wallet": "Selecciona una cartera",
|
||||
"select_address_to_copy": "Seleccionar dirección para copiar",
|
||||
"select_all": "Seleccionar todo",
|
||||
"select_asset": "Seleccionar activo",
|
||||
"select_backup_file": "Seleccionar archivo de copia de seguridad",
|
||||
"select_buy_provider_notice": "Selecciona un proveedor de compra arriba. Puedes omitir esta pantalla configurando tu proveedor de compra predeterminado en los ajustes de la aplicación.",
|
||||
"select_destination": "Selecciona el destino del archivo de copia de seguridad.",
|
||||
"select_fiat_currency_title": "Seleccionar moneda",
|
||||
"select_hw_account_below": "Por favor, selecciona la cuenta que deseas restaurar a continuación:",
|
||||
"select_manufacturer_title": "Seleccionar fabricante",
|
||||
"select_network": "Seleccionar red",
|
||||
"select_network_subtitle": "Este activo está presente en múltiples redes. Seleccione el que desea utilizar",
|
||||
"select_network_title": "Seleccionar red",
|
||||
"select_other_wallet": "Seleccionar otra billetera",
|
||||
"select_receiver": "Seleccionar destinatario",
|
||||
"select_sell_provider_notice": "Selecciona un proveedor de venta arriba. Puedes omitir esta pantalla configurando tu proveedor de venta predeterminado en los ajustes de la aplicación.",
|
||||
|
||||
@@ -275,6 +275,7 @@
|
||||
"creating_new_wallet": "در حال ایجاد کیف پول جدید",
|
||||
"creating_new_wallet_error": "خطا: ${description}",
|
||||
"creation_date": "تاریخ ایجاد",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"current_swap": "سواپ فعلی",
|
||||
"current_wallet": "کیف پول فعلی",
|
||||
"custom": "سفارشی",
|
||||
@@ -448,14 +449,12 @@
|
||||
"expires": "منقضی میشود",
|
||||
"expiresOn": "انقضا در",
|
||||
"expiry_and_validity": "انقضا و اعتبار",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"export_backup": "صدور نسخه پشتیبان",
|
||||
"export_csv": "Export CSV",
|
||||
"export_lightning_logs": "خروجی گرفتن از گزارشهای لایتنینگ",
|
||||
"export_logs": "خروجی گرفتن از گزارشها",
|
||||
"export_outputs": "برونبرد خروجیها",
|
||||
"export_payjoin_logs": "گزارشهای Payjoin را صادر کنید",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"extend_session": "تمدید جلسه",
|
||||
"external": "خارجی",
|
||||
"external_wallet": "کیف پول خارجی",
|
||||
@@ -492,6 +491,7 @@
|
||||
"gas_price": "قیمت گس",
|
||||
"general": "عمومی",
|
||||
"generate_name": "ایجاد نام",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"generating_gift_card": "در حال ایجاد گیفت کارت",
|
||||
"generating_transaction": "در حال ایجاد تراکنش",
|
||||
"get_a": "یک ",
|
||||
@@ -735,6 +735,22 @@
|
||||
"payments": "پرداختها",
|
||||
"pending": " (در انتظار)",
|
||||
"percentageOf": "از ${amount}",
|
||||
"picker_chip_all": "همه",
|
||||
"picker_no_matches": "هیچ مسابقه ای وجود ندارد",
|
||||
"picker_section_all_assets": "همه دارایی ها (A-Z)",
|
||||
"picker_section_all_currencies": "همه ارزها",
|
||||
"picker_section_crypto": "رمزنگاری",
|
||||
"picker_section_cryptocurrencies": "ارزهای رمزنگاری شده",
|
||||
"picker_section_gas_token": "ژتون گاز",
|
||||
"picker_section_more_cryptocurrencies": "ارزهای دیجیتال بیشتر",
|
||||
"picker_section_popular": "محبوب",
|
||||
"picker_section_recents": "اخیر",
|
||||
"picker_section_selected": "انتخاب شده است",
|
||||
"picker_section_stablecoins": "استیبل کوین ها",
|
||||
"picker_section_tokenized_stocks": "سهام توکن شده (xStocks)",
|
||||
"picker_section_tokens_standard": "توکنها (${standard})",
|
||||
"picker_see_all": "همه را ببینید",
|
||||
"picker_show_less": "کمتر نشان دادن",
|
||||
"pin_at_top": "سنجاق کردن ${token} به بالا",
|
||||
"pin_is_incorrect": "پین نادرست است",
|
||||
"pin_number": "شماره PIN",
|
||||
@@ -925,12 +941,16 @@
|
||||
"select_a_wallet": "یک کیف پول را انتخاب کنید",
|
||||
"select_address_to_copy": "آدرس را برای کپی کردن انتخاب کنید",
|
||||
"select_all": "انتخاب همه",
|
||||
"select_asset": "Asset را انتخاب کنید",
|
||||
"select_backup_file": "فایل پشتیبان را انتخاب کنید",
|
||||
"select_buy_provider_notice": "یک ارائهدهنده خرید را در بالا انتخاب کنید.\nمیتوانید با تنظیم ارائهدهنده خرید پیشفرض در تنظیمات برنامه، این صفحه را رد کنید.",
|
||||
"select_destination": "لطفاً مقصد فایل پشتیبان را انتخاب کنید.",
|
||||
"select_fiat_currency_title": "ارز را انتخاب کنید",
|
||||
"select_hw_account_below": "لطفاً حسابی را که میخواهید بازیابی کنید، در زیر انتخاب کنید:",
|
||||
"select_manufacturer_title": "انتخاب سازنده",
|
||||
"select_network": "انتخاب شبکه",
|
||||
"select_network_subtitle": "این دارایی در چندین شبکه وجود دارد. موردی را که می خواهید استفاده کنید انتخاب کنید",
|
||||
"select_network_title": "Network را انتخاب کنید",
|
||||
"select_other_wallet": "کیف پول دیگری را انتخاب کنید",
|
||||
"select_receiver": "گیرنده را انتخاب کنید",
|
||||
"select_sell_provider_notice": "یک ارائهدهنده فروش را در بالا انتخاب کنید.\nمیتوانید با تنظیم ارائهدهنده فروش پیشفرض خود در تنظیمات برنامه، این صفحه را رد کنید.",
|
||||
|
||||
@@ -277,6 +277,7 @@
|
||||
"creating_new_wallet": "Création d'un nouveau portefeuille",
|
||||
"creating_new_wallet_error": "Erreur : ${description}",
|
||||
"creation_date": "Date de création",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"current_swap": "Swap en cours",
|
||||
"current_wallet": "Portefeuille actuel",
|
||||
"custom": "Personnalisé",
|
||||
@@ -450,14 +451,12 @@
|
||||
"expires": "Expire",
|
||||
"expiresOn": "Expire le",
|
||||
"expiry_and_validity": "Expiration et validité",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"export_backup": "Exporter la sauvegarde",
|
||||
"export_csv": "Export CSV",
|
||||
"export_lightning_logs": "Exporter les logs Lightning",
|
||||
"export_logs": "Exporter les journaux",
|
||||
"export_outputs": "Exporter les sorties",
|
||||
"export_payjoin_logs": "Exporter les journaux de Payjoin",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"extend_session": "Prolonger la session",
|
||||
"external": "Externe",
|
||||
"external_wallet": "Portefeuille externe",
|
||||
@@ -494,6 +493,7 @@
|
||||
"gas_price": "Prix du gas",
|
||||
"general": "Général",
|
||||
"generate_name": "Générer un nom",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"generating_gift_card": "Génération de la carte-cadeau",
|
||||
"generating_transaction": "Génération de la transaction",
|
||||
"get_a": "Obtenir un ",
|
||||
@@ -736,6 +736,22 @@
|
||||
"payments": "Paiements",
|
||||
"pending": " (en attente)",
|
||||
"percentageOf": "de ${amount}",
|
||||
"picker_chip_all": "Tous",
|
||||
"picker_no_matches": "Aucune correspondance",
|
||||
"picker_section_all_assets": "Tous les actifs (A-Z)",
|
||||
"picker_section_all_currencies": "Toutes les devises",
|
||||
"picker_section_crypto": "Cryptomonnaie",
|
||||
"picker_section_cryptocurrencies": "Crypto-monnaies",
|
||||
"picker_section_gas_token": "Jeton de gaz",
|
||||
"picker_section_more_cryptocurrencies": "Plus de crypto-monnaies",
|
||||
"picker_section_popular": "Populaire",
|
||||
"picker_section_recents": "Récents",
|
||||
"picker_section_selected": "Choisi",
|
||||
"picker_section_stablecoins": "Pièces stables",
|
||||
"picker_section_tokenized_stocks": "Actions tokenisées (xStocks)",
|
||||
"picker_section_tokens_standard": "Jetons (${standard})",
|
||||
"picker_see_all": "Voir tout",
|
||||
"picker_show_less": "Afficher moins",
|
||||
"pin_at_top": "Épingler ${token} en haut",
|
||||
"pin_is_incorrect": "Le PIN est incorrect",
|
||||
"pin_number": "Numéro de PIN",
|
||||
@@ -926,12 +942,16 @@
|
||||
"select_a_wallet": "Sélectionnez un portefeuille",
|
||||
"select_address_to_copy": "Sélectionner l'adresse à copier",
|
||||
"select_all": "Tout sélectionner",
|
||||
"select_asset": "Sélectionnez l'actif",
|
||||
"select_backup_file": "Sélectionner le fichier de sauvegarde",
|
||||
"select_buy_provider_notice": "Sélectionnez un prestataire d'achat ci-dessus. Vous pouvez ignorer cet écran en définissant votre prestataire d'achat par défaut dans les paramètres de l'application.",
|
||||
"select_destination": "Veuillez sélectionner l’emplacement du fichier de sauvegarde.",
|
||||
"select_fiat_currency_title": "Sélectionnez la devise",
|
||||
"select_hw_account_below": "Veuillez sélectionner ci-dessous le compte à restaurer :",
|
||||
"select_manufacturer_title": "Sélectionner le fabricant",
|
||||
"select_network": "Sélectionner le réseau",
|
||||
"select_network_subtitle": "Cet atout est présent dans plusieurs réseaux. Sélectionnez celui que vous souhaitez utiliser",
|
||||
"select_network_title": "Sélectionnez le réseau",
|
||||
"select_other_wallet": "Sélectionner un autre portefeuille",
|
||||
"select_receiver": "Sélectionner le destinataire",
|
||||
"select_sell_provider_notice": "Sélectionnez un prestataire de vente ci-dessus. Vous pouvez ignorer cet écran en définissant votre prestataire de vente par défaut dans les paramètres de l'application.",
|
||||
|
||||
@@ -223,6 +223,7 @@
|
||||
"creating_new_wallet": "Omoheñóvo billetera pyahu",
|
||||
"creating_new_wallet_error": "Jejavy: ${description}",
|
||||
"creation_date": "Arange ojejapo hague",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"current_swap": "Intercambio ko'ág̃a",
|
||||
"current_wallet": "Billetera actual",
|
||||
"custom": "Mboavopyre",
|
||||
@@ -357,12 +358,10 @@
|
||||
"expires": "Opa hag̃ua",
|
||||
"expiresOn": "Opa hag̃ua",
|
||||
"expiry_and_validity": "Opaha ára ha hekorã",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"export_backup": "Emondo hag̃ua backup",
|
||||
"export_csv": "Export CSV",
|
||||
"export_lightning_logs": "Emondo Lightning rembiapokue",
|
||||
"export_payjoin_logs": "Emondo okápe Payjoin registro-kuéra",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"external": "Okápegua",
|
||||
"external_wallet": "Billetera externa",
|
||||
"extra_id": "ID extra:",
|
||||
@@ -391,6 +390,7 @@
|
||||
"full_balance": "Saldo completo",
|
||||
"general": "Mba'eichagua",
|
||||
"generate_name": "Emoheñói Téra",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"generating_gift_card": "Oñemoheñói hína tarjeta jopói",
|
||||
"get_a": "Ereko peteĩ ",
|
||||
"get_card_note": "Ikatu emyenyhẽjey viru digital rupive. Ndoikotevẽi ambue marandu!",
|
||||
@@ -577,6 +577,22 @@
|
||||
"pending": " (oĩhína oñehaʼãrõme)",
|
||||
"percentageOf": "rehe ${amount}",
|
||||
"personalizado": "Ojeiporavokuaava",
|
||||
"picker_chip_all": "Opavave",
|
||||
"picker_no_matches": "Ndaipóri joaju",
|
||||
"picker_section_all_assets": "Opaite mba’e (A-Z) .",
|
||||
"picker_section_all_currencies": "Opaite Viru rehegua",
|
||||
"picker_section_crypto": "Cripto rehegua",
|
||||
"picker_section_cryptocurrencies": "Criptomoneda rehegua",
|
||||
"picker_section_gas_token": "Token de Gas rehegua",
|
||||
"picker_section_more_cryptocurrencies": "Hetave Criptomoneda rehegua",
|
||||
"picker_section_popular": "Ojehayhúva",
|
||||
"picker_section_recents": "Nda’aréi ojejapóva",
|
||||
"picker_section_selected": "Ojeporavóva",
|
||||
"picker_section_stablecoins": "Stablecoins rehegua",
|
||||
"picker_section_tokenized_stocks": "Acciones Tokenizadas (xStocks) rehegua .",
|
||||
"picker_section_tokens_standard": "Fichas (${standard}) rehegua .",
|
||||
"picker_see_all": "Ehecha opa mba'e",
|
||||
"picker_show_less": "Ehechauka sa’ive",
|
||||
"pin_at_top": "Emboja ${token} yvate gotyo",
|
||||
"pin_is_incorrect": "PIN ndoikói hag̃ua",
|
||||
"pin_number": "PIN papapy",
|
||||
@@ -743,9 +759,13 @@
|
||||
"seedtype_polyseed": "Polieta (16 ñe’ẽ)",
|
||||
"select_address_to_copy": "Eiporavo dirección emokopia hag̃ua",
|
||||
"select_all": "Eiporavo opaite",
|
||||
"select_asset": "Eiporavo Activo",
|
||||
"select_backup_file": "Eiporavo marandurenda ñongatupyre",
|
||||
"select_buy_provider_notice": "Eiporavo peteĩ jogua-me’ẽha yvate. Ikatu rehasapa ko pantalla emoĩvo nde jogua-me’ẽha ijypykuéramo ñembohekorã aplicación-pe.",
|
||||
"select_destination": "Eiporavo moõpa oñeñongatúta marandurenda backup.",
|
||||
"select_fiat_currency_title": "Eiporavo Moneda",
|
||||
"select_network_subtitle": "Ko activo oime presente heta red-pe. Eiporavo pe reiporuséva",
|
||||
"select_network_title": "Eiporavo Red",
|
||||
"select_other_wallet": "Eiporavo ambue billetera",
|
||||
"select_receiver": "Eiporavo Mbyhyha",
|
||||
"select_sell_provider_notice": "Eiporavo yvate peteĩ ñemuha. Ikatu rehasa hag̃ua ko pantalla emoĩvo nde ñemuha ijypykuéramo umi ñemboheko hag̃ua aplicación-pe.",
|
||||
|
||||
@@ -277,6 +277,7 @@
|
||||
"creating_new_wallet": "Ana ƙirƙirar sabon walat",
|
||||
"creating_new_wallet_error": "Kuskure: ${description}",
|
||||
"creation_date": "Ranar ƙirƙira",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"current_swap": "Musayar Yanzu",
|
||||
"current_wallet": "Walit na yanzu",
|
||||
"custom": "Na musamman",
|
||||
@@ -450,14 +451,12 @@
|
||||
"expires": "Yana ƙarewa",
|
||||
"expiresOn": "Yana ƙarewa a",
|
||||
"expiry_and_validity": "Ranar ƙarewa da inganci",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"export_backup": "Fitar da ajiyar baya",
|
||||
"export_csv": "Export CSV",
|
||||
"export_lightning_logs": "Fitar da log ɗin Lightning",
|
||||
"export_logs": "Fitar da log",
|
||||
"export_outputs": "Fitar da abubuwan fitarwa",
|
||||
"export_payjoin_logs": "Fitar da log ɗin Payjoin",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"extend_session": "Tsawaita Zama",
|
||||
"external": "Na waje",
|
||||
"external_wallet": "Wallet na waje",
|
||||
@@ -494,6 +493,7 @@
|
||||
"gas_price": "Farashin gas",
|
||||
"general": "Gabaɗaya",
|
||||
"generate_name": "Ƙirƙiri Suna",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"generating_gift_card": "Ana Ƙirƙirar Katin Kyauta",
|
||||
"generating_transaction": "Ana ƙirƙirar ma'amala",
|
||||
"get_a": "Samu ",
|
||||
@@ -738,6 +738,22 @@
|
||||
"payments": "Biyan kuɗi",
|
||||
"pending": " (ana jiran)",
|
||||
"percentageOf": "na ${amount}",
|
||||
"picker_chip_all": "Duka",
|
||||
"picker_no_matches": "Babu ashana",
|
||||
"picker_section_all_assets": "Duk Kayayyaki (A-Z)",
|
||||
"picker_section_all_currencies": "Duk Kudi",
|
||||
"picker_section_crypto": "Crypto",
|
||||
"picker_section_cryptocurrencies": "Cryptocurrencies",
|
||||
"picker_section_gas_token": "Gas Token",
|
||||
"picker_section_more_cryptocurrencies": "Ƙarin Cryptocurrencies",
|
||||
"picker_section_popular": "Shahararren",
|
||||
"picker_section_recents": "Kwanan nan",
|
||||
"picker_section_selected": "zaba",
|
||||
"picker_section_stablecoins": "Stablecoins",
|
||||
"picker_section_tokenized_stocks": "Hannun Jari na Tokenized (xStocks)",
|
||||
"picker_section_tokens_standard": "Alamu (${standard})",
|
||||
"picker_see_all": "Duba duka",
|
||||
"picker_show_less": "Nuna ƙasa",
|
||||
"pin_at_top": "Saka ${token} a sama",
|
||||
"pin_is_incorrect": "PIN ɗin ba daidai ba ne",
|
||||
"pin_number": "Lambar PIN",
|
||||
@@ -928,12 +944,16 @@
|
||||
"select_a_wallet": "Zaɓi walat",
|
||||
"select_address_to_copy": "Zaɓi adireshi don kwafi",
|
||||
"select_all": "Zaɓi duka",
|
||||
"select_asset": "Zaɓi Kadari",
|
||||
"select_backup_file": "Zaɓi fayil ɗin ajiyar baya",
|
||||
"select_buy_provider_notice": "Zaɓi mai ba da sabis na saye a sama. Za ka iya tsallake wannan allon ta hanyar saita tsohon mai ba da sabis na saye a cikin saitunan manhaja.",
|
||||
"select_destination": "Da fatan za a zaɓi wurin da za a ajiye fayil ɗin madadin.",
|
||||
"select_fiat_currency_title": "Zaɓi Kuɗi",
|
||||
"select_hw_account_below": "Da fatan za a zaɓi asusun da za a maido a ƙasa:",
|
||||
"select_manufacturer_title": "Zaɓi Mai ƙera",
|
||||
"select_network": "Zaɓi hanyar sadarwa",
|
||||
"select_network_subtitle": "Wannan kadari yana nan a cikin cibiyoyin sadarwa da yawa. Zaɓi wanda kake son amfani da shi",
|
||||
"select_network_title": "Zaɓi hanyar sadarwa",
|
||||
"select_other_wallet": "Zaɓi wata Wallet",
|
||||
"select_receiver": "Zaɓi Mai karɓa",
|
||||
"select_sell_provider_notice": "Zaɓi mai ba da sabis na sayarwa a sama. Kuna iya tsallake wannan allon ta saita tsohon mai ba da sabis na sayarwa a cikin saitunan app.",
|
||||
|
||||
@@ -277,6 +277,7 @@
|
||||
"creating_new_wallet": "नया वॉलेट बनाया जा रहा है",
|
||||
"creating_new_wallet_error": "त्रुटि: ${description}",
|
||||
"creation_date": "निर्माण तिथि",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"current_swap": "वर्तमान स्वैप",
|
||||
"current_wallet": "वर्तमान वॉलेट",
|
||||
"custom": "कस्टम",
|
||||
@@ -450,14 +451,12 @@
|
||||
"expires": "समाप्त होता है",
|
||||
"expiresOn": "इस दिन समाप्त होता है",
|
||||
"expiry_and_validity": "समाप्ति और वैधता",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"export_backup": "बैकअप निर्यात करें",
|
||||
"export_csv": "Export CSV",
|
||||
"export_lightning_logs": "लाइटनिंग लॉग्स निर्यात करें",
|
||||
"export_logs": "लॉग निर्यात करें",
|
||||
"export_outputs": "आउटपुट निर्यात करें",
|
||||
"export_payjoin_logs": "Payjoin लॉग एक्सपोर्ट करें",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"extend_session": "सत्र बढ़ाएँ",
|
||||
"external": "बाहरी",
|
||||
"external_wallet": "बाहरी वॉलेट",
|
||||
@@ -494,6 +493,7 @@
|
||||
"gas_price": "गैस मूल्य",
|
||||
"general": "सामान्य",
|
||||
"generate_name": "नाम उत्पन्न करें",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"generating_gift_card": "गिफ्ट कार्ड जनरेट किया जा रहा है",
|
||||
"generating_transaction": "लेन-देन जनरेट किया जा रहा है",
|
||||
"get_a": "एक प्राप्त करें ",
|
||||
@@ -737,6 +737,22 @@
|
||||
"payments": "भुगतान",
|
||||
"pending": " (लंबित)",
|
||||
"percentageOf": "${amount} का",
|
||||
"picker_chip_all": "सभी",
|
||||
"picker_no_matches": "कोई मेल नहीं",
|
||||
"picker_section_all_assets": "सभी संपत्तियां (ए-जेड)",
|
||||
"picker_section_all_currencies": "सभी मुद्राएँ",
|
||||
"picker_section_crypto": "क्रिप्टो",
|
||||
"picker_section_cryptocurrencies": "क्रिप्टोकरेंसी",
|
||||
"picker_section_gas_token": "गैस टोकन",
|
||||
"picker_section_more_cryptocurrencies": "अधिक क्रिप्टोकरेंसी",
|
||||
"picker_section_popular": "लोकप्रिय",
|
||||
"picker_section_recents": "हाल ही",
|
||||
"picker_section_selected": "चयनित",
|
||||
"picker_section_stablecoins": "स्थिर सिक्के",
|
||||
"picker_section_tokenized_stocks": "टोकनयुक्त स्टॉक (xStocks)",
|
||||
"picker_section_tokens_standard": "टोकन (${standard})",
|
||||
"picker_see_all": "सभी देखें",
|
||||
"picker_show_less": "कम दिखाओ",
|
||||
"pin_at_top": "${token} को शीर्ष पर पिन करें",
|
||||
"pin_is_incorrect": "PIN गलत है",
|
||||
"pin_number": "पिन नंबर",
|
||||
@@ -928,12 +944,16 @@
|
||||
"select_a_wallet": "एक वॉलेट चुनें",
|
||||
"select_address_to_copy": "कॉपी करने के लिए पता चुनें",
|
||||
"select_all": "सभी चुनें",
|
||||
"select_asset": "संपत्ति का चयन करें",
|
||||
"select_backup_file": "बैकअप फ़ाइल चुनें",
|
||||
"select_buy_provider_notice": "ऊपर किसी खरीद प्रदाता का चयन करें। आप ऐप सेटिंग्स में अपना डिफ़ॉल्ट खरीद प्रदाता सेट करके इस स्क्रीन को छोड़ सकते हैं।",
|
||||
"select_destination": "कृपया बैकअप फ़ाइल के लिए गंतव्य चुनें।",
|
||||
"select_fiat_currency_title": "मुद्रा चुनें",
|
||||
"select_hw_account_below": "कृपया नीचे पुनर्स्थापित करने के लिए खाता चुनें:",
|
||||
"select_manufacturer_title": "निर्माता चुनें",
|
||||
"select_network": "नेटवर्क चुनें",
|
||||
"select_network_subtitle": "यह संपत्ति कई नेटवर्क में मौजूद है. जिसे आप उपयोग करना चाहते हैं उसे चुनें",
|
||||
"select_network_title": "नेटवर्क चुनें",
|
||||
"select_other_wallet": "अन्य वॉलेट चुनें",
|
||||
"select_receiver": "प्राप्तकर्ता चुनें",
|
||||
"select_sell_provider_notice": "ऊपर किसी विक्रय प्रदाता का चयन करें। आप ऐप सेटिंग्स में अपना डिफ़ॉल्ट विक्रय प्रदाता सेट करके इस स्क्रीन को छोड़ सकते हैं।",
|
||||
|
||||
@@ -277,6 +277,7 @@
|
||||
"creating_new_wallet": "Stvaranje novog novčanika",
|
||||
"creating_new_wallet_error": "Greška: ${description}",
|
||||
"creation_date": "Datum izrade",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"current_swap": "Trenutna zamjena",
|
||||
"current_wallet": "Trenutni novčanik",
|
||||
"custom": "Prilagođeno",
|
||||
@@ -450,14 +451,12 @@
|
||||
"expires": "Ističe",
|
||||
"expiresOn": "Istječe",
|
||||
"expiry_and_validity": "Istek i valjanost",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"export_backup": "Izvezi sigurnosnu kopiju",
|
||||
"export_csv": "Export CSV",
|
||||
"export_lightning_logs": "Izvezi Lightning zapise",
|
||||
"export_logs": "Izvezi zapise",
|
||||
"export_outputs": "Izvoz izlaza",
|
||||
"export_payjoin_logs": "Izvezi Payjoin zapise",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"extend_session": "Produži sesiju",
|
||||
"external": "Vanjski",
|
||||
"external_wallet": "Vanjski novčanik",
|
||||
@@ -494,6 +493,7 @@
|
||||
"gas_price": "Cijena gasa",
|
||||
"general": "Općenito",
|
||||
"generate_name": "Generiraj naziv",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"generating_gift_card": "Generiranje poklon kartice",
|
||||
"generating_transaction": "Generiranje transakcije",
|
||||
"get_a": "Nabavite ",
|
||||
@@ -736,6 +736,22 @@
|
||||
"payments": "Plaćanja",
|
||||
"pending": " (na čekanju)",
|
||||
"percentageOf": "od ${amount}",
|
||||
"picker_chip_all": "Sve",
|
||||
"picker_no_matches": "Nema podudaranja",
|
||||
"picker_section_all_assets": "Sva sredstva (A-Z)",
|
||||
"picker_section_all_currencies": "Sve valute",
|
||||
"picker_section_crypto": "Kripto",
|
||||
"picker_section_cryptocurrencies": "Kriptovalute",
|
||||
"picker_section_gas_token": "Žeton za plin",
|
||||
"picker_section_more_cryptocurrencies": "Više kriptovaluta",
|
||||
"picker_section_popular": "Popularan",
|
||||
"picker_section_recents": "Nedavni",
|
||||
"picker_section_selected": "Odabrano",
|
||||
"picker_section_stablecoins": "Stablecoins",
|
||||
"picker_section_tokenized_stocks": "Tokenizirane dionice (xStocks)",
|
||||
"picker_section_tokens_standard": "Tokeni (${standard})",
|
||||
"picker_see_all": "Vidi sve",
|
||||
"picker_show_less": "Prikaži manje",
|
||||
"pin_at_top": "Prikvači ${token} na vrh",
|
||||
"pin_is_incorrect": "PIN je netočan",
|
||||
"pin_number": "PIN broj",
|
||||
@@ -926,12 +942,16 @@
|
||||
"select_a_wallet": "Odaberite novčanik",
|
||||
"select_address_to_copy": "Odaberite adresu za kopiranje",
|
||||
"select_all": "Odaberi sve",
|
||||
"select_asset": "Odaberite sredstvo",
|
||||
"select_backup_file": "Odaberite datoteku sigurnosne kopije",
|
||||
"select_buy_provider_notice": "Odaberite gore pružatelja usluge kupnje. Ovaj zaslon možete preskočiti postavljanjem zadanog pružatelja usluge kupnje u postavkama aplikacije.",
|
||||
"select_destination": "Molimo odaberite odredište za datoteku sigurnosne kopije.",
|
||||
"select_fiat_currency_title": "Odaberite Valutu",
|
||||
"select_hw_account_below": "Molimo odaberite račun koji želite vratiti u nastavku:",
|
||||
"select_manufacturer_title": "Odaberite proizvođača",
|
||||
"select_network": "Odaberite mrežu",
|
||||
"select_network_subtitle": "Ovo sredstvo je prisutno u više mreža. Odaberite onu koju želite koristiti",
|
||||
"select_network_title": "Odaberite Mreža",
|
||||
"select_other_wallet": "Odaberite drugi novčanik",
|
||||
"select_receiver": "Odaberite primatelja",
|
||||
"select_sell_provider_notice": "Odaberite pružatelja usluge prodaje iznad. Ovaj zaslon možete preskočiti tako da u postavkama aplikacije postavite zadanog pružatelja usluge prodaje.",
|
||||
|
||||
@@ -277,6 +277,7 @@
|
||||
"creating_new_wallet": "Ստեղծվում է նոր դրամապանակ",
|
||||
"creating_new_wallet_error": "Սխալ՝ ${description}",
|
||||
"creation_date": "Ստեղծման ամսաթիվ",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"current_swap": "Ընթացիկ փոխանակում",
|
||||
"current_wallet": "Ընթացիկ դրամապանակ",
|
||||
"custom": "Հատուկ",
|
||||
@@ -450,14 +451,12 @@
|
||||
"expires": "Լրանում է",
|
||||
"expiresOn": "Լրանում է",
|
||||
"expiry_and_validity": "Ժամկետ և վավերականություն",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"export_backup": "Արտահանել պահուստային պատճենը",
|
||||
"export_csv": "Export CSV",
|
||||
"export_lightning_logs": "Արտահանել Lightning-ի տեղեկամատյանները",
|
||||
"export_logs": "Արտահանել տեղեկամատյանները",
|
||||
"export_outputs": "Արտահանել ելքերը",
|
||||
"export_payjoin_logs": "Արտահանել Payjoin-ի մատյանները",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"extend_session": "Երկարացնել սեսիան",
|
||||
"external": "Արտաքին",
|
||||
"external_wallet": "Արտաքին դրամապանակ",
|
||||
@@ -494,6 +493,7 @@
|
||||
"gas_price": "Գազի գին",
|
||||
"general": "Ընդհանուր",
|
||||
"generate_name": "Ստեղծել անուն",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"generating_gift_card": "Նվեր քարտի ստեղծում",
|
||||
"generating_transaction": "Գործարքի ստեղծում",
|
||||
"get_a": "Ստանալ ",
|
||||
@@ -735,6 +735,22 @@
|
||||
"payments": "Վճարումներ",
|
||||
"pending": " (սպասման մեջ)",
|
||||
"percentageOf": "${amount}-ից",
|
||||
"picker_chip_all": "Բոլորը",
|
||||
"picker_no_matches": "Համընկնումներ չկան",
|
||||
"picker_section_all_assets": "Բոլոր ակտիվները (A-Z)",
|
||||
"picker_section_all_currencies": "Բոլոր արժույթները",
|
||||
"picker_section_crypto": "Կրիպտո",
|
||||
"picker_section_cryptocurrencies": "Կրիպտոարժույթներ",
|
||||
"picker_section_gas_token": "Գազի նշան",
|
||||
"picker_section_more_cryptocurrencies": "Ավելի շատ կրիպտոարժույթներ",
|
||||
"picker_section_popular": "Հանրաճանաչ",
|
||||
"picker_section_recents": "Վերջերս",
|
||||
"picker_section_selected": "Ընտրված է",
|
||||
"picker_section_stablecoins": "Stablecoins",
|
||||
"picker_section_tokenized_stocks": "Tokenized Stocks (xStocks)",
|
||||
"picker_section_tokens_standard": "Նշաններ (${standard})",
|
||||
"picker_see_all": "Տես բոլորը",
|
||||
"picker_show_less": "Ցույց տալ ավելի քիչ",
|
||||
"pin_at_top": "${token}-ը ամրացնել վերևում",
|
||||
"pin_is_incorrect": "PIN-ը սխալ է",
|
||||
"pin_number": "PIN համար",
|
||||
@@ -925,12 +941,16 @@
|
||||
"select_a_wallet": "Ընտրեք դրամապանակը",
|
||||
"select_address_to_copy": "Ընտրեք հասցեն՝ պատճենելու համար",
|
||||
"select_all": "Ընտրել բոլորը",
|
||||
"select_asset": "Ընտրեք Ակտիվ",
|
||||
"select_backup_file": "Ընտրել պահուստային ֆայլը",
|
||||
"select_buy_provider_notice": "Վերևում ընտրեք գնման մատակարար։ Դուք կարող եք բաց թողնել այս էկրանը՝ հավելվածի կարգավորումներում սահմանելով ձեր լռելայն գնման մատակարարը։",
|
||||
"select_destination": "Խնդրում ենք ընտրել պահուստային ֆայլի նպատակակետը։",
|
||||
"select_fiat_currency_title": "Ընտրեք արժույթ",
|
||||
"select_hw_account_below": "Խնդրում ենք ներքևում ընտրել, թե որ հաշիվը վերականգնել․",
|
||||
"select_manufacturer_title": "Ընտրեք արտադրողին",
|
||||
"select_network": "Ընտրեք ցանցը",
|
||||
"select_network_subtitle": "Այս ակտիվը առկա է բազմաթիվ ցանցերում: Ընտրեք մեկը, որը ցանկանում եք օգտագործել",
|
||||
"select_network_title": "Ընտրեք Ցանց",
|
||||
"select_other_wallet": "Ընտրեք այլ դրամապանակ",
|
||||
"select_receiver": "Ընտրեք ստացողին",
|
||||
"select_sell_provider_notice": "Վերևում ընտրեք վաճառքի մատակարար։ Դուք կարող եք բաց թողնել այս էկրանը՝ հավելվածի կարգավորումներում սահմանելով ձեր լռելայն վաճառքի մատակարարին։",
|
||||
|
||||
@@ -277,6 +277,7 @@
|
||||
"creating_new_wallet": "Membuat dompet baru",
|
||||
"creating_new_wallet_error": "Kesalahan: ${description}",
|
||||
"creation_date": "Tanggal Pembuatan",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"current_swap": "Swap Saat Ini",
|
||||
"current_wallet": "Dompet saat ini",
|
||||
"custom": "Kustom",
|
||||
@@ -450,14 +451,12 @@
|
||||
"expires": "Kedaluwarsa",
|
||||
"expiresOn": "Kedaluwarsa pada",
|
||||
"expiry_and_validity": "Kedaluwarsa dan Validitas",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"export_backup": "Ekspor cadangan",
|
||||
"export_csv": "Export CSV",
|
||||
"export_lightning_logs": "Ekspor log Lightning",
|
||||
"export_logs": "Ekspor log",
|
||||
"export_outputs": "Ekspor keluaran",
|
||||
"export_payjoin_logs": "Ekspor log Payjoin",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"extend_session": "Perpanjang Sesi",
|
||||
"external": "Eksternal",
|
||||
"external_wallet": "Dompet eksternal",
|
||||
@@ -494,6 +493,7 @@
|
||||
"gas_price": "Harga gas",
|
||||
"general": "Umum",
|
||||
"generate_name": "Buat Nama",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"generating_gift_card": "Sedang Membuat Kartu Hadiah",
|
||||
"generating_transaction": "Membuat transaksi",
|
||||
"get_a": "Dapatkan ",
|
||||
@@ -738,6 +738,22 @@
|
||||
"payments": "Pembayaran",
|
||||
"pending": " (tertunda)",
|
||||
"percentageOf": "dari ${amount}",
|
||||
"picker_chip_all": "Semua",
|
||||
"picker_no_matches": "Tidak ada kecocokan",
|
||||
"picker_section_all_assets": "Semua Aset (A-Z)",
|
||||
"picker_section_all_currencies": "Semua Mata Uang",
|
||||
"picker_section_crypto": "kripto",
|
||||
"picker_section_cryptocurrencies": "Mata uang kripto",
|
||||
"picker_section_gas_token": "Token Gas",
|
||||
"picker_section_more_cryptocurrencies": "Lebih Banyak Cryptocurrency",
|
||||
"picker_section_popular": "Populer",
|
||||
"picker_section_recents": "Terbaru",
|
||||
"picker_section_selected": "Terpilih",
|
||||
"picker_section_stablecoins": "Stablecoin",
|
||||
"picker_section_tokenized_stocks": "Saham yang Diberi Token (xStocks)",
|
||||
"picker_section_tokens_standard": "Token (${standard})",
|
||||
"picker_see_all": "Lihat semuanya",
|
||||
"picker_show_less": "Tampilkan lebih sedikit",
|
||||
"pin_at_top": "Sematkan ${token} di atas",
|
||||
"pin_is_incorrect": "PIN tidak benar",
|
||||
"pin_number": "Nomor PIN",
|
||||
@@ -929,12 +945,16 @@
|
||||
"select_a_wallet": "Pilih dompet",
|
||||
"select_address_to_copy": "Pilih Alamat untuk Disalin",
|
||||
"select_all": "Pilih semua",
|
||||
"select_asset": "Pilih Aset",
|
||||
"select_backup_file": "Pilih file cadangan",
|
||||
"select_buy_provider_notice": "Pilih penyedia beli di atas. Anda dapat melewati layar ini dengan mengatur penyedia beli default Anda di pengaturan aplikasi.",
|
||||
"select_destination": "Silakan pilih lokasi tujuan untuk file cadangan.",
|
||||
"select_fiat_currency_title": "Pilih Mata Uang",
|
||||
"select_hw_account_below": "Silakan pilih akun yang akan dipulihkan di bawah ini:",
|
||||
"select_manufacturer_title": "Pilih Produsen",
|
||||
"select_network": "Pilih Jaringan",
|
||||
"select_network_subtitle": "Aset ini ada di beberapa jaringan. Pilih salah satu yang ingin Anda gunakan",
|
||||
"select_network_title": "Pilih Jaringan",
|
||||
"select_other_wallet": "Pilih Wallet lain",
|
||||
"select_receiver": "Pilih Penerima",
|
||||
"select_sell_provider_notice": "Pilih penyedia jual di atas. Anda dapat melewati layar ini dengan mengatur penyedia jual default Anda di pengaturan aplikasi.",
|
||||
|
||||
@@ -277,6 +277,7 @@
|
||||
"creating_new_wallet": "Creazione di un nuovo portafoglio",
|
||||
"creating_new_wallet_error": "Errore: ${description}",
|
||||
"creation_date": "Data di creazione",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"current_swap": "Scambio in corso",
|
||||
"current_wallet": "Portafoglio corrente",
|
||||
"custom": "Personalizzato",
|
||||
@@ -450,14 +451,12 @@
|
||||
"expires": "Scade",
|
||||
"expiresOn": "Scade il",
|
||||
"expiry_and_validity": "Scadenza e validità",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"export_backup": "Esporta backup",
|
||||
"export_csv": "Export CSV",
|
||||
"export_lightning_logs": "Esporta i log di Lightning",
|
||||
"export_logs": "Esporta registri",
|
||||
"export_outputs": "Esporta output",
|
||||
"export_payjoin_logs": "Esporta i log Payjoin",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"extend_session": "Estendi la sessione",
|
||||
"external": "Esterno",
|
||||
"external_wallet": "Portafoglio esterno",
|
||||
@@ -494,6 +493,7 @@
|
||||
"gas_price": "Prezzo del gas",
|
||||
"general": "Generale",
|
||||
"generate_name": "Genera nome",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"generating_gift_card": "Generazione della carta regalo",
|
||||
"generating_transaction": "Generazione della transazione",
|
||||
"get_a": "Ottieni un ",
|
||||
@@ -737,6 +737,22 @@
|
||||
"payments": "Pagamenti",
|
||||
"pending": " (in sospeso)",
|
||||
"percentageOf": "di ${amount}",
|
||||
"picker_chip_all": "Tutto",
|
||||
"picker_no_matches": "Nessuna corrispondenza",
|
||||
"picker_section_all_assets": "Tutte le risorse (A-Z)",
|
||||
"picker_section_all_currencies": "Tutte le valute",
|
||||
"picker_section_crypto": "Criptovaluta",
|
||||
"picker_section_cryptocurrencies": "Criptovalute",
|
||||
"picker_section_gas_token": "Gettone del gas",
|
||||
"picker_section_more_cryptocurrencies": "Altre criptovalute",
|
||||
"picker_section_popular": "Popolare",
|
||||
"picker_section_recents": "Recenti",
|
||||
"picker_section_selected": "Selezionato",
|
||||
"picker_section_stablecoins": "Stablecoin",
|
||||
"picker_section_tokenized_stocks": "Azioni tokenizzate (xStocks)",
|
||||
"picker_section_tokens_standard": "Gettoni (${standard})",
|
||||
"picker_see_all": "Vedi tutto",
|
||||
"picker_show_less": "Mostra meno",
|
||||
"pin_at_top": "Fissa ${token} in alto",
|
||||
"pin_is_incorrect": "Il PIN non è corretto",
|
||||
"pin_number": "Numero PIN",
|
||||
@@ -926,12 +942,16 @@
|
||||
"select_a_wallet": "Seleziona un wallet",
|
||||
"select_address_to_copy": "Seleziona l'indirizzo da copiare",
|
||||
"select_all": "Seleziona tutto",
|
||||
"select_asset": "Seleziona Risorsa",
|
||||
"select_backup_file": "Seleziona il file di backup",
|
||||
"select_buy_provider_notice": "Seleziona un provider di acquisto qui sopra. Puoi saltare questa schermata impostando il provider di acquisto predefinito nelle impostazioni dell'app.",
|
||||
"select_destination": "Seleziona la destinazione per il file di backup.",
|
||||
"select_fiat_currency_title": "Seleziona Valuta",
|
||||
"select_hw_account_below": "Seleziona l'account da ripristinare qui sotto:",
|
||||
"select_manufacturer_title": "Seleziona produttore",
|
||||
"select_network": "Seleziona rete",
|
||||
"select_network_subtitle": "Questa risorsa è presente in più reti. Seleziona quello che desideri utilizzare",
|
||||
"select_network_title": "Seleziona Rete",
|
||||
"select_other_wallet": "Seleziona un altro Wallet",
|
||||
"select_receiver": "Seleziona destinatario",
|
||||
"select_sell_provider_notice": "Seleziona un provider di vendita qui sopra. Puoi saltare questa schermata impostando il provider di vendita predefinito nelle impostazioni dell'app.",
|
||||
|
||||
@@ -277,6 +277,7 @@
|
||||
"creating_new_wallet": "新しいウォレットを作成中",
|
||||
"creating_new_wallet_error": "エラー: ${description}",
|
||||
"creation_date": "作成日",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"current_swap": "現在のスワップ",
|
||||
"current_wallet": "現在のウォレット",
|
||||
"custom": "カスタム",
|
||||
@@ -450,14 +451,12 @@
|
||||
"expires": "有効期限",
|
||||
"expiresOn": "有効期限",
|
||||
"expiry_and_validity": "有効期限と有効性",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"export_backup": "バックアップをエクスポート",
|
||||
"export_csv": "Export CSV",
|
||||
"export_lightning_logs": "Lightningログをエクスポート",
|
||||
"export_logs": "ログをエクスポート",
|
||||
"export_outputs": "アウトプットをエクスポート",
|
||||
"export_payjoin_logs": "Payjoinログをエクスポート",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"extend_session": "セッションを延長",
|
||||
"external": "外部",
|
||||
"external_wallet": "外部ウォレット",
|
||||
@@ -495,6 +494,7 @@
|
||||
"general": "一般",
|
||||
"generate_name": "名前を生成",
|
||||
"generated_gift_card": "ギフトカードの生成",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"generating_gift_card": "ギフトカードを生成中",
|
||||
"generating_transaction": "トランザクションを生成中",
|
||||
"get_a": "入手する ",
|
||||
@@ -737,6 +737,22 @@
|
||||
"payments": "支払い",
|
||||
"pending": " (保留中)",
|
||||
"percentageOf": "${amount}の",
|
||||
"picker_chip_all": "全て",
|
||||
"picker_no_matches": "一致しません",
|
||||
"picker_section_all_assets": "すべてのアセット (A ~ Z)",
|
||||
"picker_section_all_currencies": "すべての通貨",
|
||||
"picker_section_crypto": "暗号",
|
||||
"picker_section_cryptocurrencies": "暗号通貨",
|
||||
"picker_section_gas_token": "ガストークン",
|
||||
"picker_section_more_cryptocurrencies": "より多くの暗号通貨",
|
||||
"picker_section_popular": "人気のある",
|
||||
"picker_section_recents": "最近",
|
||||
"picker_section_selected": "選択済み",
|
||||
"picker_section_stablecoins": "ステーブルコイン",
|
||||
"picker_section_tokenized_stocks": "トークン化された株式 (xStocks)",
|
||||
"picker_section_tokens_standard": "トークン (${standard})",
|
||||
"picker_see_all": "全て見る",
|
||||
"picker_show_less": "表示を少なくする",
|
||||
"pin_at_top": "${token} を上部にピン留め",
|
||||
"pin_is_incorrect": "PINが正しくありません",
|
||||
"pin_number": "PIN番号",
|
||||
@@ -926,12 +942,16 @@
|
||||
"select_a_wallet": "ウォレットを選択",
|
||||
"select_address_to_copy": "コピーするアドレスを選択",
|
||||
"select_all": "すべて選択",
|
||||
"select_asset": "アセットの選択",
|
||||
"select_backup_file": "バックアップファイルを選択",
|
||||
"select_buy_provider_notice": "上の購入プロバイダーを選択してください。アプリ設定でデフォルトの購入プロバイダーを設定すると、この画面をスキップできます。",
|
||||
"select_destination": "バックアップファイルの保存先を選択してください。",
|
||||
"select_fiat_currency_title": "通貨の選択",
|
||||
"select_hw_account_below": "以下から復元するアカウントを選択してください:",
|
||||
"select_manufacturer_title": "メーカーを選択",
|
||||
"select_network": "ネットワークを選択",
|
||||
"select_network_subtitle": "この資産は複数のネットワークに存在します。使用したいものを選択してください",
|
||||
"select_network_title": "ネットワークの選択",
|
||||
"select_other_wallet": "他のウォレットを選択",
|
||||
"select_receiver": "受信者を選択",
|
||||
"select_sell_provider_notice": "上記の売却プロバイダーを選択してください。アプリの設定でデフォルトの売却プロバイダーを設定すると、この画面をスキップできます。",
|
||||
|
||||
@@ -277,6 +277,7 @@
|
||||
"creating_new_wallet": "새 지갑 생성 중",
|
||||
"creating_new_wallet_error": "오류: ${description}",
|
||||
"creation_date": "생성일",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"current_swap": "현재 스왑",
|
||||
"current_wallet": "현재 지갑",
|
||||
"custom": "사용자 지정",
|
||||
@@ -450,14 +451,12 @@
|
||||
"expires": "만료됨",
|
||||
"expiresOn": "만료일",
|
||||
"expiry_and_validity": "만료 및 유효 기간",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"export_backup": "백업 내보내기",
|
||||
"export_csv": "Export CSV",
|
||||
"export_lightning_logs": "Lightning 로그 내보내기",
|
||||
"export_logs": "로그 내보내기",
|
||||
"export_outputs": "출력 내보내기",
|
||||
"export_payjoin_logs": "Payjoin 로그 내보내기",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"extend_session": "세션 연장",
|
||||
"external": "외부",
|
||||
"external_wallet": "외부 지갑",
|
||||
@@ -494,6 +493,7 @@
|
||||
"gas_price": "가스 가격",
|
||||
"general": "일반",
|
||||
"generate_name": "이름 생성",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"generating_gift_card": "기프트 카드 생성 중",
|
||||
"generating_transaction": "트랜잭션 생성 중",
|
||||
"get_a": "받기 ",
|
||||
@@ -737,6 +737,22 @@
|
||||
"payments": "결제",
|
||||
"pending": " (보류 중)",
|
||||
"percentageOf": "${amount}의",
|
||||
"picker_chip_all": "모두",
|
||||
"picker_no_matches": "일치하는 항목 없음",
|
||||
"picker_section_all_assets": "모든 자산(A-Z)",
|
||||
"picker_section_all_currencies": "모든 통화",
|
||||
"picker_section_crypto": "암호화폐",
|
||||
"picker_section_cryptocurrencies": "암호화폐",
|
||||
"picker_section_gas_token": "가스 토큰",
|
||||
"picker_section_more_cryptocurrencies": "더 많은 암호화폐",
|
||||
"picker_section_popular": "인기 있는",
|
||||
"picker_section_recents": "최근",
|
||||
"picker_section_selected": "선택된",
|
||||
"picker_section_stablecoins": "스테이블코인",
|
||||
"picker_section_tokenized_stocks": "토큰화된 주식(xStocks)",
|
||||
"picker_section_tokens_standard": "토큰(${standard})",
|
||||
"picker_see_all": "모두 보기",
|
||||
"picker_show_less": "간략히 보기",
|
||||
"pin_at_top": "${token}을(를) 상단에 고정",
|
||||
"pin_is_incorrect": "PIN이 올바르지 않습니다",
|
||||
"pin_number": "PIN 번호",
|
||||
@@ -926,12 +942,16 @@
|
||||
"select_a_wallet": "지갑 선택",
|
||||
"select_address_to_copy": "복사할 주소를 선택하세요",
|
||||
"select_all": "모두 선택",
|
||||
"select_asset": "자산 선택",
|
||||
"select_backup_file": "백업 파일 선택",
|
||||
"select_buy_provider_notice": "위에서 구매 제공업체를 선택하세요. 앱 설정에서 기본 구매 제공업체를 설정하면 이 화면을 건너뛸 수 있습니다.",
|
||||
"select_destination": "백업 파일의 저장 위치를 선택해 주세요.",
|
||||
"select_fiat_currency_title": "통화 선택",
|
||||
"select_hw_account_below": "아래에서 복구할 계정을 선택해 주세요:",
|
||||
"select_manufacturer_title": "제조업체 선택",
|
||||
"select_network": "네트워크 선택",
|
||||
"select_network_subtitle": "이 자산은 여러 네트워크에 존재합니다. 사용하고 싶은 것을 선택하세요",
|
||||
"select_network_title": "네트워크 선택",
|
||||
"select_other_wallet": "다른 Wallet 선택",
|
||||
"select_receiver": "수신자 선택",
|
||||
"select_sell_provider_notice": "위에서 판매 제공업체를 선택하세요. 앱 설정에서 기본 판매 제공업체를 설정하면 이 화면을 건너뛸 수 있습니다.",
|
||||
|
||||
@@ -277,6 +277,7 @@
|
||||
"creating_new_wallet": "ပိုက်ဆံအိတ်အသစ် ဖန်တီးနေသည်",
|
||||
"creating_new_wallet_error": "အမှား: ${description}",
|
||||
"creation_date": "ဖန်တီးသည့်နေ့စွဲ",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"current_swap": "လက်ရှိ Swap",
|
||||
"current_wallet": "လက်ရှိ Wallet",
|
||||
"custom": "စိတ်ကြိုက်",
|
||||
@@ -450,14 +451,12 @@
|
||||
"expires": "သက်တမ်းကုန်ဆုံးသည်",
|
||||
"expiresOn": "သက်တမ်းကုန်ဆုံးမည့်ရက်",
|
||||
"expiry_and_validity": "သက်တမ်းကုန်ဆုံးရက်နှင့် အကျုံးဝင်မှု",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"export_backup": "အရန်ကူးကို ထုတ်ယူရန်",
|
||||
"export_csv": "Export CSV",
|
||||
"export_lightning_logs": "Lightning မှတ်တမ်းများကို ထုတ်ယူပါ",
|
||||
"export_logs": "မှတ်တမ်းများကို ထုတ်ယူရန်",
|
||||
"export_outputs": "Outputs များကို ထုတ်ယူရန်",
|
||||
"export_payjoin_logs": "Payjoin မှတ်တမ်းများကို တင်ပို့ပါ",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"extend_session": "စက်ရှင် သက်တမ်းတိုးရန်",
|
||||
"external": "ပြင်ပ",
|
||||
"external_wallet": "ပြင်ပ Wallet",
|
||||
@@ -494,6 +493,7 @@
|
||||
"gas_price": "ဂတ်စ်စျေးနှုန်း",
|
||||
"general": "အထွေထွေ",
|
||||
"generate_name": "အမည်ထုတ်ပေးပါ",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"generating_gift_card": "လက်ဆောင်ကတ် ထုတ်လုပ်နေသည်",
|
||||
"generating_transaction": "ငွေလွှဲပြောင်းမှုကို ဖန်တီးနေသည်",
|
||||
"get_a": "ရယူပါ ",
|
||||
@@ -736,6 +736,22 @@
|
||||
"payments": "ပေးချေမှုများ",
|
||||
"pending": " (စောင့်ဆိုင်းဆဲ)",
|
||||
"percentageOf": "${amount} ၏",
|
||||
"picker_chip_all": "အားလုံး",
|
||||
"picker_no_matches": "တိုက်ဆိုင်မှု မရှိပါ။",
|
||||
"picker_section_all_assets": "ပိုင်ဆိုင်မှုအားလုံး (A-Z)",
|
||||
"picker_section_all_currencies": "ငွေကြေးအားလုံး",
|
||||
"picker_section_crypto": "Crypto",
|
||||
"picker_section_cryptocurrencies": "Cryptocurrencies",
|
||||
"picker_section_gas_token": "ဓာတ်ငွေ့တိုကင်",
|
||||
"picker_section_more_cryptocurrencies": "နောက်ထပ် Cryptocurrencies",
|
||||
"picker_section_popular": "လူကြိုက်များသည်။",
|
||||
"picker_section_recents": "မကြာမှီ",
|
||||
"picker_section_selected": "ရွေးချယ်ခဲ့သည်။",
|
||||
"picker_section_stablecoins": "Stablecoins",
|
||||
"picker_section_tokenized_stocks": "Tokenized Stocks (xStocks)",
|
||||
"picker_section_tokens_standard": "တိုကင်များ (${standard})",
|
||||
"picker_see_all": "အားလုံးကြည့်",
|
||||
"picker_show_less": "လျှော့ပြပါ။",
|
||||
"pin_at_top": "${token} ကို အပေါ်ဆုံးတွင် ပင်ထိုးပါ",
|
||||
"pin_is_incorrect": "PIN မမှန်ပါ။",
|
||||
"pin_number": "PIN နံပါတ်",
|
||||
@@ -925,12 +941,16 @@
|
||||
"select_a_wallet": "ပိုက်ဆံအိတ်ကို ရွေးပါ",
|
||||
"select_address_to_copy": "ကူးယူရန် လိပ်စာကို ရွေးချယ်ပါ",
|
||||
"select_all": "အားလုံးကို ရွေးချယ်ပါ",
|
||||
"select_asset": "ပိုင်ဆိုင်မှုကို ရွေးပါ။",
|
||||
"select_backup_file": "အရန်ကူးဖိုင်ကို ရွေးပါ",
|
||||
"select_buy_provider_notice": "အပေါ်တွင်ရှိသော ဝယ်ယူမှု ပံ့ပိုးသူကို ရွေးချယ်ပါ။ App settings တွင် သင့်မူလ ဝယ်ယူမှု ပံ့ပိုးသူကို သတ်မှတ်ထားခြင်းဖြင့် ဤစခရင်ကို ကျော်သွားနိုင်သည်။",
|
||||
"select_destination": "အရန်ကူးဖိုင်အတွက် သိမ်းဆည်းမည့်နေရာကို ရွေးချယ်ပါ။",
|
||||
"select_fiat_currency_title": "ငွေကြေးကို ရွေးပါ။",
|
||||
"select_hw_account_below": "အောက်တွင် ပြန်လည်ရယူရန် မည်သည့်အကောင့်ကို ရွေးချယ်မည်ကို ကျေးဇူးပြု၍ ရွေးပါ။",
|
||||
"select_manufacturer_title": "ထုတ်လုပ်သူကို ရွေးချယ်ပါ",
|
||||
"select_network": "ကွန်ရက်ကို ရွေးချယ်ပါ",
|
||||
"select_network_subtitle": "ဤပိုင်ဆိုင်မှုသည် ကွန်ရက်များစွာတွင် ရှိနေသည်။ သင်အသုံးပြုလိုသောတစ်ခုကို ရွေးပါ။",
|
||||
"select_network_title": "Network ကို ရွေးပါ။",
|
||||
"select_other_wallet": "အခြား Wallet ကို ရွေးချယ်ပါ",
|
||||
"select_receiver": "လက်ခံသူကို ရွေးချယ်ပါ",
|
||||
"select_sell_provider_notice": "အထက်တွင်ရှိသော အရောင်းဝန်ဆောင်မှုပေးသူကို ရွေးပါ။ အက်ပ်ဆက်တင်များတွင် သင်၏ မူလ အရောင်းဝန်ဆောင်မှုပေးသူကို သတ်မှတ်ထားခြင်းဖြင့် ဤစခရင်ကို ကျော်နိုင်သည်။",
|
||||
|
||||
@@ -275,6 +275,7 @@
|
||||
"creating_new_wallet": "Nieuwe wallet aanmaken",
|
||||
"creating_new_wallet_error": "Fout: ${description}",
|
||||
"creation_date": "Aanmaakdatum",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"current_swap": "Huidige swap",
|
||||
"current_wallet": "Huidige wallet",
|
||||
"custom": "Aangepast",
|
||||
@@ -448,14 +449,12 @@
|
||||
"expires": "Verloopt",
|
||||
"expiresOn": "Verloopt op",
|
||||
"expiry_and_validity": "Vervaldatum en geldigheid",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"export_backup": "Back-up exporteren",
|
||||
"export_csv": "Export CSV",
|
||||
"export_lightning_logs": "Lightning-logboeken exporteren",
|
||||
"export_logs": "Exporteer logboeken",
|
||||
"export_outputs": "Outputs exporteren",
|
||||
"export_payjoin_logs": "Payjoin-logboeken exporteren",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"extend_session": "Sessie verlengen",
|
||||
"external": "Extern",
|
||||
"external_wallet": "Externe wallet",
|
||||
@@ -492,6 +491,7 @@
|
||||
"gas_price": "Gasprijs",
|
||||
"general": "Algemeen",
|
||||
"generate_name": "Naam genereren",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"generating_gift_card": "Cadeaubon genereren",
|
||||
"generating_transaction": "Transactie genereren",
|
||||
"get_a": "Krijg een ",
|
||||
@@ -733,6 +733,22 @@
|
||||
"payments": "Betalingen",
|
||||
"pending": " (in behandeling)",
|
||||
"percentageOf": "van ${amount}",
|
||||
"picker_chip_all": "Alle",
|
||||
"picker_no_matches": "Geen overeenkomsten",
|
||||
"picker_section_all_assets": "Alle activa (A-Z)",
|
||||
"picker_section_all_currencies": "Alle valuta's",
|
||||
"picker_section_crypto": "Crypto",
|
||||
"picker_section_cryptocurrencies": "Cryptocurrencies",
|
||||
"picker_section_gas_token": "Gas-token",
|
||||
"picker_section_more_cryptocurrencies": "Meer cryptocurrencies",
|
||||
"picker_section_popular": "Populair",
|
||||
"picker_section_recents": "Recent",
|
||||
"picker_section_selected": "Gekozen",
|
||||
"picker_section_stablecoins": "Stabiele munten",
|
||||
"picker_section_tokenized_stocks": "Tokenized aandelen (xStocks)",
|
||||
"picker_section_tokens_standard": "Tokens (${standard})",
|
||||
"picker_see_all": "Bekijk alles",
|
||||
"picker_show_less": "Laat minder zien",
|
||||
"pin_at_top": "Zet ${token} bovenaan vast",
|
||||
"pin_is_incorrect": "PIN is onjuist",
|
||||
"pin_number": "PIN-nummer",
|
||||
@@ -922,12 +938,16 @@
|
||||
"select_a_wallet": "Selecteer een wallet",
|
||||
"select_address_to_copy": "Selecteer adres om te kopiëren",
|
||||
"select_all": "Alles selecteren",
|
||||
"select_asset": "Selecteer Activa",
|
||||
"select_backup_file": "Selecteer een back-upbestand",
|
||||
"select_buy_provider_notice": "Selecteer hierboven een koopprovider. Je kunt dit scherm overslaan door je standaard koopprovider in te stellen in app-instellingen.",
|
||||
"select_destination": "Selecteer de bestemming voor het back-upbestand.",
|
||||
"select_fiat_currency_title": "Selecteer Valuta",
|
||||
"select_hw_account_below": "Selecteer hieronder welk account je wilt herstellen:",
|
||||
"select_manufacturer_title": "Selecteer fabrikant",
|
||||
"select_network": "Selecteer Netwerk",
|
||||
"select_network_subtitle": "Deze asset is aanwezig in meerdere netwerken. Selecteer degene die u wilt gebruiken",
|
||||
"select_network_title": "Selecteer Netwerk",
|
||||
"select_other_wallet": "Selecteer een andere wallet",
|
||||
"select_receiver": "Selecteer ontvanger",
|
||||
"select_sell_provider_notice": "Selecteer hierboven een verkoopaanbieder. Je kunt dit scherm overslaan door je standaardverkoopprovider in te stellen in de app-instellingen.",
|
||||
|
||||
@@ -277,6 +277,7 @@
|
||||
"creating_new_wallet": "Tworzenie nowego portfela",
|
||||
"creating_new_wallet_error": "Błąd: ${description}",
|
||||
"creation_date": "Data utworzenia",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"current_swap": "Bieżący swap",
|
||||
"current_wallet": "Bieżący portfel",
|
||||
"custom": "Niestandardowy",
|
||||
@@ -449,14 +450,12 @@
|
||||
"expires": "Wygasa",
|
||||
"expiresOn": "Wygasa",
|
||||
"expiry_and_validity": "Termin ważności i ważność",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"export_backup": "Eksportuj kopię zapasową",
|
||||
"export_csv": "Export CSV",
|
||||
"export_lightning_logs": "Eksportuj logi Lightning",
|
||||
"export_logs": "Eksportuj logi",
|
||||
"export_outputs": "Eksportuj wyjścia",
|
||||
"export_payjoin_logs": "Eksportuj logi Payjoin",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"extend_session": "Przedłuż sesję",
|
||||
"external": "Zewnętrzny",
|
||||
"external_wallet": "Zewnętrzny portfel",
|
||||
@@ -493,6 +492,7 @@
|
||||
"gas_price": "Cena gas",
|
||||
"general": "Ogólne",
|
||||
"generate_name": "Wygeneruj nazwę",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"generating_gift_card": "Generowanie karty podarunkowej",
|
||||
"generating_transaction": "Generowanie transakcji",
|
||||
"get_a": "Uzyskaj ",
|
||||
@@ -735,6 +735,22 @@
|
||||
"payments": "Płatności",
|
||||
"pending": " (w toku)",
|
||||
"percentageOf": "z ${amount}",
|
||||
"picker_chip_all": "Wszystko",
|
||||
"picker_no_matches": "Brak dopasowań",
|
||||
"picker_section_all_assets": "Wszystkie zasoby (A-Z)",
|
||||
"picker_section_all_currencies": "Wszystkie waluty",
|
||||
"picker_section_crypto": "Krypto",
|
||||
"picker_section_cryptocurrencies": "Kryptowaluty",
|
||||
"picker_section_gas_token": "Żeton gazu",
|
||||
"picker_section_more_cryptocurrencies": "Więcej kryptowalut",
|
||||
"picker_section_popular": "Popularny",
|
||||
"picker_section_recents": "Najnowsze",
|
||||
"picker_section_selected": "Wybrany",
|
||||
"picker_section_stablecoins": "Stablecoiny",
|
||||
"picker_section_tokenized_stocks": "Tokenizowane akcje (xStocks)",
|
||||
"picker_section_tokens_standard": "Tokeny (${standard})",
|
||||
"picker_see_all": "Zobacz wszystko",
|
||||
"picker_show_less": "Pokaż mniej",
|
||||
"pin_at_top": "Przypnij ${token} na górze",
|
||||
"pin_is_incorrect": "PIN jest nieprawidłowy",
|
||||
"pin_number": "Numer PIN",
|
||||
@@ -924,12 +940,16 @@
|
||||
"select_a_wallet": "Wybierz portfel",
|
||||
"select_address_to_copy": "Wybierz adres do skopiowania",
|
||||
"select_all": "Zaznacz wszystko",
|
||||
"select_asset": "Wybierz Zasób",
|
||||
"select_backup_file": "Wybierz plik kopii zapasowej",
|
||||
"select_buy_provider_notice": "Wybierz powyżej dostawcę zakupu. Możesz pominąć ten ekran, ustawiając domyślnego dostawcę zakupu w ustawieniach aplikacji.",
|
||||
"select_destination": "Wybierz miejsce docelowe dla pliku kopii zapasowej.",
|
||||
"select_fiat_currency_title": "Wybierz Waluta",
|
||||
"select_hw_account_below": "Wybierz poniżej konto do przywrócenia:",
|
||||
"select_manufacturer_title": "Wybierz producenta",
|
||||
"select_network": "Wybierz sieć",
|
||||
"select_network_subtitle": "Ten zasób jest obecny w wielu sieciach. Wybierz ten, którego chcesz użyć",
|
||||
"select_network_title": "Wybierz opcję Sieć",
|
||||
"select_other_wallet": "Wybierz inny portfel",
|
||||
"select_receiver": "Wybierz odbiorcę",
|
||||
"select_sell_provider_notice": "Wybierz powyżej dostawcę sprzedaży. Możesz pominąć ten ekran, ustawiając domyślnego dostawcę sprzedaży w ustawieniach aplikacji.",
|
||||
|
||||
@@ -277,6 +277,7 @@
|
||||
"creating_new_wallet": "Criando nova carteira",
|
||||
"creating_new_wallet_error": "Erro: ${description}",
|
||||
"creation_date": "Data de criação",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"current_swap": "Troca atual",
|
||||
"current_wallet": "Carteira atual",
|
||||
"custom": "Personalizado",
|
||||
@@ -450,14 +451,12 @@
|
||||
"expires": "Expira",
|
||||
"expiresOn": "Expira em",
|
||||
"expiry_and_validity": "Expiração e validade",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"export_backup": "Exportar backup",
|
||||
"export_csv": "Export CSV",
|
||||
"export_lightning_logs": "Exportar logs do Lightning",
|
||||
"export_logs": "Exportar logs",
|
||||
"export_outputs": "Exportar saídas",
|
||||
"export_payjoin_logs": "Exportar logs do Payjoin",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"extend_session": "Estender sessão",
|
||||
"external": "Externo",
|
||||
"external_wallet": "Carteira externa",
|
||||
@@ -494,6 +493,7 @@
|
||||
"gas_price": "Preço do gas",
|
||||
"general": "Geral",
|
||||
"generate_name": "Gerar Nome",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"generating_gift_card": "Gerando cartão-presente",
|
||||
"generating_transaction": "Gerando transação",
|
||||
"get_a": "Obter um ",
|
||||
@@ -738,6 +738,22 @@
|
||||
"payments": "Pagamentos",
|
||||
"pending": " (pendente)",
|
||||
"percentageOf": "de ${amount}",
|
||||
"picker_chip_all": "Todos",
|
||||
"picker_no_matches": "Nenhuma correspondência",
|
||||
"picker_section_all_assets": "Todos os ativos (A-Z)",
|
||||
"picker_section_all_currencies": "Todas as moedas",
|
||||
"picker_section_crypto": "Criptografia",
|
||||
"picker_section_cryptocurrencies": "Criptomoedas",
|
||||
"picker_section_gas_token": "Token de Gás",
|
||||
"picker_section_more_cryptocurrencies": "Mais criptomoedas",
|
||||
"picker_section_popular": "Popular",
|
||||
"picker_section_recents": "Recentes",
|
||||
"picker_section_selected": "Selecionado",
|
||||
"picker_section_stablecoins": "Moedas estáveis",
|
||||
"picker_section_tokenized_stocks": "Ações tokenizadas (xStocks)",
|
||||
"picker_section_tokens_standard": "Tokens (${standard})",
|
||||
"picker_see_all": "Ver tudo",
|
||||
"picker_show_less": "Mostrar menos",
|
||||
"pin_at_top": "Fixar ${token} no topo",
|
||||
"pin_is_incorrect": "O PIN está incorreto",
|
||||
"pin_number": "Número do PIN",
|
||||
@@ -927,12 +943,16 @@
|
||||
"select_a_wallet": "Selecione uma carteira",
|
||||
"select_address_to_copy": "Selecione o endereço para copiar",
|
||||
"select_all": "Selecionar tudo",
|
||||
"select_asset": "Selecione Ativo",
|
||||
"select_backup_file": "Selecionar arquivo de backup",
|
||||
"select_buy_provider_notice": "Selecione um provedor de compra acima. Você pode pular esta tela definindo seu provedor de compra padrão nas configurações do app.",
|
||||
"select_destination": "Selecione o destino para o arquivo de backup.",
|
||||
"select_fiat_currency_title": "Selecione a moeda",
|
||||
"select_hw_account_below": "Selecione abaixo qual conta restaurar:",
|
||||
"select_manufacturer_title": "Selecionar fabricante",
|
||||
"select_network": "Selecionar rede",
|
||||
"select_network_subtitle": "Este ativo está presente em múltiplas redes. Selecione aquele que você deseja usar",
|
||||
"select_network_title": "Selecione Rede",
|
||||
"select_other_wallet": "Selecionar outra carteira",
|
||||
"select_receiver": "Selecionar destinatário",
|
||||
"select_sell_provider_notice": "Selecione um provedor de venda acima. Você pode pular esta tela definindo seu provedor de venda padrão nas configurações do aplicativo.",
|
||||
|
||||
@@ -732,6 +732,11 @@
|
||||
"payments": "Pagamentos",
|
||||
"pending": " (pendente)",
|
||||
"percentageOf": "de ${amount}",
|
||||
"picker_section_crypto": "Cripto",
|
||||
"picker_section_more_cryptocurrencies": "Mais criptomoedas",
|
||||
"picker_section_tokens_standard": "Tokens (${standard})",
|
||||
"picker_see_all": "Ver tudo",
|
||||
"picker_show_less": "Mostrar menos",
|
||||
"pin_at_top": "Fixar ${token} no topo",
|
||||
"pin_is_incorrect": "O PIN está incorreto",
|
||||
"pin_number": "Número do PIN",
|
||||
|
||||
@@ -277,6 +277,7 @@
|
||||
"creating_new_wallet": "Создание нового кошелька",
|
||||
"creating_new_wallet_error": "Ошибка: ${description}",
|
||||
"creation_date": "Дата создания",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"current_swap": "Текущий обмен",
|
||||
"current_wallet": "Текущий кошелёк",
|
||||
"custom": "Пользовательский",
|
||||
@@ -450,14 +451,12 @@
|
||||
"expires": "Истекает",
|
||||
"expiresOn": "Истекает",
|
||||
"expiry_and_validity": "Срок действия и действительность",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"export_backup": "Экспорт резервной копии",
|
||||
"export_csv": "Export CSV",
|
||||
"export_lightning_logs": "Экспорт логов Lightning",
|
||||
"export_logs": "Экспорт журналов",
|
||||
"export_outputs": "Экспорт выходов",
|
||||
"export_payjoin_logs": "Экспорт журналов Payjoin",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"extend_session": "Продлить сессию",
|
||||
"external": "Внешний",
|
||||
"external_wallet": "Внешний кошелёк",
|
||||
@@ -494,6 +493,7 @@
|
||||
"gas_price": "Цена газа",
|
||||
"general": "Общие",
|
||||
"generate_name": "Сгенерировать имя",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"generating_gift_card": "Создание подарочной карты",
|
||||
"generating_transaction": "Генерация транзакции",
|
||||
"get_a": "Получить ",
|
||||
@@ -737,6 +737,22 @@
|
||||
"payments": "Платежи",
|
||||
"pending": " (в ожидании)",
|
||||
"percentageOf": "из ${amount}",
|
||||
"picker_chip_all": "Все",
|
||||
"picker_no_matches": "Нет совпадений",
|
||||
"picker_section_all_assets": "Все активы (А-Я)",
|
||||
"picker_section_all_currencies": "Все валюты",
|
||||
"picker_section_crypto": "Крипто",
|
||||
"picker_section_cryptocurrencies": "Криптовалюты",
|
||||
"picker_section_gas_token": "Газовый токен",
|
||||
"picker_section_more_cryptocurrencies": "Больше криптовалют",
|
||||
"picker_section_popular": "Популярный",
|
||||
"picker_section_recents": "Недавние",
|
||||
"picker_section_selected": "Выбрано",
|
||||
"picker_section_stablecoins": "Стейблкоины",
|
||||
"picker_section_tokenized_stocks": "Токенизированные акции (xStocks)",
|
||||
"picker_section_tokens_standard": "Токены (${standard})",
|
||||
"picker_see_all": "Посмотреть все",
|
||||
"picker_show_less": "Показать меньше",
|
||||
"pin_at_top": "Закрепить ${token} сверху",
|
||||
"pin_is_incorrect": "PIN неверный",
|
||||
"pin_number": "PIN-код",
|
||||
@@ -926,12 +942,16 @@
|
||||
"select_a_wallet": "Выберите кошелёк",
|
||||
"select_address_to_copy": "Выберите адрес для копирования",
|
||||
"select_all": "Выбрать все",
|
||||
"select_asset": "Выберите актив",
|
||||
"select_backup_file": "Выберите файл резервной копии",
|
||||
"select_buy_provider_notice": "Выберите выше провайдера для покупки. Вы можете пропустить этот экран, установив провайдера покупки по умолчанию в настройках приложения.",
|
||||
"select_destination": "Пожалуйста, выберите место назначения для файла резервной копии.",
|
||||
"select_fiat_currency_title": "Выберите валюту",
|
||||
"select_hw_account_below": "Пожалуйста, выберите ниже, какую учетную запись восстановить:",
|
||||
"select_manufacturer_title": "Выберите производителя",
|
||||
"select_network": "Выберите сеть",
|
||||
"select_network_subtitle": "Этот актив присутствует в нескольких сетях. Выберите тот, который вы хотите использовать",
|
||||
"select_network_title": "Выберите сеть",
|
||||
"select_other_wallet": "Выбрать другой кошелек",
|
||||
"select_receiver": "Выберите получателя",
|
||||
"select_sell_provider_notice": "Выберите провайдера для продажи выше. Вы можете пропустить этот экран, установив провайдера для продажи по умолчанию в настройках приложения.",
|
||||
|
||||
@@ -277,6 +277,7 @@
|
||||
"creating_new_wallet": "กำลังสร้างกระเป๋าเงินใหม่",
|
||||
"creating_new_wallet_error": "ข้อผิดพลาด: ${description}",
|
||||
"creation_date": "วันที่สร้าง",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"current_swap": "การสวอปปัจจุบัน",
|
||||
"current_wallet": "กระเป๋าเงินปัจจุบัน",
|
||||
"custom": "กำหนดเอง",
|
||||
@@ -450,14 +451,12 @@
|
||||
"expires": "หมดอายุ",
|
||||
"expiresOn": "หมดอายุวันที่",
|
||||
"expiry_and_validity": "วันหมดอายุและระยะเวลาที่มีผล",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"export_backup": "ส่งออกข้อมูลสำรอง",
|
||||
"export_csv": "Export CSV",
|
||||
"export_lightning_logs": "ส่งออกล็อก Lightning",
|
||||
"export_logs": "ส่งออกบันทึก",
|
||||
"export_outputs": "ส่งออกเอาต์พุต",
|
||||
"export_payjoin_logs": "ส่งออกล็อก Payjoin",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"extend_session": "ขยายเซสชัน",
|
||||
"external": "ภายนอก",
|
||||
"external_wallet": "กระเป๋าเงินภายนอก",
|
||||
@@ -494,6 +493,7 @@
|
||||
"gas_price": "ราคา Gas",
|
||||
"general": "ทั่วไป",
|
||||
"generate_name": "สร้างชื่อ",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"generating_gift_card": "กำลังสร้างบัตรของขวัญ",
|
||||
"generating_transaction": "กำลังสร้างธุรกรรม",
|
||||
"get_a": "รับ ",
|
||||
@@ -736,6 +736,22 @@
|
||||
"payments": "การชำระเงิน",
|
||||
"pending": " (รอดำเนินการ)",
|
||||
"percentageOf": "จาก ${amount}",
|
||||
"picker_chip_all": "ทั้งหมด",
|
||||
"picker_no_matches": "ไม่มีการแข่งขัน",
|
||||
"picker_section_all_assets": "ทรัพย์สินทั้งหมด (A-Z)",
|
||||
"picker_section_all_currencies": "สกุลเงินทั้งหมด",
|
||||
"picker_section_crypto": "การเข้ารหัสลับ",
|
||||
"picker_section_cryptocurrencies": "สกุลเงินดิจิทัล",
|
||||
"picker_section_gas_token": "โทเค็นแก๊ส",
|
||||
"picker_section_more_cryptocurrencies": "Cryptocurrencies เพิ่มเติม",
|
||||
"picker_section_popular": "เป็นที่นิยม",
|
||||
"picker_section_recents": "ล่าสุด",
|
||||
"picker_section_selected": "เลือกแล้ว",
|
||||
"picker_section_stablecoins": "Stablecoins",
|
||||
"picker_section_tokenized_stocks": "หุ้นโทเค็น (xStocks)",
|
||||
"picker_section_tokens_standard": "โทเค็น (${standard})",
|
||||
"picker_see_all": "ดูทั้งหมด",
|
||||
"picker_show_less": "แสดงน้อยลง",
|
||||
"pin_at_top": "ปักหมุด ${token} ไว้ด้านบน",
|
||||
"pin_is_incorrect": "PIN ไม่ถูกต้อง",
|
||||
"pin_number": "หมายเลข PIN",
|
||||
@@ -925,12 +941,16 @@
|
||||
"select_a_wallet": "เลือกวอลเล็ต",
|
||||
"select_address_to_copy": "เลือกที่อยู่เพื่อคัดลอก",
|
||||
"select_all": "เลือกทั้งหมด",
|
||||
"select_asset": "เลือกสินทรัพย์",
|
||||
"select_backup_file": "เลือกไฟล์สำรองข้อมูล",
|
||||
"select_buy_provider_notice": "เลือกผู้ให้บริการซื้อด้านบน คุณสามารถข้ามหน้าจอนี้ได้โดยตั้งค่าผู้ให้บริการซื้อเริ่มต้นในการตั้งค่าแอป",
|
||||
"select_destination": "โปรดเลือกปลายทางสำหรับไฟล์สำรองข้อมูล",
|
||||
"select_fiat_currency_title": "เลือกสกุลเงิน",
|
||||
"select_hw_account_below": "โปรดเลือกบัญชีที่จะกู้คืนด้านล่าง:",
|
||||
"select_manufacturer_title": "เลือกผู้ผลิต",
|
||||
"select_network": "เลือกเครือข่าย",
|
||||
"select_network_subtitle": "เนื้อหานี้มีอยู่ในหลายเครือข่าย เลือกอันที่คุณต้องการใช้",
|
||||
"select_network_title": "เลือกเครือข่าย",
|
||||
"select_other_wallet": "เลือก Wallet อื่น",
|
||||
"select_receiver": "เลือกผู้รับ",
|
||||
"select_sell_provider_notice": "เลือกผู้ให้บริการขายด้านบน คุณสามารถข้ามหน้าจอนี้ได้โดยตั้งค่าผู้ให้บริการขายเริ่มต้นในการตั้งค่าแอป",
|
||||
|
||||
@@ -277,6 +277,7 @@
|
||||
"creating_new_wallet": "Gumagawa ng bagong wallet",
|
||||
"creating_new_wallet_error": "Error: ${description}",
|
||||
"creation_date": "Petsa ng Paglikha",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"current_swap": "Kasalukuyang Swap",
|
||||
"current_wallet": "Kasalukuyang wallet",
|
||||
"custom": "Pasadya",
|
||||
@@ -450,14 +451,12 @@
|
||||
"expires": "Mag-e-expire",
|
||||
"expiresOn": "Mag-e-expire sa",
|
||||
"expiry_and_validity": "Pag-expire at Pagiging Balido",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"export_backup": "I-export ang backup",
|
||||
"export_csv": "Export CSV",
|
||||
"export_lightning_logs": "I-export ang mga log ng Lightning",
|
||||
"export_logs": "I-export ang mga log",
|
||||
"export_outputs": "I-export ang mga output",
|
||||
"export_payjoin_logs": "I-export ang mga Payjoin log",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"extend_session": "Palawigin ang session",
|
||||
"external": "Panlabas",
|
||||
"external_wallet": "Panlabas na wallet",
|
||||
@@ -494,6 +493,7 @@
|
||||
"gas_price": "Presyo ng gas",
|
||||
"general": "Pangkalahatan",
|
||||
"generate_name": "Bumuo ng Pangalan",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"generating_gift_card": "Ginagawa ang Gift Card",
|
||||
"generating_transaction": "Ginagawa ang transaksyon",
|
||||
"get_a": "Kumuha ng ",
|
||||
@@ -736,6 +736,22 @@
|
||||
"payments": "Mga Pagbabayad",
|
||||
"pending": " (nakabinbin)",
|
||||
"percentageOf": "ng ${amount}",
|
||||
"picker_chip_all": "Lahat",
|
||||
"picker_no_matches": "Walang tugma",
|
||||
"picker_section_all_assets": "Lahat ng Asset (A-Z)",
|
||||
"picker_section_all_currencies": "Lahat ng Pera",
|
||||
"picker_section_crypto": "Crypto",
|
||||
"picker_section_cryptocurrencies": "Cryptocurrencies",
|
||||
"picker_section_gas_token": "Gas Token",
|
||||
"picker_section_more_cryptocurrencies": "Higit pang Cryptocurrencies",
|
||||
"picker_section_popular": "Sikat",
|
||||
"picker_section_recents": "Recents",
|
||||
"picker_section_selected": "Napili",
|
||||
"picker_section_stablecoins": "Mga Stablecoin",
|
||||
"picker_section_tokenized_stocks": "Mga Tokenized na Stock (xStocks)",
|
||||
"picker_section_tokens_standard": "Mga Token (${standard})",
|
||||
"picker_see_all": "Tingnan lahat",
|
||||
"picker_show_less": "Magpakita ng mas kaunti",
|
||||
"pin_at_top": "I-pin ang ${token} sa itaas",
|
||||
"pin_is_incorrect": "Mali ang PIN",
|
||||
"pin_number": "Numero ng PIN",
|
||||
@@ -925,12 +941,16 @@
|
||||
"select_a_wallet": "Pumili ng wallet",
|
||||
"select_address_to_copy": "Piliin ang Address na Kokopyahin",
|
||||
"select_all": "Piliin lahat",
|
||||
"select_asset": "Piliin ang Asset",
|
||||
"select_backup_file": "Piliin ang backup file",
|
||||
"select_buy_provider_notice": "Pumili ng provider para bumili sa itaas. Maaari mong laktawan ang screen na ito sa pamamagitan ng pagtatakda ng iyong default na provider para bumili sa mga setting ng app.",
|
||||
"select_destination": "Mangyaring piliin ang patutunguhan ng backup file.",
|
||||
"select_fiat_currency_title": "Piliin ang Pera",
|
||||
"select_hw_account_below": "Mangyaring piliin sa ibaba kung aling account ang ire-restore:",
|
||||
"select_manufacturer_title": "Piliin ang Manufacturer",
|
||||
"select_network": "Pumili ng Network",
|
||||
"select_network_subtitle": "Ang asset na ito ay nasa maraming network. Piliin ang gusto mong gamitin",
|
||||
"select_network_title": "Piliin ang Network",
|
||||
"select_other_wallet": "Pumili ng iba pang Wallet",
|
||||
"select_receiver": "Piliin ang Tatanggap",
|
||||
"select_sell_provider_notice": "Pumili ng sell provider sa itaas. Maaari mong laktawan ang screen na ito sa pamamagitan ng pagtatakda ng iyong default na sell provider sa mga setting ng app.",
|
||||
|
||||
@@ -277,6 +277,7 @@
|
||||
"creating_new_wallet": "Yeni cüzdan oluşturuluyor",
|
||||
"creating_new_wallet_error": "Hata: ${description}",
|
||||
"creation_date": "Oluşturulma Tarihi",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"current_swap": "Mevcut Takas",
|
||||
"current_wallet": "Geçerli cüzdan",
|
||||
"custom": "Özel",
|
||||
@@ -450,14 +451,12 @@
|
||||
"expires": "Sona erme tarihi",
|
||||
"expiresOn": "Şu tarihte sona erer",
|
||||
"expiry_and_validity": "Son Kullanma ve Geçerlilik",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"export_backup": "Yedeklemeyi dışa aktar",
|
||||
"export_csv": "Export CSV",
|
||||
"export_lightning_logs": "Lightning günlüklerini dışa aktar",
|
||||
"export_logs": "Günlükleri dışa aktar",
|
||||
"export_outputs": "Çıktıları dışa aktar",
|
||||
"export_payjoin_logs": "Payjoin günlüklerini dışa aktar",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"extend_session": "Oturumu Uzat",
|
||||
"external": "Harici",
|
||||
"external_wallet": "Harici cüzdan",
|
||||
@@ -494,6 +493,7 @@
|
||||
"gas_price": "Gas ücreti",
|
||||
"general": "Genel",
|
||||
"generate_name": "Ad Oluştur",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"generating_gift_card": "Hediye Kartı Oluşturuluyor",
|
||||
"generating_transaction": "İşlem oluşturuluyor",
|
||||
"get_a": "Bir ",
|
||||
@@ -736,6 +736,22 @@
|
||||
"payments": "Ödemeler",
|
||||
"pending": " (beklemede)",
|
||||
"percentageOf": "${amount} tutarının",
|
||||
"picker_chip_all": "Tüm",
|
||||
"picker_no_matches": "Eşleşme yok",
|
||||
"picker_section_all_assets": "Tüm Varlıklar (A'dan Z'ye)",
|
||||
"picker_section_all_currencies": "Tüm Para Birimleri",
|
||||
"picker_section_crypto": "Kripto",
|
||||
"picker_section_cryptocurrencies": "Kripto para birimleri",
|
||||
"picker_section_gas_token": "Gaz Jetonu",
|
||||
"picker_section_more_cryptocurrencies": "Daha Fazla Kripto Para Birimi",
|
||||
"picker_section_popular": "Popüler",
|
||||
"picker_section_recents": "Son Kullanılanlar",
|
||||
"picker_section_selected": "Seçildi",
|
||||
"picker_section_stablecoins": "Stablecoin'ler",
|
||||
"picker_section_tokenized_stocks": "Tokenleştirilmiş Hisse Senetleri (xStocks)",
|
||||
"picker_section_tokens_standard": "Jetonlar (${standard})",
|
||||
"picker_see_all": "Tümünü gör",
|
||||
"picker_show_less": "Daha az göster",
|
||||
"pin_at_top": "${token}'ı üste sabitle",
|
||||
"pin_is_incorrect": "PIN yanlış",
|
||||
"pin_number": "PIN numarası",
|
||||
@@ -925,12 +941,16 @@
|
||||
"select_a_wallet": "Bir cüzdan seçin",
|
||||
"select_address_to_copy": "Kopyalanacak Adresi Seçin",
|
||||
"select_all": "Tümünü seç",
|
||||
"select_asset": "Varlık Seç",
|
||||
"select_backup_file": "Yedekleme dosyasını seç",
|
||||
"select_buy_provider_notice": "Yukarıdan bir satın alma sağlayıcısı seçin. Uygulama ayarlarında varsayılan satın alma sağlayıcınızı belirleyerek bu ekranı atlayabilirsiniz.",
|
||||
"select_destination": "Lütfen yedekleme dosyası için bir hedef seçin.",
|
||||
"select_fiat_currency_title": "Para Birimi Seçin",
|
||||
"select_hw_account_below": "Lütfen aşağıdan geri yüklenecek hesabı seçin:",
|
||||
"select_manufacturer_title": "Üretici Seçin",
|
||||
"select_network": "Ağ Seç",
|
||||
"select_network_subtitle": "Bu varlık birden fazla ağda mevcut. Kullanmak istediğinizi seçin",
|
||||
"select_network_title": "Ağ Seçin",
|
||||
"select_other_wallet": "Başka bir Cüzdan seçin",
|
||||
"select_receiver": "Alıcı Seçin",
|
||||
"select_sell_provider_notice": "Yukarıdan bir satış sağlayıcısı seçin. Uygulama ayarlarında varsayılan satış sağlayıcınızı belirleyerek bu ekranı atlayabilirsiniz.",
|
||||
|
||||
@@ -277,6 +277,7 @@
|
||||
"creating_new_wallet": "Створення нового гаманця",
|
||||
"creating_new_wallet_error": "Помилка: ${description}",
|
||||
"creation_date": "Дата створення",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"current_swap": "Поточний своп",
|
||||
"current_wallet": "Поточний гаманець",
|
||||
"custom": "Власний",
|
||||
@@ -450,14 +451,12 @@
|
||||
"expires": "Термін дії закінчується",
|
||||
"expiresOn": "Дійсний до",
|
||||
"expiry_and_validity": "Термін дії та чинність",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"export_backup": "Експортувати резервну копію",
|
||||
"export_csv": "Export CSV",
|
||||
"export_lightning_logs": "Експортувати логи Lightning",
|
||||
"export_logs": "Експорт журналів",
|
||||
"export_outputs": "Експорт виходів",
|
||||
"export_payjoin_logs": "Експорт журналів Payjoin",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"extend_session": "Подовжити сеанс",
|
||||
"external": "Зовнішній",
|
||||
"external_wallet": "Зовнішній гаманець",
|
||||
@@ -494,6 +493,7 @@
|
||||
"gas_price": "Ціна газу",
|
||||
"general": "Загальні",
|
||||
"generate_name": "Згенерувати ім’я",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"generating_gift_card": "Генерація подарункової картки",
|
||||
"generating_transaction": "Створення транзакції",
|
||||
"get_a": "Отримати ",
|
||||
@@ -736,6 +736,22 @@
|
||||
"payments": "Платежі",
|
||||
"pending": " (в очікуванні)",
|
||||
"percentageOf": "з ${amount}",
|
||||
"picker_chip_all": "все",
|
||||
"picker_no_matches": "Немає збігів",
|
||||
"picker_section_all_assets": "Усі активи (A-Z)",
|
||||
"picker_section_all_currencies": "Усі валюти",
|
||||
"picker_section_crypto": "Крипто",
|
||||
"picker_section_cryptocurrencies": "Криптовалюти",
|
||||
"picker_section_gas_token": "Газ Токен",
|
||||
"picker_section_more_cryptocurrencies": "Більше криптовалют",
|
||||
"picker_section_popular": "Популярний",
|
||||
"picker_section_recents": "Останні",
|
||||
"picker_section_selected": "Вибране",
|
||||
"picker_section_stablecoins": "Стайблкойни",
|
||||
"picker_section_tokenized_stocks": "Токенізовані акції (xStocks)",
|
||||
"picker_section_tokens_standard": "Жетони (${standard})",
|
||||
"picker_see_all": "Переглянути всі",
|
||||
"picker_show_less": "Показувати менше",
|
||||
"pin_at_top": "Закріпити ${token} зверху",
|
||||
"pin_is_incorrect": "PIN-код неправильний",
|
||||
"pin_number": "PIN-номер",
|
||||
@@ -926,12 +942,16 @@
|
||||
"select_a_wallet": "Виберіть гаманець",
|
||||
"select_address_to_copy": "Виберіть адресу для копіювання",
|
||||
"select_all": "Вибрати все",
|
||||
"select_asset": "Виберіть Актив",
|
||||
"select_backup_file": "Виберіть файл резервної копії",
|
||||
"select_buy_provider_notice": "Виберіть вище постачальника для купівлі. Ви можете пропустити цей екран, встановивши постачальника для купівлі за замовчуванням у налаштуваннях застосунку.",
|
||||
"select_destination": "Будь ласка, виберіть місце призначення для файлу резервної копії.",
|
||||
"select_fiat_currency_title": "Виберіть Валюта",
|
||||
"select_hw_account_below": "Будь ласка, виберіть нижче, який обліковий запис відновити:",
|
||||
"select_manufacturer_title": "Виберіть виробника",
|
||||
"select_network": "Виберіть мережу",
|
||||
"select_network_subtitle": "Цей актив присутній у кількох мережах. Виберіть той, який хочете використовувати",
|
||||
"select_network_title": "Виберіть Мережа",
|
||||
"select_other_wallet": "Виберіть інший гаманець",
|
||||
"select_receiver": "Виберіть одержувача",
|
||||
"select_sell_provider_notice": "Виберіть вище провайдера для продажу. Ви можете пропустити цей екран, встановивши провайдера для продажу за замовчуванням у налаштуваннях застосунку.",
|
||||
|
||||
@@ -277,6 +277,7 @@
|
||||
"creating_new_wallet": "نیا والیٹ بنایا جا رہا ہے",
|
||||
"creating_new_wallet_error": "خرابی: ${description}",
|
||||
"creation_date": "تخلیق کی تاریخ",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"current_swap": "موجودہ سواپ",
|
||||
"current_wallet": "موجودہ والیٹ",
|
||||
"custom": "حسبِ ضرورت",
|
||||
@@ -450,14 +451,12 @@
|
||||
"expires": "میعاد ختم ہوتا ہے",
|
||||
"expiresOn": "میعاد ختم ہونے کی تاریخ",
|
||||
"expiry_and_validity": "میعادِ ختم اور درستگی",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"export_backup": "بیک اپ ایکسپورٹ کریں",
|
||||
"export_csv": "Export CSV",
|
||||
"export_lightning_logs": "لائٹننگ لاگز برآمد کریں",
|
||||
"export_logs": "لاگز برآمد کریں",
|
||||
"export_outputs": "آؤٹ پٹس ایکسپورٹ کریں",
|
||||
"export_payjoin_logs": "Payjoin لاگز ایکسپورٹ کریں",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"extend_session": "سیشن میں توسیع کریں",
|
||||
"external": "بیرونی",
|
||||
"external_wallet": "بیرونی والیٹ",
|
||||
@@ -494,6 +493,7 @@
|
||||
"gas_price": "گیس کی قیمت",
|
||||
"general": "عمومی",
|
||||
"generate_name": "نام بنائیں",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"generating_gift_card": "گفٹ کارڈ تیار کیا جا رہا ہے",
|
||||
"generating_transaction": "ٹرانزیکشن تیار کی جا رہی ہے",
|
||||
"get_a": "حاصل کریں ",
|
||||
@@ -738,6 +738,22 @@
|
||||
"payments": "ادائیگیاں",
|
||||
"pending": " (زیرِ التواء)",
|
||||
"percentageOf": "${amount} کا",
|
||||
"picker_chip_all": "تمام",
|
||||
"picker_no_matches": "کوئی میچ نہیں",
|
||||
"picker_section_all_assets": "تمام اثاثے (A-Z)",
|
||||
"picker_section_all_currencies": "تمام کرنسیاں",
|
||||
"picker_section_crypto": "کرپٹو",
|
||||
"picker_section_cryptocurrencies": "کرپٹو کرنسی",
|
||||
"picker_section_gas_token": "گیس ٹوکن",
|
||||
"picker_section_more_cryptocurrencies": "مزید کریپٹو کرنسی",
|
||||
"picker_section_popular": "مقبول",
|
||||
"picker_section_recents": "حالیہ",
|
||||
"picker_section_selected": "منتخب",
|
||||
"picker_section_stablecoins": "سٹیبل کوائنز",
|
||||
"picker_section_tokenized_stocks": "ٹوکنائزڈ اسٹاکس (xStocks)",
|
||||
"picker_section_tokens_standard": "ٹوکنز (${standard})",
|
||||
"picker_see_all": "سب دیکھیں",
|
||||
"picker_show_less": "کم دکھائیں۔",
|
||||
"pin_at_top": "${token} کو اوپر پن کریں",
|
||||
"pin_is_incorrect": "PIN غلط ہے",
|
||||
"pin_number": "PIN نمبر",
|
||||
@@ -927,12 +943,16 @@
|
||||
"select_a_wallet": "ایک والیٹ منتخب کریں",
|
||||
"select_address_to_copy": "کاپی کرنے کے لیے ایڈریس منتخب کریں",
|
||||
"select_all": "سب منتخب کریں",
|
||||
"select_asset": "اثاثہ منتخب کریں۔",
|
||||
"select_backup_file": "بیک اپ فائل منتخب کریں",
|
||||
"select_buy_provider_notice": "اوپر خریداری فراہم کنندہ منتخب کریں۔ آپ ایپ کی ترتیبات میں اپنا ڈیفالٹ خریداری فراہم کنندہ سیٹ کر کے اس اسکرین کو چھوڑ سکتے ہیں۔",
|
||||
"select_destination": "براہِ کرم بیک اپ فائل کے لیے منزل منتخب کریں۔",
|
||||
"select_fiat_currency_title": "کرنسی کا انتخاب کریں۔",
|
||||
"select_hw_account_below": "براہ کرم نیچے بحال کرنے کے لیے اکاؤنٹ منتخب کریں:",
|
||||
"select_manufacturer_title": "مینوفیکچرر منتخب کریں",
|
||||
"select_network": "نیٹ ورک منتخب کریں",
|
||||
"select_network_subtitle": "یہ اثاثہ متعدد نیٹ ورکس میں موجود ہے۔ جس کو آپ استعمال کرنا چاہتے ہیں اسے منتخب کریں۔",
|
||||
"select_network_title": "نیٹ ورک کو منتخب کریں۔",
|
||||
"select_other_wallet": "دوسرا والیٹ منتخب کریں",
|
||||
"select_receiver": "وصول کنندہ منتخب کریں",
|
||||
"select_sell_provider_notice": "اوپر کسی سیل فراہم کنندہ کو منتخب کریں۔ آپ ایپ کی سیٹنگز میں اپنا ڈیفالٹ سیل فراہم کنندہ سیٹ کر کے اس اسکرین کو چھوڑ سکتے ہیں۔",
|
||||
|
||||
@@ -276,6 +276,7 @@
|
||||
"creating_new_wallet": "Đang tạo ví mới",
|
||||
"creating_new_wallet_error": "Lỗi: ${description}",
|
||||
"creation_date": "Ngày tạo",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"current_swap": "Hoán đổi hiện tại",
|
||||
"current_wallet": "Ví hiện tại",
|
||||
"custom": "Tùy chỉnh",
|
||||
@@ -449,14 +450,12 @@
|
||||
"expires": "Hết hạn",
|
||||
"expiresOn": "Hết hạn vào",
|
||||
"expiry_and_validity": "Thời hạn và hiệu lực",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"export_backup": "Xuất bản sao lưu",
|
||||
"export_csv": "Export CSV",
|
||||
"export_lightning_logs": "Xuất nhật ký Lightning",
|
||||
"export_logs": "Xuất nhật ký",
|
||||
"export_outputs": "Xuất đầu ra",
|
||||
"export_payjoin_logs": "Xuất nhật ký Payjoin",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"extend_session": "Gia hạn phiên",
|
||||
"external": "Bên ngoài",
|
||||
"external_wallet": "Ví ngoài",
|
||||
@@ -493,6 +492,7 @@
|
||||
"gas_price": "Giá gas",
|
||||
"general": "Chung",
|
||||
"generate_name": "Tạo tên",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"generating_gift_card": "Đang tạo thẻ quà tặng",
|
||||
"generating_transaction": "Đang tạo giao dịch",
|
||||
"get_a": "Nhận ",
|
||||
@@ -734,6 +734,22 @@
|
||||
"payments": "Thanh toán",
|
||||
"pending": " (đang chờ)",
|
||||
"percentageOf": "của ${amount}",
|
||||
"picker_chip_all": "Tất cả",
|
||||
"picker_no_matches": "Không có kết quả phù hợp",
|
||||
"picker_section_all_assets": "Tất cả tài sản (A-Z)",
|
||||
"picker_section_all_currencies": "Tất cả các loại tiền tệ",
|
||||
"picker_section_crypto": "tiền điện tử",
|
||||
"picker_section_cryptocurrencies": "Tiền điện tử",
|
||||
"picker_section_gas_token": "Mã thông báo khí",
|
||||
"picker_section_more_cryptocurrencies": "Thêm tiền điện tử",
|
||||
"picker_section_popular": "Phổ biến",
|
||||
"picker_section_recents": "Gần đây",
|
||||
"picker_section_selected": "Đã chọn",
|
||||
"picker_section_stablecoins": "Stablecoin",
|
||||
"picker_section_tokenized_stocks": "Cổ phiếu được mã hóa (xStocks)",
|
||||
"picker_section_tokens_standard": "Mã thông báo (${standard})",
|
||||
"picker_see_all": "Xem tất cả",
|
||||
"picker_show_less": "Hiển thị ít hơn",
|
||||
"pin_at_top": "Ghim ${token} lên đầu",
|
||||
"pin_is_incorrect": "PIN không đúng",
|
||||
"pin_number": "Mã PIN",
|
||||
@@ -923,12 +939,16 @@
|
||||
"select_a_wallet": "Chọn một ví",
|
||||
"select_address_to_copy": "Chọn địa chỉ để sao chép",
|
||||
"select_all": "Chọn tất cả",
|
||||
"select_asset": "Chọn nội dung",
|
||||
"select_backup_file": "Chọn tệp sao lưu",
|
||||
"select_buy_provider_notice": "Chọn nhà cung cấp mua ở trên. Bạn có thể bỏ qua màn hình này bằng cách đặt nhà cung cấp mua mặc định trong phần cài đặt ứng dụng.",
|
||||
"select_destination": "Vui lòng chọn vị trí lưu tệp sao lưu.",
|
||||
"select_fiat_currency_title": "Chọn tiền tệ",
|
||||
"select_hw_account_below": "Vui lòng chọn tài khoản cần khôi phục bên dưới:",
|
||||
"select_manufacturer_title": "Chọn nhà sản xuất",
|
||||
"select_network": "Chọn mạng",
|
||||
"select_network_subtitle": "Tài sản này có mặt trong nhiều mạng. Chọn cái bạn muốn sử dụng",
|
||||
"select_network_title": "Chọn mạng",
|
||||
"select_other_wallet": "Chọn ví khác",
|
||||
"select_receiver": "Chọn người nhận",
|
||||
"select_sell_provider_notice": "Chọn nhà cung cấp bán ở trên. Bạn có thể bỏ qua màn hình này bằng cách đặt nhà cung cấp bán mặc định trong cài đặt ứng dụng.",
|
||||
|
||||
@@ -277,6 +277,7 @@
|
||||
"creating_new_wallet": "Ń ṣẹ̀dá àpamọ́wọ́ tuntun",
|
||||
"creating_new_wallet_error": "Aṣiṣe: ${description}",
|
||||
"creation_date": "Ọjọ́ ìdásílẹ̀",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"current_swap": "Swap lọwọlọwọ",
|
||||
"current_wallet": "Apamọwọ lọwọlọwọ",
|
||||
"custom": "Àdàkọ",
|
||||
@@ -451,14 +452,12 @@
|
||||
"expires": "Yóò parí",
|
||||
"expiresOn": "Yóò parí ní",
|
||||
"expiry_and_validity": "Ọjọ́ ìparí àti ìmúlò",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"export_backup": "Gbé ẹ̀dà àfipamọ́ jáde",
|
||||
"export_csv": "Export CSV",
|
||||
"export_lightning_logs": "Gbe àwọn àkọọlẹ Lightning jáde",
|
||||
"export_logs": "Gbe àwọn ìwé-àkọsílẹ̀ jáde",
|
||||
"export_outputs": "Gbe àwọn output jáde",
|
||||
"export_payjoin_logs": "Gbejade àwọn ìkọ̀ọ́lẹ̀ Payjoin",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"extend_session": "Fa igba iṣẹ́ pọ̀ síi",
|
||||
"external": "Ita",
|
||||
"external_wallet": "Apamọwọ ita",
|
||||
@@ -495,6 +494,7 @@
|
||||
"gas_price": "Iye gaasi",
|
||||
"general": "Gbogbogbo",
|
||||
"generate_name": "Ṣẹda Orúkọ",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"generating_gift_card": "Ń ṣe Ẹ̀bùn Káàdì",
|
||||
"generating_transaction": "Ṣíṣe ìṣòwò",
|
||||
"get_a": "Gba ",
|
||||
@@ -737,6 +737,22 @@
|
||||
"payments": "Awọn ìsanwó",
|
||||
"pending": " (ń dúró)",
|
||||
"percentageOf": "ti ${amount}",
|
||||
"picker_chip_all": "Gbogbo",
|
||||
"picker_no_matches": "Ko si ibaamu",
|
||||
"picker_section_all_assets": "Gbogbo Awọn dukia (A-Z)",
|
||||
"picker_section_all_currencies": "Gbogbo Owo",
|
||||
"picker_section_crypto": "Crypto",
|
||||
"picker_section_cryptocurrencies": "Awọn owo iworo",
|
||||
"picker_section_gas_token": "Gaasi Àmi",
|
||||
"picker_section_more_cryptocurrencies": "Diẹ Cryptocurrencies",
|
||||
"picker_section_popular": "Gbajumo",
|
||||
"picker_section_recents": "Awọn aipẹ",
|
||||
"picker_section_selected": "Ti yan",
|
||||
"picker_section_stablecoins": "Stablecoins",
|
||||
"picker_section_tokenized_stocks": "Awọn akojopo Tokini (xStocks)",
|
||||
"picker_section_tokens_standard": "Àmi (${standard})",
|
||||
"picker_see_all": "Wo gbogbo",
|
||||
"picker_show_less": "Ṣe afihan kere si",
|
||||
"pin_at_top": "Fi ${token} mọ́ òkè",
|
||||
"pin_is_incorrect": "PIN kò tọ́",
|
||||
"pin_number": "Nọ́mbà PIN",
|
||||
@@ -926,12 +942,16 @@
|
||||
"select_a_wallet": "Yan apamọwọ kan",
|
||||
"select_address_to_copy": "Yan Adirẹsi láti Daakọ",
|
||||
"select_all": "Yan gbogbo",
|
||||
"select_asset": "Yan dukia",
|
||||
"select_backup_file": "Yan faili afẹ́yinti",
|
||||
"select_buy_provider_notice": "Yan olupese rira loke. O le foju iboju yii kọja nipa ṣiṣeto olupese rira aiyipada rẹ ninu awọn eto app.",
|
||||
"select_destination": "Jọwọ yan ibi ìpamọ́ fún fáìlì afẹ́yinti.",
|
||||
"select_fiat_currency_title": "Yan Owo",
|
||||
"select_hw_account_below": "Jọwọ yan àkántì tí o fẹ́ mú padà ní isalẹ:",
|
||||
"select_manufacturer_title": "Yan Olupese",
|
||||
"select_network": "Yan Nẹ́tíwọ́ọ̀kì",
|
||||
"select_network_subtitle": "Ohun-ini yii wa ni awọn nẹtiwọọki pupọ. Yan eyi ti o fẹ lati lo",
|
||||
"select_network_title": "Yan Nẹtiwọọki",
|
||||
"select_other_wallet": "Yan Apamọwọ mìíràn",
|
||||
"select_receiver": "Yan Olùgbà",
|
||||
"select_sell_provider_notice": "Yan olupese tita kan loke. O le foju iboju yii kọja nipa tito olupese tita aiyipada rẹ ninu awọn eto app.",
|
||||
|
||||
@@ -277,6 +277,7 @@
|
||||
"creating_new_wallet": "正在创建新钱包",
|
||||
"creating_new_wallet_error": "错误:${description}",
|
||||
"creation_date": "创建日期",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"current_swap": "当前兑换",
|
||||
"current_wallet": "当前钱包",
|
||||
"custom": "自定义",
|
||||
@@ -450,14 +451,12 @@
|
||||
"expires": "到期",
|
||||
"expiresOn": "到期于",
|
||||
"expiry_and_validity": "有效期和有效性",
|
||||
"csv_nothing_to_export": "Nothing to export",
|
||||
"export_backup": "导出备份",
|
||||
"export_csv": "Export CSV",
|
||||
"export_lightning_logs": "导出 Lightning 日志",
|
||||
"export_logs": "导出日志",
|
||||
"export_outputs": "导出输出",
|
||||
"export_payjoin_logs": "导出 Payjoin 日志",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"extend_session": "延长会话",
|
||||
"external": "外部",
|
||||
"external_wallet": "外部钱包",
|
||||
@@ -494,6 +493,7 @@
|
||||
"gas_price": "Gas 费",
|
||||
"general": "通用",
|
||||
"generate_name": "生成名称",
|
||||
"generating_csv": "Generating CSV...",
|
||||
"generating_gift_card": "正在生成礼品卡",
|
||||
"generating_transaction": "正在生成交易",
|
||||
"get_a": "获取一个",
|
||||
@@ -736,6 +736,22 @@
|
||||
"payments": "支付",
|
||||
"pending": "(待处理)",
|
||||
"percentageOf": "${amount} 的",
|
||||
"picker_chip_all": "全部",
|
||||
"picker_no_matches": "没有匹配项",
|
||||
"picker_section_all_assets": "所有资产(A-Z)",
|
||||
"picker_section_all_currencies": "所有货币",
|
||||
"picker_section_crypto": "加密货币",
|
||||
"picker_section_cryptocurrencies": "加密货币",
|
||||
"picker_section_gas_token": "天然气代币",
|
||||
"picker_section_more_cryptocurrencies": "更多加密货币",
|
||||
"picker_section_popular": "受欢迎的",
|
||||
"picker_section_recents": "最近的内容",
|
||||
"picker_section_selected": "已选择",
|
||||
"picker_section_stablecoins": "稳定币",
|
||||
"picker_section_tokenized_stocks": "代币化股票 (xStocks)",
|
||||
"picker_section_tokens_standard": "代币(${standard})",
|
||||
"picker_see_all": "查看全部",
|
||||
"picker_show_less": "显示较少",
|
||||
"pin_at_top": "将 ${token} 置顶",
|
||||
"pin_is_incorrect": "PIN 不正确",
|
||||
"pin_number": "PIN 码",
|
||||
@@ -925,12 +941,16 @@
|
||||
"select_a_wallet": "选择钱包",
|
||||
"select_address_to_copy": "选择要复制的地址",
|
||||
"select_all": "全选",
|
||||
"select_asset": "选择资产",
|
||||
"select_backup_file": "选择备份文件",
|
||||
"select_buy_provider_notice": "请在上方选择一个买入服务提供商。您可以在应用设置中设置默认买入服务提供商,以跳过此屏幕。",
|
||||
"select_destination": "请选择备份文件的保存位置。",
|
||||
"select_fiat_currency_title": "选择货币",
|
||||
"select_hw_account_below": "请在下方选择要恢复的账户:",
|
||||
"select_manufacturer_title": "选择制造商",
|
||||
"select_network": "选择网络",
|
||||
"select_network_subtitle": "该资产存在于多个网络中。选择您要使用的",
|
||||
"select_network_title": "选择网络",
|
||||
"select_other_wallet": "选择其他钱包",
|
||||
"select_receiver": "选择收款方",
|
||||
"select_sell_provider_notice": "请选择上方的出售服务提供商。您可以在应用设置中设置默认的出售服务提供商,以跳过此屏幕。",
|
||||
|
||||
@@ -631,6 +631,11 @@
|
||||
"payments": "支付",
|
||||
"pending": " (待處理)",
|
||||
"percentageOf": "的 ${amount}",
|
||||
"picker_section_crypto": "加密貨幣",
|
||||
"picker_section_more_cryptocurrencies": "更多加密貨幣",
|
||||
"picker_section_tokens_standard": "代幣(${standard})",
|
||||
"picker_see_all": "查看全部",
|
||||
"picker_show_less": "顯示較少",
|
||||
"pin_at_top": "將 ${token} 釘選至頂端",
|
||||
"pin_is_incorrect": "PIN 不正確",
|
||||
"pin_number": "PIN 碼",
|
||||
|
||||
Reference in New Issue
Block a user