UNPKG

@drift-labs/common

Version:

Common functions for Drift

1,027 lines 189 kB
"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