{"version":3,"file":"findBaseAssetByAddress.cjs","sources":["../../../../../src/plugins/protocolModule/operations/findBaseAssetByAddress.ts"],"sourcesContent":["import { PublicKey } from '@solana/web3.js';\n\nimport { BaseAsset } from '../models/BaseAsset';\nimport {\n  Operation,\n  OperationHandler,\n  OperationScope,\n  useOperation,\n} from '../../../types';\nimport { Convergence } from '../../../Convergence';\nimport { baseAssetsCache } from '../cache';\n\nconst Key = 'FindBaseAssetByAddressOperation' as const;\n\n/**\n * Finds BaseAsset by a given address.\n *\n * ```ts\n * const rfq = await convergence\n *   .rfqs()\n *   .findBaseAssetByAddress({ address };\n * ```\n *\n * @group Operations\n * @category Constructors\n */\nexport const findBaseAssetByAddressOperation =\n  useOperation<FindBaseAssetByAddressOperation>(Key);\n\n/**\n * @group Operations\n * @category Types\n */\nexport type FindBaseAssetByAddressOperation = Operation<\n  typeof Key,\n  FindBaseAssetByAddressInput,\n  FindBaseAssetByAddressOutput\n>;\n\n/**\n * @group Operations\n * @category Inputs\n */\nexport type FindBaseAssetByAddressInput = {\n  /** The pubkey address of the BaseAssetInfo account. */\n  address: PublicKey;\n};\n\n/**\n * @group Operations\n * @category Outputs\n */\nexport type FindBaseAssetByAddressOutput = BaseAsset;\n\n/**\n * @group Operations\n * @category Handlers\n */\nexport const findBaseAssetByAddressOperationHandler: OperationHandler<FindBaseAssetByAddressOperation> =\n  {\n    handle: async (\n      operation: FindBaseAssetByAddressOperation,\n      convergence: Convergence,\n      scope: OperationScope\n    ): Promise<FindBaseAssetByAddressOutput> => {\n      const { address } = operation.input;\n      scope.throwIfCanceled();\n\n      const baseAssets = await baseAssetsCache.get(convergence);\n      const baseAsset = baseAssets.find((ba) => ba.address.equals(address));\n      if (baseAsset === undefined) {\n        throw Error(\n          `Couldn't find Base Asset account at address ${address.toString()}`\n        );\n      }\n      scope.throwIfCanceled();\n\n      return baseAsset;\n    },\n  };\n"],"names":["Key","findBaseAssetByAddressOperation","useOperation","findBaseAssetByAddressOperationHandler","handle","_handle","_asyncToGenerator","_regeneratorRuntime","mark","_callee","operation","convergence","scope","address","baseAssets","baseAsset","wrap","_callee$","_context","prev","next","input","throwIfCanceled","baseAssetsCache","get","sent","find","ba","equals","undefined","Error","concat","toString","abrupt","stop","_x","_x2","_x3","apply","arguments"],"mappings":";;;;;;;;AAYA,IAAMA,GAAG,GAAG,iCAA0C,CAAA;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACaC,+BAA+B,GAC1CC,sBAAY,CAAkCF,GAAG,EAAC;;AAEpD;AACA;AACA;AACA;;AAOA;AACA;AACA;AACA;;AAMA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACO,IAAMG,sCAAyF,GACpG;EACEC,MAAM,EAAA,YAAA;AAAA,IAAA,IAAAC,OAAA,GAAAC,0CAAA,eAAAC,4CAAA,EAAAC,CAAAA,IAAA,CAAE,SAAAC,OACNC,CAAAA,SAA0C,EAC1CC,WAAwB,EACxBC,KAAqB,EAAA;AAAA,MAAA,IAAAC,OAAA,EAAAC,UAAA,EAAAC,SAAA,CAAA;AAAA,MAAA,OAAAR,4CAAA,EAAA,CAAAS,IAAA,CAAA,SAAAC,SAAAC,QAAA,EAAA;AAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;AAAA,UAAA,KAAA,CAAA;AAEbP,YAAAA,OAAO,GAAKH,SAAS,CAACW,KAAK,CAA3BR,OAAO,CAAA;YACfD,KAAK,CAACU,eAAe,EAAE,CAAA;AAACJ,YAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA,CAAA;AAAA,YAAA,OAECG,qBAAe,CAACC,GAAG,CAACb,WAAW,CAAC,CAAA;AAAA,UAAA,KAAA,CAAA;YAAnDG,UAAU,GAAAI,QAAA,CAAAO,IAAA,CAAA;AACVV,YAAAA,SAAS,GAAGD,UAAU,CAACY,IAAI,CAAC,UAACC,EAAE,EAAA;AAAA,cAAA,OAAKA,EAAE,CAACd,OAAO,CAACe,MAAM,CAACf,OAAO,CAAC,CAAA;aAAC,CAAA,CAAA;YAAA,IACjEE,EAAAA,SAAS,KAAKc,SAAS,CAAA,EAAA;AAAAX,cAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA,CAAA;AAAA,cAAA,MAAA;AAAA,aAAA;YAAA,MACnBU,KAAK,CAAAC,8CAAAA,CAAAA,MAAA,CACsClB,OAAO,CAACmB,QAAQ,EAAE,CACnE,CAAC,CAAA;AAAA,UAAA,KAAA,CAAA;YAEHpB,KAAK,CAACU,eAAe,EAAE,CAAA;AAAC,YAAA,OAAAJ,QAAA,CAAAe,MAAA,CAAA,QAAA,EAEjBlB,SAAS,CAAA,CAAA;AAAA,UAAA,KAAA,EAAA,CAAA;AAAA,UAAA,KAAA,KAAA;YAAA,OAAAG,QAAA,CAAAgB,IAAA,EAAA,CAAA;AAAA,SAAA;AAAA,OAAA,EAAAzB,OAAA,CAAA,CAAA;KACjB,CAAA,CAAA,CAAA;AAAA,IAAA,SAAAL,MAAA+B,CAAAA,EAAA,EAAAC,GAAA,EAAAC,GAAA,EAAA;AAAA,MAAA,OAAAhC,OAAA,CAAAiC,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA,CAAA;AAAA,KAAA;AAAA,IAAA,OAAAnC,MAAA,CAAA;AAAA,GAAA,EAAA;AACH;;;;;"}