{"version":3,"file":"fetchUnusedCollateralLockRecords.cjs","sources":["../../../../../src/plugins/hxroPrintTradeProviderModule/operations/fetchUnusedCollateralLockRecords.ts"],"sourcesContent":["import {\n  LockedCollateralRecord,\n  LockedCollateralRecordArgs,\n} from '@convergence-rfq/hxro-print-trade-provider';\n\nimport { LockCollateralRecordGpaBuilder } from '../gpa';\nimport { WithPubkey } from '../types';\nimport { Convergence } from '@/Convergence';\nimport {\n  Operation,\n  OperationHandler,\n  OperationScope,\n  useOperation,\n} from '@/types';\n\nconst Key = 'fetchUnusedCollateralLockRecords' as const;\n\nexport const fetchUnusedCollateralLockRecordsOperation =\n  useOperation<FetchUnusedCollateralLockRecordsOperation>(Key);\n\n/**\n * @group Operations\n * @category Types\n */\nexport type FetchUnusedCollateralLockRecordsOperation = Operation<\n  typeof Key,\n  FetchUnusedCollateralLockRecordsInput,\n  FetchUnusedCollateralLockRecordsOutput\n>;\n\n/**\n * @group Operations\n * @category Inputs\n */\nexport type FetchUnusedCollateralLockRecordsInput = {} | undefined;\n\n/**\n * @group Operations\n * @category Outputs\n */\nexport type FetchUnusedCollateralLockRecordsOutput =\n  WithPubkey<LockedCollateralRecordArgs>[];\n\n/**\n * @group Operations\n * @category Handlers\n */\nexport const fetchUnusedCollateralLockRecordsOperationHandler: OperationHandler<FetchUnusedCollateralLockRecordsOperation> =\n  {\n    handle: async (\n      _operation: FetchUnusedCollateralLockRecordsOperation,\n      cvg: Convergence,\n      scope: OperationScope\n    ): Promise<FetchUnusedCollateralLockRecordsOutput> => {\n      const { programs } = scope;\n      const hxroPrintTradeProviderProgram = cvg\n        .programs()\n        .getHxroPrintTradeProvider(programs);\n      const gpaBuilder = new LockCollateralRecordGpaBuilder(\n        cvg,\n        hxroPrintTradeProviderProgram.address\n      );\n\n      const unparsedAccounts = await gpaBuilder\n        .whereUser(cvg.identity().publicKey)\n        .whereInUse(false)\n        .get();\n\n      return unparsedAccounts.map((acc) => ({\n        ...LockedCollateralRecord.deserialize(acc.data)[0],\n        publicKey: acc.publicKey,\n      }));\n    },\n  };\n"],"names":["Key","fetchUnusedCollateralLockRecordsOperation","useOperation","fetchUnusedCollateralLockRecordsOperationHandler","handle","_handle","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_operation","cvg","scope","programs","hxroPrintTradeProviderProgram","gpaBuilder","unparsedAccounts","wrap","_callee$","_context","prev","next","getHxroPrintTradeProvider","LockCollateralRecordGpaBuilder","address","whereUser","identity","publicKey","whereInUse","get","sent","abrupt","map","acc","_objectSpread","LockedCollateralRecord","deserialize","data","stop","_x","_x2","_x3","apply","arguments"],"mappings":";;;;;;;;;AAeA,IAAMA,GAAG,GAAG,kCAA2C,CAAA;IAE1CC,yCAAyC,GACpDC,sBAAY,CAA4CF,GAAG,EAAC;;AAE9D;AACA;AACA;AACA;;AAOA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACO,IAAMG,gDAA6G,GACxH;EACEC,MAAM,EAAA,YAAA;AAAA,IAAA,IAAAC,OAAA,GAAAC,0CAAA,eAAAC,4CAAA,EAAAC,CAAAA,IAAA,CAAE,SAAAC,OACNC,CAAAA,UAAqD,EACrDC,GAAgB,EAChBC,KAAqB,EAAA;AAAA,MAAA,IAAAC,QAAA,EAAAC,6BAAA,EAAAC,UAAA,EAAAC,gBAAA,CAAA;AAAA,MAAA,OAAAT,4CAAA,EAAA,CAAAU,IAAA,CAAA,SAAAC,SAAAC,QAAA,EAAA;AAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;AAAA,UAAA,KAAA,CAAA;YAEbR,QAAQ,GAAKD,KAAK,CAAlBC,QAAQ,CAAA;YACVC,6BAA6B,GAAGH,GAAG,CACtCE,QAAQ,EAAE,CACVS,yBAAyB,CAACT,QAAQ,CAAC,CAAA;YAChCE,UAAU,GAAG,IAAIQ,kCAA8B,CACnDZ,GAAG,EACHG,6BAA6B,CAACU,OAChC,CAAC,CAAA;AAAAL,YAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA,CAAA;YAAA,OAE8BN,UAAU,CACtCU,SAAS,CAACd,GAAG,CAACe,QAAQ,EAAE,CAACC,SAAS,CAAC,CACnCC,UAAU,CAAC,KAAK,CAAC,CACjBC,GAAG,EAAE,CAAA;AAAA,UAAA,KAAA,CAAA;YAHFb,gBAAgB,GAAAG,QAAA,CAAAW,IAAA,CAAA;YAAA,OAAAX,QAAA,CAAAY,MAAA,CAAA,QAAA,EAKff,gBAAgB,CAACgB,GAAG,CAAC,UAACC,GAAG,EAAA;AAAA,cAAA,OAAAC,uCAAA,CAAAA,uCAAA,CAAA,EAAA,EAC3BC,6CAAsB,CAACC,WAAW,CAACH,GAAG,CAACI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA,EAAA,EAAA,EAAA;gBAClDV,SAAS,EAAEM,GAAG,CAACN,SAAAA;AAAS,eAAA,CAAA,CAAA;AAAA,aACxB,CAAC,CAAA,CAAA;AAAA,UAAA,KAAA,CAAA,CAAA;AAAA,UAAA,KAAA,KAAA;YAAA,OAAAR,QAAA,CAAAmB,IAAA,EAAA,CAAA;AAAA,SAAA;AAAA,OAAA,EAAA7B,OAAA,CAAA,CAAA;KACJ,CAAA,CAAA,CAAA;AAAA,IAAA,SAAAL,MAAAmC,CAAAA,EAAA,EAAAC,GAAA,EAAAC,GAAA,EAAA;AAAA,MAAA,OAAApC,OAAA,CAAAqC,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA,CAAA;AAAA,KAAA;AAAA,IAAA,OAAAvC,MAAA,CAAA;AAAA,GAAA,EAAA;AACH;;;;;"}