Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,8 @@ class _FakeAuthService implements IAuthService {
bool signOutCalled = false;
({String walletName, String password, AuthOptions options})? lastSignInArgs;
({String walletName, String password, AuthOptions options})? lastRegisterArgs;
bool ensureHealthyReturn = true;
int ensureHealthyCalls = 0;

@override
Stream<KdfUser?> get authStateChanges => _authStateController.stream;
Expand Down Expand Up @@ -198,6 +200,12 @@ class _FakeAuthService implements IAuthService {
required String currentPassword,
required String newPassword,
}) async => throw UnimplementedError();

@override
Future<bool> ensureKdfHealthy() async {
ensureHealthyCalls++;
return ensureHealthyReturn;
}
}

void main() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
import 'dart:convert';
import 'dart:developer' show log;

import 'package:komodo_defi_rpc_methods/komodo_defi_rpc_methods.dart';
import 'package:komodo_defi_sdk/src/activation/_activation.dart';
import 'package:komodo_defi_types/komodo_defi_types.dart';
Expand Down Expand Up @@ -82,16 +85,39 @@ class BchActivationStrategy extends ProtocolActivationStrategy {
),
);

final slpTokensRequests = children
?.map(
(child) => TokensRequest(ticker: child.id.id),
)
.toList() ??
[];

// Debug logging for BCH activation
log(
'[RPC] Activating BCH platform: ${asset.id.id}',
name: 'BchActivationStrategy',
);
log(
'[RPC] Activation parameters: ${jsonEncode({
'ticker': asset.id.id,
'protocol': asset.protocol.subClass.formatted,
'slp_token_count': children?.length ?? 0,
'slp_tokens': children?.map((e) => e.id.id).toList() ?? [],
'activation_params': bchConfig.toRpcParams(),
})}',
name: 'BchActivationStrategy',
);

// Enable BCH with SLP support
final response = await client.rpc.slp.enableBchWithTokens(
ticker: asset.id.id,
params: bchConfig,
slpTokensRequests: children
?.map(
(child) => TokensRequest(ticker: child.id.id),
)
.toList() ??
[],
slpTokensRequests: slpTokensRequests,
);

log(
'[RPC] Successfully activated BCH with ${children?.length ?? 0} SLP tokens',
name: 'BchActivationStrategy',
);

yield ActivationProgress(
Expand Down Expand Up @@ -129,10 +155,29 @@ class BchActivationStrategy extends ProtocolActivationStrategy {
),
);

// Debug logging for SLP token activation
log(
'[RPC] Activating SLP token: ${asset.id.id}',
name: 'BchActivationStrategy',
);
log(
'[RPC] Activation parameters: ${jsonEncode({
'ticker': asset.id.id,
'protocol': asset.protocol.subClass.formatted,
'parent_id': asset.id.parentId?.id,
})}',
name: 'BchActivationStrategy',
);

await client.rpc.slp.enableSlpToken(
ticker: asset.id.id,
params: SlpActivationParams(),
);

log(
'[RPC] Successfully activated SLP token: ${asset.id.id}',
name: 'BchActivationStrategy',
);

yield ActivationProgress.success(
details: ActivationProgressDetails(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
import 'dart:convert';
import 'dart:developer' show log;

import 'package:komodo_defi_rpc_methods/komodo_defi_rpc_methods.dart';
import 'package:komodo_defi_sdk/src/activation/_activation.dart';
import 'package:komodo_defi_types/komodo_defi_type_utils.dart';
Expand Down Expand Up @@ -60,13 +63,38 @@ class CustomErc20ActivationStrategy extends ProtocolActivationStrategy {
throw StateError('Protocol data is missing from custom token config');
}

final activationParams = Erc20ActivationParams.fromJsonConfig(
asset.protocol.config,
);
final platform = protocolData.value<String>('platform');
final contractAddress = protocolData.value<String>('contract_address');

// Debug logging for custom ERC20 token activation
log(
'[RPC] Activating custom ERC20 token: ${asset.id.id}',
name: 'CustomErc20ActivationStrategy',
);
log(
'[RPC] Activation parameters: ${jsonEncode({
'ticker': asset.id.id,
'protocol': asset.protocol.subClass.formatted,
'platform': platform,
'contract_address': contractAddress,
'activation_params': activationParams.toRpcParams(),
})}',
name: 'CustomErc20ActivationStrategy',
);

await client.rpc.erc20.enableCustomErc20Token(
ticker: asset.id.id,
activationParams: Erc20ActivationParams.fromJsonConfig(
asset.protocol.config,
),
platform: protocolData.value<String>('platform'),
contractAddress: protocolData.value<String>('contract_address'),
activationParams: activationParams,
platform: platform,
contractAddress: contractAddress,
);

log(
'[RPC] Successfully activated custom ERC20 token: ${asset.id.id}',
name: 'CustomErc20ActivationStrategy',
);

yield ActivationProgress.success(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
import 'dart:convert';
import 'dart:developer' show log;

import 'package:komodo_defi_rpc_methods/komodo_defi_rpc_methods.dart';
import 'package:komodo_defi_sdk/src/activation/_activation.dart';
import 'package:komodo_defi_types/komodo_defi_types.dart';
Expand Down Expand Up @@ -63,11 +66,34 @@ class Erc20ActivationStrategy extends ProtocolActivationStrategy {
);

try {
final activationParams = Erc20ActivationParams.fromJsonConfig(
asset.protocol.config,
);

// Debug logging for ERC20 token activation
log(
'[RPC] Activating ERC20 token: ${asset.id.id}',
name: 'Erc20ActivationStrategy',
);
log(
'[RPC] Activation parameters: ${jsonEncode({
'ticker': asset.id.id,
'protocol': asset.protocol.subClass.formatted,
'parent_id': asset.id.parentId?.id,
'activation_params': activationParams.toRpcParams(),
'priv_key_policy': privKeyPolicy.toJson(),
})}',
name: 'Erc20ActivationStrategy',
);

await client.rpc.erc20.enableErc20(
ticker: asset.id.id,
activationParams: Erc20ActivationParams.fromJsonConfig(
asset.protocol.config,
),
activationParams: activationParams,
);

log(
'[RPC] Successfully activated ERC20 token: ${asset.id.id}',
name: 'Erc20ActivationStrategy',
);

yield ActivationProgress.success(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
import 'dart:convert';
import 'dart:developer' show log;

import 'package:komodo_defi_rpc_methods/komodo_defi_rpc_methods.dart';
import 'package:komodo_defi_sdk/src/activation/_activation.dart';
import 'package:komodo_defi_sdk/src/transaction_history/strategies/etherscan_transaction_history_strategy.dart'
Expand Down Expand Up @@ -71,19 +74,43 @@ class EthTaskActivationStrategy extends ProtocolActivationStrategy {
),
);

final activationParams = EthWithTokensActivationParams.fromJson(asset.protocol.config)
.copyWith(
erc20Tokens:
children
?.map((e) => TokensRequest(ticker: e.id.id))
.toList() ??
[],
txHistory: const EtherscanProtocolHelper()
.shouldEnableTransactionHistory(asset),
privKeyPolicy: privKeyPolicy,
);

// Debug logging for ETH task-based activation
log(
'[RPC] Activating ETH platform (task-based): ${asset.id.id}',
name: 'EthTaskActivationStrategy',
);
log(
'[RPC] Activation parameters: ${jsonEncode({
'ticker': asset.id.id,
'protocol': asset.protocol.subClass.formatted,
'token_count': children?.length ?? 0,
'tokens': children?.map((e) => e.id.id).toList() ?? [],
'activation_params': activationParams.toRpcParams(),
'priv_key_policy': privKeyPolicy.toJson(),
})}',
name: 'EthTaskActivationStrategy',
);

final taskResponse = await client.rpc.erc20.enableEthInit(
ticker: asset.id.id,
params: EthWithTokensActivationParams.fromJson(asset.protocol.config)
.copyWith(
erc20Tokens:
children
?.map((e) => TokensRequest(ticker: e.id.id))
.toList() ??
[],
txHistory: const EtherscanProtocolHelper()
.shouldEnableTransactionHistory(asset),
privKeyPolicy: privKeyPolicy,
),
params: activationParams,
);

log(
'[RPC] Task initiated for ${asset.id.id}, task_id: ${taskResponse.taskId}',
name: 'EthTaskActivationStrategy',
);

yield ActivationProgress(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
import 'dart:convert';
import 'dart:developer' show log;

import 'package:komodo_defi_rpc_methods/komodo_defi_rpc_methods.dart';
import 'package:komodo_defi_sdk/src/activation/_activation.dart';
import 'package:komodo_defi_sdk/src/transaction_history/strategies/etherscan_transaction_history_strategy.dart'
Expand Down Expand Up @@ -90,19 +93,43 @@ class EthWithTokensActivationStrategy extends ProtocolActivationStrategy {
),
);

final activationParams = EthWithTokensActivationParams.fromJson(asset.protocol.config)
.copyWith(
erc20Tokens:
children
?.map((e) => TokensRequest(ticker: e.id.id))
.toList() ??
[],
txHistory: const EtherscanProtocolHelper()
.shouldEnableTransactionHistory(asset),
privKeyPolicy: privKeyPolicy,
);

// Debug logging for ETH platform activation
log(
'[RPC] Activating ETH platform: ${asset.id.id}',
name: 'EthWithTokensActivationStrategy',
);
log(
'[RPC] Activation parameters: ${jsonEncode({
'ticker': asset.id.id,
'protocol': asset.protocol.subClass.formatted,
'token_count': children?.length ?? 0,
'tokens': children?.map((e) => e.id.id).toList() ?? [],
'activation_params': activationParams.toRpcParams(),
'priv_key_policy': privKeyPolicy.toJson(),
})}',
name: 'EthWithTokensActivationStrategy',
);

await client.rpc.erc20.enableEthWithTokens(
ticker: asset.id.id,
params: EthWithTokensActivationParams.fromJson(asset.protocol.config)
.copyWith(
erc20Tokens:
children
?.map((e) => TokensRequest(ticker: e.id.id))
.toList() ??
[],
txHistory: const EtherscanProtocolHelper()
.shouldEnableTransactionHistory(asset),
privKeyPolicy: privKeyPolicy,
),
params: activationParams,
);

log(
'[RPC] Successfully activated ETH platform: ${asset.id.id} with ${children?.length ?? 0} tokens',
name: 'EthWithTokensActivationStrategy',
);

yield const ActivationProgress(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
import 'dart:convert';
import 'dart:developer' show log;

import 'package:komodo_defi_rpc_methods/komodo_defi_rpc_methods.dart';
import 'package:komodo_defi_sdk/src/activation/_activation.dart';
import 'package:komodo_defi_types/komodo_defi_types.dart';
Expand Down Expand Up @@ -37,11 +40,33 @@ class QtumActivationStrategy extends ProtocolActivationStrategy {
);

try {
final activationParams = asset.protocol.defaultActivationParams(
privKeyPolicy: privKeyPolicy,
);

// Debug logging for QTUM activation
log(
'[RPC] Activating QTUM coin: ${asset.id.id}',
name: 'QtumActivationStrategy',
);
log(
'[RPC] Activation parameters: ${jsonEncode({
'ticker': asset.id.id,
'protocol': asset.protocol.subClass.formatted,
'activation_params': activationParams.toRpcParams(),
'priv_key_policy': privKeyPolicy.toJson(),
})}',
name: 'QtumActivationStrategy',
);

final taskResponse = await client.rpc.qtum.enableQtumInit(
ticker: asset.id.id,
params: asset.protocol.defaultActivationParams(
privKeyPolicy: privKeyPolicy,
),
params: activationParams,
);

log(
'[RPC] Task initiated for ${asset.id.id}, task_id: ${taskResponse.taskId}',
name: 'QtumActivationStrategy',
);

var isComplete = false;
Expand Down
Loading
Loading