30 lines
1.1 KiB
TypeScript
30 lines
1.1 KiB
TypeScript
import { calculateSponsoringSplit, PLATFORM_COMMISSIONS } from './platformCommissions'
|
|
import { PLATFORM_BITCOIN_ADDRESS } from './platformConfig'
|
|
import type { SponsoringPaymentRequest, SponsoringPaymentResult } from './sponsoringPaymentTypes'
|
|
|
|
export function validateSponsoringAmount(amount: number): { valid: boolean; error?: string } {
|
|
if (amount !== PLATFORM_COMMISSIONS.sponsoring.total) {
|
|
return {
|
|
valid: false,
|
|
error: `Invalid sponsoring amount: ${amount} BTC. Expected ${PLATFORM_COMMISSIONS.sponsoring.total} BTC`,
|
|
}
|
|
}
|
|
return { valid: true }
|
|
}
|
|
|
|
export function buildErrorResult(error: string, request: SponsoringPaymentRequest): SponsoringPaymentResult {
|
|
return {
|
|
success: false,
|
|
error,
|
|
split: calculateSponsoringSplit(),
|
|
platformAddress: PLATFORM_BITCOIN_ADDRESS,
|
|
authorAddress: request.authorMainnetAddress,
|
|
}
|
|
}
|
|
|
|
export function isValidBitcoinAddress(address: string): boolean {
|
|
// Basic validation: starts with 1, 3, or bc1
|
|
const bitcoinAddressRegex = /^(1|3|bc1)[a-zA-Z0-9]{25,62}$/
|
|
return bitcoinAddressRegex.test(address)
|
|
}
|