{"version":3,"sources":["../../src/internal/coin.ts"],"sourcesContent":["import { EndlessConfig } from \"../api/endlessConfig\";\nimport { AccountAddress, AccountAddressInput } from \"../core\";\nimport { EntryFunctionABI, InputGenerateTransactionOptions } from \"../transactions/types\";\nimport {\n  AnyNumber,\n  GetCoinDataResponse,\n  PageableFungibleAssetMetadataResponse,\n  PageableHoldersItem,\n  PaginationArgsOfIndexer,\n} from \"../types\";\nimport { generateTransaction } from \"./transactionSubmission\";\nimport { parseTypeTag, TypeTagAddress, TypeTagU128 } from \"../transactions\";\nimport { SimpleTransaction } from \"../transactions/instances/simpleTransaction\";\nimport { getEndlessIndexer, postEndlessIndexer } from \"../client\";\n\nconst transferCoinAbi: EntryFunctionABI = {\n  typeParameters: [{ constraints: [] }],\n  parameters: [new TypeTagAddress(), new TypeTagU128(), parseTypeTag(\"0x1::object::Object\")],\n};\n\nexport async function transferCoinTransaction(args: {\n  endlessConfig: EndlessConfig;\n  sender: AccountAddressInput;\n  fungibleAssetMetadataAddress: AccountAddress;\n  recipient: AccountAddressInput;\n  amount: AnyNumber;\n  options?: InputGenerateTransactionOptions;\n}): Promise<SimpleTransaction> {\n  const { endlessConfig, sender, fungibleAssetMetadataAddress, recipient, amount, options } = args;\n  return generateTransaction({\n    endlessConfig,\n    sender,\n    data: {\n      function: \"0x1::endless_account::transfer_coins\",\n      typeArguments: [\"0x1::fungible_asset::Metadata\"],\n      functionArguments: [recipient, amount, fungibleAssetMetadataAddress],\n      abi: transferCoinAbi,\n    },\n    options,\n  });\n}\n\nexport async function getCoinData(\n  endlessConfig: EndlessConfig,\n  coinAddress: AccountAddressInput,\n): Promise<GetCoinDataResponse> {\n  const { data } = await getEndlessIndexer<{}, GetCoinDataResponse>({\n    endlessConfig,\n    originMethod: \"getCoinData\",\n    path: `coins/${coinAddress}`,\n  });\n  return data;\n}\n\nexport async function getCoinHolders(\n  endlessConfig: EndlessConfig,\n  coinAddress: AccountAddressInput,\n  options?: PaginationArgsOfIndexer,\n): Promise<PageableHoldersItem> {\n  const { data } = await getEndlessIndexer<PaginationArgsOfIndexer, PageableHoldersItem>({\n    endlessConfig,\n    originMethod: \"getCoinHolders\",\n    path: `coins/${coinAddress}/holders`,\n    params: {\n      page: options?.page,\n      pageSize: options?.pageSize,\n    },\n  });\n  return data;\n}\n\nexport async function getCoinListDataById(\n  endlessConfig: EndlessConfig,\n  coinListAddress: AccountAddressInput[],\n): Promise<GetCoinDataResponse[]> {\n  const { data } = await postEndlessIndexer<{}, GetCoinDataResponse[]>({\n    endlessConfig,\n    originMethod: \"getCoinListDataById\",\n    path: \"coins\",\n    body: coinListAddress,\n  });\n  return data;\n}\n\nexport async function getCoinsList(\n  endlessConfig: EndlessConfig,\n  options?: PaginationArgsOfIndexer,\n): Promise<PageableFungibleAssetMetadataResponse> {\n  const { data } = await getEndlessIndexer<PaginationArgsOfIndexer, PageableFungibleAssetMetadataResponse>({\n    endlessConfig,\n    originMethod: \"getCoinsList\",\n    path: \"coins\",\n    params: {\n      page: options?.page,\n      pageSize: options?.pageSize,\n    },\n  });\n  return data;\n}\n"],"mappings":"oNAeA,IAAMA,EAAoC,CACxC,eAAgB,CAAC,CAAE,YAAa,CAAC,CAAE,CAAC,EACpC,WAAY,CAAC,IAAIC,EAAkB,IAAIC,EAAeC,EAAa,qBAAqB,CAAC,CAC3F,EAEA,eAAsBC,EAAwBC,EAOf,CAC7B,GAAM,CAAE,cAAAC,EAAe,OAAAC,EAAQ,6BAAAC,EAA8B,UAAAC,EAAW,OAAAC,EAAQ,QAAAC,CAAQ,EAAIN,EAC5F,OAAOO,EAAoB,CACzB,cAAAN,EACA,OAAAC,EACA,KAAM,CACJ,SAAU,uCACV,cAAe,CAAC,+BAA+B,EAC/C,kBAAmB,CAACE,EAAWC,EAAQF,CAA4B,EACnE,IAAKR,CACP,EACA,QAAAW,CACF,CAAC,CACH,CAEA,eAAsBE,EACpBP,EACAQ,EAC8B,CAC9B,GAAM,CAAE,KAAAC,CAAK,EAAI,MAAMC,EAA2C,CAChE,cAAAV,EACA,aAAc,cACd,KAAM,SAASQ,CAAW,EAC5B,CAAC,EACD,OAAOC,CACT,CAEA,eAAsBE,EACpBX,EACAQ,EACAH,EAC8B,CAC9B,GAAM,CAAE,KAAAI,CAAK,EAAI,MAAMC,EAAgE,CACrF,cAAAV,EACA,aAAc,iBACd,KAAM,SAASQ,CAAW,WAC1B,OAAQ,CACN,KAAMH,GAAS,KACf,SAAUA,GAAS,QACrB,CACF,CAAC,EACD,OAAOI,CACT,CAEA,eAAsBG,EACpBZ,EACAa,EACgC,CAChC,GAAM,CAAE,KAAAJ,CAAK,EAAI,MAAMK,EAA8C,CACnE,cAAAd,EACA,aAAc,sBACd,KAAM,QACN,KAAMa,CACR,CAAC,EACD,OAAOJ,CACT,CAEA,eAAsBM,EACpBf,EACAK,EACgD,CAChD,GAAM,CAAE,KAAAI,CAAK,EAAI,MAAMC,EAAkF,CACvG,cAAAV,EACA,aAAc,eACd,KAAM,QACN,OAAQ,CACN,KAAMK,GAAS,KACf,SAAUA,GAAS,QACrB,CACF,CAAC,EACD,OAAOI,CACT","names":["transferCoinAbi","TypeTagAddress","TypeTagU128","parseTypeTag","transferCoinTransaction","args","endlessConfig","sender","fungibleAssetMetadataAddress","recipient","amount","options","generateTransaction","getCoinData","coinAddress","data","getEndlessIndexer","getCoinHolders","getCoinListDataById","coinListAddress","postEndlessIndexer","getCoinsList"]}