@drift-labs/sdk
Version:
SDK for Drift Protocol
110 lines (109 loc) • 4.63 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.createClient = exports.CommitmentLevel = exports.LaserSubscribe = exports.getLaserCompressionAlgorithms = exports.getLaserCommitmentLevel = exports.getLaserSubscribe = exports.CompressionAlgorithms = exports.LaserCommitmentLevel = void 0;
const yellowstone_grpc_1 = require("@triton-one/yellowstone-grpc");
Object.defineProperty(exports, "CommitmentLevel", { enumerable: true, get: function () { return yellowstone_grpc_1.CommitmentLevel; } });
// Lazy-loaded module reference for helius-laserstream
let laserStreamModule = null;
let laserStreamLoadError = null;
// Try to load helius-laserstream (it's an optional dependency that may not be available on all platforms)
async function loadLaserStream() {
if (laserStreamModule) {
return laserStreamModule;
}
if (laserStreamLoadError) {
throw laserStreamLoadError;
}
try {
laserStreamModule = await Promise.resolve().then(() => __importStar(require('helius-laserstream')));
return laserStreamModule;
}
catch (err) {
laserStreamLoadError = new Error(`helius-laserstream is not available on this platform. ` +
`LaserStream functionality requires Linux or macOS. ` +
`Original error: ${err instanceof Error ? err.message : String(err)}`);
throw laserStreamLoadError;
}
}
// Lazy getters for LaserStream exports - these throw helpful errors if the module isn't available
exports.LaserCommitmentLevel = new Proxy({}, {
get(_target, prop) {
// Return placeholder values for type checking - actual usage should go through getLaserCommitmentLevel()
const values = {
PROCESSED: 0,
CONFIRMED: 1,
FINALIZED: 2,
};
return values[prop];
},
});
exports.CompressionAlgorithms = new Proxy({}, {
get(_target, prop) {
const values = {
identity: 0,
deflate: 1,
gzip: 2,
zstd: 3,
};
return values[prop];
},
});
// Async function to get the actual LaserSubscribe function
async function getLaserSubscribe() {
const module = await loadLaserStream();
return module.subscribe;
}
exports.getLaserSubscribe = getLaserSubscribe;
// Async function to get actual LaserCommitmentLevel
async function getLaserCommitmentLevel() {
const module = await loadLaserStream();
return module.CommitmentLevel;
}
exports.getLaserCommitmentLevel = getLaserCommitmentLevel;
// Async function to get actual CompressionAlgorithms
async function getLaserCompressionAlgorithms() {
const module = await loadLaserStream();
return module.CompressionAlgorithms;
}
exports.getLaserCompressionAlgorithms = getLaserCompressionAlgorithms;
let laserSubscribeWarned = false;
// Backwards-compatible wrapper that lazy-loads the module and warns once.
function LaserSubscribe(...args) {
if (!laserSubscribeWarned) {
laserSubscribeWarned = true;
console.warn('LaserSubscribe is deprecated. Use getLaserSubscribe() for optional helius-laserstream support.');
}
return getLaserSubscribe().then((subscribe) => subscribe(...args));
}
exports.LaserSubscribe = LaserSubscribe;
// Export a function to create a new Client instance
async function createClient(...args) {
const { default: Client_ } = await Promise.resolve().then(() => __importStar(require('@triton-one/yellowstone-grpc')));
const client = new Client_(...args);
await client.connect();
return client;
}
exports.createClient = createClient;