{"version":3,"sources":["../../src/api/accountant.ts"],"sourcesContent":["import { type Address, erc20Abi } from 'viem';\nimport { AccountantAbi } from '../contracts/accountant-abi';\nimport { BoringVaultAbi } from '../contracts/boring-vault-abi';\nimport { getClient } from '../lib/client';\nimport type { ChainId } from './vault-config';\n\ntype AccountantBaseProps = {\n  accountantAddress: Address;\n  chainId: ChainId;\n};\n\ntype RateInQuoteWithAssetDecimalsProps = AccountantBaseProps & {\n  assetAddress: Address;\n};\n\n// TODO: Duplicated in multicall compare and remove\nconst getRateInQuoteWithAssetDecimals = async ({\n  assetAddress,\n  accountantAddress,\n  chainId,\n}: RateInQuoteWithAssetDecimalsProps) => {\n  const client = await getClient(chainId);\n\n  const results = await client.multicall({\n    contracts: [\n      {\n        abi: erc20Abi,\n        address: assetAddress,\n        functionName: 'decimals',\n      },\n      {\n        abi: AccountantAbi,\n        address: accountantAddress,\n        functionName: 'getRateInQuote',\n        args: [assetAddress],\n      },\n    ],\n  });\n  return results;\n};\n\ntype RateInQuoteAndSharesAndWantAssetDecimalsParams = {\n  sharesAssetAddress: Address;\n  wantAssetAddress: Address;\n  accountantAddress: Address;\n  chainId: ChainId;\n};\n\n// TODO: Move to multicall\nconst getRateInQuoteAndSharesAndWantAssetDecimals = async ({\n  sharesAssetAddress,\n  wantAssetAddress,\n  accountantAddress,\n  chainId,\n}: RateInQuoteAndSharesAndWantAssetDecimalsParams) => {\n  const client = await getClient(chainId);\n\n  const results = await client.multicall({\n    contracts: [\n      {\n        abi: erc20Abi,\n        address: wantAssetAddress,\n        functionName: 'decimals',\n      },\n      {\n        abi: BoringVaultAbi,\n        address: sharesAssetAddress,\n        functionName: 'decimals',\n      },\n      {\n        abi: AccountantAbi,\n        address: accountantAddress,\n        functionName: 'getRateInQuote',\n        args: [wantAssetAddress],\n      },\n    ],\n  });\n  return results;\n};\n\nexport {\n  getRateInQuoteAndSharesAndWantAssetDecimals,\n  getRateInQuoteWithAssetDecimals,\n};\n"],"mappings":"AAAA,SAAuB,gBAAgB;AACvC,SAAS,qBAAqB;AAC9B,SAAS,sBAAsB;AAC/B,SAAS,iBAAiB;AAa1B,MAAM,kCAAkC,OAAO;AAAA,EAC7C;AAAA,EACA;AAAA,EACA;AACF,MAAyC;AACvC,QAAM,SAAS,MAAM,UAAU,OAAO;AAEtC,QAAM,UAAU,MAAM,OAAO,UAAU;AAAA,IACrC,WAAW;AAAA,MACT;AAAA,QACE,KAAK;AAAA,QACL,SAAS;AAAA,QACT,cAAc;AAAA,MAChB;AAAA,MACA;AAAA,QACE,KAAK;AAAA,QACL,SAAS;AAAA,QACT,cAAc;AAAA,QACd,MAAM,CAAC,YAAY;AAAA,MACrB;AAAA,IACF;AAAA,EACF,CAAC;AACD,SAAO;AACT;AAUA,MAAM,8CAA8C,OAAO;AAAA,EACzD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAsD;AACpD,QAAM,SAAS,MAAM,UAAU,OAAO;AAEtC,QAAM,UAAU,MAAM,OAAO,UAAU;AAAA,IACrC,WAAW;AAAA,MACT;AAAA,QACE,KAAK;AAAA,QACL,SAAS;AAAA,QACT,cAAc;AAAA,MAChB;AAAA,MACA;AAAA,QACE,KAAK;AAAA,QACL,SAAS;AAAA,QACT,cAAc;AAAA,MAChB;AAAA,MACA;AAAA,QACE,KAAK;AAAA,QACL,SAAS;AAAA,QACT,cAAc;AAAA,QACd,MAAM,CAAC,gBAAgB;AAAA,MACzB;AAAA,IACF;AAAA,EACF,CAAC;AACD,SAAO;AACT;","names":[]}