Skip to content

Commit

Permalink
Merge pull request #323 from Topl/DAPP-FIX
Browse files Browse the repository at this point in the history
Reverted additionalnav logic to fix dapp transaction logic
  • Loading branch information
KalervoHyyppa authored Apr 6, 2023
2 parents 735e844 + 3cf5c6a commit a89d9e9
Show file tree
Hide file tree
Showing 22 changed files with 140 additions and 154 deletions.
3 changes: 2 additions & 1 deletion lib/constants/strings.dart
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,8 @@ Write down the each word in the exact order it is presented.''';
static const String typeSomething = 'Type something';
static const String supportEmail = '[email protected]';
static const String supportEmailLink = 'mailto:$supportEmail?subject=Ribn Support&body=';
static const String supportDocsURL = 'https://docs.google.com/forms/d/e/1FAIpQLSdq0ex4BRPkRMt7HLaI9vHZJJ757Prsw9Mtbk4MU5zttCH3vg/viewform';
static const String supportDocsURL =
'https://docs.google.com/forms/d/e/1FAIpQLSdq0ex4BRPkRMt7HLaI9vHZJJ757Prsw9Mtbk4MU5zttCH3vg/viewform';
static const String sendAssets = 'Send assets';
static const String sendNativeCoins = 'Send native coins';
static const String yourRibnWalletAddress = 'Your Ribn Wallet address';
Expand Down
3 changes: 3 additions & 0 deletions lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,13 @@ import 'dart:convert';
// Flutter imports:
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';

// Package imports:
import 'package:flutter_portal/flutter_portal.dart';
import 'package:flutter_redux/flutter_redux.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:redux/redux.dart';

// Project imports:
import 'package:ribn/actions/internal_message_actions.dart';
import 'package:ribn/constants/keys.dart';
Expand Down Expand Up @@ -57,6 +59,7 @@ void main() async {
class RibnApp extends StatelessWidget {
final Store<AppState> store;
final RootRouter rootRouter = RootRouter();

RibnApp(this.store, {Key? key}) : super(key: key);

@override
Expand Down
66 changes: 32 additions & 34 deletions lib/models/internal_message.dart
Original file line number Diff line number Diff line change
Expand Up @@ -11,32 +11,31 @@ class InternalMessage {
final String sender;
final String id;
final String origin;
String additionalNavigation;
InternalMessage(
{required this.method,
this.data,
required this.target,
this.sender = defaultSender,
required this.id,
required this.origin,
this.additionalNavigation = ""});

InternalMessage copyWith(
{String? method,
Map<String, dynamic>? data,
String? target,
String? sender,
String? id,
String? origin,
String? additionalNavigation}) {
InternalMessage({
required this.method,
this.data,
required this.target,
this.sender = defaultSender,
required this.id,
required this.origin,
});

InternalMessage copyWith({
String? method,
Map<String, dynamic>? data,
String? target,
String? sender,
String? id,
String? origin,
}) {
return InternalMessage(
method: method ?? this.method,
data: data ?? this.data,
target: target ?? this.target,
sender: sender ?? this.sender,
id: id ?? this.id,
origin: origin ?? this.origin,
additionalNavigation: additionalNavigation ?? this.additionalNavigation);
method: method ?? this.method,
data: data ?? this.data,
target: target ?? this.target,
sender: sender ?? this.sender,
id: id ?? this.id,
origin: origin ?? this.origin,
);
}

static const String defaultSender = 'ribn';
Expand All @@ -49,19 +48,18 @@ class InternalMessage {
'sender': sender,
'id': id,
'origin': origin,
'additionalNavigation': additionalNavigation
};
}

factory InternalMessage.fromMap(Map<String, dynamic> map) {
return InternalMessage(
method: map['method'] as String,
data: map['data'] != null ? Map<String, dynamic>.from(map['data'] as Map<String, dynamic>) : null,
target: map['target'] as String,
sender: map['sender'] as String,
id: map['id'] as String,
origin: map['origin'] as String,
additionalNavigation: map['additionalNavigation'] as String);
method: map['method'] as String,
data: map['data'] != null ? Map<String, dynamic>.from(map['data'] as Map<String, dynamic>) : null,
target: map['target'] as String,
sender: map['sender'] as String,
id: map['id'] as String,
origin: map['origin'] as String,
);
}

String toJson() => json.encode(toMap());
Expand All @@ -71,7 +69,7 @@ class InternalMessage {

@override
String toString() {
return 'InternalMessage(method: $method, data: $data, target: $target, sender: $sender, id: $id, origin: $origin,additionalNavigation:$additionalNavigation)';
return 'InternalMessage(method: $method, data: $data, target: $target, sender: $sender, id: $id, origin: $origin)';
}

@override
Expand Down
2 changes: 2 additions & 0 deletions lib/models/state/analytics_state.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
// Package imports:
import 'package:freezed_annotation/freezed_annotation.dart';

// Project imports:
import 'package:ribn/providers/analytics/analytics_events.dart';

part 'analytics_state.freezed.dart';
Expand Down
2 changes: 1 addition & 1 deletion lib/presentation/home/wallet_balance_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import 'package:flutter/material.dart';
// Package imports:
import 'package:brambldart/brambldart.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:ribn/providers/app_bar_provider.dart';
import 'package:ribn_toolkit/constants/colors.dart';
import 'package:ribn_toolkit/constants/styles.dart';
import 'package:ribn_toolkit/widgets/atoms/large_button.dart';
Expand All @@ -24,6 +23,7 @@ import 'package:ribn/models/asset_details.dart';
import 'package:ribn/presentation/empty_state_screen.dart';
import 'package:ribn/presentation/error_section.dart';
import 'package:ribn/presentation/home/wallet_balance_shimmer.dart';
import 'package:ribn/providers/app_bar_provider.dart';
import 'package:ribn/utils/extensions.dart';
import 'package:ribn/utils/utils.dart';

Expand Down
2 changes: 1 addition & 1 deletion lib/presentation/login/widgets/support_link_section.dart
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@ import 'package:flutter/material.dart';
// Package imports:
import 'package:ribn_toolkit/constants/colors.dart';
import 'package:ribn_toolkit/constants/styles.dart';
import 'package:ribn/utils/error_handling_utils.dart';

// Project imports:
import 'package:ribn/constants/strings.dart';
import 'package:ribn/utils/error_handling_utils.dart';

/// Widget to redirect user to the support email.
class SupportLinkSection extends StatelessWidget {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,9 +91,9 @@ class EnableBiometrics extends HookConsumerWidget {
mainAxisAlignment: MainAxisAlignment.end,
mainAxisSize: MainAxisSize.max,
children: [
Container(
height: 50,
)
Container(
height: 50,
)
],
),
Text(
Expand Down
4 changes: 2 additions & 2 deletions lib/presentation/settings/sections/analytics_section.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@ import 'package:flutter/material.dart';

// Package imports:
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:ribn_toolkit/constants/styles.dart';
import 'package:ribn_toolkit/widgets/atoms/custom_toggle.dart';

// Project imports:
import 'package:ribn/constants/strings.dart';
import 'package:ribn/providers/analytics/analytics_provider.dart';
import 'package:ribn_toolkit/constants/styles.dart';
import 'package:ribn_toolkit/widgets/atoms/custom_toggle.dart';

class AnalyticsSection extends ConsumerWidget {
const AnalyticsSection({
Expand Down
3 changes: 1 addition & 2 deletions lib/presentation/transfers/poly_transfer_section.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@ import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:loader_overlay/loader_overlay.dart';
import 'package:ribn/constants/network_utils.dart';
import 'package:ribn/models/view/poly_transfer_class.dart';
import 'package:ribn_toolkit/constants/colors.dart';
import 'package:ribn_toolkit/constants/styles.dart';
import 'package:ribn_toolkit/widgets/atoms/large_button.dart';
Expand All @@ -18,6 +16,7 @@ import 'package:ribn_toolkit/widgets/molecules/recipient_field.dart';

// Project imports:
import 'package:ribn/constants/assets.dart';
import 'package:ribn/constants/network_utils.dart';
import 'package:ribn/constants/strings.dart';
import 'package:ribn/containers/poly_transfer_input_container.dart';
import 'package:ribn/presentation/transfers/bottom_review_action.dart';
Expand Down
87 changes: 30 additions & 57 deletions lib/providers/analytics/analytics_events.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
// Package imports:
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:ribn/providers/analytics/analytics_provider.dart';

// Project imports:
import 'package:ribn/providers/analytics/analytics_provider.dart';
import 'package:ribn/providers/utility_provider.dart';
import 'package:ribn/utils/extensions.dart';
import 'package:ribn/utils/platform_utils.dart';
Expand Down Expand Up @@ -46,9 +47,7 @@ class AnalyticsEventBuilders {
AnalyticsEventBuilders(this._ref, this._event);

AnalyticsEventData buildDAppAuthenticatedEvent(
{String dAppName = 'Unknown',
String dAppUrl = 'Unknown',
bool authenticatedState = false}) =>
{String dAppName = 'Unknown', String dAppUrl = 'Unknown', bool authenticatedState = false}) =>
AnalyticsEventData._(
_event,
_optionsBuilder(walletAddress: true, userType: true, parameters: {
Expand Down Expand Up @@ -89,41 +88,31 @@ class AnalyticsEventBuilders {
required int endTime,
String sessionType = "Active",
int contractInteractions = 0,
double totalAmountTransferred =
0, //TODO: consider refactoring to a Map that will hold multiple currencies
double totalAmountTransferred = 0, //TODO: consider refactoring to a Map that will hold multiple currencies
}) =>
AnalyticsEventData._(
_event,
_optionsBuilder(
walletAddress: true,
userType: true,
screens: true,
parameters: {
"startTime": startTime,
"endTime": endTime,
"duration": endTime - startTime,
"sessionType": sessionType,
"totalAmountTransferred": totalAmountTransferred,
"contractInteractions": contractInteractions,
}));
_optionsBuilder(walletAddress: true, userType: true, screens: true, parameters: {
"startTime": startTime,
"endTime": endTime,
"duration": endTime - startTime,
"sessionType": sessionType,
"totalAmountTransferred": totalAmountTransferred,
"contractInteractions": contractInteractions,
}));

AnalyticsEventData buildBounceRateEvent({
String sessionType = "Active",
int contractInteractions = 0,
double totalAmountTransferred =
0, //TODO: consider refactoring to a Map that will hold multiple currencies
double totalAmountTransferred = 0, //TODO: consider refactoring to a Map that will hold multiple currencies
}) =>
AnalyticsEventData._(
_event,
_optionsBuilder(
walletAddress: true,
userType: true,
screens: true,
parameters: {
"sessionType": sessionType,
"totalAmountTransferred": totalAmountTransferred,
"contractInteractions": contractInteractions,
}));
_optionsBuilder(walletAddress: true, userType: true, screens: true, parameters: {
"sessionType": sessionType,
"totalAmountTransferred": totalAmountTransferred,
"contractInteractions": contractInteractions,
}));

AnalyticsEventData buildAbandonTransactionEvent(
{int contractInteractions = 0,
Expand All @@ -140,21 +129,15 @@ class AnalyticsEventBuilders {
}));

AnalyticsEventData buildUserInteractionEvent(
{required int startTime,
required int endTime,
int contractInteractions = 0}) {
{required int startTime, required int endTime, int contractInteractions = 0}) {
return AnalyticsEventData._(
_event,
_optionsBuilder(
walletAddress: true,
userType: true,
userInteractions: true,
parameters: {
"startTime": startTime,
"endTime": endTime,
"duration": endTime - startTime,
"contractInteractions": contractInteractions,
}));
_optionsBuilder(walletAddress: true, userType: true, userInteractions: true, parameters: {
"startTime": startTime,
"endTime": endTime,
"duration": endTime - startTime,
"contractInteractions": contractInteractions,
}));
}

Map<String, dynamic> _optionsBuilder(
Expand All @@ -173,38 +156,28 @@ class AnalyticsEventBuilders {
.addIf(userType, _addUserType())
.addIf(network, _addNetwork());

static Map<String, dynamic> _addDefaultMetrics(
{Map<String, dynamic> parameters = const {}}) =>
{
static Map<String, dynamic> _addDefaultMetrics({Map<String, dynamic> parameters = const {}}) => {
'timestamp': DateTime.now().millisecondsSinceEpoch,
'platform': getOperatingSystem(),
...parameters,
};

Map<String, dynamic> _addWalletAddress(
{Map<String, dynamic> parameters = const {}}) =>
{
Map<String, dynamic> _addWalletAddress({Map<String, dynamic> parameters = const {}}) => {
'walletAddress': _ref.read(currentWalletAddressProvider).toHashSha256(),
...parameters,
};

Map<String, dynamic> _addUserType(
{Map<String, dynamic> parameters = const {}}) =>
{
Map<String, dynamic> _addUserType({Map<String, dynamic> parameters = const {}}) => {
'userType': _ref.read(analyticsProvider).userType.name,
...parameters,
};

Map<String, dynamic> _addEventName(
{Map<String, dynamic> parameters = const {}}) =>
{
Map<String, dynamic> _addEventName({Map<String, dynamic> parameters = const {}}) => {
'event': _event.name.toString(),
...parameters,
};

Map<String, dynamic> _addNetwork(
{Map<String, dynamic> parameters = const {}}) =>
{
Map<String, dynamic> _addNetwork({Map<String, dynamic> parameters = const {}}) => {
'network': _ref.read(currentNetworkProvider),
...parameters,
};
Expand Down
12 changes: 5 additions & 7 deletions lib/providers/analytics/analytics_provider.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import 'dart:async';

// Package imports:
import 'package:hooks_riverpod/hooks_riverpod.dart';

// Project imports:
import 'package:ribn/models/state/analytics_state.dart';
import 'package:ribn/platform/platform.dart';
Expand All @@ -12,8 +13,7 @@ import 'package:ribn/providers/logger_provider.dart';
import 'package:ribn/providers/packages/flutter_secure_storage_provider.dart';
import 'package:ribn/utils/extensions.dart';

final analyticsProvider =
StateNotifierProvider<AnalyticsNotifier, AnalyticsState>((ref) {
final analyticsProvider = StateNotifierProvider<AnalyticsNotifier, AnalyticsState>((ref) {
return AnalyticsNotifier(ref);
});

Expand Down Expand Up @@ -53,8 +53,7 @@ class AnalyticsNotifier extends StateNotifier<AnalyticsState> {

final isEnabled = overrideValue ?? !state.isEnabled;

await PlatformLocalStorage.instance.saveKVInSecureStorage(
_analyticsEnabledKey, (isEnabled).toString(),
await PlatformLocalStorage.instance.saveKVInSecureStorage(_analyticsEnabledKey, (isEnabled).toString(),
override: ref.read(flutterSecureStorageProvider)());

if (isEnabled) {
Expand All @@ -77,9 +76,8 @@ class AnalyticsNotifier extends StateNotifier<AnalyticsState> {
}

Future<bool> _isAnalyticsEnabled() async {
return (await PlatformLocalStorage.instance.getKVInSecureStorage(
_analyticsEnabledKey,
override: ref.read(flutterSecureStorageProvider)()))
return (await PlatformLocalStorage.instance
.getKVInSecureStorage(_analyticsEnabledKey, override: ref.read(flutterSecureStorageProvider)()))
.toBooleanWithNullableDefault(false);
}

Expand Down
Loading

0 comments on commit a89d9e9

Please sign in to comment.