From 3fd9de7aad758ed675c6b0e75db9822ab2246cc4 Mon Sep 17 00:00:00 2001 From: Gerardo Guijarro Date: Thu, 5 Oct 2023 10:12:15 -0600 Subject: [PATCH 1/6] Wallet team feedback --- lib/ui/profile/components/profile_view.dart | 3 +- .../failed/sign_transaction_failed_page.dart | 54 +++++++----- .../interactor/page_command.dart | 2 +- .../interactor/sign_transaction_bloc.dart | 10 ++- .../sign_transaction_bloc.freezed.dart | 86 ++++++++++++++----- .../sign_transaction_page.dart | 4 +- .../usecases/sign_transaction_use_case.dart | 6 +- pubspec.lock | 30 ++++--- 8 files changed, 135 insertions(+), 60 deletions(-) diff --git a/lib/ui/profile/components/profile_view.dart b/lib/ui/profile/components/profile_view.dart index 5b8f9906..d6de567d 100644 --- a/lib/ui/profile/components/profile_view.dart +++ b/lib/ui/profile/components/profile_view.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; +import 'package:get/get.dart'; import 'package:hypha_wallet/core/network/models/dao_data_model.dart'; import 'package:hypha_wallet/design/avatar_image/hypha_avatar_image.dart'; import 'package:hypha_wallet/design/background/hypha_half_background.dart'; @@ -84,7 +85,7 @@ class ProfileView extends StatelessWidget { const SizedBox(height: 4), Center( child: Text( - '@${state.profileData?.account ?? ''}', + '@${state.profileData?.account ?? ''} - ${state.profileData?.network.name.capitalizeFirst}', style: context.hyphaTextTheme.regular.copyWith(color: HyphaColors.lightBlue), ), ), diff --git a/lib/ui/sign_transaction/failed/sign_transaction_failed_page.dart b/lib/ui/sign_transaction/failed/sign_transaction_failed_page.dart index f96cf669..8a455ad2 100644 --- a/lib/ui/sign_transaction/failed/sign_transaction_failed_page.dart +++ b/lib/ui/sign_transaction/failed/sign_transaction_failed_page.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:get/get.dart'; +import 'package:hypha_wallet/core/error_handler/model/hypha_error.dart'; import 'package:hypha_wallet/design/background/hypha_half_background.dart'; import 'package:hypha_wallet/design/background/hypha_page_background.dart'; import 'package:hypha_wallet/design/bottom_component/hypha_safe_bottom_navigation_bar.dart'; @@ -10,7 +11,9 @@ import 'package:hypha_wallet/design/themes/extensions/theme_extension_provider.d import 'package:hypha_wallet/ui/bottom_navigation/hypha_bottom_navigation.dart'; class SignTransactionFailedPage extends StatelessWidget { - const SignTransactionFailedPage({super.key}); + final HyphaError error; + + const SignTransactionFailedPage(this.error, {super.key}); @override Widget build(BuildContext context) { @@ -47,27 +50,36 @@ class SignTransactionFailedPage extends StatelessWidget { body: Stack( children: [ const HyphaHalfBackground(backgroundColor: HyphaColors.error, showTopBar: false), - Column( - children: [ - const SizedBox(height: 80), - Image.asset('assets/images/warning.png', width: 240, height: 240), - Padding( - padding: const EdgeInsets.only(left: 45, right: 45, top: 24), - child: Text('Sorry...', textAlign: TextAlign.center, style: context.hyphaTextTheme.mediumTitles), - ), - const SizedBox(height: 16), - Padding(padding: const EdgeInsets.only(left: 45, right: 45), child: failedText), - const SizedBox(height: 16), - Padding( - padding: const EdgeInsets.only(left: 45, right: 45), - child: Text( - 'Please try again by triggering the transaction from the website or app. Sorry for the inconvenience.', - style: context.hyphaTextTheme.ralMediumBody.copyWith(color: HyphaColors.midGrey), - textAlign: TextAlign.center, - ), + SingleChildScrollView( + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 45), + child: Column( + children: [ + const SizedBox(height: 80), + Image.asset('assets/images/warning.png', width: 240, height: 240), + const SizedBox(height: 24), + Text('Sorry...', textAlign: TextAlign.center, style: context.hyphaTextTheme.mediumTitles), + const SizedBox(height: 16), + failedText, + const SizedBox(height: 16), + Text( + 'Please try again by triggering the transaction from the website or app. Sorry for the inconvenience.', + style: context.hyphaTextTheme.ralMediumBody.copyWith(color: HyphaColors.midGrey), + textAlign: TextAlign.center, + ), + const SizedBox(height: 16), + ExpansionTile( + title: const Text('Tap to see full error'), + children: [ + Padding( + padding: const EdgeInsets.only(bottom: 8), + child: Text(error.message, style: context.hyphaTextTheme.ralMediumBody), + ) + ], + ), + ], ), - const SizedBox(height: 16), - ], + ), ), ], ), diff --git a/lib/ui/sign_transaction/interactor/page_command.dart b/lib/ui/sign_transaction/interactor/page_command.dart index 944358a5..cc1a1174 100644 --- a/lib/ui/sign_transaction/interactor/page_command.dart +++ b/lib/ui/sign_transaction/interactor/page_command.dart @@ -4,6 +4,6 @@ part of 'sign_transaction_bloc.dart'; class PageCommand with _$PageCommand { const factory PageCommand.navigateToTransactionSuccess(SignSuccessTransactionType type) = _NavigateToTransactionSuccess; - const factory PageCommand.navigateToTransactionFailed() = _NavigateToTransactionFailed; + const factory PageCommand.navigateToTransactionFailed(ErrorResult errorResult) = _NavigateToTransactionFailed; const factory PageCommand.navigateAway() = _NavigateAway; } diff --git a/lib/ui/sign_transaction/interactor/sign_transaction_bloc.dart b/lib/ui/sign_transaction/interactor/sign_transaction_bloc.dart index 18786f4a..2ed4e942 100644 --- a/lib/ui/sign_transaction/interactor/sign_transaction_bloc.dart +++ b/lib/ui/sign_transaction/interactor/sign_transaction_bloc.dart @@ -3,15 +3,20 @@ import 'dart:async'; import 'package:bloc/bloc.dart'; import 'package:freezed_annotation/freezed_annotation.dart'; import 'package:hypha_wallet/core/crypto/seeds_esr/scan_qr_code_result_data.dart'; +import 'package:hypha_wallet/core/error_handler/model/hypha_error.dart'; import 'package:hypha_wallet/core/logging/log_helper.dart'; import 'package:hypha_wallet/ui/architecture/interactor/page_states.dart'; +import 'package:hypha_wallet/ui/architecture/result/result.dart'; import 'package:hypha_wallet/ui/sign_transaction/interactor/data/transaction_action_data.dart'; import 'package:hypha_wallet/ui/sign_transaction/success/sign_transaction_success_page.dart'; import 'package:hypha_wallet/ui/sign_transaction/usecases/sign_transaction_use_case.dart'; part 'page_command.dart'; + part 'sign_transaction_bloc.freezed.dart'; + part 'sign_transaction_event.dart'; + part 'sign_transaction_state.dart'; class SignTransactionBloc extends Bloc { @@ -41,10 +46,11 @@ class SignTransactionBloc extends Bloc({ required TResult Function(SignSuccessTransactionType type) navigateToTransactionSuccess, - required TResult Function() navigateToTransactionFailed, + required TResult Function(ErrorResult errorResult) + navigateToTransactionFailed, required TResult Function() navigateAway, }) => throw _privateConstructorUsedError; @@ -28,7 +29,8 @@ mixin _$PageCommand { TResult? whenOrNull({ TResult? Function(SignSuccessTransactionType type)? navigateToTransactionSuccess, - TResult? Function()? navigateToTransactionFailed, + TResult? Function(ErrorResult errorResult)? + navigateToTransactionFailed, TResult? Function()? navigateAway, }) => throw _privateConstructorUsedError; @@ -36,7 +38,8 @@ mixin _$PageCommand { TResult maybeWhen({ TResult Function(SignSuccessTransactionType type)? navigateToTransactionSuccess, - TResult Function()? navigateToTransactionFailed, + TResult Function(ErrorResult errorResult)? + navigateToTransactionFailed, TResult Function()? navigateAway, required TResult orElse(), }) => @@ -158,7 +161,8 @@ class _$_NavigateToTransactionSuccess implements _NavigateToTransactionSuccess { TResult when({ required TResult Function(SignSuccessTransactionType type) navigateToTransactionSuccess, - required TResult Function() navigateToTransactionFailed, + required TResult Function(ErrorResult errorResult) + navigateToTransactionFailed, required TResult Function() navigateAway, }) { return navigateToTransactionSuccess(type); @@ -169,7 +173,8 @@ class _$_NavigateToTransactionSuccess implements _NavigateToTransactionSuccess { TResult? whenOrNull({ TResult? Function(SignSuccessTransactionType type)? navigateToTransactionSuccess, - TResult? Function()? navigateToTransactionFailed, + TResult? Function(ErrorResult errorResult)? + navigateToTransactionFailed, TResult? Function()? navigateAway, }) { return navigateToTransactionSuccess?.call(type); @@ -180,7 +185,8 @@ class _$_NavigateToTransactionSuccess implements _NavigateToTransactionSuccess { TResult maybeWhen({ TResult Function(SignSuccessTransactionType type)? navigateToTransactionSuccess, - TResult Function()? navigateToTransactionFailed, + TResult Function(ErrorResult errorResult)? + navigateToTransactionFailed, TResult Function()? navigateAway, required TResult orElse(), }) { @@ -247,6 +253,8 @@ abstract class _$$_NavigateToTransactionFailedCopyWith<$Res> { _$_NavigateToTransactionFailed value, $Res Function(_$_NavigateToTransactionFailed) then) = __$$_NavigateToTransactionFailedCopyWithImpl<$Res>; + @useResult + $Res call({ErrorResult errorResult}); } /// @nodoc @@ -257,37 +265,63 @@ class __$$_NavigateToTransactionFailedCopyWithImpl<$Res> _$_NavigateToTransactionFailed _value, $Res Function(_$_NavigateToTransactionFailed) _then) : super(_value, _then); + + @pragma('vm:prefer-inline') + @override + $Res call({ + Object? errorResult = null, + }) { + return _then(_$_NavigateToTransactionFailed( + null == errorResult + ? _value.errorResult + : errorResult // ignore: cast_nullable_to_non_nullable + as ErrorResult, + )); + } } /// @nodoc class _$_NavigateToTransactionFailed implements _NavigateToTransactionFailed { - const _$_NavigateToTransactionFailed(); + const _$_NavigateToTransactionFailed(this.errorResult); + + @override + final ErrorResult errorResult; @override String toString() { - return 'PageCommand.navigateToTransactionFailed()'; + return 'PageCommand.navigateToTransactionFailed(errorResult: $errorResult)'; } @override bool operator ==(dynamic other) { return identical(this, other) || (other.runtimeType == runtimeType && - other is _$_NavigateToTransactionFailed); + other is _$_NavigateToTransactionFailed && + (identical(other.errorResult, errorResult) || + other.errorResult == errorResult)); } @override - int get hashCode => runtimeType.hashCode; + int get hashCode => Object.hash(runtimeType, errorResult); + + @JsonKey(ignore: true) + @override + @pragma('vm:prefer-inline') + _$$_NavigateToTransactionFailedCopyWith<_$_NavigateToTransactionFailed> + get copyWith => __$$_NavigateToTransactionFailedCopyWithImpl< + _$_NavigateToTransactionFailed>(this, _$identity); @override @optionalTypeArgs TResult when({ required TResult Function(SignSuccessTransactionType type) navigateToTransactionSuccess, - required TResult Function() navigateToTransactionFailed, + required TResult Function(ErrorResult errorResult) + navigateToTransactionFailed, required TResult Function() navigateAway, }) { - return navigateToTransactionFailed(); + return navigateToTransactionFailed(errorResult); } @override @@ -295,10 +329,11 @@ class _$_NavigateToTransactionFailed implements _NavigateToTransactionFailed { TResult? whenOrNull({ TResult? Function(SignSuccessTransactionType type)? navigateToTransactionSuccess, - TResult? Function()? navigateToTransactionFailed, + TResult? Function(ErrorResult errorResult)? + navigateToTransactionFailed, TResult? Function()? navigateAway, }) { - return navigateToTransactionFailed?.call(); + return navigateToTransactionFailed?.call(errorResult); } @override @@ -306,12 +341,13 @@ class _$_NavigateToTransactionFailed implements _NavigateToTransactionFailed { TResult maybeWhen({ TResult Function(SignSuccessTransactionType type)? navigateToTransactionSuccess, - TResult Function()? navigateToTransactionFailed, + TResult Function(ErrorResult errorResult)? + navigateToTransactionFailed, TResult Function()? navigateAway, required TResult orElse(), }) { if (navigateToTransactionFailed != null) { - return navigateToTransactionFailed(); + return navigateToTransactionFailed(errorResult); } return orElse(); } @@ -358,7 +394,14 @@ class _$_NavigateToTransactionFailed implements _NavigateToTransactionFailed { } abstract class _NavigateToTransactionFailed implements PageCommand { - const factory _NavigateToTransactionFailed() = _$_NavigateToTransactionFailed; + const factory _NavigateToTransactionFailed( + final ErrorResult errorResult) = + _$_NavigateToTransactionFailed; + + ErrorResult get errorResult; + @JsonKey(ignore: true) + _$$_NavigateToTransactionFailedCopyWith<_$_NavigateToTransactionFailed> + get copyWith => throw _privateConstructorUsedError; } /// @nodoc @@ -401,7 +444,8 @@ class _$_NavigateAway implements _NavigateAway { TResult when({ required TResult Function(SignSuccessTransactionType type) navigateToTransactionSuccess, - required TResult Function() navigateToTransactionFailed, + required TResult Function(ErrorResult errorResult) + navigateToTransactionFailed, required TResult Function() navigateAway, }) { return navigateAway(); @@ -412,7 +456,8 @@ class _$_NavigateAway implements _NavigateAway { TResult? whenOrNull({ TResult? Function(SignSuccessTransactionType type)? navigateToTransactionSuccess, - TResult? Function()? navigateToTransactionFailed, + TResult? Function(ErrorResult errorResult)? + navigateToTransactionFailed, TResult? Function()? navigateAway, }) { return navigateAway?.call(); @@ -423,7 +468,8 @@ class _$_NavigateAway implements _NavigateAway { TResult maybeWhen({ TResult Function(SignSuccessTransactionType type)? navigateToTransactionSuccess, - TResult Function()? navigateToTransactionFailed, + TResult Function(ErrorResult errorResult)? + navigateToTransactionFailed, TResult Function()? navigateAway, required TResult orElse(), }) { diff --git a/lib/ui/sign_transaction/sign_transaction_page.dart b/lib/ui/sign_transaction/sign_transaction_page.dart index 93a14aa4..d0779e0e 100644 --- a/lib/ui/sign_transaction/sign_transaction_page.dart +++ b/lib/ui/sign_transaction/sign_transaction_page.dart @@ -26,8 +26,8 @@ class SignTransactionPage extends StatelessWidget { () => SignTransactionSuccessPage(transactionType: type), transition: GetX.Transition.downToUp, ); - }, navigateToTransactionFailed: () { - GetX.Get.off(() => const SignTransactionFailedPage(), transition: GetX.Transition.downToUp); + }, navigateToTransactionFailed: (error) { + GetX.Get.off(() => SignTransactionFailedPage(error.error), transition: GetX.Transition.downToUp); }, navigateAway: () { GetX.Get.back(); }); diff --git a/lib/ui/sign_transaction/usecases/sign_transaction_use_case.dart b/lib/ui/sign_transaction/usecases/sign_transaction_use_case.dart index 80302ff9..ca88c57f 100644 --- a/lib/ui/sign_transaction/usecases/sign_transaction_use_case.dart +++ b/lib/ui/sign_transaction/usecases/sign_transaction_use_case.dart @@ -20,8 +20,10 @@ class SignTransactionUseCase extends InputUseCase> run(SignTransactionInput input) async { final userData = _authRepository.authDataOrCrash; if (input.eOSTransaction.network != userData.userProfileData.network) { - return HResult.Result.error(HyphaError.api( - 'Wrong network. Transaction on ${input.eOSTransaction.network} cannot be signed by user on ${userData.userProfileData.network}')); + return HResult.Result.error( + HyphaError.api( + 'Wrong network. Transaction on ${input.eOSTransaction.network} cannot be signed by user on ${userData.userProfileData.network}'), + ); } final Result result; try { diff --git a/pubspec.lock b/pubspec.lock index 043023da..af642c67 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -229,10 +229,10 @@ packages: dependency: "direct main" description: name: collection - sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c" + sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687 url: "https://pub.dev" source: hosted - version: "1.17.1" + version: "1.17.2" convert: dependency: transitive description: @@ -860,18 +860,18 @@ packages: dependency: transitive description: name: matcher - sha256: "6501fbd55da300384b768785b83e5ce66991266cec21af89ab9ae7f5ce1c4cbb" + sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e" url: "https://pub.dev" source: hosted - version: "0.12.15" + version: "0.12.16" material_color_utilities: dependency: transitive description: name: material_color_utilities - sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724 + sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41" url: "https://pub.dev" source: hosted - version: "0.2.0" + version: "0.5.0" meta: dependency: transitive description: @@ -1265,10 +1265,10 @@ packages: dependency: transitive description: name: source_span - sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250 + sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" url: "https://pub.dev" source: hosted - version: "1.9.1" + version: "1.10.0" stack_trace: dependency: transitive description: @@ -1313,10 +1313,10 @@ packages: dependency: transitive description: name: test_api - sha256: eb6ac1540b26de412b3403a163d919ba86f6a973fe6cc50ae3541b80092fdcfb + sha256: "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8" url: "https://pub.dev" source: hosted - version: "0.5.1" + version: "0.6.0" timeago: dependency: "direct main" description: @@ -1461,6 +1461,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.1.0" + web: + dependency: transitive + description: + name: web + sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10 + url: "https://pub.dev" + source: hosted + version: "0.1.4-beta" web_socket_channel: dependency: transitive description: @@ -1502,5 +1510,5 @@ packages: source: hosted version: "3.1.2" sdks: - dart: ">=3.0.0 <4.0.0" + dart: ">=3.1.0-185.0.dev <4.0.0" flutter: ">=3.10.0" From ce75fdf9b3a727f6eb3423dcd35bae3d7a2787b3 Mon Sep 17 00:00:00 2001 From: Gerardo Guijarro Date: Thu, 5 Oct 2023 10:27:02 -0600 Subject: [PATCH 2/6] FLutter version --- .github/workflows/pull_request.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pull_request.yaml b/.github/workflows/pull_request.yaml index 95513acc..5aba08ad 100644 --- a/.github/workflows/pull_request.yaml +++ b/.github/workflows/pull_request.yaml @@ -13,7 +13,7 @@ jobs: java-version: '12.x' - uses: subosito/flutter-action@v1 with: - flutter-version: '3.10.0' + flutter-version: '3.13.6' channel: 'stable' - run: flutter pub get - name: Lint @@ -29,7 +29,7 @@ jobs: java-version: '12.x' - uses: subosito/flutter-action@v1 with: - flutter-version: '3.10.0' + flutter-version: '3.13.6' channel: 'stable' - run: flutter pub get - name: Build apk package From 4008eee2e747f8bcec2807bf7558c2a5384065a3 Mon Sep 17 00:00:00 2001 From: Gerardo Guijarro Date: Thu, 5 Oct 2023 18:51:51 -0600 Subject: [PATCH 3/6] Color --- .../sign_transaction/failed/sign_transaction_failed_page.dart | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/ui/sign_transaction/failed/sign_transaction_failed_page.dart b/lib/ui/sign_transaction/failed/sign_transaction_failed_page.dart index 8a455ad2..2ed36447 100644 --- a/lib/ui/sign_transaction/failed/sign_transaction_failed_page.dart +++ b/lib/ui/sign_transaction/failed/sign_transaction_failed_page.dart @@ -70,6 +70,8 @@ class SignTransactionFailedPage extends StatelessWidget { const SizedBox(height: 16), ExpansionTile( title: const Text('Tap to see full error'), + collapsedTextColor: context.hyphaTextTheme.ralMediumBody.color, + textColor: context.hyphaTextTheme.ralMediumBody.color, children: [ Padding( padding: const EdgeInsets.only(bottom: 8), From b749bfcf3f3c899cc67e2e0746a1fbb5de86b1ea Mon Sep 17 00:00:00 2001 From: NIK Date: Sat, 7 Oct 2023 01:30:54 +0800 Subject: [PATCH 4/6] Podfile update for XCode 15 --- ios/Podfile | 9 +++ ios/Podfile.lock | 22 +++--- ios/Runner.xcodeproj/project.pbxproj | 74 +++++++++---------- .../xcshareddata/xcschemes/Runner.xcscheme | 2 +- 4 files changed, 58 insertions(+), 49 deletions(-) diff --git a/ios/Podfile b/ios/Podfile index d26a83ae..d13ee928 100644 --- a/ios/Podfile +++ b/ios/Podfile @@ -37,6 +37,15 @@ end post_install do |installer| installer.pods_project.targets.each do |target| flutter_additional_ios_build_settings(target) + + # Fix for XCode 15 - probably breaks XCode < 15 + target.build_configurations.each do |config| + xcconfig_path = config.base_configuration_reference.real_path + xcconfig = File.read(xcconfig_path) + xcconfig_mod = xcconfig.gsub(/DT_TOOLCHAIN_DIR/, "TOOLCHAIN_DIR") + File.open(xcconfig_path, "w") { |file| file << xcconfig_mod } + end + # Start of the permission_handler configuration target.build_configurations.each do |config| diff --git a/ios/Podfile.lock b/ios/Podfile.lock index c592a02f..a9923eff 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -686,7 +686,7 @@ PODS: - Firebase/RemoteConfig (= 10.12.0) - firebase_core - Flutter - - FirebaseABTesting (10.14.0): + - FirebaseABTesting (10.16.0): - FirebaseCore (~> 10.0) - FirebaseAnalytics (10.12.0): - FirebaseAnalytics/AdIdSupport (= 10.12.0) @@ -710,9 +710,9 @@ PODS: - FirebaseCoreInternal (~> 10.0) - GoogleUtilities/Environment (~> 7.8) - GoogleUtilities/Logger (~> 7.8) - - FirebaseCoreExtension (10.14.0): + - FirebaseCoreExtension (10.16.0): - FirebaseCore (~> 10.0) - - FirebaseCoreInternal (10.14.0): + - FirebaseCoreInternal (10.16.0): - "GoogleUtilities/NSData+zlib (~> 7.8)" - FirebaseCrashlytics (10.12.0): - FirebaseCore (~> 10.5) @@ -737,7 +737,7 @@ PODS: - "gRPC-C++ (~> 1.50.1)" - leveldb-library (~> 1.22) - nanopb (< 2.30910.0, >= 2.30908.0) - - FirebaseInstallations (10.14.0): + - FirebaseInstallations (10.16.0): - FirebaseCore (~> 10.0) - GoogleUtilities/Environment (~> 7.8) - GoogleUtilities/UserDefaults (~> 7.8) @@ -757,7 +757,7 @@ PODS: - FirebaseInstallations (~> 10.0) - GoogleUtilities/Environment (~> 7.8) - "GoogleUtilities/NSData+zlib (~> 7.8)" - - FirebaseSessions (10.14.0): + - FirebaseSessions (10.16.0): - FirebaseCore (~> 10.5) - FirebaseCoreExtension (~> 10.0) - FirebaseInstallations (~> 10.0) @@ -1052,18 +1052,18 @@ SPEC CHECKSUMS: firebase_dynamic_links: cc3fd36190c7b58c27353915271d2c0d031ee11b firebase_messaging: 0b4f7997f491343b90d9300af54fe55c72135833 firebase_remote_config: 7a8dac1be55303b927ddda80c882f329c6de6b80 - FirebaseABTesting: e1535073fac4ff55c7537a6e041155c72d9e6906 + FirebaseABTesting: 03f0a8b88cf618350527f2c6a2234e29b9c65064 FirebaseAnalytics: 0270389efbe3022b54ec4588862dabec3477ee98 FirebaseCore: f86a1394906b97ac445ae49c92552a9425831bed - FirebaseCoreExtension: 976638051b1a46b503afce7ec80277f9161f2040 - FirebaseCoreInternal: d558159ee6cc4b823c2296ecc193de9f6d9a5bb3 + FirebaseCoreExtension: 2dbc745b337eb99d2026a7a309ae037bd873f45e + FirebaseCoreInternal: 26233f705cc4531236818a07ac84d20c333e505a FirebaseCrashlytics: c4d111b7430c49744c74bcc6346ea00868661ac8 FirebaseDynamicLinks: 1a387da899779e5ef34f4d6f8bdba882f90d0e67 FirebaseFirestore: f94c9541515fa4a49af52269bbc50349009424b4 - FirebaseInstallations: f672b1eda64e6381c21d424a2f680a943fd83f3b + FirebaseInstallations: b822f91a61f7d1ba763e5ccc9d4f2e6f2ed3b3ee FirebaseMessaging: bb2c4f6422a753038fe137d90ae7c1af57251316 FirebaseRemoteConfig: bc7f260e6596956fafbb532443c19bd3c30f5258 - FirebaseSessions: f145e7365d36bec0d724c4574a8750e6f82fa6c8 + FirebaseSessions: 96e7781e545929cde06dd91088ddbb0841391b43 Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854 flutter_secure_storage: 23fc622d89d073675f2eaa109381aefbcf5a49be GoogleAppMeasurement: 2d800fab85e7848b1e66a6f8ce5bca06c5aad892 @@ -1094,6 +1094,6 @@ SPEC CHECKSUMS: TOCropViewController: edfd4f25713d56905ad1e0b9f5be3fbe0f59c863 url_launcher_ios: 08a3dfac5fb39e8759aeb0abbd5d9480f30fc8b4 -PODFILE CHECKSUM: d60f8e2e421d286a4337134adead709daf32f131 +PODFILE CHECKSUM: b347bf786bcbbd0a76929a5f65d30a5cde8fd52f COCOAPODS: 1.12.1 diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 58ee9b2b..70d9df0d 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -9,12 +9,12 @@ /* Begin PBXBuildFile section */ 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; - 49FDE9F6DCB642A92F102E5F /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ED112B8233C0A61D46F1D539 /* Pods_Runner.framework */; }; 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; C2200F0583FDBFBD2074C579 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 0DC696FA6CCE835ADD76D6C1 /* GoogleService-Info.plist */; }; + F985EC3DA6BBA3ED152D8A10 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E295F85D78A699D574F81C7D /* Pods_Runner.framework */; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -31,15 +31,16 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 073BAD4B2418B16E036D4893 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; 0DC696FA6CCE835ADD76D6C1 /* GoogleService-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = "GoogleService-Info.plist"; path = "Runner/GoogleService-Info.plist"; sourceTree = ""; }; 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; + 319514C2DDF781D50D03739A /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; - 6E47756C409EB437EB799767 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; + 3D7F7B0612326E4E7C5583B3 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; + 87D61E72DC305407BBE43BED /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -47,9 +48,8 @@ 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - C578C12E4F75CA71CFCF1DEA /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; + E295F85D78A699D574F81C7D /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; E74A77F8294A9B9500FCDF30 /* Runner.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Runner.entitlements; sourceTree = ""; }; - ED112B8233C0A61D46F1D539 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -57,19 +57,27 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 49FDE9F6DCB642A92F102E5F /* Pods_Runner.framework in Frameworks */, + F985EC3DA6BBA3ED152D8A10 /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 3E226B71FB8C1DBD10BEA238 /* Frameworks */ = { + isa = PBXGroup; + children = ( + E295F85D78A699D574F81C7D /* Pods_Runner.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; 8EF08E4E4362942703AB8DB7 /* Pods */ = { isa = PBXGroup; children = ( - 073BAD4B2418B16E036D4893 /* Pods-Runner.debug.xcconfig */, - C578C12E4F75CA71CFCF1DEA /* Pods-Runner.release.xcconfig */, - 6E47756C409EB437EB799767 /* Pods-Runner.profile.xcconfig */, + 3D7F7B0612326E4E7C5583B3 /* Pods-Runner.debug.xcconfig */, + 319514C2DDF781D50D03739A /* Pods-Runner.release.xcconfig */, + 87D61E72DC305407BBE43BED /* Pods-Runner.profile.xcconfig */, ); path = Pods; sourceTree = ""; @@ -93,7 +101,7 @@ 97C146EF1CF9000F007C117D /* Products */, 0DC696FA6CCE835ADD76D6C1 /* GoogleService-Info.plist */, 8EF08E4E4362942703AB8DB7 /* Pods */, - E98C01161CF7A4443628E9FC /* Frameworks */, + 3E226B71FB8C1DBD10BEA238 /* Frameworks */, ); sourceTree = ""; }; @@ -121,14 +129,6 @@ path = Runner; sourceTree = ""; }; - E98C01161CF7A4443628E9FC /* Frameworks */ = { - isa = PBXGroup; - children = ( - ED112B8233C0A61D46F1D539 /* Pods_Runner.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -136,7 +136,7 @@ isa = PBXNativeTarget; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - 9C4E0136B3B7D19713FDBD89 /* [CP] Check Pods Manifest.lock */, + 4AEA3D65BA36D9DC7DBE00E6 /* [CP] Check Pods Manifest.lock */, 9740EEB61CF901F6004384FC /* Run Script */, 97C146EA1CF9000F007C117D /* Sources */, 97C146EB1CF9000F007C117D /* Frameworks */, @@ -144,7 +144,7 @@ 9705A1C41CF9048500538489 /* Embed Frameworks */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, BF0F92F998693B85D2CF268E /* [firebase_crashlytics] Crashlytics Upload Symbols */, - A8DF25CE3945A78C7ED29605 /* [CP] Embed Pods Frameworks */, + BB3148643A8A5357684FDFB5 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -162,7 +162,7 @@ isa = PBXProject; attributes = { BuildIndependentTargetsInParallel = YES; - LastUpgradeCheck = 1300; + LastUpgradeCheck = 1430; ORGANIZATIONNAME = ""; TargetAttributes = { 97C146ED1CF9000F007C117D = { @@ -221,44 +221,44 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; }; - 9740EEB61CF901F6004384FC /* Run Script */ = { + 4AEA3D65BA36D9DC7DBE00E6 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; - alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); + inputFileListPaths = ( + ); inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( ); - name = "Run Script"; outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; }; - 9C4E0136B3B7D19713FDBD89 /* [CP] Check Pods Manifest.lock */ = { + 9740EEB61CF901F6004384FC /* Run Script */ = { isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); - inputFileListPaths = ( - ); inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( ); + name = "Run Script"; outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; }; - A8DF25CE3945A78C7ED29605 /* [CP] Embed Pods Frameworks */ = { + BB3148643A8A5357684FDFB5 /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( diff --git a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index c87d15a3..a6b826db 100644 --- a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,6 +1,6 @@ Date: Fri, 6 Oct 2023 16:48:12 -0600 Subject: [PATCH 5/6] Parse error --- .../usecases/sign_transaction_use_case.dart | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/lib/ui/sign_transaction/usecases/sign_transaction_use_case.dart b/lib/ui/sign_transaction/usecases/sign_transaction_use_case.dart index ca88c57f..1639a0f1 100644 --- a/lib/ui/sign_transaction/usecases/sign_transaction_use_case.dart +++ b/lib/ui/sign_transaction/usecases/sign_transaction_use_case.dart @@ -1,4 +1,5 @@ import 'package:async/async.dart'; +import 'package:dio/dio.dart'; import 'package:hypha_wallet/core/crypto/seeds_esr/eos_transaction.dart'; import 'package:hypha_wallet/core/error_handler/model/hypha_error.dart'; import 'package:hypha_wallet/core/extension/scope_functions.dart'; @@ -49,7 +50,29 @@ class SignTransactionUseCase extends InputUseCase Date: Fri, 6 Oct 2023 16:51:56 -0600 Subject: [PATCH 6/6] Color --- .../failed/sign_transaction_failed_page.dart | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/ui/sign_transaction/failed/sign_transaction_failed_page.dart b/lib/ui/sign_transaction/failed/sign_transaction_failed_page.dart index 2ed36447..9522da04 100644 --- a/lib/ui/sign_transaction/failed/sign_transaction_failed_page.dart +++ b/lib/ui/sign_transaction/failed/sign_transaction_failed_page.dart @@ -69,7 +69,12 @@ class SignTransactionFailedPage extends StatelessWidget { ), const SizedBox(height: 16), ExpansionTile( - title: const Text('Tap to see full error'), + title: Text( + 'Tap to see full error', + style: context.hyphaTextTheme.ralMediumBody.copyWith( + color: context.isDarkMode ? Colors.white : Colors.black, + ), + ), collapsedTextColor: context.hyphaTextTheme.ralMediumBody.color, textColor: context.hyphaTextTheme.ralMediumBody.color, children: [