Skip to content

Commit

Permalink
Merge pull request #1969 from ardriveapp/dev
Browse files Browse the repository at this point in the history
Release 2.64.1
  • Loading branch information
thiagocarvalhodev authored Feb 6, 2025
2 parents 8ba754f + 273519c commit 3e01726
Show file tree
Hide file tree
Showing 51 changed files with 3,374 additions and 127,312 deletions.
13 changes: 13 additions & 0 deletions .cursorrules
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
Git Usage
- use the following prefixes for commit messages followed by a colon and a space:
- "fix" for bug fixes
- "feat" for new features
- "perf" for performance improvements
- "docs" for documentation changes
- "style" for formatting changes
- "refactor" for code refactoring
- "test" for adding missing tests
- "chore" for chore tasks
- when determining the commit message prefix, pick the most relevant prefix from the list above
- use lower case for commit messages
- the commit message should also include a list of the changes made in the commit after the summary line if the changes are not self explanatory
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ graphql_api.graphql.dart
#.vscode/

# Flutter/Dart/Pub related
**/doc/api/
**/doc/api/
**/ios/Flutter/.last_build_id
.dart_tool/
.flutter-plugins
Expand Down Expand Up @@ -79,3 +79,5 @@ app.*.map.json
# Ignore node_modules and package-lock.json in ario_sdk/web
packages/ario_sdk/web/node_modules/
packages/ario_sdk/web/package-lock.json

.cursorignore
Binary file added .parcel-cache/1cc474c1aef77c94-RequestGraph
Binary file not shown.
Binary file added .parcel-cache/1f10d14139a346ab-AssetGraph
Binary file not shown.
Binary file added .parcel-cache/9a0d07555444f4da-AssetGraph
Binary file not shown.
Binary file added .parcel-cache/data.mdb
Binary file not shown.
Binary file added .parcel-cache/e54c728171d1c6c2-BundleGraph
Binary file not shown.
Binary file added .parcel-cache/lock.mdb
Binary file not shown.
2 changes: 2 additions & 0 deletions .parcel-cache/snapshot-1cc474c1aef77c94.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
842211329
1738700256739622000
2 changes: 2 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,13 @@
"drift"
],
"cSpell.words": [
"ario",
"Arweave",
"bento",
"Hkdf",
"hmac",
"sublist",
"Undernames",
"Widgetbook"
],
"dart.flutterSdkPath": ".fvm/versions/3.19.6"
Expand Down
2 changes: 2 additions & 0 deletions android/fastlane/metadata/android/en-US/changelogs/174.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
- Set default TTL for undernames and name updates to 15 minutes.
- Fixed issue preventing undername creation during file uploads.
3 changes: 2 additions & 1 deletion lib/arns/data/arns_dao.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import 'package:ardrive/models/database/database.dart';
import 'package:drift/drift.dart';
import 'package:uuid/uuid.dart';
import 'package:ario_sdk/ario_sdk.dart';

part 'arns_dao.g.dart';

Expand All @@ -13,7 +14,7 @@ class ARNSDao extends DatabaseAccessor<Database> with _$ARNSDaoMixin {
required String transactionId,
String? undername,
bool isActive = true,
int ttl = 3600,
int ttl = ARNSRecord.defaultTtlSeconds,
required String fileId,
}) async {
// Create a companion object with the values to insert
Expand Down
48 changes: 24 additions & 24 deletions lib/arns/domain/arns_repository.dart
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,7 @@ class _ARNSRepository implements ARNSRepository {

final Map<String, Map<String, ARNSUndername>> _cachedUndernames = {};
PrimaryNameDetails? _cachedPrimaryName;
bool _hasErrorGettingARNSUndernames = false;

@override
Future<void> setUndernamesToFile({
Expand Down Expand Up @@ -199,31 +200,24 @@ class _ARNSRepository implements ARNSRepository {
throw UndernameAlreadyExistsException();
}

if (_auth.currentUser.profileType == ProfileType.arConnect) {
logger.d('Setting undername with ArConnect');
logger.d('Setting undername with ArConnect');

final id = await _sdk.setUndernameWithArConnect(
txId: undername.record.transactionId,
domain: undername.domain,
undername: undername.name,
);
final id = await _sdk.createUndername(
undername: undername,
isArConnect: _auth.currentUser.profileType == ProfileType.arConnect,
txId: undername.record.transactionId,
jwtString: _auth.getJWTAsString(),
);

logger.d('Undername set with ArConnect: $id');
} else {
await _sdk.setUndername(
jwtString: _auth.getJWTAsString(),
domain: undername.domain,
txId: undername.record.transactionId,
undername: undername.name,
);
}
logger.d('Undername created with ArConnect: $id');

_cachedUndernames[undername.domain]![undername.name] = undername;

await _arnsDao.saveARNSRecord(
domain: undername.domain,
transactionId: undername.record.transactionId,
isActive: true,

isActive: false,
undername: undername.name,
ttl: undername.record.ttlSeconds,
fileId: '', // we don't have a file id for the undername
Expand All @@ -242,6 +236,10 @@ class _ARNSRepository implements ARNSRepository {
String address, {
bool update = false,
}) async {
if (!update && _hasErrorGettingARNSUndernames) {
return [];
}

if (!update &&
lastUpdated != null &&
lastUpdated!
Expand All @@ -256,7 +254,9 @@ class _ARNSRepository implements ARNSRepository {
if (_getARNSUndernamesCompleter != null) {
return _getARNSUndernamesCompleter!.future;
}

logger.d('Loading names');

final date = DateTime.now();

_getARNSUndernamesCompleter = Completer();
Expand All @@ -278,11 +278,8 @@ class _ARNSRepository implements ARNSRepository {
final undernames = process.state.records.keys.map((e) {
final record = process.state.records[e];

return ARNSUndername(
record: ARNSRecord(
transactionId: record!.transactionId,
ttlSeconds: record.ttlSeconds,
),
return ARNSUndernameFactory.create(
transactionId: record!.transactionId,
name: e,
domain: process.names.keys.first,
);
Expand All @@ -304,17 +301,20 @@ class _ARNSRepository implements ARNSRepository {
logger.d(
'Names loaded in ${DateTime.now().difference(date).inMilliseconds}ms');

_hasErrorGettingARNSUndernames = false;

_getARNSUndernamesCompleter!.complete(records);

_getARNSUndernamesCompleter = null;
return records;
} catch (e) {
logger.e('Error getting ANT records for wallet: $e');
logger.e('Error getting ANT records for wallet.', e);

_getARNSUndernamesCompleter!.completeError(e);

_getARNSUndernamesCompleter = null;

_hasErrorGettingARNSUndernames = true;

return [];
}
}
Expand Down
15 changes: 6 additions & 9 deletions lib/arns/presentation/assign_name_bloc/assign_name_bloc.dart
Original file line number Diff line number Diff line change
Expand Up @@ -146,19 +146,14 @@ class AssignNameBloc extends Bloc<AssignNameEvent, AssignNameState> {
ARNSUndername undername;

if (_selectedUndername == null) {
undername = ARNSUndername(
name: '@',
record: ARNSRecord(
transactionId: fileDataTableItem.dataTxId, ttlSeconds: 3600),
undername = ARNSUndernameFactory.createDefaultUndername(
transactionId: fileDataTableItem.dataTxId,
domain: _selectedNameModel!.name,
);
} else {
undername = ARNSUndername(
undername = ARNSUndernameFactory.create(
name: _selectedUndername!.name,
record: ARNSRecord(
transactionId: fileDataTableItem.dataTxId,
ttlSeconds: 3600,
),
transactionId: fileDataTableItem.dataTxId,
domain: _selectedNameModel!.name,
);
}
Expand Down Expand Up @@ -198,6 +193,8 @@ class AssignNameBloc extends Bloc<AssignNameEvent, AssignNameState> {
});

on<ConfirmSelection>((event, emit) async {
logger.d('ConfirmSelection');

emit(SelectionConfirmed(
selectedName: _selectedNameModel!,
selectedUndername: _selectedUndername,
Expand Down
14 changes: 0 additions & 14 deletions lib/arns/presentation/assign_name_modal.dart
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,6 @@ class AssignArNSNameModal extends StatelessWidget {

@override
Widget build(BuildContext context) {
logger.d('AssignArNSNameModal build');

return BlocProvider(
create: (context) => AssignNameBloc(
auth: context.read<ArDriveAuth>(),
Expand Down Expand Up @@ -121,12 +119,6 @@ class _AssignArNSNameModal extends StatefulWidget {
}

class _AssignArNSNameModalState extends State<_AssignArNSNameModal> {
@override
dispose() {
super.dispose();
logger.d('AssignArNSNameModal dispose');
}

@override
Widget build(BuildContext context) {
final typography = ArDriveTypographyNew.of(context);
Expand Down Expand Up @@ -296,9 +288,6 @@ class _AssignArNSNameModalState extends State<_AssignArNSNameModal> {
value: context.read<AssignNameBloc>(),
child: CreateUndernameModal(
nameModel: state.selectedName!,
driveId: widget.file!.driveId,
fileId: widget.file!.id,
transactionId: widget.file!.dataTxId,
),
),
);
Expand Down Expand Up @@ -337,9 +326,6 @@ class _AssignArNSNameModalState extends State<_AssignArNSNameModal> {
value: context.read<AssignNameBloc>(),
child: CreateUndernameModal(
nameModel: state.selectedName!,
driveId: widget.file!.driveId,
fileId: widget.file!.id,
transactionId: widget.file!.dataTxId,
),
),
);
Expand Down
15 changes: 2 additions & 13 deletions lib/arns/presentation/create_undername.dart
Original file line number Diff line number Diff line change
Expand Up @@ -9,27 +9,16 @@ import 'package:flutter/widgets.dart';
import 'package:flutter_bloc/flutter_bloc.dart';

class CreateUndernameModal extends StatelessWidget {
const CreateUndernameModal({
super.key,
required this.nameModel,
required this.driveId,
required this.fileId,
required this.transactionId,
});
const CreateUndernameModal({super.key, required this.nameModel});

final ArNSNameModel nameModel;
final String driveId;
final String fileId;
final String transactionId;

@override
Widget build(BuildContext context) {
return BlocProvider(
create: (context) => CreateUndernameBloc(
context.read<ARNSRepository>(),
nameModel,
driveId,
fileId,
transactionId,
),
child: const CreateUndernameView(),
);
Expand Down
13 changes: 2 additions & 11 deletions lib/arns/presentation/create_undername/create_undername_bloc.dart
Original file line number Diff line number Diff line change
Expand Up @@ -12,27 +12,18 @@ class CreateUndernameBloc
extends Bloc<CreateUndernameEvent, CreateUndernameState> {
final ARNSRepository _arnsRepository;
final ArNSNameModel _nameModel;
final String driveId;
final String fileId;
final String transactionId;
CreateUndernameBloc(
this._arnsRepository,
this._nameModel,
this.driveId,
this.fileId,
this.transactionId,
) : super(CreateUndernameInitial()) {
on<CreateUndernameEvent>((event, emit) async {
if (event is CreateNewUndername) {
emit(CreateUndernameLoading());

final ARNSUndername undername = ARNSUndername(
final ARNSUndername undername = ARNSUndernameFactory.create(
name: event.name,
record: ARNSRecord(
transactionId: transactionId,
ttlSeconds: 3600,
),
domain: _nameModel.name,
transactionId: defaultTxId,
);

try {
Expand Down
4 changes: 2 additions & 2 deletions lib/arns/utils/arns_undername_utils.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ import 'package:ario_sdk/ario_sdk.dart';

ARNSUndername fromJsonDataBase(String json) {
final Map<String, dynamic> map = jsonDecode(json);
return ARNSUndername(
return ARNSUndernameFactory.create(
name: map['name'],
domain: map['domain'],
record: ARNSRecord.fromJson(map['record']),
transactionId: map['record']['transactionId'],
);
}
5 changes: 3 additions & 2 deletions lib/authentication/ardrive_auth.dart
Original file line number Diff line number Diff line change
Expand Up @@ -239,7 +239,7 @@ class ArDriveAuthImpl implements ArDriveAuth {
await _secureKeyValueStore.remove('password');
await _secureKeyValueStore.remove('biometricEnabled');
}

await _databaseHelpers.deleteAllTables();
currentUser = null;
_userStreamController.add(null);
Expand Down Expand Up @@ -319,7 +319,7 @@ class ArDriveAuthImpl implements ArDriveAuth {
}

void _updateBalance() {
_userRepository.getIOTokens(currentUser.wallet).then((value) {
_userRepository.getARIOTokens(currentUser.wallet).then((value) {
_currentUser = _currentUser!.copyWith(
ioTokens: value,
errorFetchingIOTokens: false,
Expand All @@ -330,6 +330,7 @@ class ArDriveAuthImpl implements ArDriveAuth {
errorFetchingIOTokens: true,
);
_userStreamController.add(_currentUser);
logger.e('Error fetching ARIOTokens', e);
return Future.value(null);
});
_userRepository.getBalance(currentUser.wallet).then((value) {
Expand Down
Loading

0 comments on commit 3e01726

Please sign in to comment.