@molecularlabs/nucleus-frontend
Version:
Nucleus BoringVault Frontend SDK
61 lines • 1.48 kB
JavaScript
import { erc20Abi } from "viem";
import { AccountantAbi } from "../contracts/accountant-abi";
import { BoringVaultAbi } from "../contracts/boring-vault-abi";
import { getClient } from "../lib/client";
const getRateInQuoteWithAssetDecimals = async ({
assetAddress,
accountantAddress,
chainId
}) => {
const client = await getClient(chainId);
const results = await client.multicall({
contracts: [
{
abi: erc20Abi,
address: assetAddress,
functionName: "decimals"
},
{
abi: AccountantAbi,
address: accountantAddress,
functionName: "getRateInQuote",
args: [assetAddress]
}
]
});
return results;
};
const getRateInQuoteAndSharesAndWantAssetDecimals = async ({
sharesAssetAddress,
wantAssetAddress,
accountantAddress,
chainId
}) => {
const client = await getClient(chainId);
const results = await client.multicall({
contracts: [
{
abi: erc20Abi,
address: wantAssetAddress,
functionName: "decimals"
},
{
abi: BoringVaultAbi,
address: sharesAssetAddress,
functionName: "decimals"
},
{
abi: AccountantAbi,
address: accountantAddress,
functionName: "getRateInQuote",
args: [wantAssetAddress]
}
]
});
return results;
};
export {
getRateInQuoteAndSharesAndWantAssetDecimals,
getRateInQuoteWithAssetDecimals
};
//# sourceMappingURL=accountant.mjs.map