@drift-labs/common
Version:
Common functions for Drift
1,027 lines • 189 kB
JavaScript
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.SerializableDlobOrder = exports.UISerializableAccountSnapshot = exports.SerializableAccountSnapshot = exports.SerializableNewUserRecord = exports.UISerializableLeaderboardResult = exports.SerializableLeaderboardResult = exports.UIMatchedOrderRecordAndAction = exports.UISerializableAllTimePnlData = exports.UISerializableRollingPnlData = exports.SerializableAllTimePnlData = exports.SerializableRollingPnlData = exports.UISerializableCandle = exports.SerializableCandle = exports.UISerializableUserSnapshotRecord = exports.SerializableUserSnapshotRecord = exports.UISerializableLiquidationRecordV2 = exports.UISerializableLiquidationRecord = exports.SerializableLiquidationRecord = exports.UISerializableSpotBankruptcyRecord = exports.SerializableSpotBankruptcyRecord = exports.UISerializablePerpBankrupcyRecord = exports.SerializablePerpBankrupcyRecord = exports.UISerializableLiquidatePerpPnlForDepositRecord = exports.SerializableLiquidatePerpPnlForDepositRecord = exports.UISerializableLiquidateBorrowForPerpPnlRecord = exports.SerializableLiquidateBorrowForPerpPnlRecord = exports.UISerializableLiquidateSpotRecord = exports.SerializableLiquidateSpotRecord = exports.UISerializableLiquidatePerpRecord = exports.SerializableLiquidatePerpRecord = exports.UISerializableFundingPaymentRecord = exports.SerializableFundingPaymentRecord = exports.UISerializableFundingRateRecord = exports.SerializableFundingRateRecord = exports.UISerializableSettlePnlRecord = exports.SerializableSettlePnlRecord = exports.SerializableCurveRecord = exports.SerializableSpotInterestRecord = exports.UISerializableDepositRecord = exports.SerializableDepositRecord = exports.UISerializablePositionHistoryRecord = exports.UISerializableOrderActionRecordV2 = exports.UISerializableOrderActionRecordBase = exports.UISerializableOrderRecordV2 = exports.UISerializableOrderActionRecord = exports.SerializableOrderActionRecord = exports.UISerializableOrderRecord = exports.SerializableOrderRecord = exports.UISerializableOrder = exports.SerializableOrder = void 0;
exports.Serializer = exports.transformDataApiOrderActionRecordToSerializableOrderActionRecord = exports.transformDataApiPositionHistoryRecordToUISerializablePositionHistoryRecord = exports.transformDataApiOrderActionRecordToUISerializableOrderActionRecord = exports.transformDataApiOrderRecordToSerializableOrderRecord = exports.transformDataApiOrderRecordToUISerializableOrderRecord = exports.UISerializableSwapRecord = exports.SerializableSwapRecord = exports.UISerializableLPRecord = exports.SerializableLPRecord = exports.UISerializableInsuranceFundStakeRecord = exports.SerializableInsuranceFundStakeRecord = exports.UISerializableInsuranceFundRecord = exports.SerializableInsuranceFundRecord = exports.CompetitionResult = exports.CompetitionResultEntry = exports.SerializableDLOBState = exports.SerializableDlobOracleInfo = void 0;
const sdk_1 = require("@drift-labs/sdk");
const cerializr_1 = require("cerializr");
const assert_1 = require("./utils/assert");
const Config_1 = require("./Config");
const leaderboard_1 = require("./types/leaderboard");
// Reusable transformers
const BNSerializationFn = (target) => target ? target.toString() : undefined;
const BNDeserializationFn = (val) => (val ? new sdk_1.BN(val) : undefined);
const BNSerializeAndDeserializeFns = {
Serialize: BNSerializationFn,
Deserialize: BNDeserializationFn,
};
const BNArraySerializationFn = (target) => target.map((val) => (val ? val.toString() : undefined));
const BNArrayDeserializationFn = (values) => values.map((val) => (val ? new sdk_1.BN(val) : undefined));
const BNArraySerializeAndDeserializeFns = {
Serialize: BNArraySerializationFn,
Deserialize: BNArrayDeserializationFn,
};
const QuoteBigNumSerializationFn = (target) => target
? target instanceof sdk_1.BigNum
? target.print()
: target.toString()
: undefined;
const QuoteBigNumDeserializationFn = (val) => val !== undefined
? typeof val === 'string'
? sdk_1.BigNum.from(val.replace('.', ''), sdk_1.QUOTE_PRECISION_EXP)
: sdk_1.BigNum.fromPrint(val.toString(), sdk_1.QUOTE_PRECISION_EXP)
: undefined;
const QuoteBigNumSerializeAndDeserializeFns = {
Serialize: QuoteBigNumSerializationFn,
Deserialize: QuoteBigNumDeserializationFn,
};
const NullableQuoteBigNumSerializeAndDeserializeFns = {
Serialize: (target) => target === null ? null : QuoteBigNumSerializationFn(target),
Deserialize: (val) => val === null ? null : QuoteBigNumDeserializationFn(val),
};
const MarketBasedBigNumSerializationFn = (target) => target
? target instanceof sdk_1.BigNum
? target.print()
: target.toString()
: undefined;
const targetPrecisionBigNumDeserializationFn = (val, precision) => {
return val !== undefined &&
(typeof val === 'string' || typeof val === 'number')
? typeof val === 'string'
? sdk_1.BigNum.from(val.replace('.', ''), precision)
: sdk_1.BigNum.fromPrint(val.toString(), precision)
: undefined;
};
// Main purpose of defer deserialization is to defer the precision setting until onDeserialized
const DeferBigNumDeserializationFn = (val) => {
return val !== undefined
? typeof val === 'string'
? sdk_1.BigNum.from(0, sdk_1.ZERO)
: sdk_1.BigNum.fromPrint('0', sdk_1.ZERO)
: undefined;
};
const MarketBasedBigNumSerializeAndDeserializeFns = {
Serialize: MarketBasedBigNumSerializationFn,
Deserialize: DeferBigNumDeserializationFn,
};
const NullableMarketBasedBigNumSerializeAndDeserializeFns = {
Serialize: (target) => target === null ? null : MarketBasedBigNumSerializationFn(target),
Deserialize: (val) => val === null ? null : DeferBigNumDeserializationFn(val),
};
const PctBigNumSerializationFn = (target) => target
? target instanceof sdk_1.BigNum
? target.print()
: target.toString()
: undefined;
const PctBigNumDeserializationFn = (val) => val !== undefined
? typeof val === 'string'
? sdk_1.BigNum.from(val.replace('.', ''), sdk_1.PERCENTAGE_PRECISION_EXP)
: sdk_1.BigNum.fromPrint(val.toString(), sdk_1.PERCENTAGE_PRECISION_EXP)
: undefined;
const PctBigNumSerializeAndDeserializeFns = {
Serialize: PctBigNumSerializationFn,
Deserialize: PctBigNumDeserializationFn,
};
const BaseBigNumSerializationFn = (target) => target
? target instanceof sdk_1.BigNum
? target.print()
: target.toString()
: undefined;
const BaseBigNumDeserializationFn = (val) => val !== undefined
? typeof val === 'string'
? sdk_1.BigNum.from(val.replace('.', ''), sdk_1.BASE_PRECISION_EXP)
: sdk_1.BigNum.fromPrint(val.toString(), sdk_1.BASE_PRECISION_EXP)
: undefined;
const BaseBigNumSerializeAndDeserializeFns = {
Serialize: BaseBigNumSerializationFn,
Deserialize: BaseBigNumDeserializationFn,
};
const PriceBigNumSerializationFn = (target) => target
? target instanceof sdk_1.BigNum
? target.print()
: target.toString()
: undefined;
const PriceBigNumDeserializationFn = (val) => val !== undefined
? typeof val === 'string'
? sdk_1.BigNum.from(val.replace('.', ''), sdk_1.PRICE_PRECISION_EXP)
: sdk_1.BigNum.fromPrint(val.toString(), sdk_1.PRICE_PRECISION_EXP)
: undefined;
const PriceBigNumSerializeAndDeserializeFns = {
Serialize: PriceBigNumSerializationFn,
Deserialize: PriceBigNumDeserializationFn,
};
const FundingRateBigNumSerializationFn = (target) => target
? target instanceof sdk_1.BigNum
? target.print()
: target.toString()
: undefined;
const FundingRateBigNumDeserializationFn = (val) => val !== undefined
? typeof val === 'string'
? sdk_1.BigNum.from(val.replace('.', ''), sdk_1.PRICE_PRECISION_EXP)
: sdk_1.BigNum.fromPrint(val.toString(), sdk_1.PRICE_PRECISION_EXP)
: undefined;
const FundingRateBigNumSerializeAndDeserializeFns = {
Serialize: FundingRateBigNumSerializationFn,
Deserialize: FundingRateBigNumDeserializationFn,
};
const BankCumulativeInterestBigNumSerializationFn = (target) => target
? target instanceof sdk_1.BigNum
? target.print()
: target.toString()
: undefined;
const BankCumulativeInterestBigNumDeserializationFn = (val) => val !== undefined
? typeof val === 'string'
? sdk_1.BigNum.from(val.replace('.', ''), sdk_1.PRICE_PRECISION_EXP)
: sdk_1.BigNum.fromPrint(val.toString(), sdk_1.PRICE_PRECISION_EXP)
: undefined;
const BankCumulativeInterestBigNumSerializeAndDeserializeFns = {
Serialize: BankCumulativeInterestBigNumSerializationFn,
Deserialize: BankCumulativeInterestBigNumDeserializationFn,
};
const ReferralVolumeBigNumSerializationFn = (target) => target
? target instanceof sdk_1.BigNum
? target.print()
: target.toString()
: undefined;
const ReferralVolumeBigNumDeserializationFn = (val) => val !== undefined
? typeof val === 'string'
? sdk_1.BigNum.from(val.replace('.', ''), sdk_1.TEN)
: sdk_1.BigNum.fromPrint(val.toString(), sdk_1.TEN)
: undefined;
const ReferralVolumeBigNumSerializeAndDeserializeFns = {
Serialize: ReferralVolumeBigNumSerializationFn,
Deserialize: ReferralVolumeBigNumDeserializationFn,
};
const PublicKeySerializationFn = (target) => target ? target.toString() : undefined;
const PublicKeyDeserializationFn = (val) => val ? new sdk_1.PublicKey(val) : undefined;
const PublicKeySerializeAndDeserializeFns = {
Serialize: PublicKeySerializationFn,
Deserialize: PublicKeyDeserializationFn,
};
const EnumSerializationFn = (target) => {
if (!target)
return null;
return Object.keys(target)[0];
};
const EnumDeserializationFn = (val) => {
if (!val)
return null;
{
if (typeof val === 'string')
return { [val]: {} };
return val;
}
};
const EnumSerializeAndDeserializeFns = {
Serialize: EnumSerializationFn,
Deserialize: EnumDeserializationFn,
};
const getPrecisionToUse = (marketType, marketIndex) => {
if ((0, sdk_1.isVariant)(marketType, 'spot')) {
return Config_1.Config.spotMarketsLookup[marketIndex].precisionExp;
}
return sdk_1.BASE_PRECISION_EXP;
};
/**
* Handles correctly deserializing precision for spot records where we don't know the precision until the onDeserialized hook is called
*/
const handleOnDeserializedPrecision = (data, instance, precision, keysToUse) => {
keysToUse.forEach((key) => {
// @ts-ignore :: Don't know how to correctly type this because it doesn't know the key corresponds to a BigNum, but it should always be a BigNum
instance[key] = targetPrecisionBigNumDeserializationFn(data[key], precision);
});
};
/**
* Generic utility function to validate event types during deserialization
* @param instance The instance being deserialized
* @param expectedEventType The expected event type
* @param className The name of the class being deserialized (for error messages)
*/
function validateEventTypeOnDeserialize(instance, expectedEventType, className) {
if (instance.eventType !== expectedEventType) {
// Check that eventType is not defined but incorrect because then something has gone bad
(0, assert_1.assert)(!instance.eventType, `eventType is truthy but not ${expectedEventType} when deserializing ${className}`);
// If it's just undefined then we're happy to set it for them
instance.eventType = expectedEventType; // added 'as string' to accommodate older typescript version errors
}
}
/**
* Generic utility function to validate and set event types during serialization
* @param json The JSON object being serialized
* @param expectedEventType The expected event type
* @param className The name of the class being serialized (for error messages)
*/
function validateEventTypeOnSerialize(json, expectedEventType, className) {
if (json.eventType !== expectedEventType) {
// Check that eventType is not defined but incorrect because then something has gone bad
(0, assert_1.assert)(!json.eventType, `eventType is truthy but not ${expectedEventType} when serializing ${className}`);
// If it's just undefined then we're happy to set it for them
json.eventType = expectedEventType; // added 'as string' to accommodate older typescript version errors
}
}
class SerializableOrder {
}
exports.SerializableOrder = SerializableOrder;
__decorate([
(0, cerializr_1.autoserializeUsing)(EnumSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.OrderStatus)
], SerializableOrder.prototype, "status", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(EnumSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.OrderType)
], SerializableOrder.prototype, "orderType", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(BNSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BN)
], SerializableOrder.prototype, "ts", void 0);
__decorate([
(0, cerializr_1.autoserializeAs)(Number),
__metadata("design:type", Number)
], SerializableOrder.prototype, "orderId", void 0);
__decorate([
(0, cerializr_1.autoserializeAs)(Number),
__metadata("design:type", Number)
], SerializableOrder.prototype, "userOrderId", void 0);
__decorate([
(0, cerializr_1.autoserializeAs)(Number),
__metadata("design:type", Number)
], SerializableOrder.prototype, "marketIndex", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(BNSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BN)
], SerializableOrder.prototype, "price", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(BNSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BN)
], SerializableOrder.prototype, "baseAssetAmount", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(BNSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BN)
], SerializableOrder.prototype, "baseAssetAmountFilled", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(BNSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BN)
], SerializableOrder.prototype, "quoteAssetAmount", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(BNSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BN)
], SerializableOrder.prototype, "quoteAssetAmountFilled", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(EnumSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.PositionDirection)
], SerializableOrder.prototype, "direction", void 0);
__decorate([
(0, cerializr_1.autoserializeAs)(Boolean),
__metadata("design:type", Boolean)
], SerializableOrder.prototype, "reduceOnly", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(BNSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BN)
], SerializableOrder.prototype, "triggerPrice", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(EnumSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.OrderTriggerCondition)
], SerializableOrder.prototype, "triggerCondition", void 0);
__decorate([
(0, cerializr_1.autoserializeAs)(Boolean),
__metadata("design:type", Boolean)
], SerializableOrder.prototype, "postOnly", void 0);
__decorate([
(0, cerializr_1.autoserializeAs)(Boolean),
__metadata("design:type", Boolean)
], SerializableOrder.prototype, "immediateOrCancel", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(BNSerializeAndDeserializeFns),
__metadata("design:type", Number)
], SerializableOrder.prototype, "oraclePriceOffset", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(BNSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BN)
], SerializableOrder.prototype, "auctionStartPrice", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(BNSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BN)
], SerializableOrder.prototype, "auctionEndPrice", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(EnumSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.OrderStatus)
], SerializableOrder.prototype, "existingPositionDirection", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(BNSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BN)
], SerializableOrder.prototype, "slot", void 0);
__decorate([
(0, cerializr_1.autoserializeAs)(Number),
__metadata("design:type", Number)
], SerializableOrder.prototype, "auctionDuration", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(EnumSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.MarketType)
], SerializableOrder.prototype, "marketType", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(BNSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BN)
], SerializableOrder.prototype, "maxTs", void 0);
__decorate([
(0, cerializr_1.autoserializeAs)(Number),
__metadata("design:type", Number)
], SerializableOrder.prototype, "bitFlags", void 0);
__decorate([
(0, cerializr_1.autoserializeAs)(Number),
__metadata("design:type", Number)
], SerializableOrder.prototype, "postedSlotTail", void 0);
let UISerializableOrder = class UISerializableOrder extends SerializableOrder {
static onDeserialized(data, instance) {
(0, assert_1.assert)(Config_1.Config.initialized, 'Common Config Not Initialised');
if ((0, sdk_1.isVariant)(instance.marketType, 'spot')) {
const precisionToUse = Config_1.Config.spotMarketsLookup[instance.marketIndex].precisionExp;
instance.baseAssetAmount.precision = precisionToUse;
instance.baseAssetAmountFilled.precision = precisionToUse;
}
}
};
exports.UISerializableOrder = UISerializableOrder;
__decorate([
(0, cerializr_1.autoserializeUsing)(PriceBigNumSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BigNum)
], UISerializableOrder.prototype, "price", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(BaseBigNumSerializeAndDeserializeFns)
//@ts-ignore
,
__metadata("design:type", sdk_1.BigNum)
], UISerializableOrder.prototype, "baseAssetAmount", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(BaseBigNumSerializeAndDeserializeFns)
//@ts-ignore
,
__metadata("design:type", sdk_1.BigNum)
], UISerializableOrder.prototype, "baseAssetAmountFilled", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(QuoteBigNumSerializeAndDeserializeFns)
//@ts-ignore
,
__metadata("design:type", sdk_1.BigNum)
], UISerializableOrder.prototype, "quoteAssetAmount", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(QuoteBigNumSerializeAndDeserializeFns)
//@ts-ignore
,
__metadata("design:type", sdk_1.BigNum)
], UISerializableOrder.prototype, "quoteAssetAmountFilled", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(PriceBigNumSerializeAndDeserializeFns)
//@ts-ignore
,
__metadata("design:type", sdk_1.BigNum)
], UISerializableOrder.prototype, "triggerPrice", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(PriceBigNumSerializeAndDeserializeFns)
//@ts-ignore
,
__metadata("design:type", sdk_1.BigNum)
], UISerializableOrder.prototype, "oraclePriceOffset", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(PriceBigNumSerializeAndDeserializeFns)
//@ts-ignore
,
__metadata("design:type", sdk_1.BigNum)
], UISerializableOrder.prototype, "auctionStartPrice", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(PriceBigNumSerializeAndDeserializeFns)
//@ts-ignore
,
__metadata("design:type", sdk_1.BigNum)
], UISerializableOrder.prototype, "auctionEndPrice", void 0);
exports.UISerializableOrder = UISerializableOrder = __decorate([
(0, cerializr_1.inheritSerialization)(SerializableOrder)
], UISerializableOrder);
// @ts-ignore
class SerializableOrderRecord {
static onDeserialized(data, instance) {
validateEventTypeOnDeserialize(instance, 'OrderRecord', 'SerializableOrderRecord');
}
static onSerialized(json) {
validateEventTypeOnSerialize(json, 'OrderRecord', 'SerializableOrderRecord');
}
}
exports.SerializableOrderRecord = SerializableOrderRecord;
__decorate([
(0, cerializr_1.autoserializeAs)(String),
__metadata("design:type", String)
], SerializableOrderRecord.prototype, "eventType", void 0);
__decorate([
(0, cerializr_1.autoserializeAs)(String),
__metadata("design:type", String)
], SerializableOrderRecord.prototype, "txSig", void 0);
__decorate([
(0, cerializr_1.autoserializeAs)(Number),
__metadata("design:type", Number)
], SerializableOrderRecord.prototype, "txSigIndex", void 0);
__decorate([
(0, cerializr_1.autoserializeAs)(Number),
__metadata("design:type", Number)
], SerializableOrderRecord.prototype, "slot", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(BNSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BN)
], SerializableOrderRecord.prototype, "ts", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(PublicKeySerializeAndDeserializeFns),
__metadata("design:type", sdk_1.PublicKey)
], SerializableOrderRecord.prototype, "user", void 0);
__decorate([
(0, cerializr_1.autoserializeAs)(SerializableOrder),
__metadata("design:type", Object)
], SerializableOrderRecord.prototype, "order", void 0);
let UISerializableOrderRecord = class UISerializableOrderRecord extends SerializableOrderRecord {
static onDeserialized(data, instance) {
validateEventTypeOnDeserialize(instance, 'OrderRecord', 'UISerializableOrderRecord');
}
static onSerialized(json) {
validateEventTypeOnSerialize(json, 'OrderRecord', 'UISerializableOrderRecord');
}
};
exports.UISerializableOrderRecord = UISerializableOrderRecord;
__decorate([
(0, cerializr_1.autoserializeAs)(UISerializableOrder),
__metadata("design:type", UISerializableOrder)
], UISerializableOrderRecord.prototype, "order", void 0);
exports.UISerializableOrderRecord = UISerializableOrderRecord = __decorate([
(0, cerializr_1.inheritSerialization)(SerializableOrderRecord)
], UISerializableOrderRecord);
class SerializableOrderActionRecord {
static onDeserialized(data, instance) {
validateEventTypeOnDeserialize(instance, 'OrderActionRecord', 'SerializableOrderActionRecord');
}
static onSerialized(json) {
validateEventTypeOnSerialize(json, 'OrderActionRecord', 'SerializableOrderActionRecord');
}
}
exports.SerializableOrderActionRecord = SerializableOrderActionRecord;
__decorate([
(0, cerializr_1.autoserializeAs)(String),
__metadata("design:type", String)
], SerializableOrderActionRecord.prototype, "eventType", void 0);
__decorate([
(0, cerializr_1.autoserializeAs)(String),
__metadata("design:type", String)
], SerializableOrderActionRecord.prototype, "txSig", void 0);
__decorate([
(0, cerializr_1.autoserializeAs)(Number),
__metadata("design:type", Number)
], SerializableOrderActionRecord.prototype, "slot", void 0);
__decorate([
(0, cerializr_1.autoserializeAs)(Number),
__metadata("design:type", Number)
], SerializableOrderActionRecord.prototype, "txSigIndex", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(BNSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BN)
], SerializableOrderActionRecord.prototype, "ts", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(EnumSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.OrderAction)
], SerializableOrderActionRecord.prototype, "action", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(EnumSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.OrderActionExplanation)
], SerializableOrderActionRecord.prototype, "actionExplanation", void 0);
__decorate([
(0, cerializr_1.autoserializeAs)(Number),
__metadata("design:type", Number)
], SerializableOrderActionRecord.prototype, "marketIndex", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(EnumSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.MarketType)
], SerializableOrderActionRecord.prototype, "marketType", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(PublicKeySerializeAndDeserializeFns),
__metadata("design:type", sdk_1.PublicKey)
], SerializableOrderActionRecord.prototype, "filler", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(BNSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BN)
], SerializableOrderActionRecord.prototype, "fillerReward", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(BNSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BN)
], SerializableOrderActionRecord.prototype, "fillRecordId", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(BNSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BN)
], SerializableOrderActionRecord.prototype, "baseAssetAmountFilled", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(BNSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BN)
], SerializableOrderActionRecord.prototype, "quoteAssetAmountFilled", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(BNSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BN)
], SerializableOrderActionRecord.prototype, "takerFee", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(BNSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BN)
], SerializableOrderActionRecord.prototype, "makerRebate", void 0);
__decorate([
(0, cerializr_1.autoserializeAs)(Number),
__metadata("design:type", Number)
], SerializableOrderActionRecord.prototype, "referrerReward", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(BNSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BN)
], SerializableOrderActionRecord.prototype, "quoteAssetAmountSurplus", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(PublicKeySerializeAndDeserializeFns),
__metadata("design:type", sdk_1.PublicKey)
], SerializableOrderActionRecord.prototype, "taker", void 0);
__decorate([
(0, cerializr_1.autoserializeAs)(Number),
__metadata("design:type", Number)
], SerializableOrderActionRecord.prototype, "takerOrderId", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(EnumSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.PositionDirection)
], SerializableOrderActionRecord.prototype, "takerOrderDirection", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(BNSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BN)
], SerializableOrderActionRecord.prototype, "takerOrderBaseAssetAmount", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(BNSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BN)
], SerializableOrderActionRecord.prototype, "takerOrderCumulativeBaseAssetAmountFilled", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(BNSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BN)
], SerializableOrderActionRecord.prototype, "takerOrderCumulativeQuoteAssetAmountFilled", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(PublicKeySerializeAndDeserializeFns),
__metadata("design:type", sdk_1.PublicKey)
], SerializableOrderActionRecord.prototype, "maker", void 0);
__decorate([
(0, cerializr_1.autoserializeAs)(Number),
__metadata("design:type", Number)
], SerializableOrderActionRecord.prototype, "makerOrderId", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(EnumSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.PositionDirection)
], SerializableOrderActionRecord.prototype, "makerOrderDirection", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(BNSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BN)
], SerializableOrderActionRecord.prototype, "makerOrderBaseAssetAmount", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(BNSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BN)
], SerializableOrderActionRecord.prototype, "makerOrderCumulativeBaseAssetAmountFilled", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(BNSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BN)
], SerializableOrderActionRecord.prototype, "makerOrderCumulativeQuoteAssetAmountFilled", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(BNSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BN)
], SerializableOrderActionRecord.prototype, "oraclePrice", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(BNSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BN)
], SerializableOrderActionRecord.prototype, "makerFee", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(BNSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BN)
], SerializableOrderActionRecord.prototype, "spotFulfillmentMethodFee", void 0);
__decorate([
(0, cerializr_1.autoserializeAs)(Number),
__metadata("design:type", Number)
], SerializableOrderActionRecord.prototype, "bitFlags", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(BNSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BN)
], SerializableOrderActionRecord.prototype, "takerExistingQuoteEntryAmount", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(BNSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BN)
], SerializableOrderActionRecord.prototype, "takerExistingBaseAssetAmount", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(BNSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BN)
], SerializableOrderActionRecord.prototype, "makerExistingQuoteEntryAmount", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(BNSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BN)
], SerializableOrderActionRecord.prototype, "makerExistingBaseAssetAmount", void 0);
let UISerializableOrderActionRecord = class UISerializableOrderActionRecord extends SerializableOrderActionRecord {
static onDeserialized(data, instance) {
(0, assert_1.assert)(Config_1.Config.initialized, 'Common Config Not Initialised');
validateEventTypeOnDeserialize(instance, 'OrderActionRecord', 'UISerializableOrderActionRecord');
handleOnDeserializedPrecision(data, instance, getPrecisionToUse(instance.marketType, instance.marketIndex), [
'baseAssetAmountFilled',
'takerOrderBaseAssetAmount',
'takerOrderCumulativeBaseAssetAmountFilled',
'makerOrderBaseAssetAmount',
'makerOrderCumulativeBaseAssetAmountFilled',
'takerExistingBaseAssetAmount',
'makerExistingBaseAssetAmount',
]);
}
static onSerialized(json) {
validateEventTypeOnSerialize(json, 'OrderActionRecord', 'UISerializableOrderActionRecord');
}
};
exports.UISerializableOrderActionRecord = UISerializableOrderActionRecord;
__decorate([
(0, cerializr_1.autoserializeUsing)(QuoteBigNumSerializeAndDeserializeFns)
//@ts-ignore
,
__metadata("design:type", sdk_1.BigNum)
], UISerializableOrderActionRecord.prototype, "fillerReward", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(BaseBigNumSerializeAndDeserializeFns)
//@ts-ignore
,
__metadata("design:type", sdk_1.BigNum)
], UISerializableOrderActionRecord.prototype, "baseAssetAmountFilled", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(QuoteBigNumSerializeAndDeserializeFns)
//@ts-ignore
,
__metadata("design:type", sdk_1.BigNum)
], UISerializableOrderActionRecord.prototype, "quoteAssetAmountFilled", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(QuoteBigNumSerializeAndDeserializeFns)
//@ts-ignore
,
__metadata("design:type", sdk_1.BigNum)
], UISerializableOrderActionRecord.prototype, "takerFee", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(QuoteBigNumSerializeAndDeserializeFns)
//@ts-ignore
,
__metadata("design:type", sdk_1.BigNum)
], UISerializableOrderActionRecord.prototype, "makerRebate", void 0);
__decorate([
(0, cerializr_1.autoserializeAs)(Number),
__metadata("design:type", Number)
], UISerializableOrderActionRecord.prototype, "referrerReward", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(QuoteBigNumSerializeAndDeserializeFns)
//@ts-ignore
,
__metadata("design:type", sdk_1.BigNum)
], UISerializableOrderActionRecord.prototype, "quoteAssetAmountSurplus", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(BaseBigNumSerializeAndDeserializeFns)
//@ts-ignore
,
__metadata("design:type", sdk_1.BigNum)
], UISerializableOrderActionRecord.prototype, "takerOrderBaseAssetAmount", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(BaseBigNumSerializeAndDeserializeFns)
//@ts-ignore
,
__metadata("design:type", sdk_1.BigNum)
], UISerializableOrderActionRecord.prototype, "takerOrderCumulativeBaseAssetAmountFilled", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(QuoteBigNumSerializeAndDeserializeFns)
//@ts-ignore
,
__metadata("design:type", sdk_1.BigNum)
], UISerializableOrderActionRecord.prototype, "takerOrderCumulativeQuoteAssetAmountFilled", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(BaseBigNumSerializeAndDeserializeFns)
//@ts-ignore
,
__metadata("design:type", sdk_1.BigNum)
], UISerializableOrderActionRecord.prototype, "makerOrderBaseAssetAmount", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(BaseBigNumSerializeAndDeserializeFns)
//@ts-ignore
,
__metadata("design:type", sdk_1.BigNum)
], UISerializableOrderActionRecord.prototype, "makerOrderCumulativeBaseAssetAmountFilled", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(QuoteBigNumSerializeAndDeserializeFns)
//@ts-ignore
,
__metadata("design:type", sdk_1.BigNum)
], UISerializableOrderActionRecord.prototype, "makerOrderCumulativeQuoteAssetAmountFilled", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(PriceBigNumSerializeAndDeserializeFns)
//@ts-ignore
,
__metadata("design:type", sdk_1.BigNum)
], UISerializableOrderActionRecord.prototype, "oraclePrice", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(QuoteBigNumSerializeAndDeserializeFns)
//@ts-ignore
,
__metadata("design:type", sdk_1.BigNum)
], UISerializableOrderActionRecord.prototype, "makerFee", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(QuoteBigNumSerializeAndDeserializeFns)
// @ts-ignore
,
__metadata("design:type", sdk_1.BigNum)
], UISerializableOrderActionRecord.prototype, "spotFulfillmentMethodFee", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(QuoteBigNumSerializeAndDeserializeFns)
// @ts-ignore
,
__metadata("design:type", sdk_1.BigNum)
], UISerializableOrderActionRecord.prototype, "takerExistingQuoteEntryAmount", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(BaseBigNumSerializeAndDeserializeFns)
// @ts-ignore
,
__metadata("design:type", sdk_1.BigNum)
], UISerializableOrderActionRecord.prototype, "takerExistingBaseAssetAmount", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(QuoteBigNumSerializeAndDeserializeFns)
// @ts-ignore
,
__metadata("design:type", sdk_1.BigNum)
], UISerializableOrderActionRecord.prototype, "makerExistingQuoteEntryAmount", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(BaseBigNumSerializeAndDeserializeFns)
// @ts-ignore
,
__metadata("design:type", sdk_1.BigNum)
], UISerializableOrderActionRecord.prototype, "makerExistingBaseAssetAmount", void 0);
exports.UISerializableOrderActionRecord = UISerializableOrderActionRecord = __decorate([
(0, cerializr_1.inheritSerialization)(SerializableOrderActionRecord)
], UISerializableOrderActionRecord);
class UISerializableOrderRecordV2 {
static onDeserialized(data, instance) {
(0, assert_1.assert)(Config_1.Config.initialized, 'Common Config Not Initialised');
handleOnDeserializedPrecision(data, instance, getPrecisionToUse(instance.marketType, instance.marketIndex), ['baseAssetAmount', 'baseAssetAmountFilled']);
}
}
exports.UISerializableOrderRecordV2 = UISerializableOrderRecordV2;
__decorate([
(0, cerializr_1.autoserializeUsing)(BNSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BN)
], UISerializableOrderRecordV2.prototype, "ts", void 0);
__decorate([
(0, cerializr_1.autoserializeAs)(String),
__metadata("design:type", String)
], UISerializableOrderRecordV2.prototype, "txSig", void 0);
__decorate([
(0, cerializr_1.autoserializeAs)(Number),
__metadata("design:type", Number)
], UISerializableOrderRecordV2.prototype, "txSigIndex", void 0);
__decorate([
(0, cerializr_1.autoserializeAs)(Number),
__metadata("design:type", Number)
], UISerializableOrderRecordV2.prototype, "slot", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(PublicKeySerializeAndDeserializeFns),
__metadata("design:type", sdk_1.PublicKey)
], UISerializableOrderRecordV2.prototype, "user", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(EnumSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.OrderType)
], UISerializableOrderRecordV2.prototype, "orderType", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(EnumSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.MarketType)
], UISerializableOrderRecordV2.prototype, "marketType", void 0);
__decorate([
(0, cerializr_1.autoserializeAs)(Number),
__metadata("design:type", Number)
], UISerializableOrderRecordV2.prototype, "orderId", void 0);
__decorate([
(0, cerializr_1.autoserializeAs)(Number),
__metadata("design:type", Number)
], UISerializableOrderRecordV2.prototype, "userOrderId", void 0);
__decorate([
(0, cerializr_1.autoserializeAs)(Number),
__metadata("design:type", Number)
], UISerializableOrderRecordV2.prototype, "marketIndex", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(PriceBigNumSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BigNum)
], UISerializableOrderRecordV2.prototype, "price", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(MarketBasedBigNumSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BigNum)
], UISerializableOrderRecordV2.prototype, "baseAssetAmount", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(QuoteBigNumSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BigNum)
], UISerializableOrderRecordV2.prototype, "quoteAssetAmount", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(MarketBasedBigNumSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BigNum)
], UISerializableOrderRecordV2.prototype, "baseAssetAmountFilled", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(QuoteBigNumSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BigNum)
], UISerializableOrderRecordV2.prototype, "quoteAssetAmountFilled", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(EnumSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.PositionDirection)
], UISerializableOrderRecordV2.prototype, "direction", void 0);
__decorate([
(0, cerializr_1.autoserializeAs)(Boolean),
__metadata("design:type", Boolean)
], UISerializableOrderRecordV2.prototype, "reduceOnly", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(PriceBigNumSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BigNum)
], UISerializableOrderRecordV2.prototype, "triggerPrice", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(EnumSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.OrderTriggerCondition)
], UISerializableOrderRecordV2.prototype, "triggerCondition", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(EnumSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.PositionDirection)
], UISerializableOrderRecordV2.prototype, "existingPositionDirection", void 0);
__decorate([
(0, cerializr_1.autoserializeAs)(Boolean),
__metadata("design:type", Boolean)
], UISerializableOrderRecordV2.prototype, "postOnly", void 0);
__decorate([
(0, cerializr_1.autoserializeAs)(Boolean),
__metadata("design:type", Boolean)
], UISerializableOrderRecordV2.prototype, "immediateOrCancel", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(PriceBigNumSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BigNum)
], UISerializableOrderRecordV2.prototype, "oraclePriceOffset", void 0);
__decorate([
(0, cerializr_1.autoserializeAs)(Number),
__metadata("design:type", Number)
], UISerializableOrderRecordV2.prototype, "auctionDuration", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(PriceBigNumSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BigNum)
], UISerializableOrderRecordV2.prototype, "auctionStartPrice", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(PriceBigNumSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BigNum)
], UISerializableOrderRecordV2.prototype, "auctionEndPrice", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(BNSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BN)
], UISerializableOrderRecordV2.prototype, "maxTs", void 0);
__decorate([
(0, cerializr_1.autoserializeAs)(String),
__metadata("design:type", String)
], UISerializableOrderRecordV2.prototype, "symbol", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(BNSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BN)
], UISerializableOrderRecordV2.prototype, "lastUpdatedTs", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(EnumSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.OrderActionExplanation)
], UISerializableOrderRecordV2.prototype, "lastActionExplanation", void 0);
__decorate([
(0, cerializr_1.autoserializeAs)(String),
__metadata("design:type", String)
], UISerializableOrderRecordV2.prototype, "lastActionStatus", void 0);
__decorate([
(0, cerializr_1.autoserializeAs)(String),
__metadata("design:type", String)
], UISerializableOrderRecordV2.prototype, "status", void 0);
class UISerializableOrderActionRecordBase {
}
exports.UISerializableOrderActionRecordBase = UISerializableOrderActionRecordBase;
__decorate([
(0, cerializr_1.autoserializeUsing)(BNSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BN)
], UISerializableOrderActionRecordBase.prototype, "ts", void 0);
__decorate([
(0, cerializr_1.autoserializeAs)(String),
__metadata("design:type", String)
], UISerializableOrderActionRecordBase.prototype, "txSig", void 0);
__decorate([
(0, cerializr_1.autoserializeAs)(Number),
__metadata("design:type", Number)
], UISerializableOrderActionRecordBase.prototype, "txSigIndex", void 0);
__decorate([
(0, cerializr_1.autoserializeAs)(Number),
__metadata("design:type", Number)
], UISerializableOrderActionRecordBase.prototype, "slot", void 0);
__decorate([
(0, cerializr_1.autoserializeAs)(Number),
__metadata("design:type", Number)
], UISerializableOrderActionRecordBase.prototype, "marketIndex", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(EnumSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.MarketType)
], UISerializableOrderActionRecordBase.prototype, "marketType", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(QuoteBigNumSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BigNum)
], UISerializableOrderActionRecordBase.prototype, "fillerReward", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(MarketBasedBigNumSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BigNum)
], UISerializableOrderActionRecordBase.prototype, "baseAssetAmountFilled", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(QuoteBigNumSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BigNum)
], UISerializableOrderActionRecordBase.prototype, "quoteAssetAmountFilled", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(QuoteBigNumSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BigNum)
], UISerializableOrderActionRecordBase.prototype, "takerFee", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(QuoteBigNumSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BigNum)
], UISerializableOrderActionRecordBase.prototype, "makerRebate", void 0);
__decorate([
(0, cerializr_1.autoserializeAs)(Number),
__metadata("design:type", Number)
], UISerializableOrderActionRecordBase.prototype, "referrerReward", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(QuoteBigNumSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BigNum)
], UISerializableOrderActionRecordBase.prototype, "quoteAssetAmountSurplus", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(MarketBasedBigNumSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BigNum)
], UISerializableOrderActionRecordBase.prototype, "takerOrderBaseAssetAmount", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(MarketBasedBigNumSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BigNum)
], UISerializableOrderActionRecordBase.prototype, "takerOrderCumulativeBaseAssetAmountFilled", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(QuoteBigNumSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BigNum)
], UISerializableOrderActionRecordBase.prototype, "takerOrderCumulativeQuoteAssetAmountFilled", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(MarketBasedBigNumSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BigNum)
], UISerializableOrderActionRecordBase.prototype, "makerOrderBaseAssetAmount", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(MarketBasedBigNumSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BigNum)
], UISerializableOrderActionRecordBase.prototype, "makerOrderCumulativeBaseAssetAmountFilled", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(QuoteBigNumSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BigNum)
], UISerializableOrderActionRecordBase.prototype, "makerOrderCumulativeQuoteAssetAmountFilled", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(PriceBigNumSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BigNum)
], UISerializableOrderActionRecordBase.prototype, "oraclePrice", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(QuoteBigNumSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BigNum)
], UISerializableOrderActionRecordBase.prototype, "makerFee", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(EnumSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.OrderAction)
], UISerializableOrderActionRecordBase.prototype, "action", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(EnumSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.OrderActionExplanation)
], UISerializableOrderActionRecordBase.prototype, "actionExplanation", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(PublicKeySerializeAndDeserializeFns),
__metadata("design:type", sdk_1.PublicKey)
], UISerializableOrderActionRecordBase.prototype, "filler", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(BNSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BN)
], UISerializableOrderActionRecordBase.prototype, "fillRecordId", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(PublicKeySerializeAndDeserializeFns),
__metadata("design:type", sdk_1.PublicKey)
], UISerializableOrderActionRecordBase.prototype, "taker", void 0);
__decorate([
(0, cerializr_1.autoserializeAs)(Number),
__metadata("design:type", Number)
], UISerializableOrderActionRecordBase.prototype, "takerOrderId", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(EnumSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.PositionDirection)
], UISerializableOrderActionRecordBase.prototype, "takerOrderDirection", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(PublicKeySerializeAndDeserializeFns),
__metadata("design:type", sdk_1.PublicKey)
], UISerializableOrderActionRecordBase.prototype, "maker", void 0);
__decorate([
(0, cerializr_1.autoserializeAs)(Number),
__metadata("design:type", Number)
], UISerializableOrderActionRecordBase.prototype, "makerOrderId", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(EnumSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.PositionDirection)
], UISerializableOrderActionRecordBase.prototype, "makerOrderDirection", void 0);
__decorate([
(0, cerializr_1.autoserializeUsing)(QuoteBigNumSerializeAndDeserializeFns),
__metadata("design:type", sdk_1.BigNum)
], UISe