{"version":3,"file":"FixedSize.mjs","sources":["../../../../../src/plugins/rfqModule/models/FixedSize.ts"],"sourcesContent":["import { FixedSize as SolitaFixedSize } from '@convergence-rfq/rfq';\n\nimport { addDecimals, removeDecimals } from '../../../utils/conversions';\nimport { LEG_MULTIPLIER_DECIMALS } from '../constants';\n\ninterface None {\n  type: 'open';\n}\n\ninterface BaseAsset {\n  type: 'fixed-base';\n  amount: number;\n}\n\ninterface QuoteAsset {\n  type: 'fixed-quote';\n  amount: number;\n}\n\nexport type FixedSize = Readonly<None | BaseAsset | QuoteAsset>;\n\nexport function fromSolitaFixedSize(\n  fixedSize: SolitaFixedSize,\n  quoteAssetDecimals: number\n): FixedSize {\n  switch (fixedSize.__kind) {\n    case 'None': {\n      return {\n        type: 'open',\n      };\n    }\n    case 'BaseAsset': {\n      return {\n        type: 'fixed-base',\n        amount: removeDecimals(\n          fixedSize.legsMultiplierBps,\n          LEG_MULTIPLIER_DECIMALS\n        ),\n      };\n    }\n    case 'QuoteAsset': {\n      return {\n        type: 'fixed-quote',\n        amount: removeDecimals(fixedSize.quoteAmount, quoteAssetDecimals),\n      };\n    }\n  }\n}\n\nexport function toSolitaFixedSize(\n  fixedSize: FixedSize,\n  quoteAssetDecimals: number\n): SolitaFixedSize {\n  switch (fixedSize.type) {\n    case 'open': {\n      return {\n        __kind: 'None',\n        padding: 0, //TODO: Is this required?\n      };\n    }\n    case 'fixed-base': {\n      return {\n        __kind: 'BaseAsset',\n        legsMultiplierBps: addDecimals(\n          fixedSize.amount,\n          LEG_MULTIPLIER_DECIMALS\n        ),\n      };\n    }\n    case 'fixed-quote': {\n      return {\n        __kind: 'QuoteAsset',\n        quoteAmount: addDecimals(fixedSize.amount, quoteAssetDecimals),\n      };\n    }\n  }\n}\n\nexport const isFixedSizeOpen = (\n  x: FixedSize\n): x is FixedSize & { amount: undefined } => x.type === 'open';\nexport const isFixedSizeBaseAsset = (\n  x: FixedSize\n): x is FixedSize & { amount: number } => x.type === 'fixed-base';\nexport const isFixedSizeQuoteAsset = (\n  x: FixedSize\n): x is FixedSize & { amount: number } => x.type === 'fixed-quote';\n"],"names":["fromSolitaFixedSize","fixedSize","quoteAssetDecimals","__kind","type","amount","removeDecimals","legsMultiplierBps","LEG_MULTIPLIER_DECIMALS","quoteAmount","toSolitaFixedSize","padding","addDecimals","isFixedSizeOpen","x","isFixedSizeBaseAsset","isFixedSizeQuoteAsset"],"mappings":";;;AAqBO,SAASA,mBAAmBA,CACjCC,SAA0B,EAC1BC,kBAA0B,EACf;EACX,QAAQD,SAAS,CAACE,MAAM;AACtB,IAAA,KAAK,MAAM;AAAE,MAAA;QACX,OAAO;AACLC,UAAAA,IAAI,EAAE,MAAA;SACP,CAAA;AACH,OAAA;AACA,IAAA,KAAK,WAAW;AAAE,MAAA;QAChB,OAAO;AACLA,UAAAA,IAAI,EAAE,YAAY;AAClBC,UAAAA,MAAM,EAAEC,cAAc,CACpBL,SAAS,CAACM,iBAAiB,EAC3BC,uBACF,CAAA;SACD,CAAA;AACH,OAAA;AACA,IAAA,KAAK,YAAY;AAAE,MAAA;QACjB,OAAO;AACLJ,UAAAA,IAAI,EAAE,aAAa;AACnBC,UAAAA,MAAM,EAAEC,cAAc,CAACL,SAAS,CAACQ,WAAW,EAAEP,kBAAkB,CAAA;SACjE,CAAA;AACH,OAAA;AACF,GAAA;AACF,CAAA;AAEO,SAASQ,iBAAiBA,CAC/BT,SAAoB,EACpBC,kBAA0B,EACT;EACjB,QAAQD,SAAS,CAACG,IAAI;AACpB,IAAA,KAAK,MAAM;AAAE,MAAA;QACX,OAAO;AACLD,UAAAA,MAAM,EAAE,MAAM;UACdQ,OAAO,EAAE,CAAC;SACX,CAAA;AACH,OAAA;AACA,IAAA,KAAK,YAAY;AAAE,MAAA;QACjB,OAAO;AACLR,UAAAA,MAAM,EAAE,WAAW;AACnBI,UAAAA,iBAAiB,EAAEK,WAAW,CAC5BX,SAAS,CAACI,MAAM,EAChBG,uBACF,CAAA;SACD,CAAA;AACH,OAAA;AACA,IAAA,KAAK,aAAa;AAAE,MAAA;QAClB,OAAO;AACLL,UAAAA,MAAM,EAAE,YAAY;AACpBM,UAAAA,WAAW,EAAEG,WAAW,CAACX,SAAS,CAACI,MAAM,EAAEH,kBAAkB,CAAA;SAC9D,CAAA;AACH,OAAA;AACF,GAAA;AACF,CAAA;IAEaW,eAAe,GAAG,SAAlBA,eAAeA,CAC1BC,CAAY,EAAA;AAAA,EAAA,OAC+BA,CAAC,CAACV,IAAI,KAAK,MAAM,CAAA;AAAA,EAAA;IACjDW,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAC/BD,CAAY,EAAA;AAAA,EAAA,OAC4BA,CAAC,CAACV,IAAI,KAAK,YAAY,CAAA;AAAA,EAAA;IACpDY,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAChCF,CAAY,EAAA;AAAA,EAAA,OAC4BA,CAAC,CAACV,IAAI,KAAK,aAAa,CAAA;AAAA;;;;"}