@molecularlabs/nucleus-frontend
Version:
Nucleus BoringVault Frontend SDK
1 lines • 3.38 kB
Source Map (JSON)
{"version":3,"sources":["../../src/api/erc20.ts"],"sourcesContent":["import { type Address, erc20Abi } from \"viem\";\nimport { getClient } from \"../lib/client\";\nimport type { ChainId } from \"./vault-config\";\n\ninterface GetErc20BalanceParams {\n chainId: ChainId;\n tokenAddress: Address;\n userAddress: Address;\n}\n\nconst getErc20Balance = async ({\n chainId,\n tokenAddress,\n userAddress,\n}: GetErc20BalanceParams): Promise<bigint> => {\n const client = await getClient(chainId);\n\n const balance = await client.readContract({\n abi: erc20Abi,\n address: tokenAddress,\n functionName: \"balanceOf\",\n args: [userAddress],\n });\n\n return balance;\n};\n\ninterface GetErc20DecimalsParams {\n chainId: ChainId;\n tokenAddress: Address;\n}\nconst getErc20Decimals = async ({\n chainId,\n tokenAddress,\n}: GetErc20DecimalsParams) => {\n const client = await getClient(chainId);\n\n const balance = await client.readContract({\n abi: erc20Abi,\n address: tokenAddress,\n functionName: \"decimals\",\n });\n\n return balance;\n};\n\ninterface GetErc20AllowanceParams {\n chainId: ChainId;\n tokenAddress: Address;\n userAddress: Address;\n spenderAddress: Address;\n}\n\nconst getErc20Allowance = async ({\n chainId,\n tokenAddress,\n userAddress,\n spenderAddress,\n}: GetErc20AllowanceParams) => {\n const client = await getClient(chainId);\n\n const allowance = await client.readContract({\n abi: erc20Abi,\n address: tokenAddress,\n functionName: \"allowance\",\n args: [userAddress, spenderAddress],\n });\n\n return allowance;\n};\n\nconst getErc20AllowanceWithDecimals = async ({\n chainId,\n tokenAddress,\n userAddress,\n spenderAddress,\n}: GetErc20AllowanceParams) => {\n const client = await getClient(chainId);\n\n const allowance = await client.multicall({\n contracts: [\n {\n abi: erc20Abi,\n address: tokenAddress,\n functionName: \"allowance\",\n args: [userAddress, spenderAddress],\n },\n {\n abi: erc20Abi,\n address: tokenAddress,\n functionName: \"decimals\",\n },\n ],\n });\n return allowance;\n};\n\nexport {\n getErc20Allowance,\n getErc20AllowanceWithDecimals,\n getErc20Balance,\n getErc20Decimals,\n};\n"],"mappings":"AAAA,SAAuB,gBAAgB;AACvC,SAAS,iBAAiB;AAS1B,MAAM,kBAAkB,OAAO;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AACF,MAA8C;AAC5C,QAAM,SAAS,MAAM,UAAU,OAAO;AAEtC,QAAM,UAAU,MAAM,OAAO,aAAa;AAAA,IACxC,KAAK;AAAA,IACL,SAAS;AAAA,IACT,cAAc;AAAA,IACd,MAAM,CAAC,WAAW;AAAA,EACpB,CAAC;AAED,SAAO;AACT;AAMA,MAAM,mBAAmB,OAAO;AAAA,EAC9B;AAAA,EACA;AACF,MAA8B;AAC5B,QAAM,SAAS,MAAM,UAAU,OAAO;AAEtC,QAAM,UAAU,MAAM,OAAO,aAAa;AAAA,IACxC,KAAK;AAAA,IACL,SAAS;AAAA,IACT,cAAc;AAAA,EAChB,CAAC;AAED,SAAO;AACT;AASA,MAAM,oBAAoB,OAAO;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA+B;AAC7B,QAAM,SAAS,MAAM,UAAU,OAAO;AAEtC,QAAM,YAAY,MAAM,OAAO,aAAa;AAAA,IAC1C,KAAK;AAAA,IACL,SAAS;AAAA,IACT,cAAc;AAAA,IACd,MAAM,CAAC,aAAa,cAAc;AAAA,EACpC,CAAC;AAED,SAAO;AACT;AAEA,MAAM,gCAAgC,OAAO;AAAA,EAC3C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA+B;AAC7B,QAAM,SAAS,MAAM,UAAU,OAAO;AAEtC,QAAM,YAAY,MAAM,OAAO,UAAU;AAAA,IACvC,WAAW;AAAA,MACT;AAAA,QACE,KAAK;AAAA,QACL,SAAS;AAAA,QACT,cAAc;AAAA,QACd,MAAM,CAAC,aAAa,cAAc;AAAA,MACpC;AAAA,MACA;AAAA,QACE,KAAK;AAAA,QACL,SAAS;AAAA,QACT,cAAc;AAAA,MAChB;AAAA,IACF;AAAA,EACF,CAAC;AACD,SAAO;AACT;","names":[]}