mirror of
https://github.com/cake-tech/cake_wallet.git
synced 2024-12-23 20:19:25 +00:00
- Separate and organize default erc20 tokens
- Fix scrolling - Add token placeholder images in picker - Sort disabled tokens alphabetically
This commit is contained in:
parent
6bbe95fa5e
commit
3713fb45f2
4 changed files with 322 additions and 210 deletions
|
@ -38,6 +38,21 @@ class Erc20Token extends CryptoCurrency with HiveObjectMixin {
|
|||
iconPath: iconPath,
|
||||
);
|
||||
|
||||
Erc20Token.copyWith(Erc20Token other, String? icon)
|
||||
: this.name = other.name,
|
||||
this.symbol = other.symbol,
|
||||
this.contractAddress = other.contractAddress,
|
||||
this.decimal = other.decimal,
|
||||
this._enabled = other.enabled,
|
||||
this.iconPath = icon,
|
||||
super(
|
||||
name: other.name,
|
||||
title: other.symbol.toUpperCase(),
|
||||
fullName: other.name,
|
||||
tag: "ETH",
|
||||
iconPath: icon,
|
||||
);
|
||||
|
||||
static const typeId = 12;
|
||||
static const boxName = 'Erc20Tokens';
|
||||
|
||||
|
|
295
cw_ethereum/lib/default_erc20_tokens.dart
Normal file
295
cw_ethereum/lib/default_erc20_tokens.dart
Normal file
|
@ -0,0 +1,295 @@
|
|||
import 'package:cw_core/crypto_currency.dart';
|
||||
import 'package:cw_core/erc20_token.dart';
|
||||
|
||||
class DefaultErc20Tokens {
|
||||
final List<Erc20Token> _defaultTokens = [
|
||||
Erc20Token(
|
||||
name: "USD Coin",
|
||||
symbol: "USDC",
|
||||
contractAddress: "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
|
||||
decimal: 6,
|
||||
enabled: true,
|
||||
),
|
||||
Erc20Token(
|
||||
name: "USDT Tether",
|
||||
symbol: "USDT",
|
||||
contractAddress: "0xdac17f958d2ee523a2206206994597c13d831ec7",
|
||||
decimal: 6,
|
||||
enabled: true,
|
||||
),
|
||||
Erc20Token(
|
||||
name: "Dai",
|
||||
symbol: "DAI",
|
||||
contractAddress: "0x6B175474E89094C44Da98b954EedeAC495271d0F",
|
||||
decimal: 18,
|
||||
enabled: true,
|
||||
),
|
||||
Erc20Token(
|
||||
name: "Wrapped Ether",
|
||||
symbol: "WETH",
|
||||
contractAddress: "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
|
||||
decimal: 18,
|
||||
enabled: false,
|
||||
),
|
||||
Erc20Token(
|
||||
name: "Pepe",
|
||||
symbol: "PEPE",
|
||||
contractAddress: "0x6982508145454ce325ddbe47a25d4ec3d2311933",
|
||||
decimal: 18,
|
||||
enabled: false,
|
||||
),
|
||||
Erc20Token(
|
||||
name: "SHIBA INU",
|
||||
symbol: "SHIB",
|
||||
contractAddress: "0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce",
|
||||
decimal: 18,
|
||||
enabled: false,
|
||||
),
|
||||
Erc20Token(
|
||||
name: "ApeCoin",
|
||||
symbol: "APE",
|
||||
contractAddress: "0x4d224452801aced8b2f0aebe155379bb5d594381",
|
||||
decimal: 18,
|
||||
enabled: false,
|
||||
),
|
||||
Erc20Token(
|
||||
name: "Matic Token",
|
||||
symbol: "MATIC",
|
||||
contractAddress: "0x7D1AfA7B718fb893dB30A3aBc0Cfc608AaCfeBB0",
|
||||
decimal: 18,
|
||||
enabled: false,
|
||||
),
|
||||
Erc20Token(
|
||||
name: "Wrapped BTC",
|
||||
symbol: "WBTC",
|
||||
contractAddress: "0x2260fac5e5542a773aa44fbcfedf7c193bc2c599",
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
),
|
||||
Erc20Token(
|
||||
name: "Gitcoin",
|
||||
symbol: "GTC",
|
||||
contractAddress: "0xde30da39c46104798bb5aa3fe8b9e0e1f348163f",
|
||||
decimal: 18,
|
||||
enabled: false,
|
||||
),
|
||||
Erc20Token(
|
||||
name: "Compound",
|
||||
symbol: "COMP",
|
||||
contractAddress: "0xc00e94cb662c3520282e6f5717214004a7f26888",
|
||||
decimal: 18,
|
||||
enabled: false,
|
||||
),
|
||||
Erc20Token(
|
||||
name: "Aave Token",
|
||||
symbol: "AAVE",
|
||||
contractAddress: "0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9",
|
||||
decimal: 18,
|
||||
enabled: false,
|
||||
),
|
||||
Erc20Token(
|
||||
name: "Uniswap",
|
||||
symbol: "UNI",
|
||||
contractAddress: "0x1f9840a85d5af5bf1d1762f925bdaddc4201f984",
|
||||
decimal: 18,
|
||||
enabled: false,
|
||||
),
|
||||
Erc20Token(
|
||||
name: "Decentraland",
|
||||
symbol: "MANA",
|
||||
contractAddress: "0x0F5D2fB29fb7d3CFeE444a200298f468908cC942",
|
||||
decimal: 18,
|
||||
enabled: false,
|
||||
),
|
||||
Erc20Token(
|
||||
name: "Storj",
|
||||
symbol: "STORJ",
|
||||
contractAddress: "0xb64ef51c888972c908cfacf59b47c1afbc0ab8ac",
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
),
|
||||
Erc20Token(
|
||||
name: "Maker",
|
||||
symbol: "MKR",
|
||||
contractAddress: "0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2",
|
||||
decimal: 18,
|
||||
enabled: false,
|
||||
),
|
||||
Erc20Token(
|
||||
name: "Orchid",
|
||||
symbol: "OXT",
|
||||
contractAddress: "0x4575f41308EC1483f3d399aa9a2826d74Da13Deb",
|
||||
decimal: 18,
|
||||
enabled: false,
|
||||
),
|
||||
Erc20Token(
|
||||
name: "Paxos Gold",
|
||||
symbol: "PAXG",
|
||||
contractAddress: "0x45804880De22913dAFE09f4980848ECE6EcbAf78",
|
||||
decimal: 18,
|
||||
enabled: false,
|
||||
),
|
||||
Erc20Token(
|
||||
name: "Binance Coin",
|
||||
symbol: "BNB",
|
||||
contractAddress: "0xB8c77482e45F1F44dE1745F52C74426C631bDD52",
|
||||
decimal: 18,
|
||||
enabled: true,
|
||||
),
|
||||
Erc20Token(
|
||||
name: "stETH",
|
||||
symbol: "stETH",
|
||||
contractAddress: "0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84",
|
||||
decimal: 18,
|
||||
enabled: false,
|
||||
),
|
||||
Erc20Token(
|
||||
name: "Lido DAO",
|
||||
symbol: "LDO",
|
||||
contractAddress: "0x5A98FcBEA516Cf06857215779Fd812CA3beF1B32",
|
||||
decimal: 18,
|
||||
enabled: false,
|
||||
),
|
||||
Erc20Token(
|
||||
name: "Arbitrum",
|
||||
symbol: "ARB",
|
||||
contractAddress: "0xB50721BCf8d664c30412Cfbc6cf7a15145234ad1",
|
||||
decimal: 18,
|
||||
enabled: false,
|
||||
),
|
||||
Erc20Token(
|
||||
name: "Graph Token",
|
||||
symbol: "GRT",
|
||||
contractAddress: "0xc944E90C64B2c07662A292be6244BDf05Cda44a7",
|
||||
decimal: 18,
|
||||
enabled: false,
|
||||
),
|
||||
Erc20Token(
|
||||
name: "Frax",
|
||||
symbol: "FRAX",
|
||||
contractAddress: "0x853d955aCEf822Db058eb8505911ED77F175b99e",
|
||||
decimal: 18,
|
||||
enabled: false,
|
||||
),
|
||||
Erc20Token(
|
||||
name: "Gemini dollar",
|
||||
symbol: "GUSD",
|
||||
contractAddress: "0x056Fd409E1d7A124BD7017459dFEa2F387b6d5Cd",
|
||||
decimal: 2,
|
||||
enabled: false,
|
||||
),
|
||||
Erc20Token(
|
||||
name: "Compound Ether",
|
||||
symbol: "cETH",
|
||||
contractAddress: "0x4Ddc2D193948926D02f9B1fE9e1daa0718270ED5",
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
),
|
||||
Erc20Token(
|
||||
name: "Binance USD",
|
||||
symbol: "BUSD",
|
||||
contractAddress: "0x4Fabb145d64652a948d72533023f6E7A623C7C53",
|
||||
decimal: 18,
|
||||
enabled: false,
|
||||
),
|
||||
Erc20Token(
|
||||
name: "TrueUSD",
|
||||
symbol: "TUSD",
|
||||
contractAddress: "0x0000000000085d4780B73119b644AE5ecd22b376",
|
||||
decimal: 18,
|
||||
enabled: false,
|
||||
),
|
||||
Erc20Token(
|
||||
name: "Cronos Coin",
|
||||
symbol: "CRO",
|
||||
contractAddress: "0xA0b73E1Ff0B80914AB6fe0444E65848C4C34450b",
|
||||
decimal: 8,
|
||||
enabled: false,
|
||||
),
|
||||
Erc20Token(
|
||||
name: "Pax Dollar",
|
||||
symbol: "USDP",
|
||||
contractAddress: "0x8E870D67F660D95d5be530380D0eC0bd388289E1",
|
||||
decimal: 18,
|
||||
enabled: false,
|
||||
),
|
||||
Erc20Token(
|
||||
name: "Fantom Token",
|
||||
symbol: "FTM",
|
||||
contractAddress: "0x4E15361FD6b4BB609Fa63C81A2be19d873717870",
|
||||
decimal: 18,
|
||||
enabled: false,
|
||||
),
|
||||
Erc20Token(
|
||||
name: "BitTorrent",
|
||||
symbol: "BTT",
|
||||
contractAddress: "0xC669928185DbCE49d2230CC9B0979BE6DC797957",
|
||||
decimal: 18,
|
||||
enabled: false,
|
||||
),
|
||||
Erc20Token(
|
||||
name: "Nexo",
|
||||
symbol: "NEXO",
|
||||
contractAddress: "0xB62132e35a6c13ee1EE0f84dC5d40bad8d815206",
|
||||
decimal: 18,
|
||||
enabled: false,
|
||||
),
|
||||
Erc20Token(
|
||||
name: "dYdX",
|
||||
symbol: "DYDX",
|
||||
contractAddress: "0x92D6C1e31e14520e676a687F0a93788B716BEff5",
|
||||
decimal: 18,
|
||||
enabled: false,
|
||||
),
|
||||
Erc20Token(
|
||||
name: "PancakeSwap Token",
|
||||
symbol: "Cake",
|
||||
contractAddress: "0x152649eA73beAb28c5b49B26eb48f7EAD6d4c898",
|
||||
decimal: 18,
|
||||
enabled: false,
|
||||
),
|
||||
Erc20Token(
|
||||
name: "BAT",
|
||||
symbol: "BAT",
|
||||
contractAddress: "0x0D8775F648430679A709E98d2b0Cb6250d2887EF",
|
||||
decimal: 18,
|
||||
enabled: false,
|
||||
),
|
||||
Erc20Token(
|
||||
name: "1INCH Token",
|
||||
symbol: "1INCH",
|
||||
contractAddress: "0x111111111117dC0aa78b770fA6A738034120C302",
|
||||
decimal: 18,
|
||||
enabled: false,
|
||||
),
|
||||
Erc20Token(
|
||||
name: "Ethereum Name Service",
|
||||
symbol: "ENS",
|
||||
contractAddress: "0xC18360217D8F7Ab5e7c516566761Ea12Ce7F9D72",
|
||||
decimal: 18,
|
||||
enabled: false,
|
||||
),
|
||||
Erc20Token(
|
||||
name: "ZRX",
|
||||
symbol: "ZRX",
|
||||
contractAddress: "0xE41d2489571d322189246DaFA5ebDe1F4699F498",
|
||||
decimal: 18,
|
||||
enabled: false,
|
||||
),
|
||||
];
|
||||
|
||||
List<Erc20Token> get initialErc20Tokens => _defaultTokens.map((token) {
|
||||
String? iconPath;
|
||||
try {
|
||||
iconPath = CryptoCurrency.all
|
||||
.firstWhere((element) => element.title.toUpperCase() == token.symbol.toUpperCase())
|
||||
.iconPath;
|
||||
} catch (_) {}
|
||||
|
||||
if (iconPath != null) {
|
||||
return Erc20Token.copyWith(token, iconPath);
|
||||
}
|
||||
|
||||
return token;
|
||||
}).toList();
|
||||
}
|
|
@ -10,6 +10,7 @@ import 'package:cw_core/transaction_priority.dart';
|
|||
import 'package:cw_core/wallet_addresses.dart';
|
||||
import 'package:cw_core/wallet_base.dart';
|
||||
import 'package:cw_core/wallet_info.dart';
|
||||
import 'package:cw_ethereum/default_erc20_tokens.dart';
|
||||
import 'package:cw_ethereum/ethereum_balance.dart';
|
||||
import 'package:cw_ethereum/ethereum_client.dart';
|
||||
import 'package:cw_ethereum/ethereum_exceptions.dart';
|
||||
|
@ -342,215 +343,8 @@ abstract class EthereumWalletBase
|
|||
}
|
||||
|
||||
void addInitialTokens() {
|
||||
final Map<CryptoCurrency, Map<String, dynamic>> _initialErc20Currencies = {
|
||||
CryptoCurrency.usdc: {
|
||||
'contractAddress': "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
|
||||
'decimal': 6,
|
||||
'enabled': true,
|
||||
},
|
||||
CryptoCurrency.usdterc20: {
|
||||
'contractAddress': "0xdac17f958d2ee523a2206206994597c13d831ec7",
|
||||
'decimal': 6,
|
||||
'enabled': true,
|
||||
},
|
||||
CryptoCurrency.dai: {
|
||||
'contractAddress': "0x6B175474E89094C44Da98b954EedeAC495271d0F",
|
||||
'decimal': 18,
|
||||
'enabled': true,
|
||||
},
|
||||
CryptoCurrency.weth: {
|
||||
'contractAddress': "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
|
||||
'decimal': 18,
|
||||
'enabled': false,
|
||||
},
|
||||
CryptoCurrency.pepe: {
|
||||
'contractAddress': "0x6982508145454ce325ddbe47a25d4ec3d2311933",
|
||||
'decimal': 18,
|
||||
'enabled': false,
|
||||
},
|
||||
CryptoCurrency.shib: {
|
||||
'contractAddress': "0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce",
|
||||
'decimal': 18,
|
||||
'enabled': false,
|
||||
},
|
||||
CryptoCurrency.ape: {
|
||||
'contractAddress': "0x4d224452801aced8b2f0aebe155379bb5d594381",
|
||||
'decimal': 18,
|
||||
'enabled': false,
|
||||
},
|
||||
CryptoCurrency.matic: {
|
||||
'contractAddress': "0x7d1afa7b718fb893db30a3abc0cfc608aacfebb0",
|
||||
'decimal': 18,
|
||||
'enabled': false,
|
||||
},
|
||||
CryptoCurrency.wbtc: {
|
||||
'contractAddress': "0x2260fac5e5542a773aa44fbcfedf7c193bc2c599",
|
||||
'decimal': 8,
|
||||
'enabled': false,
|
||||
},
|
||||
CryptoCurrency.gtc: {
|
||||
'contractAddress': "0xde30da39c46104798bb5aa3fe8b9e0e1f348163f",
|
||||
'decimal': 18,
|
||||
'enabled': false,
|
||||
},
|
||||
CryptoCurrency.comp: {
|
||||
'contractAddress': "0xc00e94cb662c3520282e6f5717214004a7f26888",
|
||||
'decimal': 18,
|
||||
'enabled': false,
|
||||
},
|
||||
CryptoCurrency.aave: {
|
||||
'contractAddress': "0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9",
|
||||
'decimal': 18,
|
||||
'enabled': false,
|
||||
},
|
||||
CryptoCurrency.uni: {
|
||||
'contractAddress': "0x1f9840a85d5af5bf1d1762f925bdaddc4201f984",
|
||||
'decimal': 18,
|
||||
'enabled': false,
|
||||
},
|
||||
CryptoCurrency.mana: {
|
||||
'contractAddress': "0x0f5d2fb29fb7d3cfee444a200298f468908cc942",
|
||||
'decimal': 18,
|
||||
'enabled': false,
|
||||
},
|
||||
CryptoCurrency.storj: {
|
||||
'contractAddress': "0xb64ef51c888972c908cfacf59b47c1afbc0ab8ac",
|
||||
'decimal': 8,
|
||||
'enabled': false,
|
||||
},
|
||||
CryptoCurrency.mkr: {
|
||||
'contractAddress': "0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2",
|
||||
'decimal': 18,
|
||||
'enabled': false,
|
||||
},
|
||||
CryptoCurrency.oxt: {
|
||||
'contractAddress': "0x4575f41308EC1483f3d399aa9a2826d74Da13Deb",
|
||||
'decimal': 18,
|
||||
'enabled': false,
|
||||
},
|
||||
CryptoCurrency.paxg: {
|
||||
'contractAddress': "0x45804880De22913dAFE09f4980848ECE6EcbAf78",
|
||||
'decimal': 18,
|
||||
'enabled': false,
|
||||
},
|
||||
CryptoCurrency.bnb: {
|
||||
'contractAddress': "0xB8c77482e45F1F44dE1745F52C74426C631bDD52",
|
||||
'decimal': 18,
|
||||
'enabled': true,
|
||||
},
|
||||
CryptoCurrency.steth: {
|
||||
'contractAddress': "0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84",
|
||||
'decimal': 18,
|
||||
'enabled': false,
|
||||
},
|
||||
CryptoCurrency.ldo: {
|
||||
'contractAddress': "0x5A98FcBEA516Cf06857215779Fd812CA3beF1B32",
|
||||
'decimal': 18,
|
||||
'enabled': false,
|
||||
},
|
||||
CryptoCurrency.arb: {
|
||||
'contractAddress': "0xB50721BCf8d664c30412Cfbc6cf7a15145234ad1",
|
||||
'decimal': 18,
|
||||
'enabled': false,
|
||||
},
|
||||
CryptoCurrency.grt: {
|
||||
'contractAddress': "0xc944E90C64B2c07662A292be6244BDf05Cda44a7",
|
||||
'decimal': 18,
|
||||
'enabled': false,
|
||||
},
|
||||
CryptoCurrency.frax: {
|
||||
'contractAddress': "0x853d955aCEf822Db058eb8505911ED77F175b99e",
|
||||
'decimal': 18,
|
||||
'enabled': false,
|
||||
},
|
||||
CryptoCurrency.gusd: {
|
||||
'contractAddress': "0x056Fd409E1d7A124BD7017459dFEa2F387b6d5Cd",
|
||||
'decimal': 18,
|
||||
'enabled': false,
|
||||
},
|
||||
CryptoCurrency.ceth: {
|
||||
'contractAddress': "0x4Ddc2D193948926D02f9B1fE9e1daa0718270ED5",
|
||||
'decimal': 8,
|
||||
'enabled': false,
|
||||
},
|
||||
CryptoCurrency.busd: {
|
||||
'contractAddress': "0x4Fabb145d64652a948d72533023f6E7A623C7C53",
|
||||
'decimal': 18,
|
||||
'enabled': false,
|
||||
},
|
||||
CryptoCurrency.tusd: {
|
||||
'contractAddress': "0x0000000000085d4780B73119b644AE5ecd22b376",
|
||||
'decimal': 18,
|
||||
'enabled': false,
|
||||
},
|
||||
CryptoCurrency.cro: {
|
||||
'contractAddress': "0xA0b73E1Ff0B80914AB6fe0444E65848C4C34450b",
|
||||
'decimal': 8,
|
||||
'enabled': false,
|
||||
},
|
||||
CryptoCurrency.usdp: {
|
||||
'contractAddress': "0x8E870D67F660D95d5be530380D0eC0bd388289E1",
|
||||
'decimal': 18,
|
||||
'enabled': false,
|
||||
},
|
||||
CryptoCurrency.ftm: {
|
||||
'contractAddress': "0x4E15361FD6b4BB609Fa63C81A2be19d873717870",
|
||||
'decimal': 18,
|
||||
'enabled': false,
|
||||
},
|
||||
CryptoCurrency.btt: {
|
||||
'contractAddress': "0xC669928185DbCE49d2230CC9B0979BE6DC797957",
|
||||
'decimal': 18,
|
||||
'enabled': false,
|
||||
},
|
||||
CryptoCurrency.nexo: {
|
||||
'contractAddress': "0xB62132e35a6c13ee1EE0f84dC5d40bad8d815206",
|
||||
'decimal': 18,
|
||||
'enabled': false,
|
||||
},
|
||||
CryptoCurrency.dydx: {
|
||||
'contractAddress': "0x92D6C1e31e14520e676a687F0a93788B716BEff5",
|
||||
'decimal': 18,
|
||||
'enabled': false,
|
||||
},
|
||||
CryptoCurrency.cake: {
|
||||
'contractAddress': "0x152649eA73beAb28c5b49B26eb48f7EAD6d4c898",
|
||||
'decimal': 18,
|
||||
'enabled': false,
|
||||
},
|
||||
CryptoCurrency.bat: {
|
||||
'contractAddress': "0x0D8775F648430679A709E98d2b0Cb6250d2887EF",
|
||||
'decimal': 18,
|
||||
'enabled': false,
|
||||
},
|
||||
CryptoCurrency.1inch: {
|
||||
'contractAddress': "0x111111111117dC0aa78b770fA6A738034120C302",
|
||||
'decimal': 18,
|
||||
'enabled': false,
|
||||
},
|
||||
CryptoCurrency.ens: {
|
||||
'contractAddress': "0xC18360217D8F7Ab5e7c516566761Ea12Ce7F9D72",
|
||||
'decimal': 18,
|
||||
'enabled': false,
|
||||
},
|
||||
CryptoCurrency.zrx: {
|
||||
'contractAddress': "0xE41d2489571d322189246DaFA5ebDe1F4699F498",
|
||||
'decimal': 18,
|
||||
'enabled': false,
|
||||
},
|
||||
};
|
||||
final initialErc20Tokens = DefaultErc20Tokens().initialErc20Tokens;
|
||||
|
||||
for (var currency in _initialErc20Currencies.keys) {
|
||||
erc20TokensBox.put(
|
||||
_initialErc20Currencies[currency]!['contractAddress'],
|
||||
Erc20Token(
|
||||
name: currency.fullName ?? currency.title,
|
||||
symbol: currency.title,
|
||||
contractAddress: _initialErc20Currencies[currency]!['contractAddress'],
|
||||
decimal: _initialErc20Currencies[currency]!['decimal'],
|
||||
enabled: _initialErc20Currencies[currency]!['enabled'] ?? true,
|
||||
iconPath: currency.iconPath,
|
||||
));
|
||||
}
|
||||
initialErc20Tokens.forEach((token) => erc20TokensBox.put(token.contractAddress, token));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -75,10 +75,18 @@ abstract class HomeSettingsViewModelBase with Store {
|
|||
|
||||
@action
|
||||
void _updateTokensList() {
|
||||
int _sortFunc(e1, e2) {
|
||||
int _sortFunc(Erc20Token e1, Erc20Token e2) {
|
||||
int index1 = _balanceViewModel.formattedBalances.indexWhere((element) => element.asset == e1);
|
||||
int index2 = _balanceViewModel.formattedBalances.indexWhere((element) => element.asset == e2);
|
||||
|
||||
if (e1.enabled && !e2.enabled) {
|
||||
return -1;
|
||||
} else if (e2.enabled && !e1.enabled) {
|
||||
return 1;
|
||||
} else if (!e1.enabled && !e2.enabled) { // if both are disabled then sort alphabetically
|
||||
return e1.name.compareTo(e2.name);
|
||||
}
|
||||
|
||||
return index1.compareTo(index2);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue