UNPKG

@drift-labs/sdk-browser

Version:
90 lines (89 loc) 3.88 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getPublicKeyAndSourceFromOracleId = exports.getOracleId = exports.getOracleSourceFromNum = exports.getOracleSourceNum = void 0; const web3_js_1 = require("@solana/web3.js"); const types_1 = require("../types"); function getOracleSourceNum(source) { if ('pyth' in source) return types_1.OracleSourceNum.PYTH; if ('pyth1K' in source) return types_1.OracleSourceNum.PYTH_1K; if ('pyth1M' in source) return types_1.OracleSourceNum.PYTH_1M; if ('pythPull' in source) return types_1.OracleSourceNum.PYTH_PULL; if ('pyth1KPull' in source) return types_1.OracleSourceNum.PYTH_1K_PULL; if ('pyth1MPull' in source) return types_1.OracleSourceNum.PYTH_1M_PULL; if ('switchboard' in source) return types_1.OracleSourceNum.SWITCHBOARD; if ('quoteAsset' in source) return types_1.OracleSourceNum.QUOTE_ASSET; if ('pythStableCoin' in source) return types_1.OracleSourceNum.PYTH_STABLE_COIN; if ('pythStableCoinPull' in source) return types_1.OracleSourceNum.PYTH_STABLE_COIN_PULL; if ('prelaunch' in source) return types_1.OracleSourceNum.PRELAUNCH; if ('switchboardOnDemand' in source) return types_1.OracleSourceNum.SWITCHBOARD_ON_DEMAND; if ('pythLazer' in source) return types_1.OracleSourceNum.PYTH_LAZER; if ('pythLazer1K' in source) return types_1.OracleSourceNum.PYTH_LAZER_1K; if ('pythLazer1M' in source) return types_1.OracleSourceNum.PYTH_LAZER_1M; if ('pythLazerStableCoin' in source) return types_1.OracleSourceNum.PYTH_LAZER_STABLE_COIN; throw new Error('Invalid oracle source'); } exports.getOracleSourceNum = getOracleSourceNum; function getOracleSourceFromNum(sourceNum) { if (sourceNum === types_1.OracleSourceNum.PYTH) return 'pyth'; if (sourceNum === types_1.OracleSourceNum.PYTH_1K) return 'pyth1K'; if (sourceNum === types_1.OracleSourceNum.PYTH_1M) return 'pyth1M'; if (sourceNum === types_1.OracleSourceNum.PYTH_PULL) return 'pythPull'; if (sourceNum === types_1.OracleSourceNum.PYTH_1K_PULL) return 'pyth1KPull'; if (sourceNum === types_1.OracleSourceNum.PYTH_1M_PULL) return 'pyth1MPull'; if (sourceNum === types_1.OracleSourceNum.SWITCHBOARD) return 'switchboard'; if (sourceNum === types_1.OracleSourceNum.QUOTE_ASSET) return 'quoteAsset'; if (sourceNum === types_1.OracleSourceNum.PYTH_STABLE_COIN) return 'pythStableCoin'; if (sourceNum === types_1.OracleSourceNum.PYTH_STABLE_COIN_PULL) return 'pythStableCoinPull'; if (sourceNum === types_1.OracleSourceNum.PRELAUNCH) return 'prelaunch'; if (sourceNum === types_1.OracleSourceNum.SWITCHBOARD_ON_DEMAND) return 'switchboardOnDemand'; if (sourceNum === types_1.OracleSourceNum.PYTH_LAZER) return 'pythLazer'; if (sourceNum === types_1.OracleSourceNum.PYTH_LAZER_1K) return 'pythLazer1K'; if (sourceNum === types_1.OracleSourceNum.PYTH_LAZER_1M) return 'pythLazer1M'; if (sourceNum === types_1.OracleSourceNum.PYTH_LAZER_STABLE_COIN) return 'pythLazerStableCoin'; throw new Error('Invalid oracle source'); } exports.getOracleSourceFromNum = getOracleSourceFromNum; function getOracleId(publicKey, source) { return `${publicKey.toBase58()}-${getOracleSourceNum(source)}`; } exports.getOracleId = getOracleId; function getPublicKeyAndSourceFromOracleId(oracleId) { const [publicKey, source] = oracleId.split('-'); return { publicKey: new web3_js_1.PublicKey(publicKey), source: getOracleSourceFromNum(parseInt(source)), }; } exports.getPublicKeyAndSourceFromOracleId = getPublicKeyAndSourceFromOracleId;