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
|
After Width: | Height: | Size: 184 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 3.7 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 4.2 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 4.2 KiB |
|
After Width: | Height: | Size: 3.5 KiB |
|
After Width: | Height: | Size: 2.7 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 3.6 KiB |
|
After Width: | Height: | Size: 4.5 KiB |
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 5.1 KiB |
|
After Width: | Height: | Size: 2.5 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 3.6 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 3.6 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 3.8 KiB |
|
After Width: | Height: | Size: 4.5 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 3.6 KiB |
|
After Width: | Height: | Size: 3.8 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 4.8 KiB |
|
After Width: | Height: | Size: 3.6 KiB |
|
After Width: | Height: | Size: 4.5 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 3.9 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 4.0 KiB |
|
After Width: | Height: | Size: 4.7 KiB |
|
After Width: | Height: | Size: 928 B |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 6.8 KiB |
|
After Width: | Height: | Size: 3.5 KiB |
|
After Width: | Height: | Size: 4.0 KiB |
|
After Width: | Height: | Size: 5.6 KiB |
|
After Width: | Height: | Size: 3.7 KiB |
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 916 B |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 942 B |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 7.7 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 2.7 KiB |
|
After Width: | Height: | Size: 3.9 KiB |
|
After Width: | Height: | Size: 3.8 KiB |
@@ -1,3 +1,6 @@
|
||||
Connectivity improvements
|
||||
UI enhancements
|
||||
Add support for Trezor
|
||||
Add support for Bitbox
|
||||
Hardware wallets flow enhancements
|
||||
New Themes
|
||||
New designs
|
||||
Bug fixes
|
||||
@@ -1,4 +1,7 @@
|
||||
Payjoin enhancements
|
||||
Connectivity improvements
|
||||
UI enhancements
|
||||
Add Base coin wallet
|
||||
Add support for Trezor
|
||||
Add support for Bitbox
|
||||
Hardware wallets flow enhancements
|
||||
New Themes
|
||||
New designs
|
||||
Bug fixes
|
||||
@@ -0,0 +1,3 @@
|
||||
description: This file stores settings for Dart & Flutter DevTools.
|
||||
documentation: https://docs.flutter.dev/tools/devtools/extensions#configure-extension-enablement-states
|
||||
extensions:
|
||||
@@ -32,24 +32,21 @@ class BaseWallet extends EVMChainWallet {
|
||||
|
||||
@override
|
||||
Future<void> initErc20TokensBox() async {
|
||||
final boxName = "${walletInfo.name.replaceAll(" ", "_")}_ ${Erc20Token.baseBoxName}";
|
||||
final boxName = "${walletInfo.name.replaceAll(" ", "_")}_${Erc20Token.baseBoxName}";
|
||||
|
||||
evmChainErc20TokensBox = await CakeHive.openBox<Erc20Token>(boxName);
|
||||
}
|
||||
|
||||
@override
|
||||
void addInitialTokens([bool isMigration = false]) {
|
||||
void addInitialTokens() {
|
||||
final initialErc20Tokens = DefaultBaseErc20Tokens().initialBaseErc20Tokens;
|
||||
|
||||
for (final token in initialErc20Tokens) {
|
||||
if (evmChainErc20TokensBox.containsKey(token.contractAddress)) {
|
||||
final existingToken = evmChainErc20TokensBox.get(token.contractAddress);
|
||||
if (existingToken?.tag != token.tag) {
|
||||
evmChainErc20TokensBox.put(token.contractAddress, token);
|
||||
}
|
||||
} else {
|
||||
if (isMigration) token.enabled = false;
|
||||
if (!evmChainErc20TokensBox.containsKey(token.contractAddress)) {
|
||||
evmChainErc20TokensBox.put(token.contractAddress, token);
|
||||
} else { // update existing token
|
||||
final existingToken = evmChainErc20TokensBox.get(token.contractAddress);
|
||||
evmChainErc20TokensBox.put(token.contractAddress, Erc20Token.copyWith(token, enabled: existingToken!.enabled));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -56,7 +56,7 @@ class BaseWalletService extends EVMChainWalletService<BaseWallet> {
|
||||
);
|
||||
|
||||
await wallet.init();
|
||||
wallet.addInitialTokens(true);
|
||||
wallet.addInitialTokens();
|
||||
await wallet.save();
|
||||
saveBackup(name);
|
||||
return wallet;
|
||||
@@ -71,7 +71,7 @@ class BaseWalletService extends EVMChainWalletService<BaseWallet> {
|
||||
);
|
||||
|
||||
await wallet.init();
|
||||
wallet.addInitialTokens(true);
|
||||
wallet.addInitialTokens();
|
||||
await wallet.save();
|
||||
return wallet;
|
||||
}
|
||||
|
||||
@@ -56,12 +56,16 @@ class DefaultBaseErc20Tokens {
|
||||
|
||||
List<Erc20Token> get initialBaseErc20Tokens => _defaultTokens.map((token) {
|
||||
String? iconPath;
|
||||
try {
|
||||
iconPath = CryptoCurrency.all
|
||||
.firstWhere((element) => element.title.toUpperCase() == token.symbol.toUpperCase())
|
||||
.iconPath;
|
||||
} catch (_) {}
|
||||
if (token.iconPath?.isEmpty ?? true) {
|
||||
try {
|
||||
iconPath = CryptoCurrency.all
|
||||
.firstWhere((element) => element.title.toUpperCase() == token.symbol.toUpperCase())
|
||||
.iconPath;
|
||||
} catch (_) {}
|
||||
} else {
|
||||
iconPath = token.iconPath;
|
||||
}
|
||||
|
||||
return Erc20Token.copyWith(token, iconPath, 'BASE');
|
||||
return Erc20Token.copyWith(token, icon: iconPath, tag: 'BASE');
|
||||
}).toList();
|
||||
}
|
||||
|
||||
@@ -116,6 +116,7 @@ class CryptoCurrency extends EnumerableItem<int> with Serializable<int> implemen
|
||||
CryptoCurrency.ndeps,
|
||||
CryptoCurrency.deps,
|
||||
CryptoCurrency.baseEth,
|
||||
CryptoCurrency.usde,
|
||||
];
|
||||
|
||||
static const havenCurrencies = [
|
||||
@@ -243,6 +244,7 @@ class CryptoCurrency extends EnumerableItem<int> with Serializable<int> implemen
|
||||
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/images/crypto/base_icon.webp', decimals: 18);
|
||||
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);
|
||||
|
||||
static final Map<int, CryptoCurrency> _rawCurrencyMap =
|
||||
[...all, ...havenCurrencies].fold<Map<int, CryptoCurrency>>(<int, CryptoCurrency>{}, (acc, item) {
|
||||
|
||||
@@ -43,12 +43,3 @@ CryptoCurrency walletTypeToCryptoCurrency(WalletType type, {bool isTestnet = fal
|
||||
'Unexpected wallet type: ${type.toString()} for CryptoCurrency walletTypeToCryptoCurrency');
|
||||
}
|
||||
}
|
||||
|
||||
extension CryptoCurrencyForWalletType on CryptoCurrency {
|
||||
String? get normalizedIconPath {
|
||||
if (this == CryptoCurrency.baseEth) {
|
||||
return 'assets/images/crypto/base_icon.webp';
|
||||
}
|
||||
return iconPath;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -47,14 +47,14 @@ class Erc20Token extends CryptoCurrency with HiveObjectMixin {
|
||||
isPotentialScam: isPotentialScam,
|
||||
);
|
||||
|
||||
Erc20Token.copyWith(Erc20Token other, String? icon, String? tag)
|
||||
Erc20Token.copyWith(Erc20Token other, {String? icon, String? tag, bool? enabled})
|
||||
: this.name = other.name,
|
||||
this.symbol = other.symbol,
|
||||
this.contractAddress = other.contractAddress,
|
||||
this.decimal = other.decimal,
|
||||
this._enabled = other.enabled,
|
||||
this.tag = tag,
|
||||
this.iconPath = icon,
|
||||
this._enabled = enabled ?? other.enabled,
|
||||
this.tag = tag ?? other.tag,
|
||||
this.iconPath = icon ?? other.iconPath,
|
||||
this.isPotentialScam = other.isPotentialScam,
|
||||
super(
|
||||
name: other.name,
|
||||
|
||||
@@ -13,7 +13,7 @@ enum DeviceConnectionType {
|
||||
case HardwareWalletType.bitbox:
|
||||
isSupported = [
|
||||
WalletType.bitcoin,
|
||||
WalletType.litecoin,
|
||||
// WalletType.litecoin,
|
||||
WalletType.ethereum,
|
||||
WalletType.polygon
|
||||
].contains(walletType);
|
||||
|
||||
@@ -83,15 +83,15 @@ class SPLToken extends CryptoCurrency with HiveObjectMixin {
|
||||
@override
|
||||
set enabled(bool value) => _enabled = value;
|
||||
|
||||
SPLToken.copyWith(SPLToken other, String? icon, String? tag)
|
||||
SPLToken.copyWith(SPLToken other, {String? icon, String? tag, bool? enabled})
|
||||
: name = other.name,
|
||||
symbol = other.symbol,
|
||||
mintAddress = other.mintAddress,
|
||||
decimal = other.decimal,
|
||||
_enabled = other.enabled,
|
||||
_enabled = enabled ?? other.enabled,
|
||||
mint = other.mint,
|
||||
tag = other.tag,
|
||||
iconPath = icon,
|
||||
tag = tag ?? other.tag,
|
||||
iconPath = icon ?? other.iconPath,
|
||||
isPotentialScam = other.isPotentialScam,
|
||||
super(
|
||||
title: other.symbol.toUpperCase(),
|
||||
|
||||
@@ -56,12 +56,12 @@ class TronToken extends CryptoCurrency with HiveObjectMixin {
|
||||
isPotentialScam: isPotentialScam,
|
||||
);
|
||||
|
||||
TronToken.copyWith(TronToken other, String? icon, String? tag)
|
||||
TronToken.copyWith(TronToken other, {String? icon, String? tag, bool? enabled})
|
||||
: name = other.name,
|
||||
symbol = other.symbol,
|
||||
contractAddress = other.contractAddress,
|
||||
decimal = other.decimal,
|
||||
_enabled = other.enabled,
|
||||
_enabled = enabled ?? other.enabled,
|
||||
tag = tag ?? other.tag,
|
||||
iconPath = icon ?? other.iconPath,
|
||||
isPotentialScam = other.isPotentialScam,
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
description: This file stores settings for Dart & Flutter DevTools.
|
||||
documentation: https://docs.flutter.dev/tools/devtools/extensions#configure-extension-enablement-states
|
||||
extensions:
|
||||
@@ -332,16 +332,532 @@ class DefaultEthereumErc20Tokens {
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'Abbott xStock',
|
||||
symbol: 'ABTx',
|
||||
contractAddress: '0x89233399708c18ac6887f90a2b4cd8ba5fedd06e',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/abtx.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'AbbVie xStock',
|
||||
symbol: 'ABBVx',
|
||||
contractAddress: '0xfbf2398df672cee4afcc2a4a733222331c742a6a',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/abbv.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'Accenture xStock',
|
||||
symbol: 'ACNx',
|
||||
contractAddress: '0x03183ce31b1656b72a55fa6056e287f50c35bbeb',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/acnx.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'Alphabet xStock',
|
||||
symbol: 'GOOGLx',
|
||||
contractAddress: '0xe92f673ca36c5e2efd2de7628f815f84807e803f',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/googlx.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'Amazon xStock',
|
||||
symbol: 'AMZNx',
|
||||
contractAddress: '0x3557ba345b01efa20a1bddc61f573bfd87195081',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/amznx.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'Amber xStock',
|
||||
symbol: 'AMBRx',
|
||||
contractAddress: '0x2f9a35ab5ddfbc49927bfdeab98a86c53dc6e763',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/ambrx.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'Apple xStock',
|
||||
symbol: 'AAPLx',
|
||||
contractAddress: '0x9d275685dc284c8eb1c79f6aba7a63dc75ec890a',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/apple.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'AppLovin xStock',
|
||||
symbol: 'APPx',
|
||||
contractAddress: '0x50a1291f69d9d3853def8209cfb1af0b46927be1',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/appx.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'AstraZeneca xStock',
|
||||
symbol: 'AZNx',
|
||||
contractAddress: '0x5d642505fe1a28897eb3baba665f454755d8daa2',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/aznx.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'Bank of America xStock',
|
||||
symbol: 'BACx',
|
||||
contractAddress: '0x314938c596f5ce31c3f75307d2979338c346d7f2',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/bacx.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'Berkshire Hathaway xStock',
|
||||
symbol: 'BRK.Bx',
|
||||
contractAddress: '0x12992613fdd35abe95dec5a4964331b1ee23b50d',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/brkbx.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'Broadcom xStock',
|
||||
symbol: 'AVGOx',
|
||||
contractAddress: '0x38bac69cbbd28156796e4163b2b6dcb81e336565',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/avgox.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'Chevron xStock',
|
||||
symbol: 'CVXx',
|
||||
contractAddress: '0xad5cdc3340904285b8159089974a99a1a09eb4c0',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/cvxx.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'Circle xStock',
|
||||
symbol: 'CRCLx',
|
||||
contractAddress: '0xfebded1b0986a8ee107f5ab1a1c5a813491deceb',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/crclx.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'Cisco xStock',
|
||||
symbol: 'CSCOx',
|
||||
contractAddress: '0x053c784cd87b74f42e0c089f98643e79c1a3ff16',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/cscox.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'Coca-Cola xStock',
|
||||
symbol: 'KOx',
|
||||
contractAddress: '0xdcc1a2699441079da889b1f49e12b69cc791129b',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/kox.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'Coinbase xStock',
|
||||
symbol: 'COINx',
|
||||
contractAddress: '0x364f210f430ec2448fc68a49203040f6124096f0',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/coinx.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'Comcast xStock',
|
||||
symbol: 'CMCSAx',
|
||||
contractAddress: '0xbc7170a1280be28513b4e940c681537eb25e39f4',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/cmcsax.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'CrowdStrike xStock',
|
||||
symbol: 'CRWDx',
|
||||
contractAddress: '0x214151022c2a5e380ab80cdac31f23ae554a7345',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/crwdx.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'Danaher xStock',
|
||||
symbol: 'DHRx',
|
||||
contractAddress: '0xdba228936f4079daf9aa906fd48a87f2300405f4',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/dhrx.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'DFDV xStock',
|
||||
symbol: 'DFDVx',
|
||||
contractAddress: '0x521860bb5df5468358875266b89bfe90d990c6e7',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/dfdvx.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'Eli Lilly xStock',
|
||||
symbol: 'LLYx',
|
||||
contractAddress: '0x19c41ea77b34bbdee61c3a87a75d1abda2ed0be4',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/llyx.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'Exxon Mobil xStock',
|
||||
symbol: 'XOMx',
|
||||
contractAddress: '0xeedb0273c5af792745180e9ff568cd01550ffa13',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/xomx.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'Gamestop xStock',
|
||||
symbol: 'GMEx',
|
||||
contractAddress: '0xe5f6d3b2405abdfe6f660e63202b25d23763160d',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/gmex.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'Gold xStock',
|
||||
symbol: 'GLDx',
|
||||
contractAddress: '0x2380f2673c640fb67e2d6b55b44c62f0e0e69da9',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/gldx.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'Goldman Sachs xStock',
|
||||
symbol: 'GSx',
|
||||
contractAddress: '0x3ee7e9b3a992fd23cd1c363b0e296856b04ab149',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/gsx.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'Home Depot xStock',
|
||||
symbol: 'HDx',
|
||||
contractAddress: '0x766b0cd6ed6d90b5d49d2c36a3761e9728501ba9',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/hdx.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'Honeywell xStock',
|
||||
symbol: 'HONx',
|
||||
contractAddress: '0x62a48560861b0b451654bfffdb5be6e47aa8ff1b',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/honx.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'Intel xStock',
|
||||
symbol: 'INTCx',
|
||||
contractAddress: '0xf8a80d1cb9cfd70d03d655d9df42339846f3b3c8',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/intcx.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'International Business Machines xStock',
|
||||
symbol: 'IBMx',
|
||||
contractAddress: '0xd9913208647671fe0f48f7f260076b2c6f310aac',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/ibmx.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'Johnson & Johnson xStock',
|
||||
symbol: 'JNJx',
|
||||
contractAddress: '0xdb0482cfad4789798623e64b15eeba01b16e917c',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/jnjx.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'JPMorgan Chase xStock',
|
||||
symbol: 'JPMx',
|
||||
contractAddress: '0xd9fc3e075d45254a1d834fea18af8041207dea0a',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/jpmx.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'Linde xStock',
|
||||
symbol: 'LINx',
|
||||
contractAddress: '0x15059c599c16fd8f70b633ade165502d6402cd49',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/linx.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'Marvell xStock',
|
||||
symbol: 'MRVLx',
|
||||
contractAddress: '0xeaad46f4146ded5a47b55aa7f6c48c191deaec88',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/mrvlx.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'Mastercard xStock',
|
||||
symbol: 'MAx',
|
||||
contractAddress: '0xb365cd2588065f522d379ad19e903304f6b622c6',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/mastercard.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'McDonald\'s xStock',
|
||||
symbol: 'MCDx',
|
||||
contractAddress: '0x80a77a372c1e12accda84299492f404902e2da67',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/mcdonalds.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'Medtronic xStock',
|
||||
symbol: 'MDTx',
|
||||
contractAddress: '0x0588e851ec0418d660bee81230d6c678daf21d46',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/mdtx.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'Merck xStock',
|
||||
symbol: 'MRKx',
|
||||
contractAddress: '0x17d8186ed8f68059124190d147174d0f6697dc40',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/mrkx.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'Meta xStock',
|
||||
symbol: 'METAx',
|
||||
contractAddress: '0x96702be57cd9777f835117a809c7124fe4ec989a',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/metax.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'Microsoft xStock',
|
||||
symbol: 'MSFTx',
|
||||
contractAddress: '0x5621737f42dae558b81269fcb9e9e70c19aa6b35',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/msftx.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'MicroStrategy xStock',
|
||||
symbol: 'MSTRx',
|
||||
contractAddress: '0xae2f842ef90c0d5213259ab82639d5bbf649b08e',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/mstrx.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'Nasdaq xStock',
|
||||
symbol: 'QQQx',
|
||||
contractAddress: '0xa753a7395cae905cd615da0b82a53e0560f250af',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/qqqx.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'Netflix xStock',
|
||||
symbol: 'NFLXx',
|
||||
contractAddress: '0xa6a65ac27e76cd53cb790473e4345c46e5ebf961',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/nflxx.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'Novo Nordisk xStock',
|
||||
symbol: 'NVOx',
|
||||
contractAddress: '0xf9523e369c5f55ad72dbaa75b0a9b92b3d8b147e',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/nvox.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'NVIDIA xStock',
|
||||
symbol: 'NVDAx',
|
||||
contractAddress: '0xc845b2894dbddd03858fd2d643b4ef725fe0849d',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/nvdax.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'OPEN xStock',
|
||||
symbol: 'OPENx',
|
||||
contractAddress: '0xbee6b69345f376598fe16abd5592c6f844825e66',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/openx.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'Oracle xStock',
|
||||
symbol: 'ORCLx',
|
||||
contractAddress: '0x548308e91ec9f285c7bff05295badbd56a6e4971',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/orclx.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'Palantir xStock',
|
||||
symbol: 'PLTRx',
|
||||
contractAddress: '0x6d482cec5f9dd1f05ccee9fd3ff79b246170f8e2',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/pltrx.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'PepsiCo xStock',
|
||||
symbol: 'PEPx',
|
||||
contractAddress: '0x36c424a6ec0e264b1616102ad63ed2ad7857413e',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/pepx.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'Pfizer xStock',
|
||||
symbol: 'PFEx',
|
||||
contractAddress: '0x1ac765b5bea23184802c7d2d497f7c33f1444a9e',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/pfex.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'Philip Morris xStock',
|
||||
symbol: 'PMx',
|
||||
contractAddress: '0x02a6c1789c3b4fdb1a7a3dfa39f90e5d3c94f4f9',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/pmx.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'Procter & Gamble xStock',
|
||||
symbol: 'PGx',
|
||||
contractAddress: '0xa90424d5d3e770e8644103ab503ed775dd1318fd',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/pgx.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'Robinhood xStock',
|
||||
symbol: 'HOODx',
|
||||
contractAddress: '0xe1385fdd5ffb10081cd52c56584f25efa9084015',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/hoodx.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'Salesforce xStock',
|
||||
symbol: 'CRMx',
|
||||
contractAddress: '0x4a4073f2eaf299a1be22254dcd2c41727f6f54a2',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/crmx.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'SP500 xStock',
|
||||
symbol: 'SPYx',
|
||||
contractAddress: '0x90a2a4c76b5d8c0bc892a69ea28aa775a8f2dd48',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/spyx.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'TBLL xStock',
|
||||
symbol: 'TBLLx',
|
||||
contractAddress: '0x4cbf89ed7bb30b8a860fa86d3c96e9c72931299b',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/tbllx.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'Tesla xStock',
|
||||
symbol: 'TSLAx',
|
||||
contractAddress: '0x8ad3c73f833d3f9a523ab01476625f269aeb7cf0',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/tslax.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'Thermo Fisher xStock',
|
||||
symbol: 'TMOx',
|
||||
contractAddress: '0xaf072f109a2c173d822a4fe9af311a1b18f83d19',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/tmox.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'TON xStock',
|
||||
symbol: 'TONXx',
|
||||
contractAddress: '0xe95ab205e333443d7970336d5fd827ef9ed97608',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/tonxx.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'TQQQ xStock',
|
||||
symbol: 'TQQQx',
|
||||
contractAddress: '0xfdddb57878ef9d6f681ec4381dcb626b9e69ac86',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/tqqqx.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'UnitedHealth xStock',
|
||||
symbol: 'UNHx',
|
||||
contractAddress: '0x167a6375da1efc4a5be0f470e73ecefd66245048',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/unhx.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'Vanguard xStock',
|
||||
symbol: 'VTIx',
|
||||
contractAddress: '0xbd730e618bcd88c82ddee52e10275cf2f88a4777',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/vtix.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'Visa xStock',
|
||||
symbol: 'Vx',
|
||||
contractAddress: '0x2363fd1235c1b6d3a5088ddf8df3a0b3a30c5293',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/vx.webp',
|
||||
),
|
||||
Erc20Token(
|
||||
name: 'Walmart xStock',
|
||||
symbol: 'WMTx',
|
||||
contractAddress: '0x7aefc9965699fbea943e03264d96e50cd4a97b21',
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/wmtx.webp',
|
||||
),
|
||||
];
|
||||
|
||||
List<Erc20Token> get initialErc20Tokens => _defaultTokens.map((token) {
|
||||
String? iconPath;
|
||||
try {
|
||||
iconPath = CryptoCurrency.all
|
||||
.firstWhere((element) => element.title.toUpperCase() == token.symbol.toUpperCase())
|
||||
.iconPath;
|
||||
} catch (_) {}
|
||||
if (token.iconPath?.isEmpty ?? true) {
|
||||
try {
|
||||
iconPath = CryptoCurrency.all
|
||||
.firstWhere((element) => element.title.toUpperCase() == token.symbol.toUpperCase())
|
||||
.iconPath;
|
||||
} catch (_) {}
|
||||
} else {
|
||||
iconPath = token.iconPath;
|
||||
}
|
||||
|
||||
return Erc20Token.copyWith(token, iconPath, 'ETH');
|
||||
return Erc20Token.copyWith(token, icon: iconPath, tag: 'ETH');
|
||||
}).toList();
|
||||
}
|
||||
|
||||
@@ -31,13 +31,15 @@ class EthereumWallet extends EVMChainWallet {
|
||||
}) : super(nativeCurrency: CryptoCurrency.eth);
|
||||
|
||||
@override
|
||||
void addInitialTokens([bool isMigration = false]) {
|
||||
void addInitialTokens() {
|
||||
final initialErc20Tokens = DefaultEthereumErc20Tokens().initialErc20Tokens;
|
||||
|
||||
for (final token in initialErc20Tokens) {
|
||||
if (!evmChainErc20TokensBox.containsKey(token.contractAddress)) {
|
||||
if (isMigration) token.enabled = false;
|
||||
evmChainErc20TokensBox.put(token.contractAddress, token);
|
||||
} else { // update existing token
|
||||
final existingToken = evmChainErc20TokensBox.get(token.contractAddress);
|
||||
evmChainErc20TokensBox.put(token.contractAddress, Erc20Token.copyWith(token, enabled: existingToken!.enabled));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,7 +53,7 @@ class EthereumWalletService extends EVMChainWalletService<EthereumWallet> {
|
||||
);
|
||||
|
||||
await wallet.init();
|
||||
wallet.addInitialTokens(true);
|
||||
wallet.addInitialTokens();
|
||||
await wallet.save();
|
||||
saveBackup(name);
|
||||
return wallet;
|
||||
@@ -67,7 +67,7 @@ class EthereumWalletService extends EVMChainWalletService<EthereumWallet> {
|
||||
encryptionFileUtils: encryptionFileUtilsFor(isDirect),
|
||||
);
|
||||
await wallet.init();
|
||||
wallet.addInitialTokens(true);
|
||||
wallet.addInitialTokens();
|
||||
await wallet.save();
|
||||
return wallet;
|
||||
}
|
||||
|
||||
@@ -139,7 +139,7 @@ abstract class EVMChainWalletBase
|
||||
|
||||
//! Methods to be overridden by every child
|
||||
|
||||
void addInitialTokens([bool isMigration]);
|
||||
void addInitialTokens();
|
||||
|
||||
// Future<EVMChainWallet> open({
|
||||
// required String name,
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
description: This file stores settings for Dart & Flutter DevTools.
|
||||
documentation: https://docs.flutter.dev/tools/devtools/extensions#configure-extension-enablement-states
|
||||
extensions:
|
||||
@@ -77,13 +77,17 @@ class DefaultPolygonErc20Tokens {
|
||||
|
||||
List<Erc20Token> get initialPolygonErc20Tokens => _defaultTokens.map((token) {
|
||||
String? iconPath;
|
||||
try {
|
||||
iconPath = CryptoCurrency.all
|
||||
.firstWhere((element) =>
|
||||
element.title.toUpperCase() == token.symbol.split(".").first.toUpperCase())
|
||||
.iconPath;
|
||||
} catch (_) {}
|
||||
if (token.iconPath?.isEmpty ?? true) {
|
||||
try {
|
||||
iconPath = CryptoCurrency.all
|
||||
.firstWhere((element) =>
|
||||
element.title.toUpperCase() == token.symbol.split(".").first.toUpperCase())
|
||||
.iconPath;
|
||||
} catch (_) {}
|
||||
} else {
|
||||
iconPath = token.iconPath;
|
||||
}
|
||||
|
||||
return Erc20Token.copyWith(token, iconPath, 'POL');
|
||||
return Erc20Token.copyWith(token, icon: iconPath, tag: 'POL');
|
||||
}).toList();
|
||||
}
|
||||
|
||||
@@ -41,18 +41,15 @@ class PolygonWallet extends EVMChainWallet {
|
||||
}
|
||||
|
||||
@override
|
||||
void addInitialTokens([bool isMigration = false]) {
|
||||
void addInitialTokens() {
|
||||
final initialErc20Tokens = DefaultPolygonErc20Tokens().initialPolygonErc20Tokens;
|
||||
|
||||
for (final token in initialErc20Tokens) {
|
||||
if (evmChainErc20TokensBox.containsKey(token.contractAddress)) {
|
||||
final existingToken = evmChainErc20TokensBox.get(token.contractAddress);
|
||||
if (existingToken?.tag != token.tag) {
|
||||
evmChainErc20TokensBox.put(token.contractAddress, token);
|
||||
}
|
||||
} else {
|
||||
if (isMigration) token.enabled = false;
|
||||
if (!evmChainErc20TokensBox.containsKey(token.contractAddress)) {
|
||||
evmChainErc20TokensBox.put(token.contractAddress, token);
|
||||
} else { // update existing token
|
||||
final existingToken = evmChainErc20TokensBox.get(token.contractAddress);
|
||||
evmChainErc20TokensBox.put(token.contractAddress, Erc20Token.copyWith(token, enabled: existingToken!.enabled));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -55,7 +55,7 @@ class PolygonWalletService extends EVMChainWalletService<PolygonWallet> {
|
||||
);
|
||||
|
||||
await wallet.init();
|
||||
wallet.addInitialTokens(true);
|
||||
wallet.addInitialTokens();
|
||||
await wallet.save();
|
||||
saveBackup(name);
|
||||
return wallet;
|
||||
|
||||
@@ -100,459 +100,595 @@ class DefaultSPLTokens {
|
||||
enabled: false,
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Abbott xStock',
|
||||
symbol: 'ABTx',
|
||||
mintAddress: 'XsHtf5RpxsQ7jeJ9ivNewouZKJHbPxhPoEy6yYvULr7',
|
||||
decimal: 8,
|
||||
mint: 'abtx',
|
||||
enabled: false),
|
||||
name: 'Abbott xStock',
|
||||
symbol: 'ABTx',
|
||||
mintAddress: 'XsHtf5RpxsQ7jeJ9ivNewouZKJHbPxhPoEy6yYvULr7',
|
||||
decimal: 8,
|
||||
mint: 'abtx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/abtx.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'AbbVie xStock',
|
||||
symbol: 'ABBVx',
|
||||
mintAddress: 'XswbinNKyPmzTa5CskMbCPvMW6G5CMnZXZEeQSSQoie',
|
||||
decimal: 8,
|
||||
mint: 'abbvx',
|
||||
enabled: false),
|
||||
name: 'AbbVie xStock',
|
||||
symbol: 'ABBVx',
|
||||
mintAddress: 'XswbinNKyPmzTa5CskMbCPvMW6G5CMnZXZEeQSSQoie',
|
||||
decimal: 8,
|
||||
mint: 'abbvx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/abbv.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Accenture xStock',
|
||||
symbol: 'ACNx',
|
||||
mintAddress: 'Xs5UJzmCRQ8DWZjskExdSQDnbE6iLkRu2jjrRAB1JSU',
|
||||
decimal: 8,
|
||||
mint: 'acnx',
|
||||
enabled: false),
|
||||
name: 'Accenture xStock',
|
||||
symbol: 'ACNx',
|
||||
mintAddress: 'Xs5UJzmCRQ8DWZjskExdSQDnbE6iLkRu2jjrRAB1JSU',
|
||||
decimal: 8,
|
||||
mint: 'acnx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/acnx.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Alphabet xStock',
|
||||
symbol: 'GOOGLx',
|
||||
mintAddress: 'XsCPL9dNWBMvFtTmwcCA5v3xWPSMEBCszbQdiLLq6aN',
|
||||
decimal: 8,
|
||||
mint: 'googlx',
|
||||
enabled: false),
|
||||
name: 'Alphabet xStock',
|
||||
symbol: 'GOOGLx',
|
||||
mintAddress: 'XsCPL9dNWBMvFtTmwcCA5v3xWPSMEBCszbQdiLLq6aN',
|
||||
decimal: 8,
|
||||
mint: 'googlx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/googlx.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Amazon xStock',
|
||||
symbol: 'AMZNx',
|
||||
mintAddress: 'Xs3eBt7uRfJX8QUs4suhyU8p2M6DoUDrJyWBa8LLZsg',
|
||||
decimal: 8,
|
||||
mint: 'amznx',
|
||||
enabled: false),
|
||||
name: 'Amazon xStock',
|
||||
symbol: 'AMZNx',
|
||||
mintAddress: 'Xs3eBt7uRfJX8QUs4suhyU8p2M6DoUDrJyWBa8LLZsg',
|
||||
decimal: 8,
|
||||
mint: 'amznx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/amznx.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Amber xStock',
|
||||
symbol: 'AMBRx',
|
||||
mintAddress: 'XsaQTCgebC2KPbf27KUhdv5JFvHhQ4GDAPURwrEhAzb',
|
||||
decimal: 8,
|
||||
mint: 'ambrx',
|
||||
enabled: false),
|
||||
name: 'Amber xStock',
|
||||
symbol: 'AMBRx',
|
||||
mintAddress: 'XsaQTCgebC2KPbf27KUhdv5JFvHhQ4GDAPURwrEhAzb',
|
||||
decimal: 8,
|
||||
mint: 'ambrx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/ambrx.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Apple xStock',
|
||||
symbol: 'AAPLx',
|
||||
mintAddress: 'XsbEhLAtcf6HdfpFZ5xEMdqW8nfAvcsP5bdudRLJzJp',
|
||||
decimal: 8,
|
||||
mint: 'aaplx',
|
||||
enabled: false),
|
||||
name: 'Apple xStock',
|
||||
symbol: 'AAPLx',
|
||||
mintAddress: 'XsbEhLAtcf6HdfpFZ5xEMdqW8nfAvcsP5bdudRLJzJp',
|
||||
decimal: 8,
|
||||
mint: 'aaplx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/apple.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'AppLovin xStock',
|
||||
symbol: 'APPx',
|
||||
mintAddress: 'XsPdAVBi8Zc1xvv53k4JcMrQaEDTgkGqKYeh7AYgPHV',
|
||||
decimal: 8,
|
||||
mint: 'appx',
|
||||
enabled: false),
|
||||
name: 'AppLovin xStock',
|
||||
symbol: 'APPx',
|
||||
mintAddress: 'XsPdAVBi8Zc1xvv53k4JcMrQaEDTgkGqKYeh7AYgPHV',
|
||||
decimal: 8,
|
||||
mint: 'appx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/appx.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'AstraZeneca xStock',
|
||||
symbol: 'AZNx',
|
||||
mintAddress: 'Xs3ZFkPYT2BN7qBMqf1j1bfTeTm1rFzEFSsQ1z3wAKU',
|
||||
decimal: 8,
|
||||
mint: 'aznx',
|
||||
enabled: false),
|
||||
name: 'AstraZeneca xStock',
|
||||
symbol: 'AZNx',
|
||||
mintAddress: 'Xs3ZFkPYT2BN7qBMqf1j1bfTeTm1rFzEFSsQ1z3wAKU',
|
||||
decimal: 8,
|
||||
mint: 'aznx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/aznx.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Bank of America xStock',
|
||||
symbol: 'BACx',
|
||||
mintAddress: 'XswsQk4duEQmCbGzfqUUWYmi7pV7xpJ9eEmLHXCaEQP',
|
||||
decimal: 8,
|
||||
mint: 'bacx',
|
||||
enabled: false),
|
||||
name: 'Bank of America xStock',
|
||||
symbol: 'BACx',
|
||||
mintAddress: 'XswsQk4duEQmCbGzfqUUWYmi7pV7xpJ9eEmLHXCaEQP',
|
||||
decimal: 8,
|
||||
mint: 'bacx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/bacx.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Berkshire Hathaway xStock',
|
||||
symbol: 'BRK.Bx',
|
||||
mintAddress: 'Xs6B6zawENwAbWVi7w92rjazLuAr5Az59qgWKcNb45x',
|
||||
decimal: 8,
|
||||
mint: 'brkbx',
|
||||
enabled: false),
|
||||
name: 'Berkshire Hathaway xStock',
|
||||
symbol: 'BRK.Bx',
|
||||
mintAddress: 'Xs6B6zawENwAbWVi7w92rjazLuAr5Az59qgWKcNb45x',
|
||||
decimal: 8,
|
||||
mint: 'brkbx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/brkbx.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Broadcom xStock',
|
||||
symbol: 'AVGOx',
|
||||
mintAddress: 'XsgSaSvNSqLTtFuyWPBhK9196Xb9Bbdyjj4fH3cPJGo',
|
||||
decimal: 8,
|
||||
mint: 'avgox',
|
||||
enabled: false),
|
||||
name: 'Broadcom xStock',
|
||||
symbol: 'AVGOx',
|
||||
mintAddress: 'XsgSaSvNSqLTtFuyWPBhK9196Xb9Bbdyjj4fH3cPJGo',
|
||||
decimal: 8,
|
||||
mint: 'avgox',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/avgox.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Chevron xStock',
|
||||
symbol: 'CVXx',
|
||||
mintAddress: 'XsNNMt7WTNA2sV3jrb1NNfNgapxRF5i4i6GcnTRRHts',
|
||||
decimal: 8,
|
||||
mint: 'cvxx',
|
||||
enabled: false),
|
||||
name: 'Chevron xStock',
|
||||
symbol: 'CVXx',
|
||||
mintAddress: 'XsNNMt7WTNA2sV3jrb1NNfNgapxRF5i4i6GcnTRRHts',
|
||||
decimal: 8,
|
||||
mint: 'cvxx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/cvxx.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Circle xStock',
|
||||
symbol: 'CRCLx',
|
||||
mintAddress: 'XsueG8BtpquVJX9LVLLEGuViXUungE6WmK5YZ3p3bd1',
|
||||
decimal: 8,
|
||||
mint: 'crclx',
|
||||
enabled: false),
|
||||
name: 'Circle xStock',
|
||||
symbol: 'CRCLx',
|
||||
mintAddress: 'XsueG8BtpquVJX9LVLLEGuViXUungE6WmK5YZ3p3bd1',
|
||||
decimal: 8,
|
||||
mint: 'crclx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/crclx.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Cisco xStock',
|
||||
symbol: 'CSCOx',
|
||||
mintAddress: 'Xsr3pdLQyXvDJBFgpR5nexCEZwXvigb8wbPYp4YoNFf',
|
||||
decimal: 8,
|
||||
mint: 'cscx',
|
||||
enabled: false),
|
||||
name: 'Cisco xStock',
|
||||
symbol: 'CSCOx',
|
||||
mintAddress: 'Xsr3pdLQyXvDJBFgpR5nexCEZwXvigb8wbPYp4YoNFf',
|
||||
decimal: 8,
|
||||
mint: 'cscx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/cscox.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Coca-Cola xStock',
|
||||
symbol: 'KOx',
|
||||
mintAddress: 'XsaBXg8dU5cPM6ehmVctMkVqoiRG2ZjMo1cyBJ3AykQ',
|
||||
decimal: 8,
|
||||
mint: 'kox',
|
||||
enabled: false),
|
||||
name: 'Coca-Cola xStock',
|
||||
symbol: 'KOx',
|
||||
mintAddress: 'XsaBXg8dU5cPM6ehmVctMkVqoiRG2ZjMo1cyBJ3AykQ',
|
||||
decimal: 8,
|
||||
mint: 'kox',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/kox.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Coinbase xStock',
|
||||
symbol: 'COINx',
|
||||
mintAddress: 'Xs7ZdzSHLU9ftNJsii5fCeJhoRWSC32SQGzGQtePxNu',
|
||||
decimal: 8,
|
||||
mint: 'coinx',
|
||||
enabled: false),
|
||||
name: 'Coinbase xStock',
|
||||
symbol: 'COINx',
|
||||
mintAddress: 'Xs7ZdzSHLU9ftNJsii5fCeJhoRWSC32SQGzGQtePxNu',
|
||||
decimal: 8,
|
||||
mint: 'coinx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/coinx.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Comcast xStock',
|
||||
symbol: 'CMCSAx',
|
||||
mintAddress: 'XsvKCaNsxg2GN8jjUmq71qukMJr7Q1c5R2Mk9P8kcS8',
|
||||
decimal: 8,
|
||||
mint: 'cmcsax',
|
||||
enabled: false),
|
||||
name: 'Comcast xStock',
|
||||
symbol: 'CMCSAx',
|
||||
mintAddress: 'XsvKCaNsxg2GN8jjUmq71qukMJr7Q1c5R2Mk9P8kcS8',
|
||||
decimal: 8,
|
||||
mint: 'cmcsax',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/cmcsax.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'CrowdStrike xStock',
|
||||
symbol: 'CRWDx',
|
||||
mintAddress: 'Xs7xXqkcK7K8urEqGg52SECi79dRp2cEKKuYjUePYDw',
|
||||
decimal: 8,
|
||||
mint: 'crwdx',
|
||||
enabled: false),
|
||||
name: 'CrowdStrike xStock',
|
||||
symbol: 'CRWDx',
|
||||
mintAddress: 'Xs7xXqkcK7K8urEqGg52SECi79dRp2cEKKuYjUePYDw',
|
||||
decimal: 8,
|
||||
mint: 'crwdx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/crwdx.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Danaher xStock',
|
||||
symbol: 'DHRx',
|
||||
mintAddress: 'Xseo8tgCZfkHxWS9xbFYeKFyMSbWEvZGFV1Gh53GtCV',
|
||||
decimal: 8,
|
||||
mint: 'dhrx',
|
||||
enabled: false),
|
||||
name: 'Danaher xStock',
|
||||
symbol: 'DHRx',
|
||||
mintAddress: 'Xseo8tgCZfkHxWS9xbFYeKFyMSbWEvZGFV1Gh53GtCV',
|
||||
decimal: 8,
|
||||
mint: 'dhrx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/dhrx.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'DFDV xStock',
|
||||
symbol: 'DFDVx',
|
||||
mintAddress: 'Xs2yquAgsHByNzx68WJC55WHjHBvG9JsMB7CWjTLyPy',
|
||||
decimal: 8,
|
||||
mint: 'dfdvx',
|
||||
enabled: false),
|
||||
name: 'DFDV xStock',
|
||||
symbol: 'DFDVx',
|
||||
mintAddress: 'Xs2yquAgsHByNzx68WJC55WHjHBvG9JsMB7CWjTLyPy',
|
||||
decimal: 8,
|
||||
mint: 'dfdvx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/dfdvx.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Eli Lilly xStock',
|
||||
symbol: 'LLYx',
|
||||
mintAddress: 'Xsnuv4omNoHozR6EEW5mXkw8Nrny5rB3jVfLqi6gKMH',
|
||||
decimal: 8,
|
||||
mint: 'llyx',
|
||||
enabled: false),
|
||||
name: 'Eli Lilly xStock',
|
||||
symbol: 'LLYx',
|
||||
mintAddress: 'Xsnuv4omNoHozR6EEW5mXkw8Nrny5rB3jVfLqi6gKMH',
|
||||
decimal: 8,
|
||||
mint: 'llyx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/llyx.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Exxon Mobil xStock',
|
||||
symbol: 'XOMx',
|
||||
mintAddress: 'XsaHND8sHyfMfsWPj6kSdd5VwvCayZvjYgKmmcNL5qh',
|
||||
decimal: 8,
|
||||
mint: 'xomx',
|
||||
enabled: false),
|
||||
name: 'Exxon Mobil xStock',
|
||||
symbol: 'XOMx',
|
||||
mintAddress: 'XsaHND8sHyfMfsWPj6kSdd5VwvCayZvjYgKmmcNL5qh',
|
||||
decimal: 8,
|
||||
mint: 'xomx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/xomx.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Gamestop xStock',
|
||||
symbol: 'GMEx',
|
||||
mintAddress: 'Xsf9mBktVB9BSU5kf4nHxPq5hCBJ2j2ui3ecFGxPRGc',
|
||||
decimal: 8,
|
||||
mint: 'gmex',
|
||||
enabled: false),
|
||||
name: 'Gamestop xStock',
|
||||
symbol: 'GMEx',
|
||||
mintAddress: 'Xsf9mBktVB9BSU5kf4nHxPq5hCBJ2j2ui3ecFGxPRGc',
|
||||
decimal: 8,
|
||||
mint: 'gmex',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/gmex.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Gold xStock',
|
||||
symbol: 'GLDx',
|
||||
mintAddress: 'Xsv9hRk1z5ystj9MhnA7Lq4vjSsLwzL2nxrwmwtD3re',
|
||||
decimal: 8,
|
||||
mint: 'gldx',
|
||||
enabled: false),
|
||||
name: 'Gold xStock',
|
||||
symbol: 'GLDx',
|
||||
mintAddress: 'Xsv9hRk1z5ystj9MhnA7Lq4vjSsLwzL2nxrwmwtD3re',
|
||||
decimal: 8,
|
||||
mint: 'gldx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/gldx.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Goldman Sachs xStock',
|
||||
symbol: 'GSx',
|
||||
mintAddress: 'XsgaUyp4jd1fNBCxgtTKkW64xnnhQcvgaxzsbAq5ZD1',
|
||||
decimal: 8,
|
||||
mint: 'gsx',
|
||||
enabled: false),
|
||||
name: 'Goldman Sachs xStock',
|
||||
symbol: 'GSx',
|
||||
mintAddress: 'XsgaUyp4jd1fNBCxgtTKkW64xnnhQcvgaxzsbAq5ZD1',
|
||||
decimal: 8,
|
||||
mint: 'gsx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/gsx.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Home Depot xStock',
|
||||
symbol: 'HDx',
|
||||
mintAddress: 'XszjVtyhowGjSC5odCqBpW1CtXXwXjYokymrk7fGKD3',
|
||||
decimal: 8,
|
||||
mint: 'hdx',
|
||||
enabled: false),
|
||||
name: 'Home Depot xStock',
|
||||
symbol: 'HDx',
|
||||
mintAddress: 'XszjVtyhowGjSC5odCqBpW1CtXXwXjYokymrk7fGKD3',
|
||||
decimal: 8,
|
||||
mint: 'hdx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/hdx.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Honeywell xStock',
|
||||
symbol: 'HONx',
|
||||
mintAddress: 'XsRbLZthfABAPAfumWNEJhPyiKDW6TvDVeAeW7oKqA2',
|
||||
decimal: 8,
|
||||
mint: 'honx',
|
||||
enabled: false),
|
||||
name: 'Honeywell xStock',
|
||||
symbol: 'HONx',
|
||||
mintAddress: 'XsRbLZthfABAPAfumWNEJhPyiKDW6TvDVeAeW7oKqA2',
|
||||
decimal: 8,
|
||||
mint: 'honx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/honx.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Intel xStock',
|
||||
symbol: 'INTCx',
|
||||
mintAddress: 'XshPgPdXFRWB8tP1j82rebb2Q9rPgGX37RuqzohmArM',
|
||||
decimal: 8,
|
||||
mint: 'intcx',
|
||||
enabled: false),
|
||||
name: 'Intel xStock',
|
||||
symbol: 'INTCx',
|
||||
mintAddress: 'XshPgPdXFRWB8tP1j82rebb2Q9rPgGX37RuqzohmArM',
|
||||
decimal: 8,
|
||||
mint: 'intcx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/intcx.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'International Business Machines xStock',
|
||||
symbol: 'IBMx',
|
||||
mintAddress: 'XspwhyYPdWVM8XBHZnpS9hgyag9MKjLRyE3tVfmCbSr',
|
||||
decimal: 8,
|
||||
mint: 'ibmx',
|
||||
enabled: false),
|
||||
name: 'International Business Machines xStock',
|
||||
symbol: 'IBMx',
|
||||
mintAddress: 'XspwhyYPdWVM8XBHZnpS9hgyag9MKjLRyE3tVfmCbSr',
|
||||
decimal: 8,
|
||||
mint: 'ibmx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/ibmx.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Johnson & Johnson xStock',
|
||||
symbol: 'JNJx',
|
||||
mintAddress: 'XsGVi5eo1Dh2zUpic4qACcjuWGjNv8GCt3dm5XcX6Dn',
|
||||
decimal: 8,
|
||||
mint: 'jnjx',
|
||||
enabled: false),
|
||||
name: 'Johnson & Johnson xStock',
|
||||
symbol: 'JNJx',
|
||||
mintAddress: 'XsGVi5eo1Dh2zUpic4qACcjuWGjNv8GCt3dm5XcX6Dn',
|
||||
decimal: 8,
|
||||
mint: 'jnjx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/jnjx.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'JPMorgan Chase xStock',
|
||||
symbol: 'JPMx',
|
||||
mintAddress: 'XsMAqkcKsUewDrzVkait4e5u4y8REgtyS7jWgCpLV2C',
|
||||
decimal: 8,
|
||||
mint: 'jpmx',
|
||||
enabled: false),
|
||||
name: 'JPMorgan Chase xStock',
|
||||
symbol: 'JPMx',
|
||||
mintAddress: 'XsMAqkcKsUewDrzVkait4e5u4y8REgtyS7jWgCpLV2C',
|
||||
decimal: 8,
|
||||
mint: 'jpmx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/jpmx.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Linde xStock',
|
||||
symbol: 'LINx',
|
||||
mintAddress: 'XsSr8anD1hkvNMu8XQiVcmiaTP7XGvYu7Q58LdmtE8Z',
|
||||
decimal: 8,
|
||||
mint: 'linx',
|
||||
enabled: false),
|
||||
name: 'Linde xStock',
|
||||
symbol: 'LINx',
|
||||
mintAddress: 'XsSr8anD1hkvNMu8XQiVcmiaTP7XGvYu7Q58LdmtE8Z',
|
||||
decimal: 8,
|
||||
mint: 'linx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/linx.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Marvell xStock',
|
||||
symbol: 'MRVLx',
|
||||
mintAddress: 'XsuxRGDzbLjnJ72v74b7p9VY6N66uYgTCyfwwRjVCJA',
|
||||
decimal: 8,
|
||||
mint: 'mrvlx',
|
||||
enabled: false),
|
||||
name: 'Marvell xStock',
|
||||
symbol: 'MRVLx',
|
||||
mintAddress: 'XsuxRGDzbLjnJ72v74b7p9VY6N66uYgTCyfwwRjVCJA',
|
||||
decimal: 8,
|
||||
mint: 'mrvlx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/mrvlx.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Mastercard xStock',
|
||||
symbol: 'MAx',
|
||||
mintAddress: 'XsApJFV9MAktqnAc6jqzsHVujxkGm9xcSUffaBoYLKC',
|
||||
decimal: 8,
|
||||
mint: 'max',
|
||||
enabled: false),
|
||||
name: 'Mastercard xStock',
|
||||
symbol: 'MAx',
|
||||
mintAddress: 'XsApJFV9MAktqnAc6jqzsHVujxkGm9xcSUffaBoYLKC',
|
||||
decimal: 8,
|
||||
mint: 'max',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/mastercard.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'McDonald\'s xStock',
|
||||
symbol: 'MCDx',
|
||||
mintAddress: 'XsqE9cRRpzxcGKDXj1BJ7Xmg4GRhZoyY1KpmGSxAWT2',
|
||||
decimal: 8,
|
||||
mint: 'mcdx',
|
||||
enabled: false),
|
||||
name: 'McDonald\'s xStock',
|
||||
symbol: 'MCDx',
|
||||
mintAddress: 'XsqE9cRRpzxcGKDXj1BJ7Xmg4GRhZoyY1KpmGSxAWT2',
|
||||
decimal: 8,
|
||||
mint: 'mcdx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/mcdonalds.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Medtronic xStock',
|
||||
symbol: 'MDTx',
|
||||
mintAddress: 'XsDgw22qRLTv5Uwuzn6T63cW69exG41T6gwQhEK22u2',
|
||||
decimal: 8,
|
||||
mint: 'mdtx',
|
||||
enabled: false),
|
||||
name: 'Medtronic xStock',
|
||||
symbol: 'MDTx',
|
||||
mintAddress: 'XsDgw22qRLTv5Uwuzn6T63cW69exG41T6gwQhEK22u2',
|
||||
decimal: 8,
|
||||
mint: 'mdtx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/mdtx.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Merck xStock',
|
||||
symbol: 'MRKx',
|
||||
mintAddress: 'XsnQnU7AdbRZYe2akqqpibDdXjkieGFfSkbkjX1Sd1X',
|
||||
decimal: 8,
|
||||
mint: 'mrkx',
|
||||
enabled: false),
|
||||
name: 'Merck xStock',
|
||||
symbol: 'MRKx',
|
||||
mintAddress: 'XsnQnU7AdbRZYe2akqqpibDdXjkieGFfSkbkjX1Sd1X',
|
||||
decimal: 8,
|
||||
mint: 'mrkx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/mrkx.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Meta xStock',
|
||||
symbol: 'METAx',
|
||||
mintAddress: 'Xsa62P5mvPszXL1krVUnU5ar38bBSVcWAB6fmPCo5Zu',
|
||||
decimal: 8,
|
||||
mint: 'metax',
|
||||
enabled: false),
|
||||
name: 'Meta xStock',
|
||||
symbol: 'METAx',
|
||||
mintAddress: 'Xsa62P5mvPszXL1krVUnU5ar38bBSVcWAB6fmPCo5Zu',
|
||||
decimal: 8,
|
||||
mint: 'metax',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/metax.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Microsoft xStock',
|
||||
symbol: 'MSFTx',
|
||||
mintAddress: 'XspzcW1PRtgf6Wj92HCiZdjzKCyFekVD8P5Ueh3dRMX',
|
||||
decimal: 8,
|
||||
mint: 'msftx',
|
||||
enabled: false),
|
||||
name: 'Microsoft xStock',
|
||||
symbol: 'MSFTx',
|
||||
mintAddress: 'XspzcW1PRtgf6Wj92HCiZdjzKCyFekVD8P5Ueh3dRMX',
|
||||
decimal: 8,
|
||||
mint: 'msftx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/msftx.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'MicroStrategy xStock',
|
||||
symbol: 'MSTRx',
|
||||
mintAddress: 'XsP7xzNPvEHS1m6qfanPUGjNmdnmsLKEoNAnHjdxxyZ',
|
||||
decimal: 8,
|
||||
mint: 'mstrx',
|
||||
enabled: false),
|
||||
name: 'MicroStrategy xStock',
|
||||
symbol: 'MSTRx',
|
||||
mintAddress: 'XsP7xzNPvEHS1m6qfanPUGjNmdnmsLKEoNAnHjdxxyZ',
|
||||
decimal: 8,
|
||||
mint: 'mstrx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/mstrx.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Nasdaq xStock',
|
||||
symbol: 'QQQx',
|
||||
mintAddress: 'Xs8S1uUs1zvS2p7iwtsG3b6fkhpvmwz4GYU3gWAmWHZ',
|
||||
decimal: 8,
|
||||
mint: 'qqqx',
|
||||
enabled: false),
|
||||
name: 'Nasdaq xStock',
|
||||
symbol: 'QQQx',
|
||||
mintAddress: 'Xs8S1uUs1zvS2p7iwtsG3b6fkhpvmwz4GYU3gWAmWHZ',
|
||||
decimal: 8,
|
||||
mint: 'qqqx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/qqqx.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Netflix xStock',
|
||||
symbol: 'NFLXx',
|
||||
mintAddress: 'XsEH7wWfJJu2ZT3UCFeVfALnVA6CP5ur7Ee11KmzVpL',
|
||||
decimal: 8,
|
||||
mint: 'nflxx',
|
||||
enabled: false),
|
||||
name: 'Netflix xStock',
|
||||
symbol: 'NFLXx',
|
||||
mintAddress: 'XsEH7wWfJJu2ZT3UCFeVfALnVA6CP5ur7Ee11KmzVpL',
|
||||
decimal: 8,
|
||||
mint: 'nflxx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/nflxx.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Novo Nordisk xStock',
|
||||
symbol: 'NVOx',
|
||||
mintAddress: 'XsfAzPzYrYjd4Dpa9BU3cusBsvWfVB9gBcyGC87S57n',
|
||||
decimal: 8,
|
||||
mint: 'nvox',
|
||||
enabled: false),
|
||||
name: 'Novo Nordisk xStock',
|
||||
symbol: 'NVOx',
|
||||
mintAddress: 'XsfAzPzYrYjd4Dpa9BU3cusBsvWfVB9gBcyGC87S57n',
|
||||
decimal: 8,
|
||||
mint: 'nvox',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/nvox.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'NVIDIA xStock',
|
||||
symbol: 'NVDAx',
|
||||
mintAddress: 'Xsc9qvGR1efVDFGLrVsmkzv3qi45LTBjeUKSPmx9qEh',
|
||||
decimal: 8,
|
||||
mint: 'nvdax',
|
||||
enabled: false),
|
||||
name: 'NVIDIA xStock',
|
||||
symbol: 'NVDAx',
|
||||
mintAddress: 'Xsc9qvGR1efVDFGLrVsmkzv3qi45LTBjeUKSPmx9qEh',
|
||||
decimal: 8,
|
||||
mint: 'nvdax',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/nvdax.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'OPEN xStock',
|
||||
symbol: 'OPENx',
|
||||
mintAddress: 'XsGtpmjhmC8kyjVSWL4VicGu36ceq9u55PTgF8bhGv6',
|
||||
decimal: 8,
|
||||
mint: 'openx',
|
||||
enabled: false),
|
||||
name: 'OPEN xStock',
|
||||
symbol: 'OPENx',
|
||||
mintAddress: 'XsGtpmjhmC8kyjVSWL4VicGu36ceq9u55PTgF8bhGv6',
|
||||
decimal: 8,
|
||||
mint: 'openx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/openx.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Oracle xStock',
|
||||
symbol: 'ORCLx',
|
||||
mintAddress: 'XsjFwUPiLofddX5cWFHW35GCbXcSu1BCUGfxoQAQjeL',
|
||||
decimal: 8,
|
||||
mint: 'orclx',
|
||||
enabled: false),
|
||||
name: 'Oracle xStock',
|
||||
symbol: 'ORCLx',
|
||||
mintAddress: 'XsjFwUPiLofddX5cWFHW35GCbXcSu1BCUGfxoQAQjeL',
|
||||
decimal: 8,
|
||||
mint: 'orclx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/orclx.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Palantir xStock',
|
||||
symbol: 'PLTRx',
|
||||
mintAddress: 'XsoBhf2ufR8fTyNSjqfU71DYGaE6Z3SUGAidpzriAA4',
|
||||
decimal: 8,
|
||||
mint: 'pltrx',
|
||||
enabled: false),
|
||||
name: 'Palantir xStock',
|
||||
symbol: 'PLTRx',
|
||||
mintAddress: 'XsoBhf2ufR8fTyNSjqfU71DYGaE6Z3SUGAidpzriAA4',
|
||||
decimal: 8,
|
||||
mint: 'pltrx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/pltrx.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'PepsiCo xStock',
|
||||
symbol: 'PEPx',
|
||||
mintAddress: 'Xsv99frTRUeornyvCfvhnDesQDWuvns1M852Pez91vF',
|
||||
decimal: 8,
|
||||
mint: 'pepx',
|
||||
enabled: false),
|
||||
name: 'PepsiCo xStock',
|
||||
symbol: 'PEPx',
|
||||
mintAddress: 'Xsv99frTRUeornyvCfvhnDesQDWuvns1M852Pez91vF',
|
||||
decimal: 8,
|
||||
mint: 'pepx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/pepx.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Pfizer xStock',
|
||||
symbol: 'PFEx',
|
||||
mintAddress: 'XsAtbqkAP1HJxy7hFDeq7ok6yM43DQ9mQ1Rh861X8rw',
|
||||
decimal: 8,
|
||||
mint: 'pfex',
|
||||
enabled: false),
|
||||
name: 'Pfizer xStock',
|
||||
symbol: 'PFEx',
|
||||
mintAddress: 'XsAtbqkAP1HJxy7hFDeq7ok6yM43DQ9mQ1Rh861X8rw',
|
||||
decimal: 8,
|
||||
mint: 'pfex',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/pfex.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Philip Morris xStock',
|
||||
symbol: 'PMx',
|
||||
mintAddress: 'Xsba6tUnSjDae2VcopDB6FGGDaxRrewFCDa5hKn5vT3',
|
||||
decimal: 8,
|
||||
mint: 'pmx',
|
||||
enabled: false),
|
||||
name: 'Philip Morris xStock',
|
||||
symbol: 'PMx',
|
||||
mintAddress: 'Xsba6tUnSjDae2VcopDB6FGGDaxRrewFCDa5hKn5vT3',
|
||||
decimal: 8,
|
||||
mint: 'pmx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/pmx.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Procter & Gamble xStock',
|
||||
symbol: 'PGx',
|
||||
mintAddress: 'XsYdjDjNUygZ7yGKfQaB6TxLh2gC6RRjzLtLAGJrhzV',
|
||||
decimal: 8,
|
||||
mint: 'pgx',
|
||||
enabled: false),
|
||||
name: 'Procter & Gamble xStock',
|
||||
symbol: 'PGx',
|
||||
mintAddress: 'XsYdjDjNUygZ7yGKfQaB6TxLh2gC6RRjzLtLAGJrhzV',
|
||||
decimal: 8,
|
||||
mint: 'pgx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/pgx.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Robinhood xStock',
|
||||
symbol: 'HOODx',
|
||||
mintAddress: 'XsvNBAYkrDRNhA7wPHQfX3ZUXZyZLdnCQDfHZ56bzpg',
|
||||
decimal: 8,
|
||||
mint: 'hoodx',
|
||||
enabled: false),
|
||||
name: 'Robinhood xStock',
|
||||
symbol: 'HOODx',
|
||||
mintAddress: 'XsvNBAYkrDRNhA7wPHQfX3ZUXZyZLdnCQDfHZ56bzpg',
|
||||
decimal: 8,
|
||||
mint: 'hoodx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/hoodx.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Salesforce xStock',
|
||||
symbol: 'CRMx',
|
||||
mintAddress: 'XsczbcQ3zfcgAEt9qHQES8pxKAVG5rujPSHQEXi4kaN',
|
||||
decimal: 8,
|
||||
mint: 'crmx',
|
||||
enabled: false),
|
||||
name: 'Salesforce xStock',
|
||||
symbol: 'CRMx',
|
||||
mintAddress: 'XsczbcQ3zfcgAEt9qHQES8pxKAVG5rujPSHQEXi4kaN',
|
||||
decimal: 8,
|
||||
mint: 'crmx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/crmx.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'SP500 xStock',
|
||||
symbol: 'SPYx',
|
||||
mintAddress: 'XsoCS1TfEyfFhfvj8EtZ528L3CaKBDBRqRapnBbDF2W',
|
||||
decimal: 8,
|
||||
mint: 'spyx',
|
||||
enabled: false),
|
||||
name: 'SP500 xStock',
|
||||
symbol: 'SPYx',
|
||||
mintAddress: 'XsoCS1TfEyfFhfvj8EtZ528L3CaKBDBRqRapnBbDF2W',
|
||||
decimal: 8,
|
||||
mint: 'spyx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/spyx.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'TBLL xStock',
|
||||
symbol: 'TBLLx',
|
||||
mintAddress: 'XsqBC5tcVQLYt8wqGCHRnAUUecbRYXoJCReD6w7QEKp',
|
||||
decimal: 8,
|
||||
mint: 'tbllx',
|
||||
enabled: false),
|
||||
name: 'TBLL xStock',
|
||||
symbol: 'TBLLx',
|
||||
mintAddress: 'XsqBC5tcVQLYt8wqGCHRnAUUecbRYXoJCReD6w7QEKp',
|
||||
decimal: 8,
|
||||
mint: 'tbllx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/tbllx.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Tesla xStock',
|
||||
symbol: 'TSLAx',
|
||||
mintAddress: 'XsDoVfqeBukxuZHWhdvWHBhgEHjGNst4MLodqsJHzoB',
|
||||
decimal: 8,
|
||||
mint: 'tslax',
|
||||
enabled: false),
|
||||
name: 'Tesla xStock',
|
||||
symbol: 'TSLAx',
|
||||
mintAddress: 'XsDoVfqeBukxuZHWhdvWHBhgEHjGNst4MLodqsJHzoB',
|
||||
decimal: 8,
|
||||
mint: 'tslax',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/tslax.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Thermo Fisher xStock',
|
||||
symbol: 'TMOx',
|
||||
mintAddress: 'Xs8drBWy3Sd5QY3aifG9kt9KFs2K3PGZmx7jWrsrk57',
|
||||
decimal: 8,
|
||||
mint: 'tmox',
|
||||
enabled: false),
|
||||
name: 'Thermo Fisher xStock',
|
||||
symbol: 'TMOx',
|
||||
mintAddress: 'Xs8drBWy3Sd5QY3aifG9kt9KFs2K3PGZmx7jWrsrk57',
|
||||
decimal: 8,
|
||||
mint: 'tmox',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/tmox.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'TQQQ xStock',
|
||||
symbol: 'TQQQx',
|
||||
mintAddress: 'XsjQP3iMAaQ3kQScQKthQpx9ALRbjKAjQtHg6TFomoc',
|
||||
decimal: 8,
|
||||
mint: 'tqqqx',
|
||||
enabled: false),
|
||||
name: 'TON xStock',
|
||||
symbol: 'TONXx',
|
||||
mintAddress: 'XscE4GUcsYhcyZu5ATiGUMmhxYa1D5fwbpJw4K6K4dp',
|
||||
decimal: 8,
|
||||
mint: 'tonxx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/tonxx.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'UnitedHealth xStock',
|
||||
symbol: 'UNHx',
|
||||
mintAddress: 'XszvaiXGPwvk2nwb3o9C1CX4K6zH8sez11E6uyup6fe',
|
||||
decimal: 8,
|
||||
mint: 'unhx',
|
||||
enabled: false),
|
||||
name: 'TQQQ xStock',
|
||||
symbol: 'TQQQx',
|
||||
mintAddress: 'XsjQP3iMAaQ3kQScQKthQpx9ALRbjKAjQtHg6TFomoc',
|
||||
decimal: 8,
|
||||
mint: 'tqqqx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/tqqqx.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Vanguard xStock',
|
||||
symbol: 'VTIx',
|
||||
mintAddress: 'XsssYEQjzxBCFgvYFFNuhJFBeHNdLWYeUSP8F45cDr9',
|
||||
decimal: 8,
|
||||
mint: 'vtix',
|
||||
enabled: false),
|
||||
name: 'UnitedHealth xStock',
|
||||
symbol: 'UNHx',
|
||||
mintAddress: 'XszvaiXGPwvk2nwb3o9C1CX4K6zH8sez11E6uyup6fe',
|
||||
decimal: 8,
|
||||
mint: 'unhx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/unhx.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Visa xStock',
|
||||
symbol: 'Vx',
|
||||
mintAddress: 'XsqgsbXwWogGJsNcVZ3TyVouy2MbTkfCFhCGGGcQZ2p',
|
||||
decimal: 8,
|
||||
mint: 'vx',
|
||||
enabled: false),
|
||||
name: 'Vanguard xStock',
|
||||
symbol: 'VTIx',
|
||||
mintAddress: 'XsssYEQjzxBCFgvYFFNuhJFBeHNdLWYeUSP8F45cDr9',
|
||||
decimal: 8,
|
||||
mint: 'vtix',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/vtix.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Walmart xStock',
|
||||
symbol: 'WMTx',
|
||||
mintAddress: 'Xs151QeqTCiuKtinzfRATnUESM2xTU6V9Wy8Vy538ci',
|
||||
decimal: 8,
|
||||
mint: 'wmtx',
|
||||
enabled: false),
|
||||
|
||||
name: 'Visa xStock',
|
||||
symbol: 'Vx',
|
||||
mintAddress: 'XsqgsbXwWogGJsNcVZ3TyVouy2MbTkfCFhCGGGcQZ2p',
|
||||
decimal: 8,
|
||||
mint: 'vx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/vx.webp',
|
||||
),
|
||||
SPLToken(
|
||||
name: 'Walmart xStock',
|
||||
symbol: 'WMTx',
|
||||
mintAddress: 'Xs151QeqTCiuKtinzfRATnUESM2xTU6V9Wy8Vy538ci',
|
||||
decimal: 8,
|
||||
mint: 'wmtx',
|
||||
enabled: false,
|
||||
iconPath: 'assets/images/stocks/wmtx.webp',
|
||||
),
|
||||
];
|
||||
|
||||
List<SPLToken> get initialSPLTokens => _defaultTokens.map((token) {
|
||||
String? iconPath;
|
||||
if (token.iconPath != null) return token;
|
||||
if (token.iconPath?.isEmpty ?? true) {
|
||||
try {
|
||||
iconPath = CryptoCurrency.all
|
||||
.firstWhere((element) => element.title.toUpperCase() == token.symbol.toUpperCase())
|
||||
.iconPath;
|
||||
} catch (_) {}
|
||||
} else {
|
||||
iconPath = token.iconPath;
|
||||
}
|
||||
|
||||
try {
|
||||
iconPath = CryptoCurrency.all
|
||||
.firstWhere((element) => element.title.toUpperCase() == token.symbol.toUpperCase())
|
||||
.iconPath;
|
||||
} catch (_) {}
|
||||
|
||||
return SPLToken.copyWith(token, iconPath, 'SOL');
|
||||
return SPLToken.copyWith(token, icon: iconPath, tag: 'SOL');
|
||||
}).toList();
|
||||
}
|
||||
|
||||
@@ -506,7 +506,12 @@ abstract class SolanaWalletBase
|
||||
final initialSPLTokens = DefaultSPLTokens().initialSPLTokens;
|
||||
|
||||
for (var token in initialSPLTokens) {
|
||||
splTokensBox.put(token.mintAddress, token);
|
||||
if (!splTokensBox.containsKey(token.mintAddress)) {
|
||||
splTokensBox.put(token.mintAddress, token);
|
||||
} else { // update existing token
|
||||
final existingToken = splTokensBox.get(token.mintAddress);
|
||||
splTokensBox.put(token.mintAddress, SPLToken.copyWith(token, enabled: existingToken!.enabled));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -64,6 +64,7 @@ class SolanaWalletService extends WalletService<SolanaNewWalletCredentials,
|
||||
);
|
||||
|
||||
await wallet.init();
|
||||
wallet.addInitialTokens();
|
||||
await wallet.save();
|
||||
saveBackup(name);
|
||||
return wallet;
|
||||
@@ -78,6 +79,7 @@ class SolanaWalletService extends WalletService<SolanaNewWalletCredentials,
|
||||
);
|
||||
|
||||
await wallet.init();
|
||||
wallet.addInitialTokens();
|
||||
await wallet.save();
|
||||
return wallet;
|
||||
}
|
||||
|
||||
@@ -91,13 +91,17 @@ class DefaultTronTokens {
|
||||
|
||||
List<TronToken> get initialTronTokens => _defaultTokens.map((token) {
|
||||
String? iconPath;
|
||||
try {
|
||||
iconPath = CryptoCurrency.all
|
||||
.firstWhere((element) =>
|
||||
element.title.toUpperCase() == token.symbol.split(".").first.toUpperCase())
|
||||
.iconPath;
|
||||
} catch (_) {}
|
||||
if (token.iconPath?.isEmpty ?? true) {
|
||||
try {
|
||||
iconPath = CryptoCurrency.all
|
||||
.firstWhere((element) =>
|
||||
element.title.toUpperCase() == token.symbol.split(".").first.toUpperCase())
|
||||
.iconPath;
|
||||
} catch (_) {}
|
||||
} else {
|
||||
iconPath = token.iconPath;
|
||||
}
|
||||
|
||||
return TronToken.copyWith(token, iconPath, 'TRX');
|
||||
return TronToken.copyWith(token, icon: iconPath, tag: 'TRX');
|
||||
}).toList();
|
||||
}
|
||||
|
||||
@@ -178,7 +178,12 @@ abstract class TronWalletBase
|
||||
final initialTronTokens = DefaultTronTokens().initialTronTokens;
|
||||
|
||||
for (var token in initialTronTokens) {
|
||||
tronTokensBox.put(token.contractAddress, token);
|
||||
if (!tronTokensBox.containsKey(token.contractAddress)) {
|
||||
tronTokensBox.put(token.contractAddress, token);
|
||||
} else { // update existing token
|
||||
final existingToken = tronTokensBox.get(token.contractAddress);
|
||||
tronTokensBox.put(token.contractAddress, TronToken.copyWith(token, enabled: existingToken!.enabled));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
description: This file stores settings for Dart & Flutter DevTools.
|
||||
documentation: https://docs.flutter.dev/tools/devtools/extensions#configure-extension-enablement-states
|
||||
extensions:
|
||||
@@ -110,7 +110,7 @@ class CommonTestFlows {
|
||||
|
||||
void confirmAllAvailableWalletTypeIconsDisplayCorrectly() {
|
||||
for (var walletType in availableWalletTypes) {
|
||||
final imageUrl = walletTypeToCryptoCurrency(walletType).normalizedIconPath;
|
||||
final imageUrl = walletTypeToCryptoCurrency(walletType).iconPath;
|
||||
|
||||
final walletIconFinder = find.image(
|
||||
Image.asset(
|
||||
|
||||
@@ -272,7 +272,7 @@ Future<void> initializeAppConfigs({bool loadWallet = true}) async {
|
||||
payjoinSessionSource: payjoinSessionSource,
|
||||
anonpayInvoiceInfo: anonpayInvoiceInfo,
|
||||
havenSeedStore: havenSeedStore,
|
||||
initialMigrationVersion: 51,
|
||||
initialMigrationVersion: 52,
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -149,7 +149,7 @@ class _SelectHardwareWalletAccountFormState extends State<SelectHardwareWalletAc
|
||||
padding: EdgeInsets.only(top: 10),
|
||||
child: SelectButton(
|
||||
image: Image.asset(
|
||||
walletTypeToCryptoCurrency(_walletHardwareRestoreVM.type).normalizedIconPath ??
|
||||
walletTypeToCryptoCurrency(_walletHardwareRestoreVM.type).iconPath ??
|
||||
'',
|
||||
height: 24,
|
||||
width: 24,
|
||||
|
||||
@@ -143,7 +143,7 @@ class WalletTypeFormState extends State<WalletTypeForm> {
|
||||
child: SelectButton(
|
||||
key: ValueKey('new_wallet_type_${type.name}_button_key'),
|
||||
image: Image.asset(
|
||||
walletTypeToCryptoCurrency(type).normalizedIconPath ?? '',
|
||||
walletTypeToCryptoCurrency(type).iconPath ?? '',
|
||||
height: 24,
|
||||
width: 24,
|
||||
),
|
||||
|
||||
@@ -95,7 +95,7 @@ class WalletGroupsDisplayBody extends StatelessWidget {
|
||||
isSelected:
|
||||
walletGroupsDisplayViewModel.selectedSingleWallet == wallet,
|
||||
leadingWidget: Image.asset(
|
||||
walletTypeToCryptoCurrency(wallet.type).normalizedIconPath!,
|
||||
walletTypeToCryptoCurrency(wallet.type).iconPath!,
|
||||
width: 32,
|
||||
height: 32,
|
||||
),
|
||||
|
||||
@@ -123,7 +123,7 @@ class GroupedWalletExpansionTile extends StatelessWidget {
|
||||
: SizedBox(width: 7),
|
||||
SizedBox(width: 24),
|
||||
Image.asset(
|
||||
walletTypeToCryptoCurrency(item.type).normalizedIconPath!,
|
||||
walletTypeToCryptoCurrency(item.type).iconPath!,
|
||||
width: 32,
|
||||
height: 32,
|
||||
),
|
||||
|
||||