38 lines
1.3 KiB
TypeScript
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(),
|
|
})
|
|
}
|
|
}
|