@drift-labs/common
Version:
Common functions for Drift
123 lines • 6.37 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.getDriftEventKey = void 0;
const _1 = require(".");
/**
* Utility method to get a unique key for any drift event.
* @param event
* @returns
*/
const getDriftEventKey = (event) => {
var _a, _b, _c, _d, _e, _f;
const _eventType = event.eventType;
switch (_eventType) {
case 'SwapRecord': {
const _typedEvent = event;
return `${_typedEvent.eventType}_${_typedEvent.user.toString()}_${_typedEvent.txSig}_${_typedEvent.inMarketIndex}_${_typedEvent.outMarketIndex}`;
}
case 'OrderRecord': {
const _typedEvent = event;
return `${_typedEvent.eventType}_${_typedEvent.user.toString()}_${_typedEvent.order.userOrderId}_${_typedEvent.order.orderId}`;
}
case 'CurveRecord': {
const _typedEvent = event;
return `${_typedEvent.eventType}_${_typedEvent.marketIndex}_${_typedEvent.recordId.toString()}`;
}
case 'DeleteUserRecord': {
const _typedEvent = event;
return `${_typedEvent.eventType}_${_typedEvent.user.toString()}`;
}
case 'DepositRecord': {
const _typedEvent = event;
return `${_typedEvent.eventType}_${_typedEvent.user.toString()}_${_typedEvent.depositRecordId.toString()}`;
}
case 'FundingPaymentRecord': {
const _typedEvent = event;
return `${_typedEvent.eventType}_${_typedEvent.user.toString()}_${_typedEvent.txSig}_${_typedEvent.marketIndex}`;
}
case 'FuelSeasonRecord': {
const _typedEvent = event;
return `${_typedEvent.eventType}_${_typedEvent.authority.toString()}_${_typedEvent.txSig}`;
}
case 'FuelSweepRecord': {
const _typedEvent = event;
return `${_typedEvent.eventType}_${_typedEvent.authority.toString()}_${_typedEvent.txSig}`;
}
case 'LiquidationRecord': {
const _typedEvent = event;
return `${_typedEvent.eventType}_${_typedEvent.user.toString()}_${_typedEvent.liquidationId}`;
}
case 'FundingRateRecord': {
const _typedEvent = event;
return `${_typedEvent.eventType}_${_typedEvent.marketIndex}_${_typedEvent.recordId.toString()}`;
}
case 'NewUserRecord': {
const _typedEvent = event;
return `${_typedEvent.eventType}_${_typedEvent.user.toString()}_${_typedEvent.txSig}`;
}
case 'InsuranceFundRecord': {
const _typedEvent = event;
return `${_typedEvent.eventType}_${_typedEvent.txSig}`;
}
case 'InsuranceFundStakeRecord': {
const _typedEvent = event;
return `${_typedEvent.eventType}_${_1.ENUM_UTILS.toStr(_typedEvent.action)}_${_typedEvent.txSig}`;
}
case 'SpotMarketVaultDepositRecord': {
const _typedEvent = event;
return `${_typedEvent.eventType}_${_typedEvent.marketIndex}_${_typedEvent.txSig}`;
}
case 'SpotInterestRecord': {
const _typedEvent = event;
return `${_typedEvent.eventType}_${_typedEvent.marketIndex}_${_typedEvent.txSig}`;
}
case 'LPRecord': {
const _typedEvent = event;
return `${_typedEvent.eventType}_${_typedEvent.marketIndex}_${_1.ENUM_UTILS.toStr(_typedEvent.action)}_${_typedEvent.txSig}`;
}
case 'SettlePnlRecord': {
const _typedEvent = event;
return `${_typedEvent.eventType}_${_typedEvent.marketIndex}_${_typedEvent.user.toString()}_${_typedEvent.txSig}`;
}
case 'SignedMsgOrderRecord': {
const _typedEvent = event;
return `${_typedEvent.eventType}_${_typedEvent.hash}`;
}
case 'OrderActionRecord': {
const _typedEvent = event;
const _actionStr = _1.ENUM_UTILS.toStr(_typedEvent.action);
switch (_actionStr) {
case 'trigger': {
return `${_typedEvent.eventType}_${_actionStr}_${_typedEvent.marketIndex}_${_typedEvent.takerOrderId}_${_typedEvent.makerOrderId}_${_typedEvent.txSig}`;
}
case 'fill': {
const orderId = _typedEvent.taker
? _typedEvent.takerOrderId
: _typedEvent.makerOrderId;
const pubkey = _typedEvent.taker
? _typedEvent.taker
: _typedEvent.maker;
return `${_typedEvent.eventType}_${pubkey.toString()}_${_typedEvent.marketIndex.toString()}_${orderId.toString()}_${_typedEvent.fillRecordId}_${_1.ENUM_UTILS.toStr(_typedEvent.action)}_${_typedEvent.txSig.toString()}`;
}
case 'expire': {
return `${_typedEvent.eventType}_${_actionStr}_${_typedEvent.marketIndex}_${_typedEvent.takerOrderId}_${_typedEvent.makerOrderId}_${(_a = _typedEvent.taker) === null || _a === void 0 ? void 0 : _a.toString()}_${(_b = _typedEvent.maker) === null || _b === void 0 ? void 0 : _b.toString()}_${_typedEvent.txSig}`;
}
case 'place': {
return `${_typedEvent.eventType}_${_actionStr}_${_typedEvent.marketIndex}_${_typedEvent.takerOrderId}_${_typedEvent.makerOrderId}_${(_c = _typedEvent.taker) === null || _c === void 0 ? void 0 : _c.toString()}_${(_d = _typedEvent.maker) === null || _d === void 0 ? void 0 : _d.toString()}_${_typedEvent.txSig}`;
}
case 'cancel': {
return `${_typedEvent.eventType}_${_actionStr}_${_typedEvent.marketIndex}_${_typedEvent.takerOrderId}_${_typedEvent.makerOrderId}_${(_e = _typedEvent.taker) === null || _e === void 0 ? void 0 : _e.toString()}_${(_f = _typedEvent.maker) === null || _f === void 0 ? void 0 : _f.toString()}_${_typedEvent.txSig}`;
}
default: {
throw new Error(`Unhandled Order Action: ${_actionStr}`);
}
}
}
default: {
const _unhandledEvent = _eventType;
throw new Error(`Unhandled event type: ${_unhandledEvent}`);
}
}
};
exports.getDriftEventKey = getDriftEventKey;
//# sourceMappingURL=driftEvents.js.map
;