UNPKG

@molecularlabs/nucleus-frontend

Version:
1 lines 3.04 kB
{"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":[]}