🌳
pt0/serverF/ethersF/ethProvRouterF.mts
2import { getEtherTxs as getEtherTxsEtherscan } from '../ethpayF/libEtherscanF.mts'
5export const getEthProv = (networkName = 'homestead') => getEtherscanProv(networkName)
7const isRecoverableTxScanErr = (err: unknown) => {
8 const msg = err instanceof Error ? err.message : ''
9 return msg.includes('is pruned') || msg.includes('rate limit') || msg.includes('TIMEOUT')
12export const getEtherTxs = async ({address, startBlock, endBlock, networkName = 'homestead'}: {
13 address: string, startBlock?: number, endBlock?: number, networkName?: string,
14}) => {
15 try {
16 return await getEtherTxsEtherscan({address, startBlock, endBlock, ethersProvider: getEtherscanProv(networkName)})
17 } catch (err) {
18 if (isRecoverableTxScanErr(err)) {
19 noThrowNotifErr('txScanFailed', {networkName, address}, {err: err instanceof Error ? err.message : String(err)})
20 return []
21 }
22 throw err
23 }