Skip to content

Commit

Permalink
Force blockchainTxVersion to version 3
Browse files Browse the repository at this point in the history
  • Loading branch information
redDwarf03 committed Jan 15, 2025
1 parent 7233139 commit 4f2abe2
Show file tree
Hide file tree
Showing 6 changed files with 25 additions and 77 deletions.
6 changes: 2 additions & 4 deletions lib/domain/usecases/new_keychain.usecase.dart
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ import 'package:logging/logging.dart';

final _logger = Logger('KeychainUtil');

const blockchainTxVersion = 3;

class CreateNewAppWalletCase with aedappfm.TransactionMixin {
CreateNewAppWalletCase({
required this.sessionNotifier,
Expand Down Expand Up @@ -46,10 +48,6 @@ class CreateNewAppWalletCase with aedappfm.TransactionMixin {
servicesMap[kServiceName] = kDerivationPath;
}

final blockchainTxVersion = int.parse(
(await targetApiService.getBlockchainVersion()).version.transaction,
);

final originPrivateKey = targetApiService.getOriginKey();

/// Create Keychain from keyChain seed and wallet public key to encrypt secret
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ import 'package:aewallet/model/blockchain/keychain_secured_infos.dart';
import 'package:aewallet/util/keychain_util.dart';
import 'package:archethic_lib_dart/archethic_lib_dart.dart' as archethic;

const blockchainTxVersion = 3;

class ArchethicTransactionRepository
implements TransactionRemoteRepositoryInterface {
ArchethicTransactionRepository({
Expand Down Expand Up @@ -71,10 +73,6 @@ class ArchethicTransactionRepository

final index = indexMap[transfer.genesisAddress] ?? 0;

final blockchainTxVersion = int.parse(
(await apiService.getBlockchainVersion()).version.transaction,
);

var tokenTransferList = <archethic.TokenTransfer>[];
var ucoTransferList = <archethic.UCOTransfer>[];

Expand Down Expand Up @@ -134,10 +132,6 @@ class ArchethicTransactionRepository

final index = indexMap[token.genesisAddress] ?? 0;

final blockchainTxVersion = int.parse(
(await apiService.getBlockchainVersion()).version.transaction,
);

return AddTokenTransactionBuilder.build(
tokenName: token.name,
tokenSymbol: token.symbol,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
/// SPDX-License-Identifier: AGPL-3.0-or-later
// ignore_for_file: avoid_redundant_argument_values

import 'dart:convert';
import 'dart:math';
import 'package:archethic_lib_dart/archethic_lib_dart.dart' as archethic;
import 'package:flutter/foundation.dart';

const blockchainTxVersion = 3;

extension KeychainTransactionBuilder on archethic.Transaction {
/// Builds a creation of keychain Transaction
static Future<archethic.Transaction> build({
Expand All @@ -26,10 +30,6 @@ extension KeychainTransactionBuilder on archethic.Transaction {
),
);

final blockchainTxVersion = int.parse(
(await apiService.getBlockchainVersion()).version.transaction,
);

final keychainTransaction = archethic.Transaction(
type: 'keychain',
version: blockchainTxVersion,
Expand Down
54 changes: 4 additions & 50 deletions lib/modules/aeswap/application/contracts/archethic_contract.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
/// SPDX-License-Identifier: AGPL-3.0-or-later
// ignore_for_file: avoid_redundant_argument_values

import 'dart:async';
import 'dart:math';
import 'dart:typed_data';
Expand All @@ -13,6 +15,8 @@ import 'package:archethic_dapp_framework_flutter/archethic_dapp_framework_flutte
import 'package:archethic_lib_dart/archethic_lib_dart.dart' as archethic;
import 'package:decimal/decimal.dart';

const blockchainTxVersion = 3;

class ArchethicContract with aedappfm.TransactionMixin {
const ArchethicContract({
required this.apiService,
Expand Down Expand Up @@ -99,9 +103,6 @@ class ArchethicContract with aedappfm.TransactionMixin {
publicKey: storageNoncePublicKey,
);

final blockchainTxVersion = int.parse(
(await apiService.getBlockchainVersion()).version.transaction,
);
final originPrivateKey = apiService.getOriginKey();

final transactionPool = archethic.Transaction(
Expand Down Expand Up @@ -135,9 +136,6 @@ class ArchethicContract with aedappfm.TransactionMixin {
transactionPool,
apiService,
);
final blockchainTxVersion = int.parse(
(await apiService.getBlockchainVersion()).version.transaction,
);

final transactionTransfer = archethic.Transaction(
type: 'transfer',
Expand Down Expand Up @@ -192,10 +190,6 @@ class ArchethicContract with aedappfm.TransactionMixin {
final token2minAmount =
Decimal.parse('$token2AmountSorted') * slippagePourcent.toDecimal();

final blockchainTxVersion = int.parse(
(await apiService.getBlockchainVersion()).version.transaction,
);

final transactionAdd = archethic.Transaction(
type: 'transfer',
version: blockchainTxVersion,
Expand Down Expand Up @@ -308,10 +302,6 @@ class ArchethicContract with aedappfm.TransactionMixin {
final token2minAmount =
Decimal.parse('$token2AmountSorted') * slippagePourcent.toDecimal();

final blockchainTxVersion = int.parse(
(await apiService.getBlockchainVersion()).version.transaction,
);

final transactionLiquidity = archethic.Transaction(
type: 'transfer',
version: blockchainTxVersion,
Expand Down Expand Up @@ -363,10 +353,6 @@ class ArchethicContract with aedappfm.TransactionMixin {
return aedappfm.Result.guard(() async {
const burnAddress =
'00000000000000000000000000000000000000000000000000000000000000000000';
final blockchainTxVersion = int.parse(
(await apiService.getBlockchainVersion()).version.transaction,
);

final transactionLiquidity = archethic.Transaction(
type: 'transfer',
version: blockchainTxVersion,
Expand Down Expand Up @@ -423,10 +409,6 @@ class ArchethicContract with aedappfm.TransactionMixin {
double outputAmount,
) async {
return aedappfm.Result.guard(() async {
final blockchainTxVersion = int.parse(
(await apiService.getBlockchainVersion()).version.transaction,
);

final minToReceive = (Decimal.parse(outputAmount.toString()) *
(Decimal.parse('100') - Decimal.parse(slippage.toString())) /
Decimal.parse('100'))
Expand Down Expand Up @@ -468,10 +450,6 @@ class ArchethicContract with aedappfm.TransactionMixin {
double amount,
) async {
return aedappfm.Result.guard(() async {
final blockchainTxVersion = int.parse(
(await apiService.getBlockchainVersion()).version.transaction,
);

final transaction = archethic.Transaction(
type: 'transfer',
version: blockchainTxVersion,
Expand All @@ -498,10 +476,6 @@ class ArchethicContract with aedappfm.TransactionMixin {
double amount,
) async {
return aedappfm.Result.guard(() async {
final blockchainTxVersion = int.parse(
(await apiService.getBlockchainVersion()).version.transaction,
);

final transaction = archethic.Transaction(
type: 'transfer',
version: blockchainTxVersion,
Expand All @@ -525,10 +499,6 @@ class ArchethicContract with aedappfm.TransactionMixin {
String level,
) async {
return aedappfm.Result.guard(() async {
final blockchainTxVersion = int.parse(
(await apiService.getBlockchainVersion()).version.transaction,
);

final transaction = archethic.Transaction(
type: 'transfer',
version: blockchainTxVersion,
Expand Down Expand Up @@ -566,10 +536,6 @@ class ArchethicContract with aedappfm.TransactionMixin {
String level,
) async {
return aedappfm.Result.guard(() async {
final blockchainTxVersion = int.parse(
(await apiService.getBlockchainVersion()).version.transaction,
);

final transaction = archethic.Transaction(
type: 'transfer',
version: blockchainTxVersion,
Expand Down Expand Up @@ -597,10 +563,6 @@ class ArchethicContract with aedappfm.TransactionMixin {
String farmGenesisAddress,
) async {
return aedappfm.Result.guard(() async {
final blockchainTxVersion = int.parse(
(await apiService.getBlockchainVersion()).version.transaction,
);

final transaction = archethic.Transaction(
type: 'transfer',
version: blockchainTxVersion,
Expand All @@ -622,10 +584,6 @@ class ArchethicContract with aedappfm.TransactionMixin {
String depositId,
) async {
return aedappfm.Result.guard(() async {
final blockchainTxVersion = int.parse(
(await apiService.getBlockchainVersion()).version.transaction,
);

final transaction = archethic.Transaction(
type: 'transfer',
version: blockchainTxVersion,
Expand All @@ -649,10 +607,6 @@ class ArchethicContract with aedappfm.TransactionMixin {
String depositId,
) async {
return aedappfm.Result.guard(() async {
final blockchainTxVersion = int.parse(
(await apiService.getBlockchainVersion()).version.transaction,
);

final transaction = archethic.Transaction(
type: 'transfer',
version: blockchainTxVersion,
Expand Down
20 changes: 12 additions & 8 deletions lib/service/app_service.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
/// SPDX-License-Identifier: AGPL-3.0-or-later
// ignore_for_file: avoid_redundant_argument_values

import 'dart:async';
import 'dart:convert';
import 'dart:math';
Expand All @@ -24,6 +26,8 @@ import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
import 'package:logging/logging.dart';

const blockchainTxVersion = 3;

class AppService {
AppService({
required this.apiService,
Expand Down Expand Up @@ -347,13 +351,16 @@ class AppService {
'>> START getRecentTransactions : ${DateTime.now()}',
);

final _localRecentTransactionList =
List<RecentTransaction>.from(localRecentTransactionList);

// get the most recent movement in cache
var mostRecentTimestamp = 0;
if (localRecentTransactionList.isNotEmpty) {
localRecentTransactionList.sort(
if (_localRecentTransactionList.isNotEmpty) {
_localRecentTransactionList.sort(
(a, b) => b.timestamp!.compareTo(a.timestamp!),
);
mostRecentTimestamp = localRecentTransactionList.first.timestamp ?? 0;
mostRecentTimestamp = _localRecentTransactionList.first.timestamp ?? 0;
}
var recentTransactions = <RecentTransaction>[];

Expand All @@ -366,7 +373,7 @@ class AppService {
var index = lastIndex[genesisAddress] ?? 0;
String addressToSearch;
var iterMax = 10;
recentTransactions.addAll(localRecentTransactionList);
recentTransactions.addAll(_localRecentTransactionList);

while (index > 0 && iterMax > 0) {
addressToSearch = uint8ListToHex(
Expand All @@ -376,7 +383,7 @@ class AppService {
),
);
_logger.info('addressToSearch : $addressToSearch');
if (localRecentTransactionList.any(
if (_localRecentTransactionList.any(
(element) =>
element.address!.toUpperCase() == addressToSearch.toUpperCase(),
)) {
Expand Down Expand Up @@ -951,9 +958,6 @@ class AppService {
) async {
final lastTransactionMap =
await apiService.getLastTransaction([address], request: 'chainLength');
final blockchainTxVersion = int.parse(
(await apiService.getBlockchainVersion()).version.transaction,
);

final transaction = Transaction(
type: 'transfer',
Expand Down
4 changes: 1 addition & 3 deletions lib/util/keychain_util.dart
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import 'package:archethic_lib_dart/archethic_lib_dart.dart';
import 'package:event_taxi/event_taxi.dart';
import 'package:logging/logging.dart';

const blockchainTxVersion = 3;
mixin KeychainServiceMixin {
final kMainDerivation = "m/650'/";

Expand Down Expand Up @@ -48,9 +49,6 @@ mixin KeychainServiceMixin {
) async {
final _logger = Logger('createKeyChainAccess');

final blockchainTxVersion = int.parse(
(await apiService.getBlockchainVersion()).version.transaction,
);
final originPrivateKey = apiService.getOriginKey();

/// Create Keychain Access for wallet
Expand Down

0 comments on commit 4f2abe2

Please sign in to comment.