@chorus-one/ethereum
Version:
All-in-one toolkit for building staking dApps on Ethereum network
39 lines (34 loc) • 1.15 kB
text/typescript
import { Hex } from 'viem'
import { MintTokenControllerAbi } from '../contracts/mintCotrollerAbi'
import { VaultABI } from '../contracts/vaultAbi'
import { StakewiseConnector } from '../connector'
export const getMint = async (params: { connector: StakewiseConnector; userAccount: Hex; vaultAddress: Hex }) => {
const { connector, vaultAddress, userAccount } = params
const mintedShares = await connector.eth.readContract({
abi: VaultABI,
functionName: 'osTokenPositions',
address: vaultAddress,
args: [userAccount]
})
const [mintedAssets, feePercent] = await Promise.all([
connector.eth.readContract({
abi: MintTokenControllerAbi,
address: connector.mintTokenController,
functionName: 'convertToAssets',
args: [mintedShares]
}) as Promise<bigint>,
connector.eth.readContract({
abi: MintTokenControllerAbi,
functionName: 'feePercent',
address: connector.mintTokenController
}) as Promise<bigint>
])
const protocolFeePercent = feePercent / 100n
return {
minted: {
assets: mintedAssets,
shares: mintedShares
},
protocolFeePercent
}
}