@faast/tron-payments
Version:
Library to assist in processing tron payments, such as deriving addresses and sweeping funds
56 lines (47 loc) • 1.34 kB
text/typescript
import TronWeb from 'tronweb'
import { DECIMAL_PLACES } from './constants'
import { createUnitConverters } from '@faast/payments-common'
const {
toMainDenominationBigNumber,
toMainDenominationString,
toMainDenominationNumber,
toBaseDenominationBigNumber,
toBaseDenominationString,
toBaseDenominationNumber,
} = createUnitConverters(DECIMAL_PLACES)
export {
toMainDenominationBigNumber,
toMainDenominationString,
toMainDenominationNumber,
toBaseDenominationBigNumber,
toBaseDenominationString,
toBaseDenominationNumber,
}
export function isValidXprv(xprv: string): boolean {
return xprv.startsWith('xprv')
}
export function isValidXpub(xpub: string): boolean {
return xpub.startsWith('xpub')
}
export function isValidAddress(address: string): boolean {
return TronWeb.isAddress(address)
}
export function isValidExtraId(extraId: string): boolean {
return false
}
export function isValidPrivateKey(privateKey: string): boolean {
try {
privateKeyToAddress(privateKey)
return true
} catch (e) {
return false
}
}
export function privateKeyToAddress(privateKey: string): string {
const address = TronWeb.address.fromPrivateKey(privateKey)
if (isValidAddress(address)) {
return address
} else {
throw new Error('Validation failed for address derived from private key')
}
}