@ixily/activ
Version:
Alpha Capture Trade Idea Verification. Blockchain ownership proven trade ideas and strategies.
95 lines (85 loc) • 2.72 kB
text/typescript
import {
IActivDirectSearchAssetParams,
ILitAction,
CONTRACT_INTERFACES,
} from '../../..'
const testPricing = async (
params: IActivDirectSearchAssetParams,
): Promise<CONTRACT_INTERFACES.IPrice> => {
const headers =
// params.key !== undefined && params.key !== ''
// ? {
// 'X-MBX-APIKEY': params.key!,
// 'X-MBX-APISECRET': params.secret!,
// accept: '*/*',
// Origin: 'https://api.binance.com/',
// } :
{
accept: '*/*',
Origin: 'https://api.binance.com/',
}
const fetcherOptionHeaders = {
url:
'https://api.binance.com/api/v3/ticker/bookTicker?symbol=' +
params.symbol,
method: 'GET',
headers,
}
const data = await fetch(
fetcherOptionHeaders.url,
fetcherOptionHeaders as unknown as RequestInit,
).then((res) => res.json())
if (data?.msg) {
if (data?.msg?.length > 0) {
throw new Error('Binance Api Error:' + data.msg)
}
}
// must be alphabetical order
// const globalPrice = parseFloat(data.price);
const ask = parseFloat(data.askPrice)
const bid = parseFloat(data.bidPrice)
let globalPrice = (ask + bid) / 2
const askAfterDot = ask.toString().split('.')
let askDecimals = 0
if (askAfterDot.length > 1) {
askDecimals = askAfterDot[1].length
}
const bidAfterDot = bid.toString().split('.')
let bidDecimals = 0
if (bidAfterDot.length > 1) {
bidDecimals = bidAfterDot[1].length
}
const decimals = Math.max(askDecimals, bidDecimals)
globalPrice = parseFloat(globalPrice.toFixed(decimals))
const timestamp = Date.now() // Math.floor(Date.now() / 10000) * 10000; // to seconds downscaled
const priceObj: CONTRACT_INTERFACES.IPrice = {
ask,
bid,
globalPrice,
// nonce: nonce(timestamp, "Binance", symbol, globalPrice),
provider: 'Binance',
symbol: params.symbol,
timestamp,
}
if (params.useProxy === true) {
priceObj.fromProxy = 'https://api.ixily.io/v1/proxy'
}
return priceObj
}
/*
Final action:
Network: Lit Chronicle
Onwer Account Wallet: FIRED! => Mint&Grant&Burned! => SECURED!
PKP id: 54926627617813999926323273579003809785133112092147275613318244148720832946777
PKP public key: 0x044a922c8424ebc1e51144c2552d782ae4322a3091fb2b783f054eae83a44ae3282e66d23d27ffea491376c88b8bd931742cbc5a4cd49ddeb9e6f7c9f4fc419fee
PKP ETH: 0x62555428470948d1861D91701b6C54f53501076a
Action ipfsId: QmfLHpfQ5LRg2m3DCeuPLteXnrc24C5KH9UyeFywYfZwfD
granted?: true
*/
export const GET_PRICE_BINANCE_V2: ILitAction = {
ipfsId: 'QmfLHpfQ5LRg2m3DCeuPLteXnrc24C5KH9UyeFywYfZwfD',
publicKey:
'0x044a922c8424ebc1e51144c2552d782ae4322a3091fb2b783f054eae83a44ae3282e66d23d27ffea491376c88b8bd931742cbc5a4cd49ddeb9e6f7c9f4fc419fee',
keyEthAddress: '0x62555428470948d1861D91701b6C54f53501076a',
testPricing,
}