{"version":3,"sources":["../../src/internal/endlessAccount.ts"],"sourcesContent":["import { EndlessConfig } from \"../api/endlessConfig\";\nimport { AccountAddress } from \"../core\";\nimport { Account } from \"../account\";\nimport {\n  EntryFunctionABI,\n  InputGenerateTransactionOptions,\n  InputViewFunctionData,\n  SimpleTransaction,\n  TypeTagAddress,\n  TypeTagU128,\n  parseTypeTag,\n} from \"../transactions\";\nimport { AnyNumber, MoveAbility } from \"../types\";\nimport { view } from \"./view\";\nimport { generateTransaction } from \"./transactionSubmission\";\n\nconst transferEDSAbi: EntryFunctionABI = {\n  typeParameters: [],\n  parameters: [new TypeTagAddress(), new TypeTagU128()],\n};\n\nconst transferCoinAbi: EntryFunctionABI = {\n  typeParameters: [{ constraints: [MoveAbility.KEY] }],\n  parameters: [new TypeTagAddress(), new TypeTagU128(), parseTypeTag(\"0x1::object::Object\")],\n};\n\nexport async function transferEDS(args: {\n  endlessConfig: EndlessConfig;\n  sender: Account;\n  recipient: AccountAddress;\n  amount: AnyNumber;\n  options?: InputGenerateTransactionOptions;\n}): Promise<SimpleTransaction> {\n  const { endlessConfig, sender, recipient, amount, options } = args;\n  return generateTransaction({\n    endlessConfig,\n    sender: sender.accountAddress,\n    data: {\n      function: \"0x1::endless_account::transfer\",\n      functionArguments: [recipient, amount],\n      abi: transferEDSAbi,\n    },\n    options,\n  });\n}\n\nexport async function transferCoin(args: {\n  endlessConfig: EndlessConfig;\n  sender: Account;\n  fungibleAssetMetadataAddress: AccountAddress;\n  recipient: AccountAddress;\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: sender.accountAddress,\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 viewCoinBalance(args: {\n  endlessConfig: EndlessConfig;\n  account: AccountAddress;\n  fungibleAssetMetadataAddress: AccountAddress;\n}): Promise<bigint> {\n  const { endlessConfig, account, fungibleAssetMetadataAddress } = args;\n  const payload: InputViewFunctionData = {\n    function: `${\"0x1\"}::primary_fungible_store::balance`,\n    // function: `${routerAddress}::primary_fungible_store::balance`,\n    functionArguments: [account.toString(), fungibleAssetMetadataAddress.toString()],\n    typeArguments: [\"0x1::fungible_asset::Metadata\"],\n  };\n  const res = (await view<[string]>({ endlessConfig, payload }))[0];\n  return BigInt(res);\n}\n"],"mappings":"sKAgBA,IAAMA,EAAmC,CACvC,eAAgB,CAAC,EACjB,WAAY,CAAC,IAAIC,EAAkB,IAAIC,CAAa,CACtD,EAEMC,EAAoC,CACxC,eAAgB,CAAC,CAAE,YAAa,MAAgB,CAAE,CAAC,EACnD,WAAY,CAAC,IAAIF,EAAkB,IAAIC,EAAeE,EAAa,qBAAqB,CAAC,CAC3F,EAEA,eAAsBC,EAAYC,EAMH,CAC7B,GAAM,CAAE,cAAAC,EAAe,OAAAC,EAAQ,UAAAC,EAAW,OAAAC,EAAQ,QAAAC,CAAQ,EAAIL,EAC9D,OAAOM,EAAoB,CACzB,cAAAL,EACA,OAAQC,EAAO,eACf,KAAM,CACJ,SAAU,iCACV,kBAAmB,CAACC,EAAWC,CAAM,EACrC,IAAKV,CACP,EACA,QAAAW,CACF,CAAC,CACH,CAEA,eAAsBE,EAAaP,EAOJ,CAC7B,GAAM,CAAE,cAAAC,EAAe,OAAAC,EAAQ,6BAAAM,EAA8B,UAAAL,EAAW,OAAAC,EAAQ,QAAAC,CAAQ,EAAIL,EAC5F,OAAOM,EAAoB,CACzB,cAAAL,EACA,OAAQC,EAAO,eACf,KAAM,CACJ,SAAU,uCACV,cAAe,CAAC,+BAA+B,EAC/C,kBAAmB,CAACC,EAAWC,EAAQI,CAA4B,EACnE,IAAKX,CACP,EACA,QAAAQ,CACF,CAAC,CACH,CAEA,eAAsBI,EAAgBT,EAIlB,CAClB,GAAM,CAAE,cAAAC,EAAe,QAAAS,EAAS,6BAAAF,CAA6B,EAAIR,EAC3DW,EAAiC,CACrC,SAAU,uCAEV,kBAAmB,CAACD,EAAQ,SAAS,EAAGF,EAA6B,SAAS,CAAC,EAC/E,cAAe,CAAC,+BAA+B,CACjD,EACMI,GAAO,MAAMC,EAAe,CAAE,cAAAZ,EAAe,QAAAU,CAAQ,CAAC,GAAG,CAAC,EAChE,OAAO,OAAOC,CAAG,CACnB","names":["transferEDSAbi","TypeTagAddress","TypeTagU128","transferCoinAbi","parseTypeTag","transferEDS","args","endlessConfig","sender","recipient","amount","options","generateTransaction","transferCoin","fungibleAssetMetadataAddress","viewCoinBalance","account","payload","res","view"]}