Lock Queries
Functions for querying lock information in the Trust Bonding system (if applicable).
Noteβ
Lock functionality may be implemented through the broader bonding mechanism. User positions and bonded balances can be queried through:
Query User Positionβ
import {
trustBondingGetUserInfo,
trustBondingTotalBondedBalance,
getContractAddressFromChainId,
} from '@0xintuition/protocol'
import { formatEther } from 'viem'
const bondingAddress = getContractAddressFromChainId('TrustBonding', chainId)
// Get comprehensive user information
const userInfo = await trustBondingGetUserInfo(
{ address: bondingAddress, publicClient },
{ args: [userAddress] }
)
console.log('User bonding info:', {
bondedBalance: formatEther(userInfo.bondedBalance),
lastActiveEpoch: userInfo.lastActiveEpoch,
claimedEpochs: userInfo.claimedEpochs,
})
// Get total system bonded balance
const totalBonded = await trustBondingTotalBondedBalance({
address: bondingAddress,
publicClient,
})
console.log('Total bonded:', formatEther(totalBonded))
Query User Shares in Vaultsβ
import { multiVaultGetShares, getMultiVaultAddressFromChainId } from '@0xintuition/protocol'
const multiVaultAddress = getMultiVaultAddressFromChainId(chainId)
// Get user's shares in a specific vault
const shares = await multiVaultGetShares(
{ address: multiVaultAddress, publicClient },
{ args: [userAddress, vaultId] }
)
console.log('Vault shares:', formatEther(shares))
Maximum Redeemable Amountβ
import { multiVaultMaxRedeem } from '@0xintuition/protocol'
// Get maximum redeemable shares (similar to lock balance)
const maxShares = await multiVaultMaxRedeem(
{ address: multiVaultAddress, publicClient },
{ args: [userAddress, vaultId] }
)
console.log('Max redeemable:', formatEther(maxShares))