{"version":3,"file":"methods.mjs","sources":["../../../../src/plugins/printTradeModule/methods.ts"],"sourcesContent":["import { ApiLeg, QuoteAsset, legBeet } from '@convergence-rfq/rfq';\nimport { AccountMeta } from '@solana/web3.js';\nimport { toSolitaLegSide } from '../rfqModule/models';\nimport { toNumberInstrumentType } from '../riskEngineModule/models';\nimport { PrintTrade, PrintTradeLeg, PrintTradeQuote } from './types';\nimport { addDecimals } from '@/utils';\nimport { createSerializerFromFixableBeetArgsStruct } from '@/types';\n\nexport function printTradeToSolitaLeg(printTradeLeg: PrintTradeLeg): ApiLeg {\n  return {\n    settlementTypeMetadata: {\n      __kind: 'PrintTrade',\n      instrumentType: toNumberInstrumentType(printTradeLeg.getInstrumentType()),\n    },\n    baseAssetIndex: printTradeLeg.getBaseAssetIndex(),\n    data: printTradeLeg.serializeInstrumentData(),\n    amount: addDecimals(printTradeLeg.getAmount(), printTradeLeg.getDecimals()),\n    amountDecimals: printTradeLeg.getDecimals(),\n    side: toSolitaLegSide(printTradeLeg.getSide()),\n  };\n}\n\nexport function serializePrintTradeAsSolitaLeg(printTradeLeg: PrintTradeLeg) {\n  const legSerializer = createSerializerFromFixableBeetArgsStruct(legBeet);\n  return legSerializer.serialize({\n    ...printTradeToSolitaLeg(printTradeLeg),\n    reserved: new Array(64).fill(0),\n  });\n}\n\nexport function printTradetoSolitaQuote(\n  printTradeQuote: PrintTradeQuote\n): QuoteAsset {\n  return {\n    settlementTypeMetadata: {\n      __kind: 'PrintTrade',\n      instrumentType: toNumberInstrumentType('spot'),\n    },\n    data: printTradeQuote.serializeInstrumentData(),\n    decimals: printTradeQuote.getDecimals(),\n  };\n}\n\nexport function getPrintTradeProgramAccount(\n  printTrade: PrintTrade\n): AccountMeta {\n  return {\n    pubkey: printTrade.getPrintTradeProviderProgramId(),\n    isSigner: false,\n    isWritable: false,\n  };\n}\n\nexport function prependWithProviderProgram(\n  printTrade: PrintTrade,\n  accounts: AccountMeta[]\n): AccountMeta[] {\n  return [getPrintTradeProgramAccount(printTrade)].concat(accounts);\n}\n"],"names":["printTradeToSolitaLeg","printTradeLeg","settlementTypeMetadata","__kind","instrumentType","toNumberInstrumentType","getInstrumentType","baseAssetIndex","getBaseAssetIndex","data","serializeInstrumentData","amount","addDecimals","getAmount","getDecimals","amountDecimals","side","toSolitaLegSide","getSide","serializePrintTradeAsSolitaLeg","legSerializer","createSerializerFromFixableBeetArgsStruct","legBeet","serialize","_objectSpread","reserved","Array","fill","printTradetoSolitaQuote","printTradeQuote","decimals","getPrintTradeProgramAccount","printTrade","pubkey","getPrintTradeProviderProgramId","isSigner","isWritable","prependWithProviderProgram","accounts","concat"],"mappings":";;;;;;;AAQO,SAASA,qBAAqBA,CAACC,aAA4B,EAAU;EAC1E,OAAO;AACLC,IAAAA,sBAAsB,EAAE;AACtBC,MAAAA,MAAM,EAAE,YAAY;AACpBC,MAAAA,cAAc,EAAEC,sBAAsB,CAACJ,aAAa,CAACK,iBAAiB,EAAE,CAAA;KACzE;AACDC,IAAAA,cAAc,EAAEN,aAAa,CAACO,iBAAiB,EAAE;AACjDC,IAAAA,IAAI,EAAER,aAAa,CAACS,uBAAuB,EAAE;AAC7CC,IAAAA,MAAM,EAAEC,WAAW,CAACX,aAAa,CAACY,SAAS,EAAE,EAAEZ,aAAa,CAACa,WAAW,EAAE,CAAC;AAC3EC,IAAAA,cAAc,EAAEd,aAAa,CAACa,WAAW,EAAE;AAC3CE,IAAAA,IAAI,EAAEC,eAAe,CAAChB,aAAa,CAACiB,OAAO,EAAE,CAAA;GAC9C,CAAA;AACH,CAAA;AAEO,SAASC,8BAA8BA,CAAClB,aAA4B,EAAE;AAC3E,EAAA,IAAMmB,aAAa,GAAGC,yCAAyC,CAACC,OAAO,CAAC,CAAA;EACxE,OAAOF,aAAa,CAACG,SAAS,CAAAC,cAAA,CAAAA,cAAA,CACzBxB,EAAAA,EAAAA,qBAAqB,CAACC,aAAa,CAAC,CAAA,EAAA,EAAA,EAAA;IACvCwB,QAAQ,EAAE,IAAIC,KAAK,CAAC,EAAE,CAAC,CAACC,IAAI,CAAC,CAAC,CAAA;AAAC,GAAA,CAChC,CAAC,CAAA;AACJ,CAAA;AAEO,SAASC,uBAAuBA,CACrCC,eAAgC,EACpB;EACZ,OAAO;AACL3B,IAAAA,sBAAsB,EAAE;AACtBC,MAAAA,MAAM,EAAE,YAAY;MACpBC,cAAc,EAAEC,sBAAsB,CAAC,MAAM,CAAA;KAC9C;AACDI,IAAAA,IAAI,EAAEoB,eAAe,CAACnB,uBAAuB,EAAE;AAC/CoB,IAAAA,QAAQ,EAAED,eAAe,CAACf,WAAW,EAAC;GACvC,CAAA;AACH,CAAA;AAEO,SAASiB,2BAA2BA,CACzCC,UAAsB,EACT;EACb,OAAO;AACLC,IAAAA,MAAM,EAAED,UAAU,CAACE,8BAA8B,EAAE;AACnDC,IAAAA,QAAQ,EAAE,KAAK;AACfC,IAAAA,UAAU,EAAE,KAAA;GACb,CAAA;AACH,CAAA;AAEO,SAASC,0BAA0BA,CACxCL,UAAsB,EACtBM,QAAuB,EACR;EACf,OAAO,CAACP,2BAA2B,CAACC,UAAU,CAAC,CAAC,CAACO,MAAM,CAACD,QAAQ,CAAC,CAAA;AACnE;;;;"}