func (e *ETHScanner) convertAmount(token string, amt *big.Int) cosmos.Uint {
    decimals := uint64(defaultDecimals) // defaultDecimals is assumed to be 18
    tokenMeta, err := e.getTokenMeta(token)
    if err != nil {
        e.logger.Err(err).Msgf("fail to get token meta for token address: %s", token)
    }
    if !tokenMeta.IsEmpty() {
        decimals = tokenMeta.Decimal
    }
    if decimals != defaultDecimals {
        var value big.Int
        amt = amt.Mul(amt, value.Exp(big.NewInt(10), big.NewInt(defaultDecimals), nil))
        amt = amt.Div(amt, value.Exp(big.NewInt(10), big.NewInt(int64(decimals)), nil))
    }
    return cosmos.NewUintFromBigInt(amt).QuoUint64(common.One * 100)
}
func (e *ETHScanner) convertAmount(token string, amt *big.Int) cosmos.Uint {
    tokenMeta, err := e.getTokenMeta(token)
    if err != nil {
        e.logger.Err(err).Msgf("fail to get token meta for token address: %s", token)
        return cosmos.Uint{}
    }
    actualDecimals := big.NewInt(int64(tokenMeta.Decimal))
    defaultDecimalBigInt := big.NewInt(int64(defaultDecimals))
    
    // Adjust amount based on the token's actual decimals
    if actualDecimals.Cmp(defaultDecimalBigInt) != 0 {
        scaleFactor := new(big.Int).Exp(big.NewInt(10), new(big.Int).Sub(defaultDecimalBigInt, actualDecimals), nil)
        amt.Mul(amt, scaleFactor)
    }

    return cosmos.NewUintFromBigInt(amt).QuoUint64(common.One * 100)
}
if decimals != defaultDecimals {
    var value big.Int
    amt = amt.Mul(amt, value.Exp(big.NewInt(10), big.NewInt(defaultDecimals), nil))
    amt = amt.Div(amt, value.Exp(big.NewInt(10), big.NewInt(int64(decimals)), nil))
}
