Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/chains improvement #1955

Open
wants to merge 6 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion lib/datasource/local/settings_storage.dart
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,14 @@ class _SettingsStorage {

String get selectedFiatCurrency => _preferences.getString(_kSelectedFiatCurrency) ?? getPlatformCurrency();

TokenModel get selectedToken => TokenModel.fromId(_preferences.getString(_kSelectedToken) ?? seedsToken.id);
TokenModel get selectedToken {
var storedValue = _preferences.getString(_kSelectedToken);
// Compatibility with old format: [contract]#[symbol]
if (storedValue != null && storedValue.split("#").length < 3) {
storedValue = "$storedValue#telos";
}
return TokenModel.fromId(storedValue ?? seedsToken.id);
}

bool get inRecoveryMode => _preferences.getBool(_kInRecoveryMode) ?? false;

Expand Down
2 changes: 1 addition & 1 deletion lib/datasource/remote/api/eos_repo/eos_repository.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import 'package:async/async.dart';
import 'package:flutter_dotenv/flutter_dotenv.dart';
import 'package:seeds/crypto/eosdart/eosdart.dart';
import 'package:seeds/datasource/local/settings_storage.dart';
import 'package:seeds/datasource/remote/api/http_repo/seeds_scopes.dart';
import 'package:seeds/datasource/remote/api/http_repo/seeds_smart_contract_accounts.dart';
import 'package:seeds/datasource/remote/firebase/firebase_remote_config.dart';

abstract class EosRepository {
Expand Down
2 changes: 1 addition & 1 deletion lib/datasource/remote/api/flag_repository.dart
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import 'package:seeds/crypto/eosdart/eosdart.dart';
import 'package:seeds/datasource/remote/api/eos_repo/eos_repository.dart';
import 'package:seeds/datasource/remote/api/eos_repo/seeds_eos_actions.dart';
import 'package:seeds/datasource/remote/api/http_repo/http_repository.dart';
import 'package:seeds/datasource/remote/api/http_repo/seeds_scopes.dart';
import 'package:seeds/datasource/remote/api/http_repo/seeds_smart_contract_accounts.dart';
import 'package:seeds/datasource/remote/api/http_repo/seeds_tables.dart';
import 'package:seeds/datasource/remote/model/flag_model.dart';
import 'package:seeds/datasource/remote/model/transaction_response.dart';
Expand Down
2 changes: 1 addition & 1 deletion lib/datasource/remote/api/guardians_repository.dart
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import 'package:seeds/datasource/local/settings_storage.dart';
import 'package:seeds/datasource/remote/api/eos_repo/eos_repository.dart';
import 'package:seeds/datasource/remote/api/eos_repo/seeds_eos_actions.dart';
import 'package:seeds/datasource/remote/api/http_repo/http_repository.dart';
import 'package:seeds/datasource/remote/api/http_repo/seeds_scopes.dart';
import 'package:seeds/datasource/remote/api/http_repo/seeds_smart_contract_accounts.dart';
import 'package:seeds/datasource/remote/api/http_repo/seeds_tables.dart';
import 'package:seeds/datasource/remote/firebase/firebase_remote_config.dart';
import 'package:seeds/datasource/remote/model/account_guardians_model.dart';
Expand Down
2 changes: 1 addition & 1 deletion lib/datasource/remote/api/http_repo/http_repository.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import 'dart:async';

import 'package:async/async.dart';
import 'package:http/http.dart' as http;
import 'package:seeds/datasource/remote/api/http_repo/seeds_scopes.dart';
import 'package:seeds/datasource/remote/api/http_repo/seeds_smart_contract_accounts.dart';
import 'package:seeds/datasource/remote/api/http_repo/seeds_tables.dart';
import 'package:seeds/datasource/remote/firebase/firebase_remote_config.dart';
import 'package:seeds/datasource/remote/util/response_extension.dart';
Expand Down
26 changes: 26 additions & 0 deletions lib/datasource/remote/api/http_repo/seeds_chain_names.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
const String _chainTelos = 'telos';
Copy link
Collaborator

@chuck-h chuck-h Jun 30, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lower case "telos" makes sense but we have a conflict with legacy code in seeds.tokensmaster.cpp and the existing tmastr.seeds table entries which use "Telos".

Suggested fix would be to patch a conditional expression here which specifically converts "Telos" to "telos".

chainName: parsedJson["chain"]!,

e.g.

     chainName: parsedJson["chain"]! == "Telos" ? "telos" : parsedJson["chain"]!, // fix legacy capitalization

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this an actual bug or ... ?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We need to choose whether "telos" or "Telos" is the string we use in TokenModel.chainName.

  1. If "Telos" (capitalized), change
  2. If "telos" (lowercase), make the patch so that legacy metadata containing "Telos" is normalized.

So yes, it's a bug that will appear as soon as we start using this PR code.

const String _chainTelosTest = 'telosTestnet';
const String _chainEos = 'eos';
const String _chainEosTest = 'eosTestnet';

enum SeedsChains {
telos,
telosTestnet,
eos,
eosTestnet,
}

extension SeedsChainsExtension on SeedsChains {
String get value {
switch (this) {
case SeedsChains.telos:
return _chainTelos;
case SeedsChains.telosTestnet:
return _chainTelosTest;
case SeedsChains.eos:
return _chainEos;
case SeedsChains.eosTestnet:
return _chainEosTest;
}
}
}
2 changes: 1 addition & 1 deletion lib/datasource/remote/api/invite_repository.dart
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import 'package:http/http.dart' as http;
import 'package:seeds/datasource/remote/api/eos_repo/eos_repository.dart';
import 'package:seeds/datasource/remote/api/eos_repo/seeds_eos_actions.dart';
import 'package:seeds/datasource/remote/api/http_repo/http_repository.dart';
import 'package:seeds/datasource/remote/api/http_repo/seeds_scopes.dart';
import 'package:seeds/datasource/remote/api/http_repo/seeds_smart_contract_accounts.dart';
import 'package:seeds/datasource/remote/api/http_repo/seeds_tables.dart';
import 'package:seeds/datasource/remote/datamappers/toDomainInviteModel.dart';
import 'package:seeds/datasource/remote/model/invite_model.dart';
Expand Down
2 changes: 1 addition & 1 deletion lib/datasource/remote/api/members_repository.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import 'package:async/async.dart';
import 'package:http/http.dart' as http;
import 'package:seeds/datasource/remote/api/http_repo/http_repository.dart';
import 'package:seeds/datasource/remote/api/http_repo/seeds_scopes.dart';
import 'package:seeds/datasource/remote/api/http_repo/seeds_smart_contract_accounts.dart';
import 'package:seeds/datasource/remote/api/http_repo/seeds_tables.dart';
import 'package:seeds/datasource/remote/model/profile_model.dart';

Expand Down
2 changes: 1 addition & 1 deletion lib/datasource/remote/api/planted_repository.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import 'package:async/async.dart';
import 'package:http/http.dart' as http;
import 'package:seeds/datasource/remote/api/http_repo/http_repository.dart';
import 'package:seeds/datasource/remote/api/http_repo/seeds_scopes.dart';
import 'package:seeds/datasource/remote/api/http_repo/seeds_smart_contract_accounts.dart';
import 'package:seeds/datasource/remote/api/http_repo/seeds_tables.dart';
import 'package:seeds/datasource/remote/model/planted_model.dart';
import 'package:seeds/datasource/remote/model/refund_model.dart';
Expand Down
2 changes: 1 addition & 1 deletion lib/datasource/remote/api/profile_repository.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import 'package:seeds/crypto/eosdart/eosdart.dart';
import 'package:seeds/datasource/remote/api/eos_repo/eos_repository.dart';
import 'package:seeds/datasource/remote/api/eos_repo/seeds_eos_actions.dart';
import 'package:seeds/datasource/remote/api/http_repo/http_repository.dart';
import 'package:seeds/datasource/remote/api/http_repo/seeds_scopes.dart';
import 'package:seeds/datasource/remote/api/http_repo/seeds_smart_contract_accounts.dart';
import 'package:seeds/datasource/remote/api/http_repo/seeds_tables.dart';
import 'package:seeds/datasource/remote/firebase/firebase_remote_config.dart';
import 'package:seeds/datasource/remote/model/organization_model.dart';
Expand Down
2 changes: 1 addition & 1 deletion lib/datasource/remote/api/proposals_repository.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import 'package:seeds/crypto/eosdart/eosdart.dart';
import 'package:seeds/datasource/remote/api/eos_repo/eos_repository.dart';
import 'package:seeds/datasource/remote/api/eos_repo/seeds_eos_actions.dart';
import 'package:seeds/datasource/remote/api/http_repo/http_repository.dart';
import 'package:seeds/datasource/remote/api/http_repo/seeds_scopes.dart';
import 'package:seeds/datasource/remote/api/http_repo/seeds_smart_contract_accounts.dart';
import 'package:seeds/datasource/remote/api/http_repo/seeds_tables.dart';
import 'package:seeds/datasource/remote/model/delegate_model.dart';
import 'package:seeds/datasource/remote/model/delegator_model.dart';
Expand Down
2 changes: 1 addition & 1 deletion lib/datasource/remote/api/rates_repository.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import 'package:async/async.dart';
import 'package:http/http.dart' as http;
import 'package:seeds/datasource/remote/api/http_repo/http_repository.dart';
import 'package:seeds/datasource/remote/api/http_repo/seeds_scopes.dart';
import 'package:seeds/datasource/remote/api/http_repo/seeds_smart_contract_accounts.dart';
import 'package:seeds/datasource/remote/api/http_repo/seeds_tables.dart';
import 'package:seeds/datasource/remote/model/fiat_rate_model.dart';
import 'package:seeds/datasource/remote/model/rate_model.dart';
Expand Down
2 changes: 1 addition & 1 deletion lib/datasource/remote/api/region_repository.dart
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import 'package:seeds/crypto/eosdart/eosdart.dart';
import 'package:seeds/datasource/remote/api/eos_repo/eos_repository.dart';
import 'package:seeds/datasource/remote/api/eos_repo/seeds_eos_actions.dart';
import 'package:seeds/datasource/remote/api/http_repo/http_repository.dart';
import 'package:seeds/datasource/remote/api/http_repo/seeds_scopes.dart';
import 'package:seeds/datasource/remote/api/http_repo/seeds_smart_contract_accounts.dart';
import 'package:seeds/datasource/remote/api/http_repo/seeds_tables.dart';
import 'package:seeds/datasource/remote/model/region_member_model.dart';
import 'package:seeds/datasource/remote/model/region_model.dart';
Expand Down
2 changes: 1 addition & 1 deletion lib/datasource/remote/api/seeds_history_repository.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import 'package:async/async.dart';
import 'package:http/http.dart' as http;
import 'package:seeds/datasource/remote/api/http_repo/http_repository.dart';
import 'package:seeds/datasource/remote/api/http_repo/seeds_scopes.dart';
import 'package:seeds/datasource/remote/api/http_repo/seeds_smart_contract_accounts.dart';
import 'package:seeds/datasource/remote/api/http_repo/seeds_tables.dart';
import 'package:seeds/datasource/remote/model/seeds_history_model.dart';

Expand Down
2 changes: 1 addition & 1 deletion lib/datasource/remote/api/tokenmodels_repository.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import 'package:async/async.dart';
import 'package:http/http.dart' as http;
import 'package:seeds/datasource/remote/api/http_repo/http_repository.dart';
import 'package:seeds/datasource/remote/api/http_repo/seeds_scopes.dart';
import 'package:seeds/datasource/remote/api/http_repo/seeds_smart_contract_accounts.dart';
import 'package:seeds/datasource/remote/api/http_repo/seeds_tables.dart';

/// Retrieve token metadata (used for display of currency cards etc) from
Expand Down
2 changes: 1 addition & 1 deletion lib/datasource/remote/api/voice_repository.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import 'package:async/async.dart';
import 'package:http/http.dart' as http;
import 'package:seeds/datasource/remote/api/http_repo/http_repository.dart';
import 'package:seeds/datasource/remote/api/http_repo/seeds_scopes.dart';
import 'package:seeds/datasource/remote/api/http_repo/seeds_smart_contract_accounts.dart';
import 'package:seeds/datasource/remote/api/http_repo/seeds_tables.dart';
import 'package:seeds/datasource/remote/model/voice_model.dart';

Expand Down
2 changes: 1 addition & 1 deletion lib/datasource/remote/api/vouch_repository.dart
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import 'package:seeds/crypto/eosdart/eosdart.dart';
import 'package:seeds/datasource/remote/api/eos_repo/eos_repository.dart';
import 'package:seeds/datasource/remote/api/eos_repo/seeds_eos_actions.dart';
import 'package:seeds/datasource/remote/api/http_repo/http_repository.dart';
import 'package:seeds/datasource/remote/api/http_repo/seeds_scopes.dart';
import 'package:seeds/datasource/remote/api/http_repo/seeds_smart_contract_accounts.dart';
import 'package:seeds/datasource/remote/api/http_repo/seeds_tables.dart';
import 'package:seeds/datasource/remote/model/transaction_response.dart';
import 'package:seeds/datasource/remote/model/vouch_model.dart';
Expand Down
90 changes: 42 additions & 48 deletions lib/datasource/remote/model/token_model.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@ import 'package:collection/collection.dart';
import 'package:equatable/equatable.dart';
import 'package:flutter/material.dart';
import 'package:json_schema2/json_schema2.dart';
import 'package:seeds/datasource/remote/api/http_repo/seeds_chain_names.dart';
import 'package:seeds/datasource/remote/api/tokenmodels_repository.dart';
import 'package:seeds/datasource/remote/firebase/firebase_remote_config.dart';
import 'package:seeds/domain-shared/shared_use_cases/get_token_models_use_case.dart';
import 'package:seeds/screens/wallet/components/tokens_cards/components/currency_info_card.dart';


class TokenModel extends Equatable {
static const seedsEcosysUsecase = 'seedsecosys';
static List<TokenModel> allTokens = [seedsToken];
Expand All @@ -24,19 +24,16 @@ class TokenModel extends Equatable {
final int precision;
final List<String>? usecases;

String get id => "$contract#$symbol";
String get id => "$contract#$symbol#$chainName";

ImageProvider get backgroundImage {
return
backgroundImageUrl.startsWith("assets") ?
AssetImage(backgroundImageUrl) as ImageProvider :
NetworkImage(backgroundImageUrl);
return backgroundImageUrl.startsWith("assets")
? AssetImage(backgroundImageUrl) as ImageProvider
: NetworkImage(backgroundImageUrl);
}

ImageProvider get logo {
return
logoUrl.startsWith("assets") ?
AssetImage(logoUrl) as ImageProvider :
NetworkImage(logoUrl);
return logoUrl.startsWith("assets") ? AssetImage(logoUrl) as ImageProvider : NetworkImage(logoUrl);
}

const TokenModel({
Expand All @@ -53,20 +50,20 @@ class TokenModel extends Equatable {

static Future<Result<void>> installSchema() async {
final result = await TokenModelsRepository().getSchema();
if(result.isValue) {
final tmastrSchemaMap = result.asValue!.value;
tmastrSchema = JsonSchema.createSchema(tmastrSchemaMap);
return Result.value(null);
}
print('Error getting Token Master schema from chain');
return result;
if (result.isValue) {
final tmastrSchemaMap = result.asValue!.value;
tmastrSchema = JsonSchema.createSchema(tmastrSchemaMap);
return Result.value(null);
}
print('Error getting Token Master schema from chain');
return result;
}

static TokenModel? fromJson(Map<String,dynamic> data) {
final Map<String,dynamic> parsedJson = json.decode(data["json"]);
static TokenModel? fromJson(Map<String, dynamic> data) {
final Map<String, dynamic> parsedJson = json.decode(data["json"]);
bool extendJson(String dataField, String jsonField) {
final jsonData = parsedJson[jsonField];
if( jsonData != null && jsonData != data[dataField] ) {
if (jsonData != null && jsonData != data[dataField]) {
print('${data[dataField]}: mismatched $dataField in json'
' $jsonData, ${data[dataField]}');
return false;
Expand All @@ -75,31 +72,32 @@ class TokenModel extends Equatable {
return true;
}
}
if (!( extendJson("chainName", "chain") &&
extendJson("contract", "account") &&
extendJson("symbolcode", "symbol") &&
extendJson("usecases", "usecases"))) {

if (!(extendJson("chainName", "chain") &&
extendJson("contract", "account") &&
extendJson("symbolcode", "symbol") &&
extendJson("usecases", "usecases"))) {
return null;
}
if(tmastrSchema == null) {
if (tmastrSchema == null) {
return null;
}
final validationErrors = tmastrSchema!.validateWithErrors(parsedJson);
if(validationErrors.isNotEmpty) {
if (validationErrors.isNotEmpty) {
print('${data["symbolcode"]}:\t${validationErrors.map((e) => e.toString())}');
return null;
}
return TokenModel(
chainName: parsedJson["chain"]!,
contract: parsedJson["account"]!,
symbol: parsedJson["symbol"]!,
name: parsedJson["name"]!,
logoUrl: parsedJson["logo"]!,
balanceSubTitle: parsedJson["subtitle"],
backgroundImageUrl: parsedJson["bg_image"] ?? CurrencyInfoCard.defaultBgImage,
precision: parsedJson["precision"] ?? 4,
usecases: parsedJson["usecases"],
);
chainName: parsedJson["chain"]!,
contract: parsedJson["account"]!,
symbol: parsedJson["symbol"]!,
name: parsedJson["name"]!,
logoUrl: parsedJson["logo"]!,
balanceSubTitle: parsedJson["subtitle"],
backgroundImageUrl: parsedJson["bg_image"] ?? CurrencyInfoCard.defaultBgImage,
precision: parsedJson["precision"] ?? 4,
usecases: parsedJson["usecases"],
);
}

factory TokenModel.fromId(String tokenId) {
Expand All @@ -120,22 +118,20 @@ class TokenModel extends Equatable {
static Future<void> updateModels(List<String> acceptList, [List<String>? infoList]) async {
final selector = TokenModelSelector(acceptList: acceptList, infoList: infoList);
final tokenListResult = await GetTokenModelsUseCase().run(selector);
if(tokenListResult.isError) {
if (tokenListResult.isError) {
return;
}
final tokenList = tokenListResult.asValue!.value;
for(final newtoken in tokenList) {
allTokens.removeWhere((token) => token.contract==newtoken.contract
&& token.chainName==newtoken.chainName
&& token.symbol==newtoken.symbol);
for (final newtoken in tokenList) {
allTokens.removeWhere((token) => token.id == newtoken.id);
}
allTokens.addAll(tokenList);
}

static Future<void> installModels(List<String> acceptList, [List<String>? infoList]) async {
if( remoteConfigurations.featureFlagTokenMasterListEnabled) {
if (remoteConfigurations.featureFlagTokenMasterListEnabled) {
final installResult = await installSchema();
if(installResult.isValue) {
if (installResult.isValue) {
allTokens = [seedsToken];
await updateModels(acceptList, infoList);
return;
Expand All @@ -145,18 +141,16 @@ class TokenModel extends Equatable {
}

static void pruneRemoving(List<String> useCaseList) {
allTokens.removeWhere((token) =>
token.usecases?.any((uc) => useCaseList.contains(uc)) ?? false);
allTokens.removeWhere((token) => token.usecases?.any((uc) => useCaseList.contains(uc)) ?? false);
}

static void pruneKeeping(List<String> useCaseList) {
allTokens.removeWhere((token) => !
(token.usecases?.any((uc) => useCaseList.contains(uc)) ?? false));
allTokens.removeWhere((token) => !(token.usecases?.any((uc) => useCaseList.contains(uc)) ?? false));
}
}

const seedsToken = TokenModel(
chainName: "Telos",
chainName: SeedsChains.telos.value,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems we can't use extensions in constant expressions. Ref explanation here: dart-lang/language#663

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe you need to update your flutter version?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh you're right - there's something weird going on with this PR.

contract: "token.seeds",
symbol: "SEEDS",
name: "Seeds",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import 'package:async/async.dart';
import 'package:seeds/datasource/local/settings_storage.dart';
import 'package:seeds/datasource/remote/api/http_repo/seeds_scopes.dart';
import 'package:seeds/datasource/remote/api/http_repo/seeds_smart_contract_accounts.dart';
import 'package:seeds/datasource/remote/api/members_repository.dart';
import 'package:seeds/datasource/remote/api/proposals_repository.dart';
import 'package:seeds/datasource/remote/model/delegate_model.dart';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import 'package:seeds/datasource/local/settings_storage.dart';
import 'package:seeds/datasource/remote/api/http_repo/seeds_scopes.dart';
import 'package:seeds/datasource/remote/api/http_repo/seeds_smart_contract_accounts.dart';
import 'package:seeds/datasource/remote/api/proposals_repository.dart';
import 'package:seeds/datasource/remote/model/delegate_model.dart';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import 'package:async/async.dart';
import 'package:seeds/datasource/local/settings_storage.dart';
import 'package:seeds/datasource/remote/api/http_repo/seeds_scopes.dart';
import 'package:seeds/datasource/remote/api/http_repo/seeds_smart_contract_accounts.dart';
import 'package:seeds/datasource/remote/api/members_repository.dart';
import 'package:seeds/datasource/remote/api/proposals_repository.dart';
import 'package:seeds/datasource/remote/model/delegator_model.dart';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import 'package:seeds/datasource/local/settings_storage.dart';
import 'package:seeds/datasource/remote/api/http_repo/seeds_scopes.dart';
import 'package:seeds/datasource/remote/api/http_repo/seeds_smart_contract_accounts.dart';
import 'package:seeds/datasource/remote/api/proposals_repository.dart';
import 'package:seeds/domain-shared/result_to_state_mapper.dart';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import 'package:seeds/datasource/local/settings_storage.dart';
import 'package:seeds/datasource/remote/api/http_repo/seeds_scopes.dart';
import 'package:seeds/datasource/remote/api/http_repo/seeds_smart_contract_accounts.dart';
import 'package:seeds/datasource/remote/api/proposals_repository.dart';
import 'package:seeds/domain-shared/result_to_state_mapper.dart';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import 'package:async/async.dart';
import 'package:seeds/datasource/local/settings_storage.dart';
import 'package:seeds/datasource/remote/api/http_repo/seeds_scopes.dart';
import 'package:seeds/datasource/remote/api/http_repo/seeds_smart_contract_accounts.dart';
import 'package:seeds/datasource/remote/api/http_repo/seeds_tables.dart';
import 'package:seeds/datasource/remote/api/planted_repository.dart';
import 'package:seeds/datasource/remote/api/profile_repository.dart';
Expand Down
Loading
Loading