import { EnvModule } from '../../../modules/chunks/env.module'
import {
	IActivDirectSearchAssetParams,
	ILitAction,
	CONTRACT_INTERFACES,
} from '../../..'

export const DEFAULT_AUTH_IEX_API_KEY =
	process.env.EFAULT_AUTH_IEX_API_KEY || undefined

const testPricing = async (
	params: IActivDirectSearchAssetParams,
): Promise<CONTRACT_INTERFACES.IPrice> => {
	const apiKeyIEX = params.key || DEFAULT_AUTH_IEX_API_KEY
	if (apiKeyIEX === undefined || apiKeyIEX === '') {
		throw new Error('No API key provided for IEX')
	}
	const fetcherOptionHeaders = {
		url:
			'https://cloud.iexapis.com/stable/stock/' +
			params.symbol +
			'/quote?token=' +
			apiKeyIEX +
			'',
		method: 'GET',
	}

	const data = await fetch(
		fetcherOptionHeaders.url,
		fetcherOptionHeaders,
	).then((res) => res.json())

	if (!data.isUSMarketOpen) {
		throw new Error('Market is closed')
	}

	const priceObj: CONTRACT_INTERFACES.IPrice = {
		provider: 'IEX',
		symbol: params.symbol,
		globalPrice: parseFloat(data.latestPrice),
		bid: data.iexBidPrice,
		ask: data.iexAskPrice,
		timestamp: Date.now(),
	}

	return priceObj
}

/*
	Final action:
	Network: Lit Chronicle
	Onwer Account Wallet: FIRED! => Mint&Grant&Burned! => SECURED!
	PKP id: 35651280369606393683066659368524048603511717670838363022543126771412526349198
	PKP public key: 0x04692772a3b8dae75b32724f8540b3d6f1b58d83481acbc25dc553e1140f63f38e5448fec758bf4b3642f9d59adb52a6ec69213ea7c60a8c2aa9705801811fb8d6
	PKP ETH: 0x26EF08558d4a9c2963825c0dbD924d545515d555
	Action ipfsId: QmZYVuAyqNbCWhKtkTqad7xtagpd4vq7J6AuMWNynKKLtf
	granted?: true
*/
export const GET_PRICE_IEX_V2: ILitAction = {
	ipfsId: 'QmZYVuAyqNbCWhKtkTqad7xtagpd4vq7J6AuMWNynKKLtf',
	publicKey:
		'0x04692772a3b8dae75b32724f8540b3d6f1b58d83481acbc25dc553e1140f63f38e5448fec758bf4b3642f9d59adb52a6ec69213ea7c60a8c2aa9705801811fb8d6',
	keyEthAddress: '0x26EF08558d4a9c2963825c0dbD924d545515d555',
	testPricing,
}

// QmNRqvgYJtcpva1w1sAuDwb6gkfaj1J8cxqb8AR8eJzY41
// QmVGc6TescBMrAvRv6WsmpPbeBqT13SckMjsWS6v1JnVub
