Add New Wallet Adapter in Wallet Service
Adding New Wallet Providers
1. Create a New Adapter
import { Injectable } from '@nestjs/common';
import { IWalletAdapter, IWalletAdapterWithOtp } from './interfaces/wallet-adapter.interface';
import { OnboardUserDto } from '../dto/onboard-user.dto';
import { UploadVcDto } from '../dto/upload-vc.dto';
import { WatchVcDto } from '../dto/watch-vc.dto';
import { WatchCallbackDto } from '../dto/watch-callback.dto';
@Injectable()
export class NewProviderAdapter implements IWalletAdapter {
private readonly apiBaseUrl: string;
private readonly apiKey: string;
constructor() {
this.apiBaseUrl = process.env.NEW_PROVIDER_API_BASE || '';
this.apiKey = process.env.NEW_PROVIDER_API_KEY || '';
}
async onboardUser(data: OnboardUserDto) {
// Implement user onboarding logic
// Make API calls to the new provider
// Transform responses to match the interface
}
async getAllVCs(userId: string, token: string) {
// Implement VC listing logic
}
async getVCById(userId: string, vcId: string, token: string) {
// Implement VC retrieval logic
}
async uploadVCFromQR(userId: string, qrData: string, token: string) {
// Implement VC upload logic
}
async login(data: any) {
// Implement login logic
}
// Optional: Implement OTP methods if supported
async verifyLogin?(data: any) {
// Implement OTP verification
}
async resendOtp?(data: any) {
// Implement OTP resend
}
// Optional: Implement watching methods if supported
async watchVC?(data: WatchVcDto) {
// Implement VC watching
}
async processCallback?(data: WatchCallbackDto) {
// Implement callback processing
}
}2. Update the Adapter Factory
3. Update Environment Variables
4. Update the Wallet Module
5. Update Configuration
Last updated
