story-research-zapwall/lib/reviewRewardTransfer.ts

38 lines
1.3 KiB
TypeScript

import { automaticTransferService } from './automaticTransfer'
import { lightningAddressService } from './lightningAddress'
import type { ReviewRewardRequest } from './reviewRewardTypes'
export async function transferReviewerPortionIfAvailable(
request: ReviewRewardRequest,
split: { total: number; reviewer: number; platform: number }
): Promise<void> {
let reviewerLightningAddress: string | undefined = request.reviewerLightningAddress
if (!reviewerLightningAddress) {
const address = await lightningAddressService.getLightningAddress(request.reviewerPubkey)
reviewerLightningAddress = address ?? undefined
}
if (reviewerLightningAddress) {
const transferResult = await automaticTransferService.transferReviewerPortion(
reviewerLightningAddress,
request.reviewId,
request.reviewerPubkey,
split.total
)
if (!transferResult.success) {
console.error('Failed to transfer reviewer portion', {
reviewId: request.reviewId,
error: transferResult.error,
timestamp: new Date().toISOString(),
})
}
} else {
console.warn('Reviewer Lightning address not available for automatic transfer', {
reviewId: request.reviewId,
reviewerPubkey: request.reviewerPubkey,
timestamp: new Date().toISOString(),
})
}
}