v5.5.0 Release candidate (#2574)

* v5.5.0 Release candidate * RC contents: - Trezor - Bitbox - Base - Hardware/Air-gapped wallets flow enhancements - New Theme - UI enhancements - Bug fixes fixes: - Disable LTC for bitbox - Fix missing coins icons * RC contents: - Trezor - Bitbox - Base - Hardware/Air-gapped wallets flow enhancements - New Theme - UI enhancements - Bug fixes fixes: - Disable LTC for bitbox - Add USDE icon - Fix missing images * RC contents: - Trezor - Bitbox - Base - Hardware/Air-gapped wallets flow enhancements - New Theme - UI enhancements - Bug fixes fixes: - Disable LTC for bitbox - Add USDE icon - Fix missing images - Refactor code and remove `normalizedIconPath` * RC contents: - Trezor - Bitbox - Base - Hardware/Air-gapped wallets flow enhancements - New Theme - UI enhancements - Bug fixes fixes: - Disable LTC for bitbox - Add USDE icon - Fix missing images - Refactor code and remove `normalizedIconPath` * RC contents: - Trezor - Bitbox - Base - Hardware/Air-gapped wallets flow enhancements - New Theme - UI enhancements - Bug fixes fixes: - Disable LTC for bitbox - Add USDE icon - Fix missing images - Refactor code and remove `normalizedIconPath` * - Add xstocks to existing wallets - Add xstocks initial icons * - Add All xStocks icons - Fix All tokens issues and persistent

Omar Hatem committed Oct 15, 2025 at 05:26 UTC b1ee2acdc065a616b3862edc9523d46c13f71133
108 files changed +1234 -549
assets/images/crypto/ethena-usde-logo.png
Binary files /dev/null and b/assets/images/crypto/ethena-usde-logo.png differ
assets/images/stocks/abbv.webp
Binary files /dev/null and b/assets/images/stocks/abbv.webp differ
assets/images/stocks/abtx.webp
Binary files /dev/null and b/assets/images/stocks/abtx.webp differ
assets/images/stocks/acnx.webp
Binary files /dev/null and b/assets/images/stocks/acnx.webp differ
assets/images/stocks/ambrx.webp
Binary files /dev/null and b/assets/images/stocks/ambrx.webp differ
assets/images/stocks/amznx.webp
Binary files /dev/null and b/assets/images/stocks/amznx.webp differ
assets/images/stocks/apple.webp
Binary files /dev/null and b/assets/images/stocks/apple.webp differ
assets/images/stocks/appx.webp
Binary files /dev/null and b/assets/images/stocks/appx.webp differ
assets/images/stocks/avgox.webp
Binary files /dev/null and b/assets/images/stocks/avgox.webp differ
assets/images/stocks/aznx.webp
Binary files /dev/null and b/assets/images/stocks/aznx.webp differ
assets/images/stocks/bacx.webp
Binary files /dev/null and b/assets/images/stocks/bacx.webp differ
assets/images/stocks/brkbx.webp
Binary files /dev/null and b/assets/images/stocks/brkbx.webp differ
assets/images/stocks/cmcsax.webp
Binary files /dev/null and b/assets/images/stocks/cmcsax.webp differ
assets/images/stocks/coinx.webp
Binary files /dev/null and b/assets/images/stocks/coinx.webp differ
assets/images/stocks/crclx.webp
Binary files /dev/null and b/assets/images/stocks/crclx.webp differ
assets/images/stocks/crmx.webp
Binary files /dev/null and b/assets/images/stocks/crmx.webp differ
assets/images/stocks/crwdx.webp
Binary files /dev/null and b/assets/images/stocks/crwdx.webp differ
assets/images/stocks/cscox.webp
Binary files /dev/null and b/assets/images/stocks/cscox.webp differ
assets/images/stocks/cvxx.webp
Binary files /dev/null and b/assets/images/stocks/cvxx.webp differ
assets/images/stocks/dfdvx.webp
Binary files /dev/null and b/assets/images/stocks/dfdvx.webp differ
assets/images/stocks/dhrx.webp
Binary files /dev/null and b/assets/images/stocks/dhrx.webp differ
assets/images/stocks/gldx.webp
Binary files /dev/null and b/assets/images/stocks/gldx.webp differ
assets/images/stocks/gmex.webp
Binary files /dev/null and b/assets/images/stocks/gmex.webp differ
assets/images/stocks/googlx.webp
Binary files /dev/null and b/assets/images/stocks/googlx.webp differ
assets/images/stocks/gsx.webp
Binary files /dev/null and b/assets/images/stocks/gsx.webp differ
assets/images/stocks/hdx.webp
Binary files /dev/null and b/assets/images/stocks/hdx.webp differ
assets/images/stocks/honx.webp
Binary files /dev/null and b/assets/images/stocks/honx.webp differ
assets/images/stocks/hoodx.webp
Binary files /dev/null and b/assets/images/stocks/hoodx.webp differ
assets/images/stocks/ibmx.webp
Binary files /dev/null and b/assets/images/stocks/ibmx.webp differ
assets/images/stocks/imbx.webp
Binary files /dev/null and b/assets/images/stocks/imbx.webp differ
assets/images/stocks/intcx.webp
Binary files /dev/null and b/assets/images/stocks/intcx.webp differ
assets/images/stocks/jnjx.webp
Binary files /dev/null and b/assets/images/stocks/jnjx.webp differ
assets/images/stocks/jpmx.webp
Binary files /dev/null and b/assets/images/stocks/jpmx.webp differ
assets/images/stocks/kox.webp
Binary files /dev/null and b/assets/images/stocks/kox.webp differ
assets/images/stocks/linx.webp
Binary files /dev/null and b/assets/images/stocks/linx.webp differ
assets/images/stocks/llyx.webp
Binary files /dev/null and b/assets/images/stocks/llyx.webp differ
assets/images/stocks/mastercard.webp
Binary files /dev/null and b/assets/images/stocks/mastercard.webp differ
assets/images/stocks/mcdonalds.webp
Binary files /dev/null and b/assets/images/stocks/mcdonalds.webp differ
assets/images/stocks/mdtx.webp
Binary files /dev/null and b/assets/images/stocks/mdtx.webp differ
assets/images/stocks/metax.webp
Binary files /dev/null and b/assets/images/stocks/metax.webp differ
assets/images/stocks/mrkx.webp
Binary files /dev/null and b/assets/images/stocks/mrkx.webp differ
assets/images/stocks/mrvlx.webp
Binary files /dev/null and b/assets/images/stocks/mrvlx.webp differ
assets/images/stocks/msftx.webp
Binary files /dev/null and b/assets/images/stocks/msftx.webp differ
assets/images/stocks/mstrx.webp
Binary files /dev/null and b/assets/images/stocks/mstrx.webp differ
assets/images/stocks/nflxx.webp
Binary files /dev/null and b/assets/images/stocks/nflxx.webp differ
assets/images/stocks/nvdax.webp
Binary files /dev/null and b/assets/images/stocks/nvdax.webp differ
assets/images/stocks/nvox.webp
Binary files /dev/null and b/assets/images/stocks/nvox.webp differ
assets/images/stocks/openx.webp
Binary files /dev/null and b/assets/images/stocks/openx.webp differ
assets/images/stocks/orclx.webp
Binary files /dev/null and b/assets/images/stocks/orclx.webp differ
assets/images/stocks/pepx.webp
Binary files /dev/null and b/assets/images/stocks/pepx.webp differ
assets/images/stocks/pfex.webp
Binary files /dev/null and b/assets/images/stocks/pfex.webp differ
assets/images/stocks/pgx.webp
Binary files /dev/null and b/assets/images/stocks/pgx.webp differ
assets/images/stocks/pltrx.webp
Binary files /dev/null and b/assets/images/stocks/pltrx.webp differ
assets/images/stocks/pmx.webp
Binary files /dev/null and b/assets/images/stocks/pmx.webp differ
assets/images/stocks/qqqx.webp
Binary files /dev/null and b/assets/images/stocks/qqqx.webp differ
assets/images/stocks/spyx.webp
Binary files /dev/null and b/assets/images/stocks/spyx.webp differ
assets/images/stocks/tbllx.webp
Binary files /dev/null and b/assets/images/stocks/tbllx.webp differ
assets/images/stocks/tmox.webp
Binary files /dev/null and b/assets/images/stocks/tmox.webp differ
assets/images/stocks/tonxx.webp
Binary files /dev/null and b/assets/images/stocks/tonxx.webp differ
assets/images/stocks/tqqqx.webp
Binary files /dev/null and b/assets/images/stocks/tqqqx.webp differ
assets/images/stocks/tslax.webp
Binary files /dev/null and b/assets/images/stocks/tslax.webp differ
assets/images/stocks/uhnx.webp
Binary files /dev/null and b/assets/images/stocks/uhnx.webp differ
assets/images/stocks/unhx.webp
Binary files /dev/null and b/assets/images/stocks/unhx.webp differ
assets/images/stocks/vtix.webp
Binary files /dev/null and b/assets/images/stocks/vtix.webp differ
assets/images/stocks/vx.webp
Binary files /dev/null and b/assets/images/stocks/vx.webp differ
assets/images/stocks/wmtx.webp
Binary files /dev/null and b/assets/images/stocks/wmtx.webp differ
assets/images/stocks/xomx.webp
Binary files /dev/null and b/assets/images/stocks/xomx.webp differ
assets/text/Monerocom_Release_Notes.txt
+5 -2
@@ -1,3 +1,6 @@
1 -Connectivity improvements
2 -UI enhancements
1 +Add support for Trezor
2 +Add support for Bitbox
3 +Hardware wallets flow enhancements
4 +New Themes
5 +New designs
6 Bug fixes
\ No newline at end of file
assets/text/Release_Notes.txt
+6 -3
@@ -1,4 +1,7 @@
1 -Payjoin enhancements
2 -Connectivity improvements
3 -UI enhancements
1 +Add Base coin wallet
2 +Add support for Trezor
3 +Add support for Bitbox
4 +Hardware wallets flow enhancements
5 +New Themes
6 +New designs
7 Bug fixes
\ No newline at end of file
cw_base/devtools_options.yaml new
+3
@@ -0,0 +1,3 @@
1 +description: This file stores settings for Dart & Flutter DevTools.
2 +documentation: https://docs.flutter.dev/tools/devtools/extensions#configure-extension-enablement-states
3 +extensions:
cw_base/lib/base_wallet.dart
+6 -9
@@ -32,24 +32,21 @@ class BaseWallet extends EVMChainWallet {
32
33 @override
34 Future<void> initErc20TokensBox() async {
35 - final boxName = "${walletInfo.name.replaceAll(" ", "_")}_ ${Erc20Token.baseBoxName}";
35 + final boxName = "${walletInfo.name.replaceAll(" ", "_")}_${Erc20Token.baseBoxName}";
36
37 evmChainErc20TokensBox = await CakeHive.openBox<Erc20Token>(boxName);
38 }
39
40 @override
41 - void addInitialTokens([bool isMigration = false]) {
41 + void addInitialTokens() {
42 final initialErc20Tokens = DefaultBaseErc20Tokens().initialBaseErc20Tokens;
43
44 for (final token in initialErc20Tokens) {
45 - if (evmChainErc20TokensBox.containsKey(token.contractAddress)) {
46 - final existingToken = evmChainErc20TokensBox.get(token.contractAddress);
47 - if (existingToken?.tag != token.tag) {
48 - evmChainErc20TokensBox.put(token.contractAddress, token);
49 - }
50 - } else {
51 - if (isMigration) token.enabled = false;
45 + if (!evmChainErc20TokensBox.containsKey(token.contractAddress)) {
46 evmChainErc20TokensBox.put(token.contractAddress, token);
47 + } else { // update existing token
48 + final existingToken = evmChainErc20TokensBox.get(token.contractAddress);
49 + evmChainErc20TokensBox.put(token.contractAddress, Erc20Token.copyWith(token, enabled: existingToken!.enabled));
50 }
51 }
52 }
cw_base/lib/base_wallet_service.dart
+2 -2
@@ -56,7 +56,7 @@ class BaseWalletService extends EVMChainWalletService<BaseWallet> {
56 );
57
58 await wallet.init();
59 - wallet.addInitialTokens(true);
59 + wallet.addInitialTokens();
60 await wallet.save();
61 saveBackup(name);
62 return wallet;
@@ -71,7 +71,7 @@ class BaseWalletService extends EVMChainWalletService<BaseWallet> {
71 );
72
73 await wallet.init();
74 - wallet.addInitialTokens(true);
74 + wallet.addInitialTokens();
75 await wallet.save();
76 return wallet;
77 }
cw_base/lib/default_base_erc20_tokens.dart
+10 -6
@@ -56,12 +56,16 @@ class DefaultBaseErc20Tokens {
56
57 List<Erc20Token> get initialBaseErc20Tokens => _defaultTokens.map((token) {
58 String? iconPath;
59 - try {
60 - iconPath = CryptoCurrency.all
61 - .firstWhere((element) => element.title.toUpperCase() == token.symbol.toUpperCase())
62 - .iconPath;
63 - } catch (_) {}
59 + if (token.iconPath?.isEmpty ?? true) {
60 + try {
61 + iconPath = CryptoCurrency.all
62 + .firstWhere((element) => element.title.toUpperCase() == token.symbol.toUpperCase())
63 + .iconPath;
64 + } catch (_) {}
65 + } else {
66 + iconPath = token.iconPath;
67 + }
68
65 - return Erc20Token.copyWith(token, iconPath, 'BASE');
69 + return Erc20Token.copyWith(token, icon: iconPath, tag: 'BASE');
70 }).toList();
71 }
cw_core/lib/crypto_currency.dart
+2
@@ -116,6 +116,7 @@ class CryptoCurrency extends EnumerableItem<int> with Serializable<int> implemen
116 CryptoCurrency.ndeps,
117 CryptoCurrency.deps,
118 CryptoCurrency.baseEth,
119 + CryptoCurrency.usde,
120 ];
121
122 static const havenCurrencies = [
@@ -243,6 +244,7 @@ class CryptoCurrency extends EnumerableItem<int> with Serializable<int> implemen
244 static const kbtc = CryptoCurrency(title: 'KBTC', tag: 'ETH', fullName: 'Kraken Wrapped Bitcoin', raw: 102, name: 'kbtc', iconPath: 'assets/images/kbtc_icon.png', decimals: 8);
245 static const cbbtc = CryptoCurrency(title: 'CBBTC', tag: 'ETH', fullName: 'Coinbase Wrapped BTC', raw: 103, name: 'cbbtc', iconPath: 'assets/images/cbbtc_icon.png', decimals: 8);
246 static const baseEth = CryptoCurrency(title: 'ETH', tag: 'BASE', fullName: 'Ethereum', raw: 104, name: 'baseth', iconPath: 'assets/images/crypto/base_icon.webp', decimals: 18);
247 + static const usde = CryptoCurrency(title: 'USDE', tag: 'BASE', fullName: 'Ethena USDE', raw: 105, name: 'usde', iconPath: 'assets/images/crypto/ethena-usde-logo.png', decimals: 18);
248
249 static final Map<int, CryptoCurrency> _rawCurrencyMap =
250 [...all, ...havenCurrencies].fold<Map<int, CryptoCurrency>>(<int, CryptoCurrency>{}, (acc, item) {
cw_core/lib/currency_for_wallet_type.dart
-9
@@ -43,12 +43,3 @@ CryptoCurrency walletTypeToCryptoCurrency(WalletType type, {bool isTestnet = fal
43 'Unexpected wallet type: ${type.toString()} for CryptoCurrency walletTypeToCryptoCurrency');
44 }
45 }
46 -
47 -extension CryptoCurrencyForWalletType on CryptoCurrency {
48 - String? get normalizedIconPath {
49 - if (this == CryptoCurrency.baseEth) {
50 - return 'assets/images/crypto/base_icon.webp';
51 - }
52 - return iconPath;
53 - }
54 -}
cw_core/lib/erc20_token.dart
+4 -4
@@ -47,14 +47,14 @@ class Erc20Token extends CryptoCurrency with HiveObjectMixin {
47 isPotentialScam: isPotentialScam,
48 );
49
50 - Erc20Token.copyWith(Erc20Token other, String? icon, String? tag)
50 + Erc20Token.copyWith(Erc20Token other, {String? icon, String? tag, bool? enabled})
51 : this.name = other.name,
52 this.symbol = other.symbol,
53 this.contractAddress = other.contractAddress,
54 this.decimal = other.decimal,
55 - this._enabled = other.enabled,
56 - this.tag = tag,
57 - this.iconPath = icon,
55 + this._enabled = enabled ?? other.enabled,
56 + this.tag = tag ?? other.tag,
57 + this.iconPath = icon ?? other.iconPath,
58 this.isPotentialScam = other.isPotentialScam,
59 super(
60 name: other.name,
cw_core/lib/hardware/device_connection_type.dart
+1 -1
@@ -13,7 +13,7 @@ enum DeviceConnectionType {
13 case HardwareWalletType.bitbox:
14 isSupported = [
15 WalletType.bitcoin,
16 - WalletType.litecoin,
16 + // WalletType.litecoin,
17 WalletType.ethereum,
18 WalletType.polygon
19 ].contains(walletType);
cw_core/lib/spl_token.dart
+4 -4
@@ -83,15 +83,15 @@ class SPLToken extends CryptoCurrency with HiveObjectMixin {
83 @override
84 set enabled(bool value) => _enabled = value;
85
86 - SPLToken.copyWith(SPLToken other, String? icon, String? tag)
86 + SPLToken.copyWith(SPLToken other, {String? icon, String? tag, bool? enabled})
87 : name = other.name,
88 symbol = other.symbol,
89 mintAddress = other.mintAddress,
90 decimal = other.decimal,
91 - _enabled = other.enabled,
91 + _enabled = enabled ?? other.enabled,
92 mint = other.mint,
93 - tag = other.tag,
94 - iconPath = icon,
93 + tag = tag ?? other.tag,
94 + iconPath = icon ?? other.iconPath,
95 isPotentialScam = other.isPotentialScam,
96 super(
97 title: other.symbol.toUpperCase(),
cw_core/lib/tron_token.dart
+2 -2
@@ -56,12 +56,12 @@ class TronToken extends CryptoCurrency with HiveObjectMixin {
56 isPotentialScam: isPotentialScam,
57 );
58
59 - TronToken.copyWith(TronToken other, String? icon, String? tag)
59 + TronToken.copyWith(TronToken other, {String? icon, String? tag, bool? enabled})
60 : name = other.name,
61 symbol = other.symbol,
62 contractAddress = other.contractAddress,
63 decimal = other.decimal,
64 - _enabled = other.enabled,
64 + _enabled = enabled ?? other.enabled,
65 tag = tag ?? other.tag,
66 iconPath = icon ?? other.iconPath,
67 isPotentialScam = other.isPotentialScam,
cw_decred/devtools_options.yaml new
+3
@@ -0,0 +1,3 @@
1 +description: This file stores settings for Dart & Flutter DevTools.
2 +documentation: https://docs.flutter.dev/tools/devtools/extensions#configure-extension-enablement-states
3 +extensions:
cw_ethereum/lib/default_ethereum_erc20_tokens.dart
+522 -6
@@ -332,16 +332,532 @@ class DefaultEthereumErc20Tokens {
332 decimal: 8,
333 enabled: false,
334 ),
335 + Erc20Token(
336 + name: 'Abbott xStock',
337 + symbol: 'ABTx',
338 + contractAddress: '0x89233399708c18ac6887f90a2b4cd8ba5fedd06e',
339 + decimal: 8,
340 + enabled: false,
341 + iconPath: 'assets/images/stocks/abtx.webp',
342 + ),
343 + Erc20Token(
344 + name: 'AbbVie xStock',
345 + symbol: 'ABBVx',
346 + contractAddress: '0xfbf2398df672cee4afcc2a4a733222331c742a6a',
347 + decimal: 8,
348 + enabled: false,
349 + iconPath: 'assets/images/stocks/abbv.webp',
350 + ),
351 + Erc20Token(
352 + name: 'Accenture xStock',
353 + symbol: 'ACNx',
354 + contractAddress: '0x03183ce31b1656b72a55fa6056e287f50c35bbeb',
355 + decimal: 8,
356 + enabled: false,
357 + iconPath: 'assets/images/stocks/acnx.webp',
358 + ),
359 + Erc20Token(
360 + name: 'Alphabet xStock',
361 + symbol: 'GOOGLx',
362 + contractAddress: '0xe92f673ca36c5e2efd2de7628f815f84807e803f',
363 + decimal: 8,
364 + enabled: false,
365 + iconPath: 'assets/images/stocks/googlx.webp',
366 + ),
367 + Erc20Token(
368 + name: 'Amazon xStock',
369 + symbol: 'AMZNx',
370 + contractAddress: '0x3557ba345b01efa20a1bddc61f573bfd87195081',
371 + decimal: 8,
372 + enabled: false,
373 + iconPath: 'assets/images/stocks/amznx.webp',
374 + ),
375 + Erc20Token(
376 + name: 'Amber xStock',
377 + symbol: 'AMBRx',
378 + contractAddress: '0x2f9a35ab5ddfbc49927bfdeab98a86c53dc6e763',
379 + decimal: 8,
380 + enabled: false,
381 + iconPath: 'assets/images/stocks/ambrx.webp',
382 + ),
383 + Erc20Token(
384 + name: 'Apple xStock',
385 + symbol: 'AAPLx',
386 + contractAddress: '0x9d275685dc284c8eb1c79f6aba7a63dc75ec890a',
387 + decimal: 8,
388 + enabled: false,
389 + iconPath: 'assets/images/stocks/apple.webp',
390 + ),
391 + Erc20Token(
392 + name: 'AppLovin xStock',
393 + symbol: 'APPx',
394 + contractAddress: '0x50a1291f69d9d3853def8209cfb1af0b46927be1',
395 + decimal: 8,
396 + enabled: false,
397 + iconPath: 'assets/images/stocks/appx.webp',
398 + ),
399 + Erc20Token(
400 + name: 'AstraZeneca xStock',
401 + symbol: 'AZNx',
402 + contractAddress: '0x5d642505fe1a28897eb3baba665f454755d8daa2',
403 + decimal: 8,
404 + enabled: false,
405 + iconPath: 'assets/images/stocks/aznx.webp',
406 + ),
407 + Erc20Token(
408 + name: 'Bank of America xStock',
409 + symbol: 'BACx',
410 + contractAddress: '0x314938c596f5ce31c3f75307d2979338c346d7f2',
411 + decimal: 8,
412 + enabled: false,
413 + iconPath: 'assets/images/stocks/bacx.webp',
414 + ),
415 + Erc20Token(
416 + name: 'Berkshire Hathaway xStock',
417 + symbol: 'BRK.Bx',
418 + contractAddress: '0x12992613fdd35abe95dec5a4964331b1ee23b50d',
419 + decimal: 8,
420 + enabled: false,
421 + iconPath: 'assets/images/stocks/brkbx.webp',
422 + ),
423 + Erc20Token(
424 + name: 'Broadcom xStock',
425 + symbol: 'AVGOx',
426 + contractAddress: '0x38bac69cbbd28156796e4163b2b6dcb81e336565',
427 + decimal: 8,
428 + enabled: false,
429 + iconPath: 'assets/images/stocks/avgox.webp',
430 + ),
431 + Erc20Token(
432 + name: 'Chevron xStock',
433 + symbol: 'CVXx',
434 + contractAddress: '0xad5cdc3340904285b8159089974a99a1a09eb4c0',
435 + decimal: 8,
436 + enabled: false,
437 + iconPath: 'assets/images/stocks/cvxx.webp',
438 + ),
439 + Erc20Token(
440 + name: 'Circle xStock',
441 + symbol: 'CRCLx',
442 + contractAddress: '0xfebded1b0986a8ee107f5ab1a1c5a813491deceb',
443 + decimal: 8,
444 + enabled: false,
445 + iconPath: 'assets/images/stocks/crclx.webp',
446 + ),
447 + Erc20Token(
448 + name: 'Cisco xStock',
449 + symbol: 'CSCOx',
450 + contractAddress: '0x053c784cd87b74f42e0c089f98643e79c1a3ff16',
451 + decimal: 8,
452 + enabled: false,
453 + iconPath: 'assets/images/stocks/cscox.webp',
454 + ),
455 + Erc20Token(
456 + name: 'Coca-Cola xStock',
457 + symbol: 'KOx',
458 + contractAddress: '0xdcc1a2699441079da889b1f49e12b69cc791129b',
459 + decimal: 8,
460 + enabled: false,
461 + iconPath: 'assets/images/stocks/kox.webp',
462 + ),
463 + Erc20Token(
464 + name: 'Coinbase xStock',
465 + symbol: 'COINx',
466 + contractAddress: '0x364f210f430ec2448fc68a49203040f6124096f0',
467 + decimal: 8,
468 + enabled: false,
469 + iconPath: 'assets/images/stocks/coinx.webp',
470 + ),
471 + Erc20Token(
472 + name: 'Comcast xStock',
473 + symbol: 'CMCSAx',
474 + contractAddress: '0xbc7170a1280be28513b4e940c681537eb25e39f4',
475 + decimal: 8,
476 + enabled: false,
477 + iconPath: 'assets/images/stocks/cmcsax.webp',
478 + ),
479 + Erc20Token(
480 + name: 'CrowdStrike xStock',
481 + symbol: 'CRWDx',
482 + contractAddress: '0x214151022c2a5e380ab80cdac31f23ae554a7345',
483 + decimal: 8,
484 + enabled: false,
485 + iconPath: 'assets/images/stocks/crwdx.webp',
486 + ),
487 + Erc20Token(
488 + name: 'Danaher xStock',
489 + symbol: 'DHRx',
490 + contractAddress: '0xdba228936f4079daf9aa906fd48a87f2300405f4',
491 + decimal: 8,
492 + enabled: false,
493 + iconPath: 'assets/images/stocks/dhrx.webp',
494 + ),
495 + Erc20Token(
496 + name: 'DFDV xStock',
497 + symbol: 'DFDVx',
498 + contractAddress: '0x521860bb5df5468358875266b89bfe90d990c6e7',
499 + decimal: 8,
500 + enabled: false,
501 + iconPath: 'assets/images/stocks/dfdvx.webp',
502 + ),
503 + Erc20Token(
504 + name: 'Eli Lilly xStock',
505 + symbol: 'LLYx',
506 + contractAddress: '0x19c41ea77b34bbdee61c3a87a75d1abda2ed0be4',
507 + decimal: 8,
508 + enabled: false,
509 + iconPath: 'assets/images/stocks/llyx.webp',
510 + ),
511 + Erc20Token(
512 + name: 'Exxon Mobil xStock',
513 + symbol: 'XOMx',
514 + contractAddress: '0xeedb0273c5af792745180e9ff568cd01550ffa13',
515 + decimal: 8,
516 + enabled: false,
517 + iconPath: 'assets/images/stocks/xomx.webp',
518 + ),
519 + Erc20Token(
520 + name: 'Gamestop xStock',
521 + symbol: 'GMEx',
522 + contractAddress: '0xe5f6d3b2405abdfe6f660e63202b25d23763160d',
523 + decimal: 8,
524 + enabled: false,
525 + iconPath: 'assets/images/stocks/gmex.webp',
526 + ),
527 + Erc20Token(
528 + name: 'Gold xStock',
529 + symbol: 'GLDx',
530 + contractAddress: '0x2380f2673c640fb67e2d6b55b44c62f0e0e69da9',
531 + decimal: 8,
532 + enabled: false,
533 + iconPath: 'assets/images/stocks/gldx.webp',
534 + ),
535 + Erc20Token(
536 + name: 'Goldman Sachs xStock',
537 + symbol: 'GSx',
538 + contractAddress: '0x3ee7e9b3a992fd23cd1c363b0e296856b04ab149',
539 + decimal: 8,
540 + enabled: false,
541 + iconPath: 'assets/images/stocks/gsx.webp',
542 + ),
543 + Erc20Token(
544 + name: 'Home Depot xStock',
545 + symbol: 'HDx',
546 + contractAddress: '0x766b0cd6ed6d90b5d49d2c36a3761e9728501ba9',
547 + decimal: 8,
548 + enabled: false,
549 + iconPath: 'assets/images/stocks/hdx.webp',
550 + ),
551 + Erc20Token(
552 + name: 'Honeywell xStock',
553 + symbol: 'HONx',
554 + contractAddress: '0x62a48560861b0b451654bfffdb5be6e47aa8ff1b',
555 + decimal: 8,
556 + enabled: false,
557 + iconPath: 'assets/images/stocks/honx.webp',
558 + ),
559 + Erc20Token(
560 + name: 'Intel xStock',
561 + symbol: 'INTCx',
562 + contractAddress: '0xf8a80d1cb9cfd70d03d655d9df42339846f3b3c8',
563 + decimal: 8,
564 + enabled: false,
565 + iconPath: 'assets/images/stocks/intcx.webp',
566 + ),
567 + Erc20Token(
568 + name: 'International Business Machines xStock',
569 + symbol: 'IBMx',
570 + contractAddress: '0xd9913208647671fe0f48f7f260076b2c6f310aac',
571 + decimal: 8,
572 + enabled: false,
573 + iconPath: 'assets/images/stocks/ibmx.webp',
574 + ),
575 + Erc20Token(
576 + name: 'Johnson & Johnson xStock',
577 + symbol: 'JNJx',
578 + contractAddress: '0xdb0482cfad4789798623e64b15eeba01b16e917c',
579 + decimal: 8,
580 + enabled: false,
581 + iconPath: 'assets/images/stocks/jnjx.webp',
582 + ),
583 + Erc20Token(
584 + name: 'JPMorgan Chase xStock',
585 + symbol: 'JPMx',
586 + contractAddress: '0xd9fc3e075d45254a1d834fea18af8041207dea0a',
587 + decimal: 8,
588 + enabled: false,
589 + iconPath: 'assets/images/stocks/jpmx.webp',
590 + ),
591 + Erc20Token(
592 + name: 'Linde xStock',
593 + symbol: 'LINx',
594 + contractAddress: '0x15059c599c16fd8f70b633ade165502d6402cd49',
595 + decimal: 8,
596 + enabled: false,
597 + iconPath: 'assets/images/stocks/linx.webp',
598 + ),
599 + Erc20Token(
600 + name: 'Marvell xStock',
601 + symbol: 'MRVLx',
602 + contractAddress: '0xeaad46f4146ded5a47b55aa7f6c48c191deaec88',
603 + decimal: 8,
604 + enabled: false,
605 + iconPath: 'assets/images/stocks/mrvlx.webp',
606 + ),
607 + Erc20Token(
608 + name: 'Mastercard xStock',
609 + symbol: 'MAx',
610 + contractAddress: '0xb365cd2588065f522d379ad19e903304f6b622c6',
611 + decimal: 8,
612 + enabled: false,
613 + iconPath: 'assets/images/stocks/mastercard.webp',
614 + ),
615 + Erc20Token(
616 + name: 'McDonald\'s xStock',
617 + symbol: 'MCDx',
618 + contractAddress: '0x80a77a372c1e12accda84299492f404902e2da67',
619 + decimal: 8,
620 + enabled: false,
621 + iconPath: 'assets/images/stocks/mcdonalds.webp',
622 + ),
623 + Erc20Token(
624 + name: 'Medtronic xStock',
625 + symbol: 'MDTx',
626 + contractAddress: '0x0588e851ec0418d660bee81230d6c678daf21d46',
627 + decimal: 8,
628 + enabled: false,
629 + iconPath: 'assets/images/stocks/mdtx.webp',
630 + ),
631 + Erc20Token(
632 + name: 'Merck xStock',
633 + symbol: 'MRKx',
634 + contractAddress: '0x17d8186ed8f68059124190d147174d0f6697dc40',
635 + decimal: 8,
636 + enabled: false,
637 + iconPath: 'assets/images/stocks/mrkx.webp',
638 + ),
639 + Erc20Token(
640 + name: 'Meta xStock',
641 + symbol: 'METAx',
642 + contractAddress: '0x96702be57cd9777f835117a809c7124fe4ec989a',
643 + decimal: 8,
644 + enabled: false,
645 + iconPath: 'assets/images/stocks/metax.webp',
646 + ),
647 + Erc20Token(
648 + name: 'Microsoft xStock',
649 + symbol: 'MSFTx',
650 + contractAddress: '0x5621737f42dae558b81269fcb9e9e70c19aa6b35',
651 + decimal: 8,
652 + enabled: false,
653 + iconPath: 'assets/images/stocks/msftx.webp',
654 + ),
655 + Erc20Token(
656 + name: 'MicroStrategy xStock',
657 + symbol: 'MSTRx',
658 + contractAddress: '0xae2f842ef90c0d5213259ab82639d5bbf649b08e',
659 + decimal: 8,
660 + enabled: false,
661 + iconPath: 'assets/images/stocks/mstrx.webp',
662 + ),
663 + Erc20Token(
664 + name: 'Nasdaq xStock',
665 + symbol: 'QQQx',
666 + contractAddress: '0xa753a7395cae905cd615da0b82a53e0560f250af',
667 + decimal: 8,
668 + enabled: false,
669 + iconPath: 'assets/images/stocks/qqqx.webp',
670 + ),
671 + Erc20Token(
672 + name: 'Netflix xStock',
673 + symbol: 'NFLXx',
674 + contractAddress: '0xa6a65ac27e76cd53cb790473e4345c46e5ebf961',
675 + decimal: 8,
676 + enabled: false,
677 + iconPath: 'assets/images/stocks/nflxx.webp',
678 + ),
679 + Erc20Token(
680 + name: 'Novo Nordisk xStock',
681 + symbol: 'NVOx',
682 + contractAddress: '0xf9523e369c5f55ad72dbaa75b0a9b92b3d8b147e',
683 + decimal: 8,
684 + enabled: false,
685 + iconPath: 'assets/images/stocks/nvox.webp',
686 + ),
687 + Erc20Token(
688 + name: 'NVIDIA xStock',
689 + symbol: 'NVDAx',
690 + contractAddress: '0xc845b2894dbddd03858fd2d643b4ef725fe0849d',
691 + decimal: 8,
692 + enabled: false,
693 + iconPath: 'assets/images/stocks/nvdax.webp',
694 + ),
695 + Erc20Token(
696 + name: 'OPEN xStock',
697 + symbol: 'OPENx',
698 + contractAddress: '0xbee6b69345f376598fe16abd5592c6f844825e66',
699 + decimal: 8,
700 + enabled: false,
701 + iconPath: 'assets/images/stocks/openx.webp',
702 + ),
703 + Erc20Token(
704 + name: 'Oracle xStock',
705 + symbol: 'ORCLx',
706 + contractAddress: '0x548308e91ec9f285c7bff05295badbd56a6e4971',
707 + decimal: 8,
708 + enabled: false,
709 + iconPath: 'assets/images/stocks/orclx.webp',
710 + ),
711 + Erc20Token(
712 + name: 'Palantir xStock',
713 + symbol: 'PLTRx',
714 + contractAddress: '0x6d482cec5f9dd1f05ccee9fd3ff79b246170f8e2',
715 + decimal: 8,
716 + enabled: false,
717 + iconPath: 'assets/images/stocks/pltrx.webp',
718 + ),
719 + Erc20Token(
720 + name: 'PepsiCo xStock',
721 + symbol: 'PEPx',
722 + contractAddress: '0x36c424a6ec0e264b1616102ad63ed2ad7857413e',
723 + decimal: 8,
724 + enabled: false,
725 + iconPath: 'assets/images/stocks/pepx.webp',
726 + ),
727 + Erc20Token(
728 + name: 'Pfizer xStock',
729 + symbol: 'PFEx',
730 + contractAddress: '0x1ac765b5bea23184802c7d2d497f7c33f1444a9e',
731 + decimal: 8,
732 + enabled: false,
733 + iconPath: 'assets/images/stocks/pfex.webp',
734 + ),
735 + Erc20Token(
736 + name: 'Philip Morris xStock',
737 + symbol: 'PMx',
738 + contractAddress: '0x02a6c1789c3b4fdb1a7a3dfa39f90e5d3c94f4f9',
739 + decimal: 8,
740 + enabled: false,
741 + iconPath: 'assets/images/stocks/pmx.webp',
742 + ),
743 + Erc20Token(
744 + name: 'Procter & Gamble xStock',
745 + symbol: 'PGx',
746 + contractAddress: '0xa90424d5d3e770e8644103ab503ed775dd1318fd',
747 + decimal: 8,
748 + enabled: false,
749 + iconPath: 'assets/images/stocks/pgx.webp',
750 + ),
751 + Erc20Token(
752 + name: 'Robinhood xStock',
753 + symbol: 'HOODx',
754 + contractAddress: '0xe1385fdd5ffb10081cd52c56584f25efa9084015',
755 + decimal: 8,
756 + enabled: false,
757 + iconPath: 'assets/images/stocks/hoodx.webp',
758 + ),
759 + Erc20Token(
760 + name: 'Salesforce xStock',
761 + symbol: 'CRMx',
762 + contractAddress: '0x4a4073f2eaf299a1be22254dcd2c41727f6f54a2',
763 + decimal: 8,
764 + enabled: false,
765 + iconPath: 'assets/images/stocks/crmx.webp',
766 + ),
767 + Erc20Token(
768 + name: 'SP500 xStock',
769 + symbol: 'SPYx',
770 + contractAddress: '0x90a2a4c76b5d8c0bc892a69ea28aa775a8f2dd48',
771 + decimal: 8,
772 + enabled: false,
773 + iconPath: 'assets/images/stocks/spyx.webp',
774 + ),
775 + Erc20Token(
776 + name: 'TBLL xStock',
777 + symbol: 'TBLLx',
778 + contractAddress: '0x4cbf89ed7bb30b8a860fa86d3c96e9c72931299b',
779 + decimal: 8,
780 + enabled: false,
781 + iconPath: 'assets/images/stocks/tbllx.webp',
782 + ),
783 + Erc20Token(
784 + name: 'Tesla xStock',
785 + symbol: 'TSLAx',
786 + contractAddress: '0x8ad3c73f833d3f9a523ab01476625f269aeb7cf0',
787 + decimal: 8,
788 + enabled: false,
789 + iconPath: 'assets/images/stocks/tslax.webp',
790 + ),
791 + Erc20Token(
792 + name: 'Thermo Fisher xStock',
793 + symbol: 'TMOx',
794 + contractAddress: '0xaf072f109a2c173d822a4fe9af311a1b18f83d19',
795 + decimal: 8,
796 + enabled: false,
797 + iconPath: 'assets/images/stocks/tmox.webp',
798 + ),
799 + Erc20Token(
800 + name: 'TON xStock',
801 + symbol: 'TONXx',
802 + contractAddress: '0xe95ab205e333443d7970336d5fd827ef9ed97608',
803 + decimal: 8,
804 + enabled: false,
805 + iconPath: 'assets/images/stocks/tonxx.webp',
806 + ),
807 + Erc20Token(
808 + name: 'TQQQ xStock',
809 + symbol: 'TQQQx',
810 + contractAddress: '0xfdddb57878ef9d6f681ec4381dcb626b9e69ac86',
811 + decimal: 8,
812 + enabled: false,
813 + iconPath: 'assets/images/stocks/tqqqx.webp',
814 + ),
815 + Erc20Token(
816 + name: 'UnitedHealth xStock',
817 + symbol: 'UNHx',
818 + contractAddress: '0x167a6375da1efc4a5be0f470e73ecefd66245048',
819 + decimal: 8,
820 + enabled: false,
821 + iconPath: 'assets/images/stocks/unhx.webp',
822 + ),
823 + Erc20Token(
824 + name: 'Vanguard xStock',
825 + symbol: 'VTIx',
826 + contractAddress: '0xbd730e618bcd88c82ddee52e10275cf2f88a4777',
827 + decimal: 8,
828 + enabled: false,
829 + iconPath: 'assets/images/stocks/vtix.webp',
830 + ),
831 + Erc20Token(
832 + name: 'Visa xStock',
833 + symbol: 'Vx',
834 + contractAddress: '0x2363fd1235c1b6d3a5088ddf8df3a0b3a30c5293',
835 + decimal: 8,
836 + enabled: false,
837 + iconPath: 'assets/images/stocks/vx.webp',
838 + ),
839 + Erc20Token(
840 + name: 'Walmart xStock',
841 + symbol: 'WMTx',
842 + contractAddress: '0x7aefc9965699fbea943e03264d96e50cd4a97b21',
843 + decimal: 8,
844 + enabled: false,
845 + iconPath: 'assets/images/stocks/wmtx.webp',
846 + ),
847 ];
848
849 List<Erc20Token> get initialErc20Tokens => _defaultTokens.map((token) {
850 String? iconPath;
339 - try {
340 - iconPath = CryptoCurrency.all
341 - .firstWhere((element) => element.title.toUpperCase() == token.symbol.toUpperCase())
342 - .iconPath;
343 - } catch (_) {}
851 + if (token.iconPath?.isEmpty ?? true) {
852 + try {
853 + iconPath = CryptoCurrency.all
854 + .firstWhere((element) => element.title.toUpperCase() == token.symbol.toUpperCase())
855 + .iconPath;
856 + } catch (_) {}
857 + } else {
858 + iconPath = token.iconPath;
859 + }
860
345 - return Erc20Token.copyWith(token, iconPath, 'ETH');
861 + return Erc20Token.copyWith(token, icon: iconPath, tag: 'ETH');
862 }).toList();
863 }
cw_ethereum/lib/ethereum_wallet.dart
+4 -2
@@ -31,13 +31,15 @@ class EthereumWallet extends EVMChainWallet {
31 }) : super(nativeCurrency: CryptoCurrency.eth);
32
33 @override
34 - void addInitialTokens([bool isMigration = false]) {
34 + void addInitialTokens() {
35 final initialErc20Tokens = DefaultEthereumErc20Tokens().initialErc20Tokens;
36
37 for (final token in initialErc20Tokens) {
38 if (!evmChainErc20TokensBox.containsKey(token.contractAddress)) {
39 - if (isMigration) token.enabled = false;
39 evmChainErc20TokensBox.put(token.contractAddress, token);
40 + } else { // update existing token
41 + final existingToken = evmChainErc20TokensBox.get(token.contractAddress);
42 + evmChainErc20TokensBox.put(token.contractAddress, Erc20Token.copyWith(token, enabled: existingToken!.enabled));
43 }
44 }
45 }
cw_ethereum/lib/ethereum_wallet_service.dart
+2 -2
@@ -53,7 +53,7 @@ class EthereumWalletService extends EVMChainWalletService<EthereumWallet> {
53 );
54
55 await wallet.init();
56 - wallet.addInitialTokens(true);
56 + wallet.addInitialTokens();
57 await wallet.save();
58 saveBackup(name);
59 return wallet;
@@ -67,7 +67,7 @@ class EthereumWalletService extends EVMChainWalletService<EthereumWallet> {
67 encryptionFileUtils: encryptionFileUtilsFor(isDirect),
68 );
69 await wallet.init();
70 - wallet.addInitialTokens(true);
70 + wallet.addInitialTokens();
71 await wallet.save();
72 return wallet;
73 }
cw_evm/lib/evm_chain_wallet.dart
+1 -1
@@ -139,7 +139,7 @@ abstract class EVMChainWalletBase
139
140 //! Methods to be overridden by every child
141
142 - void addInitialTokens([bool isMigration]);
142 + void addInitialTokens();
143
144 // Future<EVMChainWallet> open({
145 // required String name,
cw_polygon/devtools_options.yaml new
+3
@@ -0,0 +1,3 @@
1 +description: This file stores settings for Dart & Flutter DevTools.
2 +documentation: https://docs.flutter.dev/tools/devtools/extensions#configure-extension-enablement-states
3 +extensions:
cw_polygon/lib/default_polygon_erc20_tokens.dart
+11 -7
@@ -77,13 +77,17 @@ class DefaultPolygonErc20Tokens {
77
78 List<Erc20Token> get initialPolygonErc20Tokens => _defaultTokens.map((token) {
79 String? iconPath;
80 - try {
81 - iconPath = CryptoCurrency.all
82 - .firstWhere((element) =>
83 - element.title.toUpperCase() == token.symbol.split(".").first.toUpperCase())
84 - .iconPath;
85 - } catch (_) {}
80 + if (token.iconPath?.isEmpty ?? true) {
81 + try {
82 + iconPath = CryptoCurrency.all
83 + .firstWhere((element) =>
84 + element.title.toUpperCase() == token.symbol.split(".").first.toUpperCase())
85 + .iconPath;
86 + } catch (_) {}
87 + } else {
88 + iconPath = token.iconPath;
89 + }
90
87 - return Erc20Token.copyWith(token, iconPath, 'POL');
91 + return Erc20Token.copyWith(token, icon: iconPath, tag: 'POL');
92 }).toList();
93 }
cw_polygon/lib/polygon_wallet.dart
+5 -8
@@ -41,18 +41,15 @@ class PolygonWallet extends EVMChainWallet {
41 }
42
43 @override
44 - void addInitialTokens([bool isMigration = false]) {
44 + void addInitialTokens() {
45 final initialErc20Tokens = DefaultPolygonErc20Tokens().initialPolygonErc20Tokens;
46
47 for (final token in initialErc20Tokens) {
48 - if (evmChainErc20TokensBox.containsKey(token.contractAddress)) {
49 - final existingToken = evmChainErc20TokensBox.get(token.contractAddress);
50 - if (existingToken?.tag != token.tag) {
51 - evmChainErc20TokensBox.put(token.contractAddress, token);
52 - }
53 - } else {
54 - if (isMigration) token.enabled = false;
48 + if (!evmChainErc20TokensBox.containsKey(token.contractAddress)) {
49 evmChainErc20TokensBox.put(token.contractAddress, token);
50 + } else { // update existing token
51 + final existingToken = evmChainErc20TokensBox.get(token.contractAddress);
52 + evmChainErc20TokensBox.put(token.contractAddress, Erc20Token.copyWith(token, enabled: existingToken!.enabled));
53 }
54 }
55 }
cw_polygon/lib/polygon_wallet_service.dart
+1 -1
@@ -55,7 +55,7 @@ class PolygonWalletService extends EVMChainWalletService<PolygonWallet> {
55 );
56
57 await wallet.init();
58 - wallet.addInitialTokens(true);
58 + wallet.addInitialTokens();
59 await wallet.save();
60 saveBackup(name);
61 return wallet;
cw_solana/lib/default_spl_tokens.dart
+585 -449
@@ -100,459 +100,595 @@ class DefaultSPLTokens {
100 enabled: false,
101 ),
102 SPLToken(
103 - name: 'Abbott xStock',
104 - symbol: 'ABTx',
105 - mintAddress: 'XsHtf5RpxsQ7jeJ9ivNewouZKJHbPxhPoEy6yYvULr7',
106 - decimal: 8,
107 - mint: 'abtx',
108 - enabled: false),
109 - SPLToken(
110 - name: 'AbbVie xStock',
111 - symbol: 'ABBVx',
112 - mintAddress: 'XswbinNKyPmzTa5CskMbCPvMW6G5CMnZXZEeQSSQoie',
113 - decimal: 8,
114 - mint: 'abbvx',
115 - enabled: false),
116 - SPLToken(
117 - name: 'Accenture xStock',
118 - symbol: 'ACNx',
119 - mintAddress: 'Xs5UJzmCRQ8DWZjskExdSQDnbE6iLkRu2jjrRAB1JSU',
120 - decimal: 8,
121 - mint: 'acnx',
122 - enabled: false),
123 - SPLToken(
124 - name: 'Alphabet xStock',
125 - symbol: 'GOOGLx',
126 - mintAddress: 'XsCPL9dNWBMvFtTmwcCA5v3xWPSMEBCszbQdiLLq6aN',
127 - decimal: 8,
128 - mint: 'googlx',
129 - enabled: false),
130 - SPLToken(
131 - name: 'Amazon xStock',
132 - symbol: 'AMZNx',
133 - mintAddress: 'Xs3eBt7uRfJX8QUs4suhyU8p2M6DoUDrJyWBa8LLZsg',
134 - decimal: 8,
135 - mint: 'amznx',
136 - enabled: false),
137 - SPLToken(
138 - name: 'Amber xStock',
139 - symbol: 'AMBRx',
140 - mintAddress: 'XsaQTCgebC2KPbf27KUhdv5JFvHhQ4GDAPURwrEhAzb',
141 - decimal: 8,
142 - mint: 'ambrx',
143 - enabled: false),
144 - SPLToken(
145 - name: 'Apple xStock',
146 - symbol: 'AAPLx',
147 - mintAddress: 'XsbEhLAtcf6HdfpFZ5xEMdqW8nfAvcsP5bdudRLJzJp',
148 - decimal: 8,
149 - mint: 'aaplx',
150 - enabled: false),
151 - SPLToken(
152 - name: 'AppLovin xStock',
153 - symbol: 'APPx',
154 - mintAddress: 'XsPdAVBi8Zc1xvv53k4JcMrQaEDTgkGqKYeh7AYgPHV',
155 - decimal: 8,
156 - mint: 'appx',
157 - enabled: false),
158 - SPLToken(
159 - name: 'AstraZeneca xStock',
160 - symbol: 'AZNx',
161 - mintAddress: 'Xs3ZFkPYT2BN7qBMqf1j1bfTeTm1rFzEFSsQ1z3wAKU',
162 - decimal: 8,
163 - mint: 'aznx',
164 - enabled: false),
165 - SPLToken(
166 - name: 'Bank of America xStock',
167 - symbol: 'BACx',
168 - mintAddress: 'XswsQk4duEQmCbGzfqUUWYmi7pV7xpJ9eEmLHXCaEQP',
169 - decimal: 8,
170 - mint: 'bacx',
171 - enabled: false),
172 - SPLToken(
173 - name: 'Berkshire Hathaway xStock',
174 - symbol: 'BRK.Bx',
175 - mintAddress: 'Xs6B6zawENwAbWVi7w92rjazLuAr5Az59qgWKcNb45x',
176 - decimal: 8,
177 - mint: 'brkbx',
178 - enabled: false),
179 - SPLToken(
180 - name: 'Broadcom xStock',
181 - symbol: 'AVGOx',
182 - mintAddress: 'XsgSaSvNSqLTtFuyWPBhK9196Xb9Bbdyjj4fH3cPJGo',
183 - decimal: 8,
184 - mint: 'avgox',
185 - enabled: false),
186 - SPLToken(
187 - name: 'Chevron xStock',
188 - symbol: 'CVXx',
189 - mintAddress: 'XsNNMt7WTNA2sV3jrb1NNfNgapxRF5i4i6GcnTRRHts',
190 - decimal: 8,
191 - mint: 'cvxx',
192 - enabled: false),
193 - SPLToken(
194 - name: 'Circle xStock',
195 - symbol: 'CRCLx',
196 - mintAddress: 'XsueG8BtpquVJX9LVLLEGuViXUungE6WmK5YZ3p3bd1',
197 - decimal: 8,
198 - mint: 'crclx',
199 - enabled: false),
200 - SPLToken(
201 - name: 'Cisco xStock',
202 - symbol: 'CSCOx',
203 - mintAddress: 'Xsr3pdLQyXvDJBFgpR5nexCEZwXvigb8wbPYp4YoNFf',
204 - decimal: 8,
205 - mint: 'cscx',
206 - enabled: false),
207 - SPLToken(
208 - name: 'Coca-Cola xStock',
209 - symbol: 'KOx',
210 - mintAddress: 'XsaBXg8dU5cPM6ehmVctMkVqoiRG2ZjMo1cyBJ3AykQ',
211 - decimal: 8,
212 - mint: 'kox',
213 - enabled: false),
214 - SPLToken(
215 - name: 'Coinbase xStock',
216 - symbol: 'COINx',
217 - mintAddress: 'Xs7ZdzSHLU9ftNJsii5fCeJhoRWSC32SQGzGQtePxNu',
218 - decimal: 8,
219 - mint: 'coinx',
220 - enabled: false),
221 - SPLToken(
222 - name: 'Comcast xStock',
223 - symbol: 'CMCSAx',
224 - mintAddress: 'XsvKCaNsxg2GN8jjUmq71qukMJr7Q1c5R2Mk9P8kcS8',
225 - decimal: 8,
226 - mint: 'cmcsax',
227 - enabled: false),
228 - SPLToken(
229 - name: 'CrowdStrike xStock',
230 - symbol: 'CRWDx',
231 - mintAddress: 'Xs7xXqkcK7K8urEqGg52SECi79dRp2cEKKuYjUePYDw',
232 - decimal: 8,
233 - mint: 'crwdx',
234 - enabled: false),
235 - SPLToken(
236 - name: 'Danaher xStock',
237 - symbol: 'DHRx',
238 - mintAddress: 'Xseo8tgCZfkHxWS9xbFYeKFyMSbWEvZGFV1Gh53GtCV',
239 - decimal: 8,
240 - mint: 'dhrx',
241 - enabled: false),
242 - SPLToken(
243 - name: 'DFDV xStock',
244 - symbol: 'DFDVx',
245 - mintAddress: 'Xs2yquAgsHByNzx68WJC55WHjHBvG9JsMB7CWjTLyPy',
246 - decimal: 8,
247 - mint: 'dfdvx',
248 - enabled: false),
249 - SPLToken(
250 - name: 'Eli Lilly xStock',
251 - symbol: 'LLYx',
252 - mintAddress: 'Xsnuv4omNoHozR6EEW5mXkw8Nrny5rB3jVfLqi6gKMH',
253 - decimal: 8,
254 - mint: 'llyx',
255 - enabled: false),
256 - SPLToken(
257 - name: 'Exxon Mobil xStock',
258 - symbol: 'XOMx',
259 - mintAddress: 'XsaHND8sHyfMfsWPj6kSdd5VwvCayZvjYgKmmcNL5qh',
260 - decimal: 8,
261 - mint: 'xomx',
262 - enabled: false),
263 - SPLToken(
264 - name: 'Gamestop xStock',
265 - symbol: 'GMEx',
266 - mintAddress: 'Xsf9mBktVB9BSU5kf4nHxPq5hCBJ2j2ui3ecFGxPRGc',
267 - decimal: 8,
268 - mint: 'gmex',
269 - enabled: false),
270 - SPLToken(
271 - name: 'Gold xStock',
272 - symbol: 'GLDx',
273 - mintAddress: 'Xsv9hRk1z5ystj9MhnA7Lq4vjSsLwzL2nxrwmwtD3re',
274 - decimal: 8,
275 - mint: 'gldx',
276 - enabled: false),
277 - SPLToken(
278 - name: 'Goldman Sachs xStock',
279 - symbol: 'GSx',
280 - mintAddress: 'XsgaUyp4jd1fNBCxgtTKkW64xnnhQcvgaxzsbAq5ZD1',
281 - decimal: 8,
282 - mint: 'gsx',
283 - enabled: false),
284 - SPLToken(
285 - name: 'Home Depot xStock',
286 - symbol: 'HDx',
287 - mintAddress: 'XszjVtyhowGjSC5odCqBpW1CtXXwXjYokymrk7fGKD3',
288 - decimal: 8,
289 - mint: 'hdx',
290 - enabled: false),
291 - SPLToken(
292 - name: 'Honeywell xStock',
293 - symbol: 'HONx',
294 - mintAddress: 'XsRbLZthfABAPAfumWNEJhPyiKDW6TvDVeAeW7oKqA2',
295 - decimal: 8,
296 - mint: 'honx',
297 - enabled: false),
298 - SPLToken(
299 - name: 'Intel xStock',
300 - symbol: 'INTCx',
301 - mintAddress: 'XshPgPdXFRWB8tP1j82rebb2Q9rPgGX37RuqzohmArM',
302 - decimal: 8,
303 - mint: 'intcx',
304 - enabled: false),
305 - SPLToken(
306 - name: 'International Business Machines xStock',
307 - symbol: 'IBMx',
308 - mintAddress: 'XspwhyYPdWVM8XBHZnpS9hgyag9MKjLRyE3tVfmCbSr',
309 - decimal: 8,
310 - mint: 'ibmx',
311 - enabled: false),
312 - SPLToken(
313 - name: 'Johnson & Johnson xStock',
314 - symbol: 'JNJx',
315 - mintAddress: 'XsGVi5eo1Dh2zUpic4qACcjuWGjNv8GCt3dm5XcX6Dn',
316 - decimal: 8,
317 - mint: 'jnjx',
318 - enabled: false),
319 - SPLToken(
320 - name: 'JPMorgan Chase xStock',
321 - symbol: 'JPMx',
322 - mintAddress: 'XsMAqkcKsUewDrzVkait4e5u4y8REgtyS7jWgCpLV2C',
323 - decimal: 8,
324 - mint: 'jpmx',
325 - enabled: false),
326 - SPLToken(
327 - name: 'Linde xStock',
328 - symbol: 'LINx',
329 - mintAddress: 'XsSr8anD1hkvNMu8XQiVcmiaTP7XGvYu7Q58LdmtE8Z',
330 - decimal: 8,
331 - mint: 'linx',
332 - enabled: false),
333 - SPLToken(
334 - name: 'Marvell xStock',
335 - symbol: 'MRVLx',
336 - mintAddress: 'XsuxRGDzbLjnJ72v74b7p9VY6N66uYgTCyfwwRjVCJA',
337 - decimal: 8,
338 - mint: 'mrvlx',
339 - enabled: false),
340 - SPLToken(
341 - name: 'Mastercard xStock',
342 - symbol: 'MAx',
343 - mintAddress: 'XsApJFV9MAktqnAc6jqzsHVujxkGm9xcSUffaBoYLKC',
344 - decimal: 8,
345 - mint: 'max',
346 - enabled: false),
347 - SPLToken(
348 - name: 'McDonald\'s xStock',
349 - symbol: 'MCDx',
350 - mintAddress: 'XsqE9cRRpzxcGKDXj1BJ7Xmg4GRhZoyY1KpmGSxAWT2',
351 - decimal: 8,
352 - mint: 'mcdx',
353 - enabled: false),
354 - SPLToken(
355 - name: 'Medtronic xStock',
356 - symbol: 'MDTx',
357 - mintAddress: 'XsDgw22qRLTv5Uwuzn6T63cW69exG41T6gwQhEK22u2',
358 - decimal: 8,
359 - mint: 'mdtx',
360 - enabled: false),
361 - SPLToken(
362 - name: 'Merck xStock',
363 - symbol: 'MRKx',
364 - mintAddress: 'XsnQnU7AdbRZYe2akqqpibDdXjkieGFfSkbkjX1Sd1X',
365 - decimal: 8,
366 - mint: 'mrkx',
367 - enabled: false),
368 - SPLToken(
369 - name: 'Meta xStock',
370 - symbol: 'METAx',
371 - mintAddress: 'Xsa62P5mvPszXL1krVUnU5ar38bBSVcWAB6fmPCo5Zu',
372 - decimal: 8,
373 - mint: 'metax',
374 - enabled: false),
375 - SPLToken(
376 - name: 'Microsoft xStock',
377 - symbol: 'MSFTx',
378 - mintAddress: 'XspzcW1PRtgf6Wj92HCiZdjzKCyFekVD8P5Ueh3dRMX',
379 - decimal: 8,
380 - mint: 'msftx',
381 - enabled: false),
382 - SPLToken(
383 - name: 'MicroStrategy xStock',
384 - symbol: 'MSTRx',
385 - mintAddress: 'XsP7xzNPvEHS1m6qfanPUGjNmdnmsLKEoNAnHjdxxyZ',
386 - decimal: 8,
387 - mint: 'mstrx',
388 - enabled: false),
389 - SPLToken(
390 - name: 'Nasdaq xStock',
391 - symbol: 'QQQx',
392 - mintAddress: 'Xs8S1uUs1zvS2p7iwtsG3b6fkhpvmwz4GYU3gWAmWHZ',
393 - decimal: 8,
394 - mint: 'qqqx',
395 - enabled: false),
396 - SPLToken(
397 - name: 'Netflix xStock',
398 - symbol: 'NFLXx',
399 - mintAddress: 'XsEH7wWfJJu2ZT3UCFeVfALnVA6CP5ur7Ee11KmzVpL',
400 - decimal: 8,
401 - mint: 'nflxx',
402 - enabled: false),
403 - SPLToken(
404 - name: 'Novo Nordisk xStock',
405 - symbol: 'NVOx',
406 - mintAddress: 'XsfAzPzYrYjd4Dpa9BU3cusBsvWfVB9gBcyGC87S57n',
407 - decimal: 8,
408 - mint: 'nvox',
409 - enabled: false),
410 - SPLToken(
411 - name: 'NVIDIA xStock',
412 - symbol: 'NVDAx',
413 - mintAddress: 'Xsc9qvGR1efVDFGLrVsmkzv3qi45LTBjeUKSPmx9qEh',
414 - decimal: 8,
415 - mint: 'nvdax',
416 - enabled: false),
417 - SPLToken(
418 - name: 'OPEN xStock',
419 - symbol: 'OPENx',
420 - mintAddress: 'XsGtpmjhmC8kyjVSWL4VicGu36ceq9u55PTgF8bhGv6',
421 - decimal: 8,
422 - mint: 'openx',
423 - enabled: false),
424 - SPLToken(
425 - name: 'Oracle xStock',
426 - symbol: 'ORCLx',
427 - mintAddress: 'XsjFwUPiLofddX5cWFHW35GCbXcSu1BCUGfxoQAQjeL',
428 - decimal: 8,
429 - mint: 'orclx',
430 - enabled: false),
431 - SPLToken(
432 - name: 'Palantir xStock',
433 - symbol: 'PLTRx',
434 - mintAddress: 'XsoBhf2ufR8fTyNSjqfU71DYGaE6Z3SUGAidpzriAA4',
435 - decimal: 8,
436 - mint: 'pltrx',
437 - enabled: false),
438 - SPLToken(
439 - name: 'PepsiCo xStock',
440 - symbol: 'PEPx',
441 - mintAddress: 'Xsv99frTRUeornyvCfvhnDesQDWuvns1M852Pez91vF',
442 - decimal: 8,
443 - mint: 'pepx',
444 - enabled: false),
445 - SPLToken(
446 - name: 'Pfizer xStock',
447 - symbol: 'PFEx',
448 - mintAddress: 'XsAtbqkAP1HJxy7hFDeq7ok6yM43DQ9mQ1Rh861X8rw',
449 - decimal: 8,
450 - mint: 'pfex',
451 - enabled: false),
452 - SPLToken(
453 - name: 'Philip Morris xStock',
454 - symbol: 'PMx',
455 - mintAddress: 'Xsba6tUnSjDae2VcopDB6FGGDaxRrewFCDa5hKn5vT3',
456 - decimal: 8,
457 - mint: 'pmx',
458 - enabled: false),
459 - SPLToken(
460 - name: 'Procter & Gamble xStock',
461 - symbol: 'PGx',
462 - mintAddress: 'XsYdjDjNUygZ7yGKfQaB6TxLh2gC6RRjzLtLAGJrhzV',
463 - decimal: 8,
464 - mint: 'pgx',
465 - enabled: false),
466 - SPLToken(
467 - name: 'Robinhood xStock',
468 - symbol: 'HOODx',
469 - mintAddress: 'XsvNBAYkrDRNhA7wPHQfX3ZUXZyZLdnCQDfHZ56bzpg',
470 - decimal: 8,
471 - mint: 'hoodx',
472 - enabled: false),
473 - SPLToken(
474 - name: 'Salesforce xStock',
475 - symbol: 'CRMx',
476 - mintAddress: 'XsczbcQ3zfcgAEt9qHQES8pxKAVG5rujPSHQEXi4kaN',
477 - decimal: 8,
478 - mint: 'crmx',
479 - enabled: false),
480 - SPLToken(
481 - name: 'SP500 xStock',
482 - symbol: 'SPYx',
483 - mintAddress: 'XsoCS1TfEyfFhfvj8EtZ528L3CaKBDBRqRapnBbDF2W',
484 - decimal: 8,
485 - mint: 'spyx',
486 - enabled: false),
487 - SPLToken(
488 - name: 'TBLL xStock',
489 - symbol: 'TBLLx',
490 - mintAddress: 'XsqBC5tcVQLYt8wqGCHRnAUUecbRYXoJCReD6w7QEKp',
491 - decimal: 8,
492 - mint: 'tbllx',
493 - enabled: false),
494 - SPLToken(
495 - name: 'Tesla xStock',
496 - symbol: 'TSLAx',
497 - mintAddress: 'XsDoVfqeBukxuZHWhdvWHBhgEHjGNst4MLodqsJHzoB',
498 - decimal: 8,
499 - mint: 'tslax',
500 - enabled: false),
501 - SPLToken(
502 - name: 'Thermo Fisher xStock',
503 - symbol: 'TMOx',
504 - mintAddress: 'Xs8drBWy3Sd5QY3aifG9kt9KFs2K3PGZmx7jWrsrk57',
505 - decimal: 8,
506 - mint: 'tmox',
507 - enabled: false),
508 - SPLToken(
509 - name: 'TQQQ xStock',
510 - symbol: 'TQQQx',
511 - mintAddress: 'XsjQP3iMAaQ3kQScQKthQpx9ALRbjKAjQtHg6TFomoc',
512 - decimal: 8,
513 - mint: 'tqqqx',
514 - enabled: false),
515 - SPLToken(
516 - name: 'UnitedHealth xStock',
517 - symbol: 'UNHx',
518 - mintAddress: 'XszvaiXGPwvk2nwb3o9C1CX4K6zH8sez11E6uyup6fe',
519 - decimal: 8,
520 - mint: 'unhx',
521 - enabled: false),
522 - SPLToken(
523 - name: 'Vanguard xStock',
524 - symbol: 'VTIx',
525 - mintAddress: 'XsssYEQjzxBCFgvYFFNuhJFBeHNdLWYeUSP8F45cDr9',
526 - decimal: 8,
527 - mint: 'vtix',
528 - enabled: false),
529 - SPLToken(
530 - name: 'Visa xStock',
531 - symbol: 'Vx',
532 - mintAddress: 'XsqgsbXwWogGJsNcVZ3TyVouy2MbTkfCFhCGGGcQZ2p',
533 - decimal: 8,
534 - mint: 'vx',
535 - enabled: false),
536 - SPLToken(
537 - name: 'Walmart xStock',
538 - symbol: 'WMTx',
539 - mintAddress: 'Xs151QeqTCiuKtinzfRATnUESM2xTU6V9Wy8Vy538ci',
540 - decimal: 8,
541 - mint: 'wmtx',
542 - enabled: false),
543 -
103 + name: 'Abbott xStock',
104 + symbol: 'ABTx',
105 + mintAddress: 'XsHtf5RpxsQ7jeJ9ivNewouZKJHbPxhPoEy6yYvULr7',
106 + decimal: 8,
107 + mint: 'abtx',
108 + enabled: false,
109 + iconPath: 'assets/images/stocks/abtx.webp',
110 + ),
111 + SPLToken(
112 + name: 'AbbVie xStock',
113 + symbol: 'ABBVx',
114 + mintAddress: 'XswbinNKyPmzTa5CskMbCPvMW6G5CMnZXZEeQSSQoie',
115 + decimal: 8,
116 + mint: 'abbvx',
117 + enabled: false,
118 + iconPath: 'assets/images/stocks/abbv.webp',
119 + ),
120 + SPLToken(
121 + name: 'Accenture xStock',
122 + symbol: 'ACNx',
123 + mintAddress: 'Xs5UJzmCRQ8DWZjskExdSQDnbE6iLkRu2jjrRAB1JSU',
124 + decimal: 8,
125 + mint: 'acnx',
126 + enabled: false,
127 + iconPath: 'assets/images/stocks/acnx.webp',
128 + ),
129 + SPLToken(
130 + name: 'Alphabet xStock',
131 + symbol: 'GOOGLx',
132 + mintAddress: 'XsCPL9dNWBMvFtTmwcCA5v3xWPSMEBCszbQdiLLq6aN',
133 + decimal: 8,
134 + mint: 'googlx',
135 + enabled: false,
136 + iconPath: 'assets/images/stocks/googlx.webp',
137 + ),
138 + SPLToken(
139 + name: 'Amazon xStock',
140 + symbol: 'AMZNx',
141 + mintAddress: 'Xs3eBt7uRfJX8QUs4suhyU8p2M6DoUDrJyWBa8LLZsg',
142 + decimal: 8,
143 + mint: 'amznx',
144 + enabled: false,
145 + iconPath: 'assets/images/stocks/amznx.webp',
146 + ),
147 + SPLToken(
148 + name: 'Amber xStock',
149 + symbol: 'AMBRx',
150 + mintAddress: 'XsaQTCgebC2KPbf27KUhdv5JFvHhQ4GDAPURwrEhAzb',
151 + decimal: 8,
152 + mint: 'ambrx',
153 + enabled: false,
154 + iconPath: 'assets/images/stocks/ambrx.webp',
155 + ),
156 + SPLToken(
157 + name: 'Apple xStock',
158 + symbol: 'AAPLx',
159 + mintAddress: 'XsbEhLAtcf6HdfpFZ5xEMdqW8nfAvcsP5bdudRLJzJp',
160 + decimal: 8,
161 + mint: 'aaplx',
162 + enabled: false,
163 + iconPath: 'assets/images/stocks/apple.webp',
164 + ),
165 + SPLToken(
166 + name: 'AppLovin xStock',
167 + symbol: 'APPx',
168 + mintAddress: 'XsPdAVBi8Zc1xvv53k4JcMrQaEDTgkGqKYeh7AYgPHV',
169 + decimal: 8,
170 + mint: 'appx',
171 + enabled: false,
172 + iconPath: 'assets/images/stocks/appx.webp',
173 + ),
174 + SPLToken(
175 + name: 'AstraZeneca xStock',
176 + symbol: 'AZNx',
177 + mintAddress: 'Xs3ZFkPYT2BN7qBMqf1j1bfTeTm1rFzEFSsQ1z3wAKU',
178 + decimal: 8,
179 + mint: 'aznx',
180 + enabled: false,
181 + iconPath: 'assets/images/stocks/aznx.webp',
182 + ),
183 + SPLToken(
184 + name: 'Bank of America xStock',
185 + symbol: 'BACx',
186 + mintAddress: 'XswsQk4duEQmCbGzfqUUWYmi7pV7xpJ9eEmLHXCaEQP',
187 + decimal: 8,
188 + mint: 'bacx',
189 + enabled: false,
190 + iconPath: 'assets/images/stocks/bacx.webp',
191 + ),
192 + SPLToken(
193 + name: 'Berkshire Hathaway xStock',
194 + symbol: 'BRK.Bx',
195 + mintAddress: 'Xs6B6zawENwAbWVi7w92rjazLuAr5Az59qgWKcNb45x',
196 + decimal: 8,
197 + mint: 'brkbx',
198 + enabled: false,
199 + iconPath: 'assets/images/stocks/brkbx.webp',
200 + ),
201 + SPLToken(
202 + name: 'Broadcom xStock',
203 + symbol: 'AVGOx',
204 + mintAddress: 'XsgSaSvNSqLTtFuyWPBhK9196Xb9Bbdyjj4fH3cPJGo',
205 + decimal: 8,
206 + mint: 'avgox',
207 + enabled: false,
208 + iconPath: 'assets/images/stocks/avgox.webp',
209 + ),
210 + SPLToken(
211 + name: 'Chevron xStock',
212 + symbol: 'CVXx',
213 + mintAddress: 'XsNNMt7WTNA2sV3jrb1NNfNgapxRF5i4i6GcnTRRHts',
214 + decimal: 8,
215 + mint: 'cvxx',
216 + enabled: false,
217 + iconPath: 'assets/images/stocks/cvxx.webp',
218 + ),
219 + SPLToken(
220 + name: 'Circle xStock',
221 + symbol: 'CRCLx',
222 + mintAddress: 'XsueG8BtpquVJX9LVLLEGuViXUungE6WmK5YZ3p3bd1',
223 + decimal: 8,
224 + mint: 'crclx',
225 + enabled: false,
226 + iconPath: 'assets/images/stocks/crclx.webp',
227 + ),
228 + SPLToken(
229 + name: 'Cisco xStock',
230 + symbol: 'CSCOx',
231 + mintAddress: 'Xsr3pdLQyXvDJBFgpR5nexCEZwXvigb8wbPYp4YoNFf',
232 + decimal: 8,
233 + mint: 'cscx',
234 + enabled: false,
235 + iconPath: 'assets/images/stocks/cscox.webp',
236 + ),
237 + SPLToken(
238 + name: 'Coca-Cola xStock',
239 + symbol: 'KOx',
240 + mintAddress: 'XsaBXg8dU5cPM6ehmVctMkVqoiRG2ZjMo1cyBJ3AykQ',
241 + decimal: 8,
242 + mint: 'kox',
243 + enabled: false,
244 + iconPath: 'assets/images/stocks/kox.webp',
245 + ),
246 + SPLToken(
247 + name: 'Coinbase xStock',
248 + symbol: 'COINx',
249 + mintAddress: 'Xs7ZdzSHLU9ftNJsii5fCeJhoRWSC32SQGzGQtePxNu',
250 + decimal: 8,
251 + mint: 'coinx',
252 + enabled: false,
253 + iconPath: 'assets/images/stocks/coinx.webp',
254 + ),
255 + SPLToken(
256 + name: 'Comcast xStock',
257 + symbol: 'CMCSAx',
258 + mintAddress: 'XsvKCaNsxg2GN8jjUmq71qukMJr7Q1c5R2Mk9P8kcS8',
259 + decimal: 8,
260 + mint: 'cmcsax',
261 + enabled: false,
262 + iconPath: 'assets/images/stocks/cmcsax.webp',
263 + ),
264 + SPLToken(
265 + name: 'CrowdStrike xStock',
266 + symbol: 'CRWDx',
267 + mintAddress: 'Xs7xXqkcK7K8urEqGg52SECi79dRp2cEKKuYjUePYDw',
268 + decimal: 8,
269 + mint: 'crwdx',
270 + enabled: false,
271 + iconPath: 'assets/images/stocks/crwdx.webp',
272 + ),
273 + SPLToken(
274 + name: 'Danaher xStock',
275 + symbol: 'DHRx',
276 + mintAddress: 'Xseo8tgCZfkHxWS9xbFYeKFyMSbWEvZGFV1Gh53GtCV',
277 + decimal: 8,
278 + mint: 'dhrx',
279 + enabled: false,
280 + iconPath: 'assets/images/stocks/dhrx.webp',
281 + ),
282 + SPLToken(
283 + name: 'DFDV xStock',
284 + symbol: 'DFDVx',
285 + mintAddress: 'Xs2yquAgsHByNzx68WJC55WHjHBvG9JsMB7CWjTLyPy',
286 + decimal: 8,
287 + mint: 'dfdvx',
288 + enabled: false,
289 + iconPath: 'assets/images/stocks/dfdvx.webp',
290 + ),
291 + SPLToken(
292 + name: 'Eli Lilly xStock',
293 + symbol: 'LLYx',
294 + mintAddress: 'Xsnuv4omNoHozR6EEW5mXkw8Nrny5rB3jVfLqi6gKMH',
295 + decimal: 8,
296 + mint: 'llyx',
297 + enabled: false,
298 + iconPath: 'assets/images/stocks/llyx.webp',
299 + ),
300 + SPLToken(
301 + name: 'Exxon Mobil xStock',
302 + symbol: 'XOMx',
303 + mintAddress: 'XsaHND8sHyfMfsWPj6kSdd5VwvCayZvjYgKmmcNL5qh',
304 + decimal: 8,
305 + mint: 'xomx',
306 + enabled: false,
307 + iconPath: 'assets/images/stocks/xomx.webp',
308 + ),
309 + SPLToken(
310 + name: 'Gamestop xStock',
311 + symbol: 'GMEx',
312 + mintAddress: 'Xsf9mBktVB9BSU5kf4nHxPq5hCBJ2j2ui3ecFGxPRGc',
313 + decimal: 8,
314 + mint: 'gmex',
315 + enabled: false,
316 + iconPath: 'assets/images/stocks/gmex.webp',
317 + ),
318 + SPLToken(
319 + name: 'Gold xStock',
320 + symbol: 'GLDx',
321 + mintAddress: 'Xsv9hRk1z5ystj9MhnA7Lq4vjSsLwzL2nxrwmwtD3re',
322 + decimal: 8,
323 + mint: 'gldx',
324 + enabled: false,
325 + iconPath: 'assets/images/stocks/gldx.webp',
326 + ),
327 + SPLToken(
328 + name: 'Goldman Sachs xStock',
329 + symbol: 'GSx',
330 + mintAddress: 'XsgaUyp4jd1fNBCxgtTKkW64xnnhQcvgaxzsbAq5ZD1',
331 + decimal: 8,
332 + mint: 'gsx',
333 + enabled: false,
334 + iconPath: 'assets/images/stocks/gsx.webp',
335 + ),
336 + SPLToken(
337 + name: 'Home Depot xStock',
338 + symbol: 'HDx',
339 + mintAddress: 'XszjVtyhowGjSC5odCqBpW1CtXXwXjYokymrk7fGKD3',
340 + decimal: 8,
341 + mint: 'hdx',
342 + enabled: false,
343 + iconPath: 'assets/images/stocks/hdx.webp',
344 + ),
345 + SPLToken(
346 + name: 'Honeywell xStock',
347 + symbol: 'HONx',
348 + mintAddress: 'XsRbLZthfABAPAfumWNEJhPyiKDW6TvDVeAeW7oKqA2',
349 + decimal: 8,
350 + mint: 'honx',
351 + enabled: false,
352 + iconPath: 'assets/images/stocks/honx.webp',
353 + ),
354 + SPLToken(
355 + name: 'Intel xStock',
356 + symbol: 'INTCx',
357 + mintAddress: 'XshPgPdXFRWB8tP1j82rebb2Q9rPgGX37RuqzohmArM',
358 + decimal: 8,
359 + mint: 'intcx',
360 + enabled: false,
361 + iconPath: 'assets/images/stocks/intcx.webp',
362 + ),
363 + SPLToken(
364 + name: 'International Business Machines xStock',
365 + symbol: 'IBMx',
366 + mintAddress: 'XspwhyYPdWVM8XBHZnpS9hgyag9MKjLRyE3tVfmCbSr',
367 + decimal: 8,
368 + mint: 'ibmx',
369 + enabled: false,
370 + iconPath: 'assets/images/stocks/ibmx.webp',
371 + ),
372 + SPLToken(
373 + name: 'Johnson & Johnson xStock',
374 + symbol: 'JNJx',
375 + mintAddress: 'XsGVi5eo1Dh2zUpic4qACcjuWGjNv8GCt3dm5XcX6Dn',
376 + decimal: 8,
377 + mint: 'jnjx',
378 + enabled: false,
379 + iconPath: 'assets/images/stocks/jnjx.webp',
380 + ),
381 + SPLToken(
382 + name: 'JPMorgan Chase xStock',
383 + symbol: 'JPMx',
384 + mintAddress: 'XsMAqkcKsUewDrzVkait4e5u4y8REgtyS7jWgCpLV2C',
385 + decimal: 8,
386 + mint: 'jpmx',
387 + enabled: false,
388 + iconPath: 'assets/images/stocks/jpmx.webp',
389 + ),
390 + SPLToken(
391 + name: 'Linde xStock',
392 + symbol: 'LINx',
393 + mintAddress: 'XsSr8anD1hkvNMu8XQiVcmiaTP7XGvYu7Q58LdmtE8Z',
394 + decimal: 8,
395 + mint: 'linx',
396 + enabled: false,
397 + iconPath: 'assets/images/stocks/linx.webp',
398 + ),
399 + SPLToken(
400 + name: 'Marvell xStock',
401 + symbol: 'MRVLx',
402 + mintAddress: 'XsuxRGDzbLjnJ72v74b7p9VY6N66uYgTCyfwwRjVCJA',
403 + decimal: 8,
404 + mint: 'mrvlx',
405 + enabled: false,
406 + iconPath: 'assets/images/stocks/mrvlx.webp',
407 + ),
408 + SPLToken(
409 + name: 'Mastercard xStock',
410 + symbol: 'MAx',
411 + mintAddress: 'XsApJFV9MAktqnAc6jqzsHVujxkGm9xcSUffaBoYLKC',
412 + decimal: 8,
413 + mint: 'max',
414 + enabled: false,
415 + iconPath: 'assets/images/stocks/mastercard.webp',
416 + ),
417 + SPLToken(
418 + name: 'McDonald\'s xStock',
419 + symbol: 'MCDx',
420 + mintAddress: 'XsqE9cRRpzxcGKDXj1BJ7Xmg4GRhZoyY1KpmGSxAWT2',
421 + decimal: 8,
422 + mint: 'mcdx',
423 + enabled: false,
424 + iconPath: 'assets/images/stocks/mcdonalds.webp',
425 + ),
426 + SPLToken(
427 + name: 'Medtronic xStock',
428 + symbol: 'MDTx',
429 + mintAddress: 'XsDgw22qRLTv5Uwuzn6T63cW69exG41T6gwQhEK22u2',
430 + decimal: 8,
431 + mint: 'mdtx',
432 + enabled: false,
433 + iconPath: 'assets/images/stocks/mdtx.webp',
434 + ),
435 + SPLToken(
436 + name: 'Merck xStock',
437 + symbol: 'MRKx',
438 + mintAddress: 'XsnQnU7AdbRZYe2akqqpibDdXjkieGFfSkbkjX1Sd1X',
439 + decimal: 8,
440 + mint: 'mrkx',
441 + enabled: false,
442 + iconPath: 'assets/images/stocks/mrkx.webp',
443 + ),
444 + SPLToken(
445 + name: 'Meta xStock',
446 + symbol: 'METAx',
447 + mintAddress: 'Xsa62P5mvPszXL1krVUnU5ar38bBSVcWAB6fmPCo5Zu',
448 + decimal: 8,
449 + mint: 'metax',
450 + enabled: false,
451 + iconPath: 'assets/images/stocks/metax.webp',
452 + ),
453 + SPLToken(
454 + name: 'Microsoft xStock',
455 + symbol: 'MSFTx',
456 + mintAddress: 'XspzcW1PRtgf6Wj92HCiZdjzKCyFekVD8P5Ueh3dRMX',
457 + decimal: 8,
458 + mint: 'msftx',
459 + enabled: false,
460 + iconPath: 'assets/images/stocks/msftx.webp',
461 + ),
462 + SPLToken(
463 + name: 'MicroStrategy xStock',
464 + symbol: 'MSTRx',
465 + mintAddress: 'XsP7xzNPvEHS1m6qfanPUGjNmdnmsLKEoNAnHjdxxyZ',
466 + decimal: 8,
467 + mint: 'mstrx',
468 + enabled: false,
469 + iconPath: 'assets/images/stocks/mstrx.webp',
470 + ),
471 + SPLToken(
472 + name: 'Nasdaq xStock',
473 + symbol: 'QQQx',
474 + mintAddress: 'Xs8S1uUs1zvS2p7iwtsG3b6fkhpvmwz4GYU3gWAmWHZ',
475 + decimal: 8,
476 + mint: 'qqqx',
477 + enabled: false,
478 + iconPath: 'assets/images/stocks/qqqx.webp',
479 + ),
480 + SPLToken(
481 + name: 'Netflix xStock',
482 + symbol: 'NFLXx',
483 + mintAddress: 'XsEH7wWfJJu2ZT3UCFeVfALnVA6CP5ur7Ee11KmzVpL',
484 + decimal: 8,
485 + mint: 'nflxx',
486 + enabled: false,
487 + iconPath: 'assets/images/stocks/nflxx.webp',
488 + ),
489 + SPLToken(
490 + name: 'Novo Nordisk xStock',
491 + symbol: 'NVOx',
492 + mintAddress: 'XsfAzPzYrYjd4Dpa9BU3cusBsvWfVB9gBcyGC87S57n',
493 + decimal: 8,
494 + mint: 'nvox',
495 + enabled: false,
496 + iconPath: 'assets/images/stocks/nvox.webp',
497 + ),
498 + SPLToken(
499 + name: 'NVIDIA xStock',
500 + symbol: 'NVDAx',
501 + mintAddress: 'Xsc9qvGR1efVDFGLrVsmkzv3qi45LTBjeUKSPmx9qEh',
502 + decimal: 8,
503 + mint: 'nvdax',
504 + enabled: false,
505 + iconPath: 'assets/images/stocks/nvdax.webp',
506 + ),
507 + SPLToken(
508 + name: 'OPEN xStock',
509 + symbol: 'OPENx',
510 + mintAddress: 'XsGtpmjhmC8kyjVSWL4VicGu36ceq9u55PTgF8bhGv6',
511 + decimal: 8,
512 + mint: 'openx',
513 + enabled: false,
514 + iconPath: 'assets/images/stocks/openx.webp',
515 + ),
516 + SPLToken(
517 + name: 'Oracle xStock',
518 + symbol: 'ORCLx',
519 + mintAddress: 'XsjFwUPiLofddX5cWFHW35GCbXcSu1BCUGfxoQAQjeL',
520 + decimal: 8,
521 + mint: 'orclx',
522 + enabled: false,
523 + iconPath: 'assets/images/stocks/orclx.webp',
524 + ),
525 + SPLToken(
526 + name: 'Palantir xStock',
527 + symbol: 'PLTRx',
528 + mintAddress: 'XsoBhf2ufR8fTyNSjqfU71DYGaE6Z3SUGAidpzriAA4',
529 + decimal: 8,
530 + mint: 'pltrx',
531 + enabled: false,
532 + iconPath: 'assets/images/stocks/pltrx.webp',
533 + ),
534 + SPLToken(
535 + name: 'PepsiCo xStock',
536 + symbol: 'PEPx',
537 + mintAddress: 'Xsv99frTRUeornyvCfvhnDesQDWuvns1M852Pez91vF',
538 + decimal: 8,
539 + mint: 'pepx',
540 + enabled: false,
541 + iconPath: 'assets/images/stocks/pepx.webp',
542 + ),
543 + SPLToken(
544 + name: 'Pfizer xStock',
545 + symbol: 'PFEx',
546 + mintAddress: 'XsAtbqkAP1HJxy7hFDeq7ok6yM43DQ9mQ1Rh861X8rw',
547 + decimal: 8,
548 + mint: 'pfex',
549 + enabled: false,
550 + iconPath: 'assets/images/stocks/pfex.webp',
551 + ),
552 + SPLToken(
553 + name: 'Philip Morris xStock',
554 + symbol: 'PMx',
555 + mintAddress: 'Xsba6tUnSjDae2VcopDB6FGGDaxRrewFCDa5hKn5vT3',
556 + decimal: 8,
557 + mint: 'pmx',
558 + enabled: false,
559 + iconPath: 'assets/images/stocks/pmx.webp',
560 + ),
561 + SPLToken(
562 + name: 'Procter & Gamble xStock',
563 + symbol: 'PGx',
564 + mintAddress: 'XsYdjDjNUygZ7yGKfQaB6TxLh2gC6RRjzLtLAGJrhzV',
565 + decimal: 8,
566 + mint: 'pgx',
567 + enabled: false,
568 + iconPath: 'assets/images/stocks/pgx.webp',
569 + ),
570 + SPLToken(
571 + name: 'Robinhood xStock',
572 + symbol: 'HOODx',
573 + mintAddress: 'XsvNBAYkrDRNhA7wPHQfX3ZUXZyZLdnCQDfHZ56bzpg',
574 + decimal: 8,
575 + mint: 'hoodx',
576 + enabled: false,
577 + iconPath: 'assets/images/stocks/hoodx.webp',
578 + ),
579 + SPLToken(
580 + name: 'Salesforce xStock',
581 + symbol: 'CRMx',
582 + mintAddress: 'XsczbcQ3zfcgAEt9qHQES8pxKAVG5rujPSHQEXi4kaN',
583 + decimal: 8,
584 + mint: 'crmx',
585 + enabled: false,
586 + iconPath: 'assets/images/stocks/crmx.webp',
587 + ),
588 + SPLToken(
589 + name: 'SP500 xStock',
590 + symbol: 'SPYx',
591 + mintAddress: 'XsoCS1TfEyfFhfvj8EtZ528L3CaKBDBRqRapnBbDF2W',
592 + decimal: 8,
593 + mint: 'spyx',
594 + enabled: false,
595 + iconPath: 'assets/images/stocks/spyx.webp',
596 + ),
597 + SPLToken(
598 + name: 'TBLL xStock',
599 + symbol: 'TBLLx',
600 + mintAddress: 'XsqBC5tcVQLYt8wqGCHRnAUUecbRYXoJCReD6w7QEKp',
601 + decimal: 8,
602 + mint: 'tbllx',
603 + enabled: false,
604 + iconPath: 'assets/images/stocks/tbllx.webp',
605 + ),
606 + SPLToken(
607 + name: 'Tesla xStock',
608 + symbol: 'TSLAx',
609 + mintAddress: 'XsDoVfqeBukxuZHWhdvWHBhgEHjGNst4MLodqsJHzoB',
610 + decimal: 8,
611 + mint: 'tslax',
612 + enabled: false,
613 + iconPath: 'assets/images/stocks/tslax.webp',
614 + ),
615 + SPLToken(
616 + name: 'Thermo Fisher xStock',
617 + symbol: 'TMOx',
618 + mintAddress: 'Xs8drBWy3Sd5QY3aifG9kt9KFs2K3PGZmx7jWrsrk57',
619 + decimal: 8,
620 + mint: 'tmox',
621 + enabled: false,
622 + iconPath: 'assets/images/stocks/tmox.webp',
623 + ),
624 + SPLToken(
625 + name: 'TON xStock',
626 + symbol: 'TONXx',
627 + mintAddress: 'XscE4GUcsYhcyZu5ATiGUMmhxYa1D5fwbpJw4K6K4dp',
628 + decimal: 8,
629 + mint: 'tonxx',
630 + enabled: false,
631 + iconPath: 'assets/images/stocks/tonxx.webp',
632 + ),
633 + SPLToken(
634 + name: 'TQQQ xStock',
635 + symbol: 'TQQQx',
636 + mintAddress: 'XsjQP3iMAaQ3kQScQKthQpx9ALRbjKAjQtHg6TFomoc',
637 + decimal: 8,
638 + mint: 'tqqqx',
639 + enabled: false,
640 + iconPath: 'assets/images/stocks/tqqqx.webp',
641 + ),
642 + SPLToken(
643 + name: 'UnitedHealth xStock',
644 + symbol: 'UNHx',
645 + mintAddress: 'XszvaiXGPwvk2nwb3o9C1CX4K6zH8sez11E6uyup6fe',
646 + decimal: 8,
647 + mint: 'unhx',
648 + enabled: false,
649 + iconPath: 'assets/images/stocks/unhx.webp',
650 + ),
651 + SPLToken(
652 + name: 'Vanguard xStock',
653 + symbol: 'VTIx',
654 + mintAddress: 'XsssYEQjzxBCFgvYFFNuhJFBeHNdLWYeUSP8F45cDr9',
655 + decimal: 8,
656 + mint: 'vtix',
657 + enabled: false,
658 + iconPath: 'assets/images/stocks/vtix.webp',
659 + ),
660 + SPLToken(
661 + name: 'Visa xStock',
662 + symbol: 'Vx',
663 + mintAddress: 'XsqgsbXwWogGJsNcVZ3TyVouy2MbTkfCFhCGGGcQZ2p',
664 + decimal: 8,
665 + mint: 'vx',
666 + enabled: false,
667 + iconPath: 'assets/images/stocks/vx.webp',
668 + ),
669 + SPLToken(
670 + name: 'Walmart xStock',
671 + symbol: 'WMTx',
672 + mintAddress: 'Xs151QeqTCiuKtinzfRATnUESM2xTU6V9Wy8Vy538ci',
673 + decimal: 8,
674 + mint: 'wmtx',
675 + enabled: false,
676 + iconPath: 'assets/images/stocks/wmtx.webp',
677 + ),
678 ];
679
680 List<SPLToken> get initialSPLTokens => _defaultTokens.map((token) {
681 String? iconPath;
548 - if (token.iconPath != null) return token;
549 -
550 - try {
551 - iconPath = CryptoCurrency.all
552 - .firstWhere((element) => element.title.toUpperCase() == token.symbol.toUpperCase())
553 - .iconPath;
554 - } catch (_) {}
682 + if (token.iconPath?.isEmpty ?? true) {
683 + try {
684 + iconPath = CryptoCurrency.all
685 + .firstWhere((element) => element.title.toUpperCase() == token.symbol.toUpperCase())
686 + .iconPath;
687 + } catch (_) {}
688 + } else {
689 + iconPath = token.iconPath;
690 + }
691
556 - return SPLToken.copyWith(token, iconPath, 'SOL');
692 + return SPLToken.copyWith(token, icon: iconPath, tag: 'SOL');
693 }).toList();
694 }
cw_solana/lib/solana_wallet.dart
+6 -1
@@ -506,7 +506,12 @@ abstract class SolanaWalletBase
506 final initialSPLTokens = DefaultSPLTokens().initialSPLTokens;
507
508 for (var token in initialSPLTokens) {
509 - splTokensBox.put(token.mintAddress, token);
509 + if (!splTokensBox.containsKey(token.mintAddress)) {
510 + splTokensBox.put(token.mintAddress, token);
511 + } else { // update existing token
512 + final existingToken = splTokensBox.get(token.mintAddress);
513 + splTokensBox.put(token.mintAddress, SPLToken.copyWith(token, enabled: existingToken!.enabled));
514 + }
515 }
516 }
517
cw_solana/lib/solana_wallet_service.dart
+2
@@ -64,6 +64,7 @@ class SolanaWalletService extends WalletService<SolanaNewWalletCredentials,
64 );
65
66 await wallet.init();
67 + wallet.addInitialTokens();
68 await wallet.save();
69 saveBackup(name);
70 return wallet;
@@ -78,6 +79,7 @@ class SolanaWalletService extends WalletService<SolanaNewWalletCredentials,
79 );
80
81 await wallet.init();
82 + wallet.addInitialTokens();
83 await wallet.save();
84 return wallet;
85 }
cw_tron/lib/default_tron_tokens.dart
+11 -7
@@ -91,13 +91,17 @@ class DefaultTronTokens {
91
92 List<TronToken> get initialTronTokens => _defaultTokens.map((token) {
93 String? iconPath;
94 - try {
95 - iconPath = CryptoCurrency.all
96 - .firstWhere((element) =>
97 - element.title.toUpperCase() == token.symbol.split(".").first.toUpperCase())
98 - .iconPath;
99 - } catch (_) {}
94 + if (token.iconPath?.isEmpty ?? true) {
95 + try {
96 + iconPath = CryptoCurrency.all
97 + .firstWhere((element) =>
98 + element.title.toUpperCase() == token.symbol.split(".").first.toUpperCase())
99 + .iconPath;
100 + } catch (_) {}
101 + } else {
102 + iconPath = token.iconPath;
103 + }
104
101 - return TronToken.copyWith(token, iconPath, 'TRX');
105 + return TronToken.copyWith(token, icon: iconPath, tag: 'TRX');
106 }).toList();
107 }
cw_tron/lib/tron_wallet.dart
+6 -1
@@ -178,7 +178,12 @@ abstract class TronWalletBase
178 final initialTronTokens = DefaultTronTokens().initialTronTokens;
179
180 for (var token in initialTronTokens) {
181 - tronTokensBox.put(token.contractAddress, token);
181 + if (!tronTokensBox.containsKey(token.contractAddress)) {
182 + tronTokensBox.put(token.contractAddress, token);
183 + } else { // update existing token
184 + final existingToken = tronTokensBox.get(token.contractAddress);
185 + tronTokensBox.put(token.contractAddress, TronToken.copyWith(token, enabled: existingToken!.enabled));
186 + }
187 }
188 }
189
devtools_options.yaml new
+3
@@ -0,0 +1,3 @@
1 +description: This file stores settings for Dart & Flutter DevTools.
2 +documentation: https://docs.flutter.dev/tools/devtools/extensions#configure-extension-enablement-states
3 +extensions:
integration_test/components/common_test_flows.dart
+1 -1
@@ -110,7 +110,7 @@ class CommonTestFlows {
110
111 void confirmAllAvailableWalletTypeIconsDisplayCorrectly() {
112 for (var walletType in availableWalletTypes) {
113 - final imageUrl = walletTypeToCryptoCurrency(walletType).normalizedIconPath;
113 + final imageUrl = walletTypeToCryptoCurrency(walletType).iconPath;
114
115 final walletIconFinder = find.image(
116 Image.asset(
lib/main.dart
+1 -1
@@ -272,7 +272,7 @@ Future<void> initializeAppConfigs({bool loadWallet = true}) async {
272 payjoinSessionSource: payjoinSessionSource,
273 anonpayInvoiceInfo: anonpayInvoiceInfo,
274 havenSeedStore: havenSeedStore,
275 - initialMigrationVersion: 51,
275 + initialMigrationVersion: 52,
276 );
277 }
278
lib/src/screens/connect_device/select_hardware_wallet_account_page.dart
+1 -1
@@ -149,7 +149,7 @@ class _SelectHardwareWalletAccountFormState extends State<SelectHardwareWalletAc
149 padding: EdgeInsets.only(top: 10),
150 child: SelectButton(
151 image: Image.asset(
152 - walletTypeToCryptoCurrency(_walletHardwareRestoreVM.type).normalizedIconPath ??
152 + walletTypeToCryptoCurrency(_walletHardwareRestoreVM.type).iconPath ??
153 '',
154 height: 24,
155 width: 24,
lib/src/screens/new_wallet/new_wallet_type_page.dart
+1 -1
@@ -143,7 +143,7 @@ class WalletTypeFormState extends State<WalletTypeForm> {
143 child: SelectButton(
144 key: ValueKey('new_wallet_type_${type.name}_button_key'),
145 image: Image.asset(
146 - walletTypeToCryptoCurrency(type).normalizedIconPath ?? '',
146 + walletTypeToCryptoCurrency(type).iconPath ?? '',
147 height: 24,
148 width: 24,
149 ),
lib/src/screens/new_wallet/wallet_group_display_page.dart
+1 -1
@@ -95,7 +95,7 @@ class WalletGroupsDisplayBody extends StatelessWidget {
95 isSelected:
96 walletGroupsDisplayViewModel.selectedSingleWallet == wallet,
97 leadingWidget: Image.asset(
98 - walletTypeToCryptoCurrency(wallet.type).normalizedIconPath!,
98 + walletTypeToCryptoCurrency(wallet.type).iconPath!,
99 width: 32,
100 height: 32,
101 ),
lib/src/screens/new_wallet/widgets/grouped_wallet_expansion_tile.dart
+1 -1
@@ -123,7 +123,7 @@ class GroupedWalletExpansionTile extends StatelessWidget {
123 : SizedBox(width: 7),
124 SizedBox(width: 24),
125 Image.asset(
126 - walletTypeToCryptoCurrency(item.type).normalizedIconPath!,
126 + walletTypeToCryptoCurrency(item.type).iconPath!,
127 width: 32,
128 height: 32,
129 ),
lib/src/widgets/bottom_sheet/wallet_switcher_bottom_sheet.dart
+1 -1
@@ -95,7 +95,7 @@ class _WalletSwitcherContent extends StatelessWidget {
95 child: Row(
96 children: [
97 Image.asset(
98 - walletTypeToCryptoCurrency(wallet.type).normalizedIconPath!,
98 + walletTypeToCryptoCurrency(wallet.type).iconPath!,
99 width: 32,
100 height: 32,
101 ),
pubspec_base.yaml
+1
@@ -220,6 +220,7 @@ flutter:
220 - assets/images/flags/
221 - assets/images/hardware_wallet/
222 - assets/images/crypto/
223 + - assets/images/stocks/
224 - assets/node_list.yml
225 - assets/haven_node_list.yml
226 - assets/bitcoin_electrum_server_list.yml
scripts/android/app_env.sh
+4 -4
@@ -14,15 +14,15 @@ TYPES=($MONERO_COM $CAKEWALLET)
14 APP_ANDROID_TYPE=$1
15
16 MONERO_COM_NAME="Monero.com"
17 -MONERO_COM_VERSION="5.4.2"
18 -MONERO_COM_BUILD_NUMBER=4138
17 +MONERO_COM_VERSION="5.5.0"
18 +MONERO_COM_BUILD_NUMBER=4139
19 MONERO_COM_BUNDLE_ID="com.monero.app"
20 MONERO_COM_PACKAGE="com.monero.app"
21 MONERO_COM_SCHEME="monero.com"
22
23 CAKEWALLET_NAME="Cake Wallet"
24 -CAKEWALLET_VERSION="5.4.2"
25 -CAKEWALLET_BUILD_NUMBER=4278
24 +CAKEWALLET_VERSION="5.5.0"
25 +CAKEWALLET_BUILD_NUMBER=4280
26 CAKEWALLET_BUNDLE_ID="com.cakewallet.cake_wallet"
27 CAKEWALLET_PACKAGE="com.cakewallet.cake_wallet"
28 CAKEWALLET_SCHEME="cakewallet"
scripts/build_bitbox_flutter.sh
+1
@@ -2,6 +2,7 @@
2
3 git clone https://github.com/konstantinullrich/bitbox_flutter
4 cd bitbox_flutter
5 +git checkout 5a6e6dd388ef64003f86094af80d5453518b601d
6 bash ./build_bindings.sh
7
8 FILE=api.aar
scripts/ios/app_env.sh
+4 -4
@@ -12,13 +12,13 @@ TYPES=($MONERO_COM $CAKEWALLET)
12 APP_IOS_TYPE=$1
13
14 MONERO_COM_NAME="Monero.com"
15 -MONERO_COM_VERSION="5.4.2"
16 -MONERO_COM_BUILD_NUMBER=139
15 +MONERO_COM_VERSION="5.5.0"
16 +MONERO_COM_BUILD_NUMBER=140
17 MONERO_COM_BUNDLE_ID="com.cakewallet.monero"
18
19 CAKEWALLET_NAME="Cake Wallet"
20 -CAKEWALLET_VERSION="5.4.3"
21 -CAKEWALLET_BUILD_NUMBER=340
20 +CAKEWALLET_VERSION="5.5.0"
21 +CAKEWALLET_BUILD_NUMBER=342
22 CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet"
23
24
scripts/linux/app_env.sh
+2 -2
@@ -14,8 +14,8 @@ if [ -n "$1" ]; then
14 fi
15
16 CAKEWALLET_NAME="Cake Wallet"
17 -CAKEWALLET_VERSION="5.4.2"
18 -CAKEWALLET_BUILD_NUMBER=69
17 +CAKEWALLET_VERSION="5.5.0"
18 +CAKEWALLET_BUILD_NUMBER=70
19
20 if ! [[ " ${TYPES[*]} " =~ " ${APP_LINUX_TYPE} " ]]; then
21 echo "Wrong app type."
scripts/macos/app_env.sh
+4 -4
@@ -16,13 +16,13 @@ if [ -n "$1" ]; then
16 fi
17
18 MONERO_COM_NAME="Monero.com"
19 -MONERO_COM_VERSION="5.4.2"
20 -MONERO_COM_BUILD_NUMBER=67
19 +MONERO_COM_VERSION="5.5.0"
20 +MONERO_COM_BUILD_NUMBER=68
21 MONERO_COM_BUNDLE_ID="com.cakewallet.monero"
22
23 CAKEWALLET_NAME="Cake Wallet"
24 -CAKEWALLET_VERSION="5.4.3"
25 -CAKEWALLET_BUILD_NUMBER=133
24 +CAKEWALLET_VERSION="5.5.0"
25 +CAKEWALLET_BUILD_NUMBER=134
26 CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet"
27
28 if ! [[ " ${TYPES[*]} " =~ " ${APP_MACOS_TYPE} " ]]; then
scripts/windows/build_exe_installer.iss
+1 -1
@@ -1,5 +1,5 @@
1 #define MyAppName "Cake Wallet"
2 -#define MyAppVersion "5.4.2"
2 +#define MyAppVersion "5.5.0"
3 #define MyAppPublisher "Cake Labs LLC"
4 #define MyAppURL "https://cakewallet.com/"
5 #define MyAppExeName "CakeWallet.exe"