@layerzerolabs/hyperliquid-composer
Version:
LayerZero Labs reference EVM OmniChain Fungible Token (OFT) implementation for Hyperliquid
47 lines (37 loc) • 2 kB
text/typescript
import { createModuleLogger, setDefaultLogLevel } from '@layerzerolabs/io-devtools'
import { getSpotPairDeployAuctionStatus } from '@/operations'
import { LOGGER_MODULES } from '@/types/cli-constants'
import { BaseArgs } from '@/types'
export async function spotAuctionStatus(args: BaseArgs): Promise<void> {
setDefaultLogLevel(args.logLevel)
const logger = createModuleLogger(LOGGER_MODULES.SPOT_AUCTION_STATUS, args.logLevel)
const isTestnet = args.network === 'testnet'
logger.verbose(`Fetching spot pair deploy auction status for ${isTestnet ? 'testnet' : 'mainnet'}`)
try {
const auctionStatus = await getSpotPairDeployAuctionStatus(isTestnet, args.logLevel)
logger.info(`Spot Pair Deploy Auction Status:`)
logger.info('='.repeat(50))
const startDate = new Date(auctionStatus.startTimeSeconds * 1000)
const endDate = new Date((auctionStatus.startTimeSeconds + auctionStatus.durationSeconds) * 1000)
const now = new Date()
const isActive = now >= startDate && now <= endDate
logger.info(`Start Time: ${startDate.toISOString()}`)
logger.info(`End Time: ${endDate.toISOString()}`)
logger.info(
`Duration: ${auctionStatus.durationSeconds} seconds (${Math.round(auctionStatus.durationSeconds / 3600)} hours)`
)
logger.info(`Status: ${isActive ? 'Active' : 'Inactive'}`)
logger.info(`Start Gas: ${auctionStatus.startGas} HYPE`)
logger.info(`Current Gas: ${auctionStatus.currentGas} HYPE`)
logger.info(`End Gas: ${auctionStatus.endGas || 'Not set'}`)
if (isActive) {
const timeLeft = endDate.getTime() - now.getTime()
const hoursLeft = Math.round(timeLeft / (1000 * 60 * 60))
logger.info(`Time Remaining: ~${hoursLeft} hours`)
}
logger.info('='.repeat(50))
} catch (error) {
logger.error(`Failed to fetch spot auction status: ${error}`)
process.exit(1)
}
}