import { parseEther } from 'viem';
import { STAKING_PRECOMPILE_ABI, STAKING_PRECOMPILE_ADDRESS } from '@sei-js/precompiles';
// Delegate SEI to a validator
const delegateHash = await walletClient.writeContract({
address: STAKING_PRECOMPILE_ADDRESS,
abi: STAKING_PRECOMPILE_ABI,
functionName: 'delegate',
args: ['seivaloper1...'],
value: parseEther('10'),
});
// Query delegation
const delegation = await client.readContract({
address: STAKING_PRECOMPILE_ADDRESS,
abi: STAKING_PRECOMPILE_ABI,
functionName: 'delegation',
args: [account, 'seivaloper1...'],
});
// Undelegate 5 SEI — amount is in 6-decimal usei (1 SEI = 1_000_000 usei), not wei
const undelegateHash = await walletClient.writeContract({
address: STAKING_PRECOMPILE_ADDRESS,
abi: STAKING_PRECOMPILE_ABI,
functionName: 'undelegate',
args: ['seivaloper1...', 5_000_000n],
});