fix(identity-service): ensure BlockchainWalletHandler is initialized

- Add BlockchainEventConsumerService to InfrastructureModule
- Add BlockchainWalletHandler and MpcKeygenCompletedHandler to ApplicationModule
- Inject event handlers into UserApplicationService to force NestJS initialization
- This ensures onModuleInit is called for event handlers, enabling Kafka event consumption

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
hailin 2025-12-07 03:46:55 -08:00
parent 106137224a
commit 493a76117a
2 changed files with 17 additions and 1 deletions

View File

@ -15,6 +15,8 @@ import { ReferralsController } from '@/api/controllers/referrals.controller';
// Application Services
import { UserApplicationService } from '@/application/services/user-application.service';
import { TokenService } from '@/application/services/token.service';
import { BlockchainWalletHandler } from '@/application/event-handlers/blockchain-wallet.handler';
import { MpcKeygenCompletedHandler } from '@/application/event-handlers/mpc-keygen-completed.handler';
// Domain Services
import {
@ -30,6 +32,7 @@ import { MpcKeyShareRepositoryImpl } from '@/infrastructure/persistence/reposito
import { RedisService } from '@/infrastructure/redis/redis.service';
import { EventPublisherService } from '@/infrastructure/kafka/event-publisher.service';
import { MpcEventConsumerService } from '@/infrastructure/kafka/mpc-event-consumer.service';
import { BlockchainEventConsumerService } from '@/infrastructure/kafka/blockchain-event-consumer.service';
import { SmsService } from '@/infrastructure/external/sms/sms.service';
import { BlockchainClientService } from '@/infrastructure/external/blockchain/blockchain-client.service';
import { MpcClientService, MpcWalletService } from '@/infrastructure/external/mpc';
@ -53,6 +56,7 @@ import { JwtAuthGuard } from '@/shared/guards/jwt-auth.guard';
RedisService,
EventPublisherService,
MpcEventConsumerService,
BlockchainEventConsumerService,
SmsService,
MpcClientService,
MpcWalletService,
@ -64,6 +68,7 @@ import { JwtAuthGuard } from '@/shared/guards/jwt-auth.guard';
RedisService,
EventPublisherService,
MpcEventConsumerService,
BlockchainEventConsumerService,
SmsService,
MpcClientService,
MpcWalletService,
@ -92,7 +97,13 @@ export class DomainModule {}
// ============ Application Module ============
@Module({
imports: [DomainModule, InfrastructureModule],
providers: [UserApplicationService, TokenService],
providers: [
UserApplicationService,
TokenService,
// Event Handlers - 通过注入到 UserApplicationService 来确保它们被初始化
BlockchainWalletHandler,
MpcKeygenCompletedHandler,
],
exports: [UserApplicationService, TokenService],
})
export class ApplicationModule {}

View File

@ -16,6 +16,8 @@ import { SmsService } from '@/infrastructure/external/sms/sms.service';
import { EventPublisherService } from '@/infrastructure/kafka/event-publisher.service';
import { BlockchainClientService } from '@/infrastructure/external/blockchain/blockchain-client.service';
import { MpcWalletService } from '@/infrastructure/external/mpc';
import { BlockchainWalletHandler } from '../event-handlers/blockchain-wallet.handler';
import { MpcKeygenCompletedHandler } from '../event-handlers/mpc-keygen-completed.handler';
import { ApplicationError } from '@/shared/exceptions/domain.exception';
import { generateRandomIdentity } from '@/shared/utils';
import { MpcKeygenRequestedEvent } from '@/domain/events';
@ -48,6 +50,9 @@ export class UserApplicationService {
private readonly redisService: RedisService,
private readonly smsService: SmsService,
private readonly eventPublisher: EventPublisherService,
// 注入事件处理器以确保它们被 NestJS 实例化并执行 onModuleInit
private readonly blockchainWalletHandler: BlockchainWalletHandler,
private readonly mpcKeygenCompletedHandler: MpcKeygenCompletedHandler,
) {}
/**